<?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>170627</bug_id>
          
          <creation_ts>2017-04-07 16:51:32 -0700</creation_ts>
          <short_desc>WebRTC outgoing muted video sources should send black frames</short_desc>
          <delta_ts>2017-05-15 17:41:55 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1295544</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-07 16:51:32 -0700</bug_when>
    <thetext>It is not clear whether we should send black frames or just send one black frame and stop.
Submitted https://github.com/w3c/mediacapture-main/issues/441</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295546</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-04-07 16:52:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/31513869&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307376</commentid>
    <comment_count>2</comment_count>
      <attachid>309743</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-11 11:57:13 -0700</bug_when>
    <thetext>Created attachment 309743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308777</commentid>
    <comment_count>3</comment_count>
      <attachid>309743</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-15 13:42:09 -0700</bug_when>
    <thetext>Comment on attachment 309743
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Instead of sending one black frame and then another one asynchronously, we use the timer to send a black frame every second when outgoing source is muted.

Nit: this line should be wrapped to a more reasonable length.

&gt; LayoutTests/webrtc/video-mute.html:90
&gt; +	return Promise.reject(&quot;This test requires internals API&quot;);

Nit: indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308853</commentid>
    <comment_count>4</comment_count>
      <attachid>310179</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-15 16:34:09 -0700</bug_when>
    <thetext>Created attachment 310179
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308871</commentid>
    <comment_count>5</comment_count>
      <attachid>310187</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-15 16:55:58 -0700</bug_when>
    <thetext>Created attachment 310187
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308873</commentid>
    <comment_count>6</comment_count>
      <attachid>310189</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-15 16:59:53 -0700</bug_when>
    <thetext>Created attachment 310189
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308902</commentid>
    <comment_count>7</comment_count>
      <attachid>310189</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 17:41:54 -0700</bug_when>
    <thetext>Comment on attachment 310189
Patch for landing

Clearing flags on attachment: 310189

Committed r216892: &lt;http://trac.webkit.org/changeset/216892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308904</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 17:41:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309743</attachid>
            <date>2017-05-11 11:57:13 -0700</date>
            <delta_ts>2017-05-15 16:55:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170627-20170511115712.patch</filename>
            <type>text/plain</type>
            <size>8514</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc5Mjk3ODYxYjFmNWNl
NTI3NjllYzllMjJlZmJjMjdiNjFlMzVlNi4uNjBhYzQ0Y2U1MDA1NmI0OGNhMDNlNTAxYmE5MTU2
OTlkYjMwNTU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE3LTA1LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWJSVEMgb3V0Z29pbmcg
bXV0ZWQgdmlkZW8gc291cmNlcyBzaG91bGQgc2VuZCBibGFjayBmcmFtZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDYyNworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzE1MTM4Njk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ292ZXJlZCBieSB1cGRhdGVkIHRlc3QuCisKKyAgICAgICAgSW5zdGVh
ZCBvZiBzZW5kaW5nIG9uZSBibGFjayBmcmFtZSBhbmQgdGhlbiBhbm90aGVyIG9uZSBhc3luY2hy
b25vdXNseSwgd2UgdXNlIHRoZSB0aW1lciB0byBzZW5kIGEgYmxhY2sgZnJhbWUgZXZlcnkgc2Vj
b25kIHdoZW4gb3V0Z29pbmcgc291cmNlIGlzIG11dGVkLgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNvdXJj
ZUVuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZTo6c2VuZEJsYWNrRnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZTo6c2VuZEJsYWNrRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKworMjAxNy0wNS0xMSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgTmFtZSBXZWJSVEMgVGhyZWFkcwogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxOTc1CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggNjk2N2U3OTRhYmZj
MzE5NDhlNzI2Y2VjY2JiMmRhMDdkN2I5Nzc5Ni4uZGVjNTZiYjFlOTE1YmY0NzcyY2MxMjUzNGI1
MzYxZTZlMzU5ZGYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZS5jcHAKQEAgLTc4LDggKzc4LDEyIEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Ojpzb3VyY2VNdXRlZENoYW5nZWQoKQogICAgIEFTU0VSVChtX211dGVkICE9IG1fdmlkZW9Tb3Vy
Y2UtPm11dGVkKCkpOwogICAgIG1fbXV0ZWQgPSBtX3ZpZGVvU291cmNlLT5tdXRlZCgpOwogCi0g
ICAgaWYgKG1fbXV0ZWQgJiYgbV9zaW5rcy5zaXplKCkgJiYgbV9lbmFibGVkKQotICAgICAgICBz
ZW5kQmxhY2tGcmFtZSgpOworICAgIGlmIChtX211dGVkICYmIG1fc2lua3Muc2l6ZSgpICYmIG1f
ZW5hYmxlZCkgeworICAgICAgICBzZW5kQmxhY2tGcmFtZXMoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBpZiAobV9ibGFja0ZyYW1lVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9i
bGFja0ZyYW1lVGltZXIuc3RvcCgpOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQpAQCAtODcsOCArOTEsMTIgQEAgdm9pZCBSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkKICAgICBBU1NF
UlQobV9lbmFibGVkICE9IG1fdmlkZW9Tb3VyY2UtPmVuYWJsZWQoKSk7CiAgICAgbV9lbmFibGVk
ID0gbV92aWRlb1NvdXJjZS0+ZW5hYmxlZCgpOwogCi0gICAgaWYgKCFtX2VuYWJsZWQgJiYgbV9z
aW5rcy5zaXplKCkgJiYgIW1fbXV0ZWQpCi0gICAgICAgIHNlbmRCbGFja0ZyYW1lKCk7CisgICAg
aWYgKCFtX2VuYWJsZWQgJiYgbV9zaW5rcy5zaXplKCkgJiYgIW1fbXV0ZWQpIHsKKyAgICAgICAg
c2VuZEJsYWNrRnJhbWVzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1fYmxh
Y2tGcmFtZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fYmxhY2tGcmFtZVRpbWVyLnN0b3Ao
KTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNpemVGcm9tU291
cmNlKCkKQEAgLTExNSw3ICsxMjMsNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZTo6UmVtb3ZlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZAogICAgIG1f
c2lua3MucmVtb3ZlRmlyc3Qoc2luayk7CiB9CiAKLXZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlOjpzZW5kQmxhY2tGcmFtZSgpCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZTo6c2VuZEJsYWNrRnJhbWVzKCkKIHsKICAgICBpZiAoIW1fYmxhY2tGcmFtZSkgewogICAgICAg
ICBhdXRvIGZyYW1lID0gbV9idWZmZXJQb29sLkNyZWF0ZUJ1ZmZlcihtX3dpZHRoLCBtX2hlaWdo
dCk7CkBAIC0xMjMsOCArMTMxLDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6
OnNlbmRCbGFja0ZyYW1lKCkKICAgICAgICAgbV9ibGFja0ZyYW1lID0gV1RGTW92ZShmcmFtZSk7
CiAgICAgfQogICAgIHNlbmRPbmVCbGFja0ZyYW1lKCk7Ci0gICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBub3QgbmVlZCB0byBzZW5kIHR3byBibGFjayBmcmFtZXMgYnV0IFZUQiByZXF1aXJlcyB0aGF0
IHNvIHdlIGFyZSBzdXJlIGEgYmxhY2sgZnJhbWUgaXMgc2VudCBvdmVyIHRoZSB3aXJlLgotICAg
IG1fYmxhY2tGcmFtZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworICAgIG1fYmxhY2tGcmFtZVRp
bWVyLnN0YXJ0UmVwZWF0aW5nKDFfcyk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlOjpzZW5kT25lQmxhY2tGcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlLmgKaW5kZXggYzk1NmViODNhMmZiNjhiMmU1NTYxNTc3ZGQ3YTk5MjE2OWZjYjQ2
ZC4uYzA3YjM0NGVkOWI0YTUzNmEyMjFkYzY3Zjc0Y2YxMGE1MWViZmM1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRl
OgogICAgIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4mJik7CiAKICAgICB2b2lkIHNlbmRGcmFtZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpW
aWRlb0ZyYW1lQnVmZmVyPiYmKTsKLSAgICB2b2lkIHNlbmRCbGFja0ZyYW1lKCk7CisgICAgdm9p
ZCBzZW5kQmxhY2tGcmFtZXMoKTsKICAgICB2b2lkIHNlbmRPbmVCbGFja0ZyYW1lKCk7CiAgICAg
dm9pZCBzZXRTaXplRnJvbVNvdXJjZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggMzkzYmI3ZWJhZjM5NDY4YWEzOGQxMDU3NmUwODY5NjA4NzgyODU3My4uZjMwZmEw
ZDk0NThmNzc0MWI0YTBjZTMyZDI3OTg4NmZiMzhkODgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtNDAwMSwxNCArNDAwMSwxNSBAQCB2b2lkIEludGVybmFsczo6dmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICBpZiAoIW1fbmV4dFRy
YWNrRnJhbWVQcm9taXNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHZpZGVvU2V0dGlu
Z3MgPSBtX3RyYWNrLT5nZXRTZXR0aW5ncygpOwotICAgIGlmICghdmlkZW9TZXR0aW5ncy53aWR0
aCB8fCAhdmlkZW9TZXR0aW5ncy5oZWlnaHQpCisgICAgYXV0byYgdmlkZW9TZXR0aW5ncyA9IG1f
dHJhY2stPnNvdXJjZSgpLnNldHRpbmdzKCk7CisgICAgaWYgKCF2aWRlb1NldHRpbmdzLndpZHRo
KCkgfHwgIXZpZGVvU2V0dGluZ3MuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKLQorICAgIAog
ICAgIGF1dG8gcmdiYSA9IHNhbXBsZS5nZXRSR0JBSW1hZ2VEYXRhKCk7CiAgICAgaWYgKCFyZ2Jh
KQogICAgICAgICByZXR1cm47Ci0gICAgYXV0byBpbWFnZURhdGEgPSBJbWFnZURhdGE6OmNyZWF0
ZShyZ2JhLnJlbGVhc2VOb25OdWxsKCksICp2aWRlb1NldHRpbmdzLndpZHRoLCAqdmlkZW9TZXR0
aW5ncy5oZWlnaHQpOworICAgIAorICAgIGF1dG8gaW1hZ2VEYXRhID0gSW1hZ2VEYXRhOjpjcmVh
dGUocmdiYS5yZWxlYXNlTm9uTnVsbCgpLCB2aWRlb1NldHRpbmdzLndpZHRoKCksIHZpZGVvU2V0
dGluZ3MuaGVpZ2h0KCkpOwogICAgIGlmICghaW1hZ2VEYXRhLmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICBtX25leHRUcmFja0ZyYW1lUHJvbWlzZS0+cmVzb2x2ZShpbWFnZURhdGEucmVsZWFzZVJl
dHVyblZhbHVlKCkucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkzYzA3OWY4
ZGJkYWVmNGFkMzQ1NDRhMjU5ODQzOWU0MWNmNzY4MmMuLjcwNzc2NzViODRmNDYyNThlZTk5ODE5
NjgzN2RlMDlhNTI2MTllNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNS0xMSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIG91dGdvaW5n
IG11dGVkIHZpZGVvIHNvdXJjZXMgc2hvdWxkIHNlbmQgYmxhY2sgZnJhbWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2MjcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMxNTEzODY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2VicnRjL3ZpZGVvLW11dGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYnJ0Yy92aWRlby1tdXRlLmh0bWw6CisKIDIwMTctMDUtMTAgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMTY1NzguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tbXV0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tbXV0ZS1leHBlY3RlZC50eHQK
aW5kZXggYmQ5YTBhODZlYWUxZjlhM2E0NDJmNjQ5MzJjODBlYjE2NWU5Y2I0NS4uNGUzNDNhOTM0
YWYxYzlhM2E2OTZmYTc5N2E5YjkyYjE0NDJkZGY0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2VicnRjL3ZpZGVvLW11dGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92
aWRlby1tdXRlLWV4cGVjdGVkLnR4dApAQCAtNSw1ICs1LDYgQEAgRm9sbG93aW5nLCBzaG91bGQg
YmUgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8sIGEgYmxhY2sgZnJhbWUgYW5kIGEgc25hcHNob3Qg
b2YgdGgKIFBBU1MgU2V0dGluZyB2aWRlbyBleGNoYW5nZSAKIFBBU1MgVHJhY2sgaXMgZW5hYmxl
ZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayAKIFBBU1MgVHJhY2sgaXMgZGlzYWJsZWQsIHZp
ZGVvIHNob3VsZCBiZSBibGFjayAKK1BBU1MgSWYgZGlzYWJsZWQsIGJsYWNrIGZyYW1lcyBzaG91
bGQgc3RpbGwgYmUgY29taW5nIAogUEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQg
bm90IGJlIGJsYWNrIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tbXV0
ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLW11dGUuaHRtbAppbmRleCA0YTMzODJj
MGRlNjc2N2U0M2VkODUwODQyODBhNTQyNjQ0MjhjYzdjLi5kNGQ4ZDdiMDYxZTMzZGUzMGUzZTky
MzVjMGVjMjg1MWQ5ZmMyYjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8t
bXV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1tdXRlLmh0bWwKQEAgLTQ2
LDExICs0NiwxMiBAQCBmdW5jdGlvbiBjaGVja1ZpZGVvQmxhY2soZXhwZWN0ZWQsIGlkKQogewog
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgcG9s
bFZpZGVvQmxhY2tDaGVjayhleHBlY3RlZCwgaWQsIHJlc29sdmUpOwotICAgICAgICBzZXRUaW1l
b3V0KHJlamVjdCwgNTAwMCk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJjaGVj
a1ZpZGVvQmxhY2sgdGltZWQgb3V0IGZvciAiICsgaWQgKyAiIGV4cGVjdGVkICIgKyBleHBlY3Rl
ZCksIDUwMDApOwogICAgIH0pOwogfQogCiB2YXIgdHJhY2s7Cit2YXIgcmVtb3RlVHJhY2s7CiBw
cm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKQEAgLTYyLDcgKzYz
LDEwIEBAIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgICAgICAgICAgY3JlYXRlQ29ubmVj
dGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4gewogICAgICAgICAgICAgICAgIGZpcnN0Q29ubmVj
dGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOwogICAgICAgICAgICAgfSwgKHNlY29u
ZENvbm5lY3Rpb24pID0+IHsKLSAgICAgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJh
Y2sgPSAodHJhY2tFdmVudCkgPT4geyByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7IH07
CisgICAgICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNr
OworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7IAor
ICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHNldFRpbWVv
dXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKICAgICAgICAgfSk7CkBA
IC04Miw5ICs4NiwxOSBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKIH0sICJUcmFjayBpcyBk
aXNhYmxlZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIik7CiAKIHByb21pc2VfdGVzdCgodGVzdCkg
PT4geworICAgIGlmICghd2luZG93LmludGVybmFscykKKwlyZXR1cm4gUHJvbWlzZS5yZWplY3Qo
IlRoaXMgdGVzdCByZXF1aXJlcyBpbnRlcm5hbHMgQVBJIik7CisgICAgaW50ZXJuYWxzLm9ic2Vy
dmVNZWRpYVN0cmVhbVRyYWNrKHJlbW90ZVRyYWNrKTsKKyAgICByZXR1cm4gaW50ZXJuYWxzLmdy
YWJOZXh0TWVkaWFTdHJlYW1UcmFja0ZyYW1lKCkudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVy
biBpbnRlcm5hbHMuZ3JhYk5leHRNZWRpYVN0cmVhbVRyYWNrRnJhbWUoKQorICAgIH0pOworfSwg
IklmIGRpc2FibGVkLCBibGFjayBmcmFtZXMgc2hvdWxkIHN0aWxsIGJlIGNvbWluZyIpOworCitw
cm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICB0cmFjay5lbmFibGVkID0gdHJ1ZTsKICAgICBy
ZXR1cm4gY2hlY2tWaWRlb0JsYWNrKHRydWUsICJjYW52YXMyIik7CiB9LCAiVHJhY2sgaXMgZW5h
YmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayIpOworCiAgICAgICAgIDwvc2NyaXB0Pgog
ICAgIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310179</attachid>
            <date>2017-05-15 16:34:09 -0700</date>
            <delta_ts>2017-05-15 16:39:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170627-20170515163408.patch</filename>
            <type>text/plain</type>
            <size>53022</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRlNzlmODZmNTk0NzQ0
