<?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>210186</bug_id>
          
          <creation_ts>2020-04-08 06:50:19 -0700</creation_ts>
          <short_desc>Safari doesn&apos;t apply frameRate limit when request stream from Camera</short_desc>
          <delta_ts>2020-04-20 07:37:52 -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>Safari 13</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.15</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="olsviate">olsviate</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1639030</commentid>
    <comment_count>0</comment_count>
    <who name="olsviate">olsviate</who>
    <bug_when>2020-04-08 06:50:19 -0700</bug_when>
    <thetext>Safari doesn&apos;t apply frameRate limit that is provided in constaraints for getUserMedia().
Track settings shows that provided frame rate is set, but stats shows that limit is not applied.

 

Also it is not possible to change frame rate via MediaStreamTrack::applyConstraints().

 

jsfiddle: https://jsfiddle.net/sj1m6eqg/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639034</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-08 07:05:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/61452794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642207</commentid>
    <comment_count>2</comment_count>
      <attachid>396636</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-16 05:20:45 -0700</bug_when>
    <thetext>Created attachment 396636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642233</commentid>
    <comment_count>3</comment_count>
      <attachid>396642</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-16 06:39:52 -0700</bug_when>
    <thetext>Created attachment 396642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642244</commentid>
    <comment_count>4</comment_count>
      <attachid>396642</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-16 07:12:44 -0700</bug_when>
    <thetext>Comment on attachment 396642
Patch

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

r=me once the bots are happy

&gt; Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp:153
&gt; +    auto size = this-&gt;size();

Nit: this local variable is only used once now.

