<?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>190142</bug_id>
          
          <creation_ts>2018-10-01 09:49:27 -0700</creation_ts>
          <short_desc>[MediaStream] RealtimeMediaSource should be able to vend hashed IDs</short_desc>
          <delta_ts>2018-10-05 10:20:30 -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>WebRTC</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=190284</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jlewis3</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1465047</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-01 09:49:27 -0700</bug_when>
    <thetext>RealtimeMediaSource should know its hash salt so it can return a properly hashed device ID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465048</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-01 09:50:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/44911109&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465116</commentid>
    <comment_count>2</comment_count>
      <attachid>351273</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-01 11:10:10 -0700</bug_when>
    <thetext>Created attachment 351273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465199</commentid>
    <comment_count>3</comment_count>
      <attachid>351292</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-01 13:24:07 -0700</bug_when>
    <thetext>Created attachment 351292
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465318</commentid>
    <comment_count>4</comment_count>
      <attachid>351324</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-01 17:01:21 -0700</bug_when>
    <thetext>Created attachment 351324
Updated patchh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465403</commentid>
    <comment_count>5</comment_count>
      <attachid>351346</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-01 23:41:53 -0700</bug_when>
    <thetext>Created attachment 351346
Updated patchh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465437</commentid>
    <comment_count>6</comment_count>
      <attachid>351346</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-02 01:18:18 -0700</bug_when>
    <thetext>Comment on attachment 351346
Updated patchh

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

&gt; Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp:122
&gt;          document.setDeviceIDHashSalt(deviceIdentifierHashSalt);

Maybe move the ASSERT in document.setDeviceIDHashSalt.

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:58
&gt; +    else

ASSERT(!m_idHashSalt.isEmpty());

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.h:38
&gt;  struct CaptureSourceOrError;

CaptureSourceOrError before.

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:245
&gt; +        capabilities.setDeviceId(hashedId());

Probably unneeded, let&apos;s remove it now or in a follow-up.

&gt; Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:128
&gt; +void UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const CaptureDevice&amp; device, WebCore::RealtimeMediaSource::Type type, const String&amp; hashSalt, const MediaConstraints&amp; constraints, bool&amp; succeeded, String&amp; invalidConstraints, WebCore::RealtimeMediaSourceSettings&amp; settings)

String&amp;&amp; hashSalt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465460</commentid>
    <comment_count>7</comment_count>
      <attachid>351346</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-02 02:28:49 -0700</bug_when>
    <thetext>Comment on attachment 351346
Updated patchh

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

&gt;&gt; Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp:122
&gt;&gt;          document.setDeviceIDHashSalt(deviceIdentifierHashSalt);
&gt; 
&gt; Maybe move the ASSERT in document.setDeviceIDHashSalt.

Good idea, fixed.

&gt;&gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:58
&gt;&gt; +    else
&gt; 
&gt; ASSERT(!m_idHashSalt.isEmpty());

That doesn&apos;t work because remote tracks must pass ID but don&apos;t have (or need) a hash salt. I did add an ASSERT to RealtimeMediaSource::hashedId because it should only be called on sources that have a valid salt.

&gt;&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.h:38
&gt;&gt;  struct CaptureSourceOrError;
&gt; 
&gt; CaptureSourceOrError before.

Fixed

&gt;&gt; Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:128
&gt;&gt; +void UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const CaptureDevice&amp; device, WebCore::RealtimeMediaSource::Type type, const String&amp; hashSalt, const MediaConstraints&amp; constraints, bool&amp; succeeded, String&amp; invalidConstraints, WebCore::RealtimeMediaSourceSettings&amp; settings)
&gt; 
&gt; String&amp;&amp; hashSalt?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465476</commentid>
    <comment_count>8</comment_count>
      <attachid>351364</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-02 03:04:15 -0700</bug_when>
    <thetext>Created attachment 351364
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465493</commentid>
    <comment_count>9</comment_count>
      <attachid>351364</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-02 04:18:57 -0700</bug_when>
    <thetext>Comment on attachment 351364
Patch for landing

Clearing flags on attachment: 351364

Committed r236730: &lt;https://trac.webkit.org/changeset/236730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465494</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-02 04:18:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466548</commentid>
    <comment_count>11</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2018-10-04 15:25:13 -0700</bug_when>
    <thetext>Reverted r236730 for reason:

This caused a consistent crash in test http/tests/media/media-stream/get-display-media-prompt.html.

Committed r236855: &lt;https://trac.webkit.org/changeset/236855&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466550</commentid>
    <comment_count>12</comment_count>
      <attachid>351637</attachid>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2018-10-04 15:29:33 -0700</bug_when>
    <thetext>Created attachment 351637
get-display-media-prompt-crash-log.txt

Attaching the crash log for the assertion this hit as well as sample builds:

ASSERTION FAILED: !m_text.isNull()
/Volumes/Data/slave/sierra-debug/build/Source/WebCore/platform/graphics/TextRun.h(60) : WebCore::TextRun::TextRun(const WTF::String &amp;, float, float, ExpansionBehavior, WebCore::TextDirection, bool, bool)
1   0x125bd9209 WTFCrash
2   0x116ae9fdb WTFCrashWithInfo(int, char const*, char const*, int)
3   0x119022f49 WebCore::TextRun::TextRun(WTF::String const&amp;, float, float, unsigned int, WebCore::TextDirection, bool, bool)
4   0x119011d1f WebCore::TextRun::TextRun(WTF::String const&amp;, float, float, unsigned int, WebCore::TextDirection, bool, bool)
5   0x119a04cc3 WebCore::MockRealtimeVideoSource::drawText(WebCore::GraphicsContext&amp;)
6   0x119a02786 WebCore::MockRealtimeVideoSource::generateFrame()
7   0x119a15405 WTF::RunLoop::Timer&lt;WebCore::MockRealtimeVideoSource&gt;::fired()
8   0x125c59d11 WTF::RunLoop::TimerBase::timerFired(__CFRunLoopTimer*, void*)
9   0x7fff9a3d0e04 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
10  0x7fff9a3d0a93 __CFRunLoopDoTimer
11  0x7fff9a3d05ea __CFRunLoopDoTimers
12  0x7fff9a3c7fc1 __CFRunLoopRun
13  0x7fff9a3c7544 CFRunLoopRunSpecific
14  0x7fff99926ebc RunCurrentEventLoopInMode
15  0x7fff99926cf1 ReceiveNextEventCommon
16  0x7fff99926b26 _BlockUntilNextEventMatchingListInModeWithFilter
17  0x7fff97ebda54 _DPSNextEvent
18  0x7fff986397ee -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
19  0x7fff97eb23db -[NSApplication run]
20  0x7fff97e7ce0e NSApplicationMain
21  0x7fffb01ea8c7 _xpc_objc_main
22  0x7fffb01e92e4 xpc_main
23  0x10f44e08e WebKit::XPCServiceMain(int, char const**)
24  0x10f44e382 main
25  0x7fffaff91235 start
26  0x1
LEAK: 1 WebPageProxy


http/tests/media/media-stream/get-display-media-prompt.html is crashing consistently on macOS Sierra and HighSierra Debug and is getting an invalid crash with macOS Mojave Debug.
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=http%2Ftests%2Fmedia%2Fmedia-stream%2Fget-display-media-prompt.html

https://build.webkit.org/results/Apple%20Sierra%20Debug%20WK2%20(Tests)/r236828%20(8227)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466551</commentid>
    <comment_count>13</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2018-10-04 15:31:35 -0700</bug_when>
    <thetext>I was able to reproduce this consistently with run-webkit-tests --debug http/tests/media/media-stream/get-display-media-prompt.html after the revision. before this revision I wasn&apos;t able to reproduce the assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466705</commentid>
    <comment_count>14</comment_count>
      <attachid>351678</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-05 09:53:15 -0700</bug_when>
    <thetext>Created attachment 351678
Fix test crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466711</commentid>
    <comment_count>15</comment_count>
      <attachid>351678</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-05 10:20:29 -0700</bug_when>
    <thetext>Comment on attachment 351678
Fix test crash

Clearing flags on attachment: 351678

Committed r236877: &lt;https://trac.webkit.org/changeset/236877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466712</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-05 10:20:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351273</attachid>
            <date>2018-10-01 11:10:10 -0700</date>
            <delta_ts>2018-10-01 13:24:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190142-20181001201008.patch</filename>
            <type>text/plain</type>
            <size>96469</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVlMzVhOWNiNTYxN2Vk
ZTk4ODNkYjU2YmQyZTZhYzJjZGIyZTBkMC4uNGFiMjliMjRkNjE0NGIwYTRiMWY5OWUxM2NjNjlj
ZjhlYTgzYWI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MiBAQAorMjAxOC0xMC0wMSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFJlYWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVy
ZU1lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2s6OlNvdXJjZTo6U291cmNlKTogVXBkYXRlIG9yZGVyIG9mIHBhcmFtZXRl
cnMgcGFzc2VkCisgICAgICAgIHRvIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFEZXZpY2VzUmVxdWVzdDo6c3RhcnQpOiBBU1NFUlQgaWYgZG9jdW1lbnQuZGV2aWNlSURIYXNo
U2FsdCBpcyBub3QgdGhlIHNhbWUKKyAgICAgICAgYXMgcGFzc2VkIHNhbHQuCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MgY29uc3QpOiBEb24ndCBuZWVkIHRv
IGhhc2ggSUQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRDYXBhYmls
aXRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suaWRsOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmFsbG93KTogUGFz
cyBoYXNoIHNhbHQgdG8gY3JlYXRlTWVkaWFTdHJlYW0uCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVS
ZWNlaXZlckZvclNvdXJjZSk6IFVwZGF0ZSBvcmRlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZAorICAg
ICAgICB0byBiYXNlIGNsYXNzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9T
b3VyY2U6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZSk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNl
KTogQ2FsY3VsYXRlIGhhc2hlZCBJRC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNlbGVjdFNldHRpbmdzKTogVXNlIG1faGFzaGVkSUQuCisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpoYXNoZWRJZCBjb25zdCk6IE5ldy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmRldmljZUlESGFzaFNhbHQgY29uc3QpOiBOZXcu
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVh
dGVNZWRpYVN0cmVhbSk6IFRha2UgaGFzaCBzYWx0LCBwYXNzIGl0IHdoZW4gY3JlYXRpbmcKKyAg
ICAgICAgYSBzb3VyY2UuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpSZWFs
dGltZVZpZGVvU291cmNlKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmg6CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldyYXBwZWRN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6V3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6Ok1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MpOiBVc2Ug
aGFzaGVkSWQgdG8gc2V0IGRldmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IFVwZGF0ZSBwYXJhbWV0ZXJzLgor
ICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y2FwYWJpbGl0aWVzKTogVXNlIGhhc2hlZElkIHRvIHNldCBkZXZpY2UgSUQuCisgICAgICAg
IChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncyk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaDoK
KworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1
ZGlvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyk6IERpdHRvLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKTogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKTogVXBkYXRlIGxvZ2dpbmcuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6
ZnJhbWVBdmFpbGFibGUpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OldpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUpOiBVcGRh
dGUgcGFyYW1ldGVycy4KKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0dGluZ3MpOiBVc2UgaGFzaGVkSWQgdG8gc2V0IGRl
dmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjYXBh
YmlsaXRpZXMpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcDoKKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZSk6IFVwZGF0ZSBwYXJhbWV0ZXJzLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKTogVXNl
IGhhc2hlZElkIHRvIHNldCBkZXZpY2UgSUQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6c2V0dGluZ3MpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmg6CisKIDIwMTgtMDktMzAgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIFBvc2l0aW9uIGluc3RlYWQgb2YgUmFu
Z2UgaW4gY3JlYXRlTWFya3VwSW50ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWYzNzU0NmQzNzUzZDliNmE5
NDhmNzU3ZjhmMTA4NjEwZDEyZmFkMS4uNDMxNDE5OTY1NTBjZDMyMDc5ZDAxZWVlOWFmNGY4ZTE4
ODI5YmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0xMC0wMSAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIFJl
YWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmRlY29kZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJj
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
OgorCiAyMDE4LTA5LTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gQ2xlYW4gdXAgUmVhbHRpbWVNZWRpYVNvdXJjZSBzZXR0
aW5ncyBjaGFuZ2UgaGFuZGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5j
cHAKaW5kZXggNzhmOWZiMjkwZmU1M2Y2YjE0MzU2ZTVjZDAyZDZkNDE1ZTc3MWU3YS4uNTZkZjhh
NjZkZWFkM2UwNDljNjI1YzdhYzQxOTFjNGE2MjhmNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgUmVmPENhbnZhc0NhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U+IENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOjpT
b3VyY2UKIAogLy8gRklYTUU6IEdpdmUgc291cmNlIGlkIGFuZCBuYW1lCiBDYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjazo6U291cmNlOjpTb3VyY2UoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZh
cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgZnJhbWVSZXF1ZXN0UmF0ZSkKLSAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoU3RyaW5nKCksIFR5cGU6OlZpZGVvLCBTdHJpbmcoKSkKKyAgICA6IFJl
YWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sICJDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjayJfcykKICAgICAsIG1fZnJhbWVSZXF1ZXN0UmF0ZShXVEZNb3ZlKGZyYW1lUmVxdWVzdFJh
dGUpKQogICAgICwgbV9yZXF1ZXN0RnJhbWVUaW1lcigqdGhpcywgJlNvdXJjZTo6cmVxdWVzdEZy
YW1lVGltZXJGaXJlZCkKICAgICAsIG1fY2FudmFzQ2hhbmdlZFRpbWVyKCp0aGlzLCAmU291cmNl
OjpjYXB0dXJlQ2FudmFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKaW5kZXggZTJjNWJmNzBhMjY3MjRm
ZDA1N2M5YTZhZTQ2MWFkNWFkYTUzZjllMC4uZDlkODM4YmY4YzcyMTJjZGE2NWQxN2I0OWVmYjlh
MTVlYzRmZDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCkBAIC0xMTcsNyArMTE3LDggQEAgdm9p
ZCBNZWRpYURldmljZXNSZXF1ZXN0OjpzdGFydCgpCiAgICAgICAgIGlmICghc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7CisgICAgICAgIEFTU0VSVChkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0
KCkuaXNFbXB0eSgpIHx8IGRvY3VtZW50LmRldmljZUlESGFzaFNhbHQoKSA9PSBkZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQpOwogICAgICAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKICAgICAgICAgVmVjdG9yPFJlZjxNZWRpYURldmlj
ZUluZm8+PiBkZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggYWNmZWNmODRlMzU2MDRlYTBlMzUw
MTQwOWRmZmI0YWNkMTExODMwMy4uNzA1MzNhZDUxZWQ4MWE1NjljMDJlNTVkYWViYmJiN2U5ZDRj
MTA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBNZWRpYVN0cmVh
bVRyYWNrOjpzdG9wVHJhY2soU3RvcE1vZGUgbW9kZSkKICAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOwogfQogCi1NZWRpYVN0cmVhbVRyYWNrOjpUcmFja1NldHRpbmdzIE1lZGlhU3RyZWFt
VHJhY2s6OmdldFNldHRpbmdzKERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK01lZGlhU3RyZWFt
VHJhY2s6OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoKSBjb25z
dAogewogICAgIGF1dG8mIHNldHRpbmdzID0gbV9wcml2YXRlLT5zZXR0aW5ncygpOwogICAgIFRy
YWNrU2V0dGluZ3MgcmVzdWx0OwpAQCAtMjIwLDkgKzIyMCw5IEBAIE1lZGlhU3RyZWFtVHJhY2s6
OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoRG9jdW1lbnQmIGRv
Y3VtZW50CiAgICAgaWYgKHNldHRpbmdzLnN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbigpKQogICAg
ICAgICByZXN1bHQuZWNob0NhbmNlbGxhdGlvbiA9IHNldHRpbmdzLmVjaG9DYW5jZWxsYXRpb24o
KTsKICAgICBpZiAoc2V0dGluZ3Muc3VwcG9ydHNEZXZpY2VJZCgpKQotICAgICAgICByZXN1bHQu
ZGV2aWNlSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3Ry
aW5nV2l0aFNhbHQoc2V0dGluZ3MuZGV2aWNlSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2Fs
dCgpKTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gc2V0dGluZ3MuZGV2aWNlSWQoKTsKICAg
ICBpZiAoc2V0dGluZ3Muc3VwcG9ydHNHcm91cElkKCkpCi0gICAgICAgIHJlc3VsdC5ncm91cElk
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhT
YWx0KHNldHRpbmdzLmdyb3VwSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAg
ICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBzZXR0aW5ncy5ncm91cElkKCk7CiAKICAgICAvLyBGSVhN
RTogc2hvdWxkbid0IHRoaXMgaW5jbHVkZSBkaXNwbGF5U3VyZmFjZSBhbmQgbG9naWNhbFN1cmZh
Y2U/CiAKQEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgVmVjdG9yPGJvb2w+IGNhcGFiaWxpdHlC
b29sZWFuVmVjdG9yKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLU1lZGlhU3RyZWFtVHJhY2s6OlRyYWNrQ2FwYWJpbGl0aWVzIE1l
ZGlhU3RyZWFtVHJhY2s6OmdldENhcGFiaWxpdGllcyhEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0
CitNZWRpYVN0cmVhbVRyYWNrOjpUcmFja0NhcGFiaWxpdGllcyBNZWRpYVN0cmVhbVRyYWNrOjpn
ZXRDYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIGF1dG8gY2FwYWJpbGl0aWVzID0gbV9wcml2
YXRlLT5jYXBhYmlsaXRpZXMoKTsKICAgICBUcmFja0NhcGFiaWxpdGllcyByZXN1bHQ7CkBAIC0z
MTAsOSArMzEwLDkgQEAgTWVkaWFTdHJlYW1UcmFjazo6VHJhY2tDYXBhYmlsaXRpZXMgTWVkaWFT
dHJlYW1UcmFjazo6Z2V0Q2FwYWJpbGl0aWVzKERvY3VtZW50JgogICAgIGlmIChjYXBhYmlsaXRp
ZXMuc3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKCkpCiAgICAgICAgIHJlc3VsdC5lY2hvQ2FuY2Vs
bGF0aW9uID0gY2FwYWJpbGl0eUJvb2xlYW5WZWN0b3IoY2FwYWJpbGl0aWVzLmVjaG9DYW5jZWxs
YXRpb24oKSk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0RldmljZUlkKCkpCi0gICAg
ICAgIHJlc3VsdC5kZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmhhc2hTdHJpbmdXaXRoU2FsdChjYXBhYmlsaXRpZXMuZGV2aWNlSWQoKSwgZG9jdW1lbnQu
ZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gY2FwYWJpbGl0
aWVzLmRldmljZUlkKCk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0dyb3VwSWQoKSkK
LSAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQoY2FwYWJpbGl0aWVzLmdyb3VwSWQoKSwgZG9jdW1l
bnQuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBjYXBhYmls
aXRpZXMuZ3JvdXBJZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXgg
NGIwMGUwNDA0OWQ0MGZhMjRiMDhhZWQwMGIxYTVlYmU0NGE5NDcwMC4uZTM0NmY4MTNlNmNmYjlh
NzAyYWM1ZTE2ODVkMzMzZWQyYTA1Y2JmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTEwNSw3ICsxMDUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBkZXZpY2VJZDsKICAgICAgICAgU3RyaW5nIGdyb3Vw
SWQ7CiAgICAgfTsKLSAgICBUcmFja1NldHRpbmdzIGdldFNldHRpbmdzKERvY3VtZW50JikgY29u
c3Q7CisgICAgVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpIGNvbnN0OwogCiAgICAgc3RydWN0
IFRyYWNrQ2FwYWJpbGl0aWVzIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxMb25nUmFuZ2U+IHdp
ZHRoOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIGRldmljZUlk
OwogICAgICAgICBTdHJpbmcgZ3JvdXBJZDsKICAgICB9OwotICAgIFRyYWNrQ2FwYWJpbGl0aWVz
IGdldENhcGFiaWxpdGllcyhEb2N1bWVudCYpIGNvbnN0OworICAgIFRyYWNrQ2FwYWJpbGl0aWVz
IGdldENhcGFiaWxpdGllcygpIGNvbnN0OwogCiAgICAgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFp
bnRzJiBnZXRDb25zdHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH0KICAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29u
c3RyYWludHM+JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKaW5k
ZXggMmI3MWNjZTQ0N2IwZTliY2NjMzI3ZTY2ZjUzMjBhYzg1YzUzYTJhNS4uYmNmYWM4ZjljOWU1
NjAxODI0Nzk4MTA0YzcxMjhkOGNlOWM2ZDdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCkBAIC00Nyw5ICs0
Nyw5IEBAIGVudW0gTWVkaWFTdHJlYW1UcmFja1N0YXRlIHsgImxpdmUiLCAiZW5kZWQiIH07CiAg
ICAgTWVkaWFTdHJlYW1UcmFjayBjbG9uZSgpOwogICAgIFtJbXBsZW1lbnRlZEFzPXN0b3BUcmFj
a10gdm9pZCBzdG9wKCk7CiAKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tDYXBh
YmlsaXRpZXMgZ2V0Q2FwYWJpbGl0aWVzKCk7CisgICAgTWVkaWFUcmFja0NhcGFiaWxpdGllcyBn
ZXRDYXBhYmlsaXRpZXMoKTsKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludHMgZ2V0Q29uc3RyYWlu
dHMoKTsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0
aW5ncygpOworICAgIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpOwogICAgIFByb21p
c2U8dm9pZD4gYXBwbHlDb25zdHJhaW50cyhvcHRpb25hbCBNZWRpYVRyYWNrQ29uc3RyYWludHMg
Y29uc3RyYWludHMpOwogCiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm92ZXJjb25zdHJh
aW5lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDEyNWQ2ZDE3ZjQ0YjgxM2IwNTMxMGM5ODMyZDZmZjJm
YjZiM2FmYTAuLjg2NjE5Y2Q0ZTI1NTEyNWNkNmIyNzAxZjdiZjk1OTYxMmJkNDBjOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcApAQCAtMzAwLDE2ICszMDAsMTYgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojph
bGxvdyhDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0QK
ICAgICAgICAgbV9wZW5kaW5nQWN0aXZhdGlvbk1lZGlhU3RyZWFtID0gUGVuZGluZ0FjdGl2YXRp
b25NZWRpYVN0cmVhbTo6Y3JlYXRlKFdURk1vdmUocHJvdGVjdG9yKSwgKnRoaXMsIFdURk1vdmUo
c3RyZWFtKSk7CiAgICAgfTsKIAotICAgIG1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmRldmlj
ZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci0gICAgbV9yZXF1ZXN0LnZp
ZGVvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRpZmll
ckhhc2hTYWx0KTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQuZGV2aWNlSURIYXNo
U2FsdCgpLmlzRW1wdHkoKSB8fCBkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0KCkgPT0gZGV2aWNl
SWRlbnRpZmllckhhc2hTYWx0KTsKKyAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92
ZShhdWRpb0RldmljZSksIFdURk1vdmUodmlkZW9EZXZpY2UpLCBtX3JlcXVlc3QpOworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKFdU
Rk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCksIFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgbV9yZXF1ZXN0KTsKIAogICAg
IGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKICNpZiBF
TkFCTEUoV0VCX1JUQykKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50
LnBhZ2UoKSkKICAgICAgICAgcGFnZS0+cnRjQ29udHJvbGxlcigpLmRpc2FibGVJQ0VDYW5kaWRh
dGVGaWx0ZXJpbmdGb3JEb2N1bWVudChkb2N1bWVudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDYwNWYy
ZTc3MGFmNWRhMTNiYzQyODY3YTliMDlkZTYyMmE0YmNjMGMuLjUxYmZlYTBmNjRlMjlmODRkN2I3
ZGZjNWIxZjMwOWIzNWI4Y2FmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMjMxLDcgKzIzMSw4IEBAIHZvaWQgTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5k
aWRhdGUmIGNhbmRpZGF0CiAKIFJlZjxSVENSdHBSZWNlaXZlcj4gTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpjcmVhdGVSZWNlaXZlckZvclNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4mJiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxSVENSdHBSZWNlaXZlckJhY2tlbmQ+JiYg
YmFja2VuZCkKIHsKLSAgICBhdXRvIHJlbW90ZVRyYWNrUHJpdmF0ZSA9IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpLCBTdHJpbmcgeyBzb3VyY2UtPmlkKCkg
fSk7CisgICAgU3RyaW5nIHRyYWNrSUQgPSBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpOworICAgIGF1
dG8gcmVtb3RlVHJhY2tQcml2YXRlID0gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShX
VEZNb3ZlKHNvdXJjZSksIFdURk1vdmUodHJhY2tJRCkpOwogICAgIGF1dG8gcmVtb3RlVHJhY2sg
PSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKm1fcGVlckNvbm5lY3Rpb24uc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBXVEZNb3ZlKHJlbW90ZVRyYWNrUHJpdmF0ZSkpOwogCiAgICAgcmV0dXJu
IFJUQ1J0cFJlY2VpdmVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocmVtb3RlVHJhY2spLCBXVEZN
b3ZlKGJhY2tlbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDU2ZjM3YzExNjZiNmJmOWU4
NjNjNDI5Njc4NzA5YzQ4YmM2MDI2MjQuLmZjOGFlNjZjYjUzMmRmYjkwMzM4OWRmNDJjM2MwYWRm
MjY4NTNlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlKGZsb2F0IHNhbXBsZVJhdGUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKG1ha2VT
dHJpbmcoIldlYkF1ZGlvLSJfcywgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25O
b2RlIikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlIl9zKQogewogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgK
aW5kZXggMzBlYzQxYTYzYjg4OGQxNWMwMzQ1YTkyMzMzMDgwNDVkOTEyYTVmZC4uYjQyNzEwYWI4
YTFkMzBhYzAyOTMwNmVjYmI4MDM3MTY0MzBiZDJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaApAQCAtODc5LDcg
Kzg3OSw2IEBAIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzIHsKIAogICAgIE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwIG1hbmRhdG9yeUNvbnN0cmFpbnRzOwogICAgIFZlY3RvcjxNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcD4gYWR2YW5jZWRDb25zdHJhaW50czsKLSAgICBTdHJpbmcgZGV2aWNl
SURIYXNoU2FsdDsKICAgICBib29sIGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGIzNzYyOTQ3ZDY4YjY4MTRmOWY0
MmZjNGE5Y2M3MmI4MTQ2ZGNlNzEuLmM2M2JmNzlkYjRlYTZjZWFkNDRlYmY2ZmFlZTZhNGIwMWZi
YjcwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApAQCAtMzgsMTAg
KzM4LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBhdWRpb1RyYWNrLCBTdHJpbmcmJiBhdWRpb1RyYWNr
SWQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFdURk1vdmUoYXVkaW9UcmFja0lkKSwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZygpKQorICAgIDogUmVhbHRpbWVN
ZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgInJlbW90ZSBhdWRp
byJfcywgV1RGTW92ZShhdWRpb1RyYWNrSWQpKQogICAgICwgbV9hdWRpb1RyYWNrKFdURk1vdmUo
YXVkaW9UcmFjaykpCiB7Ci0gICAgc2V0TmFtZSgicmVtb3RlIGF1ZGlvIik7CiAgICAgbm90aWZ5
TXV0ZWRDaGFuZ2UoIW1fYXVkaW9UcmFjayk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2UuY3BwCmluZGV4IDc5ZjNmOWE2NzI3M2FjNDc3NjcxZmY0NzhiYmYyOWY2M2ZlYjNk
MWUuLmQ1YjQ5NjRhZmI1NWU2N2QxODgzMDE4M2M3NWZlNGM4YzJlOWI3MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAtMzgsMTAgKzM4LDkgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpSZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVy
ZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB2aWRlb1RyYWNrSWQpCi0gICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFdURk1vdmUodmlkZW9UcmFja0lkKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6VmlkZW8sIFN0cmluZygpKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgInJlbW90ZSB2aWRlbyJfcywgV1RGTW92ZSh2aWRl
b1RyYWNrSWQpKQogICAgICwgbV92aWRlb1RyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpCiB7Ci0g
ICAgc2V0TmFtZSgicmVtb3RlIHZpZGVvIik7CiAgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoIW1fdmlk
ZW9UcmFjayk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNGMxOGY0ZjA4ZDJlMTA0
NDQxNjY3YjU3NWIyNzU4MmQzNGEwNmRhYy4uNzIxNDE4MjczNTM3ZTlhNWQwYTAzNjg3ZjljMWZm
ZGQzNGEwNWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTQ3LDE0ICs0NywxNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVk
aWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUp
Ci0gICAgOiBtX2lkKGlkKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBo
YXNoU2FsdCkKKyAgICA6IG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICAsIG1f
cGVyc2lzdGVudElEKFdURk1vdmUoZGV2aWNlSUQpKQogICAgICwgbV90eXBlKHR5cGUpCi0gICAg
LCBtX25hbWUobmFtZSkKKyAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQogewotICAgIGlmICht
X2lkLmlzRW1wdHkoKSkKLSAgICAgICAgbV9pZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmco
KTsKLSAgICBtX3BlcnNpc3RlbnRJRCA9IG1faWQ7CisgICAgaWYgKG1fcGVyc2lzdGVudElELmlz
RW1wdHkoKSkKKyAgICAgICAgbV9wZXJzaXN0ZW50SUQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCk7CisgICAgZWxzZQorICAgICAgICBtX2hhc2hlZElEID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG1fcGVyc2lzdGVudElELCBt
X2lkSGFzaFNhbHQpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9ic2VydmVy
KFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikKQEAgLTYwOCwxMCArNjEw
LDkgQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncyhjb25zdCBNZWRp
YUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgRmwKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgICAgIEFTU0VSVChjb25zdHJhaW50LmlzU3RyaW5nKCkpOwotICAgICAg
ICAgICAgQVNTRVJUKCFjb25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0LmlzRW1wdHkoKSk7Cisg
ICAgICAgICAgICBBU1NFUlQoIW1faGFzaGVkSUQuaXNFbXB0eSgpKTsKIAotICAgICAgICAgICAg
YXV0byBoYXNoZWRJRCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChtX3BlcnNpc3RlbnRJRCwgY29uc3RyYWludHMuZGV2aWNlSURIYXNo
U2FsdCk7Ci0gICAgICAgICAgICBkb3VibGUgY29uc3RyYWludERpc3RhbmNlID0gZG93bmNhc3Q8
U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCkuZml0bmVzc0Rpc3RhbmNlKGhhc2hlZElEKTsK
KyAgICAgICAgICAgIGRvdWJsZSBjb25zdHJhaW50RGlzdGFuY2UgPSBkb3duY2FzdDxTdHJpbmdD
b25zdHJhaW50Pihjb25zdHJhaW50KS5maXRuZXNzRGlzdGFuY2UobV9oYXNoZWRJRCk7CiAgICAg
ICAgICAgICBpZiAoc3RkOjppc2luZihjb25zdHJhaW50RGlzdGFuY2UpKSB7CiAgICAgICAgICAg
ICAgICAgZmFpbGVkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQubmFtZSgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtOTU4LDYgKzk1OSwxNiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0
aW9uKQogICAgIH0pOwogfQogCitjb25zdCBTdHJpbmcmIFJlYWx0aW1lTWVkaWFTb3VyY2U6Omhh
c2hlZElkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNoZWRJRDsKK30KKworU3RyaW5nIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OmRldmljZUlESGFzaFNhbHQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2lkSGFzaFNhbHQ7Cit9CisKIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyOjp+T2Jz
ZXJ2ZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDc3ZGEzMDhmNGNhYzg0NjZlZTli
NDI3YWI1ZWIxNThmNWEwYTNmM2UuLmJjZWY1NjliYTU4NGIxZWFiYjVjYTIyYmVkM2I4NjZiYTdh
ZGRhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTg4LDEwICs4OCwxMCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlKCkgPSBkZWZhdWx0OwogCi0gICAgY29u
c3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBjb25zdCBTdHJpbmcm
IGhhc2hlZElkKCkgY29uc3Q7CisgICAgU3RyaW5nIGRldmljZUlESGFzaFNhbHQoKSBjb25zdDsK
IAogICAgIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJz
aXN0ZW50SUQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGVyc2lzdGVudElEKFN0cmluZyYmIHBl
cnNpc3RlbnRJRCkgeyBtX3BlcnNpc3RlbnRJRCA9IFdURk1vdmUocGVyc2lzdGVudElEKTsgfQog
CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgQXVkaW8sIFZpZGVvIH07CiAgICAgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CkBAIC0xNjYsNyArMTY2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkZWxheVNhbXBsZXMoU2Vjb25kcykgeyB9OwogCiBwcm90ZWN0
ZWQ6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBUeXBlLCBjb25z
dCBTdHJpbmcmIG5hbWUpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9KTsK
IAogICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYp
OwogCkBAIC0yMDQsNyArMjA0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9tdXRlZCB7IGZh
bHNlIH07CiAKLSAgICBTdHJpbmcgbV9pZDsKKyAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OworICAg
IFN0cmluZyBtX2hhc2hlZElEOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKICAgICBUeXBl
IG1fdHlwZTsKICAgICBTdHJpbmcgbV9uYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAppbmRleCA1ZTFiNWE1Zjk0ODZjOWIxNDkwMWIzY2EwOGFmZTdhMWY1MTIzM2FmLi5hNmY4
ZmYzMTNmZWM5NmFlZDViODkwMDQ4YjNiZjY0NTk0NDhkMzc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcApAQCAtNzksMTQgKzc5LDE0IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKQogCiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpID0gZGVmYXVsdDsKIAotdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVh
bUhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlciwgQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNl
LCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYg
cmVxdWVzdCkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJl
YW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIsIFN0cmluZyYmIGhh
c2hTYWx0LCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRl
b0RldmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIFZlY3Rv
cjxSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IGF1ZGlvU291cmNlczsKICAgICBWZWN0b3I8UmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+PiB2aWRlb1NvdXJjZXM7CiAgICAgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50OwogCiAgICAgaWYgKGF1ZGlvRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gYXVkaW9T
b3VyY2UgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShh
dWRpb0RldmljZSksICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpOworICAgICAgICBhdXRvIGF1
ZGlvU291cmNlID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0
cmFpbnRzKTsKICAgICAgICAgaWYgKGF1ZGlvU291cmNlKQogICAgICAgICAgICAgYXVkaW9Tb3Vy
Y2VzLmFwcGVuZChhdWRpb1NvdXJjZS5zb3VyY2UoKSk7CiAgICAgICAgIGVsc2UgewpAQCAtMTAy
LDcgKzEwMiw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxlCiAgICAgaWYgKHZpZGVvRGV2aWNl
KSB7CiAgICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHZpZGVvU291cmNlOwogICAgICAgICBp
ZiAodmlkZW9EZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVy
YSkKLSAgICAgICAgICAgIHZpZGVvU291cmNlID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgICAgIHZpZGVvU291cmNlID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
JnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZp
ZGVvU291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVT
b3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOwog
CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRE
aXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYKICAgICB9CiB9CiAK
LXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25z
dCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlcXVlc3QsIFZlY3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9E
ZXZpY2VJbmZvLCBWZWN0b3I8RGV2aWNlSW5mbz4mIHZpZGVvRGV2aWNlSW5mbywgU3RyaW5nJiBm
aXJzdEludmFsaWRDb25zdHJhaW50KQordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpn
ZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVzdCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFZlY3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9EZXZpY2VJbmZvLCBWZWN0
b3I8RGV2aWNlSW5mbz4mIHZpZGVvRGV2aWNlSW5mbywgU3RyaW5nJiBmaXJzdEludmFsaWRDb25z
dHJhaW50KQogewogICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKICAgICBpZiAocmVxdWVz
dC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKQEAgLTIzOSw3ICsyMzksNyBAQCB2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFT
dHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3Ig
PSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCB7IH0pOwor
ICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKICAgICAg
ICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+
c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25z
dHJhaW50KSkKICAgICAgICAgICAgICAgICBhdWRpb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VP
ckVycm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKIApAQCAtMjUz
LDcgKzI1Myw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlh
RGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRl
dmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAg
IGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShkZXZpY2UsIHsgfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRl
b0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNo
U2FsdCB9LCB7IH0pOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JF
cnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25z
dHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNl
SW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCks
IGRldmljZX0pOwogCkBAIC0yNzksNyArMjc5LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwK
ICAgICBpZiAocmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxh
eU1lZGlhKQogICAgICAgICBnZXREaXNwbGF5TWVkaWFEZXZpY2VzKHJlcXVlc3QsIHZpZGVvRGV2
aWNlSW5mbywgZmlyc3RJbnZhbGlkQ29uc3RyYWludCk7CiAgICAgZWxzZQotICAgICAgICBnZXRV
c2VyTWVkaWFEZXZpY2VzKHJlcXVlc3QsIGF1ZGlvRGV2aWNlSW5mbywgdmlkZW9EZXZpY2VJbmZv
LCBmaXJzdEludmFsaWRDb25zdHJhaW50KTsKKyAgICAgICAgZ2V0VXNlck1lZGlhRGV2aWNlcyhy
ZXF1ZXN0LCBTdHJpbmcgeyBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQgfSwgYXVkaW9EZXZpY2VJ
bmZvLCB2aWRlb0RldmljZUluZm8sIGZpcnN0SW52YWxpZENvbnN0cmFpbnQpOwogCiAgICAgaWYg
KChyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiBhdWRpb0RldmljZUluZm8uaXNF
bXB0eSgpKSB8fCAocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgdmlkZW9EZXZp
Y2VJbmZvLmlzRW1wdHkoKSkpIHsKICAgICAgICAgaW52YWxpZEhhbmRsZXIoZmlyc3RJbnZhbGlk
Q29uc3RyYWludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggODFmYjg1YzIx
MDI5MWY5ZTJjZGIyNjdmMjEzMjE4MTNiN2RkZjViZC4uNGUxNzAyN2RlNmVjYzhiNDA3OWJiNDVj
YjA4OTc2MjM0MmM3MjUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNjUs
NyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0
cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJhaW50c0hhbmRs
ZXImJiwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgU3RyaW5nJiYpOwogCiAgICAgdXNpbmcg
TmV3TWVkaWFTdHJlYW1IYW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKFJlZlB0cjxNZWRpYVN0
cmVhbVByaXZhdGU+JiYpPjsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3
TWVkaWFTdHJlYW1IYW5kbGVyJiYsIENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVy
ZURldmljZSYmIHZpZGVvRGV2aWNlLCBjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYsIFN0
cmluZyYmLCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRl
b0RldmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0Jik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBnZXRNZWRpYVN0cmVhbURldmljZXMoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVE
ZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0
cmluZyYpOwpAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHZvaWQg
Z2V0RGlzcGxheU1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmLCBWZWN0b3I8
RGV2aWNlSW5mbz4mLCBTdHJpbmcmKTsKLSAgICB2b2lkIGdldFVzZXJNZWRpYURldmljZXMoY29u
c3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgVmVjdG9yPERldmljZUluZm8+JiBhdWRpb0RldmljZXMs
IFZlY3RvcjxEZXZpY2VJbmZvPiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmKTsKKyAgICB2b2lkIGdl
dFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgU3RyaW5nJiYsIFZl
Y3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8RGV2aWNlSW5mbz4mIHZpZGVv
RGV2aWNlcywgU3RyaW5nJik7CiAKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9kZXZpY2VD
aGFuZ2VkT2JzZXJ2ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKaW5kZXgg
ZjljNDdjYWE4ZTBlODU4NGRiOTJjOTRjMTNlOWFjM2NlNGYwMWE2OC4uOTk3OGQzNWMwOGI1ZWM5
NmM4MWRmOWFiNjczYWU3MDU1ZTkyOTI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkKIHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZp
cnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1
YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKIAog
cHJvdGVjdGVkOgogICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CkBAIC02Niw3
ICs2Niw3IEBAIGNsYXNzIFZpZGVvQ2FwdHVyZUZhY3RvcnkKIHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5WaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
LCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2wsIGJvb2wpIHsgfQogCiBwcm90ZWN0ZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGY1ZGI5YjA5N2U3NjQzOWFiMTE5OGU3ZWU2MmJl
MDVhMjJkM2Q3YWIuLjU2NjRiMDkyMTAwNzJlMTFiYmIwYThjZGM1Y2JiMjQyMjEyNWRhNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBT
dHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNl
KGlkLCBUeXBlOjpWaWRlbywgbmFtZSkKK1JlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0aW1lVmlk
ZW9Tb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KQor
ICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5k
ZXggODdhYjgwYTE4ZGRhZTVjYzYxMzUxNDAzNDBiMjY4MTI2OTNiMDM1YS4uYTQ5Y2Y2Y2NmNjZi
MDM5YjkxNTkyNjZjYTg5NDVjODUwNGEyZDczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDIs
NyArNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVWaWRlb1NvdXJjZSgpOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBj
b25zdCBTdHJpbmcmIG5hbWUpOworICAgIFJlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKIAogICAgIHZvaWQgcHJlcGFyZVRv
UHJvZHVjZURhdGEoKTsKICAgICBib29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9w
dGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9u
YWw8ZG91YmxlPikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDc0ZmEzOWM5ZTY3MTQxMzVhZWVhYTNhMzRiYTRi
OTYyNzFjYjNjMGUuLjY3MzFlMmQ0YjU1NjM0ZDFlOWUxYTYzNjI3MDA3ZDQ3NDcyNzUzYjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9H
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
CkBAIC01Myw5ICs1Myw5IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1Zygp
CiAKIGNsYXNzIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVk
aW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KSBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJuIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAgICBy
ZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKQEAg
LTY1LDcgKzY1LDcgQEAgc3RhdGljIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnkm
IGxpYldlYlJUQ0F1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkoKQogICAgIHJldHVybiBmYWN0b3J5
LmdldCgpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgYXV0byBkZXZpY2Ug
PSBHU3RyZWFtZXJBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5nc3RyZWFt
ZXJEZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmljZSkgewpAQCAtNzMsNyAr
NzMsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELAogICAgICAgICByZXR1cm4gQ2FwdHVyZVNv
dXJjZU9yRXJyb3IoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICB9CiAKLSAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKGRldmljZS52
YWx1ZSgpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEdTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZShTdHJpbmcgeyBkZXZpY2UudmFsdWUoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0
KSkpOwogCiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291
cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CkBAIC04OCwxNSArODgsMTUgQEAg
QXVkaW9DYXB0dXJlRmFjdG9yeSYgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5
KCkKICAgICByZXR1cm4gbGliV2ViUlRDQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSgpOwogfQog
Ci1HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3Vy
Y2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRp
bywgZGV2aWNlLmxhYmVsKCkpCitHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1l
ckF1ZGlvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZp
Y2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVy
KHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVyQXVkaW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsKICAg
ICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKIH0KIAotR1N0cmVhbWVyQXVkaW9DYXB0dXJl
U291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2VJ
RCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIG5hbWUpCitHU3RyZWFtZXJBdWRp
b0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVy
KHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVyQXVkaW9DYXB0dXJlcj4oKSkKIHsKICAgICBpbml0
aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA3NTllODE0NzExNTI3YWVmZDVmMGRlMGNlNmRhYjA2
MDUwNDQwMGYxLi5mYTM0MTk0ZGEyZTM1Y2RlMGExZmVkZWRlOWZlZWU2NGQ2ZDhmZmQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC0z
MCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAg
IHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVy
ZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIG92ZXJyaWRlOwpAQCAtNDAsOCArNDAsOCBAQCBwdWJs
aWM6CiAgICAgR1N0cmVhbWVyQ2FwdHVyZXIqIGNhcHR1cmVyKCkgeyByZXR1cm4gbV9jYXB0dXJl
ci5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
KEdTdHJlYW1lckNhcHR1cmVEZXZpY2UpOwotICAgIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIEdTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCk7CisgICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAgdmlydHVhbCB+R1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKCk7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEo
KSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4
IDIwOWRiNjU5NzkyNzYzODVlZGMxMjEzMzZlNjEyZDg4YzFkNDlmZGUuLjk1MDkxM2MwN2RiMWRm
Y2QzZGYyMmVhNzkzNzI5MzRmZmFhZWRmMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9H
U3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC04MSw3ICs4MSw3IEBAIERpc3BsYXlD
YXB0dXJlRmFjdG9yeSYgbGliV2ViUlRDRGlzcGxheUNhcHR1cmVTb3VyY2VGYWN0b3J5KCkKICAg
ICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBH
U3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewog
ICAgIGF1dG8gZGV2aWNlID0gR1N0cmVhbWVyVmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2lu
Z2xldG9uKCkuZ3N0cmVhbWVyRGV2aWNlV2l0aFVJRChkZXZpY2VJRCk7CiAgICAgaWYgKCFkZXZp
Y2UpIHsKQEAgLTg5LDcgKzg5LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwKICAgICAgICAg
cmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAg
fQogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEdTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZShkZXZpY2UudmFsdWUoKSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnZhbHVlKCksIFdURk1vdmUoaGFz
aFNhbHQpKSk7CiAKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQg
PSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKQEAgLTEwOSwxNSArMTA5
LDE1IEBAIERpc3BsYXlDYXB0dXJlRmFjdG9yeSYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
OjpkaXNwbGF5RmFjdG9yeSgpCiAgICAgcmV0dXJuIGxpYldlYlJUQ0Rpc3BsYXlDYXB0dXJlU291
cmNlRmFjdG9yeSgpOwogfQogCi1HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IGdjaGFyICpzb3VyY2VfZmFjdG9yeSkKLSAgICA6IFJlYWx0aW1lTWVkaWFT
b3VyY2UoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBuYW1lKQor
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2Uo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBnY2hhciAqc291cmNlX2ZhY3RvcnkpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmlj
ZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6bWFrZV91bmlx
dWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oc291cmNlX2ZhY3RvcnkpKQogewogICAgIGluaXRp
YWxpemVHU3RyZWFtZXJEZWJ1ZygpOwogfQogCi1HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6
OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmlj
ZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgZGV2aWNlLmxhYmVsKCkpCitHU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJD
YXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcgeyBkZXZp
Y2UubGFiZWwoKSB9LCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVyVmlk
ZW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsKICAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRl
eCA2N2JjZDFhMjBhYjAxZDNlNzE2YTAwNjcyYWNmNzFiNTkzMDQ4Nzc3Li4xNjNjZTAwNzM4ZTg2
ODA4M2IxNDIxY2U5MDA1MjQ3ZjFmYWY3NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC00MSw4ICs0MSw4IEBAIHB1YmxpYzoKICAg
ICBHU3RyZWFtZXJDYXB0dXJlciogY2FwdHVyZXIoKSB7IHJldHVybiBtX2NhcHR1cmVyLmdldCgp
OyB9CiAKIHByb3RlY3RlZDoKLSAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3Qg
U3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBnY2hhciAqIHNvdXJj
ZV9mYWN0b3J5KTsKLSAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2Fw
dHVyZURldmljZSk7CisgICAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgZ2NoYXIgKiBz
b3VyY2VfZmFjdG9yeSk7CisgICAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKEdTdHJlYW1l
ckNhcHR1cmVEZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KTsKICAgICB2aXJ0dWFsIH5HU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UoKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIG92
ZXJyaWRlOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApp
bmRleCA5ZjAxZTY3MTIwMjBiMWFmYzAzOWZmZWZjMGYwNzZlYmRmNTU3NGQ4Li43ZGMxMTY5MzA0
M2ExZjJkODlhZTZjYmI5ODQwMmFlMWMzODc1MThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zMCwxNiArMzAs
MTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXcmFwcGVkTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UgOiBwdWJsaWMgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UgewogcHVibGljOgotICAg
IFdyYXBwZWRNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBj
b25zdCBTdHJpbmcmIG5hbWUpCi0gICAgICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoZGV2
aWNlSUQsIG5hbWUpCisgICAgV3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICAgICAgOiBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShoYXNoU2FsdCkpCiAgICAgewogICAgIH0KIH07CiAKLUNhcHR1cmVTb3VyY2VPckVy
cm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwKLSAgICBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwKKyAgICBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoZGV2
aWNlSUQsIG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja0dTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShoYXNoU2FsdCkpKTsKIAogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFw
cGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTU4
LDkgKzU4LDkgQEAgdm9pZCBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjphcHBseUNv
bnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGMKICAgICBtX3dyYXBwZWRTb3VyY2Ut
PmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMsIFdURk1vdmUoc3VjY2Vzc0hhbmRsZXIpLCBX
VEZNb3ZlKGZhaWx1cmVIYW5kbGVyKSk7CiB9CiAKLU1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2U6Ok1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlKGRldmljZUlELCBuYW1lKQotICAgICwgbV93cmFwcGVkU291cmNlKHN0ZDo6bWFrZV91bmlx
dWU8V3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPihkZXZpY2VJRCwgbmFtZSkpCitNb2Nr
R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkK
KyAgICA6IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgbmFtZSwgaGFzaFNh
bHQpCisgICAgLCBtX3dyYXBwZWRTb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxXcmFwcGVkTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U+KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSkpCiB7CiAgICAgbV93cmFwcGVkU291cmNlLT5hZGRPYnNlcnZlcigqdGhp
cyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UuaAppbmRleCBiNTcxODFkOWExYzljOWFkNzBmMWY1NjY3OWQzNzU1ZTQ1NGIxMDgz
Li44YTRiYmU4NWYzNzdkZTY3MDY0YTkwOGViNDE2MTU2MmZhNGQ2N2ZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1l
ckF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTI5
LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNb2NrR1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlIGZpbmFsIDogcHVibGljIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIE1vY2tHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lKTsKKyAgICBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAgfk1vY2tH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFp
cjxTdHJpbmcsIFN0cmluZz4+IGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50
cyYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwg
U3VjY2Vzc0hhbmRsZXImJiwgRmFpbHVyZUhhbmRsZXImJikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXgg
NDRkOTRjYzI3ZTMyNjcyYmI0YzQ0MjA2MzUzMWJjODJmMmJjZjRjYi4uNjQ2M2RjMTgyMDI2YTkx
ODcyODk2YjA5NDIwOTliNDU4MDUyY2ZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjEsMTAgKzYxLDEwIEBA
IHB1YmxpYzoKICAgICB9CiB9OwogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsCi0gICAgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsCisgICAgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGRldmljZUlELCBuYW1lKSk7Cisg
ICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQp
KSk7CiAKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpj
b25zdHJhaW50cykpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05NSw5ICs5NSw5IEBAIHZvaWQg
TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVk
aWFTYW1wbGUmIHNhbXBsZSkKICAgICB9CiB9CiAKLU1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2U6Ok1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlKGRldmljZUlELCBuYW1lLCAiYXBwc3JjIikKLSAgICAsIG1fd3JhcHBlZFNvdXJjZShzdGQ6
Om1ha2VfdW5pcXVlPFdyYXBwZWRNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4oZGV2aWNlSUQsIG5h
bWUpKQorTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6TW9ja0dTdHJlYW1lclZpZGVv
Q2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQpCisgICAgOiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIG5h
bWUsIGhhc2hTYWx0LCAiYXBwc3JjIikKKyAgICAsIG1fd3JhcHBlZFNvdXJjZShzdGQ6Om1ha2Vf
dW5pcXVlPFdyYXBwZWRNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4oV1RGTW92ZShkZXZpY2VJRCks
IFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSkKIHsKICAgICBtX3dyYXBwZWRTb3Vy
Y2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9j
a0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGQwOGFhNDg5OTU4NWU5YTMzNWQy
OTM3ZWM3MTNmY2Q4OTc5YzVmNWQuLmMyNDg2MzIzYjMxYTNlZTVmZDQ0NjE0OTExZDg4YjZkYTNj
ZWY5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBXcmFwcGVkTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U7CiAvLyB0byB0aGUgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UgY2xhc3MgYnkg
d3JhcHBpbmcgb3VyIG93biBzdWJjbGFzcyBvZiBpdC4KIGNsYXNzIE1vY2tHU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2UgZmluYWwgOiBwdWJsaWMgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
LCBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgTW9ja0dTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJp
bmcmIG5hbWUpOworICAgIE1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKICAgICB+TW9ja0dT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWly
PFN0cmluZywgU3RyaW5nPj4gYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRz
Jik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmLCBT
dWNjZXNzSGFuZGxlciYmLCBGYWlsdXJlSGFuZGxlciYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLmgKaW5kZXggZDM4ZTFhZTYyNjUwYTZlMzY0NzNiMTFjYjFlYzlmMWUwMTQyMmUy
OS4uM2I0OWY0NmZkYTNlYzMyNmM3Mzg1MTczZmE2Y2QyN2VjZjI5ZWY2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgUGl4ZWxCdWZmZXJSZXNp
emVyOwogCiBjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZVZpZGVv
U291cmNlLCBwcml2YXRlIE9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyopOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVvQ2FwdHVyZUZh
Y3RvcnkmIGZhY3RvcnkoKTsKIApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
YXB0dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJl
T3V0cHV0KiwgQ01TYW1wbGVCdWZmZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKTsKIAogcHJp
dmF0ZToKLSAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBB
dG9taWNTdHJpbmcmKTsKKyAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2Uq
LCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpOwogICAgIHZpcnR1YWwgfkFWVmlkZW9D
YXB0dXJlU291cmNlKCk7CiAKICAgICBib29sIHNldHVwU2Vzc2lvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291
cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLm1tCmluZGV4IDRjYjJmOTM5N2VhY2MxNWY3NmRiZGY0YjYzNzgwODkyODUw
MzVlZDAuLjUxOTYwODIyMmU2NjE0YWIyZWRjZWMyM2YzNTAwOTA3NTlkMTE5MTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTE1MCwxMyArMTUwLDEzIEBAIHB1YmxpYzoKICAg
ICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlRm9ybWF0VHlwZT4gZm9ybWF0OwogfTsKIAotQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBBdG9t
aWNTdHJpbmcmIGlkLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1
cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgaWQs
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykK
IHsKICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlZGVmICpkZXZpY2UgPSBbZ2V0QVZDYXB0dXJlRGV2
aWNlQ2xhc3MoKSBkZXZpY2VXaXRoVW5pcXVlSUQ6aWRdOwogICAgIGlmICghZGV2aWNlKQogICAg
ICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlk
ZW9DYXB0dXJlU291cmNlKGRldmljZSwgaWQpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGlkKSwgV1RGTW92ZSho
YXNoU2FsdCkpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQg
PSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKICAgICAgICAgaWYgKHJl
c3VsdCkKQEAgLTE2Niw4ICsxNjYsOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0CiAgICAgcmV0
dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLUFWVmlkZW9D
YXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlZGVm
KiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCi0gICAgOiBSZWFsdGltZVZpZGVvU291
cmNlKGlkLCBkZXZpY2UubG9jYWxpemVkTmFtZSkKK0FWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZp
ZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIFN0cmluZyYm
IGlkLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1lVmlkZW9Tb3VyY2UoZGV2aWNl
LmxvY2FsaXplZE5hbWUsIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1f
b2JqY09ic2VydmVyKGFkb3B0TlMoW1tXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3VyY2VPYnNlcnZl
ciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiAgICAgLCBtX2RldmljZShkZXZpY2Up
CiB7CkBAIC0xNzcsOCArMTc3LDYgQEAgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0
dXJlU291cmNlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgY29uc3QKICAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PGludD4oSW50ZXJydXB0aW9uUmVhc29uOjpWaWRlb0luVXNl
KSA9PSBBVkNhcHR1cmVTZXNzaW9uSW50ZXJydXB0aW9uUmVhc29uVmlkZW9EZXZpY2VJblVzZUJ5
QW5vdGhlckNsaWVudCwgIkludGVycnVwdGlvblJlYXNvbjo6VmlkZW9JblVzZSBpcyBub3QgQVZD
YXB0dXJlU2Vzc2lvbkludGVycnVwdGlvblJlYXNvblZpZGVvRGV2aWNlSW5Vc2VCeUFub3RoZXJD
bGllbnQgYXMgZXhwZWN0ZWQiKTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PGludD4o
SW50ZXJydXB0aW9uUmVhc29uOjpBdWRpb0luVXNlKSA9PSBBVkNhcHR1cmVTZXNzaW9uSW50ZXJy
dXB0aW9uUmVhc29uQXVkaW9EZXZpY2VJblVzZUJ5QW5vdGhlckNsaWVudCwgIkludGVycnVwdGlv
blJlYXNvbjo6QXVkaW9JblVzZSBpcyBub3QgQVZDYXB0dXJlU2Vzc2lvbkludGVycnVwdGlvblJl
YXNvbkF1ZGlvRGV2aWNlSW5Vc2VCeUFub3RoZXJDbGllbnQgYXMgZXhwZWN0ZWQiKTsKICNlbmRp
ZgotCi0gICAgc2V0UGVyc2lzdGVudElEKFN0cmluZyhkZXZpY2UudW5pcXVlSUQpKTsKIH0KIAog
QVZWaWRlb0NhcHR1cmVTb3VyY2U6On5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpCkBAIC0yNjAsNyAr
MjU4LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6c2V0dGluZ3MoKQogICAgIGF1dG8mIHNpemUgPSB0aGlzLT5zaXplKCk7CiAgICAg
c2V0dGluZ3Muc2V0V2lkdGgoc2l6ZS53aWR0aCgpKTsKICAgICBzZXR0aW5ncy5zZXRIZWlnaHQo
c2l6ZS5oZWlnaHQoKSk7Ci0gICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgc2V0
dGluZ3Muc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNl
U3VwcG9ydGVkQ29uc3RyYWludHMgc3VwcG9ydGVkQ29uc3RyYWludHM7CiAgICAgc3VwcG9ydGVk
Q29uc3RyYWludHMuc2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKQEAgLTI4Myw3ICsyODEsNyBA
QCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6Y2FwYWJpbGl0aWVzKCkKICAgICAgICAgcmV0dXJuICptX2NhcGFiaWxpdGllczsKIAog
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKHNldHRpbmdz
KCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7Ci0gICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlk
KGlkKCkpOworICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKIAogICAg
IEFWQ2FwdHVyZURldmljZVR5cGVkZWYgKnZpZGVvRGV2aWNlID0gZGV2aWNlKCk7CiAgICAgaWYg
KFt2aWRlb0RldmljZSBwb3NpdGlvbl0gPT0gQVZDYXB0dXJlRGV2aWNlUG9zaXRpb25Gcm9udCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA4NTlkNzM4YTk0ZjkwMjVm
ZTdlNGIwNmRiODU5YTQxNTBhODgxZTFhLi5jOWVhNTg4MjI1NzlkOGMwYjBhODFmZGVkMWY5MTZl
ZWM1YTczNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC02OTQs
MjAgKzY5NCwyMCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpkZWZhdWx0T3V0cHV0
RGV2aWNlKHVpbnQzMl90KiBkZXZpY2VJRCkKICAgICByZXR1cm4gZXJyOwogfQogCi1DYXB0dXJl
U291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJl
U291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgYXV0byBkZXZpY2UgPSBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1ZGlvRGV2aWNlV2l0aFVJRChk
ZXZpY2VJRCk7CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2VJ
RCwgZGV2aWNlLT5sYWJlbCgpLCBkZXZpY2UtPmRldmljZUlEKCkpKTsKKyAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlE
KSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBkZXZpY2Ut
PmRldmljZUlEKCkpKTsKICNlbGlmIFBMQVRGT1JNKElPUykKLSAgICBhdXRvIGRldmljZSA9IEFW
QXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmF1ZGlvU2Vzc2lv
bkRldmljZVdpdGhVSUQoZGV2aWNlSUQpOworICAgIGF1dG8gZGV2aWNlID0gQVZBdWRpb1Nlc3Np
b25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuYXVkaW9TZXNzaW9uRGV2aWNlV2l0
aFVJRChXVEZNb3ZlKGRldmljZUlEKSk7CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShkZXZpY2VJRCwgZGV2aWNlLT5sYWJlbCgpLCAwKSk7CisgICAgYXV0byBzb3VyY2Ug
PSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCks
IFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgMCkpOwogI2Vu
ZGlmCiAKICAgICBpZiAoY29uc3RyYWludHMpIHsKQEAgLTc3NCw4ICs3NzQsOCBAQCBBdWRpb0Nh
cHR1cmVGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKICAgICByZXR1
cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpOwogfQogCi1Db3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIHVpbnQzMl90IHBlcnNpc3RlbnRJRCkKLSAg
ICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OkF1ZGlvLCBsYWJlbCkKK0NvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1
cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNo
U2FsdCwgdWludDMyX3QgcGVyc2lzdGVudElEKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShsYWJlbCksIFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fY2FwdHVyZURldmljZUlEKHBl
cnNpc3RlbnRJRCkKIHsKICAgICBhdXRvJiB1bml0ID0gQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2lu
Z2xldG9uKCk7CkBAIC04NDUsNyArODQ1LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKIHsKICAg
ICBpZiAoIW1fY2FwYWJpbGl0aWVzKSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMgY2FwYWJpbGl0aWVzKHNldHRpbmdzKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7
Ci0gICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAgICAgY2FwYWJp
bGl0aWVzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0
RWNob0NhbmNlbGxhdGlvbihSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpFY2hvQ2Fu
Y2VsbGF0aW9uOjpSZWFkV3JpdGUpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0Vm9sdW1lKENh
cGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMC4wLCAxLjApKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNl
dFNhbXBsZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSg4MDAwLCA5NjAwMCkpOwpAQCAtODYw
LDcgKzg2MCw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MoKQogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3Mgc2V0dGluZ3M7CiAgICAgICAgIHNldHRpbmdzLnNldFZvbHVtZSh2b2x1bWUoKSk7CiAg
ICAgICAgIHNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSgpKTsKLSAgICAgICAgc2V0
dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIHNldHRpbmdzLnNldERldmljZUlkKGhh
c2hlZElkKCkpOwogICAgICAgICBzZXR0aW5ncy5zZXRMYWJlbChuYW1lKCkpOwogICAgICAgICBz
ZXR0aW5ncy5zZXRFY2hvQ2FuY2VsbGF0aW9uKGVjaG9DYW5jZWxsYXRpb24oKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9D
YXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGU1ZjFhNGYxMDU2MGVjNjY4NTdmMmYxODk1
MmYwYmIzZjhkMzI4YjQuLjA2YjVmNjQ2ZWY2MjA3ZTI1OTU4MGVlYzc0YmJiMjU0OWEwMjgxNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNTUsNyArNTUsNyBAQCBjbGFz
cyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKIGNsYXNzIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6CiAKLSAgICBzdGF0
aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyopOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZh
Y3RvcnkmIGZhY3RvcnkoKTsKIApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
Y2hlZHVsZVJlY29uZmlndXJhdGlvbigpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIGxhYmVsLCB1
aW50MzJfdCBwZXJzaXN0ZW50SUQpOworICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDMyX3Qg
cGVyc2lzdGVudElEKTsKICAgICB2aXJ0dWFsIH5Db3JlQXVkaW9DYXB0dXJlU291cmNlKCk7CiAK
IHByaXZhdGU6CkBAIC0xMjYsOSArMTI2LDkgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6
Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0
dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCks
IGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCks
IGNvbnN0cmFpbnRzKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHAKaW5kZXggZGM2YTE4YjU0YTIwNjRlMjBhYTIzODgxNWJkYzIyNTMyODg3Yjk3
MC4uMzczZDBmOGE1M2E1ZTZhNmVhNGM3ZTRiZGY5NzZkOGVkZDk1NDQxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFN0cmluZyYmIG5hbWUpCi0gICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKCIiLCBUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSkKKyAgICA6
IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSkpCiAgICAgLCBt
X3RpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJkRpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2E6OmVtaXRGcmFtZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5o
CmluZGV4IDI0ZGRjNjdkMmI3MGI5NDkzNTU2NDUxYTlhYjQ4YWIyMmZlMzA4MmQuLmJmZTQwYjg2
MDU4MWYxY2RiOTMxYjM1Y2JmNDdmZjA3MmMzYmFhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBEaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCiBwcm90
ZWN0ZWQ6Ci0gICAgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShTdHJpbmcmJik7CisgICAgRGlz
cGxheUNhcHR1cmVTb3VyY2VDb2NvYShTdHJpbmcmJiBuYW1lKTsKICAgICB2aXJ0dWFsIH5EaXNw
bGF5Q2FwdHVyZVNvdXJjZUNvY29hKCk7CiAKICAgICB2aXJ0dWFsIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBnZW5lcmF0ZUZyYW1lKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2VNYWMuaAppbmRleCA5OWQ3OGVlYzdjNzAyZWNkMTZlY2ZkYTBiODRkMGM1NmI5ZDRm
M2JjLi41MjA4YjI2MmEzYzAzNzdmNjI4M2MzMGFjMmNhODM1NmM0MmYzZGJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlTWFjIGZpbmFsIDogcHVibGljIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIHsKIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOwotICAgIE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYg
bmFtZSk7CisgICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKIAogICAgIHZvaWQgc2V0dGluZ3NE
aWRDaGFuZ2UoT3B0aW9uU2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZz4pIGZp
bmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPGludD4+IGRpc2NyZXRlU2FtcGxlUmF0ZXMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB7IHsgNDQxMDAsIDQ4MDAwIH0gfTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCmluZGV4IDBjOGE0YmRlMjA1YzliOWIyYWIy
YTg4ODk3NmJjOTc0OWMzMzcxYWMuLjc2NzY2MDY3ZTY2YzE0MDk5N2QwZmVlMzdjNTlmNjdkNTdi
YTJkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KQEAgLTg2
LDkgKzg2LDE2IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShmbG9hdCBhbXBsaXR1ZGUsIGZsb2F0IGZy
ZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3QKICAgICB9CiB9CiAKLUNhcHR1cmVT
b3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
OjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMoZGV2aWNlSUQs
IG5hbWUpKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwor
ICAgIEFTU0VSVChkZXZpY2UpOworICAgIGlmICghZGV2aWNlKQorICAgICAgICByZXR1cm4geyB9
OworI2VuZGlmCisKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUo
aGFzaFNhbHQpKSk7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXBvcnQgZXJyb3IgbWVzc2Fn
ZXMKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25z
dHJhaW50cykpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05Niw4ICsxMDMsOCBAQCBDYXB0dXJl
U291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSUQsIGNvbgogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3Zl
KHNvdXJjZSkpOwogfQogCi1Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1l
KQotICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoZGV2aWNlSUQsIG5hbWUpCitNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1v
dmUoaGFzaFNhbHQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5oCmluZGV4IDBiNmUwYWI0NzI1MjQ5NWM1YjU1MGI2OGY0ZDI3Y2U3OTlmMTkzMTQuLjljNzRk
ZGUxODMxZTQ3MWExMDc2MDFiMDNlNjY1NDdjNzY5YTA4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYy5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U7Ci0gICAgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5n
JiBuYW1lKTsKKyAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCiAgICAgUmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPiBDTVNhbXBsZUJ1ZmZlckZyb21QaXhlbEJ1ZmZlcihDVlBpeGVsQnVm
ZmVyUmVmKTsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGcm9t
Q0dJbWFnZShDR0ltYWdlUmVmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5tbQppbmRleCA0MzE2M2E5NWEwOGIwYzAyNmJkNzUwZjI5YTkyMTMxNmFhY2Q0YzAy
Li4yM2ExNjk2MmI1Mzk0MTg0YzVmNjU0ZTllYzVlMWQxZmU5MGNkMjlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01Myw5ICs1MywxNiBAQCB1c2luZyBu
YW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgY29uc3QgaW50IHZpZGVvU2FtcGxlUmF0ZSA9IDkwMDAw
OwogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7
Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjKGRldmljZUlELCBuYW1lKSk7CisjaWZuZGVmIE5ERUJVRworICAgIGF1dG8gZGV2aWNlID0g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElE
KGRldmljZUlEKTsKKyAgICBBU1NFUlQoZGV2aWNlKTsKKyAgICBpZiAoIWRldmljZSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyNlbmRpZgorCisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5h
bWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0
IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtNjMsOCArNzAs
OCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbgogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JF
cnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3Qg
U3RyaW5nJiBuYW1lKQotICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoZGV2aWNlSUQsIG5h
bWUpCitNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQor
ICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggZjhlYzZjODU2NzIzOGU2ZTA0Y2I3MDQxY2Ex
MTgwYjU1MDNiNWJjMC4uOGJlNDAyMmZlOGZhODEwNjk3MDEwZDFhMGFkNjFlMGI5ODMzZmIxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtNDgs
MTAgKzQ4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVmlkZW9DYXB0dXJlU291
cmNlRmFjdG9yeU1hYyBmaW5hbCA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1Ymxp
YzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCiAgICAgewogICAgICAgICBB
U1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEp
OwotICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVy
c2lzdGVudElkKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIEFWVmlkZW9DYXB0dXJl
U291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
NzUsMTEgKzc1LDExIEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7
CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogI2lmIFBM
QVRGT1JNKE1BQykKLSAgICAgICAgICAgIHJldHVybiBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYzo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAg
ICAgICAgcmV0dXJuIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoU3RyaW5n
IHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIGNvbnN0cmFpbnRzKTsKICNlbmRpZgogICAgICAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKICNpZiBQTEFURk9STShN
QUMpCi0gICAgICAgICAgICByZXR1cm4gV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNy
ZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJl
dHVybiBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKFN0cmluZyB7IGRldmlj
ZS5wZXJzaXN0ZW50SWQoKSB9LCBjb25zdHJhaW50cyk7CiAjZW5kaWYKICAgICAgICAgY2FzZSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBcHBsaWNhdGlvbjoKICAgICAgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpCcm93c2VyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWMuaAppbmRleCA2ZTJlYWI4MWMwNDc2ZDQ3YWMyNDc5YTY5ODI2MDU5
ZGE3ZTRhZTM2Li5lYzkyMGYwMjRhNTY4OTkyMDA5NDQ5NDQ0N2Q3MmJlZTYzMjkwZGM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlz
cGxheUNhcHR1cmVTb3VyY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaApAQCAtNDEsMTMgKzQx
LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyZWVuRGlzcGxheUNhcHR1cmVT
b3VyY2VNYWMgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZShTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gc2NyZWVuQ2FwdHVyZURldmljZVdpdGhQZXJzaXN0
ZW50SUQoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIHZvaWQgc2NyZWVuQ2FwdHVyZURldmlj
ZXMoVmVjdG9yPENhcHR1cmVEZXZpY2U+Jik7CiAKIHByaXZhdGU6Ci0gICAgU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWModWludDMyX3QpOworICAgIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjKHVpbnQzMl90LCBTdHJpbmcmJik7CiAgICAgdmlydHVhbCB+U2NyZWVuRGlzcGxheUNh
cHR1cmVTb3VyY2VNYWMoKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpc3BsYXlSZWNvbmZpZ3VyYXRp
b25DYWxsQmFjayhDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdz
LCB2b2lkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0K
aW5kZXggYmY2ZDcyYWQ5OGRkMTYxMTc4MjBjNTA4N2MzOGQ3MjFjNTczN2ZhYi4uYTIzOGYyOGY5
NzViODQwODM0Mjc3ZThiMGMyZGVkYzE5Y2FiZTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5E
aXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQpAQCAtNzYsMTIgKzc2LDEyIEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPENHRGlyZWN0RGlzcGxheUlEPiB1cGRhdGVEaXNwbGF5SUQoQ0dEaXJlY3REaXNw
bGF5SUQgZGlzcGxhCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAotQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1
cmVTb3VyY2VPckVycm9yIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewog
ICAgIGJvb2wgb2s7CiAgICAgYXV0byBkaXNwbGF5SUQgPSBkZXZpY2VJRC50b1VJbnRTdHJpY3Qo
Jm9rKTsKICAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiRGlzcGxh
eSBJRCBkb2VzIG5vdCBjb252ZXJ0IHRvIDMyLWJpdCBpbnRlZ2VyIik7CisgICAgICAgIFJFTEVB
U0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZTogRGlz
cGxheSBJRCBkb2VzIG5vdCBjb252ZXJ0IHRvIDMyLWJpdCBpbnRlZ2VyIik7CiAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgfQogCkBAIC04OSwxNSArODksMTUgQEAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRl
dmljZUkKICAgICBpZiAoIWFjdHVhbERpc3BsYXlJRCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYyhhY3R1YWxEaXNwbGF5SUQudmFsdWUoKSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyhhY3R1YWxEaXNwbGF5SUQudmFs
dWUoKSwgIlNjcmVlbiJfcykpOyAvLyBGSVhNRTogZmlndXJlIG91dCB3aGF0IHRpdGxlIHRvIHVz
ZQogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0
cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIHJldHVybiBDYXB0dXJlU291cmNl
T3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYzo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWModWludDMyX3QgZGlzcGxheUlEKQot
ICAgIDogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSgiU2NyZWVuIikgLy8gRklYTUU6IGZpZ3Vy
ZSBvdXQgd2hhdCB0byBjYWxsIHRoaXMKK1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50MzJfdCBkaXNwbGF5SUQsIFN0cmluZyYm
IHRpdGxlKQorICAgIDogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3ZlKHRpdGxlKSkK
ICAgICAsIG1fZGlzcGxheUlEKGRpc3BsYXlJRCkKIHsKIH0KQEAgLTEyMiw3ICsxMjIsNyBAQCBi
b29sIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKCkK
IAogICAgIGlmIChtX2Rpc3BsYXlJRCAhPSBhY3R1YWxEaXNwbGF5SUQudmFsdWUoKSkgewogICAg
ICAgICBtX2Rpc3BsYXlJRCA9IGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpOwotICAgICAgICBSRUxF
QVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNw
bGF5U3RyZWFtKCVwKSwgZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVkIiwgdGhpcywgc3RhdGljX2Nh
c3Q8aW50PihtX2Rpc3BsYXlJRCkpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVl
bkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtOiBkaXNwbGF5IElE
IGNoYW5nZWQgdG8gJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fZGlzcGxheUlEKSk7CiAgICAgfQog
CiAgICAgaWYgKCFtX2Rpc3BsYXlTdHJlYW0pIHsKQEAgLTEzMCw3ICsxMzAsNyBAQCBib29sIFNj
cmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKCkKICAgICAg
ICAgYXV0byBzY3JlZW5XaWR0aCA9IENHRGlzcGxheU1vZGVHZXRQaXhlbHNXaWRlKGRpc3BsYXlN
b2RlLmdldCgpKTsKICAgICAgICAgYXV0byBzY3JlZW5IZWlnaHQgPSBDR0Rpc3BsYXlNb2RlR2V0
UGl4ZWxzSGlnaChkaXNwbGF5TW9kZS5nZXQoKSk7CiAgICAgICAgIGlmICghc2NyZWVuV2lkdGgg
fHwgIXNjcmVlbkhlaWdodCkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3Jl
ZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSglcCksIHVuYWJs
ZSB0byBnZXQgc2NyZWVuIHdpZHRoL2hlaWdodCIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFT
RV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxh
eVN0cmVhbTogdW5hYmxlIHRvIGdldCBzY3JlZW4gd2lkdGgvaGVpZ2h0Iik7CiAgICAgICAgICAg
ICBjYXB0dXJlRmFpbGVkKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
QEAgLTE2OCw3ICsxNjgsNyBAQCBib29sIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpj
cmVhdGVEaXNwbGF5U3RyZWFtKCkKICAgICAgICAgYXV0byBzaXplID0gZnJhbWVTaXplKCk7CiAg
ICAgICAgIG1fZGlzcGxheVN0cmVhbSA9IGFkb3B0Q0YoQ0dEaXNwbGF5U3RyZWFtQ3JlYXRlV2l0
aERpc3BhdGNoUXVldWUobV9kaXNwbGF5SUQsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwg
a0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhQbGFuYXIsIHN0cmVhbU9wdGlvbnMuZ2V0KCks
IG1fY2FwdHVyZVF1ZXVlLmdldCgpLCBtX2ZyYW1lQXZhaWxhYmxlQmxvY2spKTsKICAgICAgICAg
aWYgKCFtX2Rpc3BsYXlTdHJlYW0pIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAi
U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0oJXApLCBD
R0Rpc3BsYXlTdHJlYW1DcmVhdGUgZmFpbGVkIiwgdGhpcyk7CisgICAgICAgICAgICBSRUxFQVNF
X0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5
U3RyZWFtOiBDR0Rpc3BsYXlTdHJlYW1DcmVhdGUgZmFpbGVkIik7CiAgICAgICAgICAgICBjYXB0
dXJlRmFpbGVkKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTIy
Nyw3ICsyMjcsNyBAQCB2b2lkIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERp
c3BsYXlTdHJlYW0oKQogCiAgICAgaWYgKG1fZGlzcGxheUlEICE9IGFjdHVhbERpc3BsYXlJRC52
YWx1ZSgpKSB7CiAgICAgICAgIG1fZGlzcGxheUlEID0gYWN0dWFsRGlzcGxheUlELnZhbHVlKCk7
Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWM6OnN0YXJ0RGlzcGxheVN0cmVhbSglcCksIGRpc3BsYXkgSUQgY2hhbmdlZCB0byAlZCIsIHRo
aXMsIHN0YXRpY19jYXN0PGludD4obV9kaXNwbGF5SUQpKTsKKyAgICAgICAgUkVMRUFTRV9MT0co
TWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFt
OiBkaXNwbGF5IElEIGNoYW5nZWQgdG8gJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fZGlzcGxheUlE
KSk7CiAgICAgfQogCiAgICAgaWYgKCFtX2Rpc3BsYXlTdHJlYW0gJiYgIWNyZWF0ZURpc3BsYXlT
dHJlYW0oKSkKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW0oKQogCiAgICAgYXV0byBlcnIgPSBDR0Rpc3BsYXlT
dHJlYW1TdGFydChtX2Rpc3BsYXlTdHJlYW0uZ2V0KCkpOwogICAgIGlmIChlcnIpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3Rh
cnREaXNwbGF5U3RyZWFtKCVwKSwgQ0dEaXNwbGF5U3RyZWFtU3RhcnQgZmFpbGVkIHdpdGggZXJy
b3IgJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDxpbnQ+KGVycikpOworICAgICAgICBSRUxFQVNFX0xP
RyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJl
YW06IENHRGlzcGxheVN0cmVhbVN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkIiwgc3RhdGljX2Nh
c3Q8aW50PihlcnIpKTsKICAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMjc4LDExICsyNzgsMTEgQEAgdm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNv
dXJjZU1hYzo6ZnJhbWVBdmFpbGFibGUoQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXMgc3QKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1c0ZyYW1l
Qmxhbms6Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVT
b3VyY2VNYWM6OmZyYW1lQXZhaWxhYmxlKCVwKSwga0NHRGlzcGxheVN0cmVhbUZyYW1lU3RhdHVz
RnJhbWVCbGFuayIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRp
c3BsYXlDYXB0dXJlU291cmNlTWFjOjpmcmFtZUF2YWlsYWJsZToga0NHRGlzcGxheVN0cmVhbUZy
YW1lU3RhdHVzRnJhbWVCbGFuayIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Uga0NHRGlz
cGxheVN0cmVhbUZyYW1lU3RhdHVzU3RvcHBlZDoKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEs
ICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6ZnJhbWVBdmFpbGFibGUoJXApLCBrQ0dE
aXNwbGF5U3RyZWFtRnJhbWVTdGF0dXNTdG9wcGVkIiwgdGhpcyk7CisgICAgICAgIFJFTEVBU0Vf
TE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmZyYW1lQXZhaWxhYmxl
OiBrQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXNTdG9wcGVkIik7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaAppbmRl
eCBkMDUzM2ZmOGEzOGM0MTFhNmJjYThjM2U1OGM3NWI1N2M2ODYyYzIwLi4xYzRkMzc2MGY4OGNm
ZjVmYTc0Y2QyNzA2NjAzZTY4YTFkM2Q2ZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWMuaApAQCAtNDAsMTMgKzQwLDEzIEBAIGNsYXNzIFBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1Y7CiAKIGNsYXNzIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjIDogcHVi
bGljIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENh
cHR1cmVEZXZpY2U+IHdpbmRvd0NhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKGNvbnN0IFN0
cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIHdpbmRvd0NhcHR1cmVEZXZpY2VzKFZlY3RvcjxDYXB0
dXJlRGV2aWNlPiYpOwogCiBwcml2YXRlOgotICAgIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNl
TWFjKHVpbnQzMl90IHdpbmRvd0lELCBTdHJpbmcmJik7CisgICAgV2luZG93RGlzcGxheUNhcHR1
cmVTb3VyY2VNYWModWludDMyX3QsIFN0cmluZyYmKTsKICAgICB2aXJ0dWFsIH5XaW5kb3dEaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYygpID0gZGVmYXVsdDsKIAogICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBnZW5lcmF0ZUZyYW1lKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlz
cGxheUNhcHR1cmVTb3VyY2VNYWMubW0KaW5kZXggZTFhYTBiZmQ3ZWFkOTgwNWRiZWViZGI4OWMx
YmQyYThjNDYyOWQxMS4uMWQ2YTE3Y2Q0MTM4ZmQxZDU2NzJiZjkzMjkzNzA0YmYxMDE0MTkyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRv
d0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQpAQCAtMTAy
LDcgKzEwMiw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiB3aW5kb3dEZXNj
cmlwdGlvbihDR1dpbmRvd0lEIGlkKQogICAgIHJldHVybiBjaGVja2VkX2NmX2Nhc3Q8Q0ZEaWN0
aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHdpbmRvd3MuZ2V0KCksIDApKTsKIH0K
IAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNy
ZWF0ZShjb25zdCBTdHJpbmcmIHdpbmRvd0lELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpjcmVhdGUoU3RyaW5nJiYgd2luZG93SUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQogewogICAgIGJvb2wgb2s7CiAgICAgYXV0byBhY3R1YWxJRCA9IHdpbmRvd0lE
LnRvVUludFN0cmljdCgmb2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCBjYzM1NDYxMzM1YWUwN2E3
N2ZkMWMxMTZkYmQzMDEwNjViM2M5NTdkLi4zZjQ0ZmQ2MzRjODMwNDYzYzRiZjI0MTQwOGYyOWZj
NTRiOGNhZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDMsMTQgKzQzLDE2IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiAh
KFVTRShHU1RSRUFNRVIpICYmIFVTRShMSUJXRUJSVEMpKQotQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQor
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogeworI2lmbmRlZiBOREVCVUcKICAgICBhdXRv
IGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBl
cnNpc3RlbnRJRChkZXZpY2VJRCk7CiAgICAgQVNTRVJUKGRldmljZSk7CiAgICAgaWYgKCFkZXZp
Y2UpCiAgICAgICAgIHJldHVybiB7IH07CisjZW5kaWYKIAotICAgIGF1dG8gc291cmNlID0gYWRv
cHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmljZSksIGRldmlj
ZUlELCBuYW1lKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSkpOwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWlu
dHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtNTgsMTEgKzYwLDEx
IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uCiB9CiAjZW5kaWYKIAotTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQs
IGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlSUQs
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBuYW1lKQorTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fdGltZXIoUnVuTG9vcDo6Y3Vy
cmVudCgpLCB0aGlzLCAmTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnRpY2spCiB7Ci0gICAgYXV0
byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQ
ZXJzaXN0ZW50SUQoZGV2aWNlSUQpOworICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKHBlcnNpc3RlbnRJRCgp
KTsKICAgICBBU1NFUlQoZGV2aWNlKTsKICAgICBtX2RldmljZSA9ICpkZXZpY2U7CiB9CkBAIC03
OCw3ICs4MCw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6OnNldHRpbmdzKCkKIHsKICAgICBpZiAoIW1fY3VycmVudFNldHRpbmdz
KSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKLSAgICAg
ICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIHNldHRpbmdzLnNldERldmlj
ZUlkKGhhc2hlZElkKCkpOwogICAgICAgICBzZXR0aW5ncy5zZXRWb2x1bWUodm9sdW1lKCkpOwog
ICAgICAgICBzZXR0aW5ncy5zZXRFY2hvQ2FuY2VsbGF0aW9uKGVjaG9DYW5jZWxsYXRpb24oKSk7
CiAgICAgICAgIHNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSgpKTsKQEAgLTEwMCw3
ICsxMDIsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKICAgICBpZiAoIW1fY2FwYWJpbGl0aWVz
KSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
KHNldHRpbmdzKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CiAKLSAgICAgICAgY2FwYWJpbGl0
aWVzLnNldERldmljZUlkKGlkKCkpOworICAgICAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQo
aGFzaGVkSWQoKSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRWb2x1bWUoQ2FwYWJpbGl0eVZh
bHVlT3JSYW5nZSgwLjAsIDEuMCkpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0RWNob0NhbmNl
bGxhdGlvbihSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpFY2hvQ2FuY2VsbGF0aW9u
OjpSZWFkV3JpdGUpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0U2FtcGxlUmF0ZShDYXBhYmls
aXR5VmFsdWVPclJhbmdlKDQ0MTAwLCA0ODAwMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCmluZGV4IDkxZThjMDM2
YmRkN2EzM2Q2MjQ5MjA3ZTEzZmQzN2YyYmEwMmVhYjYuLjFkMWQ1YjE4NjcyN2E5ZWI4NDJiMDli
ZGViYTI2OTZhY2NlNzg0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKQEAgLTQyLDEyICs0MiwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSA6IHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAogICAgIHZpcnR1YWwgfk1vY2tSZWFs
dGltZUF1ZGlvU291cmNlKCk7CiAKIHByb3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCk7CiAKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFs
OwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAKaW5kZXggZjY5NzI4NTY4YjMzMWZiY2Q5NDA3NjI4ZWRiNjA1MzViMWEwMjVlMy4u
MjllZTNiMGFjOTlhMmQyOWIwZWJiZjM3NGU1NTc4ZTYyY2VmNmIyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5jcHAKQEAgLTgzLDE1ICs4MywxNCBAQCBzdGF0aWMgaW5saW5lIFZlY3RvcjxN
b2NrTWVkaWFEZXZpY2U+IGRlZmF1bHREZXZpY2VzKCkKICAgICB9OwogfQogCi0KIGNsYXNzIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5
IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRl
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCiAgICAgewog
ICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpDYW1lcmEpOwogICAgICAgICBBU1NFUlQoTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OkNhbWVyYSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSk7CiAKLSAgICAgICAgcmV0dXJuIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2Uu
bGFiZWwoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsg
ZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9
CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xMTMsNyArMTEyLDcgQEAgcHVibGljOgogICAgICAg
ICBzd2l0Y2ggKGRldmljZS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6V2luZG93OgotICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpj
cmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2UubGFiZWwoKSwgY29uc3RyYWludHMp
OworICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IH0sIFN0cmluZyB7IGRldmlj
ZS5sYWJlbCgpIH0sIGNvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkFwcGxpY2F0aW9uOgogICAgICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkJyb3dzZXI6CkBAIC0xMzAsMTIgKzEyOSwxMiBA
QCBwdWJsaWM6CiAKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFjdG9yeSA6IHB1Ymxp
YyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMpIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKICAgICAgICAgQVNTRVJUKE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCBkZXZpY2UucGVyc2lzdGVudElk
KCkpKTsKIAotICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShk
ZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZS5sYWJlbCgpLCBjb25zdHJhaW50cyk7CisgICAg
ICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmlj
ZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhh
c2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXgg
NWQzZmI5MTM3ODM1MDk2NjU5YWI5MmNjMzI4OTBhMDA3ODU0NDk2NS4uZDQ3MDZiYzVmZGNiYTYy
NGQ4NTY0MmRiN2VmNjg4NGNjZDQ1YTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ5LDE0ICs0
OSwxNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykgJiYgIShVU0UoR1NUUkVBTUVSKSAmJiBVU0UoTElCV0VCUlRDKSkKLUNhcHR1
cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKKyNpZm5kZWYg
TkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwogICAgIEFTU0VSVChkZXZpY2Up
OwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyB9OworI2VuZGlmCiAKLSAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92
ZShkZXZpY2UpLCBkZXZpY2VJRCwgbmFtZSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShu
YW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNl
LT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHJldHVybiB7IH07CiAK
QEAgLTY0LDExICs2NiwxMSBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbgogfQogI2VuZGlmCiAK
LU1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBT
dHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBSZWFsdGltZVZpZGVv
U291cmNlKGRldmljZUlELCBuYW1lKQorTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFs
dGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9lbWl0RnJhbWVUaW1l
cihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2Vu
ZXJhdGVGcmFtZSkKIHsKLSAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CisgICAgYXV0byBk
ZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJz
aXN0ZW50SUQocGVyc2lzdGVudElEKCkpOwogICAgIEFTU0VSVChkZXZpY2UpOwogICAgIG1fZGV2
aWNlID0gKmRldmljZTsKIApAQCAtMTIwLDcgKzEyMiw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMo
KQogICAgIGlmICghbV9jYXBhYmlsaXRpZXMpIHsKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMoc2V0dGluZ3MoKS5zdXBwb3J0ZWRDb25zdHJhaW50
cygpKTsKIAotICAgICAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAg
IGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKICAgICAgICAgaWYgKG1vY2tD
YW1lcmEoKSkgewogICAgICAgICAgICAgY2FwYWJpbGl0aWVzLmFkZEZhY2luZ01vZGUoV1RGOjpn
ZXQ8TW9ja0NhbWVyYVByb3BlcnRpZXM+KG1fZGV2aWNlLnByb3BlcnRpZXMpLmZhY2luZ01vZGUp
OwogICAgICAgICAgICAgdXBkYXRlQ2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcyk7CkBAIC0xNTQs
NyArMTU2LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6c2V0dGluZ3MoKQogICAgIHNldHRpbmdzLnNldEhlaWdodChzaXplLmhl
aWdodCgpKTsKICAgICBpZiAoYXNwZWN0UmF0aW8oKSkKICAgICAgICAgc2V0dGluZ3Muc2V0QXNw
ZWN0UmF0aW8oYXNwZWN0UmF0aW8oKSk7Ci0gICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7
CisgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAKICAgICBSZWFsdGltZU1l
ZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgc3VwcG9ydGVkQ29uc3RyYWludHM7CiAgICAg
c3VwcG9ydGVkQ29uc3RyYWludHMuc2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
aAppbmRleCAxNDZkMWFhMTM1MDQwMTdiNTA2ZTI0MjQxMTI0ODA1MTI3MzM4ZTVlLi5iZDNjM2U0
NTE5YWY3ZTg1ZmNjYjI2OTgzOWU1ZGI2ZTg5MzBjZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00OCwx
MCArNDgsMTAgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb1NvdXJjZSB7CiBwdWJsaWM6CiAKLSAgICBz
dGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRp
YyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKIHBy
b3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBTdHJpbmcmIGRldmlj
ZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA4ODYwNTkyNzU2OTA2
NTNhMWM1YjkxOWFmNzhhNTFkZWUxNjk3MDc5Li45MmRmYjFiNmFmMDgxYWViYzlmM2UxMzkxNmQx
ZTc1MWU2NjI2MTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAKQEAgLTI3NjAsNyArMjc2MCw2IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxNZWRp
YUNvbnN0cmFpbnRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6Ok1l
CiB7CiAgICAgZW5jb2RlciA8PCBjb25zdHJhaW50Lm1hbmRhdG9yeUNvbnN0cmFpbnRzCiAgICAg
ICAgIDw8IGNvbnN0cmFpbnQuYWR2YW5jZWRDb25zdHJhaW50cwotICAgICAgICA8PCBjb25zdHJh
aW50LmRldmljZUlESGFzaFNhbHQKICAgICAgICAgPDwgY29uc3RyYWludC5pc1ZhbGlkOwogfQog
CkBAIC0yNzcyLDcgKzI3NzEsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50
cz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpNZWRpYUNvbgogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMgPSBXVEZN
b3ZlKCptYW5kYXRvcnlDb25zdHJhaW50cyk7CiAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNv
bnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMpCi0gICAgICAgICYmIGRlY29kZXIuZGVjb2Rl
KGNvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2Rl
KGNvbnN0cmFpbnRzLmlzVmFsaWQpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwCmluZGV4IDcxYTY5MWYxZTFkYmI4YjI0NmY3ZTk3ZDNkODYzY2ZkNDY3YjZmNWQuLjc2YThl
ZmYzYmJlMDVhZjczZTdmZDVkYjhiYWE2MTNkYzY5ZDBkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwCkBAIC0xMjUsMTUgKzEyNSwxNSBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
dWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJh
aW50cywgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIGJvb2wmIHN1Y2NlZWRl
ZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNl
T3JFcnJvcjsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKGRldmljZSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgc291cmNlT3JF
cnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFjdG9y
eSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0s
ICZjb25zdHJhaW50cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW86Ci0gICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0ZhY3RvcnkoKS5jcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCAmY29uc3RyYWludHMpOworICAgICAgICBzb3VyY2VP
ckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9GYWN0
b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQg
fSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCBmZjBhZThiMWJiOWRhN2E2ZDViNzlkZDdm
YzY4OTAxMjhmODE2OTI2Li41MWI4ZTc3ZDk4ZGQxODM1Y2RhYjkwNDIzNjViYzA2ZWNjYjFlNDgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwog
Ci0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CiAgICAgdm9pZCBzdGFydFByb2R1
Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3Qp
OwogICAgIHZvaWQgY2FwYWJpbGl0aWVzKHVpbnQ2NF90LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgppbmRleCAyNDhjNDBmZjAwNzFjYTA4Nzc3Y2FmNzNmMDg2ZDljNjcyZTAyZGIyLi5i
ZDIxOWJjOTYwOGQwNzQwNjkxOTIyNjA0M2MwMmE3MmFlYTM1YjdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5IHsKLSAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0
cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCisg
ICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2
NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52
YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0
dGluZ3MpCiAgICAgU3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9k
dWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4g
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDE4NWMwNzRjOWZkNmVkYWRk
OTkxZTc2YWJlYWZlNTk4ODQ5NjQ1N2MuLjYyNzc0YzlhYjZmY2MyNTQwMWFmNTU5ODVlYzAxYjU0
NDljMGZjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTMzNiw5
ICszMzYsNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpy
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKAogICAgICAgICBpZiAoIW1fcGFnZS5p
c1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgICAgICBsb2NhbFVz
ZXJSZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50
aWZpZXJIYXNoU2FsdDsKLSAgICAgICAgbG9jYWxVc2VyUmVxdWVzdC52aWRlb0NvbnN0cmFpbnRz
LmRldmljZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci0KICAgICAgICAg
c3luY1dpdGhXZWJDb3JlUHJlZnMoKTsKICAgICAgICAgCiAgICAgICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFdURk1v
dmUodmFsaWRIYW5kbGVyKSwgV1RGTW92ZShpbnZhbGlkSGFuZGxlciksIFdURk1vdmUobG9jYWxV
c2VyUmVxdWVzdCksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcAppbmRleCA3YzdmNjY3NzQ5NGJhZjNiNTYzYzg4M2MxYWUyMTFiYWRkMTRiMWRj
Li5jYjZkNmM3ZWU5YWM1YzFkNWYwYmMzOGRlMjE1YTM5ZDZlMmZkNTg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAKQEAgLTUxLDggKzUxLDggQEAgc3RhdGljIHVpbnQ2NF90IG5leHRTZXNzaW9uSUQo
KQogCiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlIDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAgIFNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJj
ZUlELCBUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgdWludDY0X3QgaWQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyKQotICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
c291cmNlSUQsIHR5cGUsIG5hbWUpCisgICAgU291cmNlKFN0cmluZyYmIHNvdXJjZUlELCBUeXBl
IHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50NjRfdCBpZCwgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIpCisgICAgICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZSh0eXBlLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKHNvdXJjZUlEKSwgV1RGTW92ZShoYXNo
U2FsdCkpCiAgICAgICAgICwgbV9pZChpZCkKICAgICAgICAgLCBtX21hbmFnZXIobWFuYWdlcikK
ICAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZT4obnVsbHB0cikpCkBAIC0xNzcsNyArMTc3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXIKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVk
aW9GYWN0b3J5KCp0aGlzKTsKIH0KIAotV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYgZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHNvdXJjZVR5
cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlIHNvdXJjZVR5cGUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBpZiAoIWNvbnN0
cmFpbnRzKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTg2LDEwICsxODYsMTAgQEAgV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNh
cHR1cmVTb3VyY2UoY29uc3QKICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGlu
Z3M7CiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKICAgICBib29sIHN1Y2NlZWRlZDsKLSAgICBp
ZiAoIW1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlk
LCBkZXZpY2UsIHNvdXJjZVR5cGUsICpjb25zdHJhaW50cyksIE1lc3NhZ2VzOjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgZXJyb3JNZXNzYWdlLCBzZXR0aW5ncyksIDAp
KQorICAgIGlmICghbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHMoaWQsIGRldmljZSwgc291cmNlVHlwZSwgaGFzaFNhbHQsICpjb25zdHJhaW50cyksIE1l
c3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgZXJyb3JNZXNz
YWdlLCBzZXR0aW5ncyksIDApKQogICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvck1lc3NhZ2Up
OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShTdHJpbmc6Om51bWJl
cihpZCksIHNvdXJjZVR5cGUsIHNldHRpbmdzLmxhYmVsKCksIGlkLCAqdGhpcykpOworICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBzb3Vy
Y2VUeXBlLCBTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBp
ZCwgKnRoaXMpKTsKICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsK
ICAgICBtX3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UuY29weVJlZigpKTsKICAgICByZXR1cm4gV2Vi
Q29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmgKaW5kZXggNmE3ZDBkMjJhMGYwOTg1MzIzMDdiMmU0ZTA5N2Y3ZjhkNTBjNzRiOC4uMzc2MzJk
NTllNmVmOGNhYWM4MDY5MTNlNTAzNWRiY2E0YzhkNDU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAg
LTU1LDkgKzU1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIGZpbmFsOwogCiAgICAgLy8gV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZSBmYWN0b3JpZXMKLSAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYg
ZGV2aWNlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmlu
YWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBjb25zdHJhaW50cyk7IH0KLSAgICBXZWJDb3JlOjpD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2Us
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBjb25zdHJhaW50cyk7
IH0KLSAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYXB0dXJlU291cmNl
KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVh
dGVDYXB0dXJlU291cmNlKGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0
ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpWaWRlbywgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6
OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIFN0cmlu
ZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CiAKICAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351292</attachid>
            <date>2018-10-01 13:24:07 -0700</date>
            <delta_ts>2018-10-01 17:01:16 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-190142-20181001222404.patch</filename>
            <type>text/plain</type>
            <size>100490</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVlMzVhOWNiNTYxN2Vk
ZTk4ODNkYjU2YmQyZTZhYzJjZGIyZTBkMC4uNGFiMjliMjRkNjE0NGIwYTRiMWY5OWUxM2NjNjlj
ZjhlYTgzYWI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MiBAQAorMjAxOC0xMC0wMSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFJlYWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVy
ZU1lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2s6OlNvdXJjZTo6U291cmNlKTogVXBkYXRlIG9yZGVyIG9mIHBhcmFtZXRl
cnMgcGFzc2VkCisgICAgICAgIHRvIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFEZXZpY2VzUmVxdWVzdDo6c3RhcnQpOiBBU1NFUlQgaWYgZG9jdW1lbnQuZGV2aWNlSURIYXNo
U2FsdCBpcyBub3QgdGhlIHNhbWUKKyAgICAgICAgYXMgcGFzc2VkIHNhbHQuCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MgY29uc3QpOiBEb24ndCBuZWVkIHRv
IGhhc2ggSUQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRDYXBhYmls
aXRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suaWRsOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmFsbG93KTogUGFz
cyBoYXNoIHNhbHQgdG8gY3JlYXRlTWVkaWFTdHJlYW0uCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVS
ZWNlaXZlckZvclNvdXJjZSk6IFVwZGF0ZSBvcmRlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZAorICAg
ICAgICB0byBiYXNlIGNsYXNzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9T
b3VyY2U6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZSk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNl
KTogQ2FsY3VsYXRlIGhhc2hlZCBJRC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNlbGVjdFNldHRpbmdzKTogVXNlIG1faGFzaGVkSUQuCisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpoYXNoZWRJZCBjb25zdCk6IE5ldy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmRldmljZUlESGFzaFNhbHQgY29uc3QpOiBOZXcu
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVh
dGVNZWRpYVN0cmVhbSk6IFRha2UgaGFzaCBzYWx0LCBwYXNzIGl0IHdoZW4gY3JlYXRpbmcKKyAg
ICAgICAgYSBzb3VyY2UuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpSZWFs
dGltZVZpZGVvU291cmNlKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmg6CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldyYXBwZWRN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6V3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6Ok1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MpOiBVc2Ug
aGFzaGVkSWQgdG8gc2V0IGRldmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IFVwZGF0ZSBwYXJhbWV0ZXJzLgor
ICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y2FwYWJpbGl0aWVzKTogVXNlIGhhc2hlZElkIHRvIHNldCBkZXZpY2UgSUQuCisgICAgICAg
IChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncyk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaDoK
KworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1
ZGlvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyk6IERpdHRvLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKTogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKTogVXBkYXRlIGxvZ2dpbmcuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6
ZnJhbWVBdmFpbGFibGUpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OldpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUpOiBVcGRh
dGUgcGFyYW1ldGVycy4KKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0dGluZ3MpOiBVc2UgaGFzaGVkSWQgdG8gc2V0IGRl
dmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjYXBh
YmlsaXRpZXMpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcDoKKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZSk6IFVwZGF0ZSBwYXJhbWV0ZXJzLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKTogVXNl
IGhhc2hlZElkIHRvIHNldCBkZXZpY2UgSUQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6c2V0dGluZ3MpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmg6CisKIDIwMTgtMDktMzAgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIFBvc2l0aW9uIGluc3RlYWQgb2YgUmFu
Z2UgaW4gY3JlYXRlTWFya3VwSW50ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWYzNzU0NmQzNzUzZDliNmE5
NDhmNzU3ZjhmMTA4NjEwZDEyZmFkMS4uNDMxNDE5OTY1NTBjZDMyMDc5ZDAxZWVlOWFmNGY4ZTE4
ODI5YmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0xMC0wMSAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIFJl
YWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmRlY29kZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJj
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
OgorCiAyMDE4LTA5LTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gQ2xlYW4gdXAgUmVhbHRpbWVNZWRpYVNvdXJjZSBzZXR0
aW5ncyBjaGFuZ2UgaGFuZGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5j
cHAKaW5kZXggNzhmOWZiMjkwZmU1M2Y2YjE0MzU2ZTVjZDAyZDZkNDE1ZTc3MWU3YS4uNTZkZjhh
NjZkZWFkM2UwNDljNjI1YzdhYzQxOTFjNGE2MjhmNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgUmVmPENhbnZhc0NhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U+IENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOjpT
b3VyY2UKIAogLy8gRklYTUU6IEdpdmUgc291cmNlIGlkIGFuZCBuYW1lCiBDYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjazo6U291cmNlOjpTb3VyY2UoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZh
cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgZnJhbWVSZXF1ZXN0UmF0ZSkKLSAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoU3RyaW5nKCksIFR5cGU6OlZpZGVvLCBTdHJpbmcoKSkKKyAgICA6IFJl
YWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sICJDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjayJfcykKICAgICAsIG1fZnJhbWVSZXF1ZXN0UmF0ZShXVEZNb3ZlKGZyYW1lUmVxdWVzdFJh
dGUpKQogICAgICwgbV9yZXF1ZXN0RnJhbWVUaW1lcigqdGhpcywgJlNvdXJjZTo6cmVxdWVzdEZy
YW1lVGltZXJGaXJlZCkKICAgICAsIG1fY2FudmFzQ2hhbmdlZFRpbWVyKCp0aGlzLCAmU291cmNl
OjpjYXB0dXJlQ2FudmFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKaW5kZXggZTJjNWJmNzBhMjY3MjRm
ZDA1N2M5YTZhZTQ2MWFkNWFkYTUzZjllMC4uZDlkODM4YmY4YzcyMTJjZGE2NWQxN2I0OWVmYjlh
MTVlYzRmZDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCkBAIC0xMTcsNyArMTE3LDggQEAgdm9p
ZCBNZWRpYURldmljZXNSZXF1ZXN0OjpzdGFydCgpCiAgICAgICAgIGlmICghc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7CisgICAgICAgIEFTU0VSVChkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0
KCkuaXNFbXB0eSgpIHx8IGRvY3VtZW50LmRldmljZUlESGFzaFNhbHQoKSA9PSBkZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQpOwogICAgICAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKICAgICAgICAgVmVjdG9yPFJlZjxNZWRpYURldmlj
ZUluZm8+PiBkZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggYWNmZWNmODRlMzU2MDRlYTBlMzUw
MTQwOWRmZmI0YWNkMTExODMwMy4uNzA1MzNhZDUxZWQ4MWE1NjljMDJlNTVkYWViYmJiN2U5ZDRj
MTA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBNZWRpYVN0cmVh
bVRyYWNrOjpzdG9wVHJhY2soU3RvcE1vZGUgbW9kZSkKICAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOwogfQogCi1NZWRpYVN0cmVhbVRyYWNrOjpUcmFja1NldHRpbmdzIE1lZGlhU3RyZWFt
VHJhY2s6OmdldFNldHRpbmdzKERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK01lZGlhU3RyZWFt
VHJhY2s6OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoKSBjb25z
dAogewogICAgIGF1dG8mIHNldHRpbmdzID0gbV9wcml2YXRlLT5zZXR0aW5ncygpOwogICAgIFRy
YWNrU2V0dGluZ3MgcmVzdWx0OwpAQCAtMjIwLDkgKzIyMCw5IEBAIE1lZGlhU3RyZWFtVHJhY2s6
OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoRG9jdW1lbnQmIGRv
Y3VtZW50CiAgICAgaWYgKHNldHRpbmdzLnN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbigpKQogICAg
ICAgICByZXN1bHQuZWNob0NhbmNlbGxhdGlvbiA9IHNldHRpbmdzLmVjaG9DYW5jZWxsYXRpb24o
KTsKICAgICBpZiAoc2V0dGluZ3Muc3VwcG9ydHNEZXZpY2VJZCgpKQotICAgICAgICByZXN1bHQu
ZGV2aWNlSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3Ry
aW5nV2l0aFNhbHQoc2V0dGluZ3MuZGV2aWNlSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2Fs
dCgpKTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gc2V0dGluZ3MuZGV2aWNlSWQoKTsKICAg
ICBpZiAoc2V0dGluZ3Muc3VwcG9ydHNHcm91cElkKCkpCi0gICAgICAgIHJlc3VsdC5ncm91cElk
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhT
YWx0KHNldHRpbmdzLmdyb3VwSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAg
ICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBzZXR0aW5ncy5ncm91cElkKCk7CiAKICAgICAvLyBGSVhN
RTogc2hvdWxkbid0IHRoaXMgaW5jbHVkZSBkaXNwbGF5U3VyZmFjZSBhbmQgbG9naWNhbFN1cmZh
Y2U/CiAKQEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgVmVjdG9yPGJvb2w+IGNhcGFiaWxpdHlC
b29sZWFuVmVjdG9yKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLU1lZGlhU3RyZWFtVHJhY2s6OlRyYWNrQ2FwYWJpbGl0aWVzIE1l
ZGlhU3RyZWFtVHJhY2s6OmdldENhcGFiaWxpdGllcyhEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0
CitNZWRpYVN0cmVhbVRyYWNrOjpUcmFja0NhcGFiaWxpdGllcyBNZWRpYVN0cmVhbVRyYWNrOjpn
ZXRDYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIGF1dG8gY2FwYWJpbGl0aWVzID0gbV9wcml2
YXRlLT5jYXBhYmlsaXRpZXMoKTsKICAgICBUcmFja0NhcGFiaWxpdGllcyByZXN1bHQ7CkBAIC0z
MTAsOSArMzEwLDkgQEAgTWVkaWFTdHJlYW1UcmFjazo6VHJhY2tDYXBhYmlsaXRpZXMgTWVkaWFT
dHJlYW1UcmFjazo6Z2V0Q2FwYWJpbGl0aWVzKERvY3VtZW50JgogICAgIGlmIChjYXBhYmlsaXRp
ZXMuc3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKCkpCiAgICAgICAgIHJlc3VsdC5lY2hvQ2FuY2Vs
bGF0aW9uID0gY2FwYWJpbGl0eUJvb2xlYW5WZWN0b3IoY2FwYWJpbGl0aWVzLmVjaG9DYW5jZWxs
YXRpb24oKSk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0RldmljZUlkKCkpCi0gICAg
ICAgIHJlc3VsdC5kZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmhhc2hTdHJpbmdXaXRoU2FsdChjYXBhYmlsaXRpZXMuZGV2aWNlSWQoKSwgZG9jdW1lbnQu
ZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gY2FwYWJpbGl0
aWVzLmRldmljZUlkKCk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0dyb3VwSWQoKSkK
LSAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQoY2FwYWJpbGl0aWVzLmdyb3VwSWQoKSwgZG9jdW1l
bnQuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBjYXBhYmls
aXRpZXMuZ3JvdXBJZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXgg
NGIwMGUwNDA0OWQ0MGZhMjRiMDhhZWQwMGIxYTVlYmU0NGE5NDcwMC4uZTM0NmY4MTNlNmNmYjlh
NzAyYWM1ZTE2ODVkMzMzZWQyYTA1Y2JmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTEwNSw3ICsxMDUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBkZXZpY2VJZDsKICAgICAgICAgU3RyaW5nIGdyb3Vw
SWQ7CiAgICAgfTsKLSAgICBUcmFja1NldHRpbmdzIGdldFNldHRpbmdzKERvY3VtZW50JikgY29u
c3Q7CisgICAgVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpIGNvbnN0OwogCiAgICAgc3RydWN0
IFRyYWNrQ2FwYWJpbGl0aWVzIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxMb25nUmFuZ2U+IHdp
ZHRoOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIGRldmljZUlk
OwogICAgICAgICBTdHJpbmcgZ3JvdXBJZDsKICAgICB9OwotICAgIFRyYWNrQ2FwYWJpbGl0aWVz
IGdldENhcGFiaWxpdGllcyhEb2N1bWVudCYpIGNvbnN0OworICAgIFRyYWNrQ2FwYWJpbGl0aWVz
IGdldENhcGFiaWxpdGllcygpIGNvbnN0OwogCiAgICAgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFp
bnRzJiBnZXRDb25zdHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH0KICAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29u
c3RyYWludHM+JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKaW5k
ZXggMmI3MWNjZTQ0N2IwZTliY2NjMzI3ZTY2ZjUzMjBhYzg1YzUzYTJhNS4uYmNmYWM4ZjljOWU1
NjAxODI0Nzk4MTA0YzcxMjhkOGNlOWM2ZDdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCkBAIC00Nyw5ICs0
Nyw5IEBAIGVudW0gTWVkaWFTdHJlYW1UcmFja1N0YXRlIHsgImxpdmUiLCAiZW5kZWQiIH07CiAg
ICAgTWVkaWFTdHJlYW1UcmFjayBjbG9uZSgpOwogICAgIFtJbXBsZW1lbnRlZEFzPXN0b3BUcmFj
a10gdm9pZCBzdG9wKCk7CiAKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tDYXBh
YmlsaXRpZXMgZ2V0Q2FwYWJpbGl0aWVzKCk7CisgICAgTWVkaWFUcmFja0NhcGFiaWxpdGllcyBn
ZXRDYXBhYmlsaXRpZXMoKTsKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludHMgZ2V0Q29uc3RyYWlu
dHMoKTsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0
aW5ncygpOworICAgIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpOwogICAgIFByb21p
c2U8dm9pZD4gYXBwbHlDb25zdHJhaW50cyhvcHRpb25hbCBNZWRpYVRyYWNrQ29uc3RyYWludHMg
Y29uc3RyYWludHMpOwogCiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm92ZXJjb25zdHJh
aW5lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDEyNWQ2ZDE3ZjQ0YjgxM2IwNTMxMGM5ODMyZDZmZjJm
YjZiM2FmYTAuLjg2NjE5Y2Q0ZTI1NTEyNWNkNmIyNzAxZjdiZjk1OTYxMmJkNDBjOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcApAQCAtMzAwLDE2ICszMDAsMTYgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojph
bGxvdyhDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0QK
ICAgICAgICAgbV9wZW5kaW5nQWN0aXZhdGlvbk1lZGlhU3RyZWFtID0gUGVuZGluZ0FjdGl2YXRp
b25NZWRpYVN0cmVhbTo6Y3JlYXRlKFdURk1vdmUocHJvdGVjdG9yKSwgKnRoaXMsIFdURk1vdmUo
c3RyZWFtKSk7CiAgICAgfTsKIAotICAgIG1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmRldmlj
ZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci0gICAgbV9yZXF1ZXN0LnZp
ZGVvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRpZmll
ckhhc2hTYWx0KTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQuZGV2aWNlSURIYXNo
U2FsdCgpLmlzRW1wdHkoKSB8fCBkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0KCkgPT0gZGV2aWNl
SWRlbnRpZmllckhhc2hTYWx0KTsKKyAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92
ZShhdWRpb0RldmljZSksIFdURk1vdmUodmlkZW9EZXZpY2UpLCBtX3JlcXVlc3QpOworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKFdU
Rk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCksIFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgbV9yZXF1ZXN0KTsKIAogICAg
IGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKICNpZiBF
TkFCTEUoV0VCX1JUQykKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50
LnBhZ2UoKSkKICAgICAgICAgcGFnZS0+cnRjQ29udHJvbGxlcigpLmRpc2FibGVJQ0VDYW5kaWRh
dGVGaWx0ZXJpbmdGb3JEb2N1bWVudChkb2N1bWVudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDYwNWYy
ZTc3MGFmNWRhMTNiYzQyODY3YTliMDlkZTYyMmE0YmNjMGMuLjUxYmZlYTBmNjRlMjlmODRkN2I3
ZGZjNWIxZjMwOWIzNWI4Y2FmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMjMxLDcgKzIzMSw4IEBAIHZvaWQgTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5k
aWRhdGUmIGNhbmRpZGF0CiAKIFJlZjxSVENSdHBSZWNlaXZlcj4gTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpjcmVhdGVSZWNlaXZlckZvclNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4mJiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxSVENSdHBSZWNlaXZlckJhY2tlbmQ+JiYg
YmFja2VuZCkKIHsKLSAgICBhdXRvIHJlbW90ZVRyYWNrUHJpdmF0ZSA9IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpLCBTdHJpbmcgeyBzb3VyY2UtPmlkKCkg
fSk7CisgICAgU3RyaW5nIHRyYWNrSUQgPSBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpOworICAgIGF1
dG8gcmVtb3RlVHJhY2tQcml2YXRlID0gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShX
VEZNb3ZlKHNvdXJjZSksIFdURk1vdmUodHJhY2tJRCkpOwogICAgIGF1dG8gcmVtb3RlVHJhY2sg
PSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKm1fcGVlckNvbm5lY3Rpb24uc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBXVEZNb3ZlKHJlbW90ZVRyYWNrUHJpdmF0ZSkpOwogCiAgICAgcmV0dXJu
IFJUQ1J0cFJlY2VpdmVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocmVtb3RlVHJhY2spLCBXVEZN
b3ZlKGJhY2tlbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDU2ZjM3YzExNjZiNmJmOWU4
NjNjNDI5Njc4NzA5YzQ4YmM2MDI2MjQuLmZjOGFlNjZjYjUzMmRmYjkwMzM4OWRmNDJjM2MwYWRm
MjY4NTNlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlKGZsb2F0IHNhbXBsZVJhdGUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKG1ha2VT
dHJpbmcoIldlYkF1ZGlvLSJfcywgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25O
b2RlIikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlIl9zKQogewogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgK
aW5kZXggMzBlYzQxYTYzYjg4OGQxNWMwMzQ1YTkyMzMzMDgwNDVkOTEyYTVmZC4uYjQyNzEwYWI4
YTFkMzBhYzAyOTMwNmVjYmI4MDM3MTY0MzBiZDJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaApAQCAtODc5LDcg
Kzg3OSw2IEBAIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzIHsKIAogICAgIE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwIG1hbmRhdG9yeUNvbnN0cmFpbnRzOwogICAgIFZlY3RvcjxNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcD4gYWR2YW5jZWRDb25zdHJhaW50czsKLSAgICBTdHJpbmcgZGV2aWNl
SURIYXNoU2FsdDsKICAgICBib29sIGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGIzNzYyOTQ3ZDY4YjY4MTRmOWY0
MmZjNGE5Y2M3MmI4MTQ2ZGNlNzEuLmM2M2JmNzlkYjRlYTZjZWFkNDRlYmY2ZmFlZTZhNGIwMWZi
YjcwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApAQCAtMzgsMTAg
KzM4LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBhdWRpb1RyYWNrLCBTdHJpbmcmJiBhdWRpb1RyYWNr
SWQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFdURk1vdmUoYXVkaW9UcmFja0lkKSwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZygpKQorICAgIDogUmVhbHRpbWVN
ZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgInJlbW90ZSBhdWRp
byJfcywgV1RGTW92ZShhdWRpb1RyYWNrSWQpKQogICAgICwgbV9hdWRpb1RyYWNrKFdURk1vdmUo
YXVkaW9UcmFjaykpCiB7Ci0gICAgc2V0TmFtZSgicmVtb3RlIGF1ZGlvIik7CiAgICAgbm90aWZ5
TXV0ZWRDaGFuZ2UoIW1fYXVkaW9UcmFjayk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2UuY3BwCmluZGV4IDc5ZjNmOWE2NzI3M2FjNDc3NjcxZmY0NzhiYmYyOWY2M2ZlYjNk
MWUuLmQ1YjQ5NjRhZmI1NWU2N2QxODgzMDE4M2M3NWZlNGM4YzJlOWI3MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAtMzgsMTAgKzM4LDkgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpSZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVy
ZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB2aWRlb1RyYWNrSWQpCi0gICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFdURk1vdmUodmlkZW9UcmFja0lkKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6VmlkZW8sIFN0cmluZygpKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgInJlbW90ZSB2aWRlbyJfcywgV1RGTW92ZSh2aWRl
b1RyYWNrSWQpKQogICAgICwgbV92aWRlb1RyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpCiB7Ci0g
ICAgc2V0TmFtZSgicmVtb3RlIHZpZGVvIik7CiAgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoIW1fdmlk
ZW9UcmFjayk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNGMxOGY0ZjA4ZDJlMTA0
NDQxNjY3YjU3NWIyNzU4MmQzNGEwNmRhYy4uNzIxNDE4MjczNTM3ZTlhNWQwYTAzNjg3ZjljMWZm
ZGQzNGEwNWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTQ3LDE0ICs0NywxNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVk
aWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUp
Ci0gICAgOiBtX2lkKGlkKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBo
YXNoU2FsdCkKKyAgICA6IG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICAsIG1f
cGVyc2lzdGVudElEKFdURk1vdmUoZGV2aWNlSUQpKQogICAgICwgbV90eXBlKHR5cGUpCi0gICAg
LCBtX25hbWUobmFtZSkKKyAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQogewotICAgIGlmICht
X2lkLmlzRW1wdHkoKSkKLSAgICAgICAgbV9pZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmco
KTsKLSAgICBtX3BlcnNpc3RlbnRJRCA9IG1faWQ7CisgICAgaWYgKG1fcGVyc2lzdGVudElELmlz
RW1wdHkoKSkKKyAgICAgICAgbV9wZXJzaXN0ZW50SUQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCk7CisgICAgZWxzZQorICAgICAgICBtX2hhc2hlZElEID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG1fcGVyc2lzdGVudElELCBt
X2lkSGFzaFNhbHQpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9ic2VydmVy
KFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikKQEAgLTYwOCwxMCArNjEw
LDkgQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncyhjb25zdCBNZWRp
YUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgRmwKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgICAgIEFTU0VSVChjb25zdHJhaW50LmlzU3RyaW5nKCkpOwotICAgICAg
ICAgICAgQVNTRVJUKCFjb25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0LmlzRW1wdHkoKSk7Cisg
ICAgICAgICAgICBBU1NFUlQoIW1faGFzaGVkSUQuaXNFbXB0eSgpKTsKIAotICAgICAgICAgICAg
YXV0byBoYXNoZWRJRCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChtX3BlcnNpc3RlbnRJRCwgY29uc3RyYWludHMuZGV2aWNlSURIYXNo
U2FsdCk7Ci0gICAgICAgICAgICBkb3VibGUgY29uc3RyYWludERpc3RhbmNlID0gZG93bmNhc3Q8
U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCkuZml0bmVzc0Rpc3RhbmNlKGhhc2hlZElEKTsK
KyAgICAgICAgICAgIGRvdWJsZSBjb25zdHJhaW50RGlzdGFuY2UgPSBkb3duY2FzdDxTdHJpbmdD
b25zdHJhaW50Pihjb25zdHJhaW50KS5maXRuZXNzRGlzdGFuY2UobV9oYXNoZWRJRCk7CiAgICAg
ICAgICAgICBpZiAoc3RkOjppc2luZihjb25zdHJhaW50RGlzdGFuY2UpKSB7CiAgICAgICAgICAg
ICAgICAgZmFpbGVkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQubmFtZSgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtOTU4LDYgKzk1OSwxNiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0
aW9uKQogICAgIH0pOwogfQogCitjb25zdCBTdHJpbmcmIFJlYWx0aW1lTWVkaWFTb3VyY2U6Omhh
c2hlZElkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNoZWRJRDsKK30KKworU3RyaW5nIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OmRldmljZUlESGFzaFNhbHQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2lkSGFzaFNhbHQ7Cit9CisKIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyOjp+T2Jz
ZXJ2ZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDc3ZGEzMDhmNGNhYzg0NjZlZTli
NDI3YWI1ZWIxNThmNWEwYTNmM2UuLmJjZWY1NjliYTU4NGIxZWFiYjVjYTIyYmVkM2I4NjZiYTdh
ZGRhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTg4LDEwICs4OCwxMCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlKCkgPSBkZWZhdWx0OwogCi0gICAgY29u
c3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBjb25zdCBTdHJpbmcm
IGhhc2hlZElkKCkgY29uc3Q7CisgICAgU3RyaW5nIGRldmljZUlESGFzaFNhbHQoKSBjb25zdDsK
IAogICAgIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJz
aXN0ZW50SUQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGVyc2lzdGVudElEKFN0cmluZyYmIHBl
cnNpc3RlbnRJRCkgeyBtX3BlcnNpc3RlbnRJRCA9IFdURk1vdmUocGVyc2lzdGVudElEKTsgfQog
CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgQXVkaW8sIFZpZGVvIH07CiAgICAgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CkBAIC0xNjYsNyArMTY2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkZWxheVNhbXBsZXMoU2Vjb25kcykgeyB9OwogCiBwcm90ZWN0
ZWQ6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBUeXBlLCBjb25z
dCBTdHJpbmcmIG5hbWUpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9KTsK
IAogICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYp
OwogCkBAIC0yMDQsNyArMjA0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9tdXRlZCB7IGZh
bHNlIH07CiAKLSAgICBTdHJpbmcgbV9pZDsKKyAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OworICAg
IFN0cmluZyBtX2hhc2hlZElEOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKICAgICBUeXBl
IG1fdHlwZTsKICAgICBTdHJpbmcgbV9uYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAppbmRleCA1ZTFiNWE1Zjk0ODZjOWIxNDkwMWIzY2EwOGFmZTdhMWY1MTIzM2FmLi5hNmY4
ZmYzMTNmZWM5NmFlZDViODkwMDQ4YjNiZjY0NTk0NDhkMzc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcApAQCAtNzksMTQgKzc5LDE0IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKQogCiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpID0gZGVmYXVsdDsKIAotdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVh
bUhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlciwgQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNl
LCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYg
cmVxdWVzdCkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJl
YW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIsIFN0cmluZyYmIGhh
c2hTYWx0LCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRl
b0RldmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIFZlY3Rv
cjxSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IGF1ZGlvU291cmNlczsKICAgICBWZWN0b3I8UmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+PiB2aWRlb1NvdXJjZXM7CiAgICAgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50OwogCiAgICAgaWYgKGF1ZGlvRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gYXVkaW9T
b3VyY2UgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShh
dWRpb0RldmljZSksICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpOworICAgICAgICBhdXRvIGF1
ZGlvU291cmNlID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0
cmFpbnRzKTsKICAgICAgICAgaWYgKGF1ZGlvU291cmNlKQogICAgICAgICAgICAgYXVkaW9Tb3Vy
Y2VzLmFwcGVuZChhdWRpb1NvdXJjZS5zb3VyY2UoKSk7CiAgICAgICAgIGVsc2UgewpAQCAtMTAy
LDcgKzEwMiw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxlCiAgICAgaWYgKHZpZGVvRGV2aWNl
KSB7CiAgICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHZpZGVvU291cmNlOwogICAgICAgICBp
ZiAodmlkZW9EZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVy
YSkKLSAgICAgICAgICAgIHZpZGVvU291cmNlID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgICAgIHZpZGVvU291cmNlID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
JnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZp
ZGVvU291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVT
b3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOwog
CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRE
aXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYKICAgICB9CiB9CiAK
LXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25z
dCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlcXVlc3QsIFZlY3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9E
ZXZpY2VJbmZvLCBWZWN0b3I8RGV2aWNlSW5mbz4mIHZpZGVvRGV2aWNlSW5mbywgU3RyaW5nJiBm
aXJzdEludmFsaWRDb25zdHJhaW50KQordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpn
ZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVzdCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFZlY3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9EZXZpY2VJbmZvLCBWZWN0
b3I8RGV2aWNlSW5mbz4mIHZpZGVvRGV2aWNlSW5mbywgU3RyaW5nJiBmaXJzdEludmFsaWRDb25z
dHJhaW50KQogewogICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKICAgICBpZiAocmVxdWVz
dC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKQEAgLTIzOSw3ICsyMzksNyBAQCB2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFT
dHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3Ig
PSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCB7IH0pOwor
ICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKICAgICAg
ICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+
c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25z
dHJhaW50KSkKICAgICAgICAgICAgICAgICBhdWRpb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VP
ckVycm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKIApAQCAtMjUz
LDcgKzI1Myw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlh
RGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRl
dmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAg
IGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShkZXZpY2UsIHsgfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRl
b0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNo
U2FsdCB9LCB7IH0pOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JF
cnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25z
dHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNl
SW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCks
IGRldmljZX0pOwogCkBAIC0yNzksNyArMjc5LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwK
ICAgICBpZiAocmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxh
eU1lZGlhKQogICAgICAgICBnZXREaXNwbGF5TWVkaWFEZXZpY2VzKHJlcXVlc3QsIHZpZGVvRGV2
aWNlSW5mbywgZmlyc3RJbnZhbGlkQ29uc3RyYWludCk7CiAgICAgZWxzZQotICAgICAgICBnZXRV
c2VyTWVkaWFEZXZpY2VzKHJlcXVlc3QsIGF1ZGlvRGV2aWNlSW5mbywgdmlkZW9EZXZpY2VJbmZv
LCBmaXJzdEludmFsaWRDb25zdHJhaW50KTsKKyAgICAgICAgZ2V0VXNlck1lZGlhRGV2aWNlcyhy
ZXF1ZXN0LCBTdHJpbmcgeyBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQgfSwgYXVkaW9EZXZpY2VJ
bmZvLCB2aWRlb0RldmljZUluZm8sIGZpcnN0SW52YWxpZENvbnN0cmFpbnQpOwogCiAgICAgaWYg
KChyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiBhdWRpb0RldmljZUluZm8uaXNF
bXB0eSgpKSB8fCAocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgdmlkZW9EZXZp
Y2VJbmZvLmlzRW1wdHkoKSkpIHsKICAgICAgICAgaW52YWxpZEhhbmRsZXIoZmlyc3RJbnZhbGlk
Q29uc3RyYWludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggODFmYjg1YzIx
MDI5MWY5ZTJjZGIyNjdmMjEzMjE4MTNiN2RkZjViZC4uNGUxNzAyN2RlNmVjYzhiNDA3OWJiNDVj
YjA4OTc2MjM0MmM3MjUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNjUs
NyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0
cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJhaW50c0hhbmRs
ZXImJiwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgU3RyaW5nJiYpOwogCiAgICAgdXNpbmcg
TmV3TWVkaWFTdHJlYW1IYW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKFJlZlB0cjxNZWRpYVN0
cmVhbVByaXZhdGU+JiYpPjsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3
TWVkaWFTdHJlYW1IYW5kbGVyJiYsIENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVy
ZURldmljZSYmIHZpZGVvRGV2aWNlLCBjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYsIFN0
cmluZyYmLCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRl
b0RldmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0Jik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBnZXRNZWRpYVN0cmVhbURldmljZXMoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVE
ZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0
cmluZyYpOwpAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHZvaWQg
Z2V0RGlzcGxheU1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmLCBWZWN0b3I8
RGV2aWNlSW5mbz4mLCBTdHJpbmcmKTsKLSAgICB2b2lkIGdldFVzZXJNZWRpYURldmljZXMoY29u
c3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgVmVjdG9yPERldmljZUluZm8+JiBhdWRpb0RldmljZXMs
IFZlY3RvcjxEZXZpY2VJbmZvPiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmKTsKKyAgICB2b2lkIGdl
dFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgU3RyaW5nJiYsIFZl
Y3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8RGV2aWNlSW5mbz4mIHZpZGVv
RGV2aWNlcywgU3RyaW5nJik7CiAKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9kZXZpY2VD
aGFuZ2VkT2JzZXJ2ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCmlu
ZGV4IDk3MjVkN2ZiOGY1N2RjNzNiNzUzNmU5ODFiMzJjZWUyZjJkMjMyYzcuLjg2ODI4OTBlYmIz
Yzc0Yzk1Yjc5YWFkNWRjZTUyNzRmNDQ0MjQyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5jcHAKQEAgLTI2LDE1ICsyNiwxNSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCiAKLSNpbmNsdWRlICJDYXB0dXJl
RGV2aWNlLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgotCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKICNpbmNsdWRlICJD
YXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJN
ZWRpYVN0cmVhbVByaXZhdGUuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAj
aW5jbHVkZSA8d3RmL1NIQTEuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAppbmRl
eCBmOWM0N2NhYThlMGU4NTg0ZGI5MmM5NGMxM2U5YWMzY2U0ZjAxYTY4Li45OTc4ZDM1YzA4YjVl
Yzk2YzgxZGY5YWI2NzNhZTcwNTVlOTI5MjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0
b3J5LmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgQXVkaW9DYXB0dXJlRmFjdG9yeQogewogcHVi
bGljOgogICAgIHZpcnR1YWwgfkF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAg
dmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgQ2FwdHVyZURldmljZSYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgdmly
dHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOwog
CiBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKQEAgLTY2
LDcgKzY2LDcgQEAgY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeQogewogcHVibGljOgogICAgIHZp
cnR1YWwgflZpZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURl
dmljZSYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgdmlydHVhbCBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0NhcHR1cmVQYWdlU3RhdGUoYm9vbCwgYm9vbCkgeyB9CiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggZjVkYjliMDk3ZTc2NDM5YWIxMTk4ZTdlZTYy
YmUwNWEyMmQzZDdhYi4uNTY2NGIwOTIxMDA3MmUxMWJiYjBhOGNkYzVjYmIyNDIyMTI1ZGE2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTM0LDggKzM0LDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1SZWFsdGltZVZpZGVvU291cmNlOjpSZWFsdGltZVZpZGVvU291cmNlKGNvbnN0
IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3Vy
Y2UoaWQsIFR5cGU6OlZpZGVvLCBuYW1lKQorUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVW
aWRlb1NvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQp
CisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFR5cGU6OlZpZGVvLCBXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGlkKSwgV1RGTW92ZShoYXNoU2FsdCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApp
bmRleCA4N2FiODBhMThkZGFlNWNjNjEzNTE0MDM0MGIyNjgxMjY5M2IwMzVhLi5hNDljZjZjY2Y2
NmIwMzliOTE1OTI2NmNhODk0NWM4NTA0YTJkNzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00
Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZWFsdGltZVZpZGVvU291cmNlKCk7
CiAKIHByb3RlY3RlZDoKLSAgICBSZWFsdGltZVZpZGVvU291cmNlKGNvbnN0IFN0cmluZyYgaWQs
IGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCiAgICAgdm9pZCBwcmVwYXJl
VG9Qcm9kdWNlRGF0YSgpOwogICAgIGJvb2wgc3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6
b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhlaWdodCwgc3RkOjpvcHRp
b25hbDxkb3VibGU+KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
ckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggNzRmYTM5YzllNjcxNDEzNWFlZWFhM2EzNGJh
NGI5NjI3MWNiM2MwZS4uZTcyYzdjMmEyNzFmYjE2Y2ZkMmY1NDc3OGZlYTQ2ZTNiNzI3NzIwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAKQEAgLTUzLDkgKzUzLDkgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVn
KCkKIAogY2xhc3MgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBB
dWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpIGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBjb25zdHJhaW50cyk7CisgICAgICAg
IHJldHVybiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZp
Y2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAg
ICB9CiB9OwogCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2VGYWN0b3J5JiBsaWJXZWJSVENBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5KCkKICAgICBy
ZXR1cm4gZmFjdG9yeS5nZXQoKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewogICAg
IGF1dG8gZGV2aWNlID0gR1N0cmVhbWVyQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xl
dG9uKCkuZ3N0cmVhbWVyRGV2aWNlV2l0aFVJRChkZXZpY2VJRCk7CiAgICAgaWYgKCFkZXZpY2Up
IHsKQEAgLTczLDcgKzczLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwKICAgICAgICAgcmV0
dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgfQog
Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZShkZXZpY2UudmFsdWUoKSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnZhbHVlKCksIFdURk1vdmUoaGFzaFNh
bHQpKSk7CiAKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBz
b3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKQEAgLTg4LDE1ICs4OCwxNSBA
QCBBdWRpb0NhcHR1cmVGYWN0b3J5JiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3Rv
cnkoKQogICAgIHJldHVybiBsaWJXZWJSVENBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5KCk7CiB9
CiAKLUdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UgZGV2aWNlKQotICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShkZXZpY2UucGVyc2lzdGVudElkKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvLCBkZXZpY2UubGFiZWwoKSkKK0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6R1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UgZGV2aWNlLCBTdHJp
bmcmJiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fY2FwdHVy
ZXIoc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJBdWRpb0NhcHR1cmVyPihkZXZpY2UpKQogewog
ICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOwogfQogCi1HU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmlj
ZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRldmlj
ZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgbmFtZSkKK0dTdHJlYW1lckF1
ZGlvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1l
TWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFt
ZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fY2FwdHVy
ZXIoc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJBdWRpb0NhcHR1cmVyPigpKQogewogICAgIGlu
aXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOwpAQCAtMTYzLDcgKzE2Myw3IEBAIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6
Y2FwYWJpbGl0aWVzCiAgICAgfQogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyBjYXBhYmlsaXRpZXMoc2V0dGluZ3MoKS5zdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKLSAgICBj
YXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgY2FwYWJpbGl0aWVzLnNldERldmlj
ZUlkKGhhc2hlZElkKCkpOwogICAgIGNhcGFiaWxpdGllcy5zZXRFY2hvQ2FuY2VsbGF0aW9uKGRl
ZmF1bHRFY2hvQ2FuY2VsbGF0aW9uQ2FwYWJpbGl0eSk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFZv
bHVtZShkZWZhdWx0Vm9sdW1lQ2FwYWJpbGl0eSgpKTsKICAgICBjYXBhYmlsaXRpZXMuc2V0U2Ft
cGxlUmF0ZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKG1pblNhbXBsZVJhdGUsIG1heFNhbXBsZVJh
dGUpKTsKQEAgLTE4Miw3ICsxODIsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MoKQogewogICAgIGlmICgh
bV9jdXJyZW50U2V0dGluZ3MpIHsKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
IHNldHRpbmdzOwotICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAgICAg
c2V0dGluZ3Muc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAKICAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIHN1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgICAg
ICBzdXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0RldmljZUlkKHRydWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDc1OWU4
MTQ3MTE1MjdhZWZkNWYwZGUwY2U2ZGFiMDYwNTA0NDAwZjEuLmZhMzQxOTRkYTJlMzVjZGUwYTFm
ZWRlZGU5ZmVlZTY0ZDZkOGZmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVN
ZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Cisg
ICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiAgICAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgb3ZlcnJp
ZGU7CkBAIC00MCw4ICs0MCw4IEBAIHB1YmxpYzoKICAgICBHU3RyZWFtZXJDYXB0dXJlciogY2Fw
dHVyZXIoKSB7IHJldHVybiBtX2NhcHR1cmVyLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKLSAgICBH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZSk7Ci0gICAg
R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0
IFN0cmluZyYgbmFtZSk7CisgICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKEdTdHJlYW1l
ckNhcHR1cmVEZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KTsKKyAgICBHU3RyZWFtZXJBdWRpb0Nh
cHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0KTsKICAgICB2aXJ0dWFsIH5HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoKTsKICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMjA5ZGI2NTk3OTI3NjM4NWVkYzEyMTMzNmU2MTJk
ODhjMWQ0OWZkZS4uM2FhZjA3Y2U0NzA4ZDIyNGY1YzcwY2ZhYTljNzExM2RmZWEzNjY4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAK
QEAgLTU0LDkgKzU0LDkgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCkK
IAogY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeSBmaW5hbCA6IHB1Ymxp
YyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMpIGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gR1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBjb25zdHJhaW50cyk7CisgICAg
ICAgIHJldHVybiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBk
ZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsK
ICAgICB9CiB9OwogCkBAIC02OCw3ICs2OCw3IEBAIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIGxpYldl
YlJUQ1ZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkoKQogCiBjbGFzcyBHU3RyZWFtZXJEaXNwbGF5
Q2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVGYWN0b3J5
IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopIGZp
bmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYsIFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikg
ZmluYWwKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTgxLDcgKzgxLDcgQEAgRGlzcGxheUNhcHR1cmVGYWN0b3J5JiBsaWJX
ZWJSVENEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnkoKQogICAgIHJldHVybiBmYWN0b3J5Lmdl
dCgpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgYXV0byBkZXZpY2UgPSBH
U3RyZWFtZXJWaWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5nc3RyZWFtZXJE
ZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmljZSkgewpAQCAtODksNyArODks
NyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELAogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICB9CiAKLSAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGRldmljZS52YWx1
ZSgpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZShkZXZpY2UudmFsdWUoKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKIAogICAgIGlm
IChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50cygqY29uc3RyYWludHMpOwpAQCAtMTA5LDE1ICsxMDksMTUgQEAgRGlzcGxheUNhcHR1
cmVGYWN0b3J5JiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BsYXlGYWN0b3J5KCkK
ICAgICByZXR1cm4gbGliV2ViUlRDRGlzcGxheUNhcHR1cmVTb3VyY2VGYWN0b3J5KCk7CiB9CiAK
LUdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgZ2NoYXIg
KnNvdXJjZV9mYWN0b3J5KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2VJRCwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIG5hbWUpCitHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IGdjaGFyICpzb3VyY2VfZmFj
dG9yeSkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hT
YWx0KSkKICAgICAsIG1fY2FwdHVyZXIoc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJWaWRlb0Nh
cHR1cmVyPihzb3VyY2VfZmFjdG9yeSkpCiB7CiAgICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVn
KCk7CiB9CiAKLUdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0
dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UgZGV2aWNlKQotICAgIDogUmVhbHRpbWVN
ZWRpYVNvdXJjZShkZXZpY2UucGVyc2lzdGVudElkKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OlZpZGVvLCBkZXZpY2UubGFiZWwoKSkKK0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UgZGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1f
Y2FwdHVyZXIoc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVyPihkZXZpY2Up
KQogewogICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOwpAQCAtMjQyLDcgKzI0Miw3IEBA
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAg
ICAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIGNhcGFiaWxpdGll
cy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNldFdpZHRo
KENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UobWluV2lkdGgsIG1heFdpZHRoKSk7CiAgICAgICAgIGNh
cGFiaWxpdGllcy5zZXRIZWlnaHQoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZShtaW5IZWlnaHQsIG1h
eEhlaWdodCkpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0RnJhbWVSYXRlKENhcGFiaWxpdHlW
YWx1ZU9yUmFuZ2UobWluRnJhbWVyYXRlLCBtYXhGcmFtZXJhdGUpKTsKQEAgLTI1Niw3ICsyNTYs
NyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZTo6c2V0dGluZ3MoKQogewogICAgIGlmICghbV9jdXJyZW50U2V0dGluZ3MpIHsK
ICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwotICAgICAgICBz
ZXR0aW5ncy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQo
aGFzaGVkSWQoKSk7CiAKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0
cmFpbnRzIHN1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgICAgICBzdXBwb3J0ZWRDb25zdHJhaW50
cy5zZXRTdXBwb3J0c0RldmljZUlkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDY3YmNkMWEyMGFiMDFkM2U3MTZhMDA2NzJh
Y2Y3MWI1OTMwNDg3NzcuLjIzMWVkNGFhMzA3YmZmZDBiNWU3ZjlhZjc3OWI3OGU3MjU5ZDUzODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgK
QEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmIGRl
dmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmlkZW9D
YXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
LgpAQCAtNDEsOCArNDEsOCBAQCBwdWJsaWM6CiAgICAgR1N0cmVhbWVyQ2FwdHVyZXIqIGNhcHR1
cmVyKCkgeyByZXR1cm4gbV9jYXB0dXJlci5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgZ2NoYXIgKiBzb3VyY2VfZmFjdG9yeSk7Ci0gICAgR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UpOworICAgIEdTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IGdjaGFyICogc291cmNlX2ZhY3RvcnkpOworICAgIEdTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCk7CiAgICAgdmlydHVhbCB+R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKCk7CiAg
ICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9k
dWNpbmdEYXRhKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggOWYwMWU2NzEyMDIwYjFhZmMwMzlm
ZmVmYzBmMDc2ZWJkZjU1NzRkOC4uN2RjMTE2OTMwNDNhMWYyZDg5YWU2Y2JiOTg0MDJhZTFjMzg3
NTE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlLmNwcApAQCAtMzAsMTYgKzMwLDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgV3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIDogcHVibGljIE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlIHsKIHB1YmxpYzoKLSAgICBXcmFwcGVkTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgICAg
ICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKGRldmljZUlELCBuYW1lKQorICAgIFdyYXBwZWRN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQpCisgICAgICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgIHsK
ICAgICB9CiB9OwogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsCi0gICAgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVy
cm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsCisg
ICAgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2Nr
R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCBuYW1lKSk7CisgICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CiAKICAg
ICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50
cykpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC01OCw5ICs1OCw5IEBAIHZvaWQgTW9ja0dTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0
cmFpbnRzJiBjCiAgICAgbV93cmFwcGVkU291cmNlLT5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFp
bnRzLCBXVEZNb3ZlKHN1Y2Nlc3NIYW5kbGVyKSwgV1RGTW92ZShmYWlsdXJlSGFuZGxlcikpOwog
fQogCi1Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpNb2NrR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkK
LSAgICA6IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgbmFtZSkKLSAgICAs
IG1fd3JhcHBlZFNvdXJjZShzdGQ6Om1ha2VfdW5pcXVlPFdyYXBwZWRNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZT4oZGV2aWNlSUQsIG5hbWUpKQorTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6TW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBHU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UoZGV2aWNlSUQsIG5hbWUsIGhhc2hTYWx0KQorICAgICwgbV93cmFwcGVkU291cmNl
KHN0ZDo6bWFrZV91bmlxdWU8V3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPihXVEZNb3Zl
KGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKQogewogICAgIG1f
d3JhcHBlZFNvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRp
b0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggYjU3MTgxZDlh
MWM5YzlhZDcwZjFmNTY2NzlkMzc1NWU0NTRiMTA4My4uOGE0YmJlODVmMzc3ZGU2NzA2NGE5MDhl
YjQxNjE1NjJmYTRkNjdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSBmaW5hbCA6IHB1
YmxpYyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UsIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9i
c2VydmVyIHsKIHB1YmxpYzoKLSAgICBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgTW9ja0dTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQpOwogICAgIH5Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
KCk7CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBhcHBseUNv
bnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmKTsKICAgICB2b2lkIGFwcGx5Q29uc3Ry
YWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFN1Y2Nlc3NIYW5kbGVyJiYsIEZhaWx1cmVI
YW5kbGVyJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDQ0ZDk0Y2MyN2UzMjY3MmJiNGM0NDIwNjM1
MzFiYzgyZjJiY2Y0Y2IuLjY0NjNkYzE4MjAyNmE5MTg3Mjg5NmIwOTQyMDk5YjQ1ODA1MmNmZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZS5jcHAKQEAgLTYxLDEwICs2MSwxMCBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAotQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBT
dHJpbmcmIGRldmljZUlELAotICAgIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELAorICAgIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykK
IHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja0dTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZShkZXZpY2VJRCwgbmFtZSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBX
VEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogCiAgICAgaWYgKGNvbnN0cmFpbnRz
ICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICByZXR1
cm4geyB9OwpAQCAtOTUsOSArOTUsOSBAQCB2b2lkIE1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgfQog
fQogCi1Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpNb2NrR1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkK
LSAgICA6IEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgbmFtZSwgImFwcHNy
YyIpCi0gICAgLCBtX3dyYXBwZWRTb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxXcmFwcGVkTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U+KGRldmljZUlELCBuYW1lKSkKK01vY2tHU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2U6Ok1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2
aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlKGRldmljZUlELCBuYW1lLCBoYXNoU2FsdCwgImFwcHNyYyIpCisg
ICAgLCBtX3dyYXBwZWRTb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxXcmFwcGVkTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U+KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSkpCiB7CiAgICAgbV93cmFwcGVkU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuaAppbmRleCBkMDhhYTQ4OTk1ODVlOWEzMzVkMjkzN2VjNzEzZmNkODk3OWM1ZjVkLi5jMjQ4
NjMyM2IzMWEzZWU1ZmQ0NDYxNDkxMWQ4OGI2ZGEzY2VmOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVv
Q2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTM0LDcgKzM0
LDcgQEAgY2xhc3MgV3JhcHBlZE1vY2tSZWFsdGltZVZpZGVvU291cmNlOwogLy8gdG8gdGhlIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlIGNsYXNzIGJ5IHdyYXBwaW5nIG91ciBvd24gc3ViY2xhc3Mg
b2YgaXQuCiBjbGFzcyBNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlIGZpbmFsIDogcHVi
bGljIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2Jz
ZXJ2ZXIgewogcHVibGljOgotICAgIE1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBNb2NrR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCk7CiAgICAgfk1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2Uo
KTsKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGFwcGx5Q29u
c3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3VjY2Vzc0hhbmRsZXImJiwgRmFpbHVyZUhh
bmRsZXImJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGQzOGUxYWU2
MjY1MGE2ZTM2NDczYjExY2IxZWM5ZjFlMDE0MjJlMjkuLjNiNDlmNDZmZGEzZWMzMjZjNzM4NTE3
M2ZhNmNkMjdlY2YyOWVmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC01Myw3
ICs1Myw3IEBAIGNsYXNzIFBpeGVsQnVmZmVyUmVzaXplcjsKIAogY2xhc3MgQVZWaWRlb0NhcHR1
cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb1NvdXJjZSwgcHJpdmF0ZSBPcmllbnRhdGlv
bk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
Kik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBpZCwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKQEAgLTcx
LDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBs
ZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVm
LCBBVkNhcHR1cmVDb25uZWN0aW9uKik7CiAKIHByaXZhdGU6Ci0gICAgQVZWaWRlb0NhcHR1cmVT
b3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgQVZWaWRl
b0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhh
c2hTYWx0KTsKICAgICB2aXJ0dWFsIH5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCiAgICAgYm9v
bCBzZXR1cFNlc3Npb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCA0Y2Iy
ZjkzOTdlYWNjMTVmNzZkYmRmNGI2Mzc4MDg5Mjg1MDM1ZWQwLi41MTk2MDgyMjJlNjYxNGFiMmVk
Y2VjMjNmMzUwMDkwNzU5ZDExOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBA
IC0xNTAsMTMgKzE1MCwxMyBAQCBwdWJsaWM6CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmlj
ZUZvcm1hdFR5cGU+IGZvcm1hdDsKIH07CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9D
YXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgQVZDYXB0dXJlRGV2aWNlVHlw
ZWRlZiAqZGV2aWNlID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgZGV2aWNlV2l0aFVuaXF1
ZUlEOmlkXTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlk
KSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlkZW9DYXB0dXJlU291cmNl
KGRldmljZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKSk7CiAgICAgaWYgKGNvbnN0
cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRz
KCpjb25zdHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpCkBAIC0xNjYsOCArMTY2LDggQEAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIGlkLCBjb25zdAogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihX
VEZNb3ZlKHNvdXJjZSkpOwogfQogCi1BVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1
cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJp
bmcmIGlkKQotICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShpZCwgZGV2aWNlLmxvY2FsaXplZE5h
bWUpCitBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJl
RGV2aWNlVHlwZWRlZiogZGV2aWNlLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpCisg
ICAgOiBSZWFsdGltZVZpZGVvU291cmNlKGRldmljZS5sb2NhbGl6ZWROYW1lLCBXVEZNb3ZlKGlk
KSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtbV2Vi
Q29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6
dGhpc10pKQogICAgICwgbV9kZXZpY2UoZGV2aWNlKQogewpAQCAtMTc3LDggKzE3Nyw2IEBAIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VU
eXBlZGVmKiBkZXZpY2UsIGNvbnN0CiAgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxpbnQ+
KEludGVycnVwdGlvblJlYXNvbjo6VmlkZW9JblVzZSkgPT0gQVZDYXB0dXJlU2Vzc2lvbkludGVy
cnVwdGlvblJlYXNvblZpZGVvRGV2aWNlSW5Vc2VCeUFub3RoZXJDbGllbnQsICJJbnRlcnJ1cHRp
b25SZWFzb246OlZpZGVvSW5Vc2UgaXMgbm90IEFWQ2FwdHVyZVNlc3Npb25JbnRlcnJ1cHRpb25S
ZWFzb25WaWRlb0RldmljZUluVXNlQnlBbm90aGVyQ2xpZW50IGFzIGV4cGVjdGVkIik7CiAgICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxpbnQ+KEludGVycnVwdGlvblJlYXNvbjo6QXVkaW9J
blVzZSkgPT0gQVZDYXB0dXJlU2Vzc2lvbkludGVycnVwdGlvblJlYXNvbkF1ZGlvRGV2aWNlSW5V
c2VCeUFub3RoZXJDbGllbnQsICJJbnRlcnJ1cHRpb25SZWFzb246OkF1ZGlvSW5Vc2UgaXMgbm90
IEFWQ2FwdHVyZVNlc3Npb25JbnRlcnJ1cHRpb25SZWFzb25BdWRpb0RldmljZUluVXNlQnlBbm90
aGVyQ2xpZW50IGFzIGV4cGVjdGVkIik7CiAjZW5kaWYKLQotICAgIHNldFBlcnNpc3RlbnRJRChT
dHJpbmcoZGV2aWNlLnVuaXF1ZUlEKSk7CiB9CiAKIEFWVmlkZW9DYXB0dXJlU291cmNlOjp+QVZW
aWRlb0NhcHR1cmVTb3VyY2UoKQpAQCAtMjYwLDcgKzI1OCw3IEBAIGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdzKCkKICAgICBh
dXRvJiBzaXplID0gdGhpcy0+c2l6ZSgpOwogICAgIHNldHRpbmdzLnNldFdpZHRoKHNpemUud2lk
dGgoKSk7CiAgICAgc2V0dGluZ3Muc2V0SGVpZ2h0KHNpemUuaGVpZ2h0KCkpOwotICAgIHNldHRp
bmdzLnNldERldmljZUlkKGlkKCkpOworICAgIHNldHRpbmdzLnNldERldmljZUlkKGhhc2hlZElk
KCkpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIHN1cHBv
cnRlZENvbnN0cmFpbnRzOwogICAgIHN1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzRGV2
aWNlSWQodHJ1ZSk7CkBAIC0yODMsNyArMjgxLDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyYgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpCiAgICAg
ICAgIHJldHVybiAqbV9jYXBhYmlsaXRpZXM7CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0aW5ncygpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCkp
OwotICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICBjYXBhYmlsaXRpZXMu
c2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAKICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlZGVmICp2
aWRlb0RldmljZSA9IGRldmljZSgpOwogICAgIGlmIChbdmlkZW9EZXZpY2UgcG9zaXRpb25dID09
IEFWQ2FwdHVyZURldmljZVBvc2l0aW9uRnJvbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKaW5kZXggODU5ZDczOGE5NGY5MDI1ZmU3ZTRiMDZkYjg1OWE0MTUwYTg4MWUxYS4u
YzllYTU4ODIyNTc5ZDhjMGIwYTgxZmRlZDFmOTE2ZWVjNWE3MzRlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjk0LDIwICs2OTQsMjAgQEAgT1NTdGF0dXMgQ29y
ZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdE91dHB1dERldmljZSh1aW50MzJfdCogZGV2aWNlSUQp
CiAgICAgcmV0dXJuIGVycjsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmds
ZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOwogICAgIGlmICghZGV2aWNl
KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGRldmljZS0+bGFiZWwoKSwgZGV2aWNl
LT5kZXZpY2VJRCgpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRp
b0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwo
KSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgZGV2aWNlLT5kZXZpY2VJRCgpKSk7CiAjZWxpZiBQTEFU
Rk9STShJT1MpCi0gICAgYXV0byBkZXZpY2UgPSBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpzaW5nbGV0b24oKS5hdWRpb1Nlc3Npb25EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsK
KyAgICBhdXRvIGRldmljZSA9IEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNp
bmdsZXRvbigpLmF1ZGlvU2Vzc2lvbkRldmljZVdpdGhVSUQoV1RGTW92ZShkZXZpY2VJRCkpOwog
ICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBzb3VyY2Ug
PSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGRldmljZS0+
bGFiZWwoKSwgMCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9D
YXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkg
fSwgV1RGTW92ZShoYXNoU2FsdCksIDApKTsKICNlbmRpZgogCiAgICAgaWYgKGNvbnN0cmFpbnRz
KSB7CkBAIC03NzQsOCArNzc0LDggQEAgQXVkaW9DYXB0dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6ZmFjdG9yeSgpCiAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VG
YWN0b3J5OjpzaW5nbGV0b24oKTsKIH0KIAotQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIGxh
YmVsLCB1aW50MzJfdCBwZXJzaXN0ZW50SUQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRl
dmljZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgbGFiZWwpCitDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQzMl90IHBlcnNpc3RlbnRJ
RCkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
QXVkaW8sIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2Fs
dCkpCiAgICAgLCBtX2NhcHR1cmVEZXZpY2VJRChwZXJzaXN0ZW50SUQpCiB7CiAgICAgYXV0byYg
dW5pdCA9IENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpOwpAQCAtODQ1LDcgKzg0NSw3
IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIENvcmVBdWRpb0NhcHR1
cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpCiB7CiAgICAgaWYgKCFtX2NhcGFiaWxpdGllcykgewog
ICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0
aW5ncygpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOwotICAgICAgICBjYXBhYmlsaXRpZXMuc2V0
RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNoZWRJ
ZCgpKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNldEVjaG9DYW5jZWxsYXRpb24oUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6RWNob0NhbmNlbGxhdGlvbjo6UmVhZFdyaXRlKTsKICAg
ICAgICAgY2FwYWJpbGl0aWVzLnNldFZvbHVtZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDAuMCwg
MS4wKSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRTYW1wbGVSYXRlKENhcGFiaWxpdHlWYWx1
ZU9yUmFuZ2UoODAwMCwgOTYwMDApKTsKQEAgLTg2MCw3ICs4NjAsNyBAQCBjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdzKCkK
ICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwogICAgICAgICBz
ZXR0aW5ncy5zZXRWb2x1bWUodm9sdW1lKCkpOwogICAgICAgICBzZXR0aW5ncy5zZXRTYW1wbGVS
YXRlKHNhbXBsZVJhdGUoKSk7Ci0gICAgICAgIHNldHRpbmdzLnNldERldmljZUlkKGlkKCkpOwor
ICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKICAgICAgICAgc2V0dGlu
Z3Muc2V0TGFiZWwobmFtZSgpKTsKICAgICAgICAgc2V0dGluZ3Muc2V0RWNob0NhbmNlbGxhdGlv
bihlY2hvQ2FuY2VsbGF0aW9uKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApp
bmRleCBlNWYxYTRmMTA1NjBlYzY2ODU3ZjJmMTg5NTJmMGJiM2Y4ZDMyOGI0Li4wNmI1ZjY0NmVm
NjIwN2UyNTk1ODBlZWM3NGJiYjI1NDlhMDI4MTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmgKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM7CiBjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVk
aWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Cisg
ICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKQEAgLTc0
LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVSZWNvbmZpZ3VyYXRpb24oKTsK
IAogcHJvdGVjdGVkOgotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgdWludDMyX3QgcGVyc2lzdGVudElEKTsKKyAg
ICBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBsYWJl
bCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQzMl90IHBlcnNpc3RlbnRJRCk7CiAgICAgdmlydHVh
bCB+Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSgpOwogCiBwcml2YXRlOgpAQCAtMTI2LDkgKzEyNiw5
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJl
dHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IGRjNmExOGI1
NGEyMDY0ZTIwYWEyMzg4MTViZGMyMjUzMjg4N2I5NzAuLjM3M2QwZjhhNTNhNWU2YTZlYTRjN2U0
YmRmOTc2ZDhlZGQ5NTQ0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNw
YWNlIFBBTDsKIAogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYShTdHJpbmcmJiBuYW1lKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZSgiIiwgVHlw
ZTo6VmlkZW8sIFdURk1vdmUobmFtZSkpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFR5cGU6
OlZpZGVvLCBXVEZNb3ZlKG5hbWUpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCks
IHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaAppbmRleCAyNGRkYzY3ZDJiNzBiOTQ5MzU1
NjQ1MWE5YWI0OGFiMjJmZTMwODJkLi5iZmU0MGI4NjA1ODFmMWNkYjkzMWIzNWNiZjQ3ZmYwNzJj
M2JhYWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKQEAgLTUxLDcg
KzUxLDcgQEAgY2xhc3MgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSA6IHB1YmxpYyBSZWFsdGlt
ZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAogcHJvdGVjdGVkOgotICAgIERpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2EoU3RyaW5nJiYpOworICAgIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EoU3Ry
aW5nJiYgbmFtZSk7CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSgpOwog
CiAgICAgdmlydHVhbCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gZ2VuZXJhdGVGcmFtZSgp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLmgKaW5kZXggOTlkNzhl
ZWM3YzcwMmVjZDE2ZWNmZGEwYjg0ZDBjNTZiOWQ0ZjNiYy4uNTIwOGIyNjJhM2MwMzc3ZjYyODNj
MzBhYzJjYTgzNTZjNDJmM2RiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNl
TWFjLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM7CiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyBmaW5hbCA6IHB1YmxpYyBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZSB7CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTsKLSAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyhjb25zdCBT
dHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCk7CiAKICAgICB2b2lkIHNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNldDxSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc+KSBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxpbnQ+PiBkaXNjcmV0ZVNhbXBsZVJhdGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyB7
IDQ0MTAwLCA0ODAwMCB9IH07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1h
Yy5tbQppbmRleCAwYzhhNGJkZTIwNWM5YjliMmFiMmE4ODg5NzZiYzk3NDljMzM3MWFjLi43Njc2
NjA2N2U2NmMxNDA5OTdkMGZlZTM3YzU5ZjY3ZDU3YmEyZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCkBAIC04Niw5ICs4NiwxNiBAQCBzdGF0aWMgdm9pZCBh
ZGRIdW0oZmxvYXQgYW1wbGl0dWRlLCBmbG9hdCBmcmVxdWVuY3ksIGZsb2F0IHNhbXBsZVJhdGUs
IHVpbnQ2NF90CiAgICAgfQogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlTWFjKGRldmljZUlELCBuYW1lKSk7CisjaWZuZGVmIE5ERUJVRwor
ICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZp
Y2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKKyAgICBBU1NFUlQoZGV2aWNlKTsKKyAgICBp
ZiAoIWRldmljZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyNlbmRpZgorCisgICAgYXV0byBzb3Vy
Y2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYm
IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtOTYsOCArMTAzLDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb24KICAgICByZXR1
cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlKGRldmljZUlELCBuYW1lKQorTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6Ok1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaAppbmRleCAwYjZlMGFiNDcyNTI0OTVj
NWI1NTBiNjhmNGQyN2NlNzk5ZjE5MzE0Li45Yzc0ZGRlMTgzMWU0NzFhMTA3NjAxYjAzZTY2NTQ3
Yzc2OWEwOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaApAQCAt
NTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOwotICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKGNvbnN0
IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0KTsKIAogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gQ01TYW1wbGVC
dWZmZXJGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZik7CiAgICAgUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRnJvbUNHSW1hZ2UoQ0dJbWFnZVJlZikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggNDMxNjNhOTVh
MDhiMGMwMjZiZDc1MGYyOWE5MjEzMTZhYWNkNGMwMi4uMjNhMTY5NjJiNTM5NDE4NGM1ZjY1NGU5
ZWM1ZTFkMWZlOTBjZDI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbQpAQCAtNTMsOSArNTMsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RhdGljIGNv
bnN0IGludCB2aWRlb1NhbXBsZVJhdGUgPSA5MDAwMDsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQor
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhkZXZpY2VJRCwgbmFtZSkpOworI2lm
bmRlZiBOREVCVUcKKyAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CisgICAgQVNTRVJUKGRl
dmljZSk7CisgICAgaWYgKCFkZXZpY2UpCisgICAgICAgIHJldHVybiB7IH07CisjZW5kaWYKKwor
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
YyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsK
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlcG9ydCBlcnJvciBtZXNzYWdlcwogICAgIGlmIChj
b25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAg
ICAgICAgcmV0dXJuIHsgfTsKQEAgLTYzLDggKzcwLDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBj
b24KICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0K
IAotTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlKGRldmljZUlELCBuYW1lKQorTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291
cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCmlu
ZGV4IGY4ZWM2Yzg1NjcyMzhlNmUwNGNiNzA0MWNhMTE4MGI1NTAzYjViYzAuLjhiZTQwMjJmZThm
YTgxMDY5NzAxMGQxYTBhZDYxZTBiOTgzM2ZiMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKQEAgLTQ4LDEwICs0OCwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnlNYWMgZmluYWwgOiBwdWJs
aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKTsKLSAgICAgICAgcmV0dXJuIEFWVmlkZW9D
YXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBjb25zdHJhaW50cyk7
CisgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRl
dmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwog
ICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTc1LDExICs3NSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkgewogICAgICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICNpZiBQTEFURk9STShNQUMpCi0gICAgICAgICAgICBy
ZXR1cm4gU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShkZXZpY2UucGVyc2lz
dGVudElkKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBTY3JlZW5EaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9
LCBjb25zdHJhaW50cyk7CiAjZW5kaWYKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpXaW5kb3c6CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICAgICAgcmV0dXJuIFdp
bmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgp
LCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gV2luZG93RGlzcGxheUNhcHR1cmVT
b3VyY2VNYWM6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgY29uc3Ry
YWludHMpOwogI2VuZGlmCiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
QXBwbGljYXRpb246CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QnJv
d3NlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKaW5kZXgg
NmUyZWFiODFjMDQ3NmQ0N2FjMjQ3OWE2OTgyNjA1OWRhN2U0YWUzNi4uZWM5MjBmMDI0YTU2ODk5
MjAwOTQ0OTQ0NDdkNzJiZWU2MzI5MGRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlD
YXB0dXJlU291cmNlTWFjLmgKQEAgLTQxLDEzICs0MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjIDogcHVibGljIERpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAg
IHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqKTsKIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+
IHNjcmVlbkNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKGNvbnN0IFN0cmluZyYpOwogICAg
IHN0YXRpYyB2b2lkIHNjcmVlbkNhcHR1cmVEZXZpY2VzKFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYp
OwogCiBwcml2YXRlOgotICAgIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjKHVpbnQzMl90
KTsKKyAgICBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50MzJfdCwgU3RyaW5nJiYp
OwogICAgIHZpcnR1YWwgflNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjKCk7CiAKICAgICBz
dGF0aWMgdm9pZCBkaXNwbGF5UmVjb25maWd1cmF0aW9uQ2FsbEJhY2soQ0dEaXJlY3REaXNwbGF5
SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncywgdm9pZCopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJl
U291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Nj
cmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCmluZGV4IGJmNmQ3MmFkOThkZDE2MTE3ODIw
YzUwODdjMzhkNzIxYzU3MzdmYWIuLmEyMzhmMjhmOTc1Yjg0MDgzNDI3N2U4YjBjMmRlZGMxOWNh
YmU0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0K
QEAgLTc2LDEyICs3NiwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR0RpcmVjdERpc3BsYXlJ
RD4gdXBkYXRlRGlzcGxheUlEKENHRGlyZWN0RGlzcGxheUlEIGRpc3BsYQogICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIFNjcmVlbkRpc3BsYXlDYXB0
dXJlU291cmNlTWFjOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBib29sIG9rOwogICAgIGF1dG8gZGlz
cGxheUlEID0gZGV2aWNlSUQudG9VSW50U3RyaWN0KCZvayk7CiAgICAgaWYgKCFvaykgewotICAg
ICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkRpc3BsYXkgSUQgZG9lcyBub3QgY29udmVydCB0byAz
Mi1iaXQgaW50ZWdlciIpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGU6IERpc3BsYXkgSUQgZG9lcyBub3QgY29udmVydCB0
byAzMi1iaXQgaW50ZWdlciIpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtODks
MTUgKzg5LDE1IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJCiAgICAgaWYgKCFhY3R1YWxEaXNw
bGF5SUQpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KCpuZXcgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMoYWN0dWFsRGlzcGxheUlELnZhbHVl
KCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWMoYWN0dWFsRGlzcGxheUlELnZhbHVlKCksICJTY3JlZW4iX3MpKTsgLy8gRklY
TUU6IGZpZ3VyZSBvdXQgd2hhdCB0aXRsZSB0byB1c2UKICAgICBpZiAoY29uc3RyYWludHMgJiYg
c291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHJldHVybiB7
IH07CiAKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsK
IH0KIAotU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OlNjcmVlbkRpc3BsYXlDYXB0dXJl
U291cmNlTWFjKHVpbnQzMl90IGRpc3BsYXlJRCkKLSAgICA6IERpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EoIlNjcmVlbiIpIC8vIEZJWE1FOiBmaWd1cmUgb3V0IHdoYXQgdG8gY2FsbCB0aGlzCitT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWModWludDMyX3QgZGlzcGxheUlELCBTdHJpbmcmJiB0aXRsZSkKKyAgICA6IERpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EoV1RGTW92ZSh0aXRsZSkpCiAgICAgLCBtX2Rpc3BsYXlJRChkaXNwbGF5
SUQpCiB7CiB9CkBAIC0xMjIsNyArMTIyLDcgQEAgYm9vbCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNv
dXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSgpCiAKICAgICBpZiAobV9kaXNwbGF5SUQgIT0g
YWN0dWFsRGlzcGxheUlELnZhbHVlKCkpIHsKICAgICAgICAgbV9kaXNwbGF5SUQgPSBhY3R1YWxE
aXNwbGF5SUQudmFsdWUoKTsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSglcCksIGRpc3BsYXkgSUQg
Y2hhbmdlZCB0byAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PGludD4obV9kaXNwbGF5SUQpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6
Y3JlYXRlRGlzcGxheVN0cmVhbTogZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVkIiwgc3RhdGljX2Nh
c3Q8aW50PihtX2Rpc3BsYXlJRCkpOwogICAgIH0KIAogICAgIGlmICghbV9kaXNwbGF5U3RyZWFt
KSB7CkBAIC0xMzAsNyArMTMwLDcgQEAgYm9vbCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1h
Yzo6Y3JlYXRlRGlzcGxheVN0cmVhbSgpCiAgICAgICAgIGF1dG8gc2NyZWVuV2lkdGggPSBDR0Rp
c3BsYXlNb2RlR2V0UGl4ZWxzV2lkZShkaXNwbGF5TW9kZS5nZXQoKSk7CiAgICAgICAgIGF1dG8g
c2NyZWVuSGVpZ2h0ID0gQ0dEaXNwbGF5TW9kZUdldFBpeGVsc0hpZ2goZGlzcGxheU1vZGUuZ2V0
KCkpOwogICAgICAgICBpZiAoIXNjcmVlbldpZHRoIHx8ICFzY3JlZW5IZWlnaHQpIHsKLSAgICAg
ICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6
OmNyZWF0ZURpc3BsYXlTdHJlYW0oJXApLCB1bmFibGUgdG8gZ2V0IHNjcmVlbiB3aWR0aC9oZWln
aHQiLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW06IHVuYWJsZSB0byBnZXQgc2Ny
ZWVuIHdpZHRoL2hlaWdodCIpOwogICAgICAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0xNjgsNyArMTY4LDcgQEAgYm9vbCBT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSgpCiAgICAg
ICAgIGF1dG8gc2l6ZSA9IGZyYW1lU2l6ZSgpOwogICAgICAgICBtX2Rpc3BsYXlTdHJlYW0gPSBh
ZG9wdENGKENHRGlzcGxheVN0cmVhbUNyZWF0ZVdpdGhEaXNwYXRjaFF1ZXVlKG1fZGlzcGxheUlE
LCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENi
Q3I4UGxhbmFyLCBzdHJlYW1PcHRpb25zLmdldCgpLCBtX2NhcHR1cmVRdWV1ZS5nZXQoKSwgbV9m
cmFtZUF2YWlsYWJsZUJsb2NrKSk7CiAgICAgICAgIGlmICghbV9kaXNwbGF5U3RyZWFtKSB7Ci0g
ICAgICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKCVwKSwgQ0dEaXNwbGF5U3RyZWFtQ3JlYXRlIGZhaWxl
ZCIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbTogQ0dEaXNwbGF5U3RyZWFtQ3Jl
YXRlIGZhaWxlZCIpOwogICAgICAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBTY3JlZW5E
aXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKCkKIAogICAgIGlmICht
X2Rpc3BsYXlJRCAhPSBhY3R1YWxEaXNwbGF5SUQudmFsdWUoKSkgewogICAgICAgICBtX2Rpc3Bs
YXlJRCA9IGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpOwotICAgICAgICBSRUxFQVNFX0xPRyhNZWRp
YSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW0oJXAp
LCBkaXNwbGF5IElEIGNoYW5nZWQgdG8gJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDxpbnQ+KG1fZGlz
cGxheUlEKSk7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbTogZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVk
Iiwgc3RhdGljX2Nhc3Q8aW50PihtX2Rpc3BsYXlJRCkpOwogICAgIH0KIAogICAgIGlmICghbV9k
aXNwbGF5U3RyZWFtICYmICFjcmVhdGVEaXNwbGF5U3RyZWFtKCkpCkBAIC0yMzUsNyArMjM1LDcg
QEAgdm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFt
KCkKIAogICAgIGF1dG8gZXJyID0gQ0dEaXNwbGF5U3RyZWFtU3RhcnQobV9kaXNwbGF5U3RyZWFt
LmdldCgpKTsKICAgICBpZiAoZXJyKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbSglcCksIENHRGlz
cGxheVN0cmVhbVN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8
aW50PihlcnIpKTsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtOiBDR0Rpc3BsYXlTdHJlYW1TdGFydCBm
YWlsZWQgd2l0aCBlcnJvciAlZCIsIHN0YXRpY19jYXN0PGludD4oZXJyKSk7CiAgICAgICAgIGNh
cHR1cmVGYWlsZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3OCwxMSArMjc4LDEx
IEBAIHZvaWQgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmZyYW1lQXZhaWxhYmxlKENH
RGlzcGxheVN0cmVhbUZyYW1lU3RhdHVzIHN0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBr
Q0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXNGcmFtZUJsYW5rOgotICAgICAgICBSRUxFQVNFX0xP
RyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpmcmFtZUF2YWlsYWJsZSgl
cCksIGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1c0ZyYW1lQmxhbmsiLCB0aGlzKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6ZnJh
bWVBdmFpbGFibGU6IGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1c0ZyYW1lQmxhbmsiKTsKICAg
ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1c1N0b3Bw
ZWQ6Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWM6OmZyYW1lQXZhaWxhYmxlKCVwKSwga0NHRGlzcGxheVN0cmVhbUZyYW1lU3RhdHVzU3Rv
cHBlZCIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlD
YXB0dXJlU291cmNlTWFjOjpmcmFtZUF2YWlsYWJsZToga0NHRGlzcGxheVN0cmVhbUZyYW1lU3Rh
dHVzU3RvcHBlZCIpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNv
dXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRv
d0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKaW5kZXggZDA1MzNmZjhhMzhjNDExYTZiY2E4YzNl
NThjNzViNTdjNjg2MmMyMC4uMWM0ZDM3NjBmODhjZmY1ZmE3NGNkMjcwNjYwM2U2OGExZDNkNmRk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dp
bmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKQEAgLTQw
LDEzICs0MCwxMyBAQCBjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogCiBjbGFzcyBXaW5k
b3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNv
bnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7
CiAKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiB3aW5kb3dDYXB0dXJl
RGV2aWNlV2l0aFBlcnNpc3RlbnRJRChjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCB3
aW5kb3dDYXB0dXJlRGV2aWNlcyhWZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKIAogcHJpdmF0ZToK
LSAgICBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50MzJfdCB3aW5kb3dJRCwgU3Ry
aW5nJiYpOworICAgIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjKHVpbnQzMl90LCBTdHJp
bmcmJik7CiAgICAgdmlydHVhbCB+V2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMoKSA9IGRl
ZmF1bHQ7CiAKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gZ2VuZXJhdGVGcmFtZSgp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCmlu
ZGV4IGUxYWEwYmZkN2VhZDk4MDVkYmVlYmRiODljMWJkMmE4YzQ2MjlkMTEuLjFkNmExN2NkNDEz
OGZkMWQ1NjcyYmY5MzI5MzcwNGJmMTAxNDE5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlz
cGxheUNhcHR1cmVTb3VyY2VNYWMubW0KQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgUmV0YWlu
UHRyPENGRGljdGlvbmFyeVJlZj4gd2luZG93RGVzY3JpcHRpb24oQ0dXaW5kb3dJRCBpZCkKICAg
ICByZXR1cm4gY2hlY2tlZF9jZl9jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVl
QXRJbmRleCh3aW5kb3dzLmdldCgpLCAwKSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIFdp
bmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoY29uc3QgU3RyaW5nJiB3aW5kb3dJ
RCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JF
cnJvciBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKFN0cmluZyYmIHdpbmRv
d0lELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBib29sIG9r
OwogICAgIGF1dG8gYWN0dWFsSUQgPSB3aW5kb3dJRC50b1VJbnRTdHJpY3QoJm9rKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAKaW5kZXggY2MzNTQ2MTMzNWFlMDdhNzdmZDFjMTE2ZGJkMzAxMDY1YjNjOTU3ZC4u
M2Y0NGZkNjM0YzgzMDQ2M2M0YmYyNDE0MDhmMjlmYzU0YjhjYWRlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5j
cHAKQEAgLTQzLDE0ICs0MywxNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRG
T1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgIShVU0UoR1NUUkVBTUVSKSAmJiBVU0UoTElC
V0VCUlRDKSkKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpj
cmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKIHsKKyNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwogICAg
IEFTU0VSVChkZXZpY2UpOwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyB9Owor
I2VuZGlmCiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UoV1RGTW92ZShkZXZpY2UpLCBkZXZpY2VJRCwgbmFtZSkpOworICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmlj
ZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKICAgICBpZiAoY29uc3Ry
YWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAg
IHJldHVybiB7IH07CiAKQEAgLTU4LDExICs2MCwxMSBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNv
bgogfQogI2VuZGlmCiAKLU1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAg
OiBSZWFsdGltZU1lZGlhU291cmNlKGRldmljZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbywgbmFtZSkKK01vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2Fs
dCkpCiAgICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJk1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlOjp0aWNrKQogewotICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKKyAg
ICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNl
V2l0aFBlcnNpc3RlbnRJRChwZXJzaXN0ZW50SUQoKSk7CiAgICAgQVNTRVJUKGRldmljZSk7CiAg
ICAgbV9kZXZpY2UgPSAqZGV2aWNlOwogfQpAQCAtNzgsNyArODAsNyBAQCBjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5ncygp
CiB7CiAgICAgaWYgKCFtX2N1cnJlbnRTZXR0aW5ncykgewogICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7Ci0gICAgICAgIHNldHRpbmdzLnNldERldmljZUlkKGlk
KCkpOworICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKICAgICAgICAg
c2V0dGluZ3Muc2V0Vm9sdW1lKHZvbHVtZSgpKTsKICAgICAgICAgc2V0dGluZ3Muc2V0RWNob0Nh
bmNlbGxhdGlvbihlY2hvQ2FuY2VsbGF0aW9uKCkpOwogICAgICAgICBzZXR0aW5ncy5zZXRTYW1w
bGVSYXRlKHNhbXBsZVJhdGUoKSk7CkBAIC0xMDAsNyArMTAyLDcgQEAgY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNhcGFiaWxp
dGllcygpCiAgICAgaWYgKCFtX2NhcGFiaWxpdGllcykgewogICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0aW5ncygpLnN1cHBvcnRlZENvbnN0
cmFpbnRzKCkpOwogCi0gICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChpZCgpKTsKKyAg
ICAgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwogICAgICAgICBjYXBh
YmlsaXRpZXMuc2V0Vm9sdW1lKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMC4wLCAxLjApKTsKICAg
ICAgICAgY2FwYWJpbGl0aWVzLnNldEVjaG9DYW5jZWxsYXRpb24oUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllczo6RWNob0NhbmNlbGxhdGlvbjo6UmVhZFdyaXRlKTsKICAgICAgICAgY2Fw
YWJpbGl0aWVzLnNldFNhbXBsZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSg0NDEwMCwgNDgw
MDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaAppbmRleCA5MWU4YzAzNmJkZDdhMzNkNjI0OTIwN2UxM2ZkMzdmMmJh
MDJlYWI2Li4xZDFkNWIxODY3MjdhOWViODQyYjA5YmRlYmEyNjk2YWNjZTc4NGY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oCkBAIC00MiwxMiArNDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJs
aWM6CiAKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyop
OworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKik7CiAKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCiAgICAg
dm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdE
YXRhKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGY2OTcyODU2OGIz
MzFmYmNkOTQwNzYyOGVkYjYwNTM1YjFhMDI1ZTMuLjI5ZWUzYjBhYzk5YTJkMjliMGViYmYzNzRl
NTU3OGU2MmNlZjZiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC04MywxNSAr
ODMsMTQgQEAgc3RhdGljIGlubGluZSBWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiBkZWZhdWx0RGV2
aWNlcygpCiAgICAgfTsKIH0KIAotCiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZhY3Rv
cnkgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBl
KCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKTsKICAgICAgICAgQVNTRVJU
KE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3Rl
bnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEsIGRldmljZS5wZXJzaXN0ZW50
SWQoKSkpOwogCi0gICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRl
KGRldmljZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlLmxhYmVsKCksIGNvbnN0cmFpbnRzKTsKKyAg
ICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
MTEzLDcgKzExMiw3IEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNoIChkZXZpY2UudHlwZSgpKSB7
CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgICAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQo
KSwgZGV2aWNlLmxhYmVsKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQo
KSB9LCBTdHJpbmcgeyB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBjb25zdHJhaW50cyk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpBcHBsaWNhdGlvbjoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpCcm93c2VyOgpAQCAtMTMwLDEyICsxMjksMTIgQEAgcHVibGljOgogCiBjbGFzcyBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBw
dWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKICAgICAg
ICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWlj
cm9waG9uZSk7CiAgICAgICAgIEFTU0VSVChNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSk7CiAKLSAgICAgICAgcmV0dXJuIE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZp
Y2UubGFiZWwoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5n
IHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAg
ICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDVkM2ZiOTEzNzgzNTA5NjY1OWFiOTJjYzMy
ODkwYTAwNzg1NDQ5NjUuLmQ0NzA2YmM1ZmRjYmE2MjRkODU2NDJkYjdlZjY4ODRjY2Q0NWEwNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00OSwxNCArNDksMTYgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmICEoVVNFKEdTVFJF
QU1FUikgJiYgVVNFKExJQldFQlJUQykpCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291
cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpCiB7CisjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElE
KGRldmljZUlEKTsKICAgICBBU1NFUlQoZGV2aWNlKTsKICAgICBpZiAoIWRldmljZSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKKyNlbmRpZgogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlKSwgZGV2aWNlSUQsIG5hbWUp
KTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7
CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3Ry
YWludHMpKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC02NCwxMSArNjYsMTEgQEAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIGRldmljZUlELCBjb24KIH0KICNlbmRpZgogCi1Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lKQotICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShkZXZpY2VJRCwgbmFtZSkKK01v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBSZWFsdGlt
ZVZpZGVvU291cmNlKFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhh
c2hTYWx0KSkKICAgICAsIG1fZW1pdEZyYW1lVGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlz
LCAmTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlRnJhbWUpCiB7Ci0gICAgYXV0byBk
ZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJz
aXN0ZW50SUQoZGV2aWNlSUQpOworICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKHBlcnNpc3RlbnRJRCgpKTsK
ICAgICBBU1NFUlQoZGV2aWNlKTsKICAgICBtX2RldmljZSA9ICpkZXZpY2U7CiAKQEAgLTEyMCw3
ICsxMjIsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKICAgICBpZiAoIW1fY2FwYWJpbGl0aWVz
KSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
KHNldHRpbmdzKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CiAKLSAgICAgICAgY2FwYWJpbGl0
aWVzLnNldERldmljZUlkKGlkKCkpOworICAgICAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQo
aGFzaGVkSWQoKSk7CiAgICAgICAgIGlmIChtb2NrQ2FtZXJhKCkpIHsKICAgICAgICAgICAgIGNh
cGFiaWxpdGllcy5hZGRGYWNpbmdNb2RlKFdURjo6Z2V0PE1vY2tDYW1lcmFQcm9wZXJ0aWVzPiht
X2RldmljZS5wcm9wZXJ0aWVzKS5mYWNpbmdNb2RlKTsKICAgICAgICAgICAgIHVwZGF0ZUNhcGFi
aWxpdGllcyhjYXBhYmlsaXRpZXMpOwpAQCAtMTU0LDcgKzE1Niw3IEBAIGNvbnN0IFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldHRpbmdzKCkK
ICAgICBzZXR0aW5ncy5zZXRIZWlnaHQoc2l6ZS5oZWlnaHQoKSk7CiAgICAgaWYgKGFzcGVjdFJh
dGlvKCkpCiAgICAgICAgIHNldHRpbmdzLnNldEFzcGVjdFJhdGlvKGFzcGVjdFJhdGlvKCkpOwot
ICAgIHNldHRpbmdzLnNldERldmljZUlkKGlkKCkpOworICAgIHNldHRpbmdzLnNldERldmljZUlk
KGhhc2hlZElkKCkpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFp
bnRzIHN1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgIHN1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1
cHBvcnRzRGV2aWNlSWQodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggMTQ2ZDFhYTEzNTA0MDE3YjUw
NmUyNDI0MTEyNDgwNTEyNzMzOGU1ZS4uYmQzYzNlNDUxOWFmN2U4NWZjY2IyNjk4MzllNWRiNmU4
OTMwY2Y1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDgsMTAgKzQ4LDEwIEBAIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDsKIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlIDogcHVibGljIFJlYWx0aW1l
VmlkZW9Tb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKTsK
KyAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNhbXBs
ZUJ1ZmZlcigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAKaW5kZXggODg2MDU5Mjc1NjkwNjUzYTFjNWI5MTlhZjc4YTUxZGVlMTY5NzA3
OS4uOTJkZmIxYjZhZjA4MWFlYmM5ZjNlMTM5MTZkMWU3NTFlNjYyNjE5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0yNzYwLDcgKzI3
NjAsNiBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpNZQogewogICAgIGVuY29kZXIgPDwgY29uc3Ry
YWludC5tYW5kYXRvcnlDb25zdHJhaW50cwogICAgICAgICA8PCBjb25zdHJhaW50LmFkdmFuY2Vk
Q29uc3RyYWludHMKLSAgICAgICAgPDwgY29uc3RyYWludC5kZXZpY2VJREhhc2hTYWx0CiAgICAg
ICAgIDw8IGNvbnN0cmFpbnQuaXNWYWxpZDsKIH0KIApAQCAtMjc3Miw3ICsyNzcxLDYgQEAgYm9v
bCBBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgV2ViQ29yZTo6TWVkaWFDb24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNvbnN0cmFp
bnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzID0gV1RGTW92ZSgqbWFuZGF0b3J5Q29uc3RyYWludHMp
OwogICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFp
bnRzKQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5kZXZpY2VJREhhc2hT
YWx0KQogICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5pc1ZhbGlkKTsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA3MWE2OTFmMWUxZGJiOGIy
NDZmN2U5N2QzZDg2M2NmZDQ2N2I2ZjVkLi43NmE4ZWZmM2JiZTA1YWY3M2U3ZmQ1ZGI4YmFhNjEz
ZGM2OWQwZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMTI1LDE1ICsxMjUs
MTUgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkoKQogICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CiB9
CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIGJvb2wmIHN1Y2NlZWRlZCwgU3Ry
aW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYgc2V0dGluZ3MpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwg
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFp
bnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQogewog
ICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dpdGNoICh0eXBl
KSB7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoK
LSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsICZj
b25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmY29uc3RyYWludHMpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVv
OgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkudmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwg
JmNvbnN0cmFpbnRzKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sICZjb25zdHJhaW50cyk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9u
ZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgK
aW5kZXggZmYwYWU4YjFiYjlkYTdhNmQ1Yjc5ZGQ3ZmM2ODkwMTI4ZjgxNjkyNi4uNTFiOGU3N2Q5
OGRkMTgzNWNkYWI5MDQyMzY1YmMwNmVjY2IxZTQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRl
ZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYpOworICAgIHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRlZCwg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIGNhcGFiaWxpdGllcyh1
aW50NjRfdCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjQ4YzQwZmYwMDcx
Y2EwODc3N2NhZjczZjA4NmQ5YzY3MmUwMmRiMi4uYmQyMTliYzk2MDhkMDc0MDY5MTkyMjYwNDNj
MDJhNzJhZWEzNWI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2Fn
ZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSB7Ci0gICAgQ3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0
eXBlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykgLT4gKGJv
b2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQorICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgU3Ry
aW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50
cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQogICAgIFN0YXJ0UHJvZHVjaW5n
RGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAg
ICBDYXBhYmlsaXRpZXModWludDY0X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcAppbmRleCAxODVjMDc0YzlmZDZlZGFkZDk5MWU3NmFiZWFmZTU5ODg0OTY0NTdjLi42
Mjc3NGM5YWI2ZmNjMjU0MDFhZjU1OTg1ZWMwMWI1NDQ5YzBmYzg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0zMzYsOSArMzM2LDYgQEAgdm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25G
b3JGcmFtZSgKICAgICAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAKLSAgICAgICAgbG9jYWxVc2VyUmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRz
LmRldmljZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci0gICAgICAgIGxv
Y2FsVXNlclJlcXVlc3QudmlkZW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0ID0gZGV2aWNl
SWRlbnRpZmllckhhc2hTYWx0OwotCiAgICAgICAgIHN5bmNXaXRoV2ViQ29yZVByZWZzKCk7CiAg
ICAgICAgIAogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52
YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUo
aW52YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGxvY2FsVXNlclJlcXVlc3QpLCBXVEZNb3ZlKGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggN2M3ZjY2Nzc0
OTRiYWYzYjU2M2M4ODNjMWFlMjExYmFkZDE0YjFkYy4uY2I2ZDZjN2VlOWFjNWMxZDVmMGJjMzhk
ZTIxNWEzOWQ2ZTJmZDU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC01MSw4ICs1MSw4IEBA
IHN0YXRpYyB1aW50NjRfdCBuZXh0U2Vzc2lvbklEKCkKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoK
LSAgICBTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgVHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIG5hbWUsIHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlcikK
LSAgICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZUlELCB0eXBlLCBuYW1lKQorICAg
IFNvdXJjZShTdHJpbmcmJiBzb3VyY2VJRCwgVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCwgdWludDY0X3QgaWQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5h
Z2VyKQorICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UodHlwZSwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShzb3VyY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICAgICAsIG1faWQoaWQp
CiAgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgICAgICwgbV9yaW5nQnVmZmVyKG1h
a2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKQpAQCAtMTc3LDcg
KzE3Nyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3Qg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyCiAgICAgICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CiB9CiAKLVdl
YkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVh
dGVDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK1dlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VU
eXBlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpCiB7CiAgICAgaWYgKCFjb25zdHJhaW50cykKICAgICAgICAgcmV0dXJuIHsg
fTsKQEAgLTE4NiwxMCArMTg2LDEwIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0CiAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwogICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2U7CiAgICAgYm9vbCBzdWNjZWVkZWQ7Ci0gICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9y
Q2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBzb3VyY2VUeXBlLCAqY29u
c3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVk
ZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKKyAgICBpZiAoIW1fcHJvY2Vzcy5zZW5k
U3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIHNvdXJjZVR5
cGUsIGhhc2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
bnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKICAgICAg
ICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKIAotICAgIGF1dG8gc291cmNlID0gYWRv
cHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBzZXR0aW5n
cy5sYWJlbCgpLCBpZCwgKnRoaXMpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcg
U291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgc291cmNlVHlwZSwgU3RyaW5nIHsgc2V0dGluZ3Mu
bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0aGlzKSk7CiAgICAgc291cmNlLT5z
ZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgbV9zb3VyY2VzLnNldChpZCwgc291
cmNlLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
KFdURk1vdmUoc291cmNlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDZhN2QwZDIyYTBmMDk4NTMy
MzA3YjJlNGUwOTdmN2Y4ZDUwYzc0YjguLjM3NjMyZDU5ZTZlZjhjYWFjODA2OTEzZTUwMzVkYmNh
NGM4ZDQ1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC01NSw5ICs1NSw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBm
aW5hbDsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgZmFjdG9yaWVzCi0g
ICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNl
KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVT
b3VyY2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywg
Y29uc3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsgcmV0
dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpWaWRlbywgY29uc3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyopOworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUoaGFzaFNhbHQp
LCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyopOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351324</attachid>
            <date>2018-10-01 17:01:21 -0700</date>
            <delta_ts>2018-10-01 23:41:48 -0700</delta_ts>
            <desc>Updated patchh</desc>
            <filename>bug-190142-20181002020119.patch</filename>
            <type>text/plain</type>
            <size>101183</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVlMzVhOWNiNTYxN2Vk
ZTk4ODNkYjU2YmQyZTZhYzJjZGIyZTBkMC4uNGFiMjliMjRkNjE0NGIwYTRiMWY5OWUxM2NjNjlj
ZjhlYTgzYWI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MiBAQAorMjAxOC0xMC0wMSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFJlYWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVy
ZU1lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2s6OlNvdXJjZTo6U291cmNlKTogVXBkYXRlIG9yZGVyIG9mIHBhcmFtZXRl
cnMgcGFzc2VkCisgICAgICAgIHRvIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFEZXZpY2VzUmVxdWVzdDo6c3RhcnQpOiBBU1NFUlQgaWYgZG9jdW1lbnQuZGV2aWNlSURIYXNo
U2FsdCBpcyBub3QgdGhlIHNhbWUKKyAgICAgICAgYXMgcGFzc2VkIHNhbHQuCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MgY29uc3QpOiBEb24ndCBuZWVkIHRv
IGhhc2ggSUQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRDYXBhYmls
aXRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suaWRsOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmFsbG93KTogUGFz
cyBoYXNoIHNhbHQgdG8gY3JlYXRlTWVkaWFTdHJlYW0uCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVS
ZWNlaXZlckZvclNvdXJjZSk6IFVwZGF0ZSBvcmRlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZAorICAg
ICAgICB0byBiYXNlIGNsYXNzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9T
b3VyY2U6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZSk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNl
KTogQ2FsY3VsYXRlIGhhc2hlZCBJRC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNlbGVjdFNldHRpbmdzKTogVXNlIG1faGFzaGVkSUQuCisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpoYXNoZWRJZCBjb25zdCk6IE5ldy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmRldmljZUlESGFzaFNhbHQgY29uc3QpOiBOZXcu
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVh
dGVNZWRpYVN0cmVhbSk6IFRha2UgaGFzaCBzYWx0LCBwYXNzIGl0IHdoZW4gY3JlYXRpbmcKKyAg
ICAgICAgYSBzb3VyY2UuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpSZWFs
dGltZVZpZGVvU291cmNlKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmg6CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldyYXBwZWRN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6V3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6Ok1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MpOiBVc2Ug
aGFzaGVkSWQgdG8gc2V0IGRldmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IFVwZGF0ZSBwYXJhbWV0ZXJzLgor
ICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y2FwYWJpbGl0aWVzKTogVXNlIGhhc2hlZElkIHRvIHNldCBkZXZpY2UgSUQuCisgICAgICAg
IChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncyk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaDoK
KworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1
ZGlvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyk6IERpdHRvLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKTogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKTogVXBkYXRlIGxvZ2dpbmcuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6
ZnJhbWVBdmFpbGFibGUpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OldpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUpOiBVcGRh
dGUgcGFyYW1ldGVycy4KKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0dGluZ3MpOiBVc2UgaGFzaGVkSWQgdG8gc2V0IGRl
dmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjYXBh
YmlsaXRpZXMpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcDoKKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZSk6IFVwZGF0ZSBwYXJhbWV0ZXJzLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKTogVXNl
IGhhc2hlZElkIHRvIHNldCBkZXZpY2UgSUQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6c2V0dGluZ3MpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmg6CisKIDIwMTgtMDktMzAgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIFBvc2l0aW9uIGluc3RlYWQgb2YgUmFu
Z2UgaW4gY3JlYXRlTWFya3VwSW50ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWYzNzU0NmQzNzUzZDliNmE5
NDhmNzU3ZjhmMTA4NjEwZDEyZmFkMS4uNDMxNDE5OTY1NTBjZDMyMDc5ZDAxZWVlOWFmNGY4ZTE4
ODI5YmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0xMC0wMSAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIFJl
YWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmRlY29kZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJj
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
OgorCiAyMDE4LTA5LTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gQ2xlYW4gdXAgUmVhbHRpbWVNZWRpYVNvdXJjZSBzZXR0
aW5ncyBjaGFuZ2UgaGFuZGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5j
cHAKaW5kZXggNzhmOWZiMjkwZmU1M2Y2YjE0MzU2ZTVjZDAyZDZkNDE1ZTc3MWU3YS4uNTZkZjhh
NjZkZWFkM2UwNDljNjI1YzdhYzQxOTFjNGE2MjhmNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgUmVmPENhbnZhc0NhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U+IENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOjpT
b3VyY2UKIAogLy8gRklYTUU6IEdpdmUgc291cmNlIGlkIGFuZCBuYW1lCiBDYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjazo6U291cmNlOjpTb3VyY2UoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZh
cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgZnJhbWVSZXF1ZXN0UmF0ZSkKLSAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoU3RyaW5nKCksIFR5cGU6OlZpZGVvLCBTdHJpbmcoKSkKKyAgICA6IFJl
YWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sICJDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjayJfcykKICAgICAsIG1fZnJhbWVSZXF1ZXN0UmF0ZShXVEZNb3ZlKGZyYW1lUmVxdWVzdFJh
dGUpKQogICAgICwgbV9yZXF1ZXN0RnJhbWVUaW1lcigqdGhpcywgJlNvdXJjZTo6cmVxdWVzdEZy
YW1lVGltZXJGaXJlZCkKICAgICAsIG1fY2FudmFzQ2hhbmdlZFRpbWVyKCp0aGlzLCAmU291cmNl
OjpjYXB0dXJlQ2FudmFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKaW5kZXggZTJjNWJmNzBhMjY3MjRm
ZDA1N2M5YTZhZTQ2MWFkNWFkYTUzZjllMC4uZDlkODM4YmY4YzcyMTJjZGE2NWQxN2I0OWVmYjlh
MTVlYzRmZDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCkBAIC0xMTcsNyArMTE3LDggQEAgdm9p
ZCBNZWRpYURldmljZXNSZXF1ZXN0OjpzdGFydCgpCiAgICAgICAgIGlmICghc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7CisgICAgICAgIEFTU0VSVChkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0
KCkuaXNFbXB0eSgpIHx8IGRvY3VtZW50LmRldmljZUlESGFzaFNhbHQoKSA9PSBkZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQpOwogICAgICAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKICAgICAgICAgVmVjdG9yPFJlZjxNZWRpYURldmlj
ZUluZm8+PiBkZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggYWNmZWNmODRlMzU2MDRlYTBlMzUw
MTQwOWRmZmI0YWNkMTExODMwMy4uNzA1MzNhZDUxZWQ4MWE1NjljMDJlNTVkYWViYmJiN2U5ZDRj
MTA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBNZWRpYVN0cmVh
bVRyYWNrOjpzdG9wVHJhY2soU3RvcE1vZGUgbW9kZSkKICAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOwogfQogCi1NZWRpYVN0cmVhbVRyYWNrOjpUcmFja1NldHRpbmdzIE1lZGlhU3RyZWFt
VHJhY2s6OmdldFNldHRpbmdzKERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK01lZGlhU3RyZWFt
VHJhY2s6OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoKSBjb25z
dAogewogICAgIGF1dG8mIHNldHRpbmdzID0gbV9wcml2YXRlLT5zZXR0aW5ncygpOwogICAgIFRy
YWNrU2V0dGluZ3MgcmVzdWx0OwpAQCAtMjIwLDkgKzIyMCw5IEBAIE1lZGlhU3RyZWFtVHJhY2s6
OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoRG9jdW1lbnQmIGRv
Y3VtZW50CiAgICAgaWYgKHNldHRpbmdzLnN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbigpKQogICAg
ICAgICByZXN1bHQuZWNob0NhbmNlbGxhdGlvbiA9IHNldHRpbmdzLmVjaG9DYW5jZWxsYXRpb24o
KTsKICAgICBpZiAoc2V0dGluZ3Muc3VwcG9ydHNEZXZpY2VJZCgpKQotICAgICAgICByZXN1bHQu
ZGV2aWNlSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3Ry
aW5nV2l0aFNhbHQoc2V0dGluZ3MuZGV2aWNlSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2Fs
dCgpKTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gc2V0dGluZ3MuZGV2aWNlSWQoKTsKICAg
ICBpZiAoc2V0dGluZ3Muc3VwcG9ydHNHcm91cElkKCkpCi0gICAgICAgIHJlc3VsdC5ncm91cElk
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhT
YWx0KHNldHRpbmdzLmdyb3VwSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAg
ICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBzZXR0aW5ncy5ncm91cElkKCk7CiAKICAgICAvLyBGSVhN
RTogc2hvdWxkbid0IHRoaXMgaW5jbHVkZSBkaXNwbGF5U3VyZmFjZSBhbmQgbG9naWNhbFN1cmZh
Y2U/CiAKQEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgVmVjdG9yPGJvb2w+IGNhcGFiaWxpdHlC
b29sZWFuVmVjdG9yKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLU1lZGlhU3RyZWFtVHJhY2s6OlRyYWNrQ2FwYWJpbGl0aWVzIE1l
ZGlhU3RyZWFtVHJhY2s6OmdldENhcGFiaWxpdGllcyhEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0
CitNZWRpYVN0cmVhbVRyYWNrOjpUcmFja0NhcGFiaWxpdGllcyBNZWRpYVN0cmVhbVRyYWNrOjpn
ZXRDYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIGF1dG8gY2FwYWJpbGl0aWVzID0gbV9wcml2
YXRlLT5jYXBhYmlsaXRpZXMoKTsKICAgICBUcmFja0NhcGFiaWxpdGllcyByZXN1bHQ7CkBAIC0z
MTAsOSArMzEwLDkgQEAgTWVkaWFTdHJlYW1UcmFjazo6VHJhY2tDYXBhYmlsaXRpZXMgTWVkaWFT
dHJlYW1UcmFjazo6Z2V0Q2FwYWJpbGl0aWVzKERvY3VtZW50JgogICAgIGlmIChjYXBhYmlsaXRp
ZXMuc3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKCkpCiAgICAgICAgIHJlc3VsdC5lY2hvQ2FuY2Vs
bGF0aW9uID0gY2FwYWJpbGl0eUJvb2xlYW5WZWN0b3IoY2FwYWJpbGl0aWVzLmVjaG9DYW5jZWxs
YXRpb24oKSk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0RldmljZUlkKCkpCi0gICAg
ICAgIHJlc3VsdC5kZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmhhc2hTdHJpbmdXaXRoU2FsdChjYXBhYmlsaXRpZXMuZGV2aWNlSWQoKSwgZG9jdW1lbnQu
ZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gY2FwYWJpbGl0
aWVzLmRldmljZUlkKCk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0dyb3VwSWQoKSkK
LSAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQoY2FwYWJpbGl0aWVzLmdyb3VwSWQoKSwgZG9jdW1l
bnQuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBjYXBhYmls
aXRpZXMuZ3JvdXBJZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXgg
NGIwMGUwNDA0OWQ0MGZhMjRiMDhhZWQwMGIxYTVlYmU0NGE5NDcwMC4uZTM0NmY4MTNlNmNmYjlh
NzAyYWM1ZTE2ODVkMzMzZWQyYTA1Y2JmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTEwNSw3ICsxMDUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBkZXZpY2VJZDsKICAgICAgICAgU3RyaW5nIGdyb3Vw
SWQ7CiAgICAgfTsKLSAgICBUcmFja1NldHRpbmdzIGdldFNldHRpbmdzKERvY3VtZW50JikgY29u
c3Q7CisgICAgVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpIGNvbnN0OwogCiAgICAgc3RydWN0
IFRyYWNrQ2FwYWJpbGl0aWVzIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxMb25nUmFuZ2U+IHdp
ZHRoOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIGRldmljZUlk
OwogICAgICAgICBTdHJpbmcgZ3JvdXBJZDsKICAgICB9OwotICAgIFRyYWNrQ2FwYWJpbGl0aWVz
IGdldENhcGFiaWxpdGllcyhEb2N1bWVudCYpIGNvbnN0OworICAgIFRyYWNrQ2FwYWJpbGl0aWVz
IGdldENhcGFiaWxpdGllcygpIGNvbnN0OwogCiAgICAgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFp
bnRzJiBnZXRDb25zdHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH0KICAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29u
c3RyYWludHM+JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKaW5k
ZXggMmI3MWNjZTQ0N2IwZTliY2NjMzI3ZTY2ZjUzMjBhYzg1YzUzYTJhNS4uYmNmYWM4ZjljOWU1
NjAxODI0Nzk4MTA0YzcxMjhkOGNlOWM2ZDdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCkBAIC00Nyw5ICs0
Nyw5IEBAIGVudW0gTWVkaWFTdHJlYW1UcmFja1N0YXRlIHsgImxpdmUiLCAiZW5kZWQiIH07CiAg
ICAgTWVkaWFTdHJlYW1UcmFjayBjbG9uZSgpOwogICAgIFtJbXBsZW1lbnRlZEFzPXN0b3BUcmFj
a10gdm9pZCBzdG9wKCk7CiAKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tDYXBh
YmlsaXRpZXMgZ2V0Q2FwYWJpbGl0aWVzKCk7CisgICAgTWVkaWFUcmFja0NhcGFiaWxpdGllcyBn
ZXRDYXBhYmlsaXRpZXMoKTsKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludHMgZ2V0Q29uc3RyYWlu
dHMoKTsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0
aW5ncygpOworICAgIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpOwogICAgIFByb21p
c2U8dm9pZD4gYXBwbHlDb25zdHJhaW50cyhvcHRpb25hbCBNZWRpYVRyYWNrQ29uc3RyYWludHMg
Y29uc3RyYWludHMpOwogCiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm92ZXJjb25zdHJh
aW5lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDEyNWQ2ZDE3ZjQ0YjgxM2IwNTMxMGM5ODMyZDZmZjJm
YjZiM2FmYTAuLjg2NjE5Y2Q0ZTI1NTEyNWNkNmIyNzAxZjdiZjk1OTYxMmJkNDBjOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcApAQCAtMzAwLDE2ICszMDAsMTYgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojph
bGxvdyhDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0QK
ICAgICAgICAgbV9wZW5kaW5nQWN0aXZhdGlvbk1lZGlhU3RyZWFtID0gUGVuZGluZ0FjdGl2YXRp
b25NZWRpYVN0cmVhbTo6Y3JlYXRlKFdURk1vdmUocHJvdGVjdG9yKSwgKnRoaXMsIFdURk1vdmUo
c3RyZWFtKSk7CiAgICAgfTsKIAotICAgIG1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmRldmlj
ZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci0gICAgbV9yZXF1ZXN0LnZp
ZGVvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRpZmll
ckhhc2hTYWx0KTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQuZGV2aWNlSURIYXNo
U2FsdCgpLmlzRW1wdHkoKSB8fCBkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0KCkgPT0gZGV2aWNl
SWRlbnRpZmllckhhc2hTYWx0KTsKKyAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92
ZShhdWRpb0RldmljZSksIFdURk1vdmUodmlkZW9EZXZpY2UpLCBtX3JlcXVlc3QpOworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKFdU
Rk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCksIFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgbV9yZXF1ZXN0KTsKIAogICAg
IGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKICNpZiBF
TkFCTEUoV0VCX1JUQykKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50
LnBhZ2UoKSkKICAgICAgICAgcGFnZS0+cnRjQ29udHJvbGxlcigpLmRpc2FibGVJQ0VDYW5kaWRh
dGVGaWx0ZXJpbmdGb3JEb2N1bWVudChkb2N1bWVudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDYwNWYy
ZTc3MGFmNWRhMTNiYzQyODY3YTliMDlkZTYyMmE0YmNjMGMuLjUxYmZlYTBmNjRlMjlmODRkN2I3
ZGZjNWIxZjMwOWIzNWI4Y2FmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMjMxLDcgKzIzMSw4IEBAIHZvaWQgTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5k
aWRhdGUmIGNhbmRpZGF0CiAKIFJlZjxSVENSdHBSZWNlaXZlcj4gTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpjcmVhdGVSZWNlaXZlckZvclNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4mJiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxSVENSdHBSZWNlaXZlckJhY2tlbmQ+JiYg
YmFja2VuZCkKIHsKLSAgICBhdXRvIHJlbW90ZVRyYWNrUHJpdmF0ZSA9IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpLCBTdHJpbmcgeyBzb3VyY2UtPmlkKCkg
fSk7CisgICAgU3RyaW5nIHRyYWNrSUQgPSBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpOworICAgIGF1
dG8gcmVtb3RlVHJhY2tQcml2YXRlID0gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShX
VEZNb3ZlKHNvdXJjZSksIFdURk1vdmUodHJhY2tJRCkpOwogICAgIGF1dG8gcmVtb3RlVHJhY2sg
PSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKm1fcGVlckNvbm5lY3Rpb24uc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBXVEZNb3ZlKHJlbW90ZVRyYWNrUHJpdmF0ZSkpOwogCiAgICAgcmV0dXJu
IFJUQ1J0cFJlY2VpdmVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocmVtb3RlVHJhY2spLCBXVEZN
b3ZlKGJhY2tlbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDU2ZjM3YzExNjZiNmJmOWU4
NjNjNDI5Njc4NzA5YzQ4YmM2MDI2MjQuLmZjOGFlNjZjYjUzMmRmYjkwMzM4OWRmNDJjM2MwYWRm
MjY4NTNlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlKGZsb2F0IHNhbXBsZVJhdGUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKG1ha2VT
dHJpbmcoIldlYkF1ZGlvLSJfcywgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25O
b2RlIikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlIl9zKQogewogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgK
aW5kZXggMzBlYzQxYTYzYjg4OGQxNWMwMzQ1YTkyMzMzMDgwNDVkOTEyYTVmZC4uYjQyNzEwYWI4
YTFkMzBhYzAyOTMwNmVjYmI4MDM3MTY0MzBiZDJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaApAQCAtODc5LDcg
Kzg3OSw2IEBAIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzIHsKIAogICAgIE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwIG1hbmRhdG9yeUNvbnN0cmFpbnRzOwogICAgIFZlY3RvcjxNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcD4gYWR2YW5jZWRDb25zdHJhaW50czsKLSAgICBTdHJpbmcgZGV2aWNl
SURIYXNoU2FsdDsKICAgICBib29sIGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGIzNzYyOTQ3ZDY4YjY4MTRmOWY0
MmZjNGE5Y2M3MmI4MTQ2ZGNlNzEuLmM2M2JmNzlkYjRlYTZjZWFkNDRlYmY2ZmFlZTZhNGIwMWZi
YjcwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApAQCAtMzgsMTAg
KzM4LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBhdWRpb1RyYWNrLCBTdHJpbmcmJiBhdWRpb1RyYWNr
SWQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFdURk1vdmUoYXVkaW9UcmFja0lkKSwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZygpKQorICAgIDogUmVhbHRpbWVN
ZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgInJlbW90ZSBhdWRp
byJfcywgV1RGTW92ZShhdWRpb1RyYWNrSWQpKQogICAgICwgbV9hdWRpb1RyYWNrKFdURk1vdmUo
YXVkaW9UcmFjaykpCiB7Ci0gICAgc2V0TmFtZSgicmVtb3RlIGF1ZGlvIik7CiAgICAgbm90aWZ5
TXV0ZWRDaGFuZ2UoIW1fYXVkaW9UcmFjayk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2UuY3BwCmluZGV4IDc5ZjNmOWE2NzI3M2FjNDc3NjcxZmY0NzhiYmYyOWY2M2ZlYjNk
MWUuLmQ1YjQ5NjRhZmI1NWU2N2QxODgzMDE4M2M3NWZlNGM4YzJlOWI3MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAtMzgsMTAgKzM4LDkgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpSZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVy
ZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB2aWRlb1RyYWNrSWQpCi0gICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFdURk1vdmUodmlkZW9UcmFja0lkKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6VmlkZW8sIFN0cmluZygpKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgInJlbW90ZSB2aWRlbyJfcywgV1RGTW92ZSh2aWRl
b1RyYWNrSWQpKQogICAgICwgbV92aWRlb1RyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpCiB7Ci0g
ICAgc2V0TmFtZSgicmVtb3RlIHZpZGVvIik7CiAgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoIW1fdmlk
ZW9UcmFjayk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNGMxOGY0ZjA4ZDJlMTA0
NDQxNjY3YjU3NWIyNzU4MmQzNGEwNmRhYy4uNzIxNDE4MjczNTM3ZTlhNWQwYTAzNjg3ZjljMWZm
ZGQzNGEwNWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTQ3LDE0ICs0NywxNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVk
aWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUp
Ci0gICAgOiBtX2lkKGlkKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBo
YXNoU2FsdCkKKyAgICA6IG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICAsIG1f
cGVyc2lzdGVudElEKFdURk1vdmUoZGV2aWNlSUQpKQogICAgICwgbV90eXBlKHR5cGUpCi0gICAg
LCBtX25hbWUobmFtZSkKKyAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQogewotICAgIGlmICht
X2lkLmlzRW1wdHkoKSkKLSAgICAgICAgbV9pZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmco
KTsKLSAgICBtX3BlcnNpc3RlbnRJRCA9IG1faWQ7CisgICAgaWYgKG1fcGVyc2lzdGVudElELmlz
RW1wdHkoKSkKKyAgICAgICAgbV9wZXJzaXN0ZW50SUQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCk7CisgICAgZWxzZQorICAgICAgICBtX2hhc2hlZElEID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG1fcGVyc2lzdGVudElELCBt
X2lkSGFzaFNhbHQpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9ic2VydmVy
KFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikKQEAgLTYwOCwxMCArNjEw
LDkgQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncyhjb25zdCBNZWRp
YUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgRmwKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgICAgIEFTU0VSVChjb25zdHJhaW50LmlzU3RyaW5nKCkpOwotICAgICAg
ICAgICAgQVNTRVJUKCFjb25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0LmlzRW1wdHkoKSk7Cisg
ICAgICAgICAgICBBU1NFUlQoIW1faGFzaGVkSUQuaXNFbXB0eSgpKTsKIAotICAgICAgICAgICAg
YXV0byBoYXNoZWRJRCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChtX3BlcnNpc3RlbnRJRCwgY29uc3RyYWludHMuZGV2aWNlSURIYXNo
U2FsdCk7Ci0gICAgICAgICAgICBkb3VibGUgY29uc3RyYWludERpc3RhbmNlID0gZG93bmNhc3Q8
U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCkuZml0bmVzc0Rpc3RhbmNlKGhhc2hlZElEKTsK
KyAgICAgICAgICAgIGRvdWJsZSBjb25zdHJhaW50RGlzdGFuY2UgPSBkb3duY2FzdDxTdHJpbmdD
b25zdHJhaW50Pihjb25zdHJhaW50KS5maXRuZXNzRGlzdGFuY2UobV9oYXNoZWRJRCk7CiAgICAg
ICAgICAgICBpZiAoc3RkOjppc2luZihjb25zdHJhaW50RGlzdGFuY2UpKSB7CiAgICAgICAgICAg
ICAgICAgZmFpbGVkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQubmFtZSgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtOTU4LDYgKzk1OSwxNiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0
aW9uKQogICAgIH0pOwogfQogCitjb25zdCBTdHJpbmcmIFJlYWx0aW1lTWVkaWFTb3VyY2U6Omhh
c2hlZElkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNoZWRJRDsKK30KKworU3RyaW5nIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OmRldmljZUlESGFzaFNhbHQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2lkSGFzaFNhbHQ7Cit9CisKIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyOjp+T2Jz
ZXJ2ZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDc3ZGEzMDhmNGNhYzg0NjZlZTli
NDI3YWI1ZWIxNThmNWEwYTNmM2UuLmJjZWY1NjliYTU4NGIxZWFiYjVjYTIyYmVkM2I4NjZiYTdh
ZGRhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTg4LDEwICs4OCwxMCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlKCkgPSBkZWZhdWx0OwogCi0gICAgY29u
c3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBjb25zdCBTdHJpbmcm
IGhhc2hlZElkKCkgY29uc3Q7CisgICAgU3RyaW5nIGRldmljZUlESGFzaFNhbHQoKSBjb25zdDsK
IAogICAgIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJz
aXN0ZW50SUQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGVyc2lzdGVudElEKFN0cmluZyYmIHBl
cnNpc3RlbnRJRCkgeyBtX3BlcnNpc3RlbnRJRCA9IFdURk1vdmUocGVyc2lzdGVudElEKTsgfQog
CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgQXVkaW8sIFZpZGVvIH07CiAgICAgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CkBAIC0xNjYsNyArMTY2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkZWxheVNhbXBsZXMoU2Vjb25kcykgeyB9OwogCiBwcm90ZWN0
ZWQ6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBUeXBlLCBjb25z
dCBTdHJpbmcmIG5hbWUpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9KTsK
IAogICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYp
OwogCkBAIC0yMDQsNyArMjA0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9tdXRlZCB7IGZh
bHNlIH07CiAKLSAgICBTdHJpbmcgbV9pZDsKKyAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OworICAg
IFN0cmluZyBtX2hhc2hlZElEOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKICAgICBUeXBl
IG1fdHlwZTsKICAgICBTdHJpbmcgbV9uYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAppbmRleCA1ZTFiNWE1Zjk0ODZjOWIxNDkwMWIzY2EwOGFmZTdhMWY1MTIzM2FmLi5hNmY4
ZmYzMTNmZWM5NmFlZDViODkwMDQ4YjNiZjY0NTk0NDhkMzc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcApAQCAtNzksMTQgKzc5LDE0IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKQogCiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpID0gZGVmYXVsdDsKIAotdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVh
bUhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlciwgQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNl
LCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYg
cmVxdWVzdCkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJl
YW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIsIFN0cmluZyYmIGhh
c2hTYWx0LCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRl
b0RldmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIFZlY3Rv
cjxSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IGF1ZGlvU291cmNlczsKICAgICBWZWN0b3I8UmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+PiB2aWRlb1NvdXJjZXM7CiAgICAgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50OwogCiAgICAgaWYgKGF1ZGlvRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gYXVkaW9T
b3VyY2UgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShh
dWRpb0RldmljZSksICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpOworICAgICAgICBhdXRvIGF1
ZGlvU291cmNlID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0
cmFpbnRzKTsKICAgICAgICAgaWYgKGF1ZGlvU291cmNlKQogICAgICAgICAgICAgYXVkaW9Tb3Vy
Y2VzLmFwcGVuZChhdWRpb1NvdXJjZS5zb3VyY2UoKSk7CiAgICAgICAgIGVsc2UgewpAQCAtMTAy
LDcgKzEwMiw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxlCiAgICAgaWYgKHZpZGVvRGV2aWNl
KSB7CiAgICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHZpZGVvU291cmNlOwogICAgICAgICBp
ZiAodmlkZW9EZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVy
YSkKLSAgICAgICAgICAgIHZpZGVvU291cmNlID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgICAgIHZpZGVvU291cmNlID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
JnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZp
ZGVvU291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVT
b3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOwog
CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRE
aXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYKICAgICB9CiB9CiAK
LXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25z
dCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlcXVlc3QsIFZlY3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9E
ZXZpY2VJbmZvLCBWZWN0b3I8RGV2aWNlSW5mbz4mIHZpZGVvRGV2aWNlSW5mbywgU3RyaW5nJiBm
aXJzdEludmFsaWRDb25zdHJhaW50KQordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpn
ZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVzdCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFZlY3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9EZXZpY2VJbmZvLCBWZWN0
b3I8RGV2aWNlSW5mbz4mIHZpZGVvRGV2aWNlSW5mbywgU3RyaW5nJiBmaXJzdEludmFsaWRDb25z
dHJhaW50KQogewogICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKICAgICBpZiAocmVxdWVz
dC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKQEAgLTIzOSw3ICsyMzksNyBAQCB2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFT
dHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3Ig
PSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCB7IH0pOwor
ICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKICAgICAg
ICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+
c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25z
dHJhaW50KSkKICAgICAgICAgICAgICAgICBhdWRpb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VP
ckVycm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKIApAQCAtMjUz
LDcgKzI1Myw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlh
RGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRl
dmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAg
IGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShkZXZpY2UsIHsgfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRl
b0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNo
U2FsdCB9LCB7IH0pOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JF
cnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25z
dHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNl
SW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCks
IGRldmljZX0pOwogCkBAIC0yNzksNyArMjc5LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwK
ICAgICBpZiAocmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxh
eU1lZGlhKQogICAgICAgICBnZXREaXNwbGF5TWVkaWFEZXZpY2VzKHJlcXVlc3QsIHZpZGVvRGV2
aWNlSW5mbywgZmlyc3RJbnZhbGlkQ29uc3RyYWludCk7CiAgICAgZWxzZQotICAgICAgICBnZXRV
c2VyTWVkaWFEZXZpY2VzKHJlcXVlc3QsIGF1ZGlvRGV2aWNlSW5mbywgdmlkZW9EZXZpY2VJbmZv
LCBmaXJzdEludmFsaWRDb25zdHJhaW50KTsKKyAgICAgICAgZ2V0VXNlck1lZGlhRGV2aWNlcyhy
ZXF1ZXN0LCBTdHJpbmcgeyBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQgfSwgYXVkaW9EZXZpY2VJ
bmZvLCB2aWRlb0RldmljZUluZm8sIGZpcnN0SW52YWxpZENvbnN0cmFpbnQpOwogCiAgICAgaWYg
KChyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiBhdWRpb0RldmljZUluZm8uaXNF
bXB0eSgpKSB8fCAocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgdmlkZW9EZXZp
Y2VJbmZvLmlzRW1wdHkoKSkpIHsKICAgICAgICAgaW52YWxpZEhhbmRsZXIoZmlyc3RJbnZhbGlk
Q29uc3RyYWludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggODFmYjg1YzIx
MDI5MWY5ZTJjZGIyNjdmMjEzMjE4MTNiN2RkZjViZC4uNGUxNzAyN2RlNmVjYzhiNDA3OWJiNDVj
YjA4OTc2MjM0MmM3MjUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNjUs
NyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0
cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJhaW50c0hhbmRs
ZXImJiwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgU3RyaW5nJiYpOwogCiAgICAgdXNpbmcg
TmV3TWVkaWFTdHJlYW1IYW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKFJlZlB0cjxNZWRpYVN0
cmVhbVByaXZhdGU+JiYpPjsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3
TWVkaWFTdHJlYW1IYW5kbGVyJiYsIENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVy
ZURldmljZSYmIHZpZGVvRGV2aWNlLCBjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYsIFN0
cmluZyYmLCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRl
b0RldmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0Jik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBnZXRNZWRpYVN0cmVhbURldmljZXMoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVE
ZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0
cmluZyYpOwpAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHZvaWQg
Z2V0RGlzcGxheU1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmLCBWZWN0b3I8
RGV2aWNlSW5mbz4mLCBTdHJpbmcmKTsKLSAgICB2b2lkIGdldFVzZXJNZWRpYURldmljZXMoY29u
c3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgVmVjdG9yPERldmljZUluZm8+JiBhdWRpb0RldmljZXMs
IFZlY3RvcjxEZXZpY2VJbmZvPiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmKTsKKyAgICB2b2lkIGdl
dFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgU3RyaW5nJiYsIFZl
Y3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8RGV2aWNlSW5mbz4mIHZpZGVv
RGV2aWNlcywgU3RyaW5nJik7CiAKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9kZXZpY2VD
aGFuZ2VkT2JzZXJ2ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCmlu
ZGV4IDk3MjVkN2ZiOGY1N2RjNzNiNzUzNmU5ODFiMzJjZWUyZjJkMjMyYzcuLmU4ZTU1ZGYyN2Y0
YTNmNjg1OGYxM2I1ODZhNDhlOTY1NWFmZTYxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5jcHAKQEAgLTI2LDE0ICsyNiwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCiAKLSNpbmNsdWRlICJDYXB0dXJl
RGV2aWNlLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgotCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKICNpbmNsdWRlICJD
YXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJN
ZWRpYVN0cmVhbVByaXZhdGUuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAj
aW5jbHVkZSA8d3RmL1NIQTEuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggZjljNDdjYWE4ZTBlODU4NGRiOTJjOTRjMTNlOWFjM2Nl
NGYwMWE2OC4uMzIxNjY2NGQ4NTViYWI3ZDAzYWE4Y2Y3ZWRkOTQxNWQxMDc3ZmM0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC0yNywxMyArMjcsMTQgQEAKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYXB0dXJlRGV2aWNlOwogY2xhc3MgUmVhbHRp
bWVNZWRpYVNvdXJjZTsKIAogc3RydWN0IE1lZGlhQ29uc3RyYWludHM7Ci0KIHN0cnVjdCBDYXB0
dXJlU291cmNlT3JFcnJvcjsKIAogY2xhc3MgU2luZ2xlU291cmNlRmFjdG9yeSB7CkBAIC01Myw3
ICs1NCw3IEBAIGNsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkKIHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
LCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKIAogcHJvdGVjdGVkOgog
ICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CkBAIC02Niw3ICs2Nyw3IEBAIGNs
YXNzIFZpZGVvQ2FwdHVyZUZhY3RvcnkKIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0Nh
cHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9D
YXB0dXJlUGFnZVN0YXRlKGJvb2wsIGJvb2wpIHsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwCmluZGV4IGY1ZGI5YjA5N2U3NjQzOWFiMTE5OGU3ZWU2MmJlMDVhMjJkM2Q3YWIu
LjU2NjRiMDkyMTAwNzJlMTFiYmIwYThjZGM1Y2JiMjQyMjEyNWRhNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVh
bHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBj
b25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGlkLCBUeXBlOjpW
aWRlbywgbmFtZSkKK1JlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9Tb3VyY2UoU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpZCksIFdU
Rk1vdmUoaGFzaFNhbHQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggODdhYjgwYTE4
ZGRhZTVjYzYxMzUxNDAzNDBiMjY4MTI2OTNiMDM1YS4uYTQ5Y2Y2Y2NmNjZiMDM5YjkxNTkyNjZj
YTg5NDVjODUwNGEyZDczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDIsNyArNDIsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiBwcm90ZWN0ZWQ6
Ci0gICAgUmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcm
IG5hbWUpOworICAgIFJlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKIAogICAgIHZvaWQgcHJlcGFyZVRvUHJvZHVjZURhdGEo
KTsKICAgICBib29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4g
d2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuY3BwCmluZGV4IDc0ZmEzOWM5ZTY3MTQxMzVhZWVhYTNhMzRiYTRiOTYyNzFjYjNjMGUu
LjJiNzU0ZDdjNGQ2OTgzY2I1ODU0NGY1NjNhYzhhNDQ4MmIxYTgwZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01Myw5ICs1
Myw5IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpCiAKIGNsYXNzIEdT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAg
IHsKLSAgICAgICAgcmV0dXJuIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRl
dmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsKIApAQCAt
NjUsNyArNjUsNyBAQCBzdGF0aWMgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYg
bGliV2ViUlRDQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSgpCiAgICAgcmV0dXJuIGZhY3Rvcnku
Z2V0KCk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBhdXRvIGRldmljZSA9
IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmdzdHJlYW1l
ckRldmljZVdpdGhVSUQoZGV2aWNlSUQpOwogICAgIGlmICghZGV2aWNlKSB7CkBAIC03Myw3ICs3
Myw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291
cmNlT3JFcnJvcihXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgIH0KIAotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnZh
bHVlKCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlKGRldmljZS52YWx1ZSgpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogCiAgICAg
aWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNv
bnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CkBAIC04OCwxNSArODgsMTUgQEAgQXVkaW9DYXB0dXJl
RmFjdG9yeSYgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKICAgICByZXR1
cm4gbGliV2ViUlRDQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSgpOwogfQogCi1HU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJD
YXB0dXJlRGV2aWNlIGRldmljZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlLnBl
cnNpc3RlbnRJZCgpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgZGV2aWNlLmxh
YmVsKCkpCitHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVy
ZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQp
CisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxh
YmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6bWFrZV91
bmlxdWU8R1N0cmVhbWVyQXVkaW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsKICAgICBpbml0aWFsaXpl
R1N0cmVhbWVyRGVidWcoKTsKIH0KIAotR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2VJRCwgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIG5hbWUpCitHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6bWFrZV91
bmlxdWU8R1N0cmVhbWVyQXVkaW9DYXB0dXJlcj4oKSkKIHsKICAgICBpbml0aWFsaXplR1N0cmVh
bWVyRGVidWcoKTsKQEAgLTE2Myw3ICsxNjMsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcwog
ICAgIH0KIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
KHNldHRpbmdzKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7Ci0gICAgY2FwYWJpbGl0aWVzLnNl
dERldmljZUlkKGlkKCkpOworICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNoZWRJZCgp
KTsKICAgICBjYXBhYmlsaXRpZXMuc2V0RWNob0NhbmNlbGxhdGlvbihkZWZhdWx0RWNob0NhbmNl
bGxhdGlvbkNhcGFiaWxpdHkpOwogICAgIGNhcGFiaWxpdGllcy5zZXRWb2x1bWUoZGVmYXVsdFZv
bHVtZUNhcGFiaWxpdHkoKSk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFNhbXBsZVJhdGUoQ2FwYWJp
bGl0eVZhbHVlT3JSYW5nZShtaW5TYW1wbGVSYXRlLCBtYXhTYW1wbGVSYXRlKSk7CkBAIC0xODIs
NyArMTgyLDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBHU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdzKCkKIHsKICAgICBpZiAoIW1fY3VycmVudFNldHRp
bmdzKSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKLSAg
ICAgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIHNldHRpbmdzLnNldERl
dmljZUlkKGhhc2hlZElkKCkpOwogCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyBzdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICAgICAgc3VwcG9ydGVkQ29u
c3RyYWludHMuc2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA3NTllODE0NzExNTI3YWVmZDVm
MGRlMGNlNmRhYjA2MDUwNDQwMGYxLi5mYTM0MTk0ZGEyZTM1Y2RlMGExZmVkZWRlOWZlZWU2NGQ2
ZDhmZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2Ugewog
cHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIG92ZXJyaWRlOwpAQCAtNDAsOCAr
NDAsOCBAQCBwdWJsaWM6CiAgICAgR1N0cmVhbWVyQ2FwdHVyZXIqIGNhcHR1cmVyKCkgeyByZXR1
cm4gbV9jYXB0dXJlci5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UpOwotICAgIEdTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUp
OworICAgIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAg
dmlydHVhbCB+R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKCk7CiAgICAgdm9pZCBzdGFydFBy
b2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwCmluZGV4IDIwOWRiNjU5NzkyNzYzODVlZGMxMjEzMzZlNjEyZDg4YzFkNDlmZGUuLmM5
ZWVjMjBlMWRhYzVlYjhlZGViYjdmNzk5Y2MwZWI4NjUxNzdjZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01NCw5ICs1NCw5
IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpCiAKIGNsYXNzIEdTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsKIApA
QCAtNjgsNyArNjgsNyBAQCBWaWRlb0NhcHR1cmVGYWN0b3J5JiBsaWJXZWJSVENWaWRlb0NhcHR1
cmVTb3VyY2VGYWN0b3J5KCkKIAogY2xhc3MgR1N0cmVhbWVyRGlzcGxheUNhcHR1cmVTb3VyY2VG
YWN0b3J5IGZpbmFsIDogcHVibGljIERpc3BsYXlDYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0g
ICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3Qg
Q2FwdHVyZURldmljZSYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSBmaW5hbAorICAgIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVE
ZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopIGZpbmFsCiAgICAgewog
ICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiAgICAgICAgIHJldHVybiB7IH07CkBA
IC04MSw3ICs4MSw3IEBAIERpc3BsYXlDYXB0dXJlRmFjdG9yeSYgbGliV2ViUlRDRGlzcGxheUNh
cHR1cmVTb3VyY2VGYWN0b3J5KCkKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKIH0KIAotQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CitDYXB0dXJlU291cmNlT3JFcnJvciBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKQogewogICAgIGF1dG8gZGV2aWNlID0gR1N0cmVhbWVyVmlkZW9D
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZ3N0cmVhbWVyRGV2aWNlV2l0aFVJRChk
ZXZpY2VJRCk7CiAgICAgaWYgKCFkZXZpY2UpIHsKQEAgLTg5LDcgKzg5LDcgQEAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwKICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1v
dmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgfQogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UudmFsdWUoKSkpOworICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoZGV2
aWNlLnZhbHVlKCksIFdURk1vdmUoaGFzaFNhbHQpKSk7CiAKICAgICBpZiAoY29uc3RyYWludHMp
IHsKICAgICAgICAgYXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0
cmFpbnRzKTsKQEAgLTEwOSwxNSArMTA5LDE1IEBAIERpc3BsYXlDYXB0dXJlRmFjdG9yeSYgR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpkaXNwbGF5RmFjdG9yeSgpCiAgICAgcmV0dXJuIGxp
YldlYlJUQ0Rpc3BsYXlDYXB0dXJlU291cmNlRmFjdG9yeSgpOwogfQogCi1HU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcm
IGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IGdjaGFyICpzb3VyY2VfZmFjdG9y
eSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OlZpZGVvLCBuYW1lKQorR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBnY2hhciAqc291cmNlX2ZhY3RvcnkpCisgICAgOiBS
ZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBXVEZN
b3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBt
X2NhcHR1cmVyKHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oc291cmNl
X2ZhY3RvcnkpKQogewogICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOwogfQogCi1HU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3Ry
ZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2
aWNlLnBlcnNpc3RlbnRJZCgpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgZGV2
aWNlLmxhYmVsKCkpCitHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVv
Q2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFz
aFNhbHQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OlZpZGVvLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2
aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6
bWFrZV91bmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsKICAgICBpbml0
aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKQEAgLTI0Miw3ICsyNDIsNyBAQCBjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNh
cGFiaWxpdGllcwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgY2FwYWJpbGl0
aWVzLnNldERldmljZUlkKGlkKCkpOworICAgICAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQo
aGFzaGVkSWQoKSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRXaWR0aChDYXBhYmlsaXR5VmFs
dWVPclJhbmdlKG1pbldpZHRoLCBtYXhXaWR0aCkpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0
SGVpZ2h0KENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UobWluSGVpZ2h0LCBtYXhIZWlnaHQpKTsKICAg
ICAgICAgY2FwYWJpbGl0aWVzLnNldEZyYW1lUmF0ZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKG1p
bkZyYW1lcmF0ZSwgbWF4RnJhbWVyYXRlKSk7CkBAIC0yNTYsNyArMjU2LDcgQEAgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OnNl
dHRpbmdzKCkKIHsKICAgICBpZiAoIW1fY3VycmVudFNldHRpbmdzKSB7CiAgICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKLSAgICAgICAgc2V0dGluZ3Muc2V0RGV2
aWNlSWQoaWQoKSk7CisgICAgICAgIHNldHRpbmdzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwog
CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBzdXBwb3J0
ZWRDb25zdHJhaW50czsKICAgICAgICAgc3VwcG9ydGVkQ29uc3RyYWludHMuc2V0U3VwcG9ydHNE
ZXZpY2VJZCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2UuaAppbmRleCA2N2JjZDFhMjBhYjAxZDNlNzE2YTAwNjcyYWNmNzFiNTkzMDQ4Nzc3
Li4yMzFlZDRhYTMwN2JmZmQwYjVlN2Y5YWY3NzliNzhlNzI1OWQ1Mzg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0yOSw3ICsyOSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVvQ2FwdHVyZUZhY3Rvcnkm
IGZhY3RvcnkoKTsKIAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KQEAgLTQxLDggKzQx
LDggQEAgcHVibGljOgogICAgIEdTdHJlYW1lckNhcHR1cmVyKiBjYXB0dXJlcigpIHsgcmV0dXJu
IG1fY2FwdHVyZXIuZ2V0KCk7IH0KIAogcHJvdGVjdGVkOgotICAgIEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IGdjaGFyICogc291cmNlX2ZhY3RvcnkpOwotICAgIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNv
dXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlKTsKKyAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBnY2hhciAqIHNvdXJjZV9mYWN0b3J5KTsKKyAgICBHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogICAg
IHZpcnR1YWwgfkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogICAgIHZvaWQgc3RhcnRQ
cm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0Nh
cHR1cmVTb3VyY2UuY3BwCmluZGV4IDlmMDFlNjcxMjAyMGIxYWZjMDM5ZmZlZmMwZjA3NmViZGY1
NTc0ZDguLmZkNTJlYmY0OTZlN2IxZTY5NzY5NmI4NWRhYWM2MTU3NmEwNjFhZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAKQEAgLTMwLDE2ICszMCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdyYXBw
ZWRNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSA6IHB1YmxpYyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZSB7CiBwdWJsaWM6Ci0gICAgV3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICAgICAgOiBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZShkZXZpY2VJRCwgbmFtZSkKKyAgICBXcmFwcGVkTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0KQorICAgICAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQp
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICB7CiAgICAgfQogfTsKIAot
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIGRldmljZUlELAotICAgIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELAorICAgIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja0dTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgbmFtZSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQp
LCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogCiAgICAgaWYgKGNvbnN0cmFp
bnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICBy
ZXR1cm4geyB9OwpAQCAtNTgsOSArNTgsOSBAQCB2b2lkIE1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgYwogICAg
IG1fd3JhcHBlZFNvdXJjZS0+YXBwbHlDb25zdHJhaW50cyhjb25zdHJhaW50cywgV1RGTW92ZShz
dWNjZXNzSGFuZGxlciksIFdURk1vdmUoZmFpbHVyZUhhbmRsZXIpKTsKIH0KIAotTW9ja0dTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6TW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShj
b25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBHU3RyZWFt
ZXJBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIG5hbWUpCi0gICAgLCBtX3dyYXBwZWRTb3Vy
Y2Uoc3RkOjptYWtlX3VuaXF1ZTxXcmFwcGVkTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U+KGRldmlj
ZUlELCBuYW1lKSkKK01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6Ok1vY2tHU3RyZWFt
ZXJBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0KQorICAgIDogR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKFN0cmlu
ZyB7IGRldmljZUlEIH0sIFN0cmluZyB7IG5hbWUgfSwgU3RyaW5nIHsgaGFzaFNhbHQgfSkKKyAg
ICAsIG1fd3JhcHBlZFNvdXJjZShzdGQ6Om1ha2VfdW5pcXVlPFdyYXBwZWRNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZT4oV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFz
aFNhbHQpKSkKIHsKICAgICBtX3dyYXBwZWRTb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZS5oCmluZGV4IGI1NzE4MWQ5YTFjOWM5YWQ3MGYxZjU2Njc5ZDM3NTVlNDU0YjEwODMuLjhhNGJi
ZTg1ZjM3N2RlNjcwNjRhOTA4ZWI0MTYxNTYyZmE0ZDY3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtMjksNyArMjks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UgZmluYWwgOiBwdWJsaWMgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLCBSZWFs
dGltZU1lZGlhU291cmNlOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgTW9ja0dTdHJlYW1lckF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5h
bWUpOworICAgIE1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNl
SUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKICAgICB+TW9ja0dTdHJlYW1l
ckF1ZGlvQ2FwdHVyZVNvdXJjZSgpOwogICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPj4gYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJik7CiAg
ICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmLCBTdWNjZXNz
SGFuZGxlciYmLCBGYWlsdXJlSGFuZGxlciYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA0NGQ5NGNj
MjdlMzI2NzJiYjRjNDQyMDYzNTMxYmM4MmYyYmNmNGNiLi5iNjkyMDI2N2RkNWNjYjRjZWNhMWFj
YjU5NjIzOTRmN2VhZTY2NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tH
U3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zMyw4ICszMyw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgV3JhcHBlZE1vY2tSZWFsdGltZVZpZGVvU291cmNlIDogcHVi
bGljIE1vY2tSZWFsdGltZVZpZGVvU291cmNlIHsKIHB1YmxpYzoKLSAgICBXcmFwcGVkTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBu
YW1lKQotICAgICAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKGRldmljZUlELCBuYW1lKQor
ICAgIFdyYXBwZWRNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgICAgIDogTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNh
bHQpKQogICAgIHsKICAgICB9CiAKQEAgLTYxLDEwICs2MSwxMCBAQCBwdWJsaWM6CiAgICAgfQog
fTsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShjb25zdCBTdHJpbmcmIGRldmljZUlELAotICAgIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELAorICAgIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja0dTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgbmFtZSkpOworICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogCiAgICAgaWYgKGNv
bnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAg
ICAgICByZXR1cm4geyB9OwpAQCAtOTUsOSArOTUsOSBAQCB2b2lkIE1vY2tHU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUp
CiAgICAgfQogfQogCi1Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpNb2NrR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKLSAgICA6IEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgbmFt
ZSwgImFwcHNyYyIpCi0gICAgLCBtX3dyYXBwZWRTb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxXcmFw
cGVkTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+KGRldmljZUlELCBuYW1lKSkKK01vY2tHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2U6Ok1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDog
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGRldmljZUlELCBuYW1lLCBoYXNoU2FsdCwgImFw
cHNyYyIpCisgICAgLCBtX3dyYXBwZWRTb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxXcmFwcGVkTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U+KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkpCiB7CiAgICAgbV93cmFwcGVkU291cmNlLT5hZGRPYnNlcnZlcigq
dGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UuaAppbmRleCBkMDhhYTQ4OTk1ODVlOWEzMzVkMjkzN2VjNzEzZmNkODk3OWM1
ZjVkLi5jMjQ4NjMyM2IzMWEzZWU1ZmQ0NDYxNDkxMWQ4OGI2ZGEzY2VmOTU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgKQEAg
LTM0LDcgKzM0LDcgQEAgY2xhc3MgV3JhcHBlZE1vY2tSZWFsdGltZVZpZGVvU291cmNlOwogLy8g
dG8gdGhlIE1vY2tSZWFsdGltZU1lZGlhU291cmNlIGNsYXNzIGJ5IHdyYXBwaW5nIG91ciBvd24g
c3ViY2xhc3Mgb2YgaXQuCiBjbGFzcyBNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlIGZp
bmFsIDogcHVibGljIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIE1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBN
b2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAgfk1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2UoKTsKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+
IGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZvaWQgYXBw
bHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3VjY2Vzc0hhbmRsZXImJiwg
RmFpbHVyZUhhbmRsZXImJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4
IGQzOGUxYWU2MjY1MGE2ZTM2NDczYjExY2IxZWM5ZjFlMDE0MjJlMjkuLjNiNDlmNDZmZGEzZWMz
MjZjNzM4NTE3M2ZhNmNkMjdlY2YyOWVmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5o
CkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIFBpeGVsQnVmZmVyUmVzaXplcjsKIAogY2xhc3MgQVZW
aWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb1NvdXJjZSwgcHJpdmF0ZSBP
cmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJp
bmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7
CiAKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91
dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxl
QnVmZmVyUmVmLCBBVkNhcHR1cmVDb25uZWN0aW9uKik7CiAKIHByaXZhdGU6Ci0gICAgQVZWaWRl
b0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJik7Cisg
ICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgU3RyaW5nJiYgaWQsIFN0
cmluZyYmIGhhc2hTYWx0KTsKICAgICB2aXJ0dWFsIH5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpOwog
CiAgICAgYm9vbCBzZXR1cFNlc3Npb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpp
bmRleCA0Y2IyZjkzOTdlYWNjMTVmNzZkYmRmNGI2Mzc4MDg5Mjg1MDM1ZWQwLi41MTk2MDgyMjJl
NjYxNGFiMmVkY2VjMjNmMzUwMDkwNzU5ZDExOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291
cmNlLm1tCkBAIC0xNTAsMTMgKzE1MCwxMyBAQCBwdWJsaWM6CiAgICAgUmV0YWluUHRyPEFWQ2Fw
dHVyZURldmljZUZvcm1hdFR5cGU+IGZvcm1hdDsKIH07CiAKLUNhcHR1cmVTb3VyY2VPckVycm9y
IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgQVZDYXB0dXJl
RGV2aWNlVHlwZWRlZiAqZGV2aWNlID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgZGV2aWNl
V2l0aFVuaXF1ZUlEOmlkXTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShk
ZXZpY2UsIGlkKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlkZW9DYXB0
dXJlU291cmNlKGRldmljZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKSk7CiAgICAg
aWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNv
bnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQpCkBAIC0xNjYsOCAr
MTY2LDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdAogICAgIHJldHVybiBDYXB0dXJlU291cmNl
T3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1BVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZW
aWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBjb25zdCBB
dG9taWNTdHJpbmcmIGlkKQotICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShpZCwgZGV2aWNlLmxv
Y2FsaXplZE5hbWUpCitBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2Uo
QVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFz
aFNhbHQpCisgICAgOiBSZWFsdGltZVZpZGVvU291cmNlKGRldmljZS5sb2NhbGl6ZWROYW1lLCBX
VEZNb3ZlKGlkKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX29iamNPYnNlcnZlcihhZG9w
dE5TKFtbV2ViQ29yZUFWVmlkZW9DYXB0dXJlU291cmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRo
Q2FsbGJhY2s6dGhpc10pKQogICAgICwgbV9kZXZpY2UoZGV2aWNlKQogewpAQCAtMTc3LDggKzE3
Nyw2IEBAIEFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1
cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0CiAgICAgc3RhdGljX2Fzc2VydChzdGF0aWNf
Y2FzdDxpbnQ+KEludGVycnVwdGlvblJlYXNvbjo6VmlkZW9JblVzZSkgPT0gQVZDYXB0dXJlU2Vz
c2lvbkludGVycnVwdGlvblJlYXNvblZpZGVvRGV2aWNlSW5Vc2VCeUFub3RoZXJDbGllbnQsICJJ
bnRlcnJ1cHRpb25SZWFzb246OlZpZGVvSW5Vc2UgaXMgbm90IEFWQ2FwdHVyZVNlc3Npb25JbnRl
cnJ1cHRpb25SZWFzb25WaWRlb0RldmljZUluVXNlQnlBbm90aGVyQ2xpZW50IGFzIGV4cGVjdGVk
Iik7CiAgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxpbnQ+KEludGVycnVwdGlvblJlYXNv
bjo6QXVkaW9JblVzZSkgPT0gQVZDYXB0dXJlU2Vzc2lvbkludGVycnVwdGlvblJlYXNvbkF1ZGlv
RGV2aWNlSW5Vc2VCeUFub3RoZXJDbGllbnQsICJJbnRlcnJ1cHRpb25SZWFzb246OkF1ZGlvSW5V
c2UgaXMgbm90IEFWQ2FwdHVyZVNlc3Npb25JbnRlcnJ1cHRpb25SZWFzb25BdWRpb0RldmljZUlu
VXNlQnlBbm90aGVyQ2xpZW50IGFzIGV4cGVjdGVkIik7CiAjZW5kaWYKLQotICAgIHNldFBlcnNp
c3RlbnRJRChTdHJpbmcoZGV2aWNlLnVuaXF1ZUlEKSk7CiB9CiAKIEFWVmlkZW9DYXB0dXJlU291
cmNlOjp+QVZWaWRlb0NhcHR1cmVTb3VyY2UoKQpAQCAtMjYwLDcgKzI1OCw3IEBAIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdz
KCkKICAgICBhdXRvJiBzaXplID0gdGhpcy0+c2l6ZSgpOwogICAgIHNldHRpbmdzLnNldFdpZHRo
KHNpemUud2lkdGgoKSk7CiAgICAgc2V0dGluZ3Muc2V0SGVpZ2h0KHNpemUuaGVpZ2h0KCkpOwot
ICAgIHNldHRpbmdzLnNldERldmljZUlkKGlkKCkpOworICAgIHNldHRpbmdzLnNldERldmljZUlk
KGhhc2hlZElkKCkpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFp
bnRzIHN1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgIHN1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1
cHBvcnRzRGV2aWNlSWQodHJ1ZSk7CkBAIC0yODMsNyArMjgxLDcgQEAgY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGll
cygpCiAgICAgICAgIHJldHVybiAqbV9jYXBhYmlsaXRpZXM7CiAKICAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0aW5ncygpLnN1cHBvcnRlZENvbnN0
cmFpbnRzKCkpOwotICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICBjYXBh
YmlsaXRpZXMuc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAKICAgICBBVkNhcHR1cmVEZXZpY2VU
eXBlZGVmICp2aWRlb0RldmljZSA9IGRldmljZSgpOwogICAgIGlmIChbdmlkZW9EZXZpY2UgcG9z
aXRpb25dID09IEFWQ2FwdHVyZURldmljZVBvc2l0aW9uRnJvbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggODU5ZDczOGE5NGY5MDI1ZmU3ZTRiMDZkYjg1OWE0MTUw
YTg4MWUxYS4uYzllYTU4ODIyNTc5ZDhjMGIwYTgxZmRlZDFmOTE2ZWVjNWE3MzRlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjk0LDIwICs2OTQsMjAgQEAgT1NT
dGF0dXMgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6ZGVmYXVsdE91dHB1dERldmljZSh1aW50MzJfdCog
ZGV2aWNlSUQpCiAgICAgcmV0dXJuIGVycjsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFn
ZXI6OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhVSUQoZGV2aWNlSUQpOwogICAgIGlm
ICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9w
dFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGRldmljZS0+bGFiZWwo
KSwgZGV2aWNlLT5kZXZpY2VJRCgpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFN0cmluZyB7IGRldmlj
ZS0+bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgZGV2aWNlLT5kZXZpY2VJRCgpKSk7CiAj
ZWxpZiBQTEFURk9STShJT1MpCi0gICAgYXV0byBkZXZpY2UgPSBBVkF1ZGlvU2Vzc2lvbkNhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5hdWRpb1Nlc3Npb25EZXZpY2VXaXRoVUlEKGRl
dmljZUlEKTsKKyAgICBhdXRvIGRldmljZSA9IEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1h
bmFnZXI6OnNpbmdsZXRvbigpLmF1ZGlvU2Vzc2lvbkRldmljZVdpdGhVSUQoV1RGTW92ZShkZXZp
Y2VJRCkpOwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQs
IGRldmljZS0+bGFiZWwoKSwgMCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBD
b3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2Ut
PmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIDApKTsKICNlbmRpZgogCiAgICAgaWYgKGNv
bnN0cmFpbnRzKSB7CkBAIC03NzQsOCArNzc0LDggQEAgQXVkaW9DYXB0dXJlRmFjdG9yeSYgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCiAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1
cmVTb3VyY2VGYWN0b3J5OjpzaW5nbGV0b24oKTsKIH0KIAotQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBT
dHJpbmcmIGxhYmVsLCB1aW50MzJfdCBwZXJzaXN0ZW50SUQpCi0gICAgOiBSZWFsdGltZU1lZGlh
U291cmNlKGRldmljZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgbGFiZWwp
CitDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQzMl90IHBl
cnNpc3RlbnRJRCkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobGFiZWwpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVEZXZpY2VJRChwZXJzaXN0ZW50SUQpCiB7CiAg
ICAgYXV0byYgdW5pdCA9IENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpOwpAQCAtODQ1
LDcgKzg0NSw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIENvcmVB
dWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpCiB7CiAgICAgaWYgKCFtX2NhcGFiaWxp
dGllcykgewogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxp
dGllcyhzZXR0aW5ncygpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOwotICAgICAgICBjYXBhYmls
aXRpZXMuc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJ
ZChoYXNoZWRJZCgpKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNldEVjaG9DYW5jZWxsYXRpb24o
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6RWNob0NhbmNlbGxhdGlvbjo6UmVhZFdy
aXRlKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNldFZvbHVtZShDYXBhYmlsaXR5VmFsdWVPclJh
bmdlKDAuMCwgMS4wKSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRTYW1wbGVSYXRlKENhcGFi
aWxpdHlWYWx1ZU9yUmFuZ2UoODAwMCwgOTYwMDApKTsKQEAgLTg2MCw3ICs4NjAsNyBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNl
dHRpbmdzKCkKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwog
ICAgICAgICBzZXR0aW5ncy5zZXRWb2x1bWUodm9sdW1lKCkpOwogICAgICAgICBzZXR0aW5ncy5z
ZXRTYW1wbGVSYXRlKHNhbXBsZVJhdGUoKSk7Ci0gICAgICAgIHNldHRpbmdzLnNldERldmljZUlk
KGlkKCkpOworICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKICAgICAg
ICAgc2V0dGluZ3Muc2V0TGFiZWwobmFtZSgpKTsKICAgICAgICAgc2V0dGluZ3Muc2V0RWNob0Nh
bmNlbGxhdGlvbihlY2hvQ2FuY2VsbGF0aW9uKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2UuaAppbmRleCBlNWYxYTRmMTA1NjBlYzY2ODU3ZjJmMTg5NTJmMGJiM2Y4ZDMyOGI0Li4w
NmI1ZjY0NmVmNjIwN2UyNTk1ODBlZWM3NGJiYjI1NDlhMDI4MTUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmgKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM7CiBjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIFJl
YWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7
CiAKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVSZWNvbmZpZ3Vy
YXRpb24oKTsKIAogcHJvdGVjdGVkOgotICAgIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3Qg
U3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgdWludDMyX3QgcGVyc2lzdGVu
dElEKTsKKyAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBsYWJlbCwgU3RyaW5nJiYgaGFzaFNhbHQsIHVpbnQzMl90IHBlcnNpc3RlbnRJRCk7CiAg
ICAgdmlydHVhbCB+Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSgpOwogCiBwcml2YXRlOgpAQCAtMTI2
LDkgKzEyNiw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBDb3JlQXVkaW9DYXB0
dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBjb25zdHJhaW50cyk7Cisg
ICAgICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAg
ICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4
IGRjNmExOGI1NGEyMDY0ZTIwYWEyMzg4MTViZGMyMjUzMjg4N2I5NzAuLjM3M2QwZjhhNTNhNWU2
YTZlYTRjN2U0YmRmOTc2ZDhlZGQ5NTQ0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNp
bmcgbmFtZXNwYWNlIFBBTDsKIAogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6RGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYShTdHJpbmcmJiBuYW1lKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZSgiIiwgVHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSkpCisgICAgOiBSZWFsdGltZU1lZGlhU291
cmNlKFR5cGU6OlZpZGVvLCBXVEZNb3ZlKG5hbWUpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpj
dXJyZW50KCksIHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJhbWUpCiB7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaAppbmRleCAyNGRkYzY3ZDJi
NzBiOTQ5MzU1NjQ1MWE5YWI0OGFiMjJmZTMwODJkLi5iZmU0MGI4NjA1ODFmMWNkYjkzMWIzNWNi
ZjQ3ZmYwNzJjM2JhYWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgK
QEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSA6IHB1Ymxp
YyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAogcHJvdGVjdGVkOgotICAgIERpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2EoU3RyaW5nJiYpOworICAgIERpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EoU3RyaW5nJiYgbmFtZSk7CiAgICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYSgpOwogCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gZ2VuZXJh
dGVGcmFtZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLmgKaW5k
ZXggOTlkNzhlZWM3YzcwMmVjZDE2ZWNmZGEwYjg0ZDBjNTZiOWQ0ZjNiYy4uNTIwOGIyNjJhM2Mw
Mzc3ZjYyODNjMzBhYzJjYTgzNTZjNDJmM2RiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlTWFjLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakM7CiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyBmaW5hbCA6IHB1
YmxpYyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSB7CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTsKLSAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1h
Yyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCk7CiAKICAgICB2b2lkIHNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNl
dDxSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc+KSBmaW5hbDsKICAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxpbnQ+PiBkaXNjcmV0ZVNhbXBsZVJhdGVzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4geyB7IDQ0MTAwLCA0ODAwMCB9IH07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZU1hYy5tbQppbmRleCAwYzhhNGJkZTIwNWM5YjliMmFiMmE4ODg5NzZiYzk3NDljMzM3
MWFjLi43Njc2NjA2N2U2NmMxNDA5OTdkMGZlZTM3YzU5ZjY3ZDU3YmEyZGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCkBAIC04Niw5ICs4NiwxNiBAQCBzdGF0
aWMgdm9pZCBhZGRIdW0oZmxvYXQgYW1wbGl0dWRlLCBmbG9hdCBmcmVxdWVuY3ksIGZsb2F0IHNh
bXBsZVJhdGUsIHVpbnQ2NF90CiAgICAgfQogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0
dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKGRldmljZUlELCBuYW1lKSk7CisjaWZuZGVm
IE5ERUJVRworICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKKyAgICBBU1NFUlQoZGV2aWNl
KTsKKyAgICBpZiAoIWRldmljZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyNlbmRpZgorCisgICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKFdU
Rk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0
cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAg
ICByZXR1cm4geyB9OwpAQCAtOTYsOCArMTAzLDggQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb24K
ICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAot
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlKGRldmljZUlELCBuYW1lKQorTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VN
YWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaAppbmRleCAwYjZlMGFi
NDcyNTI0OTVjNWI1NTBiNjhmNGQyN2NlNzk5ZjE5MzE0Li45Yzc0ZGRlMTgzMWU0NzFhMTA3NjAx
YjAzZTY2NTQ3Yzc2OWEwOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOwotICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0KTsKIAogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
Q01TYW1wbGVCdWZmZXJGcm9tUGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZik7CiAgICAgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRnJvbUNHSW1hZ2UoQ0dJbWFnZVJl
ZikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXgg
NDMxNjNhOTVhMDhiMGMwMjZiZDc1MGYyOWE5MjEzMTZhYWNkNGMwMi4uMjNhMTY5NjJiNTM5NDE4
NGM1ZjY1NGU5ZWM1ZTFkMWZlOTBjZDI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYy5tbQpAQCAtNTMsOSArNTMsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAog
c3RhdGljIGNvbnN0IGludCB2aWRlb1NhbXBsZVJhdGUgPSA5MDAwMDsKIAotQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRl
dmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNl
ID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhkZXZpY2VJRCwgbmFt
ZSkpOworI2lmbmRlZiBOREVCVUcKKyAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CisgICAg
QVNTRVJUKGRldmljZSk7CisgICAgaWYgKCFkZXZpY2UpCisgICAgICAgIHJldHVybiB7IH07Cisj
ZW5kaWYKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNo
U2FsdCkpKTsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlcG9ydCBlcnJvciBtZXNzYWdlcwog
ICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFp
bnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTYzLDggKzcwLDggQEAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRl
dmljZUlELCBjb24KICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3Vy
Y2UpKTsKIH0KIAotTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAg
ICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKGRldmljZUlELCBuYW1lKQorTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJN
YWMuY3BwCmluZGV4IGY4ZWM2Yzg1NjcyMzhlNmUwNGNiNzA0MWNhMTE4MGI1NTAzYjViYzAuLjhi
ZTQwMjJmZThmYTgxMDY5NzAxMGQxYTBhZDYxZTBiOTgzM2ZiMTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKQEAgLTQ4LDEwICs0OCwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnlNYWMgZmlu
YWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBl
KCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKTsKLSAgICAgICAgcmV0dXJu
IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBjb25z
dHJhaW50cyk7CisgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0
cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3Ry
YWludHMpOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTc1LDExICs3NSwxMSBAQCBw
dWJsaWM6CiAgICAgICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkgewogICAgICAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICNpZiBQTEFURk9STShNQUMpCi0gICAg
ICAgICAgICByZXR1cm4gU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShkZXZp
Y2UucGVyc2lzdGVudElkKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJldHVybiBTY3Jl
ZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0
ZW50SWQoKSB9LCBjb25zdHJhaW50cyk7CiAjZW5kaWYKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICAgICAg
cmV0dXJuIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoZGV2aWNlLnBlcnNp
c3RlbnRJZCgpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gV2luZG93RGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgY29uc3RyYWludHMpOwogI2VuZGlmCiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6QXBwbGljYXRpb246CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6QnJvd3NlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
LmgKaW5kZXggNmUyZWFiODFjMDQ3NmQ0N2FjMjQ3OWE2OTgyNjA1OWRhN2U0YWUzNi4uZWM5MjBm
MDI0YTU2ODk5MjAwOTQ0OTQ0NDdkNzJiZWU2MzI5MGRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVl
bkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKQEAgLTQxLDEzICs0MSwxMyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjIDogcHVibGlj
IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhcHR1
cmVEZXZpY2U+IHNjcmVlbkNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKGNvbnN0IFN0cmlu
ZyYpOwogICAgIHN0YXRpYyB2b2lkIHNjcmVlbkNhcHR1cmVEZXZpY2VzKFZlY3RvcjxDYXB0dXJl
RGV2aWNlPiYpOwogCiBwcml2YXRlOgotICAgIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
KHVpbnQzMl90KTsKKyAgICBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50MzJfdCwg
U3RyaW5nJiYpOwogICAgIHZpcnR1YWwgflNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjKCk7
CiAKICAgICBzdGF0aWMgdm9pZCBkaXNwbGF5UmVjb25maWd1cmF0aW9uQ2FsbEJhY2soQ0dEaXJl
Y3REaXNwbGF5SUQsIENHRGlzcGxheUNoYW5nZVN1bW1hcnlGbGFncywgdm9pZCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCmluZGV4IGJmNmQ3MmFkOThk
ZDE2MTE3ODIwYzUwODdjMzhkNzIxYzU3MzdmYWIuLmEyMzhmMjhmOTc1Yjg0MDgzNDI3N2U4YjBj
MmRlZGMxOWNhYmU0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWMubW0KQEAgLTc2LDEyICs3NiwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxDR0RpcmVj
dERpc3BsYXlJRD4gdXBkYXRlRGlzcGxheUlEKENHRGlyZWN0RGlzcGxheUlEIGRpc3BsYQogICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIFNjcmVlbkRp
c3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBib29sIG9rOwogICAg
IGF1dG8gZGlzcGxheUlEID0gZGV2aWNlSUQudG9VSW50U3RyaWN0KCZvayk7CiAgICAgaWYgKCFv
aykgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkRpc3BsYXkgSUQgZG9lcyBub3QgY29u
dmVydCB0byAzMi1iaXQgaW50ZWdlciIpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNj
cmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGU6IERpc3BsYXkgSUQgZG9lcyBub3Qg
Y29udmVydCB0byAzMi1iaXQgaW50ZWdlciIpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IApAQCAtODksMTUgKzg5LDE1IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFNjcmVlbkRpc3BsYXlD
YXB0dXJlU291cmNlTWFjOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJCiAgICAgaWYgKCFh
Y3R1YWxEaXNwbGF5SUQpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMoYWN0dWFsRGlzcGxh
eUlELnZhbHVlKCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU2NyZWVuRGlz
cGxheUNhcHR1cmVTb3VyY2VNYWMoYWN0dWFsRGlzcGxheUlELnZhbHVlKCksICJTY3JlZW4iX3Mp
KTsgLy8gRklYTUU6IGZpZ3VyZSBvdXQgd2hhdCB0aXRsZSB0byB1c2UKICAgICBpZiAoY29uc3Ry
YWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAg
IHJldHVybiB7IH07CiAKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShz
b3VyY2UpKTsKIH0KIAotU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OlNjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjKHVpbnQzMl90IGRpc3BsYXlJRCkKLSAgICA6IERpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EoIlNjcmVlbiIpIC8vIEZJWE1FOiBmaWd1cmUgb3V0IHdoYXQgdG8gY2Fs
bCB0aGlzCitTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6U2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWModWludDMyX3QgZGlzcGxheUlELCBTdHJpbmcmJiB0aXRsZSkKKyAgICA6IERp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EoV1RGTW92ZSh0aXRsZSkpCiAgICAgLCBtX2Rpc3BsYXlJ
RChkaXNwbGF5SUQpCiB7CiB9CkBAIC0xMjIsNyArMTIyLDcgQEAgYm9vbCBTY3JlZW5EaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSgpCiAKICAgICBpZiAobV9kaXNw
bGF5SUQgIT0gYWN0dWFsRGlzcGxheUlELnZhbHVlKCkpIHsKICAgICAgICAgbV9kaXNwbGF5SUQg
PSBhY3R1YWxEaXNwbGF5SUQudmFsdWUoKTsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSglcCksIGRp
c3BsYXkgSUQgY2hhbmdlZCB0byAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PGludD4obV9kaXNwbGF5
SUQpKTsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNv
dXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbTogZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVkIiwg
c3RhdGljX2Nhc3Q8aW50PihtX2Rpc3BsYXlJRCkpOwogICAgIH0KIAogICAgIGlmICghbV9kaXNw
bGF5U3RyZWFtKSB7CkBAIC0xMzAsNyArMTMwLDcgQEAgYm9vbCBTY3JlZW5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSgpCiAgICAgICAgIGF1dG8gc2NyZWVuV2lk
dGggPSBDR0Rpc3BsYXlNb2RlR2V0UGl4ZWxzV2lkZShkaXNwbGF5TW9kZS5nZXQoKSk7CiAgICAg
ICAgIGF1dG8gc2NyZWVuSGVpZ2h0ID0gQ0dEaXNwbGF5TW9kZUdldFBpeGVsc0hpZ2goZGlzcGxh
eU1vZGUuZ2V0KCkpOwogICAgICAgICBpZiAoIXNjcmVlbldpZHRoIHx8ICFzY3JlZW5IZWlnaHQp
IHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVT
b3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0oJXApLCB1bmFibGUgdG8gZ2V0IHNjcmVlbiB3
aWR0aC9oZWlnaHQiLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW06IHVuYWJsZSB0
byBnZXQgc2NyZWVuIHdpZHRoL2hlaWdodCIpOwogICAgICAgICAgICAgY2FwdHVyZUZhaWxlZCgp
OwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0xNjgsNyArMTY4LDcg
QEAgYm9vbCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVh
bSgpCiAgICAgICAgIGF1dG8gc2l6ZSA9IGZyYW1lU2l6ZSgpOwogICAgICAgICBtX2Rpc3BsYXlT
dHJlYW0gPSBhZG9wdENGKENHRGlzcGxheVN0cmVhbUNyZWF0ZVdpdGhEaXNwYXRjaFF1ZXVlKG1f
ZGlzcGxheUlELCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIGtDVlBpeGVsRm9ybWF0VHlw
ZV80MjBZcENiQ3I4UGxhbmFyLCBzdHJlYW1PcHRpb25zLmdldCgpLCBtX2NhcHR1cmVRdWV1ZS5n
ZXQoKSwgbV9mcmFtZUF2YWlsYWJsZUJsb2NrKSk7CiAgICAgICAgIGlmICghbV9kaXNwbGF5U3Ry
ZWFtKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0
dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKCVwKSwgQ0dEaXNwbGF5U3RyZWFtQ3Jl
YXRlIGZhaWxlZCIsIHRoaXMpOworICAgICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3Jl
ZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbTogQ0dEaXNwbGF5
U3RyZWFtQ3JlYXRlIGZhaWxlZCIpOwogICAgICAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0yMjcsNyArMjI3LDcgQEAgdm9p
ZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKCkKIAog
ICAgIGlmIChtX2Rpc3BsYXlJRCAhPSBhY3R1YWxEaXNwbGF5SUQudmFsdWUoKSkgewogICAgICAg
ICBtX2Rpc3BsYXlJRCA9IGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpOwotICAgICAgICBSRUxFQVNF
X0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlT
dHJlYW0oJXApLCBkaXNwbGF5IElEIGNoYW5nZWQgdG8gJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDxp
bnQ+KG1fZGlzcGxheUlEKSk7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlz
cGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbTogZGlzcGxheSBJRCBjaGFu
Z2VkIHRvICVkIiwgc3RhdGljX2Nhc3Q8aW50PihtX2Rpc3BsYXlJRCkpOwogICAgIH0KIAogICAg
IGlmICghbV9kaXNwbGF5U3RyZWFtICYmICFjcmVhdGVEaXNwbGF5U3RyZWFtKCkpCkBAIC0yMzUs
NyArMjM1LDcgQEAgdm9pZCBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNw
bGF5U3RyZWFtKCkKIAogICAgIGF1dG8gZXJyID0gQ0dEaXNwbGF5U3RyZWFtU3RhcnQobV9kaXNw
bGF5U3RyZWFtLmdldCgpKTsKICAgICBpZiAoZXJyKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1l
ZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbSgl
cCksIENHRGlzcGxheVN0cmVhbVN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkIiwgdGhpcywgc3Rh
dGljX2Nhc3Q8aW50PihlcnIpKTsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5E
aXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtOiBDR0Rpc3BsYXlTdHJl
YW1TdGFydCBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIHN0YXRpY19jYXN0PGludD4oZXJyKSk7CiAg
ICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3OCwx
MSArMjc4LDExIEBAIHZvaWQgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmZyYW1lQXZh
aWxhYmxlKENHRGlzcGxheVN0cmVhbUZyYW1lU3RhdHVzIHN0CiAgICAgICAgIGJyZWFrOwogCiAg
ICAgY2FzZSBrQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXNGcmFtZUJsYW5rOgotICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpmcmFtZUF2
YWlsYWJsZSglcCksIGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1c0ZyYW1lQmxhbmsiLCB0aGlz
KTsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYzo6ZnJhbWVBdmFpbGFibGU6IGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1c0ZyYW1lQmxh
bmsiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0
YXR1c1N0b3BwZWQ6Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNh
cHR1cmVTb3VyY2VNYWM6OmZyYW1lQXZhaWxhYmxlKCVwKSwga0NHRGlzcGxheVN0cmVhbUZyYW1l
U3RhdHVzU3RvcHBlZCIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVl
bkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpmcmFtZUF2YWlsYWJsZToga0NHRGlzcGxheVN0cmVh
bUZyYW1lU3RhdHVzU3RvcHBlZCIpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKaW5kZXggZDA1MzNmZjhhMzhjNDEx
YTZiY2E4YzNlNThjNzViNTdjNjg2MmMyMC4uMWM0ZDM3NjBmODhjZmY1ZmE3NGNkMjcwNjYwM2U2
OGExZDNkNmRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFj
LmgKQEAgLTQwLDEzICs0MCwxMyBAQCBjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogCiBj
bGFzcyBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0
aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKik7CiAKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiB3aW5k
b3dDYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0
aWMgdm9pZCB3aW5kb3dDYXB0dXJlRGV2aWNlcyhWZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKIAog
cHJpdmF0ZToKLSAgICBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50MzJfdCB3aW5k
b3dJRCwgU3RyaW5nJiYpOworICAgIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjKHVpbnQz
Ml90LCBTdHJpbmcmJik7CiAgICAgdmlydHVhbCB+V2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VN
YWMoKSA9IGRlZmF1bHQ7CiAKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gZ2VuZXJh
dGVGcmFtZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNl
TWFjLm1tCmluZGV4IGUxYWEwYmZkN2VhZDk4MDVkYmVlYmRiODljMWJkMmE4YzQ2MjlkMTEuLjFk
NmExN2NkNDEzOGZkMWQ1NjcyYmY5MzI5MzcwNGJmMTAxNDE5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNv
dXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0
aWMgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gd2luZG93RGVzY3JpcHRpb24oQ0dXaW5kb3dJ
RCBpZCkKICAgICByZXR1cm4gY2hlY2tlZF9jZl9jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJh
eUdldFZhbHVlQXRJbmRleCh3aW5kb3dzLmdldCgpLCAwKSk7CiB9CiAKLUNhcHR1cmVTb3VyY2VP
ckVycm9yIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiB3aW5kb3dJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJl
U291cmNlT3JFcnJvciBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKFN0cmlu
ZyYmIHdpbmRvd0lELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAg
ICBib29sIG9rOwogICAgIGF1dG8gYWN0dWFsSUQgPSB3aW5kb3dJRC50b1VJbnRTdHJpY3QoJm9r
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggY2MzNTQ2MTMzNWFlMDdhNzdmZDFjMTE2ZGJkMzAxMDY1
YjNjOTU3ZC4uM2Y0NGZkNjM0YzgzMDQ2M2M0YmYyNDE0MDhmMjlmYzU0YjhjYWRlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZS5jcHAKQEAgLTQzLDE0ICs0MywxNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAj
aWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykgJiYgIShVU0UoR1NUUkVBTUVSKSAm
JiBVU0UoTElCV0VCUlRDKSkKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVy
cm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cykKIHsKKyNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNl
SUQpOwogICAgIEFTU0VSVChkZXZpY2UpOwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1
cm4geyB9OworI2VuZGlmCiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2UpLCBkZXZpY2VJRCwgbmFtZSkpOworICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZN
b3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKICAgICBp
ZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykp
CiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTU4LDExICs2MCwxMSBAQCBDYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2
aWNlSUQsIGNvbgogfQogI2VuZGlmCiAKLU1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5h
bWUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRldmljZUlELCBSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbywgbmFtZSkKK01vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShoYXNoU2FsdCkpCiAgICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJk1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjp0aWNrKQogewotICAgIGF1dG8gZGV2aWNlID0gTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmlj
ZUlEKTsKKyAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpt
b2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChwZXJzaXN0ZW50SUQoKSk7CiAgICAgQVNTRVJUKGRl
dmljZSk7CiAgICAgbV9kZXZpY2UgPSAqZGV2aWNlOwogfQpAQCAtNzgsNyArODAsNyBAQCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpz
ZXR0aW5ncygpCiB7CiAgICAgaWYgKCFtX2N1cnJlbnRTZXR0aW5ncykgewogICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7Ci0gICAgICAgIHNldHRpbmdzLnNldERl
dmljZUlkKGlkKCkpOworICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsK
ICAgICAgICAgc2V0dGluZ3Muc2V0Vm9sdW1lKHZvbHVtZSgpKTsKICAgICAgICAgc2V0dGluZ3Mu
c2V0RWNob0NhbmNlbGxhdGlvbihlY2hvQ2FuY2VsbGF0aW9uKCkpOwogICAgICAgICBzZXR0aW5n
cy5zZXRTYW1wbGVSYXRlKHNhbXBsZVJhdGUoKSk7CkBAIC0xMDAsNyArMTAyLDcgQEAgY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNhcGFiaWxpdGllcygpCiAgICAgaWYgKCFtX2NhcGFiaWxpdGllcykgewogICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0aW5ncygpLnN1cHBv
cnRlZENvbnN0cmFpbnRzKCkpOwogCi0gICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChp
ZCgpKTsKKyAgICAgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwogICAg
ICAgICBjYXBhYmlsaXRpZXMuc2V0Vm9sdW1lKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMC4wLCAx
LjApKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNldEVjaG9DYW5jZWxsYXRpb24oUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6RWNob0NhbmNlbGxhdGlvbjo6UmVhZFdyaXRlKTsKICAg
ICAgICAgY2FwYWJpbGl0aWVzLnNldFNhbXBsZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSg0
NDEwMCwgNDgwMDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRleCA5MWU4YzAzNmJkZDdhMzNkNjI0OTIwN2Ux
M2ZkMzdmMmJhMDJlYWI2Li4xZDFkNWIxODY3MjdhOWViODQyYjA5YmRlYmEyNjk2YWNjZTc4NGY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZS5oCkBAIC00MiwxMiArNDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJj
ZSB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKik7CiAKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgp
OwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoY29uc3QgU3RyaW5n
JiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQp
OwogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICB2b2lkIHN0b3BQ
cm9kdWNpbmdEYXRhKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGY2
OTcyODU2OGIzMzFmYmNkOTQwNzYyOGVkYjYwNTM1YjFhMDI1ZTMuLjI5ZWUzYjBhYzk5YTJkMjli
MGViYmYzNzRlNTU3OGU2MmNlZjZiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBA
IC04MywxNSArODMsMTQgQEAgc3RhdGljIGlubGluZSBWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiBk
ZWZhdWx0RGV2aWNlcygpCiAgICAgfTsKIH0KIAotCiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZUZhY3RvcnkgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZp
bmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKICAgICAgICAgQVNTRVJUKGRl
dmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhKTsKICAgICAg
ICAgQVNTRVJUKE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0
aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEsIGRldmljZS5w
ZXJzaXN0ZW50SWQoKSkpOwogCi0gICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlLmxhYmVsKCksIGNvbnN0cmFp
bnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0o
SU9TKQpAQCAtMTEzLDcgKzExMiw3IEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNoIChkZXZpY2Uu
dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVu
OgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKLSAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJz
aXN0ZW50SWQoKSwgZGV2aWNlLmxhYmVsKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJz
aXN0ZW50SWQoKSB9LCBTdHJpbmcgeyB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBjb25z
dHJhaW50cyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpBcHBsaWNhdGlvbjoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpCcm93c2VyOgpAQCAtMTMwLDEyICsxMjksMTIgQEAgcHVibGljOgogCiBjbGFz
cyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAg
IHsKICAgICAgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6TWljcm9waG9uZSk7CiAgICAgICAgIEFTU0VSVChNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6TWljcm9waG9uZSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSk7CiAKLSAgICAgICAg
cmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpLCBkZXZpY2UubGFiZWwoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkg
fSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFp
bnRzKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDVkM2ZiOTEzNzgzNTA5NjY1
OWFiOTJjYzMyODkwYTAwNzg1NDQ5NjUuLmQ0NzA2YmM1ZmRjYmE2MjRkODU2NDJkYjdlZjY4ODRj
Y2Q0NWEwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00OSwxNCArNDksMTYgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmICEo
VVNFKEdTVFJFQU1FUikgJiYgVVNFKExJQldFQlJUQykpCi1DYXB0dXJlU291cmNlT3JFcnJvciBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitD
YXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CisjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8g
ZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVy
c2lzdGVudElEKGRldmljZUlEKTsKICAgICBBU1NFUlQoZGV2aWNlKTsKICAgICBpZiAoIWRldmlj
ZSkKICAgICAgICAgcmV0dXJuIHsgfTsKKyNlbmRpZgogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9w
dFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlKSwgZGV2aWNl
SUQsIG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFz
aFNhbHQpKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50
cygqY29uc3RyYWludHMpKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC02NCwxMSArNjYsMTEg
QEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIGRldmljZUlELCBjb24KIH0KICNlbmRpZgogCi1Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwg
Y29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShkZXZpY2VJRCwg
bmFtZSkKK01vY2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAg
OiBSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUobmFtZSksIFdURk1vdmUoZGV2aWNlSUQpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fZW1pdEZyYW1lVGltZXIoUnVuTG9vcDo6Y3VycmVu
dCgpLCB0aGlzLCAmTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlRnJhbWUpCiB7Ci0g
ICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0Rldmlj
ZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOworICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKHBlcnNpc3Rl
bnRJRCgpKTsKICAgICBBU1NFUlQoZGV2aWNlKTsKICAgICBtX2RldmljZSA9ICpkZXZpY2U7CiAK
QEAgLTEyMCw3ICsxMjIsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
JiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKICAgICBpZiAoIW1fY2Fw
YWJpbGl0aWVzKSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2Fw
YWJpbGl0aWVzKHNldHRpbmdzKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CiAKLSAgICAgICAg
Y2FwYWJpbGl0aWVzLnNldERldmljZUlkKGlkKCkpOworICAgICAgICBjYXBhYmlsaXRpZXMuc2V0
RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAgICAgICAgIGlmIChtb2NrQ2FtZXJhKCkpIHsKICAgICAg
ICAgICAgIGNhcGFiaWxpdGllcy5hZGRGYWNpbmdNb2RlKFdURjo6Z2V0PE1vY2tDYW1lcmFQcm9w
ZXJ0aWVzPihtX2RldmljZS5wcm9wZXJ0aWVzKS5mYWNpbmdNb2RlKTsKICAgICAgICAgICAgIHVw
ZGF0ZUNhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMpOwpAQCAtMTU0LDcgKzE1Niw3IEBAIGNvbnN0
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNl
dHRpbmdzKCkKICAgICBzZXR0aW5ncy5zZXRIZWlnaHQoc2l6ZS5oZWlnaHQoKSk7CiAgICAgaWYg
KGFzcGVjdFJhdGlvKCkpCiAgICAgICAgIHNldHRpbmdzLnNldEFzcGVjdFJhdGlvKGFzcGVjdFJh
dGlvKCkpOwotICAgIHNldHRpbmdzLnNldERldmljZUlkKGlkKCkpOworICAgIHNldHRpbmdzLnNl
dERldmljZUlkKGhhc2hlZElkKCkpOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzIHN1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgIHN1cHBvcnRlZENvbnN0cmFp
bnRzLnNldFN1cHBvcnRzRGV2aWNlSWQodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggMTQ2ZDFhYTEz
NTA0MDE3YjUwNmUyNDI0MTEyNDgwNTEyNzMzOGU1ZS4uYmQzYzNlNDUxOWFmN2U4NWZjY2IyNjk4
MzllNWRiNmU4OTMwY2Y1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDgsMTAgKzQ4LDEwIEBAIGNsYXNz
IEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlIDogcHVibGlj
IFJlYWx0aW1lVmlkZW9Tb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5n
JiBuYW1lKTsKKyAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCiAgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZVNhbXBsZUJ1ZmZlcigpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggODg2MDU5Mjc1NjkwNjUzYTFjNWI5MTlhZjc4YTUx
ZGVlMTY5NzA3OS4uOTJkZmIxYjZhZjA4MWFlYmM5ZjNlMTM5MTZkMWU3NTFlNjYyNjE5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0y
NzYwLDcgKzI3NjAsNiBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpNZQogewogICAgIGVuY29kZXIg
PDwgY29uc3RyYWludC5tYW5kYXRvcnlDb25zdHJhaW50cwogICAgICAgICA8PCBjb25zdHJhaW50
LmFkdmFuY2VkQ29uc3RyYWludHMKLSAgICAgICAgPDwgY29uc3RyYWludC5kZXZpY2VJREhhc2hT
YWx0CiAgICAgICAgIDw8IGNvbnN0cmFpbnQuaXNWYWxpZDsKIH0KIApAQCAtMjc3Miw3ICsyNzcx
LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHM+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgV2ViQ29yZTo6TWVkaWFDb24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzID0gV1RGTW92ZSgqbWFuZGF0b3J5Q29u
c3RyYWludHMpOwogICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5hZHZhbmNl
ZENvbnN0cmFpbnRzKQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5kZXZp
Y2VJREhhc2hTYWx0KQogICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5pc1Zh
bGlkKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA3MWE2OTFm
MWUxZGJiOGIyNDZmN2U5N2QzZDg2M2NmZDQ2N2I2ZjVkLi43NmE4ZWZmM2JiZTA1YWY3M2U3ZmQ1
ZGI4YmFhNjEzZGM2OWQwZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMTI1
LDE1ICsxMjUsMTUgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkoKQogICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIGJvb2wmIHN1Y2Nl
ZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50
NjRfdCBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxp
ZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRp
bmdzKQogewogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dp
dGNoICh0eXBlKSB7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShk
ZXZpY2UsICZjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmY29uc3RyYWludHMpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OlZpZGVvOgotICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KGRldmljZSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVv
Q2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sICZjb25zdHJhaW50cyk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6Tm9uZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKaW5kZXggZmYwYWU4YjFiYjlkYTdhNmQ1Yjc5ZGQ3ZmM2ODkwMTI4ZjgxNjkyNi4u
NTFiOGU3N2Q5OGRkMTgzNWNkYWI5MDQyMzY1YmMwNmVjY2IxZTQ4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wm
IHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyYpOworICAgIHZvaWQgY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1
Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIGNhcGFi
aWxpdGllcyh1aW50NjRfdCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjQ4
YzQwZmYwMDcxY2EwODc3N2NhZjczZjA4NmQ5YzY3MmUwMmRiMi4uYmQyMTliYzk2MDhkMDc0MDY5
MTkyMjYwNDNjMDJhNzJhZWEzNWI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
IAogbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSB7Ci0gICAgQ3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZSB0eXBlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50
cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQorICAgIENyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUg
dHlwZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBj
b25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQogICAgIFN0YXJ0
UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRf
dCBpZCkKICAgICBDYXBhYmlsaXRpZXModWludDY0X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAppbmRleCAxODVjMDc0YzlmZDZlZGFkZDk5MWU3NmFiZWFmZTU5ODg0
OTY0NTdjLi42Mjc3NGM5YWI2ZmNjMjU0MDFhZjU1OTg1ZWMwMWI1NDQ5YzBmYzg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0zMzYsOSArMzM2LDYgQEAgdm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSgKICAgICAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICAgICAgbG9jYWxVc2VyUmVxdWVzdC5hdWRpb0Nv
bnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci0g
ICAgICAgIGxvY2FsVXNlclJlcXVlc3QudmlkZW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0
ID0gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OwotCiAgICAgICAgIHN5bmNXaXRoV2ViQ29yZVBy
ZWZzKCk7CiAgICAgICAgIAogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3ZlKHZhbGlkSGFuZGxlciks
IFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGxvY2FsVXNlclJlcXVlc3QpLCBXVEZN
b3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXgg
N2M3ZjY2Nzc0OTRiYWYzYjU2M2M4ODNjMWFlMjExYmFkZDE0YjFkYy4uY2I2ZDZjN2VlOWFjNWMx
ZDVmMGJjMzhkZTIxNWEzOWQ2ZTJmZDU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC01MSw4
ICs1MSw4IEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0U2Vzc2lvbklEKCkKIAogY2xhc3MgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsK
IHB1YmxpYzoKLSAgICBTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIG5hbWUsIHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYg
bWFuYWdlcikKLSAgICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZUlELCB0eXBlLCBu
YW1lKQorICAgIFNvdXJjZShTdHJpbmcmJiBzb3VyY2VJRCwgVHlwZSB0eXBlLCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDY0X3QgaWQsIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyJiBtYW5hZ2VyKQorICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UodHlwZSwgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShzb3VyY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICAgICAs
IG1faWQoaWQpCiAgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgICAgICwgbV9yaW5n
QnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKQpA
QCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxp
emUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyCiAgICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7
CiB9CiAKLVdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK1dlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZSBzb3VyY2VUeXBlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgaWYgKCFjb25zdHJhaW50cykKICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTE4NiwxMCArMTg2LDEwIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0
CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwogICAgIFN0cmluZyBl
cnJvck1lc3NhZ2U7CiAgICAgYm9vbCBzdWNjZWVkZWQ7Ci0gICAgaWYgKCFtX3Byb2Nlc3Muc2Vu
ZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBzb3VyY2VU
eXBlLCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBs
eShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKKyAgICBpZiAoIW1fcHJv
Y2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2Us
IHNvdXJjZVR5cGUsIGhhc2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAw
KSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKIAotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBzb3VyY2VUeXBl
LCBzZXR0aW5ncy5sYWJlbCgpLCBpZCwgKnRoaXMpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgc291cmNlVHlwZSwgU3RyaW5nIHsg
c2V0dGluZ3MubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0aGlzKSk7CiAgICAg
c291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgbV9zb3VyY2VzLnNl
dChpZCwgc291cmNlLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3Vy
Y2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDZhN2QwZDIy
YTBmMDk4NTMyMzA3YjJlNGUwOTdmN2Y4ZDUwYzc0YjguLjM3NjMyZDU5ZTZlZjhjYWFjODA2OTEz
ZTUwMzVkYmNhNGM4ZDQ1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC01NSw5ICs1NSw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmKSBmaW5hbDsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgZmFj
dG9yaWVzCi0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0
ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbywgY29uc3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZp
bmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgY29uc3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopOworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShk
ZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3Zl
KGhhc2hTYWx0KSwgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9y
RXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRl
dmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUo
aGFzaFNhbHQpLCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351346</attachid>
            <date>2018-10-01 23:41:53 -0700</date>
            <delta_ts>2018-10-02 03:04:10 -0700</delta_ts>
            <desc>Updated patchh</desc>
            <filename>bug-190142-20181002084151.patch</filename>
            <type>text/plain</type>
            <size>100761</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVlMzVhOWNiNTYxN2Vk
ZTk4ODNkYjU2YmQyZTZhYzJjZGIyZTBkMC4uNGFiMjliMjRkNjE0NGIwYTRiMWY5OWUxM2NjNjlj
ZjhlYTgzYWI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MiBAQAorMjAxOC0xMC0wMSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFJlYWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVy
ZU1lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2s6OlNvdXJjZTo6U291cmNlKTogVXBkYXRlIG9yZGVyIG9mIHBhcmFtZXRl
cnMgcGFzc2VkCisgICAgICAgIHRvIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFEZXZpY2VzUmVxdWVzdDo6c3RhcnQpOiBBU1NFUlQgaWYgZG9jdW1lbnQuZGV2aWNlSURIYXNo
U2FsdCBpcyBub3QgdGhlIHNhbWUKKyAgICAgICAgYXMgcGFzc2VkIHNhbHQuCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MgY29uc3QpOiBEb24ndCBuZWVkIHRv
IGhhc2ggSUQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRDYXBhYmls
aXRpZXMgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suaWRsOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmFsbG93KTogUGFz
cyBoYXNoIHNhbHQgdG8gY3JlYXRlTWVkaWFTdHJlYW0uCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVS
ZWNlaXZlckZvclNvdXJjZSk6IFVwZGF0ZSBvcmRlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZAorICAg
ICAgICB0byBiYXNlIGNsYXNzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9T
b3VyY2U6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2UpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZSk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNl
KTogQ2FsY3VsYXRlIGhhc2hlZCBJRC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNlbGVjdFNldHRpbmdzKTogVXNlIG1faGFzaGVkSUQuCisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpoYXNoZWRJZCBjb25zdCk6IE5ldy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmRldmljZUlESGFzaFNhbHQgY29uc3QpOiBOZXcu
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVh
dGVNZWRpYVN0cmVhbSk6IFRha2UgaGFzaCBzYWx0LCBwYXNzIGl0IHdoZW4gY3JlYXRpbmcKKyAg
ICAgICAgYSBzb3VyY2UuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNlOjpSZWFs
dGltZVZpZGVvU291cmNlKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmg6CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldyYXBwZWRN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6V3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6Ok1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MpOiBVc2Ug
aGFzaGVkSWQgdG8gc2V0IGRldmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6IFVwZGF0ZSBwYXJhbWV0ZXJzLgor
ICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y2FwYWJpbGl0aWVzKTogVXNlIGhhc2hlZElkIHRvIHNldCBkZXZpY2UgSUQuCisgICAgICAg
IChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncyk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaDoK
KworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1
ZGlvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyk6IERpdHRvLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKTogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKTogVXBkYXRlIGxvZ2dpbmcuCisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6
ZnJhbWVBdmFpbGFibGUpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OldpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUpOiBVcGRh
dGUgcGFyYW1ldGVycy4KKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0dGluZ3MpOiBVc2UgaGFzaGVkSWQgdG8gc2V0IGRl
dmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjYXBh
YmlsaXRpZXMpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1
ZGlvU291cmNlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcDoKKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZSk6IFVwZGF0ZSBwYXJhbWV0ZXJzLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKTogVXNl
IGhhc2hlZElkIHRvIHNldCBkZXZpY2UgSUQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6c2V0dGluZ3MpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmg6CisKIDIwMTgtMDktMzAgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIFBvc2l0aW9uIGluc3RlYWQgb2YgUmFu
Z2UgaW4gY3JlYXRlTWFya3VwSW50ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWYzNzU0NmQzNzUzZDliNmE5
NDhmNzU3ZjhmMTA4NjEwZDEyZmFkMS4uNDMxNDE5OTY1NTBjZDMyMDc5ZDAxZWVlOWFmNGY4ZTE4
ODI5YmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0xMC0wMSAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIFJl
YWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmRlY29kZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJj
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
OgorCiAyMDE4LTA5LTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gQ2xlYW4gdXAgUmVhbHRpbWVNZWRpYVNvdXJjZSBzZXR0
aW5ncyBjaGFuZ2UgaGFuZGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5j
cHAKaW5kZXggNzhmOWZiMjkwZmU1M2Y2YjE0MzU2ZTVjZDAyZDZkNDE1ZTc3MWU3YS4uNTZkZjhh
NjZkZWFkM2UwNDljNjI1YzdhYzQxOTFjNGE2MjhmNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgUmVmPENhbnZhc0NhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U+IENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOjpT
b3VyY2UKIAogLy8gRklYTUU6IEdpdmUgc291cmNlIGlkIGFuZCBuYW1lCiBDYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjazo6U291cmNlOjpTb3VyY2UoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZh
cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgZnJhbWVSZXF1ZXN0UmF0ZSkKLSAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoU3RyaW5nKCksIFR5cGU6OlZpZGVvLCBTdHJpbmcoKSkKKyAgICA6IFJl
YWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sICJDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjayJfcykKICAgICAsIG1fZnJhbWVSZXF1ZXN0UmF0ZShXVEZNb3ZlKGZyYW1lUmVxdWVzdFJh
dGUpKQogICAgICwgbV9yZXF1ZXN0RnJhbWVUaW1lcigqdGhpcywgJlNvdXJjZTo6cmVxdWVzdEZy
YW1lVGltZXJGaXJlZCkKICAgICAsIG1fY2FudmFzQ2hhbmdlZFRpbWVyKCp0aGlzLCAmU291cmNl
OjpjYXB0dXJlQ2FudmFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKaW5kZXggZTJjNWJmNzBhMjY3MjRm
ZDA1N2M5YTZhZTQ2MWFkNWFkYTUzZjllMC4uZDlkODM4YmY4YzcyMTJjZGE2NWQxN2I0OWVmYjlh
MTVlYzRmZDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCkBAIC0xMTcsNyArMTE3LDggQEAgdm9p
ZCBNZWRpYURldmljZXNSZXF1ZXN0OjpzdGFydCgpCiAgICAgICAgIGlmICghc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7CisgICAgICAgIEFTU0VSVChkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0
KCkuaXNFbXB0eSgpIHx8IGRvY3VtZW50LmRldmljZUlESGFzaFNhbHQoKSA9PSBkZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQpOwogICAgICAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKICAgICAgICAgVmVjdG9yPFJlZjxNZWRpYURldmlj
ZUluZm8+PiBkZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggYWNmZWNmODRlMzU2MDRlYTBlMzUw
MTQwOWRmZmI0YWNkMTExODMwMy4uNzA1MzNhZDUxZWQ4MWE1NjljMDJlNTVkYWViYmJiN2U5ZDRj
MTA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBNZWRpYVN0cmVh
bVRyYWNrOjpzdG9wVHJhY2soU3RvcE1vZGUgbW9kZSkKICAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOwogfQogCi1NZWRpYVN0cmVhbVRyYWNrOjpUcmFja1NldHRpbmdzIE1lZGlhU3RyZWFt
VHJhY2s6OmdldFNldHRpbmdzKERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK01lZGlhU3RyZWFt
VHJhY2s6OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoKSBjb25z
dAogewogICAgIGF1dG8mIHNldHRpbmdzID0gbV9wcml2YXRlLT5zZXR0aW5ncygpOwogICAgIFRy
YWNrU2V0dGluZ3MgcmVzdWx0OwpAQCAtMjIwLDkgKzIyMCw5IEBAIE1lZGlhU3RyZWFtVHJhY2s6
OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoRG9jdW1lbnQmIGRv
Y3VtZW50CiAgICAgaWYgKHNldHRpbmdzLnN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbigpKQogICAg
ICAgICByZXN1bHQuZWNob0NhbmNlbGxhdGlvbiA9IHNldHRpbmdzLmVjaG9DYW5jZWxsYXRpb24o
KTsKICAgICBpZiAoc2V0dGluZ3Muc3VwcG9ydHNEZXZpY2VJZCgpKQotICAgICAgICByZXN1bHQu
ZGV2aWNlSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3Ry
aW5nV2l0aFNhbHQoc2V0dGluZ3MuZGV2aWNlSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2Fs
dCgpKTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gc2V0dGluZ3MuZGV2aWNlSWQoKTsKICAg
ICBpZiAoc2V0dGluZ3Muc3VwcG9ydHNHcm91cElkKCkpCi0gICAgICAgIHJlc3VsdC5ncm91cElk
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhT
YWx0KHNldHRpbmdzLmdyb3VwSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAg
ICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBzZXR0aW5ncy5ncm91cElkKCk7CiAKICAgICAvLyBGSVhN
RTogc2hvdWxkbid0IHRoaXMgaW5jbHVkZSBkaXNwbGF5U3VyZmFjZSBhbmQgbG9naWNhbFN1cmZh
Y2U/CiAKQEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgVmVjdG9yPGJvb2w+IGNhcGFiaWxpdHlC
b29sZWFuVmVjdG9yKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLU1lZGlhU3RyZWFtVHJhY2s6OlRyYWNrQ2FwYWJpbGl0aWVzIE1l
ZGlhU3RyZWFtVHJhY2s6OmdldENhcGFiaWxpdGllcyhEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0
CitNZWRpYVN0cmVhbVRyYWNrOjpUcmFja0NhcGFiaWxpdGllcyBNZWRpYVN0cmVhbVRyYWNrOjpn
ZXRDYXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIGF1dG8gY2FwYWJpbGl0aWVzID0gbV9wcml2
YXRlLT5jYXBhYmlsaXRpZXMoKTsKICAgICBUcmFja0NhcGFiaWxpdGllcyByZXN1bHQ7CkBAIC0z
MTAsOSArMzEwLDkgQEAgTWVkaWFTdHJlYW1UcmFjazo6VHJhY2tDYXBhYmlsaXRpZXMgTWVkaWFT
dHJlYW1UcmFjazo6Z2V0Q2FwYWJpbGl0aWVzKERvY3VtZW50JgogICAgIGlmIChjYXBhYmlsaXRp
ZXMuc3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKCkpCiAgICAgICAgIHJlc3VsdC5lY2hvQ2FuY2Vs
bGF0aW9uID0gY2FwYWJpbGl0eUJvb2xlYW5WZWN0b3IoY2FwYWJpbGl0aWVzLmVjaG9DYW5jZWxs
YXRpb24oKSk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0RldmljZUlkKCkpCi0gICAg
ICAgIHJlc3VsdC5kZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmhhc2hTdHJpbmdXaXRoU2FsdChjYXBhYmlsaXRpZXMuZGV2aWNlSWQoKSwgZG9jdW1lbnQu
ZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gY2FwYWJpbGl0
aWVzLmRldmljZUlkKCk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0dyb3VwSWQoKSkK
LSAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQoY2FwYWJpbGl0aWVzLmdyb3VwSWQoKSwgZG9jdW1l
bnQuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBjYXBhYmls
aXRpZXMuZ3JvdXBJZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXgg
NGIwMGUwNDA0OWQ0MGZhMjRiMDhhZWQwMGIxYTVlYmU0NGE5NDcwMC4uZTM0NmY4MTNlNmNmYjlh
NzAyYWM1ZTE2ODVkMzMzZWQyYTA1Y2JmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTEwNSw3ICsxMDUsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBkZXZpY2VJZDsKICAgICAgICAgU3RyaW5nIGdyb3Vw
SWQ7CiAgICAgfTsKLSAgICBUcmFja1NldHRpbmdzIGdldFNldHRpbmdzKERvY3VtZW50JikgY29u
c3Q7CisgICAgVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpIGNvbnN0OwogCiAgICAgc3RydWN0
IFRyYWNrQ2FwYWJpbGl0aWVzIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxMb25nUmFuZ2U+IHdp
ZHRoOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIGRldmljZUlk
OwogICAgICAgICBTdHJpbmcgZ3JvdXBJZDsKICAgICB9OwotICAgIFRyYWNrQ2FwYWJpbGl0aWVz
IGdldENhcGFiaWxpdGllcyhEb2N1bWVudCYpIGNvbnN0OworICAgIFRyYWNrQ2FwYWJpbGl0aWVz
IGdldENhcGFiaWxpdGllcygpIGNvbnN0OwogCiAgICAgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFp
bnRzJiBnZXRDb25zdHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH0KICAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29u
c3RyYWludHM+JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKaW5k
ZXggMmI3MWNjZTQ0N2IwZTliY2NjMzI3ZTY2ZjUzMjBhYzg1YzUzYTJhNS4uYmNmYWM4ZjljOWU1
NjAxODI0Nzk4MTA0YzcxMjhkOGNlOWM2ZDdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCkBAIC00Nyw5ICs0
Nyw5IEBAIGVudW0gTWVkaWFTdHJlYW1UcmFja1N0YXRlIHsgImxpdmUiLCAiZW5kZWQiIH07CiAg
ICAgTWVkaWFTdHJlYW1UcmFjayBjbG9uZSgpOwogICAgIFtJbXBsZW1lbnRlZEFzPXN0b3BUcmFj
a10gdm9pZCBzdG9wKCk7CiAKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tDYXBh
YmlsaXRpZXMgZ2V0Q2FwYWJpbGl0aWVzKCk7CisgICAgTWVkaWFUcmFja0NhcGFiaWxpdGllcyBn
ZXRDYXBhYmlsaXRpZXMoKTsKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludHMgZ2V0Q29uc3RyYWlu
dHMoKTsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0
aW5ncygpOworICAgIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpOwogICAgIFByb21p
c2U8dm9pZD4gYXBwbHlDb25zdHJhaW50cyhvcHRpb25hbCBNZWRpYVRyYWNrQ29uc3RyYWludHMg
Y29uc3RyYWludHMpOwogCiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm92ZXJjb25zdHJh
aW5lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDEyNWQ2ZDE3ZjQ0YjgxM2IwNTMxMGM5ODMyZDZmZjJm
YjZiM2FmYTAuLjg2NjE5Y2Q0ZTI1NTEyNWNkNmIyNzAxZjdiZjk1OTYxMmJkNDBjOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFS
ZXF1ZXN0LmNwcApAQCAtMzAwLDE2ICszMDAsMTYgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0Ojph
bGxvdyhDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0QK
ICAgICAgICAgbV9wZW5kaW5nQWN0aXZhdGlvbk1lZGlhU3RyZWFtID0gUGVuZGluZ0FjdGl2YXRp
b25NZWRpYVN0cmVhbTo6Y3JlYXRlKFdURk1vdmUocHJvdGVjdG9yKSwgKnRoaXMsIFdURk1vdmUo
c3RyZWFtKSk7CiAgICAgfTsKIAotICAgIG1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmRldmlj
ZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci0gICAgbV9yZXF1ZXN0LnZp
ZGVvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRpZmll
ckhhc2hTYWx0KTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQuZGV2aWNlSURIYXNo
U2FsdCgpLmlzRW1wdHkoKSB8fCBkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0KCkgPT0gZGV2aWNl
SWRlbnRpZmllckhhc2hTYWx0KTsKKyAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92
ZShhdWRpb0RldmljZSksIFdURk1vdmUodmlkZW9EZXZpY2UpLCBtX3JlcXVlc3QpOworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKFdU
Rk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCksIFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgbV9yZXF1ZXN0KTsKIAogICAg
IGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKICNpZiBF
TkFCTEUoV0VCX1JUQykKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50
LnBhZ2UoKSkKICAgICAgICAgcGFnZS0+cnRjQ29udHJvbGxlcigpLmRpc2FibGVJQ0VDYW5kaWRh
dGVGaWx0ZXJpbmdGb3JEb2N1bWVudChkb2N1bWVudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDYwNWYy
ZTc3MGFmNWRhMTNiYzQyODY3YTliMDlkZTYyMmE0YmNjMGMuLjUxYmZlYTBmNjRlMjlmODRkN2I3
ZGZjNWIxZjMwOWIzNWI4Y2FmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMjMxLDcgKzIzMSw4IEBAIHZvaWQgTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5k
aWRhdGUmIGNhbmRpZGF0CiAKIFJlZjxSVENSdHBSZWNlaXZlcj4gTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpjcmVhdGVSZWNlaXZlckZvclNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4mJiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxSVENSdHBSZWNlaXZlckJhY2tlbmQ+JiYg
YmFja2VuZCkKIHsKLSAgICBhdXRvIHJlbW90ZVRyYWNrUHJpdmF0ZSA9IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpLCBTdHJpbmcgeyBzb3VyY2UtPmlkKCkg
fSk7CisgICAgU3RyaW5nIHRyYWNrSUQgPSBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpOworICAgIGF1
dG8gcmVtb3RlVHJhY2tQcml2YXRlID0gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShX
VEZNb3ZlKHNvdXJjZSksIFdURk1vdmUodHJhY2tJRCkpOwogICAgIGF1dG8gcmVtb3RlVHJhY2sg
PSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKm1fcGVlckNvbm5lY3Rpb24uc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBXVEZNb3ZlKHJlbW90ZVRyYWNrUHJpdmF0ZSkpOwogCiAgICAgcmV0dXJu
IFJUQ1J0cFJlY2VpdmVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocmVtb3RlVHJhY2spLCBXVEZN
b3ZlKGJhY2tlbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDU2ZjM3YzExNjZiNmJmOWU4
NjNjNDI5Njc4NzA5YzQ4YmM2MDI2MjQuLmZjOGFlNjZjYjUzMmRmYjkwMzM4OWRmNDJjM2MwYWRm
MjY4NTNlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlKGZsb2F0IHNhbXBsZVJhdGUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKG1ha2VT
dHJpbmcoIldlYkF1ZGlvLSJfcywgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25O
b2RlIikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlIl9zKQogewogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgK
aW5kZXggMzBlYzQxYTYzYjg4OGQxNWMwMzQ1YTkyMzMzMDgwNDVkOTEyYTVmZC4uYjQyNzEwYWI4
YTFkMzBhYzAyOTMwNmVjYmI4MDM3MTY0MzBiZDJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaApAQCAtODc5LDcg
Kzg3OSw2IEBAIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzIHsKIAogICAgIE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwIG1hbmRhdG9yeUNvbnN0cmFpbnRzOwogICAgIFZlY3RvcjxNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcD4gYWR2YW5jZWRDb25zdHJhaW50czsKLSAgICBTdHJpbmcgZGV2aWNl
SURIYXNoU2FsdDsKICAgICBib29sIGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGIzNzYyOTQ3ZDY4YjY4MTRmOWY0
MmZjNGE5Y2M3MmI4MTQ2ZGNlNzEuLmM2M2JmNzlkYjRlYTZjZWFkNDRlYmY2ZmFlZTZhNGIwMWZi
YjcwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcApAQCAtMzgsMTAg
KzM4LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBhdWRpb1RyYWNrLCBTdHJpbmcmJiBhdWRpb1RyYWNr
SWQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFdURk1vdmUoYXVkaW9UcmFja0lkKSwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZygpKQorICAgIDogUmVhbHRpbWVN
ZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgInJlbW90ZSBhdWRp
byJfcywgV1RGTW92ZShhdWRpb1RyYWNrSWQpKQogICAgICwgbV9hdWRpb1RyYWNrKFdURk1vdmUo
YXVkaW9UcmFjaykpCiB7Ci0gICAgc2V0TmFtZSgicmVtb3RlIGF1ZGlvIik7CiAgICAgbm90aWZ5
TXV0ZWRDaGFuZ2UoIW1fYXVkaW9UcmFjayk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2UuY3BwCmluZGV4IDc5ZjNmOWE2NzI3M2FjNDc3NjcxZmY0NzhiYmYyOWY2M2ZlYjNk
MWUuLmQ1YjQ5NjRhZmI1NWU2N2QxODgzMDE4M2M3NWZlNGM4YzJlOWI3MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAtMzgsMTAgKzM4LDkgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpSZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVy
ZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB2aWRlb1RyYWNrSWQpCi0gICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFdURk1vdmUodmlkZW9UcmFja0lkKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6VmlkZW8sIFN0cmluZygpKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgInJlbW90ZSB2aWRlbyJfcywgV1RGTW92ZSh2aWRl
b1RyYWNrSWQpKQogICAgICwgbV92aWRlb1RyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpCiB7Ci0g
ICAgc2V0TmFtZSgicmVtb3RlIHZpZGVvIik7CiAgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoIW1fdmlk
ZW9UcmFjayk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNGMxOGY0ZjA4ZDJlMTA0
NDQxNjY3YjU3NWIyNzU4MmQzNGEwNmRhYy4uNzIxNDE4MjczNTM3ZTlhNWQwYTAzNjg3ZjljMWZm
ZGQzNGEwNWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTQ3LDE0ICs0NywxNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVk
aWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUp
Ci0gICAgOiBtX2lkKGlkKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZShUeXBlIHR5cGUsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBo
YXNoU2FsdCkKKyAgICA6IG1faWRIYXNoU2FsdChXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICAsIG1f
cGVyc2lzdGVudElEKFdURk1vdmUoZGV2aWNlSUQpKQogICAgICwgbV90eXBlKHR5cGUpCi0gICAg
LCBtX25hbWUobmFtZSkKKyAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQogewotICAgIGlmICht
X2lkLmlzRW1wdHkoKSkKLSAgICAgICAgbV9pZCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmco
KTsKLSAgICBtX3BlcnNpc3RlbnRJRCA9IG1faWQ7CisgICAgaWYgKG1fcGVyc2lzdGVudElELmlz
RW1wdHkoKSkKKyAgICAgICAgbV9wZXJzaXN0ZW50SUQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCk7CisgICAgZWxzZQorICAgICAgICBtX2hhc2hlZElEID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG1fcGVyc2lzdGVudElELCBt
X2lkSGFzaFNhbHQpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9ic2VydmVy
KFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikKQEAgLTYwOCwxMCArNjEw
LDkgQEAgYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpzZWxlY3RTZXR0aW5ncyhjb25zdCBNZWRp
YUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgRmwKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgICAgIEFTU0VSVChjb25zdHJhaW50LmlzU3RyaW5nKCkpOwotICAgICAg
ICAgICAgQVNTRVJUKCFjb25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0LmlzRW1wdHkoKSk7Cisg
ICAgICAgICAgICBBU1NFUlQoIW1faGFzaGVkSUQuaXNFbXB0eSgpKTsKIAotICAgICAgICAgICAg
YXV0byBoYXNoZWRJRCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhh
c2hTdHJpbmdXaXRoU2FsdChtX3BlcnNpc3RlbnRJRCwgY29uc3RyYWludHMuZGV2aWNlSURIYXNo
U2FsdCk7Ci0gICAgICAgICAgICBkb3VibGUgY29uc3RyYWludERpc3RhbmNlID0gZG93bmNhc3Q8
U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCkuZml0bmVzc0Rpc3RhbmNlKGhhc2hlZElEKTsK
KyAgICAgICAgICAgIGRvdWJsZSBjb25zdHJhaW50RGlzdGFuY2UgPSBkb3duY2FzdDxTdHJpbmdD
b25zdHJhaW50Pihjb25zdHJhaW50KS5maXRuZXNzRGlzdGFuY2UobV9oYXNoZWRJRCk7CiAgICAg
ICAgICAgICBpZiAoc3RkOjppc2luZihjb25zdHJhaW50RGlzdGFuY2UpKSB7CiAgICAgICAgICAg
ICAgICAgZmFpbGVkQ29uc3RyYWludCA9IGNvbnN0cmFpbnQubmFtZSgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtOTU4LDYgKzk1OSwxNiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0
aW9uKQogICAgIH0pOwogfQogCitjb25zdCBTdHJpbmcmIFJlYWx0aW1lTWVkaWFTb3VyY2U6Omhh
c2hlZElkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNoZWRJRDsKK30KKworU3RyaW5nIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OmRldmljZUlESGFzaFNhbHQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2lkSGFzaFNhbHQ7Cit9CisKIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyOjp+T2Jz
ZXJ2ZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDc3ZGEzMDhmNGNhYzg0NjZlZTli
NDI3YWI1ZWIxNThmNWEwYTNmM2UuLmJjZWY1NjliYTU4NGIxZWFiYjVjYTIyYmVkM2I4NjZiYTdh
ZGRhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTg4LDEwICs4OCwxMCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlKCkgPSBkZWZhdWx0OwogCi0gICAgY29u
c3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBjb25zdCBTdHJpbmcm
IGhhc2hlZElkKCkgY29uc3Q7CisgICAgU3RyaW5nIGRldmljZUlESGFzaFNhbHQoKSBjb25zdDsK
IAogICAgIGNvbnN0IFN0cmluZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJz
aXN0ZW50SUQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGVyc2lzdGVudElEKFN0cmluZyYmIHBl
cnNpc3RlbnRJRCkgeyBtX3BlcnNpc3RlbnRJRCA9IFdURk1vdmUocGVyc2lzdGVudElEKTsgfQog
CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgQXVkaW8sIFZpZGVvIH07CiAgICAgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CkBAIC0xNjYsNyArMTY2LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkZWxheVNhbXBsZXMoU2Vjb25kcykgeyB9OwogCiBwcm90ZWN0
ZWQ6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBUeXBlLCBjb25z
dCBTdHJpbmcmIG5hbWUpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQgPSB7IH0sIFN0cmluZyYmIGhhc2hTYWx0ID0geyB9KTsK
IAogICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYp
OwogCkBAIC0yMDQsNyArMjA0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9tdXRlZCB7IGZh
bHNlIH07CiAKLSAgICBTdHJpbmcgbV9pZDsKKyAgICBTdHJpbmcgbV9pZEhhc2hTYWx0OworICAg
IFN0cmluZyBtX2hhc2hlZElEOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKICAgICBUeXBl
IG1fdHlwZTsKICAgICBTdHJpbmcgbV9uYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAppbmRleCA1ZTFiNWE1Zjk0ODZjOWIxNDkwMWIzY2EwOGFmZTdhMWY1MTIzM2FmLi5hNmY4
ZmYzMTNmZWM5NmFlZDViODkwMDQ4YjNiZjY0NTk0NDhkMzc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcApAQCAtNzksMTQgKzc5LDE0IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKQogCiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpID0gZGVmYXVsdDsKIAotdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVh
bUhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlciwgQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNl
LCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYg
cmVxdWVzdCkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJl
YW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIsIFN0cmluZyYmIGhh
c2hTYWx0LCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRl
b0RldmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIFZlY3Rv
cjxSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IGF1ZGlvU291cmNlczsKICAgICBWZWN0b3I8UmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+PiB2aWRlb1NvdXJjZXM7CiAgICAgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50OwogCiAgICAgaWYgKGF1ZGlvRGV2aWNlKSB7Ci0gICAgICAgIGF1dG8gYXVkaW9T
b3VyY2UgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShh
dWRpb0RldmljZSksICZyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMpOworICAgICAgICBhdXRvIGF1
ZGlvU291cmNlID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAmcmVxdWVzdC5hdWRpb0NvbnN0
cmFpbnRzKTsKICAgICAgICAgaWYgKGF1ZGlvU291cmNlKQogICAgICAgICAgICAgYXVkaW9Tb3Vy
Y2VzLmFwcGVuZChhdWRpb1NvdXJjZS5zb3VyY2UoKSk7CiAgICAgICAgIGVsc2UgewpAQCAtMTAy
LDcgKzEwMiw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxlCiAgICAgaWYgKHZpZGVvRGV2aWNl
KSB7CiAgICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHZpZGVvU291cmNlOwogICAgICAgICBp
ZiAodmlkZW9EZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVy
YSkKLSAgICAgICAgICAgIHZpZGVvU291cmNlID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFp
bnRzKTsKKyAgICAgICAgICAgIHZpZGVvU291cmNlID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
JnJlcXVlc3QudmlkZW9Db25zdHJhaW50cyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZp
ZGVvU291cmNlID0gZGlzcGxheUNhcHR1cmVGYWN0b3J5KCkuY3JlYXRlRGlzcGxheUNhcHR1cmVT
b3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOwog
CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRE
aXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYKICAgICB9CiB9CiAK
LXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25z
dCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlcXVlc3QsIFZlY3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9E
ZXZpY2VJbmZvLCBWZWN0b3I8RGV2aWNlSW5mbz4mIHZpZGVvRGV2aWNlSW5mbywgU3RyaW5nJiBm
aXJzdEludmFsaWRDb25zdHJhaW50KQordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpn
ZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVzdCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIFZlY3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9EZXZpY2VJbmZvLCBWZWN0
b3I8RGV2aWNlSW5mbz4mIHZpZGVvRGV2aWNlSW5mbywgU3RyaW5nJiBmaXJzdEludmFsaWRDb25z
dHJhaW50KQogewogICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludDsKICAgICBpZiAocmVxdWVz
dC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKQEAgLTIzOSw3ICsyMzksNyBAQCB2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFT
dHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3Ig
PSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCB7IH0pOwor
ICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgeyB9KTsKICAgICAg
ICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+
c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25z
dHJhaW50KSkKICAgICAgICAgICAgICAgICBhdWRpb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VP
ckVycm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKIApAQCAtMjUz
LDcgKzI1Myw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlh
RGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRl
dmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAg
IGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShkZXZpY2UsIHsgfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRl
b0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNo
U2FsdCB9LCB7IH0pOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JF
cnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25z
dHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNl
SW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCks
IGRldmljZX0pOwogCkBAIC0yNzksNyArMjc5LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwK
ICAgICBpZiAocmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxh
eU1lZGlhKQogICAgICAgICBnZXREaXNwbGF5TWVkaWFEZXZpY2VzKHJlcXVlc3QsIHZpZGVvRGV2
aWNlSW5mbywgZmlyc3RJbnZhbGlkQ29uc3RyYWludCk7CiAgICAgZWxzZQotICAgICAgICBnZXRV
c2VyTWVkaWFEZXZpY2VzKHJlcXVlc3QsIGF1ZGlvRGV2aWNlSW5mbywgdmlkZW9EZXZpY2VJbmZv
LCBmaXJzdEludmFsaWRDb25zdHJhaW50KTsKKyAgICAgICAgZ2V0VXNlck1lZGlhRGV2aWNlcyhy
ZXF1ZXN0LCBTdHJpbmcgeyBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQgfSwgYXVkaW9EZXZpY2VJ
bmZvLCB2aWRlb0RldmljZUluZm8sIGZpcnN0SW52YWxpZENvbnN0cmFpbnQpOwogCiAgICAgaWYg
KChyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiBhdWRpb0RldmljZUluZm8uaXNF
bXB0eSgpKSB8fCAocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgdmlkZW9EZXZp
Y2VJbmZvLmlzRW1wdHkoKSkpIHsKICAgICAgICAgaW52YWxpZEhhbmRsZXIoZmlyc3RJbnZhbGlk
Q29uc3RyYWludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggODFmYjg1YzIx
MDI5MWY5ZTJjZGIyNjdmMjEzMjE4MTNiN2RkZjViZC4uNGUxNzAyN2RlNmVjYzhiNDA3OWJiNDVj
YjA4OTc2MjM0MmM3MjUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNjUs
NyArNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0
cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJhaW50c0hhbmRs
ZXImJiwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgU3RyaW5nJiYpOwogCiAgICAgdXNpbmcg
TmV3TWVkaWFTdHJlYW1IYW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKFJlZlB0cjxNZWRpYVN0
cmVhbVByaXZhdGU+JiYpPjsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3
TWVkaWFTdHJlYW1IYW5kbGVyJiYsIENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVy
ZURldmljZSYmIHZpZGVvRGV2aWNlLCBjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYsIFN0
cmluZyYmLCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRl
b0RldmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0Jik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBnZXRNZWRpYVN0cmVhbURldmljZXMoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVE
ZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0
cmluZyYpOwpAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHZvaWQg
Z2V0RGlzcGxheU1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmLCBWZWN0b3I8
RGV2aWNlSW5mbz4mLCBTdHJpbmcmKTsKLSAgICB2b2lkIGdldFVzZXJNZWRpYURldmljZXMoY29u
c3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgVmVjdG9yPERldmljZUluZm8+JiBhdWRpb0RldmljZXMs
IFZlY3RvcjxEZXZpY2VJbmZvPiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmKTsKKyAgICB2b2lkIGdl
dFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgU3RyaW5nJiYsIFZl
Y3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8RGV2aWNlSW5mbz4mIHZpZGVv
RGV2aWNlcywgU3RyaW5nJik7CiAKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9kZXZpY2VD
aGFuZ2VkT2JzZXJ2ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwCmlu
ZGV4IDk3MjVkN2ZiOGY1N2RjNzNiNzUzNmU5ODFiMzJjZWUyZjJkMjMyYzcuLmU4ZTU1ZGYyN2Y0
YTNmNjg1OGYxM2I1ODZhNDhlOTY1NWFmZTYxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5jcHAKQEAgLTI2LDE0ICsyNiwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCiAKLSNpbmNsdWRlICJDYXB0dXJl
RGV2aWNlLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgotCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKICNpbmNsdWRlICJD
YXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJN
ZWRpYVN0cmVhbVByaXZhdGUuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAj
aW5jbHVkZSA8d3RmL1NIQTEuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VGYWN0b3J5LmgKaW5kZXggZjljNDdjYWE4ZTBlODU4NGRiOTJjOTRjMTNlOWFjM2Nl
NGYwMWE2OC4uMzIxNjY2NGQ4NTViYWI3ZDAzYWE4Y2Y3ZWRkOTQxNWQxMDc3ZmM0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCkBAIC0yNywxMyArMjcsMTQgQEAKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYXB0dXJlRGV2aWNlOwogY2xhc3MgUmVhbHRp
bWVNZWRpYVNvdXJjZTsKIAogc3RydWN0IE1lZGlhQ29uc3RyYWludHM7Ci0KIHN0cnVjdCBDYXB0
dXJlU291cmNlT3JFcnJvcjsKIAogY2xhc3MgU2luZ2xlU291cmNlRmFjdG9yeSB7CkBAIC01Myw3
ICs1NCw3IEBAIGNsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkKIHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
LCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKIAogcHJvdGVjdGVkOgog
ICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CkBAIC02Niw3ICs2Nyw3IEBAIGNs
YXNzIFZpZGVvQ2FwdHVyZUZhY3RvcnkKIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0Nh
cHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9D
YXB0dXJlUGFnZVN0YXRlKGJvb2wsIGJvb2wpIHsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwCmluZGV4IGY1ZGI5YjA5N2U3NjQzOWFiMTE5OGU3ZWU2MmJlMDVhMjJkM2Q3YWIu
LjU2NjRiMDkyMTAwNzJlMTFiYmIwYThjZGM1Y2JiMjQyMjEyNWRhNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwCkBAIC0zNCw4ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVh
bHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBj
b25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGlkLCBUeXBlOjpW
aWRlbywgbmFtZSkKK1JlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9Tb3VyY2UoU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpZCksIFdU
Rk1vdmUoaGFzaFNhbHQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggODdhYjgwYTE4
ZGRhZTVjYzYxMzUxNDAzNDBiMjY4MTI2OTNiMDM1YS4uYTQ5Y2Y2Y2NmNjZiMDM5YjkxNTkyNjZj
YTg5NDVjODUwNGEyZDczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDIsNyArNDIsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiBwcm90ZWN0ZWQ6
Ci0gICAgUmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcm
IG5hbWUpOworICAgIFJlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKIAogICAgIHZvaWQgcHJlcGFyZVRvUHJvZHVjZURhdGEo
KTsKICAgICBib29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4g
d2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuY3BwCmluZGV4IDc0ZmEzOWM5ZTY3MTQxMzVhZWVhYTNhMzRiYTRiOTYyNzFjYjNjMGUu
LjJiNzU0ZDdjNGQ2OTgzY2I1ODU0NGY1NjNhYzhhNDQ4MmIxYTgwZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01Myw5ICs1
Myw5IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpCiAKIGNsYXNzIEdT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAg
IHsKLSAgICAgICAgcmV0dXJuIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRl
dmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsKIApAQCAt
NjUsNyArNjUsNyBAQCBzdGF0aWMgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYg
bGliV2ViUlRDQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSgpCiAgICAgcmV0dXJuIGZhY3Rvcnku
Z2V0KCk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBhdXRvIGRldmljZSA9
IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmdzdHJlYW1l
ckRldmljZVdpdGhVSUQoZGV2aWNlSUQpOwogICAgIGlmICghZGV2aWNlKSB7CkBAIC03Myw3ICs3
Myw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291
cmNlT3JFcnJvcihXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgIH0KIAotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnZh
bHVlKCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlKGRldmljZS52YWx1ZSgpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogCiAgICAg
aWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNv
bnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CkBAIC04OCwxNSArODgsMTUgQEAgQXVkaW9DYXB0dXJl
RmFjdG9yeSYgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKICAgICByZXR1
cm4gbGliV2ViUlRDQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSgpOwogfQogCi1HU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJD
YXB0dXJlRGV2aWNlIGRldmljZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlLnBl
cnNpc3RlbnRJZCgpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgZGV2aWNlLmxh
YmVsKCkpCitHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVy
ZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQp
CisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxh
YmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6bWFrZV91
bmlxdWU8R1N0cmVhbWVyQXVkaW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsKICAgICBpbml0aWFsaXpl
R1N0cmVhbWVyRGVidWcoKTsKIH0KIAotR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2VJRCwgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIG5hbWUpCitHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6bWFrZV91
bmlxdWU8R1N0cmVhbWVyQXVkaW9DYXB0dXJlcj4oKSkKIHsKICAgICBpbml0aWFsaXplR1N0cmVh
bWVyRGVidWcoKTsKQEAgLTE2Myw3ICsxNjMsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcwog
ICAgIH0KIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
KHNldHRpbmdzKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7Ci0gICAgY2FwYWJpbGl0aWVzLnNl
dERldmljZUlkKGlkKCkpOworICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNoZWRJZCgp
KTsKICAgICBjYXBhYmlsaXRpZXMuc2V0RWNob0NhbmNlbGxhdGlvbihkZWZhdWx0RWNob0NhbmNl
bGxhdGlvbkNhcGFiaWxpdHkpOwogICAgIGNhcGFiaWxpdGllcy5zZXRWb2x1bWUoZGVmYXVsdFZv
bHVtZUNhcGFiaWxpdHkoKSk7CiAgICAgY2FwYWJpbGl0aWVzLnNldFNhbXBsZVJhdGUoQ2FwYWJp
bGl0eVZhbHVlT3JSYW5nZShtaW5TYW1wbGVSYXRlLCBtYXhTYW1wbGVSYXRlKSk7CkBAIC0xODIs
NyArMTgyLDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBHU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdzKCkKIHsKICAgICBpZiAoIW1fY3VycmVudFNldHRp
bmdzKSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKLSAg
ICAgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIHNldHRpbmdzLnNldERl
dmljZUlkKGhhc2hlZElkKCkpOwogCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyBzdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICAgICAgc3VwcG9ydGVkQ29u
c3RyYWludHMuc2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA3NTllODE0NzExNTI3YWVmZDVm
MGRlMGNlNmRhYjA2MDUwNDQwMGYxLi5mYTM0MTk0ZGEyZTM1Y2RlMGExZmVkZWRlOWZlZWU2NGQ2
ZDhmZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2Ugewog
cHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIG92ZXJyaWRlOwpAQCAtNDAsOCAr
NDAsOCBAQCBwdWJsaWM6CiAgICAgR1N0cmVhbWVyQ2FwdHVyZXIqIGNhcHR1cmVyKCkgeyByZXR1
cm4gbV9jYXB0dXJlci5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UpOwotICAgIEdTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUp
OworICAgIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNl
LCBTdHJpbmcmJiBoYXNoU2FsdCk7CisgICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAg
dmlydHVhbCB+R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKCk7CiAgICAgdm9pZCBzdGFydFBy
b2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UuY3BwCmluZGV4IDIwOWRiNjU5NzkyNzYzODVlZGMxMjEzMzZlNjEyZDg4YzFkNDlmZGUuLmU3
OWEzNTdjYjRlZDQ3ODQ4NTU1YTUyZDg5NDE2MmJjMTc0Y2ZmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01NCw5ICs1NCw5
IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpCiAKIGNsYXNzIEdTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsKIApA
QCAtODEsNyArODEsNyBAQCBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmIGxpYldlYlJUQ0Rpc3BsYXlD
YXB0dXJlU291cmNlRmFjdG9yeSgpCiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CiB9CiAKLUNh
cHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBhdXRvIGRldmljZSA9IEdTdHJlYW1lclZpZGVv
Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmdzdHJlYW1lckRldmljZVdpdGhVSUQo
ZGV2aWNlSUQpOwogICAgIGlmICghZGV2aWNlKSB7CkBAIC04OSw3ICs4OSw3IEBAIENhcHR1cmVT
b3VyY2VPckVycm9yIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZN
b3ZlKGVycm9yTWVzc2FnZSkpOwogICAgIH0KIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnZhbHVlKCkpKTsKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGRl
dmljZS52YWx1ZSgpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogCiAgICAgaWYgKGNvbnN0cmFpbnRz
KSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25z
dHJhaW50cyk7CkBAIC0xMDksMTUgKzEwOSwxNSBAQCBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmIEdT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6ZGlzcGxheUZhY3RvcnkoKQogICAgIHJldHVybiBs
aWJXZWJSVENEaXNwbGF5Q2FwdHVyZVNvdXJjZUZhY3RvcnkoKTsKIH0KIAotR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5n
JiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBnY2hhciAqc291cmNlX2ZhY3Rv
cnkpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRldmljZUlELCBSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpWaWRlbywgbmFtZSkKK0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgZ2NoYXIgKnNvdXJjZV9mYWN0b3J5KQorICAgIDog
UmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwg
bV9jYXB0dXJlcihzdGQ6Om1ha2VfdW5pcXVlPEdTdHJlYW1lclZpZGVvQ2FwdHVyZXI+KHNvdXJj
ZV9mYWN0b3J5KSkKIHsKICAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKIH0KIAotR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoR1N0
cmVhbWVyQ2FwdHVyZURldmljZSBkZXZpY2UpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRl
dmljZS5wZXJzaXN0ZW50SWQoKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIGRl
dmljZS5sYWJlbCgpKQorR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpWaWRlbywgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRl
dmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihzdGQ6
Om1ha2VfdW5pcXVlPEdTdHJlYW1lclZpZGVvQ2FwdHVyZXI+KGRldmljZSkpCiB7CiAgICAgaW5p
dGlhbGl6ZUdTdHJlYW1lckRlYnVnKCk7CkBAIC0yNDIsNyArMjQyLDcgQEAgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpj
YXBhYmlsaXRpZXMKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGNhcGFiaWxp
dGllcy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlk
KGhhc2hlZElkKCkpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0V2lkdGgoQ2FwYWJpbGl0eVZh
bHVlT3JSYW5nZShtaW5XaWR0aCwgbWF4V2lkdGgpKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNl
dEhlaWdodChDYXBhYmlsaXR5VmFsdWVPclJhbmdlKG1pbkhlaWdodCwgbWF4SGVpZ2h0KSk7CiAg
ICAgICAgIGNhcGFiaWxpdGllcy5zZXRGcmFtZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSht
aW5GcmFtZXJhdGUsIG1heEZyYW1lcmF0ZSkpOwpAQCAtMjU2LDcgKzI1Niw3IEBAIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpz
ZXR0aW5ncygpCiB7CiAgICAgaWYgKCFtX2N1cnJlbnRTZXR0aW5ncykgewogICAgICAgICBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7Ci0gICAgICAgIHNldHRpbmdzLnNldERl
dmljZUlkKGlkKCkpOworICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsK
IAogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgc3VwcG9y
dGVkQ29uc3RyYWludHM7CiAgICAgICAgIHN1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRz
RGV2aWNlSWQodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0
dXJlU291cmNlLmgKaW5kZXggNjdiY2QxYTIwYWIwMWQzZTcxNmEwMDY3MmFjZjcxYjU5MzA0ODc3
Ny4uMjMxZWQ0YWEzMDdiZmZkMGI1ZTdmOWFmNzc5Yjc4ZTcyNTlkNTM4OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtMjksNyArMjks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNv
dXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5
JiBmYWN0b3J5KCk7CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCkBAIC00MSw4ICs0
MSw4IEBAIHB1YmxpYzoKICAgICBHU3RyZWFtZXJDYXB0dXJlciogY2FwdHVyZXIoKSB7IHJldHVy
biBtX2NhcHR1cmVyLmdldCgpOyB9CiAKIHByb3RlY3RlZDoKLSAgICBHU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBnY2hhciAqIHNvdXJjZV9mYWN0b3J5KTsKLSAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZSk7CisgICAgR1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgZ2NoYXIgKiBzb3VyY2VfZmFjdG9yeSk7CisgICAgR1N0cmVhbWVyVmlkZW9DYXB0
dXJlU291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KTsKICAg
ICB2aXJ0dWFsIH5HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoKTsKICAgICB2b2lkIHN0YXJ0
UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlLmNwcAppbmRleCA5ZjAxZTY3MTIwMjBiMWFmYzAzOWZmZWZjMGYwNzZlYmRm
NTU3NGQ4Li5mZDUyZWJmNDk2ZTdiMWU2OTc2OTZiODVkYWFjNjE1NzZhMDYxYWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2Uu
Y3BwCkBAIC0zMCwxNiArMzAsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXcmFw
cGVkTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UgOiBwdWJsaWMgTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UgewogcHVibGljOgotICAgIFdyYXBwZWRNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShjb25zdCBT
dHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgICAgIDogTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UoZGV2aWNlSUQsIG5hbWUpCisgICAgV3JhcHBlZE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCkKKyAgICAgICAgOiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgewogICAgIH0KIH07CiAK
LUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwKLSAgICBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwKKyAgICBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tHU3RyZWFtZXJBdWRp
b0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlE
KSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKIAogICAgIGlmIChjb25zdHJh
aW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTU4LDkgKzU4LDkgQEAgdm9pZCBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGMKICAg
ICBtX3dyYXBwZWRTb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMsIFdURk1vdmUo
c3VjY2Vzc0hhbmRsZXIpLCBXVEZNb3ZlKGZhaWx1cmVIYW5kbGVyKSk7CiB9CiAKLU1vY2tHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6Ok1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCBuYW1lKQotICAgICwgbV93cmFwcGVkU291
cmNlKHN0ZDo6bWFrZV91bmlxdWU8V3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPihkZXZp
Y2VJRCwgbmFtZSkpCitNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpNb2NrR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJp
bmcgeyBkZXZpY2VJRCB9LCBTdHJpbmcgeyBuYW1lIH0sIFN0cmluZyB7IGhhc2hTYWx0IH0pCisg
ICAgLCBtX3dyYXBwZWRTb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxXcmFwcGVkTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2U+KFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSkpCiB7CiAgICAgbV93cmFwcGVkU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2UuaAppbmRleCBiNTcxODFkOWExYzljOWFkNzBmMWY1NjY3OWQzNzU1ZTQ1NGIxMDgzLi44YTRi
YmU4NWYzNzdkZTY3MDY0YTkwOGViNDE2MTU2MmZhNGQ2N2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTI5LDcgKzI5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlIGZpbmFsIDogcHVibGljIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIE1vY2tHU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBu
YW1lKTsKKyAgICBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAgfk1vY2tHU3RyZWFt
ZXJBdWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJp
bmcsIFN0cmluZz4+IGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYpOwog
ICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3VjY2Vz
c0hhbmRsZXImJiwgRmFpbHVyZUhhbmRsZXImJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVv
Q2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggNDRkOTRj
YzI3ZTMyNjcyYmI0YzQ0MjA2MzUzMWJjODJmMmJjZjRjYi4uY2IzMDY5NjYwOWRiZDg4Zjg2MmYw
YmVhYjZhOTlmZGYyNmE4OWVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2Nr
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdyYXBwZWRNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1
YmxpYyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSB7CiBwdWJsaWM6Ci0gICAgV3JhcHBlZE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYg
bmFtZSkKLSAgICAgICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShkZXZpY2VJRCwgbmFtZSkK
KyAgICBXcmFwcGVkTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0
cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgICAgICA6IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hT
YWx0KSkKICAgICB7CiAgICAgfQogCkBAIC02MSwxMCArNjEsMTAgQEAgcHVibGljOgogICAgIH0K
IH07CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwKLSAgICBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwKKyAgICBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRl
dmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKIAogICAgIGlmIChj
b25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAg
ICAgICAgcmV0dXJuIHsgfTsKQEAgLTk1LDkgKzk1LDkgQEAgdm9pZCBNb2NrR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxl
KQogICAgIH0KIH0KIAotTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6TW9ja0dTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJp
bmcmIG5hbWUpCi0gICAgOiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIG5h
bWUsICJhcHBzcmMiKQotICAgICwgbV93cmFwcGVkU291cmNlKHN0ZDo6bWFrZV91bmlxdWU8V3Jh
cHBlZE1vY2tSZWFsdGltZVZpZGVvU291cmNlPihkZXZpY2VJRCwgbmFtZSkpCitNb2NrR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlOjpNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0
cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6
IEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBkZXZpY2VJRCB9LCBTdHJpbmcg
eyBuYW1lIH0sIFN0cmluZyB7IGhhc2hTYWx0IH0sICJhcHBzcmMiKQorICAgICwgbV93cmFwcGVk
U291cmNlKHN0ZDo6bWFrZV91bmlxdWU8V3JhcHBlZE1vY2tSZWFsdGltZVZpZGVvU291cmNlPihX
VEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKQogewog
ICAgIG1fd3JhcHBlZFNvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggZDA4
YWE0ODk5NTg1ZTlhMzM1ZDI5MzdlYzcxM2ZjZDg5NzljNWY1ZC4uYzI0ODYzMjNiMzFhM2VlNWZk
NDQ2MTQ5MTFkODhiNmRhM2NlZjk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9j
a0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFdy
YXBwZWRNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTsKIC8vIHRvIHRoZSBNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZSBjbGFzcyBieSB3cmFwcGluZyBvdXIgb3duIHN1YmNsYXNzIG9mIGl0LgogY2xhc3Mg
TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBHU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2UsIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHsKIHB1Ymxp
YzoKLSAgICBNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2
aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQpOwogICAgIH5Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKCk7CiAgICAgc3RkOjpv
cHRpb25hbDxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBhcHBseUNvbnN0cmFpbnRzKGNvbnN0
IE1lZGlhQ29uc3RyYWludHMmKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVk
aWFDb25zdHJhaW50cyYsIFN1Y2Nlc3NIYW5kbGVyJiYsIEZhaWx1cmVIYW5kbGVyJiYpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRleCBkMzhlMWFlNjI2NTBhNmUzNjQ3M2Ix
MWNiMWVjOWYxZTAxNDIyZTI5Li4zYjQ5ZjQ2ZmRhM2VjMzI2YzczODUxNzNmYTZjZDI3ZWNmMjll
ZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFz
cyBQaXhlbEJ1ZmZlclJlc2l6ZXI7CiAKIGNsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNlIDogcHVi
bGljIFJlYWx0aW1lVmlkZW9Tb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2Jz
ZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUo
Y29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRp
YyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCkBAIC03MSw3ICs3MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29u
bmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZlclJlZiwgQVZDYXB0dXJlQ29u
bmVjdGlvbiopOwogCiBwcml2YXRlOgotICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVy
ZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgIEFWVmlkZW9DYXB0dXJlU291cmNl
KEFWQ2FwdHVyZURldmljZSosIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAg
dmlydHVhbCB+QVZWaWRlb0NhcHR1cmVTb3VyY2UoKTsKIAogICAgIGJvb2wgc2V0dXBTZXNzaW9u
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KaW5kZXggNGNiMmY5Mzk3ZWFjYzE1Zjc2
ZGJkZjRiNjM3ODA4OTI4NTAzNWVkMC4uNTE5NjA4MjIyZTY2MTRhYjJlZGNlYzIzZjM1MDA5MDc1
OWQxMTkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtMTUwLDEzICsxNTAs
MTMgQEAgcHVibGljOgogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VGb3JtYXRUeXBlPiBm
b3JtYXQ7CiB9OwogCi1DYXB0dXJlU291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQogewogICAgIEFWQ2FwdHVyZURldmljZVR5cGVkZWYgKmRldmljZSA9
IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDppZF07CiAgICAg
aWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOworICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1v
dmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogICAgIGlmIChjb25zdHJhaW50cykgewogICAg
ICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMp
OwogICAgICAgICBpZiAocmVzdWx0KQpAQCAtMTY2LDggKzE2Niw4IEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBp
ZCwgY29uc3QKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2Up
KTsKIH0KIAotQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2Fw
dHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKLSAgICA6
IFJlYWx0aW1lVmlkZW9Tb3VyY2UoaWQsIGRldmljZS5sb2NhbGl6ZWROYW1lKQorQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYq
IGRldmljZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVhbHRpbWVW
aWRlb1NvdXJjZShkZXZpY2UubG9jYWxpemVkTmFtZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFz
aFNhbHQpKQogICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dlYkNvcmVBVlZpZGVvQ2Fw
dHVyZVNvdXJjZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKICAgICAs
IG1fZGV2aWNlKGRldmljZSkKIHsKQEAgLTE3Nyw4ICsxNzcsNiBAQCBBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNl
LCBjb25zdAogICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8aW50PihJbnRlcnJ1cHRpb25S
ZWFzb246OlZpZGVvSW5Vc2UpID09IEFWQ2FwdHVyZVNlc3Npb25JbnRlcnJ1cHRpb25SZWFzb25W
aWRlb0RldmljZUluVXNlQnlBbm90aGVyQ2xpZW50LCAiSW50ZXJydXB0aW9uUmVhc29uOjpWaWRl
b0luVXNlIGlzIG5vdCBBVkNhcHR1cmVTZXNzaW9uSW50ZXJydXB0aW9uUmVhc29uVmlkZW9EZXZp
Y2VJblVzZUJ5QW5vdGhlckNsaWVudCBhcyBleHBlY3RlZCIpOwogICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8aW50PihJbnRlcnJ1cHRpb25SZWFzb246OkF1ZGlvSW5Vc2UpID09IEFWQ2Fw
dHVyZVNlc3Npb25JbnRlcnJ1cHRpb25SZWFzb25BdWRpb0RldmljZUluVXNlQnlBbm90aGVyQ2xp
ZW50LCAiSW50ZXJydXB0aW9uUmVhc29uOjpBdWRpb0luVXNlIGlzIG5vdCBBVkNhcHR1cmVTZXNz
aW9uSW50ZXJydXB0aW9uUmVhc29uQXVkaW9EZXZpY2VJblVzZUJ5QW5vdGhlckNsaWVudCBhcyBl
eHBlY3RlZCIpOwogI2VuZGlmCi0KLSAgICBzZXRQZXJzaXN0ZW50SUQoU3RyaW5nKGRldmljZS51
bmlxdWVJRCkpOwogfQogCiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6fkFWVmlkZW9DYXB0dXJlU291
cmNlKCkKQEAgLTI2MCw3ICsyNTgsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncygpCiAgICAgYXV0byYgc2l6ZSA9IHRo
aXMtPnNpemUoKTsKICAgICBzZXR0aW5ncy5zZXRXaWR0aChzaXplLndpZHRoKCkpOwogICAgIHNl
dHRpbmdzLnNldEhlaWdodChzaXplLmhlaWdodCgpKTsKLSAgICBzZXR0aW5ncy5zZXREZXZpY2VJ
ZChpZCgpKTsKKyAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKIAogICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBzdXBwb3J0ZWRDb25zdHJhaW50
czsKICAgICBzdXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0RldmljZUlkKHRydWUpOwpA
QCAtMjgzLDcgKzI4MSw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKQogICAgICAgICByZXR1cm4gKm1f
Y2FwYWJpbGl0aWVzOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBh
YmlsaXRpZXMoc2V0dGluZ3MoKS5zdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKLSAgICBjYXBhYmls
aXRpZXMuc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGhh
c2hlZElkKCkpOwogCiAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiAqdmlkZW9EZXZpY2UgPSBk
ZXZpY2UoKTsKICAgICBpZiAoW3ZpZGVvRGV2aWNlIHBvc2l0aW9uXSA9PSBBVkNhcHR1cmVEZXZp
Y2VQb3NpdGlvbkZyb250KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4
IDg1OWQ3MzhhOTRmOTAyNWZlN2U0YjA2ZGI4NTlhNDE1MGE4ODFlMWEuLmM5ZWE1ODgyMjU3OWQ4
YzBiMGE4MWZkZWQxZjkxNmVlYzVhNzM0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKQEAgLTY5NCwyMCArNjk0LDIwIEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OmRlZmF1bHRPdXRwdXREZXZpY2UodWludDMyX3QqIGRldmljZUlEKQogICAgIHJldHVybiBl
cnI7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQogewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGRl
dmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVk
aW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0
dXJuIHsgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0
dXJlU291cmNlKGRldmljZUlELCBkZXZpY2UtPmxhYmVsKCksIGRldmljZS0+ZGV2aWNlSUQoKSkp
OworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNl
KFdURk1vdmUoZGV2aWNlSUQpLCBTdHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIGRldmljZS0+ZGV2aWNlSUQoKSkpOwogI2VsaWYgUExBVEZPUk0oSU9TKQotICAg
IGF1dG8gZGV2aWNlID0gQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xl
dG9uKCkuYXVkaW9TZXNzaW9uRGV2aWNlV2l0aFVJRChkZXZpY2VJRCk7CisgICAgYXV0byBkZXZp
Y2UgPSBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5hdWRp
b1Nlc3Npb25EZXZpY2VXaXRoVUlEKFdURk1vdmUoZGV2aWNlSUQpKTsKICAgICBpZiAoIWRldmlj
ZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCBkZXZpY2UtPmxhYmVsKCksIDApKTsK
KyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShX
VEZNb3ZlKGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFz
aFNhbHQpLCAwKSk7CiAjZW5kaWYKIAogICAgIGlmIChjb25zdHJhaW50cykgewpAQCAtNzc0LDgg
Kzc3NCw4IEBAIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZh
Y3RvcnkoKQogICAgIHJldHVybiBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xl
dG9uKCk7CiB9CiAKLUNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgdWludDMyX3Qg
cGVyc2lzdGVudElEKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2VJRCwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIGxhYmVsKQorQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFi
ZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBwZXJzaXN0ZW50SUQpCisgICAgOiBSZWFs
dGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3Zl
KGxhYmVsKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9j
YXB0dXJlRGV2aWNlSUQocGVyc2lzdGVudElEKQogewogICAgIGF1dG8mIHVuaXQgPSBDb3JlQXVk
aW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKTsKQEAgLTg0NSw3ICs4NDUsNyBAQCBjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjYXBh
YmlsaXRpZXMoKQogewogICAgIGlmICghbV9jYXBhYmlsaXRpZXMpIHsKICAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMoc2V0dGluZ3MoKS5zdXBwb3J0
ZWRDb25zdHJhaW50cygpKTsKLSAgICAgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGlkKCkp
OworICAgICAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAgICAgICAg
IGNhcGFiaWxpdGllcy5zZXRFY2hvQ2FuY2VsbGF0aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXM6OkVjaG9DYW5jZWxsYXRpb246OlJlYWRXcml0ZSk7CiAgICAgICAgIGNhcGFiaWxp
dGllcy5zZXRWb2x1bWUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSgwLjAsIDEuMCkpOwogICAgICAg
ICBjYXBhYmlsaXRpZXMuc2V0U2FtcGxlUmF0ZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDgwMDAs
IDk2MDAwKSk7CkBAIC04NjAsNyArODYwLDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncygpCiAgICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKICAgICAgICAgc2V0dGluZ3Muc2V0Vm9s
dW1lKHZvbHVtZSgpKTsKICAgICAgICAgc2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRl
KCkpOwotICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAgICAgc2V0dGlu
Z3Muc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAgICAgICAgIHNldHRpbmdzLnNldExhYmVsKG5h
bWUoKSk7CiAgICAgICAgIHNldHRpbmdzLnNldEVjaG9DYW5jZWxsYXRpb24oZWNob0NhbmNlbGxh
dGlvbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggZTVmMWE0ZjEw
NTYwZWM2Njg1N2YyZjE4OTUyZjBiYjNmOGQzMjhiNC4uMDZiNWY2NDZlZjYyMDdlMjU5NTgwZWVj
NzRiYmIyNTQ5YTAyODE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC01
NSw3ICs1NSw3IEBAIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwogY2xhc3Mg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1
YmxpYzoKIAotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCkBAIC03NCw3ICs3NCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlUmVjb25maWd1cmF0aW9uKCk7CiAKIHByb3RlY3RlZDoK
LSAgICBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIHVpbnQzMl90IHBlcnNpc3RlbnRJRCk7CisgICAgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhh
c2hTYWx0LCB1aW50MzJfdCBwZXJzaXN0ZW50SUQpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UoKTsKIAogcHJpdmF0ZToKQEAgLTEyNiw5ICsxMjYsOSBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogcHJpdmF0ZToKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcm
JiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCiAg
ICAgewotICAgICAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmlj
ZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9E
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAppbmRleCBkYzZhMThiNTRhMjA2NGUyMGFhMjM4
ODE1YmRjMjI1MzI4ODdiOTcwLi4zNzNkMGY4YTUzYTVlNmE2ZWE0YzdlNGJkZjk3NmQ4ZWRkOTU0
NDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC01Miw3
ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIERp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EoU3RyaW5n
JiYgbmFtZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoIiIsIFR5cGU6OlZpZGVvLCBXVEZN
b3ZlKG5hbWUpKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92
ZShuYW1lKSkKICAgICAsIG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmRGlzcGxh
eUNhcHR1cmVTb3VyY2VDb2NvYTo6ZW1pdEZyYW1lKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hLmgKaW5kZXggMjRkZGM2N2QyYjcwYjk0OTM1NTY0NTFhOWFiNDhhYjIy
ZmUzMDgyZC4uYmZlNDBiODYwNTgxZjFjZGI5MzFiMzVjYmY0N2ZmMDcyYzNiYWFhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNz
IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7
CiBwdWJsaWM6CiAKIHByb3RlY3RlZDoKLSAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFN0
cmluZyYmKTsKKyAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFN0cmluZyYmIG5hbWUpOwog
ICAgIHZpcnR1YWwgfkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EoKTsKIAogICAgIHZpcnR1YWwg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGdlbmVyYXRlRnJhbWUoKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oCmluZGV4IDk5ZDc4ZWVjN2M3MDJlY2QxNmVj
ZmRhMGI4NGQwYzU2YjlkNGYzYmMuLjUyMDhiMjYyYTNjMDM3N2Y2MjgzYzMwYWMyY2E4MzU2YzQy
ZjNkYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oCkBAIC00OCw3
ICs0OCw3IEBAIGNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwogY2xhc3MgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UgewogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U7Ci0gICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyhT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCiAg
ICAgdm9pZCBzZXR0aW5nc0RpZENoYW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzOjpGbGFnPikgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8aW50Pj4gZGlz
Y3JldGVTYW1wbGVSYXRlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgeyA0NDEwMCwgNDgwMDAg
fSB9OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KaW5kZXggMGM4
YTRiZGUyMDVjOWI5YjJhYjJhODg4OTc2YmM5NzQ5YzMzNzFhYy4uNzY3NjYwNjdlNjZjMTQwOTk3
ZDBmZWUzN2M1OWY2N2Q1N2JhMmRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYy5tbQpAQCAtODYsOSArODYsMTYgQEAgc3RhdGljIHZvaWQgYWRkSHVtKGZsb2F0IGFt
cGxpdHVkZSwgZmxvYXQgZnJlcXVlbmN5LCBmbG9hdCBzYW1wbGVSYXRlLCB1aW50NjRfdAogICAg
IH0KIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYyhkZXZpY2VJRCwgbmFtZSkpOworI2lmbmRlZiBOREVCVUcKKyAgICBhdXRvIGRldmlj
ZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3Rl
bnRJRChkZXZpY2VJRCk7CisgICAgQVNTRVJUKGRldmljZSk7CisgICAgaWYgKCFkZXZpY2UpCisg
ICAgICAgIHJldHVybiB7IH07CisjZW5kaWYKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJl
cG9ydCBlcnJvciBtZXNzYWdlcwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5
Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk2LDgg
KzEwMyw4IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpj
cmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uCiAgICAgcmV0dXJuIENhcHR1cmVTb3Vy
Y2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLU1vY2tSZWFsdGltZUF1ZGlvU291cmNl
TWFjOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBj
b25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShkZXZpY2VJ
RCwgbmFtZSkKK01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQpCisgICAgOiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggMGI2ZTBhYjQ3MjUyNDk1YzViNTUwYjY4ZjRkMjdj
ZTc5OWYxOTMxNC4uOWM3NGRkZTE4MzFlNDcxYTEwNzYwMWIwM2U2NjU0N2M3NjlhMDhlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKQEAgLTUxLDcgKzUxLDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTsKLSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhjb25zdCBTdHJpbmcmIGRldmlj
ZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAK
ICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IENNU2FtcGxlQnVmZmVyRnJvbVBpeGVs
QnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYpOwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBwaXhlbEJ1ZmZlckZyb21DR0ltYWdlKENHSW1hZ2VSZWYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVv
U291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IDQzMTYzYTk1YTA4YjBjMDI2YmQ3NTBm
MjlhOTIxMzE2YWFjZDRjMDIuLjIzYTE2OTYyYjUzOTQxODRjNWY2NTRlOWVjNWUxZDFmZTkwY2Qy
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUzLDkg
KzUzLDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0YXRpYyBjb25zdCBpbnQgdmlkZW9T
YW1wbGVSYXRlID0gOTAwMDA7CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VP
ckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWMoZGV2aWNlSUQsIG5hbWUpKTsKKyNpZm5kZWYgTkRFQlVHCisg
ICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0Rldmlj
ZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOworICAgIEFTU0VSVChkZXZpY2UpOworICAgIGlm
ICghZGV2aWNlKQorICAgICAgICByZXR1cm4geyB9OworI2VuZGlmCisKKyAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZp
Y2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCByZXBvcnQgZXJyb3IgbWVzc2FnZXMKICAgICBpZiAoY29uc3RyYWludHMgJiYg
c291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC02Myw4ICs3MCw4IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uCiAgICAgcmV0dXJu
IENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLU1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhjb25zdCBTdHJpbmcm
IGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZShkZXZpY2VJRCwgbmFtZSkKK01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQpCisgICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRl
dmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAppbmRleCBmOGVjNmM4NTY3
MjM4ZTZlMDRjYjcwNDFjYTExODBiNTUwM2I1YmMwLi44YmU0MDIyZmU4ZmE4MTA2OTcwMTBkMWEw
YWQ2MWUwYjk4MzNmYjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJNYWMuY3BwCkBAIC00OCwxMCArNDgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5TWFjIGZpbmFsIDogcHVibGljIFZpZGVvQ2FwdHVy
ZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVv
Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwK
ICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkNhbWVyYSk7Ci0gICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1
cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVu
dElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC03NSwxMSArNzUsMTEgQEAgcHVibGljOgogICAgICAgICBzd2l0Y2gg
KGRldmljZS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpTY3JlZW46CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICAgICAgcmV0dXJuIFNjcmVlbkRp
c3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBjb25z
dHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWM6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgY29uc3RyYWludHMp
OwogI2VuZGlmCiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93
OgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgICAgIHJldHVybiBXaW5kb3dEaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYzo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMp
OworICAgICAgICAgICAgcmV0dXJuIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVh
dGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIGNvbnN0cmFpbnRzKTsKICNlbmRp
ZgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkFwcGxpY2F0aW9uOgog
ICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkJyb3dzZXI6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCmluZGV4IDZlMmVhYjgxYzA0NzZk
NDdhYzI0NzlhNjk4MjYwNTlkYTdlNGFlMzYuLmVjOTIwZjAyNGE1Njg5OTIwMDk0NDk0NDQ3ZDcy
YmVlNjMyOTBkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1h
Yy5oCkBAIC00MSwxMyArNDEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3Jl
ZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNv
bnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7
CiAKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBzY3JlZW5DYXB0dXJl
RGV2aWNlV2l0aFBlcnNpc3RlbnRJRChjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBz
Y3JlZW5DYXB0dXJlRGV2aWNlcyhWZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKIAogcHJpdmF0ZToK
LSAgICBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50MzJfdCk7CisgICAgU2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWModWludDMyX3QsIFN0cmluZyYmKTsKICAgICB2aXJ0dWFs
IH5TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYygpOwogCiAgICAgc3RhdGljIHZvaWQgZGlz
cGxheVJlY29uZmlndXJhdGlvbkNhbGxCYWNrKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3BsYXlD
aGFuZ2VTdW1tYXJ5RmxhZ3MsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYy5tbQppbmRleCBiZjZkNzJhZDk4ZGQxNjExNzgyMGM1MDg3YzM4ZDcyMWM1
NzM3ZmFiLi5hMjM4ZjI4Zjk3NWI4NDA4MzQyNzdlOGIwYzJkZWRjMTljYWJlNDQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCkBAIC03NiwxMiArNzYs
MTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q0dEaXJlY3REaXNwbGF5SUQ+IHVwZGF0ZURpc3Bs
YXlJRChDR0RpcmVjdERpc3BsYXlJRCBkaXNwbGEKICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
fQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWM6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpCiB7CiAgICAgYm9vbCBvazsKICAgICBhdXRvIGRpc3BsYXlJRCA9IGRldmlj
ZUlELnRvVUludFN0cmljdCgmb2spOwogICAgIGlmICghb2spIHsKLSAgICAgICAgUkVMRUFTRV9M
T0coTWVkaWEsICJEaXNwbGF5IElEIGRvZXMgbm90IGNvbnZlcnQgdG8gMzItYml0IGludGVnZXIi
KTsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYzo6Y3JlYXRlOiBEaXNwbGF5IElEIGRvZXMgbm90IGNvbnZlcnQgdG8gMzItYml0IGludGVn
ZXIiKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTg5LDE1ICs4OSwxNSBAQCBD
YXB0dXJlU291cmNlT3JFcnJvciBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgZGV2aWNlSQogICAgIGlmICghYWN0dWFsRGlzcGxheUlEKQogICAgICAg
ICByZXR1cm4geyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNjcmVlbkRp
c3BsYXlDYXB0dXJlU291cmNlTWFjKGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpKSk7CisgICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjKGFj
dHVhbERpc3BsYXlJRC52YWx1ZSgpLCAiU2NyZWVuIl9zKSk7IC8vIEZJWE1FOiBmaWd1cmUgb3V0
IHdoYXQgdGl0bGUgdG8gdXNlCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlD
b25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgcmV0
dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLVNjcmVlbkRp
c3BsYXlDYXB0dXJlU291cmNlTWFjOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50
MzJfdCBkaXNwbGF5SUQpCi0gICAgOiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKCJTY3JlZW4i
KSAvLyBGSVhNRTogZmlndXJlIG91dCB3aGF0IHRvIGNhbGwgdGhpcworU2NyZWVuRGlzcGxheUNh
cHR1cmVTb3VyY2VNYWM6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjKHVpbnQzMl90IGRp
c3BsYXlJRCwgU3RyaW5nJiYgdGl0bGUpCisgICAgOiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
KFdURk1vdmUodGl0bGUpKQogICAgICwgbV9kaXNwbGF5SUQoZGlzcGxheUlEKQogewogfQpAQCAt
MTIyLDcgKzEyMiw3IEBAIGJvb2wgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0
ZURpc3BsYXlTdHJlYW0oKQogCiAgICAgaWYgKG1fZGlzcGxheUlEICE9IGFjdHVhbERpc3BsYXlJ
RC52YWx1ZSgpKSB7CiAgICAgICAgIG1fZGlzcGxheUlEID0gYWN0dWFsRGlzcGxheUlELnZhbHVl
KCk7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0oJXApLCBkaXNwbGF5IElEIGNoYW5nZWQgdG8gJWQi
LCB0aGlzLCBzdGF0aWNfY2FzdDxpbnQ+KG1fZGlzcGxheUlEKSk7CisgICAgICAgIFJFTEVBU0Vf
TE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlT
dHJlYW06IGRpc3BsYXkgSUQgY2hhbmdlZCB0byAlZCIsIHN0YXRpY19jYXN0PGludD4obV9kaXNw
bGF5SUQpKTsKICAgICB9CiAKICAgICBpZiAoIW1fZGlzcGxheVN0cmVhbSkgewpAQCAtMTMwLDcg
KzEzMCw3IEBAIGJvb2wgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3Bs
YXlTdHJlYW0oKQogICAgICAgICBhdXRvIHNjcmVlbldpZHRoID0gQ0dEaXNwbGF5TW9kZUdldFBp
eGVsc1dpZGUoZGlzcGxheU1vZGUuZ2V0KCkpOwogICAgICAgICBhdXRvIHNjcmVlbkhlaWdodCA9
IENHRGlzcGxheU1vZGVHZXRQaXhlbHNIaWdoKGRpc3BsYXlNb2RlLmdldCgpKTsKICAgICAgICAg
aWYgKCFzY3JlZW5XaWR0aCB8fCAhc2NyZWVuSGVpZ2h0KSB7Ci0gICAgICAgICAgICBSRUxFQVNF
X0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5
U3RyZWFtKCVwKSwgdW5hYmxlIHRvIGdldCBzY3JlZW4gd2lkdGgvaGVpZ2h0IiwgdGhpcyk7Cisg
ICAgICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtOiB1bmFibGUgdG8gZ2V0IHNjcmVlbiB3aWR0aC9oZWln
aHQiKTsKICAgICAgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQpAQCAtMTY4LDcgKzE2OCw3IEBAIGJvb2wgU2NyZWVuRGlzcGxheUNh
cHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0oKQogICAgICAgICBhdXRvIHNpemUg
PSBmcmFtZVNpemUoKTsKICAgICAgICAgbV9kaXNwbGF5U3RyZWFtID0gYWRvcHRDRihDR0Rpc3Bs
YXlTdHJlYW1DcmVhdGVXaXRoRGlzcGF0Y2hRdWV1ZShtX2Rpc3BsYXlJRCwgc2l6ZS53aWR0aCgp
LCBzaXplLmhlaWdodCgpLCBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOFBsYW5hciwgc3Ry
ZWFtT3B0aW9ucy5nZXQoKSwgbV9jYXB0dXJlUXVldWUuZ2V0KCksIG1fZnJhbWVBdmFpbGFibGVC
bG9jaykpOwogICAgICAgICBpZiAoIW1fZGlzcGxheVN0cmVhbSkgewotICAgICAgICAgICAgUkVM
RUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlz
cGxheVN0cmVhbSglcCksIENHRGlzcGxheVN0cmVhbUNyZWF0ZSBmYWlsZWQiLCB0aGlzKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWM6OmNyZWF0ZURpc3BsYXlTdHJlYW06IENHRGlzcGxheVN0cmVhbUNyZWF0ZSBmYWlsZWQiKTsK
ICAgICAgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfQpAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgU2NyZWVuRGlzcGxheUNhcHR1cmVT
b3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbSgpCiAKICAgICBpZiAobV9kaXNwbGF5SUQgIT0g
YWN0dWFsRGlzcGxheUlELnZhbHVlKCkpIHsKICAgICAgICAgbV9kaXNwbGF5SUQgPSBhY3R1YWxE
aXNwbGF5SUQudmFsdWUoKTsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKCVwKSwgZGlzcGxheSBJRCBj
aGFuZ2VkIHRvICVkIiwgdGhpcywgc3RhdGljX2Nhc3Q8aW50PihtX2Rpc3BsYXlJRCkpOworICAg
ICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpz
dGFydERpc3BsYXlTdHJlYW06IGRpc3BsYXkgSUQgY2hhbmdlZCB0byAlZCIsIHN0YXRpY19jYXN0
PGludD4obV9kaXNwbGF5SUQpKTsKICAgICB9CiAKICAgICBpZiAoIW1fZGlzcGxheVN0cmVhbSAm
JiAhY3JlYXRlRGlzcGxheVN0cmVhbSgpKQpAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgU2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbSgpCiAKICAgICBhdXRv
IGVyciA9IENHRGlzcGxheVN0cmVhbVN0YXJ0KG1fZGlzcGxheVN0cmVhbS5nZXQoKSk7CiAgICAg
aWYgKGVycikgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0
dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW0oJXApLCBDR0Rpc3BsYXlTdHJlYW1TdGFy
dCBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PGludD4oZXJyKSk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6
OnN0YXJ0RGlzcGxheVN0cmVhbTogQ0dEaXNwbGF5U3RyZWFtU3RhcnQgZmFpbGVkIHdpdGggZXJy
b3IgJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KGVycikpOwogICAgICAgICBjYXB0dXJlRmFpbGVkKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNzgsMTEgKzI3OCwxMSBAQCB2b2lkIFNjcmVl
bkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpmcmFtZUF2YWlsYWJsZShDR0Rpc3BsYXlTdHJlYW1G
cmFtZVN0YXR1cyBzdAogICAgICAgICBicmVhazsKIAogICAgIGNhc2Uga0NHRGlzcGxheVN0cmVh
bUZyYW1lU3RhdHVzRnJhbWVCbGFuazoKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3Jl
ZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6ZnJhbWVBdmFpbGFibGUoJXApLCBrQ0dEaXNwbGF5
U3RyZWFtRnJhbWVTdGF0dXNGcmFtZUJsYW5rIiwgdGhpcyk7CisgICAgICAgIFJFTEVBU0VfTE9H
KE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmZyYW1lQXZhaWxhYmxlOiBr
Q0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXNGcmFtZUJsYW5rIik7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBrQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXNTdG9wcGVkOgotICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpmcmFtZUF2
YWlsYWJsZSglcCksIGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1c1N0b3BwZWQiLCB0aGlzKTsK
KyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1h
Yzo6ZnJhbWVBdmFpbGFibGU6IGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1c1N0b3BwZWQiKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVy
ZVNvdXJjZU1hYy5oCmluZGV4IGQwNTMzZmY4YTM4YzQxMWE2YmNhOGMzZTU4Yzc1YjU3YzY4NjJj
MjAuLjFjNGQzNzYwZjg4Y2ZmNWZhNzRjZDI3MDY2MDNlNjhhMWQzZDZkZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCkBAIC00MCwxMyArNDAsMTMgQEAg
Y2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKIAogY2xhc3MgV2luZG93RGlzcGxheUNhcHR1
cmVTb3VyY2VNYWMgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZShTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gd2luZG93Q2FwdHVyZURldmljZVdpdGhQZXJz
aXN0ZW50SUQoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIHZvaWQgd2luZG93Q2FwdHVyZURl
dmljZXMoVmVjdG9yPENhcHR1cmVEZXZpY2U+Jik7CiAKIHByaXZhdGU6Ci0gICAgV2luZG93RGlz
cGxheUNhcHR1cmVTb3VyY2VNYWModWludDMyX3Qgd2luZG93SUQsIFN0cmluZyYmKTsKKyAgICBX
aW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50MzJfdCwgU3RyaW5nJiYpOwogICAgIHZp
cnR1YWwgfldpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjKCkgPSBkZWZhdWx0OwogCiAgICAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGdlbmVyYXRlRnJhbWUoKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQppbmRleCBlMWFhMGJmZDdl
YWQ5ODA1ZGJlZWJkYjg5YzFiZDJhOGM0NjI5ZDExLi4xZDZhMTdjZDQxMzhmZDFkNTY3MmJmOTMy
OTM3MDRiZjEwMTQxOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291
cmNlTWFjLm1tCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+IHdpbmRvd0Rlc2NyaXB0aW9uKENHV2luZG93SUQgaWQpCiAgICAgcmV0dXJuIGNoZWNr
ZWRfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgod2luZG93
cy5nZXQoKSwgMCkpOwogfQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBXaW5kb3dEaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgd2luZG93SUQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgV2luZG93RGlz
cGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShTdHJpbmcmJiB3aW5kb3dJRCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgYm9vbCBvazsKICAgICBhdXRvIGFj
dHVhbElEID0gd2luZG93SUQudG9VSW50U3RyaWN0KCZvayk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4
IGNjMzU0NjEzMzVhZTA3YTc3ZmQxYzExNmRiZDMwMTA2NWIzYzk1N2QuLjNmNDRmZDYzNGM4MzA0
NjNjNGJmMjQxNDA4ZjI5ZmM1NGI4Y2FkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MywxNCAr
NDMsMTYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpICYmICEoVVNFKEdTVFJFQU1FUikgJiYgVVNFKExJQldFQlJUQykpCi1DYXB0
dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CisjaWZuZGVm
IE5ERUJVRwogICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKICAgICBBU1NFUlQoZGV2aWNl
KTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgfTsKKyNlbmRpZgogCi0gICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1v
dmUoZGV2aWNlKSwgZGV2aWNlSUQsIG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KCpuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJj
ZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICByZXR1cm4geyB9Owog
CkBAIC01OCwxMSArNjAsMTEgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb24KIH0KICNlbmRpZgog
Ci1Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoY29uc3Qg
U3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogUmVhbHRpbWVNZWRp
YVNvdXJjZShkZXZpY2VJRCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIG5hbWUp
CitNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5n
JiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVh
bHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92
ZShuYW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV90
aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6
dGljaykKIHsKLSAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Ojptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CisgICAgYXV0byBkZXZpY2Ug
PSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50
SUQocGVyc2lzdGVudElEKCkpOwogICAgIEFTU0VSVChkZXZpY2UpOwogICAgIG1fZGV2aWNlID0g
KmRldmljZTsKIH0KQEAgLTc4LDcgKzgwLDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0dGluZ3MoKQogewogICAgIGlmICgh
bV9jdXJyZW50U2V0dGluZ3MpIHsKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
IHNldHRpbmdzOwotICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAgICAg
c2V0dGluZ3Muc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAgICAgICAgIHNldHRpbmdzLnNldFZv
bHVtZSh2b2x1bWUoKSk7CiAgICAgICAgIHNldHRpbmdzLnNldEVjaG9DYW5jZWxsYXRpb24oZWNo
b0NhbmNlbGxhdGlvbigpKTsKICAgICAgICAgc2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVS
YXRlKCkpOwpAQCAtMTAwLDcgKzEwMiw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogICAgIGlm
ICghbV9jYXBhYmlsaXRpZXMpIHsKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyBjYXBhYmlsaXRpZXMoc2V0dGluZ3MoKS5zdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKIAot
ICAgICAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIGNhcGFiaWxp
dGllcy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNldFZv
bHVtZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDAuMCwgMS4wKSk7CiAgICAgICAgIGNhcGFiaWxp
dGllcy5zZXRFY2hvQ2FuY2VsbGF0aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6
OkVjaG9DYW5jZWxsYXRpb246OlJlYWRXcml0ZSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRT
YW1wbGVSYXRlKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoNDQxMDAsIDQ4MDAwKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNl
LmgKaW5kZXggOTFlOGMwMzZiZGQ3YTMzZDYyNDkyMDdlMTNmZDM3ZjJiYTAyZWFiNi4uMWQxZDVi
MTg2NzI3YTllYjg0MmIwOWJkZWJhMjY5NmFjY2U3ODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIs
MTIgKzQyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3Rh
dGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCiAgICAg
dmlydHVhbCB+TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoKTsKIAogcHJvdGVjdGVkOgotICAgIE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CisgICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKIAogICAgIHZvaWQgc3RhcnRQcm9k
dWNpbmdEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBmNjk3Mjg1NjhiMzMxZmJjZDk0MDc2Mjhl
ZGI2MDUzNWIxYTAyNWUzLi4yOWVlM2IwYWM5OWEyZDI5YjBlYmJmMzc0ZTU1NzhlNjJjZWY2YjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtODMsMTUgKzgzLDE0IEBAIHN0YXRp
YyBpbmxpbmUgVmVjdG9yPE1vY2tNZWRpYURldmljZT4gZGVmYXVsdERldmljZXMoKQogICAgIH07
CiB9CiAKLQogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFZp
ZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSk7CiAgICAgICAgIEFTU0VSVChNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhLCBkZXZpY2UucGVyc2lzdGVudElkKCkpKTsKIAotICAg
ICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lz
dGVudElkKCksIGRldmljZS5sYWJlbCgpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50
SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMpOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMyw3ICsxMTIsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUoKSkgewogICAgICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6Ci0gICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZS5sYWJl
bCgpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsg
fSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgY29uc3RyYWludHMpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXBwbGljYXRp
b246CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QnJvd3NlcjoKQEAg
LTEzMCwxMiArMTI5LDEyIEBAIHB1YmxpYzoKIAogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2VGYWN0b3J5IDogcHVibGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5h
bAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25z
dCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZp
Y2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpOwogICAg
ICAgICBBU1NFUlQoTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VX
aXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUsIGRl
dmljZS5wZXJzaXN0ZW50SWQoKSkpOwogCi0gICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlLmxhYmVsKCksIGNv
bnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVh
dGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJl
bCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVv
U291cmNlLmNwcAppbmRleCA1ZDNmYjkxMzc4MzUwOTY2NTlhYjkyY2MzMjg5MGEwMDc4NTQ0OTY1
Li5kNDcwNmJjNWZkY2JhNjI0ZDg1NjQyZGI3ZWY2ODg0Y2NkNDVhMDRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcApAQCAtNDksMTQgKzQ5LDE2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExB
VEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiAhKFVTRShHU1RSRUFNRVIpICYmIFVTRShM
SUJXRUJSVEMpKQotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKQogeworI2lmbmRlZiBOREVCVUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CiAg
ICAgQVNTRVJUKGRldmljZSk7CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7IH07
CisjZW5kaWYKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZSksIGRldmljZUlELCBuYW1lKSk7CisgICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogICAgIGlmIChjb25z
dHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAg
ICAgcmV0dXJuIHsgfTsKIApAQCAtNjQsMTEgKzY2LDExIEBAIENhcHR1cmVTb3VyY2VPckVycm9y
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwg
Y29uCiB9CiAjZW5kaWYKIAotTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZp
ZGVvU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAg
ICA6IFJlYWx0aW1lVmlkZW9Tb3VyY2UoZGV2aWNlSUQsIG5hbWUpCitNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShX
VEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAg
LCBtX2VtaXRGcmFtZVRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJk1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpnZW5lcmF0ZUZyYW1lKQogewotICAgIGF1dG8gZGV2aWNlID0gTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmlj
ZUlEKTsKKyAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpt
b2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChwZXJzaXN0ZW50SUQoKSk7CiAgICAgQVNTRVJUKGRl
dmljZSk7CiAgICAgbV9kZXZpY2UgPSAqZGV2aWNlOwogCkBAIC0xMjAsNyArMTIyLDcgQEAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNhcGFiaWxpdGllcygpCiAgICAgaWYgKCFtX2NhcGFiaWxpdGllcykgewogICAgICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0aW5ncygpLnN1
cHBvcnRlZENvbnN0cmFpbnRzKCkpOwogCi0gICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJ
ZChpZCgpKTsKKyAgICAgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwog
ICAgICAgICBpZiAobW9ja0NhbWVyYSgpKSB7CiAgICAgICAgICAgICBjYXBhYmlsaXRpZXMuYWRk
RmFjaW5nTW9kZShXVEY6OmdldDxNb2NrQ2FtZXJhUHJvcGVydGllcz4obV9kZXZpY2UucHJvcGVy
dGllcykuZmFjaW5nTW9kZSk7CiAgICAgICAgICAgICB1cGRhdGVDYXBhYmlsaXRpZXMoY2FwYWJp
bGl0aWVzKTsKQEAgLTE1NCw3ICsxNTYsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzZXR0aW5ncygpCiAgICAgc2V0dGluZ3Mu
c2V0SGVpZ2h0KHNpemUuaGVpZ2h0KCkpOwogICAgIGlmIChhc3BlY3RSYXRpbygpKQogICAgICAg
ICBzZXR0aW5ncy5zZXRBc3BlY3RSYXRpbyhhc3BlY3RSYXRpbygpKTsKLSAgICBzZXR0aW5ncy5z
ZXREZXZpY2VJZChpZCgpKTsKKyAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsK
IAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBzdXBwb3J0ZWRD
b25zdHJhaW50czsKICAgICBzdXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0RldmljZUlk
KHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDE0NmQxYWExMzUwNDAxN2I1MDZlMjQyNDExMjQ4MDUx
MjczMzhlNWUuLmJkM2MzZTQ1MTlhZjdlODVmY2NiMjY5ODM5ZTVkYjZlODkzMGNmNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVv
U291cmNlLmgKQEAgLTQ4LDEwICs0OCwxMCBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFz
cyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBSZWFsdGltZVZpZGVvU291cmNlIHsK
IHB1YmxpYzoKIAotICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqKTsKIAogcHJvdGVjdGVkOgotICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0KTsKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTYW1wbGVCdWZmZXIoKSA9IDA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmlu
ZGV4IDg4NjA1OTI3NTY5MDY1M2ExYzViOTE5YWY3OGE1MWRlZTE2OTcwNzkuLjkyZGZiMWI2YWYw
ODFhZWJjOWYzZTEzOTE2ZDFlNzUxZTY2MjYxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjc2MCw3ICsyNzYwLDYgQEAgdm9pZCBB
cmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgV2ViQ29yZTo6TWUKIHsKICAgICBlbmNvZGVyIDw8IGNvbnN0cmFpbnQubWFuZGF0b3J5
Q29uc3RyYWludHMKICAgICAgICAgPDwgY29uc3RyYWludC5hZHZhbmNlZENvbnN0cmFpbnRzCi0g
ICAgICAgIDw8IGNvbnN0cmFpbnQuZGV2aWNlSURIYXNoU2FsdAogICAgICAgICA8PCBjb25zdHJh
aW50LmlzVmFsaWQ7CiB9CiAKQEAgLTI3NzIsNyArMjc3MSw2IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxNZWRpYUNvbnN0cmFpbnRzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6Ok1l
ZGlhQ29uCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlD
b25zdHJhaW50cyA9IFdURk1vdmUoKm1hbmRhdG9yeUNvbnN0cmFpbnRzKTsKICAgICByZXR1cm4g
ZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cykKLSAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCkKICAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMuaXNWYWxpZCk7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggNzFhNjkxZjFlMWRiYjhiMjQ2ZjdlOTdkM2Q4NjNj
ZmQ0NjdiNmY1ZC4uNzZhOGVmZjNiYmUwNWFmNzNlN2ZkNWRiOGJhYTYxM2RjNjlkMGRkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTEyNSwxNSArMTI1LDE1IEBAIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkKICAg
ICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogfQogCi12b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNl
LCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENv
bnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdz
KQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVE
ZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50
cywgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKIHsKICAgICBDYXB0dXJlU291
cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Ug
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86Ci0gICAgICAgIHNvdXJj
ZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0Zh
Y3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCAmY29uc3RyYWludHMpOwor
ICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkuYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgU3Ry
aW5nIHsgaGFzaFNhbHQgfSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKLSAgICAgICAgc291
cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
RmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsICZjb25zdHJhaW50cyk7
CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS52aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBT
dHJpbmcgeyBoYXNoU2FsdCB9LCAmY29uc3RyYWludHMpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IGZmMGFlOGIx
YmI5ZGE3YTZkNWI3OWRkN2ZjNjg5MDEyOGY4MTY5MjYuLjUxYjhlNzdkOThkZDE4MzVjZGFiOTA0
MjM2NWJjMDZlY2NiMWU0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+JikgZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52
YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsK
KyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxp
ZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVj
aW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDI0OGM0MGZmMDA3MWNhMDg3NzdjYWY3M2Yw
ODZkOWM2NzJlMDJkYjIuLmJkMjE5YmM5NjA4ZDA3NDA2OTE5MjI2MDQzYzAyYTcyYWVhMzViN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyAr
MjQsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkgewotICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBk
ZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgc3RydWN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0
cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyBzZXR0aW5ncykKKyAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHModWludDY0X3QgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2aWNlLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIFN0cmluZyBoYXNoU2FsdCwg
c3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1
Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyBzZXR0aW5ncykKICAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3Qg
aWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgQ2FwYWJpbGl0aWVz
KHVpbnQ2NF90IGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyBjYXBhYmlsaXRpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXgg
MTg1YzA3NGM5ZmQ2ZWRhZGQ5OTFlNzZhYmVhZmU1OTg4NDk2NDU3Yy4uNjI3NzRjOWFiNmZjYzI1
NDAxYWY1NTk4NWVjMDFiNTQ0OWMwZmM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcApAQCAtMzM2LDkgKzMzNiw2IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUoCiAgICAg
ICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Ci0gICAgICAgIGxvY2FsVXNlclJlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hT
YWx0ID0gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OwotICAgICAgICBsb2NhbFVzZXJSZXF1ZXN0
LnZpZGVvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50aWZpZXJIYXNo
U2FsdDsKLQogICAgICAgICBzeW5jV2l0aFdlYkNvcmVQcmVmcygpOwogICAgICAgICAKICAgICAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0
Q29uc3RyYWludHMoV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGludmFsaWRIYW5kbGVy
KSwgV1RGTW92ZShsb2NhbFVzZXJSZXF1ZXN0KSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDdjN2Y2Njc3NDk0YmFmM2I1NjNjODgz
YzFhZTIxMWJhZGQxNGIxZGMuLmNiNmQ2YzdlZTlhYzVjMWQ1ZjBiYzM4ZGUyMTVhMzlkNmUyZmQ1
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtNTEsOCArNTEsOCBAQCBzdGF0aWMgdWludDY0
X3QgbmV4dFNlc3Npb25JRCgpCiAKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3Vy
Y2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgU291cmNlKGNv
bnN0IFN0cmluZyYgc291cmNlSUQsIFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50
NjRfdCBpZCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIpCi0gICAgICAgIDogUmVh
bHRpbWVNZWRpYVNvdXJjZShzb3VyY2VJRCwgdHlwZSwgbmFtZSkKKyAgICBTb3VyY2UoU3RyaW5n
JiYgc291cmNlSUQsIFR5cGUgdHlwZSwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlcikKKyAgICAgICAg
OiBSZWFsdGltZU1lZGlhU291cmNlKHR5cGUsIFdURk1vdmUobmFtZSksIFdURk1vdmUoc291cmNl
SUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAgICAgLCBtX2lkKGlkKQogICAgICAgICAsIG1f
bWFuYWdlcihtYW5hZ2VyKQogICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlPihudWxscHRyKSkKQEAgLTE3Nyw3ICsxNzcsNyBAQCB2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcgogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5zZXRBdWRpb0ZhY3RvcnkoKnRoaXMpOwogfQogCi1XZWJDb3JlOjpDYXB0dXJl
U291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUgc291cmNlVHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpCitXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQog
ewogICAgIGlmICghY29uc3RyYWludHMpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xODYsMTAg
KzE4NiwxMCBAQCBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdAogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyBzZXR0aW5nczsKICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwogICAgIGJvb2wg
c3VjY2VlZGVkOwotICAgIGlmICghbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VX
aXRoQ29uc3RyYWludHMoaWQsIGRldmljZSwgc291cmNlVHlwZSwgKmNvbnN0cmFpbnRzKSwgTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9y
Q2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1lc3Nh
Z2UsIHNldHRpbmdzKSwgMCkpCisgICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBzb3VyY2VUeXBlLCBoYXNoU2FsdCwg
KmNvbnN0cmFpbnRzKSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3Vj
Y2VlZGVkLCBlcnJvck1lc3NhZ2UsIHNldHRpbmdzKSwgMCkpCiAgICAgICAgIHJldHVybiBXVEZN
b3ZlKGVycm9yTWVzc2FnZSk7CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291
cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgc291cmNlVHlwZSwgc2V0dGluZ3MubGFiZWwoKSwgaWQs
ICp0aGlzKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShTdHJpbmc6
Om51bWJlcihpZCksIHNvdXJjZVR5cGUsIFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCksIGlkLCAqdGhpcykpOwogICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RG
TW92ZShzZXR0aW5ncykpOwogICAgIG1fc291cmNlcy5zZXQoaWQsIHNvdXJjZS5jb3B5UmVmKCkp
OwogICAgIHJldHVybiBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJj
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCA2YTdkMGQyMmEwZjA5ODUzMjMwN2IyZTRlMDk3Zjdm
OGQ1MGM3NGI4Li4zNzYzMmQ1OWU2ZWY4Y2FhYzgwNjkxM2U1MDM1ZGJjYTRjOGQ0NTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaApAQCAtNTUsOSArNTUsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlh
bGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgZmluYWw7CiAKICAgICAv
LyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIGZhY3RvcmllcwotICAgIFdlYkNvcmU6OkNh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIGNvbnN0cmFpbnRzKTsg
fQotICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0
dXJlU291cmNlKGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Vmlk
ZW8sIGNvbnN0cmFpbnRzKTsgfQotICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqKTsKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZp
bmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
KTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVy
ZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmlu
YWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMp
OyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2FwdHVyZVNvdXJj
ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZSwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKTsK
IAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351364</attachid>
            <date>2018-10-02 03:04:15 -0700</date>
            <delta_ts>2018-10-02 04:18:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-190142-20181002120413.patch</filename>
            <type>text/plain</type>
            <size>102050</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVlMzVhOWNiNTYxN2Vk
ZTk4ODNkYjU2YmQyZTZhYzJjZGIyZTBkMC4uNDBjYmE3Yzk0MWI4ZTMzZjg2MzM5NGM3MzlmNWQ5
YThkOWIzNGMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MiBAQAorMjAxOC0xMC0wMSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFJlYWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNDYXB0dXJlTWVk
aWFTdHJlYW1UcmFjazo6U291cmNlOjpTb3VyY2UpOiBVcGRhdGUgb3JkZXIgb2YgcGFyYW1ldGVy
cyBwYXNzZWQKKyAgICAgICAgdG8gYmFzZSBjbGFzcy4KKworICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YURldmljZXNSZXF1ZXN0OjpzdGFydCk6IEFTU0VSVCBpZiBkb2N1bWVudC5kZXZpY2VJREhhc2hT
YWx0IGlzIG5vdCB0aGUgc2FtZQorICAgICAgICBhcyBwYXNzZWQgc2FsdC4KKworICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRTZXR0aW5ncyBjb25zdCk6IERvbid0IG5lZWQgdG8g
aGFzaCBJRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OmdldENhcGFiaWxp
dGllcyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFjay5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6YWxsb3cpOiBQYXNz
IGhhc2ggc2FsdCB0byBjcmVhdGVNZWRpYVN0cmVhbS4KKworICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZVJl
Y2VpdmVyRm9yU291cmNlKTogVXBkYXRlIG9yZGVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkCisgICAg
ICAgIHRvIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlKTogRGl0dG8uCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2Up
OiBDYWxjdWxhdGUgaGFzaGVkIElELgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6c2VsZWN0U2V0dGluZ3MpOiBVc2UgbV9oYXNoZWRJRC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6Omhhc2hlZElkIGNvbnN0KTogTmV3LgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGV2aWNlSURIYXNoU2FsdCBjb25zdCk6IE5ldy4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0
ZU1lZGlhU3RyZWFtKTogVGFrZSBoYXNoIHNhbHQsIHBhc3MgaXQgd2hlbiBjcmVhdGluZworICAg
ICAgICBhIHNvdXJjZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OmdldFVzZXJNZWRpYURldmljZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0
aW1lVmlkZW9Tb3VyY2UpOiBVcGRhdGUgcGFyYW1ldGVycy4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKworICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
OjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V3JhcHBlZE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjpXcmFwcGVkTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2U6Ok1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tH
U3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9j
a0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNv
dXJjZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
b2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJD
b3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2UpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncyk6IFVzZSBo
YXNoZWRJZCB0byBzZXQgZGV2aWNlIElELgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKTogVXBkYXRlIHBhcmFtZXRlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0dXJl
U291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjYXBhYmlsaXRpZXMpOiBVc2UgaGFzaGVkSWQgdG8gc2V0IGRldmljZSBJRC4KKyAgICAgICAg
KFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdzKTogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoK
KworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6
OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EpOiBVcGRhdGUgcGFyYW1ldGVycy4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMpOiBEaXR0by4KKworICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcDoK
KworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5E
aXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1h
Yyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0pOiBVcGRhdGUgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW0pOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpm
cmFtZUF2YWlsYWJsZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6V2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZSk6IFVwZGF0
ZSBwYXJhbWV0ZXJzLgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6
Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5ncyk6IFVzZSBoYXNoZWRJZCB0byBzZXQgZGV2
aWNlIElELgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNhcGFi
aWxpdGllcyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwOgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMpOiBVc2Ug
aGFzaGVkSWQgdG8gc2V0IGRldmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpzZXR0aW5ncyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKwogMjAxOC0wOS0zMCAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgUG9zaXRpb24gaW5zdGVhZCBvZiBSYW5n
ZSBpbiBjcmVhdGVNYXJrdXBJbnRlcm5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhZjM3NTQ2ZDM3NTNkOWI2YTk0
OGY3NTdmOGYxMDg2MTBkMTJmYWQxLi43MTNjMDkyMzQ3MzE2ZGI2YzM0ZTkwNTFiNmQzYTg2YmE2
ODkwODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTEwLTAxICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUmVh
bHRpbWVNZWRpYVNvdXJjZSBzaG91bGQgYmUgYWJsZSB0byB2ZW5kIGhhc2hlZCBJRHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDE0MgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDQ5MTExMDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHM+OjplbmNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1lZGlhQ29uc3RyYWludHM+OjpkZWNvZGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZTo6U291cmNlKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDoK
KwogMjAxOC0wOS0zMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTWVkaWFTdHJlYW1dIENsZWFuIHVwIFJlYWx0aW1lTWVkaWFTb3VyY2Ugc2V0dGlu
Z3MgY2hhbmdlIGhhbmRsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3Bw
CmluZGV4IDc4ZjlmYjI5MGZlNTNmNmIxNDM1NmU1Y2QwMmQ2ZDQxNWU3NzFlN2EuLjU2ZGY4YTY2
ZGVhZDNlMDQ5YzYyNWM3YWM0MTkxYzRhNjI4ZjYxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2suY3BwCkBAIC02Niw3ICs2Niw3IEBAIFJlZjxDYW52YXNDYXB0dXJlTWVk
aWFTdHJlYW1UcmFjazo6U291cmNlPiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjazo6U291
cmNlCiAKIC8vIEZJWE1FOiBHaXZlIHNvdXJjZSBpZCBhbmQgbmFtZQogQ2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2s6OlNvdXJjZTo6U291cmNlKEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMs
IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIGZyYW1lUmVxdWVzdFJhdGUpCi0gICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFN0cmluZygpLCBUeXBlOjpWaWRlbywgU3RyaW5nKCkpCisgICAgOiBSZWFs
dGltZU1lZGlhU291cmNlKFR5cGU6OlZpZGVvLCAiQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJh
Y2siX3MpCiAgICAgLCBtX2ZyYW1lUmVxdWVzdFJhdGUoV1RGTW92ZShmcmFtZVJlcXVlc3RSYXRl
KSkKICAgICAsIG1fcmVxdWVzdEZyYW1lVGltZXIoKnRoaXMsICZTb3VyY2U6OnJlcXVlc3RGcmFt
ZVRpbWVyRmlyZWQpCiAgICAgLCBtX2NhbnZhc0NoYW5nZWRUaW1lcigqdGhpcywgJlNvdXJjZTo6
Y2FwdHVyZUNhbnZhcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCmluZGV4IGUyYzViZjcwYTI2NzI0ZmQw
NTdjOWE2YWU0NjFhZDVhZGE1M2Y5ZTAuLmJlNTFhZTM0YTY5ZTlmZDY1NTA1MDdmNWI4YTMyYzBk
NjdkYTY4NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQg
TWVkaWFEZXZpY2VzUmVxdWVzdDo6c3RhcnQoKQogICAgICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cisg
ICAgICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOwogICAgICAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKICAgICAgICAgVmVjdG9yPFJlZjxNZWRpYURldmljZUlu
Zm8+PiBkZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKaW5kZXggYWNmZWNmODRlMzU2MDRlYTBlMzUwMTQw
OWRmZmI0YWNkMTExODMwMy4uNzA1MzNhZDUxZWQ4MWE1NjljMDJlNTVkYWViYmJiN2U5ZDRjMTA4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBNZWRpYVN0cmVhbVRy
YWNrOjpzdG9wVHJhY2soU3RvcE1vZGUgbW9kZSkKICAgICBjb25maWd1cmVUcmFja1JlbmRlcmlu
ZygpOwogfQogCi1NZWRpYVN0cmVhbVRyYWNrOjpUcmFja1NldHRpbmdzIE1lZGlhU3RyZWFtVHJh
Y2s6OmdldFNldHRpbmdzKERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKK01lZGlhU3RyZWFtVHJh
Y2s6OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoKSBjb25zdAog
ewogICAgIGF1dG8mIHNldHRpbmdzID0gbV9wcml2YXRlLT5zZXR0aW5ncygpOwogICAgIFRyYWNr
U2V0dGluZ3MgcmVzdWx0OwpAQCAtMjIwLDkgKzIyMCw5IEBAIE1lZGlhU3RyZWFtVHJhY2s6OlRy
YWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U2V0dGluZ3MoRG9jdW1lbnQmIGRvY3Vt
ZW50CiAgICAgaWYgKHNldHRpbmdzLnN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbigpKQogICAgICAg
ICByZXN1bHQuZWNob0NhbmNlbGxhdGlvbiA9IHNldHRpbmdzLmVjaG9DYW5jZWxsYXRpb24oKTsK
ICAgICBpZiAoc2V0dGluZ3Muc3VwcG9ydHNEZXZpY2VJZCgpKQotICAgICAgICByZXN1bHQuZGV2
aWNlSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5n
V2l0aFNhbHQoc2V0dGluZ3MuZGV2aWNlSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2FsdCgp
KTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gc2V0dGluZ3MuZGV2aWNlSWQoKTsKICAgICBp
ZiAoc2V0dGluZ3Muc3VwcG9ydHNHcm91cElkKCkpCi0gICAgICAgIHJlc3VsdC5ncm91cElkID0g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0
KHNldHRpbmdzLmdyb3VwSWQoKSwgZG9jdW1lbnQuZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAg
ICAgcmVzdWx0Lmdyb3VwSWQgPSBzZXR0aW5ncy5ncm91cElkKCk7CiAKICAgICAvLyBGSVhNRTog
c2hvdWxkbid0IHRoaXMgaW5jbHVkZSBkaXNwbGF5U3VyZmFjZSBhbmQgbG9naWNhbFN1cmZhY2U/
CiAKQEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgVmVjdG9yPGJvb2w+IGNhcGFiaWxpdHlCb29s
ZWFuVmVjdG9yKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLU1lZGlhU3RyZWFtVHJhY2s6OlRyYWNrQ2FwYWJpbGl0aWVzIE1lZGlh
U3RyZWFtVHJhY2s6OmdldENhcGFiaWxpdGllcyhEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CitN
ZWRpYVN0cmVhbVRyYWNrOjpUcmFja0NhcGFiaWxpdGllcyBNZWRpYVN0cmVhbVRyYWNrOjpnZXRD
YXBhYmlsaXRpZXMoKSBjb25zdAogewogICAgIGF1dG8gY2FwYWJpbGl0aWVzID0gbV9wcml2YXRl
LT5jYXBhYmlsaXRpZXMoKTsKICAgICBUcmFja0NhcGFiaWxpdGllcyByZXN1bHQ7CkBAIC0zMTAs
OSArMzEwLDkgQEAgTWVkaWFTdHJlYW1UcmFjazo6VHJhY2tDYXBhYmlsaXRpZXMgTWVkaWFTdHJl
YW1UcmFjazo6Z2V0Q2FwYWJpbGl0aWVzKERvY3VtZW50JgogICAgIGlmIChjYXBhYmlsaXRpZXMu
c3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKCkpCiAgICAgICAgIHJlc3VsdC5lY2hvQ2FuY2VsbGF0
aW9uID0gY2FwYWJpbGl0eUJvb2xlYW5WZWN0b3IoY2FwYWJpbGl0aWVzLmVjaG9DYW5jZWxsYXRp
b24oKSk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0RldmljZUlkKCkpCi0gICAgICAg
IHJlc3VsdC5kZXZpY2VJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
Lmhhc2hTdHJpbmdXaXRoU2FsdChjYXBhYmlsaXRpZXMuZGV2aWNlSWQoKSwgZG9jdW1lbnQuZGV2
aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0LmRldmljZUlkID0gY2FwYWJpbGl0aWVz
LmRldmljZUlkKCk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5zdXBwb3J0c0dyb3VwSWQoKSkKLSAg
ICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQoY2FwYWJpbGl0aWVzLmdyb3VwSWQoKSwgZG9jdW1lbnQu
ZGV2aWNlSURIYXNoU2FsdCgpKTsKKyAgICAgICAgcmVzdWx0Lmdyb3VwSWQgPSBjYXBhYmlsaXRp
ZXMuZ3JvdXBJZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKaW5kZXggNGIw
MGUwNDA0OWQ0MGZhMjRiMDhhZWQwMGIxYTVlYmU0NGE5NDcwMC4uZTM0NmY4MTNlNmNmYjlhNzAy
YWM1ZTE2ODVkMzMzZWQyYTA1Y2JmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFN0cmluZyBkZXZpY2VJZDsKICAgICAgICAgU3RyaW5nIGdyb3VwSWQ7
CiAgICAgfTsKLSAgICBUcmFja1NldHRpbmdzIGdldFNldHRpbmdzKERvY3VtZW50JikgY29uc3Q7
CisgICAgVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpIGNvbnN0OwogCiAgICAgc3RydWN0IFRy
YWNrQ2FwYWJpbGl0aWVzIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxMb25nUmFuZ2U+IHdpZHRo
OwpAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIGRldmljZUlkOwog
ICAgICAgICBTdHJpbmcgZ3JvdXBJZDsKICAgICB9OwotICAgIFRyYWNrQ2FwYWJpbGl0aWVzIGdl
dENhcGFiaWxpdGllcyhEb2N1bWVudCYpIGNvbnN0OworICAgIFRyYWNrQ2FwYWJpbGl0aWVzIGdl
dENhcGFiaWxpdGllcygpIGNvbnN0OwogCiAgICAgY29uc3QgTWVkaWFUcmFja0NvbnN0cmFpbnRz
JiBnZXRDb25zdHJhaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RyYWludHM7IH0KICAgICB2
b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3Qgc3RkOjpvcHRpb25hbDxNZWRpYVRyYWNrQ29uc3Ry
YWludHM+JiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKaW5kZXgg
MmI3MWNjZTQ0N2IwZTliY2NjMzI3ZTY2ZjUzMjBhYzg1YzUzYTJhNS4uYmNmYWM4ZjljOWU1NjAx
ODI0Nzk4MTA0YzcxMjhkOGNlOWM2ZDdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCkBAIC00Nyw5ICs0Nyw5
IEBAIGVudW0gTWVkaWFTdHJlYW1UcmFja1N0YXRlIHsgImxpdmUiLCAiZW5kZWQiIH07CiAgICAg
TWVkaWFTdHJlYW1UcmFjayBjbG9uZSgpOwogICAgIFtJbXBsZW1lbnRlZEFzPXN0b3BUcmFja10g
dm9pZCBzdG9wKCk7CiAKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tDYXBhYmls
aXRpZXMgZ2V0Q2FwYWJpbGl0aWVzKCk7CisgICAgTWVkaWFUcmFja0NhcGFiaWxpdGllcyBnZXRD
YXBhYmlsaXRpZXMoKTsKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludHMgZ2V0Q29uc3RyYWludHMo
KTsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5n
cygpOworICAgIE1lZGlhVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncygpOwogICAgIFByb21pc2U8
dm9pZD4gYXBwbHlDb25zdHJhaW50cyhvcHRpb25hbCBNZWRpYVRyYWNrQ29uc3RyYWludHMgY29u
c3RyYWludHMpOwogCiAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbm92ZXJjb25zdHJhaW5l
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwCmluZGV4IDEyNWQ2ZDE3ZjQ0YjgxM2IwNTMxMGM5ODMyZDZmZjJmYjZi
M2FmYTAuLmU4MjNmNzU0MDZmNDRjOTBiYTEyNzQ2YTEzZmEwNWZmN2IzYzUwMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1
ZXN0LmNwcApAQCAtMzAwLDE2ICszMDAsMTUgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjphbGxv
dyhDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0QKICAg
ICAgICAgbV9wZW5kaW5nQWN0aXZhdGlvbk1lZGlhU3RyZWFtID0gUGVuZGluZ0FjdGl2YXRpb25N
ZWRpYVN0cmVhbTo6Y3JlYXRlKFdURk1vdmUocHJvdGVjdG9yKSwgKnRoaXMsIFdURk1vdmUoc3Ry
ZWFtKSk7CiAgICAgfTsKIAotICAgIG1fcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmRldmljZUlE
SGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci0gICAgbV9yZXF1ZXN0LnZpZGVv
Q29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhh
c2hTYWx0KTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92
ZShhdWRpb0RldmljZSksIFdURk1vdmUodmlkZW9EZXZpY2UpLCBtX3JlcXVlc3QpOworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNyZWF0ZU1lZGlhU3RyZWFtKFdU
Rk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCksIFdURk1v
dmUoYXVkaW9EZXZpY2UpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgbV9yZXF1ZXN0KTsKIAogICAg
IGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgICAgICByZXR1cm47CiAKICNpZiBF
TkFCTEUoV0VCX1JUQykKLSAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50
LnBhZ2UoKSkKICAgICAgICAgcGFnZS0+cnRjQ29udHJvbGxlcigpLmRpc2FibGVJQ0VDYW5kaWRh
dGVGaWx0ZXJpbmdGb3JEb2N1bWVudChkb2N1bWVudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDYwNWYy
ZTc3MGFmNWRhMTNiYzQyODY3YTliMDlkZTYyMmE0YmNjMGMuLjUxYmZlYTBmNjRlMjlmODRkN2I3
ZGZjNWIxZjMwOWIzNWI4Y2FmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMjMxLDcgKzIzMSw4IEBAIHZvaWQgTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5k
aWRhdGUmIGNhbmRpZGF0CiAKIFJlZjxSVENSdHBSZWNlaXZlcj4gTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpjcmVhdGVSZWNlaXZlckZvclNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4mJiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxSVENSdHBSZWNlaXZlckJhY2tlbmQ+JiYg
YmFja2VuZCkKIHsKLSAgICBhdXRvIHJlbW90ZVRyYWNrUHJpdmF0ZSA9IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjcmVhdGUoV1RGTW92ZShzb3VyY2UpLCBTdHJpbmcgeyBzb3VyY2UtPmlkKCkg
fSk7CisgICAgU3RyaW5nIHRyYWNrSUQgPSBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpOworICAgIGF1
dG8gcmVtb3RlVHJhY2tQcml2YXRlID0gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShX
VEZNb3ZlKHNvdXJjZSksIFdURk1vdmUodHJhY2tJRCkpOwogICAgIGF1dG8gcmVtb3RlVHJhY2sg
PSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKm1fcGVlckNvbm5lY3Rpb24uc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBXVEZNb3ZlKHJlbW90ZVRyYWNrUHJpdmF0ZSkpOwogCiAgICAgcmV0dXJu
IFJUQ1J0cFJlY2VpdmVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocmVtb3RlVHJhY2spLCBXVEZN
b3ZlKGJhY2tlbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDU2ZjM3YzExNjZiNmJmOWU4
NjNjNDI5Njc4NzA5YzQ4YmM2MDI2MjQuLmZjOGFlNjZjYjUzMmRmYjkwMzM4OWRmNDJjM2MwYWRm
MjY4NTNlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlKGZsb2F0IHNhbXBsZVJhdGUpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKG1ha2VT
dHJpbmcoIldlYkF1ZGlvLSJfcywgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25O
b2RlIikKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8sICJNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlIl9zKQogewogICAgIG1f
Y3VycmVudFNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCAxOTU5MGIwMWNhYTY2YTNlNjU5YzIyZDYwY2Y4ZWZiOGIzNmE5NmI0
Li4wZGNiOGU3YjQyMmJiNmVkZmMxMTc3MTVmODMxNjFiNzUzNjIyN2ExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTc3MzYsNiArNzczNiwxMyBAQCB2b2lkIERvY3VtZW50OjptZWRpYVN0
cmVhbUNhcHR1cmVTdGF0ZUNoYW5nZWQoKQogICAgIGZvciAoYXV0byogbWVkaWFFbGVtZW50IDog
bV9tZWRpYVN0cmVhbVN0YXRlQ2hhbmdlRWxlbWVudHMpCiAgICAgICAgIG1lZGlhRWxlbWVudC0+
bWVkaWFTdHJlYW1DYXB0dXJlU3RhcnRlZCgpOwogfQorCit2b2lkIERvY3VtZW50OjpzZXREZXZp
Y2VJREhhc2hTYWx0KGNvbnN0IFN0cmluZyYgc2FsdCkKK3sKKyAgICBBU1NFUlQobV9pZEhhc2hT
YWx0LmlzRW1wdHkoKSB8fCBtX2lkSGFzaFNhbHQgPT0gc2FsdCk7CisgICAgbV9pZEhhc2hTYWx0
ID0gc2FsdDsKK30KKwogI2VuZGlmCiAKIHZvaWQgRG9jdW1lbnQ6OmFkZEFwcGxpY2F0aW9uU3Rh
dGVDaGFuZ2VMaXN0ZW5lcihBcHBsaWNhdGlvblN0YXRlQ2hhbmdlTGlzdGVuZXImIGxpc3RlbmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxMzU0M2IzMWQ3MzMyMTc3ZWJjODgyNjFkMzk2ZjYw
ZjBjNjg0MGQxLi5hNzk2YjQ5MDdjMTIxNThjMDZiZmE2MjUzMWQ4ZjE3ZWNlMGFhYzQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtMTM4Nyw3ICsxMzg3LDcgQEAgcHVibGljOgogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBzZXRIYXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygp
IHsgbV9oYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjayA9IHRydWU7IH0KICAgICBib29sIGhh
c0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRDYXB0
dXJlTWVkaWFTdHJlYW1UcmFjazsgfQotICAgIHZvaWQgc2V0RGV2aWNlSURIYXNoU2FsdChjb25z
dCBTdHJpbmcmIHNhbHQpIHsgbV9pZEhhc2hTYWx0ID0gc2FsdDsgfQorICAgIHZvaWQgc2V0RGV2
aWNlSURIYXNoU2FsdChjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgZGV2aWNlSURIYXNoU2Fs
dCgpIGNvbnN0IHsgcmV0dXJuIG1faWRIYXNoU2FsdDsgfQogICAgIHZvaWQgc3RvcE1lZGlhQ2Fw
dHVyZSgpOwogICAgIHZvaWQgcmVnaXN0ZXJGb3JNZWRpYVN0cmVhbVN0YXRlQ2hhbmdlQ2FsbGJh
Y2tzKEhUTUxNZWRpYUVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaAppbmRleCAzMGVjNDFhNjNiODg4ZDE1
YzAzNDVhOTIzMzMwODA0NWQ5MTJhNWZkLi5iNDI3MTBhYjhhMWQzMGFjMDI5MzA2ZWNiYjgwMzcx
NjQzMGJkMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYUNvbnN0cmFpbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFDb25zdHJhaW50cy5oCkBAIC04NzksNyArODc5LDYgQEAgc3RydWN0IE1lZGlh
Q29uc3RyYWludHMgewogCiAgICAgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAgbWFuZGF0b3J5
Q29uc3RyYWludHM7CiAgICAgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwPiBhZHZh
bmNlZENvbnN0cmFpbnRzOwotICAgIFN0cmluZyBkZXZpY2VJREhhc2hTYWx0OwogICAgIGJvb2wg
aXNWYWxpZCB7IGZhbHNlIH07CiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZS5jcHAKaW5kZXggYjM3NjI5NDdkNjhiNjgxNGY5ZjQyZmM0YTljYzcyYjgxNDZkY2U3MS4u
YzYzYmY3OWRiNGVhNmNlYWQ0NGViZjZmYWVlNmE0YjAxZmJiNzAyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC0zOCwxMCArMzgsOSBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1lSW5jb21pbmdB
dWRpb1NvdXJjZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNl
PiYmIGF1ZGlvVHJhY2ssIFN0cmluZyYmIGF1ZGlvVHJhY2tJZCkKLSAgICA6IFJlYWx0aW1lTWVk
aWFTb3VyY2UoV1RGTW92ZShhdWRpb1RyYWNrSWQpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbywgU3RyaW5nKCkpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCAicmVtb3RlIGF1ZGlvIl9zLCBXVEZNb3ZlKGF1ZGlvVHJh
Y2tJZCkpCiAgICAgLCBtX2F1ZGlvVHJhY2soV1RGTW92ZShhdWRpb1RyYWNrKSkKIHsKLSAgICBz
ZXROYW1lKCJyZW1vdGUgYXVkaW8iKTsKICAgICBub3RpZnlNdXRlZENoYW5nZSghbV9hdWRpb1Ry
YWNrKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggNzlm
M2Y5YTY3MjczYWM0Nzc2NzFmZjQ3OGJiZjI5ZjYzZmViM2QxZS4uZDViNDk2NGFmYjU1ZTY3ZDE4
ODMwMTgzYzc1ZmU0YzhjMmU5YjcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2UuY3BwCkBAIC0zOCwxMCArMzgsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZShydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmIHZpZGVvVHJhY2ssIFN0
cmluZyYmIHZpZGVvVHJhY2tJZCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoV1RGTW92ZSh2
aWRlb1RyYWNrSWQpLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nKCkp
CisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZp
ZGVvLCAicmVtb3RlIHZpZGVvIl9zLCBXVEZNb3ZlKHZpZGVvVHJhY2tJZCkpCiAgICAgLCBtX3Zp
ZGVvVHJhY2soV1RGTW92ZSh2aWRlb1RyYWNrKSkKIHsKLSAgICBzZXROYW1lKCJyZW1vdGUgdmlk
ZW8iKTsKICAgICBub3RpZnlNdXRlZENoYW5nZSghbV92aWRlb1RyYWNrKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmNwcAppbmRleCA0YzE4ZjRmMDhkMmUxMDQ0NDE2NjdiNTc1YjI3NTgyZDM0YTA2
ZGFjLi44MDUwNDMyN2UzYTY4MjQ5OTU4NmY4ZDNjN2I4Y2UwNDRkYTMwMjg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmNwcApAQCAtNDcsMTQgKzQ3LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcm
IGlkLCBUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IG1faWQoaWQpCitSZWFs
dGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKFR5cGUgdHlwZSwgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogbV9pZEhh
c2hTYWx0KFdURk1vdmUoaGFzaFNhbHQpKQorICAgICwgbV9wZXJzaXN0ZW50SUQoV1RGTW92ZShk
ZXZpY2VJRCkpCiAgICAgLCBtX3R5cGUodHlwZSkKLSAgICAsIG1fbmFtZShuYW1lKQorICAgICwg
bV9uYW1lKFdURk1vdmUobmFtZSkpCiB7Ci0gICAgaWYgKG1faWQuaXNFbXB0eSgpKQotICAgICAg
ICBtX2lkID0gY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOwotICAgIG1fcGVyc2lzdGVudElE
ID0gbV9pZDsKKyAgICBpZiAobV9wZXJzaXN0ZW50SUQuaXNFbXB0eSgpKQorICAgICAgICBtX3Bl
cnNpc3RlbnRJRCA9IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsKKyAgICBlbHNlCisgICAg
ICAgIG1faGFzaGVkSUQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5o
YXNoU3RyaW5nV2l0aFNhbHQobV9wZXJzaXN0ZW50SUQsIG1faWRIYXNoU2FsdCk7CiB9CiAKIHZv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXImIG9ic2VydmVyKQpAQCAtNjA4LDEwICs2MTAsOSBAQCBib29sIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OnNlbGVjdFNldHRpbmdzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFp
bnRzLCBGbAogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgQVNT
RVJUKGNvbnN0cmFpbnQuaXNTdHJpbmcoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoIWNvbnN0cmFp
bnRzLmRldmljZUlESGFzaFNhbHQuaXNFbXB0eSgpKTsKKyAgICAgICAgICAgIEFTU0VSVCghbV9o
YXNoZWRJRC5pc0VtcHR5KCkpOwogCi0gICAgICAgICAgICBhdXRvIGhhc2hlZElEID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KG1fcGVy
c2lzdGVudElELCBjb25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0KTsKLSAgICAgICAgICAgIGRv
dWJsZSBjb25zdHJhaW50RGlzdGFuY2UgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihjb25z
dHJhaW50KS5maXRuZXNzRGlzdGFuY2UoaGFzaGVkSUQpOworICAgICAgICAgICAgZG91YmxlIGNv
bnN0cmFpbnREaXN0YW5jZSA9IGRvd25jYXN0PFN0cmluZ0NvbnN0cmFpbnQ+KGNvbnN0cmFpbnQp
LmZpdG5lc3NEaXN0YW5jZShtX2hhc2hlZElEKTsKICAgICAgICAgICAgIGlmIChzdGQ6OmlzaW5m
KGNvbnN0cmFpbnREaXN0YW5jZSkpIHsKICAgICAgICAgICAgICAgICBmYWlsZWRDb25zdHJhaW50
ID0gY29uc3RyYWludC5uYW1lKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC05
NTgsNiArOTU5LDE3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiAgICAgfSk7CiB9CiAKK2Nv
bnN0IFN0cmluZyYgUmVhbHRpbWVNZWRpYVNvdXJjZTo6aGFzaGVkSWQoKSBjb25zdAoreworICAg
IEFTU0VSVCghbV9oYXNoZWRJRC5pc0VtcHR5KCkpOworICAgIHJldHVybiBtX2hhc2hlZElEOwor
fQorCitTdHJpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGV2aWNlSURIYXNoU2FsdCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1faWRIYXNoU2FsdDsKK30KKwogUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXI6On5PYnNlcnZlcigpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNzdkYTMw
OGY0Y2FjODQ2NmVlOWI0MjdhYjVlYjE1OGY1YTBhM2YzZS4uYmNlZjU2OWJhNTg0YjFlYWJiNWNh
MjJiZWQzYjg2NmJhN2FkZGFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtODgsMTAgKzg4LDEw
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSA9IGRlZmF1
bHQ7CiAKLSAgICBjb25zdCBTdHJpbmcmIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAg
IGNvbnN0IFN0cmluZyYgaGFzaGVkSWQoKSBjb25zdDsKKyAgICBTdHJpbmcgZGV2aWNlSURIYXNo
U2FsdCgpIGNvbnN0OwogCiAgICAgY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50SUQoKSBjb25zdCB7
IHJldHVybiBtX3BlcnNpc3RlbnRJRDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRQZXJzaXN0ZW50
SUQoU3RyaW5nJiYgcGVyc2lzdGVudElEKSB7IG1fcGVyc2lzdGVudElEID0gV1RGTW92ZShwZXJz
aXN0ZW50SUQpOyB9CiAKICAgICBlbnVtIGNsYXNzIFR5cGUgeyBOb25lLCBBdWRpbywgVmlkZW8g
fTsKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KQEAgLTE2Niw3ICsx
NjYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGF5U2FtcGxlcyhTZWNvbmRzKSB7
IH07CiAKIHByb3RlY3RlZDoKLSAgICBSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYg
aWQsIFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShU
eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBkZXZpY2VJRCA9IHsgfSwgU3RyaW5nJiYgaGFz
aFNhbHQgPSB7IH0pOwogCiAgICAgdm9pZCBzY2hlZHVsZURlZmVycmVkVGFzayhXVEY6OkZ1bmN0
aW9uPHZvaWQoKT4mJik7CiAKQEAgLTIwNCw3ICsyMDQsOCBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBtX211dGVkIHsgZmFsc2UgfTsKIAotICAgIFN0cmluZyBtX2lkOworICAgIFN0cmluZyBtX2lk
SGFzaFNhbHQ7CisgICAgU3RyaW5nIG1faGFzaGVkSUQ7CiAgICAgU3RyaW5nIG1fcGVyc2lzdGVu
dElEOwogICAgIFR5cGUgbV90eXBlOwogICAgIFN0cmluZyBtX25hbWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IDVlMWI1YTVmOTQ4NmM5YjE0OTAxYjNjYTA4YWZlN2Ex
ZjUxMjMzYWYuLmE2ZjhmZjMxM2ZlYzk2YWVkNWI4OTAwNDhiM2JmNjQ1OTQ0OGQzNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC03OSwxNCArNzksMTQgQEAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpCiAKIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6On5SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKCkgPSBkZWZh
dWx0OwogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFt
KE5ld01lZGlhU3RyZWFtSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyLCBDYXB0dXJlRGV2aWNl
JiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZSwgY29uc3QgTWVkaWFT
dHJlYW1SZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpj
cmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
ciwgU3RyaW5nJiYgaGFzaFNhbHQsIENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVy
ZURldmljZSYmIHZpZGVvRGV2aWNlLCBjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlcXVlc3Qp
CiB7CiAgICAgVmVjdG9yPFJlZjxSZWFsdGltZU1lZGlhU291cmNlPj4gYXVkaW9Tb3VyY2VzOwog
ICAgIFZlY3RvcjxSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IHZpZGVvU291cmNlczsKICAgICBT
dHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CiAKICAgICBpZiAoYXVkaW9EZXZpY2UpIHsKLSAgICAg
ICAgYXV0byBhdWRpb1NvdXJjZSA9IGF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNv
dXJjZShXVEZNb3ZlKGF1ZGlvRGV2aWNlKSwgJnJlcXVlc3QuYXVkaW9Db25zdHJhaW50cyk7Cisg
ICAgICAgIGF1dG8gYXVkaW9Tb3VyY2UgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoV1RGTW92ZShhdWRpb0RldmljZSksIFN0cmluZyB7IGhhc2hTYWx0IH0sICZyZXF1
ZXN0LmF1ZGlvQ29uc3RyYWludHMpOwogICAgICAgICBpZiAoYXVkaW9Tb3VyY2UpCiAgICAgICAg
ICAgICBhdWRpb1NvdXJjZXMuYXBwZW5kKGF1ZGlvU291cmNlLnNvdXJjZSgpKTsKICAgICAgICAg
ZWxzZSB7CkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXImJiBjb21wbGUKICAgICBp
ZiAodmlkZW9EZXZpY2UpIHsKICAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgdmlkZW9Tb3Vy
Y2U7CiAgICAgICAgIGlmICh2aWRlb0RldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6Q2FtZXJhKQotICAgICAgICAgICAgdmlkZW9Tb3VyY2UgPSB2aWRlb0ZhY3Rvcnko
KS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksICZyZXF1ZXN0
LnZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgdmlkZW9Tb3VyY2UgPSB2aWRlb0ZhY3Rv
cnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZSh2aWRlb0RldmljZSksIFdURk1v
dmUoaGFzaFNhbHQpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgdmlkZW9Tb3VyY2UgPSBkaXNwbGF5Q2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVE
aXNwbGF5Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgJnJlcXVlc3QudmlkZW9D
b25zdHJhaW50cyk7CiAKQEAgLTIzMSw3ICsyMzEsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OmdldERpc3BsYXlNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0
JgogICAgIH0KIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRVc2VyTWVk
aWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVzdCwgVmVjdG9yPERldmlj
ZUluZm8+JiBhdWRpb0RldmljZUluZm8sIFZlY3RvcjxEZXZpY2VJbmZvPiYgdmlkZW9EZXZpY2VJ
bmZvLCBTdHJpbmcmIGZpcnN0SW52YWxpZENvbnN0cmFpbnQpCit2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0
JiByZXF1ZXN0LCBTdHJpbmcmJiBoYXNoU2FsdCwgVmVjdG9yPERldmljZUluZm8+JiBhdWRpb0Rl
dmljZUluZm8sIFZlY3RvcjxEZXZpY2VJbmZvPiYgdmlkZW9EZXZpY2VJbmZvLCBTdHJpbmcmIGZp
cnN0SW52YWxpZENvbnN0cmFpbnQpCiB7CiAgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50Owog
ICAgIGlmIChyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCkgewpAQCAtMjM5LDcgKzIz
OSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0VXNlck1lZGlhRGV2aWNl
cyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlCiAgICAgICAgICAgICBpZiAoIWRldmljZS5l
bmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGF1dG8g
c291cmNlT3JFcnJvciA9IGF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShk
ZXZpY2UsIHsgfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBhdWRpb0ZhY3Rv
cnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBTdHJpbmcgeyBoYXNoU2FsdCB9
LCB7IH0pOwogICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5j
YXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50
cywgaW52YWxpZENvbnN0cmFpbnQpKQogICAgICAgICAgICAgICAgIGF1ZGlvRGV2aWNlSW5mby5h
cHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmlj
ZX0pOwogCkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpnZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmUKICAgICAg
ICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgeyB9KTsKKyAgICAgICAgICAgIGF1dG8gc291cmNl
T3JFcnJvciA9IHZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2Us
IFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSk7CiAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJv
ciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVx
dWVzdC52aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAg
ICAgdmlkZW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5m
aXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29u
c3RyYWludHNIYW5kbAogICAgIGlmIChyZXF1ZXN0LnR5cGUgPT0gTWVkaWFTdHJlYW1SZXF1ZXN0
OjpUeXBlOjpEaXNwbGF5TWVkaWEpCiAgICAgICAgIGdldERpc3BsYXlNZWRpYURldmljZXMocmVx
dWVzdCwgdmlkZW9EZXZpY2VJbmZvLCBmaXJzdEludmFsaWRDb25zdHJhaW50KTsKICAgICBlbHNl
Ci0gICAgICAgIGdldFVzZXJNZWRpYURldmljZXMocmVxdWVzdCwgYXVkaW9EZXZpY2VJbmZvLCB2
aWRlb0RldmljZUluZm8sIGZpcnN0SW52YWxpZENvbnN0cmFpbnQpOworICAgICAgICBnZXRVc2Vy
TWVkaWFEZXZpY2VzKHJlcXVlc3QsIFN0cmluZyB7IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCB9
LCBhdWRpb0RldmljZUluZm8sIHZpZGVvRGV2aWNlSW5mbywgZmlyc3RJbnZhbGlkQ29uc3RyYWlu
dCk7CiAKICAgICBpZiAoKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkICYmIGF1ZGlv
RGV2aWNlSW5mby5pc0VtcHR5KCkpIHx8IChyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMuaXNWYWxp
ZCAmJiB2aWRlb0RldmljZUluZm8uaXNFbXB0eSgpKSkgewogICAgICAgICBpbnZhbGlkSGFuZGxl
cihmaXJzdEludmFsaWRDb25zdHJhaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApp
bmRleCA4MWZiODVjMjEwMjkxZjllMmNkYjI2N2YyMTMyMTgxM2I3ZGRmNWJkLi40ZTE3MDI3ZGU2
ZWNjOGI0MDc5YmI0NWNiMDg5NzYyMzQyYzcyNTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdmFsaWRh
dGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiwgSW52YWxpZENv
bnN0cmFpbnRzSGFuZGxlciYmLCBjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmLCBTdHJpbmcmJik7
CiAKICAgICB1c2luZyBOZXdNZWRpYVN0cmVhbUhhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQo
UmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4mJik+OwotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVN
ZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXImJiwgQ2FwdHVyZURldmljZSYmIGF1ZGlv
RGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIGNvbnN0IE1lZGlhU3RyZWFtUmVx
dWVzdCYpOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVh
bUhhbmRsZXImJiwgU3RyaW5nJiYsIENhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZSwgQ2FwdHVy
ZURldmljZSYmIHZpZGVvRGV2aWNlLCBjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGdldE1lZGlhU3Ry
ZWFtRGV2aWNlcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURl
dmljZT4gY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZSwgY29uc3QgU3RyaW5nJik7CkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICB9
OwogCiAgICAgdm9pZCBnZXREaXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVx
dWVzdCYsIFZlY3RvcjxEZXZpY2VJbmZvPiYsIFN0cmluZyYpOwotICAgIHZvaWQgZ2V0VXNlck1l
ZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmLCBWZWN0b3I8RGV2aWNlSW5mbz4m
IGF1ZGlvRGV2aWNlcywgVmVjdG9yPERldmljZUluZm8+JiB2aWRlb0RldmljZXMsIFN0cmluZyYp
OworICAgIHZvaWQgZ2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3Qm
LCBTdHJpbmcmJiwgVmVjdG9yPERldmljZUluZm8+JiBhdWRpb0RldmljZXMsIFZlY3RvcjxEZXZp
Y2VJbmZvPiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmKTsKIAogICAgIFdURjo6RnVuY3Rpb248dm9p
ZCgpPiBtX2RldmljZUNoYW5nZWRPYnNlcnZlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5jcHAKaW5kZXggOTcyNWQ3ZmI4ZjU3ZGM3M2I3NTM2ZTk4MWIzMmNlZTJmMmQyMzJj
Ny4uZThlNTVkZjI3ZjRhM2Y2ODU4ZjEzYjU4NmE0OGU5NjU1YWZlNjFmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZh
Y3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcApAQCAtMjYsMTQgKzI2LDEzIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCIKIAotI2lu
Y2x1ZGUgIkNhcHR1cmVEZXZpY2UuaCIKLSNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgi
Ci0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiQ2FwdHVyZURldmljZS5o
IgogI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVk
aWFTb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvU0hBMS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaAppbmRleCBmOWM0N2NhYThlMGU4NTg0ZGI5
MmM5NGMxM2U5YWMzY2U0ZjAxYTY4Li45YmUwNTBlMmMwMzhmM2JlYmQ1ZDM3ZTA4NTUxNzc4NWY3
YWQzNDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgKQEAgLTI3LDE0ICsyNywx
NSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhcHR1cmVEZXZpY2U7
CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlOwogCi1zdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsK
LQogc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yOworc3RydWN0IE1lZGlhQ29uc3RyYWludHM7
CiAKIGNsYXNzIFNpbmdsZVNvdXJjZUZhY3RvcnkgewogcHVibGljOgpAQCAtNTMsNyArNTQsNyBA
QCBjbGFzcyBBdWRpb0NhcHR1cmVGYWN0b3J5CiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVk
aW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5n
JiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBBdWRp
b0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OwpAQCAtNjYsNyArNjcsNyBAQCBjbGFzcyBWaWRl
b0NhcHR1cmVGYWN0b3J5CiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VmlkZW9DYXB0dXJlRmFj
dG9yeSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopID0gMDsKKyAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiwgU3RyaW5nJiYsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvQ2FwdHVyZVBh
Z2VTdGF0ZShib29sLCBib29sKSB7IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNw
cAppbmRleCBmNWRiOWIwOTdlNzY0MzlhYjExOThlN2VlNjJiZTA1YTIyZDNkN2FiLi41NjY0YjA5
MjEwMDcyZTExYmJiMGE4Y2RjNWNiYjI0MjIxMjVkYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNw
cApAQCAtMzQsOCArMzQsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3Ry
aW5nJiBuYW1lKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShpZCwgVHlwZTo6VmlkZW8sIG5h
bWUpCitSZWFsdGltZVZpZGVvU291cmNlOjpSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1lTWVkaWFT
b3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSksIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhh
c2hTYWx0KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDg3YWI4MGExOGRkYWU1Y2M2
MTM1MTQwMzQwYjI2ODEyNjkzYjAzNWEuLmE0OWNmNmNjZjY2YjAzOWI5MTU5MjY2Y2E4OTQ1Yzg1
MDRhMmQ3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgflJlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAogcHJvdGVjdGVkOgotICAgIFJl
YWx0aW1lVmlkZW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3RyaW5nJiBuYW1lKTsK
KyAgICBSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJp
bmcmJiBoYXNoU2FsdCk7CiAKICAgICB2b2lkIHByZXBhcmVUb1Byb2R1Y2VEYXRhKCk7CiAgICAg
Ym9vbCBzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBz
dGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNw
cAppbmRleCA3NGZhMzljOWU2NzE0MTM1YWVlYWEzYTM0YmE0Yjk2MjcxY2IzYzBlLi4yYjc1NGQ3
YzRkNjk4M2NiNTg1NDRmNTYzYWM4YTQ0ODJiMWE4MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJl
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTMsOSArNTMsOSBAQCBz
dGF0aWMgdm9pZCBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKQogCiBjbGFzcyBHU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5IDogcHVibGljIEF1ZGlvQ2FwdHVyZUZhY3Rvcnkgewog
cHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKICAgICB7Ci0gICAg
ICAgIHJldHVybiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVy
c2lzdGVudElkKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIEdTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKQEAgLTY1LDcgKzY1
LDcgQEAgc3RhdGljIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkmIGxpYldlYlJU
Q0F1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkoKQogICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwog
fQogCi1DYXB0dXJlU291cmNlT3JFcnJvciBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgYXV0byBkZXZpY2UgPSBHU3RyZWFt
ZXJBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5nc3RyZWFtZXJEZXZpY2VX
aXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmljZSkgewpAQCAtNzMsNyArNzMsNyBAQCBD
YXB0dXJlU291cmNlT3JFcnJvciBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIGRldmljZUlELAogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJy
b3IoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICB9CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKGRldmljZS52YWx1ZSgpKSk7
CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZShkZXZpY2UudmFsdWUoKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKIAogICAgIGlmIChjb25z
dHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50
cygqY29uc3RyYWludHMpOwpAQCAtODgsMTUgKzg4LDE1IEBAIEF1ZGlvQ2FwdHVyZUZhY3Rvcnkm
IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCiAgICAgcmV0dXJuIGxpYldl
YlJUQ0F1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkoKTsKIH0KIAotR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURl
dmljZSBkZXZpY2UpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRldmljZS5wZXJzaXN0ZW50
SWQoKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIGRldmljZS5sYWJlbCgpKQor
R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2Uo
R1N0cmVhbWVyQ2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDog
UmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgU3Ry
aW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihzdGQ6Om1ha2VfdW5pcXVlPEdT
dHJlYW1lckF1ZGlvQ2FwdHVyZXI+KGRldmljZSkpCiB7CiAgICAgaW5pdGlhbGl6ZUdTdHJlYW1l
ckRlYnVnKCk7CiB9CiAKLUdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFt
ZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvLCBuYW1lKQorR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSks
IFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihzdGQ6Om1ha2VfdW5pcXVlPEdT
dHJlYW1lckF1ZGlvQ2FwdHVyZXI+KCkpCiB7CiAgICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVn
KCk7CkBAIC0xNjMsNyArMTYzLDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMKICAgICB9CiAK
ICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0aW5n
cygpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOwotICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJ
ZChpZCgpKTsKKyAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAgICAg
Y2FwYWJpbGl0aWVzLnNldEVjaG9DYW5jZWxsYXRpb24oZGVmYXVsdEVjaG9DYW5jZWxsYXRpb25D
YXBhYmlsaXR5KTsKICAgICBjYXBhYmlsaXRpZXMuc2V0Vm9sdW1lKGRlZmF1bHRWb2x1bWVDYXBh
YmlsaXR5KCkpOwogICAgIGNhcGFiaWxpdGllcy5zZXRTYW1wbGVSYXRlKENhcGFiaWxpdHlWYWx1
ZU9yUmFuZ2UobWluU2FtcGxlUmF0ZSwgbWF4U2FtcGxlUmF0ZSkpOwpAQCAtMTgyLDcgKzE4Miw3
IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlOjpzZXR0aW5ncygpCiB7CiAgICAgaWYgKCFtX2N1cnJlbnRTZXR0aW5ncykgewog
ICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7Ci0gICAgICAgIHNl
dHRpbmdzLnNldERldmljZUlkKGlkKCkpOworICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZCho
YXNoZWRJZCgpKTsKIAogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHMgc3VwcG9ydGVkQ29uc3RyYWludHM7CiAgICAgICAgIHN1cHBvcnRlZENvbnN0cmFpbnRz
LnNldFN1cHBvcnRzRGV2aWNlSWQodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggNzU5ZTgxNDcxMTUyN2FlZmQ1ZjBkZTBjZTZk
YWIwNjA1MDQ0MDBmMS4uZmEzNDE5NGRhMmUzNWNkZTBhMWZlZGVkZTlmZWVlNjRkNmQ4ZmZkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaApA
QCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdTdHJlYW1lckF1
ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2
aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyopOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBdWRpb0Nh
cHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBvdmVycmlkZTsKQEAgLTQwLDggKzQwLDggQEAg
cHVibGljOgogICAgIEdTdHJlYW1lckNhcHR1cmVyKiBjYXB0dXJlcigpIHsgcmV0dXJuIG1fY2Fw
dHVyZXIuZ2V0KCk7IH0KIAogcHJvdGVjdGVkOgotICAgIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlKTsKLSAgICBHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZSwgU3RyaW5n
JiYgaGFzaFNhbHQpOworICAgIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogICAgIHZpcnR1YWwg
fkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSgpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApp
bmRleCAyMDlkYjY1OTc5Mjc2Mzg1ZWRjMTIxMzM2ZTYxMmQ4OGMxZDQ5ZmRlLi5lNzlhMzU3Y2I0
ZWQ0Nzg0ODU1NWE1MmQ4OTQxNjJiYzE3NGNmZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTQsOSArNTQsOSBAQCBzdGF0
aWMgdm9pZCBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKQogCiBjbGFzcyBHU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2VGYWN0b3J5IGZpbmFsIDogcHVibGljIFZpZGVvQ2FwdHVyZUZhY3Rvcnkg
ewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVv
Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hT
YWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKICAgICB7Ci0g
ICAgICAgIHJldHVybiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2Uu
cGVyc2lzdGVudElkKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIEdTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9
LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKQEAgLTgxLDcg
KzgxLDcgQEAgRGlzcGxheUNhcHR1cmVGYWN0b3J5JiBsaWJXZWJSVENEaXNwbGF5Q2FwdHVyZVNv
dXJjZUZhY3RvcnkoKQogICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwogfQogCi1DYXB0dXJlU291
cmNlT3JFcnJvciBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1
cmVTb3VyY2VPckVycm9yIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpCiB7CiAgICAgYXV0byBkZXZpY2UgPSBHU3RyZWFtZXJWaWRlb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5nc3RyZWFtZXJEZXZpY2VXaXRoVUlEKGRldmljZUlE
KTsKICAgICBpZiAoIWRldmljZSkgewpAQCAtODksNyArODksNyBAQCBDYXB0dXJlU291cmNlT3JF
cnJvciBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRl
dmljZUlELAogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShlcnJv
ck1lc3NhZ2UpKTsKICAgICB9CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGRldmljZS52YWx1ZSgpKSk7CisgICAgYXV0byBzb3Vy
Y2UgPSBhZG9wdFJlZigqbmV3IEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UudmFs
dWUoKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKIAogICAgIGlmIChjb25zdHJhaW50cykgewogICAg
ICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMp
OwpAQCAtMTA5LDE1ICsxMDksMTUgQEAgRGlzcGxheUNhcHR1cmVGYWN0b3J5JiBHU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BsYXlGYWN0b3J5KCkKICAgICByZXR1cm4gbGliV2ViUlRD
RGlzcGxheUNhcHR1cmVTb3VyY2VGYWN0b3J5KCk7CiB9CiAKLUdTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNl
SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgZ2NoYXIgKnNvdXJjZV9mYWN0b3J5KQotICAg
IDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2VJRCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8sIG5hbWUpCitHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIGNvbnN0IGdjaGFyICpzb3VyY2VfZmFjdG9yeSkKKyAgICA6IFJlYWx0aW1l
TWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fY2FwdHVy
ZXIoc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVyPihzb3VyY2VfZmFjdG9y
eSkpCiB7CiAgICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCk7CiB9CiAKLUdTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKEdTdHJlYW1lckNh
cHR1cmVEZXZpY2UgZGV2aWNlKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2UucGVy
c2lzdGVudElkKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBkZXZpY2UubGFi
ZWwoKSkKK0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlKEdTdHJlYW1lckNhcHR1cmVEZXZpY2UgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCkK
KyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Vmlk
ZW8sIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFi
ZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fY2FwdHVyZXIoc3RkOjptYWtlX3Vu
aXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVyPihkZXZpY2UpKQogewogICAgIGluaXRpYWxpemVH
U3RyZWFtZXJEZWJ1ZygpOwpAQCAtMjQyLDcgKzI0Miw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0
aWVzCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBjYXBhYmlsaXRpZXMuc2V0
RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNoZWRJ
ZCgpKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNldFdpZHRoKENhcGFiaWxpdHlWYWx1ZU9yUmFu
Z2UobWluV2lkdGgsIG1heFdpZHRoKSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRIZWlnaHQo
Q2FwYWJpbGl0eVZhbHVlT3JSYW5nZShtaW5IZWlnaHQsIG1heEhlaWdodCkpOwogICAgICAgICBj
YXBhYmlsaXRpZXMuc2V0RnJhbWVSYXRlKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UobWluRnJhbWVy
YXRlLCBtYXhGcmFtZXJhdGUpKTsKQEAgLTI1Niw3ICsyNTYsNyBAQCBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3Mo
KQogewogICAgIGlmICghbV9jdXJyZW50U2V0dGluZ3MpIHsKICAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwotICAgICAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChp
ZCgpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAKICAgICAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIHN1cHBvcnRlZENvbnN0
cmFpbnRzOwogICAgICAgICBzdXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0RldmljZUlk
KHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZS5oCmluZGV4IDY3YmNkMWEyMGFiMDFkM2U3MTZhMDA2NzJhY2Y3MWI1OTMwNDg3NzcuLjIzMWVk
NGFhMzA3YmZmZDBiNWU3ZjlhZjc3OWI3OGU3MjU5ZDUzODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1
cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UgOiBw
dWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9y
eSgpOwogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgpAQCAtNDEsOCArNDEsOCBAQCBw
dWJsaWM6CiAgICAgR1N0cmVhbWVyQ2FwdHVyZXIqIGNhcHR1cmVyKCkgeyByZXR1cm4gbV9jYXB0
dXJlci5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgZ2No
YXIgKiBzb3VyY2VfZmFjdG9yeSk7Ci0gICAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKEdT
dHJlYW1lckNhcHR1cmVEZXZpY2UpOworICAgIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0
IGdjaGFyICogc291cmNlX2ZhY3RvcnkpOworICAgIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAgdmlydHVh
bCB+R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKCk7CiAgICAgdm9pZCBzdGFydFByb2R1Y2lu
Z0RhdGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKaW5kZXggOWYwMWU2NzEyMDIwYjFhZmMwMzlmZmVmYzBmMDc2ZWJkZjU1NzRkOC4u
ZmQ1MmViZjQ5NmU3YjFlNjk3Njk2Yjg1ZGFhYzYxNTc2YTA2MWFkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJB
dWRpb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAt
MzAsMTYgKzMwLDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV3JhcHBlZE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlIDogcHVibGljIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIHsKIHB1
YmxpYzoKLSAgICBXcmFwcGVkTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgICAgICA6IE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlKGRldmljZUlELCBuYW1lKQorICAgIFdyYXBwZWRNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisg
ICAgICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1v
dmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgIHsKICAgICB9CiB9OwogCi1DYXB0dXJl
U291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSUQsCi0gICAgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsCisgICAgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewot
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJl
U291cmNlKGRldmljZUlELCBuYW1lKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IE1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1v
dmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CiAKICAgICBpZiAoY29uc3RyYWludHMgJiYg
c291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC01OCw5ICs1OCw5IEBAIHZvaWQgTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjCiAgICAgbV93cmFw
cGVkU291cmNlLT5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLCBXVEZNb3ZlKHN1Y2Nlc3NI
YW5kbGVyKSwgV1RGTW92ZShmYWlsdXJlSGFuZGxlcikpOwogfQogCi1Nb2NrR1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IEdTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgbmFtZSkKLSAgICAsIG1fd3JhcHBlZFNvdXJjZShzdGQ6
Om1ha2VfdW5pcXVlPFdyYXBwZWRNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4oZGV2aWNlSUQsIG5h
bWUpKQorTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6TW9ja0dTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQpCisgICAgOiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nIHsgZGV2
aWNlSUQgfSwgU3RyaW5nIHsgbmFtZSB9LCBTdHJpbmcgeyBoYXNoU2FsdCB9KQorICAgICwgbV93
cmFwcGVkU291cmNlKHN0ZDo6bWFrZV91bmlxdWU8V3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlPihXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkp
KQogewogICAgIG1fd3JhcHBlZFNvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmgKaW5k
ZXggYjU3MTgxZDlhMWM5YzlhZDcwZjFmNTY2NzlkMzc1NWU0NTRiMTA4My4uOGE0YmJlODVmMzc3
ZGU2NzA2NGE5MDhlYjQxNjE1NjJmYTRkNjdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVT
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC0yOSw3ICsyOSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJj
ZSBmaW5hbCA6IHB1YmxpYyBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UsIFJlYWx0aW1lTWVk
aWFTb3VyY2U6Ok9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSk7Cisg
ICAgTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogICAgIH5Nb2NrR1N0cmVhbWVyQXVkaW9D
YXB0dXJlU291cmNlKCk7CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJp
bmc+PiBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmKTsKICAgICB2b2lk
IGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFN1Y2Nlc3NIYW5kbGVy
JiYsIEZhaWx1cmVIYW5kbGVyJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDQ0ZDk0Y2MyN2UzMjY3
MmJiNGM0NDIwNjM1MzFiYzgyZjJiY2Y0Y2IuLmNiMzA2OTY2MDlkYmQ4OGY4NjJmMGJlYWI2YTk5
ZmRmMjZhODllZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTMzLDggKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBXcmFwcGVkTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UgewogcHVibGljOgotICAgIFdyYXBwZWRNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0g
ICAgICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoZGV2aWNlSUQsIG5hbWUpCisgICAgV3Jh
cHBlZE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBu
YW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICAgICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAg
ICAgewogICAgIH0KIApAQCAtNjEsMTAgKzYxLDEwIEBAIHB1YmxpYzoKICAgICB9CiB9OwogCi1D
YXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSUQsCi0gICAgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsCisgICAgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrR1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlKGRldmljZUlELCBuYW1lKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJl
ZigqbmV3IE1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShkZXZpY2VJRCks
IFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CiAKICAgICBpZiAoY29uc3RyYWlu
dHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHJl
dHVybiB7IH07CkBAIC05NSw5ICs5NSw5IEBAIHZvaWQgTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICB9
CiB9CiAKLU1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6Ok1vY2tHU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1l
KQotICAgIDogR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGRldmljZUlELCBuYW1lLCAiYXBw
c3JjIikKLSAgICAsIG1fd3JhcHBlZFNvdXJjZShzdGQ6Om1ha2VfdW5pcXVlPFdyYXBwZWRNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZT4oZGV2aWNlSUQsIG5hbWUpKQorTW9ja0dTdHJlYW1lclZpZGVv
Q2FwdHVyZVNvdXJjZTo6TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nIHsgZGV2aWNlSUQgfSwgU3RyaW5nIHsgbmFtZSB9
LCBTdHJpbmcgeyBoYXNoU2FsdCB9LCAiYXBwc3JjIikKKyAgICAsIG1fd3JhcHBlZFNvdXJjZShz
dGQ6Om1ha2VfdW5pcXVlPFdyYXBwZWRNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4oV1RGTW92ZShk
ZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSkKIHsKICAgICBtX3dy
YXBwZWRTb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGQwOGFhNDg5OTU4
NWU5YTMzNWQyOTM3ZWM3MTNmY2Q4OTc5YzVmNWQuLmMyNDg2MzIzYjMxYTNlZTVmZDQ0NjE0OTEx
ZDg4YjZkYTNjZWY5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBXcmFwcGVkTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U7CiAvLyB0byB0aGUgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2Ug
Y2xhc3MgYnkgd3JhcHBpbmcgb3VyIG93biBzdWJjbGFzcyBvZiBpdC4KIGNsYXNzIE1vY2tHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UgZmluYWwgOiBwdWJsaWMgR1N0cmVhbWVyVmlkZW9DYXB0
dXJlU291cmNlLCBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAg
TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBj
b25zdCBTdHJpbmcmIG5hbWUpOworICAgIE1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2Uo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKICAg
ICB+TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNv
bnN0cmFpbnRzJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMmLCBTdWNjZXNzSGFuZGxlciYmLCBGYWlsdXJlSGFuZGxlciYmKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggZDM4ZTFhZTYyNjUwYTZlMzY0NzNiMTFjYjFlYzlm
MWUwMTQyMmUyOS4uM2I0OWY0NmZkYTNlYzMyNmM3Mzg1MTczZmE2Y2QyN2VjZjI5ZWY2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgUGl4ZWxC
dWZmZXJSZXNpemVyOwogCiBjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFs
dGltZVZpZGVvU291cmNlLCBwcml2YXRlIE9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IEF0
b21pY1N0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVv
Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24o
QVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVCdWZmZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24q
KTsKIAogcHJpdmF0ZToKLSAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2Uq
LCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1
cmVEZXZpY2UqLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpOwogICAgIHZpcnR1YWwg
fkFWVmlkZW9DYXB0dXJlU291cmNlKCk7CiAKICAgICBib29sIHNldHVwU2Vzc2lvbigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDRjYjJmOTM5N2VhY2MxNWY3NmRiZGY0YjYz
NzgwODkyODUwMzVlZDAuLjUxOTYwODIyMmU2NjE0YWIyZWRjZWMyM2YzNTAwOTA3NTlkMTE5MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTE1MCwxMyArMTUwLDEzIEBAIHB1
YmxpYzoKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlRm9ybWF0VHlwZT4gZm9ybWF0Owog
fTsKIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3Ry
aW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKIHsKICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlZGVmICpkZXZpY2UgPSBbZ2V0QVZD
YXB0dXJlRGV2aWNlQ2xhc3MoKSBkZXZpY2VXaXRoVW5pcXVlSUQ6aWRdOwogICAgIGlmICghZGV2
aWNlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgaWQpKTsKKyAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGlkKSwg
V1RGTW92ZShoYXNoU2FsdCkpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0
byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKICAgICAg
ICAgaWYgKHJlc3VsdCkKQEAgLTE2Niw4ICsxNjYsOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0
CiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAK
LUFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZp
Y2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCi0gICAgOiBSZWFsdGlt
ZVZpZGVvU291cmNlKGlkLCBkZXZpY2UubG9jYWxpemVkTmFtZSkKK0FWVmlkZW9DYXB0dXJlU291
cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2Us
IFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1lVmlkZW9Tb3Vy
Y2UoZGV2aWNlLmxvY2FsaXplZE5hbWUsIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkK
ICAgICAsIG1fb2JqY09ic2VydmVyKGFkb3B0TlMoW1tXZWJDb3JlQVZWaWRlb0NhcHR1cmVTb3Vy
Y2VPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiAgICAgLCBtX2Rldmlj
ZShkZXZpY2UpCiB7CkBAIC0xNzcsOCArMTc3LDYgQEAgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFW
VmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgY29uc3QK
ICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PGludD4oSW50ZXJydXB0aW9uUmVhc29uOjpW
aWRlb0luVXNlKSA9PSBBVkNhcHR1cmVTZXNzaW9uSW50ZXJydXB0aW9uUmVhc29uVmlkZW9EZXZp
Y2VJblVzZUJ5QW5vdGhlckNsaWVudCwgIkludGVycnVwdGlvblJlYXNvbjo6VmlkZW9JblVzZSBp
cyBub3QgQVZDYXB0dXJlU2Vzc2lvbkludGVycnVwdGlvblJlYXNvblZpZGVvRGV2aWNlSW5Vc2VC
eUFub3RoZXJDbGllbnQgYXMgZXhwZWN0ZWQiKTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PGludD4oSW50ZXJydXB0aW9uUmVhc29uOjpBdWRpb0luVXNlKSA9PSBBVkNhcHR1cmVTZXNz
aW9uSW50ZXJydXB0aW9uUmVhc29uQXVkaW9EZXZpY2VJblVzZUJ5QW5vdGhlckNsaWVudCwgIklu
dGVycnVwdGlvblJlYXNvbjo6QXVkaW9JblVzZSBpcyBub3QgQVZDYXB0dXJlU2Vzc2lvbkludGVy
cnVwdGlvblJlYXNvbkF1ZGlvRGV2aWNlSW5Vc2VCeUFub3RoZXJDbGllbnQgYXMgZXhwZWN0ZWQi
KTsKICNlbmRpZgotCi0gICAgc2V0UGVyc2lzdGVudElEKFN0cmluZyhkZXZpY2UudW5pcXVlSUQp
KTsKIH0KIAogQVZWaWRlb0NhcHR1cmVTb3VyY2U6On5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpCkBA
IC0yNjAsNyArMjU4LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MoKQogICAgIGF1dG8mIHNpemUgPSB0aGlzLT5zaXpl
KCk7CiAgICAgc2V0dGluZ3Muc2V0V2lkdGgoc2l6ZS53aWR0aCgpKTsKICAgICBzZXR0aW5ncy5z
ZXRIZWlnaHQoc2l6ZS5oZWlnaHQoKSk7Ci0gICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7
CisgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAKICAgICBSZWFsdGltZU1l
ZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgc3VwcG9ydGVkQ29uc3RyYWludHM7CiAgICAg
c3VwcG9ydGVkQ29uc3RyYWludHMuc2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKQEAgLTI4Myw3
ICsyODEsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKICAgICAgICAgcmV0dXJuICptX2NhcGFiaWxp
dGllczsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVz
KHNldHRpbmdzKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7Ci0gICAgY2FwYWJpbGl0aWVzLnNl
dERldmljZUlkKGlkKCkpOworICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNoZWRJZCgp
KTsKIAogICAgIEFWQ2FwdHVyZURldmljZVR5cGVkZWYgKnZpZGVvRGV2aWNlID0gZGV2aWNlKCk7
CiAgICAgaWYgKFt2aWRlb0RldmljZSBwb3NpdGlvbl0gPT0gQVZDYXB0dXJlRGV2aWNlUG9zaXRp
b25Gcm9udCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA4NTlkNzM4
YTk0ZjkwMjVmZTdlNGIwNmRiODU5YTQxNTBhODgxZTFhLi5jOWVhNTg4MjI1NzlkOGMwYjBhODFm
ZGVkMWY5MTZlZWM1YTczNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3Bw
CkBAIC02OTQsMjAgKzY5NCwyMCBAQCBPU1N0YXR1cyBDb3JlQXVkaW9TaGFyZWRVbml0OjpkZWZh
dWx0T3V0cHV0RGV2aWNlKHVpbnQzMl90KiBkZXZpY2VJRCkKICAgICByZXR1cm4gZXJyOwogfQog
Ci1DYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CitDYXB0dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgYXV0byBkZXZpY2UgPSBD
b3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuY29yZUF1ZGlvRGV2aWNl
V2l0aFVJRChkZXZpY2VJRCk7CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShkZXZpY2VJRCwgZGV2aWNlLT5sYWJlbCgpLCBkZXZpY2UtPmRldmljZUlEKCkpKTsKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3Zl
KGRldmljZUlEKSwgU3RyaW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBkZXZpY2UtPmRldmljZUlEKCkpKTsKICNlbGlmIFBMQVRGT1JNKElPUykKLSAgICBhdXRvIGRl
dmljZSA9IEFWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmF1
ZGlvU2Vzc2lvbkRldmljZVdpdGhVSUQoZGV2aWNlSUQpOworICAgIGF1dG8gZGV2aWNlID0gQVZB
dWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuYXVkaW9TZXNzaW9u
RGV2aWNlV2l0aFVJRChXVEZNb3ZlKGRldmljZUlEKSk7CiAgICAgaWYgKCFkZXZpY2UpCiAgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgZGV2aWNlLT5sYWJlbCgpLCAwKSk7CisgICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShk
ZXZpY2VJRCksIFN0cmluZyB7IGRldmljZS0+bGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwg
MCkpOwogI2VuZGlmCiAKICAgICBpZiAoY29uc3RyYWludHMpIHsKQEAgLTc3NCw4ICs3NzQsOCBA
QCBBdWRpb0NhcHR1cmVGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkK
ICAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OnNpbmdsZXRvbigpOwog
fQogCi1Db3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIHVpbnQzMl90IHBlcnNpc3Rl
bnRJRCkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvLCBsYWJlbCkKK0NvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OkNvcmVB
dWRpb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJp
bmcmJiBoYXNoU2FsdCwgdWludDMyX3QgcGVyc2lzdGVudElEKQorICAgIDogUmVhbHRpbWVNZWRp
YVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShsYWJlbCks
IFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fY2FwdHVyZURl
dmljZUlEKHBlcnNpc3RlbnRJRCkKIHsKICAgICBhdXRvJiB1bml0ID0gQ29yZUF1ZGlvU2hhcmVk
VW5pdDo6c2luZ2xldG9uKCk7CkBAIC04NDUsNyArODQ1LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVz
KCkKIHsKICAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKHNldHRpbmdzKCkuc3VwcG9ydGVkQ29uc3Ry
YWludHMoKSk7Ci0gICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAg
ICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwogICAgICAgICBjYXBhYmls
aXRpZXMuc2V0RWNob0NhbmNlbGxhdGlvbihSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
OjpFY2hvQ2FuY2VsbGF0aW9uOjpSZWFkV3JpdGUpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0
Vm9sdW1lKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMC4wLCAxLjApKTsKICAgICAgICAgY2FwYWJp
bGl0aWVzLnNldFNhbXBsZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSg4MDAwLCA5NjAwMCkp
OwpAQCAtODYwLDcgKzg2MCw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MoKQogICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgICAgIHNldHRpbmdzLnNldFZvbHVtZSh2b2x1
bWUoKSk7CiAgICAgICAgIHNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSgpKTsKLSAg
ICAgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIHNldHRpbmdzLnNldERl
dmljZUlkKGhhc2hlZElkKCkpOwogICAgICAgICBzZXR0aW5ncy5zZXRMYWJlbChuYW1lKCkpOwog
ICAgICAgICBzZXR0aW5ncy5zZXRFY2hvQ2FuY2VsbGF0aW9uKGVjaG9DYW5jZWxsYXRpb24oKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGU1ZjFhNGYxMDU2MGVjNjY4
NTdmMmYxODk1MmYwYmIzZjhkMzI4YjQuLjA2YjVmNjQ2ZWY2MjA3ZTI1OTU4MGVlYzc0YmJiMjU0
OWEwMjgxNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNTUsNyArNTUs
NyBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKIGNsYXNzIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6CiAK
LSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2
aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBoYXNoU2FsdCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlv
Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzY2hlZHVsZVJlY29uZmlndXJhdGlvbigpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcm
IGxhYmVsLCB1aW50MzJfdCBwZXJzaXN0ZW50SUQpOworICAgIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGxhYmVsLCBTdHJpbmcmJiBoYXNoU2FsdCwg
dWludDMyX3QgcGVyc2lzdGVudElEKTsKICAgICB2aXJ0dWFsIH5Db3JlQXVkaW9DYXB0dXJlU291
cmNlKCk7CiAKIHByaXZhdGU6CkBAIC0xMjYsOSArMTI2LDkgQEAgcHVibGljOgogI2VuZGlmCiAK
IHByaXZhdGU6Ci0gICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpIGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lz
dGVudElkKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZSho
YXNoU2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYS5jcHAKaW5kZXggZGM2YTE4YjU0YTIwNjRlMjBhYTIzODgxNWJkYzIy
NTMyODg3Yjk3MC4uMzczZDBmOGE1M2E1ZTZhNmVhNGM3ZTRiZGY5NzZkOGVkZDk1NDQxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcApAQCAtNTIsNyArNTIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBEaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFN0cmluZyYmIG5hbWUp
Ci0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKCIiLCBUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1l
KSkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSkp
CiAgICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJkRpc3BsYXlDYXB0dXJl
U291cmNlQ29jb2E6OmVtaXRGcmFtZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYS5oCmluZGV4IDI0ZGRjNjdkMmI3MGI5NDkzNTU2NDUxYTlhYjQ4YWIyMmZlMzA4MmQu
LmJmZTQwYjg2MDU4MWYxY2RiOTMxYjM1Y2JmNDdmZjA3MmMzYmFhYTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBEaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGlj
OgogCiBwcm90ZWN0ZWQ6Ci0gICAgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShTdHJpbmcmJik7
CisgICAgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShTdHJpbmcmJiBuYW1lKTsKICAgICB2aXJ0
dWFsIH5EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKCk7CiAKICAgICB2aXJ0dWFsIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBnZW5lcmF0ZUZyYW1lKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2VNYWMuaAppbmRleCA5OWQ3OGVlYzdjNzAyZWNkMTZlY2ZkYTBiODRk
MGM1NmI5ZDRmM2JjLi41MjA4YjI2MmEzYzAzNzdmNjI4M2MzMGFjMmNhODM1NmM0MmYzZGJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMuaApAQCAtNDgsNyArNDgsNyBA
QCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKIGNsYXNzIE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlTWFjIGZpbmFsIDogcHVibGljIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIHsK
IHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOwotICAg
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0
IFN0cmluZyYgbmFtZSk7CisgICAgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMoU3RyaW5nJiYg
ZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KTsKIAogICAgIHZvaWQg
c2V0dGluZ3NEaWRDaGFuZ2UoT3B0aW9uU2V0PFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6
RmxhZz4pIGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPGludD4+IGRpc2NyZXRlU2Ft
cGxlUmF0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB7IHsgNDQxMDAsIDQ4MDAwIH0gfTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCmluZGV4IDBjOGE0YmRlMjA1
YzliOWIyYWIyYTg4ODk3NmJjOTc0OWMzMzcxYWMuLjc2NzY2MDY3ZTY2YzE0MDk5N2QwZmVlMzdj
NTlmNjdkNTdiYTJkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMu
bW0KQEAgLTg2LDkgKzg2LDE2IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShmbG9hdCBhbXBsaXR1ZGUs
IGZsb2F0IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3QKICAgICB9CiB9CiAK
LUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMo
ZGV2aWNlSUQsIG5hbWUpKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgYXV0byBkZXZpY2UgPSBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2
aWNlSUQpOworICAgIEFTU0VSVChkZXZpY2UpOworICAgIGlmICghZGV2aWNlKQorICAgICAgICBy
ZXR1cm4geyB9OworI2VuZGlmCisKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSks
IFdURk1vdmUoaGFzaFNhbHQpKSk7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXBvcnQgZXJy
b3IgbWVzc2FnZXMKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFp
bnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC05Niw4ICsxMDMsOCBA
QCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbgogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJv
cihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYzo6TW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lKQotICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoZGV2aWNlSUQsIG5hbWUp
CitNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMo
U3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQorICAg
IDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFt
ZSksIFdURk1vdmUoaGFzaFNhbHQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYy5oCmluZGV4IDBiNmUwYWI0NzI1MjQ5NWM1YjU1MGI2OGY0ZDI3Y2U3OTlmMTkz
MTQuLjljNzRkZGUxODMxZTQ3MWExMDc2MDFiMDNlNjY1NDdjNzY5YTA4ZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U7Ci0g
ICAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKKyAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCiAgICAgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBDTVNhbXBsZUJ1ZmZlckZyb21QaXhlbEJ1ZmZlcihD
VlBpeGVsQnVmZmVyUmVmKTsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxC
dWZmZXJGcm9tQ0dJbWFnZShDR0ltYWdlUmVmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYy5tbQppbmRleCA0MzE2M2E5NWEwOGIwYzAyNmJkNzUwZjI5YTkyMTMx
NmFhY2Q0YzAyLi4yM2ExNjk2MmI1Mzk0MTg0YzVmNjU0ZTllYzVlMWQxZmU5MGNkMjlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCkBAIC01Myw5ICs1MywxNiBA
QCB1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBzdGF0aWMgY29uc3QgaW50IHZpZGVvU2FtcGxlUmF0
ZSA9IDkwMDAwOwogCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjKGRldmljZUlELCBuYW1lKSk7CisjaWZuZGVmIE5ERUJVRworICAgIGF1dG8g
ZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVy
c2lzdGVudElEKGRldmljZUlEKTsKKyAgICBBU1NFUlQoZGV2aWNlKTsKKyAgICBpZiAoIWRldmlj
ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyNlbmRpZgorCisgICAgYXV0byBzb3VyY2UgPSBhZG9w
dFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFdURk1vdmUoZGV2aWNlSUQpLCBX
VEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+
YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQogICAgICAgICByZXR1cm4geyB9OwpAQCAt
NjMsOCArNzAsOCBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbgogICAgIHJldHVybiBDYXB0dXJl
U291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoZGV2
aWNlSUQsIG5hbWUpCitNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0KQorICAgIDogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCks
IFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggZjhlYzZjODU2NzIzOGU2ZTA0
Y2I3MDQxY2ExMTgwYjU1MDNiNWJjMC4uOGJlNDAyMmZlOGZhODEwNjk3MDEwZDFhMGFkNjFlMGI5
ODMzZmIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNw
cApAQCAtNDgsMTAgKzQ4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVmlkZW9D
YXB0dXJlU291cmNlRmFjdG9yeU1hYyBmaW5hbCA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5
IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRl
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNo
U2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCiAgICAgewog
ICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpDYW1lcmEpOwotICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShk
ZXZpY2UucGVyc2lzdGVudElkKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgcmV0dXJuIEFWVmlk
ZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0s
IFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0o
SU9TKQpAQCAtNzUsMTEgKzc1LDExIEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNoIChkZXZpY2Uu
dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVu
OgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgICAgIHJldHVybiBTY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYzo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMp
OworICAgICAgICAgICAgcmV0dXJuIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVh
dGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIGNvbnN0cmFpbnRzKTsKICNlbmRp
ZgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKICNpZiBQ
TEFURk9STShNQUMpCi0gICAgICAgICAgICByZXR1cm4gV2luZG93RGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWM6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCksIGNvbnN0cmFpbnRzKTsKKyAgICAg
ICAgICAgIHJldHVybiBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBjb25zdHJhaW50cyk7CiAjZW5kaWYKICAgICAg
ICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBcHBsaWNhdGlvbjoKICAgICAgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpCcm93c2VyOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJl
U291cmNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaAppbmRleCA2ZTJlYWI4MWMwNDc2ZDQ3YWMyNDc5
YTY5ODI2MDU5ZGE3ZTRhZTM2Li5lYzkyMGYwMjRhNTY4OTkyMDA5NDQ5NDQ0N2Q3MmJlZTYzMjkw
ZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaApAQCAt
NDEsMTMgKzQxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWMgOiBwdWJsaWMgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJp
bmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZShTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gc2NyZWVuQ2FwdHVyZURldmljZVdp
dGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIHZvaWQgc2NyZWVuQ2Fw
dHVyZURldmljZXMoVmVjdG9yPENhcHR1cmVEZXZpY2U+Jik7CiAKIHByaXZhdGU6Ci0gICAgU2Ny
ZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWModWludDMyX3QpOworICAgIFNjcmVlbkRpc3BsYXlD
YXB0dXJlU291cmNlTWFjKHVpbnQzMl90LCBTdHJpbmcmJik7CiAgICAgdmlydHVhbCB+U2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMoKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpc3BsYXlSZWNv
bmZpZ3VyYXRpb25DYWxsQmFjayhDR0RpcmVjdERpc3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3Vt
bWFyeUZsYWdzLCB2b2lkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWMubW0KaW5kZXggYmY2ZDcyYWQ5OGRkMTYxMTc4MjBjNTA4N2MzOGQ3MjFjNTczN2ZhYi4u
YTIzOGYyOGY5NzViODQwODM0Mjc3ZThiMGMyZGVkYzE5Y2FiZTQ0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJl
U291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQpAQCAtNzYsMTIgKzc2LDEyIEBAIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPENHRGlyZWN0RGlzcGxheUlEPiB1cGRhdGVEaXNwbGF5SUQoQ0dE
aXJlY3REaXNwbGF5SUQgZGlzcGxhCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAotQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpj
cmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKQogewogICAgIGJvb2wgb2s7CiAgICAgYXV0byBkaXNwbGF5SUQgPSBkZXZpY2VJRC50b1VJ
bnRTdHJpY3QoJm9rKTsKICAgICBpZiAoIW9rKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlh
LCAiRGlzcGxheSBJRCBkb2VzIG5vdCBjb252ZXJ0IHRvIDMyLWJpdCBpbnRlZ2VyIik7CisgICAg
ICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNy
ZWF0ZTogRGlzcGxheSBJRCBkb2VzIG5vdCBjb252ZXJ0IHRvIDMyLWJpdCBpbnRlZ2VyIik7CiAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC04OSwxNSArODksMTUgQEAgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShjb25zdCBT
dHJpbmcmIGRldmljZUkKICAgICBpZiAoIWFjdHVhbERpc3BsYXlJRCkKICAgICAgICAgcmV0dXJu
IHsgfTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYyhhY3R1YWxEaXNwbGF5SUQudmFsdWUoKSkpOworICAgIGF1dG8gc291cmNl
ID0gYWRvcHRSZWYoKm5ldyBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyhhY3R1YWxEaXNw
bGF5SUQudmFsdWUoKSwgIlNjcmVlbiJfcykpOyAvLyBGSVhNRTogZmlndXJlIG91dCB3aGF0IHRp
dGxlIHRvIHVzZQogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWlu
dHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIHJldHVybiBDYXB0
dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1TY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYzo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWModWludDMyX3QgZGlz
cGxheUlEKQotICAgIDogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSgiU2NyZWVuIikgLy8gRklY
TUU6IGZpZ3VyZSBvdXQgd2hhdCB0byBjYWxsIHRoaXMKK1NjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50MzJfdCBkaXNwbGF5SUQs
IFN0cmluZyYmIHRpdGxlKQorICAgIDogRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYShXVEZNb3Zl
KHRpdGxlKSkKICAgICAsIG1fZGlzcGxheUlEKGRpc3BsYXlJRCkKIHsKIH0KQEAgLTEyMiw3ICsx
MjIsNyBAQCBib29sIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5
U3RyZWFtKCkKIAogICAgIGlmIChtX2Rpc3BsYXlJRCAhPSBhY3R1YWxEaXNwbGF5SUQudmFsdWUo
KSkgewogICAgICAgICBtX2Rpc3BsYXlJRCA9IGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpOwotICAg
ICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpj
cmVhdGVEaXNwbGF5U3RyZWFtKCVwKSwgZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVkIiwgdGhpcywg
c3RhdGljX2Nhc3Q8aW50PihtX2Rpc3BsYXlJRCkpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRp
YSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtOiBk
aXNwbGF5IElEIGNoYW5nZWQgdG8gJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KG1fZGlzcGxheUlEKSk7
CiAgICAgfQogCiAgICAgaWYgKCFtX2Rpc3BsYXlTdHJlYW0pIHsKQEAgLTEzMCw3ICsxMzAsNyBA
QCBib29sIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFt
KCkKICAgICAgICAgYXV0byBzY3JlZW5XaWR0aCA9IENHRGlzcGxheU1vZGVHZXRQaXhlbHNXaWRl
KGRpc3BsYXlNb2RlLmdldCgpKTsKICAgICAgICAgYXV0byBzY3JlZW5IZWlnaHQgPSBDR0Rpc3Bs
YXlNb2RlR2V0UGl4ZWxzSGlnaChkaXNwbGF5TW9kZS5nZXQoKSk7CiAgICAgICAgIGlmICghc2Ny
ZWVuV2lkdGggfHwgIXNjcmVlbkhlaWdodCkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0coTWVk
aWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSgl
cCksIHVuYWJsZSB0byBnZXQgc2NyZWVuIHdpZHRoL2hlaWdodCIsIHRoaXMpOworICAgICAgICAg
ICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3Jl
YXRlRGlzcGxheVN0cmVhbTogdW5hYmxlIHRvIGdldCBzY3JlZW4gd2lkdGgvaGVpZ2h0Iik7CiAg
ICAgICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KQEAgLTE2OCw3ICsxNjgsNyBAQCBib29sIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291
cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKCkKICAgICAgICAgYXV0byBzaXplID0gZnJhbWVT
aXplKCk7CiAgICAgICAgIG1fZGlzcGxheVN0cmVhbSA9IGFkb3B0Q0YoQ0dEaXNwbGF5U3RyZWFt
Q3JlYXRlV2l0aERpc3BhdGNoUXVldWUobV9kaXNwbGF5SUQsIHNpemUud2lkdGgoKSwgc2l6ZS5o
ZWlnaHQoKSwga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhQbGFuYXIsIHN0cmVhbU9wdGlv
bnMuZ2V0KCksIG1fY2FwdHVyZVF1ZXVlLmdldCgpLCBtX2ZyYW1lQXZhaWxhYmxlQmxvY2spKTsK
ICAgICAgICAgaWYgKCFtX2Rpc3BsYXlTdHJlYW0pIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
KE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJl
YW0oJXApLCBDR0Rpc3BsYXlTdHJlYW1DcmVhdGUgZmFpbGVkIiwgdGhpcyk7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVh
dGVEaXNwbGF5U3RyZWFtOiBDR0Rpc3BsYXlTdHJlYW1DcmVhdGUgZmFpbGVkIik7CiAgICAgICAg
ICAgICBjYXB0dXJlRmFpbGVkKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
OjpzdGFydERpc3BsYXlTdHJlYW0oKQogCiAgICAgaWYgKG1fZGlzcGxheUlEICE9IGFjdHVhbERp
c3BsYXlJRC52YWx1ZSgpKSB7CiAgICAgICAgIG1fZGlzcGxheUlEID0gYWN0dWFsRGlzcGxheUlE
LnZhbHVlKCk7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbSglcCksIGRpc3BsYXkgSUQgY2hhbmdlZCB0
byAlZCIsIHRoaXMsIHN0YXRpY19jYXN0PGludD4obV9kaXNwbGF5SUQpKTsKKyAgICAgICAgUkVM
RUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6c3RhcnREaXNw
bGF5U3RyZWFtOiBkaXNwbGF5IElEIGNoYW5nZWQgdG8gJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KG1f
ZGlzcGxheUlEKSk7CiAgICAgfQogCiAgICAgaWYgKCFtX2Rpc3BsYXlTdHJlYW0gJiYgIWNyZWF0
ZURpc3BsYXlTdHJlYW0oKSkKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFNjcmVlbkRpc3BsYXlD
YXB0dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW0oKQogCiAgICAgYXV0byBlcnIgPSBD
R0Rpc3BsYXlTdHJlYW1TdGFydChtX2Rpc3BsYXlTdHJlYW0uZ2V0KCkpOwogICAgIGlmIChlcnIp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYzo6c3RhcnREaXNwbGF5U3RyZWFtKCVwKSwgQ0dEaXNwbGF5U3RyZWFtU3RhcnQgZmFpbGVk
IHdpdGggZXJyb3IgJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDxpbnQ+KGVycikpOworICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERp
c3BsYXlTdHJlYW06IENHRGlzcGxheVN0cmVhbVN0YXJ0IGZhaWxlZCB3aXRoIGVycm9yICVkIiwg
c3RhdGljX2Nhc3Q8aW50PihlcnIpKTsKICAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMjc4LDExICsyNzgsMTEgQEAgdm9pZCBTY3JlZW5EaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYzo6ZnJhbWVBdmFpbGFibGUoQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0
dXMgc3QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIGtDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0
YXR1c0ZyYW1lQmxhbms6Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWM6OmZyYW1lQXZhaWxhYmxlKCVwKSwga0NHRGlzcGxheVN0cmVhbUZy
YW1lU3RhdHVzRnJhbWVCbGFuayIsIHRoaXMpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwg
IlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpmcmFtZUF2YWlsYWJsZToga0NHRGlzcGxh
eVN0cmVhbUZyYW1lU3RhdHVzRnJhbWVCbGFuayIpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2Uga0NHRGlzcGxheVN0cmVhbUZyYW1lU3RhdHVzU3RvcHBlZDoKLSAgICAgICAgUkVMRUFTRV9M
T0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6ZnJhbWVBdmFpbGFibGUo
JXApLCBrQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXNTdG9wcGVkIiwgdGhpcyk7CisgICAgICAg
IFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmZyYW1l
QXZhaWxhYmxlOiBrQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXNTdG9wcGVkIik7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VN
YWMuaAppbmRleCBkMDUzM2ZmOGEzOGM0MTFhNmJjYThjM2U1OGM3NWI1N2M2ODYyYzIwLi4xYzRk
Mzc2MGY4OGNmZjVmYTc0Y2QyNzA2NjAzZTY4YTFkM2Q2ZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2lu
ZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaApAQCAtNDAsMTMgKzQwLDEzIEBAIGNsYXNzIFBp
eGVsQnVmZmVyQ29uZm9ybWVyQ1Y7CiAKIGNsYXNzIFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNl
TWFjIDogcHVibGljIERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EgewogcHVibGljOgotICAgIHN0
YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUo
U3RyaW5nJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAogICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPENhcHR1cmVEZXZpY2U+IHdpbmRvd0NhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElE
KGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyB2b2lkIHdpbmRvd0NhcHR1cmVEZXZpY2VzKFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYpOwogCiBwcml2YXRlOgotICAgIFdpbmRvd0Rpc3BsYXlDYXB0
dXJlU291cmNlTWFjKHVpbnQzMl90IHdpbmRvd0lELCBTdHJpbmcmJik7CisgICAgV2luZG93RGlz
cGxheUNhcHR1cmVTb3VyY2VNYWModWludDMyX3QsIFN0cmluZyYmKTsKICAgICB2aXJ0dWFsIH5X
aW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYygpID0gZGVmYXVsdDsKIAogICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBnZW5lcmF0ZUZyYW1lKCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlzcGxheUNhcHR1
cmVTb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KaW5kZXggZTFhYTBiZmQ3ZWFkOTgwNWRi
ZWViZGI4OWMxYmQyYThjNDYyOWQxMS4uMWQ2YTE3Y2Q0MTM4ZmQxZDU2NzJiZjkzMjkzNzA0YmYx
MDE0MTkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5t
bQpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiB3
aW5kb3dEZXNjcmlwdGlvbihDR1dpbmRvd0lEIGlkKQogICAgIHJldHVybiBjaGVja2VkX2NmX2Nh
c3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHdpbmRvd3MuZ2V0KCks
IDApKTsKIH0KIAotQ2FwdHVyZVNvdXJjZU9yRXJyb3IgV2luZG93RGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWM6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHdpbmRvd0lELCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIFdpbmRvd0Rpc3BsYXlDYXB0
dXJlU291cmNlTWFjOjpjcmVhdGUoU3RyaW5nJiYgd2luZG93SUQsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKQogewogICAgIGJvb2wgb2s7CiAgICAgYXV0byBhY3R1YWxJRCA9
IHdpbmRvd0lELnRvVUludFN0cmljdCgmb2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCBjYzM1NDYx
MzM1YWUwN2E3N2ZkMWMxMTZkYmQzMDEwNjViM2M5NTdkLi4zZjQ0ZmQ2MzRjODMwNDYzYzRiZjI0
MTQwOGYyOWZjNTRiOGNhZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDMsMTQgKzQzLDE2IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TKSAmJiAhKFVTRShHU1RSRUFNRVIpICYmIFVTRShMSUJXRUJSVEMpKQotQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRl
dmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogeworI2lmbmRlZiBOREVCVUcK
ICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2
aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CiAgICAgQVNTRVJUKGRldmljZSk7CiAgICAg
aWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7IH07CisjZW5kaWYKIAotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmlj
ZSksIGRldmljZUlELCBuYW1lKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBX
VEZNb3ZlKGhhc2hTYWx0KSkpOwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5
Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtNTgs
MTEgKzYwLDExIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uCiB9CiAjZW5kaWYKIAotTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
ZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBuYW1lKQorTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1lTWVk
aWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFdURk1vdmUobmFtZSks
IFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1fdGltZXIoUnVu
TG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnRpY2spCiB7
Ci0gICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0Rl
dmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOworICAgIGF1dG8gZGV2aWNlID0gTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKHBlcnNp
c3RlbnRJRCgpKTsKICAgICBBU1NFUlQoZGV2aWNlKTsKICAgICBtX2RldmljZSA9ICpkZXZpY2U7
CiB9CkBAIC03OCw3ICs4MCw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYg
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldHRpbmdzKCkKIHsKICAgICBpZiAoIW1fY3VycmVu
dFNldHRpbmdzKSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5n
czsKLSAgICAgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIHNldHRpbmdz
LnNldERldmljZUlkKGhhc2hlZElkKCkpOwogICAgICAgICBzZXR0aW5ncy5zZXRWb2x1bWUodm9s
dW1lKCkpOwogICAgICAgICBzZXR0aW5ncy5zZXRFY2hvQ2FuY2VsbGF0aW9uKGVjaG9DYW5jZWxs
YXRpb24oKSk7CiAgICAgICAgIHNldHRpbmdzLnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZSgpKTsK
QEAgLTEwMCw3ICsxMDIsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
JiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKICAgICBpZiAoIW1fY2Fw
YWJpbGl0aWVzKSB7CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2Fw
YWJpbGl0aWVzKHNldHRpbmdzKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CiAKLSAgICAgICAg
Y2FwYWJpbGl0aWVzLnNldERldmljZUlkKGlkKCkpOworICAgICAgICBjYXBhYmlsaXRpZXMuc2V0
RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRWb2x1bWUoQ2Fw
YWJpbGl0eVZhbHVlT3JSYW5nZSgwLjAsIDEuMCkpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0
RWNob0NhbmNlbGxhdGlvbihSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpFY2hvQ2Fu
Y2VsbGF0aW9uOjpSZWFkV3JpdGUpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0U2FtcGxlUmF0
ZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDQ0MTAwLCA0ODAwMCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCmluZGV4
IDkxZThjMDM2YmRkN2EzM2Q2MjQ5MjA3ZTEzZmQzN2YyYmEwMmVhYjYuLjFkMWQ1YjE4NjcyN2E5
ZWI4NDJiMDliZGViYTI2OTZhY2NlNzg0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKQEAgLTQyLDEyICs0Miwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSA6
IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAogICAgIHZpcnR1YWwg
fk1vY2tSZWFsdGltZUF1ZGlvU291cmNlKCk7CiAKIHByb3RlY3RlZDoKLSAgICBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUp
OworICAgIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcm
JiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0
YSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAKaW5kZXggZjY5NzI4NTY4YjMzMWZiY2Q5NDA3NjI4ZWRiNjA1MzVi
MWEwMjVlMy4uMjllZTNiMGFjOTlhMmQyOWIwZWJiZjM3NGU1NTc4ZTYyY2VmNmIyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTgzLDE1ICs4MywxNCBAQCBzdGF0aWMgaW5saW5l
IFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+IGRlZmF1bHREZXZpY2VzKCkKICAgICB9OwogfQogCi0K
IGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBWaWRlb0NhcHR1
cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRl
b0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFs
CiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpDYW1lcmEpOwogICAgICAgICBBU1NFUlQoTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkNhbWVyYSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpKSk7CiAKLSAgICAgICAgcmV0
dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgp
LCBkZXZpY2UubGFiZWwoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwg
U3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGNvbnN0cmFpbnRz
KTsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xMTMsNyArMTEyLDcgQEAgcHVibGlj
OgogICAgICAgICBzd2l0Y2ggKGRldmljZS50eXBlKCkpIHsKICAgICAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6V2luZG93OgotICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2UubGFiZWwoKSwgY29u
c3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpj
cmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IH0sIFN0cmlu
ZyB7IGRldmljZS5sYWJlbCgpIH0sIGNvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkFwcGxpY2F0aW9uOgogICAg
ICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkJyb3dzZXI6CkBAIC0xMzAsMTIg
KzEyOSwxMiBAQCBwdWJsaWM6CiAKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFjdG9y
eSA6IHB1YmxpYyBBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYg
ZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKKyAgICBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpIGZpbmFsCiAgICAgewogICAgICAgICBBU1NFUlQoZGV2aWNlLnR5cGUo
KSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKICAgICAgICAgQVNT
RVJUKE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNp
c3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCBkZXZpY2UucGVy
c2lzdGVudElkKCkpKTsKIAotICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZS5sYWJlbCgpLCBjb25zdHJhaW50
cyk7CisgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmlu
ZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBX
VEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAKaW5kZXggNWQzZmI5MTM3ODM1MDk2NjU5YWI5MmNjMzI4OTBhMDA3ODU0NDk2NS4uZDQ3MDZi
YzVmZGNiYTYyNGQ4NTY0MmRiN2VmNjg4NGNjZDQ1YTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAg
LTQ5LDE0ICs0OSwxNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRGT1JNKE1B
QykgJiYgIVBMQVRGT1JNKElPUykgJiYgIShVU0UoR1NUUkVBTUVSKSAmJiBVU0UoTElCV0VCUlRD
KSkKLUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsK
KyNpZm5kZWYgTkRFQlVHCiAgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2aWNlSUQpOwogICAgIEFTU0VS
VChkZXZpY2UpOwogICAgIGlmICghZGV2aWNlKQogICAgICAgICByZXR1cm4geyB9OworI2VuZGlm
CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UoV1RGTW92ZShkZXZpY2UpLCBkZXZpY2VJRCwgbmFtZSkpOworICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwg
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKICAgICBpZiAoY29uc3RyYWludHMg
JiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHJldHVy
biB7IH07CiAKQEAgLTY0LDExICs2NiwxMSBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbgogfQog
I2VuZGlmCiAKLU1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBSZWFs
dGltZVZpZGVvU291cmNlKGRldmljZUlELCBuYW1lKQorTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IFJlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShu
YW1lKSwgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9lbWl0
RnJhbWVUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Z2VuZXJhdGVGcmFtZSkKIHsKLSAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7Cisg
ICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0Rldmlj
ZVdpdGhQZXJzaXN0ZW50SUQocGVyc2lzdGVudElEKCkpOwogICAgIEFTU0VSVChkZXZpY2UpOwog
ICAgIG1fZGV2aWNlID0gKmRldmljZTsKIApAQCAtMTIwLDcgKzEyMiw3IEBAIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjYXBh
YmlsaXRpZXMoKQogICAgIGlmICghbV9jYXBhYmlsaXRpZXMpIHsKICAgICAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMoc2V0dGluZ3MoKS5zdXBwb3J0ZWRD
b25zdHJhaW50cygpKTsKIAotICAgICAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaWQoKSk7
CisgICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKICAgICAgICAg
aWYgKG1vY2tDYW1lcmEoKSkgewogICAgICAgICAgICAgY2FwYWJpbGl0aWVzLmFkZEZhY2luZ01v
ZGUoV1RGOjpnZXQ8TW9ja0NhbWVyYVByb3BlcnRpZXM+KG1fZGV2aWNlLnByb3BlcnRpZXMpLmZh
Y2luZ01vZGUpOwogICAgICAgICAgICAgdXBkYXRlQ2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcyk7
CkBAIC0xNTQsNyArMTU2LDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0dGluZ3MoKQogICAgIHNldHRpbmdzLnNldEhlaWdo
dChzaXplLmhlaWdodCgpKTsKICAgICBpZiAoYXNwZWN0UmF0aW8oKSkKICAgICAgICAgc2V0dGlu
Z3Muc2V0QXNwZWN0UmF0aW8oYXNwZWN0UmF0aW8oKSk7Ci0gICAgc2V0dGluZ3Muc2V0RGV2aWNl
SWQoaWQoKSk7CisgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAKICAgICBS
ZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgc3VwcG9ydGVkQ29uc3RyYWlu
dHM7CiAgICAgc3VwcG9ydGVkQ29uc3RyYWludHMuc2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaAppbmRleCAxNDZkMWFhMTM1MDQwMTdiNTA2ZTI0MjQxMTI0ODA1MTI3MzM4ZTVl
Li5iZDNjM2U0NTE5YWY3ZTg1ZmNjYjI2OTgzOWU1ZGI2ZTg5MzBjZjVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CkBAIC00OCwxMCArNDgsMTAgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb1NvdXJjZSB7CiBwdWJsaWM6
CiAKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwor
ICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
Kik7CiAKIHByb3RlY3RlZDoKLSAgICBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBTdHJp
bmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgPSAwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA4ODYw
NTkyNzU2OTA2NTNhMWM1YjkxOWFmNzhhNTFkZWUxNjk3MDc5Li45MmRmYjFiNmFmMDgxYWViYzlm
M2UxMzkxNmQxZTc1MWU2NjI2MTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTI3NjAsNyArMjc2MCw2IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxNZWRpYUNvbnN0cmFpbnRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdl
YkNvcmU6Ok1lCiB7CiAgICAgZW5jb2RlciA8PCBjb25zdHJhaW50Lm1hbmRhdG9yeUNvbnN0cmFp
bnRzCiAgICAgICAgIDw8IGNvbnN0cmFpbnQuYWR2YW5jZWRDb25zdHJhaW50cwotICAgICAgICA8
PCBjb25zdHJhaW50LmRldmljZUlESGFzaFNhbHQKICAgICAgICAgPDwgY29uc3RyYWludC5pc1Zh
bGlkOwogfQogCkBAIC0yNzcyLDcgKzI3NzEsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFD
b25zdHJhaW50cz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpNZWRpYUNvbgog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWlu
dHMgPSBXVEZNb3ZlKCptYW5kYXRvcnlDb25zdHJhaW50cyk7CiAgICAgcmV0dXJuIGRlY29kZXIu
ZGVjb2RlKGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMpCi0gICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGNvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQpCiAgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGNvbnN0cmFpbnRzLmlzVmFsaWQpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCmluZGV4IDcxYTY5MWYxZTFkYmI4YjI0NmY3ZTk3ZDNkODYzY2ZkNDY3YjZm
NWQuLjM4YWFiMjZkYTBmMWViODNlZWQ5NzRkNjE3MmVhMGZlNDQzZWZjODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xMjUsMTUgKzEyNSwxNSBAQCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9wcm9j
ZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
JiBjb25zdHJhaW50cywgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50
cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBib29sJiBzdWNj
ZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNv
dXJjZU9yRXJyb3I7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFjdG9yeSgpLmNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsICZjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJj
ZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0Zh
Y3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvRmFjdG9yeSgpLmNyZWF0
ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsICZjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJj
ZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0Zh
Y3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0
KSwgJmNvbnN0cmFpbnRzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCBmZjBhZThiMWJiOWRhN2E2ZDViNzlkZDdm
YzY4OTAxMjhmODE2OTI2Li5lY2FlYWUyNDgyM2E0MzkxZTY1OWQ1YWViM2ViZDQ3MjRjZWVhZDg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwog
Ci0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAg
ICB2b2lkIGNhcGFiaWxpdGllcyh1aW50NjRfdCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggMjQ4YzQwZmYwMDcxY2EwODc3N2NhZjczZjA4NmQ5YzY3MmUwMmRiMi4uYmQyMTli
Yzk2MDhkMDc0MDY5MTkyMjYwNDNjMDJhNzJhZWEzNWI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKIAogbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSB7
Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmljZSwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50
cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQorICAgIENy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBp
ZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGUgdHlwZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRD
b25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdz
KQogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5n
RGF0YSh1aW50NjRfdCBpZCkKICAgICBDYXBhYmlsaXRpZXModWludDY0X3QgaWQpIC0+IChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCAxODVjMDc0YzlmZDZlZGFkZDk5MWU3
NmFiZWFmZTU5ODg0OTY0NTdjLi42Mjc3NGM5YWI2ZmNjMjU0MDFhZjU1OTg1ZWMwMWI1NDQ5YzBm
Yzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0zMzYsOSArMzM2
LDYgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgKICAgICAgICAgaWYgKCFtX3BhZ2UuaXNWYWxp
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICAgICAgbG9jYWxVc2VyUmVx
dWVzdC5hdWRpb0NvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQ7Ci0gICAgICAgIGxvY2FsVXNlclJlcXVlc3QudmlkZW9Db25zdHJhaW50cy5kZXZp
Y2VJREhhc2hTYWx0ID0gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OwotCiAgICAgICAgIHN5bmNX
aXRoV2ViQ29yZVByZWZzKCk7CiAgICAgICAgIAogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3ZlKHZh
bGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGxvY2FsVXNlclJl
cXVlc3QpLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHAKaW5kZXggN2M3ZjY2Nzc0OTRiYWYzYjU2M2M4ODNjMWFlMjExYmFkZDE0YjFkYy4uY2I2
ZDZjN2VlOWFjNWMxZDVmMGJjMzhkZTIxNWEzOWQ2ZTJmZDU4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwCkBAIC01MSw4ICs1MSw4IEBAIHN0YXRpYyB1aW50NjRfdCBuZXh0U2Vzc2lvbklEKCkKIAog
Y2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1l
ZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwg
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbWFuYWdlcikKLSAgICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJj
ZUlELCB0eXBlLCBuYW1lKQorICAgIFNvdXJjZShTdHJpbmcmJiBzb3VyY2VJRCwgVHlwZSB0eXBl
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgdWludDY0X3QgaWQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyKQorICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2Uo
dHlwZSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShzb3VyY2VJRCksIFdURk1vdmUoaGFzaFNhbHQp
KQogICAgICAgICAsIG1faWQoaWQpCiAgICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAg
ICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+
KG51bGxwdHIpKQpAQCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyCiAg
ICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1ZGlvRmFj
dG9yeSgqdGhpcyk7CiB9CiAKLVdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK1dlYkNvcmU6OkNh
cHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJl
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgaWYgKCFjb25zdHJhaW50
cykKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE4NiwxMCArMTg2LDEwIEBAIFdlYkNvcmU6OkNh
cHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJl
U291cmNlKGNvbnN0CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwog
ICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgYm9vbCBzdWNjZWVkZWQ7Ci0gICAgaWYgKCFt
X3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2
aWNlLCBzb3VyY2VUeXBlLCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKKyAg
ICBpZiAoIW1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KGlkLCBkZXZpY2UsIHNvdXJjZVR5cGUsIGhhc2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwg
c2V0dGluZ3MpLCAwKSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKIAot
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQp
LCBzb3VyY2VUeXBlLCBzZXR0aW5ncy5sYWJlbCgpLCBpZCwgKnRoaXMpKTsKKyAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgc291cmNlVHlw
ZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0
aGlzKSk7CiAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAg
bV9zb3VyY2VzLnNldChpZCwgc291cmNlLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdlYkNvcmU6
OkNhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmlu
ZGV4IDZhN2QwZDIyYTBmMDk4NTMyMzA3YjJlNGUwOTdmN2Y4ZDUwYzc0YjguLjM3NjMyZDU5ZTZl
ZjhjYWFjODA2OTEzZTUwMzVkYmNhNGM4ZDQ1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC01NSw5
ICs1NSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmKSBmaW5hbDsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2UgZmFjdG9yaWVzCi0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsg
cmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpBdWRpbywgY29uc3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVy
ZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgY29uc3RyYWludHMpOyB9Ci0g
ICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2FwdHVyZVNvdXJjZShjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopOworICAgIFdlYkNvcmU6OkNh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2Fw
dHVyZVNvdXJjZShkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvLCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0
dXJlU291cmNlKGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Vmlk
ZW8sIFdURk1vdmUoaGFzaFNhbHQpLCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwg
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgLy8gSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>351637</attachid>
            <date>2018-10-04 15:29:33 -0700</date>
            <delta_ts>2018-10-04 15:29:33 -0700</delta_ts>
            <desc>get-display-media-prompt-crash-log.txt</desc>
            <filename>get-display-media-prompt-crash-log.txt</filename>
            <type>text/plain</type>
            <size>95670</size>
            <attacher name="Matt Lewis">jlewis3</attacher>
            
              <data encoding="base64">UHJvY2VzczogICAgICAgICAgICAgICBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxv
cG1lbnQgWzIyMTcwXQpQYXRoOiAgICAgICAgICAgICAgICAgIC9Wb2x1bWVzL1ZPTFVNRS8qL1dl
YktpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9YUENTZXJ2aWNlcy9jb20uYXBwbGUuV2ViS2l0Lldl
YkNvbnRlbnQueHBjL0NvbnRlbnRzL01hY09TL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5E
ZXZlbG9wbWVudApJZGVudGlmaWVyOiAgICAgICAgICAgIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29u
dGVudApWZXJzaW9uOiAgICAgICAgICAgICAgIDYwNisgKDYwNi4xLjI1KykKQ29kZSBUeXBlOiAg
ICAgICAgICAgICBYODYtNjQgKE5hdGl2ZSkKUGFyZW50IFByb2Nlc3M6ICAgICAgICA/Pz8gWzFd
ClVzZXIgSUQ6ICAgICAgICAgICAgICAgNTAyCgpEYXRlL1RpbWU6ICAgICAgICAgICAgIDIwMTgt
MTAtMDQgMDA6MjA6MTEuMzA1IC0wNzAwCk9TIFZlcnNpb246ICAgICAgICAgICAgTWFjIE9TIFgg
MTAuMTIuNiAoMTZHMTMxNCkKUmVwb3J0IFZlcnNpb246ICAgICAgICAxMgpBbm9ueW1vdXMgVVVJ
RDogICAgICAgIEFERUNDNTA4LTJEMkYtQjhCRC03QzFBLUFBRjk2MzFCOUZGRAoKClRpbWUgQXdh
a2UgU2luY2UgQm9vdDogMTcwMDAwMCBzZWNvbmRzCgpTeXN0ZW0gSW50ZWdyaXR5IFByb3RlY3Rp
b246IGVuYWJsZWQKCkNyYXNoZWQgVGhyZWFkOiAgICAgICAgMCAgRGlzcGF0Y2ggcXVldWU6IGNv
bS5hcHBsZS5tYWluLXRocmVhZAoKRXhjZXB0aW9uIFR5cGU6ICAgICAgICBFWENfQkFEX0FDQ0VT
UyAoU0lHU0VHVikKRXhjZXB0aW9uIENvZGVzOiAgICAgICBLRVJOX0lOVkFMSURfQUREUkVTUyBh
dCAweDAwMDAwMDAwYmJhZGJlZWYKRXhjZXB0aW9uIE5vdGU6ICAgICAgICBFWENfQ09SUFNFX05P
VElGWQoKVGVybWluYXRpb24gU2lnbmFsOiAgICBTZWdtZW50YXRpb24gZmF1bHQ6IDExClRlcm1p
bmF0aW9uIFJlYXNvbjogICAgTmFtZXNwYWNlIFNJR05BTCwgQ29kZSAweGIKVGVybWluYXRpbmcg
UHJvY2VzczogICBleGMgaGFuZGxlciBbMF0KClZNIFJlZ2lvbnMgTmVhciAweGJiYWRiZWVmOgot
LT4gCiAgICBfX1RFWFQgICAgICAgICAgICAgICAgIDAwMDAwMDAxMGY0NGQwMDAtMDAwMDAwMDEw
ZjQ0ZjAwMCBbICAgIDhLXSByLXgvcnd4IFNNPUNPVyAgL1ZvbHVtZXMvVk9MVU1FLyovV2ViS2l0
LmZyYW1ld29yay9WZXJzaW9ucy9BL1hQQ1NlcnZpY2VzL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29u
dGVudC54cGMvQ29udGVudHMvTWFjT1MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVs
b3BtZW50CgpBcHBsaWNhdGlvbiBTcGVjaWZpYyBJbmZvcm1hdGlvbjoKQ1JBU0hJTkcgVEVTVDog
L21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRpYS1wcm9tcHQuaHRtbAoKVGhyZWFk
IDAgQ3Jhc2hlZDo6IERpc3BhdGNoIHF1ZXVlOiBjb20uYXBwbGUubWFpbi10aHJlYWQKMCAgIGNv
bS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjViZDkyMTAgV1RGQ3Jhc2gg
KyAxNiAoQXNzZXJ0aW9ucy5jcHA6MjU1KQoxICAgY29tLmFwcGxlLldlYkNvcmUgICAgICAgICAg
ICAgCTB4MDAwMDAwMDExNmFlOWZkYiBXVEZDcmFzaFdpdGhJbmZvKGludCwgY2hhciBjb25zdCos
IGNoYXIgY29uc3QqLCBpbnQpICsgMjcKMiAgIGNvbS5hcHBsZS5XZWJDb3JlICAgICAgICAgICAg
IAkweDAwMDAwMDAxMTkwMjJmNDkgV2ViQ29yZTo6VGV4dFJ1bjo6VGV4dFJ1bihXVEY6OlN0cmlu
ZyBjb25zdCYsIGZsb2F0LCBmbG9hdCwgdW5zaWduZWQgaW50LCBXZWJDb3JlOjpUZXh0RGlyZWN0
aW9uLCBib29sLCBib29sKSArIDQwOSAoVGV4dFJ1bi5oOjYwKQozICAgY29tLmFwcGxlLldlYkNv
cmUgICAgICAgICAgICAgCTB4MDAwMDAwMDExOTAxMWQxZiBXZWJDb3JlOjpUZXh0UnVuOjpUZXh0
UnVuKFdURjo6U3RyaW5nIGNvbnN0JiwgZmxvYXQsIGZsb2F0LCB1bnNpZ25lZCBpbnQsIFdlYkNv
cmU6OlRleHREaXJlY3Rpb24sIGJvb2wsIGJvb2wpICsgMTExIChUZXh0UnVuLmg6NjEpCjQgICBj
b20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAJMHgwMDAwMDAwMTE5YTA0Y2MzIFdlYkNvcmU6
Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpkcmF3VGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmKSArIDMwNDMgKE1vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcDozNzkpCjUgICBjb20uYXBw
bGUuV2ViQ29yZSAgICAgICAgICAgICAJMHgwMDAwMDAwMTE5YTAyNzg2IFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpnZW5lcmF0ZUZyYW1lKCkgKyAzOTAgKE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcDo0MjIpCjYgICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAJMHgw
MDAwMDAwMTE5YTE1NDA1IFdURjo6UnVuTG9vcDo6VGltZXI8V2ViQ29yZTo6TW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U+OjpmaXJlZCgpICsgMTAxIChSdW5Mb29wLmg6MTQ5KQo3ICAgY29tLmFwcGxl
LkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM1OWQxMSBXVEY6OlJ1bkxvb3A6OlRp
bWVyQmFzZTo6dGltZXJGaXJlZChfX0NGUnVuTG9vcFRpbWVyKiwgdm9pZCopICsgNDkgKFJ1bkxv
b3BDRi5jcHA6ODQpCjggICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJMHgwMDAwN2Zm
ZjlhM2QwZTA0IF9fQ0ZSVU5MT09QX0lTX0NBTExJTkdfT1VUX1RPX0FfVElNRVJfQ0FMTEJBQ0tf
RlVOQ1RJT05fXyArIDIwCjkgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJMHgwMDAw
N2ZmZjlhM2QwYTkzIF9fQ0ZSdW5Mb29wRG9UaW1lciArIDEwNzUKMTAgIGNvbS5hcHBsZS5Db3Jl
Rm91bmRhdGlvbiAgICAgIAkweDAwMDA3ZmZmOWEzZDA1ZWEgX19DRlJ1bkxvb3BEb1RpbWVycyAr
IDI5OAoxMSAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4MDAwMDdmZmY5YTNjN2Zj
MSBfX0NGUnVuTG9vcFJ1biArIDIwODEKMTIgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlvbiAgICAg
IAkweDAwMDA3ZmZmOWEzYzc1NDQgQ0ZSdW5Mb29wUnVuU3BlY2lmaWMgKyA0MjAKMTMgIGNvbS5h
cHBsZS5ISVRvb2xib3ggICAgICAgICAgIAkweDAwMDA3ZmZmOTk5MjZlYmMgUnVuQ3VycmVudEV2
ZW50TG9vcEluTW9kZSArIDI0MAoxNCAgY29tLmFwcGxlLkhJVG9vbGJveCAgICAgICAgICAgCTB4
MDAwMDdmZmY5OTkyNmNmMSBSZWNlaXZlTmV4dEV2ZW50Q29tbW9uICsgNDMyCjE1ICBjb20uYXBw
bGUuSElUb29sYm94ICAgICAgICAgICAJMHgwMDAwN2ZmZjk5OTI2YjI2IF9CbG9ja1VudGlsTmV4
dEV2ZW50TWF0Y2hpbmdMaXN0SW5Nb2RlV2l0aEZpbHRlciArIDcxCjE2ICBjb20uYXBwbGUuQXBw
S2l0ICAgICAgICAgICAgICAJMHgwMDAwN2ZmZjk3ZWJkYTU0IF9EUFNOZXh0RXZlbnQgKyAxMTIw
CjE3ICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAgICAJMHgwMDAwN2ZmZjk4NjM5N2VlIC1b
TlNBcHBsaWNhdGlvbihOU0V2ZW50KSBfbmV4dEV2ZW50TWF0Y2hpbmdFdmVudE1hc2s6dW50aWxE
YXRlOmluTW9kZTpkZXF1ZXVlOl0gKyAyNzk2CjE4ICBjb20uYXBwbGUuQXBwS2l0ICAgICAgICAg
ICAgICAJMHgwMDAwN2ZmZjk3ZWIyM2RiIC1bTlNBcHBsaWNhdGlvbiBydW5dICsgOTI2CjE5ICBj
b20uYXBwbGUuQXBwS2l0ICAgICAgICAgICAgICAJMHgwMDAwN2ZmZjk3ZTdjZTBlIE5TQXBwbGlj
YXRpb25NYWluICsgMTIzNwoyMCAgbGlieHBjLmR5bGliICAgICAgICAgICAgICAgICAgCTB4MDAw
MDdmZmZiMDFlYThjNyBfeHBjX29iamNfbWFpbiArIDc3NQoyMSAgbGlieHBjLmR5bGliICAgICAg
ICAgICAgICAgICAgCTB4MDAwMDdmZmZiMDFlOTJlNCB4cGNfbWFpbiArIDQ5NAoyMiAgY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50ICAgCTB4MDAwMDAwMDEwZjQ0ZTA4ZSBXZWJLaXQ6OlhQQ1Nl
cnZpY2VNYWluKGludCwgY2hhciBjb25zdCoqKSArIDExODIgKFhQQ1NlcnZpY2VNYWluLm1tOjE1
NykKMjMgIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCAgIAkweDAwMDAwMDAxMGY0NGUzODIg
bWFpbiArIDM0IChYUENTZXJ2aWNlTWFpbi5tbToxNjUpCjI0ICBsaWJkeWxkLmR5bGliICAgICAg
ICAgICAgICAgICAJMHgwMDAwN2ZmZmFmZjkxMjM1IHN0YXJ0ICsgMQoKVGhyZWFkIDE6OiBjb20u
YXBwbGUuTlNFdmVudFRocmVhZAowICAgbGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4
MDAwMDdmZmZiMDBiODM0YSBtYWNoX21zZ190cmFwICsgMTAKMSAgIGxpYnN5c3RlbV9rZXJuZWwu
ZHlsaWIgICAgICAgIAkweDAwMDA3ZmZmYjAwYjc3OTcgbWFjaF9tc2cgKyA1NQoyICAgY29tLmFw
cGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4MDAwMDdmZmY5YTNjODg3NCBfX0NGUnVuTG9vcFNl
cnZpY2VNYWNoUG9ydCArIDIxMgozICAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4
MDAwMDdmZmY5YTNjN2NmMSBfX0NGUnVuTG9vcFJ1biArIDEzNjEKNCAgIGNvbS5hcHBsZS5Db3Jl
Rm91bmRhdGlvbiAgICAgIAkweDAwMDA3ZmZmOWEzYzc1NDQgQ0ZSdW5Mb29wUnVuU3BlY2lmaWMg
KyA0MjAKNSAgIGNvbS5hcHBsZS5BcHBLaXQgICAgICAgICAgICAgIAkweDAwMDA3ZmZmOTgwMGFm
MDIgX05TRXZlbnRUaHJlYWQgKyAyMDUKNiAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAg
IAkweDAwMDA3ZmZmYjAxYWE5M2IgX3B0aHJlYWRfYm9keSArIDE4MAo3ICAgbGlic3lzdGVtX3B0
aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTg4NyBfcHRocmVhZF9zdGFydCArIDI4
Ngo4ICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTA4ZCB0
aHJlYWRfc3RhcnQgKyAxMwoKVGhyZWFkIDI6OiBKYXZhU2NyaXB0Q29yZSBibWFsbG9jIHNjYXZl
bmdlcgowICAgbGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAwMDdmZmZiMDBiZmJm
MiBfX3BzeW5jaF9jdndhaXQgKyAxMAoxICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAg
CTB4MDAwMDdmZmZiMDFhYjdmYSBfcHRocmVhZF9jb25kX3dhaXQgKyA3MTIKMiAgIGxpYmMrKy4x
LmR5bGliICAgICAgICAgICAgICAgIAkweDAwMDA3ZmZmYWViMmU1NzIgc3RkOjpfXzE6OmNvbmRp
dGlvbl92YXJpYWJsZTo6X19kb190aW1lZF93YWl0KHN0ZDo6X18xOjp1bmlxdWVfbG9jazxzdGQ6
Ol9fMTo6bXV0ZXg+Jiwgc3RkOjpfXzE6OmNocm9ubzo6dGltZV9wb2ludDxzdGQ6Ol9fMTo6Y2hy
b25vOjpzeXN0ZW1fY2xvY2ssIHN0ZDo6X18xOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcgbG9uZywg
c3RkOjpfXzE6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPiA+KSArIDEyNgozICAgY29tLmFwcGxl
LkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWNjZDhjNCBzdGQ6Ol9fMTo6Y3Zfc3Rh
dHVzIHN0ZDo6X18xOjpjb25kaXRpb25fdmFyaWFibGU6OndhaXRfZm9yPGxvbmcgbG9uZywgc3Rk
OjpfXzE6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPihzdGQ6Ol9fMTo6dW5pcXVlX2xvY2s8c3Rk
OjpfXzE6Om11dGV4PiYsIHN0ZDo6X18xOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcgbG9uZywgc3Rk
OjpfXzE6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPiBjb25zdCYpICsgMzQxMiAoX19tdXRleF9i
YXNlOjM4NikKNCAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVj
Y2NhOWYgc3RkOjpfXzE6OmN2X3N0YXR1cyBzdGQ6Ol9fMTo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3
YWl0X3VudGlsPHN0ZDo6X18xOjpjaHJvbm86OnN0ZWFkeV9jbG9jaywgc3RkOjpfXzE6OmNocm9u
bzo6ZHVyYXRpb248bG9uZyBsb25nLCBzdGQ6Ol9fMTo6cmF0aW88MWwsIDEwMDAwMDAwMDBsPiA+
ID4oc3RkOjpfXzE6OnVuaXF1ZV9sb2NrPHN0ZDo6X18xOjptdXRleD4mLCBzdGQ6Ol9fMTo6Y2hy
b25vOjp0aW1lX3BvaW50PHN0ZDo6X18xOjpjaHJvbm86OnN0ZWFkeV9jbG9jaywgc3RkOjpfXzE6
OmNocm9ubzo6ZHVyYXRpb248bG9uZyBsb25nLCBzdGQ6Ol9fMTo6cmF0aW88MWwsIDEwMDAwMDAw
MDBsPiA+ID4gY29uc3QmKSArIDQ3OSAoX19tdXRleF9iYXNlOjM1NSkKNSAgIGNvbS5hcHBsZS5K
YXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjY2M3YjAgc3RkOjpfXzE6OmN2X3N0YXR1
cyBzdGQ6Ol9fMTo6Y29uZGl0aW9uX3ZhcmlhYmxlX2FueTo6d2FpdF91bnRpbDxzdGQ6Ol9fMTo6
dW5pcXVlX2xvY2s8Ym1hbGxvYzo6TXV0ZXg+LCBzdGQ6Ol9fMTo6Y2hyb25vOjpzdGVhZHlfY2xv
Y2ssIHN0ZDo6X18xOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcgbG9uZywgc3RkOjpfXzE6OnJhdGlv
PDFsLCAxMDAwMDAwMDAwbD4gPiA+KHN0ZDo6X18xOjp1bmlxdWVfbG9jazxibWFsbG9jOjpNdXRl
eD4mLCBzdGQ6Ol9fMTo6Y2hyb25vOjp0aW1lX3BvaW50PHN0ZDo6X18xOjpjaHJvbm86OnN0ZWFk
eV9jbG9jaywgc3RkOjpfXzE6OmNocm9ubzo6ZHVyYXRpb248bG9uZyBsb25nLCBzdGQ6Ol9fMTo6
cmF0aW88MWwsIDEwMDAwMDAwMDBsPiA+ID4gY29uc3QmKSArIDU3NiAoY29uZGl0aW9uX3Zhcmlh
YmxlOjIyNCkKNiAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVj
YzdmNWMgYm1hbGxvYzo6U2NhdmVuZ2VyOjp0aHJlYWRSdW5Mb29wKCkgKyAxOTAwIChTY2F2ZW5n
ZXIuY3BwOjM4NSkKNyAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAx
MjVjYzYxMzUgYm1hbGxvYzo6U2NhdmVuZ2VyOjp0aHJlYWRFbnRyeVBvaW50KGJtYWxsb2M6OlNj
YXZlbmdlciopICsgMjEKOCAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAw
MDAxMjVjY2MxM2Ygdm9pZCogc3RkOjpfXzE6Ol9fdGhyZWFkX3Byb3h5PHN0ZDo6X18xOjp0dXBs
ZTx2b2lkICgqKShibWFsbG9jOjpTY2F2ZW5nZXIqKSwgYm1hbGxvYzo6U2NhdmVuZ2VyKj4gPih2
b2lkKikgKyA0MTUKOSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZm
YjAxYWE5M2IgX3B0aHJlYWRfYm9keSArIDE4MAoxMCAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIg
ICAgICAgCTB4MDAwMDdmZmZiMDFhYTg4NyBfcHRocmVhZF9zdGFydCArIDI4NgoxMSAgbGlic3lz
dGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTA4ZCB0aHJlYWRfc3RhcnQg
KyAxMwoKVGhyZWFkIDM6OiBXZWJDb3JlOiBTY3JvbGxpbmcKMCAgIGxpYnN5c3RlbV9rZXJuZWwu
ZHlsaWIgICAgICAgIAkweDAwMDA3ZmZmYjAwYjgzNGEgbWFjaF9tc2dfdHJhcCArIDEwCjEgICBs
aWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAgICAJMHgwMDAwN2ZmZmIwMGI3Nzk3IG1hY2hfbXNn
ICsgNTUKMiAgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlvbiAgICAgIAkweDAwMDA3ZmZmOWEzYzg4
NzQgX19DRlJ1bkxvb3BTZXJ2aWNlTWFjaFBvcnQgKyAyMTIKMyAgIGNvbS5hcHBsZS5Db3JlRm91
bmRhdGlvbiAgICAgIAkweDAwMDA3ZmZmOWEzYzdjZjEgX19DRlJ1bkxvb3BSdW4gKyAxMzYxCjQg
ICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJMHgwMDAwN2ZmZjlhM2M3NTQ0IENGUnVu
TG9vcFJ1blNwZWNpZmljICsgNDIwCjUgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJ
MHgwMDAwN2ZmZjlhNDA2ZDMxIENGUnVuTG9vcFJ1biArIDk3CjYgICBjb20uYXBwbGUuV2ViQ29y
ZSAgICAgICAgICAgICAJMHgwMDAwMDAwMTE3MDMwYzJmIFdlYkNvcmU6OlNjcm9sbGluZ1RocmVh
ZDo6aW5pdGlhbGl6ZVJ1bkxvb3AoKSArIDY1NSAoU2Nyb2xsaW5nVGhyZWFkTWFjLm1tOjUzKQo3
ICAgY29tLmFwcGxlLldlYkNvcmUgICAgICAgICAgICAgCTB4MDAwMDAwMDExOTY1MTc3OSBXZWJD
b3JlOjpTY3JvbGxpbmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCk6OiRfMTo6b3BlcmF0
b3IoKSgpIGNvbnN0ICsgNDEgKFNjcm9sbGluZ1RocmVhZC5jcHA6ODUpCjggICBjb20uYXBwbGUu
V2ViQ29yZSAgICAgICAgICAgICAJMHgwMDAwMDAwMTE5NjUxNzI5IFdURjo6RnVuY3Rpb248dm9p
ZCAoKT46OkNhbGxhYmxlV3JhcHBlcjxXZWJDb3JlOjpTY3JvbGxpbmdUaHJlYWQ6OmNyZWF0ZVRo
cmVhZElmTmVlZGVkKCk6OiRfMT46OmNhbGwoKSArIDI1IChGdW5jdGlvbi5oOjEwMSkKOSAgIGNv
bS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjMDA0ZGQgV1RGOjpGdW5j
dGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICsgMTczIChGdW5jdGlvbi5oOjU2KQox
MCAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM4YjM0MyBXVEY6
OlRocmVhZDo6ZW50cnlQb2ludChXVEY6OlRocmVhZDo6TmV3VGhyZWFkQ29udGV4dCopICsgNDE5
IChUaHJlYWRpbmcuY3BwOjEzNikKMTEgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkw
eDAwMDAwMDAxMjVjOTEyYzUgV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqKSArIDIxIChU
aHJlYWRpbmdQdGhyZWFkcy5jcHA6MjE1KQoxMiAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAg
ICAgCTB4MDAwMDdmZmZiMDFhYTkzYiBfcHRocmVhZF9ib2R5ICsgMTgwCjEzICBsaWJzeXN0ZW1f
cHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhODg3IF9wdGhyZWFkX3N0YXJ0ICsg
Mjg2CjE0ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhMDhk
IHRocmVhZF9zdGFydCArIDEzCgpUaHJlYWQgNDo6IGNvbS5hcHBsZS5jb3JlYXVkaW8uQVFDbGll
bnQKMCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDA3ZmZmYjAwYjgzNGEg
bWFjaF9tc2dfdHJhcCArIDEwCjEgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAgICAJMHgw
MDAwN2ZmZmIwMGI3Nzk3IG1hY2hfbXNnICsgNTUKMiAgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlv
biAgICAgIAkweDAwMDA3ZmZmOWEzYzg4NzQgX19DRlJ1bkxvb3BTZXJ2aWNlTWFjaFBvcnQgKyAy
MTIKMyAgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlvbiAgICAgIAkweDAwMDA3ZmZmOWEzYzdjZjEg
X19DRlJ1bkxvb3BSdW4gKyAxMzYxCjQgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJ
MHgwMDAwN2ZmZjlhM2M3NTQ0IENGUnVuTG9vcFJ1blNwZWNpZmljICsgNDIwCjUgICBjb20uYXBw
bGUuYXVkaW8udG9vbGJveC5BdWRpb1Rvb2xib3gJMHgwMDAwN2ZmZjk5MTk2NzQ5IEdlbmVyaWNS
dW5Mb29wVGhyZWFkOjpFbnRyeSh2b2lkKikgKyAxODkKNiAgIGNvbS5hcHBsZS5hdWRpby50b29s
Ym94LkF1ZGlvVG9vbGJveAkweDAwMDA3ZmZmOTkxOTY1ZGIgQ0FQVGhyZWFkOjpFbnRyeShDQVBU
aHJlYWQqKSArIDg1CjcgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2Zm
ZmIwMWFhOTNiIF9wdGhyZWFkX2JvZHkgKyAxODAKOCAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGli
ICAgICAgIAkweDAwMDA3ZmZmYjAxYWE4ODcgX3B0aHJlYWRfc3RhcnQgKyAyODYKOSAgIGxpYnN5
c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAxYWEwOGQgdGhyZWFkX3N0YXJ0
ICsgMTMKClRocmVhZCA1OjogY29tLmFwcGxlLmNvcmVtZWRpYS5zY2hlZHVsZWRmaWxlaW8KMCAg
IGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDA3ZmZmYjAwYmZiZjIgX19wc3lu
Y2hfY3Z3YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3
ZmZmYjAxYWI3ZmEgX3B0aHJlYWRfY29uZF93YWl0ICsgNzEyCjIgICBjb20uYXBwbGUuQ29yZU1l
ZGlhICAgICAgICAgICAJMHgwMDAwN2ZmZjliMTY4MWJiIFdhaXRPbkNvbmRpdGlvbiArIDE0CjMg
ICBjb20uYXBwbGUuQ29yZU1lZGlhICAgICAgICAgICAJMHgwMDAwN2ZmZjliMTY3ZTQ1IEZpZ1Nl
bWFwaG9yZVdhaXRSZWxhdGl2ZSArIDE1Mwo0ICAgY29tLmFwcGxlLkNvcmVNZWRpYSAgICAgICAg
ICAgCTB4MDAwMDdmZmY5YjE1ZjE4MyBGaWdTY2hlZHVsZWRGaWxlSU9UaHJlYWQgKyAxNDEKNSAg
IGNvbS5hcHBsZS5Db3JlTWVkaWEgICAgICAgICAgIAkweDAwMDA3ZmZmOWIxNjhiNWEgZmlnVGhy
ZWFkTWFpbiArIDI3Nwo2ICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdm
ZmZiMDFhYTkzYiBfcHRocmVhZF9ib2R5ICsgMTgwCjcgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxp
YiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhODg3IF9wdGhyZWFkX3N0YXJ0ICsgMjg2CjggICBsaWJz
eXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhMDhkIHRocmVhZF9zdGFy
dCArIDEzCgpUaHJlYWQgNjo6IFdURjo6QXV0b21hdGljVGhyZWFkCjAgICBsaWJzeXN0ZW1fa2Vy
bmVsLmR5bGliICAgICAgICAJMHgwMDAwN2ZmZmIwMGJmYmYyIF9fcHN5bmNoX2N2d2FpdCArIDEw
CjEgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFiN2ZhIF9w
dGhyZWFkX2NvbmRfd2FpdCArIDcxMgoyICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAg
CTB4MDAwMDAwMDEyNWM5MjBkYyBXVEY6OlRocmVhZENvbmRpdGlvbjo6dGltZWRXYWl0KFdURjo6
TXV0ZXgmLCBXVEY6OldhbGxUaW1lKSArIDI1MiAoVGhyZWFkaW5nUHRocmVhZHMuY3BwOjU1NikK
MyAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjNDk2MjUgV1RG
OjpQYXJraW5nTG90OjpwYXJrQ29uZGl0aW9uYWxseUltcGwodm9pZCBjb25zdCosIFdURjo6U2Nv
cGVkTGFtYmRhPGJvb2wgKCk+IGNvbnN0JiwgV1RGOjpTY29wZWRMYW1iZGE8dm9pZCAoKT4gY29u
c3QmLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgNDIxIChQYXJraW5n
TG90LmNwcDo2MDMpCjQgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAw
MTI1YmVkMTYwIFdURjo6UGFya2luZ0xvdDo6UGFya1Jlc3VsdCBXVEY6OlBhcmtpbmdMb3Q6OnBh
cmtDb25kaXRpb25hbGx5PGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+
KFdURjo6TG9jayYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0Jik6OidsYW1i
ZGEnKCksIGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9j
ayYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0Jik6OidsYW1iZGEwJygpPih2
b2lkIGNvbnN0KiwgV1RGOjpMb2NrIGNvbnN0JiwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVu
dGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUg
Y29uc3QmKTo6J2xhbWJkYTAnKCkgY29uc3QmLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlw
ZSBjb25zdCYpICsgOTYgKFBhcmtpbmdMb3QuaDo4MSkKNSAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0
Q29yZSAgICAgIAkweDAwMDAwMDAxMjViZWQwNmMgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVu
dGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUg
Y29uc3QmKSArIDE0MCAoQ29uZGl0aW9uLmg6NzYpCjYgICBjb20uYXBwbGUuSmF2YVNjcmlwdENv
cmUgICAgICAJMHgwMDAwMDAwMTI1YmViOTI5IGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRGb3I8
V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlNlY29uZHMpICsgMTA1IChDb25kaXRpb24uaDox
MTYpCjcgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVlZDgy
IFdURjo6QXV0b21hdGljVGhyZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6
OiRfMDo6b3BlcmF0b3IoKSgpIGNvbnN0ICsgNTMwIChBdXRvbWF0aWNUaHJlYWQuY3BwOjIwNykK
OCAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjViZWU5YzkgV1RG
OjpGdW5jdGlvbjx2b2lkICgpPjo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21hdGljVGhyZWFk
OjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMD46OmNhbGwoKSArIDI1IChG
dW5jdGlvbi5oOjEwMSkKOSAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAw
MDAxMjVjMDA0ZGQgV1RGOjpGdW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICsg
MTczIChGdW5jdGlvbi5oOjU2KQoxMCAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4
MDAwMDAwMDEyNWM4YjM0MyBXVEY6OlRocmVhZDo6ZW50cnlQb2ludChXVEY6OlRocmVhZDo6TmV3
VGhyZWFkQ29udGV4dCopICsgNDE5IChUaHJlYWRpbmcuY3BwOjEzNikKMTEgIGNvbS5hcHBsZS5K
YXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjOTEyYzUgV1RGOjp3dGZUaHJlYWRFbnRy
eVBvaW50KHZvaWQqKSArIDIxIChUaHJlYWRpbmdQdGhyZWFkcy5jcHA6MjE1KQoxMiAgbGlic3lz
dGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTkzYiBfcHRocmVhZF9ib2R5
ICsgMTgwCjEzICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFh
ODg3IF9wdGhyZWFkX3N0YXJ0ICsgMjg2CjE0ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAg
ICAJMHgwMDAwN2ZmZmIwMWFhMDhkIHRocmVhZF9zdGFydCArIDEzCgpUaHJlYWQgNzo6IFdURjo6
QXV0b21hdGljVGhyZWFkCjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAgICAJMHgwMDAw
N2ZmZmIwMGJmYmYyIF9fcHN5bmNoX2N2d2FpdCArIDEwCjEgICBsaWJzeXN0ZW1fcHRocmVhZC5k
eWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFiN2ZhIF9wdGhyZWFkX2NvbmRfd2FpdCArIDcxMgoy
ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM5MjBkYyBXVEY6
OlRocmVhZENvbmRpdGlvbjo6dGltZWRXYWl0KFdURjo6TXV0ZXgmLCBXVEY6OldhbGxUaW1lKSAr
IDI1MiAoVGhyZWFkaW5nUHRocmVhZHMuY3BwOjU1NikKMyAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0
Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjNDk2MjUgV1RGOjpQYXJraW5nTG90OjpwYXJrQ29uZGl0
aW9uYWxseUltcGwodm9pZCBjb25zdCosIFdURjo6U2NvcGVkTGFtYmRhPGJvb2wgKCk+IGNvbnN0
JiwgV1RGOjpTY29wZWRMYW1iZGE8dm9pZCAoKT4gY29uc3QmLCBXVEY6OlRpbWVXaXRoRHluYW1p
Y0Nsb2NrVHlwZSBjb25zdCYpICsgNDIxIChQYXJraW5nTG90LmNwcDo2MDMpCjQgICBjb20uYXBw
bGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVkMTYwIFdURjo6UGFya2luZ0xv
dDo6UGFya1Jlc3VsdCBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5PGJvb2wgV1RG
OjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0Jik6OidsYW1iZGEnKCksIGJvb2wgV1RGOjpDb25kaXRp
b246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdpdGhEeW5hbWlj
Q2xvY2tUeXBlIGNvbnN0Jik6OidsYW1iZGEwJygpPih2b2lkIGNvbnN0KiwgV1RGOjpMb2NrIGNv
bnN0JiwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2Nr
JiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6J2xhbWJkYTAnKCkgY29u
c3QmLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgOTYgKFBhcmtpbmdM
b3QuaDo4MSkKNSAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVi
ZWQwNmMgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2Nr
JiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKSArIDE0MCAoQ29uZGl0aW9u
Lmg6NzYpCjYgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVi
OTI5IGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRGb3I8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBX
VEY6OlNlY29uZHMpICsgMTA1IChDb25kaXRpb24uaDoxMTYpCjcgICBjb20uYXBwbGUuSmF2YVNj
cmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVlZDgyIFdURjo6QXV0b21hdGljVGhyZWFkOjpz
dGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMDo6b3BlcmF0b3IoKSgpIGNvbnN0
ICsgNTMwIChBdXRvbWF0aWNUaHJlYWQuY3BwOjIwNykKOCAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0
Q29yZSAgICAgIAkweDAwMDAwMDAxMjViZWU5YzkgV1RGOjpGdW5jdGlvbjx2b2lkICgpPjo6Q2Fs
bGFibGVXcmFwcGVyPFdURjo6QXV0b21hdGljVGhyZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9j
a2VyIGNvbnN0Jik6OiRfMD46OmNhbGwoKSArIDI1IChGdW5jdGlvbi5oOjEwMSkKOSAgIGNvbS5h
cHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjMDA0ZGQgV1RGOjpGdW5jdGlv
bjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICsgMTczIChGdW5jdGlvbi5oOjU2KQoxMCAg
Y29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM4YjM0MyBXVEY6OlRo
cmVhZDo6ZW50cnlQb2ludChXVEY6OlRocmVhZDo6TmV3VGhyZWFkQ29udGV4dCopICsgNDE5IChU
aHJlYWRpbmcuY3BwOjEzNikKMTEgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAw
MDAwMDAxMjVjOTEyYzUgV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqKSArIDIxIChUaHJl
YWRpbmdQdGhyZWFkcy5jcHA6MjE1KQoxMiAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAg
CTB4MDAwMDdmZmZiMDFhYTkzYiBfcHRocmVhZF9ib2R5ICsgMTgwCjEzICBsaWJzeXN0ZW1fcHRo
cmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhODg3IF9wdGhyZWFkX3N0YXJ0ICsgMjg2
CjE0ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhMDhkIHRo
cmVhZF9zdGFydCArIDEzCgpUaHJlYWQgODo6IFdURjo6QXV0b21hdGljVGhyZWFkCjAgICBsaWJz
eXN0ZW1fa2VybmVsLmR5bGliICAgICAgICAJMHgwMDAwN2ZmZmIwMGJmYmYyIF9fcHN5bmNoX2N2
d2FpdCArIDEwCjEgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIw
MWFiN2ZhIF9wdGhyZWFkX2NvbmRfd2FpdCArIDcxMgoyICAgY29tLmFwcGxlLkphdmFTY3JpcHRD
b3JlICAgICAgCTB4MDAwMDAwMDEyNWM5MjBkYyBXVEY6OlRocmVhZENvbmRpdGlvbjo6dGltZWRX
YWl0KFdURjo6TXV0ZXgmLCBXVEY6OldhbGxUaW1lKSArIDI1MiAoVGhyZWFkaW5nUHRocmVhZHMu
Y3BwOjU1NikKMyAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVj
NDk2MjUgV1RGOjpQYXJraW5nTG90OjpwYXJrQ29uZGl0aW9uYWxseUltcGwodm9pZCBjb25zdCos
IFdURjo6U2NvcGVkTGFtYmRhPGJvb2wgKCk+IGNvbnN0JiwgV1RGOjpTY29wZWRMYW1iZGE8dm9p
ZCAoKT4gY29uc3QmLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgNDIx
IChQYXJraW5nTG90LmNwcDo2MDMpCjQgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJ
MHgwMDAwMDAwMTI1YmVkMTYwIFdURjo6UGFya2luZ0xvdDo6UGFya1Jlc3VsdCBXVEY6OlBhcmtp
bmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5PGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRVbnRpbDxX
VEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0
Jik6OidsYW1iZGEnKCksIGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+
KFdURjo6TG9jayYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0Jik6OidsYW1i
ZGEwJygpPih2b2lkIGNvbnN0KiwgV1RGOjpMb2NrIGNvbnN0JiwgYm9vbCBXVEY6OkNvbmRpdGlv
bjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWND
bG9ja1R5cGUgY29uc3QmKTo6J2xhbWJkYTAnKCkgY29uc3QmLCBXVEY6OlRpbWVXaXRoRHluYW1p
Y0Nsb2NrVHlwZSBjb25zdCYpICsgOTYgKFBhcmtpbmdMb3QuaDo4MSkKNSAgIGNvbS5hcHBsZS5K
YXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjViZWQwNmMgYm9vbCBXVEY6OkNvbmRpdGlv
bjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWND
bG9ja1R5cGUgY29uc3QmKSArIDE0MCAoQ29uZGl0aW9uLmg6NzYpCjYgICBjb20uYXBwbGUuSmF2
YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmViOTI5IGJvb2wgV1RGOjpDb25kaXRpb246
OndhaXRGb3I8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlNlY29uZHMpICsgMTA1IChDb25k
aXRpb24uaDoxMTYpCjcgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAw
MTI1YmVlZDgyIFdURjo6QXV0b21hdGljVGhyZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2Vy
IGNvbnN0Jik6OiRfMDo6b3BlcmF0b3IoKSgpIGNvbnN0ICsgNTMwIChBdXRvbWF0aWNUaHJlYWQu
Y3BwOjIwNykKOCAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVi
ZWU5YzkgV1RGOjpGdW5jdGlvbjx2b2lkICgpPjo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21h
dGljVGhyZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMD46OmNhbGwo
KSArIDI1IChGdW5jdGlvbi5oOjEwMSkKOSAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAg
IAkweDAwMDAwMDAxMjVjMDA0ZGQgV1RGOjpGdW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgp
IGNvbnN0ICsgMTczIChGdW5jdGlvbi5oOjU2KQoxMCAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3Jl
ICAgICAgCTB4MDAwMDAwMDEyNWM4YjM0MyBXVEY6OlRocmVhZDo6ZW50cnlQb2ludChXVEY6OlRo
cmVhZDo6TmV3VGhyZWFkQ29udGV4dCopICsgNDE5IChUaHJlYWRpbmcuY3BwOjEzNikKMTEgIGNv
bS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjOTEyYzUgV1RGOjp3dGZU
aHJlYWRFbnRyeVBvaW50KHZvaWQqKSArIDIxIChUaHJlYWRpbmdQdGhyZWFkcy5jcHA6MjE1KQox
MiAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTkzYiBfcHRo
cmVhZF9ib2R5ICsgMTgwCjEzICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAw
N2ZmZmIwMWFhODg3IF9wdGhyZWFkX3N0YXJ0ICsgMjg2CjE0ICBsaWJzeXN0ZW1fcHRocmVhZC5k
eWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhMDhkIHRocmVhZF9zdGFydCArIDEzCgpUaHJlYWQg
OTo6IFdURjo6QXV0b21hdGljVGhyZWFkCjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAg
ICAJMHgwMDAwN2ZmZmIwMGJmYmYyIF9fcHN5bmNoX2N2d2FpdCArIDEwCjEgICBsaWJzeXN0ZW1f
cHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFiN2ZhIF9wdGhyZWFkX2NvbmRfd2Fp
dCArIDcxMgoyICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM5
MjBkYyBXVEY6OlRocmVhZENvbmRpdGlvbjo6dGltZWRXYWl0KFdURjo6TXV0ZXgmLCBXVEY6Oldh
bGxUaW1lKSArIDI1MiAoVGhyZWFkaW5nUHRocmVhZHMuY3BwOjU1NikKMyAgIGNvbS5hcHBsZS5K
YXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjNDk2MjUgV1RGOjpQYXJraW5nTG90Ojpw
YXJrQ29uZGl0aW9uYWxseUltcGwodm9pZCBjb25zdCosIFdURjo6U2NvcGVkTGFtYmRhPGJvb2wg
KCk+IGNvbnN0JiwgV1RGOjpTY29wZWRMYW1iZGE8dm9pZCAoKT4gY29uc3QmLCBXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgNDIxIChQYXJraW5nTG90LmNwcDo2MDMpCjQg
ICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVkMTYwIFdURjo6
UGFya2luZ0xvdDo6UGFya1Jlc3VsdCBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5
PGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdU
Rjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0Jik6OidsYW1iZGEnKCksIGJvb2wgV1RG
OjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0Jik6OidsYW1iZGEwJygpPih2b2lkIGNvbnN0KiwgV1RG
OjpMb2NrIGNvbnN0JiwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4o
V1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6J2xhbWJk
YTAnKCkgY29uc3QmLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgOTYg
KFBhcmtpbmdMb3QuaDo4MSkKNSAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAw
MDAwMDAxMjViZWQwNmMgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4o
V1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKSArIDE0MCAo
Q29uZGl0aW9uLmg6NzYpCjYgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAw
MDAwMTI1YmViOTI5IGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRGb3I8V1RGOjpMb2NrPihXVEY6
OkxvY2smLCBXVEY6OlNlY29uZHMpICsgMTA1IChDb25kaXRpb24uaDoxMTYpCjcgICBjb20uYXBw
bGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVlZDgyIFdURjo6QXV0b21hdGlj
VGhyZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMDo6b3BlcmF0b3Io
KSgpIGNvbnN0ICsgNTMwIChBdXRvbWF0aWNUaHJlYWQuY3BwOjIwNykKOCAgIGNvbS5hcHBsZS5K
YXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjViZWU5YzkgV1RGOjpGdW5jdGlvbjx2b2lk
ICgpPjo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21hdGljVGhyZWFkOjpzdGFydChXVEY6OkFi
c3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMD46OmNhbGwoKSArIDI1IChGdW5jdGlvbi5oOjEwMSkK
OSAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjMDA0ZGQgV1RG
OjpGdW5jdGlvbjx2b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICsgMTczIChGdW5jdGlvbi5o
OjU2KQoxMCAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM4YjM0
MyBXVEY6OlRocmVhZDo6ZW50cnlQb2ludChXVEY6OlRocmVhZDo6TmV3VGhyZWFkQ29udGV4dCop
ICsgNDE5IChUaHJlYWRpbmcuY3BwOjEzNikKMTEgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAg
ICAgIAkweDAwMDAwMDAxMjVjOTEyYzUgV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqKSAr
IDIxIChUaHJlYWRpbmdQdGhyZWFkcy5jcHA6MjE1KQoxMiAgbGlic3lzdGVtX3B0aHJlYWQuZHls
aWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTkzYiBfcHRocmVhZF9ib2R5ICsgMTgwCjEzICBsaWJz
eXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhODg3IF9wdGhyZWFkX3N0
YXJ0ICsgMjg2CjE0ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIw
MWFhMDhkIHRocmVhZF9zdGFydCArIDEzCgpUaHJlYWQgMTA6OiBXVEY6OkF1dG9tYXRpY1RocmVh
ZAowICAgbGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAwMDdmZmZiMDBiZmJmMiBf
X3BzeW5jaF9jdndhaXQgKyAxMAoxICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4
MDAwMDdmZmZiMDFhYjdmYSBfcHRocmVhZF9jb25kX3dhaXQgKyA3MTIKMiAgIGNvbS5hcHBsZS5K
YXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjOTIwZGMgV1RGOjpUaHJlYWRDb25kaXRp
b246OnRpbWVkV2FpdChXVEY6Ok11dGV4JiwgV1RGOjpXYWxsVGltZSkgKyAyNTIgKFRocmVhZGlu
Z1B0aHJlYWRzLmNwcDo1NTYpCjMgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgw
MDAwMDAwMTI1YzQ5NjI1IFdURjo6UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHlJbXBsKHZv
aWQgY29uc3QqLCBXVEY6OlNjb3BlZExhbWJkYTxib29sICgpPiBjb25zdCYsIFdURjo6U2NvcGVk
TGFtYmRhPHZvaWQgKCk+IGNvbnN0JiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29u
c3QmKSArIDQyMSAoUGFya2luZ0xvdC5jcHA6NjAzKQo0ICAgY29tLmFwcGxlLkphdmFTY3JpcHRD
b3JlICAgICAgCTB4MDAwMDAwMDEyNWJlZDE2MCBXVEY6OlBhcmtpbmdMb3Q6OlBhcmtSZXN1bHQg
V1RGOjpQYXJraW5nTG90OjpwYXJrQ29uZGl0aW9uYWxseTxib29sIFdURjo6Q29uZGl0aW9uOjp3
YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZSBjb25zdCYpOjonbGFtYmRhJygpLCBib29sIFdURjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8
V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25z
dCYpOjonbGFtYmRhMCcoKT4odm9pZCBjb25zdCosIFdURjo6TG9jayBjb25zdCYsIGJvb2wgV1RG
OjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0Jik6OidsYW1iZGEwJygpIGNvbnN0JiwgV1RGOjpUaW1l
V2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKSArIDk2IChQYXJraW5nTG90Lmg6ODEpCjUgICBj
b20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVkMDZjIGJvb2wgV1RG
OjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyAxNDAgKENvbmRpdGlvbi5oOjc2KQo2ICAgY29t
LmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWJlYjkyOSBib29sIFdURjo6
Q29uZGl0aW9uOjp3YWl0Rm9yPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpTZWNvbmRzKSAr
IDEwNSAoQ29uZGl0aW9uLmg6MTE2KQo3ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAg
CTB4MDAwMDAwMDEyNWJlZWQ4MiBXVEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQoV1RGOjpBYnN0
cmFjdExvY2tlciBjb25zdCYpOjokXzA6Om9wZXJhdG9yKCkoKSBjb25zdCArIDUzMCAoQXV0b21h
dGljVGhyZWFkLmNwcDoyMDcpCjggICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgw
MDAwMDAwMTI1YmVlOWM5IFdURjo6RnVuY3Rpb248dm9pZCAoKT46OkNhbGxhYmxlV3JhcHBlcjxX
VEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQoV1RGOjpBYnN0cmFjdExvY2tlciBjb25zdCYpOjok
XzA+OjpjYWxsKCkgKyAyNSAoRnVuY3Rpb24uaDoxMDEpCjkgICBjb20uYXBwbGUuSmF2YVNjcmlw
dENvcmUgICAgICAJMHgwMDAwMDAwMTI1YzAwNGRkIFdURjo6RnVuY3Rpb248dm9pZCAoKT46Om9w
ZXJhdG9yKCkoKSBjb25zdCArIDE3MyAoRnVuY3Rpb24uaDo1NikKMTAgIGNvbS5hcHBsZS5KYXZh
U2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjOGIzNDMgV1RGOjpUaHJlYWQ6OmVudHJ5UG9p
bnQoV1RGOjpUaHJlYWQ6Ok5ld1RocmVhZENvbnRleHQqKSArIDQxOSAoVGhyZWFkaW5nLmNwcDox
MzYpCjExICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YzkxMmM1
IFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKikgKyAyMSAoVGhyZWFkaW5nUHRocmVhZHMu
Y3BwOjIxNSkKMTIgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAx
YWE5M2IgX3B0aHJlYWRfYm9keSArIDE4MAoxMyAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAg
ICAgCTB4MDAwMDdmZmZiMDFhYTg4NyBfcHRocmVhZF9zdGFydCArIDI4NgoxNCAgbGlic3lzdGVt
X3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTA4ZCB0aHJlYWRfc3RhcnQgKyAx
MwoKVGhyZWFkIDExOjogV1RGOjpBdXRvbWF0aWNUaHJlYWQKMCAgIGxpYnN5c3RlbV9rZXJuZWwu
ZHlsaWIgICAgICAgIAkweDAwMDA3ZmZmYjAwYmZiZjIgX19wc3luY2hfY3Z3YWl0ICsgMTAKMSAg
IGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAxYWI3ZmEgX3B0aHJl
YWRfY29uZF93YWl0ICsgNzEyCjIgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgw
MDAwMDAwMTI1YzkyMGRjIFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQoV1RGOjpNdXRl
eCYsIFdURjo6V2FsbFRpbWUpICsgMjUyIChUaHJlYWRpbmdQdGhyZWFkcy5jcHA6NTU2KQozICAg
Y29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM0OTYyNSBXVEY6OlBh
cmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5SW1wbCh2b2lkIGNvbnN0KiwgV1RGOjpTY29wZWRM
YW1iZGE8Ym9vbCAoKT4gY29uc3QmLCBXVEY6OlNjb3BlZExhbWJkYTx2b2lkICgpPiBjb25zdCYs
IFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyA0MjEgKFBhcmtpbmdMb3Qu
Y3BwOjYwMykKNCAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVi
ZWQxNjAgV1RGOjpQYXJraW5nTG90OjpQYXJrUmVzdWx0IFdURjo6UGFya2luZ0xvdDo6cGFya0Nv
bmRpdGlvbmFsbHk8Ym9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RG
OjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6J2xhbWJkYSco
KSwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwg
V1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6J2xhbWJkYTAnKCk+KHZvaWQg
Y29uc3QqLCBXVEY6OkxvY2sgY29uc3QmLCBib29sIFdURjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8
V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25z
dCYpOjonbGFtYmRhMCcoKSBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNv
bnN0JikgKyA5NiAoUGFya2luZ0xvdC5oOjgxKQo1ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3Jl
ICAgICAgCTB4MDAwMDAwMDEyNWJlZDA2YyBib29sIFdURjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8
V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25z
dCYpICsgMTQwIChDb25kaXRpb24uaDo3NikKNiAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAg
ICAgIAkweDAwMDAwMDAxMjViZWI5MjkgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdEZvcjxXVEY6
OkxvY2s+KFdURjo6TG9jayYsIFdURjo6U2Vjb25kcykgKyAxMDUgKENvbmRpdGlvbi5oOjExNikK
NyAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjViZWVkODIgV1RG
OjpBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KFdURjo6QWJzdHJhY3RMb2NrZXIgY29uc3QmKTo6JF8w
OjpvcGVyYXRvcigpKCkgY29uc3QgKyA1MzAgKEF1dG9tYXRpY1RocmVhZC5jcHA6MjA3KQo4ICAg
Y29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWJlZTljOSBXVEY6OkZ1
bmN0aW9uPHZvaWQgKCk+OjpDYWxsYWJsZVdyYXBwZXI8V1RGOjpBdXRvbWF0aWNUaHJlYWQ6OnN0
YXJ0KFdURjo6QWJzdHJhY3RMb2NrZXIgY29uc3QmKTo6JF8wPjo6Y2FsbCgpICsgMjUgKEZ1bmN0
aW9uLmg6MTAxKQo5ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEy
NWMwMDRkZCBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3QgKyAxNzMg
KEZ1bmN0aW9uLmg6NTYpCjEwICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAw
MDAwMTI1YzhiMzQzIFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhyZWFkOjpOZXdUaHJl
YWRDb250ZXh0KikgKyA0MTkgKFRocmVhZGluZy5jcHA6MTM2KQoxMSAgY29tLmFwcGxlLkphdmFT
Y3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM5MTJjNSBXVEY6Ond0ZlRocmVhZEVudHJ5UG9p
bnQodm9pZCopICsgMjEgKFRocmVhZGluZ1B0aHJlYWRzLmNwcDoyMTUpCjEyICBsaWJzeXN0ZW1f
cHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhOTNiIF9wdGhyZWFkX2JvZHkgKyAx
ODAKMTMgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAxYWE4ODcg
X3B0aHJlYWRfc3RhcnQgKyAyODYKMTQgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkw
eDAwMDA3ZmZmYjAxYWEwOGQgdGhyZWFkX3N0YXJ0ICsgMTMKClRocmVhZCAxMjo6IFdURjo6QXV0
b21hdGljVGhyZWFkCjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAgICAJMHgwMDAwN2Zm
ZmIwMGJmYmYyIF9fcHN5bmNoX2N2d2FpdCArIDEwCjEgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxp
YiAgICAgICAJMHgwMDAwN2ZmZmIwMWFiN2ZhIF9wdGhyZWFkX2NvbmRfd2FpdCArIDcxMgoyICAg
Y29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM5MjBkYyBXVEY6OlRo
cmVhZENvbmRpdGlvbjo6dGltZWRXYWl0KFdURjo6TXV0ZXgmLCBXVEY6OldhbGxUaW1lKSArIDI1
MiAoVGhyZWFkaW5nUHRocmVhZHMuY3BwOjU1NikKMyAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29y
ZSAgICAgIAkweDAwMDAwMDAxMjVjNDk2MjUgV1RGOjpQYXJraW5nTG90OjpwYXJrQ29uZGl0aW9u
YWxseUltcGwodm9pZCBjb25zdCosIFdURjo6U2NvcGVkTGFtYmRhPGJvb2wgKCk+IGNvbnN0Jiwg
V1RGOjpTY29wZWRMYW1iZGE8dm9pZCAoKT4gY29uc3QmLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZSBjb25zdCYpICsgNDIxIChQYXJraW5nTG90LmNwcDo2MDMpCjQgICBjb20uYXBwbGUu
SmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVkMTYwIFdURjo6UGFya2luZ0xvdDo6
UGFya1Jlc3VsdCBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5PGJvb2wgV1RGOjpD
b25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlIGNvbnN0Jik6OidsYW1iZGEnKCksIGJvb2wgV1RGOjpDb25kaXRpb246
OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xv
Y2tUeXBlIGNvbnN0Jik6OidsYW1iZGEwJygpPih2b2lkIGNvbnN0KiwgV1RGOjpMb2NrIGNvbnN0
JiwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwg
V1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6J2xhbWJkYTAnKCkgY29uc3Qm
LCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgOTYgKFBhcmtpbmdMb3Qu
aDo4MSkKNSAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjViZWQw
NmMgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwg
V1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKSArIDE0MCAoQ29uZGl0aW9uLmg6
NzYpCjYgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmViOTI5
IGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRGb3I8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6
OlNlY29uZHMpICsgMTA1IChDb25kaXRpb24uaDoxMTYpCjcgICBjb20uYXBwbGUuSmF2YVNjcmlw
dENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVlZDgyIFdURjo6QXV0b21hdGljVGhyZWFkOjpzdGFy
dChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMDo6b3BlcmF0b3IoKSgpIGNvbnN0ICsg
NTMwIChBdXRvbWF0aWNUaHJlYWQuY3BwOjIwNykKOCAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29y
ZSAgICAgIAkweDAwMDAwMDAxMjViZWU5YzkgV1RGOjpGdW5jdGlvbjx2b2lkICgpPjo6Q2FsbGFi
bGVXcmFwcGVyPFdURjo6QXV0b21hdGljVGhyZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2Vy
IGNvbnN0Jik6OiRfMD46OmNhbGwoKSArIDI1IChGdW5jdGlvbi5oOjEwMSkKOSAgIGNvbS5hcHBs
ZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjMDA0ZGQgV1RGOjpGdW5jdGlvbjx2
b2lkICgpPjo6b3BlcmF0b3IoKSgpIGNvbnN0ICsgMTczIChGdW5jdGlvbi5oOjU2KQoxMCAgY29t
LmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWM4YjM0MyBXVEY6OlRocmVh
ZDo6ZW50cnlQb2ludChXVEY6OlRocmVhZDo6TmV3VGhyZWFkQ29udGV4dCopICsgNDE5IChUaHJl
YWRpbmcuY3BwOjEzNikKMTEgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAw
MDAxMjVjOTEyYzUgV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqKSArIDIxIChUaHJlYWRp
bmdQdGhyZWFkcy5jcHA6MjE1KQoxMiAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4
MDAwMDdmZmZiMDFhYTkzYiBfcHRocmVhZF9ib2R5ICsgMTgwCjEzICBsaWJzeXN0ZW1fcHRocmVh
ZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhODg3IF9wdGhyZWFkX3N0YXJ0ICsgMjg2CjE0
ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhMDhkIHRocmVh
ZF9zdGFydCArIDEzCgpUaHJlYWQgMTM6CjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAg
ICAJMHgwMDAwN2ZmZmIwMGMwNDRlIF9fd29ya3Ffa2VybnJldHVybiArIDEwCjEgICBsaWJzeXN0
ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhNDhlIF9wdGhyZWFkX3dxdGhy
ZWFkICsgMTAyMwoyICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZi
MDFhYTA3ZCBzdGFydF93cXRocmVhZCArIDEzCgpUaHJlYWQgMTQ6OiBKSVQgV29ya2xpc3QgSGVs
cGVyIFRocmVhZAowICAgbGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAwMDdmZmZi
MDBiZmJmMiBfX3BzeW5jaF9jdndhaXQgKyAxMAoxICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIg
ICAgICAgCTB4MDAwMDdmZmZiMDFhYjdmYSBfcHRocmVhZF9jb25kX3dhaXQgKyA3MTIKMiAgIGNv
bS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjOTIwZGMgV1RGOjpUaHJl
YWRDb25kaXRpb246OnRpbWVkV2FpdChXVEY6Ok11dGV4JiwgV1RGOjpXYWxsVGltZSkgKyAyNTIg
KFRocmVhZGluZ1B0aHJlYWRzLmNwcDo1NTYpCjMgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUg
ICAgICAJMHgwMDAwMDAwMTI1YzQ5NjI1IFdURjo6UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFs
bHlJbXBsKHZvaWQgY29uc3QqLCBXVEY6OlNjb3BlZExhbWJkYTxib29sICgpPiBjb25zdCYsIFdU
Rjo6U2NvcGVkTGFtYmRhPHZvaWQgKCk+IGNvbnN0JiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9j
a1R5cGUgY29uc3QmKSArIDQyMSAoUGFya2luZ0xvdC5jcHA6NjAzKQo0ICAgY29tLmFwcGxlLkph
dmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWJlZDE2MCBXVEY6OlBhcmtpbmdMb3Q6OlBh
cmtSZXN1bHQgV1RGOjpQYXJraW5nTG90OjpwYXJrQ29uZGl0aW9uYWxseTxib29sIFdURjo6Q29u
ZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHlu
YW1pY0Nsb2NrVHlwZSBjb25zdCYpOjonbGFtYmRhJygpLCBib29sIFdURjo6Q29uZGl0aW9uOjp3
YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZSBjb25zdCYpOjonbGFtYmRhMCcoKT4odm9pZCBjb25zdCosIFdURjo6TG9jayBjb25zdCYs
IGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdU
Rjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0Jik6OidsYW1iZGEwJygpIGNvbnN0Jiwg
V1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKSArIDk2IChQYXJraW5nTG90Lmg6
ODEpCjUgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YmVkMDZj
IGJvb2wgV1RGOjpDb25kaXRpb246OndhaXRVbnRpbDxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdU
Rjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyAxNDAgKENvbmRpdGlvbi5oOjc2
KQo2ICAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICAgICAgCTB4MDAwMDAwMDEyNWJlYjkyOSBi
b29sIFdURjo6Q29uZGl0aW9uOjp3YWl0Rm9yPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpT
ZWNvbmRzKSArIDEwNSAoQ29uZGl0aW9uLmg6MTE2KQo3ICAgY29tLmFwcGxlLkphdmFTY3JpcHRD
b3JlICAgICAgCTB4MDAwMDAwMDEyNWJlZWQ4MiBXVEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQo
V1RGOjpBYnN0cmFjdExvY2tlciBjb25zdCYpOjokXzA6Om9wZXJhdG9yKCkoKSBjb25zdCArIDUz
MCAoQXV0b21hdGljVGhyZWFkLmNwcDoyMDcpCjggICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUg
ICAgICAJMHgwMDAwMDAwMTI1YmVlOWM5IFdURjo6RnVuY3Rpb248dm9pZCAoKT46OkNhbGxhYmxl
V3JhcHBlcjxXVEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQoV1RGOjpBYnN0cmFjdExvY2tlciBj
b25zdCYpOjokXzA+OjpjYWxsKCkgKyAyNSAoRnVuY3Rpb24uaDoxMDEpCjkgICBjb20uYXBwbGUu
SmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTI1YzAwNGRkIFdURjo6RnVuY3Rpb248dm9p
ZCAoKT46Om9wZXJhdG9yKCkoKSBjb25zdCArIDE3MyAoRnVuY3Rpb24uaDo1NikKMTAgIGNvbS5h
cHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMjVjOGIzNDMgV1RGOjpUaHJlYWQ6
OmVudHJ5UG9pbnQoV1RGOjpUaHJlYWQ6Ok5ld1RocmVhZENvbnRleHQqKSArIDQxOSAoVGhyZWFk
aW5nLmNwcDoxMzYpCjExICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAw
MTI1YzkxMmM1IFdURjo6d3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKikgKyAyMSAoVGhyZWFkaW5n
UHRocmVhZHMuY3BwOjIxNSkKMTIgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAw
MDA3ZmZmYjAxYWE5M2IgX3B0aHJlYWRfYm9keSArIDE4MAoxMyAgbGlic3lzdGVtX3B0aHJlYWQu
ZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTg4NyBfcHRocmVhZF9zdGFydCArIDI4NgoxNCAg
bGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTA4ZCB0aHJlYWRf
c3RhcnQgKyAxMwoKVGhyZWFkIDE1OgowICAgbGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAg
CTB4MDAwMDdmZmZiMDBjMDQ0ZSBfX3dvcmtxX2tlcm5yZXR1cm4gKyAxMAoxICAgbGlic3lzdGVt
X3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTQ4ZSBfcHRocmVhZF93cXRocmVh
ZCArIDEwMjMKMiAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAx
YWEwN2Qgc3RhcnRfd3F0aHJlYWQgKyAxMwoKVGhyZWFkIDE2OgowICAgbGlic3lzdGVtX2tlcm5l
bC5keWxpYiAgICAgICAgCTB4MDAwMDdmZmZiMDBjMDQ0ZSBfX3dvcmtxX2tlcm5yZXR1cm4gKyAx
MAoxICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZiMDFhYTYyMSBf
cHRocmVhZF93cXRocmVhZCArIDE0MjYKMiAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAg
IAkweDAwMDA3ZmZmYjAxYWEwN2Qgc3RhcnRfd3F0aHJlYWQgKyAxMwoKVGhyZWFkIDE3OgowICAg
bGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAwMDdmZmZiMDBjMDQ0ZSBfX3dvcmtx
X2tlcm5yZXR1cm4gKyAxMAoxICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAw
MDdmZmZiMDFhYTQ4ZSBfcHRocmVhZF93cXRocmVhZCArIDEwMjMKMiAgIGxpYnN5c3RlbV9wdGhy
ZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAxYWEwN2Qgc3RhcnRfd3F0aHJlYWQgKyAxMwoK
VGhyZWFkIDE4OjogY29tLmFwcGxlLmNvcmVtZWRpYS5pbWFnZXF1ZXVlLmNvcmVhbmltYXRpb24K
MCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDA3ZmZmYjAwYmZiZjIgX19w
c3luY2hfY3Z3YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAw
MDA3ZmZmYjAxYWI3ZmEgX3B0aHJlYWRfY29uZF93YWl0ICsgNzEyCjIgICBjb20uYXBwbGUuQ29y
ZU1lZGlhICAgICAgICAgICAJMHgwMDAwN2ZmZjliMTY4MWJiIFdhaXRPbkNvbmRpdGlvbiArIDE0
CjMgICBjb20uYXBwbGUuQ29yZU1lZGlhICAgICAgICAgICAJMHgwMDAwN2ZmZjliMTY3ZTQ1IEZp
Z1NlbWFwaG9yZVdhaXRSZWxhdGl2ZSArIDE1Mwo0ICAgY29tLmFwcGxlLk1lZGlhVG9vbGJveCAg
ICAgICAgCTB4MDAwMDdmZmY5ZDk1ODM1MiAweDdmZmY5ZDc0YzAwMCArIDIxNDcxNTQKNSAgIGNv
bS5hcHBsZS5Db3JlTWVkaWEgICAgICAgICAgIAkweDAwMDA3ZmZmOWIxNjhiNWEgZmlnVGhyZWFk
TWFpbiArIDI3Nwo2ICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZi
MDFhYTkzYiBfcHRocmVhZF9ib2R5ICsgMTgwCjcgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAg
ICAgICAJMHgwMDAwN2ZmZmIwMWFhODg3IF9wdGhyZWFkX3N0YXJ0ICsgMjg2CjggICBsaWJzeXN0
ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhMDhkIHRocmVhZF9zdGFydCAr
IDEzCgpUaHJlYWQgMTk6OiBjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVvbWVkaWFjb252ZXJ0ZXIK
MCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDA3ZmZmYjAwYmZiZjIgX19w
c3luY2hfY3Z3YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAw
MDA3ZmZmYjAxYWI3ZmEgX3B0aHJlYWRfY29uZF93YWl0ICsgNzEyCjIgICBjb20uYXBwbGUuQ29y
ZU1lZGlhICAgICAgICAgICAJMHgwMDAwN2ZmZjliMTY4MWJiIFdhaXRPbkNvbmRpdGlvbiArIDE0
CjMgICBjb20uYXBwbGUuQ29yZU1lZGlhICAgICAgICAgICAJMHgwMDAwN2ZmZjliMTY3ZTQ1IEZp
Z1NlbWFwaG9yZVdhaXRSZWxhdGl2ZSArIDE1Mwo0ICAgY29tLmFwcGxlLk1lZGlhVG9vbGJveCAg
ICAgICAgCTB4MDAwMDdmZmY5ZDk1NWFiNiAweDdmZmY5ZDc0YzAwMCArIDIxMzY3NTgKNSAgIGNv
bS5hcHBsZS5Db3JlTWVkaWEgICAgICAgICAgIAkweDAwMDA3ZmZmOWIxNjhiNWEgZmlnVGhyZWFk
TWFpbiArIDI3Nwo2ICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmZi
MDFhYTkzYiBfcHRocmVhZF9ib2R5ICsgMTgwCjcgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAg
ICAgICAJMHgwMDAwN2ZmZmIwMWFhODg3IF9wdGhyZWFkX3N0YXJ0ICsgMjg2CjggICBsaWJzeXN0
ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZmIwMWFhMDhkIHRocmVhZF9zdGFydCAr
IDEzCgpUaHJlYWQgMjA6OiBjb20uYXBwbGUuY29yZW1lZGlhLnZ0cmVtb3RlZGVjb21wcmVzc2lv
bmNsaWVudC5ub3RpZmllcgowICAgbGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAw
MDdmZmZiMDBiODM0YSBtYWNoX21zZ190cmFwICsgMTAKMSAgIGxpYnN5c3RlbV9rZXJuZWwuZHls
aWIgICAgICAgIAkweDAwMDA3ZmZmYjAwYjc3OTcgbWFjaF9tc2cgKyA1NQoyICAgY29tLmFwcGxl
LlZpZGVvVG9vbGJveCAgICAgICAgCTB4MDAwMDdmZmZhMTI1MDE1MCAweDdmZmZhMTFhNDAwMCAr
IDcwNDg0OAozICAgY29tLmFwcGxlLkNvcmVNZWRpYSAgICAgICAgICAgCTB4MDAwMDdmZmY5YjE2
OGI1YSBmaWdUaHJlYWRNYWluICsgMjc3CjQgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAg
ICAJMHgwMDAwN2ZmZmIwMWFhOTNiIF9wdGhyZWFkX2JvZHkgKyAxODAKNSAgIGxpYnN5c3RlbV9w
dGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAxYWE4ODcgX3B0aHJlYWRfc3RhcnQgKyAy
ODYKNiAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAxYWEwOGQg
dGhyZWFkX3N0YXJ0ICsgMTMKClRocmVhZCAyMToKMCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIg
ICAgICAgIAkweDAwMDA3ZmZmYjAwYjgzOWUgc2VtYXBob3JlX3RpbWVkd2FpdF90cmFwICsgMTAK
MSAgIGxpYmRpc3BhdGNoLmR5bGliICAgICAgICAgICAgIAkweDAwMDA3ZmZmYWZmNzNiMDkgX29z
X3NlbWFwaG9yZV90aW1lZHdhaXQgKyA3MgoyICAgbGliZGlzcGF0Y2guZHlsaWIgICAgICAgICAg
ICAgCTB4MDAwMDdmZmZhZmY2NDg2NCBfZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXRfc2xvdyArIDU4
CjMgICBsaWJkaXNwYXRjaC5keWxpYiAgICAgICAgICAgICAJMHgwMDAwN2ZmZmFmZjVmMjkwIF9k
aXNwYXRjaF93b3JrZXJfdGhyZWFkICsgMjc1CjQgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAg
ICAgICAJMHgwMDAwN2ZmZmIwMWFhOTNiIF9wdGhyZWFkX2JvZHkgKyAxODAKNSAgIGxpYnN5c3Rl
bV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAxYWE4ODcgX3B0aHJlYWRfc3RhcnQg
KyAyODYKNiAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmYjAxYWEw
OGQgdGhyZWFkX3N0YXJ0ICsgMTMKClRocmVhZCAwIGNyYXNoZWQgd2l0aCBYODYgVGhyZWFkIFN0
YXRlICg2NC1iaXQpOgogIHJheDogMHgwMDAwMDAwMGJiYWRiZWVmICByYng6IDB4MDAwMDAwMDE3
NTg3OTNjMCAgcmN4OiAweDAwMDAwMDAwYmJhZGJlZWYgIHJkeDogMHhkNWYxMmExNWQxODQwMGMw
CiAgcmRpOiAweGQ1ZjEyYTE1ZDE4NDAwYzAgIHJzaTogMHgwMDAwMDAwMTI3YTQ1MjEwICByYnA6
IDB4MDAwMDdmZmY1MDdhZjZmMCAgcnNwOiAweDAwMDA3ZmZmNTA3YWY2ZjAKICAgcjg6IDB4MDAw
MDAwMDAwMDAwMDA0MCAgIHI5OiAweDAwMDA3ZmZmYjhlZGQwNDAgIHIxMDogMHhmZmZmZmZmZmZm
ZmZmZmZmICByMTE6IDB4MDAwMDAwMDAwMDAxMjA2OAogIHIxMjogMHgwMDAwN2ZhYjI3NDAwZTQw
ICByMTM6IDB4MDAwMDdmYWIyOGNhNjM0MCAgcjE0OiAweDAwMDA3ZmFiMjhjYTA4ODEgIHIxNTog
MHgwMDAwN2ZhYjI3NDAwODgxCiAgcmlwOiAweDAwMDAwMDAxMjViZDkyMTAgIHJmbDogMHgwMDAw
MDAwMDAwMDEwMjAyICBjcjI6IDB4MDAwMDAwMDBiYmFkYmVlZgogIApMb2dpY2FsIENQVTogICAg
IDQKRXJyb3IgQ29kZTogICAgICAweDAwMDAwMDA2ClRyYXAgTnVtYmVyOiAgICAgMTQKCgpCaW5h
cnkgSW1hZ2VzOgogICAgICAgMHgxMGY0NGQwMDAgLSAgICAgICAgMHgxMGY0NGVmZmYgIGNvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudCAoNjA2KyAtIDYwNi4xLjI1KykgPDlENjVGODUxLTY3QjEt
MzUxMy05MTA5LUZCNDI2QzM5MTRFRj4gL1ZvbHVtZXMvVk9MVU1FLyovV2ViS2l0LmZyYW1ld29y
ay9WZXJzaW9ucy9BL1hQQ1NlcnZpY2VzL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC54cGMv
Q29udGVudHMvTWFjT1MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50CiAg
ICAgICAweDEwZjQ1NjAwMCAtICAgICAgICAweDExMGRlNGZmMyAgY29tLmFwcGxlLldlYktpdCAo
NjA3KyAtIDYwNy4xLjEwKykgPEYwN0M3NTE3LUFBMjAtMzE0My1CNzg1LUY0QUYwQzBEMjJDMj4g
L1ZvbHVtZXMvVk9MVU1FLyovV2ViS2l0LmZyYW1ld29yay9WZXJzaW9ucy9BL1dlYktpdAogICAg
ICAgMHgxMTQyNDAwMDAgLSAgICAgICAgMHgxMTQ2OWNmZjcgIGNvbS5hcHBsZS5XZWJLaXRMZWdh
Y3kgKDYwNysgLSA2MDcuMS4xMCspIDxENTRFMjkwRC05ODAyLTNEQUMtQUFBMy1FQkFDNUQxNTcx
M0E+IC9Wb2x1bWVzL1ZPTFVNRS8qL1dlYktpdExlZ2FjeS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9X
ZWJLaXRMZWdhY3kKICAgICAgIDB4MTE0ZTAxMDAwIC0gICAgICAgIDB4MTE1ZTJlZmY3ICtsaWJ3
ZWJydGMuZHlsaWIgKDApIDxDM0Q4QzE3OS00ODkyLTMyRUUtOEUxOC0yMzI2QzU1NkZBNDU+IC9W
b2x1bWVzL1ZPTFVNRS8qL2xpYndlYnJ0Yy5keWxpYgogICAgICAgMHgxMTZhNTMwMDAgLSAgICAg
ICAgMHgxMTZhOTBkYzcgIGR5bGQgKDQzMy41KSA8MzIyQzA2QjctODg3OC0zMTFELTg4OEMtQzhG
RDJDQTk2RkYzPiAvdXNyL2xpYi9keWxkCiAgICAgICAweDExNmFkZTAwMCAtICAgICAgICAweDEx
Yjk2NWZmZiAgY29tLmFwcGxlLldlYkNvcmUgKDYwNysgLSA2MDcuMS4xMCspIDw2MDY0MzM1OS04
MjBELTM0RjMtOUUzRS1EMkJERkI2NEUxOTg+IC9Wb2x1bWVzL1ZPTFVNRS8qL1dlYkNvcmUuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvV2ViQ29yZQogICAgICAgMHgxMjViZDcwMDAgLSAgICAgICAgMHgx
MjdhMTRmZmYgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAoNjA3KyAtIDYwNy4xLjEwKykgPDk4
MzM5QTMyLTVDMTUtMzA5Qy1BNzBELUMzRTY4QzMwOEE0RT4gL1ZvbHVtZXMvVk9MVU1FLyovSmF2
YVNjcmlwdENvcmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSmF2YVNjcmlwdENvcmUKICAgICAgIDB4
MTJlZjAwMDAwIC0gICAgICAgIDB4MTJlZjg2ZmZmICBjb20uYXBwbGUuV2ViS2l0VGVzdFJ1bm5l
ci5JbmplY3RlZEJ1bmRsZSAoMS4wIC0gMSkgPDNCMEJGOEQwLTY5RDQtM0RERC04Nzc3LTNDOUM0
QzMyMUQ3OT4gL1ZvbHVtZXMvVk9MVU1FLyovV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxl
LmJ1bmRsZS9Db250ZW50cy9NYWNPUy9XZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUKICAg
ICAgIDB4MTJmMDc0MDAwIC0gICAgICAgIDB4MTJmMmQ0ZmY3ICtsaWJXZWJDb3JlVGVzdFN1cHBv
cnQuZHlsaWIgKDApIDw1QjhDRDJGMi01NjJDLTM3QzYtQUFDRi05NjI4Q0UzMTIwQTM+IC9Wb2x1
bWVzL1ZPTFVNRS8qL2xpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYgogICAgICAgMHgxMzM1ZWEw
MDAgLSAgICAgICAgMHgxMzM1ZWVmZmYgIGNvbS5hcHBsZS5hdWRpby5BcHBsZUhEQUhBTFBsdWdJ
biAoMjc5LjQ4IC0gMjc5LjQ4KSA8RUNBODQxNDUtMkFDNC0zNDdELUJCQzAtOTMzQUFBQzE1MzU2
PiAvU3lzdGVtL0xpYnJhcnkvRXh0ZW5zaW9ucy9BcHBsZUhEQS5rZXh0L0NvbnRlbnRzL1BsdWdJ
bnMvQXBwbGVIREFIQUxQbHVnSW4uYnVuZGxlL0NvbnRlbnRzL01hY09TL0FwcGxlSERBSEFMUGx1
Z0luCiAgICAgICAweDEzNWY1ZjAwMCAtICAgICAgICAweDEzNWY3NmZmNyAgY29tLmFwcGxlLkxv
b2t1cEZyYW1ld29yayAoMS4yIC0gMjIxKSA8MDcxRDlERTgtMDZCRC0zQjhFLUI3NzEtNUE5RTMy
NUJCOTVBPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvTG9va3VwLmZyYW1ld29y
ay9Mb29rdXAKICAgICAgIDB4MTM1ZjhiMDAwIC0gICAgICAgIDB4MTM1ZmFiZmZmICBjb20uYXBw
bGUuQ29yZU5MUCAoMS4wIC0gNzguMikgPEI2ODZCREEyLUExNjItM0Q3MC05MjU3LUZFQjA1OTJE
QkQ3RT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVOTFAuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvQ29yZU5MUAogICAgICAgMHgxMzY4ZTcwMDAgLSAgICAgICAgMHgxMzY4ZWNm
ZjMgIGNvbS5hcHBsZS5QSVAgKDEuMCAtIDUwLjIpIDwyN0RCNTc4MC0xMENFLTNDREEtQTM2My1B
QjlCRDAyMDk4REM+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9QSVAuZnJhbWV3
b3JrL1BJUAogICAgICAgMHgxMzc5MDAwMDAgLSAgICAgICAgMHgxMzc5MmFmZmYgIEdMUmVuZGVy
ZXJGbG9hdCAoMTQuMC4xNikgPDMyQTAxNkVFLTYzQ0YtM0QwNy05QkFCLUM0RUIzRThFNDc5RD4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9SZXNvdXJjZXMvR0xS
ZW5kZXJlckZsb2F0LmJ1bmRsZS9HTFJlbmRlcmVyRmxvYXQKICAgICAgIDB4MTM3ZjY0MDAwIC0g
ICAgICAgIDB4MTM3Zjc2ZmY3ICBjb20uYXBwbGUud2ViY29udGVudGZpbHRlci5mcmFtZXdvcmsg
KDUuMSAtIDUuMSkgPEU3MkE4MkJGLUQ5QjItM0U1NC04MTkyLTE0NkE0Q0U5QzhDNz4gL1N5c3Rl
bS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1dlYkNvbnRlbnRBbmFseXNpcy5mcmFtZXdvcmsv
V2ViQ29udGVudEFuYWx5c2lzCiAgICAgICAweDEzN2ZkYTAwMCAtICAgICAgICAweDEzN2ZkZGZm
MyAgQXBwbGVJbnRlbElWQlZBICgxMC4yNS4xOSkgPEU4MzZDMDVCLTMyRDYtMzk4Qy04Q0NBLTkz
RjQ2ODBDQTg3RD4gL1N5c3RlbS9MaWJyYXJ5L0V4dGVuc2lvbnMvQXBwbGVJbnRlbElWQlZBLmJ1
bmRsZS9Db250ZW50cy9NYWNPUy9BcHBsZUludGVsSVZCVkEKICAgICAgIDB4MTNmYWQ1MDAwIC0g
ICAgICAgIDB4MTNmYjQ3ZmY3ICBjb20uYXBwbGUuZHJpdmVyLkFwcGxlSW50ZWxIRDQwMDBHcmFw
aGljc01UTERyaXZlciAoMTAuMjUuMTkgLSAxMC4yLjUpIDxFNkMxRDkxQS1DNUI5LTMyNzgtQTlB
MC05RUY2RjY3MUFFNUI+IC9TeXN0ZW0vTGlicmFyeS9FeHRlbnNpb25zL0FwcGxlSW50ZWxIRDQw
MDBHcmFwaGljc01UTERyaXZlci5idW5kbGUvQ29udGVudHMvTWFjT1MvQXBwbGVJbnRlbEhENDAw
MEdyYXBoaWNzTVRMRHJpdmVyCiAgICAgICAweDE2NjRkNTAwMCAtICAgICAgICAweDE2Njg0ZGZm
NyAgY29tLmFwcGxlLmF1ZGlvLmNvZGVjcy5Db21wb25lbnRzICg3LjAgLSA3LjApIDwwQUVBRTI0
Mi0zOTJBLTM3QjItQjA3OS03NTAxMjIwRTY3ODA+IC9TeXN0ZW0vTGlicmFyeS9Db21wb25lbnRz
L0F1ZGlvQ29kZWNzLmNvbXBvbmVudC9Db250ZW50cy9NYWNPUy9BdWRpb0NvZGVjcwogICAgICAg
MHgxNjY5MmIwMDAgLSAgICAgICAgMHgxNjZhOTJmZmYgIGNvbS5hcHBsZS5hdWRpby51bml0cy5D
b21wb25lbnRzICgxLjE0IC0gMS4xNCkgPEQ0QjZGMkRBLUVEQTQtMzJEQi1CM0FBLUJENDBBMDZC
NDQ0RD4gL1N5c3RlbS9MaWJyYXJ5L0NvbXBvbmVudHMvQ29yZUF1ZGlvLmNvbXBvbmVudC9Db250
ZW50cy9NYWNPUy9Db3JlQXVkaW8KICAgICAgIDB4MTY4NjAwMDAwIC0gICAgICAgIDB4MTY4N2E2
ZmZmICBHTEVuZ2luZSAoMTQuMC4xNikgPEU4QzYwRTIwLTY0MTQtMzJCMi04OTY0LTQxODgyOTQz
RDlDMT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9SZXNvdXJj
ZXMvR0xFbmdpbmUuYnVuZGxlL0dMRW5naW5lCiAgICAgICAweDE2ODdlNTAwMCAtICAgICAgICAw
eDE2OGMyN2ZmNyAgY29tLmFwcGxlLmRyaXZlci5BcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NHTERy
aXZlciAoMTAuMjUuMTkgLSAxMC4yLjUpIDwzRTA5RjMwOC04RjdCLTMwMjgtOTY4Mi1FRDI4Q0NB
RUEyRkU+IC9TeXN0ZW0vTGlicmFyeS9FeHRlbnNpb25zL0FwcGxlSW50ZWxIRDQwMDBHcmFwaGlj
c0dMRHJpdmVyLmJ1bmRsZS9Db250ZW50cy9NYWNPUy9BcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NH
TERyaXZlcgogICAgICAgMHgxN2M5MDAwMDAgLSAgICAgICAgMHgxN2NhNTNmZmYgIGNvbS5hcHBs
ZS5BcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NWQURyaXZlciAoMTAuMjUuMTkgLSAxMC4yLjUpIDwy
NEI4Mzc0Mi1GNjM2LTM4QjgtOURGRS1BMDlENDVFNTQ5MEM+IC9TeXN0ZW0vTGlicmFyeS9FeHRl
bnNpb25zL0FwcGxlSW50ZWxIRDQwMDBHcmFwaGljc1ZBRHJpdmVyLmJ1bmRsZS9Db250ZW50cy9N
YWNPUy9BcHBsZUludGVsSEQ0MDAwR3JhcGhpY3NWQURyaXZlcgogICAgMHg3ZmZmOTRlOGYwMDAg
LSAgICAgMHg3ZmZmOTUxZDRmZjcgIGNvbS5hcHBsZS5SYXdDYW1lcmEuYnVuZGxlICg3LjA0IC0g
OTE0KSA8ODZBNjdEMTEtOTc5MS0zQ0U2LTlGRjUtMzM4N0MwQUI5MjVCPiAvU3lzdGVtL0xpYnJh
cnkvQ29yZVNlcnZpY2VzL1Jhd0NhbWVyYS5idW5kbGUvQ29udGVudHMvTWFjT1MvUmF3Q2FtZXJh
CiAgICAweDdmZmY5NmEwYjAwMCAtICAgICAweDdmZmY5NmJjY2ZmZiAgY29tLmFwcGxlLmF2Zm91
bmRhdGlvbiAoMi4wIC0gMTE4Ny4zNikgPDJGMzkwRUFELTA3QkItMzc4OC05RTczLTEzMTA0QzJF
MDRDRD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQVZGb3VuZGF0aW9uLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0FWRm91bmRhdGlvbgogICAgMHg3ZmZmOTZiY2QwMDAgLSAgICAgMHg3ZmZmOTZj
NmZmZjcgIGNvbS5hcHBsZS5hdWRpby5BVkZBdWRpbyAoMS4wIC0gPz8/KSA8Nzk5N0Q1ODgtQjU0
Mi0zRUJCLUI4MjItRDcxOUMxMTE0QkI0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BVkZv
dW5kYXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9BVkZBdWRpby5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9BVkZBdWRpbwogICAgMHg3ZmZmOTZkM2EwMDAgLSAgICAgMHg3ZmZmOTZk
M2FmZmYgIGNvbS5hcHBsZS5BY2NlbGVyYXRlICgxLjExIC0gQWNjZWxlcmF0ZSAxLjExKSA8RDZB
MDhBNzItNzc1OC0zQ0E4LTgxM0QtMTA1RjZFMzEzRTY3PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0FjY2VsZXJhdGUKICAgIDB4N2Zm
Zjk2ZDNiMDAwIC0gICAgIDB4N2ZmZjk2ZDUyZmYzICBsaWJDR0ludGVyZmFjZXMuZHlsaWIgKDMz
MS41KSA8MDJFOUREMTYtQzVDQi0zNDgyLTg0RUYtQUE2MTg4QTBEMjhDPiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3Mv
dkltYWdlLmZyYW1ld29yay9WZXJzaW9ucy9BL0xpYnJhcmllcy9saWJDR0ludGVyZmFjZXMuZHls
aWIKICAgIDB4N2ZmZjk2ZDUzMDAwIC0gICAgIDB4N2ZmZjk3MzkzZmUzICBjb20uYXBwbGUudklt
YWdlICg4LjEgLSA/Pz8pIDw0QzUzNUMyNS1FRjg3LTM1QkUtOUJFOC1EMDgwQTVDMjQwODQ+IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
RnJhbWV3b3Jrcy92SW1hZ2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvdkltYWdlCiAgICAweDdmZmY5
NzM5NDAwMCAtICAgICAweDdmZmY5NzU1YmZlZiAgbGliQkxBUy5keWxpYiAoMTE4NS41MC40KSA8
N0FGOERCOUEtRTMzQi0zMEVCLTg3NjctODdBRkI5NTFFMjMxPiAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdmVjTGli
LmZyYW1ld29yay9WZXJzaW9ucy9BL2xpYkJMQVMuZHlsaWIKICAgIDB4N2ZmZjk3NTVjMDAwIC0g
ICAgIDB4N2ZmZjk3NTczZmZmICBsaWJCTk5TLmR5bGliICgxNSkgPDI2RjMyMjY0LTE0OEUtMzVF
NS1BMjgwLUNBMDM1Q0IzRDZGMD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0
ZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9saWJCTk5TLmR5bGliCiAgICAweDdmZmY5NzU3NDAwMCAtICAgICAweDdmZmY5Nzk3ZmZm
ZiAgbGliTEFQQUNLLmR5bGliICgxMTg1LjUwLjQpIDw1MUIyQkFCQS1GNzM2LTM2NjMtODg1QS02
NUE4OTkxRDM1NjA+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGli
TEFQQUNLLmR5bGliCiAgICAweDdmZmY5Nzk4MDAwMCAtICAgICAweDdmZmY5Nzk5NmZmZiAgbGli
TGluZWFyQWxnZWJyYS5keWxpYiAoMTE4NS41MC40KSA8MEVDMjVFNzAtMDVEQy0zNjE1LTg1QjYt
ODE3MjE1NjZDRjFEPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1l
d29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL2xp
YkxpbmVhckFsZ2VicmEuZHlsaWIKICAgIDB4N2ZmZjk3OTk3MDAwIC0gICAgIDB4N2ZmZjk3OTlk
ZmZmICBsaWJRdWFkcmF0dXJlLmR5bGliICgzKSA8RUY1NkM4RTYtREUyMi0zQzY5LUI1NDMtQTg2
NDhGMzM1RkREPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL2xpYlF1
YWRyYXR1cmUuZHlsaWIKICAgIDB4N2ZmZjk3OTllMDAwIC0gICAgIDB4N2ZmZjk3OWIxZmY3ICBs
aWJTcGFyc2VCTEFTLmR5bGliICgxMTg1LjUwLjQpIDwwQkRDRjZBNy0wMjI4LTM3MTktODFDNy1C
NkVCQzc5MTEzMjA+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGli
U3BhcnNlQkxBUy5keWxpYgogICAgMHg3ZmZmOTc5YjIwMDAgLSAgICAgMHg3ZmZmOTdhZmZmZjcg
IGxpYnZEU1AuZHlsaWIgKDYwMC42MC4xKSA8RjQ2REY0Q0ItODY0RC0zNTQxLTk5MTMtNjA1MjFG
Q0JCRjRBPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL2xpYnZEU1Au
ZHlsaWIKICAgIDB4N2ZmZjk3YjAwMDAwIC0gICAgIDB4N2ZmZjk3YmI3ZmUzICBsaWJ2TWlzYy5k
eWxpYiAoNjAwLjYwLjEpIDxGODc3MEQxOC1GRDVELTMxQzMtOUZCQS1EOUUzOUIxNDI0N0E+IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
RnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGlidk1pc2MuZHlsaWIKICAg
IDB4N2ZmZjk3YmI4MDAwIC0gICAgIDB4N2ZmZjk3YmI4ZmZmICBjb20uYXBwbGUuQWNjZWxlcmF0
ZS52ZWNMaWIgKDMuMTEgLSB2ZWNMaWIgMy4xMSkgPEEyRkM4MjQwLUY2MkYtM0EyMy1BQjEwLThD
RTZCNTZBRjQ3Nj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3ZlY0xpYi5mcmFtZXdvcmsvVmVyc2lvbnMvQS92ZWNM
aWIKICAgIDB4N2ZmZjk3YmI5MDAwIC0gICAgIDB4N2ZmZjk3YmY2ZmZiICBjb20uYXBwbGUuQWNj
b3VudHMgKDExMyAtIDExMykgPDg1NTBCRDA4LTdEMDUtM0FDNC1BMENDLUI2N0VDQjJERTk1MD4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNjb3VudHMuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
QWNjb3VudHMKICAgIDB4N2ZmZjk3YmY3MDAwIC0gICAgIDB4N2ZmZjk3ZTc2ZmY3ICBjb20uYXBw
bGUuQWRkcmVzc0Jvb2suZnJhbWV3b3JrICgxMC4wIC0gMTc1Ni4yMCkgPEU1MTJCNjlCLThEQkUt
MzA4NS05NUJFLTc1MEI4RUZDOTdGRD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWRkcmVz
c0Jvb2suZnJhbWV3b3JrL1ZlcnNpb25zL0EvQWRkcmVzc0Jvb2sKICAgIDB4N2ZmZjk3ZTc3MDAw
IC0gICAgIDB4N2ZmZjk4YzUwZmYzICBjb20uYXBwbGUuQXBwS2l0ICg2LjkgLSAxNTA0LjgzLjEw
MSkgPDU5QjA5NkRBLTVGMzItMzk4Ny05MjFBLUQzMjIxMEE1MjgzOT4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yay9WZXJzaW9ucy9DL0FwcEtpdAogICAgMHg3ZmZm
OThjNjIwMDAgLSAgICAgMHg3ZmZmOThjNjJmZmYgIGNvbS5hcHBsZS5BcHBsaWNhdGlvblNlcnZp
Y2VzICg0OCAtIDQ4KSA8RjMwQkE4REItNzQ4Ri0zRERDLUIwN0EtRjg0QzlFQkNDN0E5PiAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJz
aW9ucy9BL0FwcGxpY2F0aW9uU2VydmljZXMKICAgIDB4N2ZmZjk4YzYzMDAwIC0gICAgIDB4N2Zm
Zjk4Y2QxZmY3ICBjb20uYXBwbGUuQXBwbGljYXRpb25TZXJ2aWNlcy5BVFMgKDM3NyAtIDQyMi4z
KSA8NzNDMjMwQ0YtMzIxMy0zRENBLUI1MjgtNjY0RkVDNzZBOTBDPiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1l
d29ya3MvQVRTLmZyYW1ld29yay9WZXJzaW9ucy9BL0FUUwogICAgMHg3ZmZmOThkNmIwMDAgLSAg
ICAgMHg3ZmZmOThlOWFmZmYgIGxpYkZvbnRQYXJzZXIuZHlsaWIgKDE5NC4xMykgPEJFNTA3RDE3
LTE3RDAtMzdFOC1BMzE3LTY5MjExMThCRDI4Mz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
QXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0FUUy5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliRm9udFBhcnNlci5keWxpYgogICAgMHg3
ZmZmOThlOWIwMDAgLSAgICAgMHg3ZmZmOThlZTVmZjcgIGxpYkZvbnRSZWdpc3RyeS5keWxpYiAo
MTk2LjcpIDw3OTQxMUNCNi1BMDkzLTMzM0EtQjY2OS1DRUMwMEI0RDVDOEU+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
RnJhbWV3b3Jrcy9BVFMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYkZvbnRSZWdp
c3RyeS5keWxpYgogICAgMHg3ZmZmOThmNDIwMDAgLSAgICAgMHg3ZmZmOThmNzVmZmYgIGxpYlRy
dWVUeXBlU2NhbGVyLmR5bGliICgxOTQuMTMpIDxGOTgyRjU4Mi1FMkM4LTM5MDItOUM3OS1CQjNG
NEI4MTk5RDI+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9BVFMuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
UmVzb3VyY2VzL2xpYlRydWVUeXBlU2NhbGVyLmR5bGliCiAgICAweDdmZmY5OGZlMjAwMCAtICAg
ICAweDdmZmY5OTA4Y2ZmNyAgY29tLmFwcGxlLkNvbG9yU3luYyAoNC4xMi4wIC0gNTAyLjIpIDxB
Q0E0MDAxRS1BMEUzLTMzRjYtOUNENi1FRUMyQUExNUUzMjI+IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jr
cy9Db2xvclN5bmMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29sb3JTeW5jCiAgICAweDdmZmY5OTA4
ZDAwMCAtICAgICAweDdmZmY5OTBkZWZmZiAgY29tLmFwcGxlLkhJU2VydmljZXMgKDEuMjIgLSA1
OTMpIDwwNDU4NzBBOS0xRDkyLTNGRUYtODcyMi02NzFFOTlBMzVFNzE+IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJh
bWV3b3Jrcy9ISVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0hJU2VydmljZXMKICAgIDB4
N2ZmZjk5MGRmMDAwIC0gICAgIDB4N2ZmZjk5MGVlZmYzICBjb20uYXBwbGUuTGFuZ0FuYWx5c2lz
ICgxLjcuMCAtIDEuNy4wKSA8MkNCRTdGNjEtMjA1Ni0zRjk2LTk5QTEtMEQ1Mjc3OTZBRkE2PiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0ZyYW1ld29ya3MvTGFuZ0FuYWx5c2lzLmZyYW1ld29yay9WZXJzaW9ucy9BL0xh
bmdBbmFseXNpcwogICAgMHg3ZmZmOTkwZWYwMDAgLSAgICAgMHg3ZmZmOTkxM2NmZmYgIGNvbS5h
cHBsZS5wcmludC5mcmFtZXdvcmsuUHJpbnRDb3JlICgxMiAtIDQ5MSkgPDUwMjdGRDU4LUYwRUUt
MzNFNC04NTc3LTkzNENBMDZDRDJBRj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGlj
YXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1ByaW50Q29yZS5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9QcmludENvcmUKICAgIDB4N2ZmZjk5MTNkMDAwIC0gICAgIDB4
N2ZmZjk5MTc4ZmZmICBjb20uYXBwbGUuUUQgKDMuMTIgLSAzMTMpIDxCMzM5QzQxRC04Q0RGLTMz
NDItODQxNC1GOTcxN0RDQ0FERDQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0
aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9RRAogICAgMHg3ZmZmOTkxNzkwMDAgLSAgICAgMHg3ZmZmOTkxODRmZmYgIGNv
bS5hcHBsZS5zcGVlY2guc3ludGhlc2lzLmZyYW1ld29yayAoNi42LjIgLSA2LjYuMikgPDc4NTNF
RkY0LTYyQjktMzk0RS1CN0I4LTQxQTY0NTY1NjgyMD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1Nw
ZWVjaFN5bnRoZXNpcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TcGVlY2hTeW50aGVzaXMKICAgIDB4
N2ZmZjk5MTg1MDAwIC0gICAgIDB4N2ZmZjk5MzkxZmY3ICBjb20uYXBwbGUuYXVkaW8udG9vbGJv
eC5BdWRpb1Rvb2xib3ggKDEuMTQgLSAxLjE0KSA8MUY0MDI2QzYtMjNDMS0zOUU4LTgyM0QtNzIy
OThGRUNGNzVDPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BdWRpb1Rvb2xib3guZnJhbWV3
b3JrL1ZlcnNpb25zL0EvQXVkaW9Ub29sYm94CiAgICAweDdmZmY5OTM5MjAwMCAtICAgICAweDdm
ZmY5OTM5MmZmZiAgY29tLmFwcGxlLmF1ZGlvLnVuaXRzLkF1ZGlvVW5pdCAoMS4xNCAtIDEuMTQp
IDwyQ0VFMzZBRi03OUU2LTNCM0UtQjM2OS0yODVFNkMxODg2Rjc+IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0F1ZGlvVW5pdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BdWRpb1VuaXQKICAgIDB4
N2ZmZjk5NGZiMDAwIC0gICAgIDB4N2ZmZjk5OGQ3ZmZmICBjb20uYXBwbGUuQ0ZOZXR3b3JrICg4
MTEuOSAtIDgxMS45KSA8MUUzODRFQ0QtRDg0MS0zNTZBLTgxODgtNjFBQThCNEE0RjJFPiAvU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DRk5ldHdvcmsuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ0ZO
ZXR3b3JrCiAgICAweDdmZmY5OThmMTAwMCAtICAgICAweDdmZmY5OThmMWZmZiAgY29tLmFwcGxl
LkNhcmJvbiAoMTU0IC0gMTU3KSA8NjlGNDAzQzctRjBDQi0zNEU2LTg5QjAtMjM1Q0Y0OTc4QzE3
PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
Q2FyYm9uCiAgICAweDdmZmY5OThmMjAwMCAtICAgICAweDdmZmY5OThmNWZmZiAgY29tLmFwcGxl
LkNvbW1vblBhbmVscyAoMS4yLjYgLSA5OCkgPEJGMDRCQjIyLUQ1NEMtMzA5RS05RjVDLTg5N0Q5
NjlDQUY3MD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJz
aW9ucy9BL0ZyYW1ld29ya3MvQ29tbW9uUGFuZWxzLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvbW1v
blBhbmVscwogICAgMHg3ZmZmOTk4ZjYwMDAgLSAgICAgMHg3ZmZmOTliZmZmZmYgIGNvbS5hcHBs
ZS5ISVRvb2xib3ggKDIuMS4xIC0gODU3LjgpIDw1MzY3MzY2RS03NDdFLTMyQ0YtOEU3Ni05M0NE
OEU3NDI0Qzc+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9GcmFtZXdvcmtzL0hJVG9vbGJveC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9ISVRvb2xi
b3gKICAgIDB4N2ZmZjk5YzAwMDAwIC0gICAgIDB4N2ZmZjk5YzAzZmY3ICBjb20uYXBwbGUuaGVs
cCAoMS4zLjUgLSA0OSkgPEIxQTkzMEUzLTU5MDctMzY3Ny1CQUNELTg1OEVGNjhCMTcyRD4gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1l
d29ya3MvSGVscC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9IZWxwCiAgICAweDdmZmY5OWMwNDAwMCAt
ICAgICAweDdmZmY5OWMwOWZmZiAgY29tLmFwcGxlLkltYWdlQ2FwdHVyZSAoOS4wIC0gOS4wKSA8
MzQxMjUyQjQtRTA4Mi0zNjFBLUI3NTYtNkEzMzAyNTlDNzQxPiAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9JbWFnZUNhcHR1
cmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW1hZ2VDYXB0dXJlCiAgICAweDdmZmY5OWMwYTAwMCAt
ICAgICAweDdmZmY5OWNhMWZmMyAgY29tLmFwcGxlLmluay5mcmFtZXdvcmsgKDEwLjkgLSAyMTkp
IDwxQkQ0MEI0NS1GRDMzLTMxNzctQTkzNS01NjVFRTVGQzc5RDc+IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0luay5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9JbmsKICAgIDB4N2ZmZjk5Y2EyMDAwIC0gICAgIDB4N2ZmZjk5Y2Jj
ZmZmICBjb20uYXBwbGUub3BlbnNjcmlwdGluZyAoMS43IC0gMTcyLjEpIDw3OEYzMjU2Qi1BRjRD
LTMyNEEtQTU5MS1FQ0E0NDQzQTQ2OUY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJv
bi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL09wZW5TY3JpcHRpbmcuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvT3BlblNjcmlwdGluZwogICAgMHg3ZmZmOTljYmQwMDAgLSAgICAgMHg3ZmZm
OTljYmVmZjMgIGNvbS5hcHBsZS5wcmludC5mcmFtZXdvcmsuUHJpbnQgKDEyIC0gMjY3KSA8RTJG
ODJGMUYtREMyNy0zRUYwLTlGNzUtQjM1NEY3MDE0NTBBPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9QcmludC5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9QcmludAogICAgMHg3ZmZmOTljYmYwMDAgLSAgICAgMHg3ZmZmOTljYzFm
ZjcgIGNvbS5hcHBsZS5zZWN1cml0eWhpICg5LjAgLSA1NTAwNikgPDNCRDM1M0RELTRGQzctM0E0
NC05OUQwLTkyNjlDMUQzRjZBNT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZy
YW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvU2VjdXJpdHlISS5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9TZWN1cml0eUhJCiAgICAweDdmZmY5OWNjMjAwMCAtICAgICAweDdmZmY5OWNjOGZmNyAg
Y29tLmFwcGxlLnNwZWVjaC5yZWNvZ25pdGlvbi5mcmFtZXdvcmsgKDYuMC4xIC0gNi4wLjEpIDww
ODI4OTVEQy0zQUM3LTNERUYtQURDQS01QjAxOEMxOUM5RDM+IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1NwZWVjaFJlY29n
bml0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1NwZWVjaFJlY29nbml0aW9uCiAgICAweDdmZmY5
OWNjOTAwMCAtICAgICAweDdmZmY5OWRhOGZmYiAgY29tLmFwcGxlLmNsb3Vka2l0LkNsb3VkS2l0
ICg2NTEuMTQgLSA2NTEuMTQpIDw5RjkwMUU0NS0yM0UzLTNGNDUtQjY2Ri0xQkFCM0FGQzQ0NjI+
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Nsb3VkS2l0LmZyYW1ld29yay9WZXJzaW9ucy9B
L0Nsb3VkS2l0CiAgICAweDdmZmY5OWRhOTAwMCAtICAgICAweDdmZmY5OWRhOWZmZiAgY29tLmFw
cGxlLkNvY29hICg2LjExIC0gMjIpIDw4NUVERkJFMS03NUYwLTM2OUUtOENBOC1DNkE2MzlCOThG
QTY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvY29hLmZyYW1ld29yay9WZXJzaW9ucy9B
L0NvY29hCiAgICAweDdmZmY5OWVmMzAwMCAtICAgICAweDdmZmY5OWY4MGZmZiAgY29tLmFwcGxl
LmF1ZGlvLkNvcmVBdWRpbyAoNC4zLjAgLSA0LjMuMCkgPDc4NzY3Rjg4LTkxRDQtMzFDRS1BQUM2
LTFGOTQwN0Y0NzlCQj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUF1ZGlvLmZyYW1l
d29yay9WZXJzaW9ucy9BL0NvcmVBdWRpbwogICAgMHg3ZmZmOTlmODEwMDAgLSAgICAgMHg3ZmZm
OTlmOTRmZmYgIGNvbS5hcHBsZS5Db3JlQmx1ZXRvb3RoICgxLjAgLSAxKSA8QkNCNzg3NzctNzZG
MC0zQ0MxLTg0NDMtOUU2MUFFRjdFRjYzPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3Jl
Qmx1ZXRvb3RoLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVCbHVldG9vdGgKICAgIDB4N2ZmZjk5
Zjk1MDAwIC0gICAgIDB4N2ZmZjlhMjk0ZmYzICBjb20uYXBwbGUuQ29yZURhdGEgKDEyMCAtIDc1
NC4yKSA8MEM5RDlENzgtNzU4RC0zMThGLTkwNDktRDQyQ0M3OTQ0MzYzPiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9Db3JlRGF0YS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlRGF0YQogICAg
MHg3ZmZmOWEyOTUwMDAgLSAgICAgMHg3ZmZmOWEzNDJmZjcgIGNvbS5hcHBsZS5Db3JlRGlzcGxh
eSAoMS4wIC0gMSkgPDUzRDFFQUZFLTIzQTQtMzk4RC1CRjUyLUU0Mjk5RTY3MERCNj4gL1N5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZURpc3BsYXkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29y
ZURpc3BsYXkKICAgIDB4N2ZmZjlhMzQzMDAwIC0gICAgIDB4N2ZmZjlhN2Q2ZmZmICBjb20uYXBw
bGUuQ29yZUZvdW5kYXRpb24gKDYuOSAtIDEzNDkuOTIpIDw0RDkzMjBBNi0zODIyLTMyMzYtODJE
Ri0wN0E3NjlBRkM0MjM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9u
LmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVGb3VuZGF0aW9uCiAgICAweDdmZmY5YTdkNzAwMCAt
ICAgICAweDdmZmY5YWU3YWZmNyAgY29tLmFwcGxlLkNvcmVHcmFwaGljcyAoMi4wIC0gMTA3MC4y
MikgPEE2ODBBRDFGLUY2NUEtM0MwRC1BQ0Q1LTRFNUI1QjhBRDIzQT4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvQ29yZUdyYXBoaWNzLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVHcmFwaGlj
cwogICAgMHg3ZmZmOWFlN2IwMDAgLSAgICAgMHg3ZmZmOWIwYmVmZmIgIGNvbS5hcHBsZS5Db3Jl
SW1hZ2UgKDEyLjQuMCAtIDQ1MS40LjkpIDxCRTQzMDNDOS1DOUQ5LTM2MUQtQUM5NC1EQkU0MEVC
NjcwMEU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVJbWFnZS5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9Db3JlSW1hZ2UKICAgIDB4N2ZmZjliMGJmMDAwIC0gICAgIDB4N2ZmZjliMTI0ZmY3
ICBjb20uYXBwbGUuY29yZWxvY2F0aW9uICgyMTAxLjAuNjMpIDxDNEM2QkUyNy04NUUyLTM0RDUt
QUVEQy1FQkI1QTdDQjc4RDE+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVMb2NhdGlv
bi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlTG9jYXRpb24KICAgIDB4N2ZmZjliMTI1MDAwIC0g
ICAgIDB4N2ZmZjliMWQ2ZmZmICBjb20uYXBwbGUuQ29yZU1lZGlhICgxLjAgLSAxOTA3LjU5LjEu
NikgPDU3MDY5MEQ4LUE5NTYtMzYyOS05RTQ2LTRGOEJEREI4QTgyQz4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvQ29yZU1lZGlhLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVNZWRpYQogICAg
MHg3ZmZmOWIxZDcwMDAgLSAgICAgMHg3ZmZmOWIyMjJmZjcgIGNvbS5hcHBsZS5Db3JlTWVkaWFJ
TyAoODA1LjAgLSA0OTMyKSA8QTFBMEQ5QzEtNDUwOS0zREQzLUFBMDAtOTQ5RUVEREZDOUZFPiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlTWVkaWFJTy5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9Db3JlTWVkaWFJTwogICAgMHg3ZmZmOWIyMjMwMDAgLSAgICAgMHg3ZmZmOWIyMjNmZmYgIGNv
bS5hcHBsZS5Db3JlU2VydmljZXMgKDc3NS4yMCAtIDc3NS4yMCkgPEFBNTIyN0Q2LUEzN0YtM0Q4
Qy05QkJGLUU4NUY0NTkxMDExMj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZp
Y2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVTZXJ2aWNlcwogICAgMHg3ZmZmOWIyMjQwMDAg
LSAgICAgMHg3ZmZmOWIyNzVmZmYgIGNvbS5hcHBsZS5BRSAoNzEyLjUgLSA3MTIuNSkgPDYxRjJB
RTJDLUUwNEUtM0ZERi05RTg4LTIwMTMyNTEzNkM4Mz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvQUUuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvQUUKICAgIDB4N2ZmZjliMjc2MDAwIC0gICAgIDB4N2ZmZjliNTUxZmY3
ICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzLkNhcmJvbkNvcmUgKDExNTkuNiAtIDExNTkuNikgPDA4
QUMwNzRDLTk2NUItM0VERi04RTQ1LTA3MDdDOERFOUVBRD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvQ2FyYm9u
Q29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DYXJib25Db3JlCiAgICAweDdmZmY5YjU1MjAwMCAt
ICAgICAweDdmZmY5YjU4NWZmZiAgY29tLmFwcGxlLkRpY3Rpb25hcnlTZXJ2aWNlcyAoMS4yIC0g
Mjc0KSA8RDIzODY2RTItRjdDOC0zOTg0LUE5RDQtOTY1NTJDQ0RFNTczPiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jr
cy9EaWN0aW9uYXJ5U2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRGljdGlvbmFyeVNlcnZp
Y2VzCiAgICAweDdmZmY5YjU4NjAwMCAtICAgICAweDdmZmY5YjU4ZWZmMyAgY29tLmFwcGxlLkNv
cmVTZXJ2aWNlcy5GU0V2ZW50cyAoMTIzMC41MC4xIC0gMTIzMC41MC4xKSA8MkFEMUIwRTUtNzIx
NC0zN0M0LThEMTEtQTI3QzlDQUMwRjc0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3Jl
U2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9GU0V2ZW50cy5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9GU0V2ZW50cwogICAgMHg3ZmZmOWI1OGYwMDAgLSAgICAgMHg3ZmZmOWI2
ZmJmZmIgIGNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyAoNzc1LjIwIC0gNzc1LjIwKSA8QTY1MzBD
M0UtQ0IxOC0zNURELUI1RDUtODVBRDdFMTg3RUI0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9MYXVuY2hTZXJ2
aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9MYXVuY2hTZXJ2aWNlcwogICAgMHg3ZmZmOWI2ZmMw
MDAgLSAgICAgMHg3ZmZmOWI3YWNmZmIgIGNvbS5hcHBsZS5NZXRhZGF0YSAoMTAuNy4wIC0gMTA3
NS40MCkgPEI3MzRGNTY3LUVDNzAtMzlBRi1CQjg2LTQ2Qzk3MDY1NTgwRj4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29y
a3MvTWV0YWRhdGEuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTWV0YWRhdGEKICAgIDB4N2ZmZjliN2Fk
MDAwIC0gICAgIDB4N2ZmZjliODBjZmZmICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzLk9TU2Vydmlj
ZXMgKDc3NS4yMCAtIDc3NS4yMCkgPDBERjU3NDdDLTEyQkMtM0E2QS1CRjVBLUMxMjgzM0Y2RERF
Qj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJz
aW9ucy9BL0ZyYW1ld29ya3MvT1NTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9PU1NlcnZp
Y2VzCiAgICAweDdmZmY5YjgwZDAwMCAtICAgICAweDdmZmY5Yjg3ZGZmZiAgY29tLmFwcGxlLlNl
YXJjaEtpdCAoMS40LjAgLSAxLjQuMCkgPDdBNkREQTJCLTAzRjEtMzEzNy1CQTlFLTFDQzIxMTk3
M0UyNj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0ZyYW1ld29ya3MvU2VhcmNoS2l0LmZyYW1ld29yay9WZXJzaW9ucy9BL1NlYXJj
aEtpdAogICAgMHg3ZmZmOWI4N2UwMDAgLSAgICAgMHg3ZmZmOWI4YzNmZjcgIGNvbS5hcHBsZS5j
b3Jlc2VydmljZXMuU2hhcmVkRmlsZUxpc3QgKDM4IC0gMzgpIDxEQTA5NjY3OC05M0FCLTMyOTEt
QkRFMi00ODJGMUQ1NDQ1ODk+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNl
cy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1NoYXJlZEZpbGVMaXN0LmZyYW1ld29y
ay9WZXJzaW9ucy9BL1NoYXJlZEZpbGVMaXN0CiAgICAweDdmZmY5Yjk0YzAwMCAtICAgICAweDdm
ZmY5YmE5OWZmYiAgY29tLmFwcGxlLkNvcmVUZXh0ICgzNTIuMCAtIDU0NC4xNykgPDQzNDY2QjBE
LUMwNjEtMzYzNi05MjhCLTA0MTdFQkQzMjVBOD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
Q29yZVRleHQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVRleHQKICAgIDB4N2ZmZjliYTlhMDAw
IC0gICAgIDB4N2ZmZjliYWNmZmYzICBjb20uYXBwbGUuQ29yZVZpZGVvICgxLjggLSAyMzUuMykg
PEFDMTFENUZCLUM3N0ItMzRGNS1COTQyLUY2OThFODRDMjI5Rj4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQ29yZVZpZGVvLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVWaWRlbwogICAgMHg3
ZmZmOWJhZDAwMDAgLSAgICAgMHg3ZmZmOWJiNDFmZmIgIGNvbS5hcHBsZS5mcmFtZXdvcmsuQ29y
ZVdMQU4gKDExLjAgLSAxMjAwLjMxKSA8NEQ1N0Q5MzItNkQ2Ni0zODAwLThEMzMtMTM5NTFEMkUw
RDg0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlV0xBTi5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9Db3JlV0xBTgogICAgMHg3ZmZmOWJiNzQwMDAgLSAgICAgMHg3ZmZmOWJiN2ZmZjMgIGNv
bS5hcHBsZS5EaXJlY3RvcnlTZXJ2aWNlLkZyYW1ld29yayAoMTAuMTIgLSAxOTQpIDw0NUJFQTI5
Mi00NTUwLTMwODItOENFNy01RDZDRTdFMDA1MkE+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0RpcmVjdG9yeVNlcnZpY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRGlyZWN0b3J5U2VydmljZQog
ICAgMHg3ZmZmOWJiODAwMDAgLSAgICAgMHg3ZmZmOWJjM2VmZjcgIGNvbS5hcHBsZS5EaXNjUmVj
b3JkaW5nICg5LjAuMyAtIDkwMzAuNC41KSA8OTM5N0U2MDktQ0I1NC0zN0IyLUIyOEUtRDRCQzZD
MzRCRkFCPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9EaXNjUmVjb3JkaW5nLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0Rpc2NSZWNvcmRpbmcKICAgIDB4N2ZmZjliYzNmMDAwIC0gICAgIDB4N2Zm
ZjliYzQ0ZmZmICBjb20uYXBwbGUuRGlza0FyYml0cmF0aW9uICgyLjcgLSAyLjcpIDw3MEY1NjA0
Mi1FRjA0LTNCQUYtOUUwNC05MEY0MjNGQjJCQ0M+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0Rpc2tBcmJpdHJhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9EaXNrQXJiaXRyYXRpb24KICAg
IDB4N2ZmZjliZGQ2MDAwIC0gICAgIDB4N2ZmZjljMTdjZmZmICBjb20uYXBwbGUuRm91bmRhdGlv
biAoNi45IC0gMTM0OS45MSkgPDJBNTIxQ0ZCLTdGMEYtMzIyNi05REFFLTczQ0VEQjZFRjRFRD4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvRm91bmRhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMv
Qy9Gb3VuZGF0aW9uCiAgICAweDdmZmY5YzFhODAwMCAtICAgICAweDdmZmY5YzFkOWZmNyAgY29t
LmFwcGxlLkdTUyAoNC4wIC0gMi4wKSA8MzBBNzdBOTUtQ0JENC0zQkQ3LTlCRkYtODQyNjA3MUY1
RDlEPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9HU1MuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
R1NTCiAgICAweDdmZmY5YzI5OTAwMCAtICAgICAweDdmZmY5YzMzY2ZmZiAgY29tLmFwcGxlLkJs
dWV0b290aCAoNS4wLjUgLSA1LjAuNWYxKSA8N0JDMzQxQUUtMDIwNy0zNjcwLUFEMDEtMjc2ODdE
OUQ2RjVFPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JT0JsdWV0b290aC5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9JT0JsdWV0b290aAogICAgMHg3ZmZmOWMzM2QwMDAgLSAgICAgMHg3ZmZmOWMz
ZDNmZjcgIGNvbS5hcHBsZS5mcmFtZXdvcmsuSU9LaXQgKDIuMC4yIC0gMTMyNC42MC40KSA8NDU0
MDM2QUQtODZBQS0zQUJCLThDNTMtQjVGNjU0QTY4MjREPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9JT0tpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JT0tpdAogICAgMHg3ZmZmOWMzZDQwMDAg
LSAgICAgMHg3ZmZmOWMzZGFmZmIgIGNvbS5hcHBsZS5JT1N1cmZhY2UgKDE1OS4xMiAtIDE1OS4x
MikgPEUzRDZGQ0VELUY5MzgtMzBBMy1BRDA4LTA5OThCNjc0QTQ5Mj4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvSU9TdXJmYWNlLmZyYW1ld29yay9WZXJzaW9ucy9BL0lPU3VyZmFjZQogICAg
MHg3ZmZmOWMzZGIwMDAgLSAgICAgMHg3ZmZmOWM0MmNmZjcgIGNvbS5hcHBsZS5JbWFnZUNhcHR1
cmVDb3JlICg3LjAgLSA3LjApIDxBNjQwQ0EyRi04MDkzLTM0QUItOTQ3Qy0yNjY3OUVDQjhBNkQ+
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ltYWdlQ2FwdHVyZUNvcmUuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvSW1hZ2VDYXB0dXJlQ29yZQogICAgMHg3ZmZmOWM0MmQwMDAgLSAgICAgMHg3ZmZm
OWM1OTBmZjcgIGNvbS5hcHBsZS5JbWFnZUlPLmZyYW1ld29yayAoMy4zLjAgLSAxNTk5LjEzKSA8
MDI0ODVCRjQtN0RGMi0zRjNELTgwOTQtRUI4MjdCRDFCNEM1PiAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9JbWFnZUlPLmZyYW1ld29yay9WZXJzaW9ucy9BL0ltYWdlSU8KICAgIDB4N2ZmZjlj
NTkxMDAwIC0gICAgIDB4N2ZmZjljNTk1ZmZmICBsaWJHSUYuZHlsaWIgKDE1OTkuMTMpIDwxQjg4
QTYwNS1DNzU2LTM2RDctOUUzRi01NzBCOUE0MDQ3NDk+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL0ltYWdlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYkdJRi5keWxpYgog
ICAgMHg3ZmZmOWM1OTYwMDAgLSAgICAgMHg3ZmZmOWM2ODdmZjcgIGxpYkpQMi5keWxpYiAoMTU5
OS4xMykgPDg5NjU0QjM2LTM4REMtMzhGRi05QkVFLTY3NTVDQzk2NEMxQz4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGli
SlAyLmR5bGliCiAgICAweDdmZmY5YzY4ODAwMCAtICAgICAweDdmZmY5YzZhYmZmZiAgbGliSlBF
Ry5keWxpYiAoMTU5OS4xMykgPDNBMDA2N0MwLTYwRTEtM0NGNi1BQTI2LTY0Q0E2NDI4RTRCQj4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9S
ZXNvdXJjZXMvbGliSlBFRy5keWxpYgogICAgMHg3ZmZmOWM2YWMwMDAgLSAgICAgMHg3ZmZmOWM2
ZDJmZmYgIGxpYlBuZy5keWxpYiAoMTU5OS4xMykgPDlFOEIwMDRDLUE1MzItM0RCRS04NjVDLUUx
QTYwNkUxNkFBRj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9SZXNvdXJjZXMvbGliUG5nLmR5bGliCiAgICAweDdmZmY5YzZkMzAwMCAtICAg
ICAweDdmZmY5YzZkNWZmMyAgbGliUmFkaWFuY2UuZHlsaWIgKDE1OTkuMTMpIDwzQjE0QzNCMS1E
NEIyLTM2ODAtOTk3RS1EMDFEQjk5NjM0REI+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lt
YWdlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYlJhZGlhbmNlLmR5bGliCiAg
ICAweDdmZmY5YzZkNjAwMCAtICAgICAweDdmZmY5YzcyNGZmNyAgbGliVElGRi5keWxpYiAoMTU5
OS4xMykgPDRCODRGNTAyLTdGNEMtM0EyMS04MTJELTVCMDQ0MkZERkFGOT4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGli
VElGRi5keWxpYgogICAgMHg3ZmZmOWQ0OGQwMDAgLSAgICAgMHg3ZmZmOWQ0YTZmZjcgIGNvbS5h
cHBsZS5LZXJiZXJvcyAoMy4wIC0gMSkgPEI5RDI0MkVCLUUzMjUtM0EyMS05ODEyLUM3N0NCQkZC
MEQ1MT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvS2VyYmVyb3MuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvS2VyYmVyb3MKICAgIDB4N2ZmZjlkNGE3MDAwIC0gICAgIDB4N2ZmZjlkNGRkZmZmICBj
b20uYXBwbGUuTERBUEZyYW1ld29yayAoMi40LjI4IC0gMTk0LjUpIDw0OTJBQ0EyMi0zNzNFLTNE
RDktQkFFQi05RUY2QUE5NjJGRDU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0xEQVAuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvTERBUAogICAgMHg3ZmZmOWQ0ZGUwMDAgLSAgICAgMHg3ZmZmOWQ1
MDFmZmYgIGNvbS5hcHBsZS5zcGVlY2guTGF0ZW50U2VtYW50aWNNYXBwaW5nRnJhbWV3b3JrICgy
LjEyLjIgLSAyLjEyLjIpIDxFNjhDRjA3QS02RUZCLTM0RTYtQjEwMy1CRUJFNEFENTc1MjE+IC9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0xhdGVudFNlbWFudGljTWFwcGluZy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9MYXRlbnRTZW1hbnRpY01hcHBpbmcKICAgIDB4N2ZmZjlkNzMwMDAwIC0gICAg
IDB4N2ZmZjlkNzM2ZmZmICBjb20uYXBwbGUuTWVkaWFBY2Nlc3NpYmlsaXR5ICgxLjAgLSA5Ny4x
LjEpIDwwQkQ4MjczNS02NjQ0LTM3Q0UtQjEzRC04RTdDQzU5QTE3NTI+IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL01lZGlhQWNjZXNzaWJpbGl0eS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9NZWRp
YUFjY2Vzc2liaWxpdHkKICAgIDB4N2ZmZjlkNzRjMDAwIC0gICAgIDB4N2ZmZjlkYzg1ZmY3ICBj
b20uYXBwbGUuTWVkaWFUb29sYm94ICgxLjAgLSAxOTA3LjU5LjEuNikgPEZBMDY4QzZGLTA1MDYt
MzVDMy1BNjM3LUM0QUZGODI0MTFEQj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTWVkaWFU
b29sYm94LmZyYW1ld29yay9WZXJzaW9ucy9BL01lZGlhVG9vbGJveAogICAgMHg3ZmZmOWRjODYw
MDAgLSAgICAgMHg3ZmZmOWRjZTFmZmYgIGNvbS5hcHBsZS5NZXRhbCAoODcuMTggLSA4Ny4xOCkg
PEUzNjE4QjU0LUM3MjgtMzRDQS05RThBLTlCRDMzQTI5NUQzMT4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvTWV0YWwuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTWV0YWwKICAgIDB4N2ZmZjllNWNh
MDAwIC0gICAgIDB4N2ZmZjllNWQyZmZmICBjb20uYXBwbGUuTmV0RlMgKDYuMCAtIDQuMCkgPDE0
QTI0RDAwLTU2NzMtMzMwQS05NTlELTg3RjcyMDQwREVGRj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvTmV0RlMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTmV0RlMKICAgIDB4N2ZmZjllNWQzMDAw
IC0gICAgIDB4N2ZmZjllNzBlZmZmICBjb20uYXBwbGUuTmV0d29ya0V4dGVuc2lvbiAoMS4wIC0g
MSkgPEIzMDM3RkI0LTNBNDctMzRFOS04OUZFLUZFOUFDMjdDOEJGRT4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvTmV0d29ya0V4dGVuc2lvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9OZXR3b3Jr
RXh0ZW5zaW9uCiAgICAweDdmZmY5ZTdhOTAwMCAtICAgICAweDdmZmY5ZTdiMWZmNyAgbGliY2xk
Y3B1ZW5naW5lLmR5bGliICgyLjguNSkgPDgwODZENkZBLTIwMDYtMzU4Mi1CMjBFLTQyMDlEODFB
Q0M1OD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkNMLmZyYW1ld29yay9WZXJzaW9u
cy9BL0xpYnJhcmllcy9saWJjbGRjcHVlbmdpbmUuZHlsaWIKICAgIDB4N2ZmZjllOTdhMDAwIC0g
ICAgIDB4N2ZmZjllOWM4ZmYzICBjb20uYXBwbGUub3BlbmNsICgyLjguNiAtIDIuOC42KSA8QTYx
NDBBQzQtNzU3OS0zQUMyLUI3RUUtMDhBODg5OUJDODExPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9PcGVuQ0wuZnJhbWV3b3JrL1ZlcnNpb25zL0EvT3BlbkNMCiAgICAweDdmZmY5ZTljOTAw
MCAtICAgICAweDdmZmY5ZTllMmZmYiAgY29tLmFwcGxlLkNGT3BlbkRpcmVjdG9yeSAoMTAuMTIg
LSAxOTQpIDxBNjRFOUEwMS0zRjZFLTM2RUEtOUMxMC04OEM1NjRBNjhDOUQ+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL09wZW5EaXJlY3RvcnkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3
b3Jrcy9DRk9wZW5EaXJlY3RvcnkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ0ZPcGVuRGlyZWN0b3J5
CiAgICAweDdmZmY5ZTllMzAwMCAtICAgICAweDdmZmY5ZTllZWZmNyAgY29tLmFwcGxlLk9wZW5E
aXJlY3RvcnkgKDEwLjEyIC0gMTk0KSA8NDI5OEZGRDAtQjFBNy0zMDY0LUFGNUItNzA4QjNGQTM4
NjcxPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuRGlyZWN0b3J5LmZyYW1ld29yay9W
ZXJzaW9ucy9BL09wZW5EaXJlY3RvcnkKICAgIDB4N2ZmZjllOWVmMDAwIC0gICAgIDB4N2ZmZjll
OWYxZmZmICBsaWJDVk1TUGx1Z2luU3VwcG9ydC5keWxpYiAoMTQuMC4xNikgPEFBMjQ2OEQxLTkx
NjktMzQyNC04RUU0LTA0NzBFOTA1MEUyMT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3Bl
bkdMLmZyYW1ld29yay9WZXJzaW9ucy9BL0xpYnJhcmllcy9saWJDVk1TUGx1Z2luU3VwcG9ydC5k
eWxpYgogICAgMHg3ZmZmOWU5ZjIwMDAgLSAgICAgMHg3ZmZmOWU5ZjVmZjcgIGxpYkNvcmVGU0Nh
Y2hlLmR5bGliICgxNTYuMykgPDY4N0M0Q0MzLTY1MzctMzQ0Qi04QkUxLTUyMzRDOENCMjg2ND4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9WZXJzaW9ucy9BL0xp
YnJhcmllcy9saWJDb3JlRlNDYWNoZS5keWxpYgogICAgMHg3ZmZmOWU5ZjYwMDAgLSAgICAgMHg3
ZmZmOWU5ZmFmZmYgIGxpYkNvcmVWTUNsaWVudC5keWxpYiAoMTU2LjMpIDxFN0FFRkNCRS1CNkJG
LTNDN0MtOUE0RS1FNzhDQjA0REI3OTQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5H
TC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9MaWJyYXJpZXMvbGliQ29yZVZNQ2xpZW50LmR5bGliCiAg
ICAweDdmZmY5ZTlmYjAwMCAtICAgICAweDdmZmY5ZWEwNGZmNyAgbGliR0ZYU2hhcmVkLmR5bGli
ICgxNC4wLjE2KSA8MTcwRDA3RjMtMkQzMC0zRDRCLTgwQTAtOTcxRTBBNzY1NzA5PiAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGlicmFyaWVz
L2xpYkdGWFNoYXJlZC5keWxpYgogICAgMHg3ZmZmOWVhMDUwMDAgLSAgICAgMHg3ZmZmOWVhMTBm
ZmYgIGxpYkdMLmR5bGliICgxNC4wLjE2KSA8MDgwMUYzQjktQTUyNS0zMkJCLTlCQzAtNDc4OTQ3
Q0UyMUQ5PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvTGlicmFyaWVzL2xpYkdMLmR5bGliCiAgICAweDdmZmY5ZWExMTAwMCAtICAgICAweDdm
ZmY5ZWE0ZGZmNyAgbGliR0xJbWFnZS5keWxpYiAoMTQuMC4xNikgPEZFMzlDNTdCLTA1NkMtM0NC
Ri1CNjUzLUE4RjIwMDU2MzFDMT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZy
YW1ld29yay9WZXJzaW9ucy9BL0xpYnJhcmllcy9saWJHTEltYWdlLmR5bGliCiAgICAweDdmZmY5
ZWE0ZTAwMCAtICAgICAweDdmZmY5ZWJjNGZmMyAgbGliR0xQcm9ncmFtbWFiaWxpdHkuZHlsaWIg
KDE0LjAuMTYpIDxBODFGMUI5NS00NDVDLTMxOTEtQURCMS0wN0JBRUE1QTIwNEQ+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9MaWJyYXJpZXMv
bGliR0xQcm9ncmFtbWFiaWxpdHkuZHlsaWIKICAgIDB4N2ZmZjllYmM1MDAwIC0gICAgIDB4N2Zm
ZjllYzA2ZmY3ICBsaWJHTFUuZHlsaWIgKDE0LjAuMTYpIDxCMjg1RUFENi1CM0FBLTM3NTMtQkI4
NS03NTg2NEJENkU3NkM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9MaWJyYXJpZXMvbGliR0xVLmR5bGliCiAgICAweDdmZmY5ZjU2ZTAwMCAt
ICAgICAweDdmZmY5ZjU3Y2ZmZiAgY29tLmFwcGxlLm9wZW5nbCAoMTQuMC4xNiAtIDE0LjAuMTYp
IDxCNDI4QkI4OS04RkUxLTM1MjctQkYzRS1GOEYwQTEwNjA4ODQ+IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9PcGVuR0wKICAgIDB4N2ZmZjlm
N2ViMDAwIC0gICAgIDB4N2ZmZjlmOTMyZmZmICBjb20uYXBwbGUuUVRLaXQgKDcuNy4zIC0gMjk3
OC44KSA8ODBCMjdDNUQtMDg3Ri0zQjgzLUFGOTktQUQ2QkEyRTExMDVEPiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9RVEtpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9RVEtpdAogICAgMHg3ZmZm
OWY5MzMwMDAgLSAgICAgMHg3ZmZmOWZiOWRmZjcgIGNvbS5hcHBsZS5pbWFnZUtpdCAoMy4wIC0g
MTAyMykgPDlDNTQ3NTY1LUNCQUEtM0FDQi1BM0Y2LTEzNjZBMERDRENCND4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvUXVhcnR6LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW1h
Z2VLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW1hZ2VLaXQKICAgIDB4N2ZmZjlmYjllMDAwIC0g
ICAgIDB4N2ZmZjlmYzY1ZmZmICBjb20uYXBwbGUuUERGS2l0ICgxLjAgLSAxKSA8QkU4MkYxNEMt
QjIwQy0zNzcxLUIxNkMtRjA3MjNGNjU1MkFEPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9R
dWFydHouZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9QREZLaXQuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvUERGS2l0CiAgICAweDdmZmY5ZmM2NjAwMCAtICAgICAweDdmZmZhMDE4Y2ZmNyAg
Y29tLmFwcGxlLlF1YXJ0ekNvbXBvc2VyICg1LjEgLSAzNTYpIDxDNjYyOTNGNi1FRjA1LTNCMzYt
ODUyNC0wODFDRUI5RkFERDc+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1F1YXJ0ei5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1F1YXJ0ekNvbXBvc2VyLmZyYW1ld29yay9WZXJz
aW9ucy9BL1F1YXJ0ekNvbXBvc2VyCiAgICAweDdmZmZhMDE4ZDAwMCAtICAgICAweDdmZmZhMDFi
MGZmYiAgY29tLmFwcGxlLnF1YXJ0emZpbHRlcnMgKDEuMTAuMCAtIDEuMTAuMCkgPDM2NTM0MkVE
LTdBMUEtM0M3NS1BRTYwLTkwNzY0RTk2MDM0Qz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
UXVhcnR6LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvUXVhcnR6RmlsdGVycy5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9RdWFydHpGaWx0ZXJzCiAgICAweDdmZmZhMDFiMTAwMCAtICAgICAw
eDdmZmZhMDI5ZWZmZiAgY29tLmFwcGxlLlF1aWNrTG9va1VJRnJhbWV3b3JrICg1LjAgLSA3MjAu
NykgPDMxMzZDMjNFLTM5OUUtMzI5Ni05MjhBLUIxOEVDOUZDNDIzQz4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvUXVhcnR6LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvUXVpY2tM
b29rVUkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUXVpY2tMb29rVUkKICAgIDB4N2ZmZmEwMjlmMDAw
IC0gICAgIDB4N2ZmZmEwMjlmZmZmICBjb20uYXBwbGUucXVhcnR6ZnJhbWV3b3JrICgxLjUgLSAy
MSkgPDA5NDU1OTcyLThBMzMtM0Q2MS1CMTkzLUJBN0U3Q0Y5ODRDQT4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvUXVhcnR6LmZyYW1ld29yay9WZXJzaW9ucy9BL1F1YXJ0egogICAgMHg3ZmZm
YTAyYTAwMDAgLSAgICAgMHg3ZmZmYTA0YTBmZmYgIGNvbS5hcHBsZS5RdWFydHpDb3JlICgxLjEx
IC0gNDUzLjM5LjUpIDwzNEY2NUY4Qy0wMUQyLTMxMjAtQkQwNC0yNjIwQkI2NTJENTA+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1F1YXJ0ekNvcmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUXVh
cnR6Q29yZQogICAgMHg3ZmZmYTA0YTEwMDAgLSAgICAgMHg3ZmZmYTA0ZjZmZmYgIGNvbS5hcHBs
ZS5RdWlja0xvb2tGcmFtZXdvcmsgKDUuMCAtIDcyMC43KSA8M0JEN0JBMkYtOTI0Qy0zRUZGLUIy
NkUtM0Y5MzBFNjJFNkI0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9RdWlja0xvb2suZnJh
bWV3b3JrL1ZlcnNpb25zL0EvUXVpY2tMb29rCiAgICAweDdmZmZhMDRmNzAwMCAtICAgICAweDdm
ZmZhMDUwY2ZmZiAgY29tLmFwcGxlLlNhZmFyaVNlcnZpY2VzLmZyYW1ld29yayAoMTI2MDMgLSAx
MjYwMy4zLjgpIDw5NjZCRjBDOC1COTRCLTNCREYtQUZFMS0wRjk5REFBRTZEOTk+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL1NhZmFyaVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL1Nh
ZmFyaVNlcnZpY2VzCiAgICAweDdmZmZhMGEwNzAwMCAtICAgICAweDdmZmZhMGQwOWZmZiAgY29t
LmFwcGxlLnNlY3VyaXR5ICg3LjAgLSA1Nzc0MC42MC4yMykgPDlGMjNERjQwLTFBMkYtMzE3Ny04
RENFLUZCQzRGOEY0M0JBRj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHkKICAgIDB4N2ZmZmEwZDBhMDAwIC0gICAgIDB4N2Zm
ZmEwZDdmZmZmICBjb20uYXBwbGUuc2VjdXJpdHlmb3VuZGF0aW9uICg2LjAgLSA1NTEzMi41MC43
KSA8QzI1OTdFNjctRTQyNS0zQkQ1LUJGRUUtMjk1OTM3MTBEQkRCPiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9TZWN1cml0eUZvdW5kYXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJp
dHlGb3VuZGF0aW9uCiAgICAweDdmZmZhMGQ4MDAwMCAtICAgICAweDdmZmZhMGRhOWZmZiAgY29t
LmFwcGxlLnNlY3VyaXR5aW50ZXJmYWNlICgxMC4wIC0gNTUwNzkuNTAuNCkgPENEMjNBN0Q3LTFE
MTYtM0IxRC05RDdDLTNGQzMxOTJEMEM2OT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2Vj
dXJpdHlJbnRlcmZhY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKICAg
IDB4N2ZmZmEwZGFhMDAwIC0gICAgIDB4N2ZmZmEwZGFkZmYzICBjb20uYXBwbGUueHBjLlNlcnZp
Y2VNYW5hZ2VtZW50ICgxLjAgLSAxKSA8QkUwRjk3MDgtMEI1NS0zRTc4LUExNUUtQzI4N0I4RUQx
M0JBPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9TZXJ2aWNlTWFuYWdlbWVudC5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9TZXJ2aWNlTWFuYWdlbWVudAogICAgMHg3ZmZmYTExMzQwMDAgLSAgICAg
MHg3ZmZmYTExYTNmZjcgIGNvbS5hcHBsZS5TeXN0ZW1Db25maWd1cmF0aW9uICgxLjE0IC0gMS4x
NCkgPEI0NzFFMEZBLTNBQzYtM0EzNC04MkM4LTRGQ0Y0QjM4OTM2OD4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvU3lzdGVtQ29uZmlndXJhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TeXN0
ZW1Db25maWd1cmF0aW9uCiAgICAweDdmZmZhMTFhNDAwMCAtICAgICAweDdmZmZhMTU1MmZmZiAg
Y29tLmFwcGxlLlZpZGVvVG9vbGJveCAoMS4wIC0gMTkwNy41OS4xLjYpIDxFQjI1NzdBNC1EQ0RG
LTNGRDEtQjVGQS00MkE1NTY1M0E3NEQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1ZpZGVv
VG9vbGJveC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9WaWRlb1Rvb2xib3gKICAgIDB4N2ZmZmEzMjdm
MDAwIC0gICAgIDB4N2ZmZmEzMjg2ZmZiICBjb20uYXBwbGUuQVBGUyAoMS4wIC0gMSkgPDZFNzk3
OTdFLTI2QkQtM0U0OS04OTFDLTAzQjIyM0Y3QkQ1OT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVG
cmFtZXdvcmtzL0FQRlMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQVBGUwogICAgMHg3ZmZmYTM5ZmEw
MDAgLSAgICAgMHg3ZmZmYTNhMTVmZjMgIGNvbS5hcHBsZS5BcHBDb250YWluZXIgKDQuMCAtIDMw
Ny41MC4yMSkgPEMyRTZCQTNELTgxRkYtMzlDMy1CNEJGLURCQjlBMTdERTA3OD4gL1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0FwcENvbnRhaW5lci5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9BcHBDb250YWluZXIKICAgIDB4N2ZmZmEzYTE2MDAwIC0gICAgIDB4N2ZmZmEzYTIzZmYzICBj
b20uYXBwbGUuQXBwU2FuZGJveCAoNC4wIC0gMzA3LjUwLjIxKSA8QkY5RkE0MjYtOEMxMS0zNThC
LTlFMUYtQTM5MDFFM0YyQjE0PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQXBw
U2FuZGJveC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BcHBTYW5kYm94CiAgICAweDdmZmZhM2EyNDAw
MCAtICAgICAweDdmZmZhM2E0NmZmYiAgY29tLmFwcGxlLmZyYW1ld29yay5BcHBsZTgwMjExICgx
Mi4wIC0gMTIwMC40NykgPDg2OUJGRTRDLTNGMTUtMzQ5RS05NzE1LTBBNDhFRDcyNUVBRT4gL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0FwcGxlODAyMTEuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvQXBwbGU4MDIxMQogICAgMHg3ZmZmYTNhNDcwMDAgLSAgICAgMHg3ZmZmYTNhNTZmZWIg
IGNvbS5hcHBsZS5BcHBsZUZTQ29tcHJlc3Npb24gKDg4LjUwLjMgLSAxLjApIDw0NzhFOEJGRi04
QkEyLTM3NUUtQkUwMi1CQTI3RjExNUMxNUE+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3
b3Jrcy9BcHBsZUZTQ29tcHJlc3Npb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQXBwbGVGU0NvbXBy
ZXNzaW9uCiAgICAweDdmZmZhM2E1NzAwMCAtICAgICAweDdmZmZhM2IxZmZmZiAgY29tLmFwcGxl
LkFwcGxlR1ZBRnJhbWV3b3JrICgxMC4xLjE3IC0gMTAuMS4xNykgPDdCQTBBMUQ1LTUzN0UtMzI2
Mi04MEE5LTk5RTUzMTJEMjk5NT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Fw
cGxlR1ZBLmZyYW1ld29yay9WZXJzaW9ucy9BL0FwcGxlR1ZBCiAgICAweDdmZmZhM2I0NzAwMCAt
ICAgICAweDdmZmZhM2JkMjk3ZiAgY29tLmFwcGxlLkFwcGxlSlBFRyAoMS4wIC0gMSkgPEI5RTk1
NzBELTA0QTQtMzRFNC1CNzU2LUQyMDAwNDNCMjVCOD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVG
cmFtZXdvcmtzL0FwcGxlSlBFRy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BcHBsZUpQRUcKICAgIDB4
N2ZmZmEzYmU2MDAwIC0gICAgIDB4N2ZmZmEzYzAxZmZmICBjb20uYXBwbGUuYXBzLmZyYW1ld29y
ayAoNC4wIC0gNC4wKSA8NkNBMDdDREYtMUUzNS0zNEU5LTk1QkYtQkQ1NjVGRjQyQkFEPiAvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQXBwbGVQdXNoU2VydmljZS5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9BcHBsZVB1c2hTZXJ2aWNlCiAgICAweDdmZmZhM2MwMjAwMCAtICAgICAweDdm
ZmZhM2MwYWZmYiAgY29tLmFwcGxlLkFwcGxlU1JQICg1LjAgLSAxKSA8NkFBRTkzQjYtOTgxNi0z
NUIyLTlDNTktRDVDMzIxODA2NUFGPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
QXBwbGVTUlAuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQXBwbGVTUlAKICAgIDB4N2ZmZmEzYzBiMDAw
IC0gICAgIDB4N2ZmZmEzYzBlZmYzICBjb20uYXBwbGUuQXBwbGVTeXN0ZW1JbmZvICgzLjEuNSAt
IDMuMS41KSA8NDJBMTczMUEtQTU3Ni0zMDdBLUIwN0MtOUY4RjY0Njk2Q0I3PiAvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQXBwbGVTeXN0ZW1JbmZvLmZyYW1ld29yay9WZXJzaW9u
cy9BL0FwcGxlU3lzdGVtSW5mbwogICAgMHg3ZmZmYTNjMGYwMDAgLSAgICAgMHg3ZmZmYTNjNjFm
ZmYgIGNvbS5hcHBsZS5BcHBsZVZBRnJhbWV3b3JrICg1LjAuMzYgLSA1LjAuMzYpIDxCMjcyNjc4
Qi0yRUE4LTNGMDQtQkIwRi0zQ0U2MkQxRTRGNTg+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9BcHBsZVZBLmZyYW1ld29yay9WZXJzaW9ucy9BL0FwcGxlVkEKICAgIDB4N2ZmZmEz
YzZiMDAwIC0gICAgIDB4N2ZmZmEzYzcyZmY3ICBjb20uYXBwbGUuQXNzZXRDYWNoZVNlcnZpY2Vz
ICg0OC4zIC0gNDguMykgPEM1OUY3Mjk1LTM2RDgtMzEwOS1BOTEwLUM4M0Q4ODRDQzkyQz4gL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Fzc2V0Q2FjaGVTZXJ2aWNlcy5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9Bc3NldENhY2hlU2VydmljZXMKICAgIDB4N2ZmZmE0MDA1MDAwIC0gICAg
IDB4N2ZmZmE0MDgzZmY3ICBjb20uYXBwbGUuYmFja3VwLmZyYW1ld29yayAoMS44LjUgLSAxLjgu
NSkgPENDNjc5ODkxLUU4RjUtMzE2Ni04RUI2LUFFQTA2OTU0QTUyRD4gL1N5c3RlbS9MaWJyYXJ5
L1ByaXZhdGVGcmFtZXdvcmtzL0JhY2t1cC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9CYWNrdXAKICAg
IDB4N2ZmZmE0NzFmMDAwIC0gICAgIDB4N2ZmZmE0NzQ2ZmZmICBjb20uYXBwbGUuQ2FsZW5kYXJB
Z2VudExpbmsgKDguMCAtIDI1MCkgPEU1MEUyOUY2LTJCQUItM0I4Qi1CQkVBLTdEQzBCOEIwNzdB
RD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NhbGVuZGFyQWdlbnRMaW5rLmZy
YW1ld29yay9WZXJzaW9ucy9BL0NhbGVuZGFyQWdlbnRMaW5rCiAgICAweDdmZmZhNGQwZTAwMCAt
ICAgICAweDdmZmZhNGQzNWZmMyAgY29tLmFwcGxlLkNodW5raW5nTGlicmFyeSAoMTczIC0gMTcz
KSA8RkMyMTY1RjktRkM5My0zOUMwLTgzMjMtQzJGNDNBNUUwMEEzPiAvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvQ2h1bmtpbmdMaWJyYXJ5LmZyYW1ld29yay9WZXJzaW9ucy9BL0No
dW5raW5nTGlicmFyeQogICAgMHg3ZmZmYTRkMzYwMDAgLSAgICAgMHg3ZmZmYTRkYzJmZjcgIGNv
bS5hcHBsZS5DbG91ZERvY3MgKDEuMCAtIDQ4Ni4zMCkgPDc0RUE2NkRDLTI5NEEtM0FGQS05RkRG
LTcxMTkyNjkwN0EzNT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Nsb3VkRG9j
cy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DbG91ZERvY3MKICAgIDB4N2ZmZmE1NjVhMDAwIC0gICAg
IDB4N2ZmZmE1NjYzZmZiICBjb20uYXBwbGUuQ29tbW9uQXV0aCAoNC4wIC0gMi4wKSA8NDRFNDQ2
N0UtOTBCQi0zQ0M0LTlFNTctOUIwOUQ3RTkwMDgxPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvQ29tbW9uQXV0aC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db21tb25BdXRoCiAgICAw
eDdmZmZhNTcyYTAwMCAtICAgICAweDdmZmZhNTc3YmZmNyAgY29tLmFwcGxlLkFkZHJlc3NCb29r
LkNvbnRhY3RzRm91bmRhdGlvbiAoOC4wIC0gMjI1MC4xMSkgPDEzMjRBNzBFLUEwOTMtM0RCOS1B
ODAyLTA3QjhGNEE0OTlCNT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvbnRh
Y3RzRm91bmRhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db250YWN0c0ZvdW5kYXRpb24KICAg
IDB4N2ZmZmE1NzdjMDAwIC0gICAgIDB4N2ZmZmE1NzllZmZmICBjb20uYXBwbGUuY29udGFjdHMu
Q29udGFjdHNQZXJzaXN0ZW5jZSAoMS4wIC0gMjI1MC4xMSkgPDdDREVCODUyLUIzQjctMzI4Ri05
NTM3LURGQjNBNThCODgyQz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvbnRh
Y3RzUGVyc2lzdGVuY2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29udGFjdHNQZXJzaXN0ZW5jZQog
ICAgMHg3ZmZmYTU3ZTgwMDAgLSAgICAgMHg3ZmZmYTViYzdmZjcgIGNvbS5hcHBsZS5Db3JlQVVD
ICgyMjYuMC4wIC0gMjI2LjAuMCkgPEZCRjZDNUJDLTU5MzctMzk1Ny1CNkJBLUUxMDFERjlCMERG
Nj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVBVUMuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvQ29yZUFVQwogICAgMHg3ZmZmYTViYzgwMDAgLSAgICAgMHg3ZmZmYTViZjhmZmYg
IGNvbS5hcHBsZS5Db3JlQVZDSEQgKDUuOS4wIC0gNTkwMC40LjEpIDwzRjY4NTdEMS1BRTdDLTM1
OTMtQjA2NC05MzBGNUJCNzI2OUU+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9D
b3JlQVZDSEQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZUFWQ0hECiAgICAweDdmZmZhNWM5MzAw
MCAtICAgICAweDdmZmZhNWM5YmZmYiAgY29tLmFwcGxlLmZyYW1ld29ya3MuQ29yZURhZW1vbiAo
MS4zIC0gMS4zKSA8MkFCODZGQUYtMzdCMy0zMzIzLTlFRjAtQ0E1OTFCNkUzNTdDPiAvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZURhZW1vbi5mcmFtZXdvcmsvVmVyc2lvbnMv
Qi9Db3JlRGFlbW9uCiAgICAweDdmZmZhNWRhYzAwMCAtICAgICAweDdmZmZhNWRiY2ZmZiAgY29t
LmFwcGxlLkNvcmVFbW9qaSAoMS4wIC0gNDAuMy4zKSA8RTlBMjgzMDEtMkQ3OS0zQTk3LUEwNDYt
MDI4MjU4QTZBQkU1PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZUVtb2pp
LmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVFbW9qaQogICAgMHg3ZmZmYTVlODEwMDAgLSAgICAg
MHg3ZmZmYTVlOTdmZjMgIGNvbS5hcHBsZS5Db3JlTWVkaWFBdXRob3JpbmcgKDIuMiAtIDk1Nikg
PEFFQkZGNTVGLUJGMUUtM0NBNS1BQTlDLTFDRTIyMjE4QTY2NT4gL1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL0NvcmVNZWRpYUF1dGhvcmluZy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9D
b3JlTWVkaWFBdXRob3JpbmcKICAgIDB4N2ZmZmE1ZTk4MDAwIC0gICAgIDB4N2ZmZmE1ZTlkZmZm
ICBjb20uYXBwbGUuQ29yZU9wdGltaXphdGlvbiAoMS4wIC0gMSkgPDg5QTlDRUIyLUY0NTMtM0JC
My1CREYwLTRGRUZBMjNCMzA2Nj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Nv
cmVPcHRpbWl6YXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZU9wdGltaXphdGlvbgogICAg
MHg3ZmZmYTVlOWUwMDAgLSAgICAgMHg3ZmZmYTVmMmVmZmIgIGNvbS5hcHBsZS5Db3JlUERGICg0
LjAgLSA0KSA8N0Y1MEU0QTYtOTQwQy0zM0Y1LUJFNEUtN0UwMUFGRTk4QThGPiAvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZVBERi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3Jl
UERGCiAgICAweDdmZmZhNWZhYjAwMCAtICAgICAweDdmZmZhNjAwN2ZmZiAgY29tLmFwcGxlLkNv
cmVQcmVkaWN0aW9uICgxLjAgLSAxKSA8RDIzQ0U3QkQtQkEzMi0zRDY4LUE1MjAtNjg0QTJBRTVG
NTZEPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZVByZWRpY3Rpb24uZnJh
bWV3b3JrL1ZlcnNpb25zL0EvQ29yZVByZWRpY3Rpb24KICAgIDB4N2ZmZmE2MGY3MDAwIC0gICAg
IDB4N2ZmZmE2MTI3ZmYzICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzSW50ZXJuYWwgKDI3Ni4yIC0g
Mjc2LjIpIDwwNUVCN0Q0NS1ERDRDLTNBMEYtQUM2My1BMEMyQTY4RTY0ODE+IC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlU2VydmljZXNJbnRlcm5hbC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9Db3JlU2VydmljZXNJbnRlcm5hbAogICAgMHg3ZmZmYTYzYjgwMDAgLSAgICAgMHg3
ZmZmYTY0NDdmZjcgIGNvbS5hcHBsZS5Db3JlU3ltYm9saWNhdGlvbiAoNjIwNDYpIDw5Njg1QTM0
QS1DNkZELTM2ODEtOEY3RS0yMTFENDgyOThERDI+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9Db3JlU3ltYm9saWNhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlU3ltYm9s
aWNhdGlvbgogICAgMHg3ZmZmYTY0NDgwMDAgLSAgICAgMHg3ZmZmYTY1ODdmZTcgIGNvbS5hcHBs
ZS5jb3JldWkgKDIuMSAtIDQzMS4zKSA8OEQwRkE0NzgtOUI2Qy0zRDZELThBREYtODY3N0JBMEJG
MTM0PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZVVJLmZyYW1ld29yay9W
ZXJzaW9ucy9BL0NvcmVVSQogICAgMHg3ZmZmYTY1ODgwMDAgLSAgICAgMHg3ZmZmYTY2NThmZjMg
IGNvbS5hcHBsZS5Db3JlVXRpbHMgKDUuMSAtIDUxMC4zMSkgPDRBQzRBOEU5LUMxRTgtM0ZCQS1B
RjBFLTk2Rjk0MDREODI2RD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVV
dGlscy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlVXRpbHMKICAgIDB4N2ZmZmE2NmE4MDAwIC0g
ICAgIDB4N2ZmZmE2NzBkZmYzICBjb20uYXBwbGUuZnJhbWV3b3JrLkNvcmVXaUZpICgxMi4wIC0g
MTIwMC4zMSkgPERFOURCMjkxLTQ1MkMtMzNGQi04MzNCLUM2MkQwOUNGNDI0Rj4gL1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVXaUZpLmZyYW1ld29yay9WZXJzaW9ucy9BL0Nv
cmVXaUZpCiAgICAweDdmZmZhNjcwZTAwMCAtICAgICAweDdmZmZhNjcxY2ZmNyAgY29tLmFwcGxl
LkNyYXNoUmVwb3J0ZXJTdXBwb3J0ICgxMC4xMiAtIDgyNykgPDgwMkE5QjgxLUUzNDktMzQ4Qi05
MEFCLTEwRTQwQjY1NDI1MD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NyYXNo
UmVwb3J0ZXJTdXBwb3J0LmZyYW1ld29yay9WZXJzaW9ucy9BL0NyYXNoUmVwb3J0ZXJTdXBwb3J0
CiAgICAweDdmZmZhNjc4ZTAwMCAtICAgICAweDdmZmZhNjc5OGZmYiAgY29tLmFwcGxlLmZyYW1l
d29yay5ERlJGb3VuZGF0aW9uICgxLjAgLSAxMDQuMjUpIDw3Q0ZGODk2Qy1FRjIyLTM5NDEtQkIz
RC1GMzYxNUNFNEM5MDg+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9ERlJGb3Vu
ZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0RGUkZvdW5kYXRpb24KICAgIDB4N2ZmZmE2Nzk5
MDAwIC0gICAgIDB4N2ZmZmE2NzlkZmYzICBjb20uYXBwbGUuRFNFeHRlcm5hbERpc3BsYXkgKDMu
MSAtIDM4MCkgPDRCNUUzRkYwLUU4QzMtMzhDQy1CRjcyLTQxOEM5Mjg5NTZBQj4gL1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0RTRXh0ZXJuYWxEaXNwbGF5LmZyYW1ld29yay9WZXJz
aW9ucy9BL0RTRXh0ZXJuYWxEaXNwbGF5CiAgICAweDdmZmZhNjc5ZTAwMCAtICAgICAweDdmZmZh
NjdkMmZmMyAgY29tLmFwcGxlLmRhdGFkZXRlY3RvcnMgKDUuMCAtIDM0OC4yLjEpIDxDRkM5NjM0
OS03NDMyLTNBNkItQUI3RC01Mjg2N0RBMjI4MDk+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9EYXRhRGV0ZWN0b3JzLmZyYW1ld29yay9WZXJzaW9ucy9BL0RhdGFEZXRlY3RvcnMK
ICAgIDB4N2ZmZmE2N2QzMDAwIC0gICAgIDB4N2ZmZmE2ODQ4ZmZiICBjb20uYXBwbGUuZGF0YWRl
dGVjdG9yc2NvcmUgKDcuMCAtIDUzOS4xKSA8ODRGMDRERUYtREYwQS0zRjkzLUFFRTktQjZGQUM3
ODExNjRCPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRGF0YURldGVjdG9yc0Nv
cmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRGF0YURldGVjdG9yc0NvcmUKICAgIDB4N2ZmZmE2ODg0
MDAwIC0gICAgIDB4N2ZmZmE2OGMzZmZmICBjb20uYXBwbGUuRGVidWdTeW1ib2xzICgxMzcgLSAx
MzcpIDw1OEE3MEI2Ni0yNjI4LTNDRkUtQjEwMy0yMjAwRDk1RkM1Rjc+IC9TeXN0ZW0vTGlicmFy
eS9Qcml2YXRlRnJhbWV3b3Jrcy9EZWJ1Z1N5bWJvbHMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRGVi
dWdTeW1ib2xzCiAgICAweDdmZmZhNjhjNDAwMCAtICAgICAweDdmZmZhNjlkNWZmZiAgY29tLmFw
cGxlLmRlc2t0b3BzZXJ2aWNlcyAoMS4xMS41IC0gMS4xMS41KSA8NDZBOUQ0RjMtMUVGOC0zNzND
LTk4QTQtQUQ0OEQyODVFNDg0PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRGVz
a3RvcFNlcnZpY2VzUHJpdi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9EZXNrdG9wU2VydmljZXNQcml2
CiAgICAweDdmZmZhNjlkYTAwMCAtICAgICAweDdmZmZhNmFhZmZmZiAgY29tLmFwcGxlLkRpc2tJ
bWFnZXNGcmFtZXdvcmsgKDQ0NC41MC4xNyAtIDQ0NC41MC4xNykgPDI0RDM0MjYwLTMwMjktMzA1
Ny1CMUQ4LUJGREM3NUIwQTJDMD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Rp
c2tJbWFnZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRGlza0ltYWdlcwogICAgMHg3ZmZmYTZiMTgw
MDAgLSAgICAgMHg3ZmZmYTZiMjNmZmYgIGNvbS5hcHBsZS5EaXNwbGF5U2VydmljZXNGVyAoMy4x
IC0gMzgwKSA8MEJERjZDMTctNUU1Ri0zM0Y4LThFOTktQzczNTBDNkY5NjY3PiAvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRGlzcGxheVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9u
cy9BL0Rpc3BsYXlTZXJ2aWNlcwogICAgMHg3ZmZmYTZiMzIwMDAgLSAgICAgMHg3ZmZmYTZiNjdm
ZjMgIGNvbS5hcHBsZS5TeXN0ZW1Db25maWd1cmF0aW9uLkVBUDgwMjFYICgxNC4wLjAgLSAxNC4w
KSA8QTZBOUNDQjgtNTBFNy0zQTcxLTg2QUMtRTA5OEI2RjNDMjlCPiAvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvRUFQODAyMVguZnJhbWV3b3JrL1ZlcnNpb25zL0EvRUFQODAyMVgK
ICAgIDB4N2ZmZmE2YjY4MDAwIC0gICAgIDB4N2ZmZmE2YjZhZmZiICBjb20uYXBwbGUuRUZJTG9n
aW4gKDIuMCAtIDIpIDxBNzRCMDA2NS02NDNGLTNCQzEtOEZFOS1FN0NFQUEyOUFEOUE+IC9TeXN0
ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9FRklMb2dpbi5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9FRklMb2dpbgogICAgMHg3ZmZmYTZjYmQwMDAgLSAgICAgMHg3ZmZmYTcwZWVmZjcgIGNvbS5h
cHBsZS52aXNpb24uRmFjZUNvcmUgKDMuMy4yIC0gMy4zLjIpIDw5MzkxRDVBMy03MzhDLTMxMzYt
OUQwNy01MThDQjQzREJBREE+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9GYWNl
Q29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GYWNlQ29yZQogICAgMHg3ZmZmYTg0NDUwMDAgLSAg
ICAgMHg3ZmZmYTg0NDVmZmYgIGxpYm1ldGFsX3RpbWVzdGFtcC5keWxpYiAoNjAwLjAuNDkuOSkg
PEU1RUVEOTI3LTE2NzEtMzM5MC1CQ0JCLUQ3NjIwMUQ2M0M3Mz4gL1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL0dQVUNvbXBpbGVyLmZyYW1ld29yay9saWJtZXRhbF90aW1lc3RhbXAu
ZHlsaWIKICAgIDB4N2ZmZmE4NDUyMDAwIC0gICAgIDB4N2ZmZmE4NDVkZmYzICBsaWJHUFVTdXBw
b3J0TWVyY3VyeS5keWxpYiAoMTQuMC4xNikgPDEyMTY5MDlBLUUzOEUtMzM1Ri05RjQ2LTkzNjI3
NTNBRTBEMT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0dQVVN1cHBvcnQuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvTGlicmFyaWVzL2xpYkdQVVN1cHBvcnRNZXJjdXJ5LmR5bGliCiAg
ICAweDdmZmZhODcxNjAwMCAtICAgICAweDdmZmZhODczMmZmZiAgY29tLmFwcGxlLkdlbmVyYXRp
b25hbFN0b3JhZ2UgKDIuMCAtIDI2Ny4yKSA8MjIzODEzMDMtQjlBOC0zMkQ4LUJEQkYtODcxRjBD
REQ4MUE1PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvR2VuZXJhdGlvbmFsU3Rv
cmFnZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9HZW5lcmF0aW9uYWxTdG9yYWdlCiAgICAweDdmZmZh
ODc0YjAwMCAtICAgICAweDdmZmZhOGRmZGZmZiAgY29tLmFwcGxlLkdlb1NlcnZpY2VzICgxLjAg
LSAxMjI4LjI0LjkuMzAuMzQpIDw5NkJGOTdGNi04RkYyLTNGQzQtQThDMS00OThDQjdCMEQ5QTA+
IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9HZW9TZXJ2aWNlcy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9HZW9TZXJ2aWNlcwogICAgMHg3ZmZmYThlNDMwMDAgLSAgICAgMHg3ZmZmYThl
YjlmZjMgIGNvbS5hcHBsZS5IZWltZGFsICg0LjAgLSAyLjApIDw5NTQxQzcxNy05NkZGLTMyRDMt
OEYwQi01MDQ4NTI1REFBNzA+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9IZWlt
ZGFsLmZyYW1ld29yay9WZXJzaW9ucy9BL0hlaW1kYWwKICAgIDB4N2ZmZmE5NGQ0MDAwIC0gICAg
IDB4N2ZmZmE5NGRiZmZiICBjb20uYXBwbGUuSU9BY2NlbGVyYXRvciAoMzExLjE2LjIgLSAzMTEu
MTYuMikgPDk2RkEyOEI2LUIwM0QtM0E1RS1BRjA3LTBBRTQ0ODZEMjk2OD4gL1N5c3RlbS9MaWJy
YXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0lPQWNjZWxlcmF0b3IuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
SU9BY2NlbGVyYXRvcgogICAgMHg3ZmZmYTk0ZGQwMDAgLSAgICAgMHg3ZmZmYTk0ZjFmZjcgIGNv
bS5hcHBsZS5JT1ByZXNlbnRtZW50ICgxLjAgLSAyOS4xMCkgPDMwREYwNEVFLTEwRTItMzUzRi04
NDVGLUE5N0I4N0RGMzIwNz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0lPUHJl
c2VudG1lbnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSU9QcmVzZW50bWVudAogICAgMHg3ZmZmYTk0
ZjIwMDAgLSAgICAgMHg3ZmZmYTk1MTRmZmYgIGNvbS5hcHBsZS5JY29uU2VydmljZXMgKDc0LjQg
LSA3NC40KSA8MjE4REREMDUtMzVGNC0zODMzLUI5OEQtNDcxRUQwRUJDMDMxPiAvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSWNvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ljb25TZXJ2aWNlcwogICAgMHg3ZmZmYTk1YjAwMDAgLSAgICAgMHg3ZmZmYTk1YzBmZjMgIGNv
bS5hcHBsZS5JbnRsUHJlZmVyZW5jZXMgKDIuMCAtIDIxNikgPDE1QjBERjFGLTI0QzMtM0E1MS05
MDMyLTFERDE1MEI3RDMyMT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGxQ
cmVmZXJlbmNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JbnRsUHJlZmVyZW5jZXMKICAgIDB4N2Zm
ZmE5NWZiMDAwIC0gICAgIDB4N2ZmZmE5N2IyZmZmICBjb20uYXBwbGUuTGFuZ3VhZ2VNb2RlbGlu
ZyAoMS4wIC0gMTIzLjIuNSkgPEE4Q0E5NjVGLTAzOTktMzEwRC05MUMzLUI5M0REREU5QTQ0Mj4g
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0xhbmd1YWdlTW9kZWxpbmcuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvTGFuZ3VhZ2VNb2RlbGluZwogICAgMHg3ZmZmYTk3ZmUwMDAgLSAgICAg
MHg3ZmZmYTk4MDJmZjcgIGNvbS5hcHBsZS5Mb2dpblVJQ29yZSAoNC4wIC0gNC4wKSA8Q0E5NzRF
NTQtODYwMS0zMTcxLTkzODktMkREMjY5NzI4QTM2PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvTG9naW5VSUtpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0xvZ2lu
VUlDb3JlLmZyYW1ld29yay9WZXJzaW9ucy9BL0xvZ2luVUlDb3JlCiAgICAweDdmZmZhOThhZTAw
MCAtICAgICAweDdmZmZhOTk3MGZmMyAgY29tLmFwcGxlLk1NQ1MgKDEuMyAtIDM4NS40KSA8RDNE
NzZDRTAtREUwNS0zNzNFLUI3NTctOUU0QjQ5MjA1NjVEPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0
ZUZyYW1ld29ya3MvTU1DUy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9NTUNTCiAgICAweDdmZmZhOWUy
MjAwMCAtICAgICAweDdmZmZhOWUyNWZmZiAgY29tLmFwcGxlLk1hbmdyb3ZlICgxLjAgLSAxKSA8
OTg4MTQ5NjYtRkQ2NS0zMDJCLUI0N0UtMDA5MjhEQzM0RTVDPiAvU3lzdGVtL0xpYnJhcnkvUHJp
dmF0ZUZyYW1ld29ya3MvTWFuZ3JvdmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTWFuZ3JvdmUKICAg
IDB4N2ZmZmE5ZWZlMDAwIC0gICAgIDB4N2ZmZmE5ZjMyZmYzICBjb20uYXBwbGUuTWVkaWFLaXQg
KDE2IC0gODQ1KSA8ODgzREM2M0YtRjkwRi0zRkI5LThDMjMtOUNFQ0Q3MkVCQ0RFPiAvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvTWVkaWFLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
TWVkaWFLaXQKICAgIDB4N2ZmZmE5ZjMzMDAwIC0gICAgIDB4N2ZmZmFhMDkzZmZiICBjb20uYXBw
bGUuTWVkaWFSZW1vdGUgKDEuMCAtIDEpIDxFMURCNzJFRS0yQkEyLTM0QjQtQTQwNi1COTQ5NTVC
MTVCNjk+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9NZWRpYVJlbW90ZS5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9NZWRpYVJlbW90ZQogICAgMHg3ZmZmYWEwOTQwMDAgLSAgICAgMHg3
ZmZmYWEwYWZmZmIgIGNvbS5hcHBsZS5NZWRpYVNlcnZpY2VzICgxLjAgLSAxKSA8QzcwOTc5MzIt
RTZCRi0zOTZBLUI4MzgtNzg1MDAwRkJGNThEPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1l
d29ya3MvTWVkaWFTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9NZWRpYVNlcnZpY2VzCiAg
ICAweDdmZmZhYTBkMzAwMCAtICAgICAweDdmZmZhYTE0Y2ZmNyAgY29tLmFwcGxlLk1ldGFsUGVy
Zm9ybWFuY2VTaGFkZXJzLk1ldGFsUGVyZm9ybWFuY2VTaGFkZXJzICgxLjAgLSAxKSA8QzMyM0ZD
OTQtRkZBNS0zRUU2LUIyQUMtN0U2MUVBOTJGMzA0PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvTWV0YWxQZXJmb3JtYW5jZVNoYWRlcnMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTWV0
YWxQZXJmb3JtYW5jZVNoYWRlcnMKICAgIDB4N2ZmZmFhMTRkMDAwIC0gICAgIDB4N2ZmZmFhMTVk
ZmZmICBjb20uYXBwbGUuTW9iaWxlQXNzZXRzICgxLjAgLSAzMzkuNjAuMSkgPDA2QTkxOTRDLTAw
MzgtMzgwRC05MDRELTUyNzA2QkU2MUU5OT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL01vYmlsZUFzc2V0LmZyYW1ld29yay9WZXJzaW9ucy9BL01vYmlsZUFzc2V0CiAgICAweDdm
ZmZhYTJiMjAwMCAtICAgICAweDdmZmZhYTJjMGZmZiAgY29tLmFwcGxlLk1vYmlsZUtleUJhZyAo
Mi4wIC0gMS4wKSA8RDA5ODNEQjctRUY5RC0zRTE5LUEwODQtMjEzMTlFQ0U1ODQ2PiAvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvTW9iaWxlS2V5QmFnLmZyYW1ld29yay9WZXJzaW9u
cy9BL01vYmlsZUtleUJhZwogICAgMHg3ZmZmYWEyZDEwMDAgLSAgICAgMHg3ZmZmYWEyZjlmZjcg
IGNvbS5hcHBsZS5NdWx0aXRvdWNoU3VwcG9ydC5mcmFtZXdvcmsgKDM2OC4xNiAtIDM2OC4xNikg
PEUyRkUxODIxLUM3Q0MtM0MzNS1CRUIzLTZEQzY5M0Y1MTI4RD4gL1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL011bHRpdG91Y2hTdXBwb3J0LmZyYW1ld29yay9WZXJzaW9ucy9BL011
bHRpdG91Y2hTdXBwb3J0CiAgICAweDdmZmZhYTNhYjAwMCAtICAgICAweDdmZmZhYTNiNmZmZiAg
Y29tLmFwcGxlLk5ldEF1dGggKDYuMiAtIDYuMikgPDk3RjQ4N0Q2LTgwODktMzFBOC1CNjhDLTZD
MUVBQzZFRDFCNT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL05ldEF1dGguZnJh
bWV3b3JrL1ZlcnNpb25zL0EvTmV0QXV0aAogICAgMHg3ZmZmYWEzYzMwMDAgLSAgICAgMHg3ZmZm
YWE0NDBmZmYgIGNvbS5hcHBsZS5OZXR3b3JrICgxLjAgLSAxKSA8MUI5M0JBMDYtMzU0NC0zNzBG
LTgzNDktNDcxODI2RjVCMjRDPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvTmV0
d29yay5mcmFtZXdvcmsvVmVyc2lvbnMvQS9OZXR3b3JrCiAgICAweDdmZmZhYTgwMzAwMCAtICAg
ICAweDdmZmZhYTgwNWZmZiAgY29tLmFwcGxlLk9BdXRoICgyNSAtIDI1KSA8RDZFNUYzNkQtNzFC
OC0zRTEyLTk2MDEtQ0UyQTFENkVENjBCPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvT0F1dGguZnJhbWV3b3JrL1ZlcnNpb25zL0EvT0F1dGgKICAgIDB4N2ZmZmFhYzhlMDAwIC0g
ICAgIDB4N2ZmZmFhY2NmZmYzICBjb20uYXBwbGUuUGVyZm9ybWFuY2VBbmFseXNpcyAoMS4xNDgu
MyAtIDE0OC4zKSA8OEI2M0QxQTEtQzBCNS0zNURDLTg2NUYtQkZDNTY4MjIzN0U0PiAvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUGVyZm9ybWFuY2VBbmFseXNpcy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9QZXJmb3JtYW5jZUFuYWx5c2lzCiAgICAweDdmZmZhYWQxMjAwMCAtICAgICAw
eDdmZmZhYWQxOWZmMyAgY29tLmFwcGxlLnBob25lbnVtYmVycyAoMS4xLjEgLSAxMDUpIDxCOEVG
REREMy1CQTI2LTM5QjgtOUVBMC0zNjQ5MTg0QkY1Mjc+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3Jrcy9QaG9uZU51bWJlcnMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUGhvbmVOdW1iZXJz
CiAgICAweDdmZmZhYjM3YzAwMCAtICAgICAweDdmZmZhYjNiNmZmYiAgY29tLmFwcGxlLlByb3Rl
Y3RlZENsb3VkU3RvcmFnZSAoMS4wIC0gMSkgPDhCMzJBN0VDLUQzNzEtMzhFMy1BMjg2LUYxQkUx
MzA3RjFFMT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RlY3RlZENsb3Vk
U3RvcmFnZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Qcm90ZWN0ZWRDbG91ZFN0b3JhZ2UKICAgIDB4
N2ZmZmFiM2I3MDAwIC0gICAgIDB4N2ZmZmFiM2QxZmZmICBjb20uYXBwbGUuUHJvdG9jb2xCdWZm
ZXIgKDEgLSAyNDkuMSkgPEExRjFCMEYzLTA3OEYtMzc4Ri1BOUE5LTBERUVBNzBFODE2QT4gL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RvY29sQnVmZmVyLmZyYW1ld29yay9W
ZXJzaW9ucy9BL1Byb3RvY29sQnVmZmVyCiAgICAweDdmZmZhYjNkMjAwMCAtICAgICAweDdmZmZh
YjNlMWZmNyAgY29tLmFwcGxlLlF1aWNrTG9va1RodW1ibmFpbGluZyAoMS4wIC0gMSkgPDE3M0VF
ODczLTE3MDAtM0ZDQS05NzgyLUMwNjBGQkI1QkNBRD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVG
cmFtZXdvcmtzL1F1aWNrTG9va1RodW1ibmFpbGluZy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9RdWlj
a0xvb2tUaHVtYm5haWxpbmcKICAgIDB4N2ZmZmFiM2UyMDAwIC0gICAgIDB4N2ZmZmFiM2U5ZmZm
ICBjb20uYXBwbGUuUlRDUmVwb3J0aW5nICg4LjM5LjExIC0gOC4zOS4xMSkgPEE2MjVCREIxLTdG
RDAtM0YzQS04N0I0LUEwQkUzRTFCRjM1MD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL1JUQ1JlcG9ydGluZy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SVENSZXBvcnRpbmcKICAgIDB4
N2ZmZmFiM2VhMDAwIC0gICAgIDB4N2ZmZmFiNDBkZmYzICBjb20uYXBwbGUuUmVtb3RlVmlld1Nl
cnZpY2VzICgyLjAgLSAxMjQpIDw2Qjk2N0ZEQS02NTkxLTMwMkMtQkEwQS03NkM0ODU2RTU4NEU+
IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9SZW1vdGVWaWV3U2VydmljZXMuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvUmVtb3RlVmlld1NlcnZpY2VzCiAgICAweDdmZmZhYzBkNzAwMCAt
ICAgICAweDdmZmZhYzBkYWZmZiAgY29tLmFwcGxlLlNlY0NvZGVXcmFwcGVyICg0LjAgLSAzMDcu
NTAuMjEpIDxGOEU5NTdCMi1EM0YwLTNCNzMtQjM4Qy1BRTg4NjhGMDA5Mzk+IC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9TZWNDb2RlV3JhcHBlci5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9TZWNDb2RlV3JhcHBlcgogICAgMHg3ZmZmYWMxNjkwMDAgLSAgICAgMHg3ZmZmYWMxZjZmZmYg
IGNvbS5hcHBsZS5TaGFyaW5nICg2OTYuMi42NyAtIDY5Ni4yLjY3KSA8RjY4MUVFMjgtMTUzRi0z
MjE2LTk3QTYtNkY1RTQxNDhBQjJFPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
U2hhcmluZy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TaGFyaW5nCiAgICAweDdmZmZhYzIxNzAwMCAt
ICAgICAweDdmZmZhYzQ4Y2ZmYiAgY29tLmFwcGxlLlNreUxpZ2h0ICgxLjYwMC4wIC0gMTcwLjMu
MSkgPDFDQzY5NDk3LUI0QzItM0UxMy1BOTI0LTAxNTgxMTlENTA4RT4gL1N5c3RlbS9MaWJyYXJ5
L1ByaXZhdGVGcmFtZXdvcmtzL1NreUxpZ2h0LmZyYW1ld29yay9WZXJzaW9ucy9BL1NreUxpZ2h0
CiAgICAweDdmZmZhYzY2YjAwMCAtICAgICAweDdmZmZhYzY3N2ZmNyAgY29tLmFwcGxlLlNwZWVj
aFJlY29nbml0aW9uQ29yZSAoMy4zLjIgLSAzLjMuMikgPDY4NEJEMUVBLTgyNjgtMzMxQy1BNUE5
LTA4MEVCMzc1QzY1OD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1NwZWVjaFJl
Y29nbml0aW9uQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TcGVlY2hSZWNvZ25pdGlvbkNvcmUK
ICAgIDB4N2ZmZmFjZDYzMDAwIC0gICAgIDB4N2ZmZmFjZGQ3ZmRmICBjb20uYXBwbGUuU3ltYm9s
aWNhdGlvbiAoNjIwNDguMSkgPDFBMzBFRDE5LTc1MzItM0Y0Ni05REQzLTk4NzlBOTczRDBDRj4g
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1N5bWJvbGljYXRpb24uZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvU3ltYm9saWNhdGlvbgogICAgMHg3ZmZmYWNmZjcwMDAgLSAgICAgMHg3ZmZm
YWQwMjNmZjMgIGNvbS5hcHBsZS5mcmFtZXdvcmsuU3lzdGVtQWRtaW5pc3RyYXRpb24gKDEuMCAt
IDEuMCkgPENENUI3NEIxLTAxRUQtMzY5RS1BQjExLTFEQTU5RjJDMkEyND4gL1N5c3RlbS9MaWJy
YXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1N5c3RlbUFkbWluaXN0cmF0aW9uLmZyYW1ld29yay9WZXJz
aW9ucy9BL1N5c3RlbUFkbWluaXN0cmF0aW9uCiAgICAweDdmZmZhZDIxNjAwMCAtICAgICAweDdm
ZmZhZDIxY2ZmNyAgY29tLmFwcGxlLlRDQyAoMS4wIC0gMSkgPDkxMUI1MzRCLTRBQzctMzRFNC05
MzVFLUU0MkVDRDAwOENCQz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1RDQy5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9UQ0MKICAgIDB4N2ZmZmFkMmE4MDAwIC0gICAgIDB4N2ZmZmFk
MzZlZmY3ICBjb20uYXBwbGUuVGV4dHVyZUlPICgyLjggLSAyLjgpIDwzRDYxRTUzMy00MTU2LTNC
MjEtQjdFRC1DQjgyM0U2ODBERkM+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9U
ZXh0dXJlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvVGV4dHVyZUlPCiAgICAweDdmZmZhZDNiNzAw
MCAtICAgICAweDdmZmZhZDNjY2ZmMyAgY29tLmFwcGxlLlRvbmVLaXQgKDEuMCAtIDEpIDxCNzA5
MjkzRC0wQTc5LTM5OEEtOEFBOS01MEY2MzQwQzIyN0M+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3Jrcy9Ub25lS2l0LmZyYW1ld29yay9WZXJzaW9ucy9BL1RvbmVLaXQKICAgIDB4N2Zm
ZmFkM2NkMDAwIC0gICAgIDB4N2ZmZmFkM2RiZmZiICBjb20uYXBwbGUuVG9uZUxpYnJhcnkgKDEu
MCAtIDEpIDxGMkVENURGQy01RjExLTMwMTItQkNENy0xNzc1MzQxMzE0MUY+IC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Ub25lTGlicmFyeS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9U
b25lTGlicmFyeQogICAgMHg3ZmZmYWQzZTIwMDAgLSAgICAgMHg3ZmZmYWQzZTNmZmYgIGNvbS5h
cHBsZS5UcnVzdEV2YWx1YXRpb25BZ2VudCAoMi4wIC0gMjguNTAuMSkgPEVCRTY1REQ1LTE3MzIt
Mzc0Ny04QzZDLTdCRUNFQkYwODlBND4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtz
L1RydXN0RXZhbHVhdGlvbkFnZW50LmZyYW1ld29yay9WZXJzaW9ucy9BL1RydXN0RXZhbHVhdGlv
bkFnZW50CiAgICAweDdmZmZhZDNlNDAwMCAtICAgICAweDdmZmZhZDU3NGZmMyAgY29tLmFwcGxl
LlVJRm91bmRhdGlvbiAoMS4wIC0gNDkwLjcpIDwyQTMwNjNGRS0xNzkwLTM1MTAtOEEwRS1BRUM1
ODFENDJCN0U+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9VSUZvdW5kYXRpb24u
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvVUlGb3VuZGF0aW9uCiAgICAweDdmZmZhZTA0MzAwMCAtICAg
ICAweDdmZmZhZTEwM2ZmZiAgY29tLmFwcGxlLlZpZXdCcmlkZ2UgKDI4MyAtIDI4MykgPDI1QTYz
NUIzLUM4N0MtM0QzQS1BREYzLTUzOTcxM0ZBMTA0OD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVG
cmFtZXdvcmtzL1ZpZXdCcmlkZ2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvVmlld0JyaWRnZQogICAg
MHg3ZmZmYWU1NGUwMDAgLSAgICAgMHg3ZmZmYWU1NTRmZmYgIGNvbS5hcHBsZS5YUENTZXJ2aWNl
ICgyLjAgLSAxKSA8NEIyOEIyMjUtMjEwNS0zM0Y0LTlFRDAtRjA0Mjg4RkY0RkIxPiAvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvWFBDU2VydmljZS5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9YUENTZXJ2aWNlCiAgICAweDdmZmZhZTYyNTAwMCAtICAgICAweDdmZmZhZTYyN2ZmYiAgY29t
LmFwcGxlLmxvZ2luc3VwcG9ydCAoMS4wIC0gMSkgPEYzMTQwQjk3LTEyQzMtMzVBNy05RDNELTQz
REEyRDEzQzExMz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL2xvZ2luLmZyYW1l
d29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvbG9naW5zdXBwb3J0LmZyYW1ld29yay9WZXJzaW9u
cy9BL2xvZ2luc3VwcG9ydAogICAgMHg3ZmZmYWU2NTMwMDAgLSAgICAgMHg3ZmZmYWU2N2FmZjcg
IGNvbS5hcHBsZS5jb250YWN0cy52Q2FyZCAoMS4wIC0gMjI1MC4xMSkgPERENjE1REFGLUFGMzQt
M0FCNC05Q0I0LURBMEE4ODJENTlBNT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtz
L3ZDYXJkLmZyYW1ld29yay9WZXJzaW9ucy9BL3ZDYXJkCiAgICAweDdmZmZhZTY3YzAwMCAtICAg
ICAweDdmZmZhZTY5N2ZmNyAgbGliQ1JGU3VpdGUuZHlsaWIgKDM0KSA8Rjc4QjdGNUYtMEI0Ri0z
NUM2LUFBMkYtODRFRTlDQjIyMTM3PiAvdXNyL2xpYi9saWJDUkZTdWl0ZS5keWxpYgogICAgMHg3
ZmZmYWU2OTgwMDAgLSAgICAgMHg3ZmZmYWU2YTNmZmYgIGxpYkNoaW5lc2VUb2tlbml6ZXIuZHls
aWIgKDIxKSA8MDg4NkU5MDgtQTgyNS0zNkFGLUI5NEItMjM2MUZEOEJDMkExPiAvdXNyL2xpYi9s
aWJDaGluZXNlVG9rZW5pemVyLmR5bGliCiAgICAweDdmZmZhZTZhNDAwMCAtICAgICAweDdmZmZh
ZTczNGZmNyAgbGliQ29yZVN0b3JhZ2UuZHlsaWIgKDU0MC4zMC4xKSA8ODVDMEEzNjYtRjkwMS0z
NkUzLTg1NEEtRkU4QTE0QTA0QTcyPiAvdXNyL2xpYi9saWJDb3JlU3RvcmFnZS5keWxpYgogICAg
MHg3ZmZmYWU3MzUwMDAgLSAgICAgMHg3ZmZmYWU3MzZmZjMgIGxpYkRpYWdub3N0aWNNZXNzYWdl
c0NsaWVudC5keWxpYiAoMTAyKSA8ODRBMDREMjQtMEU2MC0zODEwLUE4QzAtOTBBNjVFMkRGNjFB
PiAvdXNyL2xpYi9saWJEaWFnbm9zdGljTWVzc2FnZXNDbGllbnQuZHlsaWIKICAgIDB4N2ZmZmFl
NzM3MDAwIC0gICAgIDB4N2ZmZmFlOTRhZmZmICBsaWJGb3NsX2R5bmFtaWMuZHlsaWIgKDE2LjM5
KSA8RTIyQTQyNDMtRDE0OC0zQzc0LUJBMTUtMkQ5MDZBM0QxRjlFPiAvdXNyL2xpYi9saWJGb3Ns
X2R5bmFtaWMuZHlsaWIKICAgIDB4N2ZmZmFlOTY2MDAwIC0gICAgIDB4N2ZmZmFlOTZkZmZmICBs
aWJNYXRjaC4xLmR5bGliICgyNykgPDcwRDRCRDJBLTkzODMtMzdGMi1CMEQ2LTlCNTkyRDIzNjYw
MT4gL3Vzci9saWIvbGliTWF0Y2guMS5keWxpYgogICAgMHg3ZmZmYWU5NmUwMDAgLSAgICAgMHg3
ZmZmYWU5NmVmZmYgIGxpYk9wZW5TY3JpcHRpbmdVdGlsLmR5bGliICgxNzIuMSkgPDBGMUJBNDA3
LTk3RDEtMzZGNi04ODJELUEzNTVFQUFENUUwMD4gL3Vzci9saWIvbGliT3BlblNjcmlwdGluZ1V0
aWwuZHlsaWIKICAgIDB4N2ZmZmFlOTZmMDAwIC0gICAgIDB4N2ZmZmFlOTczZmZiICBsaWJTY3Jl
ZW5SZWFkZXIuZHlsaWIgKDQ3Ny40MC42KSA8Q0JFNjQyMEMtRUY2MC0zQUNELUEwQjYtN0NCRTkz
NkJBM0I4PiAvdXNyL2xpYi9saWJTY3JlZW5SZWFkZXIuZHlsaWIKICAgIDB4N2ZmZmFlOTc0MDAw
IC0gICAgIDB4N2ZmZmFlOTc1ZmZiICBsaWJTeXN0ZW0uQi5keWxpYiAoMTIzOC42MC4yKSA8RjNC
RjlEQTktN0ZGMS0zQjQzLUEzM0YtMzQ4MURGOUM4QTgyPiAvdXNyL2xpYi9saWJTeXN0ZW0uQi5k
eWxpYgogICAgMHg3ZmZmYWU5ZTEwMDAgLSAgICAgMHg3ZmZmYWVhMGNmZjMgIGxpYmFyY2hpdmUu
Mi5keWxpYiAoNDEuNzAuMikgPDkwN0QxRkIxLTlBNjUtMzNGNS1BRkM4LTBCNkU1QUU5RDgzQT4g
L3Vzci9saWIvbGliYXJjaGl2ZS4yLmR5bGliCiAgICAweDdmZmZhZWEwZDAwMCAtICAgICAweDdm
ZmZhZWIwMmZlZiAgbGliYXRlLmR5bGliICgxLjEyLjEzKSA8REI5ODgxQzMtRTI0QS0zOTg0LTkx
RTAtNzdGNkYxM0Y3OTVDPiAvdXNyL2xpYi9saWJhdGUuZHlsaWIKICAgIDB4N2ZmZmFlYjA2MDAw
IC0gICAgIDB4N2ZmZmFlYjA2ZmYzICBsaWJhdXRvLmR5bGliICgxODcpIDwzNDM4OEQwQi1DNTM5
LTNDMUItOTQwOC0yQkMxNTIxNjJFNDM+IC91c3IvbGliL2xpYmF1dG8uZHlsaWIKICAgIDB4N2Zm
ZmFlYjA3MDAwIC0gICAgIDB4N2ZmZmFlYjE3ZmYzICBsaWJic20uMC5keWxpYiAoMzQpIDwyMDA4
NDc5Ni1CMDRELTNCMzUtQTAwMy1FQTExNDU5NTU3QTk+IC91c3IvbGliL2xpYmJzbS4wLmR5bGli
CiAgICAweDdmZmZhZWIxODAwMCAtICAgICAweDdmZmZhZWIyNmZmNyAgbGliYnoyLjEuMC5keWxp
YiAoMzgpIDxBREZBMzI5QS1EQ0U3LTM1NkQtOEYwOS1BMzE2OERGQzY2MTA+IC91c3IvbGliL2xp
YmJ6Mi4xLjAuZHlsaWIKICAgIDB4N2ZmZmFlYjI3MDAwIC0gICAgIDB4N2ZmZmFlYjdkZmY3ICBs
aWJjKysuMS5keWxpYiAoMzA3LjUpIDwwQjQzQkI1RC1FNkVCLTM0NjQtOERFOS1CNDFBQzhFRDlE
MUM+IC91c3IvbGliL2xpYmMrKy4xLmR5bGliCiAgICAweDdmZmZhZWI3ZTAwMCAtICAgICAweDdm
ZmZhZWJhN2ZmNyAgbGliYysrYWJpLmR5bGliICgzMDcuNCkgPEJDMjcxQUQzLTgzMUItMzYyQS05
REE3LUU4QzUxRjI4NUZFND4gL3Vzci9saWIvbGliYysrYWJpLmR5bGliCiAgICAweDdmZmZhZWJh
ODAwMCAtICAgICAweDdmZmZhZWJiOGZmYiAgbGliY21waC5keWxpYiAoNikgPDJCNUQ0MDVFLTJE
MEItMzMyMC1BQkQ2LTYyMjkzNEM4NkFCRT4gL3Vzci9saWIvbGliY21waC5keWxpYgogICAgMHg3
ZmZmYWViYjkwMDAgLSAgICAgMHg3ZmZmYWViY2ZmZjcgIGxpYmNvbXByZXNzaW9uLmR5bGliICgz
OSkgPEJEQUE4Q0M3LTBCRkMtMzZFQy05RTc1LTU4QkRDMTVBQzNCNj4gL3Vzci9saWIvbGliY29t
cHJlc3Npb24uZHlsaWIKICAgIDB4N2ZmZmFlYmQwMDAwIC0gICAgIDB4N2ZmZmFlYmQwZmY3ICBs
aWJjb3JldGxzLmR5bGliICgxMjEuNTAuNCkgPDY0QjEwMDFFLTEwRjYtMzU0Mi1BM0IyLUM0QjQ5
RjUxODE3Rj4gL3Vzci9saWIvbGliY29yZXRscy5keWxpYgogICAgMHg3ZmZmYWViZDEwMDAgLSAg
ICAgMHg3ZmZmYWViZDJmZjMgIGxpYmNvcmV0bHNfY2ZoZWxwZXJzLmR5bGliICgxMjEuNTAuNCkg
PDFBMTAzMDNFLTVFQjAtM0M3Qy05MTY1LTAyMUZDREZEOTM0RD4gL3Vzci9saWIvbGliY29yZXRs
c19jZmhlbHBlcnMuZHlsaWIKICAgIDB4N2ZmZmFlYzhjMDAwIC0gICAgIDB4N2ZmZmFlZDcwZmY3
ICBsaWJjcnlwdG8uMC45LjguZHlsaWIgKDY0LjUwLjcpIDxCMzRCQzBGQS0xOEVELTM3QzUtOUQ0
Ni0zOTM4MDNDQURFQkI+IC91c3IvbGliL2xpYmNyeXB0by4wLjkuOC5keWxpYgogICAgMHg3ZmZm
YWVmMDIwMDAgLSAgICAgMHg3ZmZmYWVmMGRmZmYgIGxpYmNzZmRlLmR5bGliICg1NDAuMzAuMSkg
PDBDMkIxODNCLTE2RDktM0Q1Ri05NjJELTBBMDlDNzA2MzIxMT4gL3Vzci9saWIvbGliY3NmZGUu
ZHlsaWIKICAgIDB4N2ZmZmFlZjBlMDAwIC0gICAgIDB4N2ZmZmFlZjYxZmY3ICBsaWJjdXBzLjIu
ZHlsaWIgKDQ1MCkgPDk5NTBCRkNCLTc4ODItMzNDOS05RUNGLUNFNjY3NzNDNTY1Nz4gL3Vzci9s
aWIvbGliY3Vwcy4yLmR5bGliCiAgICAweDdmZmZhZWY2MjAwMCAtICAgICAweDdmZmZhZWZiNGZm
ZiAgbGliY3VybC40LmR5bGliICg5NS43MC41KSA8RUQ5MzJDNUQtNkZBMi0zNjRBLUI1NjItM0Y2
N0QxQjQwQzcxPiAvdXNyL2xpYi9saWJjdXJsLjQuZHlsaWIKICAgIDB4N2ZmZmFlZmI1MDAwIC0g
ICAgIDB4N2ZmZmFlZmJjZmYzICBsaWJkc2NzeW0uZHlsaWIgKDE0OC4zKSA8MkE3ODc3NEYtNjY3
OS0zQjcyLTk5MDMtQjI5NUI5ODI1ODcyPiAvdXNyL2xpYi9saWJkc2NzeW0uZHlsaWIKICAgIDB4
N2ZmZmFlZmRlMDAwIC0gICAgIDB4N2ZmZmFlZmRlZmZmICBsaWJlbmVyZ3l0cmFjZS5keWxpYiAo
MTUpIDxBMUIwNDBBMi03OTc3LTMwOTctOUFERi0zNEZGMTgxRUI5NzA+IC91c3IvbGliL2xpYmVu
ZXJneXRyYWNlLmR5bGliCiAgICAweDdmZmZhZWZlZTAwMCAtICAgICAweDdmZmZhZWZmM2ZmNyAg
bGliaGVpbWRhbC1hc24xLmR5bGliICg0OTguNTAuOSkgPDkyQzk1M0EyLTVFMUQtMzlFOS04NzVF
LTkyRjI5QTEyRDZGQj4gL3Vzci9saWIvbGliaGVpbWRhbC1hc24xLmR5bGliCiAgICAweDdmZmZh
ZWZmNDAwMCAtICAgICAweDdmZmZhZjBlNmZmNyAgbGliaWNvbnYuMi5keWxpYiAoNTApIDw0MjEy
NUIzNS04MUQ3LTNGQzQtOTQ3NS1BMjZEQkUxMDg4NEQ+IC91c3IvbGliL2xpYmljb252LjIuZHls
aWIKICAgIDB4N2ZmZmFmMGU3MDAwIC0gICAgIDB4N2ZmZmFmMzBjZmZiICBsaWJpY3Vjb3JlLkEu
ZHlsaWIgKDU3MTY3LjAuMSkgPEU3MjA4MDFDLTJEOTItMzEwOC1CODUzLTQ2OTU1MUVERjIxRj4g
L3Vzci9saWIvbGliaWN1Y29yZS5BLmR5bGliCiAgICAweDdmZmZhZjMxMjAwMCAtICAgICAweDdm
ZmZhZjMxM2ZmZiAgbGlibGFuZ2lkLmR5bGliICgxMjYpIDwyMDg1RTdBNy05QTM0LTM3MzUtODdG
NC1GMTc0RUY4RUFCRjA+IC91c3IvbGliL2xpYmxhbmdpZC5keWxpYgogICAgMHg3ZmZmYWYzMTQw
MDAgLSAgICAgMHg3ZmZmYWYzMmRmZmIgIGxpYmx6bWEuNS5keWxpYiAoMTApIDw0NEJEMDI3OS05
OURELTM2QjUtOEE2RS1DMTE0MzJFMjA5OEQ+IC91c3IvbGliL2xpYmx6bWEuNS5keWxpYgogICAg
MHg3ZmZmYWYzMmUwMDAgLSAgICAgMHg3ZmZmYWYzNDRmZjcgIGxpYm1hcmlzYS5keWxpYiAoNSkg
PDkwMzBEMjE0LTVEMEYtMzBDQi1BQzAzLTkwMkM2MzkwOTM2Mj4gL3Vzci9saWIvbGlibWFyaXNh
LmR5bGliCiAgICAweDdmZmZhZjM0NTAwMCAtICAgICAweDdmZmZhZjVlZGZmNyAgbGlibWVjYWJy
YS5keWxpYiAoNzQ0LjgpIDxENDI5RkNDOS00MkE0LTM4QjMtODc4NC00NDAyNEJDODU5RUY+IC91
c3IvbGliL2xpYm1lY2FicmEuZHlsaWIKICAgIDB4N2ZmZmFmNjIwMDAwIC0gICAgIDB4N2ZmZmFm
NjlhZmYzICBsaWJuZXR3b3JrLmR5bGliICg4NTYuNjAuMSkgPDE5MUU5OUY1LTQ3MjMtMzE4MC04
MDEzLTAyQUYyRjlBRTRCOD4gL3Vzci9saWIvbGlibmV0d29yay5keWxpYgogICAgMHg3ZmZmYWY2
OWIwMDAgLSAgICAgMHg3ZmZmYWZhNzBiYzcgIGxpYm9iamMuQS5keWxpYiAoNzA5LjEpIDw0REYz
QzI1Qy01MkMyLTNGMDEtQTNFRi0wRDlENTNBNzNDMUM+IC91c3IvbGliL2xpYm9iamMuQS5keWxp
YgogICAgMHg3ZmZmYWZhNzEwMDAgLSAgICAgMHg3ZmZmYWZhNzJmZmYgIGxpYm9kZmRlLmR5bGli
ICgyMy41MC4xKSA8NzQ0RjFFNjYtMTFFQi0zQTRELTg5NDQtNzIyRjM5QzU1Mjc4PiAvdXNyL2xp
Yi9saWJvZGZkZS5keWxpYgogICAgMHg3ZmZmYWZhNzMwMDAgLSAgICAgMHg3ZmZmYWZhNzdmZmYg
IGxpYnBhbS4yLmR5bGliICgyMS4zMC4xKSA8NzFFQjBEODgtREU4NC0zQzhELUEyQzUtNThBQTI4
MkJDNUJDPiAvdXNyL2xpYi9saWJwYW0uMi5keWxpYgogICAgMHg3ZmZmYWZhNzgwMDAgLSAgICAg
MHg3ZmZmYWZhYTlmZmYgIGxpYnBjYXAuQS5keWxpYiAoNjcuNjAuMikgPEIyRDM2QUQ4LUQ1Qzgt
Mzg3NS1BQzgxLTQ3ODdBMTVFNDRDMj4gL3Vzci9saWIvbGlicGNhcC5BLmR5bGliCiAgICAweDdm
ZmZhZmFjNjAwMCAtICAgICAweDdmZmZhZmFlMmZmYiAgbGlicmVzb2x2LjkuZHlsaWIgKDY0KSA8
QTI0NEFFNEMtMDBCMC0zOTZDLTk4RkYtOTdGRTREQjNEQTMwPiAvdXNyL2xpYi9saWJyZXNvbHYu
OS5keWxpYgogICAgMHg3ZmZmYWZhZTMwMDAgLSAgICAgMHg3ZmZmYWZiMWNmZmYgIGxpYnNhbmRi
b3guMS5keWxpYiAoNTkyLjcwLjIpIDxFQkI2OEM2Qi03OTdCLTM0NDYtOURGNy01NUM3Rjc4NThB
REQ+IC91c3IvbGliL2xpYnNhbmRib3guMS5keWxpYgogICAgMHg3ZmZmYWZiMWQwMDAgLSAgICAg
MHg3ZmZmYWZiMmZmZmIgIGxpYnNhc2wyLjIuZHlsaWIgKDIwOSkgPDMyMTA3QzU5LTIyQzYtMzA0
OS1CODZFLTlDMkY4NUZGNTQ5Qj4gL3Vzci9saWIvbGlic2FzbDIuMi5keWxpYgogICAgMHg3ZmZm
YWZiMzAwMDAgLSAgICAgMHg3ZmZmYWZiMzFmZjMgIGxpYnNwaW5kdW1wLmR5bGliICgyMzEuMykg
PDlFNTBBMTE0LUZDNTgtM0UyMi05MDI3LTUwMDJCNjAwMDVCRT4gL3Vzci9saWIvbGlic3BpbmR1
bXAuZHlsaWIKICAgIDB4N2ZmZmFmYjMyMDAwIC0gICAgIDB4N2ZmZmFmYzc4ZmZmICBsaWJzcWxp
dGUzLmR5bGliICgyNTQuOCkgPDA1ODAzNkZELTZFRjMtM0Y5Qy1CRjlCLTJDQjdBNTcyMDVENz4g
L3Vzci9saWIvbGlic3FsaXRlMy5keWxpYgogICAgMHg3ZmZmYWZkNjkwMDAgLSAgICAgMHg3ZmZm
YWZkNmNmZjcgIGxpYnV0aWwuZHlsaWIgKDQ3LjMwLjEpIDw4OENDNjNCMy0wRURGLTMwNkUtOUFC
NS1EODdFQkUwRjNGMTY+IC91c3IvbGliL2xpYnV0aWwuZHlsaWIKICAgIDB4N2ZmZmFmZDZkMDAw
IC0gICAgIDB4N2ZmZmFmZDdhZmZmICBsaWJ4YXIuMS5keWxpYiAoMzU3KSA8Njk1NDdDNjQtRTgx
MS0zMjZGLUJCRUQtNDkwQzYzNjFCRENCPiAvdXNyL2xpYi9saWJ4YXIuMS5keWxpYgogICAgMHg3
ZmZmYWZkN2IwMDAgLSAgICAgMHg3ZmZmYWZlNmFmZjMgIGxpYnhtbDIuMi5keWxpYiAoMzAuMjAp
IDw0MEIxMDI3QS00M0I2LTM4RUMtOUVCOS05RTc4NzFFOThDQkM+IC91c3IvbGliL2xpYnhtbDIu
Mi5keWxpYgogICAgMHg3ZmZmYWZlNmIwMDAgLSAgICAgMHg3ZmZmYWZlOTRmZmYgIGxpYnhzbHQu
MS5keWxpYiAoMTUuOS4xKSA8QTFFRkMyMjUtMjExNS0zNzEwLUEyRkQtQjExRkRFMTVCMDFGPiAv
dXNyL2xpYi9saWJ4c2x0LjEuZHlsaWIKICAgIDB4N2ZmZmFmZTk1MDAwIC0gICAgIDB4N2ZmZmFm
ZWE2ZmYzICBsaWJ6LjEuZHlsaWIgKDY3KSA8NDZFM0ZGQTItNDMyOC0zMjdBLThEMzQtQTAzRTIw
QkZGQjhFPiAvdXNyL2xpYi9saWJ6LjEuZHlsaWIKICAgIDB4N2ZmZmFmZWI1MDAwIC0gICAgIDB4
N2ZmZmFmZWI5ZmY3ICBsaWJjYWNoZS5keWxpYiAoNzkpIDwwOTNBNERBQi04Mzg1LTNENDctQTM1
MC1FMjBDQjdDQ0Y3QkY+IC91c3IvbGliL3N5c3RlbS9saWJjYWNoZS5keWxpYgogICAgMHg3ZmZm
YWZlYmEwMDAgLSAgICAgMHg3ZmZmYWZlYzRmZmYgIGxpYmNvbW1vbkNyeXB0by5keWxpYiAoNjAw
OTIuNTAuNSkgPDhBNjREMUIwLUM3MEUtMzg1Qy05MkYwLUU2NjkwNzlGREE5MD4gL3Vzci9saWIv
c3lzdGVtL2xpYmNvbW1vbkNyeXB0by5keWxpYgogICAgMHg3ZmZmYWZlYzUwMDAgLSAgICAgMHg3
ZmZmYWZlY2NmZmYgIGxpYmNvbXBpbGVyX3J0LmR5bGliICg2MikgPDU1RDQ3NDIxLTc3MkEtMzJB
Qi1CNTI5LTFBNDZDMkY0M0I0RD4gL3Vzci9saWIvc3lzdGVtL2xpYmNvbXBpbGVyX3J0LmR5bGli
CiAgICAweDdmZmZhZmVjZDAwMCAtICAgICAweDdmZmZhZmVkNWZmZiAgbGliY29weWZpbGUuZHls
aWIgKDEzOCkgPDgxOUJFQTNDLURGMTEtM0UzRC1BMUExLTVBNTFDNUJGMTk2MT4gL3Vzci9saWIv
c3lzdGVtL2xpYmNvcHlmaWxlLmR5bGliCiAgICAweDdmZmZhZmVkNjAwMCAtICAgICAweDdmZmZh
ZmY1OWZkZiAgbGliY29yZWNyeXB0by5keWxpYiAoNDQyLjUwLjE5KSA8NjVENzE2NUUtMkU3MS0z
MzVELUEyRDYtMzNGNzhFMkRGMEMxPiAvdXNyL2xpYi9zeXN0ZW0vbGliY29yZWNyeXB0by5keWxp
YgogICAgMHg3ZmZmYWZmNWEwMDAgLSAgICAgMHg3ZmZmYWZmOGJmZmYgIGxpYmRpc3BhdGNoLmR5
bGliICg3MDMuNTAuMzcpIDw2NTgyQkFENi1FRDI3LTNCMzAtQjYyMC05MEIxQzVBNEFFM0M+IC91
c3IvbGliL3N5c3RlbS9saWJkaXNwYXRjaC5keWxpYgogICAgMHg3ZmZmYWZmOGMwMDAgLSAgICAg
MHg3ZmZmYWZmOTFmZmIgIGxpYmR5bGQuZHlsaWIgKDQzMy41KSA8MDAxMTdGNzktNURCOC0zN0Q5
LTlBQUYtQkVFN0IxNjAxRTc1PiAvdXNyL2xpYi9zeXN0ZW0vbGliZHlsZC5keWxpYgogICAgMHg3
ZmZmYWZmOTIwMDAgLSAgICAgMHg3ZmZmYWZmOTJmZmIgIGxpYmtleW1nci5keWxpYiAoMjgpIDw3
QUEwMTFBOS1EQzIxLTM0ODgtQkY3My0zQjVCMTREMUZERDY+IC91c3IvbGliL3N5c3RlbS9saWJr
ZXltZ3IuZHlsaWIKICAgIDB4N2ZmZmFmZjkzMDAwIC0gICAgIDB4N2ZmZmFmZjlmZmZmICBsaWJr
eGxkLmR5bGliICgzNzg5LjczLjExKSA8MEZCN0E2MTQtQkI5Qi0zQzIwLTgzODMtQzhGN0E0MjhE
QjI2PiAvdXNyL2xpYi9zeXN0ZW0vbGlia3hsZC5keWxpYgogICAgMHg3ZmZmYWZmYTAwMDAgLSAg
ICAgMHg3ZmZmYWZmYTBmZmYgIGxpYmxhdW5jaC5keWxpYiAoOTcyLjcwLjEpIDxCODU2QUJEMi04
OTZFLTNERTAtQjJDOC0xNDZBNkFGOEUyQTc+IC91c3IvbGliL3N5c3RlbS9saWJsYXVuY2guZHls
aWIKICAgIDB4N2ZmZmFmZmExMDAwIC0gICAgIDB4N2ZmZmFmZmE2ZmYzICBsaWJtYWNoby5keWxp
YiAoODk4KSA8MTdENUQ4NTUtRjZDMy0zQjA0LUI2ODAtRTlCRjAyRUY4QUVEPiAvdXNyL2xpYi9z
eXN0ZW0vbGlibWFjaG8uZHlsaWIKICAgIDB4N2ZmZmFmZmE3MDAwIC0gICAgIDB4N2ZmZmFmZmE5
ZmYzICBsaWJxdWFyYW50aW5lLmR5bGliICg4NS41MC4xKSA8MTI0NDhDQzItMzc4RS0zNUYzLUJF
MzMtOURDMzk1QTVCOTcwPiAvdXNyL2xpYi9zeXN0ZW0vbGlicXVhcmFudGluZS5keWxpYgogICAg
MHg3ZmZmYWZmYWEwMDAgLSAgICAgMHg3ZmZmYWZmYWJmZmIgIGxpYnJlbW92ZWZpbGUuZHlsaWIg
KDQ1KSA8MzhENENCOUMtMTBDRC0zMEQzLThCN0ItQTUxNUVDNzVGRTg1PiAvdXNyL2xpYi9zeXN0
ZW0vbGlicmVtb3ZlZmlsZS5keWxpYgogICAgMHg3ZmZmYWZmYWMwMDAgLSAgICAgMHg3ZmZmYWZm
YzRmZjcgIGxpYnN5c3RlbV9hc2wuZHlsaWIgKDM0OS41MC41KSA8MDk2RTQyMjgtM0I3Qy0zMEE2
LThCMTMtRUM5MDlBNjQ0OTlBPiAvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX2FzbC5keWxpYgog
ICAgMHg3ZmZmYWZmYzUwMDAgLSAgICAgMHg3ZmZmYWZmYzVmZjcgIGxpYnN5c3RlbV9ibG9ja3Mu
ZHlsaWIgKDY3KSA8MTBEQzU0MDQtNzNBQi0zNUIzLUEyNzctQThBRkVDQjQ3NkVCPiAvdXNyL2xp
Yi9zeXN0ZW0vbGlic3lzdGVtX2Jsb2Nrcy5keWxpYgogICAgMHg3ZmZmYWZmYzYwMDAgLSAgICAg
MHg3ZmZmYjAwNTNmZWYgIGxpYnN5c3RlbV9jLmR5bGliICgxMTU4LjUwLjIpIDxFNUFFNTI0NC03
RDBDLTM2QUMtOEJCNi1DN0FFN0VBNTJBNEI+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fYy5k
eWxpYgogICAgMHg3ZmZmYjAwNTQwMDAgLSAgICAgMHg3ZmZmYjAwNTdmZmIgIGxpYnN5c3RlbV9j
b25maWd1cmF0aW9uLmR5bGliICg4ODguNjAuMikgPEJFQ0MwMUEyLUNBOEQtMzFFNi1CQ0RGLUQ0
NTI5NjVGQTk3Nj4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9jb25maWd1cmF0aW9uLmR5bGli
CiAgICAweDdmZmZiMDA1ODAwMCAtICAgICAweDdmZmZiMDA1YmZmZiAgbGlic3lzdGVtX2NvcmVz
ZXJ2aWNlcy5keWxpYiAoNDEuNCkgPDdEMjZERTc5LUI0MjQtMzQ1MC04NUUxLUY3RkFCMzI3MTRB
Qj4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9jb3Jlc2VydmljZXMuZHlsaWIKICAgIDB4N2Zm
ZmIwMDVjMDAwIC0gICAgIDB4N2ZmZmIwMDc0ZmZmICBsaWJzeXN0ZW1fY29yZXRscy5keWxpYiAo
MTIxLjUwLjQpIDxFQzZGQ0YwNy1EQ0ZCLTNBMDMtOUNDOS02REQzNzA5OTc0QzY+IC91c3IvbGli
L3N5c3RlbS9saWJzeXN0ZW1fY29yZXRscy5keWxpYgogICAgMHg3ZmZmYjAwNzUwMDAgLSAgICAg
MHg3ZmZmYjAwN2JmZmYgIGxpYnN5c3RlbV9kbnNzZC5keWxpYiAoNzY1LjUwLjkpIDxDQzk2MDIx
NS0wQjFCLTM4MjItQTEzQS0zRERFOTZGQTc5NkY+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1f
ZG5zc2QuZHlsaWIKICAgIDB4N2ZmZmIwMDdjMDAwIC0gICAgIDB4N2ZmZmIwMGE1ZmY3ICBsaWJz
eXN0ZW1faW5mby5keWxpYiAoNTAzLjUwLjQpIDw2MTFEQjg0Qy1CRjcwLTNGOTItODcwMi1COUYy
OEE5MDA5MjA+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1faW5mby5keWxpYgogICAgMHg3ZmZm
YjAwYTYwMDAgLSAgICAgMHg3ZmZmYjAwYzhmZjcgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgKDM3
ODkuNzMuMTEpIDw3N0Y1RTc3Qy1GRTVGLTNDNUItODA3NC1EMUZFRUM4NUJEOTE+IC91c3IvbGli
L3N5c3RlbS9saWJzeXN0ZW1fa2VybmVsLmR5bGliCiAgICAweDdmZmZiMDBjOTAwMCAtICAgICAw
eDdmZmZiMDExMGZlNyAgbGlic3lzdGVtX20uZHlsaWIgKDMxMjEuNikgPDg2RDQ5OUI1LUJCREMt
M0QzQi04QTRFLTk3QUU4RTY2NzJBND4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9tLmR5bGli
CiAgICAweDdmZmZiMDExMTAwMCAtICAgICAweDdmZmZiMDEyZmZmNyAgbGlic3lzdGVtX21hbGxv
Yy5keWxpYiAoMTE2LjUwLjgpIDxBM0QxNUYxNy05OUE2LTMzNjctOEM3RS00MjgwRTg2MTlDOTU+
IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fbWFsbG9jLmR5bGliCiAgICAweDdmZmZiMDEzMDAw
MCAtICAgICAweDdmZmZiMDE4OWZmYiAgbGlic3lzdGVtX25ldHdvcmsuZHlsaWIgKDg1Ni42MC4x
KSA8MzY5RDAyMjEtNTZDQS0zQzNFLTlFREUtOTRCNDFDQUU3N0I3PiAvdXNyL2xpYi9zeXN0ZW0v
bGlic3lzdGVtX25ldHdvcmsuZHlsaWIKICAgIDB4N2ZmZmIwMThhMDAwIC0gICAgIDB4N2ZmZmIw
MTkzZmYzICBsaWJzeXN0ZW1fbmV0d29ya2V4dGVuc2lvbi5keWxpYiAoNTYzLjYwLjIpIDxCMDIx
RjJCMy04QTc1LTM2MzMtQUJCMC1GQzAxMkI4RTlCMEM+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0
ZW1fbmV0d29ya2V4dGVuc2lvbi5keWxpYgogICAgMHg3ZmZmYjAxOTQwMDAgLSAgICAgMHg3ZmZm
YjAxOWRmZjMgIGxpYnN5c3RlbV9ub3RpZnkuZHlsaWIgKDE2NS4yMC4xKSA8QjgxNjAxOTAtQTA2
OS0zQjNBLUJERjYtMkFBNDA4MjIxRkFFPiAvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX25vdGlm
eS5keWxpYgogICAgMHg3ZmZmYjAxOWUwMDAgLSAgICAgMHg3ZmZmYjAxYTZmZTcgIGxpYnN5c3Rl
bV9wbGF0Zm9ybS5keWxpYiAoMTI2LjUwLjgpIDw4OTc0NjJGRC1CMzE4LTMyMUItQTU1NC1FNjE5
ODI2MzBGN0U+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fcGxhdGZvcm0uZHlsaWIKICAgIDB4
N2ZmZmIwMWE3MDAwIC0gICAgIDB4N2ZmZmIwMWIxZmY3ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxp
YiAoMjE4LjYwLjMpIDxCOEZCNUUyMC0zMjk1LTM5RTItQjVFQi1CNDY0RDFENEIxMDQ+IC91c3Iv
bGliL3N5c3RlbS9saWJzeXN0ZW1fcHRocmVhZC5keWxpYgogICAgMHg3ZmZmYjAxYjIwMDAgLSAg
ICAgMHg3ZmZmYjAxYjVmZjcgIGxpYnN5c3RlbV9zYW5kYm94LmR5bGliICg1OTIuNzAuMikgPDE5
MzIwQTQyLTJFM0ItMzYxQi1CQkRBLTJGNUYyRTg3QjEwMD4gL3Vzci9saWIvc3lzdGVtL2xpYnN5
c3RlbV9zYW5kYm94LmR5bGliCiAgICAweDdmZmZiMDFiNjAwMCAtICAgICAweDdmZmZiMDFiN2Zm
MyAgbGlic3lzdGVtX3NlY2luaXQuZHlsaWIgKDI0LjUwLjQpIDxGNzhCODQ3Qi0zNTY1LTNFNEIt
OThBNi1GN0FENDAzOTJFMkQ+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fc2VjaW5pdC5keWxp
YgogICAgMHg3ZmZmYjAxYjgwMDAgLSAgICAgMHg3ZmZmYjAxYmZmZmIgIGxpYnN5c3RlbV9zeW1w
dG9tcy5keWxpYiAoNTMyLjUwLjQ3KSA8MzM5MEUwN0MtQzFDRS0zNDhGLUFEQkQtMkM1NDQwQjQ1
RUFBPiAvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX3N5bXB0b21zLmR5bGliCiAgICAweDdmZmZi
MDFjMDAwMCAtICAgICAweDdmZmZiMDFkM2ZmNyAgbGlic3lzdGVtX3RyYWNlLmR5bGliICg1MTgu
NzAuMSkgPEFDNjNBN0ZFLTUwRDktM0EzMC05NkU2LUY2QjdGRjE2RTQ2NT4gL3Vzci9saWIvc3lz
dGVtL2xpYnN5c3RlbV90cmFjZS5keWxpYgogICAgMHg3ZmZmYjAxZDQwMDAgLSAgICAgMHg3ZmZm
YjAxZDlmZmIgIGxpYnVud2luZC5keWxpYiAoMzUuMykgPDNENTBEOEE4LUM0NjAtMzM0RC1BNTE5
LTJEQTg0MTEwMkM2Qj4gL3Vzci9saWIvc3lzdGVtL2xpYnVud2luZC5keWxpYgogICAgMHg3ZmZm
YjAxZGEwMDAgLSAgICAgMHg3ZmZmYjAyMDNmZjcgIGxpYnhwYy5keWxpYiAoOTcyLjcwLjEpIDxC
Rjg5NkRGMC1EOEU5LTMxQTgtQTRCMy0wMTEyMEJGRUVFNTI+IC91c3IvbGliL3N5c3RlbS9saWJ4
cGMuZHlsaWIKCkV4dGVybmFsIE1vZGlmaWNhdGlvbiBTdW1tYXJ5OgogIENhbGxzIG1hZGUgYnkg
b3RoZXIgcHJvY2Vzc2VzIHRhcmdldGluZyB0aGlzIHByb2Nlc3M6CiAgICB0YXNrX2Zvcl9waWQ6
IDE3CiAgICB0aHJlYWRfY3JlYXRlOiAwCiAgICB0aHJlYWRfc2V0X3N0YXRlOiAwCiAgQ2FsbHMg
bWFkZSBieSB0aGlzIHByb2Nlc3M6CiAgICB0YXNrX2Zvcl9waWQ6IDAKICAgIHRocmVhZF9jcmVh
dGU6IDAKICAgIHRocmVhZF9zZXRfc3RhdGU6IDAKICBDYWxscyBtYWRlIGJ5IGFsbCBwcm9jZXNz
ZXMgb24gdGhpcyBtYWNoaW5lOgogICAgdGFza19mb3JfcGlkOiAyMTYwNDQxCiAgICB0aHJlYWRf
Y3JlYXRlOiAwCiAgICB0aHJlYWRfc2V0X3N0YXRlOiA0ODAKClZNIFJlZ2lvbiBTdW1tYXJ5OgpS
ZWFkT25seSBwb3J0aW9uIG9mIExpYnJhcmllczogVG90YWw9NzUyLjVNIHJlc2lkZW50PTBLKDAl
KSBzd2FwcGVkX291dF9vcl91bmFsbG9jYXRlZD03NTIuNU0oMTAwJSkKV3JpdGFibGUgcmVnaW9u
czogVG90YWw9NTAuMUcgd3JpdHRlbj0wSygwJSkgcmVzaWRlbnQ9MEsoMCUpIHN3YXBwZWRfb3V0
PTBLKDAlKSB1bmFsbG9jYXRlZD01MC4xRygxMDAlKQogCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVklSVFVBTCAgIFJFR0lPTiAKUkVHSU9OIFRZUEUgICAgICAgICAgICAgICAgICAg
ICAgICBTSVpFICAgIENPVU5UIChub24tY29hbGVzY2VkKSAKPT09PT09PT09PT0gICAgICAgICAg
ICAgICAgICAgICA9PT09PT09ICA9PT09PT09IApBY3Rpdml0eSBUcmFjaW5nICAgICAgICAgICAg
ICAgICAgIDI1NksgICAgICAgIDIgCkNHIGltYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAg
MjY0SyAgICAgICAgMyAKQ29yZUFuaW1hdGlvbiAgICAgICAgICAgICAgICAgICAgIDQwOTZLICAg
ICAgICA5IApDb3JlVUkgaW1hZ2UgZGF0YSAgICAgICAgICAgICAgICAgIDgwOEsgICAgICAgIDgg
CkNvcmVVSSBpbWFnZSBmaWxlICAgICAgICAgICAgICAgICAgMTc2SyAgICAgICAgNCAKRGlzcGF0
Y2ggY29udGludWF0aW9ucyAgICAgICAgICAgIDE2LjBNICAgICAgICAyIApJT0tpdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNzk0MEsgICAgICAgIDIgCkltYWdlIElPICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMzA0SyAgICAgICAxMiAKSlMgSklUIGdlbmVyYXRlZCBjb2RlICAgICAg
ICAgICAgICAxLjBHICAgICAgICA0IApLZXJuZWwgQWxsb2MgT25jZSAgICAgICAgICAgICAgICAg
ICAgOEsgICAgICAgIDIgCk1BTExPQyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1OC4wTSAg
ICAgICA2NCAKTUFMTE9DIGd1YXJkIHBhZ2UgICAgICAgICAgICAgICAgICAgNjRLICAgICAgIDEz
IApNZW1vcnkgVGFnIDI0MiAgICAgICAgICAgICAgICAgICAgICAxMksgICAgICAgIDIgCk1lbW9y
eSBUYWcgMjUxICAgICAgICAgICAgICAgICAgICAgIDE2SyAgICAgICAgMiAKU1FMaXRlIHBhZ2Ug
Y2FjaGUgICAgICAgICAgICAgICAgICAzMjBLICAgICAgICA0IApTVEFDSyBHVUFSRCAgICAgICAg
ICAgICAgICAgICAgICAgNTYuMU0gICAgICAgMjMgClN0YWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxOC43TSAgICAgICAyNSAKVk1fQUxMT0NBVEUgICAgICAgICAgICAgICAgICAgICAg
ICAgNTJLICAgICAgICA5IApXZWJLaXQgTWFsbG9jICAgICAgICAgICAgICAgICAgICAgMzMuMUcg
ICAgICAxMzEgCldlYktpdCBNYWxsb2MgKHJlc2VydmVkKSAgICAgICAgICA0Ny44RyAgICAgICAg
MyAgICAgICAgIHJlc2VydmVkIFZNIGFkZHJlc3Mgc3BhY2UgKHVuYWxsb2NhdGVkKQpfX0RBVEEg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUuOE0gICAgICAzMjAgCl9fR0xTTEJVSUxUSU5T
ICAgICAgICAgICAgICAgICAgICAyNTg4SyAgICAgICAgMiAKX19JTUFHRSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA1MjhLICAgICAgICAyIApfX0xJTktFRElUICAgICAgICAgICAgICAgICAg
ICAgICAzOTguME0gICAgICAgMjQgCl9fVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1
NC41TSAgICAgIDMxNiAKX19VTklDT0RFICAgICAgICAgICAgICAgICAgICAgICAgICA1NTZLICAg
ICAgICAyIAptYXBwZWQgZmlsZSAgICAgICAgICAgICAgICAgICAgICAyNTUuNk0gICAgICAgMzYg
CnNoYXJlZCBtZW1vcnkgICAgICAgICAgICAgICAgICAgICAxNi40TSAgICAgICAxMSAKPT09PT09
PT09PT0gICAgICAgICAgICAgICAgICAgICA9PT09PT09ICA9PT09PT09IApUT1RBTCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgODMuMkcgICAgIDEwMDkgClRPVEFMLCBtaW51cyByZXNlcnZl
ZCBWTSBzcGFjZSAgICAzNS40RyAgICAgMTAwOSAKCgpTeXN0ZW0gUHJvZmlsZToKQWlyUG9ydDog
c3BhaXJwb3J0X3dpcmVsZXNzX2NhcmRfdHlwZV9haXJwb3J0X2V4dHJlbWUgKDB4MTRFNCwgMHgx
MEUpLCBCcm9hZGNvbSBCQ000M3h4IDEuMCAoNy4yMS4xNzEuMTMzLjFhMikKQmx1ZXRvb3RoOiBW
ZXJzaW9uIDUuMC41ZjEsIDMgc2VydmljZXMsIDI3IGRldmljZXMsIDEgaW5jb21pbmcgc2VyaWFs
IHBvcnRzClRodW5kZXJib2x0IEJ1czogTWFjIG1pbmksIEFwcGxlIEluYy4sIDIzLjQKTWVtb3J5
IE1vZHVsZTogQkFOSyAwL0RJTU0wLCA4IEdCLCBERFIzLCAxNjAwIE1IeiwgMHg4MDJDLCAweDMx
MzY0QjU0NDYzMTQ3MzYzNDQ4NUEyRDMxNDczNjQ1MzIyMApNZW1vcnkgTW9kdWxlOiBCQU5LIDEv
RElNTTAsIDggR0IsIEREUjMsIDE2MDAgTUh6LCAweDgwMkMsIDB4MzEzNjRCNTQ0NjMxNDczNjM0
NDg1QTJEMzE0NzM2NDUzMjIwClVTQiBEZXZpY2U6IFVTQiAyLjAgQnVzClVTQiBEZXZpY2U6IEh1
YgpVU0IgRGV2aWNlOiBVU0IgMi4wIEJ1cwpVU0IgRGV2aWNlOiBIdWIKVVNCIERldmljZTogSHVi
ClVTQiBEZXZpY2U6IElSIFJlY2VpdmVyClVTQiBEZXZpY2U6IEJSQ00yMDcwMiBIdWIKVVNCIERl
dmljZTogQmx1ZXRvb3RoIFVTQiBIb3N0IENvbnRyb2xsZXIKVVNCIERldmljZTogVVNCIDMuMCBC
dXMKU2VyaWFsIEFUQSBEZXZpY2U6IEFQUExFIFNTRCBTTTI1NkUsIDI1MSBHQgpNb2RlbDogTWFj
bWluaTYsMiwgQm9vdFJPTSBNTTYxLjAxMEQuQjAwLCA0IHByb2Nlc3NvcnMsIEludGVsIENvcmUg
aTcsIDIuNiBHSHosIDE2IEdCLCBTTUMgMi44ZjEKTmV0d29yayBTZXJ2aWNlOiBFdGhlcm5ldCwg
RXRoZXJuZXQsIGVuMApHcmFwaGljczogSW50ZWwgSEQgR3JhcGhpY3MgNDAwMCwgSW50ZWwgSEQg
R3JhcGhpY3MgNDAwMCwgQnVpbHQtSW4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351678</attachid>
            <date>2018-10-05 09:53:15 -0700</date>
            <delta_ts>2018-10-05 10:20:29 -0700</delta_ts>
            <desc>Fix test crash</desc>
            <filename>bug-190142-20181005095314.patch</filename>
            <type>text/plain</type>
            <size>102767</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2ODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU0ZGVjZWRhNDJiMmEw
NzEwZjQ4ZDNjMGMzODBiY2Q3NGIxY2Q0Yy4uMDM1ZTM1ZmVkMzM2Y2M0YzdmZTM0ZjJmZWMwZDUy
ZmIxODQ4NGYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MiBAQAorMjAxOC0xMC0wMSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFJlYWx0aW1lTWVkaWFTb3VyY2Ugc2hvdWxkIGJlIGFibGUgdG8gdmVuZCBoYXNoZWQgSURz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTAxNDIK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0OTExMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNDYXB0dXJlTWVk
aWFTdHJlYW1UcmFjazo6U291cmNlOjpTb3VyY2UpOiBVcGRhdGUgb3JkZXIgb2YgcGFyYW1ldGVy
cyBwYXNzZWQKKyAgICAgICAgdG8gYmFzZSBjbGFzcy4KKworICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YURldmljZXNSZXF1ZXN0OjpzdGFydCk6IEFTU0VSVCBpZiBkb2N1bWVudC5kZXZpY2VJREhhc2hT
YWx0IGlzIG5vdCB0aGUgc2FtZQorICAgICAgICBhcyBwYXNzZWQgc2FsdC4KKworICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRTZXR0aW5ncyBjb25zdCk6IERvbid0IG5lZWQgdG8g
aGFzaCBJRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OmdldENhcGFiaWxp
dGllcyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFjay5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6YWxsb3cpOiBQYXNz
IGhhc2ggc2FsdCB0byBjcmVhdGVNZWRpYVN0cmVhbS4KKworICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZVJl
Y2VpdmVyRm9yU291cmNlKTogVXBkYXRlIG9yZGVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkCisgICAg
ICAgIHRvIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHMuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlKTogRGl0dG8uCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1lTWVkaWFTb3VyY2Up
OiBDYWxjdWxhdGUgaGFzaGVkIElELgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6c2VsZWN0U2V0dGluZ3MpOiBVc2UgbV9oYXNoZWRJRC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6Omhhc2hlZElkIGNvbnN0KTogTmV3LgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGV2aWNlSURIYXNoU2FsdCBjb25zdCk6IE5ldy4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0
ZU1lZGlhU3RyZWFtKTogVGFrZSBoYXNoIHNhbHQsIHBhc3MgaXQgd2hlbiBjcmVhdGluZworICAg
ICAgICBhIHNvdXJjZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OmdldFVzZXJNZWRpYURldmljZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0
aW1lVmlkZW9Tb3VyY2UpOiBVcGRhdGUgcGFyYW1ldGVycy4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJl
YW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKworICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
OjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3Ry
ZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V3JhcHBlZE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjpXcmFwcGVkTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2U6Ok1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tH
U3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9j
a0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNv
dXJjZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
b2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJD
b3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2UpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncyk6IFVzZSBo
YXNoZWRJZCB0byBzZXQgZGV2aWNlIElELgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKTogVXBkYXRlIHBhcmFtZXRlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpDb3JlQXVkaW9DYXB0dXJl
U291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpjYXBhYmlsaXRpZXMpOiBVc2UgaGFzaGVkSWQgdG8gc2V0IGRldmljZSBJRC4KKyAgICAgICAg
KFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdzKTogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoK
KworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6
OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EpOiBVcGRhdGUgcGFyYW1ldGVycy4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oOgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291
cmNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYzo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMpOiBEaXR0by4KKworICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcDoK
KworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5E
aXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1h
Yyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0pOiBVcGRhdGUgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW0pOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpm
cmFtZUF2YWlsYWJsZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6V2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZSk6IFVwZGF0
ZSBwYXJhbWV0ZXJzLgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6
Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjpzZXR0aW5ncyk6IFVzZSBoYXNoZWRJZCB0byBzZXQgZGV2
aWNlIElELgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNhcGFi
aWxpdGllcyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwOgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKTogVXBkYXRlIHBhcmFtZXRlcnMuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMpOiBVc2Ug
aGFzaGVkSWQgdG8gc2V0IGRldmljZSBJRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpzZXR0aW5ncyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKwogMjAxOC0xMC0wNSAgQW50b2luZSBRdWludCAg
PGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gUkVHUkVTU0lP
TiAocjIzNjgwOSk6IGNyYXNoIHVuZGVyIEFuaW1hdGlvblRpbWVsaW5lOjp1cGRhdGVDU1NBbmlt
YXRpb25zRm9yRWxlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEyYzMzOGU3YTA3ZTY4ZWY3ZWRmYzAyYzAx
NzQwZGI4MjUxMzRkY2YuLjYzM2Y2NmI0ZDcwODVmMzFkZDA5ZGEwZTI3NDIxNmU4MjZjMjk3Zjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTgtMTAtMDEgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBSZWFsdGltZU1l
ZGlhU291cmNlIHNob3VsZCBiZSBhYmxlIHRvIHZlbmQgaGFzaGVkIElEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwMTQyCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80NDkxMTEwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0
LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmVuY29kZSk6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmRlY29kZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6U291cmNlOjpTb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCiAyMDE4
LTEwLTA1ICBaYWNoIExpICA8emFjaGxpQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2Ugd2hl
dGhlciBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIGlzIGEgc2VsZWN0IGVsZW1lbnQgdG8g
Y2xpZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9D
YW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCA3OGY5
ZmIyOTBmZTUzZjZiMTQzNTZlNWNkMDJkNmQ0MTVlNzcxZTdhLi41NmRmOGE2NmRlYWQzZTA0OWM2
MjVjN2FjNDE5MWM0YTYyOGY2MWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRy
YWNrLmNwcApAQCAtNjYsNyArNjYsNyBAQCBSZWY8Q2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJh
Y2s6OlNvdXJjZT4gQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2s6OlNvdXJjZQogCiAvLyBG
SVhNRTogR2l2ZSBzb3VyY2UgaWQgYW5kIG5hbWUKIENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRy
YWNrOjpTb3VyY2U6OlNvdXJjZShIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzLCBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4mJiBmcmFtZVJlcXVlc3RSYXRlKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJj
ZShTdHJpbmcoKSwgVHlwZTo6VmlkZW8sIFN0cmluZygpKQorICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShUeXBlOjpWaWRlbywgIkNhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrIl9zKQogICAg
ICwgbV9mcmFtZVJlcXVlc3RSYXRlKFdURk1vdmUoZnJhbWVSZXF1ZXN0UmF0ZSkpCiAgICAgLCBt
X3JlcXVlc3RGcmFtZVRpbWVyKCp0aGlzLCAmU291cmNlOjpyZXF1ZXN0RnJhbWVUaW1lckZpcmVk
KQogICAgICwgbV9jYW52YXNDaGFuZ2VkVGltZXIoKnRoaXMsICZTb3VyY2U6OmNhcHR1cmVDYW52
YXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlc1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYURldmljZXNSZXF1ZXN0LmNwcAppbmRleCBlMmM1YmY3MGEyNjcyNGZkMDU3YzlhNmFlNDYx
YWQ1YWRhNTNmOWUwLi5iZTUxYWUzNGE2OWU5ZmQ2NTUwNTA3ZjViOGEzMmMwZDY3ZGE2ODRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
c1JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFEZXZpY2VzUmVxdWVzdC5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIE1lZGlhRGV2aWNl
c1JlcXVlc3Q6OnN0YXJ0KCkKICAgICAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICBhdXRv
JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKICAgICAgICAgZG9jdW1lbnQuc2V0RGV2aWNlSURIYXNoU2FsdChkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQpOwogCiAgICAgICAgIFZlY3RvcjxSZWY8TWVkaWFEZXZpY2VJbmZvPj4gZGV2aWNl
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwCmluZGV4IGFjZmVjZjg0ZTM1NjA0ZWEwZTM1MDE0MDlkZmZiNGFjZDEx
MTgzMDMuLjcwNTMzYWQ1MWVkODFhNTY5YzAyZTU1ZGFlYmJiYjdlOWQ0YzEwOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c3RvcFRy
YWNrKFN0b3BNb2RlIG1vZGUpCiAgICAgY29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKIH0KIAot
TWVkaWFTdHJlYW1UcmFjazo6VHJhY2tTZXR0aW5ncyBNZWRpYVN0cmVhbVRyYWNrOjpnZXRTZXR0
aW5ncyhEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CitNZWRpYVN0cmVhbVRyYWNrOjpUcmFja1Nl
dHRpbmdzIE1lZGlhU3RyZWFtVHJhY2s6OmdldFNldHRpbmdzKCkgY29uc3QKIHsKICAgICBhdXRv
JiBzZXR0aW5ncyA9IG1fcHJpdmF0ZS0+c2V0dGluZ3MoKTsKICAgICBUcmFja1NldHRpbmdzIHJl
c3VsdDsKQEAgLTIyMCw5ICsyMjAsOSBAQCBNZWRpYVN0cmVhbVRyYWNrOjpUcmFja1NldHRpbmdz
IE1lZGlhU3RyZWFtVHJhY2s6OmdldFNldHRpbmdzKERvY3VtZW50JiBkb2N1bWVudAogICAgIGlm
IChzZXR0aW5ncy5zdXBwb3J0c0VjaG9DYW5jZWxsYXRpb24oKSkKICAgICAgICAgcmVzdWx0LmVj
aG9DYW5jZWxsYXRpb24gPSBzZXR0aW5ncy5lY2hvQ2FuY2VsbGF0aW9uKCk7CiAgICAgaWYgKHNl
dHRpbmdzLnN1cHBvcnRzRGV2aWNlSWQoKSkKLSAgICAgICAgcmVzdWx0LmRldmljZUlkID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0cmluZ1dpdGhTYWx0KHNl
dHRpbmdzLmRldmljZUlkKCksIGRvY3VtZW50LmRldmljZUlESGFzaFNhbHQoKSk7CisgICAgICAg
IHJlc3VsdC5kZXZpY2VJZCA9IHNldHRpbmdzLmRldmljZUlkKCk7CiAgICAgaWYgKHNldHRpbmdz
LnN1cHBvcnRzR3JvdXBJZCgpKQotICAgICAgICByZXN1bHQuZ3JvdXBJZCA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChzZXR0aW5ncy5n
cm91cElkKCksIGRvY3VtZW50LmRldmljZUlESGFzaFNhbHQoKSk7CisgICAgICAgIHJlc3VsdC5n
cm91cElkID0gc2V0dGluZ3MuZ3JvdXBJZCgpOwogCiAgICAgLy8gRklYTUU6IHNob3VsZG4ndCB0
aGlzIGluY2x1ZGUgZGlzcGxheVN1cmZhY2UgYW5kIGxvZ2ljYWxTdXJmYWNlPwogCkBAIC0yODcs
NyArMjg3LDcgQEAgc3RhdGljIFZlY3Rvcjxib29sPiBjYXBhYmlsaXR5Qm9vbGVhblZlY3RvcihS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpFY2gKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1NZWRpYVN0cmVhbVRyYWNrOjpUcmFja0NhcGFiaWxpdGllcyBNZWRpYVN0cmVhbVRyYWNr
OjpnZXRDYXBhYmlsaXRpZXMoRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAorTWVkaWFTdHJlYW1U
cmFjazo6VHJhY2tDYXBhYmlsaXRpZXMgTWVkaWFTdHJlYW1UcmFjazo6Z2V0Q2FwYWJpbGl0aWVz
KCkgY29uc3QKIHsKICAgICBhdXRvIGNhcGFiaWxpdGllcyA9IG1fcHJpdmF0ZS0+Y2FwYWJpbGl0
aWVzKCk7CiAgICAgVHJhY2tDYXBhYmlsaXRpZXMgcmVzdWx0OwpAQCAtMzEwLDkgKzMxMCw5IEBA
IE1lZGlhU3RyZWFtVHJhY2s6OlRyYWNrQ2FwYWJpbGl0aWVzIE1lZGlhU3RyZWFtVHJhY2s6Omdl
dENhcGFiaWxpdGllcyhEb2N1bWVudCYKICAgICBpZiAoY2FwYWJpbGl0aWVzLnN1cHBvcnRzRWNo
b0NhbmNlbGxhdGlvbigpKQogICAgICAgICByZXN1bHQuZWNob0NhbmNlbGxhdGlvbiA9IGNhcGFi
aWxpdHlCb29sZWFuVmVjdG9yKGNhcGFiaWxpdGllcy5lY2hvQ2FuY2VsbGF0aW9uKCkpOwogICAg
IGlmIChjYXBhYmlsaXRpZXMuc3VwcG9ydHNEZXZpY2VJZCgpKQotICAgICAgICByZXN1bHQuZGV2
aWNlSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5n
V2l0aFNhbHQoY2FwYWJpbGl0aWVzLmRldmljZUlkKCksIGRvY3VtZW50LmRldmljZUlESGFzaFNh
bHQoKSk7CisgICAgICAgIHJlc3VsdC5kZXZpY2VJZCA9IGNhcGFiaWxpdGllcy5kZXZpY2VJZCgp
OwogICAgIGlmIChjYXBhYmlsaXRpZXMuc3VwcG9ydHNHcm91cElkKCkpCi0gICAgICAgIHJlc3Vs
dC5ncm91cElkID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuaGFzaFN0
cmluZ1dpdGhTYWx0KGNhcGFiaWxpdGllcy5ncm91cElkKCksIGRvY3VtZW50LmRldmljZUlESGFz
aFNhbHQoKSk7CisgICAgICAgIHJlc3VsdC5ncm91cElkID0gY2FwYWJpbGl0aWVzLmdyb3VwSWQo
KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IDRiMDBlMDQwNDlkNDBm
YTI0YjA4YWVkMDBiMWE1ZWJlNDRhOTQ3MDAuLmUzNDZmODEzZTZjZmI5YTcwMmFjNWUxNjg1ZDMz
M2VkMmEwNWNiZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAg
ICAgICBTdHJpbmcgZGV2aWNlSWQ7CiAgICAgICAgIFN0cmluZyBncm91cElkOwogICAgIH07Ci0g
ICAgVHJhY2tTZXR0aW5ncyBnZXRTZXR0aW5ncyhEb2N1bWVudCYpIGNvbnN0OworICAgIFRyYWNr
U2V0dGluZ3MgZ2V0U2V0dGluZ3MoKSBjb25zdDsKIAogICAgIHN0cnVjdCBUcmFja0NhcGFiaWxp
dGllcyB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8TG9uZ1JhbmdlPiB3aWR0aDsKQEAgLTEyMCw3
ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBkZXZpY2VJZDsKICAgICAgICAgU3Ry
aW5nIGdyb3VwSWQ7CiAgICAgfTsKLSAgICBUcmFja0NhcGFiaWxpdGllcyBnZXRDYXBhYmlsaXRp
ZXMoRG9jdW1lbnQmKSBjb25zdDsKKyAgICBUcmFja0NhcGFiaWxpdGllcyBnZXRDYXBhYmlsaXRp
ZXMoKSBjb25zdDsKIAogICAgIGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50cyYgZ2V0Q29uc3Ry
YWludHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9CiAgICAgdm9pZCBhcHBseUNv
bnN0cmFpbnRzKGNvbnN0IHN0ZDo6b3B0aW9uYWw8TWVkaWFUcmFja0NvbnN0cmFpbnRzPiYsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCmluZGV4IDJiNzFjY2U0NDdi
MGU5YmNjYzMyN2U2NmY1MzIwYWM4NWM1M2EyYTUuLmJjZmFjOGY5YzllNTYwMTgyNDc5ODEwNGM3
MTI4ZDhjZTljNmQ3YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbApAQCAtNDcsOSArNDcsOSBAQCBlbnVtIE1l
ZGlhU3RyZWFtVHJhY2tTdGF0ZSB7ICJsaXZlIiwgImVuZGVkIiB9OwogICAgIE1lZGlhU3RyZWFt
VHJhY2sgY2xvbmUoKTsKICAgICBbSW1wbGVtZW50ZWRBcz1zdG9wVHJhY2tdIHZvaWQgc3RvcCgp
OwogCi0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBNZWRpYVRyYWNrQ2FwYWJpbGl0aWVzIGdldENh
cGFiaWxpdGllcygpOworICAgIE1lZGlhVHJhY2tDYXBhYmlsaXRpZXMgZ2V0Q2FwYWJpbGl0aWVz
KCk7CiAgICAgTWVkaWFUcmFja0NvbnN0cmFpbnRzIGdldENvbnN0cmFpbnRzKCk7Ci0gICAgW0Nh
bGxXaXRoPURvY3VtZW50XSBNZWRpYVRyYWNrU2V0dGluZ3MgZ2V0U2V0dGluZ3MoKTsKKyAgICBN
ZWRpYVRyYWNrU2V0dGluZ3MgZ2V0U2V0dGluZ3MoKTsKICAgICBQcm9taXNlPHZvaWQ+IGFwcGx5
Q29uc3RyYWludHMob3B0aW9uYWwgTWVkaWFUcmFja0NvbnN0cmFpbnRzIGNvbnN0cmFpbnRzKTsK
IAogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25vdmVyY29uc3RyYWluZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0
LmNwcAppbmRleCAxMjVkNmQxN2Y0NGI4MTNiMDUzMTBjOTgzMmQ2ZmYyZmI2YjNhZmEwLi5lODIz
Zjc1NDA2ZjQ0YzkwYmExMjc0NmExM2ZhMDVmZjdiM2M1MDMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAg
LTMwMCwxNiArMzAwLDE1IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coQ2FwdHVyZURl
dmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9ECiAgICAgICAgIG1fcGVu
ZGluZ0FjdGl2YXRpb25NZWRpYVN0cmVhbSA9IFBlbmRpbmdBY3RpdmF0aW9uTWVkaWFTdHJlYW06
OmNyZWF0ZShXVEZNb3ZlKHByb3RlY3RvciksICp0aGlzLCBXVEZNb3ZlKHN0cmVhbSkpOwogICAg
IH07CiAKLSAgICBtX3JlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0ID0g
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OwotICAgIG1fcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRz
LmRldmljZUlESGFzaFNhbHQgPSBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCk7Cisg
ICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7CisgICAgZG9jdW1lbnQuc2V0RGV2aWNlSURIYXNoU2FsdChkZXZpY2VJZGVudGlm
aWVySGFzaFNhbHQpOwogCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkuY3JlYXRlTWVkaWFTdHJlYW0oV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoYXVkaW9EZXZp
Y2UpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgbV9yZXF1ZXN0KTsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5jcmVhdGVNZWRpYVN0cmVhbShXVEZNb3ZlKGNhbGxi
YWNrKSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpLCBXVEZNb3ZlKGF1ZGlvRGV2
aWNlKSwgV1RGTW92ZSh2aWRlb0RldmljZSksIG1fcmVxdWVzdCk7CiAKICAgICBpZiAoIW1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKFdFQl9S
VEMpCi0gICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7CiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpCiAg
ICAgICAgIHBhZ2UtPnJ0Y0NvbnRyb2xsZXIoKS5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5n
Rm9yRG9jdW1lbnQoZG9jdW1lbnQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkMjBkYTY1YTFhNWY4MDE0
MjIyMDA2ZGExOGU4M2E5NDNiMTk5MjYyLi5jYzM5MjZhZWE4ODIyNGNiMTlkNGE4NmQ2NGI5YTI0
NzA5OGUyMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHAKQEAgLTIzNSw3ICsyMzUsOCBAQCB2b2lkIExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZDo6ZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBjYW5k
aWRhdAogCiBSZWY8UlRDUnRwUmVjZWl2ZXI+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6Y3JlYXRlUmVjZWl2ZXJGb3JTb3VyY2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291
cmNlLCBzdGQ6OnVuaXF1ZV9wdHI8UlRDUnRwUmVjZWl2ZXJCYWNrZW5kPiYmIGJhY2tlbmQpCiB7
Ci0gICAgYXV0byByZW1vdGVUcmFja1ByaXZhdGUgPSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
Y3JlYXRlKFdURk1vdmUoc291cmNlKSwgU3RyaW5nIHsgc291cmNlLT5pZCgpIH0pOworICAgIFN0
cmluZyB0cmFja0lEID0gc291cmNlLT5wZXJzaXN0ZW50SUQoKTsKKyAgICBhdXRvIHJlbW90ZVRy
YWNrUHJpdmF0ZSA9IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUoV1RGTW92ZShzb3Vy
Y2UpLCBXVEZNb3ZlKHRyYWNrSUQpKTsKICAgICBhdXRvIHJlbW90ZVRyYWNrID0gTWVkaWFTdHJl
YW1UcmFjazo6Y3JlYXRlKCptX3BlZXJDb25uZWN0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgV1RGTW92ZShyZW1vdGVUcmFja1ByaXZhdGUpKTsKIAogICAgIHJldHVybiBSVENSdHBSZWNl
aXZlcjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHJlbW90ZVRyYWNrKSwgV1RGTW92ZShiYWNrZW5k
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmNwcAppbmRleCA1NmYzN2MxMTY2YjZiZjllODYzYzQyOTY3ODcw
OWM0OGJjNjAyNjI0Li5mYzhhZTY2Y2I1MzJkZmI5MDMzODlkZjQyYzNjMGFkZjI2ODUzZTQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZShmbG9h
dCBzYW1wbGVSYXRlKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShtYWtlU3RyaW5nKCJXZWJB
dWRpby0iX3MsIGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSksIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvLCAiTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZSIpCisgICAg
OiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCAi
TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZSJfcykKIHsKICAgICBtX2N1cnJlbnRTZXR0
aW5ncy5zZXRTYW1wbGVSYXRlKHNhbXBsZVJhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggNzVhODJjZTRlYjhjMWMwZTg0OGM5NGVmMTM4ZDVlZGRkY2E4MWMyOS4uYTdiMDljYTU4
ODcyYzg2ZTExMzNmYzU2MzE4ZTQ5NzI1ZWE4ZTM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC03NzQwLDYgKzc3NDAsMTMgQEAgdm9pZCBEb2N1bWVudDo6bWVkaWFTdHJlYW1DYXB0dXJl
U3RhdGVDaGFuZ2VkKCkKICAgICBmb3IgKGF1dG8qIG1lZGlhRWxlbWVudCA6IG1fbWVkaWFTdHJl
YW1TdGF0ZUNoYW5nZUVsZW1lbnRzKQogICAgICAgICBtZWRpYUVsZW1lbnQtPm1lZGlhU3RyZWFt
Q2FwdHVyZVN0YXJ0ZWQoKTsKIH0KKwordm9pZCBEb2N1bWVudDo6c2V0RGV2aWNlSURIYXNoU2Fs
dChjb25zdCBTdHJpbmcmIHNhbHQpCit7CisgICAgQVNTRVJUKG1faWRIYXNoU2FsdC5pc0VtcHR5
KCkgfHwgbV9pZEhhc2hTYWx0ID09IHNhbHQpOworICAgIG1faWRIYXNoU2FsdCA9IHNhbHQ7Cit9
CisKICNlbmRpZgogCiB2b2lkIERvY3VtZW50OjphZGRBcHBsaWNhdGlvblN0YXRlQ2hhbmdlTGlz
dGVuZXIoQXBwbGljYXRpb25TdGF0ZUNoYW5nZUxpc3RlbmVyJiBsaXN0ZW5lcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggZDhiMWFkOTFmMDQzOGE2N2FjMDU2NjgzYjdlZmVlM2JjNTc2YjQzZS4u
Zjc3OGU2Yzc2MzUxNDZmYmQ3ZDIyMDk1N2M3NWU0MWJiYzc3YzhhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTEzOTEsNyArMTM5MSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIHZvaWQgc2V0SGFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2soKSB7IG1faGFzSGFk
Q2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sgPSB0cnVlOyB9CiAgICAgYm9vbCBoYXNIYWRDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjaygpIGNvbnN0IHsgcmV0dXJuIG1faGFzSGFkQ2FwdHVyZU1lZGlhU3Ry
ZWFtVHJhY2s7IH0KLSAgICB2b2lkIHNldERldmljZUlESGFzaFNhbHQoY29uc3QgU3RyaW5nJiBz
YWx0KSB7IG1faWRIYXNoU2FsdCA9IHNhbHQ7IH0KKyAgICB2b2lkIHNldERldmljZUlESGFzaFNh
bHQoY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGRldmljZUlESGFzaFNhbHQoKSBjb25zdCB7
IHJldHVybiBtX2lkSGFzaFNhbHQ7IH0KICAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoKTsKICAg
ICB2b2lkIHJlZ2lzdGVyRm9yTWVkaWFTdHJlYW1TdGF0ZUNoYW5nZUNhbGxiYWNrcyhIVE1MTWVk
aWFFbGVtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgKaW5kZXggMzBlYzQxYTYzYjg4OGQxNWMwMzQ1YTkyMzMz
MDgwNDVkOTEyYTVmZC4uYjQyNzEwYWI4YTFkMzBhYzAyOTMwNmVjYmI4MDM3MTY0MzBiZDJhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFDb25z
dHJhaW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
Q29uc3RyYWludHMuaApAQCAtODc5LDcgKzg3OSw2IEBAIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRz
IHsKIAogICAgIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIG1hbmRhdG9yeUNvbnN0cmFpbnRz
OwogICAgIFZlY3RvcjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4gYWR2YW5jZWRDb25zdHJh
aW50czsKLSAgICBTdHJpbmcgZGV2aWNlSURIYXNoU2FsdDsKICAgICBib29sIGlzVmFsaWQgeyBm
YWxzZSB9OwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCmlu
ZGV4IGIzNzYyOTQ3ZDY4YjY4MTRmOWY0MmZjNGE5Y2M3MmI4MTQ2ZGNlNzEuLmM2M2JmNzlkYjRl
YTZjZWFkNDRlYmY2ZmFlZTZhNGIwMWZiYjcwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlLmNwcApAQCAtMzgsMTAgKzM4LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2Uo
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiBhdWRpb1Ry
YWNrLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFdU
Rk1vdmUoYXVkaW9UcmFja0lkKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0
cmluZygpKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpBdWRpbywgInJlbW90ZSBhdWRpbyJfcywgV1RGTW92ZShhdWRpb1RyYWNrSWQpKQogICAg
ICwgbV9hdWRpb1RyYWNrKFdURk1vdmUoYXVkaW9UcmFjaykpCiB7Ci0gICAgc2V0TmFtZSgicmVt
b3RlIGF1ZGlvIik7CiAgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoIW1fYXVkaW9UcmFjayk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGEyZDQ0YTc5M2I4Mjg3
MWFlYmM5Mjg5MDhiNDNlZWFjNmJjMDM1ZjkuLmI2NzgyODA1NjY1OTMyZTk5ZmIwOTBmOTczNDU1
ZTE5YTI3NjI5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAt
MzgsMTAgKzM4LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB2aWRl
b1RyYWNrSWQpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFdURk1vdmUodmlkZW9UcmFja0lk
KSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmluZygpKQorICAgIDogUmVh
bHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgInJlbW90
ZSB2aWRlbyJfcywgV1RGTW92ZSh2aWRlb1RyYWNrSWQpKQogICAgICwgbV92aWRlb1RyYWNrKFdU
Rk1vdmUodmlkZW9UcmFjaykpCiB7Ci0gICAgc2V0TmFtZSgicmVtb3RlIHZpZGVvIik7CiAgICAg
bm90aWZ5TXV0ZWRDaGFuZ2UoIW1fdmlkZW9UcmFjayk7CiAKICAgICBSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgY29uc3RyYWludHM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CmluZGV4IDRjMThmNGYwOGQyZTEwNDQ0MTY2N2I1NzViMjc1ODJkMzRhMDZkYWMuLjgwNTA0MzI3
ZTNhNjgyNDk5NTg2ZjhkM2M3YjhjZTA0NGRhMzAyODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CkBAIC00NywxNCArNDcsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWFsdGltZU1l
ZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogbV9pZChpZCkKK1JlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBkZXZpY2VJRCwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBtX2lkSGFzaFNhbHQoV1RGTW92
ZShoYXNoU2FsdCkpCisgICAgLCBtX3BlcnNpc3RlbnRJRChXVEZNb3ZlKGRldmljZUlEKSkKICAg
ICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9uYW1lKG5hbWUpCisgICAgLCBtX25hbWUoV1RGTW92
ZShuYW1lKSkKIHsKLSAgICBpZiAobV9pZC5pc0VtcHR5KCkpCi0gICAgICAgIG1faWQgPSBjcmVh
dGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7Ci0gICAgbV9wZXJzaXN0ZW50SUQgPSBtX2lkOworICAg
IGlmIChtX3BlcnNpc3RlbnRJRC5pc0VtcHR5KCkpCisgICAgICAgIG1fcGVyc2lzdGVudElEID0g
Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOworICAgIGVsc2UKKyAgICAgICAgbV9oYXNoZWRJ
RCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRo
U2FsdChtX3BlcnNpc3RlbnRJRCwgbV9pZEhhc2hTYWx0KTsKIH0KIAogdm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlOjphZGRPYnNlcnZlcihSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYgb2Jz
ZXJ2ZXIpCkBAIC02MDgsMTAgKzYxMCw5IEBAIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2Vs
ZWN0U2V0dGluZ3MoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEZsCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBBU1NFUlQoY29uc3RyYWlu
dC5pc1N0cmluZygpKTsKLSAgICAgICAgICAgIEFTU0VSVCghY29uc3RyYWludHMuZGV2aWNlSURI
YXNoU2FsdC5pc0VtcHR5KCkpOworICAgICAgICAgICAgQVNTRVJUKCFtX2hhc2hlZElELmlzRW1w
dHkoKSk7CiAKLSAgICAgICAgICAgIGF1dG8gaGFzaGVkSUQgPSBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQobV9wZXJzaXN0ZW50SUQsIGNv
bnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQpOwotICAgICAgICAgICAgZG91YmxlIGNvbnN0cmFp
bnREaXN0YW5jZSA9IGRvd25jYXN0PFN0cmluZ0NvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpLmZpdG5l
c3NEaXN0YW5jZShoYXNoZWRJRCk7CisgICAgICAgICAgICBkb3VibGUgY29uc3RyYWludERpc3Rh
bmNlID0gZG93bmNhc3Q8U3RyaW5nQ29uc3RyYWludD4oY29uc3RyYWludCkuZml0bmVzc0Rpc3Rh
bmNlKG1faGFzaGVkSUQpOwogICAgICAgICAgICAgaWYgKHN0ZDo6aXNpbmYoY29uc3RyYWludERp
c3RhbmNlKSkgewogICAgICAgICAgICAgICAgIGZhaWxlZENvbnN0cmFpbnQgPSBjb25zdHJhaW50
Lm5hbWUoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk1OCw2ICs5NTksMTcg
QEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzY2hlZHVsZURlZmVycmVkVGFzayhXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKICAgICB9KTsKIH0KIAorY29uc3QgU3RyaW5nJiBS
ZWFsdGltZU1lZGlhU291cmNlOjpoYXNoZWRJZCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX2hh
c2hlZElELmlzRW1wdHkoKSk7CisgICAgcmV0dXJuIG1faGFzaGVkSUQ7Cit9CisKK1N0cmluZyBS
ZWFsdGltZU1lZGlhU291cmNlOjpkZXZpY2VJREhhc2hTYWx0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9pZEhhc2hTYWx0OworfQorCiBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcjo6fk9i
c2VydmVyKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA3N2RhMzA4ZjRjYWM4NDY2ZWU5
YjQyN2FiNWViMTU4ZjVhMGEzZjNlLi5iY2VmNTY5YmE1ODRiMWVhYmI1Y2EyMmJlZDNiODY2YmE3
YWRkYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC04OCwxMCArODgsMTAgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpID0gZGVmYXVsdDsKIAotICAgIGNv
bnN0IFN0cmluZyYgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CisgICAgY29uc3QgU3RyaW5n
JiBoYXNoZWRJZCgpIGNvbnN0OworICAgIFN0cmluZyBkZXZpY2VJREhhc2hTYWx0KCkgY29uc3Q7
CiAKICAgICBjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVy
c2lzdGVudElEOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFBlcnNpc3RlbnRJRChTdHJpbmcmJiBw
ZXJzaXN0ZW50SUQpIHsgbV9wZXJzaXN0ZW50SUQgPSBXVEZNb3ZlKHBlcnNpc3RlbnRJRCk7IH0K
IAogICAgIGVudW0gY2xhc3MgVHlwZSB7IE5vbmUsIEF1ZGlvLCBWaWRlbyB9OwogICAgIFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpAQCAtMTY2LDcgKzE2Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsYXlTYW1wbGVzKFNlY29uZHMpIHsgfTsKIAogcHJvdGVj
dGVkOgotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlKFR5cGUsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGRldmljZUlEID0geyB9LCBTdHJpbmcmJiBoYXNoU2FsdCA9IHsgfSk7
CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
KTsKIApAQCAtMjA0LDcgKzIwNCw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fbXV0ZWQgeyBm
YWxzZSB9OwogCi0gICAgU3RyaW5nIG1faWQ7CisgICAgU3RyaW5nIG1faWRIYXNoU2FsdDsKKyAg
ICBTdHJpbmcgbV9oYXNoZWRJRDsKICAgICBTdHJpbmcgbV9wZXJzaXN0ZW50SUQ7CiAgICAgVHlw
ZSBtX3R5cGU7CiAgICAgU3RyaW5nIG1fbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHAKaW5kZXggNWUxYjVhNWY5NDg2YzliMTQ5MDFiM2NhMDhhZmU3YTFmNTEyMzNhZi4uYTZm
OGZmMzEzZmVjOTZhZWQ1Yjg5MDA0OGIzYmY2NDU5NDQ4ZDM3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAKQEAgLTc5LDE0ICs3OSwxNCBAQCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKCkKIAogUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6flJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKSA9IGRlZmF1bHQ7CiAKLXZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJl
YW1IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIsIENhcHR1cmVEZXZpY2UmJiBhdWRpb0Rldmlj
ZSwgQ2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlLCBjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3Qm
IHJlcXVlc3QpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3Ry
ZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyLCBTdHJpbmcmJiBo
YXNoU2FsdCwgQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlk
ZW9EZXZpY2UsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBWZWN0
b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBhdWRpb1NvdXJjZXM7CiAgICAgVmVjdG9yPFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOwogICAgIFN0cmluZyBpbnZhbGlk
Q29uc3RyYWludDsKIAogICAgIGlmIChhdWRpb0RldmljZSkgewotICAgICAgICBhdXRvIGF1ZGlv
U291cmNlID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUo
YXVkaW9EZXZpY2UpLCAmcmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgYXV0byBh
dWRpb1NvdXJjZSA9IGF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZN
b3ZlKGF1ZGlvRGV2aWNlKSwgU3RyaW5nIHsgaGFzaFNhbHQgfSwgJnJlcXVlc3QuYXVkaW9Db25z
dHJhaW50cyk7CiAgICAgICAgIGlmIChhdWRpb1NvdXJjZSkKICAgICAgICAgICAgIGF1ZGlvU291
cmNlcy5hcHBlbmQoYXVkaW9Tb3VyY2Uuc291cmNlKCkpOwogICAgICAgICBlbHNlIHsKQEAgLTEw
Miw3ICsxMDIsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlh
U3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciYmIGNvbXBsZQogICAgIGlmICh2aWRlb0Rldmlj
ZSkgewogICAgICAgICBDYXB0dXJlU291cmNlT3JFcnJvciB2aWRlb1NvdXJjZTsKICAgICAgICAg
aWYgKHZpZGVvRGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1l
cmEpCi0gICAgICAgICAgICB2aWRlb1NvdXJjZSA9IHZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVv
Q2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgJnJlcXVlc3QudmlkZW9Db25zdHJh
aW50cyk7CisgICAgICAgICAgICB2aWRlb1NvdXJjZSA9IHZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShoYXNoU2FsdCks
ICZyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2
aWRlb1NvdXJjZSA9IGRpc3BsYXlDYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZURpc3BsYXlDYXB0dXJl
U291cmNlKFdURk1vdmUodmlkZW9EZXZpY2UpLCAmcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzKTsK
IApAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0
RGlzcGxheU1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmCiAgICAgfQogfQog
Ci12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29u
c3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0LCBWZWN0b3I8RGV2aWNlSW5mbz4mIGF1ZGlv
RGV2aWNlSW5mbywgVmVjdG9yPERldmljZUluZm8+JiB2aWRlb0RldmljZUluZm8sIFN0cmluZyYg
Zmlyc3RJbnZhbGlkQ29uc3RyYWludCkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
Z2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBNZWRpYVN0cmVhbVJlcXVlc3QmIHJlcXVlc3QsIFN0
cmluZyYmIGhhc2hTYWx0LCBWZWN0b3I8RGV2aWNlSW5mbz4mIGF1ZGlvRGV2aWNlSW5mbywgVmVj
dG9yPERldmljZUluZm8+JiB2aWRlb0RldmljZUluZm8sIFN0cmluZyYgZmlyc3RJbnZhbGlkQ29u
c3RyYWludCkKIHsKICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CiAgICAgaWYgKHJlcXVl
c3QuYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7CkBAIC0yMzksNyArMjM5LDcgQEAgdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlh
U3RyZWFtUmVxdWVzdCYgcmUKICAgICAgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9y
ID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgeyB9KTsK
KyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFN0cmluZyB7IGhhc2hTYWx0IH0sIHsgfSk7CiAgICAg
ICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2Ut
PnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29u
c3RyYWludCkpCiAgICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNl
T3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAKQEAgLTI1
Myw3ICsyNTMsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRp
YURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZQogICAgICAgICAgICAgaWYgKCFk
ZXZpY2UuZW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAg
ICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoZGV2aWNlLCB7IH0pOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gdmlk
ZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgU3RyaW5nIHsgaGFz
aFNhbHQgfSwgeyB9KTsKICAgICAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9y
RXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhyZXF1ZXN0LnZpZGVvQ29u
c3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKICAgICAgICAgICAgICAgICB2aWRlb0Rldmlj
ZUluZm8uYXBwZW5kKHtzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgp
LCBkZXZpY2V9KTsKIApAQCAtMjc5LDcgKzI3OSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRs
CiAgICAgaWYgKHJlcXVlc3QudHlwZSA9PSBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3Bs
YXlNZWRpYSkKICAgICAgICAgZ2V0RGlzcGxheU1lZGlhRGV2aWNlcyhyZXF1ZXN0LCB2aWRlb0Rl
dmljZUluZm8sIGZpcnN0SW52YWxpZENvbnN0cmFpbnQpOwogICAgIGVsc2UKLSAgICAgICAgZ2V0
VXNlck1lZGlhRGV2aWNlcyhyZXF1ZXN0LCBhdWRpb0RldmljZUluZm8sIHZpZGVvRGV2aWNlSW5m
bywgZmlyc3RJbnZhbGlkQ29uc3RyYWludCk7CisgICAgICAgIGdldFVzZXJNZWRpYURldmljZXMo
cmVxdWVzdCwgU3RyaW5nIHsgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0IH0sIGF1ZGlvRGV2aWNl
SW5mbywgdmlkZW9EZXZpY2VJbmZvLCBmaXJzdEludmFsaWRDb25zdHJhaW50KTsKIAogICAgIGlm
ICgocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgYXVkaW9EZXZpY2VJbmZvLmlz
RW1wdHkoKSkgfHwgKHJlcXVlc3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkICYmIHZpZGVvRGV2
aWNlSW5mby5pc0VtcHR5KCkpKSB7CiAgICAgICAgIGludmFsaWRIYW5kbGVyKGZpcnN0SW52YWxp
ZENvbnN0cmFpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IDgxZmI4NWMy
MTAyOTFmOWUyY2RiMjY3ZjIxMzIxODEzYjdkZGY1YmQuLjRlMTcwMjdkZTZlY2M4YjQwNzliYjQ1
Y2IwODk3NjIzNDJjNzI1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAgLTY1
LDcgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25z
dHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGxlciYmLCBJbnZhbGlkQ29uc3RyYWludHNIYW5k
bGVyJiYsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYsIFN0cmluZyYmKTsKIAogICAgIHVzaW5n
IE5ld01lZGlhU3RyZWFtSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChSZWZQdHI8TWVkaWFT
dHJlYW1Qcml2YXRlPiYmKT47Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZU1lZGlhU3RyZWFtKE5l
d01lZGlhU3RyZWFtSGFuZGxlciYmLCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1
cmVEZXZpY2UmJiB2aWRlb0RldmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0Jik7CisgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciYmLCBT
dHJpbmcmJiwgQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlk
ZW9EZXZpY2UsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYpOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBWZWN0b3I8Q2FwdHVyZURldmljZT4gZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJl
RGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBjb25zdCBT
dHJpbmcmKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICB2b2lk
IGdldERpc3BsYXlNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiwgVmVjdG9y
PERldmljZUluZm8+JiwgU3RyaW5nJik7Ci0gICAgdm9pZCBnZXRVc2VyTWVkaWFEZXZpY2VzKGNv
bnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYsIFZlY3RvcjxEZXZpY2VJbmZvPiYgYXVkaW9EZXZpY2Vz
LCBWZWN0b3I8RGV2aWNlSW5mbz4mIHZpZGVvRGV2aWNlcywgU3RyaW5nJik7CisgICAgdm9pZCBn
ZXRVc2VyTWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYsIFN0cmluZyYmLCBW
ZWN0b3I8RGV2aWNlSW5mbz4mIGF1ZGlvRGV2aWNlcywgVmVjdG9yPERldmljZUluZm8+JiB2aWRl
b0RldmljZXMsIFN0cmluZyYpOwogCiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fZGV2aWNl
Q2hhbmdlZE9ic2VydmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcApp
bmRleCA5NzI1ZDdmYjhmNTdkYzczYjc1MzZlOTgxYjMyY2VlMmYyZDIzMmM3Li5lOGU1NWRmMjdm
NGEzZjY4NThmMTNiNTg2YTQ4ZTk2NTVhZmU2MWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUZhY3RvcnkuY3BwCkBAIC0yNiwxNCArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIgogCi0jaW5jbHVkZSAiQ2FwdHVy
ZURldmljZS5oIgotI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKLQogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJDYXB0dXJlRGV2aWNlLmgiCiAjaW5jbHVkZSAi
Q2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TWVkaWFTdHJlYW1Qcml2YXRlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgog
I2luY2x1ZGUgPHd0Zi9TSEExLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VG
YWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlRmFjdG9yeS5oCmluZGV4IGY5YzQ3Y2FhOGUwZTg1ODRkYjkyYzk0YzEzZTlhYzNj
ZTRmMDFhNjguLjliZTA1MGUyYzAzOGYzYmViZDVkMzdlMDg1NTE3Nzg1ZjdhZDM0MDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaApAQCAtMjcsMTQgKzI3LDE1IEBACiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FwdHVyZURldmljZTsKIGNsYXNzIFJlYWx0
aW1lTWVkaWFTb3VyY2U7CiAKLXN0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwotCiBzdHJ1Y3QgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3I7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKIAogY2xhc3MgU2lu
Z2xlU291cmNlRmFjdG9yeSB7CiBwdWJsaWM6CkBAIC01Myw3ICs1NCw3IEBAIGNsYXNzIEF1ZGlv
Q2FwdHVyZUZhY3RvcnkKIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BdWRpb0NhcHR1cmVGYWN0
b3J5KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKikgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyopID0gMDsKIAogcHJvdGVjdGVkOgogICAgIEF1ZGlvQ2FwdHVyZUZhY3Rv
cnkoKSA9IGRlZmF1bHQ7CkBAIC02Niw3ICs2Nyw3IEBAIGNsYXNzIFZpZGVvQ2FwdHVyZUZhY3Rv
cnkKIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZh
dWx0OwotICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJl
U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAw
OworICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmLCBTdHJpbmcmJiwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9DYXB0dXJlUGFnZVN0YXRlKGJvb2ws
IGJvb2wpIHsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGY1ZGI5
YjA5N2U3NjQzOWFiMTE5OGU3ZWU2MmJlMDVhMjJkM2Q3YWIuLjU2NjRiMDkyMTAwNzJlMTFiYmIw
YThjZGM1Y2JiMjQyMjEyNWRhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC0zNCw4ICsz
NCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVh
bHRpbWVWaWRlb1NvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIG5hbWUpCi0g
ICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGlkLCBUeXBlOjpWaWRlbywgbmFtZSkKK1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aWQsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpW
aWRlbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggODdhYjgwYTE4ZGRhZTVjYzYxMzUxNDAzNDBiMjY4
MTI2OTNiMDM1YS4uYTQ5Y2Y2Y2NmNjZiMDM5YjkxNTkyNjZjYTg5NDVjODUwNGEyZDczMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
UmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVhbHRpbWVWaWRlb1Nv
dXJjZShjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIFJlYWx0aW1l
VmlkZW9Tb3VyY2UoU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0
KTsKIAogICAgIHZvaWQgcHJlcGFyZVRvUHJvZHVjZURhdGEoKTsKICAgICBib29sIHN1cHBvcnRz
U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8
aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
QXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDc0ZmEz
OWM5ZTY3MTQxMzVhZWVhYTNhMzRiYTRiOTYyNzFjYjNjMGUuLjJiNzU0ZDdjNGQ2OTgzY2I1ODU0
NGY1NjNhYzhhNDQ4MmIxYTgwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01Myw5ICs1Myw5IEBAIHN0YXRpYyB2b2lkIGlu
aXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpCiAKIGNsYXNzIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZUZhY3RvcnkgOiBwdWJsaWMgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZp
bmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJuIEdT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwg
Y29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
OjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsKIApAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMg
R1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSYgbGliV2ViUlRDQXVkaW9DYXB0dXJl
U291cmNlRmFjdG9yeSgpCiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CiB9CiAKLUNhcHR1cmVT
b3VyY2VPckVycm9yIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3Ry
aW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKIHsKICAgICBhdXRvIGRldmljZSA9IEdTdHJlYW1lckF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmdzdHJlYW1lckRldmljZVdpdGhVSUQoZGV2aWNl
SUQpOwogICAgIGlmICghZGV2aWNlKSB7CkBAIC03Myw3ICs3Myw3IEBAIENhcHR1cmVTb3VyY2VP
ckVycm9yIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKGVy
cm9yTWVzc2FnZSkpOwogICAgIH0KIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBH
U3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLnZhbHVlKCkpKTsKKyAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKGRldmljZS52
YWx1ZSgpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogCiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAg
ICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50
cyk7CkBAIC04OCwxNSArODgsMTUgQEAgQXVkaW9DYXB0dXJlRmFjdG9yeSYgR1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKICAgICByZXR1cm4gbGliV2ViUlRDQXVkaW9DYXB0
dXJlU291cmNlRmFjdG9yeSgpOwogfQogCi1HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdT
dHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlIGRldmljZSkK
LSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgZGV2aWNlLmxhYmVsKCkpCitHU3RyZWFtZXJBdWRp
b0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0
dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBSZWFsdGltZU1lZGlh
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVyQXVkaW9D
YXB0dXJlcj4oZGV2aWNlKSkKIHsKICAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKIH0K
IAotR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogUmVh
bHRpbWVNZWRpYVNvdXJjZShkZXZpY2VJRCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8sIG5hbWUpCitHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lckF1ZGlvQ2Fw
dHVyZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OkF1ZGlvLCBXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNo
U2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVyQXVkaW9D
YXB0dXJlcj4oKSkKIHsKICAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKQEAgLTE2Myw3
ICsxNjMsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBHU3RyZWFt
ZXJBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcwogICAgIH0KIAogICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKHNldHRpbmdzKCkuc3VwcG9ydGVk
Q29uc3RyYWludHMoKSk7Ci0gICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGlkKCkpOworICAg
IGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKICAgICBjYXBhYmlsaXRpZXMu
c2V0RWNob0NhbmNlbGxhdGlvbihkZWZhdWx0RWNob0NhbmNlbGxhdGlvbkNhcGFiaWxpdHkpOwog
ICAgIGNhcGFiaWxpdGllcy5zZXRWb2x1bWUoZGVmYXVsdFZvbHVtZUNhcGFiaWxpdHkoKSk7CiAg
ICAgY2FwYWJpbGl0aWVzLnNldFNhbXBsZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZShtaW5T
YW1wbGVSYXRlLCBtYXhTYW1wbGVSYXRlKSk7CkBAIC0xODIsNyArMTgyLDcgQEAgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2U6OnNl
dHRpbmdzKCkKIHsKICAgICBpZiAoIW1fY3VycmVudFNldHRpbmdzKSB7CiAgICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKLSAgICAgICAgc2V0dGluZ3Muc2V0RGV2
aWNlSWQoaWQoKSk7CisgICAgICAgIHNldHRpbmdzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwog
CiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBzdXBwb3J0
ZWRDb25zdHJhaW50czsKICAgICAgICAgc3VwcG9ydGVkQ29uc3RyYWludHMuc2V0U3VwcG9ydHNE
ZXZpY2VJZCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJBdWRpb0NhcHR1
cmVTb3VyY2UuaAppbmRleCA3NTllODE0NzExNTI3YWVmZDVmMGRlMGNlNmRhYjA2MDUwNDQwMGYx
Li5mYTM0MTk0ZGEyZTM1Y2RlMGExZmVkZWRlOWZlZWU2NGQ2ZDhmZmQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC0zMCw3ICszMCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291
cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAgIHN0YXRpYyBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3Rvcnkm
IGZhY3RvcnkoKTsKIAogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
IGNhcGFiaWxpdGllcygpIG92ZXJyaWRlOwpAQCAtNDAsOCArNDAsOCBAQCBwdWJsaWM6CiAgICAg
R1N0cmVhbWVyQ2FwdHVyZXIqIGNhcHR1cmVyKCkgeyByZXR1cm4gbV9jYXB0dXJlci5nZXQoKTsg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKEdTdHJlYW1l
ckNhcHR1cmVEZXZpY2UpOwotICAgIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBT
dHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIEdTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0dXJlRGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCk7
CisgICAgR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAgdmlydHVhbCB+R1N0cmVhbWVyQXVk
aW9DYXB0dXJlU291cmNlKCk7CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlk
ZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDIwOWRiNjU5
NzkyNzYzODVlZGMxMjEzMzZlNjEyZDg4YzFkNDlmZGUuLmU3OWEzNTdjYjRlZDQ3ODQ4NTU1YTUy
ZDg5NDE2MmJjMTc0Y2ZmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01NCw5ICs1NCw5IEBAIHN0YXRpYyB2b2lkIGluaXRp
YWxpemVHU3RyZWFtZXJEZWJ1ZygpCiAKIGNsYXNzIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZUZhY3RvcnkgZmluYWwgOiBwdWJsaWMgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0g
ICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
IGZpbmFsCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJu
IEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQo
KSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFdURk1vdmUoaGFz
aFNhbHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsKIApAQCAtODEsNyArODEsNyBAQCBEaXNw
bGF5Q2FwdHVyZUZhY3RvcnkmIGxpYldlYlJUQ0Rpc3BsYXlDYXB0dXJlU291cmNlRmFjdG9yeSgp
CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CiB9CiAKLUNhcHR1cmVTb3VyY2VPckVycm9yIEdT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQs
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykK
IHsKICAgICBhdXRvIGRldmljZSA9IEdTdHJlYW1lclZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXI6
OnNpbmdsZXRvbigpLmdzdHJlYW1lckRldmljZVdpdGhVSUQoZGV2aWNlSUQpOwogICAgIGlmICgh
ZGV2aWNlKSB7CkBAIC04OSw3ICs4OSw3IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEdTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsCiAgICAg
ICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwog
ICAgIH0KIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBHU3RyZWFtZXJWaWRlb0Nh
cHR1cmVTb3VyY2UoZGV2aWNlLnZhbHVlKCkpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KCpuZXcgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKGRldmljZS52YWx1ZSgpLCBXVEZNb3Zl
KGhhc2hTYWx0KSkpOwogCiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVz
dWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7CkBAIC0xMDksMTUg
KzEwOSwxNSBAQCBEaXNwbGF5Q2FwdHVyZUZhY3RvcnkmIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNv
dXJjZTo6ZGlzcGxheUZhY3RvcnkoKQogICAgIHJldHVybiBsaWJXZWJSVENEaXNwbGF5Q2FwdHVy
ZVNvdXJjZUZhY3RvcnkoKTsKIH0KIAotR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBnY2hhciAqc291cmNlX2ZhY3RvcnkpCi0gICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKGRldmljZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgbmFt
ZSkKK0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
Y29uc3QgZ2NoYXIgKnNvdXJjZV9mYWN0b3J5KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgV1RGTW92ZShkZXZpY2VJRCksIFdURk1v
dmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihzdGQ6Om1ha2Vf
dW5pcXVlPEdTdHJlYW1lclZpZGVvQ2FwdHVyZXI+KHNvdXJjZV9mYWN0b3J5KSkKIHsKICAgICBp
bml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKIH0KIAotR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZSBk
ZXZpY2UpCi0gICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIGRldmljZS5sYWJlbCgpKQorR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoR1N0cmVh
bWVyQ2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVhbHRp
bWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgU3RyaW5nIHsg
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1v
dmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlcihzdGQ6Om1ha2VfdW5pcXVlPEdTdHJlYW1l
clZpZGVvQ2FwdHVyZXI+KGRldmljZSkpCiB7CiAgICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVn
KCk7CkBAIC0yNDIsNyArMjQyLDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChpZCgp
KTsKKyAgICAgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwogICAgICAg
ICBjYXBhYmlsaXRpZXMuc2V0V2lkdGgoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZShtaW5XaWR0aCwg
bWF4V2lkdGgpKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNldEhlaWdodChDYXBhYmlsaXR5VmFs
dWVPclJhbmdlKG1pbkhlaWdodCwgbWF4SGVpZ2h0KSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5z
ZXRGcmFtZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZShtaW5GcmFtZXJhdGUsIG1heEZyYW1l
cmF0ZSkpOwpAQCAtMjU2LDcgKzI1Niw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpzZXR0aW5ncygpCiB7CiAgICAgaWYg
KCFtX2N1cnJlbnRTZXR0aW5ncykgewogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3Mgc2V0dGluZ3M7Ci0gICAgICAgIHNldHRpbmdzLnNldERldmljZUlkKGlkKCkpOworICAgICAg
ICBzZXR0aW5ncy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKIAogICAgICAgICBSZWFsdGltZU1l
ZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgc3VwcG9ydGVkQ29uc3RyYWludHM7CiAgICAg
ICAgIHN1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzRGV2aWNlSWQodHJ1ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggNjdi
Y2QxYTIwYWIwMWQzZTcxNmEwMDY3MmFjZjcxYjU5MzA0ODc3Ny4uMjMxZWQ0YWEzMDdiZmZkMGI1
ZTdmOWFmNzc5Yjc4ZTcyNTlkNTM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGlt
ZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsK
KyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCkBAIC00MSw4ICs0MSw4IEBAIHB1YmxpYzoKICAgICBH
U3RyZWFtZXJDYXB0dXJlciogY2FwdHVyZXIoKSB7IHJldHVybiBtX2NhcHR1cmVyLmdldCgpOyB9
CiAKIHByb3RlY3RlZDoKLSAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBnY2hhciAqIHNvdXJjZV9m
YWN0b3J5KTsKLSAgICBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoR1N0cmVhbWVyQ2FwdHVy
ZURldmljZSk7CisgICAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmlj
ZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgZ2NoYXIgKiBzb3Vy
Y2VfZmFjdG9yeSk7CisgICAgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKEdTdHJlYW1lckNh
cHR1cmVEZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KTsKICAgICB2aXJ0dWFsIH5HU3RyZWFtZXJW
aWRlb0NhcHR1cmVTb3VyY2UoKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIG92ZXJy
aWRlOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRl
eCA5ZjAxZTY3MTIwMjBiMWFmYzAzOWZmZWZjMGYwNzZlYmRmNTU3NGQ4Li5mZDUyZWJmNDk2ZTdi
MWU2OTc2OTZiODVkYWFjNjE1NzZhMDYxYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC0zMCwxNiArMzAsMTYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXcmFwcGVkTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UgOiBwdWJsaWMgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UgewogcHVibGljOgotICAgIFdy
YXBwZWRNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25z
dCBTdHJpbmcmIG5hbWUpCi0gICAgICAgIDogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoZGV2aWNl
SUQsIG5hbWUpCisgICAgV3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFN0cmluZyYmIGRl
dmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICAgICAgOiBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShoYXNoU2FsdCkpCiAgICAgewogICAgIH0KIH07CiAKLUNhcHR1cmVTb3VyY2VPckVycm9y
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwK
LSAgICBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShTdHJpbmcmJiBkZXZpY2VJRCwKKyAgICBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3Vy
Y2UgPSBhZG9wdFJlZigqbmV3IE1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNl
SUQsIG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja0dTdHJlYW1l
ckF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShoYXNoU2FsdCkpKTsKIAogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5
Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTU4LDkg
KzU4LDkgQEAgdm9pZCBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjphcHBseUNvbnN0
cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGMKICAgICBtX3dyYXBwZWRTb3VyY2UtPmFw
cGx5Q29uc3RyYWludHMoY29uc3RyYWludHMsIFdURk1vdmUoc3VjY2Vzc0hhbmRsZXIpLCBXVEZN
b3ZlKGZhaWx1cmVIYW5kbGVyKSk7CiB9CiAKLU1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3Vy
Y2U6Ok1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIDogR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
KGRldmljZUlELCBuYW1lKQotICAgICwgbV93cmFwcGVkU291cmNlKHN0ZDo6bWFrZV91bmlxdWU8
V3JhcHBlZE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPihkZXZpY2VJRCwgbmFtZSkpCitNb2NrR1N0
cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlOjpNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNl
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAg
ICA6IEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBkZXZpY2VJRCB9LCBTdHJp
bmcgeyBuYW1lIH0sIFN0cmluZyB7IGhhc2hTYWx0IH0pCisgICAgLCBtX3dyYXBwZWRTb3VyY2Uo
c3RkOjptYWtlX3VuaXF1ZTxXcmFwcGVkTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U+KFdURk1vdmUo
ZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpCiB7CiAgICAgbV93
cmFwcGVkU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlv
Q2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL01vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCBiNTcxODFkOWEx
YzljOWFkNzBmMWY1NjY3OWQzNzU1ZTQ1NGIxMDgzLi44YTRiYmU4NWYzNzdkZTY3MDY0YTkwOGVi
NDE2MTU2MmZhNGQ2N2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBNb2NrR1N0cmVhbWVyQXVkaW9DYXB0dXJlU291cmNlIGZpbmFsIDogcHVi
bGljIEdTdHJlYW1lckF1ZGlvQ2FwdHVyZVNvdXJjZSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2Jz
ZXJ2ZXIgewogcHVibGljOgotICAgIE1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBNb2NrR1N0cmVh
bWVyQXVkaW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCk7CiAgICAgfk1vY2tHU3RyZWFtZXJBdWRpb0NhcHR1cmVTb3VyY2Uo
KTsKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGFwcGx5Q29u
c3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3VjY2Vzc0hhbmRsZXImJiwgRmFpbHVyZUhh
bmRsZXImJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggNDRkOTRjYzI3ZTMyNjcyYmI0YzQ0MjA2MzUz
MWJjODJmMmJjZjRjYi4uY2IzMDY5NjYwOWRiZDg4Zjg2MmYwYmVhYjZhOTlmZGYyNmE4OWVmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJl
U291cmNlLmNwcApAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFdyYXBwZWRNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZSB7CiBwdWJsaWM6Ci0gICAgV3JhcHBlZE1vY2tSZWFsdGltZVZpZGVvU291cmNlKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICAgICAgOiBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZShkZXZpY2VJRCwgbmFtZSkKKyAgICBXcmFwcGVkTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0KQorICAgICAgICA6IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2
aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICB7CiAgICAgfQog
CkBAIC02MSwxMCArNjEsMTAgQEAgcHVibGljOgogICAgIH0KIH07CiAKLUNhcHR1cmVTb3VyY2VP
ckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJRCwKLSAgICBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwKKyAgICBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2Uo
ZGV2aWNlSUQsIG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja0dT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1l
KSwgV1RGTW92ZShoYXNoU2FsdCkpKTsKIAogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2Ut
PmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAg
LTk1LDkgKzk1LDkgQEAgdm9pZCBNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjp2aWRl
b1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgIH0KIH0KIAotTW9ja0dT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6TW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAgOiBHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIG5hbWUsICJhcHBzcmMiKQotICAgICwg
bV93cmFwcGVkU291cmNlKHN0ZDo6bWFrZV91bmlxdWU8V3JhcHBlZE1vY2tSZWFsdGltZVZpZGVv
U291cmNlPihkZXZpY2VJRCwgbmFtZSkpCitNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
OjpNb2NrR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKKyAgICA6IEdTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZShTdHJpbmcgeyBkZXZpY2VJRCB9LCBTdHJpbmcgeyBuYW1lIH0sIFN0cmluZyB7IGhh
c2hTYWx0IH0sICJhcHBzcmMiKQorICAgICwgbV93cmFwcGVkU291cmNlKHN0ZDo6bWFrZV91bmlx
dWU8V3JhcHBlZE1vY2tSZWFsdGltZVZpZGVvU291cmNlPihXVEZNb3ZlKGRldmljZUlEKSwgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKQogewogICAgIG1fd3JhcHBlZFNvdXJjZS0+
YWRkT2JzZXJ2ZXIoKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9Nb2NrR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggZDA4YWE0ODk5NTg1ZTlhMzM1ZDI5Mzdl
YzcxM2ZjZDg5NzljNWY1ZC4uYzI0ODYzMjNiMzFhM2VlNWZkNDQ2MTQ5MTFkODhiNmRhM2NlZjk1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01vY2tHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZS5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFdyYXBwZWRNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTsKIC8vIHRvIHRoZSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZSBjbGFzcyBieSB3cmFw
cGluZyBvdXIgb3duIHN1YmNsYXNzIG9mIGl0LgogY2xhc3MgTW9ja0dTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBNb2NrR1N0cmVhbWVy
VmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYg
bmFtZSk7CisgICAgTW9ja0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogICAgIH5Nb2NrR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlKCk7CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U3Ry
aW5nLCBTdHJpbmc+PiBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmKTsK
ICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFN1Y2Nl
c3NIYW5kbGVyJiYsIEZhaWx1cmVIYW5kbGVyJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVT
b3VyY2UuaAppbmRleCBkMzhlMWFlNjI2NTBhNmUzNjQ3M2IxMWNiMWVjOWYxZTAxNDIyZTI5Li4z
YjQ5ZjQ2ZmRhM2VjMzI2YzczODUxNzNmYTZjZDI3ZWNmMjllZjYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBQaXhlbEJ1ZmZlclJlc2l6ZXI7
CiAKIGNsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lVmlkZW9Tb3Vy
Y2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAg
IHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFjdG9y
eSYgZmFjdG9yeSgpOwogCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1
cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRw
dXQqLCBDTVNhbXBsZUJ1ZmZlclJlZiwgQVZDYXB0dXJlQ29ubmVjdGlvbiopOwogCiBwcml2YXRl
OgotICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21p
Y1N0cmluZyYpOworICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIFN0
cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAgICAgdmlydHVhbCB+QVZWaWRlb0NhcHR1
cmVTb3VyY2UoKTsKIAogICAgIGJvb2wgc2V0dXBTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1
cmVTb3VyY2UubW0KaW5kZXggNGNiMmY5Mzk3ZWFjYzE1Zjc2ZGJkZjRiNjM3ODA4OTI4NTAzNWVk
MC4uNTE5NjA4MjIyZTY2MTRhYjJlZGNlYzIzZjM1MDA5MDc1OWQxMTkxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291
cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5tbQpAQCAtMTUwLDEzICsxNTAsMTMgQEAgcHVibGljOgogICAgIFJl
dGFpblB0cjxBVkNhcHR1cmVEZXZpY2VGb3JtYXRUeXBlPiBmb3JtYXQ7CiB9OwogCi1DYXB0dXJl
U291cmNlT3JFcnJvciBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0
cmluZyYgaWQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBpZCwgU3Ry
aW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewog
ICAgIEFWQ2FwdHVyZURldmljZVR5cGVkZWYgKmRldmljZSA9IFtnZXRBVkNhcHR1cmVEZXZpY2VD
bGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDppZF07CiAgICAgaWYgKCFkZXZpY2UpCiAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQVZWaWRlb0Nh
cHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5l
dyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdURk1vdmUoaWQpLCBXVEZNb3ZlKGhhc2hT
YWx0KSkpOwogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNv
dXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwogICAgICAgICBpZiAocmVzdWx0
KQpAQCAtMTY2LDggKzE2Niw4IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJl
U291cmNlOjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29uc3QKICAgICByZXR1cm4g
Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRl
dmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKLSAgICA6IFJlYWx0aW1lVmlkZW9Tb3VyY2Uo
aWQsIGRldmljZS5sb2NhbGl6ZWROYW1lKQorQVZWaWRlb0NhcHR1cmVTb3VyY2U6OkFWVmlkZW9D
YXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgU3RyaW5nJiYgaWQs
IFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShkZXZpY2UubG9j
YWxpemVkTmFtZSwgV1RGTW92ZShpZCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9vYmpj
T2JzZXJ2ZXIoYWRvcHROUyhbW1dlYkNvcmVBVlZpZGVvQ2FwdHVyZVNvdXJjZU9ic2VydmVyIGFs
bG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKICAgICAsIG1fZGV2aWNlKGRldmljZSkKIHsK
QEAgLTE3Nyw4ICsxNzcsNiBAQCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0NhcHR1cmVT
b3VyY2UoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBjb25zdAogICAgIHN0YXRpY19h
c3NlcnQoc3RhdGljX2Nhc3Q8aW50PihJbnRlcnJ1cHRpb25SZWFzb246OlZpZGVvSW5Vc2UpID09
IEFWQ2FwdHVyZVNlc3Npb25JbnRlcnJ1cHRpb25SZWFzb25WaWRlb0RldmljZUluVXNlQnlBbm90
aGVyQ2xpZW50LCAiSW50ZXJydXB0aW9uUmVhc29uOjpWaWRlb0luVXNlIGlzIG5vdCBBVkNhcHR1
cmVTZXNzaW9uSW50ZXJydXB0aW9uUmVhc29uVmlkZW9EZXZpY2VJblVzZUJ5QW5vdGhlckNsaWVu
dCBhcyBleHBlY3RlZCIpOwogICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8aW50PihJbnRl
cnJ1cHRpb25SZWFzb246OkF1ZGlvSW5Vc2UpID09IEFWQ2FwdHVyZVNlc3Npb25JbnRlcnJ1cHRp
b25SZWFzb25BdWRpb0RldmljZUluVXNlQnlBbm90aGVyQ2xpZW50LCAiSW50ZXJydXB0aW9uUmVh
c29uOjpBdWRpb0luVXNlIGlzIG5vdCBBVkNhcHR1cmVTZXNzaW9uSW50ZXJydXB0aW9uUmVhc29u
QXVkaW9EZXZpY2VJblVzZUJ5QW5vdGhlckNsaWVudCBhcyBleHBlY3RlZCIpOwogI2VuZGlmCi0K
LSAgICBzZXRQZXJzaXN0ZW50SUQoU3RyaW5nKGRldmljZS51bmlxdWVJRCkpOwogfQogCiBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6fkFWVmlkZW9DYXB0dXJlU291cmNlKCkKQEAgLTI2MCw3ICsyNTgs
NyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIEFWVmlkZW9DYXB0dXJlU291
cmNlOjpzZXR0aW5ncygpCiAgICAgYXV0byYgc2l6ZSA9IHRoaXMtPnNpemUoKTsKICAgICBzZXR0
aW5ncy5zZXRXaWR0aChzaXplLndpZHRoKCkpOwogICAgIHNldHRpbmdzLnNldEhlaWdodChzaXpl
LmhlaWdodCgpKTsKLSAgICBzZXR0aW5ncy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICBzZXR0aW5n
cy5zZXREZXZpY2VJZChoYXNoZWRJZCgpKTsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBw
b3J0ZWRDb25zdHJhaW50cyBzdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBzdXBwb3J0ZWRDb25z
dHJhaW50cy5zZXRTdXBwb3J0c0RldmljZUlkKHRydWUpOwpAQCAtMjgzLDcgKzI4MSw3IEBAIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIEFWVmlkZW9DYXB0dXJlU291cmNl
OjpjYXBhYmlsaXRpZXMoKQogICAgICAgICByZXR1cm4gKm1fY2FwYWJpbGl0aWVzOwogCiAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMoc2V0dGluZ3MoKS5z
dXBwb3J0ZWRDb25zdHJhaW50cygpKTsKLSAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaWQo
KSk7CisgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwogCiAgICAgQVZD
YXB0dXJlRGV2aWNlVHlwZWRlZiAqdmlkZW9EZXZpY2UgPSBkZXZpY2UoKTsKICAgICBpZiAoW3Zp
ZGVvRGV2aWNlIHBvc2l0aW9uXSA9PSBBVkNhcHR1cmVEZXZpY2VQb3NpdGlvbkZyb250KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDg1OWQ3MzhhOTRmOTAyNWZlN2U0
YjA2ZGI4NTlhNDE1MGE4ODFlMWEuLmM5ZWE1ODgyMjU3OWQ4YzBiMGE4MWZkZWQxZjkxNmVlYzVh
NzM0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTY5NCwyMCAr
Njk0LDIwIEBAIE9TU3RhdHVzIENvcmVBdWRpb1NoYXJlZFVuaXQ6OmRlZmF1bHRPdXRwdXREZXZp
Y2UodWludDMyX3QqIGRldmljZUlEKQogICAgIHJldHVybiBlcnI7CiB9CiAKLUNhcHR1cmVTb3Vy
Y2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRl
dmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3Vy
Y2VPckVycm9yIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJ
RCwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQogewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmlj
ZUlEKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCBk
ZXZpY2UtPmxhYmVsKCksIGRldmljZS0+ZGV2aWNlSUQoKSkpOworICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBT
dHJpbmcgeyBkZXZpY2UtPmxhYmVsKCkgfSwgV1RGTW92ZShoYXNoU2FsdCksIGRldmljZS0+ZGV2
aWNlSUQoKSkpOwogI2VsaWYgUExBVEZPUk0oSU9TKQotICAgIGF1dG8gZGV2aWNlID0gQVZBdWRp
b1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkuYXVkaW9TZXNzaW9uRGV2
aWNlV2l0aFVJRChkZXZpY2VJRCk7CisgICAgYXV0byBkZXZpY2UgPSBBVkF1ZGlvU2Vzc2lvbkNh
cHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5hdWRpb1Nlc3Npb25EZXZpY2VXaXRoVUlE
KFdURk1vdmUoZGV2aWNlSUQpKTsKICAgICBpZiAoIWRldmljZSkKICAgICAgICAgcmV0dXJuIHsg
fTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBDb3JlQXVkaW9DYXB0dXJlU291
cmNlKGRldmljZUlELCBkZXZpY2UtPmxhYmVsKCksIDApKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgU3Ry
aW5nIHsgZGV2aWNlLT5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpLCAwKSk7CiAjZW5kaWYK
IAogICAgIGlmIChjb25zdHJhaW50cykgewpAQCAtNzc0LDggKzc3NCw4IEBAIEF1ZGlvQ2FwdHVy
ZUZhY3RvcnkmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQogICAgIHJldHVybiBD
b3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6c2luZ2xldG9uKCk7CiB9CiAKLUNvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJRCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgdWludDMyX3QgcGVyc2lzdGVudElEKQotICAgIDog
UmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2VJRCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
QXVkaW8sIGxhYmVsKQorQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0
LCB1aW50MzJfdCBwZXJzaXN0ZW50SUQpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShkZXZp
Y2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV9jYXB0dXJlRGV2aWNlSUQocGVyc2lz
dGVudElEKQogewogICAgIGF1dG8mIHVuaXQgPSBDb3JlQXVkaW9TaGFyZWRVbml0OjpzaW5nbGV0
b24oKTsKQEAgLTg0NSw3ICs4NDUsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIGlm
ICghbV9jYXBhYmlsaXRpZXMpIHsKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyBjYXBhYmlsaXRpZXMoc2V0dGluZ3MoKS5zdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKLSAg
ICAgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGlkKCkpOworICAgICAgICBjYXBhYmlsaXRp
ZXMuc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRFY2hv
Q2FuY2VsbGF0aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaG9DYW5jZWxs
YXRpb246OlJlYWRXcml0ZSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRWb2x1bWUoQ2FwYWJp
bGl0eVZhbHVlT3JSYW5nZSgwLjAsIDEuMCkpOwogICAgICAgICBjYXBhYmlsaXRpZXMuc2V0U2Ft
cGxlUmF0ZShDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDgwMDAsIDk2MDAwKSk7CkBAIC04NjAsNyAr
ODYwLDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBDb3JlQXVkaW9DYXB0
dXJlU291cmNlOjpzZXR0aW5ncygpCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
cyBzZXR0aW5nczsKICAgICAgICAgc2V0dGluZ3Muc2V0Vm9sdW1lKHZvbHVtZSgpKTsKICAgICAg
ICAgc2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlKCkpOwotICAgICAgICBzZXR0aW5n
cy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQoaGFzaGVk
SWQoKSk7CiAgICAgICAgIHNldHRpbmdzLnNldExhYmVsKG5hbWUoKSk7CiAgICAgICAgIHNldHRp
bmdzLnNldEVjaG9DYW5jZWxsYXRpb24oZWNob0NhbmNlbGxhdGlvbigpKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1
cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggZTVmMWE0ZjEwNTYwZWM2Njg1N2YyZjE4OTUyZjBi
YjNmOGQzMjhiNC4uMDZiNWY2NDZlZjYyMDdlMjU5NTgwZWVjNzRiYmIyNTQ5YTAyODE1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwogY2xhc3MgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9DYXB0dXJlRmFjdG9y
eSYgZmFjdG9yeSgpOwogCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjaGVk
dWxlUmVjb25maWd1cmF0aW9uKCk7CiAKIHByb3RlY3RlZDoKLSAgICBDb3JlQXVkaW9DYXB0dXJl
U291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIHVpbnQz
Ml90IHBlcnNpc3RlbnRJRCk7CisgICAgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBk
ZXZpY2VJRCwgU3RyaW5nJiYgbGFiZWwsIFN0cmluZyYmIGhhc2hTYWx0LCB1aW50MzJfdCBwZXJz
aXN0ZW50SUQpOwogICAgIHZpcnR1YWwgfkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoKTsKIAogcHJp
dmF0ZToKQEAgLTEyNiw5ICsxMjYsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAg
ICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykg
ZmluYWwKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4g
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29u
c3RyYWludHMpOworICAgICAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29u
c3RyYWludHMpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNv
Y29hLmNwcAppbmRleCBkYzZhMThiNTRhMjA2NGUyMGFhMjM4ODE1YmRjMjI1MzI4ODdiOTcwLi4z
NzNkMGY4YTUzYTVlNmE2ZWE0YzdlNGJkZjk3NmQ4ZWRkOTU0NDFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIERpc3BsYXlDYXB0dXJlU291cmNlQ29j
b2E6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EoU3RyaW5nJiYgbmFtZSkKLSAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoIiIsIFR5cGU6OlZpZGVvLCBXVEZNb3ZlKG5hbWUpKQorICAgIDogUmVh
bHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSkKICAgICAsIG1fdGlt
ZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6
ZW1pdEZyYW1lKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgKaW5k
ZXggMjRkZGM2N2QyYjcwYjk0OTM1NTY0NTFhOWFiNDhhYjIyZmUzMDgyZC4uYmZlNDBiODYwNTgx
ZjFjZGI5MzFiMzVjYmY0N2ZmMDcyYzNiYWFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVT
b3VyY2VDb2NvYS5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIERpc3BsYXlDYXB0dXJlU291cmNl
Q29jb2EgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6CiAKIHByb3RlY3Rl
ZDoKLSAgICBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFN0cmluZyYmKTsKKyAgICBEaXNwbGF5
Q2FwdHVyZVNvdXJjZUNvY29hKFN0cmluZyYmIG5hbWUpOwogICAgIHZpcnR1YWwgfkRpc3BsYXlD
YXB0dXJlU291cmNlQ29jb2EoKTsKIAogICAgIHZpcnR1YWwgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IGdlbmVyYXRlRnJhbWUoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYy5oCmluZGV4IDk5ZDc4ZWVjN2M3MDJlY2QxNmVjZmRhMGI4NGQwYzU2YjlkNGYzYmMu
LjUyMDhiMjYyYTNjMDM3N2Y2MjgzYzMwYWMyY2E4MzU2YzQyZjNkYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VN
YWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UgewogcHJpdmF0ZToKICAg
ICBmcmllbmQgY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U7Ci0gICAgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1l
KTsKKyAgICBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZpY2VJRCwgU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCiAgICAgdm9pZCBzZXR0aW5nc0RpZENo
YW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpGbGFnPikgZmluYWw7
CiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8aW50Pj4gZGlzY3JldGVTYW1wbGVSYXRlcygpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHsgeyA0NDEwMCwgNDgwMDAgfSB9OyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KaW5kZXggMGM4YTRiZGUyMDVjOWI5YjJhYjJhODg4
OTc2YmM5NzQ5YzMzNzFhYy4uNzY3NjYwNjdlNjZjMTQwOTk3ZDBmZWUzN2M1OWY2N2Q1N2JhMmRi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01v
Y2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbQpAQCAtODYsOSAr
ODYsMTYgQEAgc3RhdGljIHZvaWQgYWRkSHVtKGZsb2F0IGFtcGxpdHVkZSwgZmxvYXQgZnJlcXVl
bmN5LCBmbG9hdCBzYW1wbGVSYXRlLCB1aW50NjRfdAogICAgIH0KIH0KIAotQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRl
dmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNl
ID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyhkZXZpY2VJRCwgbmFt
ZSkpOworI2lmbmRlZiBOREVCVUcKKyAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CisgICAg
QVNTRVJUKGRldmljZSk7CisgICAgaWYgKCFkZXZpY2UpCisgICAgICAgIHJldHVybiB7IH07Cisj
ZW5kaWYKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZU1hYyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNo
U2FsdCkpKTsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlcG9ydCBlcnJvciBtZXNzYWdlcwog
ICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFp
bnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTk2LDggKzEwMyw4IEBAIENhcHR1cmVTb3Vy
Y2VPckVycm9yIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJRCwgY29uCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291
cmNlKSk7CiB9CiAKLU1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZU1hYyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUpCi0g
ICAgOiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShkZXZpY2VJRCwgbmFtZSkKK01vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyhTdHJpbmcmJiBkZXZp
Y2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAgOiBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZSho
YXNoU2FsdCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgK
aW5kZXggMGI2ZTBhYjQ3MjUyNDk1YzViNTUwYjY4ZjRkMjdjZTc5OWYxOTMxNC4uOWM3NGRkZTE4
MzFlNDcxYTEwNzYwMWIwM2U2NjU0N2M3NjlhMDhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTsKLSAgICBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5h
bWUpOworICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFN0cmluZyYmIGRldmljZUlELCBT
dHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAKICAgICBSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IENNU2FtcGxlQnVmZmVyRnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJS
ZWYpOwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZyb21DR0lt
YWdlKENHSW1hZ2VSZWYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjLm1tCmluZGV4IDQzMTYzYTk1YTA4YjBjMDI2YmQ3NTBmMjlhOTIxMzE2YWFjZDRjMDIuLjIz
YTE2OTYyYjUzOTQxODRjNWY2NTRlOWVjNWUxZDFmZTkwY2QyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUzLDkgKzUzLDE2IEBAIHVzaW5nIG5hbWVz
cGFjZSBQQUw7CiAKIHN0YXRpYyBjb25zdCBpbnQgdmlkZW9TYW1wbGVSYXRlID0gOTAwMDA7CiAK
LUNhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMo
ZGV2aWNlSUQsIG5hbWUpKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgYXV0byBkZXZpY2UgPSBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQoZGV2
aWNlSUQpOworICAgIEFTU0VSVChkZXZpY2UpOworICAgIGlmICghZGV2aWNlKQorICAgICAgICBy
ZXR1cm4geyB9OworI2VuZGlmCisKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSks
IFdURk1vdmUoaGFzaFNhbHQpKSk7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXBvcnQgZXJy
b3IgbWVzc2FnZXMKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFp
bnRzKCpjb25zdHJhaW50cykpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC02Myw4ICs3MCw4IEBA
IENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9y
KFdURk1vdmUoc291cmNlKSk7CiB9CiAKLU1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJp
bmcmIG5hbWUpCi0gICAgOiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShkZXZpY2VJRCwgbmFtZSkK
K01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCisgICAg
OiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1l
KSwgV1RGTW92ZShoYXNoU2FsdCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjLmNwcAppbmRleCBmOGVjNmM4NTY3MjM4ZTZlMDRjYjcwNDFjYTExODBi
NTUwM2I1YmMwLi44YmU0MDIyZmU4ZmE4MTA2OTcwMTBkMWEwYWQ2MWUwYjk4MzNmYjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCkBAIC00OCwxMCAr
NDgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBWaWRlb0NhcHR1cmVTb3VyY2VG
YWN0b3J5TWFjIGZpbmFsIDogcHVibGljIFZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgot
ICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VS
VChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSk7Ci0g
ICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0
ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCksIGNvbnN0cmFpbnRzKTsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC03NSwx
MSArNzUsMTEgQEAgcHVibGljOgogICAgICAgICBzd2l0Y2ggKGRldmljZS50eXBlKCkpIHsKICAg
ICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAjaWYgUExBVEZP
Uk0oTUFDKQotICAgICAgICAgICAgcmV0dXJuIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
OjpjcmVhdGUoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBjb25zdHJhaW50cyk7CisgICAgICAgICAg
ICByZXR1cm4gU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShTdHJpbmcgeyBk
ZXZpY2UucGVyc2lzdGVudElkKCkgfSwgY29uc3RyYWludHMpOwogI2VuZGlmCiAgICAgICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICAgICAgICAgIHJldHVybiBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRl
KGRldmljZS5wZXJzaXN0ZW50SWQoKSwgY29uc3RyYWludHMpOworICAgICAgICAgICAgcmV0dXJu
IFdpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpIH0sIGNvbnN0cmFpbnRzKTsKICNlbmRpZgogICAgICAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkFwcGxpY2F0aW9uOgogICAgICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkJyb3dzZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYy5oCmluZGV4IDZlMmVhYjgxYzA0NzZkNDdhYzI0NzlhNjk4MjYwNTlkYTdl
NGFlMzYuLmVjOTIwZjAyNGE1Njg5OTIwMDk0NDk0NDQ3ZDcyYmVlNjMyOTBkYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCkBAIC00MSwxMyArNDEsMTMg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYyA6IHB1YmxpYyBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
KFN0cmluZyYmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKICAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxDYXB0dXJlRGV2aWNlPiBzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJ
RChjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBzY3JlZW5DYXB0dXJlRGV2aWNlcyhW
ZWN0b3I8Q2FwdHVyZURldmljZT4mKTsKIAogcHJpdmF0ZToKLSAgICBTY3JlZW5EaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYyh1aW50MzJfdCk7CisgICAgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWModWludDMyX3QsIFN0cmluZyYmKTsKICAgICB2aXJ0dWFsIH5TY3JlZW5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZU1hYygpOwogCiAgICAgc3RhdGljIHZvaWQgZGlzcGxheVJlY29uZmlndXJhdGlvbkNh
bGxCYWNrKENHRGlyZWN0RGlzcGxheUlELCBDR0Rpc3BsYXlDaGFuZ2VTdW1tYXJ5RmxhZ3MsIHZv
aWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQppbmRl
eCBiZjZkNzJhZDk4ZGQxNjExNzgyMGM1MDg3YzM4ZDcyMWM1NzM3ZmFiLi5hMjM4ZjI4Zjk3NWI4
NDA4MzQyNzdlOGIwYzJkZWRjMTljYWJlNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjLm1tCkBAIC03NiwxMiArNzYsMTIgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8Q0dEaXJlY3REaXNwbGF5SUQ+IHVwZGF0ZURpc3BsYXlJRChDR0RpcmVjdERpc3BsYXlJ
RCBkaXNwbGEKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi1DYXB0dXJlU291cmNlT3JF
cnJvciBTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZShTdHJpbmcm
JiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAg
Ym9vbCBvazsKICAgICBhdXRvIGRpc3BsYXlJRCA9IGRldmljZUlELnRvVUludFN0cmljdCgmb2sp
OwogICAgIGlmICghb2spIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJEaXNwbGF5IElE
IGRvZXMgbm90IGNvbnZlcnQgdG8gMzItYml0IGludGVnZXIiKTsKKyAgICAgICAgUkVMRUFTRV9M
T0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlOiBEaXNwbGF5
IElEIGRvZXMgbm90IGNvbnZlcnQgdG8gMzItYml0IGludGVnZXIiKTsKICAgICAgICAgcmV0dXJu
IHsgfTsKICAgICB9CiAKQEAgLTg5LDE1ICs4OSwxNSBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBT
Y3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNl
SQogICAgIGlmICghYWN0dWFsRGlzcGxheUlEKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
KGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjKGFjdHVhbERpc3BsYXlJRC52YWx1ZSgp
LCAiU2NyZWVuIl9zKSk7IC8vIEZJWE1FOiBmaWd1cmUgb3V0IHdoYXQgdGl0bGUgdG8gdXNlCiAg
ICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWlu
dHMpKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVy
cm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLVNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFj
OjpTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYyh1aW50MzJfdCBkaXNwbGF5SUQpCi0gICAg
OiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKCJTY3JlZW4iKSAvLyBGSVhNRTogZmlndXJlIG91
dCB3aGF0IHRvIGNhbGwgdGhpcworU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OlNjcmVl
bkRpc3BsYXlDYXB0dXJlU291cmNlTWFjKHVpbnQzMl90IGRpc3BsYXlJRCwgU3RyaW5nJiYgdGl0
bGUpCisgICAgOiBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKFdURk1vdmUodGl0bGUpKQogICAg
ICwgbV9kaXNwbGF5SUQoZGlzcGxheUlEKQogewogfQpAQCAtMTIyLDcgKzEyMiw3IEBAIGJvb2wg
U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0oKQogCiAg
ICAgaWYgKG1fZGlzcGxheUlEICE9IGFjdHVhbERpc3BsYXlJRC52YWx1ZSgpKSB7CiAgICAgICAg
IG1fZGlzcGxheUlEID0gYWN0dWFsRGlzcGxheUlELnZhbHVlKCk7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlT
dHJlYW0oJXApLCBkaXNwbGF5IElEIGNoYW5nZWQgdG8gJWQiLCB0aGlzLCBzdGF0aWNfY2FzdDxp
bnQ+KG1fZGlzcGxheUlEKSk7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlz
cGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW06IGRpc3BsYXkgSUQgY2hh
bmdlZCB0byAlZCIsIHN0YXRpY19jYXN0PGludD4obV9kaXNwbGF5SUQpKTsKICAgICB9CiAKICAg
ICBpZiAoIW1fZGlzcGxheVN0cmVhbSkgewpAQCAtMTMwLDcgKzEzMCw3IEBAIGJvb2wgU2NyZWVu
RGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJlYW0oKQogICAgICAgICBh
dXRvIHNjcmVlbldpZHRoID0gQ0dEaXNwbGF5TW9kZUdldFBpeGVsc1dpZGUoZGlzcGxheU1vZGUu
Z2V0KCkpOwogICAgICAgICBhdXRvIHNjcmVlbkhlaWdodCA9IENHRGlzcGxheU1vZGVHZXRQaXhl
bHNIaWdoKGRpc3BsYXlNb2RlLmdldCgpKTsKICAgICAgICAgaWYgKCFzY3JlZW5XaWR0aCB8fCAh
c2NyZWVuSGVpZ2h0KSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRp
c3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3RyZWFtKCVwKSwgdW5hYmxlIHRv
IGdldCBzY3JlZW4gd2lkdGgvaGVpZ2h0IiwgdGhpcyk7CisgICAgICAgICAgICBSRUxFQVNFX0xP
RyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpjcmVhdGVEaXNwbGF5U3Ry
ZWFtOiB1bmFibGUgdG8gZ2V0IHNjcmVlbiB3aWR0aC9oZWlnaHQiKTsKICAgICAgICAgICAgIGNh
cHR1cmVGYWlsZWQoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAt
MTY4LDcgKzE2OCw3IEBAIGJvb2wgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0
ZURpc3BsYXlTdHJlYW0oKQogICAgICAgICBhdXRvIHNpemUgPSBmcmFtZVNpemUoKTsKICAgICAg
ICAgbV9kaXNwbGF5U3RyZWFtID0gYWRvcHRDRihDR0Rpc3BsYXlTdHJlYW1DcmVhdGVXaXRoRGlz
cGF0Y2hRdWV1ZShtX2Rpc3BsYXlJRCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOFBsYW5hciwgc3RyZWFtT3B0aW9ucy5nZXQoKSwgbV9j
YXB0dXJlUXVldWUuZ2V0KCksIG1fZnJhbWVBdmFpbGFibGVCbG9jaykpOwogICAgICAgICBpZiAo
IW1fZGlzcGxheVN0cmVhbSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3Jl
ZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRlRGlzcGxheVN0cmVhbSglcCksIENHRGlz
cGxheVN0cmVhbUNyZWF0ZSBmYWlsZWQiLCB0aGlzKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9H
KE1lZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OmNyZWF0ZURpc3BsYXlTdHJl
YW06IENHRGlzcGxheVN0cmVhbUNyZWF0ZSBmYWlsZWQiKTsKICAgICAgICAgICAgIGNhcHR1cmVG
YWlsZWQoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMjI3LDcg
KzIyNyw3IEBAIHZvaWQgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxh
eVN0cmVhbSgpCiAKICAgICBpZiAobV9kaXNwbGF5SUQgIT0gYWN0dWFsRGlzcGxheUlELnZhbHVl
KCkpIHsKICAgICAgICAgbV9kaXNwbGF5SUQgPSBhY3R1YWxEaXNwbGF5SUQudmFsdWUoKTsKLSAg
ICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6
c3RhcnREaXNwbGF5U3RyZWFtKCVwKSwgZGlzcGxheSBJRCBjaGFuZ2VkIHRvICVkIiwgdGhpcywg
c3RhdGljX2Nhc3Q8aW50PihtX2Rpc3BsYXlJRCkpOworICAgICAgICBSRUxFQVNFX0xPRyhNZWRp
YSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERpc3BsYXlTdHJlYW06IGRp
c3BsYXkgSUQgY2hhbmdlZCB0byAlZCIsIHN0YXRpY19jYXN0PGludD4obV9kaXNwbGF5SUQpKTsK
ICAgICB9CiAKICAgICBpZiAoIW1fZGlzcGxheVN0cmVhbSAmJiAhY3JlYXRlRGlzcGxheVN0cmVh
bSgpKQpAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VN
YWM6OnN0YXJ0RGlzcGxheVN0cmVhbSgpCiAKICAgICBhdXRvIGVyciA9IENHRGlzcGxheVN0cmVh
bVN0YXJ0KG1fZGlzcGxheVN0cmVhbS5nZXQoKSk7CiAgICAgaWYgKGVycikgewotICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIlNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpzdGFydERp
c3BsYXlTdHJlYW0oJXApLCBDR0Rpc3BsYXlTdHJlYW1TdGFydCBmYWlsZWQgd2l0aCBlcnJvciAl
ZCIsIHRoaXMsIHN0YXRpY19jYXN0PGludD4oZXJyKSk7CisgICAgICAgIFJFTEVBU0VfTE9HKE1l
ZGlhLCAiU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6OnN0YXJ0RGlzcGxheVN0cmVhbTog
Q0dEaXNwbGF5U3RyZWFtU3RhcnQgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCBzdGF0aWNfY2FzdDxp
bnQ+KGVycikpOwogICAgICAgICBjYXB0dXJlRmFpbGVkKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0yNzgsMTEgKzI3OCwxMSBAQCB2b2lkIFNjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNl
TWFjOjpmcmFtZUF2YWlsYWJsZShDR0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1cyBzdAogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2Uga0NHRGlzcGxheVN0cmVhbUZyYW1lU3RhdHVzRnJhbWVCbGFu
azoKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJj
ZU1hYzo6ZnJhbWVBdmFpbGFibGUoJXApLCBrQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXNGcmFt
ZUJsYW5rIiwgdGhpcyk7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiU2NyZWVuRGlzcGxh
eUNhcHR1cmVTb3VyY2VNYWM6OmZyYW1lQXZhaWxhYmxlOiBrQ0dEaXNwbGF5U3RyZWFtRnJhbWVT
dGF0dXNGcmFtZUJsYW5rIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBrQ0dEaXNwbGF5
U3RyZWFtRnJhbWVTdGF0dXNTdG9wcGVkOgotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIlNj
cmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjOjpmcmFtZUF2YWlsYWJsZSglcCksIGtDR0Rpc3Bs
YXlTdHJlYW1GcmFtZVN0YXR1c1N0b3BwZWQiLCB0aGlzKTsKKyAgICAgICAgUkVMRUFTRV9MT0co
TWVkaWEsICJTY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6ZnJhbWVBdmFpbGFibGU6IGtD
R0Rpc3BsYXlTdHJlYW1GcmFtZVN0YXR1c1N0b3BwZWQiKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCmluZGV4IGQw
NTMzZmY4YTM4YzQxMWE2YmNhOGMzZTU4Yzc1YjU3YzY4NjJjMjAuLjFjNGQzNzYwZjg4Y2ZmNWZh
NzRjZDI3MDY2MDNlNjhhMWQzZDZkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2Fw
dHVyZVNvdXJjZU1hYy5oCkBAIC00MCwxMyArNDAsMTMgQEAgY2xhc3MgUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVjsKIAogY2xhc3MgV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMgOiBwdWJsaWMg
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
Kik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShTdHJpbmcmJiwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q2FwdHVy
ZURldmljZT4gd2luZG93Q2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5n
Jik7CiAgICAgc3RhdGljIHZvaWQgd2luZG93Q2FwdHVyZURldmljZXMoVmVjdG9yPENhcHR1cmVE
ZXZpY2U+Jik7CiAKIHByaXZhdGU6Ci0gICAgV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWMo
dWludDMyX3Qgd2luZG93SUQsIFN0cmluZyYmKTsKKyAgICBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNv
dXJjZU1hYyh1aW50MzJfdCwgU3RyaW5nJiYpOwogICAgIHZpcnR1YWwgfldpbmRvd0Rpc3BsYXlD
YXB0dXJlU291cmNlTWFjKCkgPSBkZWZhdWx0OwogCiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IGdlbmVyYXRlRnJhbWUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XaW5kb3dEaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYy5tbQppbmRleCBlMWFhMGJmZDdlYWQ5ODA1ZGJlZWJkYjg5YzFiZDJh
OGM0NjI5ZDExLi4xZDZhMTdjZDQxMzhmZDFkNTY3MmJmOTMyOTM3MDRiZjEwMTQxOTIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2luZG93RGlz
cGxheUNhcHR1cmVTb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dpbmRvd0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCkBAIC0xMDIsNyAr
MTAyLDcgQEAgc3RhdGljIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IHdpbmRvd0Rlc2NyaXB0
aW9uKENHV2luZG93SUQgaWQpCiAgICAgcmV0dXJuIGNoZWNrZWRfY2ZfY2FzdDxDRkRpY3Rpb25h
cnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgod2luZG93cy5nZXQoKSwgMCkpOwogfQogCi1D
YXB0dXJlU291cmNlT3JFcnJvciBXaW5kb3dEaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYzo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgd2luZG93SUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgV2luZG93RGlzcGxheUNhcHR1cmVTb3VyY2VNYWM6
OmNyZWF0ZShTdHJpbmcmJiB3aW5kb3dJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMpCiB7CiAgICAgYm9vbCBvazsKICAgICBhdXRvIGFjdHVhbElEID0gd2luZG93SUQudG9V
SW50U3RyaWN0KCZvayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGNjMzU0NjEzMzVhZTA3YTc3ZmQx
YzExNmRiZDMwMTA2NWIzYzk1N2QuLjNmNDRmZDYzNGM4MzA0NjNjNGJmMjQxNDA4ZjI5ZmM1NGI4
Y2FkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MywxNCArNDMsMTYgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpICYmICEoVVNF
KEdTVFJFQU1FUikgJiYgVVNFKExJQldFQlJUQykpCi1DYXB0dXJlU291cmNlT3JFcnJvciBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0
dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CisjaWZuZGVmIE5ERUJVRwogICAgIGF1dG8gZGV2
aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lz
dGVudElEKGRldmljZUlEKTsKICAgICBBU1NFUlQoZGV2aWNlKTsKICAgICBpZiAoIWRldmljZSkK
ICAgICAgICAgcmV0dXJuIHsgfTsKKyNlbmRpZgogCi0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJl
ZigqbmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKFdURk1vdmUoZGV2aWNlKSwgZGV2aWNlSUQs
IG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNh
bHQpKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygq
Y29uc3RyYWludHMpKQogICAgICAgICByZXR1cm4geyB9OwogCkBAIC01OCwxMSArNjAsMTEgQEAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIGRldmljZUlELCBjb24KIH0KICNlbmRpZgogCi1Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29u
c3QgU3RyaW5nJiBuYW1lKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2VJRCwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIG5hbWUpCitNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShkZXZp
Y2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50
KCksIHRoaXMsICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6dGljaykKIHsKLSAgICBhdXRvIGRl
dmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNp
c3RlbnRJRChkZXZpY2VJRCk7CisgICAgYXV0byBkZXZpY2UgPSBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6bW9ja0RldmljZVdpdGhQZXJzaXN0ZW50SUQocGVyc2lzdGVudElEKCkpOwog
ICAgIEFTU0VSVChkZXZpY2UpOwogICAgIG1fZGV2aWNlID0gKmRldmljZTsKIH0KQEAgLTc4LDcg
KzgwLDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZTo6c2V0dGluZ3MoKQogewogICAgIGlmICghbV9jdXJyZW50U2V0dGluZ3MpIHsK
ICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwotICAgICAgICBz
ZXR0aW5ncy5zZXREZXZpY2VJZChpZCgpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0RGV2aWNlSWQo
aGFzaGVkSWQoKSk7CiAgICAgICAgIHNldHRpbmdzLnNldFZvbHVtZSh2b2x1bWUoKSk7CiAgICAg
ICAgIHNldHRpbmdzLnNldEVjaG9DYW5jZWxsYXRpb24oZWNob0NhbmNlbGxhdGlvbigpKTsKICAg
ICAgICAgc2V0dGluZ3Muc2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlKCkpOwpAQCAtMTAwLDcgKzEw
Miw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogICAgIGlmICghbV9jYXBhYmlsaXRpZXMpIHsK
ICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMoc2V0
dGluZ3MoKS5zdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKIAotICAgICAgICBjYXBhYmlsaXRpZXMu
c2V0RGV2aWNlSWQoaWQoKSk7CisgICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChoYXNo
ZWRJZCgpKTsKICAgICAgICAgY2FwYWJpbGl0aWVzLnNldFZvbHVtZShDYXBhYmlsaXR5VmFsdWVP
clJhbmdlKDAuMCwgMS4wKSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRFY2hvQ2FuY2VsbGF0
aW9uKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OkVjaG9DYW5jZWxsYXRpb246OlJl
YWRXcml0ZSk7CiAgICAgICAgIGNhcGFiaWxpdGllcy5zZXRTYW1wbGVSYXRlKENhcGFiaWxpdHlW
YWx1ZU9yUmFuZ2UoNDQxMDAsIDQ4MDAwKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggOTFlOGMwMzZiZGQ3
YTMzZDYyNDkyMDdlMTNmZDM3ZjJiYTAyZWFiNi4uMWQxZDViMTg2NzI3YTllYjg0MmIwOWJkZWJh
MjY5NmFjY2U3ODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsMTIgKzQyLDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UoKTsKIAogcHJvdGVjdGVkOgotICAgIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0KTsKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAg
ICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAppbmRleCBmNjk3Mjg1NjhiMzMxZmJjZDk0MDc2MjhlZGI2MDUzNWIxYTAyNWUzLi5iZWFh
M2U1NDE3MDBlYjUzZWEwMDQwYmI5MzA3M2E3NGI1MmZjMWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcApAQCAtODMsMTUgKzgzLDE0IEBAIHN0YXRpYyBpbmxpbmUgVmVjdG9yPE1vY2tN
ZWRpYURldmljZT4gZGVmYXVsdERldmljZXMoKQogICAgIH07CiB9CiAKLQogY2xhc3MgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFZpZGVvQ2FwdHVyZUZhY3Rvcnkgewog
cHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJj
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwKICAgICB7CiAgICAg
ICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNh
bWVyYSk7CiAgICAgICAgIEFTU0VSVChNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2Fw
dHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2Ft
ZXJhLCBkZXZpY2UucGVyc2lzdGVudElkKCkpKTsKIAotICAgICAgICByZXR1cm4gTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZS5sYWJl
bCgpLCBjb25zdHJhaW50cyk7CisgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZp
Y2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgY29uc3RyYWludHMpOwogICAgIH0KIAog
I2lmIFBMQVRGT1JNKElPUykKQEAgLTExMyw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN3
aXRjaCAoZGV2aWNlLnR5cGUoKSkgewogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNjcmVlbjoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpX
aW5kb3c6Ci0gICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShkZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZS5sYWJlbCgpLCBjb25zdHJhaW50cyk7Cisg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShTdHJpbmcg
eyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgU3Ry
aW5nIHsgfSwgY29uc3RyYWludHMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXBwbGljYXRpb246CiAgICAgICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6QnJvd3NlcjoKQEAgLTEzMCwxMiArMTI5LDEyIEBAIHB1
YmxpYzoKIAogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbAorICAgIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykgZmluYWwKICAgICB7CiAgICAgICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpOwogICAgICAgICBBU1NFUlQoTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUsIGRldmljZS5wZXJzaXN0ZW50SWQoKSkp
OwogCi0gICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmlj
ZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlLmxhYmVsKCksIGNvbnN0cmFpbnRzKTsKKyAgICAgICAg
cmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoU3RyaW5nIHsgZGV2aWNlLnBl
cnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgpIH0sIFdURk1vdmUoaGFzaFNh
bHQpLCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCA4Njgx
ZjY2NGExZmU1ZDVlMDU2ZjhiYmVhMzFkNDA1NWQ2NzJlYzMzLi42MjI0N2VkNTZkZDBmZTcyYmUw
MDM5MTQ0YjhmMDQ2ZjUwZDk2ZjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNDksMTQgKzQ5LDE2
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZP
Uk0oSU9TKSAmJiAhKFVTRShHU1RSRUFNRVIpICYmIFVTRShMSUJXRUJSVEMpKQotQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcm
IGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogeworI2lmbmRlZiBOREVC
VUcKICAgICBhdXRvIGRldmljZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2Nr
RGV2aWNlV2l0aFBlcnNpc3RlbnRJRChkZXZpY2VJRCk7CiAgICAgQVNTRVJUKGRldmljZSk7CiAg
ICAgaWYgKCFkZXZpY2UpCiAgICAgICAgIHJldHVybiB7IH07CisjZW5kaWYKIAotICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRl
dmljZSksIGRldmljZUlELCBuYW1lKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUp
LCBXVEZNb3ZlKGhhc2hTYWx0KSkpOwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFw
cGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAt
NjQsMTEgKzY2LDExIEBAIENhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uCiB9CiAjZW5kaWYKIAotTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICA6IFJlYWx0aW1lVmlkZW9Tb3Vy
Y2UoZGV2aWNlSUQsIG5hbWUpCitNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6TW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0KQorICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKG5hbWUpLCBXVEZNb3Zl
KGRldmljZUlEKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2VtaXRGcmFtZVRpbWVyKFJ1
bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJk1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpnZW5lcmF0
ZUZyYW1lKQogewotICAgIGF1dG8gZGV2aWNlID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6Om1vY2tEZXZpY2VXaXRoUGVyc2lzdGVudElEKGRldmljZUlEKTsKKyAgICBhdXRvIGRldmlj
ZSA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjptb2NrRGV2aWNlV2l0aFBlcnNpc3Rl
bnRJRChwZXJzaXN0ZW50SUQoKSk7CiAgICAgQVNTRVJUKGRldmljZSk7CiAgICAgbV9kZXZpY2Ug
PSAqZGV2aWNlOwogCkBAIC0xMjAsOSArMTIyLDkgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcyYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpCiAg
ICAgaWYgKCFtX2NhcGFiaWxpdGllcykgewogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0aW5ncygpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCkp
OwogCi0gICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJZChpZCgpKTsKICAgICAgICAgaWYg
KG1vY2tDYW1lcmEoKSkgewogICAgICAgICAgICAgY2FwYWJpbGl0aWVzLmFkZEZhY2luZ01vZGUo
V1RGOjpnZXQ8TW9ja0NhbWVyYVByb3BlcnRpZXM+KG1fZGV2aWNlLnByb3BlcnRpZXMpLmZhY2lu
Z01vZGUpOworICAgICAgICAgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGhhc2hlZElkKCkp
OwogICAgICAgICAgICAgdXBkYXRlQ2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcyk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBjYXBhYmlsaXRpZXMuc2V0V2lkdGgoQ2FwYWJpbGl0eVZh
bHVlT3JSYW5nZSg3MiwgMjg4MCkpOwpAQCAtMTQyLDkgKzE0NCwxMCBAQCBjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzZXR0aW5ncygp
CiAgICAgICAgIHJldHVybiBtX2N1cnJlbnRTZXR0aW5ncy52YWx1ZSgpOwogCiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwotICAgIGlmIChtb2NrQ2FtZXJhKCkpCisg
ICAgaWYgKG1vY2tDYW1lcmEoKSkgewogICAgICAgICBzZXR0aW5ncy5zZXRGYWNpbmdNb2RlKGZh
Y2luZ01vZGUoKSk7Ci0gICAgZWxzZSB7CisgICAgICAgIHNldHRpbmdzLnNldERldmljZUlkKGhh
c2hlZElkKCkpOworICAgIH0gZWxzZSB7CiAgICAgICAgIHNldHRpbmdzLnNldERpc3BsYXlTdXJm
YWNlKG1vY2tTY3JlZW4oKSA/IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1
cmZhY2VUeXBlOjpNb25pdG9yIDogUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5
U3VyZmFjZVR5cGU6OldpbmRvdyk7CiAgICAgICAgIHNldHRpbmdzLnNldExvZ2ljYWxTdXJmYWNl
KGZhbHNlKTsKICAgICB9CkBAIC0xNTQsNyArMTU3LDYgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0dGluZ3MoKQogICAgIHNl
dHRpbmdzLnNldEhlaWdodChzaXplLmhlaWdodCgpKTsKICAgICBpZiAoYXNwZWN0UmF0aW8oKSkK
ICAgICAgICAgc2V0dGluZ3Muc2V0QXNwZWN0UmF0aW8oYXNwZWN0UmF0aW8oKSk7Ci0gICAgc2V0
dGluZ3Muc2V0RGV2aWNlSWQoaWQoKSk7CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHMgc3VwcG9ydGVkQ29uc3RyYWludHM7CiAgICAgc3VwcG9ydGVkQ29uc3Ry
YWludHMuc2V0U3VwcG9ydHNEZXZpY2VJZCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCAxNDZkMWFh
MTM1MDQwMTdiNTA2ZTI0MjQxMTI0ODA1MTI3MzM4ZTVlLi5iZDNjM2U0NTE5YWY3ZTg1ZmNjYjI2
OTgzOWU1ZGI2ZTg5MzBjZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00OCwxMCArNDgsMTAgQEAgY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJs
aWMgUmVhbHRpbWVWaWRlb1NvdXJjZSB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKIHByb3RlY3RlZDoKLSAgICBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJp
bmcmIG5hbWUpOworICAgIE1vY2tSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyYmIGRldmljZUlE
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlU2FtcGxlQnVmZmVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA4NjM0OGZkYTQ1Nzg1NTBlYWVhOTJkNWJiMTA3
MDNiZGE5YWI5NmM2Li5lNTA3YmY4NzU5YjExNzg5MDg2ZTUwZDdmMDZjNTdkZDgzODBhNGY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTI3NjEsNyArMjc2MSw2IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRzPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6Ok1lCiB7CiAgICAgZW5jb2Rl
ciA8PCBjb25zdHJhaW50Lm1hbmRhdG9yeUNvbnN0cmFpbnRzCiAgICAgICAgIDw8IGNvbnN0cmFp
bnQuYWR2YW5jZWRDb25zdHJhaW50cwotICAgICAgICA8PCBjb25zdHJhaW50LmRldmljZUlESGFz
aFNhbHQKICAgICAgICAgPDwgY29uc3RyYWludC5pc1ZhbGlkOwogfQogCkBAIC0yNzczLDcgKzI3
NzIsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50cz46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpNZWRpYUNvbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMgPSBXVEZNb3ZlKCptYW5kYXRvcnlD
b25zdHJhaW50cyk7CiAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLmFkdmFu
Y2VkQ29uc3RyYWludHMpCi0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLmRl
dmljZUlESGFzaFNhbHQpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLmlz
VmFsaWQpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDcxYTY5
MWYxZTFkYmI4YjI0NmY3ZTk3ZDNkODYzY2ZkNDY3YjZmNWQuLjM4YWFiMjZkYTBmMWViODNlZWQ5
NzRkNjE3MmVhMGZlNDQzZWZjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0x
MjUsMTUgKzEyNSwxNSBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgYm9vbCYgc3Vj
Y2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVp
bnQ2NF90IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENv
bnN0cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdz
KQogewogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgc3dpdGNo
ICh0eXBlKSB7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpB
dWRpbzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmF1ZGlvRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZp
Y2UsICZjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbzoKLSAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLnZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZp
Y2UsICZjb25zdHJhaW50cyk7CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1
cmVTb3VyY2UoZGV2aWNlLCBXVEZNb3ZlKGhhc2hTYWx0KSwgJmNvbnN0cmFpbnRzKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpO
b25lOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aAppbmRleCBmZjBhZThiMWJiOWRhN2E2ZDViNzlkZDdmYzY4OTAxMjhmODE2OTI2Li5lY2FlYWUy
NDgyM2E0MzkxZTY1OWQ1YWViM2ViZDQ3MjRjZWVhZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgYm9vbCYgc3VjY2Vl
ZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJik7CisgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZp
Y2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2UmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcm
JiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRlZCwgU3Ry
aW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lk
IHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIGNhcGFiaWxpdGllcyh1aW50
NjRfdCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjQ4YzQwZmYwMDcxY2Ew
ODc3N2NhZjczZjA4NmQ5YzY3MmUwMmRiMi4uYmQyMTliYzk2MDhkMDc0MDY5MTkyMjYwNDNjMDJh
NzJhZWEzNWI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMg
LT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBl
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykgLT4gKGJvb2wg
c3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQorICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgU3RyaW5n
IGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykg
LT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzKQogICAgIFN0YXJ0UHJvZHVjaW5nRGF0
YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBD
YXBhYmlsaXRpZXModWludDY0X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcAppbmRleCAxODVjMDc0YzlmZDZlZGFkZDk5MWU3NmFiZWFmZTU5ODg0OTY0NTdjLi42Mjc3
NGM5YWI2ZmNjMjU0MDFhZjU1OTg1ZWMwMWI1NDQ5YzBmYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0zMzYsOSArMzM2LDYgQEAgdm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSgKICAgICAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAKLSAgICAgICAgbG9jYWxVc2VyUmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLmRl
dmljZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci0gICAgICAgIGxvY2Fs
VXNlclJlcXVlc3QudmlkZW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0ID0gZGV2aWNlSWRl
bnRpZmllckhhc2hTYWx0OwotCiAgICAgICAgIHN5bmNXaXRoV2ViQ29yZVByZWZzKCk7CiAgICAg
ICAgIAogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52YWxp
ZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhXVEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52
YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGxvY2FsVXNlclJlcXVlc3QpLCBXVEZNb3ZlKGRldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggN2M3ZjY2Nzc0OTRi
YWYzYjU2M2M4ODNjMWFlMjExYmFkZDE0YjFkYy4uY2I2ZDZjN2VlOWFjNWMxZDVmMGJjMzhkZTIx
NWEzOWQ2ZTJmZDU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC01MSw4ICs1MSw4IEBAIHN0
YXRpYyB1aW50NjRfdCBuZXh0U2Vzc2lvbklEKCkKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OlNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKLSAg
ICBTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IG5hbWUsIHVpbnQ2NF90IGlkLCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlcikKLSAg
ICAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKHNvdXJjZUlELCB0eXBlLCBuYW1lKQorICAgIFNv
dXJjZShTdHJpbmcmJiBzb3VyY2VJRCwgVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgdWludDY0X3QgaWQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2Vy
KQorICAgICAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UodHlwZSwgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShzb3VyY2VJRCksIFdURk1vdmUoaGFzaFNhbHQpKQogICAgICAgICAsIG1faWQoaWQpCiAg
ICAgICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VV
bmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KG51bGxwdHIpKQpAQCAtMTc3LDcgKzE3
Nyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CiB9CiAKLVdlYkNv
cmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVD
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykKK1dlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBl
LCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpCiB7CiAgICAgaWYgKCFjb25zdHJhaW50cykKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTE4NiwxMCArMTg2LDEwIEBAIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0CiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOwogICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7
CiAgICAgYm9vbCBzdWNjZWVkZWQ7Ci0gICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlLCBzb3VyY2VUeXBlLCAqY29uc3Ry
YWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQs
IGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKKyAgICBpZiAoIW1fcHJvY2Vzcy5zZW5kU3lu
YyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2UsIHNvdXJjZVR5cGUs
IGhhc2hTYWx0LCAqY29uc3RyYWludHMpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
OjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSwgc2V0dGluZ3MpLCAwKSkKICAgICAgICAg
cmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKIAotICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBzZXR0aW5ncy5s
YWJlbCgpLCBpZCwgKnRoaXMpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgU291
cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgc291cmNlVHlwZSwgU3RyaW5nIHsgc2V0dGluZ3MubGFi
ZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgaWQsICp0aGlzKSk7CiAgICAgc291cmNlLT5zZXRT
ZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgbV9zb3VyY2VzLnNldChpZCwgc291cmNl
LmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yKFdU
Rk1vdmUoc291cmNlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDZhN2QwZDIyYTBmMDk4NTMyMzA3
YjJlNGUwOTdmN2Y4ZDUwYzc0YjguLjM3NjMyZDU5ZTZlZjhjYWFjODA2OTEzZTUwMzVkYmNhNGM4
ZDQ1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC01NSw5ICs1NSw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBmaW5h
bDsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgZmFjdG9yaWVzCi0gICAg
V2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3Vy
Y2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgY29u
c3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsgcmV0dXJu
IGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpWaWRlbywgY29uc3RyYWludHMpOyB9Ci0gICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyopOworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2UsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBXVEZNb3ZlKGhhc2hTYWx0KSwg
Y29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZSwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUoaGFzaFNhbHQpLCBj
b25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVD
YXB0dXJlU291cmNlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlLCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyopOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>