ZjAyN2M0NGMwYmI3NmUxZjVkZTg5OTAwNi4uN2EyMmI0ODMzNjZmYjIyMjZmMTU1N2RmZTdjM2U4
MmFkNTE0ODU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNCBAQAorMjAxNy0wNS0xNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgUmVhbHRp
bWVNZWRpYVNvdXJjZSBkYXRhIHByb2R1Y3Rpb24gYW5kIHN0YXRlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE5OTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZSB0YWtlcyAz
IGJvb2xlYW5zOgorICAgICAgICAtIG1faXNQcm9kdWNpbmdEYXRhIHRlbGxzIHdoZXRoZXIgZGF0
YSBpcyBwcm9kdWNlZCBvciBub3QuIEluIHRoZSBjYXNlIG9mIGNhcHR1cmluZywgaXQgdGVsbHMg
d2hldGhlciBjYXB0dXJlCisgICAgICAgICAgaGFwcGVucy4KKyAgICAgICAgLSBtX211dGVkL21f
ZW5hYmxlZCBhbGxvd3MgSlMgb3IgV2ViS2l0IGxldmVsIHRvIHN0YXJ0L3N0b3AgdGhlIHNvdXJj
ZS4KKworICAgICAgICBDaGFuZ2VkIE1lZGlhU3RyZWFtIGNhcHR1cmUgc3RhdGUgY29tcHV0YXRp
b24gc28gdGhhdCBjYXB0dXJlIGlzIHJlcG9ydGVkIGFzIGZvbGxvd3M6CisgICAgICAgIC0gbV9p
c1Byb2R1Y2luZyBpcyB0cnVlLCBjYXB0dXJlIGlzIGhhcHBlbm5pbmcgYW5kIGlzIGFjdGl2ZQor
ICAgICAgICAtIG1fbXV0ZWQgaXMgdHJ1ZSwgY2FwdHVyZSBpcyBoYXBwZW5pbmcgYnV0IGlzIGlu
YWN0aXZlLgorCisgICAgICAgIEV4Y2VwdCBpbiB0aGUgY2FzZSBvZiBXZWJSVEMgaW5jb21pbmcg
c291cmNlcywgZm9yIHdoaWNoIHNvdXJjZXMgbWF5IGJlIGNyZWF0ZWQgYXMgbXV0ZWQgYXMgcGVy
IHRoZSBzcGVjLAorICAgICAgICBhbGwgc291cmNlcyBhcmUgdW5tdXRlZCwgZW5hYmxlZCBhbmQg
bm90IHByb2R1Y2luZyBkYXRhIHdoZW4gY3JlYXRlZC4KKworICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlIGlzIG5vdyBhY3RpdmFibGUgZWl0aGVyIGJ5IGNhbGxpbmcgc3RhcnQvc3RvcCBvciBi
eSBjYWxsaW5nIHNldE11dGVkL3NldEVuYWJsZWQuCisgICAgICAgIFRoaXMgaW4gdHVybnMgd2ls
bCBzZXQgdGhlIGJvb2xlYW4gdmFsdWVzIGFjY29yZGluZ2x5IGFuZCB3aWxsIGNhbGwgdGhlIHVu
ZGVybHlpbmcKKyAgICAgICAgc3RhcnRQcm9kdWNpbmdEYXRhL3N0b3BQcm9kdWNpbmdEYXRhIG1l
dGhvZHMgZG9pbmcgdGhlIGFjdHVhbCBzdHVmZi4KKworICAgICAgICBSZW1vdmluZyBmcm9tIGFs
bCBSZWFsdGltZU1lZGlhU291cmNlIHN1YmNsYXNzZXMgdGhlIGhhbmRsaW5nIG9mIHByb2R1Y2lu
ZyBkYXRhLgorICAgICAgICBNYWtpbmcgbW9yZSBtZXRob2RzIG5vbi12aXJ0dWFsL21lbWJlciBm
aWVsZHMgcHJpdmF0ZSB0byBzaW1wbGlmeSB0aGUgbW9kZWwuCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjazo6U291cmNl
OjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2s6OlNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2s6OlNvdXJjZTo6Y2FudmFzRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOjpT
b3VyY2U6OmNhcHR1cmVDYW52YXMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2Fu
dmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjptZWRp
YVN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnN0
YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6bm90aWZ5TXV0ZWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6c2V0RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RTdG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlc2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OkFWTWVkaWFDYXB0dXJl
U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXB0dXJl
U2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2Fw
dHVyZVNvdXJjZTo6cmVzZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNh
cHR1cmVTb3VyY2U6OmlzUHJvZHVjaW5nRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzdGFydFByb2R1Y2lu
Z0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c3RvcFBy
b2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6
YXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYzo6cmVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGVNdXRlZCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZU11dGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdB
dWRpb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdB
dWRpb1NvdXJjZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6flJlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnN0
YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nQXVk
aW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZTo6c2V0U291cmNlVHJhY2spOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6UmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlVHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6Ok9uRnJhbWUpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tN
ZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYUVuZHBvaW50Ojpj
cmVhdGVNdXRlZFJlbW90ZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRw
b2ludDo6dW5tdXRlVGltZXJGaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZTo6Y3JlYXRlTXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFs
dGltZU1lZGlhU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlTXV0ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5n
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RvcFBy
b2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmdlbmVyYXRlRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaDoKKwogMjAxNy0wNS0xNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFNpbXBsZSBsaW5lIGxheW91dDogTGVhZGluZyB3aGl0ZXNwYWNlIGZvbGxv
d2VkIGJ5IGEgPGJyPiBwcm9kdWNlcyBhbiBleHRyYSBsaW5lYnJlYWsuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
N2IxOWZmNzFjN2VkODI2MzI5YzRkZTc0ZGY1ZmU3MjdkNmI0YzE2ZC4uOThiMDdmMTc5NmZmZGQw
ZDc0NDUyNDMzMjlkMWQ3ODVlZTU4OTU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE3LTA1LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBT
aW1wbGlmeSBSZWFsdGltZU1lZGlhU291cmNlIGRhdGEgcHJvZHVjdGlvbiBhbmQgc3RhdGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTk5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RvcFByb2R1Y2luZ0Rh
dGEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwOgorCiAyMDE3LTA1LTE0ICBEYWV3b29uZyBKYW5nICA8ZGFld29vbmcuamFuZ0BuYXZlcmNv
cnAuY29tPgogCiAgICAgICAgIFtDb29yZGluYXRlZEdyYXBoaWNzXSBSZW1vdmUgdW51c2VkIGZp
bGVzIGFuZCBsaW5lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRl
eCAzZjdiMmMxODhiNTk5ODBhMmQ1Y2ZiYTg3NmU5NGI5MTg3MjBhOGRlLi41ZTA1YzNlNThkY2Q1
MzY3YzllMThlMTQ2MDBmNzM4MmEzY2EwMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0
cmVhbVRyYWNrLmNwcApAQCAtNDgsNyArNDgsNyBAQCBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjazo6Q2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udAog
UmVmPENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U+IENhbnZhc0NhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U6OmNyZWF0ZShIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFz
LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBmcmFtZVJlcXVlc3RSYXRlKQogewogICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoY2FudmFzLCBXVEZNb3ZlKGZyYW1lUmVxdWVz
dFJhdGUpKSk7Ci0gICAgc291cmNlLT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKKyAgICBzb3VyY2Ut
PnN0YXJ0KCk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtzb3VyY2UgPSBzb3VyY2UuY29weVJl
ZigpXSB7CiAgICAgICAgIGlmICghc291cmNlLT5tX2NhbnZhcykKQEAgLTc2LDEwICs3Niw2IEBA
IENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U6OlNvdXJjZShIVE1MQ2FudmFz
RWxlbWVudCYgY2FudmFzLCBzdGQ6Om9wCiAKIHZvaWQgQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFt
VHJhY2s6OlNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBpZiAobV9pc1Byb2R1
Y2luZ0RhdGEpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IHRydWU7
Ci0KICAgICBpZiAoIW1fY2FudmFzKQogICAgICAgICByZXR1cm47CiAgICAgbV9jYW52YXMtPmFk
ZE9ic2VydmVyKCp0aGlzKTsKQEAgLTkzLDEwICs4OSw2IEBAIHZvaWQgQ2FudmFzQ2FwdHVyZU1l
ZGlhU3RyZWFtVHJhY2s6OlNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIAogdm9pZCBDYW52
YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjazo6U291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCiB7
Ci0gICAgaWYgKCFtX2lzUHJvZHVjaW5nRGF0YSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1faXNQ
cm9kdWNpbmdEYXRhID0gZmFsc2U7Ci0KICAgICBtX3JlcXVlc3RGcmFtZVRpbWVyLnN0b3AoKTsK
IAogICAgIGlmICghbV9jYW52YXMpCkBAIC0xMTMsNyArMTA1LDcgQEAgdm9pZCBDYW52YXNDYXB0
dXJlTWVkaWFTdHJlYW1UcmFjazo6U291cmNlOjpjYW52YXNEZXN0cm95ZWQoSFRNTENhbnZhc0Vs
ZW1lbnQmIGMKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNhbnZhcywgbV9jYW52YXMgPT0gJmNhbnZh
cyk7CiAKLSAgICBzdG9wUHJvZHVjaW5nRGF0YSgpOworICAgIHN0b3AoKTsKICAgICBtX2NhbnZh
cyA9IG51bGxwdHI7CiB9CiAKQEAgLTE1MCw3ICsxNDIsNyBAQCB2b2lkIENhbnZhc0NhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrOjpTb3VyY2U6OmNhcHR1cmVDYW52YXMoKQogewogICAgIEFTU0VSVCht
X2NhbnZhcyk7CiAKLSAgICBpZiAoIW1faXNQcm9kdWNpbmdEYXRhKQorICAgIGlmICghaXNQcm9k
dWNpbmdEYXRhKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2ZyYW1lUmVxdWVzdFJh
dGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQ2Fu
dmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaAppbmRleCBhZDI1YWRlYTcw
YThkYjY4NzFkNmJiMGEwOGFlZmQ2NGY3NTEwZDY4Li5jZTA3N2NkNjE1YjBjZjg3NDU5ZjRjMGM5
OWY5YjY5MDkzZTJiMTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0NhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5oCkBA
IC02Miw3ICs2Miw2IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2Ug
QVBJCiAgICAgICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgICAgIHZv
aWQgc3RvcFByb2R1Y2luZ0RhdGEoKSAgZmluYWw7Ci0gICAgICAgIGJvb2wgaXNQcm9kdWNpbmdE
YXRhKCkgY29uc3QgeyByZXR1cm4gbV9pc1Byb2R1Y2luZ0RhdGE7IH0KICAgICAgICAgY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6ZW1wdHlDYXBhYmls
aXRpZXMoKTsgfQogICAgICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNl
dHRpbmdzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQogICAgICAgICBib29s
IGFwcGx5U2l6ZShjb25zdCBJbnRTaXplJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNzAs
NyArNjksNiBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGNhcHR1cmVDYW52YXMoKTsKICAgICAg
ICAgdm9pZCByZXF1ZXN0RnJhbWVUaW1lckZpcmVkKCk7CiAKLSAgICAgICAgYm9vbCBtX2lzUHJv
ZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgbV9zaG91bGRFbWl0RnJhbWUgeyB0
cnVlIH07CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBtX2ZyYW1lUmVxdWVzdFJhdGU7
CiAgICAgICAgIFRpbWVyIG1fcmVxdWVzdEZyYW1lVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCmluZGV4IDI2ZjU0ZTA4MGFm
Y2I5OTkwNGY4ZDIyZDZkYzk5ODc4N2NkNTJmNDQuLjMxYWQ3Y2ZiZTU4OGEzNjA3MDhjZWIzY2M4
MTNlMGFhOGJmMTdlN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0uY3BwCkBAIC0zNDYsNyArMzQ2LDcgQEAgTWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIE1lZGlhU3RyZWFtOjptZWRpYVN0YXRlKCkgY29uc3QKICAgICAgICAg
aWYgKG1fcHJpdmF0ZS0+aGFzQ2FwdHVyZUF1ZGlvU291cmNlKCkpIHsKICAgICAgICAgICAgIGlm
IChtX3ByaXZhdGUtPm11dGVkKCkpCiAgICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFzTXV0ZWRB
dWRpb0NhcHR1cmVEZXZpY2U7Ci0gICAgICAgICAgICBlbHNlIGlmIChtX2lzUHJvZHVjaW5nRGF0
YSkKKyAgICAgICAgICAgIGVsc2UgaWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJpdmF0ZS0+
aXNQcm9kdWNpbmdEYXRhKCkpCiAgICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFzQWN0aXZlQXVk
aW9DYXB0dXJlRGV2aWNlOwogICAgICAgICB9CiAgICAgfQpAQCAtMzU2LDcgKzM1Niw3IEBAIE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSgpIGNv
bnN0CiAgICAgICAgIGlmIChtX3ByaXZhdGUtPmhhc0NhcHR1cmVWaWRlb1NvdXJjZSgpKSB7CiAg
ICAgICAgICAgICBpZiAobV9wcml2YXRlLT5tdXRlZCgpKQogICAgICAgICAgICAgICAgIHN0YXRl
IHw9IEhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwotICAgICAgICAgICAgZWxzZSBpZiAobV9p
c1Byb2R1Y2luZ0RhdGEpCisgICAgICAgICAgICBlbHNlIGlmIChtX2lzUHJvZHVjaW5nRGF0YSAm
JiBtX3ByaXZhdGUtPmlzUHJvZHVjaW5nRGF0YSgpKQogICAgICAgICAgICAgICAgIHN0YXRlIHw9
IEhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS5oCmluZGV4IDVlMjA0NmFkNWE0Y2VlYTg4ZGY1ZDNkYWIyNDlmZTNhMmQ2
NmM4MjEuLmFlZDM3OTE1OGQxYjdmMDVjY2M4YWZjYmM5Mjg1NzYwYTIzZTlhY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUuaApAQCAtNjIsOCArNjIsOCBAQCBwdWJsaWM6CiAKICAgICBib29s
IGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0VuZGVkOyB9CiAKLSAgICB2b2lkIHN0YXJ0UHJv
ZHVjaW5nRGF0YSgpIHsgbV9zb3VyY2UtPnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9Ci0gICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSgpIHsgbV9zb3VyY2UtPnN0b3BQcm9kdWNpbmdEYXRhKCk7IH0K
KyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIHsgbV9zb3VyY2UtPnN0YXJ0KCk7IH0KKyAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgeyBtX3NvdXJjZS0+c3RvcCgpOyB9CiAgICAgYm9v
bCBpc1Byb2R1Y2luZ0RhdGEoKSB7IHJldHVybiBtX3NvdXJjZS0+aXNQcm9kdWNpbmdEYXRhKCk7
IH0KIAogICAgIGJvb2wgaXNJc29sYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLT5pc0lz
b2xhdGVkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggMWY0OTkzMTE1YWVmZjE5Mzkz
YWUzYTcyZDg3ZmU0YzQxNmViZGUxNS4uZjNjMTIwMTY0YWU1MWM2NTllZmUwZmY0YmE1MDlkOTBj
OWU2N2RkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTYwLDIxICs2MCwxNSBAQCBSZWFs
dGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFR5
cGUgdHlwZSwgY29uc3QgU3RyaQogICAgIG1fc3VwcHJlc3NOb3RpZmljYXRpb25zID0gZmFsc2U7
CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVzZXQoKQotewotICAgIG1fc3RvcHBl
ZCA9IGZhbHNlOwotICAgIG1fbXV0ZWQgPSBmYWxzZTsKLX0KLQogdm9pZCBSZWFsdGltZU1lZGlh
U291cmNlOjphZGRPYnNlcnZlcihSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYgb2JzZXJ2
ZXIpCiB7Ci0gICAgbV9vYnNlcnZlcnMuYXBwZW5kKCZvYnNlcnZlcik7CisgICAgbV9vYnNlcnZl
cnMuYXBwZW5kKG9ic2VydmVyKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZW1v
dmVPYnNlcnZlcihSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0g
ICAgbV9vYnNlcnZlcnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJm9ic2VydmVyXShhdXRvKiBhbk9i
c2VydmVyKSB7Ci0gICAgICAgIHJldHVybiBhbk9ic2VydmVyID09ICZvYnNlcnZlcjsKKyAgICBt
X29ic2VydmVycy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmb2JzZXJ2ZXJdKGF1dG8gYW5PYnNlcnZl
cikgeworICAgICAgICByZXR1cm4gJmFuT2JzZXJ2ZXIuZ2V0KCkgPT0gJm9ic2VydmVyOwogICAg
IH0pOwogCiAgICAgaWYgKCFtX29ic2VydmVycy5zaXplKCkpCkBAIC04MywzOSArNzcsMzkgQEAg
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZW1vdmVPYnNlcnZlcihSZWFsdGltZU1lZGlhU291
cmNlOjpPYnNlcnZlciYgb2JzZXJ2ZXIKIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRN
dXRlZChib29sIG11dGVkKQogewotICAgIGlmIChtX3N0b3BwZWQgfHwgbV9tdXRlZCA9PSBtdXRl
ZCkKKyAgICBpZiAobXV0ZWQpCisgICAgICAgIHN0b3AoKTsKKyAgICBlbHNlCisgICAgICAgIHN0
YXJ0KCk7CisKKyAgICBub3RpZnlNdXRlZENoYW5nZShtdXRlZCk7Cit9CisKK3ZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6bm90aWZ5TXV0ZWRDaGFuZ2UoYm9vbCBtdXRlZCkKK3sKKyAgICBpZiAo
bV9tdXRlZCA9PSBtdXRlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9tdXRlZCA9IG11dGVk
OwogCi0gICAgaWYgKG11dGVkKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGZpZ3Vy
ZSBvdXQgaG93IHRvIGd1YXJhbnRlZSB0aGF0IGF0IGxlYXN0IG9uZSBibGFjayB2aWRlbyBmcmFt
ZSBpcwotICAgICAgICAvLyBlbWl0dGVkIGFmdGVyIGJlaW5nIG11dGVkLgotICAgICAgICBzdG9w
UHJvZHVjaW5nRGF0YSgpOwotICAgIH0gZWxzZQotICAgICAgICBzdGFydFByb2R1Y2luZ0RhdGEo
KTsKLQogICAgIG5vdGlmeU11dGVkT2JzZXJ2ZXJzKCk7CiB9CiAKIHZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6bm90aWZ5TXV0ZWRPYnNlcnZlcnMoKSBjb25zdAogewotICAgIGZvciAoYXV0byYg
b2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZU11dGVkQ2hh
bmdlZCgpOworICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAg
ICAgIG9ic2VydmVyLnNvdXJjZU11dGVkQ2hhbmdlZCgpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGlmIChtX3N0b3BwZWQg
fHwgbV9lbmFibGVkID09IGVuYWJsZWQpCisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX2VuYWJsZWQgPSBlbmFibGVkOwogCi0gICAgaWYgKG1f
c3RvcHBlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKQotICAgICAgICBvYnNlcnZlci0+c291cmNlRW5hYmxlZENoYW5nZWQoKTsKKyAg
ICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZl
ci5zb3VyY2VFbmFibGVkQ2hhbmdlZCgpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OnNldHRpbmdzRGlkQ2hhbmdlKCkKQEAgLTEyOSw0OSArMTIzLDU3IEBAIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c2V0dGluZ3NEaWRDaGFuZ2UoKQogCiAgICAgc2NoZWR1bGVEZWZlcnJlZFRh
c2soW3RoaXNdIHsKICAgICAgICAgbV9wZW5kaW5nU2V0dGluZ3NEaWRDaGFuZ2VOb3RpZmljYXRp
b24gPSBmYWxzZTsKLSAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQot
ICAgICAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpOworICAgICAgICBm
b3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2
ZXIuc291cmNlU2V0dGluZ3NDaGFuZ2VkKCk7CiAgICAgfSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxl
KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBv
YnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQotICAgICAgICBvYnNlcnZlci0+dmlkZW9TYW1wbGVBdmFp
bGFibGUobWVkaWFTYW1wbGUpOworICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNl
cnZlcnMpCisgICAgICAgIG9ic2VydmVyLnZpZGVvU2FtcGxlQXZhaWxhYmxlKG1lZGlhU2FtcGxl
KTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJl
ck9mRnJhbWVzKQogewotICAgIGZvciAoY29uc3QgYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVy
cykKLSAgICAgICAgb2JzZXJ2ZXItPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBhdWRpb0Rh
dGEsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgZm9yIChPYnNlcnZlciYgb2Jz
ZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXIuYXVkaW9TYW1wbGVzQXZhaWxh
YmxlKHRpbWUsIGF1ZGlvRGF0YSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKIH0KIAot
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKE9ic2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIp
Cit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXJ0KCkKIHsKLSAgICBpZiAoc3RvcHBlZCgp
KQorICAgIGlmIChtX2lzUHJvZHVjaW5nRGF0YSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9z
dG9wcGVkID0gdHJ1ZTsKKyAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IHRydWU7CisgICAgc3RhcnRQ
cm9kdWNpbmdEYXRhKCk7Cit9CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIG9ic2VydmVyIDogbV9v
YnNlcnZlcnMpIHsKLSAgICAgICAgaWYgKG9ic2VydmVyICE9IGNhbGxpbmdPYnNlcnZlcikKLSAg
ICAgICAgICAgIG9ic2VydmVyLT5zb3VyY2VTdG9wcGVkKCk7Ci0gICAgfQordm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1faXNQcm9kdWNpbmdEYXRhKQorICAg
ICAgICByZXR1cm47CiAKKyAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IGZhbHNlOwogICAgIHN0b3BQ
cm9kdWNpbmdEYXRhKCk7CiB9CiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFN0
b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlcikKIHsKLSAgICBpZiAoc3RvcHBlZCgpKQorICAg
IGlmICghbV9pc1Byb2R1Y2luZ0RhdGEpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoY29u
c3QgYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykgewotICAgICAgICBpZiAob2JzZXJ2ZXIt
PnByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSkKKyAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZl
ciA6IG1fb2JzZXJ2ZXJzKSB7CisgICAgICAgIGlmIChvYnNlcnZlci5wcmV2ZW50U291cmNlRnJv
bVN0b3BwaW5nKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHN0b3AoY2FsbGlu
Z09ic2VydmVyKTsKKworICAgIHN0b3AoKTsKKworICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVy
IDogbV9vYnNlcnZlcnMpIHsKKyAgICAgICAgaWYgKCZvYnNlcnZlciAhPSBjYWxsaW5nT2JzZXJ2
ZXIpCisgICAgICAgICAgICBvYnNlcnZlci5zb3VyY2VTdG9wcGVkKCk7CisgICAgfQogfQogCiBi
b29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9w
dGlvbmFsPGludD4sIHN0ZDo6b3B0aW9uYWw8aW50Piwgc3RkOjpvcHRpb25hbDxkb3VibGU+KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCmluZGV4IGMxYmY2NzI5ZGZiYmE1ZTA0NGUwN2E1NTIwYWVkNjBlZDI5
YmY3MmYuLmJjZjNhOTdjODgyMTMwZDI3ZjVjZDA1NDZkZmY2NmNhNmUwN2ZmYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmgKQEAgLTEyNyw2MCArMTI3LDMwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJp
bmcmIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCiAgICAgY29uc3QgU3RyaW5nJiBwZXJz
aXN0ZW50SUQoKSBjb25zdCB7IHJldHVybiBtX3BlcnNpc3RlbnRJRDsgfQotICAgIHZpcnR1YWwg
dm9pZCBzZXRQZXJzaXN0ZW50SUQoY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50SUQpIHsgbV9wZXJz
aXN0ZW50SUQgPSBwZXJzaXN0ZW50SUQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGVyc2lzdGVu
dElEKFN0cmluZyYmIHBlcnNpc3RlbnRJRCkgeyBtX3BlcnNpc3RlbnRJRCA9IFdURk1vdmUocGVy
c2lzdGVudElEKTsgfQogCiAgICAgZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgQXVkaW8sIFZpZGVv
IH07CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKLSAgICB2aXJ0
dWFsIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQotICAgIHZp
cnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkgeyBtX25hbWUgPSBuYW1lOyB9
Ci0gICAgCi0gICAgdmlydHVhbCB1bnNpZ25lZCBmaXRuZXNzU2NvcmUoKSBjb25zdCB7IHJldHVy
biBtX2ZpdG5lc3NTY29yZTsgfQotCi0gICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgPSAwOwot
Ci0gICAgdXNpbmcgU3VjY2Vzc0hhbmRsZXIgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT47Ci0gICAg
dXNpbmcgRmFpbHVyZUhhbmRsZXIgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiBi
YWRDb25zdHJhaW50LCBjb25zdCBTdHJpbmcmIGVycm9yU3RyaW5nKT47Ci0gICAgdmlydHVhbCB2
b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYsIFN1Y2Nlc3NIYW5k
bGVyJiYsIEZhaWx1cmVIYW5kbGVyJiYpOwotICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFN0
cmluZywgU3RyaW5nPj4gYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJik7
Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0
cmFpbnRzJiwgU3RyaW5nJik7Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzQ29uc3RyYWludChj
b25zdCBNZWRpYUNvbnN0cmFpbnQmKSBjb25zdDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXR0aW5n
c0RpZENoYW5nZSgpOworICAgIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3QgeyByZXR1cm4g
bV9pc1Byb2R1Y2luZ0RhdGE7IH0KKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBzdG9wKCk7
CisgICAgdm9pZCByZXF1ZXN0U3RvcChPYnNlcnZlciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0
cik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNJc29sYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgCi0gICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYpOwot
ICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7
CisgICAgYm9vbCBtdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWQ7IH0KKyAgICB2b2lkIHNl
dE11dGVkKGJvb2wpOwogICAgIAotICAgIGJvb2wgc3RvcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RvcHBlZDsgfQotCi0gICAgdmlydHVhbCBib29sIG11dGVkKCkgY29uc3QgeyByZXR1cm4gbV9t
dXRlZDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRlZChib29sKTsKKyAgICBib29sIGVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KKyAgICB2b2lkIHNldEVuYWJsZWQoYm9v
bCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxl
ZDsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wpOwotCi0gICAgdmlydHVhbCBi
b29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImKSB7IH0KKyAg
ICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICB2b2lk
IHNldE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKSB7IG1fbmFtZSA9IG5hbWU7IH0KICAgICAKKyAg
ICB1bnNpZ25lZCBmaXRuZXNzU2NvcmUoKSBjb25zdCB7IHJldHVybiBtX2ZpdG5lc3NTY29yZTsg
fQorCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3Rv
cFByb2R1Y2luZ0RhdGEoKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIHZvaWQgc3RvcChPYnNlcnZlciogY2FsbGlu
Z09ic2VydmVyID0gbnVsbHB0cik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcChPYnNlcnZlciogY2Fs
bGluZ09ic2VydmVyID0gbnVsbHB0cik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKTsKLQot
ICAgIHZpcnR1YWwgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIHsg
cmV0dXJuIG51bGxwdHI7IH0KLQogICAgIHZvaWQgc2V0V2lkdGgoaW50KTsKICAgICB2b2lkIHNl
dEhlaWdodChpbnQpOwogICAgIGNvbnN0IEludFNpemUmIHNpemUoKSBjb25zdCB7IHJldHVybiBt
X3NpemU7IH0KQEAgLTIxNCw2ICsxODQsMjcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RWNob0Nh
bmNlbGxhdGlvbihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlFY2hvQ2FuY2VsbGF0aW9u
KGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCA9
IDA7CisKKyAgICB1c2luZyBTdWNjZXNzSGFuZGxlciA9IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPjsK
KyAgICB1c2luZyBGYWlsdXJlSGFuZGxlciA9IHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBTdHJp
bmcmIGJhZENvbnN0cmFpbnQsIGNvbnN0IFN0cmluZyYgZXJyb3JTdHJpbmcpPjsKKyAgICB2aXJ0
dWFsIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3VjY2Vz
c0hhbmRsZXImJiwgRmFpbHVyZUhhbmRsZXImJik7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+PiBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMmKTsKKworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnN0cmFpbnRzKGNvbnN0IE1lZGlh
Q29uc3RyYWludHMmLCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNDb25zdHJh
aW50KGNvbnN0IE1lZGlhQ29uc3RyYWludCYpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIHNl
dHRpbmdzRGlkQ2hhbmdlKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNJc29sYXRlZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNDYXB0dXJlU291cmNlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgdm9pZCBtb25pdG9yT3JpZW50
YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpIHsgfQorCisgICAgdmlydHVhbCBBdWRpb1NvdXJj
ZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQorCiBw
cm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGlkLCBUeXBl
LCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCkBAIC0yMzEsMjYgKzIyMiwzMSBAQCBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgRmxhdHRlbmVkQ29uc3Ry
YWludCYpOwogICAgIHZpcnR1YWwgdm9pZCBhcHBseVNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRp
b25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4pOwogCi0gICAgY29uc3QgVmVjdG9yPE9ic2VydmVyKj4gb2JzZXJ2ZXJzKCkgY29u
c3QgeyByZXR1cm4gbV9vYnNlcnZlcnM7IH0KLQogICAgIHZvaWQgbm90aWZ5TXV0ZWRPYnNlcnZl
cnMoKSBjb25zdDsKKyAgICB2b2lkIG5vdGlmeU11dGVkQ2hhbmdlKGJvb2wgbXV0ZWQpOwogCiAg
ICAgdm9pZCBpbml0aWFsaXplVm9sdW1lKGRvdWJsZSB2b2x1bWUpIHsgbV92b2x1bWUgPSB2b2x1
bWU7IH0KICAgICB2b2lkIGluaXRpYWxpemVTYW1wbGVSYXRlKGludCBzYW1wbGVSYXRlKSB7IG1f
c2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7IH0KICAgICB2b2lkIGluaXRpYWxpemVFY2hvQ2FuY2Vs
bGF0aW9uKGJvb2wgZWNob0NhbmNlbGxhdGlvbikgeyBtX2VjaG9DYW5jZWxsYXRpb24gPSBlY2hv
Q2FuY2VsbGF0aW9uOyB9CiAKLSAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwotICAgIGJvb2wg
bV9lbmFibGVkIHsgdHJ1ZSB9OwotCisgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRp
YVNhbXBsZSYpOworICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYsIHNpemVfdCk7CisgICAgCiBwcml2YXRlOgogICAgIFdlYWtQdHI8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgeyB9CisKKyAgICBib29sIG1fbXV0
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OworCiAgICAgV2Vha1B0
ckZhY3Rvcnk8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBTdHJp
bmcgbV9pZDsKICAgICBTdHJpbmcgbV9wZXJzaXN0ZW50SUQ7CiAgICAgVHlwZSBtX3R5cGU7CiAg
ICAgU3RyaW5nIG1fbmFtZTsKLSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKyAg
ICBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxPYnNlcnZlcj4+IG1fb2JzZXJ2ZXJzOwog
ICAgIEludFNpemUgbV9zaXplOwogICAgIGRvdWJsZSBtX2ZyYW1lUmF0ZSB7IDMwIH07CiAgICAg
ZG91YmxlIG1fYXNwZWN0UmF0aW8geyAwIH07CkBAIC0yNjEsOSArMjU3LDkgQEAgcHJpdmF0ZToK
ICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZSBtX2ZhY2lu
Z01vZGUgeyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlVzZXJ9OwogCiAgICAgYm9vbCBt
X2VjaG9DYW5jZWxsYXRpb24geyBmYWxzZSB9OwotICAgIGJvb2wgbV9zdG9wcGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fcGVuZGluZ1NldHRpbmdzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIHsgZmFs
c2UgfTsKICAgICBib29sIG1fc3VwcHJlc3NOb3RpZmljYXRpb25zIHsgdHJ1ZSB9OworICAgIGJv
b2wgbV9pc1Byb2R1Y2luZ0RhdGEgeyBmYWxzZSB9OwogfTsKIAogc3RydWN0IENhcHR1cmVTb3Vy
Y2VPckVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKaW5kZXggZjg0OTAxMGY3Mzkz
NWU2Y2MwNGI1ZjUxZmEwYTI3Y2NkZDU5N2FhZi4uNzE1MDFjMGQ3YmRmZjhiMDRhMzM2MzYzYjM1
MWI5MjQyZWJkZTlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKQEAgLTY4LDcgKzY4
LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAg
ICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7Ci0gICAgYm9vbCBpc1Byb2R1Y2luZ0Rh
dGEoKSBjb25zdCBmaW5hbDsKIAogcHJvdGVjdGVkOgogICAgIEFWTWVkaWFDYXB0dXJlU291cmNl
KEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGUpOwpAQCAtOTEsNyArOTAsNiBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAg
dm9pZCBzZXR1cFNlc3Npb24oKTsKLSAgICB2b2lkIHJlc2V0KCkgZmluYWw7CiAKICAgICB2b2lk
IGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsOwogICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlv
bigpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCmluZGV4IDEyMmJkYjhmNDk0
MDE4YzJjMDQ1YWJmODQ3NWQ5MWE2YWU1YmQ3MmEuLjU2NWJkOTg3NWU1MmMzNDg1MTY1ZTY0MGU0
Mjc0MWY1MzJkOWZiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0KQEAgLTE0OCw4
ICsxNDgsNyBAQCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2UoQVZD
YXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBjb25zdAogICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8aW50PihJbnRlcnJ1cHRpb25SZWFzb246OkF1ZGlvSW5Vc2UpID09IEFWQ2FwdHVy
ZVNlc3Npb25JbnRlcnJ1cHRpb25SZWFzb25BdWRpb0RldmljZUluVXNlQnlBbm90aGVyQ2xpZW50
LCAiSW50ZXJydXB0aW9uUmVhc29uOjpBdWRpb0luVXNlIGlzIG5vdCBBVkNhcHR1cmVTZXNzaW9u
SW50ZXJydXB0aW9uUmVhc29uQXVkaW9EZXZpY2VJblVzZUJ5QW5vdGhlckNsaWVudCBhcyBleHBl
Y3RlZCIpOwogI2VuZGlmCiAgICAgCi0gICAgc2V0UGVyc2lzdGVudElEKGRldmljZS51bmlxdWVJ
RCk7Ci0gICAgc2V0TXV0ZWQodHJ1ZSk7CisgICAgc2V0UGVyc2lzdGVudElEKFN0cmluZyhkZXZp
Y2UudW5pcXVlSUQpKTsKIH0KIAogQVZNZWRpYUNhcHR1cmVTb3VyY2U6On5BVk1lZGlhQ2FwdHVy
ZVNvdXJjZSgpCkBAIC0yNjIsMTcgKzI2MSw2IEBAIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6
OnNldHVwU2Vzc2lvbigpCiAgICAgW21fc2Vzc2lvbiBjb21taXRDb25maWd1cmF0aW9uXTsKIH0K
IAotdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6cmVzZXQoKQotewotICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OnJlc2V0KCk7Ci0gICAgbV9pc1J1bm5pbmcgPSBmYWxzZTsKLSAgICBmb3IgKE5T
U3RyaW5nICprZXlOYW1lIGluIHNlc3Npb25LVk9Qcm9wZXJ0aWVzKCkpCi0gICAgICAgIFttX3Nl
c3Npb24gcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDprZXlO
YW1lXTsKLQotICAgIHNodXRkb3duQ2FwdHVyZVNlc3Npb24oKTsKLSAgICBtX3Nlc3Npb24gPSBu
dWxscHRyOwotfQotCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXB0dXJlU2Vzc2lvbklz
UnVubmluZ0RpZENoYW5nZShib29sIHN0YXRlKQogewogICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNr
KFt0aGlzLCBzdGF0ZV0gewpAQCAtMjgwLDE5ICsyNjgsMTAgQEAgdm9pZCBBVk1lZGlhQ2FwdHVy
ZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25Jc1J1bm5pbmdEaWRDaGFuZ2UoYm9vbCBzdGF0ZSkKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBtX2lzUnVubmluZyA9IHN0YXRlOwotICAgICAg
ICBpZiAobV9tdXRlZCA9PSAhbV9pc1J1bm5pbmcpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgbV9tdXRlZCA9ICFtX2lzUnVubmluZzsKLSAgICAgICAgbm90aWZ5TXV0ZWRPYnNlcnZl
cnMoKTsKKyAgICAgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoIW1faXNSdW5uaW5nKTsKICAgICB9KTsK
IH0KIAotYm9vbCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6aXNQcm9kdWNpbmdEYXRhKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9pc1J1bm5pbmc7Ci19Ci0KICNpZiBQTEFURk9STShJT1MpCiB2b2lk
IEFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXB0dXJlU2Vzc2lvblJ1bnRpbWVFcnJvcihSZXRhaW5Q
dHI8TlNFcnJvcj4gZXJyb3IpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAK
aW5kZXggOGFmODFmYjIzZGU2NWJmOTg3OTJkMDJkNDk0N2U0MzA2ODE4NjdiMi4uNjcyOGNiMTQy
ZDIzODFmNGE1NzA4NDQwMmU1OGUyOWVlNDUwNzYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcApAQCAtNjQ4LDggKzY0OCw2IEBAIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgU3Ry
CiAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGRldmljZUlELCBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbywgbGFiZWwpCiAgICAgLCBtX2NhcHR1cmVEZXZpY2VJRChwZXJzaXN0ZW50
SUQpCiB7Ci0gICAgbV9tdXRlZCA9IHRydWU7Ci0KICAgICBhdXRvJiB1bml0ID0gQ29yZUF1ZGlv
U2hhcmVkVW5pdDo6c2luZ2xldG9uKCk7CiAKICAgICBpbml0aWFsaXplRWNob0NhbmNlbGxhdGlv
bih1bml0LmVuYWJsZUVjaG9DYW5jZWxsYXRpb24oKSk7CkBAIC02ODAsMjAgKzY3OCwxMSBAQCB2
b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnJlbW92ZUVjaG9DYW5jZWxsYXRpb25Tb3VyY2Uo
QXVkaW9TYW1wbGVEYXRhU291cmNlJgogCiB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OnN0
YXJ0UHJvZHVjaW5nRGF0YSgpCiB7Ci0gICAgaWYgKG1faXNQcm9kdWNpbmdEYXRhKQotICAgICAg
ICByZXR1cm47Ci0KICNpZiBQTEFURk9STShJT1MpCiAgICAgY29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogI2VuZGlmCiAKICAgICBDb3JlQXVk
aW9TaGFyZWRVbml0OjpzaW5nbGV0b24oKS5zdGFydFByb2R1Y2luZ0RhdGEoKTsKLSAgICBtX2lz
UHJvZHVjaW5nRGF0YSA9IENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLmlzUHJvZHVj
aW5nRGF0YSgpOwotCi0gICAgaWYgKCFtX2lzUHJvZHVjaW5nRGF0YSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbV9tdXRlZCA9IGZhbHNlOwogCiAgICAgaWYgKG1fYXVkaW9Tb3VyY2VQcm92aWRl
cikKICAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyLT5wcmVwYXJlKCZDb3JlQXVkaW9TaGFy
ZWRVbml0OjpzaW5nbGV0b24oKS5taWNyb3Bob25lRm9ybWF0KCkuc3RyZWFtRGVzY3JpcHRpb24o
KSk7CkBAIC03MDEsMTIgKzY5MCw3IEBAIHZvaWQgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6c3Rh
cnRQcm9kdWNpbmdEYXRhKCkKIAogdm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzdG9wUHJv
ZHVjaW5nRGF0YSgpCiB7Ci0gICAgaWYgKCFtX2lzUHJvZHVjaW5nRGF0YSkKLSAgICAgICAgcmV0
dXJuOwotCiAgICAgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCkuc3RvcFByb2R1Y2lu
Z0RhdGEoKTsKLSAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IGZhbHNlOwotICAgIG1fbXV0ZWQgPSB0
cnVlOwogCiAgICAgaWYgKG1fYXVkaW9Tb3VyY2VQcm92aWRlcikKICAgICAgICAgbV9hdWRpb1Nv
dXJjZVByb3ZpZGVyLT51bnByZXBhcmUoKTsKQEAgLTc1Niw3ICs3NDAsNyBAQCBBdWRpb1NvdXJj
ZVByb3ZpZGVyKiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjphdWRpb1NvdXJjZVByb3ZpZGVyKCkK
IHsKICAgICBpZiAoIW1fYXVkaW9Tb3VyY2VQcm92aWRlcikgewogICAgICAgICBtX2F1ZGlvU291
cmNlUHJvdmlkZXIgPSBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKCp0aGlz
KTsKLSAgICAgICAgaWYgKG1faXNQcm9kdWNpbmdEYXRhKQorICAgICAgICBpZiAoaXNQcm9kdWNp
bmdEYXRhKCkpCiAgICAgICAgICAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXItPnByZXBhcmUoJkNv
cmVBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLm1pY3JvcGhvbmVGb3JtYXQoKS5zdHJlYW1E
ZXNjcmlwdGlvbigpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmlu
ZGV4IDgxZGZkNzZjMWFhZWNhMjNlZGYyZDg5OWY1OWMyY2Q3N2E3YTU1NjMuLjI2M2FkYmQ3YzA3
YWYwYmI3NmNlYjVhZjk1MDY3YzYxZjEzZmFmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVT
b3VyY2UuaApAQCAtODAsNyArODAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNDYXB0dXJlU291
cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgc3RhcnRQcm9kdWNp
bmdEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwotICAg
IGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc1Byb2R1Y2lu
Z0RhdGE7IH0KIAogICAgIGJvb2wgYXBwbHlWb2x1bWUoZG91YmxlKSBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAgICAgYm9vbCBhcHBseVNhbXBsZVJhdGUoaW50KSBmaW5hbDsKQEAgLTkzLDcgKzky
LDYgQEAgcHJpdmF0ZToKIAogICAgIHVpbnQzMl90IG1fY2FwdHVyZURldmljZUlEIHsgMCB9Owog
Ci0gICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU3Vz
cGVuZGVkIHsgZmFsc2UgfTsKIAogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZU1hYy5tbQppbmRleCBiMGYyODNiMWRjNzQyZGQwOWFmNjUxZDc3MjVm
Y2FhNjcxYzhhYzk1Li5lYzJmNDA4MTQ1ZGM5ZTRlZTM1YTYxNjA4MDE3Y2NjZTY1YWY3YTI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCkBAIC0xMDcsMTMgKzEw
Nyw2IEBAIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjOjp+TW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2VNYWMoKQogICAgIH0KIH0KIAotUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKQotewot
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKG5h
bWUpKTsKLSAgICBzb3VyY2UtPm1fbXV0ZWQgPSB0cnVlOwotICAgIHJldHVybiBzb3VyY2U7Ci19
Ci0KIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6OmVtaXRTYW1wbGVCdWZmZXJzKHVp
bnQzMl90IGZyYW1lQ291bnQpCiB7CiAgICAgQVNTRVJUKG1fZm9ybWF0RGVzY3JpcHRpb24pOwpA
QCAtMTU4LDcgKzE1MSw3IEBAIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6OnJlbmRl
cihkb3VibGUgZGVsdGEpCiAgICAgICAgIHVpbnQzMl90IGJpcEJvcENvdW50ID0gc3RkOjptaW4o
ZnJhbWVDb3VudCwgYmlwQm9wUmVtYWluKTsKICAgICAgICAgZm9yIChhdXRvJiBhdWRpb0J1ZmZl
ciA6IG1fYXVkaW9CdWZmZXJMaXN0LT5idWZmZXJzKCkpIHsKICAgICAgICAgICAgIGF1ZGlvQnVm
ZmVyLm1EYXRhQnl0ZVNpemUgPSBmcmFtZUNvdW50ICogbV9zdHJlYW1Gb3JtYXQubUJ5dGVzUGVy
RnJhbWU7Ci0gICAgICAgICAgICBpZiAoIW1fbXV0ZWQgJiYgbV9lbmFibGVkKSB7CisgICAgICAg
ICAgICBpZiAoIW11dGVkKCkgJiYgZW5hYmxlZCgpKSB7CiAgICAgICAgICAgICAgICAgbWVtY3B5
KGF1ZGlvQnVmZmVyLm1EYXRhLCAmbV9iaXBCb3BCdWZmZXJbYmlwQm9wU3RhcnRdLCBzaXplb2Yo
RmxvYXQzMikgKiBiaXBCb3BDb3VudCk7CiAgICAgICAgICAgICAgICAgYWRkSHVtKEh1bVZvbHVt
ZSwgSHVtRnJlcXVlbmN5LCBzYW1wbGVSYXRlKCksIG1fc2FtcGxlc1JlbmRlcmVkLCBzdGF0aWNf
Y2FzdDxmbG9hdCo+KGF1ZGlvQnVmZmVyLm1EYXRhKSwgYmlwQm9wQ291bnQpOwogICAgICAgICAg
ICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXgg
YWQ0NTY1NjE1OGE4NzcwZjI4MDY2MjIzOGFmMzRlN2M4MmJkNjU5Zi4uMDBiM2E3ZTA5MjExZTZm
ZmIyOWQwNjdjOGE2Mzg1M2ZmY2UwY2Y2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZU1hYy5tbQpAQCAtNjUsMTMgKzY1LDYgQEAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKIH0K
IAotUmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlKG5hbWUpKTsKLSAgICBzb3VyY2Ut
Pm1fbXV0ZWQgPSB0cnVlOwotICAgIHJldHVybiBzb3VyY2U7Ci19Ci0KIFJldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6OkNNU2FtcGxlQnVmZmVy
RnJvbVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpCiB7CiAgICAgaWYg
KCFwaXhlbEJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5j
cHAKaW5kZXggYTRmOWIzOGFlMmEyOGI3ZDcwNzllYzczYWRjODRhZmQ4NWQzNDgyYS4uYWM4MmM2
NjdmZDUwNGE1N2I3NzhkOGMxOTdkOWU1MzRiZDE4YjBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogUmVmPFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZT4gUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlOjpjcmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFj
a0ludGVyZmFjZT4mJiBhdWRpb1RyYWNrLCBTdHJpbmcmJiBhdWRpb1RyYWNrSWQpCiB7CiAgICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZShX
VEZNb3ZlKGF1ZGlvVHJhY2spLCBXVEZNb3ZlKGF1ZGlvVHJhY2tJZCkpKTsKLSAgICBzb3VyY2Ut
PnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHNvdXJjZS0+c3RhcnQoKTsKICAgICByZXR1cm4g
c291cmNlOwogfQogCkBAIC01NSw2ICs1NSw3IEBAIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJyCiAg
ICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFdURk1vdmUoYXVkaW9UcmFja0lkKSwgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIFN0cmluZygpKQogICAgICwgbV9hdWRpb1RyYWNrKFdU
Rk1vdmUoYXVkaW9UcmFjaykpCiB7CisgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoIW1fYXVkaW9UcmFj
ayk7CiB9CiAKIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6flJlYWx0aW1lSW5jb21pbmdB
dWRpb1NvdXJjZSgpCkBAIC02Myw3ICs2NCw3IEBAIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZTo6flJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZSgpCiAgICAgICAgIG1fYXVkaW9Tb3VyY2VQ
cm92aWRlci0+dW5wcmVwYXJlKCk7CiAgICAgICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IG51
bGxwdHI7CiAgICAgfQotICAgIHN0b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgc3RvcCgpOwogfQog
CiAKQEAgLTExMiwyMCArMTEzLDEyIEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
OjpPbkRhdGEoY29uc3Qgdm9pZCogYXVkaW9EYXRhLCBpbnQgYml0c1BlclNhbXBsCiAKIHZvaWQg
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewotICAg
IGlmIChtX2lzUHJvZHVjaW5nRGF0YSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pc1Byb2R1
Y2luZ0RhdGEgPSB0cnVlOwogICAgIGlmIChtX2F1ZGlvVHJhY2spCiAgICAgICAgIG1fYXVkaW9U
cmFjay0+QWRkU2luayh0aGlzKTsKIH0KIAogdm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBpZiAoIW1faXNQcm9kdWNpbmdEYXRhKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IGZhbHNlOwogICAgIGlm
IChtX2F1ZGlvVHJhY2spCiAgICAgICAgIG1fYXVkaW9UcmFjay0+UmVtb3ZlU2luayh0aGlzKTsK
IH0KQEAgLTEzNiw3ICsxMjksOCBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6
c2V0U291cmNlVHJhY2socnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaQogICAgIEFTU0VS
VCh0cmFjayk7CiAKICAgICBtX2F1ZGlvVHJhY2sgPSBXVEZNb3ZlKHRyYWNrKTsKLSAgICBpZiAo
bV9pc1Byb2R1Y2luZ0RhdGEpCisgICAgbm90aWZ5TXV0ZWRDaGFuZ2UoIW1fYXVkaW9UcmFjayk7
CisgICAgaWYgKGlzUHJvZHVjaW5nRGF0YSgpKQogICAgICAgICBtX2F1ZGlvVHJhY2stPkFkZFNp
bmsodGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaApp
bmRleCA4NTJjZTk3ZjIyOTNlYzkzMDFiNzQxODBlZTdhYzU5MWIyMzVjZDNkLi42MjVlM2Q5ODhi
NzI0MGI3NDU4YzQ4YmM5YWZiY2NkMjBhYTMwNWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZS5oCkBAIC02NywxNCArNjcsMTEgQEAgcHJpdmF0ZToKICAgICBNZWRp
YUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFpbnRzLmdldCgp
OyB9CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0
ZWRDb25zdHJhaW50cygpOwogCi0gICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2lzUHJvZHVjaW5nRGF0YTsgfQotCiAgICAgQXVkaW9Tb3VyY2VQcm92aWRl
ciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOwogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBw
b3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogICAgIFJlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOwotICAgIGJvb2wgbV9pc1Byb2R1Y2luZ0RhdGEg
eyBmYWxzZSB9OwogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRl
cmZhY2U+IG1fYXVkaW9UcmFjazsKIAogICAgIFJlZlB0cjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQz4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlLmNwcAppbmRleCBmNTA5NmZiMGYwYTA2MWQ0NTljMTFhZDJmMTEwNmRm
MTM1M2JhMTVhLi4xNGY4ZTE4OGFiMDAwN2RjNzUwNDEyM2M2ODFiYmM0NGFmZTk2MzgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApAQCAtNTgsNyArNTgs
NyBAQCBSZWY8UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlPiBSZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3BlZAogICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yg
Y29uZm9ybWVyKGNvbmZvcm1lck9wdGlvbnMuZ2V0KCkpOwogCiAgICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZShXVEZNb3ZlKHZpZGVvVHJh
Y2spLCBXVEZNb3ZlKHRyYWNrSWQpLCBjb25mb3JtZXJPcHRpb25zLmdldCgpKSk7Ci0gICAgc291
cmNlLT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKKyAgICBzb3VyY2UtPnN0YXJ0KCk7CiAgICAgcmV0
dXJuIHNvdXJjZTsKIH0KIApAQCAtNjcsMTcgKzY3LDEzIEBAIFJlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3
ZWJyCiAgICAgLCBtX3ZpZGVvVHJhY2soV1RGTW92ZSh2aWRlb1RyYWNrKSkKICAgICAsIG1fY29u
Zm9ybWVyKGNvbmZvcm1lck9wdGlvbnMpCiB7Ci0gICAgbV9tdXRlZCA9ICFtX3ZpZGVvVHJhY2s7
CiAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0V2lkdGgoNjQwKTsKICAgICBtX2N1cnJlbnRTZXR0
aW5ncy5zZXRIZWlnaHQoNDgwKTsKKyAgICBub3RpZnlNdXRlZENoYW5nZSghbV92aWRlb1RyYWNr
KTsKIH0KIAogdm9pZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5n
RGF0YSgpCiB7Ci0gICAgaWYgKG1faXNQcm9kdWNpbmdEYXRhKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IHRydWU7CiAgICAgaWYgKG1fdmlkZW9UcmFjaykKICAg
ICAgICAgbV92aWRlb1RyYWNrLT5BZGRPclVwZGF0ZVNpbmsodGhpcywgcnRjOjpWaWRlb1NpbmtX
YW50cygpKTsKIH0KQEAgLTg3LDE4ICs4MywxNCBAQCB2b2lkIFJlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZTo6c2V0U291cmNlVHJhY2socnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZQog
ICAgIEFTU0VSVCghbV92aWRlb1RyYWNrKTsKICAgICBBU1NFUlQodHJhY2spOwogCi0gICAgbV9t
dXRlZCA9IGZhbHNlOwotICAgIG1fdmlkZW9UcmFjayA9IHRyYWNrOwotICAgIGlmIChtX2lzUHJv
ZHVjaW5nRGF0YSkKKyAgICBtX3ZpZGVvVHJhY2sgPSBXVEZNb3ZlKHRyYWNrKTsKKyAgICBub3Rp
ZnlNdXRlZENoYW5nZSghbV92aWRlb1RyYWNrKTsKKyAgICBpZiAoaXNQcm9kdWNpbmdEYXRhKCkp
CiAgICAgICAgIG1fdmlkZW9UcmFjay0+QWRkT3JVcGRhdGVTaW5rKHRoaXMsIHJ0Yzo6VmlkZW9T
aW5rV2FudHMoKSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpzdG9w
UHJvZHVjaW5nRGF0YSgpCiB7Ci0gICAgaWYgKCFtX2lzUHJvZHVjaW5nRGF0YSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgbV9pc1Byb2R1Y2luZ0RhdGEgPSBmYWxzZTsKICAgICBpZiAobV92aWRl
b1RyYWNrKQogICAgICAgICBtX3ZpZGVvVHJhY2stPlJlbW92ZVNpbmsodGhpcyk7CiB9CkBAIC0x
MzMsNyArMTI1LDcgQEAgQ1ZQaXhlbEJ1ZmZlclJlZiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2U6OnBpeGVsQnVmZmVyRnJvbVZpZGVvRnJhbWUoY29uc3Qgd2UKIAogdm9pZCBSZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2U6Ok9uRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFt
ZSkKIHsKLSAgICBpZiAoIW1faXNQcm9kdWNpbmdEYXRhKQorICAgIGlmICghaXNQcm9kdWNpbmdE
YXRhKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBwaXhlbEJ1
ZmZlckZyb21WaWRlb0ZyYW1lKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2UuaAppbmRleCA0MmY5MjZmNDFjYWMwYzE4ZDg0ZmNmNGYyZDZiOTQwNWZlOWUwYjAw
Li5kNGEzZjQzZjgwMmJjOTA0NDg3N2I3OWE5YTcyMjY4OTBhM2IyMWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCkBAIC02Niw3ICs2Niw2IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIHByb2Nlc3NOZXdTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYsIHVuc2lnbmVk
LCB1bnNpZ25lZCwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24pOwogCi0gICAgYm9vbCBpc1By
b2R1Y2luZ0RhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzUHJvZHVjaW5nRGF0YSAmJiBt
X2J1ZmZlcjsgfQogICAgIGJvb2wgYXBwbHlTaXplKGNvbnN0IEludFNpemUmKSBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiAKICAgICAvLyBydGM6OlZpZGVvU2lua0ludGVyZmFjZQpAQCAtNzgsNyAr
NzcsNiBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJl
bnRTZXR0aW5nczsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMg
bV9zdXBwb3J0ZWRDb25zdHJhaW50czsKICAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gbV9j
b25zdHJhaW50czsKLSAgICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKICAgICBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiBtX3ZpZGVvVHJh
Y2s7CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBtX2J1ZmZlcjsKICAgICBQaXhl
bEJ1ZmZlckNvbmZvcm1lckNWIG1fY29uZm9ybWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmluZGV4IDk0ZWMyNWU1Yjg5YmE0YjQ1ODliOGU5YjViNzc4
MWJkNThiMjk2N2UuLmQzYWE5Njg4Mzg4YjIzMDFhNzQwMTY3MDEwZGZmYWY1Y2FmZjFiYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTEwOSw3
ICsxMDksNyBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRDbGllbnQo
QXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQogICAgIGlmIChtX2NsaWVudCAmJiAh
bV9jb25uZWN0ZWQpIHsKICAgICAgICAgbV9jb25uZWN0ZWQgPSB0cnVlOwogICAgICAgICBtX2Nh
cHR1cmVTb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKLSAgICAgICAgbV9jYXB0dXJlU291cmNl
LT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKKyAgICAgICAgbV9jYXB0dXJlU291cmNlLT5zdGFydCgp
OwogICAgIH0gZWxzZSBpZiAoIW1fY2xpZW50ICYmIG1fY29ubmVjdGVkKSB7CiAgICAgICAgIG1f
Y2FwdHVyZVNvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAgICBtX2Nvbm5lY3Rl
ZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvTWVkaWFFbmRwb2ludE93ci5jcHAKaW5kZXggNjE1
ZWM5ZTFkOGI1MDczZWJkZjg5MTY3MTk4ZDk5MjI2NDA2MzkyNi4uOGE1ODQ4NjcyNTQ4M2MyZGNl
MGE0MjQ0YjRlZGUxNWZiZmFiZDJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9NZWRpYUVuZHBvaW50T3dyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL01lZGlhRW5kcG9pbnRP
d3IuY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgdm9pZCBNZWRpYUVuZHBvaW50T3dyOjp1bm11dGVS
ZW1vdGVTb3VyY2UoY29uc3QgU3RyaW5nJiBtaWQsIE93ck1lZGlhU291cmNlKiByZWEKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghcmVtb3RlU291cmNlLT5zdG9wcGVkKCkpCisg
ICAgaWYgKHJlbW90ZVNvdXJjZS0+aXNQcm9kdWNpbmdEYXRhKCkpCiAgICAgICAgIHJlbW90ZVNv
dXJjZS0+c3dhcE91dFNoYWxsb3dTb3VyY2UoKnJlYWxTb3VyY2UpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1l
TWVkaWFTb3VyY2VPd3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCmluZGV4IDNhZTM3NjI3YTg4MDU0YTc5
MGMxOTcwNjQ3YjU0YmNmZGMyYWQxNTUuLjdjZmJmNzhmMjU4ZDkwOGE1NDRiOTliMWVjOTgyODRi
NTMzZTRhODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5o
CkBAIC01NSw3ICs1NSw3IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VPd3IoT3dyTWVkaWFTb3VyY2Uq
IG1lZGlhU291cmNlLCBjb25zdCBTdHJpbmcmIGlkLCBSZWFsdGltZU1lCiAgICAgLCBtX21lZGlh
U291cmNlKG1lZGlhU291cmNlKQogICAgIHsKICAgICAgICAgaWYgKCFtZWRpYVNvdXJjZSkKLSAg
ICAgICAgICAgIG1fbXV0ZWQgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5TXV0ZWRDaGFuZ2Uo
dHJ1ZSk7CiAgICAgfQogCiBSZWFsdGltZU1lZGlhU291cmNlT3dyKGNvbnN0IFN0cmluZyYgaWQs
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcApp
bmRleCBjNDdlNzViNzRiNDU0MTM2MThjNDI1ODNlYzg3OGU4YjA5NmNjODVhLi4zNzVjZTdkZmRi
Y2Y2MWJlMDgyMzk1NDI4MDYzZjYwN2Q4NDMxMDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNwcApAQCAtMjA4LDcgKzIwOCw3IEBA
IFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBNb2NrTWVkaWFFbmRwb2ludDo6Y3JlYXRlTXV0ZWRS
ZW1vdGVTb3VyY2UoY29uc3QgU3RyaW5nCiAgICAgfQogCiAgICAgbV9tdXRlZFJlbW90ZVNvdXJj
ZXMuc2V0KG1pZCwgc291cmNlKTsKLSAgICByZXR1cm4gKnNvdXJjZTsKKyAgICByZXR1cm4gc291
cmNlLnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKIHZvaWQgTW9ja01lZGlhRW5kcG9pbnQ6OnJlcGxh
Y2VTZW5kU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmIG5ld1NvdXJjZSwgY29uc3QgU3RyaW5n
JiBtaWQpCkBAIC0zMzQsNyArMzM0LDcgQEAgdm9pZCBNb2NrTWVkaWFFbmRwb2ludDo6dW5tdXRl
UmVtb3RlU291cmNlc0J5TWlkKCkKIAogdm9pZCBNb2NrTWVkaWFFbmRwb2ludDo6dW5tdXRlVGlt
ZXJGaXJlZCgpCiB7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSA9IG1f
bXV0ZWRSZW1vdGVTb3VyY2VzLmdldChtX21pZHNPZlNvdXJjZXNUb1VubXV0ZS50YWtlTGFzdCgp
KTsKKyAgICBhdXRvKiBzb3VyY2UgPSBtX211dGVkUmVtb3RlU291cmNlcy5nZXQobV9taWRzT2ZT
b3VyY2VzVG9Vbm11dGUudGFrZUxhc3QoKSk7CiAgICAgaWYgKHNvdXJjZSkKICAgICAgICAgc291
cmNlLT5zZXRNdXRlZChmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggNTgxYmUyOWM0ODdi
NTUzMzg2MzUxNDBhZmZjZGZkZmFlZDc3YWFiNC4uYzg1ZDljZWE1MTQxZTU4YmY3NDM0YThhNDU0
NDYzYjQxNGVmNzdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTY1LDE0ICs2NSwxNCBAQCBDYXB0
dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgTQogCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdU
Rk1vdmUoc291cmNlKSk7CiB9CisjZW5kaWYKIAotUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBu
YW1lKQorUmVmPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKG5hbWUpKTsKLSAgICBzb3VyY2Ut
Pm1fbXV0ZWQgPSB0cnVlOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZShuYW1lKSk7CisgICAgc291cmNlLT5ub3RpZnlNdXRlZENoYW5nZSh0
cnVlKTsKICAgICByZXR1cm4gc291cmNlOwogfQotI2VuZGlmCiAKIHN0YXRpYyBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZUZhY3RvcnkmIG1vY2tBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5KCkKIHsK
QEAgLTEyMSwxMSArMTIxLDYgQEAgdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6aW5pdGlh
bGl6ZVN1cHBvcnRlZENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2UKIAogdm9pZCBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBpZiAobV9p
c1Byb2R1Y2luZ0RhdGEpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNQcm9kdWNpbmdEYXRh
ID0gdHJ1ZTsKLQogI2lmIFBMQVRGT1JNKElPUykKICAgICBtb2NrQXVkaW9DYXB0dXJlU291cmNl
RmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CiAjZW5kaWYKQEAgLTEzMywyMCArMTI4
LDEyIEBAIHZvaWQgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgp
CiAgICAgaWYgKCFzYW1wbGVSYXRlKCkpCiAgICAgICAgIHNldFNhbXBsZVJhdGUoIWRldmljZUlu
ZGV4KCkgPyA0NDEwMCA6IDQ4MDAwKTsKIAotICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpz
dGFydFByb2R1Y2luZ0RhdGEoKTsKLQogICAgIG1fc3RhcnRUaW1lID0gbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCk7CiAgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhyZW5kZXJJbnRlcnZh
bCgpKTsKIH0KIAogdm9pZCBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6c3RvcFByb2R1Y2luZ0Rh
dGEoKQogewotICAgIGlmICghbV9pc1Byb2R1Y2luZ0RhdGEpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1faXNQcm9kdWNpbmdEYXRhID0gZmFsc2U7Ci0KLSAgICBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKTsKICAgICBtX3RpbWVyLnN0b3AoKTsKICAgICBtX2Vs
YXBzZWRUaW1lICs9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9zdGFydFRpbWU7
CiAgICAgbV9zdGFydFRpbWUgPSBOQU47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggNjdlZTU5ZTZiMDVhNDdj
ODFjMThiNTkwZDQ1Zjk3YTk3ZjA5ZDA3MS4uM2ExOWZhMDdkYjliMmY0MzljZGY2ZmZlZTBiMGY5
NWZlNDMyOTlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZSA6IHB1YmxpYyBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJs
aWM6CiAKICAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKLSAgICBzdGF0aWMgUmVmUHRyPE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlPiBjcmVhdGVNdXRlZChjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIHN0
YXRpYyBSZWY8TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U+IGNyZWF0ZU11dGVkKGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CiAKICAgICBzdGF0aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwog
CkBAIC01NCw3ICs1NCw2IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwotICAgIGJv
b2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc1Byb2R1Y2luZ0Rh
dGE7IH0KIAogICAgIHZpcnR1YWwgdm9pZCByZW5kZXIoZG91YmxlKSB7IH0KIApAQCAtODAsNyAr
NzksNiBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX3N0YXJ0VGltZSB7IE5BTiB9OwogICAgIGRv
dWJsZSBtX2xhc3RSZW5kZXJUaW1lIHsgTkFOIH07CiAgICAgZG91YmxlIG1fZWxhcHNlZFRpbWUg
eyAwIH07Ci0gICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCmluZGV4IDc2NzIzYWVhYzZiYTg0Yzc3
MDU0NWMxNzNiYWRlMzgwMDQxOWQxMmUuLjQ0MGJiOThkNmQyODYwN2Q0YjZmOTAyZDkzZmFiZDBk
Mzc0YzkzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC04MCwxMSArODAsMTEgQEAgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2U6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQs
IFJlYWx0aW1lTWVkaWEKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgogICAgICAgICBtX2RldmljZUluZGV4ID0gbmFtZSA9PSBh
dWRpb0RldmljZXMoKVswXS5sYWJlbCgpID8gMCA6IDE7Ci0gICAgICAgIHNldFBlcnNpc3RlbnRJ
RChhdWRpb0RldmljZXMoKVttX2RldmljZUluZGV4XS5wZXJzaXN0ZW50SWQoKSk7CisgICAgICAg
IHNldFBlcnNpc3RlbnRJRChTdHJpbmcoYXVkaW9EZXZpY2VzKClbbV9kZXZpY2VJbmRleF0ucGVy
c2lzdGVudElkKCkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW86CiAgICAgICAgIG1fZGV2aWNlSW5kZXggPSBuYW1lID09IHZpZGVv
RGV2aWNlcygpWzBdLmxhYmVsKCkgPyAwIDogMTsKLSAgICAgICAgc2V0UGVyc2lzdGVudElEKHZp
ZGVvRGV2aWNlcygpW21fZGV2aWNlSW5kZXhdLnBlcnNpc3RlbnRJZCgpKTsKKyAgICAgICAgc2V0
UGVyc2lzdGVudElEKFN0cmluZyh2aWRlb0RldmljZXMoKVttX2RldmljZUluZGV4XS5wZXJzaXN0
ZW50SWQoKSkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpOb25lOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEzMiwxOCAr
MTMyLDYgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c3VwcG9ydGVkQ29uc3QKICAgICByZXR1cm4gbV9zdXBwb3J0ZWRD
b25zdHJhaW50czsKIH0KIAotdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9k
dWNpbmdEYXRhKCkKLXsKLSAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IHRydWU7Ci0gICAgc2V0TXV0
ZWQoZmFsc2UpOwotfQotCi12b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wUHJvZHVj
aW5nRGF0YSgpCi17Ci0gICAgbV9pc1Byb2R1Y2luZ0RhdGEgPSBmYWxzZTsKLSAgICBzZXRNdXRl
ZCh0cnVlKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA5YTVhZDFkMjA0ODIwNGUwMDUyYmI1ZDY1
N2UyNjI4NTZjMWJjYWFkLi41MDZlNDgyYTJjZmFjNmZjMzg1YTBlZTA1MWVlNTIwN2RjNzk0YTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCkBAIC02NSw5ICs2NSw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IHZvaWQgaW5pdGlhbGl6ZVN1cHBvcnRlZENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyYpID0gMDsKICNlbmRpZgogCi0gICAgdm9pZCBzdGFydFByb2R1
Y2luZ0RhdGEoKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3ZlcnJp
ZGU7Ci0KICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmls
aXRpZXMoKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmIHNldHRpbmdzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTg0LDE0ICs4MSwxMSBAQCBw
cml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZVNldHRpbmdzKCk7CiAjZW5kaWYKIAotICAgIGJv
b2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1Byb2R1Y2lu
Z0RhdGE7IH0KLQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX2N1cnJlbnRTZXR0
aW5nczsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMgbV9zdXBw
b3J0ZWRDb25zdHJhaW50czsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWlu
dHM+IG1fY29uc3RyYWludHM7CiAgICAgdW5zaWduZWQgbV9kZXZpY2VJbmRleCB7IDAgfTsKLSAg
ICBib29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMGYxNzkxOTc5NmY2OGU4ZDk5Y2UyYzkwYjg2
ZWJjZjEzOGI1ZWEzNC4uMmFkN2FiMzUzZGEwMGJlNWVhYTUzYTNjYjAxNTUwMzU5NjI4MTMwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKQEAgLTcyLDE0ICs3MiwxNCBAQCBDYXB0dXJlU291cmNlT3JFcnJv
ciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgTQogCiAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7
CiB9CisjZW5kaWYKIAotUmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKQorUmVmPE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlTXV0ZWQo
Y29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlKG5hbWUpKTsKLSAgICBzb3VyY2UtPm1fbXV0ZWQgPSB0cnVl
OworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZShuYW1lKSk7CisgICAgc291cmNlLT5ub3RpZnlNdXRlZENoYW5nZSh0cnVlKTsKICAgICByZXR1
cm4gc291cmNlOwogfQotI2VuZGlmCiAKIHN0YXRpYyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZh
Y3RvcnkmIG1vY2tWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5KCkKIHsKQEAgLTExMiwxNiArMTEy
LDEwIEBAIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjp+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uo
KQogCiB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQog
ewotICAgIGlmIChtX2lzUHJvZHVjaW5nRGF0YSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAg
IG1faXNQcm9kdWNpbmdEYXRhID0gdHJ1ZTsKLSAgICAKICNpZiBQTEFURk9STShJT1MpCiAgICAg
bW9ja1ZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwog
I2VuZGlmCiAKLSAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRh
KCk7CiAgICAgaWYgKHNpemUoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgc2V0V2lkdGgoNjQwKTsK
ICAgICAgICAgc2V0SGVpZ2h0KDQ4MCk7CkBAIC0xMzMsMTIgKzEyNyw2IEBAIHZvaWQgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiAKIHZvaWQgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKIHsKLSAgICBpZiAoIW1faXNQcm9k
dWNpbmdEYXRhKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9pc1Byb2R1Y2luZ0RhdGEg
PSBmYWxzZTsKLSAgICAKLSAgICBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcFByb2R1Y2lu
Z0RhdGEoKTsKICAgICBtX3RpbWVyLnN0b3AoKTsKICAgICBtX2VsYXBzZWRUaW1lICs9IG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9zdGFydFRpbWU7CiAgICAgbV9zdGFydFRpbWUg
PSBOQU47CkBAIC0zODQsNyArMzcyLDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Z2VuZXJhdGVGcmFtZSgpCiAgICAgRmxvYXRSZWN0IGZyYW1lUmVjdChGbG9hdFBvaW50KCksIHNp
emUpOwogICAgIGNvbnRleHQuZmlsbFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZSks
ICFkZXZpY2VJbmRleCgpID8gQ29sb3I6OmJsYWNrIDogQ29sb3I6OmRhcmtHcmF5KTsKIAotICAg
IGlmICghbV9tdXRlZCAmJiBtX2VuYWJsZWQpIHsKKyAgICBpZiAoIW11dGVkKCkgJiYgZW5hYmxl
ZCgpKSB7CiAgICAgICAgIGRyYXdUZXh0KGNvbnRleHQpOwogICAgICAgICBkcmF3QW5pbWF0aW9u
KGNvbnRleHQpOwogICAgICAgICBkcmF3Qm94ZXMoY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXgg
YzQzOWFkZDJlYTZjZTk3YjU0MTIzNzA2YzBlMzM3ZWEwNmFjMjIzMy4uYzc1NjhlMmViMzg3ZTM1
MWJkYmM1OTRiNDI4ZGZmMjk2OGI4YzIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDcsNyArNDcsNyBA
QCBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZSB7CiBwdWJsaWM6CiAKICAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKLSAgICBzdGF0aWMg
UmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGVNdXRlZChjb25zdCBTdHJpbmcm
IG5hbWUpOworICAgIHN0YXRpYyBSZWY8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZU11
dGVkKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICBzdGF0aWMgVmlkZW9DYXB0dXJlRmFjdG9y
eSYgZmFjdG9yeSgpOwogCkBAIC02OSw3ICs2OSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBm
aW5hbDsKLSAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
aXNQcm9kdWNpbmdEYXRhOyB9CiAKICAgICB2b2lkIGRyYXdBbmltYXRpb24oR3JhcGhpY3NDb250
ZXh0Jik7CiAgICAgdm9pZCBkcmF3VGV4dChHcmFwaGljc0NvbnRleHQmKTsKQEAgLTEwMyw3ICsx
MDIsNiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fZnJhbWVOdW1iZXIgeyAwIH07CiAKICAg
ICBSdW5Mb29wOjpUaW1lcjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gbV90aW1lcjsKLSAgICBi
b29sIG1faXNQcm9kdWNpbmdEYXRhIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA2Y2RiYTFmNzU5M2IwZTRl
MmE1NzkxNTgzMDA1NWY3NzAxZDkzYTY5Li5lZTgxMmQ5ZWY1Mjc3MzNiNDgzMDI3NzhhMjI5NjFl
YzkzOGQ1MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xNTQsMTQgKzE1
NCwxNCBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0YXJ0UHJvZHVjaW5n
RGF0YSh1aW50NjRfdCBpZCkKIHsKICAgICBhdXRvIGl0ZXIgPSBtX3Byb3hpZXMuZmluZChpZCk7
CiAgICAgaWYgKGl0ZXIgIT0gbV9wcm94aWVzLmVuZCgpKQotICAgICAgICBpdGVyLT52YWx1ZS0+
c291cmNlKCkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7CisgICAgICAgIGl0ZXItPnZhbHVlLT5zb3Vy
Y2UoKS5zdGFydCgpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0
b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogewogICAgIGF1dG8gaXRlciA9IG1fcHJveGll
cy5maW5kKGlkKTsKICAgICBpZiAoaXRlciAhPSBtX3Byb3hpZXMuZW5kKCkpCi0gICAgICAgIGl0
ZXItPnZhbHVlLT5zb3VyY2UoKS5zdG9wUHJvZHVjaW5nRGF0YSgpOworICAgICAgICBpdGVyLT52
YWx1ZS0+c291cmNlKCkuc3RvcCgpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OmNhcGFiaWxpdGllcyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRl
eCAzZTM1YzI3NTVkYjk4ZTJmMzJkMjFkNDU0MDE1OGYyMDljZDQ3N2E2Li44ZDU2Y2IyNThiMmU0
ZmY4MDM0MGQxOWE0YTE0NmU5NDkwMDVmMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAt
MTEwLDggKzExMCw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViQXVkaW9CdWZmZXJMaXN0IGF1ZGlv
RGF0YShtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiAgICAgICAgIG1fcmluZ0J1ZmZl
ci5mZXRjaChhdWRpb0RhdGEubGlzdCgpLCBudW1iZXJPZkZyYW1lcywgdGltZS50aW1lVmFsdWUo
KSk7CiAKLSAgICAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IG9ic2VydmVycygpKQotICAgICAg
ICAgICAgb2JzZXJ2ZXItPmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBhdWRpb0RhdGEsIG1f
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGF1ZGlvRGF0YSwgbV9kZXNjcmlwdGlvbiwg
bnVtYmVyT2ZGcmFtZXMpOwogICAgIH0KIAogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2Nl
ZWRlZChjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdz
KQpAQCAtMTI3LDI0ICsxMjYsNiBAQCBwdWJsaWM6CiAgICAgICAgIGNhbGxiYWNrcy5mYWlsdXJl
SGFuZGxlcihmYWlsZWRDb25zdHJhaW50LCBlcnJvck1lc3NhZ2UpOwogICAgIH0KIAotICAgIHZv
aWQgc2V0TXV0ZWQoYm9vbCBtdXRlZCkgZmluYWwKLSAgICB7Ci0gICAgICAgIGlmIChtX211dGVk
ID09IG11dGVkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1fbXV0ZWQgPSBtdXRl
ZDsKLSAgICAgICAgbV9tYW5hZ2VyLnNldE11dGVkKG1faWQsIG1fbXV0ZWQpOwotICAgIH0KLQot
ICAgIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpIGZpbmFsCi0gICAgewotICAgICAgICBp
ZiAobV9lbmFibGVkID09IGVuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
bV9lbmFibGVkID0gZW5hYmxlZDsKLSAgICAgICAgbV9tYW5hZ2VyLnNldEVuYWJsZWQobV9pZCwg
bV9lbmFibGVkKTsKLSAgICB9Ci0KIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEoKSBmaW5hbCB7IG1fbWFuYWdlci5zdGFydFByb2R1Y2luZ0RhdGEobV9pZCk7IH0KICAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX21hbmFnZXIuc3RvcFByb2R1Y2luZ0Rh
dGEobV9pZCk7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310187</attachid>
            <date>2017-05-15 16:55:58 -0700</date>
            <delta_ts>2017-05-15 16:59:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170627-20170515165557.patch</filename>
            <type>text/plain</type>
            <size>8739</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EyMmI0ODMzNjZmYjIy