&gt; LayoutTests/fast/mediastream/mediastreamtrack-video-frameRate-decreasing.html:20
&gt; +    if (!stream1.getVideoTracks()[0].ended) { 

Is this check necessary? If so, doesn&apos;t it mean we&apos;re testing different things on different runs?

&gt; LayoutTests/fast/mediastream/mediastreamtrack-video-frameRate-decreasing.html:26
&gt; +    let frameRate = await computeFrameRate(stream2, video);

Nit: this can be a const.

&gt; LayoutTests/fast/mediastream/mediastreamtrack-video-frameRate-increasing.html:26
&gt; +    if (!stream1.getVideoTracks()[0].ended) { 
&gt; +        const frameRate = await computeFrameRate(stream1, video);
&gt; +        assert_greater_than(frameRate, 1, &quot;stream1 frame rate above 1&quot;);
&gt; +        assert_less_than(frameRate, 20, &quot;stream1 frame rate below 20&quot;);
&gt; +    }
&gt; +
&gt; +    let frameRate = await computeFrameRate(stream2, video);

Ditto the comments above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642257</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-16 08:02:42 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Eric Carlson from comment #4)
&gt; Comment on attachment 396642 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396642&amp;action=review
&gt; 
&gt; r=me once the bots are happy
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp:153
&gt; &gt; +    auto size = this-&gt;size();
&gt; 
&gt; Nit: this local variable is only used once now.

Will fix.

&gt; &gt; LayoutTests/fast/mediastream/mediastreamtrack-video-frameRate-decreasing.html:20
&gt; &gt; +    if (!stream1.getVideoTracks()[0].ended) { 
&gt; 
&gt; Is this check necessary? If so, doesn&apos;t it mean we&apos;re testing different
&gt; things on different runs?

This is to cover the case of iOS which might mute the previous track.
I should replace ended by muted though.

&gt; &gt; LayoutTests/fast/mediastream/mediastreamtrack-video-frameRate-decreasing.html:26
&gt; &gt; +    let frameRate = await computeFrameRate(stream2, video);
&gt; 
&gt; Nit: this can be a const.
&gt; 
&gt; &gt; LayoutTests/fast/mediastream/mediastreamtrack-video-frameRate-increasing.html:26
&gt; &gt; +    if (!stream1.getVideoTracks()[0].ended) { 
&gt; &gt; +        const frameRate = await computeFrameRate(stream1, video);
&gt; &gt; +        assert_greater_than(frameRate, 1, &quot;stream1 frame rate above 1&quot;);
&gt; &gt; +        assert_less_than(frameRate, 20, &quot;stream1 frame rate below 20&quot;);
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    let frameRate = await computeFrameRate(stream2, video);
&gt; 
&gt; Ditto the comments above.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642645</commentid>
    <comment_count>6</comment_count>
      <attachid>396758</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-17 05:45:48 -0700</bug_when>
    <thetext>Created attachment 396758
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642662</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-17 07:22:27 -0700</bug_when>
    <thetext>Committed r260245: &lt;https://trac.webkit.org/changeset/260245&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396758.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642769</commentid>
    <comment_count>8</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-04-17 12:26:06 -0700</bug_when>
    <thetext>It looks like all the tests added with this change are failing more often than they are passing on macOS release bots: 
https://results.webkit.org/?suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;test=fast%2Fmediastream%2Fmediastreamtrack-video-frameRate-clone-decreasing.html&amp;test=fast%2Fmediastream%2Fmediastreamtrack-video-frameRate-clone-increasing.html&amp;test=fast%2Fmediastream%2Fmediastreamtrack-video-frameRate-decreasing.html&amp;test=fast%2Fmediastream%2Fmediastreamtrack-video-frameRate-increasing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642773</commentid>
    <comment_count>9</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-04-17 12:32:55 -0700</bug_when>
    <thetext>Reverted r260245 for reason:

The tests added with this change are frequently failing on macOS bots.

Committed r260274: &lt;https://trac.webkit.org/changeset/260274&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643416</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-20 03:39:03 -0700</bug_when>
    <thetext>It seems that the release bots have issues in producing more than 10fps frame rate for capture video tracks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643431</commentid>
    <comment_count>11</comment_count>
      <attachid>396970</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-20 06:48:28 -0700</bug_when>
    <thetext>Created attachment 396970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643432</commentid>
    <comment_count>12</comment_count>
      <attachid>396970</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-20 06:49:08 -0700</bug_when>
    <thetext>Comment on attachment 396970
Patch

Relanding the patch with checking whether the source is producing 30fps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643443</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-20 07:37:51 -0700</bug_when>
    <thetext>Committed r260364: &lt;https://trac.webkit.org/changeset/260364&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396970.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396636</attachid>
            <date>2020-04-16 05:20:45 -0700</date>
            <delta_ts>2020-04-16 06:39:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210186-20200416142042.patch</filename>
            <type>text/plain</type>
            <size>25013</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA4NTM5YzYyNWYyYzU0
YjVjMDJlYmYyODNmZjQwODA5ODFjMWQ0MC4uZjhlYTJkYzA3M2Q5MjJhZTk5Y2ZlYzdlNjBjMmUw
OGI0ZjcyMGY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA0LTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgZG9lc24ndCBh
cHBseSBmcmFtZVJhdGUgbGltaXQgd2hlbiByZXF1ZXN0IHN0cmVhbSBmcm9tIENhbWVyYQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTg2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82MTQ1Mjc5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCB0byBSZWFsdGltZVZpZGVvU291cmNl
IHRvIGRlY2ltYXRlIHRoZSB2aWRlbyBzYW1wbGVzIGJhc2VkIG9uIHRoZSBvYnNlcnZlZCBmcmFt
ZSByYXRlIG9mIGl0cyBjYXB0dXJlIHNvdXJjZS4KKyAgICAgICAgVGhpcyBhbGxvd3Mgc3VwcG9y
dGluZyB0d28gdHJhY2tzIHVzaW5nIHRoZSBzYW1lIGNhcHR1cmUgZGV2aWNlLCBvbmUgdHJhY2sg
YmVpbmcgbG93IGZyYW1lIHJhdGUgYW5kIHRoZSBvdGhlciBvbmUgaGlnaCBmcmFtZSByYXRlLgor
CisgICAgICAgIENsZWFuLXVwIHJlZmFjdG9yaW5nIHRvIG1ha2UgUmVhbHRpbWVWaWRlb1NvdXJj
ZSBkaXJlY3RseSBpbmhlcml0IGZyb20gUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAg
ICAgIE1pZ3JhdGUgc2l6ZSBhbmQgZm9ybWF0IG9mIGZyYW1lIGFkYXB0YXRpb24gZnJvbSBSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZSB0byBSZWFsdGltZVZpZGVvU291cmNlLgorICAgICAgICBG
aXggbW9jayBjYXB0dXJlIHNvdXJjZSB0byB1cGRhdGUgaXRzIGZyYW1lIHJhdGUgd2hlbiBhc2tl
ZCBieSBhcHBseUNvbnN0cmFpbnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L21lZGlhc3RyZWFt
L21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWRlY3JlYXNpbmcuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZy
YW1lUmF0ZS1jbG9uZS1pbmNyZWFzaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWFz
dHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtZGVjcmVhc2luZy5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJh
bWVSYXRlLWluY3JlYXNpbmcuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2xpZW50VXBkYXRl
ZFNpemVBbmRGcmFtZVJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZTo6b2JzZXJ2ZWRGcmFtZVJhdGUgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjptX3NvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNl
OjphZGFwdFZpZGVvU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6c2V0RnJhbWVSYXRlV2l0aFByZXNldCk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvYnNlcnZlTWVkaWFTdHJl
YW1UcmFjayk6CisKIDIwMjAtMDQtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFVzZSBhIFdlYWtIYXNoU2V0IHRvIHN0b3JlIE1lZGlhU3RyZWFtUHJpdmF0
ZSBvYnNlcnZlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCAzZGI3
ODc4ZDI2MThlYWMwOTI1ZmU0Y2U3MmZkNTdiMDdiNDQ2NDg5Li40YmJkMjdkMmFiYWRhMjJhMDAy
ZTBiZTdiMWI5MTdmMGNiNDI2ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uu
Y3BwCkBAIC0zNCwxMCArMzQsNiBAQAogI2luY2x1ZGUgIlJlbW90ZVZpZGVvU2FtcGxlLmgiCiAj
aW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KIAotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1
ZGUgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNv
dXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpCkBAIC0z
NzYsNyArMzcyLDcgQEAgdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0U2l6ZUFu
ZEZyYW1lUmF0ZShPcHRpb25hbDxpbnQ+IHdpZHRoLCBPcHRpb24KICAgICBzZXRGcmFtZVJhdGUo
bWF0Y2gtPnJlcXVlc3RlZEZyYW1lUmF0ZSk7CiB9CiAKLVJlZlB0cjxNZWRpYVNhbXBsZT4gUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmFkYXB0VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKK3ZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BhdGNoTWVkaWFTYW1w
bGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAgIE1lZGlhVGltZSBzYW1w
bGVUaW1lID0gc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKTsKIApAQCAtMzkwLDMzICszODYsNyBA
QCBSZWZQdHI8TWVkaWFTYW1wbGU+IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjphZGFwdFZp
ZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBzYQogICAgIGlmIChpbnRlcnZhbCA+IDEpCiAgICAgICAg
IG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSAobV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5zaXplKCkg
LyBpbnRlcnZhbCk7CiAKLSAgICBhdXRvIG1lZGlhU2FtcGxlID0gbWFrZVJlZlB0cigmc2FtcGxl
KTsKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsK
LSAgICBpZiAoIXNpemUuaXNFbXB0eSgpICYmIHNpemUgIT0gZXhwYW5kZWRJbnRTaXplKHNhbXBs
ZS5wcmVzZW50YXRpb25TaXplKCkpKSB7Ci0KLSAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gc2FtcGxl
LnZpZGVvUGl4ZWxGb3JtYXQoKSkKLSAgICAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24g
PSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUoc2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQo
KSk7Ci0KLSAgICAgICAgQVNTRVJUKG1faW1hZ2VUcmFuc2ZlclNlc3Npb24pOwotICAgICAgICBp
ZiAobV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgewotICAgICAgICAgICAgbWVkaWFTYW1wbGUgPSBt
X2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jb252ZXJ0TWVkaWFTYW1wbGUoc2FtcGxlLCBzaXplKTsK
LSAgICAgICAgICAgIGlmICghbWVkaWFTYW1wbGUpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIG1lZGlhU2FtcGxl
LnJlbGVhc2VOb25OdWxsKCk7Ci19Ci0KLXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OmRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYgc2FtcGxlKQotewot
ICAgIGlmIChhdXRvIG1lZGlhU2FtcGxlID0gYWRhcHRWaWRlb1NhbXBsZShzYW1wbGUpKQotICAg
ICAgICB2aWRlb1NhbXBsZUF2YWlsYWJsZSgqbWVkaWFTYW1wbGUpOworICAgIHZpZGVvU2FtcGxl
QXZhaWxhYmxlKHNhbXBsZSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OmNsaWVudFVwZGF0ZWRTaXplQW5kRnJhbWVSYXRlKE9wdGlvbmFsPGludD4gd2lkdGgsIE9wdGlv
bmFsPGludD4gaGVpZ2h0LCBPcHRpb25hbDxkb3VibGU+IGZyYW1lUmF0ZSkKQEAgLTQyNyw5ICsz
OTcsMTAgQEAgdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2xpZW50VXBkYXRlZFNp
emVBbmRGcmFtZVJhdGUoT3B0aW9uYWw8aW50PiB3aWQKICAgICAgICAgd2lkdGggPSB7IH07CiAg
ICAgaWYgKGhlaWdodCAmJiAqaGVpZ2h0IDwgc3RhdGljX2Nhc3Q8aW50PihzZXR0aW5ncy5oZWln
aHQoKSkpCiAgICAgICAgIGhlaWdodCA9IHsgfTsKKyAgICBpZiAoZnJhbWVSYXRlICYmICpmcmFt
ZVJhdGUgPCBzdGF0aWNfY2FzdDxkb3VibGU+KHNldHRpbmdzLmZyYW1lUmF0ZSgpKSkKKyAgICAg
ICAgZnJhbWVSYXRlID0geyB9OwogCi0gICAgLy8gRklYTUU6IGhhbmRsZSBmcmFtZVJhdGUgcG90
ZW50aWFsIGluY3JlYXNlLgotICAgIGlmICghd2lkdGggJiYgIWhlaWdodCkKKyAgICBpZiAoIXdp
ZHRoICYmICFoZWlnaHQgJiYgIWZyYW1lUmF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0
byBtYXRjaCA9IGJlc3RTdXBwb3J0ZWRTaXplQW5kRnJhbWVSYXRlKHdpZHRoLCBoZWlnaHQsIGZy
YW1lUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRleCBhNjFjMTg2ZjI4
ZDZhMDYyMGNkYmZjZTg4ZmE3NDAzMTgyNzM5NTc2Li40NDUyMWM1YmY5YmZkMGJhMjIwZDZmYTY3
NWE3ZjBkM2VlODA3ZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTQ4
LDYgKzQ4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZVByZXNldHMoKSA9
IDA7CiAgICAgdmlydHVhbCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBzYW1wbGVSb3RhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOyB9CiAK
KyAgICBkb3VibGUgb2JzZXJ2ZWRGcmFtZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVk
RnJhbWVSYXRlOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCkBAIC02
OSwxMSArNzEsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHNldERlZmF1bHRTaXplKGNvbnN0
IEludFNpemUmIHNpemUpIHsgbV9kZWZhdWx0U2l6ZSA9IHNpemU7IH0KIAotICAgIGRvdWJsZSBv
YnNlcnZlZEZyYW1lUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZWRGcmFtZVJhdGU7IH0K
LQogICAgIHZvaWQgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJik7
CiAgICAgY29uc3QgVmVjdG9yPEludFNpemU+JiBzdGFuZGFyZFZpZGVvU2l6ZXMoKTsKLSAgICBS
ZWZQdHI8TWVkaWFTYW1wbGU+IGFkYXB0VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmKTsKIAogcHJp
dmF0ZToKICAgICBzdHJ1Y3QgQ2FwdHVyZVNpemVBbmRGcmFtZVJhdGUgewpAQCAtOTMsOSArOTIs
NiBAQCBwcml2YXRlOgogICAgIERlcXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1w
czsKICAgICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAgfTsKICAgICBJbnRTaXplIG1f
ZGVmYXVsdFNpemU7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247Ci0jZW5kaWYKIH07
CiAKIHN0cnVjdCBTaXplQW5kRnJhbWVSYXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXgg
YmRlNWMzY2RkZmViM2MwZjZiNzY1MWQ3YWI4MzVkM2FiN2ZmZDk1Ni4uYWFhMTQ2ZGM2ZmU1ZDVl
NmEyZGFhYmZkYjJkNTI3ODYxNjZmMjllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTI4
LDE1ICsyOCwxOCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIklt
YWdlVHJhbnNmZXJTZXNzaW9uVlQuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWFsdGlt
ZVZpZGVvU291cmNlOjpSZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZT4mJiBzb3VyY2UpCi0gICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJp
bmcgeyBzb3VyY2UtPm5hbWUoKSB9LCBTdHJpbmcgeyBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpIH0s
IFN0cmluZyB7IHNvdXJjZS0+ZGV2aWNlSURIYXNoU2FsdCgpIH0pCisgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKFR5cGU6OlZpZGVvLCBTdHJpbmcgeyBzb3VyY2UtPm5hbWUoKSB9LCBTdHJpbmcg
eyBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpIH0sIFN0cmluZyB7IHNvdXJjZS0+ZGV2aWNlSURIYXNo
U2FsdCgpIH0pCiAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCiB7CiAgICAgbV9zb3Vy
Y2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICBtX2N1cnJlbnRTZXR0aW5ncyA9IG1fc291cmNl
LT5zZXR0aW5ncygpOwogICAgIHNldFNpemUobV9zb3VyY2UtPnNpemUoKSk7CisgICAgc2V0RnJh
bWVSYXRlKG1fc291cmNlLT5mcmFtZVJhdGUoKSk7CiB9CiAKIFJlYWx0aW1lVmlkZW9Tb3VyY2U6
On5SZWFsdGltZVZpZGVvU291cmNlKCkKQEAgLTE0MiwxMyArMTQ1LDQ3IEBAIHZvaWQgUmVhbHRp
bWVWaWRlb1NvdXJjZTo6c291cmNlU3RvcHBlZCgpCiAgICAgfSk7CiB9CiAKKyNpZiBQTEFURk9S
TShDT0NPQSkKK1JlZlB0cjxNZWRpYVNhbXBsZT4gUmVhbHRpbWVWaWRlb1NvdXJjZTo6YWRhcHRW
aWRlb1NhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAgIGF1dG8gc2l6ZSA9IHRoaXMt
PnNpemUoKTsKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBzYW1wbGUudmlkZW9QaXhlbEZvcm1hdCgpKQor
ICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y3JlYXRlKHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpOworCisgICAgQVNTRVJUKG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24pOworICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIG1lZGlhU2FtcGxlID0gbV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbi0+Y29udmVydE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSk7CisgICAgQVNTRVJU
KG1lZGlhU2FtcGxlKTsKKworICAgIHJldHVybiBtZWRpYVNhbXBsZTsKK30KKyNlbmRpZgorCiB2
b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxl
JiBzYW1wbGUpCiB7CiAgICAgaWYgKCFpc1Byb2R1Y2luZ0RhdGEoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKGF1dG8gbWVkaWFTYW1wbGUgPSBhZGFwdFZpZGVvU2FtcGxlKHNhbXBsZSkp
Ci0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCptZWRp
YVNhbXBsZSk7CisgICAgaWYgKG1fZnJhbWVEZWNpbWF0aW9uID4gMSAmJiArK21fZnJhbWVEZWNp
bWF0aW9uQ291bnRlciAlIG1fZnJhbWVEZWNpbWF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX2ZyYW1lRGVjaW1hdGlvbiA9IHN0YXRpY19jYXN0PHNpemVfdD4obV9zb3VyY2UtPm9ic2Vy
dmVkRnJhbWVSYXRlKCkgLyBmcmFtZVJhdGUoKSk7CisgICAgaWYgKCFtX2ZyYW1lRGVjaW1hdGlv
bikKKyAgICAgICAgbV9mcmFtZURlY2ltYXRpb24gPSAxOworCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOworICAgIGlmICghc2l6ZS5pc0VtcHR5KCkg
JiYgc2l6ZSAhPSBleHBhbmRlZEludFNpemUoc2FtcGxlLnByZXNlbnRhdGlvblNpemUoKSkpIHsK
KyAgICAgICAgaWYgKGF1dG8gbWVkaWFTYW1wbGUgPSBhZGFwdFZpZGVvU2FtcGxlKHNhbXBsZSkp
IHsKKyAgICAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KCptZWRpYVNhbXBsZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cisj
ZW5kaWYKKworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKHNh
bXBsZSk7CiB9CiAKIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZWFsdGltZVZpZGVvU291cmNl
OjpjbG9uZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggYjA3YmU2MDljNjMyMzg5ZDgyZjJkZjgx
MGE5NTAwOTNkMWE2ZjRkNy4uYmVhZDNiOTVkOTU3ZThjNjEyNDE1MzczYTAzZGY3YTAyMzk5YTcy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtMzEsOCArMzEsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLS8vIEZJWE1FOiBNYWtlIFJlYWx0aW1lVmlkZW9Tb3VyY2UgZGVyaXZlIGZyb20g
UmVhbHRpbWVNZWRpYVNvdXJjZSBkaXJlY3RseS4KLWNsYXNzIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
ZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UsIHB1YmxpYyBSZWFsdGlt
ZU1lZGlhU291cmNlOjpPYnNlcnZlciB7CitjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwor
CitjbGFzcyBSZWFsdGltZVZpZGVvU291cmNlIGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFT
b3VyY2UsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxSZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGUoUmVmPFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlPiYmIHNvdXJjZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWFsdGlt
ZVZpZGVvU291cmNlKFdURk1vdmUoc291cmNlKSkpOyB9CiAKQEAgLTUxLDcgKzUyLDYgQEAgcHJp
dmF0ZToKIAogICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFi
aWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5jYXBhYmlsaXRpZXMoKTsgfQogICAg
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJl
dHVybiBtX2N1cnJlbnRTZXR0aW5nczsgfQotICAgIHZvaWQgZ2VuZXJhdGVQcmVzZXRzKCkgZmlu
YWwgeyBtX3NvdXJjZS0+Z2VuZXJhdGVQcmVzZXRzKCk7IH0KICAgICBib29sIGlzQ2FwdHVyZVNv
dXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5pc0NhcHR1cmVTb3VyY2UoKTsg
fQogICAgIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fc291cmNlLT5kZXZpY2VUeXBlKCk7IH0KICAgICB2b2lkIG1vbml0b3JPcmll
bnRhdGlvbihPcmllbnRhdGlvbk5vdGlmaWVyJiBub3RpZmllcikgZmluYWwgeyBtX3NvdXJjZS0+
bW9uaXRvck9yaWVudGF0aW9uKG5vdGlmaWVyKTsgfQpAQCAtNjQsMTIgKzY0LDIxIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkgZmluYWw7CiAgICAgdm9p
ZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYpIGZpbmFsOwogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBhZGFwdFZpZGVvU2FtcGxlKE1lZGlh
U2FtcGxlJik7CisjZW5kaWYKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZvaWQg
c2V0TG9nZ2VyKGNvbnN0IExvZ2dlciYsIGNvbnN0IHZvaWQqKSBmaW5hbDsKICNlbmRpZgogCiAg
ICAgUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MgbV9jdXJyZW50U2V0dGluZ3M7CisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VU
cmFuc2ZlclNlc3Npb247CisjZW5kaWYKKyAgICBzaXplX3QgbV9mcmFtZURlY2ltYXRpb24geyAx
IH07CisgICAgc2l6ZV90IG1fZnJhbWVEZWNpbWF0aW9uQ291bnRlciB7IDAgfTsKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICB1aW50NjRfdCBtX2Nsb25lQ291bnRlciB7IDAgfTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcAppbmRleCAzNDIyMThkYzJlN2I1MTkyMjY5NWU0ZDAwZjRhN2Qw
ZTYzOWUyODQ2Li42ZTI3ODYzNjE2MTQyYTEzMTIyMTRmNDVkZWNiNGVmZGZkODk1NjYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcApAQCAtMTg3LDExICsxODcsMTMgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0dGluZ3MoKQogICAgIHJl
dHVybiBtX2N1cnJlbnRTZXR0aW5ncy52YWx1ZSgpOwogfQogCi12b2lkIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KGRvdWJsZSwgUmVmUHRyPFZpZGVvUHJl
c2V0PiBwcmVzZXQpCit2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzZXRGcmFtZVJhdGVX
aXRoUHJlc2V0KGRvdWJsZSBmcmFtZVJhdGUsIFJlZlB0cjxWaWRlb1ByZXNldD4gcHJlc2V0KQog
ewogICAgIG1fcHJlc2V0ID0gV1RGTW92ZShwcmVzZXQpOwogICAgIGlmIChtX3ByZXNldCkKICAg
ICAgICAgc2V0SW50cmluc2ljU2l6ZShtX3ByZXNldC0+c2l6ZSk7CisgICAgaWYgKGlzUHJvZHVj
aW5nRGF0YSgpKQorICAgICAgICBtX2VtaXRGcmFtZVRpbWVyLnN0YXJ0UmVwZWF0aW5nKDFfcyAv
IGZyYW1lUmF0ZSk7CiB9CiAKIEludFNpemUgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1
cmVTaXplKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBlNzgx
ZjM3NGYyOTUwOWU1NTU5Mzk5YzgxOGY1MWQzN2NkYzk5OWFiLi41NjAzNTVhZTRjOGI0NWFiZDlm
MjhmMWQ3MmEzNTgxMzMwNjA3YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC00OTI3LDYgKzQ5MjcsMTQgQEAgdm9pZCBJbnRlcm5hbHM6OnNldENhbWVyYU1lZGlhU3Ry
ZWFtVHJhY2tPcmllbnRhdGlvbihNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaywgaW4KIAogdm9pZCBJ
bnRlcm5hbHM6Om9ic2VydmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNr
KQogeworICAgIGlmIChtX3RyYWNrU291cmNlKSB7CisgICAgICAgIG1fdHJhY2tTb3VyY2UtPnJl
bW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV90cmFja1NvdXJjZS0+cmVtb3ZlQXVkaW9T
YW1wbGVPYnNlcnZlcigqdGhpcyk7CisKKyAgICAgICAgbV90cmFja0F1ZGlvU2FtcGxlQ291bnQg
PSAwOworICAgICAgICBtX3RyYWNrVmlkZW9TYW1wbGVDb3VudCA9IDA7CisgICAgfQorCiAgICAg
bV90cmFja1NvdXJjZSA9ICZ0cmFjay5zb3VyY2UoKTsKICAgICBtX3RyYWNrU291cmNlLT5hZGRP
YnNlcnZlcigqdGhpcyk7CiAgICAgbV90cmFja1NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggN2FlMzZlNGQ3ZjI3MWY3MWIzYTlmNTJhNjFkMzhmODZhMDkzMmZi
NS4uZTFjMGQ3MTBlYzIyNTAwY2M3Y2Y3NmMyMjI5NjY1NDVjYWJiZjEwZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDIwLTA0LTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBTYWZhcmkgZG9lc24ndCBhcHBseSBmcmFtZVJhdGUgbGltaXQgd2hlbiByZXF1
ZXN0IHN0cmVhbSBmcm9tIENhbWVyYQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEwMTg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTQ1Mjc5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtZGVjcmVh
c2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVk
aWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtZGVjcmVhc2luZy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJh
bWVSYXRlLWNsb25lLWluY3JlYXNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWlu
Y3JlYXNpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0
cmVhbXRyYWNrLXZpZGVvLWZyYW1lcmF0ZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dDogYWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1l
cmF0ZS1kZWNyZWFzaW5nLmh0bWw6IGFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
bWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZXJhdGUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQ6
IGFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRl
by1mcmFtZXJhdGUtaW5jcmVhc2luZy5odG1sOiBhZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvcm91
dGluZXMuanM6CisKIDIwMjAtMDQtMTQgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5u
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0d0a10gVXBkYXRlIHBpeGVsIHRlc3RzIGJhc2VsaW5l
IGZvciBhbGwgdGVzdHMgY29udGFpbmluZyBvciByZWZlcmVuY2luZyBTVkdzIChleGNlcHQgV1BU
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRy
YWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUt
Y2xvbmUtZGVjcmVhc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRmY2RlZjkxNmM1YmVh
ZWRiMGJjZjI4Mzk2ZGZkZDUwYzhiNGE5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUt
ZGVjcmVhc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBjbG9uZSBh
bmQgYXBwbHlDb25zdHJhaW50cyB0byBkZWNyZWFzZSBmcmFtZSByYXRlIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJh
bWVSYXRlLWNsb25lLWRlY3JlYXNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtZGVjcmVhc2luZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRkYTU2ZTBhYTM4Y2U0ZWY1MjBlMWYwNGU5ZDM0MGRhZTIzODY2YjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFt
dHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWRlY3JlYXNpbmcuaHRtbApAQCAtMCwwICsxLDMy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorICAgIDx0aXRsZT5BZGFwdCBjYW1lcmEgdHJhY2sgZnJhbWVyYXRlPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYyA9Ii4uLy4uL3dlYnJ0Yy9yb3V0aW5lcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkgaWQ9InZpZGVv
Ij48L3ZpZGVvPgorICAgIDxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAg
ICBjb25zdCBzdHJlYW0xID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEoeyB2aWRlbzogeyB3aWR0aDogNzIwLCBmcmFtZVJhdGUgOiAzMCB9IH0pOworICAgIGNvbnN0
IHN0cmVhbTIgPSBzdHJlYW0xLmNsb25lKCk7CisKKyAgICBhd2FpdCBzdHJlYW0yLmdldFZpZGVv
VHJhY2tzKClbMF0uYXBwbHlDb25zdHJhaW50cyh7IHdpZHRoIDogMTYwLCBmcmFtZVJhdGUgOiA1
IH0pOworCisgICAgLy8gV2UgYWRhcHQgZnJhbWUgcmF0ZSBhZnRlciAxIHNlY29uZCBvZiBzYW1w
bGVzLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZl
LCAxMDAwKSk7IAorCisgICAgbGV0IGZyYW1lUmF0ZSA9IGF3YWl0IGNvbXB1dGVGcmFtZVJhdGUo
c3RyZWFtMSwgdmlkZW8pOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAxMCwg
InN0cmVhbTEgZnJhbWUgcmF0ZSBhYm92ZSAxMCIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oZnJh
bWVSYXRlLCA2MCwgInN0cmVhbTEgZnJhbWUgcmF0ZSBiZWxvdyA2MCIpOworCisgICAgZnJhbWVS
YXRlID0gYXdhaXQgY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0yLCB2aWRlbyk7CisgICAgYXNzZXJ0
X2dyZWF0ZXJfdGhhbihmcmFtZVJhdGUsIDEsICJzdHJlYW0yIGZyYW1lIHJhdGUgYWJvdmUgMSIp
OworICAgIGFzc2VydF9sZXNzX3RoYW4oZnJhbWVSYXRlLCAyMCwgInN0cmVhbTIgZnJhbWUgcmF0
ZSBiZWxvdyAyMCIpOworfSwgImNsb25lIGFuZCBhcHBseUNvbnN0cmFpbnRzIHRvIGRlY3JlYXNl
IGZyYW1lIHJhdGUiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1m
cmFtZVJhdGUtY2xvbmUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWluY3Jl
YXNpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ZGJlNWQxNjIyOGQ5ZWE5NjFjMGYzZDE0
OWQ2YTIzZjlkOTQxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWluY3JlYXNpbmct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgY2xvbmUgYW5kIGFwcGx5Q29u
c3RyYWludHMgdG8gaW5jcmVhc2UgZnJhbWUgcmF0ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9u
ZS1pbmNyZWFzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3Ry
ZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWluY3JlYXNpbmcuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNzRiYjc1OGY3ZGE4YTMyZTllODY1OGRjNGFmM2QyZWFjYjcxOTlmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVv
LWZyYW1lUmF0ZS1jbG9uZS1pbmNyZWFzaW5nLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAg
ICA8dGl0bGU+QWRhcHQgY2FtZXJhIHRyYWNrIGZyYW1lcmF0ZTwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmMgPSIuLi8uLi93ZWJydGMvcm91dGluZXMuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvIGF1dG9wbGF5IGlkPSJ2aWRlbyI+PC92aWRlbz4K
KyAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgY29uc3Qgc3Ry
ZWFtMSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86
IHsgd2lkdGg6IDE2MCwgZnJhbWVSYXRlIDogNSB9IH0pOworICAgIGNvbnN0IHN0cmVhbTIgPSBz
dHJlYW0xLmNsb25lKCk7CisKKyAgICBhd2FpdCBzdHJlYW0yLmdldFZpZGVvVHJhY2tzKClbMF0u
YXBwbHlDb25zdHJhaW50cyh7IHdpZHRoIDogNzIwLCBmcmFtZVJhdGUgOiAzMCB9KTsKKworICAg
IC8vIFdlIGFkYXB0IGZyYW1lIHJhdGUgYWZ0ZXIgMSBzZWNvbmQgb2Ygc2FtcGxlcy4KKyAgICBh
d2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOyAK
KworICAgIGxldCBmcmFtZVJhdGUgPSBhd2FpdCBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbTEsIHZp
ZGVvKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGZyYW1lUmF0ZSwgMSwgInN0cmVhbTEgZnJh
bWUgcmF0ZSBhYm92ZSAxIik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihmcmFtZVJhdGUsIDIwLCAi
c3RyZWFtMSBmcmFtZSByYXRlIGJlbG93IDIwIik7CisKKyAgICBmcmFtZVJhdGUgPSBhd2FpdCBj
b21wdXRlRnJhbWVSYXRlKHN0cmVhbTIsIHZpZGVvKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFu
KGZyYW1lUmF0ZSwgMTAsICJzdHJlYW0yIGZyYW1lIHJhdGUgYWJvdmUgMTAiKTsKKyAgICBhc3Nl
cnRfbGVzc190aGFuKGZyYW1lUmF0ZSwgNjAsICJzdHJlYW0yIGZyYW1lIHJhdGUgYmVsb3cgNjAi
KTsKK30sICJjbG9uZSBhbmQgYXBwbHlDb25zdHJhaW50cyB0byBpbmNyZWFzZSBmcmFtZSByYXRl
Iik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWRl
Y3JlYXNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRp
YXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43ZDFiZGNhYjg5NTc5MDRlNzQyMjgyODcwNWEyYmNkODVkZTZkYTE3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNr
LXZpZGVvLWZyYW1lUmF0ZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
KworCitQQVNTIGdldFVzZXJNZWRpYSB3aXRoIGRlY3JlYXNpbmcgZnJhbWUgcmF0ZXMgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12
aWRlby1mcmFtZVJhdGUtZGVjcmVhc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1kZWNyZWFzaW5nLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWRlY2VmZDAxMjYyYmY0OTM5MjU0MjY1MGQ3NmM3N2UwZTVkYzAxMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFj
ay12aWRlby1mcmFtZVJhdGUtZGVjcmVhc2luZy5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cisg
ICAgPHRpdGxlPkFkYXB0IGNhbWVyYSB0cmFjayBmcmFtZXJhdGU8L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjID0iLi4vLi4vd2VicnRjL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDx2aWRlbyBhdXRvcGxheSBpZD0idmlkZW8iPjwvdmlkZW8+
CisgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IHN0
cmVhbTEgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVv
OiB7IHdpZHRoOiA3MjAsIGZyYW1lUmF0ZSA6IDMwIH0gfSk7CisgICAgY29uc3Qgc3RyZWFtMiA9
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHsgd2lk
dGg6IDE2MCwgZnJhbWVSYXRlIDogNSB9IH0pOworCisgICAgLy8gV2UgYWRhcHQgZnJhbWUgcmF0
ZSBhZnRlciAxIHNlY29uZCBvZiBzYW1wbGVzLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorCisgICAgaWYgKCFzdHJlYW0xLmdl
dFZpZGVvVHJhY2tzKClbMF0uZW5kZWQpIHsgCisgICAgICAgIGNvbnN0IGZyYW1lUmF0ZSA9IGF3
YWl0IGNvbXB1dGVGcmFtZVJhdGUoc3RyZWFtMSwgdmlkZW8pOworICAgICAgICBhc3NlcnRfZ3Jl
YXRlcl90aGFuKGZyYW1lUmF0ZSwgMTAsICJzdHJlYW0xIGZyYW1lIHJhdGUgYWJvdmUgMTAiKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihmcmFtZVJhdGUsIDYwLCAic3RyZWFtMSBmcmFtZSBy
YXRlIGJlbG93IDYwIik7CisgICAgfQorCisgICAgbGV0IGZyYW1lUmF0ZSA9IGF3YWl0IGNvbXB1
dGVGcmFtZVJhdGUoc3RyZWFtMiwgdmlkZW8pOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZnJh
bWVSYXRlLCAxLCAic3RyZWFtMiBmcmFtZSByYXRlIGFib3ZlIDEiKTsKKyAgICBhc3NlcnRfbGVz
c190aGFuKGZyYW1lUmF0ZSwgMjAsICJzdHJlYW0yIGZyYW1lIHJhdGUgYmVsb3cgMjAiKTsKK30s
ICJnZXRVc2VyTWVkaWEgd2l0aCBkZWNyZWFzaW5nIGZyYW1lIHJhdGVzIik7CisgICAgPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWluY3JlYXNpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZp
ZGVvLWZyYW1lUmF0ZS1pbmNyZWFzaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGFiNjJl
YzBkYmM0Y2M4NzgxNGFkMDdkMzA4MDZmZGY5Y2FlOTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0
ZS1pbmNyZWFzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIGdldFVz
ZXJNZWRpYSB3aXRoIGluY3JlYXNpbmcgZnJhbWUgcmF0ZXMgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUt
aW5jcmVhc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVh
bXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1pbmNyZWFzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFkYjI2
Y2MyNjE0Njk2M2E2NWJhZjA2ZjhlMjI4YjI4MzkyYmY3YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJh
dGUtaW5jcmVhc2luZy5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkFkYXB0
IGNhbWVyYSB0cmFjayBmcmFtZXJhdGU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjID0iLi4vLi4vd2VicnRjL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDx2aWRlbyBhdXRvcGxheSBpZD0idmlkZW8iPjwvdmlkZW8+CisgICAgPHNjcmlwdD4K
K3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiAxNjAs
IGZyYW1lUmF0ZSA6IDUgfSB9KTsKKyAgICBjb25zdCBzdHJlYW0yID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2aWRlbzogeyB3aWR0aDogNzIwLCBmcmFtZVJh
dGUgOiAzMCB9IH0pOworCisgICAgLy8gV2UgYWRhcHQgZnJhbWUgcmF0ZSBhZnRlciAxIHNlY29u
ZCBvZiBzYW1wbGVzLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91
dChyZXNvbHZlLCAxMDAwKSk7IAorCisgICAgaWYgKCFzdHJlYW0xLmdldFZpZGVvVHJhY2tzKClb
MF0uZW5kZWQpIHsgCisgICAgICAgIGNvbnN0IGZyYW1lUmF0ZSA9IGF3YWl0IGNvbXB1dGVGcmFt
ZVJhdGUoc3RyZWFtMSwgdmlkZW8pOworICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGZyYW1l
UmF0ZSwgMSwgInN0cmVhbTEgZnJhbWUgcmF0ZSBhYm92ZSAxIik7CisgICAgICAgIGFzc2VydF9s
ZXNzX3RoYW4oZnJhbWVSYXRlLCAyMCwgInN0cmVhbTEgZnJhbWUgcmF0ZSBiZWxvdyAyMCIpOwor
ICAgIH0KKworICAgIGxldCBmcmFtZVJhdGUgPSBhd2FpdCBjb21wdXRlRnJhbWVSYXRlKHN0cmVh
bTIsIHZpZGVvKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGZyYW1lUmF0ZSwgMTAsICJzdHJl
YW0yIGZyYW1lIHJhdGUgYWJvdmUgMTAiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKGZyYW1lUmF0
ZSwgNjAsICJzdHJlYW0yIGZyYW1lIHJhdGUgYmVsb3cgNjAiKTsKK30sICJnZXRVc2VyTWVkaWEg
d2l0aCBpbmNyZWFzaW5nIGZyYW1lIHJhdGVzIik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMgYi9MYXlv
dXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKaW5kZXggYjEzNThkNGM0OThiNzZiNTk1N2QwOTdk
OTdjYzFiYTYzOGY4ODAyZC4uZGYwNjU0Mjk4NDBhNGYwNGIyYzE5YWUyYzIxNDZhOTNkODVkZTli
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCisrKyBiL0xheW91
dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcwpAQCAtMjI1LDMgKzIyNSw0NSBAQCBhc3luYyBmdW5j
dGlvbiBnZXRUeXBlZFN0YXRzKGNvbm5lY3Rpb24sIHR5cGUpCiAgICAgfSk7CiAgICAgcmV0dXJu
IHN0YXRzOwogfQorCitmdW5jdGlvbiBnZXRSZWNlaXZlZFRyYWNrU3RhdHMoY29ubmVjdGlvbikK
K3sKKyAgICByZXR1cm4gY29ubmVjdGlvbi5nZXRTdGF0cygpLnRoZW4oKHJlcG9ydCkgPT4gewor
ICAgICAgICB2YXIgc3RhdHM7CisgICAgICAgIHJlcG9ydC5mb3JFYWNoKChzdGF0SXRlbSkgPT4g
eworICAgICAgICAgICAgaWYgKHN0YXRJdGVtLnR5cGUgPT09ICJ0cmFjayIpIHsKKyAgICAgICAg
ICAgICAgICBzdGF0cyA9IHN0YXRJdGVtOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICAgICAgcmV0dXJuIHN0YXRzOworICAgIH0pOworfQorCithc3luYyBmdW5jdGlvbiBjb21wdXRl
RnJhbWVSYXRlKHN0cmVhbSwgdmlkZW8pCit7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgaW50ZXJuYWxzLm9ic2VydmVNZWRpYVN0cmVhbVRyYWNrKHN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpWzBdKTsKKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRU
aW1lb3V0KHJlc29sdmUsIDEwMDApKTsgCisgICAgICAgIHJldHVybiBpbnRlcm5hbHMudHJhY2tW
aWRlb1NhbXBsZUNvdW50OworICAgIH0KKworICAgIGxldCBjb25uZWN0aW9uOworICAgIHZpZGVv
LnNyY09iamVjdCA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAg
ICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4geworICAgICAgICAg
ICAgZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLCBz
dHJlYW0pOworICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlvbikgPT4geworICAgICAgICAgICAg
Y29ubmVjdGlvbiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICBzZWNvbmRDb25uZWN0
aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAgIHJlc29sdmUo
dHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0pOworICAg
ICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7Cisg
ICAgfSk7CisKKyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisKKyAgICBjb25zdCBzdGF0czEgPSBh
d2FpdCBnZXRSZWNlaXZlZFRyYWNrU3RhdHMoY29ubmVjdGlvbik7CisgICAgYXdhaXQgbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTsgCisgICAgY29uc3Qg
c3RhdHMyID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOworICAgIHJl
dHVybiAoc3RhdHMyLmZyYW1lc1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2VpdmVkKSAqIDEw
MDAgLyAoc3RhdHMyLnRpbWVzdGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396642</attachid>
            <date>2020-04-16 06:39:52 -0700</date>
            <delta_ts>2020-04-17 05:45:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210186-20200416153949.patch</filename>
            <type>text/plain</type>
            <size>25042</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA4NTM5YzYyNWYyYzU0
YjVjMDJlYmYyODNmZjQwODA5ODFjMWQ0MC4uZjhlYTJkYzA3M2Q5MjJhZTk5Y2ZlYzdlNjBjMmUw
OGI0ZjcyMGY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA0LTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgZG9lc24ndCBh
cHBseSBmcmFtZVJhdGUgbGltaXQgd2hlbiByZXF1ZXN0IHN0cmVhbSBmcm9tIENhbWVyYQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTg2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82MTQ1Mjc5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCB0byBSZWFsdGltZVZpZGVvU291cmNl
IHRvIGRlY2ltYXRlIHRoZSB2aWRlbyBzYW1wbGVzIGJhc2VkIG9uIHRoZSBvYnNlcnZlZCBmcmFt
ZSByYXRlIG9mIGl0cyBjYXB0dXJlIHNvdXJjZS4KKyAgICAgICAgVGhpcyBhbGxvd3Mgc3VwcG9y
dGluZyB0d28gdHJhY2tzIHVzaW5nIHRoZSBzYW1lIGNhcHR1cmUgZGV2aWNlLCBvbmUgdHJhY2sg
YmVpbmcgbG93IGZyYW1lIHJhdGUgYW5kIHRoZSBvdGhlciBvbmUgaGlnaCBmcmFtZSByYXRlLgor
CisgICAgICAgIENsZWFuLXVwIHJlZmFjdG9yaW5nIHRvIG1ha2UgUmVhbHRpbWVWaWRlb1NvdXJj
ZSBkaXJlY3RseSBpbmhlcml0IGZyb20gUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuCisgICAg
ICAgIE1pZ3JhdGUgc2l6ZSBhbmQgZm9ybWF0IG9mIGZyYW1lIGFkYXB0YXRpb24gZnJvbSBSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZSB0byBSZWFsdGltZVZpZGVvU291cmNlLgorICAgICAgICBG
aXggbW9jayBjYXB0dXJlIHNvdXJjZSB0byB1cGRhdGUgaXRzIGZyYW1lIHJhdGUgd2hlbiBhc2tl
ZCBieSBhcHBseUNvbnN0cmFpbnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L21lZGlhc3RyZWFt
L21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWRlY3JlYXNpbmcuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZy
YW1lUmF0ZS1jbG9uZS1pbmNyZWFzaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvbWVkaWFz
dHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtZGVjcmVhc2luZy5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJh
bWVSYXRlLWluY3JlYXNpbmcuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2xpZW50VXBkYXRl
ZFNpemVBbmRGcmFtZVJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZTo6b2JzZXJ2ZWRGcmFtZVJhdGUgY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRlb1NvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjptX3NvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNl
OjphZGFwdFZpZGVvU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6c2V0RnJhbWVSYXRlV2l0aFByZXNldCk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvYnNlcnZlTWVkaWFTdHJl
YW1UcmFjayk6CisKIDIwMjAtMDQtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFVzZSBhIFdlYWtIYXNoU2V0IHRvIHN0b3JlIE1lZGlhU3RyZWFtUHJpdmF0
ZSBvYnNlcnZlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcAppbmRleCAzZGI3
ODc4ZDI2MThlYWMwOTI1ZmU0Y2U3MmZkNTdiMDdiNDQ2NDg5Li40YmJkMjdkMmFiYWRhMjJhMDAy
ZTBiZTdiMWI5MTdmMGNiNDI2ODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uu
Y3BwCkBAIC0zNCwxMCArMzQsNiBAQAogI2luY2x1ZGUgIlJlbW90ZVZpZGVvU2FtcGxlLmgiCiAj
aW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KIAotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1
ZGUgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNv
dXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpCkBAIC0z
NzYsNyArMzcyLDcgQEAgdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0U2l6ZUFu
ZEZyYW1lUmF0ZShPcHRpb25hbDxpbnQ+IHdpZHRoLCBPcHRpb24KICAgICBzZXRGcmFtZVJhdGUo
bWF0Y2gtPnJlcXVlc3RlZEZyYW1lUmF0ZSk7CiB9CiAKLVJlZlB0cjxNZWRpYVNhbXBsZT4gUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmFkYXB0VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKK3ZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BhdGNoTWVkaWFTYW1w
bGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYgc2FtcGxlKQogewogICAgIE1lZGlhVGltZSBzYW1w
bGVUaW1lID0gc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKTsKIApAQCAtMzkwLDMzICszODYsNyBA
QCBSZWZQdHI8TWVkaWFTYW1wbGU+IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjphZGFwdFZp
ZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBzYQogICAgIGlmIChpbnRlcnZhbCA+IDEpCiAgICAgICAg
IG1fb2JzZXJ2ZWRGcmFtZVJhdGUgPSAobV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wcy5zaXplKCkg
LyBpbnRlcnZhbCk7CiAKLSAgICBhdXRvIG1lZGlhU2FtcGxlID0gbWFrZVJlZlB0cigmc2FtcGxl
KTsKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsK
LSAgICBpZiAoIXNpemUuaXNFbXB0eSgpICYmIHNpemUgIT0gZXhwYW5kZWRJbnRTaXplKHNhbXBs
ZS5wcmVzZW50YXRpb25TaXplKCkpKSB7Ci0KLSAgICAgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gc2FtcGxl
LnZpZGVvUGl4ZWxGb3JtYXQoKSkKLSAgICAgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24g
PSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUoc2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQo
KSk7Ci0KLSAgICAgICAgQVNTRVJUKG1faW1hZ2VUcmFuc2ZlclNlc3Npb24pOwotICAgICAgICBp
ZiAobV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgewotICAgICAgICAgICAgbWVkaWFTYW1wbGUgPSBt
X2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jb252ZXJ0TWVkaWFTYW1wbGUoc2FtcGxlLCBzaXplKTsK
LSAgICAgICAgICAgIGlmICghbWVkaWFTYW1wbGUpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIG1lZGlhU2FtcGxl
LnJlbGVhc2VOb25OdWxsKCk7Ci19Ci0KLXZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OmRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYgc2FtcGxlKQotewot
ICAgIGlmIChhdXRvIG1lZGlhU2FtcGxlID0gYWRhcHRWaWRlb1NhbXBsZShzYW1wbGUpKQotICAg
ICAgICB2aWRlb1NhbXBsZUF2YWlsYWJsZSgqbWVkaWFTYW1wbGUpOworICAgIHZpZGVvU2FtcGxl
QXZhaWxhYmxlKHNhbXBsZSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OmNsaWVudFVwZGF0ZWRTaXplQW5kRnJhbWVSYXRlKE9wdGlvbmFsPGludD4gd2lkdGgsIE9wdGlv
bmFsPGludD4gaGVpZ2h0LCBPcHRpb25hbDxkb3VibGU+IGZyYW1lUmF0ZSkKQEAgLTQyNyw5ICsz
OTcsMTAgQEAgdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2xpZW50VXBkYXRlZFNp
emVBbmRGcmFtZVJhdGUoT3B0aW9uYWw8aW50PiB3aWQKICAgICAgICAgd2lkdGggPSB7IH07CiAg
ICAgaWYgKGhlaWdodCAmJiAqaGVpZ2h0IDwgc3RhdGljX2Nhc3Q8aW50PihzZXR0aW5ncy5oZWln
aHQoKSkpCiAgICAgICAgIGhlaWdodCA9IHsgfTsKKyAgICBpZiAoZnJhbWVSYXRlICYmICpmcmFt
ZVJhdGUgPCBzdGF0aWNfY2FzdDxkb3VibGU+KHNldHRpbmdzLmZyYW1lUmF0ZSgpKSkKKyAgICAg
ICAgZnJhbWVSYXRlID0geyB9OwogCi0gICAgLy8gRklYTUU6IGhhbmRsZSBmcmFtZVJhdGUgcG90
ZW50aWFsIGluY3JlYXNlLgotICAgIGlmICghd2lkdGggJiYgIWhlaWdodCkKKyAgICBpZiAoIXdp
ZHRoICYmICFoZWlnaHQgJiYgIWZyYW1lUmF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0
byBtYXRjaCA9IGJlc3RTdXBwb3J0ZWRTaXplQW5kRnJhbWVSYXRlKHdpZHRoLCBoZWlnaHQsIGZy
YW1lUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRleCBhNjFjMTg2ZjI4
ZDZhMDYyMGNkYmZjZTg4ZmE3NDAzMTgyNzM5NTc2Li40NDUyMWM1YmY5YmZkMGJhMjIwZDZmYTY3
NWE3ZjBkM2VlODA3ZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTQ4
LDYgKzQ4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZVByZXNldHMoKSA9
IDA7CiAgICAgdmlydHVhbCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBzYW1wbGVSb3RhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOyB9CiAK
KyAgICBkb3VibGUgb2JzZXJ2ZWRGcmFtZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVk
RnJhbWVSYXRlOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpOwogCkBAIC02
OSwxMSArNzEsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHNldERlZmF1bHRTaXplKGNvbnN0
IEludFNpemUmIHNpemUpIHsgbV9kZWZhdWx0U2l6ZSA9IHNpemU7IH0KIAotICAgIGRvdWJsZSBv
YnNlcnZlZEZyYW1lUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZWRGcmFtZVJhdGU7IH0K
LQogICAgIHZvaWQgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJik7
CiAgICAgY29uc3QgVmVjdG9yPEludFNpemU+JiBzdGFuZGFyZFZpZGVvU2l6ZXMoKTsKLSAgICBS
ZWZQdHI8TWVkaWFTYW1wbGU+IGFkYXB0VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmKTsKIAogcHJp
dmF0ZToKICAgICBzdHJ1Y3QgQ2FwdHVyZVNpemVBbmRGcmFtZVJhdGUgewpAQCAtOTMsOSArOTIs
NiBAQCBwcml2YXRlOgogICAgIERlcXVlPGRvdWJsZT4gbV9vYnNlcnZlZEZyYW1lVGltZVN0YW1w
czsKICAgICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0ZSB7IDAgfTsKICAgICBJbnRTaXplIG1f
ZGVmYXVsdFNpemU7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247Ci0jZW5kaWYKIH07
CiAKIHN0cnVjdCBTaXplQW5kRnJhbWVSYXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXgg
YmRlNWMzY2RkZmViM2MwZjZiNzY1MWQ3YWI4MzVkM2FiN2ZmZDk1Ni4uMzViZDQ3MzBhMGQ0MDkx
MWRjNzIwM2I5ODY0MDExZGVjMjY1MzQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTI4
LDE1ICsyOCwyMCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCIKKyNlbmRpZgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9T
b3VyY2UoUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiYmIHNvdXJjZSkKLSAgICA6IFJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmlu
ZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwgU3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhh
c2hTYWx0KCkgfSkKKyAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoVHlwZTo6VmlkZW8sIFN0cmlu
ZyB7IHNvdXJjZS0+bmFtZSgpIH0sIFN0cmluZyB7IHNvdXJjZS0+cGVyc2lzdGVudElEKCkgfSwg
U3RyaW5nIHsgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCkgfSkKICAgICAsIG1fc291cmNlKFdU
Rk1vdmUoc291cmNlKSkKIHsKICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAg
IG1fY3VycmVudFNldHRpbmdzID0gbV9zb3VyY2UtPnNldHRpbmdzKCk7CiAgICAgc2V0U2l6ZSht
X3NvdXJjZS0+c2l6ZSgpKTsKKyAgICBzZXRGcmFtZVJhdGUobV9zb3VyY2UtPmZyYW1lUmF0ZSgp
KTsKIH0KIAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlYWx0aW1lVmlkZW9Tb3VyY2UoKQpAQCAt
MTQyLDEzICsxNDcsNDcgQEAgdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzb3VyY2VTdG9wcGVk
KCkKICAgICB9KTsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorUmVmUHRyPE1lZGlhU2FtcGxl
PiBSZWFsdGltZVZpZGVvU291cmNlOjphZGFwdFZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1w
bGUpCit7CisgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOworICAgIGlmICghbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9
IHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpCisgICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Np
b24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUoc2FtcGxlLnZpZGVvUGl4ZWxGb3Jt
YXQoKSk7CisKKyAgICBBU1NFUlQobV9pbWFnZVRyYW5zZmVyU2Vzc2lvbik7CisgICAgaWYgKCFt
X2ltYWdlVHJhbnNmZXJTZXNzaW9uKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1
dG8gbWVkaWFTYW1wbGUgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jb252ZXJ0TWVkaWFTYW1w
bGUoc2FtcGxlLCBzaXplKTsKKyAgICBBU1NFUlQobWVkaWFTYW1wbGUpOworCisgICAgcmV0dXJu
IG1lZGlhU2FtcGxlOworfQorI2VuZGlmCisKIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6dmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBpZiAoIWlzUHJv
ZHVjaW5nRGF0YSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byBtZWRpYVNhbXBs
ZSA9IGFkYXB0VmlkZW9TYW1wbGUoc2FtcGxlKSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoKm1lZGlhU2FtcGxlKTsKKyAgICBpZiAobV9mcmFtZURl
Y2ltYXRpb24gPiAxICYmICsrbV9mcmFtZURlY2ltYXRpb25Db3VudGVyICUgbV9mcmFtZURlY2lt
YXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fZnJhbWVEZWNpbWF0aW9uID0gc3RhdGlj
X2Nhc3Q8c2l6ZV90PihtX3NvdXJjZS0+b2JzZXJ2ZWRGcmFtZVJhdGUoKSAvIGZyYW1lUmF0ZSgp
KTsKKyAgICBpZiAoIW1fZnJhbWVEZWNpbWF0aW9uKQorICAgICAgICBtX2ZyYW1lRGVjaW1hdGlv
biA9IDE7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvIHNpemUgPSB0aGlzLT5zaXpl
KCk7CisgICAgaWYgKCFzaXplLmlzRW1wdHkoKSAmJiBzaXplICE9IGV4cGFuZGVkSW50U2l6ZShz
YW1wbGUucHJlc2VudGF0aW9uU2l6ZSgpKSkgeworICAgICAgICBpZiAoYXV0byBtZWRpYVNhbXBs
ZSA9IGFkYXB0VmlkZW9TYW1wbGUoc2FtcGxlKSkgeworICAgICAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoKm1lZGlhU2FtcGxlKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxlKTsKIH0KIAogUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+IFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNsb25lKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApp
bmRleCBiMDdiZTYwOWM2MzIzODlkODJmMmRmODEwYTk1MDA5M2QxYTZmNGQ3Li5iZWFkM2I5NWQ5
NTdlOGM2MTI0MTUzNzNhMDNkZjdhMDIzOTlhNzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC0z
MSw4ICszMSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IE1ha2UgUmVh
bHRpbWVWaWRlb1NvdXJjZSBkZXJpdmUgZnJvbSBSZWFsdGltZU1lZGlhU291cmNlIGRpcmVjdGx5
LgotY2xhc3MgUmVhbHRpbWVWaWRlb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZSwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHsKK2Ns
YXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CisKK2NsYXNzIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
ZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSwgcHVibGljIFJlYWx0aW1lTWVkaWFT
b3VyY2U6Ok9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lVmlkZW9T
b3VyY2U+IGNyZWF0ZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShzb3VyY2Up
KSk7IH0KIApAQCAtNTEsNyArNTIsNiBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9z
b3VyY2UtPmNhcGFiaWxpdGllcygpOyB9CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fY3VycmVudFNldHRpbmdzOyB9Ci0g
ICAgdm9pZCBnZW5lcmF0ZVByZXNldHMoKSBmaW5hbCB7IG1fc291cmNlLT5nZW5lcmF0ZVByZXNl
dHMoKTsgfQogICAgIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zb3VyY2UtPmlzQ2FwdHVyZVNvdXJjZSgpOyB9CiAgICAgQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UtPmRldmljZVR5
cGUoKTsgfQogICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXIm
IG5vdGlmaWVyKSBmaW5hbCB7IG1fc291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obm90aWZpZXIp
OyB9CkBAIC02NCwxMiArNjQsMjEgQEAgcHJpdmF0ZToKICAgICBib29sIHByZXZlbnRTb3VyY2VG
cm9tU3RvcHBpbmcoKSBmaW5hbDsKICAgICB2b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlh
U2FtcGxlJikgZmluYWw7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZWZQdHI8TWVkaWFT
YW1wbGU+IGFkYXB0VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmKTsKKyNlbmRpZgorCiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiwgY29u
c3Qgdm9pZCopIGZpbmFsOwogI2VuZGlmCiAKICAgICBSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVT
b3VyY2U+IG1fc291cmNlOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJl
bnRTZXR0aW5nczsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKKyNlbmRpZgorICAg
IHNpemVfdCBtX2ZyYW1lRGVjaW1hdGlvbiB7IDEgfTsKKyAgICBzaXplX3QgbV9mcmFtZURlY2lt
YXRpb25Db3VudGVyIHsgMCB9OwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHVpbnQ2
NF90IG1fY2xvbmVDb3VudGVyIHsgMCB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDM0
MjIxOGRjMmU3YjUxOTIyNjk1ZTRkMDBmNGE3ZDBlNjM5ZTI4NDYuLjZlMjc4NjM2MTYxNDJhMTMx
MjIxNGY0NWRlY2I0ZWZkZmQ4OTU2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC0xODcsMTEgKzE4
NywxMyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpzZXR0aW5ncygpCiAgICAgcmV0dXJuIG1fY3VycmVudFNldHRpbmdzLnZhbHVl
KCk7CiB9CiAKLXZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQ
cmVzZXQoZG91YmxlLCBSZWZQdHI8VmlkZW9QcmVzZXQ+IHByZXNldCkKK3ZvaWQgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQoZG91YmxlIGZyYW1lUmF0ZSwg
UmVmUHRyPFZpZGVvUHJlc2V0PiBwcmVzZXQpCiB7CiAgICAgbV9wcmVzZXQgPSBXVEZNb3ZlKHBy
ZXNldCk7CiAgICAgaWYgKG1fcHJlc2V0KQogICAgICAgICBzZXRJbnRyaW5zaWNTaXplKG1fcHJl
c2V0LT5zaXplKTsKKyAgICBpZiAoaXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgIG1fZW1pdEZy
YW1lVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9zIC8gZnJhbWVSYXRlKTsKIH0KIAogSW50U2l6ZSBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZVNpemUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU3ODFmMzc0ZjI5NTA5ZTU1NTkzOTljODE4ZjUxZDM3
Y2RjOTk5YWIuLjU2MDM1NWFlNGM4YjQ1YWJkOWYyOGYxZDcyYTM1ODEzMzA2MDdhZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5MjcsNiArNDkyNywxNCBAQCB2b2lk
IEludGVybmFsczo6c2V0Q2FtZXJhTWVkaWFTdHJlYW1UcmFja09yaWVudGF0aW9uKE1lZGlhU3Ry
ZWFtVHJhY2smIHRyYWNrLCBpbgogCiB2b2lkIEludGVybmFsczo6b2JzZXJ2ZU1lZGlhU3RyZWFt
VHJhY2soTWVkaWFTdHJlYW1UcmFjayYgdHJhY2spCiB7CisgICAgaWYgKG1fdHJhY2tTb3VyY2Up
IHsKKyAgICAgICAgbV90cmFja1NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAg
ICBtX3RyYWNrU291cmNlLT5yZW1vdmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKworICAg
ICAgICBtX3RyYWNrQXVkaW9TYW1wbGVDb3VudCA9IDA7CisgICAgICAgIG1fdHJhY2tWaWRlb1Nh
bXBsZUNvdW50ID0gMDsKKyAgICB9CisKICAgICBtX3RyYWNrU291cmNlID0gJnRyYWNrLnNvdXJj
ZSgpOwogICAgIG1fdHJhY2tTb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICBtX3RyYWNr
U291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YWUzNmU0ZDdm
MjcxZjcxYjNhOWY1MmE2MWQzOGY4NmEwOTMyZmI1Li5lMWMwZDcxMGVjMjI1MDBjYzdjZjc2YzIy
Mjk2NjU0NWNhYmJmMTBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDQtMTYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNhZmFyaSBkb2Vzbid0IGFw
cGx5IGZyYW1lUmF0ZSBsaW1pdCB3aGVuIHJlcXVlc3Qgc3RyZWFtIGZyb20gQ2FtZXJhCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxODYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYxNDUyNzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNr
LXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0
ZS1jbG9uZS1kZWNyZWFzaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtaW5jcmVhc2luZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10
cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtaW5jcmVhc2luZy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVyYXRlLWRl
Y3JlYXNpbmctZXhwZWN0ZWQudHh0OiBhZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVyYXRlLWRlY3JlYXNpbmcuaHRtbDogYWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1l
cmF0ZS1pbmNyZWFzaW5nLWV4cGVjdGVkLnR4dDogYWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lcmF0ZS1pbmNyZWFzaW5nLmh0bWw6
IGFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy9yb3V0aW5lcy5qczoKKwogMjAyMC0wNC0xNCAgTmlr
b2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR3Rr
XSBVcGRhdGUgcGl4ZWwgdGVzdHMgYmFzZWxpbmUgZm9yIGFsbCB0ZXN0cyBjb250YWluaW5nIG9y
IHJlZmVyZW5jaW5nIFNWR3MgKGV4Y2VwdCBXUFQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWRl
Y3JlYXNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRp
YXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZGZjZGVmOTE2YzViZWFlZGIwYmNmMjgzOTZkZmRkNTBjOGI0YTk2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVh
bXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworCitQQVNTIGNsb25lIGFuZCBhcHBseUNvbnN0cmFpbnRzIHRvIGRlY3Jl
YXNlIGZyYW1lIHJhdGUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtZGVjcmVhc2luZy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZy
YW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRhNTZlMGFhMzhjZTRl
ZjUyMGUxZjA0ZTlkMzQwZGFlMjM4NjZiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUt
ZGVjcmVhc2luZy5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkFkYXB0IGNh
bWVyYSB0cmFjayBmcmFtZXJhdGU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
ID0iLi4vLi4vd2VicnRjL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDx2aWRlbyBhdXRvcGxheSBpZD0idmlkZW8iPjwvdmlkZW8+CisgICAgPHNjcmlwdD4KK3By
b21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiA3MjAsIGZy
YW1lUmF0ZSA6IDMwIH0gfSk7CisgICAgY29uc3Qgc3RyZWFtMiA9IHN0cmVhbTEuY2xvbmUoKTsK
KworICAgIGF3YWl0IHN0cmVhbTIuZ2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRz
KHsgd2lkdGggOiAxNjAsIGZyYW1lUmF0ZSA6IDUgfSk7CisKKyAgICAvLyBXZSBhZGFwdCBmcmFt
ZSByYXRlIGFmdGVyIDEgc2Vjb25kIG9mIHNhbXBsZXMuCisgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTsgCisKKyAgICBsZXQgZnJhbWVS
YXRlID0gYXdhaXQgY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0xLCB2aWRlbyk7CisgICAgYXNzZXJ0
X2dyZWF0ZXJfdGhhbihmcmFtZVJhdGUsIDEwLCAic3RyZWFtMSBmcmFtZSByYXRlIGFib3ZlIDEw
Iik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihmcmFtZVJhdGUsIDYwLCAic3RyZWFtMSBmcmFtZSBy
YXRlIGJlbG93IDYwIik7CisKKyAgICBmcmFtZVJhdGUgPSBhd2FpdCBjb21wdXRlRnJhbWVSYXRl
KHN0cmVhbTIsIHZpZGVvKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGZyYW1lUmF0ZSwgMSwg
InN0cmVhbTIgZnJhbWUgcmF0ZSBhYm92ZSAxIik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihmcmFt
ZVJhdGUsIDIwLCAic3RyZWFtMiBmcmFtZSByYXRlIGJlbG93IDIwIik7Cit9LCAiY2xvbmUgYW5k
IGFwcGx5Q29uc3RyYWludHMgdG8gZGVjcmVhc2UgZnJhbWUgcmF0ZSIpOworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1pbmNyZWFzaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFj
ay12aWRlby1mcmFtZVJhdGUtY2xvbmUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjRkYmU1ZDE2MjI4ZDllYTk2MWMwZjNkMTQ5ZDZhMjNmOWQ5NDFlYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRl
by1mcmFtZVJhdGUtY2xvbmUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CisKKworUEFTUyBjbG9uZSBhbmQgYXBwbHlDb25zdHJhaW50cyB0byBpbmNyZWFzZSBmcmFtZSBy
YXRlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3Ry
ZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWluY3JlYXNpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xv
bmUtaW5jcmVhc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3NGJiNzU4ZjdkYThhMzJlOWU4NjU4ZGM0
YWYzZDJlYWNiNzE5OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWluY3JlYXNpbmcu
aHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5BZGFwdCBjYW1lcmEgdHJhY2sg
ZnJhbWVyYXRlPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYyA9Ii4uLy4uL3dl
YnJ0Yy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8g
YXV0b3BsYXkgaWQ9InZpZGVvIj48L3ZpZGVvPgorICAgIDxzY3JpcHQ+Citwcm9taXNlX3Rlc3Qo
YXN5bmMgKHQpID0+IHsKKyAgICBjb25zdCBzdHJlYW0xID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2aWRlbzogeyB3aWR0aDogMTYwLCBmcmFtZVJhdGUgOiA1
IH0gfSk7CisgICAgY29uc3Qgc3RyZWFtMiA9IHN0cmVhbTEuY2xvbmUoKTsKKworICAgIGF3YWl0
IHN0cmVhbTIuZ2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHsgd2lkdGggOiA3
MjAsIGZyYW1lUmF0ZSA6IDMwIH0pOworCisgICAgLy8gV2UgYWRhcHQgZnJhbWUgcmF0ZSBhZnRl
ciAxIHNlY29uZCBvZiBzYW1wbGVzLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
c2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorCisgICAgbGV0IGZyYW1lUmF0ZSA9IGF3YWl0
IGNvbXB1dGVGcmFtZVJhdGUoc3RyZWFtMSwgdmlkZW8pOworICAgIGFzc2VydF9ncmVhdGVyX3Ro
YW4oZnJhbWVSYXRlLCAxLCAic3RyZWFtMSBmcmFtZSByYXRlIGFib3ZlIDEiKTsKKyAgICBhc3Nl
cnRfbGVzc190aGFuKGZyYW1lUmF0ZSwgMjAsICJzdHJlYW0xIGZyYW1lIHJhdGUgYmVsb3cgMjAi
KTsKKworICAgIGZyYW1lUmF0ZSA9IGF3YWl0IGNvbXB1dGVGcmFtZVJhdGUoc3RyZWFtMiwgdmlk
ZW8pOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAxMCwgInN0cmVhbTIgZnJh
bWUgcmF0ZSBhYm92ZSAxMCIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oZnJhbWVSYXRlLCA2MCwg
InN0cmVhbTIgZnJhbWUgcmF0ZSBiZWxvdyA2MCIpOworfSwgImNsb25lIGFuZCBhcHBseUNvbnN0
cmFpbnRzIHRvIGluY3JlYXNlIGZyYW1lIHJhdGUiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFz
dHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtZGVjcmVhc2luZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRl
LWRlY3JlYXNpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkMWJkY2FiODk1NzkwNGU3NDIy
ODI4NzA1YTJiY2Q4NWRlNmRhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWRlY3JlYXNpbmct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgZ2V0VXNlck1lZGlhIHdpdGgg
ZGVjcmVhc2luZyBmcmFtZSByYXRlcyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1kZWNyZWFzaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8t
ZnJhbWVSYXRlLWRlY3JlYXNpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGVjZWZkMDEyNjJiZjQ5Mzky
NTQyNjUwZDc2Yzc3ZTBlNWRjMDEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1kZWNyZWFzaW5n
Lmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+QWRhcHQgY2FtZXJhIHRyYWNr
IGZyYW1lcmF0ZTwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmMgPSIuLi8uLi93
ZWJydGMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVv
IGF1dG9wbGF5IGlkPSJ2aWRlbyI+PC92aWRlbz4KKyAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0
KGFzeW5jICh0KSA9PiB7CisgICAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IG5hdmlnYXRvci5tZWRp
YURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IDcyMCwgZnJhbWVSYXRlIDog
MzAgfSB9KTsKKyAgICBjb25zdCBzdHJlYW0yID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoeyB2aWRlbzogeyB3aWR0aDogMTYwLCBmcmFtZVJhdGUgOiA1IH0gfSk7
CisKKyAgICAvLyBXZSBhZGFwdCBmcmFtZSByYXRlIGFmdGVyIDEgc2Vjb25kIG9mIHNhbXBsZXMu
CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEw
MDApKTsgCisKKyAgICBpZiAoIXN0cmVhbTEuZ2V0VmlkZW9UcmFja3MoKVswXS5lbmRlZCkgeyAK
KyAgICAgICAgY29uc3QgZnJhbWVSYXRlID0gYXdhaXQgY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0x
LCB2aWRlbyk7CisgICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAxMCwgInN0
cmVhbTEgZnJhbWUgcmF0ZSBhYm92ZSAxMCIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKGZy
YW1lUmF0ZSwgNjAsICJzdHJlYW0xIGZyYW1lIHJhdGUgYmVsb3cgNjAiKTsKKyAgICB9CisKKyAg
ICBsZXQgZnJhbWVSYXRlID0gYXdhaXQgY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0yLCB2aWRlbyk7
CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihmcmFtZVJhdGUsIDEsICJzdHJlYW0yIGZyYW1lIHJh
dGUgYWJvdmUgMSIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oZnJhbWVSYXRlLCAyMCwgInN0cmVh
bTIgZnJhbWUgcmF0ZSBiZWxvdyAyMCIpOworfSwgImdldFVzZXJNZWRpYSB3aXRoIGRlY3JlYXNp
bmcgZnJhbWUgcmF0ZXMiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRl
by1mcmFtZVJhdGUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWluY3JlYXNpbmctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkYWI2MmVjMGRiYzRjYzg3ODE0YWQwN2QzMDgwNmZkZjlj
YWU5MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21l
ZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWluY3JlYXNpbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorCisKK1BBU1MgZ2V0VXNlck1lZGlhIHdpdGggaW5jcmVhc2luZyBmcmFt
ZSByYXRlcyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRp
YXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1pbmNyZWFzaW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWluY3Jl
YXNpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWRiMjZjYzI2MTQ2OTYzYTY1YmFmMDZmOGUyMjhiMjgz
OTJiZjdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9t
ZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1pbmNyZWFzaW5nLmh0bWwKQEAgLTAsMCAr
MSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+QWRhcHQgY2FtZXJhIHRyYWNrIGZyYW1lcmF0ZTwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmMgPSIuLi8uLi93ZWJydGMvcm91dGluZXMu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvIGF1dG9wbGF5IGlkPSJ2
aWRlbyI+PC92aWRlbz4KKyAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
CisgICAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IDE2MCwgZnJhbWVSYXRlIDogNSB9IH0pOworICAgIGNv
bnN0IHN0cmVhbTIgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
IHZpZGVvOiB7IHdpZHRoOiA3MjAsIGZyYW1lUmF0ZSA6IDMwIH0gfSk7CisKKyAgICAvLyBXZSBh
ZGFwdCBmcmFtZSByYXRlIGFmdGVyIDEgc2Vjb25kIG9mIHNhbXBsZXMuCisgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTsgCisKKyAgICBp
ZiAoIXN0cmVhbTEuZ2V0VmlkZW9UcmFja3MoKVswXS5lbmRlZCkgeyAKKyAgICAgICAgY29uc3Qg
ZnJhbWVSYXRlID0gYXdhaXQgY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0xLCB2aWRlbyk7CisgICAg
ICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAxLCAic3RyZWFtMSBmcmFtZSByYXRl
IGFib3ZlIDEiKTsKKyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihmcmFtZVJhdGUsIDIwLCAic3Ry
ZWFtMSBmcmFtZSByYXRlIGJlbG93IDIwIik7CisgICAgfQorCisgICAgbGV0IGZyYW1lUmF0ZSA9
IGF3YWl0IGNvbXB1dGVGcmFtZVJhdGUoc3RyZWFtMiwgdmlkZW8pOworICAgIGFzc2VydF9ncmVh
dGVyX3RoYW4oZnJhbWVSYXRlLCAxMCwgInN0cmVhbTIgZnJhbWUgcmF0ZSBhYm92ZSAxMCIpOwor
ICAgIGFzc2VydF9sZXNzX3RoYW4oZnJhbWVSYXRlLCA2MCwgInN0cmVhbTIgZnJhbWUgcmF0ZSBi
ZWxvdyA2MCIpOworfSwgImdldFVzZXJNZWRpYSB3aXRoIGluY3JlYXNpbmcgZnJhbWUgcmF0ZXMi
KTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcwpp
bmRleCBiMTM1OGQ0YzQ5OGI3NmI1OTU3ZDA5N2Q5N2NjMWJhNjM4Zjg4MDJkLi5kZjA2NTQyOTg0
MGE0ZjA0YjJjMTlhZTJjMjE0NmE5M2Q4NWRlOWJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJydGMvcm91dGluZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCkBA
IC0yMjUsMyArMjI1LDQ1IEBAIGFzeW5jIGZ1bmN0aW9uIGdldFR5cGVkU3RhdHMoY29ubmVjdGlv
biwgdHlwZSkKICAgICB9KTsKICAgICByZXR1cm4gc3RhdHM7CiB9CisKK2Z1bmN0aW9uIGdldFJl
Y2VpdmVkVHJhY2tTdGF0cyhjb25uZWN0aW9uKQoreworICAgIHJldHVybiBjb25uZWN0aW9uLmdl
dFN0YXRzKCkudGhlbigocmVwb3J0KSA9PiB7CisgICAgICAgIHZhciBzdGF0czsKKyAgICAgICAg
cmVwb3J0LmZvckVhY2goKHN0YXRJdGVtKSA9PiB7CisgICAgICAgICAgICBpZiAoc3RhdEl0ZW0u
dHlwZSA9PT0gInRyYWNrIikgeworICAgICAgICAgICAgICAgIHN0YXRzID0gc3RhdEl0ZW07Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gc3RhdHM7CisgICAgfSk7
Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNvbXB1dGVGcmFtZVJhdGUoc3RyZWFtLCB2aWRlbykKK3sK
KyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBpbnRlcm5hbHMub2JzZXJ2ZU1l
ZGlhU3RyZWFtVHJhY2soc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0pOworICAgICAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOyAKKyAg
ICAgICAgcmV0dXJuIGludGVybmFscy50cmFja1ZpZGVvU2FtcGxlQ291bnQ7CisgICAgfQorCisg
ICAgbGV0IGNvbm5lY3Rpb247CisgICAgdmlkZW8uc3JjT2JqZWN0ID0gYXdhaXQgbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmly
c3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2so
c3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIHN0cmVhbSk7CisgICAgICAgIH0sIChzZWNvbmRD
b25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBjb25uZWN0aW9uID0gc2Vjb25kQ29ubmVjdGlv
bjsKKyAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9
PiB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAg
ICAgICAgICAgfTsKKyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0
KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKworICAgIGF3YWl0IHZpZGVvLnBs
YXkoKTsKKworICAgIGNvbnN0IHN0YXRzMSA9IGF3YWl0IGdldFJlY2VpdmVkVHJhY2tTdGF0cyhj
b25uZWN0aW9uKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQo
cmVzb2x2ZSwgMTAwMCkpOyAKKyAgICBjb25zdCBzdGF0czIgPSBhd2FpdCBnZXRSZWNlaXZlZFRy
YWNrU3RhdHMoY29ubmVjdGlvbik7CisgICAgcmV0dXJuIChzdGF0czIuZnJhbWVzUmVjZWl2ZWQg
LSBzdGF0czEuZnJhbWVzUmVjZWl2ZWQpICogMTAwMCAvIChzdGF0czIudGltZXN0YW1wIC0gc3Rh
dHMxLnRpbWVzdGFtcCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396758</attachid>
            <date>2020-04-17 05:45:48 -0700</date>
            <delta_ts>2020-04-20 06:48:19 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210186-20200417144546.patch</filename>
            <type>text/plain</type>
            <size>24972</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE5ZWVkOTZkOGIxNjcy
MTRkYzgxZmViYjViMmYwYmEyYWU1MzQ2NS4uNDdiMmJhOGFhOThjZjVmNGIyNjhkN2VjNzc4NmJk
NWIzYjEwNzM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA0LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgZG9lc24ndCBh
cHBseSBmcmFtZVJhdGUgbGltaXQgd2hlbiByZXF1ZXN0IHN0cmVhbSBmcm9tIENhbWVyYQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTg2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82MTQ1Mjc5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgdG8gUmVhbHRpbWVWaWRlb1NvdXJjZSB0
byBkZWNpbWF0ZSB0aGUgdmlkZW8gc2FtcGxlcyBiYXNlZCBvbiB0aGUgb2JzZXJ2ZWQgZnJhbWUg
cmF0ZSBvZiBpdHMgY2FwdHVyZSBzb3VyY2UuCisgICAgICAgIFRoaXMgYWxsb3dzIHN1cHBvcnRp
bmcgdHdvIHRyYWNrcyB1c2luZyB0aGUgc2FtZSBjYXB0dXJlIGRldmljZSwgb25lIHRyYWNrIGJl
aW5nIGxvdyBmcmFtZSByYXRlIGFuZCB0aGUgb3RoZXIgb25lIGhpZ2ggZnJhbWUgcmF0ZS4KKwor
ICAgICAgICBDbGVhbi11cCByZWZhY3RvcmluZyB0byBtYWtlIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
ZGlyZWN0bHkgaW5oZXJpdCBmcm9tIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLgorICAgICAg
ICBNaWdyYXRlIHNpemUgYW5kIGZvcm1hdCBvZiBmcmFtZSBhZGFwdGF0aW9uIGZyb20gUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UgdG8gUmVhbHRpbWVWaWRlb1NvdXJjZS4KKyAgICAgICAgRml4
IG1vY2sgY2FwdHVyZSBzb3VyY2UgdG8gdXBkYXRlIGl0cyBmcmFtZSByYXRlIHdoZW4gYXNrZWQg
YnkgYXBwbHlDb25zdHJhaW50cy4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9t
ZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFt
ZVJhdGUtY2xvbmUtaW5jcmVhc2luZy5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhc3Ry
ZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWRlY3JlYXNpbmcuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1l
UmF0ZS1pbmNyZWFzaW5nLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlOjpkaXNwYXRjaE1lZGlhU2FtcGxlVG9PYnNlcnZlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmNsaWVudFVwZGF0ZWRT
aXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2U6Om9ic2VydmVkRnJhbWVSYXRlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9Tb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6bV9zb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb1NvdXJjZTo6
YWRhcHRWaWRlb1NhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNl
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6b2JzZXJ2ZU1lZGlhU3RyZWFt
VHJhY2spOgorCiAyMDIwLTA0LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFNjcm9sbGluZy10cmVlIGhpdC10ZXN0aW5nIGlzIG9mZiBieSB0b3Ag
Y29udGVudCBpbnNldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDNk
Yjc4NzhkMjYxOGVhYzA5MjVmZTRjZTcyZmQ1N2IwN2I0NDY0ODkuLjRiYmQyN2QyYWJhZGEyMmEw
MDJlMGJlN2IxYjkxN2YwY2I0MjY4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZS5jcHAKQEAgLTM0LDEwICszNCw2IEBACiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9TYW1wbGUuaCIK
ICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5j
bHVkZSAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OlJlYWx0aW1lVmlkZW9DYXB0dXJl
U291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCkKQEAg
LTM3Niw3ICszNzIsNyBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpzZXRTaXpl
QW5kRnJhbWVSYXRlKE9wdGlvbmFsPGludD4gd2lkdGgsIE9wdGlvbgogICAgIHNldEZyYW1lUmF0
ZShtYXRjaC0+cmVxdWVzdGVkRnJhbWVSYXRlKTsKIH0KIAotUmVmUHRyPE1lZGlhU2FtcGxlPiBS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6YWRhcHRWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYg
c2FtcGxlKQordm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6ZGlzcGF0Y2hNZWRpYVNh
bXBsZVRvT2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7CiAgICAgTWVkaWFUaW1lIHNh
bXBsZVRpbWUgPSBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpOwogCkBAIC0zOTAsMzMgKzM4Niw3
IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmFkYXB0
VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNhCiAgICAgaWYgKGludGVydmFsID4gMSkKICAgICAg
ICAgbV9vYnNlcnZlZEZyYW1lUmF0ZSA9IChtX29ic2VydmVkRnJhbWVUaW1lU3RhbXBzLnNpemUo
KSAvIGludGVydmFsKTsKIAotICAgIGF1dG8gbWVkaWFTYW1wbGUgPSBtYWtlUmVmUHRyKCZzYW1w
bGUpOwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgp
OwotICAgIGlmICghc2l6ZS5pc0VtcHR5KCkgJiYgc2l6ZSAhPSBleHBhbmRlZEludFNpemUoc2Ft
cGxlLnByZXNlbnRhdGlvblNpemUoKSkpIHsKLQotICAgICAgICBpZiAoIW1faW1hZ2VUcmFuc2Zl
clNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBzYW1w
bGUudmlkZW9QaXhlbEZvcm1hdCgpKQotICAgICAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biA9IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShzYW1wbGUudmlkZW9QaXhlbEZvcm1h
dCgpKTsKLQotICAgICAgICBBU1NFUlQobV9pbWFnZVRyYW5zZmVyU2Vzc2lvbik7Ci0gICAgICAg
IGlmIChtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKSB7Ci0gICAgICAgICAgICBtZWRpYVNhbXBsZSA9
IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNvbnZlcnRNZWRpYVNhbXBsZShzYW1wbGUsIHNpemUp
OwotICAgICAgICAgICAgaWYgKCFtZWRpYVNhbXBsZSkgewotICAgICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0KLSAgICByZXR1cm4gbWVkaWFTYW1w
bGUucmVsZWFzZU5vbk51bGwoKTsKLX0KLQotdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZTo6ZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJiBzYW1wbGUpCi17
Ci0gICAgaWYgKGF1dG8gbWVkaWFTYW1wbGUgPSBhZGFwdFZpZGVvU2FtcGxlKHNhbXBsZSkpCi0g
ICAgICAgIHZpZGVvU2FtcGxlQXZhaWxhYmxlKCptZWRpYVNhbXBsZSk7CisgICAgdmlkZW9TYW1w
bGVBdmFpbGFibGUoc2FtcGxlKTsKIH0KIAogdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y2xpZW50VXBkYXRlZFNpemVBbmRGcmFtZVJhdGUoT3B0aW9uYWw8aW50PiB3aWR0aCwgT3B0
aW9uYWw8aW50PiBoZWlnaHQsIE9wdGlvbmFsPGRvdWJsZT4gZnJhbWVSYXRlKQpAQCAtNDI3LDkg
KzM5NywxMCBAQCB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpjbGllbnRVcGRhdGVk
U2l6ZUFuZEZyYW1lUmF0ZShPcHRpb25hbDxpbnQ+IHdpZAogICAgICAgICB3aWR0aCA9IHsgfTsK
ICAgICBpZiAoaGVpZ2h0ICYmICpoZWlnaHQgPCBzdGF0aWNfY2FzdDxpbnQ+KHNldHRpbmdzLmhl
aWdodCgpKSkKICAgICAgICAgaGVpZ2h0ID0geyB9OworICAgIGlmIChmcmFtZVJhdGUgJiYgKmZy
YW1lUmF0ZSA8IHN0YXRpY19jYXN0PGRvdWJsZT4oc2V0dGluZ3MuZnJhbWVSYXRlKCkpKQorICAg
ICAgICBmcmFtZVJhdGUgPSB7IH07CiAKLSAgICAvLyBGSVhNRTogaGFuZGxlIGZyYW1lUmF0ZSBw
b3RlbnRpYWwgaW5jcmVhc2UuCi0gICAgaWYgKCF3aWR0aCAmJiAhaGVpZ2h0KQorICAgIGlmICgh
d2lkdGggJiYgIWhlaWdodCAmJiAhZnJhbWVSYXRlKQogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvIG1hdGNoID0gYmVzdFN1cHBvcnRlZFNpemVBbmRGcmFtZVJhdGUod2lkdGgsIGhlaWdodCwg
ZnJhbWVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGE2MWMxODZm
MjhkNmEwNjIwY2RiZmNlODhmYTc0MDMxODI3Mzk1NzYuLjQ0NTIxYzViZjliZmQwYmEyMjBkNmZh
Njc1YTdmMGQzZWU4MDdmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAt
NDgsNiArNDgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlUHJlc2V0cygp
ID0gMDsKICAgICB2aXJ0dWFsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHNhbXBsZVJvdGF0
aW9uKCkgY29uc3QgeyByZXR1cm4gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7IH0K
IAorICAgIGRvdWJsZSBvYnNlcnZlZEZyYW1lUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2
ZWRGcmFtZVJhdGU7IH0KKwogcHJvdGVjdGVkOgogICAgIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCk7CiAKQEAg
LTY5LDExICs3MSw4IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgc2V0RGVmYXVsdFNpemUoY29u
c3QgSW50U2l6ZSYgc2l6ZSkgeyBtX2RlZmF1bHRTaXplID0gc2l6ZTsgfQogCi0gICAgZG91Ymxl
IG9ic2VydmVkRnJhbWVSYXRlKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlZEZyYW1lUmF0ZTsg
fQotCiAgICAgdm9pZCBkaXNwYXRjaE1lZGlhU2FtcGxlVG9PYnNlcnZlcnMoTWVkaWFTYW1wbGUm
KTsKICAgICBjb25zdCBWZWN0b3I8SW50U2l6ZT4mIHN0YW5kYXJkVmlkZW9TaXplcygpOwotICAg
IFJlZlB0cjxNZWRpYVNhbXBsZT4gYWRhcHRWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYpOwogCiBw
cml2YXRlOgogICAgIHN0cnVjdCBDYXB0dXJlU2l6ZUFuZEZyYW1lUmF0ZSB7CkBAIC05Myw5ICs5
Miw2IEBAIHByaXZhdGU6CiAgICAgRGVxdWU8ZG91YmxlPiBtX29ic2VydmVkRnJhbWVUaW1lU3Rh
bXBzOwogICAgIGRvdWJsZSBtX29ic2VydmVkRnJhbWVSYXRlIHsgMCB9OwogICAgIEludFNpemUg
bV9kZWZhdWx0U2l6ZTsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKLSNlbmRpZgog
fTsKIAogc3RydWN0IFNpemVBbmRGcmFtZVJhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRl
eCBiZGU1YzNjZGRmZWIzYzBmNmI3NjUxZDdhYjgzNWQzYWI3ZmZkOTU2Li5kNDg3MzRjMWY2MDI2
NjczYWE5NzgyMzk0NjA0YTQwNjE2NzNhOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAt
MjgsMTUgKzI4LDIwIEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisjaW5jbHVkZSAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVhbHRpbWVWaWRl
b1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlKQotICAgIDog
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nIHsgc291cmNlLT5uYW1lKCkgfSwgU3Ry
aW5nIHsgc291cmNlLT5wZXJzaXN0ZW50SUQoKSB9LCBTdHJpbmcgeyBzb3VyY2UtPmRldmljZUlE
SGFzaFNhbHQoKSB9KQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShUeXBlOjpWaWRlbywgU3Ry
aW5nIHsgc291cmNlLT5uYW1lKCkgfSwgU3RyaW5nIHsgc291cmNlLT5wZXJzaXN0ZW50SUQoKSB9
LCBTdHJpbmcgeyBzb3VyY2UtPmRldmljZUlESGFzaFNhbHQoKSB9KQogICAgICwgbV9zb3VyY2Uo
V1RGTW92ZShzb3VyY2UpKQogewogICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAg
ICAgbV9jdXJyZW50U2V0dGluZ3MgPSBtX3NvdXJjZS0+c2V0dGluZ3MoKTsKICAgICBzZXRTaXpl
KG1fc291cmNlLT5zaXplKCkpOworICAgIHNldEZyYW1lUmF0ZShtX3NvdXJjZS0+ZnJhbWVSYXRl
KCkpOwogfQogCiBSZWFsdGltZVZpZGVvU291cmNlOjp+UmVhbHRpbWVWaWRlb1NvdXJjZSgpCkBA
IC0xNDIsMTMgKzE0Nyw0NiBAQCB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNvdXJjZVN0b3Bw
ZWQoKQogICAgIH0pOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCitSZWZQdHI8TWVkaWFTYW1w
bGU+IFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmFkYXB0VmlkZW9TYW1wbGUoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKK3sKKyAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBzYW1wbGUudmlkZW9QaXhlbEZvcm1hdCgpKQor
ICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y3JlYXRlKHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpOworCisgICAgQVNTRVJUKG1faW1hZ2VU
cmFuc2ZlclNlc3Npb24pOworICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIG1lZGlhU2FtcGxlID0gbV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbi0+Y29udmVydE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSgpKTsKKyAgICBBU1NF
UlQobWVkaWFTYW1wbGUpOworCisgICAgcmV0dXJuIG1lZGlhU2FtcGxlOworfQorI2VuZGlmCisK
IHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1w
bGUmIHNhbXBsZSkKIHsKICAgICBpZiAoIWlzUHJvZHVjaW5nRGF0YSgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoYXV0byBtZWRpYVNhbXBsZSA9IGFkYXB0VmlkZW9TYW1wbGUoc2FtcGxl
KSkKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoKm1l
ZGlhU2FtcGxlKTsKKyAgICBpZiAobV9mcmFtZURlY2ltYXRpb24gPiAxICYmICsrbV9mcmFtZURl
Y2ltYXRpb25Db3VudGVyICUgbV9mcmFtZURlY2ltYXRpb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZnJhbWVEZWNpbWF0aW9uID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihtX3NvdXJjZS0+b2Jz
ZXJ2ZWRGcmFtZVJhdGUoKSAvIGZyYW1lUmF0ZSgpKTsKKyAgICBpZiAoIW1fZnJhbWVEZWNpbWF0
aW9uKQorICAgICAgICBtX2ZyYW1lRGVjaW1hdGlvbiA9IDE7CisKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBhdXRvIHNpemUgPSB0aGlzLT5zaXplKCk7CisgICAgaWYgKCFzaXplLmlzRW1wdHko
KSAmJiBzaXplICE9IGV4cGFuZGVkSW50U2l6ZShzYW1wbGUucHJlc2VudGF0aW9uU2l6ZSgpKSkg
eworICAgICAgICBpZiAoYXV0byBtZWRpYVNhbXBsZSA9IGFkYXB0VmlkZW9TYW1wbGUoc2FtcGxl
KSkgeworICAgICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFi
bGUoKm1lZGlhU2FtcGxlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
KyNlbmRpZgorCisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUo
c2FtcGxlKTsKIH0KIAogUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNsb25lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCBiMDdiZTYwOWM2MzIzODlkODJmMmRm
ODEwYTk1MDA5M2QxYTZmNGQ3Li5iZWFkM2I5NWQ5NTdlOGM2MTI0MTUzNzNhMDNkZjdhMDIzOTlh
NzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC0zMSw4ICszMSw5IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotLy8gRklYTUU6IE1ha2UgUmVhbHRpbWVWaWRlb1NvdXJjZSBkZXJpdmUgZnJv
bSBSZWFsdGltZU1lZGlhU291cmNlIGRpcmVjdGx5LgotY2xhc3MgUmVhbHRpbWVWaWRlb1NvdXJj
ZSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSwgcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7
CisKK2NsYXNzIFJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVNZWRp
YVNvdXJjZSwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZShSZWY8UmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlYWx0
aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7IH0KIApAQCAtNTEsNyArNTIsNiBAQCBw
cml2YXRlOgogCiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2Fw
YWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UtPmNhcGFiaWxpdGllcygpOyB9CiAg
ICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsg
cmV0dXJuIG1fY3VycmVudFNldHRpbmdzOyB9Ci0gICAgdm9pZCBnZW5lcmF0ZVByZXNldHMoKSBm
aW5hbCB7IG1fc291cmNlLT5nZW5lcmF0ZVByZXNldHMoKTsgfQogICAgIGJvb2wgaXNDYXB0dXJl
U291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2UtPmlzQ2FwdHVyZVNvdXJjZSgp
OyB9CiAgICAgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9zb3VyY2UtPmRldmljZVR5cGUoKTsgfQogICAgIHZvaWQgbW9uaXRvck9y
aWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVyKSBmaW5hbCB7IG1fc291cmNl
LT5tb25pdG9yT3JpZW50YXRpb24obm90aWZpZXIpOyB9CkBAIC02NCwxMiArNjQsMjEgQEAgcHJp
dmF0ZToKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBmaW5hbDsKICAgICB2
b2lkIHZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikgZmluYWw7CiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IGFkYXB0VmlkZW9TYW1wbGUoTWVk
aWFTYW1wbGUmKTsKKyNlbmRpZgorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdm9p
ZCBzZXRMb2dnZXIoY29uc3QgTG9nZ2VyJiwgY29uc3Qgdm9pZCopIGZpbmFsOwogI2VuZGlmCiAK
ICAgICBSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IG1fc291cmNlOwogICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0aW5nczsKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbjsKKyNlbmRpZgorICAgIHNpemVfdCBtX2ZyYW1lRGVjaW1hdGlvbiB7
IDEgfTsKKyAgICBzaXplX3QgbV9mcmFtZURlY2ltYXRpb25Db3VudGVyIHsgMCB9OwogI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHVpbnQ2NF90IG1fY2xvbmVDb3VudGVyIHsgMCB9Owog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDM0MjIxOGRjMmU3YjUxOTIyNjk1ZTRkMDBmNGE3
ZDBlNjM5ZTI4NDYuLjZlMjc4NjM2MTYxNDJhMTMxMjIxNGY0NWRlY2I0ZWZkZmQ4OTU2NjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwCkBAIC0xODcsMTEgKzE4NywxMyBAQCBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzZXR0aW5ncygpCiAgICAg
cmV0dXJuIG1fY3VycmVudFNldHRpbmdzLnZhbHVlKCk7CiB9CiAKLXZvaWQgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQoZG91YmxlLCBSZWZQdHI8VmlkZW9Q
cmVzZXQ+IHByZXNldCkKK3ZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEZyYW1lUmF0
ZVdpdGhQcmVzZXQoZG91YmxlIGZyYW1lUmF0ZSwgUmVmUHRyPFZpZGVvUHJlc2V0PiBwcmVzZXQp
CiB7CiAgICAgbV9wcmVzZXQgPSBXVEZNb3ZlKHByZXNldCk7CiAgICAgaWYgKG1fcHJlc2V0KQog
ICAgICAgICBzZXRJbnRyaW5zaWNTaXplKG1fcHJlc2V0LT5zaXplKTsKKyAgICBpZiAoaXNQcm9k
dWNpbmdEYXRhKCkpCisgICAgICAgIG1fZW1pdEZyYW1lVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9z
IC8gZnJhbWVSYXRlKTsKIH0KIAogSW50U2l6ZSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2Fw
dHVyZVNpemUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGJj
NWZlZDM3NDc2OTBjZjc2YTcwNDc5YjkxZGU0MzhkNjRkNmI5YmMuLjY3OGQzNTk5N2FkZGE5YWI5
YjQ1ZjJjZTU4NzJkZDMxMDk1ZGQyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTUwMDIsNiArNTAwMiwxNCBAQCB2b2lkIEludGVybmFsczo6c2V0Q2FtZXJhTWVkaWFT
dHJlYW1UcmFja09yaWVudGF0aW9uKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBpbgogCiB2b2lk
IEludGVybmFsczo6b2JzZXJ2ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1UcmFjayYgdHJh
Y2spCiB7CisgICAgaWYgKG1fdHJhY2tTb3VyY2UpIHsKKyAgICAgICAgbV90cmFja1NvdXJjZS0+
cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3RyYWNrU291cmNlLT5yZW1vdmVBdWRp
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKworICAgICAgICBtX3RyYWNrQXVkaW9TYW1wbGVDb3Vu
dCA9IDA7CisgICAgICAgIG1fdHJhY2tWaWRlb1NhbXBsZUNvdW50ID0gMDsKKyAgICB9CisKICAg
ICBtX3RyYWNrU291cmNlID0gJnRyYWNrLnNvdXJjZSgpOwogICAgIG1fdHJhY2tTb3VyY2UtPmFk
ZE9ic2VydmVyKCp0aGlzKTsKICAgICBtX3RyYWNrU291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2Vy
dmVyKCp0aGlzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBkMjg4YzU0YWE2YWQxYTQ0NWUwNzVjNGY4ZmE2ZmU0OWYzN2Ew
OTAxLi40MzdmNWYwZDE0ZGQ0M2QxZjlmZDUxZGJkY2UxMjA5ZTFjYTQ1ZmY0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMjAtMDQtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIFNhZmFyaSBkb2Vzbid0IGFwcGx5IGZyYW1lUmF0ZSBsaW1pdCB3aGVuIHJl
cXVlc3Qgc3RyZWFtIGZyb20gQ2FtZXJhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTAxODYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYxNDUyNzk0
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtZGVjcmVh
c2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVk
aWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtZGVjcmVhc2luZy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJh
bWVSYXRlLWNsb25lLWluY3JlYXNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWlu
Y3JlYXNpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0
cmVhbXRyYWNrLXZpZGVvLWZyYW1lcmF0ZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dDogYWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1l
cmF0ZS1kZWNyZWFzaW5nLmh0bWw6IGFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
bWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZXJhdGUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQ6
IGFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRl
by1mcmFtZXJhdGUtaW5jcmVhc2luZy5odG1sOiBhZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvcm91
dGluZXMuanM6CisKIDIwMjAtMDQtMTYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2Nyb2xsaW5nLXRyZWUgaGl0LXRlc3RpbmcgaXMgb2ZmIGJ5IHRv
cCBjb250ZW50IGluc2V0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWRlY3JlYXNpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZp
ZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZGZjZGVmOTE2YzViZWFlZGIwYmNmMjgzOTZkZmRkNTBjOGI0YTk2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZy
YW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKwor
CitQQVNTIGNsb25lIGFuZCBhcHBseUNvbnN0cmFpbnRzIHRvIGRlY3JlYXNlIGZyYW1lIHJhdGUg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10
cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtZGVjcmVhc2luZy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1k
ZWNyZWFzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRhNTZlMGFhMzhjZTRlZjUyMGUxZjA0ZTlkMzQw
ZGFlMjM4NjZiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtZGVjcmVhc2luZy5odG1s
CkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkFkYXB0IGNhbWVyYSB0cmFjayBmcmFt
ZXJhdGU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjID0iLi4vLi4vd2VicnRj
L3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDx2aWRlbyBhdXRv
cGxheSBpZD0idmlkZW8iPjwvdmlkZW8+CisgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdChhc3lu
YyAodCkgPT4geworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiA3MjAsIGZyYW1lUmF0ZSA6IDMwIH0g
fSk7CisgICAgY29uc3Qgc3RyZWFtMiA9IHN0cmVhbTEuY2xvbmUoKTsKKworICAgIGF3YWl0IHN0
cmVhbTIuZ2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHsgd2lkdGggOiAxNjAs
IGZyYW1lUmF0ZSA6IDUgfSk7CisKKyAgICAvLyBXZSBhZGFwdCBmcmFtZSByYXRlIGFmdGVyIDEg
c2Vjb25kIG9mIHNhbXBsZXMuCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRU
aW1lb3V0KHJlc29sdmUsIDEwMDApKTsgCisKKyAgICBsZXQgZnJhbWVSYXRlID0gYXdhaXQgY29t
cHV0ZUZyYW1lUmF0ZShzdHJlYW0xLCB2aWRlbyk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihm
cmFtZVJhdGUsIDEwLCAic3RyZWFtMSBmcmFtZSByYXRlIGFib3ZlIDEwIik7CisgICAgYXNzZXJ0
X2xlc3NfdGhhbihmcmFtZVJhdGUsIDYwLCAic3RyZWFtMSBmcmFtZSByYXRlIGJlbG93IDYwIik7
CisKKyAgICBmcmFtZVJhdGUgPSBhd2FpdCBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbTIsIHZpZGVv
KTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGZyYW1lUmF0ZSwgMSwgInN0cmVhbTIgZnJhbWUg
cmF0ZSBhYm92ZSAxIik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihmcmFtZVJhdGUsIDIwLCAic3Ry
ZWFtMiBmcmFtZSByYXRlIGJlbG93IDIwIik7Cit9LCAiY2xvbmUgYW5kIGFwcGx5Q29uc3RyYWlu
dHMgdG8gZGVjcmVhc2UgZnJhbWUgcmF0ZSIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVh
bXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1pbmNyZWFzaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJh
dGUtY2xvbmUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjRkYmU1ZDE2MjI4
ZDllYTk2MWMwZjNkMTQ5ZDZhMjNmOWQ5NDFlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xv
bmUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBjbG9u
ZSBhbmQgYXBwbHlDb25zdHJhaW50cyB0byBpbmNyZWFzZSBmcmFtZSByYXRlIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8t
ZnJhbWVSYXRlLWNsb25lLWluY3JlYXNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtaW5jcmVhc2luZy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ3NGJiNzU4ZjdkYThhMzJlOWU4NjU4ZGM0YWYzZDJlYWNiNzE5OWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3Ry
ZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWluY3JlYXNpbmcuaHRtbApAQCAtMCwwICsx
LDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorICAgIDx0aXRsZT5BZGFwdCBjYW1lcmEgdHJhY2sgZnJhbWVyYXRlPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYyA9Ii4uLy4uL3dlYnJ0Yy9yb3V0aW5lcy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkgaWQ9InZp
ZGVvIj48L3ZpZGVvPgorICAgIDxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsK
KyAgICBjb25zdCBzdHJlYW0xID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoeyB2aWRlbzogeyB3aWR0aDogMTYwLCBmcmFtZVJhdGUgOiA1IH0gfSk7CisgICAgY29u
c3Qgc3RyZWFtMiA9IHN0cmVhbTEuY2xvbmUoKTsKKworICAgIGF3YWl0IHN0cmVhbTIuZ2V0Vmlk
ZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHsgd2lkdGggOiA3MjAsIGZyYW1lUmF0ZSA6
IDMwIH0pOworCisgICAgLy8gV2UgYWRhcHQgZnJhbWUgcmF0ZSBhZnRlciAxIHNlY29uZCBvZiBz
YW1wbGVzLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNv
bHZlLCAxMDAwKSk7IAorCisgICAgbGV0IGZyYW1lUmF0ZSA9IGF3YWl0IGNvbXB1dGVGcmFtZVJh
dGUoc3RyZWFtMSwgdmlkZW8pOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAx
LCAic3RyZWFtMSBmcmFtZSByYXRlIGFib3ZlIDEiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKGZy
YW1lUmF0ZSwgMjAsICJzdHJlYW0xIGZyYW1lIHJhdGUgYmVsb3cgMjAiKTsKKworICAgIGZyYW1l
UmF0ZSA9IGF3YWl0IGNvbXB1dGVGcmFtZVJhdGUoc3RyZWFtMiwgdmlkZW8pOworICAgIGFzc2Vy
dF9ncmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAxMCwgInN0cmVhbTIgZnJhbWUgcmF0ZSBhYm92ZSAx
MCIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oZnJhbWVSYXRlLCA2MCwgInN0cmVhbTIgZnJhbWUg
cmF0ZSBiZWxvdyA2MCIpOworfSwgImNsb25lIGFuZCBhcHBseUNvbnN0cmFpbnRzIHRvIGluY3Jl
YXNlIGZyYW1lIHJhdGUiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRl
by1mcmFtZVJhdGUtZGVjcmVhc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWRlY3JlYXNpbmctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkMWJkY2FiODk1NzkwNGU3NDIyODI4NzA1YTJiY2Q4NWRl
NmRhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21l
ZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWRlY3JlYXNpbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorCisKK1BBU1MgZ2V0VXNlck1lZGlhIHdpdGggZGVjcmVhc2luZyBmcmFt
ZSByYXRlcyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRp
YXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1kZWNyZWFzaW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWRlY3Jl
YXNpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODJmZTRiYTgyNzRmN2I4NDcyYjUxNmY3MjAzYmQ5Mjg1
YTJlMGY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9t
ZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1kZWNyZWFzaW5nLmh0bWwKQEAgLTAsMCAr
MSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+QWRhcHQgY2FtZXJhIHRyYWNrIGZyYW1lcmF0ZTwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmMgPSIuLi8uLi93ZWJydGMvcm91dGluZXMu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvIGF1dG9wbGF5IGlkPSJ2
aWRlbyI+PC92aWRlbz4KKyAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
CisgICAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IDcyMCwgZnJhbWVSYXRlIDogMzAgfSB9KTsKKyAgICBj
b25zdCBzdHJlYW0yID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
eyB2aWRlbzogeyB3aWR0aDogMTYwLCBmcmFtZVJhdGUgOiA1IH0gfSk7CisKKyAgICAvLyBXZSBh
ZGFwdCBmcmFtZSByYXRlIGFmdGVyIDEgc2Vjb25kIG9mIHNhbXBsZXMuCisgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTsgCisKKyAgICBp
ZiAoIXN0cmVhbTEuZ2V0VmlkZW9UcmFja3MoKVswXS5tdXRlZCkgeworICAgICAgICBjb25zdCBm
cmFtZVJhdGUgPSBhd2FpdCBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbTEsIHZpZGVvKTsKKyAgICAg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihmcmFtZVJhdGUsIDEwLCAic3RyZWFtMSBmcmFtZSByYXRl
IGFib3ZlIDEwIik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW4oZnJhbWVSYXRlLCA2MCwgInN0
cmVhbTEgZnJhbWUgcmF0ZSBiZWxvdyA2MCIpOworICAgIH0KKworICAgIGNvbnN0IGZyYW1lUmF0
ZSA9IGF3YWl0IGNvbXB1dGVGcmFtZVJhdGUoc3RyZWFtMiwgdmlkZW8pOworICAgIGFzc2VydF9n
cmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAxLCAic3RyZWFtMiBmcmFtZSByYXRlIGFib3ZlIDEiKTsK
KyAgICBhc3NlcnRfbGVzc190aGFuKGZyYW1lUmF0ZSwgMjAsICJzdHJlYW0yIGZyYW1lIHJhdGUg
YmVsb3cgMjAiKTsKK30sICJnZXRVc2VyTWVkaWEgd2l0aCBkZWNyZWFzaW5nIGZyYW1lIHJhdGVz
Iik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWlu
Y3JlYXNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRp
YXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1pbmNyZWFzaW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ZGFiNjJlYzBkYmM0Y2M4NzgxNGFkMDdkMzA4MDZmZGY5Y2FlOTM4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNr
LXZpZGVvLWZyYW1lUmF0ZS1pbmNyZWFzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
KworCitQQVNTIGdldFVzZXJNZWRpYSB3aXRoIGluY3JlYXNpbmcgZnJhbWUgcmF0ZXMgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12
aWRlby1mcmFtZVJhdGUtaW5jcmVhc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1pbmNyZWFzaW5nLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjBkZTE5NGE0YjRmZTUwNDgxOGNmYWY0ZjBlZDRlODk1MjdlN2ZjNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFj
ay12aWRlby1mcmFtZVJhdGUtaW5jcmVhc2luZy5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cisg
ICAgPHRpdGxlPkFkYXB0IGNhbWVyYSB0cmFjayBmcmFtZXJhdGU8L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjID0iLi4vLi4vd2VicnRjL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDx2aWRlbyBhdXRvcGxheSBpZD0idmlkZW8iPjwvdmlkZW8+
CisgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IHN0
cmVhbTEgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVv
OiB7IHdpZHRoOiAxNjAsIGZyYW1lUmF0ZSA6IDUgfSB9KTsKKyAgICBjb25zdCBzdHJlYW0yID0g
YXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2aWRlbzogeyB3aWR0
aDogNzIwLCBmcmFtZVJhdGUgOiAzMCB9IH0pOworCisgICAgLy8gV2UgYWRhcHQgZnJhbWUgcmF0
ZSBhZnRlciAxIHNlY29uZCBvZiBzYW1wbGVzLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorCisgICAgaWYgKCFzdHJlYW0xLmdl
dFZpZGVvVHJhY2tzKClbMF0ubXV0ZWQpIHsKKyAgICAgICAgY29uc3QgZnJhbWVSYXRlID0gYXdh
aXQgY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0xLCB2aWRlbyk7CisgICAgICAgIGFzc2VydF9ncmVh
dGVyX3RoYW4oZnJhbWVSYXRlLCAxLCAic3RyZWFtMSBmcmFtZSByYXRlIGFib3ZlIDEiKTsKKyAg
ICAgICAgYXNzZXJ0X2xlc3NfdGhhbihmcmFtZVJhdGUsIDIwLCAic3RyZWFtMSBmcmFtZSByYXRl
IGJlbG93IDIwIik7CisgICAgfQorCisgICAgY29uc3QgZnJhbWVSYXRlID0gYXdhaXQgY29tcHV0
ZUZyYW1lUmF0ZShzdHJlYW0yLCB2aWRlbyk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihmcmFt
ZVJhdGUsIDEwLCAic3RyZWFtMiBmcmFtZSByYXRlIGFib3ZlIDEwIik7CisgICAgYXNzZXJ0X2xl
c3NfdGhhbihmcmFtZVJhdGUsIDYwLCAic3RyZWFtMiBmcmFtZSByYXRlIGJlbG93IDYwIik7Cit9
LCAiZ2V0VXNlck1lZGlhIHdpdGggaW5jcmVhc2luZyBmcmFtZSByYXRlcyIpOworICAgIDwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3Jv
dXRpbmVzLmpzIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCmluZGV4IGIxMzU4ZDRj
NDk4Yjc2YjU5NTdkMDk3ZDk3Y2MxYmE2MzhmODgwMmQuLmRmMDY1NDI5ODQwYTRmMDRiMmMxOWFl
MmMyMTQ2YTkzZDg1ZGU5YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5l
cy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKQEAgLTIyNSwzICsyMjUs
NDUgQEAgYXN5bmMgZnVuY3Rpb24gZ2V0VHlwZWRTdGF0cyhjb25uZWN0aW9uLCB0eXBlKQogICAg
IH0pOwogICAgIHJldHVybiBzdGF0czsKIH0KKworZnVuY3Rpb24gZ2V0UmVjZWl2ZWRUcmFja1N0
YXRzKGNvbm5lY3Rpb24pCit7CisgICAgcmV0dXJuIGNvbm5lY3Rpb24uZ2V0U3RhdHMoKS50aGVu
KChyZXBvcnQpID0+IHsKKyAgICAgICAgdmFyIHN0YXRzOworICAgICAgICByZXBvcnQuZm9yRWFj
aCgoc3RhdEl0ZW0pID0+IHsKKyAgICAgICAgICAgIGlmIChzdGF0SXRlbS50eXBlID09PSAidHJh
Y2siKSB7CisgICAgICAgICAgICAgICAgc3RhdHMgPSBzdGF0SXRlbTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBzdGF0czsKKyAgICB9KTsKK30KKworYXN5bmMg
ZnVuY3Rpb24gY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0sIHZpZGVvKQoreworICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJlYW1UcmFj
ayhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSk7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAgICByZXR1cm4g
aW50ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKKyAgICB9CisKKyAgICBsZXQgY29ubmVj
dGlvbjsKKyAgICB2aWRlby5zcmNPYmplY3QgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICAgIGNyZWF0ZUNvbm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24p
ID0+IHsKKyAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayhzdHJlYW0uZ2V0Vmlk
ZW9UcmFja3MoKVswXSwgc3RyZWFtKTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+
IHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAgICAg
ICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAg
ICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAgICB9Owor
ICAgICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQg
b3V0IiksIDUwMDApOworICAgIH0pOworCisgICAgYXdhaXQgdmlkZW8ucGxheSgpOworCisgICAg
Y29uc3Qgc3RhdHMxID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwor
ICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAw
KSk7IAorICAgIGNvbnN0IHN0YXRzMiA9IGF3YWl0IGdldFJlY2VpdmVkVHJhY2tTdGF0cyhjb25u
ZWN0aW9uKTsKKyAgICByZXR1cm4gKHN0YXRzMi5mcmFtZXNSZWNlaXZlZCAtIHN0YXRzMS5mcmFt
ZXNSZWNlaXZlZCkgKiAxMDAwIC8gKHN0YXRzMi50aW1lc3RhbXAgLSBzdGF0czEudGltZXN0YW1w
KTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396970</attachid>
            <date>2020-04-20 06:48:28 -0700</date>
            <delta_ts>2020-04-20 07:37:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210186-20200420154826.patch</filename>
            <type>text/plain</type>
            <size>25738</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZiNmY5MTlhZWQzNDIz
YzM4ZTA5OTA3M2Y2NTU4OTljZTMwOWVkYS4uNjAxOWYzZWJlZmRmYzJkNjAxNTYyMzQzYzkzZTYy
YWU0MWEzYTliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA0LTIwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTYWZhcmkgZG9lc24ndCBh
cHBseSBmcmFtZVJhdGUgbGltaXQgd2hlbiByZXF1ZXN0IHN0cmVhbSBmcm9tIENhbWVyYQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTg2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82MTQ1Mjc5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgdG8gUmVhbHRpbWVWaWRlb1NvdXJjZSB0
byBkZWNpbWF0ZSB0aGUgdmlkZW8gc2FtcGxlcyBiYXNlZCBvbiB0aGUgb2JzZXJ2ZWQgZnJhbWUg
cmF0ZSBvZiBpdHMgY2FwdHVyZSBzb3VyY2UuCisgICAgICAgIFRoaXMgYWxsb3dzIHN1cHBvcnRp
bmcgdHdvIHRyYWNrcyB1c2luZyB0aGUgc2FtZSBjYXB0dXJlIGRldmljZSwgb25lIHRyYWNrIGJl
aW5nIGxvdyBmcmFtZSByYXRlIGFuZCB0aGUgb3RoZXIgb25lIGhpZ2ggZnJhbWUgcmF0ZS4KKwor
ICAgICAgICBDbGVhbi11cCByZWZhY3RvcmluZyB0byBtYWtlIFJlYWx0aW1lVmlkZW9Tb3VyY2Ug
ZGlyZWN0bHkgaW5oZXJpdCBmcm9tIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLgorICAgICAg
ICBNaWdyYXRlIHNpemUgYW5kIGZvcm1hdCBvZiBmcmFtZSBhZGFwdGF0aW9uIGZyb20gUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UgdG8gUmVhbHRpbWVWaWRlb1NvdXJjZS4KKyAgICAgICAgRml4
IG1vY2sgY2FwdHVyZSBzb3VyY2UgdG8gdXBkYXRlIGl0cyBmcmFtZSByYXRlIHdoZW4gYXNrZWQg
YnkgYXBwbHlDb25zdHJhaW50cy4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9t
ZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFt
ZVJhdGUtY2xvbmUtaW5jcmVhc2luZy5odG1sCisgICAgICAgICAgICAgICBmYXN0L21lZGlhc3Ry
ZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWRlY3JlYXNpbmcuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1l
UmF0ZS1pbmNyZWFzaW5nLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlOjpkaXNwYXRjaE1lZGlhU2FtcGxlVG9PYnNlcnZlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmNsaWVudFVwZGF0ZWRT
aXplQW5kRnJhbWVSYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2U6Om9ic2VydmVkRnJhbWVSYXRlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlYWx0aW1lVmlkZW9Tb3VyY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6bV9zb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb1NvdXJjZTo6
YWRhcHRWaWRlb1NhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvU291cmNl
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6b2JzZXJ2ZU1lZGlhU3RyZWFt
VHJhY2spOgorCiAyMDIwLTA0LTIwICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RydWN0dXJlZENsb25lIGFsZ29yaXRobSBzaG91bGQgYmUgYXdhcmUgb2Yg
QmlnSW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggM2RiNzg3OGQy
NjE4ZWFjMDkyNWZlNGNlNzJmZDU3YjA3YjQ0NjQ4OS4uNGJiZDI3ZDJhYmFkYTIyYTAwMmUwYmU3
YjFiOTE3ZjBjYjQyNjg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApA
QCAtMzQsMTAgKzM0LDYgQEAKICNpbmNsdWRlICJSZW1vdGVWaWRlb1NhbXBsZS5oIgogI2luY2x1
ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlICJJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZULmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uo
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KQpAQCAtMzc2LDcg
KzM3Miw3IEBAIHZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnNldFNpemVBbmRGcmFt
ZVJhdGUoT3B0aW9uYWw8aW50PiB3aWR0aCwgT3B0aW9uCiAgICAgc2V0RnJhbWVSYXRlKG1hdGNo
LT5yZXF1ZXN0ZWRGcmFtZVJhdGUpOwogfQogCi1SZWZQdHI8TWVkaWFTYW1wbGU+IFJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlOjphZGFwdFZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUp
Cit2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpkaXNwYXRjaE1lZGlhU2FtcGxlVG9P
YnNlcnZlcnMoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBNZWRpYVRpbWUgc2FtcGxlVGlt
ZSA9IHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCk7CiAKQEAgLTM5MCwzMyArMzg2LDcgQEAgUmVm
UHRyPE1lZGlhU2FtcGxlPiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6YWRhcHRWaWRlb1Nh
bXBsZShNZWRpYVNhbXBsZSYgc2EKICAgICBpZiAoaW50ZXJ2YWwgPiAxKQogICAgICAgICBtX29i
c2VydmVkRnJhbWVSYXRlID0gKG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHMuc2l6ZSgpIC8gaW50
ZXJ2YWwpOwogCi0gICAgYXV0byBtZWRpYVNhbXBsZSA9IG1ha2VSZWZQdHIoJnNhbXBsZSk7Ci0K
LSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBhdXRvIHNpemUgPSB0aGlzLT5zaXplKCk7Ci0gICAg
aWYgKCFzaXplLmlzRW1wdHkoKSAmJiBzaXplICE9IGV4cGFuZGVkSW50U2l6ZShzYW1wbGUucHJl
c2VudGF0aW9uU2l6ZSgpKSkgewotCi0gICAgICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHNhbXBsZS52aWRl
b1BpeGVsRm9ybWF0KCkpCi0gICAgICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpOwot
Ci0gICAgICAgIEFTU0VSVChtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKTsKLSAgICAgICAgaWYgKG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKLSAgICAgICAgICAgIG1lZGlhU2FtcGxlID0gbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbi0+Y29udmVydE1lZGlhU2FtcGxlKHNhbXBsZSwgc2l6ZSk7Ci0gICAg
ICAgICAgICBpZiAoIW1lZGlhU2FtcGxlKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiBtZWRpYVNhbXBsZS5yZWxl
YXNlTm9uTnVsbCgpOwotfQotCi12b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpkaXNw
YXRjaE1lZGlhU2FtcGxlVG9PYnNlcnZlcnMoTWVkaWFTYW1wbGUmIHNhbXBsZSkKLXsKLSAgICBp
ZiAoYXV0byBtZWRpYVNhbXBsZSA9IGFkYXB0VmlkZW9TYW1wbGUoc2FtcGxlKSkKLSAgICAgICAg
dmlkZW9TYW1wbGVBdmFpbGFibGUoKm1lZGlhU2FtcGxlKTsKKyAgICB2aWRlb1NhbXBsZUF2YWls
YWJsZShzYW1wbGUpOwogfQogCiB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpjbGll
bnRVcGRhdGVkU2l6ZUFuZEZyYW1lUmF0ZShPcHRpb25hbDxpbnQ+IHdpZHRoLCBPcHRpb25hbDxp
bnQ+IGhlaWdodCwgT3B0aW9uYWw8ZG91YmxlPiBmcmFtZVJhdGUpCkBAIC00MjcsOSArMzk3LDEw
IEBAIHZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmNsaWVudFVwZGF0ZWRTaXplQW5k
RnJhbWVSYXRlKE9wdGlvbmFsPGludD4gd2lkCiAgICAgICAgIHdpZHRoID0geyB9OwogICAgIGlm
IChoZWlnaHQgJiYgKmhlaWdodCA8IHN0YXRpY19jYXN0PGludD4oc2V0dGluZ3MuaGVpZ2h0KCkp
KQogICAgICAgICBoZWlnaHQgPSB7IH07CisgICAgaWYgKGZyYW1lUmF0ZSAmJiAqZnJhbWVSYXRl
IDwgc3RhdGljX2Nhc3Q8ZG91YmxlPihzZXR0aW5ncy5mcmFtZVJhdGUoKSkpCisgICAgICAgIGZy
YW1lUmF0ZSA9IHsgfTsKIAotICAgIC8vIEZJWE1FOiBoYW5kbGUgZnJhbWVSYXRlIHBvdGVudGlh
bCBpbmNyZWFzZS4KLSAgICBpZiAoIXdpZHRoICYmICFoZWlnaHQpCisgICAgaWYgKCF3aWR0aCAm
JiAhaGVpZ2h0ICYmICFmcmFtZVJhdGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gbWF0
Y2ggPSBiZXN0U3VwcG9ydGVkU2l6ZUFuZEZyYW1lUmF0ZSh3aWR0aCwgaGVpZ2h0LCBmcmFtZVJh
dGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggYTYxYzE4NmYyOGQ2YTA2
MjBjZGJmY2U4OGZhNzQwMzE4MjczOTU3Ni4uNDQ1MjFjNWJmOWJmZDBiYTIyMGQ2ZmE2NzVhN2Yw
ZDNlZTgwN2YzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC00OCw2ICs0
OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVQcmVzZXRzKCkgPSAwOwog
ICAgIHZpcnR1YWwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gc2FtcGxlUm90YXRpb24oKSBj
b25zdCB7IHJldHVybiBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZTsgfQogCisgICAg
ZG91YmxlIG9ic2VydmVkRnJhbWVSYXRlKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlZEZyYW1l
UmF0ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3Ry
aW5nJiYgbmFtZSwgU3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKIApAQCAtNjksMTEg
KzcxLDggQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBzZXREZWZhdWx0U2l6ZShjb25zdCBJbnRT
aXplJiBzaXplKSB7IG1fZGVmYXVsdFNpemUgPSBzaXplOyB9CiAKLSAgICBkb3VibGUgb2JzZXJ2
ZWRGcmFtZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVkRnJhbWVSYXRlOyB9Ci0KICAg
ICB2b2lkIGRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYpOwogICAg
IGNvbnN0IFZlY3RvcjxJbnRTaXplPiYgc3RhbmRhcmRWaWRlb1NpemVzKCk7Ci0gICAgUmVmUHRy
PE1lZGlhU2FtcGxlPiBhZGFwdFZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJik7CiAKIHByaXZhdGU6
CiAgICAgc3RydWN0IENhcHR1cmVTaXplQW5kRnJhbWVSYXRlIHsKQEAgLTkzLDkgKzkyLDYgQEAg
cHJpdmF0ZToKICAgICBEZXF1ZTxkb3VibGU+IG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHM7CiAg
ICAgZG91YmxlIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgeyAwIH07CiAgICAgSW50U2l6ZSBtX2RlZmF1
bHRTaXplOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwotI2VuZGlmCiB9OwogCiBz
dHJ1Y3QgU2l6ZUFuZEZyYW1lUmF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IGJkZTVj
M2NkZGZlYjNjMGY2Yjc2NTFkN2FiODM1ZDNhYjdmZmQ5NTYuLmQ0ODczNGMxZjYwMjY2NzNhYTk3
ODIzOTQ2MDRhNDA2MTY3M2E5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC0yOCwxNSAr
MjgsMjAgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpZiBQTEFURk9STShDT0NP
QSkKKyNpbmNsdWRlICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBSZWFsdGltZVZpZGVvU291cmNlOjpSZWFsdGltZVZpZGVvU291cmNl
KFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4mJiBzb3VyY2UpCi0gICAgOiBSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcgeyBzb3VyY2UtPm5hbWUoKSB9LCBTdHJpbmcgeyBz
b3VyY2UtPnBlcnNpc3RlbnRJRCgpIH0sIFN0cmluZyB7IHNvdXJjZS0+ZGV2aWNlSURIYXNoU2Fs
dCgpIH0pCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFR5cGU6OlZpZGVvLCBTdHJpbmcgeyBz
b3VyY2UtPm5hbWUoKSB9LCBTdHJpbmcgeyBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpIH0sIFN0cmlu
ZyB7IHNvdXJjZS0+ZGV2aWNlSURIYXNoU2FsdCgpIH0pCiAgICAgLCBtX3NvdXJjZShXVEZNb3Zl
KHNvdXJjZSkpCiB7CiAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICBtX2N1
cnJlbnRTZXR0aW5ncyA9IG1fc291cmNlLT5zZXR0aW5ncygpOwogICAgIHNldFNpemUobV9zb3Vy
Y2UtPnNpemUoKSk7CisgICAgc2V0RnJhbWVSYXRlKG1fc291cmNlLT5mcmFtZVJhdGUoKSk7CiB9
CiAKIFJlYWx0aW1lVmlkZW9Tb3VyY2U6On5SZWFsdGltZVZpZGVvU291cmNlKCkKQEAgLTE0Miwx
MyArMTQ3LDQ2IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c291cmNlU3RvcHBlZCgpCiAg
ICAgfSk7CiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkKK1JlZlB0cjxNZWRpYVNhbXBsZT4gUmVh
bHRpbWVWaWRlb1NvdXJjZTo6YWRhcHRWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQor
eworICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uLT5waXhlbEZvcm1hdCgpICE9IHNhbXBsZS52aWRlb1BpeGVsRm9ybWF0KCkpCisgICAgICAg
IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUo
c2FtcGxlLnZpZGVvUGl4ZWxGb3JtYXQoKSk7CisKKyAgICBBU1NFUlQobV9pbWFnZVRyYW5zZmVy
U2Vzc2lvbik7CisgICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIGF1dG8gbWVkaWFTYW1wbGUgPSBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uLT5jb252ZXJ0TWVkaWFTYW1wbGUoc2FtcGxlLCBzaXplKCkpOworICAgIEFTU0VSVChtZWRp
YVNhbXBsZSk7CisKKyAgICByZXR1cm4gbWVkaWFTYW1wbGU7Cit9CisjZW5kaWYKKwogdm9pZCBS
ZWFsdGltZVZpZGVvU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2Ft
cGxlKQogewogICAgIGlmICghaXNQcm9kdWNpbmdEYXRhKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChhdXRvIG1lZGlhU2FtcGxlID0gYWRhcHRWaWRlb1NhbXBsZShzYW1wbGUpKQotICAg
ICAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqbWVkaWFTYW1w
bGUpOworICAgIGlmIChtX2ZyYW1lRGVjaW1hdGlvbiA+IDEgJiYgKyttX2ZyYW1lRGVjaW1hdGlv
bkNvdW50ZXIgJSBtX2ZyYW1lRGVjaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9m
cmFtZURlY2ltYXRpb24gPSBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fc291cmNlLT5vYnNlcnZlZEZy
YW1lUmF0ZSgpIC8gZnJhbWVSYXRlKCkpOworICAgIGlmICghbV9mcmFtZURlY2ltYXRpb24pCisg
ICAgICAgIG1fZnJhbWVEZWNpbWF0aW9uID0gMTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKKyAgICBpZiAoIXNpemUuaXNFbXB0eSgpICYmIHNp
emUgIT0gZXhwYW5kZWRJbnRTaXplKHNhbXBsZS5wcmVzZW50YXRpb25TaXplKCkpKSB7CisgICAg
ICAgIGlmIChhdXRvIG1lZGlhU2FtcGxlID0gYWRhcHRWaWRlb1NhbXBsZShzYW1wbGUpKSB7Cisg
ICAgICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqbWVk
aWFTYW1wbGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorI2VuZGlm
CisKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShzYW1wbGUp
OwogfQogCiBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2xv
bmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IGIwN2JlNjA5YzYzMjM4OWQ4MmYyZGY4MTBhOTUw
MDkzZDFhNmY0ZDcuLmJlYWQzYjk1ZDk1N2U4YzYxMjQxNTM3M2EwM2RmN2EwMjM5OWE3MmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvU291cmNlLmgKQEAgLTMxLDggKzMxLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0vLyBGSVhNRTogTWFrZSBSZWFsdGltZVZpZGVvU291cmNlIGRlcml2ZSBmcm9tIFJlYWx0
aW1lTWVkaWFTb3VyY2UgZGlyZWN0bHkuCi1jbGFzcyBSZWFsdGltZVZpZGVvU291cmNlIGZpbmFs
IDogcHVibGljIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLCBwdWJsaWMgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6T2JzZXJ2ZXIgeworY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsKKworY2xh
c3MgUmVhbHRpbWVWaWRlb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNl
LCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIgewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8UmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlKFJlZjxSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZT4mJiBzb3VyY2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVhbHRpbWVWaWRl
b1NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpKTsgfQogCkBAIC01MSw3ICs1Miw2IEBAIHByaXZhdGU6
CiAKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRp
ZXMoKSBmaW5hbCB7IHJldHVybiBtX3NvdXJjZS0+Y2FwYWJpbGl0aWVzKCk7IH0KICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1cm4g
bV9jdXJyZW50U2V0dGluZ3M7IH0KLSAgICB2b2lkIGdlbmVyYXRlUHJlc2V0cygpIGZpbmFsIHsg
bV9zb3VyY2UtPmdlbmVyYXRlUHJlc2V0cygpOyB9CiAgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZS0+aXNDYXB0dXJlU291cmNlKCk7IH0KICAg
ICBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3NvdXJjZS0+ZGV2aWNlVHlwZSgpOyB9CiAgICAgdm9pZCBtb25pdG9yT3JpZW50YXRp
b24oT3JpZW50YXRpb25Ob3RpZmllciYgbm90aWZpZXIpIGZpbmFsIHsgbV9zb3VyY2UtPm1vbml0
b3JPcmllbnRhdGlvbihub3RpZmllcik7IH0KQEAgLTY0LDEyICs2NCwyMSBAQCBwcml2YXRlOgog
ICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpIGZpbmFsOwogICAgIHZvaWQgdmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKIAorI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gYWRhcHRWaWRlb1NhbXBsZShNZWRpYVNhbXBs
ZSYpOworI2VuZGlmCisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB2b2lkIHNldExv
Z2dlcihjb25zdCBMb2dnZXImLCBjb25zdCB2b2lkKikgZmluYWw7CiAjZW5kaWYKIAogICAgIFJl
ZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uOworI2VuZGlmCisgICAgc2l6ZV90IG1fZnJhbWVEZWNpbWF0aW9uIHsgMSB9Owor
ICAgIHNpemVfdCBtX2ZyYW1lRGVjaW1hdGlvbkNvdW50ZXIgeyAwIH07CiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgdWludDY0X3QgbV9jbG9uZUNvdW50ZXIgeyAwIH07CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAKaW5kZXggMzQyMjE4ZGMyZTdiNTE5MjI2OTVlNGQwMGY0YTdkMGU2Mzll
Mjg0Ni4uNmUyNzg2MzYxNjE0MmExMzEyMjE0ZjQ1ZGVjYjRlZmRmZDg5NTY2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAKQEAgLTE4NywxMSArMTg3LDEzIEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldHRpbmdzKCkKICAgICByZXR1cm4g
bV9jdXJyZW50U2V0dGluZ3MudmFsdWUoKTsKIH0KIAotdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6c2V0RnJhbWVSYXRlV2l0aFByZXNldChkb3VibGUsIFJlZlB0cjxWaWRlb1ByZXNldD4g
cHJlc2V0KQordm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0RnJhbWVSYXRlV2l0aFBy
ZXNldChkb3VibGUgZnJhbWVSYXRlLCBSZWZQdHI8VmlkZW9QcmVzZXQ+IHByZXNldCkKIHsKICAg
ICBtX3ByZXNldCA9IFdURk1vdmUocHJlc2V0KTsKICAgICBpZiAobV9wcmVzZXQpCiAgICAgICAg
IHNldEludHJpbnNpY1NpemUobV9wcmVzZXQtPnNpemUpOworICAgIGlmIChpc1Byb2R1Y2luZ0Rh
dGEoKSkKKyAgICAgICAgbV9lbWl0RnJhbWVUaW1lci5zdGFydFJlcGVhdGluZygxX3MgLyBmcmFt
ZVJhdGUpOwogfQogCiBJbnRTaXplIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJlU2l6
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggOGMxYWVlZjM0
M2NkZDMwM2NjMzQzYzYxY2NhYjU0MjIwYjBhMWJiNS4uNGE4MGFhODA5ZTA3ZDI2YzJiYzY4ODE1
MDkwMGM4MzBmZjBlMWNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
NTAwMiw2ICs1MDAyLDE0IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRDYW1lcmFNZWRpYVN0cmVhbVRy
YWNrT3JpZW50YXRpb24oTWVkaWFTdHJlYW1UcmFjayYgdHJhY2ssIGluCiAKIHZvaWQgSW50ZXJu
YWxzOjpvYnNlcnZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaykKIHsK
KyAgICBpZiAobV90cmFja1NvdXJjZSkgeworICAgICAgICBtX3RyYWNrU291cmNlLT5yZW1vdmVP
YnNlcnZlcigqdGhpcyk7CisgICAgICAgIG1fdHJhY2tTb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxl
T2JzZXJ2ZXIoKnRoaXMpOworCisgICAgICAgIG1fdHJhY2tBdWRpb1NhbXBsZUNvdW50ID0gMDsK
KyAgICAgICAgbV90cmFja1ZpZGVvU2FtcGxlQ291bnQgPSAwOworICAgIH0KKwogICAgIG1fdHJh
Y2tTb3VyY2UgPSAmdHJhY2suc291cmNlKCk7CiAgICAgbV90cmFja1NvdXJjZS0+YWRkT2JzZXJ2
ZXIoKnRoaXMpOwogICAgIG1fdHJhY2tTb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRo
aXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDE2MTFkNDQ0ZTY1MTYxZWM3NDhhMjJhOTI1MjlmM2ZmYjZjNGJhYzAuLjEw
ZGYwOGMzNDQyMjQ0MTcyYzlhNjg5MGY2NmRjNjVjNjY2M2E3NGIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAyMC0wNC0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgU2FmYXJpIGRvZXNuJ3QgYXBwbHkgZnJhbWVSYXRlIGxpbWl0IHdoZW4gcmVxdWVzdCBz
dHJlYW0gZnJvbSBDYW1lcmEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMDE4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjE0NTI3OTQ+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0
cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVh
bXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUt
Y2xvbmUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtaW5jcmVhc2lu
Zy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJh
Y2stdmlkZW8tZnJhbWVyYXRlLWRlY3JlYXNpbmctZXhwZWN0ZWQudHh0OiBhZGRlZC4KKyAgICAg
ICAgKiBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVyYXRlLWRl
Y3JlYXNpbmcuaHRtbDogYWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0
cmVhbXRyYWNrLXZpZGVvLWZyYW1lcmF0ZS1pbmNyZWFzaW5nLWV4cGVjdGVkLnR4dDogYWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1l
cmF0ZS1pbmNyZWFzaW5nLmh0bWw6IGFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy9yb3V0aW5lcy5q
czoKKwogMjAyMC0wNC0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFN0cnVjdHVyZWRDbG9uZSBhbGdvcml0aG0gc2hvdWxkIGJlIGF3YXJlIG9mIEJpZ0lu
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRy
YWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUt
Y2xvbmUtZGVjcmVhc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRmY2RlZjkxNmM1YmVh
ZWRiMGJjZjI4Mzk2ZGZkZDUwYzhiNGE5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUt
ZGVjcmVhc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBjbG9uZSBh
bmQgYXBwbHlDb25zdHJhaW50cyB0byBkZWNyZWFzZSBmcmFtZSByYXRlIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJh
bWVSYXRlLWNsb25lLWRlY3JlYXNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtZGVjcmVhc2luZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVhNTg1MzdjZTdlNmIzZTQwOWE2YjliNDlkODE0MGY0NzBkZjljN2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFt
dHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWRlY3JlYXNpbmcuaHRtbApAQCAtMCwwICsxLDM3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorICAgIDx0aXRsZT5BZGFwdCBjYW1lcmEgdHJhY2sgZnJhbWVyYXRlPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYyA9Ii4uLy4uL3dlYnJ0Yy9yb3V0aW5lcy5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkgaWQ9InZpZGVv
Ij48L3ZpZGVvPgorICAgIDxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAg
ICBjb25zdCBzdHJlYW0xID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVk
aWEoeyB2aWRlbzogeyB3aWR0aDogNzIwLCBmcmFtZVJhdGUgOiAzMCB9IH0pOworICAgIGNvbnN0
IHN0cmVhbTIgPSBzdHJlYW0xLmNsb25lKCk7CisKKyAgICBhd2FpdCBzdHJlYW0yLmdldFZpZGVv
VHJhY2tzKClbMF0uYXBwbHlDb25zdHJhaW50cyh7IHdpZHRoIDogMTYwLCBmcmFtZVJhdGUgOiA1
IH0pOworCisgICAgLy8gV2UgYWRhcHQgZnJhbWUgcmF0ZSBhZnRlciAxIHNlY29uZCBvZiBzYW1w
bGVzLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZl
LCAxMDAwKSk7CisKKyAgICBsZXQgZnJhbWVSYXRlID0gYXdhaXQgY29tcHV0ZUZyYW1lUmF0ZShz
dHJlYW0xLCB2aWRlbyk7CisKKyAgICAvLyBPbiBoZWF2aWx5IGxvYWRlZCBib3RzLCBvdXIgbW9j
ayBjYXB0dXJlIHNvdXJjZSBtaWdodCBub3QgYmUgYWJsZSB0byBkZWxpdmVyIDMwIGZwcy4gT3Vy
IHRlc3Qgb25seSBtYWtlcyBzZW5zZSBpZiB3ZSBoYXZlIHN1ZmZpY2llbnQgZnBzLgorICAgIGlm
IChmcmFtZVJhdGUgPD0gMTApCisgICAgICAgIHJldHVybjsKKworICAgIGFzc2VydF9ncmVhdGVy
X3RoYW4oZnJhbWVSYXRlLCAxMCwgInN0cmVhbTEgZnJhbWUgcmF0ZSBhYm92ZSAxMCIpOworICAg
IGFzc2VydF9sZXNzX3RoYW4oZnJhbWVSYXRlLCA2MCwgInN0cmVhbTEgZnJhbWUgcmF0ZSBiZWxv
dyA2MCIpOworCisgICAgZnJhbWVSYXRlID0gYXdhaXQgY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0y
LCB2aWRlbyk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihmcmFtZVJhdGUsIDEsICJzdHJlYW0y
IGZyYW1lIHJhdGUgYWJvdmUgMSIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oZnJhbWVSYXRlLCAx
MCwgInN0cmVhbTIgZnJhbWUgcmF0ZSBiZWxvdyAxMCIpOworfSwgImNsb25lIGFuZCBhcHBseUNv
bnN0cmFpbnRzIHRvIGRlY3JlYXNlIGZyYW1lIHJhdGUiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVk
aWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbmUtaW5jcmVhc2luZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8t
ZnJhbWVSYXRlLWNsb25lLWluY3JlYXNpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ZGJl
NWQxNjIyOGQ5ZWE5NjFjMGYzZDE0OWQ2YTIzZjlkOTQxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVS
YXRlLWNsb25lLWluY3JlYXNpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BB
U1MgY2xvbmUgYW5kIGFwcGx5Q29uc3RyYWludHMgdG8gaW5jcmVhc2UgZnJhbWUgcmF0ZSAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNr
LXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1pbmNyZWFzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb25lLWluY3Jl
YXNpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWY0ZmM4NDA0MzcyYWY4NWY5NDM2Y2ViMWQ1ZDYyOTBh
NmZhZDIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9t
ZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9uZS1pbmNyZWFzaW5nLmh0bWwKQEAg
LTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+QWRhcHQgY2FtZXJhIHRyYWNrIGZyYW1lcmF0
ZTwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmMgPSIuLi8uLi93ZWJydGMvcm91
dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvIGF1dG9wbGF5
IGlkPSJ2aWRlbyI+PC92aWRlbz4KKyAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0
KSA9PiB7CisgICAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IDE2MCwgZnJhbWVSYXRlIDogNSB9IH0pOwor
ICAgIGNvbnN0IHN0cmVhbTIgPSBzdHJlYW0xLmNsb25lKCk7CisKKyAgICBhd2FpdCBzdHJlYW0y
LmdldFZpZGVvVHJhY2tzKClbMF0uYXBwbHlDb25zdHJhaW50cyh7IHdpZHRoIDogNzIwLCBmcmFt
ZVJhdGUgOiAzMCB9KTsKKworICAgIC8vIFdlIGFkYXB0IGZyYW1lIHJhdGUgYWZ0ZXIgMSBzZWNv
bmQgb2Ygc2FtcGxlcy4KKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVv
dXQocmVzb2x2ZSwgMTAwMCkpOworCisgICAgbGV0IGZyYW1lUmF0ZSA9IGF3YWl0IGNvbXB1dGVG
cmFtZVJhdGUoc3RyZWFtMiwgdmlkZW8pOworCisgICAgLy8gT24gaGVhdmlseSBsb2FkZWQgYm90
cywgb3VyIG1vY2sgY2FwdHVyZSBzb3VyY2UgbWlnaHQgbm90IGJlIGFibGUgdG8gZGVsaXZlciAz
MCBmcHMuIE91ciB0ZXN0IG9ubHkgbWFrZXMgc2Vuc2UgaWYgd2UgaGF2ZSBzdWZmaWNpZW50IGZw
cy4KKyAgICBpZiAoZnJhbWVSYXRlIDw9IDEwKQorICAgICAgICByZXR1cm47CisKKyAgICBhc3Nl
cnRfZ3JlYXRlcl90aGFuKGZyYW1lUmF0ZSwgMTAsICJzdHJlYW0yIGZyYW1lIHJhdGUgYWJvdmUg
MTAiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKGZyYW1lUmF0ZSwgNjAsICJzdHJlYW0yIGZyYW1l
IHJhdGUgYmVsb3cgNjAiKTsKKworICAgIGZyYW1lUmF0ZSA9IGF3YWl0IGNvbXB1dGVGcmFtZVJh
dGUoc3RyZWFtMSwgdmlkZW8pOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAx
LCAic3RyZWFtMSBmcmFtZSByYXRlIGFib3ZlIDEiKTsKKyAgICBhc3NlcnRfbGVzc190aGFuKGZy
YW1lUmF0ZSwgMTAsICJzdHJlYW0xIGZyYW1lIHJhdGUgYmVsb3cgMTAiKTsKK30sICJjbG9uZSBh
bmQgYXBwbHlDb25zdHJhaW50cyB0byBpbmNyZWFzZSBmcmFtZSByYXRlIik7CisgICAgPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21lZGlhc3RyZWFtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWRlY3JlYXNpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZp
ZGVvLWZyYW1lUmF0ZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDFiZGNh
Yjg5NTc5MDRlNzQyMjgyODcwNWEyYmNkODVkZTZkYTE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0
ZS1kZWNyZWFzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIGdldFVz
ZXJNZWRpYSB3aXRoIGRlY3JlYXNpbmcgZnJhbWUgcmF0ZXMgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUt
ZGVjcmVhc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVh
bXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1kZWNyZWFzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNjNjY2
YWQ4MzI4NjQ4ZDc2Yjk0ZGYyNzEwMWMxYjc4YzMzODg4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJh
dGUtZGVjcmVhc2luZy5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPkFkYXB0
IGNhbWVyYSB0cmFjayBmcmFtZXJhdGU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjID0iLi4vLi4vd2VicnRjL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDx2aWRlbyBhdXRvcGxheSBpZD0idmlkZW8iPjwvdmlkZW8+CisgICAgPHNjcmlwdD4K
K3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiA3MjAs
IGZyYW1lUmF0ZSA6IDMwIH0gfSk7CisgICAgY29uc3Qgc3RyZWFtMiA9IGF3YWl0IG5hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IDE2MCwgZnJhbWVS
YXRlIDogNSB9IH0pOworCisgICAgLy8gV2UgYWRhcHQgZnJhbWUgcmF0ZSBhZnRlciAxIHNlY29u
ZCBvZiBzYW1wbGVzLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91
dChyZXNvbHZlLCAxMDAwKSk7CisKKyAgICBpZiAoIXN0cmVhbTEuZ2V0VmlkZW9UcmFja3MoKVsw
XS5tdXRlZCkgeworICAgICAgICBjb25zdCBmcmFtZVJhdGUgPSBhd2FpdCBjb21wdXRlRnJhbWVS
YXRlKHN0cmVhbTEsIHZpZGVvKTsKKworICAgICAgICAvLyBPbiBoZWF2aWx5IGxvYWRlZCBib3Rz
LCBvdXIgbW9jayBjYXB0dXJlIHNvdXJjZSBtaWdodCBub3QgYmUgYWJsZSB0byBkZWxpdmVyIDMw
IGZwcy4gT3VyIHRlc3Qgb25seSBtYWtlcyBzZW5zZSBpZiB3ZSBoYXZlIHN1ZmZpY2llbnQgZnBz
LgorICAgICAgICBpZiAoZnJhbWVSYXRlIDw9IDEwKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAxMCwgInN0cmVhbTEgZnJhbWUg
cmF0ZSBhYm92ZSAxMCIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuKGZyYW1lUmF0ZSwgNjAs
ICJzdHJlYW0xIGZyYW1lIHJhdGUgYmVsb3cgNjAiKTsKKyAgICB9CisKKyAgICBjb25zdCBmcmFt
ZVJhdGUgPSBhd2FpdCBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbTIsIHZpZGVvKTsKKyAgICBhc3Nl
cnRfZ3JlYXRlcl90aGFuKGZyYW1lUmF0ZSwgMSwgInN0cmVhbTIgZnJhbWUgcmF0ZSBhYm92ZSAx
Iik7CisgICAgYXNzZXJ0X2xlc3NfdGhhbihmcmFtZVJhdGUsIDEwLCAic3RyZWFtMiBmcmFtZSBy
YXRlIGJlbG93IDEwIik7Cit9LCAiZ2V0VXNlck1lZGlhIHdpdGggZGVjcmVhc2luZyBmcmFtZSBy
YXRlcyIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhbXRyYWNrLXZpZGVvLWZyYW1lUmF0
ZS1pbmNyZWFzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
bWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmRhYjYyZWMwZGJjNGNjODc4MTRhZDA3ZDMwODA2ZmRmOWNhZTkzOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYW10
cmFjay12aWRlby1mcmFtZVJhdGUtaW5jcmVhc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACisKKworUEFTUyBnZXRVc2VyTWVkaWEgd2l0aCBpbmNyZWFzaW5nIGZyYW1lIHJhdGVzIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFtdHJh
Y2stdmlkZW8tZnJhbWVSYXRlLWluY3JlYXNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vbWVkaWFzdHJlYW10cmFjay12aWRlby1mcmFtZVJhdGUtaW5jcmVhc2luZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcxNWRhMGQ0Mzg5YzExYmU1YjAxM2QzZmQ0ZGJhODU3Mzc3NDY2MGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWFt
dHJhY2stdmlkZW8tZnJhbWVSYXRlLWluY3JlYXNpbmcuaHRtbApAQCAtMCwwICsxLDM3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorICAgIDx0aXRsZT5BZGFwdCBjYW1lcmEgdHJhY2sgZnJhbWVyYXRlPC90aXRsZT4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYyA9Ii4uLy4uL3dlYnJ0Yy9yb3V0aW5lcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkgaWQ9InZpZGVvIj48L3Zp
ZGVvPgorICAgIDxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgICBjb25z
dCBzdHJlYW0xID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2
aWRlbzogeyB3aWR0aDogMTYwLCBmcmFtZVJhdGUgOiA1IH0gfSk7CisgICAgY29uc3Qgc3RyZWFt
MiA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHsg
d2lkdGg6IDcyMCwgZnJhbWVSYXRlIDogMzAgfSB9KTsKKworICAgIC8vIFdlIGFkYXB0IGZyYW1l
IHJhdGUgYWZ0ZXIgMSBzZWNvbmQgb2Ygc2FtcGxlcy4KKyAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOworCisgICAgY29uc3QgZnJhbWVS
YXRlID0gYXdhaXQgY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0yLCB2aWRlbyk7CisKKyAgICAvLyBP
biBoZWF2aWx5IGxvYWRlZCBib3RzLCBvdXIgbW9jayBjYXB0dXJlIHNvdXJjZSBtaWdodCBub3Qg
YmUgYWJsZSB0byBkZWxpdmVyIDMwIGZwcy4gT3VyIHRlc3Qgb25seSBtYWtlcyBzZW5zZSBpZiB3
ZSBoYXZlIHN1ZmZpY2llbnQgZnBzLgorICAgIGlmIChmcmFtZVJhdGUgPD0gMTApCisgICAgICAg
IHJldHVybjsKKworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAxMCwgInN0cmVh
bTIgZnJhbWUgcmF0ZSBhYm92ZSAxMCIpOworICAgIGFzc2VydF9sZXNzX3RoYW4oZnJhbWVSYXRl
LCA2MCwgInN0cmVhbTIgZnJhbWUgcmF0ZSBiZWxvdyA2MCIpOworCisgICAgaWYgKCFzdHJlYW0x
LmdldFZpZGVvVHJhY2tzKClbMF0ubXV0ZWQpIHsKKyAgICAgICAgY29uc3QgZnJhbWVSYXRlID0g
YXdhaXQgY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0xLCB2aWRlbyk7CisgICAgICAgIGFzc2VydF9n
cmVhdGVyX3RoYW4oZnJhbWVSYXRlLCAxLCAic3RyZWFtMSBmcmFtZSByYXRlIGFib3ZlIDEiKTsK
KyAgICAgICAgYXNzZXJ0X2xlc3NfdGhhbihmcmFtZVJhdGUsIDEwLCAic3RyZWFtMSBmcmFtZSBy
YXRlIGJlbG93IDEwIik7CisgICAgfQorfSwgImdldFVzZXJNZWRpYSB3aXRoIGluY3JlYXNpbmcg
ZnJhbWUgcmF0ZXMiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9y
b3V0aW5lcy5qcwppbmRleCBiMTM1OGQ0YzQ5OGI3NmI1OTU3ZDA5N2Q5N2NjMWJhNjM4Zjg4MDJk
Li5kZjA2NTQyOTg0MGE0ZjA0YjJjMTlhZTJjMjE0NmE5M2Q4NWRlOWJlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3Jv
dXRpbmVzLmpzCkBAIC0yMjUsMyArMjI1LDQ1IEBAIGFzeW5jIGZ1bmN0aW9uIGdldFR5cGVkU3Rh
dHMoY29ubmVjdGlvbiwgdHlwZSkKICAgICB9KTsKICAgICByZXR1cm4gc3RhdHM7CiB9CisKK2Z1
bmN0aW9uIGdldFJlY2VpdmVkVHJhY2tTdGF0cyhjb25uZWN0aW9uKQoreworICAgIHJldHVybiBj
b25uZWN0aW9uLmdldFN0YXRzKCkudGhlbigocmVwb3J0KSA9PiB7CisgICAgICAgIHZhciBzdGF0
czsKKyAgICAgICAgcmVwb3J0LmZvckVhY2goKHN0YXRJdGVtKSA9PiB7CisgICAgICAgICAgICBp
ZiAoc3RhdEl0ZW0udHlwZSA9PT0gInRyYWNrIikgeworICAgICAgICAgICAgICAgIHN0YXRzID0g
c3RhdEl0ZW07CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gc3Rh
dHM7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNvbXB1dGVGcmFtZVJhdGUoc3RyZWFt
LCB2aWRlbykKK3sKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBpbnRlcm5h
bHMub2JzZXJ2ZU1lZGlhU3RyZWFtVHJhY2soc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0pOwor
ICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwg
MTAwMCkpOyAKKyAgICAgICAgcmV0dXJuIGludGVybmFscy50cmFja1ZpZGVvU2FtcGxlQ291bnQ7
CisgICAgfQorCisgICAgbGV0IGNvbm5lY3Rpb247CisgICAgdmlkZW8uc3JjT2JqZWN0ID0gYXdh
aXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBjcmVhdGVDb25u
ZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBmaXJzdENvbm5lY3Rp
b24uYWRkVHJhY2soc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIHN0cmVhbSk7CisgICAgICAg
IH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBjb25uZWN0aW9uID0gc2Vj
b25kQ29ubmVjdGlvbjsKKyAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0
cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVh
bXNbMF0pOworICAgICAgICAgICAgfTsKKyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQo
KCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKworICAgIGF3
YWl0IHZpZGVvLnBsYXkoKTsKKworICAgIGNvbnN0IHN0YXRzMSA9IGF3YWl0IGdldFJlY2VpdmVk
VHJhY2tTdGF0cyhjb25uZWN0aW9uKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOyAKKyAgICBjb25zdCBzdGF0czIgPSBhd2FpdCBn
ZXRSZWNlaXZlZFRyYWNrU3RhdHMoY29ubmVjdGlvbik7CisgICAgcmV0dXJuIChzdGF0czIuZnJh
bWVzUmVjZWl2ZWQgLSBzdGF0czEuZnJhbWVzUmVjZWl2ZWQpICogMTAwMCAvIChzdGF0czIudGlt
ZXN0YW1wIC0gc3RhdHMxLnRpbWVzdGFtcCk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>