MjZmMTU1N2RmZTdjM2U4MmFkNTE0ODU2OC4uZTY2MDQ1NjQ1N2FlMzQ2NjQxNGNjYmI0MzQ0ODg3
NmQxMDUxOWM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE3LTA1LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWJSVEMgb3V0Z29pbmcg
bXV0ZWQgdmlkZW8gc291cmNlcyBzaG91bGQgc2VuZCBibGFjayBmcmFtZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDYyNworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzE1MTM4Njk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ292ZXJlZCBieSB1cGRhdGVkIHRlc3QuCisKKyAgICAgICAgSW5zdGVh
ZCBvZiBzZW5kaW5nIG9uZSBibGFjayBmcmFtZSBhbmQgdGhlbiBhbm90aGVyIG9uZSBhc3luY2hy
b25vdXNseSwKKyAgICAgICAgd2UgdXNlIHRoZSB0aW1lciB0byBzZW5kIGEgYmxhY2sgZnJhbWUg
ZXZlcnkgc2Vjb25kIHdoZW4gb3V0Z29pbmcgc291cmNlIGlzIG11dGVkLgorCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNvdXJjZU11
dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2U6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZTo6c2VuZEJsYWNrRnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2VuZEJsYWNrRnJhbWUpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2UuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKworMjAxNy0wNS0xNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgU2ltcGxpZnkgUmVhbHRpbWVN
ZWRpYVNvdXJjZSBkYXRhIHByb2R1Y3Rpb24gYW5kIHN0YXRlCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE5OTkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAppbmRleCAyZDE4NzA5N2U0MDgxM2I5NGRjOWE0Nzgy
MGY1MzVjYjNkMDMyNTRlLi41Yzk2MjNiZGU4MDkxYzJlMGQyNmVjYTk3MjNhYTEyN2U5YThhMGJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcApAQCAtODMs
OCArODMsMTIgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNvdXJjZU11dGVk
Q2hhbmdlZCgpCiAKICAgICBtX211dGVkID0gbV92aWRlb1NvdXJjZS0+bXV0ZWQoKTsKIAotICAg
IGlmIChtX211dGVkICYmIG1fc2lua3Muc2l6ZSgpICYmIG1fZW5hYmxlZCkKLSAgICAgICAgc2Vu
ZEJsYWNrRnJhbWUoKTsKKyAgICBpZiAobV9tdXRlZCAmJiBtX3NpbmtzLnNpemUoKSAmJiBtX2Vu
YWJsZWQpIHsKKyAgICAgICAgc2VuZEJsYWNrRnJhbWVzKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgaWYgKG1fYmxhY2tGcmFtZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fYmxh
Y2tGcmFtZVRpbWVyLnN0b3AoKTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2U6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkKQEAgLTkzLDggKzk3LDEyIEBAIHZvaWQgUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCgpCiAKICAgICBtX2Vu
YWJsZWQgPSBtX3ZpZGVvU291cmNlLT5lbmFibGVkKCk7CiAKLSAgICBpZiAoIW1fZW5hYmxlZCAm
JiBtX3NpbmtzLnNpemUoKSAmJiAhbV9tdXRlZCkKLSAgICAgICAgc2VuZEJsYWNrRnJhbWUoKTsK
KyAgICBpZiAoIW1fZW5hYmxlZCAmJiBtX3NpbmtzLnNpemUoKSAmJiAhbV9tdXRlZCkgeworICAg
ICAgICBzZW5kQmxhY2tGcmFtZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAo
bV9ibGFja0ZyYW1lVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9ibGFja0ZyYW1lVGltZXIu
c3RvcCgpOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U2l6ZUZy
b21Tb3VyY2UoKQpAQCAtMTIxLDcgKzEyOSw3IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlOjpSZW1vdmVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0Yzo6VmlkCiAg
ICAgbV9zaW5rcy5yZW1vdmVGaXJzdChzaW5rKTsKIH0KIAotdm9pZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OnNlbmRCbGFja0ZyYW1lKCkKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlOjpzZW5kQmxhY2tGcmFtZXMoKQogewogICAgIGlmICghbV9ibGFja0ZyYW1lKSB7CiAg
ICAgICAgIGF1dG8gZnJhbWUgPSBtX2J1ZmZlclBvb2wuQ3JlYXRlQnVmZmVyKG1fd2lkdGgsIG1f
aGVpZ2h0KTsKQEAgLTEyOSw4ICsxMzcsNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZTo6c2VuZEJsYWNrRnJhbWUoKQogICAgICAgICBtX2JsYWNrRnJhbWUgPSBXVEZNb3ZlKGZy
YW1lKTsKICAgICB9CiAgICAgc2VuZE9uZUJsYWNrRnJhbWUoKTsKLSAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIG5vdCBuZWVkIHRvIHNlbmQgdHdvIGJsYWNrIGZyYW1lcyBidXQgVlRCIHJlcXVpcmVz
IHRoYXQgc28gd2UgYXJlIHN1cmUgYSBibGFjayBmcmFtZSBpcyBzZW50IG92ZXIgdGhlIHdpcmUu
Ci0gICAgbV9ibGFja0ZyYW1lVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CisgICAgbV9ibGFja0Zy
YW1lVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9zKTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OnNlbmRPbmVCbGFja0ZyYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2UuaAppbmRleCBjOTU2ZWI4M2EyZmI2OGIyZTU1NjE1NzdkZDdhOTkyMTY5
ZmNiNDZkLi5jMDdiMzQ0ZWQ5YjRhNTM2YTIyMWRjNjdmNzRjZjEwYTUxZWJmYzU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCkBAIC01OCw3ICs1OCw3IEBAIHBy
aXZhdGU6CiAgICAgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlKFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmKTsKIAogICAgIHZvaWQgc2VuZEZyYW1lKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJy
dGM6OlZpZGVvRnJhbWVCdWZmZXI+JiYpOwotICAgIHZvaWQgc2VuZEJsYWNrRnJhbWUoKTsKKyAg
ICB2b2lkIHNlbmRCbGFja0ZyYW1lcygpOwogICAgIHZvaWQgc2VuZE9uZUJsYWNrRnJhbWUoKTsK
ICAgICB2b2lkIHNldFNpemVGcm9tU291cmNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCBlYTUyYjQ3MzY3YWU1YjZkOTNkYmEzNWY4YzJkNjkwNzIxNjllZmFiLi4x
YmQ1YWFmZjQzZDQ2YzUyNzMwYjE1NGY2ZWY0Mjc5N2VhMWRlMWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zOTg2LDE0ICszOTg2LDE1IEBAIHZvaWQgSW50ZXJuYWxz
Ojp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgIGlmICghbV9u
ZXh0VHJhY2tGcmFtZVByb21pc2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gdmlkZW9T
ZXR0aW5ncyA9IG1fdHJhY2stPmdldFNldHRpbmdzKCk7Ci0gICAgaWYgKCF2aWRlb1NldHRpbmdz
LndpZHRoIHx8ICF2aWRlb1NldHRpbmdzLmhlaWdodCkKKyAgICBhdXRvJiB2aWRlb1NldHRpbmdz
ID0gbV90cmFjay0+c291cmNlKCkuc2V0dGluZ3MoKTsKKyAgICBpZiAoIXZpZGVvU2V0dGluZ3Mu
d2lkdGgoKSB8fCAhdmlkZW9TZXR0aW5ncy5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuOwotCisg
ICAgCiAgICAgYXV0byByZ2JhID0gc2FtcGxlLmdldFJHQkFJbWFnZURhdGEoKTsKICAgICBpZiAo
IXJnYmEpCiAgICAgICAgIHJldHVybjsKLSAgICBhdXRvIGltYWdlRGF0YSA9IEltYWdlRGF0YTo6
Y3JlYXRlKHJnYmEucmVsZWFzZU5vbk51bGwoKSwgKnZpZGVvU2V0dGluZ3Mud2lkdGgsICp2aWRl
b1NldHRpbmdzLmhlaWdodCk7CisgICAgCisgICAgYXV0byBpbWFnZURhdGEgPSBJbWFnZURhdGE6
OmNyZWF0ZShyZ2JhLnJlbGVhc2VOb25OdWxsKCksIHZpZGVvU2V0dGluZ3Mud2lkdGgoKSwgdmlk
ZW9TZXR0aW5ncy5oZWlnaHQoKSk7CiAgICAgaWYgKCFpbWFnZURhdGEuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgIG1fbmV4dFRyYWNrRnJhbWVQcm9taXNlLT5yZXNvbHZlKGltYWdlRGF0YS5yZWxl
YXNlUmV0dXJuVmFsdWUoKS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBlbHNlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2Fh
ZTliMmEwMmNlNDliNWQ2Y2E5MTM1OTE4MzlhNjQ0ODU2YjQ0Yy4uNmFmNzZlMTU2YmYyNDQzYTc0
NmYzNzVkOWYyODA2ZDEwNTI3NWY2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA1LTE1
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJSVEMgb3V0
Z29pbmcgbXV0ZWQgdmlkZW8gc291cmNlcyBzaG91bGQgc2VuZCBibGFjayBmcmFtZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDYyNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzE1MTM4Njk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJydGMvdmlkZW8tbXV0ZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2VicnRjL3ZpZGVvLW11dGUuaHRtbDoKKwogMjAxNy0wNS0xNSAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsZSBsaW5lIGxheW91dDogTGVh
ZGluZyB3aGl0ZXNwYWNlIGZvbGxvd2VkIGJ5IGEgPGJyPiBwcm9kdWNlcyBhbiBleHRyYSBsaW5l
YnJlYWsuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tbXV0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tbXV0ZS1leHBlY3RlZC50eHQKaW5kZXgg
YmQ5YTBhODZlYWUxZjlhM2E0NDJmNjQ5MzJjODBlYjE2NWU5Y2I0NS4uNGUzNDNhOTM0YWYxYzlh
M2E2OTZmYTc5N2E5YjkyYjE0NDJkZGY0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRj
L3ZpZGVvLW11dGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1t
dXRlLWV4cGVjdGVkLnR4dApAQCAtNSw1ICs1LDYgQEAgRm9sbG93aW5nLCBzaG91bGQgYmUgYSBz
bmFwc2hvdCBvZiB0aGUgdmlkZW8sIGEgYmxhY2sgZnJhbWUgYW5kIGEgc25hcHNob3Qgb2YgdGgK
IFBBU1MgU2V0dGluZyB2aWRlbyBleGNoYW5nZSAKIFBBU1MgVHJhY2sgaXMgZW5hYmxlZCwgdmlk
ZW8gc2hvdWxkIG5vdCBiZSBibGFjayAKIFBBU1MgVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNo
b3VsZCBiZSBibGFjayAKK1BBU1MgSWYgZGlzYWJsZWQsIGJsYWNrIGZyYW1lcyBzaG91bGQgc3Rp
bGwgYmUgY29taW5nIAogUEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJl
IGJsYWNrIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tbXV0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLW11dGUuaHRtbAppbmRleCA0YTMzODJjMGRlNjc2
N2U0M2VkODUwODQyODBhNTQyNjQ0MjhjYzdjLi5lM2FhYmE2MGIyOTg0NDZmMDM2NDdiNWMyNjkw
ZmM5NzBmYWMyY2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tbXV0ZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1tdXRlLmh0bWwKQEAgLTQ2LDExICs0
NiwxMiBAQCBmdW5jdGlvbiBjaGVja1ZpZGVvQmxhY2soZXhwZWN0ZWQsIGlkKQogewogICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgcG9sbFZpZGVv
QmxhY2tDaGVjayhleHBlY3RlZCwgaWQsIHJlc29sdmUpOwotICAgICAgICBzZXRUaW1lb3V0KHJl
amVjdCwgNTAwMCk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJjaGVja1ZpZGVv
QmxhY2sgdGltZWQgb3V0IGZvciAiICsgaWQgKyAiIGV4cGVjdGVkICIgKyBleHBlY3RlZCksIDUw
MDApOwogICAgIH0pOwogfQogCiB2YXIgdHJhY2s7Cit2YXIgcmVtb3RlVHJhY2s7CiBwcm9taXNl
X3Rlc3QoKHRlc3QpID0+IHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKQEAgLTYyLDcgKzYzLDEwIEBA
IHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgICAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMo
KGZpcnN0Q29ubmVjdGlvbikgPT4gewogICAgICAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5h
ZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOwogICAgICAgICAgICAgfSwgKHNlY29uZENvbm5l
Y3Rpb24pID0+IHsKLSAgICAgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAo
dHJhY2tFdmVudCkgPT4geyByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7IH07CisgICAg
ICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNrOworICAg
ICAgICAgICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7IAorICAgICAg
ICAgICAgICAgIH07CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkg
PT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKICAgICAgICAgfSk7CkBAIC04Miw5
ICs4NiwyNSBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKIH0sICJUcmFjayBpcyBkaXNhYmxl
ZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIik7CiAKIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewor
ICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0
KCJUaGlzIHRlc3QgcmVxdWlyZXMgaW50ZXJuYWxzIEFQSSIpOworICAgIGludGVybmFscy5vYnNl
cnZlTWVkaWFTdHJlYW1UcmFjayhyZW1vdGVUcmFjayk7CisgICAgbGV0IGNvdW50ZXIgPSBpbnRl
cm5hbHMudHJhY2tWaWRlb1NhbXBsZUNvdW50OworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHNldEludGVydmFsKCgpID0+IHsKKyAgICAgICAg
ICAgIC8vIFNob3VsZCBnZXQgMSBmcmFtZSBwZXIgc2Vjb25kLgorICAgICAgICAgICAgaWYgKGNv
dW50ZXIgLSBpbnRlcm5hbHMudHJhY2tWaWRlb1NhbXBsZUNvdW50ID49IDIpCisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9LCAzMDApOworICAgICAgICBzZXRUaW1lb3V0KCgp
ID0+IHJlamVjdCgiZGlkIG5vdCBnZXQgZnJhbWVzIiksIDUwMDApOworICAgIH0pOworfSwgIklm
IGRpc2FibGVkLCBibGFjayBmcmFtZXMgc2hvdWxkIHN0aWxsIGJlIGNvbWluZyIpOworCitwcm9t
aXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICB0cmFjay5lbmFibGVkID0gdHJ1ZTsKICAgICByZXR1
cm4gY2hlY2tWaWRlb0JsYWNrKHRydWUsICJjYW52YXMyIik7CiB9LCAiVHJhY2sgaXMgZW5hYmxl
ZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayIpOworCiAgICAgICAgIDwvc2NyaXB0PgogICAg
IDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310189</attachid>
            <date>2017-05-15 16:59:53 -0700</date>
            <delta_ts>2017-05-15 17:41:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170627-20170515165952.patch</filename>
            <type>text/plain</type>
            <size>8735</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EyMmI0ODMzNjZmYjIy
MjZmMTU1N2RmZTdjM2U4MmFkNTE0ODU2OC4uMzRjNGQyMzVhYjBlMTgyZWI4ZmY2MGIwZjg1ZmY3
MDc3NjMxNzg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE3LTA1LTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWJSVEMgb3V0Z29pbmcg
bXV0ZWQgdmlkZW8gc291cmNlcyBzaG91bGQgc2VuZCBibGFjayBmcmFtZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDYyNworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzE1MTM4Njk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29u
LgorCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0LgorCisgICAgICAgIEluc3RlYWQg
b2Ygc2VuZGluZyBvbmUgYmxhY2sgZnJhbWUgYW5kIHRoZW4gYW5vdGhlciBvbmUgYXN5bmNocm9u
b3VzbHksCisgICAgICAgIHdlIHVzZSB0aGUgdGltZXIgdG8gc2VuZCBhIGJsYWNrIGZyYW1lIGV2
ZXJ5IHNlY29uZCB3aGVuIG91dGdvaW5nIHNvdXJjZSBpcyBtdXRlZC4KKworICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzb3VyY2VNdXRl
ZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Ojpzb3VyY2VFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2U6OnNlbmRCbGFja0ZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNlbmRCbGFja0ZyYW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisKKzIwMTctMDUtMTUgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCiAgICAgICAgIFNpbXBsaWZ5IFJlYWx0aW1lTWVk
aWFTb3VyY2UgZGF0YSBwcm9kdWN0aW9uIGFuZCBzdGF0ZQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxOTk5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggMmQxODcwOTdlNDA4MTNiOTRkYzlhNDc4MjBm
NTM1Y2IzZDAzMjU0ZS4uNWM5NjIzYmRlODA5MWMyZTBkMjZlY2E5NzIzYWExMjdlOWE4YTBiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKQEAgLTgzLDgg
KzgzLDEyIEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzb3VyY2VNdXRlZENo
YW5nZWQoKQogCiAgICAgbV9tdXRlZCA9IG1fdmlkZW9Tb3VyY2UtPm11dGVkKCk7CiAKLSAgICBp
ZiAobV9tdXRlZCAmJiBtX3NpbmtzLnNpemUoKSAmJiBtX2VuYWJsZWQpCi0gICAgICAgIHNlbmRC
bGFja0ZyYW1lKCk7CisgICAgaWYgKG1fbXV0ZWQgJiYgbV9zaW5rcy5zaXplKCkgJiYgbV9lbmFi
bGVkKSB7CisgICAgICAgIHNlbmRCbGFja0ZyYW1lcygpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChtX2JsYWNrRnJhbWVUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2JsYWNr
RnJhbWVUaW1lci5zdG9wKCk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
Ojpzb3VyY2VFbmFibGVkQ2hhbmdlZCgpCkBAIC05Myw4ICs5NywxMiBAQCB2b2lkIFJlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQogCiAgICAgbV9lbmFi
bGVkID0gbV92aWRlb1NvdXJjZS0+ZW5hYmxlZCgpOwogCi0gICAgaWYgKCFtX2VuYWJsZWQgJiYg
bV9zaW5rcy5zaXplKCkgJiYgIW1fbXV0ZWQpCi0gICAgICAgIHNlbmRCbGFja0ZyYW1lKCk7Cisg
ICAgaWYgKCFtX2VuYWJsZWQgJiYgbV9zaW5rcy5zaXplKCkgJiYgIW1fbXV0ZWQpIHsKKyAgICAg
ICAgc2VuZEJsYWNrRnJhbWVzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1f
YmxhY2tGcmFtZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fYmxhY2tGcmFtZVRpbWVyLnN0
b3AoKTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNpemVGcm9t
U291cmNlKCkKQEAgLTEyMSw3ICsxMjksNyBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZTo6UmVtb3ZlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZAogICAg
IG1fc2lua3MucmVtb3ZlRmlyc3Qoc2luayk7CiB9CiAKLXZvaWQgUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlOjpzZW5kQmxhY2tGcmFtZSgpCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZTo6c2VuZEJsYWNrRnJhbWVzKCkKIHsKICAgICBpZiAoIW1fYmxhY2tGcmFtZSkgewogICAg
ICAgICBhdXRvIGZyYW1lID0gbV9idWZmZXJQb29sLkNyZWF0ZUJ1ZmZlcihtX3dpZHRoLCBtX2hl
aWdodCk7CkBAIC0xMjksOCArMTM3LDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2U6OnNlbmRCbGFja0ZyYW1lKCkKICAgICAgICAgbV9ibGFja0ZyYW1lID0gV1RGTW92ZShmcmFt
ZSk7CiAgICAgfQogICAgIHNlbmRPbmVCbGFja0ZyYW1lKCk7Ci0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBub3QgbmVlZCB0byBzZW5kIHR3byBibGFjayBmcmFtZXMgYnV0IFZUQiByZXF1aXJlcyB0
aGF0IHNvIHdlIGFyZSBzdXJlIGEgYmxhY2sgZnJhbWUgaXMgc2VudCBvdmVyIHRoZSB3aXJlLgot
ICAgIG1fYmxhY2tGcmFtZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworICAgIG1fYmxhY2tGcmFt
ZVRpbWVyLnN0YXJ0UmVwZWF0aW5nKDFfcyk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlOjpzZW5kT25lQmxhY2tGcmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlLmgKaW5kZXggYzk1NmViODNhMmZiNjhiMmU1NTYxNTc3ZGQ3YTk5MjE2OWZj
YjQ2ZC4uYzA3YjM0NGVkOWI0YTUzNmEyMjFkYzY3Zjc0Y2YxMGE1MWViZmM1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2
YXRlOgogICAgIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4mJik7CiAKICAgICB2b2lkIHNlbmRGcmFtZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRj
OjpWaWRlb0ZyYW1lQnVmZmVyPiYmKTsKLSAgICB2b2lkIHNlbmRCbGFja0ZyYW1lKCk7CisgICAg
dm9pZCBzZW5kQmxhY2tGcmFtZXMoKTsKICAgICB2b2lkIHNlbmRPbmVCbGFja0ZyYW1lKCk7CiAg
ICAgdm9pZCBzZXRTaXplRnJvbVNvdXJjZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggZWE1MmI0NzM2N2FlNWI2ZDkzZGJhMzVmOGMyZDY5MDcyMTY5ZWZhYi4uMWJk
NWFhZmY0M2Q0NmM1MjczMGIxNTRmNmVmNDI3OTdlYTFkZTFmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtMzk4NiwxNCArMzk4NiwxNSBAQCB2b2lkIEludGVybmFsczo6
dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICBpZiAoIW1fbmV4
dFRyYWNrRnJhbWVQcm9taXNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHZpZGVvU2V0
dGluZ3MgPSBtX3RyYWNrLT5nZXRTZXR0aW5ncygpOwotICAgIGlmICghdmlkZW9TZXR0aW5ncy53
aWR0aCB8fCAhdmlkZW9TZXR0aW5ncy5oZWlnaHQpCisgICAgYXV0byYgdmlkZW9TZXR0aW5ncyA9
IG1fdHJhY2stPnNvdXJjZSgpLnNldHRpbmdzKCk7CisgICAgaWYgKCF2aWRlb1NldHRpbmdzLndp
ZHRoKCkgfHwgIXZpZGVvU2V0dGluZ3MuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKLQorICAg
IAogICAgIGF1dG8gcmdiYSA9IHNhbXBsZS5nZXRSR0JBSW1hZ2VEYXRhKCk7CiAgICAgaWYgKCFy
Z2JhKQogICAgICAgICByZXR1cm47Ci0gICAgYXV0byBpbWFnZURhdGEgPSBJbWFnZURhdGE6OmNy
ZWF0ZShyZ2JhLnJlbGVhc2VOb25OdWxsKCksICp2aWRlb1NldHRpbmdzLndpZHRoLCAqdmlkZW9T
ZXR0aW5ncy5oZWlnaHQpOworICAgIAorICAgIGF1dG8gaW1hZ2VEYXRhID0gSW1hZ2VEYXRhOjpj
cmVhdGUocmdiYS5yZWxlYXNlTm9uTnVsbCgpLCB2aWRlb1NldHRpbmdzLndpZHRoKCksIHZpZGVv
U2V0dGluZ3MuaGVpZ2h0KCkpOwogICAgIGlmICghaW1hZ2VEYXRhLmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICBtX25leHRUcmFja0ZyYW1lUHJvbWlzZS0+cmVzb2x2ZShpbWFnZURhdGEucmVsZWFz
ZVJldHVyblZhbHVlKCkucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhYWU5
YjJhMDJjZTQ5YjVkNmNhOTEzNTkxODM5YTY0NDg1NmI0NGMuLjJmNmYyODQ5NjU5MjRjNmEzYTNk
Njk2MWI5OWIyYzQzNjFlNGJmN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNS0xNSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIG91dGdv
aW5nIG11dGVkIHZpZGVvIHNvdXJjZXMgc2hvdWxkIHNlbmQgYmxhY2sgZnJhbWVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2MjcKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMxNTEzODY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICAqIHdlYnJ0Yy92aWRlby1tdXRlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWJydGMvdmlkZW8tbXV0ZS5odG1sOgorCiAyMDE3LTA1LTE1ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0OiBMZWFkaW5n
IHdoaXRlc3BhY2UgZm9sbG93ZWQgYnkgYSA8YnI+IHByb2R1Y2VzIGFuIGV4dHJhIGxpbmVicmVh
ay4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1tdXRlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1tdXRlLWV4cGVjdGVkLnR4dAppbmRleCBiZDlh
MGE4NmVhZTFmOWEzYTQ0MmY2NDkzMmM4MGViMTY1ZTljYjQ1Li40ZTM0M2E5MzRhZjFjOWEzYTY5
NmZhNzk3YTliOTJiMTQ0MmRkZjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlk
ZW8tbXV0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLW11dGUt
ZXhwZWN0ZWQudHh0CkBAIC01LDUgKzUsNiBAQCBGb2xsb3dpbmcsIHNob3VsZCBiZSBhIHNuYXBz
aG90IG9mIHRoZSB2aWRlbywgYSBibGFjayBmcmFtZSBhbmQgYSBzbmFwc2hvdCBvZiB0aAogUEFT
UyBTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlIAogUEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBz
aG91bGQgbm90IGJlIGJsYWNrIAogUEFTUyBUcmFjayBpcyBkaXNhYmxlZCwgdmlkZW8gc2hvdWxk
IGJlIGJsYWNrIAorUEFTUyBJZiBkaXNhYmxlZCwgYmxhY2sgZnJhbWVzIHNob3VsZCBzdGlsbCBi
ZSBjb21pbmcgCiBQQVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxh
Y2sgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1tdXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tbXV0ZS5odG1sCmluZGV4IDRhMzM4MmMwZGU2NzY3ZTQz
ZWQ4NTA4NDI4MGE1NDI2NDQyOGNjN2MuLjkyYTI5OTgxYTQ3MmY1NDJiODRiNTk3MjhmNWFhMjYy
MmMxOTY5OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1tdXRlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLW11dGUuaHRtbApAQCAtNDYsMTEgKzQ2LDEy
IEBAIGZ1bmN0aW9uIGNoZWNrVmlkZW9CbGFjayhleHBlY3RlZCwgaWQpCiB7CiAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgICBwb2xsVmlkZW9CbGFj
a0NoZWNrKGV4cGVjdGVkLCBpZCwgcmVzb2x2ZSk7Ci0gICAgICAgIHNldFRpbWVvdXQocmVqZWN0
LCA1MDAwKTsKKyAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoImNoZWNrVmlkZW9CbGFj
ayB0aW1lZCBvdXQgZm9yICIgKyBpZCArICIgZXhwZWN0ZWQgIiArIGV4cGVjdGVkKSwgNTAwMCk7
CiAgICAgfSk7CiB9CiAKIHZhciB0cmFjazsKK3ZhciByZW1vdGVUcmFjazsKIHByb21pc2VfdGVz
dCgodGVzdCkgPT4gewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwpAQCAtNjIsNyArNjMsMTAgQEAgcHJv
bWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmly
c3RDb25uZWN0aW9uKSA9PiB7CiAgICAgICAgICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmFkZFRy
YWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CiAgICAgICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlv
bikgPT4gewotICAgICAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFj
a0V2ZW50KSA9PiB7IHJlc29sdmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsgfTsKKyAgICAgICAg
ICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAg
ICAgICAgICAgICAgICAgICByZW1vdGVUcmFjayA9IHRyYWNrRXZlbnQudHJhY2s7CisgICAgICAg
ICAgICAgICAgICAgIHJlc29sdmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsgCisgICAgICAgICAg
ICAgICAgfTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBy
ZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOwogICAgICAgICB9KTsKQEAgLTgyLDkgKzg2
LDI1IEBAIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogfSwgIlRyYWNrIGlzIGRpc2FibGVkLCB2
aWRlbyBzaG91bGQgYmUgYmxhY2siKTsKIAogcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAg
aWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoIlRo
aXMgdGVzdCByZXF1aXJlcyBpbnRlcm5hbHMgQVBJIik7CisgICAgaW50ZXJuYWxzLm9ic2VydmVN
ZWRpYVN0cmVhbVRyYWNrKHJlbW90ZVRyYWNrKTsKKyAgICBsZXQgY291bnRlciA9IGludGVybmFs
cy50cmFja1ZpZGVvU2FtcGxlQ291bnQ7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
LCByZWplY3QpID0+IHsKKyAgICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4geworICAgICAgICAgICAg
Ly8gU2hvdWxkIGdldCAxIGZyYW1lIHBlciBzZWNvbmQuCisgICAgICAgICAgICBpZiAoaW50ZXJu
YWxzLnRyYWNrVmlkZW9TYW1wbGVDb3VudCAtIGNvdW50ZXIgPj0gMikKKyAgICAgICAgICAgICAg
ICByZXNvbHZlKCk7CisgICAgICAgIH0sIDMwMCk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4g
cmVqZWN0KCJkaWQgbm90IGdldCBmcmFtZXMiKSwgNTAwMCk7CisgICAgfSk7Cit9LCAiSWYgZGlz
YWJsZWQsIGJsYWNrIGZyYW1lcyBzaG91bGQgc3RpbGwgYmUgY29taW5nIik7CisKK3Byb21pc2Vf
dGVzdCgodGVzdCkgPT4gewogICAgIHRyYWNrLmVuYWJsZWQgPSB0cnVlOwogICAgIHJldHVybiBj
aGVja1ZpZGVvQmxhY2sodHJ1ZSwgImNhbnZhczIiKTsKIH0sICJUcmFjayBpcyBlbmFibGVkLCB2
aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIik7CisKICAgICAgICAgPC9zY3JpcHQ+CiAgICAgPC9i
b2R5PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>