<?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>212168</bug_id>
          
          <creation_ts>2020-05-20 14:34:53 -0700</creation_ts>
          <short_desc>[macOS] Scrolling synchronization part 1: Have the scrolling thread wait half a frame for the main thread to complete the rendering update</short_desc>
          <delta_ts>2020-06-12 10:18:34 -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>Scrolling</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>
          <dependson>213135</dependson>
          <blocked>210884</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1654645</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-20 14:34:53 -0700</bug_when>
    <thetext>[macOS] Scrolling synchronization part 1: Have the scrolling thread wait half a frame for the main thread to complete the rendering update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654652</commentid>
    <comment_count>1</comment_count>
      <attachid>399894</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-20 14:47:40 -0700</bug_when>
    <thetext>Created attachment 399894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654660</commentid>
    <comment_count>2</comment_count>
      <attachid>399894</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-20 14:59:51 -0700</bug_when>
    <thetext>Comment on attachment 399894
Patch

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

&gt; Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp:227
&gt; +    auto displayFPS = nominalFramesPerSecond();

valueOr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654795</commentid>
    <comment_count>3</comment_count>
      <attachid>399930</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-20 21:43:50 -0700</bug_when>
    <thetext>Created attachment 399930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654798</commentid>
    <comment_count>4</comment_count>
      <attachid>399931</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-20 21:47:06 -0700</bug_when>
    <thetext>Created attachment 399931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654810</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-20 23:47:29 -0700</bug_when>
    <thetext>Committed r261985: &lt;https://trac.webkit.org/changeset/261985&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399931.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654811</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-20 23:48:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/63481163&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399894</attachid>
            <date>2020-05-20 14:47:40 -0700</date>
            <delta_ts>2020-05-20 14:59:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212168-20200520144740.patch</filename>
            <type>text/plain</type>
            <size>21804</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDMwZjU3ZGVmNDljMGZmODY1ZDc0Mzhl
OGRkODYzZjZhZThmNWEwZDUuLjZlY2NjOWZjMzIxMzRjYTJjMWFiYjlmZTUxN2IyNWE5NTI4NTYy
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBTY3JvbGxpbmcgc3luY2hyb25p
emF0aW9uIHBhcnQgMTogSGF2ZSB0aGUgc2Nyb2xsaW5nIHRocmVhZCB3YWl0IGhhbGYgYSBmcmFt
ZSBmb3IgdGhlIG1haW4gdGhyZWFkIHRvIGNvbXBsZXRlIHRoZSByZW5kZXJpbmcgdXBkYXRlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIxNjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG5ldyB0
cmFjZSBwb2ludHMgZm9yIHNjcm9sbGluZyB0aHJlYWQgYWN0aXZpdHkuCisKKyAgICAgICAgKiB3
dGYvU3lzdGVtVHJhY2luZy5oOgorCiAyMDIwLTA1LTIwICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBBbmltYXRpb24gZW5naW5l
IHNob3VsZCBub3Qgd2FrZSB1cCBldmVyeSB0aWNrIGZvciBzdGVwcyB0aW1pbmcgZnVuY3Rpb25z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNGVlZWE1ZGFlOWQ2NWNlNTQ0NGIwOGVjZmEzOTBkNjFiYzRhM2Q4My4u
MmVmZjdiNjVmYzc0Y2IzMGE4NzI5YTNiY2FiNDk2YzNkZDEwZjc5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDYwIEBACisyMDIwLTA1LTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2Nyb2xsaW5nIHN5bmNocm9uaXphdGlvbiBwYXJ0
IDE6IEhhdmUgdGhlIHNjcm9sbGluZyB0aHJlYWQgd2FpdCBoYWxmIGEgZnJhbWUgZm9yIHRoZSBt
YWluIHRocmVhZCB0byBjb21wbGV0ZSB0aGUgcmVuZGVyaW5nIHVwZGF0ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMTY4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSBzY3JvbGxp
bmcgdGhyZWFkIGlzIGEgZnJlZS1ydW5uaW5nIHRocmVhZCB0aGF0IG1vdmVzIGxheWVycyBhcm91
bmQgaW4gcmVzcG9uc2UKKyAgICAgICAgdG8gd2hlZWwgZXZlbnRzLCBhbmQgYXN5bmNocm9ub3Vz
bHkgcG9zdHMgZGF0YSBhYm91dCBzY3JvbGxlZCBsYXllcnMgYmFjayB0byB0aGUgbWFpbiB0aHJl
YWQuCisgICAgICAgIFRoYXQgcmVzdWx0cyBpbiBhbiBhbG1vc3QgZ3VhcmFudGVlZCBsYWNrIG9m
IHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIHRoZSBkaXNwbGF5ZWQgbGF5ZXIKKyAgICAgICAgcG9z
aXRpb25zLCBhbmQgdGhlIHdlYi1leHBvc2VkIHZhbHVlcyBmb3Igc2Nyb2xsIHBvc2l0aW9uIChl
bGVtZW50LnNjcm9sbFRvcCwgd2luZG93LnBhZ2VZT2Zmc2V0IGV0YykuCisgICAgICAgIFRoaXMg
aXMgYSBmcmVxdWVudCBzb3VyY2Ugb2Ygc3R1dHRlcmluZyBvciBqdW1weSB3ZWIgY29udGVudCB3
aGVuIHNjcm9sbGluZy4KKworICAgICAgICBUaGUgZmlyc3Qgc3RlcCB0byBmaXhpbmcgdGhpcyBp
cyB0byBzeW5jaHJvbml6ZSB0aGUgc2Nyb2xsaW5nIHRocmVhZCBsYXllciBwb3NpdGlvbnMKKyAg
ICAgICAgYW5kIHRoZSBtYWluIHRocmVhZCBzdGF0ZSBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIG1h
aW4gdGhyZWFkIGlzIHJlc3BvbnNpdmUgZW5vdWdoIHRvCisgICAgICAgIHJlbmRlciBvbmNlIHBl
ciBmcmFtZS4gVGhpcyBpcyBhY2hpZXZlZCBhcyBmb2xsb3c6CisgICAgICAgICAgICAtIFdoZW4g
dGhlIG1haW4gdGhyZWFkIGlzIHN0YXJ0aW5nIGEgcmVuZGVyaW5nIHVwZGF0ZSwgUGFnZTo6dXBk
YXRlUmVuZGVyaW5nKCkgaW5mb3JtcworICAgICAgICAgICAgICB0aGUgc2Nyb2xsaW5nIHRyZWUg
dmlhIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKS4g
VGhpcworICAgICAgICAgICAgICBhdG9taWNhbGx5IHdhaXRzIGZvciB0aGUgc2Nyb2xsaW5nIHRo
cmVhZCB0byB0YWtlIHRoZSBtX3RyZWVNdXRleCAodmlhIGEgQmluYXJ5U2VtYXBob3JlKQorICAg
ICAgICAgICAgICBhbmQgc3RhcnRzIHdhaXRpbmcgb24gdGhlIG1fc3RhdGVDb25kaXRpb24gQ29u
ZGl0aW9uLiBOb3cgdGhlIG1haW4gdGhyZWFkIHB1bGxzIHRoZQorICAgICAgICAgICAgICBzdGF0
ZSBvZiB0aGUgc2Nyb2xsaW5nIHRyZWUgdmlhIHN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5n
VHJlZSgpIGFuZCB1c2VzIGl0IGZvcgorICAgICAgICAgICAgICB0aGUgcmVuZGVyaW5nIHVwZGF0
ZS4KKyAgICAgICAgICAgIC0gSWYgdGhlIHJlbmRlcmluZyB1cGRhdGUgZmluaXNoZXMgd2l0aGlu
IGhhbGYgYSBmcmFtZSAoOG1zKSwgdGhlbiBtX3N0YXRlQ29uZGl0aW9uCisgICAgICAgICAgICAg
IGlzIHJlbGVhc2VkLCBhbmQgdGhlIHNjcm9sbGluZyB0aHJlYWQgYXNzdW1lcyB0aGF0IHRoZSBt
YWluIHRocmVhZCBpcyBnb2luZyB0bworICAgICAgICAgICAgICBjb21taXQgbGF5ZXJzIHJhcGlk
bHkgZW5vdWdoIHRvIHByZXNlcnZlIDYwZnBzIHNjcm9sbGluZy4KKyAgICAgICAgICAgIC0gSWYg
dGhlIHJlbmRlcmluZyB1cGRhdGUgdGFrZXMgdG9vIGxvbmcsIG1fc3RhdGVDb25kaXRpb24gdGlt
ZXMgb3V0LCBhbmQgdGhlIHNjcm9sbGluZworICAgICAgICAgICAgICB0aHJlYWQgYXBwbGllcyBs
YXllciBwb3NpdGlvbnMsIHRyaWdnZXJpbmcgYSBDQSBjb21taXQgb24gdGhhdCB0aHJlYWQuCisK
KyAgICAgICAgV2Ugbm8gbG9uZ2VyIGFwcGx5IGxheWVyIHBvc2l0aW9ucyBkaXJlY3RseSB3aGVu
IGhhbmRsaW5nIHdoZWVsIGV2ZW50cy4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjp1cGRhdGVSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OndpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdDb29yZGluYXRvcjo6ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xs
aW5nVHJlZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRyZWVTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjphcHBseUxheWVyUG9zaXRpb25zSW50ZXJu
YWwpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bm9taW5hbEZyYW1lc1BlclNl
Y29uZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om1heEFsbG93YWJsZVJl
bmRlcmluZ1VwZGF0ZUR1cmF0aW9uRm9yU3luY2hyb25pemF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2FpdEZvclJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRp
b25PclRpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpk
aWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNj
cm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRSZWZyZXNoT25TY3JvbGxpbmdUaHJlYWQpOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp0cmVlTXV0ZXgpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmRpZENvbXBsZXRlUmVu
ZGVyaW5nVXBkYXRlKToKKwogMjAyMC0wNS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBQbHVtYiB0aGUgZGlzcGxheSdzIG5vbWluYWwgcmVmcmVz
aCByYXRlIGRvd24gdG8gU2Nyb2xsaW5nVHJlZSBmb3IgdXNlIGluIHNjcm9sbCBzeW5jaHJvbml6
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N5c3RlbVRyYWNpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL1N5c3RlbVRyYWNpbmcuaAppbmRleCBhOWFkZThhZDA0ZWUxMWIxYjJjOWQ4ZTNk
MjRhMDcyMDZmNTUyMmYwLi4xMTk3NzMwZTY4MDI4YTRiNjYwOTNmNDQwMWFkNzQxNTJkY2E0MmYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFjaW5nLmgKKysrIGIvU291cmNl
L1dURi93dGYvU3lzdGVtVHJhY2luZy5oCkBAIC05MCw2ICs5MCwxMCBAQCBlbnVtIFRyYWNlUG9p
bnRDb2RlIHsKICAgICBQYXJzZUhUTUxFbmQsCiAgICAgRGlzcGxheUxpc3RSZXBsYXlTdGFydCwK
ICAgICBEaXNwbGF5TGlzdFJlcGxheUVuZCwKKyAgICBTY3JvbGxpbmdUaHJlYWRSZW5kZXJVcGRh
dGVTeW5jU3RhcnQsCisgICAgU2Nyb2xsaW5nVGhyZWFkUmVuZGVyVXBkYXRlU3luY0VuZCwKKyAg
ICBTY3JvbGxpbmdUaHJlYWREaXNwbGF5RGlkUmVmcmVzaFN0YXJ0LAorICAgIFNjcm9sbGluZ1Ro
cmVhZERpc3BsYXlEaWRSZWZyZXNoRW5kLAogCiAgICAgV2ViS2l0UmFuZ2UgPSAxMDAwMCwKICAg
ICBXZWJIVE1MVmlld1BhaW50U3RhcnQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAxNGFjMzhjYTg4
ZmE4NjVkMDcwZWQwZTM2Y2ZmMjg2MTRkZTZjMWQwLi4yZGY5ZDJiYzhmYWUzMjNlMDdhMGE2YjI0
NGQ2NWQwMDRjMDlhOWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTEzNjAsNiArMTM2MCwxMSBA
QCB2b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpCiAKICAgICBsYXlvdXRJZk5lZWRlZCgpOwog
CisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29v
cmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICBzY3JvbGxp
bmdDb29yZGluYXRvci0+d2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCk7CisjZW5kaWYKKwogICAg
IC8vIFRpbWVzdGFtcHMgc2hvdWxkIG5vdCBjaGFuZ2Ugd2hpbGUgc2VydmluZyB0aGUgcmVuZGVy
aW5nIHVwZGF0ZSBzdGVwcy4KICAgICBWZWN0b3I8V2Vha1B0cjxEb2N1bWVudD4+IGluaXRpYWxE
b2N1bWVudHM7CiAgICAgZm9yRWFjaERvY3VtZW50KFsmaW5pdGlhbERvY3VtZW50c10gKERvY3Vt
ZW50JiBkb2N1bWVudCkgewpAQCAtMTQ3OCw2ICsxNDgzLDggQEAgdm9pZCBQYWdlOjpmaW5hbGl6
ZVJlbmRlcmluZ1VwZGF0ZShPcHRpb25TZXQ8RmluYWxpemVSZW5kZXJpbmdVcGRhdGVGbGFncz4g
ZmxhZ3MKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmNvbW1pdFRyZWVTdGF0ZUlmTmVl
ZGVkKCk7CiAgICAgICAgIGlmIChmbGFncy5jb250YWlucyhGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0
ZUZsYWdzOjpBcHBseVNjcm9sbGluZ1RyZWVMYXllclBvc2l0aW9ucykpCiAgICAgICAgICAgICBz
Y3JvbGxpbmdDb29yZGluYXRvci0+YXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQb3NpdGlvbnMoKTsK
KyAgICAgICAgICAgIAorICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZGlkQ29tcGxldGVS
ZW5kZXJpbmdVcGRhdGUoKTsKICAgICB9CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRl
eCAyMjA4NjU0ODc2ZTE4MTc3Mzc4MDdmZjMzYzgwZjlhNWEwN2UxMTE3Li44YTcyMDQxZWNkNzcx
MmI2NDhjZmI3OTIwNGQ4ZjdlNTM2Yzc4MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC04Miw2
ICs4Miw3IEBAIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Nyb2xsaW5n
U3RhdGVUcmVlQXNUZXh0KFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yID0gU2Nyb2xs
aW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwpIGNvbnN0IG92ZXJyaWRlOwogICAgIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KFNjcm9sbGluZ1N0YXRlVHJl
ZUFzVGV4dEJlaGF2aW9yID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwp
IGNvbnN0IG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbENvbW1pdFRyZWUo
KSBvdmVycmlkZTsKKyAgICB2b2lkIHN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5nVHJlZSgp
OwogCiAgICAgYm9vbCBldmVudFRyYWNraW5nUmVnaW9uc0RpcnR5KCkgY29uc3QgeyByZXR1cm4g
bV9ldmVudFRyYWNraW5nUmVnaW9uc0RpcnR5OyB9CiAKQEAgLTEwMiw3ICsxMDMsNiBAQCBwcml2
YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KFNjcm9sbGFibGVBcmVhJiwgY29uc3QgSW50UG9pbnQmLCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZykgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5U2Nyb2xsaW5n
VHJlZUxheWVyUG9zaXRpb25zKCkgb3ZlcnJpZGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
eW5jaHJvbml6ZVN0YXRlRnJvbVNjcm9sbGluZ1RyZWUoKSBvdmVycmlkZTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIFNjcm9sbGluZ05vZGVJRCBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQgbmV3Tm9kZUlEKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCBT
Y3JvbGxpbmdOb2RlSUQgaW5zZXJ0Tm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEIG5ld05vZGVJRCwgU2Nyb2xsaW5nTm9kZUlEIHBhcmVudElELCBzaXplX3QgY2hpbGRJbmRl
eCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBlMWY1NjdjMzE1NjAyYzliOGM3MGU4OGZjYzJkMzAx
OTE5MTAwNDIwLi4wMDViY2M1OWVhN2ViYWU1N2U2MGQxNjE4YTIzOTI0MTIwYjUwYzFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmgKQEAgLTExMyw4ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAgLy8gVHJhdmVyc2VzIHRoZSBz
Y3JvbGxpbmcgdHJlZSwgc2V0dGluZyBsYXllciBwb3NpdGlvbnMgdG8gcmVwcmVzZW50IHRoZSBj
dXJyZW50IHNjcm9sbGVkIHN0YXRlLgogICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbGluZ1Ry
ZWVMYXllclBvc2l0aW9ucygpIHsgfQogCi0gICAgLy8gVGFrZXMgc2Nyb2xsIHBvc2l0aW9ucyBm
cm9tIHRoZSBzY3JvbGxpbmcgdHJlZSBhbmQgYXBwbGllcyB0aGVtIHRvIFNjcm9sbGFibGVBcmVh
cy4KLSAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTdGF0ZUZyb21TY3JvbGxpbmdUcmVlKCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSgpIHsgfQogCiAjaWYgRU5B
QkxFKEtJTkVUSUNfU0NST0xMSU5HKQogICAgIC8vIERpc3BhdGNoZWQgYnkgdGhlIHNjcm9sbGlu
ZyB0cmVlIGR1cmluZyBoYW5kbGVXaGVlbEV2ZW50LiBUaGlzIGlzIHJlcXVpcmVkIGFzIGxvbmcg
YXMgc2Nyb2xsYmFycyBhcmUgcGFpbnRlZCBvbiB0aGUgbWFpbiB0aHJlYWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IDFhZGFjYTIw
MjkyZTUzZTQwYjc2MTY1ZjdmYWM0NGMxMzZjYTc1ZDAuLjE1YWFiOTY1NzZhZjIwNTFiNTUxZWU5
ZjUyMmU3NTYyMDVjMTg1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xNTgsOSArMTU4LDYgQEAgU2Nyb2xsaW5nRXZlbnRSZXN1
bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHcKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVF
dmVudDsKICAgICB9KCk7CiAKLSAgICBpZiAocmVzdWx0ID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWRIYW5kbGVFdmVudCkKLSAgICAgICAgYXBwbHlMYXllclBvc2l0aW9uc0ludGVybmFsKCk7
Ci0gICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMjE3LDkgKzIxNCw5IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdT
dGF0ZVRyZWU+JiYgc2Nyb2xsCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVlTXV0ZXgpOwog
CiAgICAgYm9vbCByb290U3RhdGVOb2RlQ2hhbmdlZCA9IHNjcm9sbGluZ1N0YXRlVHJlZS0+aGFz
TmV3Um9vdFN0YXRlTm9kZSgpOwotICAgIAorCiAgICAgTE9HKFNjcm9sbGluZ1RyZWUsICJcblNj
cm9sbGluZ1RyZWUgJXAgY29tbWl0VHJlZVN0YXRlIiwgdGhpcyk7Ci0gICAgCisKICAgICBhdXRv
KiByb290Tm9kZSA9IHNjcm9sbGluZ1N0YXRlVHJlZS0+cm9vdFN0YXRlTm9kZSgpOwogICAgIGlm
IChyb290Tm9kZQogICAgICAgICAmJiAocm9vdFN0YXRlTm9kZUNoYW5nZWQKQEAgLTM1NCw2ICsz
NTEsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OmFwcGx5TGF5ZXJQb3NpdGlvbnMoKQogCiB2b2lk
IFNjcm9sbGluZ1RyZWU6OmFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpCiB7CisgICAgQVNT
RVJUKG1fdHJlZU11dGV4LmlzTG9ja2VkKCkpOwogICAgIGlmICghbV9yb290Tm9kZSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC01NDAsNiArNTM4LDEyIEBAIFBsYXRmb3JtRGlzcGxheUlEIFNjcm9s
bGluZ1RyZWU6OmRpc3BsYXlJRCgpCiAgICAgcmV0dXJuIG1fdHJlZVN0YXRlLmRpc3BsYXlJRDsK
IH0KIAorT3B0aW9uYWw8dW5zaWduZWQ+IFNjcm9sbGluZ1RyZWU6Om5vbWluYWxGcmFtZXNQZXJT
ZWNvbmQoKQoreworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZVN0YXRlTXV0ZXgpOworICAg
IHJldHVybiBtX3RyZWVTdGF0ZS5ub21pbmFsRnJhbWVzUGVyU2Vjb25kOworfQorCiB2b2lkIFNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQoYm9vbCBm
bGFnKQogewogICAgIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCA9IGZsYWc7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXgg
M2JkODIxZWQ0ODEzMzBjYjM4NWJmOWZkYWFlMTdlZjllNmVkZTNmYi4uNGNjYzQ3OWU1MmIwYTk2
OWRjNmYxMmE2MjkwMzg1ZmViMzJjODM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTg4LDEyICsxODgsMTUgQEAgcHJvdGVjdGVkOgog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTY3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCisgICAgT3B0aW9uYWw8dW5z
aWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQoKTsKKworICAgIHZvaWQgYXBwbHlMYXllclBv
c2l0aW9uc0ludGVybmFsKCk7CisgICAgTG9jayBtX3RyZWVNdXRleDsgLy8gUHJvdGVjdHMgdGhl
IHNjcm9sbGluZyB0cmVlLgorCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVHJlZUZyb21TdGF0
ZU5vZGVSZWN1cnNpdmUoY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlKiwgc3RydWN0IENvbW1pdFRy
ZWVTdGF0ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwcm9wYWdhdGVTeW5jaHJvbm91c1Njcm9sbGlu
Z1JlYXNvbnMoY29uc3QgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+JikgeyB9CiAKLSAgICB2b2lk
IGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwotCiAgICAgdm9pZCBhcHBseUxheWVyUG9z
aXRpb25zUmVjdXJzaXZlKFNjcm9sbGluZ1RyZWVOb2RlJik7CiAgICAgdm9pZCBub3RpZnlSZWxh
dGVkTm9kZXNSZWN1cnNpdmUoU2Nyb2xsaW5nVHJlZU5vZGUmKTsKICAgICB2b2lkIHRyYXZlcnNl
U2Nyb2xsaW5nVHJlZVJlY3Vyc2l2ZShTY3JvbGxpbmdUcmVlTm9kZSYsIGNvbnN0IFZpc2l0b3JG
dW5jdGlvbiYpOwpAQCAtMjAyLDggKzIwNSw2IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+IGV2ZW50TGlzdGVu
ZXJSZWdpb25UeXBlc0ZvclBvaW50KEZsb2F0UG9pbnQpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCByZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgeyB9CiAKLSAg
ICBMb2NrIG1fdHJlZU11dGV4OyAvLyBQcm90ZWN0cyB0aGUgc2Nyb2xsaW5nIHRyZWUuCi0KICAg
ICBSZWZQdHI8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4gbV9yb290Tm9kZTsKIAog
ICAgIHVzaW5nIFNjcm9sbGluZ1RyZWVOb2RlTWFwID0gSGFzaE1hcDxTY3JvbGxpbmdOb2RlSUQs
IFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNjVjNGMzNDU3
MjZlNjAxMGRjNWVkZTM5YWRkMjQxN2ZiMjNlNzM3Yi4uMmM3OTU5YzAzYTY5NjJiNTRmYTY3MzJk
ZjU1NzNjZDJkZjIyYjY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC0zOCw3ICszOCw5IEBACiAjaW5j
bHVkZSAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCIKICNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgorI2luY2x1ZGUgPHd0Zi9TeXN0ZW1U
cmFjaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgorI2luY2x1ZGUgPHd0
Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTIwMiw2ICsyMDQsOTcgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1Ry
ZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGUKIH0KICNlbmRpZgogCit2
b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCkKK3sK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgdHJhY2VQb2ludChTY3JvbGxpbmdU
aHJlYWRSZW5kZXJVcGRhdGVTeW5jU3RhcnQpOworCisgICAgLy8gV2FpdCBmb3IgdGhlIHNjcm9s
bGluZyB0aHJlYWQgdG8gYWNxdWlyZSBtX3RyZWVNdXRleC4gVGhpcyBlbnN1cmVzIHRoYXQgYW55
IHBlbmRpbmcgd2hlZWwgZXZlbnRzIGFyZSBwcm9jZXNzZWQuCisgICAgQmluYXJ5U2VtYXBob3Jl
IHNlbWFwaG9yZTsKKyAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksICZzZW1hcGhvcmVdKCkgeworICAgICAgICBMb2NrSG9sZGVyIHRy
ZWVMb2NrZXIocHJvdGVjdGVkVGhpcy0+bV90cmVlTXV0ZXgpOworICAgICAgICBzZW1hcGhvcmUu
c2lnbmFsKCk7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPndhaXRGb3JSZW5kZXJpbmdVcGRhdGVD
b21wbGV0aW9uT3JUaW1lb3V0KCk7CisgICAgfSk7CisgICAgc2VtYXBob3JlLndhaXQoKTsKKyAg
ICBtX3N0YXRlID0gU3luY2hyb25pemF0aW9uU3RhdGU6OkluUmVuZGVyaW5nVXBkYXRlOworfQor
CitTZWNvbmRzIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6bWF4QWxsb3dhYmxlUmVuZGVyaW5nVXBk
YXRlRHVyYXRpb25Gb3JTeW5jaHJvbml6YXRpb24oKQoreworICAgIGNvbnN0ZXhwciBkb3VibGUg
YWxsb3dhYmxlRnJhbWVGcmFjdGlvbiA9IDAuNTsKKyAgICBhdXRvIGRpc3BsYXlGUFMgPSBub21p
bmFsRnJhbWVzUGVyU2Vjb25kKCk7CisgICAgaWYgKCFkaXNwbGF5RlBTKQorICAgICAgICByZXR1
cm4gYWxsb3dhYmxlRnJhbWVGcmFjdGlvbiAqIDE2LjY2N19tczsKKworICAgIFNlY29uZHMgZnJh
bWVEdXJhdGlvbiA9IDFfcyAvIChkb3VibGUpZGlzcGxheUZQUy52YWx1ZSgpOworICAgIHJldHVy
biBhbGxvd2FibGVGcmFtZUZyYWN0aW9uICogZnJhbWVEdXJhdGlvbjsKK30KKworLy8gVGhpcyBj
b2RlIGFsbG93cyB0aGUgbWFpbiB0aHJlYWQgYWJvdXQgaGFsZiBhIGZyYW1lIHRvIGNvbXBsZXRl
IGl0cyByZW5kZXJpbmcgdWRwYXRlLiBJZiB0aGUgbWFpbiB0aHJlYWQKKy8vIGlzIHJlc3BvbnNp
dmUgKGkuZS4gbWFuYWdpbmcgdG8gcmVuZGVyIGV2ZXJ5IGZyYW1lKSwgdGhlbiB3ZSBleHBlY3Qg
dG8gZ2V0IGEgZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUoKQorLy8gd2l0aGluIDhtcyBvZiB3
aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKS4gV2UgdGltZSB0aGlzIHZpYSBtX3N0YXRlQ29uZGl0
aW9uLCB3aGljaCBibG9ja3MgdGhlIHNjcm9sbGluZworLy8gdGhyZWFkICh3aXRoIG1fdHJlZU11
dGV4IGxvY2tlZCBhdCB0aGUgc3RhcnQgYW5kIGVuZCkgc28gdGhhdCB3ZSBkb24ndCBoYW5kbGUg
d2hlZWwgZXZlbnRzIHdoaWxlIHdhaXRpbmcuCisvLyBJZiB0aGUgY29uZGl0aW9uIHRpbWVzIG91
dCwgd2Uga25vdyB0aGUgbWFpbiB0aHJlYWQgaXMgYmVpbmcgc2xvdywgYW5kIGFsbG93IHRoZSBz
Y3JvbGxpbmcgdGhyZWFkIHRvCisvLyBjb21taXQgbGF5ZXIgcG9zaXRpb25zLgordm9pZCBUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JSZW5kZXJpbmdVcGRhdGVDb21wbGV0aW9uT3JUaW1l
b3V0KCkKK3sKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7
CisgICAgQVNTRVJUKG1fdHJlZU11dGV4LmlzTG9ja2VkKCkpOworCisgICAgYXV0byBzdGFydFRp
bWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBhdXRvIHRpbWVvdXRUaW1lID0gc3RhcnRU
aW1lICsgbWF4QWxsb3dhYmxlUmVuZGVyaW5nVXBkYXRlRHVyYXRpb25Gb3JTeW5jaHJvbml6YXRp
b24oKTsKKworICAgIGJvb2wgYmVjYW1lSWRsZSA9IG1fc3RhdGVDb25kaXRpb24ud2FpdFVudGls
KG1fdHJlZU11dGV4LCB0aW1lb3V0VGltZSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1fc3RhdGUg
PT0gU3luY2hyb25pemF0aW9uU3RhdGU6OklkbGU7CisgICAgfSk7CisKKyAgICBBU1NFUlQobV90
cmVlTXV0ZXguaXNMb2NrZWQoKSk7CisKKyAgICBpZiAoIWJlY2FtZUlkbGUpIHsKKyAgICAgICAg
bV9zdGF0ZSA9IFN5bmNocm9uaXphdGlvblN0YXRlOjpEZXN5bmNocm9uaXplZDsKKyAgICAgICAg
Ly8gQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoZSBtYWluIHRocmVhZCBpcyB0YWtpbmcgdG9vIGxv
bmcgaW4gdGhlIHJlbmRlcmluZyB1cGRhdGUsCisgICAgICAgIC8vIHNvIHdlIGdpdmUgdXAgdHJ5
aW5nIHRvIHN5bmMgd2l0aCB0aGUgbWFpbiB0aHJlYWQgYW5kIHVwZGF0ZSBsYXllcnMgaGVyZSBv
biB0aGUgc2Nyb2xsaW5nIHRocmVhZC4KKyAgICAgICAgYXBwbHlMYXllclBvc2l0aW9uc0ludGVy
bmFsKCk7CisgICAgICAgIHRyYWNlUG9pbnQoU2Nyb2xsaW5nVGhyZWFkUmVuZGVyVXBkYXRlU3lu
Y0VuZCwgMSk7CisgICAgfSBlbHNlCisgICAgICAgIHRyYWNlUG9pbnQoU2Nyb2xsaW5nVGhyZWFk
UmVuZGVyVXBkYXRlU3luY0VuZCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpk
aWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBMb2NrSG9sZGVyIHRyZWVMb2NrZXIobV90cmVlTXV0ZXgpOworCisgICAgaWYgKG1f
c3RhdGUgPT0gU3luY2hyb25pemF0aW9uU3RhdGU6OkluUmVuZGVyaW5nVXBkYXRlKQorICAgICAg
ICBtX3N0YXRlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOworCisgICAgbV9zdGF0ZSA9IFN5bmNocm9u
aXphdGlvblN0YXRlOjpJZGxlOworfQorCit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlz
cGxheURpZFJlZnJlc2hPblNjcm9sbGluZ1RocmVhZCgpCit7CisgICAgVHJhY2VTY29wZSB0cmFj
aW5nU2NvcGUoU2Nyb2xsaW5nVGhyZWFkRGlzcGxheURpZFJlZnJlc2hTdGFydCwgU2Nyb2xsaW5n
VGhyZWFkRGlzcGxheURpZFJlZnJlc2hFbmQpOworICAgIEFTU0VSVChTY3JvbGxpbmdUaHJlYWQ6
OmlzQ3VycmVudFRocmVhZCgpKTsKKworICAgIExvY2tIb2xkZXIgdHJlZUxvY2tlcihtX3RyZWVN
dXRleCk7CisKKyAgICBpZiAobV9zdGF0ZSAhPSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6SWRsZSkK
KyAgICAgICAgYXBwbHlMYXllclBvc2l0aW9uc0ludGVybmFsKCk7CisKKyAgICBzd2l0Y2ggKG1f
c3RhdGUpIHsKKyAgICBjYXNlIFN5bmNocm9uaXphdGlvblN0YXRlOjpJZGxlOiB7CisgICAgICAg
IG1fc3RhdGUgPSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6V2FpdGluZ0ZvclJlbmRlcmluZ1VwZGF0
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgU3luY2hyb25pemF0aW9uU3RhdGU6
OldhaXRpbmdGb3JSZW5kZXJpbmdVcGRhdGU6CisgICAgY2FzZSBTeW5jaHJvbml6YXRpb25TdGF0
ZTo6SW5SZW5kZXJpbmdVcGRhdGU6CisgICAgY2FzZSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6RGVz
eW5jaHJvbml6ZWQ6CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogdm9pZCBUaHJlYWRlZFNj
cm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRSZWZyZXNoKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJ
RCkKIHsKICAgICBpZiAoZGlzcGxheUlEICE9IHRoaXMtPmRpc3BsYXlJRCgpKQpAQCAtMjE2LDEx
ICszMDksNiBAQCB2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlzcGxheURpZFJlZnJlc2go
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogI2VuZGlmCiB9CiAKLXZvaWQgVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKCkKLXsKLSAg
ICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYm
IEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAppbmRleCA5NDhiYzdkYjk1YTMyYWVl
NjNhNjA4ZDc3ZjU5OWVhMWM5MmIxOGEwLi4yNjNkYjg0ODIzYzY3MTFjZDRiMWVhOTBhNjFhYjFm
N2NjODRlMmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJl
YWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtNTcsNiArNTcsMTEgQEAgcHVibGljOgogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwbGF5RGlkUmVmcmVzaChQbGF0Zm9ybURpc3BsYXlJRCk7
CiAKKyAgICB2b2lkIHdpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpOworICAgIHZvaWQgZGlkQ29t
cGxldGVSZW5kZXJpbmdVcGRhdGUoKTsKKworICAgIExvY2smIHRyZWVNdXRleCgpIHsgcmV0dXJu
IG1fdHJlZU11dGV4OyB9CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBUaHJlYWRlZFNjcm9s
bGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCkBAIC03OSw4ICs4NCwyMSBA
QCBwcml2YXRlOgogICAgIHZvaWQgcHJvcGFnYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25z
KGNvbnN0IEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBk
aXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKCk7CisgICAgdm9pZCB3YWl0Rm9yUmVu
ZGVyaW5nVXBkYXRlQ29tcGxldGlvbk9yVGltZW91dCgpOworICAgIAorICAgIFNlY29uZHMgbWF4
QWxsb3dhYmxlUmVuZGVyaW5nVXBkYXRlRHVyYXRpb25Gb3JTeW5jaHJvbml6YXRpb24oKTsKIAog
ICAgIFJlZlB0cjxBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5h
dG9yOworCisgICAgZW51bSBjbGFzcyBTeW5jaHJvbml6YXRpb25TdGF0ZSA6IHVpbnQ4X3Qgewor
ICAgICAgICBJZGxlLAorICAgICAgICBXYWl0aW5nRm9yUmVuZGVyaW5nVXBkYXRlLAorICAgICAg
ICBJblJlbmRlcmluZ1VwZGF0ZSwKKyAgICAgICAgRGVzeW5jaHJvbml6ZWQsCisgICAgfTsKKwor
ICAgIFN5bmNocm9uaXphdGlvblN0YXRlIG1fc3RhdGUgeyBTeW5jaHJvbml6YXRpb25TdGF0ZTo6
SWRsZSB9OworICAgIENvbmRpdGlvbiBtX3N0YXRlQ29uZGl0aW9uOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAppbmRleCA5M2VhMDgyZjA4ZWE0MzVi
NzI0MGE3Njg2MzlmMDUwNjAyOWE2NTI1Li5mMjE1NmFmN2E1NDc5YWM4M2U4ZjEwNDU4MjVlZTc4
OTQxZjU4NmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApAQCAtNDYsNiArNDYsOSBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBmaW5hbDsK
IAorICAgIHZvaWQgd2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCkgZmluYWw7CisgICAgdm9pZCBk
aWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSgpIGZpbmFsOworCiAgICAgdm9pZCB1cGRhdGVUaWxl
ZFNjcm9sbGluZ0luZGljYXRvcigpOwogCiAgICAgdm9pZCBzdGFydE1vbml0b3JpbmdXaGVlbEV2
ZW50cyhib29sIGNsZWFyTGF0Y2hpbmdTdGF0ZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMu
bW0KaW5kZXggZmMyNDkxZmI4MmM2ZmJmNWQyY2E1MGVjODcxY2NlMmNlNjUwMzU5Ny4uYmIwZjJk
OTk5Mjg2ZTZmODc1ODkxN2ZmZGRkOTZhZTMzNGZmMDdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5tbQpAQCAtMTEwLDYgKzExMCwxOCBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpj
b21taXRUcmVlU3RhdGVJZk5lZWRlZCgpCiAgICAgdXBkYXRlVGlsZWRTY3JvbGxpbmdJbmRpY2F0
b3IoKTsKIH0KIAordm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2lsbFN0YXJ0UmVuZGVy
aW5nVXBkYXRlKCkKK3sKKyAgICBSZWZQdHI8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiB0aHJlYWRl
ZFNjcm9sbGluZ1RyZWUgPSBkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+KHNjcm9sbGlu
Z1RyZWUoKSk7CisgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT53aWxsU3RhcnRSZW5kZXJpbmdV
cGRhdGUoKTsKKyAgICBzeW5jaHJvbml6ZVN0YXRlRnJvbVNjcm9sbGluZ1RyZWUoKTsKK30KKwor
dm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUo
KQoreworICAgIGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgp
KS0+ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUoKTsKK30KKwogdm9pZCBTY3JvbGxpbmdDb29y
ZGluYXRvck1hYzo6dXBkYXRlVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3IoKQogewogICAgIEZyYW1l
VmlldyogZnJhbWVWaWV3ID0gbV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCk7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2FjYTM5MGU5MzczNWUx
NmNmNmY4NjExN2IzZGYxODc5NTRmOGQzNC4uZmQ4YjE3NjA3NmNkMGQyMGZlYmEzMjVhNjI1ODhh
ZDMwM2UzNmMwZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA1LTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gU2Nyb2xsaW5nIHN5bmNocm9uaXph
dGlvbiBwYXJ0IDE6IEhhdmUgdGhlIHNjcm9sbGluZyB0aHJlYWQgd2FpdCBoYWxmIGEgZnJhbWUg
Zm9yIHRoZSBtYWluIHRocmVhZCB0byBjb21wbGV0ZSB0aGUgcmVuZGVyaW5nIHVwZGF0ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMTY4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBuZXcgdHJh
Y2UgcG9pbnRzIGZvciBzY3JvbGxpbmcgdGhyZWFkIGFjdGl2aXR5LgorCisgICAgICAgICogVHJh
Y2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdDoKKwogMjAyMC0wNS0yMCAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtpUGFkT1NdIC13ZWJraXQt
dGV4dC1zaXplLWFkanVzdDpwZXJjZW50YWdlIGRvZXNuJ3Qgd29yayBpbiBuYXRpdmUgYXBwcwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdCBiL1Rvb2xz
L1RyYWNpbmcvU3lzdGVtVHJhY2VQb2ludHMucGxpc3QKaW5kZXggZWU0YzAxZTdiZjhkYmJjNjAx
ODA4ZmM1MDQyNmU4NWE4ODM1YmRmNi4uNmFmY2I1YTY2NDFjOGIwZmZhY2MxMmE5YjNhMmFkZmU0
ZGNiNzhlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlz
dAorKysgYi9Ub29scy9UcmFjaW5nL1N5c3RlbVRyYWNlUG9pbnRzLnBsaXN0CkBAIC0zMzcsNiAr
MzM3LDMwIEBACiAgICAgICAgICAgICAgICAgIDxrZXk+Q29kZUVuZDwva2V5PgogICAgICAgICAg
ICAgICAgICA8c3RyaW5nPjUwMzk8L3N0cmluZz4KICAgICAgICAgICAgICA8L2RpY3Q+CisgICAg
ICAgICAgICAgPGRpY3Q+CisgICAgICAgICAgICAgICAgIDxrZXk+TmFtZTwva2V5PgorICAgICAg
ICAgICAgICAgICA8c3RyaW5nPlNjcm9sbGluZyBTeW5jPC9zdHJpbmc+CisgICAgICAgICAgICAg
ICAgIDxrZXk+VHlwZTwva2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPkludGVydmFsPC9z
dHJpbmc+CisgICAgICAgICAgICAgICAgIDxrZXk+Q29tcG9uZW50PC9rZXk+CisgICAgICAgICAg
ICAgICAgIDxzdHJpbmc+NDc8L3N0cmluZz4KKyAgICAgICAgICAgICAgICAgPGtleT5Db2RlQmVn
aW48L2tleT4KKyAgICAgICAgICAgICAgICAgPHN0cmluZz41MDQwPC9zdHJpbmc+CisgICAgICAg
ICAgICAgICAgIDxrZXk+Q29kZUVuZDwva2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPjUw
NDE8L3N0cmluZz4KKyAgICAgICAgICAgICA8L2RpY3Q+CisgICAgICAgICAgICAgPGRpY3Q+Cisg
ICAgICAgICAgICAgICAgIDxrZXk+TmFtZTwva2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5n
PlNjcm9sbGluZyBUaHJlYWQgRGlzcGxheURpZFJlZnJlc2g8L3N0cmluZz4KKyAgICAgICAgICAg
ICAgICAgPGtleT5UeXBlPC9rZXk+CisgICAgICAgICAgICAgICAgIDxzdHJpbmc+SW50ZXJ2YWw8
L3N0cmluZz4KKyAgICAgICAgICAgICAgICAgPGtleT5Db21wb25lbnQ8L2tleT4KKyAgICAgICAg
ICAgICAgICAgPHN0cmluZz40Nzwvc3RyaW5nPgorICAgICAgICAgICAgICAgICA8a2V5PkNvZGVC
ZWdpbjwva2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPjUwNDI8L3N0cmluZz4KKyAgICAg
ICAgICAgICAgICAgPGtleT5Db2RlRW5kPC9rZXk+CisgICAgICAgICAgICAgICAgIDxzdHJpbmc+
NTA0Mzwvc3RyaW5nPgorICAgICAgICAgICAgIDwvZGljdD4KICAgICAgICAgICAgICA8ZGljdD4K
ICAgICAgICAgICAgICAgICAgPGtleT5OYW1lPC9rZXk+CiAgICAgICAgICAgICAgICAgIDxzdHJp
bmc+UGFpbnQgV2ViSFRNTFZpZXc8L3N0cmluZz4K
</data>
<flag name="review"
          id="415311"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399930</attachid>
            <date>2020-05-20 21:43:50 -0700</date>
            <delta_ts>2020-05-20 21:47:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212168-20200520214349.patch</filename>
            <type>text/plain</type>
            <size>28674</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxOTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZlNzQ4MDRkYjg1YzY4YjgwOGQ3NzI2
NWE4NGY5ZTEyOWEyZDc4YjMuLjI0N2E2MzQ3NTE0ZTcxYjlkMjUzNmQ1YzA3YTg1NjM4ZmEzYjFm
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBTY3JvbGxpbmcgc3luY2hyb25p
emF0aW9uIHBhcnQgMTogSGF2ZSB0aGUgc2Nyb2xsaW5nIHRocmVhZCB3YWl0IGhhbGYgYSBmcmFt
ZSBmb3IgdGhlIG1haW4gdGhyZWFkIHRvIGNvbXBsZXRlIHRoZSByZW5kZXJpbmcgdXBkYXRlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIxNjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFNvbWUgbmV3IHRyYWNl
IHBvaW50cyBmb3Igc2Nyb2xsaW5nIHRocmVhZCBhY3Rpdml0eS4KKworICAgICAgICAqIHd0Zi9T
eXN0ZW1UcmFjaW5nLmg6CisKIDIwMjAtMDUtMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyIHNob3VsZCBi
ZSBpbXBsZW1lbnRlZCB3aXRob3V0IHVzaW5nIFVJS2l0IGludGVybmFscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGZiZGQyODUwODIwNjRkNmUyNzgxZWE4MTQwM2U5NWM1NmJiY2Q1MmEuLjM3OWIwOThjM2ExNmYy
NTAzYzA4OTc1ZTA0NzE2NTI0MzIxZWEwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAor
MjAyMC0wNS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAg
ICAgICBbbWFjT1NdIFNjcm9sbGluZyBzeW5jaHJvbml6YXRpb24gcGFydCAxOiBIYXZlIHRoZSBz
Y3JvbGxpbmcgdGhyZWFkIHdhaXQgaGFsZiBhIGZyYW1lIGZvciB0aGUgbWFpbiB0aHJlYWQgdG8g
Y29tcGxldGUgdGhlIHJlbmRlcmluZyB1cGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSBzY3JvbGxpbmcgdGhyZWFkIGlzIGEgZnJl
ZS1ydW5uaW5nIHRocmVhZCB0aGF0IG1vdmVzIGxheWVycyBhcm91bmQgaW4gcmVzcG9uc2UKKyAg
ICAgICAgdG8gd2hlZWwgZXZlbnRzLCBhbmQgYXN5bmNocm9ub3VzbHkgcG9zdHMgZGF0YSBhYm91
dCBzY3JvbGxlZCBsYXllcnMgYmFjayB0byB0aGUgbWFpbiB0aHJlYWQuCisgICAgICAgIFRoYXQg
cmVzdWx0cyBpbiBhbiBhbG1vc3QgZ3VhcmFudGVlZCBsYWNrIG9mIHN5bmNocm9uaXphdGlvbiBi
ZXR3ZWVuIHRoZSBkaXNwbGF5ZWQgbGF5ZXIKKyAgICAgICAgcG9zaXRpb25zLCBhbmQgdGhlIHdl
Yi1leHBvc2VkIHZhbHVlcyBmb3Igc2Nyb2xsIHBvc2l0aW9uIChlbGVtZW50LnNjcm9sbFRvcCwg
d2luZG93LnBhZ2VZT2Zmc2V0IGV0YykuCisgICAgICAgIFRoaXMgaXMgYSBmcmVxdWVudCBzb3Vy
Y2Ugb2Ygc3R1dHRlcmluZyBvciBqdW1weSB3ZWIgY29udGVudCB3aGVuIHNjcm9sbGluZy4KKwor
ICAgICAgICBUaGUgZmlyc3Qgc3RlcCB0byBmaXhpbmcgdGhpcyBpcyB0byBzeW5jaHJvbml6ZSB0
aGUgc2Nyb2xsaW5nIHRocmVhZCBsYXllciBwb3NpdGlvbnMKKyAgICAgICAgYW5kIHRoZSBtYWlu
IHRocmVhZCBzdGF0ZSBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIG1haW4gdGhyZWFkIGlzIHJlc3Bv
bnNpdmUgZW5vdWdoIHRvCisgICAgICAgIHJlbmRlciBvbmNlIHBlciBmcmFtZS4gVGhpcyBpcyBh
Y2hpZXZlZCBhcyBmb2xsb3c6CisgICAgICAgICAgICAtIFdoZW4gdGhlIG1haW4gdGhyZWFkIGlz
IHN0YXJ0aW5nIGEgcmVuZGVyaW5nIHVwZGF0ZSwgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkgaW5m
b3JtcworICAgICAgICAgICAgICB0aGUgc2Nyb2xsaW5nIHRyZWUgdmlhIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjp3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKS4gVGhpcworICAgICAgICAgICAg
ICBhdG9taWNhbGx5IHdhaXRzIGZvciB0aGUgc2Nyb2xsaW5nIHRocmVhZCB0byB0YWtlIHRoZSBt
X3RyZWVNdXRleCAodmlhIGEgQmluYXJ5U2VtYXBob3JlKQorICAgICAgICAgICAgICBhbmQgc3Rh
cnRzIHdhaXRpbmcgb24gdGhlIG1fc3RhdGVDb25kaXRpb24gQ29uZGl0aW9uLiBOb3cgdGhlIG1h
aW4gdGhyZWFkIHB1bGxzIHRoZQorICAgICAgICAgICAgICBzdGF0ZSBvZiB0aGUgc2Nyb2xsaW5n
IHRyZWUgdmlhIHN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5nVHJlZSgpIGFuZCB1c2VzIGl0
IGZvcgorICAgICAgICAgICAgICB0aGUgcmVuZGVyaW5nIHVwZGF0ZS4KKyAgICAgICAgICAgIC0g
SWYgdGhlIHJlbmRlcmluZyB1cGRhdGUgZmluaXNoZXMgd2l0aGluIGhhbGYgYSBmcmFtZSAoOG1z
KSwgdGhlbiBtX3N0YXRlQ29uZGl0aW9uCisgICAgICAgICAgICAgIGlzIHJlbGVhc2VkLCBhbmQg
dGhlIHNjcm9sbGluZyB0aHJlYWQgYXNzdW1lcyB0aGF0IHRoZSBtYWluIHRocmVhZCBpcyBnb2lu
ZyB0bworICAgICAgICAgICAgICBjb21taXQgbGF5ZXJzIHJhcGlkbHkgZW5vdWdoIHRvIHByZXNl
cnZlIDYwZnBzIHNjcm9sbGluZy4KKyAgICAgICAgICAgIC0gSWYgdGhlIHJlbmRlcmluZyB1cGRh
dGUgdGFrZXMgdG9vIGxvbmcsIG1fc3RhdGVDb25kaXRpb24gdGltZXMgb3V0LCBhbmQgdGhlIHNj
cm9sbGluZworICAgICAgICAgICAgICB0aHJlYWQgYXBwbGllcyBsYXllciBwb3NpdGlvbnMsIHRy
aWdnZXJpbmcgYSBDQSBjb21taXQgb24gdGhhdCB0aHJlYWQuCisKKyAgICAgICAgV2Ugbm8gbG9u
Z2VyIGFwcGx5IGxheWVyIHBvc2l0aW9ucyBkaXJlY3RseSB3aGVuIGhhbmRsaW5nIHdoZWVsIGV2
ZW50cy4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
Ojp1cGRhdGVSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZmluYWxpemVSZW5k
ZXJpbmdVcGRhdGUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OndpbGxTdGFydFJl
bmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6
ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5nVHJlZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRyZWVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjphcHBseUxheWVyUG9zaXRpb25zSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6bm9taW5hbEZyYW1lc1BlclNlY29uZCk6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNj
cm9sbGluZ1RyZWU6OndpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om1heEFsbG93YWJsZVJlbmRlcmluZ1VwZGF0ZUR1cmF0
aW9uRm9yU3luY2hyb25pemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xs
aW5nVHJlZTo6d2FpdEZvclJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRpb25PclRpbWVvdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpkaWRDb21wbGV0ZVJlbmRlcmlu
Z1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3Bs
YXlEaWRSZWZyZXNoT25TY3JvbGxpbmdUaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3Jv
bGxpbmdUcmVlOjp0cmVlTXV0ZXgpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjp3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKToKKwog
MjAyMC0wNS0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlj
dGF0aW9uIGNvbnRleHQgc2hvdWxkIGJlIGFuIG9iamVjdCBpZGVudGlmaWVyLCBub3QgYSB0eXBl
LXB1bm5lZCBwb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFjaW5n
LmggYi9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFjaW5nLmgKaW5kZXggYTlhZGU4YWQwNGVlMTFi
MWIyYzlkOGUzZDI0YTA3MjA2ZjU1MjJmMC4uMTE5NzczMGU2ODAyOGE0YjY2MDkzZjQ0MDFhZDc0
MTUyZGNhNDJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3lzdGVtVHJhY2luZy5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1N5c3RlbVRyYWNpbmcuaApAQCAtOTAsNiArOTAsMTAgQEAgZW51
bSBUcmFjZVBvaW50Q29kZSB7CiAgICAgUGFyc2VIVE1MRW5kLAogICAgIERpc3BsYXlMaXN0UmVw
bGF5U3RhcnQsCiAgICAgRGlzcGxheUxpc3RSZXBsYXlFbmQsCisgICAgU2Nyb2xsaW5nVGhyZWFk
UmVuZGVyVXBkYXRlU3luY1N0YXJ0LAorICAgIFNjcm9sbGluZ1RocmVhZFJlbmRlclVwZGF0ZVN5
bmNFbmQsCisgICAgU2Nyb2xsaW5nVGhyZWFkRGlzcGxheURpZFJlZnJlc2hTdGFydCwKKyAgICBT
Y3JvbGxpbmdUaHJlYWREaXNwbGF5RGlkUmVmcmVzaEVuZCwKIAogICAgIFdlYktpdFJhbmdlID0g
MTAwMDAsCiAgICAgV2ViSFRNTFZpZXdQYWludFN0YXJ0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
MTRhYzM4Y2E4OGZhODY1ZDA3MGVkMGUzNmNmZjI4NjE0ZGU2YzFkMC4uMmRmOWQyYmM4ZmFlMzIz
ZTA3YTBhNmIyNDRkNjVkMDA0YzA5YTljOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMzYwLDYg
KzEzNjAsMTEgQEAgdm9pZCBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKQogCiAgICAgbGF5b3V0SWZO
ZWVkZWQoKTsKIAorI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYgKGF1dG8qIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAg
ICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPndpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpOworI2Vu
ZGlmCisKICAgICAvLyBUaW1lc3RhbXBzIHNob3VsZCBub3QgY2hhbmdlIHdoaWxlIHNlcnZpbmcg
dGhlIHJlbmRlcmluZyB1cGRhdGUgc3RlcHMuCiAgICAgVmVjdG9yPFdlYWtQdHI8RG9jdW1lbnQ+
PiBpbml0aWFsRG9jdW1lbnRzOwogICAgIGZvckVhY2hEb2N1bWVudChbJmluaXRpYWxEb2N1bWVu
dHNdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKQEAgLTE0NzgsNiArMTQ4Myw4IEBAIHZvaWQgUGFn
ZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoT3B0aW9uU2V0PEZpbmFsaXplUmVuZGVyaW5nVXBk
YXRlRmxhZ3M+IGZsYWdzCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb21taXRUcmVl
U3RhdGVJZk5lZWRlZCgpOwogICAgICAgICBpZiAoZmxhZ3MuY29udGFpbnMoRmluYWxpemVSZW5k
ZXJpbmdVcGRhdGVGbGFnczo6QXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQb3NpdGlvbnMpKQogICAg
ICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmFwcGx5U2Nyb2xsaW5nVHJlZUxheWVyUG9z
aXRpb25zKCk7CisgICAgICAgICAgICAKKyAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmRp
ZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCmluZGV4IGVhZTQxYjAyNTM1YTllZWI5NjY1OWVjNmY1YjI3ZTAyZjEwNTE4MjMu
LjAwODc5MGNhOTJiOWYyMGYxYzUxMTkxMzA2ODZkYzVjZjcwNjA0NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC0yOTYsOCArMjk2LDggQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjpzeW5jaHJvbml6ZVN0YXRlRnJvbVNjcm9sbGluZ1RyZWUoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKLSAgICBtX3Njcm9sbGluZ1RyZWUtPnRyYXZlcnNlU2Nyb2xsaW5n
VHJlZShbJl0oU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgU2Nyb2xsaW5nTm9kZVR5cGUsIE9wdGlv
bmFsPEZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlv
dXRWaWV3cG9ydE9yaWdpbikgewotICAgICAgICBpZiAoc2Nyb2xsUG9zaXRpb24pIHsKKyAgICBt
X3Njcm9sbGluZ1RyZWUtPnRyYXZlcnNlU2Nyb2xsaW5nVHJlZShbJl0oU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCwgU2Nyb2xsaW5nTm9kZVR5cGUsIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHNjcm9sbFBv
c2l0aW9uLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgYm9vbCBz
Y3JvbGxlZFNpbmNlTGFzdENvbW1pdCkgeworICAgICAgICBpZiAoc2Nyb2xsUG9zaXRpb24gJiYg
c2Nyb2xsZWRTaW5jZUxhc3RDb21taXQpIHsKICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25p
emVTdGF0ZUZyb21TY3JvbGxpbmdUcmVlIC0gbm9kZSAiIDw8IG5vZGVJRCA8PCAiIHNjcm9sbCBw
b3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKICAgICAgICAgICAgIHVwZGF0ZVNjcm9sbFBv
c2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9uLnZhbHVlKCksIGxh
eW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxpbmdMYXllclBvc2l0
aW9uQWN0aW9uOjpTZXQpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggMjIwODY1
NDg3NmUxODE3NzM3ODA3ZmYzM2M4MGY5YTVhMDdlMTExNy4uOGE3MjA0MWVjZDc3MTJiNjQ4Y2Zi
NzkyMDRkOGY3ZTUzNmM3ODA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtODIsNiArODIsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNjcm9sbGluZ1N0YXRlVHJl
ZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvciA9IFNjcm9sbGluZ1N0YXRl
VHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdCBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgc2Nyb2xsaW5nVHJlZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvciA9IFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdCBv
dmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdpbGxDb21taXRUcmVlKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzeW5jaHJvbml6ZVN0YXRlRnJvbVNjcm9sbGluZ1RyZWUoKTsKIAogICAg
IGJvb2wgZXZlbnRUcmFja2luZ1JlZ2lvbnNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRU
cmFja2luZ1JlZ2lvbnNEaXJ0eTsgfQogCkBAIC0xMDIsNyArMTAzLDYgQEAgcHJpdmF0ZToKICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxh
YmxlQXJlYSYsIGNvbnN0IEludFBvaW50JiwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92
ZXJyaWRlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBseVNjcm9sbGluZ1RyZWVMYXll
clBvc2l0aW9ucygpIG92ZXJyaWRlOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3luY2hyb25p
emVTdGF0ZUZyb21TY3JvbGxpbmdUcmVlKCkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBTY3JvbGxpbmdOb2RlSUQgY3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5n
Tm9kZUlEIG5ld05vZGVJRCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xsaW5n
Tm9kZUlEIGluc2VydE5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBuZXdO
b2RlSUQsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRJRCwgc2l6ZV90IGNoaWxkSW5kZXgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKaW5kZXggZTFmNTY3YzMxNTYwMmM5YjhjNzBlODhmY2MyZDMwMTkxOTEwMDQy
MC4uMDA1YmNjNTllYTdlYmFlNTdlNjBkMTYxOGEyMzkyNDEyMGI1MGMxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBA
IC0xMTMsOCArMTEzLDggQEAgcHVibGljOgogICAgIC8vIFRyYXZlcnNlcyB0aGUgc2Nyb2xsaW5n
IHRyZWUsIHNldHRpbmcgbGF5ZXIgcG9zaXRpb25zIHRvIHJlcHJlc2VudCB0aGUgY3VycmVudCBz
Y3JvbGxlZCBzdGF0ZS4KICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQ
b3NpdGlvbnMoKSB7IH0KIAotICAgIC8vIFRha2VzIHNjcm9sbCBwb3NpdGlvbnMgZnJvbSB0aGUg
c2Nyb2xsaW5nIHRyZWUgYW5kIGFwcGxpZXMgdGhlbSB0byBTY3JvbGxhYmxlQXJlYXMuCi0gICAg
dmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5nVHJlZSgpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUoKSB7IH0KIAogI2lmIEVOQUJMRShLSU5F
VElDX1NDUk9MTElORykKICAgICAvLyBEaXNwYXRjaGVkIGJ5IHRoZSBzY3JvbGxpbmcgdHJlZSBk
dXJpbmcgaGFuZGxlV2hlZWxFdmVudC4gVGhpcyBpcyByZXF1aXJlZCBhcyBsb25nIGFzIHNjcm9s
bGJhcnMgYXJlIHBhaW50ZWQgb24gdGhlIG1haW4gdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAxYWRhY2EyMDI5MmU1M2U0
MGI3NjE2NWY3ZmFjNDRjMTM2Y2E3NWQwLi5lMDgwNDI2M2Q0ZGMxYTFkMDE5ZDExN2QxZWEzNGIx
YmMxNWRkODY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcApAQCAtMTU4LDkgKzE1OCw2IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9s
bGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3CiAg
ICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CiAg
ICAgfSgpOwogCi0gICAgaWYgKHJlc3VsdCA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFu
ZGxlRXZlbnQpCi0gICAgICAgIGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwotICAgIAog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTE4NywxNSArMTg0LDE5IEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZTo6dHJhdmVyc2VTY3JvbGxpbmdUcmVlKFZpc2l0b3JGdW5jdGlvbiYmIHZpc2l0b3JG
dW5jdGlvbikKIAogdm9pZCBTY3JvbGxpbmdUcmVlOjp0cmF2ZXJzZVNjcm9sbGluZ1RyZWVSZWN1
cnNpdmUoU2Nyb2xsaW5nVHJlZU5vZGUmIG5vZGUsIGNvbnN0IFZpc2l0b3JGdW5jdGlvbiYgdmlz
aXRvckZ1bmN0aW9uKQogeworICAgIGJvb2wgc2Nyb2xsZWRTaW5jZUxhc3RDb21taXQgPSBmYWxz
ZTsKICAgICBPcHRpb25hbDxGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbjsKLSAgICBpZiAoaXM8
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KG5vZGUpKQotICAgICAgICBzY3JvbGxQb3NpdGlv
biA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPihub2RlKS5jdXJyZW50U2Ny
b2xsUG9zaXRpb24oKTsKKyAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KG5v
ZGUpKSB7CisgICAgICAgIGF1dG8mIHNjcm9sbGluZ05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZT4obm9kZSk7CisgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xs
aW5nTm9kZS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsZWRTaW5jZUxh
c3RDb21taXQgPSBzY3JvbGxpbmdOb2RlLnNjcm9sbGVkU2luY2VMYXN0Q29tbWl0KCk7CisgICAg
fQogCiAgICAgT3B0aW9uYWw8RmxvYXRQb2ludD4gbGF5b3V0Vmlld3BvcnRPcmlnaW47CiAgICAg
aWYgKGlzPFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKQogICAgICAgICBs
YXlvdXRWaWV3cG9ydE9yaWdpbiA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU+KG5vZGUpLmxheW91dFZpZXdwb3J0KCkubG9jYXRpb24oKTsKIAotICAgIHZpc2l0b3JG
dW5jdGlvbihub2RlLnNjcm9sbGluZ05vZGVJRCgpLCBub2RlLm5vZGVUeXBlKCksIHNjcm9sbFBv
c2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbik7CisgICAgdmlzaXRvckZ1bmN0aW9uKG5vZGUu
c2Nyb2xsaW5nTm9kZUlEKCksIG5vZGUubm9kZVR5cGUoKSwgc2Nyb2xsUG9zaXRpb24sIGxheW91
dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxlZFNpbmNlTGFzdENvbW1pdCk7CiAKICAgICBmb3IgKGF1
dG8mIGNoaWxkIDogbm9kZS5jaGlsZHJlbigpKQogICAgICAgICB0cmF2ZXJzZVNjcm9sbGluZ1Ry
ZWVSZWN1cnNpdmUoY2hpbGQuZ2V0KCksIHZpc2l0b3JGdW5jdGlvbik7CkBAIC0yMTcsOSArMjE4
LDkgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRy
PFNjcm9sbGluZ1N0YXRlVHJlZT4mJiBzY3JvbGwKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Ry
ZWVNdXRleCk7CiAKICAgICBib29sIHJvb3RTdGF0ZU5vZGVDaGFuZ2VkID0gc2Nyb2xsaW5nU3Rh
dGVUcmVlLT5oYXNOZXdSb290U3RhdGVOb2RlKCk7Ci0gICAgCisKICAgICBMT0coU2Nyb2xsaW5n
VHJlZSwgIlxuU2Nyb2xsaW5nVHJlZSAlcCBjb21taXRUcmVlU3RhdGUiLCB0aGlzKTsKLSAgICAK
KwogICAgIGF1dG8qIHJvb3ROb2RlID0gc2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2Rl
KCk7CiAgICAgaWYgKHJvb3ROb2RlCiAgICAgICAgICYmIChyb290U3RhdGVOb2RlQ2hhbmdlZApA
QCAtMzI3LDcgKzMyOCw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0
ZU5vZGVSZWN1cnNpdmUoY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlKiBzCiAgICAgfQogCiAgICAg
bm9kZS0+Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKCpzdGF0ZU5vZGUpOwotICAgIAorICAgIG5v
ZGUtPmRpZENvbXBsZXRlQ29tbWl0Rm9yTm9kZSgpOworCiAjaWYgRU5BQkxFKFNDUk9MTElOR19U
SFJFQUQpCiAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPigqbm9kZSkgJiYg
IWRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPigqbm9kZSkuc3luY2hyb25vdXNT
Y3JvbGxpbmdSZWFzb25zKCkuaXNFbXB0eSgpKQogICAgICAgICBzdGF0ZS5zeW5jaHJvbm91c1Nj
cm9sbGluZ05vZGVzLmFkZChub2RlSUQpOwpAQCAtMzU0LDYgKzM1Niw3IEBAIHZvaWQgU2Nyb2xs
aW5nVHJlZTo6YXBwbHlMYXllclBvc2l0aW9ucygpCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6YXBw
bHlMYXllclBvc2l0aW9uc0ludGVybmFsKCkKIHsKKyAgICBBU1NFUlQobV90cmVlTXV0ZXguaXNM
b2NrZWQoKSk7CiAgICAgaWYgKCFtX3Jvb3ROb2RlKQogICAgICAgICByZXR1cm47CiAKQEAgLTU0
MCw2ICs1NDMsMTIgQEAgUGxhdGZvcm1EaXNwbGF5SUQgU2Nyb2xsaW5nVHJlZTo6ZGlzcGxheUlE
KCkKICAgICByZXR1cm4gbV90cmVlU3RhdGUuZGlzcGxheUlEOwogfQogCitPcHRpb25hbDx1bnNp
Z25lZD4gU2Nyb2xsaW5nVHJlZTo6bm9taW5hbEZyYW1lc1BlclNlY29uZCgpCit7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV90cmVlU3RhdGVNdXRleCk7CisgICAgcmV0dXJuIG1fdHJlZVN0YXRl
Lm5vbWluYWxGcmFtZXNQZXJTZWNvbmQ7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0U2Ny
b2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgbV9zY3Jv
bGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkID0gZmxhZzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAzYmQ4MjFlZDQ4MTMzMGNiMzg1
YmY5ZmRhYWUxN2VmOWU2ZWRlM2ZiLi5hYTFiZTEzNGMyZmEzOTc5ZDFjMjNhMmQ3NzBmYThlMTUy
ZGQ4MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5oCkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBT
Y3JvbGxpbmdUcmVlTm9kZSogbm9kZUZvcklEKFNjcm9sbGluZ05vZGVJRCkgY29uc3Q7CiAKLSAg
ICB1c2luZyBWaXNpdG9yRnVuY3Rpb24gPSBXVEY6OkZ1bmN0aW9uPHZvaWQgKFNjcm9sbGluZ05v
ZGVJRCwgU2Nyb2xsaW5nTm9kZVR5cGUsIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0
aW9uLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbik+OworICAgIHVz
aW5nIFZpc2l0b3JGdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248dm9pZCAoU2Nyb2xsaW5nTm9kZUlE
LCBTY3JvbGxpbmdOb2RlVHlwZSwgT3B0aW9uYWw8RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24s
IE9wdGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2luLCBib29sIHNjcm9sbGVk
U2luY2VMYXN0Q29tbWl0KT47CiAgICAgdm9pZCB0cmF2ZXJzZVNjcm9sbGluZ1RyZWUoVmlzaXRv
ckZ1bmN0aW9uJiYpOwogCiAgICAgLy8gQ2FsbGVkIGFmdGVyIGEgc2Nyb2xsaW5nIHRyZWUgbm9k
ZSBoYXMgaGFuZGxlZCBhIHNjcm9sbCBhbmQgdXBkYXRlZCBpdHMgbGF5ZXJzLgpAQCAtMTg4LDEy
ICsxODgsMTUgQEAgcHJvdGVjdGVkOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTY3Jv
bGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYpOwogCisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQoKTsK
KworICAgIHZvaWQgYXBwbHlMYXllclBvc2l0aW9uc0ludGVybmFsKCk7CisgICAgTG9jayBtX3Ry
ZWVNdXRleDsgLy8gUHJvdGVjdHMgdGhlIHNjcm9sbGluZyB0cmVlLgorCiBwcml2YXRlOgogICAg
IHZvaWQgdXBkYXRlVHJlZUZyb21TdGF0ZU5vZGVSZWN1cnNpdmUoY29uc3QgU2Nyb2xsaW5nU3Rh
dGVOb2RlKiwgc3RydWN0IENvbW1pdFRyZWVTdGF0ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwcm9w
YWdhdGVTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoY29uc3QgSGFzaFNldDxTY3JvbGxpbmdO
b2RlSUQ+JikgeyB9CiAKLSAgICB2b2lkIGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwot
CiAgICAgdm9pZCBhcHBseUxheWVyUG9zaXRpb25zUmVjdXJzaXZlKFNjcm9sbGluZ1RyZWVOb2Rl
Jik7CiAgICAgdm9pZCBub3RpZnlSZWxhdGVkTm9kZXNSZWN1cnNpdmUoU2Nyb2xsaW5nVHJlZU5v
ZGUmKTsKICAgICB2b2lkIHRyYXZlcnNlU2Nyb2xsaW5nVHJlZVJlY3Vyc2l2ZShTY3JvbGxpbmdU
cmVlTm9kZSYsIGNvbnN0IFZpc2l0b3JGdW5jdGlvbiYpOwpAQCAtMjAyLDggKzIwNSw2IEBAIHBy
aXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5l
clJlZ2lvblR5cGU+IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50KEZsb2F0UG9pbnQp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JikgeyB9CiAKLSAgICBMb2NrIG1fdHJlZU11dGV4OyAvLyBQcm90ZWN0cyB0
aGUgc2Nyb2xsaW5nIHRyZWUuCi0KICAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZT4gbV9yb290Tm9kZTsKIAogICAgIHVzaW5nIFNjcm9sbGluZ1RyZWVOb2RlTWFwID0g
SGFzaE1hcDxTY3JvbGxpbmdOb2RlSUQsIFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5k
ZXggMTkzZDIxN2JjZGFiMDlhODI4N2NhYjdhNjZmYjRjMzRlZGNiZDBhMS4uMzMzNWQwNmJjNzYy
MjkzYzVhYTljZmE4OWUwOGZjYjQzZTYzNzA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCkBAIC02MCw2ICs2MCw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNj
cm9sbGluZ1N0YXRlTm9kZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0U3RhdGVBZnRl
ckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb21wbGV0ZUNvbW1pdEZvck5vZGUoKSB7IH0KIAogICAgIFNjcm9sbGluZ1RyZWVOb2Rl
KiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQogICAgIHZvaWQgc2V0UGFyZW50
KFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmNwcAppbmRleCA4MDIxNmViYTMzN2M4M2I4MjkwNmY3NjdkYWU2ZjYwNzg4
MWY4Y2ZlLi5mYTQ1Yzk3MzA2ODFkMDk4Y2E5NDAzMzQwMDRkNGEwMGQ4NzFlMzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMjQsNiArMTI0LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdT
dGF0ZU5vCiAgICAgbV9pc0ZpcnN0Q29tbWl0ID0gZmFsc2U7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGU6OmRpZENvbXBsZXRlQ29tbWl0Rm9yTm9kZSgpCit7CisgICAgbV9z
Y3JvbGxlZFNpbmNlTGFzdENvbW1pdCA9IGZhbHNlOworfQorCiBib29sIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlOjppc0xhdGNoZWROb2RlKCkgY29uc3QKIHsKICAgICByZXR1cm4gc2Nyb2xs
aW5nVHJlZSgpLmxhdGNoZWROb2RlSUQoKSA9PSBzY3JvbGxpbmdOb2RlSUQoKTsKQEAgLTI1MCw2
ICsyNTUsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25z
dCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZQogdm9pZCBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiB7CiAgICAgc2Nyb2xs
aW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzKTsKKyAgICBtX3Njcm9s
bGVkU2luY2VMYXN0Q29tbWl0ID0gdHJ1ZTsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZTo6c2Nyb2xsUG9zaXRpb25BbmRMYXlvdXRWaWV3cG9ydE1hdGNoKGNvbnN0IEZsb2F0
UG9pbnQmIHBvc2l0aW9uLCBPcHRpb25hbDxGbG9hdFJlY3Q+KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgK
aW5kZXggOGFkOTk2MmMwNDY2OGUzNTUwNDUxZjBmYTQ2ZmQ2NzMzMTdlYTQzNy4uMWRjNDJiMzdi
N2U1NzY0YmE4ZWQ5OWRiYjY0NTMwODUwZDQ4NWQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBA
IC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGls
ZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1p
dFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZENvbXBsZXRlQ29tbWl0Rm9yTm9kZSgpIGZpbmFsOwogCiAgICAgdmlydHVh
bCBib29sIGNhbkhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29u
c3Q7CiAgICAgdmlydHVhbCBTY3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwpAQCAtMTAzLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAg
ICBib29sIHVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFycygpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzLnVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFyczsg
fQogCiAgICAgYm9vbCBldmVudENhblNjcm9sbENvbnRlbnRzKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpIGNvbnN0OworICAgIAorICAgIGJvb2wgc2Nyb2xsZWRTaW5jZUxhc3RDb21taXQoKSBj
b25zdCB7IHJldHVybiBtX3Njcm9sbGVkU2luY2VMYXN0Q29tbWl0OyB9CiAKICAgICBjb25zdCBM
YXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJu
IG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9u
JiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVu
dHNMYXllcjsgfQpAQCAtMTYyLDYgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uU2V0PFN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uPiBtX3N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uczsK
ICNlbmRpZgogICAgIGJvb2wgbV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9z
Y3JvbGxlZFNpbmNlTGFzdENvbW1pdCB7IGZhbHNlIH07CiAKICAgICBMYXllclJlcHJlc2VudGF0
aW9uIG1fc2Nyb2xsQ29udGFpbmVyTGF5ZXI7CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Nj
cm9sbGVkQ29udGVudHNMYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IDY1YzRjMzQ1NzI2ZTYwMTBk
YzVlZGUzOWFkZDI0MTdmYjIzZTczN2IuLjJjNzk1OWMwM2E2OTYyYjU0ZmE2NzMyZGY1NTczY2Qy
ZGYyMmI2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVh
ZGVkU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtMzgsNyArMzgsOSBAQAogI2luY2x1ZGUgIlNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgiCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KKyNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFk
cy9CaW5hcnlTZW1hcGhvcmUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMDIsNiAr
MjA0LDk3IEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJl
cXVlc3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlCiB9CiAjZW5kaWYKIAordm9pZCBUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OndpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIHRyYWNlUG9pbnQoU2Nyb2xsaW5nVGhyZWFkUmVu
ZGVyVXBkYXRlU3luY1N0YXJ0KTsKKworICAgIC8vIFdhaXQgZm9yIHRoZSBzY3JvbGxpbmcgdGhy
ZWFkIHRvIGFjcXVpcmUgbV90cmVlTXV0ZXguIFRoaXMgZW5zdXJlcyB0aGF0IGFueSBwZW5kaW5n
IHdoZWVsIGV2ZW50cyBhcmUgcHJvY2Vzc2VkLgorICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhv
cmU7CisgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCAmc2VtYXBob3JlXSgpIHsKKyAgICAgICAgTG9ja0hvbGRlciB0cmVlTG9ja2Vy
KHByb3RlY3RlZFRoaXMtPm1fdHJlZU11dGV4KTsKKyAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgp
OworICAgICAgICBwcm90ZWN0ZWRUaGlzLT53YWl0Rm9yUmVuZGVyaW5nVXBkYXRlQ29tcGxldGlv
bk9yVGltZW91dCgpOworICAgIH0pOworICAgIHNlbWFwaG9yZS53YWl0KCk7CisgICAgbV9zdGF0
ZSA9IFN5bmNocm9uaXphdGlvblN0YXRlOjpJblJlbmRlcmluZ1VwZGF0ZTsKK30KKworU2Vjb25k
cyBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om1heEFsbG93YWJsZVJlbmRlcmluZ1VwZGF0ZUR1cmF0
aW9uRm9yU3luY2hyb25pemF0aW9uKCkKK3sKKyAgICBjb25zdGV4cHIgZG91YmxlIGFsbG93YWJs
ZUZyYW1lRnJhY3Rpb24gPSAwLjU7CisgICAgYXV0byBkaXNwbGF5RlBTID0gbm9taW5hbEZyYW1l
c1BlclNlY29uZCgpOworICAgIGlmICghZGlzcGxheUZQUykKKyAgICAgICAgcmV0dXJuIGFsbG93
YWJsZUZyYW1lRnJhY3Rpb24gKiAxNi42NjdfbXM7CisKKyAgICBTZWNvbmRzIGZyYW1lRHVyYXRp
b24gPSAxX3MgLyAoZG91YmxlKWRpc3BsYXlGUFMudmFsdWUoKTsKKyAgICByZXR1cm4gYWxsb3dh
YmxlRnJhbWVGcmFjdGlvbiAqIGZyYW1lRHVyYXRpb247Cit9CisKKy8vIFRoaXMgY29kZSBhbGxv
d3MgdGhlIG1haW4gdGhyZWFkIGFib3V0IGhhbGYgYSBmcmFtZSB0byBjb21wbGV0ZSBpdHMgcmVu
ZGVyaW5nIHVkcGF0ZS4gSWYgdGhlIG1haW4gdGhyZWFkCisvLyBpcyByZXNwb25zaXZlIChpLmUu
IG1hbmFnaW5nIHRvIHJlbmRlciBldmVyeSBmcmFtZSksIHRoZW4gd2UgZXhwZWN0IHRvIGdldCBh
IGRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkKKy8vIHdpdGhpbiA4bXMgb2Ygd2lsbFN0YXJ0
UmVuZGVyaW5nVXBkYXRlKCkuIFdlIHRpbWUgdGhpcyB2aWEgbV9zdGF0ZUNvbmRpdGlvbiwgd2hp
Y2ggYmxvY2tzIHRoZSBzY3JvbGxpbmcKKy8vIHRocmVhZCAod2l0aCBtX3RyZWVNdXRleCBsb2Nr
ZWQgYXQgdGhlIHN0YXJ0IGFuZCBlbmQpIHNvIHRoYXQgd2UgZG9uJ3QgaGFuZGxlIHdoZWVsIGV2
ZW50cyB3aGlsZSB3YWl0aW5nLgorLy8gSWYgdGhlIGNvbmRpdGlvbiB0aW1lcyBvdXQsIHdlIGtu
b3cgdGhlIG1haW4gdGhyZWFkIGlzIGJlaW5nIHNsb3csIGFuZCBhbGxvdyB0aGUgc2Nyb2xsaW5n
IHRocmVhZCB0bworLy8gY29tbWl0IGxheWVyIHBvc2l0aW9ucy4KK3ZvaWQgVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlOjp3YWl0Rm9yUmVuZGVyaW5nVXBkYXRlQ29tcGxldGlvbk9yVGltZW91dCgpCit7
CisgICAgQVNTRVJUKFNjcm9sbGluZ1RocmVhZDo6aXNDdXJyZW50VGhyZWFkKCkpOworICAgIEFT
U0VSVChtX3RyZWVNdXRleC5pc0xvY2tlZCgpKTsKKworICAgIGF1dG8gc3RhcnRUaW1lID0gTW9u
b3RvbmljVGltZTo6bm93KCk7CisgICAgYXV0byB0aW1lb3V0VGltZSA9IHN0YXJ0VGltZSArIG1h
eEFsbG93YWJsZVJlbmRlcmluZ1VwZGF0ZUR1cmF0aW9uRm9yU3luY2hyb25pemF0aW9uKCk7CisK
KyAgICBib29sIGJlY2FtZUlkbGUgPSBtX3N0YXRlQ29uZGl0aW9uLndhaXRVbnRpbChtX3RyZWVN
dXRleCwgdGltZW91dFRpbWUsIFsmXSB7CisgICAgICAgIHJldHVybiBtX3N0YXRlID09IFN5bmNo
cm9uaXphdGlvblN0YXRlOjpJZGxlOworICAgIH0pOworCisgICAgQVNTRVJUKG1fdHJlZU11dGV4
LmlzTG9ja2VkKCkpOworCisgICAgaWYgKCFiZWNhbWVJZGxlKSB7CisgICAgICAgIG1fc3RhdGUg
PSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6RGVzeW5jaHJvbml6ZWQ7CisgICAgICAgIC8vIEF0IHRo
aXMgcG9pbnQgd2Uga25vdyB0aGUgbWFpbiB0aHJlYWQgaXMgdGFraW5nIHRvbyBsb25nIGluIHRo
ZSByZW5kZXJpbmcgdXBkYXRlLAorICAgICAgICAvLyBzbyB3ZSBnaXZlIHVwIHRyeWluZyB0byBz
eW5jIHdpdGggdGhlIG1haW4gdGhyZWFkIGFuZCB1cGRhdGUgbGF5ZXJzIGhlcmUgb24gdGhlIHNj
cm9sbGluZyB0aHJlYWQuCisgICAgICAgIGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwor
ICAgICAgICB0cmFjZVBvaW50KFNjcm9sbGluZ1RocmVhZFJlbmRlclVwZGF0ZVN5bmNFbmQsIDEp
OworICAgIH0gZWxzZQorICAgICAgICB0cmFjZVBvaW50KFNjcm9sbGluZ1RocmVhZFJlbmRlclVw
ZGF0ZVN5bmNFbmQpOworfQorCit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlkQ29tcGxl
dGVSZW5kZXJpbmdVcGRhdGUoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
TG9ja0hvbGRlciB0cmVlTG9ja2VyKG1fdHJlZU11dGV4KTsKKworICAgIGlmIChtX3N0YXRlID09
IFN5bmNocm9uaXphdGlvblN0YXRlOjpJblJlbmRlcmluZ1VwZGF0ZSkKKyAgICAgICAgbV9zdGF0
ZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKKworICAgIG1fc3RhdGUgPSBTeW5jaHJvbml6YXRpb25T
dGF0ZTo6SWRsZTsKK30KKwordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRS
ZWZyZXNoT25TY3JvbGxpbmdUaHJlYWQoKQoreworICAgIFRyYWNlU2NvcGUgdHJhY2luZ1Njb3Bl
KFNjcm9sbGluZ1RocmVhZERpc3BsYXlEaWRSZWZyZXNoU3RhcnQsIFNjcm9sbGluZ1RocmVhZERp
c3BsYXlEaWRSZWZyZXNoRW5kKTsKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJl
bnRUaHJlYWQoKSk7CisKKyAgICBMb2NrSG9sZGVyIHRyZWVMb2NrZXIobV90cmVlTXV0ZXgpOwor
CisgICAgaWYgKG1fc3RhdGUgIT0gU3luY2hyb25pemF0aW9uU3RhdGU6OklkbGUpCisgICAgICAg
IGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOworCisgICAgc3dpdGNoIChtX3N0YXRlKSB7
CisgICAgY2FzZSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6SWRsZTogeworICAgICAgICBtX3N0YXRl
ID0gU3luY2hyb25pemF0aW9uU3RhdGU6OldhaXRpbmdGb3JSZW5kZXJpbmdVcGRhdGU7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFN5bmNocm9uaXphdGlvblN0YXRlOjpXYWl0aW5n
Rm9yUmVuZGVyaW5nVXBkYXRlOgorICAgIGNhc2UgU3luY2hyb25pemF0aW9uU3RhdGU6OkluUmVu
ZGVyaW5nVXBkYXRlOgorICAgIGNhc2UgU3luY2hyb25pemF0aW9uU3RhdGU6OkRlc3luY2hyb25p
emVkOgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdU
cmVlOjpkaXNwbGF5RGlkUmVmcmVzaChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAg
ICAgaWYgKGRpc3BsYXlJRCAhPSB0aGlzLT5kaXNwbGF5SUQoKSkKQEAgLTIxNiwxMSArMzA5LDYg
QEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRSZWZyZXNoKFBsYXRmb3Jt
RGlzcGxheUlEIGRpc3BsYXlJRCkKICNlbmRpZgogfQogCi12b2lkIFRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6ZGlzcGxheURpZFJlZnJlc2hPblNjcm9sbGluZ1RocmVhZCgpCi17Ci0gICAgQVNTRVJU
KFNjcm9sbGluZ1RocmVhZDo6aXNDdXJyZW50VGhyZWFkKCkpOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBFTkFCTEUo
U0NST0xMSU5HX1RIUkVBRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXggOTQ4YmM3ZGI5NWEzMmFlZTYzYTYwOGQ3
N2Y1OTllYTFjOTJiMThhMC4uMjYzZGI4NDgyM2M2NzExY2Q0YjFlYTkwYTYxYWIxZjdjYzg0ZTJm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlLmgKQEAgLTU3LDYgKzU3LDExIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2goUGxhdGZvcm1EaXNwbGF5SUQpOwogCisgICAg
dm9pZCB3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICB2b2lkIGRpZENvbXBsZXRlUmVu
ZGVyaW5nVXBkYXRlKCk7CisKKyAgICBMb2NrJiB0cmVlTXV0ZXgoKSB7IHJldHVybiBtX3RyZWVN
dXRleDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVl
KEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKIApAQCAtNzksOCArODQsMjEgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHByb3BhZ2F0ZVN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyhjb25zdCBI
YXNoU2V0PFNjcm9sbGluZ05vZGVJRD4mKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlzcGxheURp
ZFJlZnJlc2hPblNjcm9sbGluZ1RocmVhZCgpOworICAgIHZvaWQgd2FpdEZvclJlbmRlcmluZ1Vw
ZGF0ZUNvbXBsZXRpb25PclRpbWVvdXQoKTsKKyAgICAKKyAgICBTZWNvbmRzIG1heEFsbG93YWJs
ZVJlbmRlcmluZ1VwZGF0ZUR1cmF0aW9uRm9yU3luY2hyb25pemF0aW9uKCk7CiAKICAgICBSZWZQ
dHI8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9zY3JvbGxpbmdDb29yZGluYXRvcjsKKwor
ICAgIGVudW0gY2xhc3MgU3luY2hyb25pemF0aW9uU3RhdGUgOiB1aW50OF90IHsKKyAgICAgICAg
SWRsZSwKKyAgICAgICAgV2FpdGluZ0ZvclJlbmRlcmluZ1VwZGF0ZSwKKyAgICAgICAgSW5SZW5k
ZXJpbmdVcGRhdGUsCisgICAgICAgIERlc3luY2hyb25pemVkLAorICAgIH07CisKKyAgICBTeW5j
aHJvbml6YXRpb25TdGF0ZSBtX3N0YXRlIHsgU3luY2hyb25pemF0aW9uU3RhdGU6OklkbGUgfTsK
KyAgICBDb25kaXRpb24gbV9zdGF0ZUNvbmRpdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXggOTNlYTA4MmYwOGVhNDM1YjcyNDBhNzY4
NjM5ZjA1MDYwMjlhNjUyNS4uZjIxNTZhZjdhNTQ3OWFjODNlOGYxMDQ1ODI1ZWU3ODk0MWY1ODZk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKQEAgLTQ2LDYgKzQ2LDkgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB2b2lkIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkgZmluYWw7CiAKKyAgICB2
b2lkIHdpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpIGZpbmFsOworICAgIHZvaWQgZGlkQ29tcGxl
dGVSZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsKKwogICAgIHZvaWQgdXBkYXRlVGlsZWRTY3JvbGxp
bmdJbmRpY2F0b3IoKTsKIAogICAgIHZvaWQgc3RhcnRNb25pdG9yaW5nV2hlZWxFdmVudHMoYm9v
bCBjbGVhckxhdGNoaW5nU3RhdGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4
IGZjMjQ5MWZiODJjNmZiZjVkMmNhNTBlYzg3MWNjZTJjZTY1MDM1OTcuLmJiMGYyZDk5OTI4NmU2
Zjg3NTg5MTdmZmRkZDk2YWUzMzRmZjA3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KQEAg
LTExMCw2ICsxMTAsMTggQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6Y29tbWl0VHJl
ZVN0YXRlSWZOZWVkZWQoKQogICAgIHVwZGF0ZVRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yKCk7CiB9
CiAKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OndpbGxTdGFydFJlbmRlcmluZ1VwZGF0
ZSgpCit7CisgICAgUmVmUHRyPFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4gdGhyZWFkZWRTY3JvbGxp
bmdUcmVlID0gZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPihzY3JvbGxpbmdUcmVlKCkp
OworICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCk7
CisgICAgc3luY2hyb25pemVTdGF0ZUZyb21TY3JvbGxpbmdUcmVlKCk7Cit9CisKK3ZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OmRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAg
ICBkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSktPmRpZENv
bXBsZXRlUmVuZGVyaW5nVXBkYXRlKCk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWM6OnVwZGF0ZVRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yKCkKIHsKICAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMzNDRmNWI4NmE2MTE4Y2M1MjAzMWUw
MzU1YWFlMjRjYjU4YWE5MzUuLjNmY2IyY2NkYzUzNmExZWZlMjhlMWQyYTdiYjdiMWI5ZjU4MGNi
MTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMC0wNS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNjcm9sbGluZyBzeW5jaHJvbml6YXRpb24gcGFy
dCAxOiBIYXZlIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHdhaXQgaGFsZiBhIGZyYW1lIGZvciB0aGUg
bWFpbiB0aHJlYWQgdG8gY29tcGxldGUgdGhlIHJlbmRlcmluZyB1cGRhdGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgU29tZSBuZXcgdHJhY2UgcG9pbnRzIGZv
ciBzY3JvbGxpbmcgdGhyZWFkIGFjdGl2aXR5LgorCisgICAgICAgICogVHJhY2luZy9TeXN0ZW1U
cmFjZVBvaW50cy5wbGlzdDoKKwogMjAyMC0wNS0yMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBMYXlvdXQgdGVzdHMgaW4gZWRpdGluZy9w
YXN0ZWJvYXJkIHNwb3JhZGljYWxseSBjcmFzaApkaWZmIC0tZ2l0IGEvVG9vbHMvVHJhY2luZy9T
eXN0ZW1UcmFjZVBvaW50cy5wbGlzdCBiL1Rvb2xzL1RyYWNpbmcvU3lzdGVtVHJhY2VQb2ludHMu
cGxpc3QKaW5kZXggZWU0YzAxZTdiZjhkYmJjNjAxODA4ZmM1MDQyNmU4NWE4ODM1YmRmNi4uNmFm
Y2I1YTY2NDFjOGIwZmZhY2MxMmE5YjNhMmFkZmU0ZGNiNzhlYSAxMDA2NDQKLS0tIGEvVG9vbHMv
VHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdAorKysgYi9Ub29scy9UcmFjaW5nL1N5c3Rl
bVRyYWNlUG9pbnRzLnBsaXN0CkBAIC0zMzcsNiArMzM3LDMwIEBACiAgICAgICAgICAgICAgICAg
IDxrZXk+Q29kZUVuZDwva2V5PgogICAgICAgICAgICAgICAgICA8c3RyaW5nPjUwMzk8L3N0cmlu
Zz4KICAgICAgICAgICAgICA8L2RpY3Q+CisgICAgICAgICAgICAgPGRpY3Q+CisgICAgICAgICAg
ICAgICAgIDxrZXk+TmFtZTwva2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPlNjcm9sbGlu
ZyBTeW5jPC9zdHJpbmc+CisgICAgICAgICAgICAgICAgIDxrZXk+VHlwZTwva2V5PgorICAgICAg
ICAgICAgICAgICA8c3RyaW5nPkludGVydmFsPC9zdHJpbmc+CisgICAgICAgICAgICAgICAgIDxr
ZXk+Q29tcG9uZW50PC9rZXk+CisgICAgICAgICAgICAgICAgIDxzdHJpbmc+NDc8L3N0cmluZz4K
KyAgICAgICAgICAgICAgICAgPGtleT5Db2RlQmVnaW48L2tleT4KKyAgICAgICAgICAgICAgICAg
PHN0cmluZz41MDQwPC9zdHJpbmc+CisgICAgICAgICAgICAgICAgIDxrZXk+Q29kZUVuZDwva2V5
PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPjUwNDE8L3N0cmluZz4KKyAgICAgICAgICAgICA8
L2RpY3Q+CisgICAgICAgICAgICAgPGRpY3Q+CisgICAgICAgICAgICAgICAgIDxrZXk+TmFtZTwv
a2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPlNjcm9sbGluZyBUaHJlYWQgRGlzcGxheURp
ZFJlZnJlc2g8L3N0cmluZz4KKyAgICAgICAgICAgICAgICAgPGtleT5UeXBlPC9rZXk+CisgICAg
ICAgICAgICAgICAgIDxzdHJpbmc+SW50ZXJ2YWw8L3N0cmluZz4KKyAgICAgICAgICAgICAgICAg
PGtleT5Db21wb25lbnQ8L2tleT4KKyAgICAgICAgICAgICAgICAgPHN0cmluZz40Nzwvc3RyaW5n
PgorICAgICAgICAgICAgICAgICA8a2V5PkNvZGVCZWdpbjwva2V5PgorICAgICAgICAgICAgICAg
ICA8c3RyaW5nPjUwNDI8L3N0cmluZz4KKyAgICAgICAgICAgICAgICAgPGtleT5Db2RlRW5kPC9r
ZXk+CisgICAgICAgICAgICAgICAgIDxzdHJpbmc+NTA0Mzwvc3RyaW5nPgorICAgICAgICAgICAg
IDwvZGljdD4KICAgICAgICAgICAgICA8ZGljdD4KICAgICAgICAgICAgICAgICAgPGtleT5OYW1l
PC9rZXk+CiAgICAgICAgICAgICAgICAgIDxzdHJpbmc+UGFpbnQgV2ViSFRNTFZpZXc8L3N0cmlu
Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399931</attachid>
            <date>2020-05-20 21:47:06 -0700</date>
            <delta_ts>2020-05-20 23:47:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212168-20200520214705.patch</filename>
            <type>text/plain</type>
            <size>29553</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxOTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZlNzQ4MDRkYjg1YzY4YjgwOGQ3NzI2
NWE4NGY5ZTEyOWEyZDc4YjMuLjI0N2E2MzQ3NTE0ZTcxYjlkMjUzNmQ1YzA3YTg1NjM4ZmEzYjFm
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDUtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBTY3JvbGxpbmcgc3luY2hyb25p
emF0aW9uIHBhcnQgMTogSGF2ZSB0aGUgc2Nyb2xsaW5nIHRocmVhZCB3YWl0IGhhbGYgYSBmcmFt
ZSBmb3IgdGhlIG1haW4gdGhyZWFkIHRvIGNvbXBsZXRlIHRoZSByZW5kZXJpbmcgdXBkYXRlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIxNjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFNvbWUgbmV3IHRyYWNl
IHBvaW50cyBmb3Igc2Nyb2xsaW5nIHRocmVhZCBhY3Rpdml0eS4KKworICAgICAgICAqIHd0Zi9T
eXN0ZW1UcmFjaW5nLmg6CisKIDIwMjAtMDUtMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyIHNob3VsZCBi
ZSBpbXBsZW1lbnRlZCB3aXRob3V0IHVzaW5nIFVJS2l0IGludGVybmFscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGZiZGQyODUwODIwNjRkNmUyNzgxZWE4MTQwM2U5NWM1NmJiY2Q1MmEuLmMxZjYwZWIyNjg0Y2Rm
MzRlOTgyODNkNzc4YTk1ZWUyZGM3YTE2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAor
MjAyMC0wNS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAg
ICAgICBbbWFjT1NdIFNjcm9sbGluZyBzeW5jaHJvbml6YXRpb24gcGFydCAxOiBIYXZlIHRoZSBz
Y3JvbGxpbmcgdGhyZWFkIHdhaXQgaGFsZiBhIGZyYW1lIGZvciB0aGUgbWFpbiB0aHJlYWQgdG8g
Y29tcGxldGUgdGhlIHJlbmRlcmluZyB1cGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSBzY3JvbGxpbmcgdGhyZWFkIGlzIGEgZnJl
ZS1ydW5uaW5nIHRocmVhZCB0aGF0IG1vdmVzIGxheWVycyBhcm91bmQgaW4gcmVzcG9uc2UKKyAg
ICAgICAgdG8gd2hlZWwgZXZlbnRzLCBhbmQgYXN5bmNocm9ub3VzbHkgcG9zdHMgZGF0YSBhYm91
dCBzY3JvbGxlZCBsYXllcnMgYmFjayB0byB0aGUgbWFpbiB0aHJlYWQuCisgICAgICAgIFRoYXQg
cmVzdWx0cyBpbiBhbiBhbG1vc3QgZ3VhcmFudGVlZCBsYWNrIG9mIHN5bmNocm9uaXphdGlvbiBi
ZXR3ZWVuIHRoZSBkaXNwbGF5ZWQgbGF5ZXIKKyAgICAgICAgcG9zaXRpb25zLCBhbmQgdGhlIHdl
Yi1leHBvc2VkIHZhbHVlcyBmb3Igc2Nyb2xsIHBvc2l0aW9uIChlbGVtZW50LnNjcm9sbFRvcCwg
d2luZG93LnBhZ2VZT2Zmc2V0IGV0YykuCisgICAgICAgIFRoaXMgaXMgYSBmcmVxdWVudCBzb3Vy
Y2Ugb2Ygc3R1dHRlcmluZyBvciBqdW1weSB3ZWIgY29udGVudCB3aGVuIHNjcm9sbGluZy4KKwor
ICAgICAgICBUaGUgZmlyc3Qgc3RlcCB0byBmaXhpbmcgdGhpcyBpcyB0byBzeW5jaHJvbml6ZSB0
aGUgc2Nyb2xsaW5nIHRocmVhZCBsYXllciBwb3NpdGlvbnMKKyAgICAgICAgYW5kIHRoZSBtYWlu
IHRocmVhZCBzdGF0ZSBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIG1haW4gdGhyZWFkIGlzIHJlc3Bv
bnNpdmUgZW5vdWdoIHRvCisgICAgICAgIHJlbmRlciBvbmNlIHBlciBmcmFtZS4gVGhpcyBpcyBh
Y2hpZXZlZCBhcyBmb2xsb3c6CisgICAgICAgICAgICAtIFdoZW4gdGhlIG1haW4gdGhyZWFkIGlz
IHN0YXJ0aW5nIGEgcmVuZGVyaW5nIHVwZGF0ZSwgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkgaW5m
b3JtcworICAgICAgICAgICAgICB0aGUgc2Nyb2xsaW5nIHRyZWUgdmlhIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjp3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKS4gVGhpcworICAgICAgICAgICAg
ICBhdG9taWNhbGx5IHdhaXRzIGZvciB0aGUgc2Nyb2xsaW5nIHRocmVhZCB0byB0YWtlIHRoZSBt
X3RyZWVNdXRleCAodmlhIGEgQmluYXJ5U2VtYXBob3JlKQorICAgICAgICAgICAgICBhbmQgc3Rh
cnRzIHdhaXRpbmcgb24gdGhlIG1fc3RhdGVDb25kaXRpb24gQ29uZGl0aW9uLiBOb3cgdGhlIG1h
aW4gdGhyZWFkIHB1bGxzIHRoZQorICAgICAgICAgICAgICBzdGF0ZSBvZiB0aGUgc2Nyb2xsaW5n
IHRyZWUgdmlhIHN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5nVHJlZSgpIGFuZCB1c2VzIGl0
IGZvcgorICAgICAgICAgICAgICB0aGUgcmVuZGVyaW5nIHVwZGF0ZS4KKyAgICAgICAgICAgIC0g
SWYgdGhlIHJlbmRlcmluZyB1cGRhdGUgZmluaXNoZXMgd2l0aGluIGhhbGYgYSBmcmFtZSAoOG1z
KSwgdGhlbiBtX3N0YXRlQ29uZGl0aW9uCisgICAgICAgICAgICAgIGlzIHJlbGVhc2VkLCBhbmQg
dGhlIHNjcm9sbGluZyB0aHJlYWQgYXNzdW1lcyB0aGF0IHRoZSBtYWluIHRocmVhZCBpcyBnb2lu
ZyB0bworICAgICAgICAgICAgICBjb21taXQgbGF5ZXJzIHJhcGlkbHkgZW5vdWdoIHRvIHByZXNl
cnZlIDYwZnBzIHNjcm9sbGluZy4KKyAgICAgICAgICAgIC0gSWYgdGhlIHJlbmRlcmluZyB1cGRh
dGUgdGFrZXMgdG9vIGxvbmcsIG1fc3RhdGVDb25kaXRpb24gdGltZXMgb3V0LCBhbmQgdGhlIHNj
cm9sbGluZworICAgICAgICAgICAgICB0aHJlYWQgYXBwbGllcyBsYXllciBwb3NpdGlvbnMsIHRy
aWdnZXJpbmcgYSBDQSBjb21taXQgb24gdGhhdCB0aHJlYWQuCisKKyAgICAgICAgV2Ugbm8gbG9u
Z2VyIGFwcGx5IGxheWVyIHBvc2l0aW9ucyBkaXJlY3RseSB3aGVuIGhhbmRsaW5nIHdoZWVsIGV2
ZW50cy4KKworICAgICAgICBzeW5jaHJvbml6ZVN0YXRlRnJvbVNjcm9sbGluZ1RyZWUoKSBoYXMg
dG8gb25seSBwdWxsIHN0YXRlIGZyb20gbm9kZXMgdGhhdCBoYXZlIG1vdmVkIG9uIHRoZSBzY3Jv
bGxpbmcgdGhyZWFkLAorICAgICAgICBzbyB0cmFjayB0aGF0IHZpYSBTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZTo6c2Nyb2xsZWRTaW5jZUxhc3RDb21taXQoKSBhbmQgYWRqdXN0IHRoZSB2aXNp
dG9yIGZ1bmN0aW9uIHRvCisgICAgICAgIG1ha2UgaXQgYXZhaWxhYmxlIGR1cmluZyBzY3JvbGxp
bmcgdHJlZSB0cmF2ZXJzYWwuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6dXBkYXRlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnN5bmNocm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5nVHJlZSk6CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6d2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpkaWRDb21wbGV0ZVJlbmRlcmlu
Z1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hy
b25pemVTdGF0ZUZyb21TY3JvbGxpbmdUcmVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWU6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
dHJhdmVyc2VTY3JvbGxpbmdUcmVlUmVjdXJzaXZlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWU6OmNvbW1pdFRyZWVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjp1cGRhdGVUcmVlRnJvbVN0YXRlTm9kZVJlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjphcHBseUxheWVyUG9zaXRpb25zSW50ZXJuYWwpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bm9taW5hbEZyYW1lc1BlclNlY29uZCk6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
Tm9kZTo6ZGlkQ29tcGxldGVDb21taXRGb3JOb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZGlkQ29tcGxldGVDb21taXRGb3JOb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJyZW50U2Nyb2xsUG9z
aXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndpbGxT
dGFydFJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGlu
Z1RyZWU6Om1heEFsbG93YWJsZVJlbmRlcmluZ1VwZGF0ZUR1cmF0aW9uRm9yU3luY2hyb25pemF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2FpdEZvclJl
bmRlcmluZ1VwZGF0ZUNvbXBsZXRpb25PclRpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6VGhy
ZWFkZWRTY3JvbGxpbmdUcmVlOjpkaWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRSZWZyZXNoT25TY3Jv
bGxpbmdUaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp0cmVlTXV0
ZXgpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp3aWxsU3Rh
cnRSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWM6OmRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKToKKwogMjAyMC0wNS0yMCAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGljdGF0aW9uIGNvbnRleHQgc2hv
dWxkIGJlIGFuIG9iamVjdCBpZGVudGlmaWVyLCBub3QgYSB0eXBlLXB1bm5lZCBwb2ludGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFjaW5nLmggYi9Tb3VyY2UvV1RGL3d0
Zi9TeXN0ZW1UcmFjaW5nLmgKaW5kZXggYTlhZGU4YWQwNGVlMTFiMWIyYzlkOGUzZDI0YTA3MjA2
ZjU1MjJmMC4uMTE5NzczMGU2ODAyOGE0YjY2MDkzZjQ0MDFhZDc0MTUyZGNhNDJmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvU3lzdGVtVHJhY2luZy5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1N5c3RlbVRyYWNpbmcuaApAQCAtOTAsNiArOTAsMTAgQEAgZW51bSBUcmFjZVBvaW50Q29kZSB7
CiAgICAgUGFyc2VIVE1MRW5kLAogICAgIERpc3BsYXlMaXN0UmVwbGF5U3RhcnQsCiAgICAgRGlz
cGxheUxpc3RSZXBsYXlFbmQsCisgICAgU2Nyb2xsaW5nVGhyZWFkUmVuZGVyVXBkYXRlU3luY1N0
YXJ0LAorICAgIFNjcm9sbGluZ1RocmVhZFJlbmRlclVwZGF0ZVN5bmNFbmQsCisgICAgU2Nyb2xs
aW5nVGhyZWFkRGlzcGxheURpZFJlZnJlc2hTdGFydCwKKyAgICBTY3JvbGxpbmdUaHJlYWREaXNw
bGF5RGlkUmVmcmVzaEVuZCwKIAogICAgIFdlYktpdFJhbmdlID0gMTAwMDAsCiAgICAgV2ViSFRN
TFZpZXdQYWludFN0YXJ0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMTRhYzM4Y2E4OGZhODY1ZDA3
MGVkMGUzNmNmZjI4NjE0ZGU2YzFkMC4uMmRmOWQyYmM4ZmFlMzIzZTA3YTBhNmIyNDRkNjVkMDA0
YzA5YTljOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMzYwLDYgKzEzNjAsMTEgQEAgdm9pZCBQ
YWdlOjp1cGRhdGVSZW5kZXJpbmcoKQogCiAgICAgbGF5b3V0SWZOZWVkZWQoKTsKIAorI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYgKGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9y
ID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgc2Nyb2xsaW5nQ29vcmRp
bmF0b3ItPndpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpOworI2VuZGlmCisKICAgICAvLyBUaW1l
c3RhbXBzIHNob3VsZCBub3QgY2hhbmdlIHdoaWxlIHNlcnZpbmcgdGhlIHJlbmRlcmluZyB1cGRh
dGUgc3RlcHMuCiAgICAgVmVjdG9yPFdlYWtQdHI8RG9jdW1lbnQ+PiBpbml0aWFsRG9jdW1lbnRz
OwogICAgIGZvckVhY2hEb2N1bWVudChbJmluaXRpYWxEb2N1bWVudHNdIChEb2N1bWVudCYgZG9j
dW1lbnQpIHsKQEAgLTE0NzgsNiArMTQ4Myw4IEBAIHZvaWQgUGFnZTo6ZmluYWxpemVSZW5kZXJp
bmdVcGRhdGUoT3B0aW9uU2V0PEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRmxhZ3M+IGZsYWdzCiAg
ICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpOwog
ICAgICAgICBpZiAoZmxhZ3MuY29udGFpbnMoRmluYWxpemVSZW5kZXJpbmdVcGRhdGVGbGFnczo6
QXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQb3NpdGlvbnMpKQogICAgICAgICAgICAgc2Nyb2xsaW5n
Q29vcmRpbmF0b3ItPmFwcGx5U2Nyb2xsaW5nVHJlZUxheWVyUG9zaXRpb25zKCk7CisgICAgICAg
ICAgICAKKyAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmRpZENvbXBsZXRlUmVuZGVyaW5n
VXBkYXRlKCk7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGVh
ZTQxYjAyNTM1YTllZWI5NjY1OWVjNmY1YjI3ZTAyZjEwNTE4MjMuLjAwODc5MGNhOTJiOWYyMGYx
YzUxMTkxMzA2ODZkYzVjZjcwNjA0NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yOTYs
OCArMjk2LDggQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jaHJvbml6ZVN0
YXRlRnJvbVNjcm9sbGluZ1RyZWUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
LSAgICBtX3Njcm9sbGluZ1RyZWUtPnRyYXZlcnNlU2Nyb2xsaW5nVHJlZShbJl0oU2Nyb2xsaW5n
Tm9kZUlEIG5vZGVJRCwgU2Nyb2xsaW5nTm9kZVR5cGUsIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHNj
cm9sbFBvc2l0aW9uLCBPcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbikg
ewotICAgICAgICBpZiAoc2Nyb2xsUG9zaXRpb24pIHsKKyAgICBtX3Njcm9sbGluZ1RyZWUtPnRy
YXZlcnNlU2Nyb2xsaW5nVHJlZShbJl0oU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgU2Nyb2xsaW5n
Tm9kZVR5cGUsIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBPcHRpb25hbDxG
bG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgYm9vbCBzY3JvbGxlZFNpbmNlTGFzdENv
bW1pdCkgeworICAgICAgICBpZiAoc2Nyb2xsUG9zaXRpb24gJiYgc2Nyb2xsZWRTaW5jZUxhc3RD
b21taXQpIHsKICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8
PCAiQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25pemVTdGF0ZUZyb21TY3JvbGxp
bmdUcmVlIC0gbm9kZSAiIDw8IG5vZGVJRCA8PCAiIHNjcm9sbCBwb3NpdGlvbiAiIDw8IHNjcm9s
bFBvc2l0aW9uKTsKICAgICAgICAgICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9uLnZhbHVlKCksIGxheW91dFZpZXdwb3J0T3JpZ2lu
LCBTY3JvbGxUeXBlOjpVc2VyLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTZXQpOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggMjIwODY1NDg3NmUxODE3NzM3ODA3ZmYz
M2M4MGY5YTVhMDdlMTExNy4uOGE3MjA0MWVjZDc3MTJiNjQ4Y2ZiNzkyMDRkOGY3ZTUzNmM3ODA3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtODIsNiArODIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIHNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dChTY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHRCZWhhdmlvciA9IFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9y
Tm9ybWFsKSBjb25zdCBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Nyb2xs
aW5nVHJlZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvciA9IFNjcm9sbGlu
Z1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25zdCBvdmVycmlkZTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHdpbGxDb21taXRUcmVlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzeW5j
aHJvbml6ZVN0YXRlRnJvbVNjcm9sbGluZ1RyZWUoKTsKIAogICAgIGJvb2wgZXZlbnRUcmFja2lu
Z1JlZ2lvbnNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRUcmFja2luZ1JlZ2lvbnNEaXJ0
eTsgfQogCkBAIC0xMDIsNyArMTAzLDYgQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IElu
dFBvaW50JiwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIG92ZXJyaWRlOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBhcHBseVNjcm9sbGluZ1RyZWVMYXllclBvc2l0aW9ucygpIG92ZXJy
aWRlOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3luY2hyb25pemVTdGF0ZUZyb21TY3JvbGxp
bmdUcmVlKCkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxpbmdOb2RlSUQg
Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5ld05vZGVJRCkg
b3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xsaW5nTm9kZUlEIGluc2VydE5vZGUo
U2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBuZXdOb2RlSUQsIFNjcm9sbGluZ05v
ZGVJRCBwYXJlbnRJRCwgc2l6ZV90IGNoaWxkSW5kZXgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXgg
ZTFmNTY3YzMxNTYwMmM5YjhjNzBlODhmY2MyZDMwMTkxOTEwMDQyMC4uMDA1YmNjNTllYTdlYmFl
NTdlNjBkMTYxOGEyMzkyNDEyMGI1MGMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0xMTMsOCArMTEzLDggQEAg
cHVibGljOgogICAgIC8vIFRyYXZlcnNlcyB0aGUgc2Nyb2xsaW5nIHRyZWUsIHNldHRpbmcgbGF5
ZXIgcG9zaXRpb25zIHRvIHJlcHJlc2VudCB0aGUgY3VycmVudCBzY3JvbGxlZCBzdGF0ZS4KICAg
ICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQb3NpdGlvbnMoKSB7IH0KIAot
ICAgIC8vIFRha2VzIHNjcm9sbCBwb3NpdGlvbnMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUgYW5k
IGFwcGxpZXMgdGhlbSB0byBTY3JvbGxhYmxlQXJlYXMuCi0gICAgdmlydHVhbCB2b2lkIHN5bmNo
cm9uaXplU3RhdGVGcm9tU2Nyb2xsaW5nVHJlZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
U3RhcnRSZW5kZXJpbmdVcGRhdGUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVS
ZW5kZXJpbmdVcGRhdGUoKSB7IH0KIAogI2lmIEVOQUJMRShLSU5FVElDX1NDUk9MTElORykKICAg
ICAvLyBEaXNwYXRjaGVkIGJ5IHRoZSBzY3JvbGxpbmcgdHJlZSBkdXJpbmcgaGFuZGxlV2hlZWxF
dmVudC4gVGhpcyBpcyByZXF1aXJlZCBhcyBsb25nIGFzIHNjcm9sbGJhcnMgYXJlIHBhaW50ZWQg
b24gdGhlIG1haW4gdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAppbmRleCAxYWRhY2EyMDI5MmU1M2U0MGI3NjE2NWY3ZmFjNDRjMTM2
Y2E3NWQwLi5lMDgwNDI2M2Q0ZGMxYTFkMDE5ZDExN2QxZWEzNGIxYmMxNWRkODY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTU4
LDkgKzE1OCw2IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3CiAgICAgICAgIHJldHVybiBTY3Jv
bGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CiAgICAgfSgpOwogCi0gICAgaWYg
KHJlc3VsdCA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQpCi0gICAgICAg
IGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwotICAgIAogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKQEAgLTE4NywxNSArMTg0LDE5IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dHJhdmVyc2VT
Y3JvbGxpbmdUcmVlKFZpc2l0b3JGdW5jdGlvbiYmIHZpc2l0b3JGdW5jdGlvbikKIAogdm9pZCBT
Y3JvbGxpbmdUcmVlOjp0cmF2ZXJzZVNjcm9sbGluZ1RyZWVSZWN1cnNpdmUoU2Nyb2xsaW5nVHJl
ZU5vZGUmIG5vZGUsIGNvbnN0IFZpc2l0b3JGdW5jdGlvbiYgdmlzaXRvckZ1bmN0aW9uKQogewor
ICAgIGJvb2wgc2Nyb2xsZWRTaW5jZUxhc3RDb21taXQgPSBmYWxzZTsKICAgICBPcHRpb25hbDxG
bG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbjsKLSAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU+KG5vZGUpKQotICAgICAgICBzY3JvbGxQb3NpdGlvbiA9IGRvd25jYXN0PFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlPihub2RlKS5jdXJyZW50U2Nyb2xsUG9zaXRpb24oKTsKKyAg
ICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KG5vZGUpKSB7CisgICAgICAgIGF1
dG8mIHNjcm9sbGluZ05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4o
bm9kZSk7CisgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsaW5nTm9kZS5jdXJyZW50U2Ny
b2xsUG9zaXRpb24oKTsKKyAgICAgICAgc2Nyb2xsZWRTaW5jZUxhc3RDb21taXQgPSBzY3JvbGxp
bmdOb2RlLnNjcm9sbGVkU2luY2VMYXN0Q29tbWl0KCk7CisgICAgfQogCiAgICAgT3B0aW9uYWw8
RmxvYXRQb2ludD4gbGF5b3V0Vmlld3BvcnRPcmlnaW47CiAgICAgaWYgKGlzPFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpKQogICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdp
biA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KG5vZGUpLmxheW91
dFZpZXdwb3J0KCkubG9jYXRpb24oKTsKIAotICAgIHZpc2l0b3JGdW5jdGlvbihub2RlLnNjcm9s
bGluZ05vZGVJRCgpLCBub2RlLm5vZGVUeXBlKCksIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3
cG9ydE9yaWdpbik7CisgICAgdmlzaXRvckZ1bmN0aW9uKG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCks
IG5vZGUubm9kZVR5cGUoKSwgc2Nyb2xsUG9zaXRpb24sIGxheW91dFZpZXdwb3J0T3JpZ2luLCBz
Y3JvbGxlZFNpbmNlTGFzdENvbW1pdCk7CiAKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogbm9kZS5j
aGlsZHJlbigpKQogICAgICAgICB0cmF2ZXJzZVNjcm9sbGluZ1RyZWVSZWN1cnNpdmUoY2hpbGQu
Z2V0KCksIHZpc2l0b3JGdW5jdGlvbik7CkBAIC0yMTcsOSArMjE4LDkgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJl
ZT4mJiBzY3JvbGwKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVNdXRleCk7CiAKICAgICBi
b29sIHJvb3RTdGF0ZU5vZGVDaGFuZ2VkID0gc2Nyb2xsaW5nU3RhdGVUcmVlLT5oYXNOZXdSb290
U3RhdGVOb2RlKCk7Ci0gICAgCisKICAgICBMT0coU2Nyb2xsaW5nVHJlZSwgIlxuU2Nyb2xsaW5n
VHJlZSAlcCBjb21taXRUcmVlU3RhdGUiLCB0aGlzKTsKLSAgICAKKwogICAgIGF1dG8qIHJvb3RO
b2RlID0gc2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCk7CiAgICAgaWYgKHJvb3RO
b2RlCiAgICAgICAgICYmIChyb290U3RhdGVOb2RlQ2hhbmdlZApAQCAtMzI3LDcgKzMyOCw4IEBA
IHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGVSZWN1cnNpdmUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVOb2RlKiBzCiAgICAgfQogCiAgICAgbm9kZS0+Y29tbWl0U3RhdGVB
ZnRlckNoaWxkcmVuKCpzdGF0ZU5vZGUpOwotICAgIAorICAgIG5vZGUtPmRpZENvbXBsZXRlQ29t
bWl0Rm9yTm9kZSgpOworCiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCiAgICAgaWYgKGlz
PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPigqbm9kZSkgJiYgIWRvd25jYXN0PFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlPigqbm9kZSkuc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCku
aXNFbXB0eSgpKQogICAgICAgICBzdGF0ZS5zeW5jaHJvbm91c1Njcm9sbGluZ05vZGVzLmFkZChu
b2RlSUQpOwpAQCAtMzU0LDYgKzM1Niw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6YXBwbHlMYXll
clBvc2l0aW9ucygpCiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6YXBwbHlMYXllclBvc2l0aW9uc0lu
dGVybmFsKCkKIHsKKyAgICBBU1NFUlQobV90cmVlTXV0ZXguaXNMb2NrZWQoKSk7CiAgICAgaWYg
KCFtX3Jvb3ROb2RlKQogICAgICAgICByZXR1cm47CiAKQEAgLTU0MCw2ICs1NDMsMTIgQEAgUGxh
dGZvcm1EaXNwbGF5SUQgU2Nyb2xsaW5nVHJlZTo6ZGlzcGxheUlEKCkKICAgICByZXR1cm4gbV90
cmVlU3RhdGUuZGlzcGxheUlEOwogfQogCitPcHRpb25hbDx1bnNpZ25lZD4gU2Nyb2xsaW5nVHJl
ZTo6bm9taW5hbEZyYW1lc1BlclNlY29uZCgpCit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90
cmVlU3RhdGVNdXRleCk7CisgICAgcmV0dXJuIG1fdHJlZVN0YXRlLm5vbWluYWxGcmFtZXNQZXJT
ZWNvbmQ7Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VM
b2dnaW5nRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxv
Z2dpbmdFbmFibGVkID0gZmxhZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaAppbmRleCAzYmQ4MjFlZDQ4MTMzMGNiMzg1YmY5ZmRhYWUxN2VmOWU2ZWRl
M2ZiLi5hYTFiZTEzNGMyZmEzOTc5ZDFjMjNhMmQ3NzBmYThlMTUyZGQ4MGYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC05MCw3ICs5MCw3
IEBAIHB1YmxpYzoKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxpbmdUcmVlTm9kZSog
bm9kZUZvcklEKFNjcm9sbGluZ05vZGVJRCkgY29uc3Q7CiAKLSAgICB1c2luZyBWaXNpdG9yRnVu
Y3Rpb24gPSBXVEY6OkZ1bmN0aW9uPHZvaWQgKFNjcm9sbGluZ05vZGVJRCwgU2Nyb2xsaW5nTm9k
ZVR5cGUsIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBPcHRpb25hbDxGbG9h
dFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbik+OworICAgIHVzaW5nIFZpc2l0b3JGdW5jdGlv
biA9IFdURjo6RnVuY3Rpb248dm9pZCAoU2Nyb2xsaW5nTm9kZUlELCBTY3JvbGxpbmdOb2RlVHlw
ZSwgT3B0aW9uYWw8RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIE9wdGlvbmFsPEZsb2F0UG9p
bnQ+IGxheW91dFZpZXdwb3J0T3JpZ2luLCBib29sIHNjcm9sbGVkU2luY2VMYXN0Q29tbWl0KT47
CiAgICAgdm9pZCB0cmF2ZXJzZVNjcm9sbGluZ1RyZWUoVmlzaXRvckZ1bmN0aW9uJiYpOwogCiAg
ICAgLy8gQ2FsbGVkIGFmdGVyIGEgc2Nyb2xsaW5nIHRyZWUgbm9kZSBoYXMgaGFuZGxlZCBhIHNj
cm9sbCBhbmQgdXBkYXRlZCBpdHMgbGF5ZXJzLgpAQCAtMTg4LDEyICsxODgsMTUgQEAgcHJvdGVj
dGVkOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTY3JvbGxpbmdFdmVudFJlc3VsdCBo
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCisgICAgT3B0aW9u
YWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQoKTsKKworICAgIHZvaWQgYXBwbHlM
YXllclBvc2l0aW9uc0ludGVybmFsKCk7CisgICAgTG9jayBtX3RyZWVNdXRleDsgLy8gUHJvdGVj
dHMgdGhlIHNjcm9sbGluZyB0cmVlLgorCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVHJlZUZy
b21TdGF0ZU5vZGVSZWN1cnNpdmUoY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlKiwgc3RydWN0IENv
bW1pdFRyZWVTdGF0ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBwcm9wYWdhdGVTeW5jaHJvbm91c1Nj
cm9sbGluZ1JlYXNvbnMoY29uc3QgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+JikgeyB9CiAKLSAg
ICB2b2lkIGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwotCiAgICAgdm9pZCBhcHBseUxh
eWVyUG9zaXRpb25zUmVjdXJzaXZlKFNjcm9sbGluZ1RyZWVOb2RlJik7CiAgICAgdm9pZCBub3Rp
ZnlSZWxhdGVkTm9kZXNSZWN1cnNpdmUoU2Nyb2xsaW5nVHJlZU5vZGUmKTsKICAgICB2b2lkIHRy
YXZlcnNlU2Nyb2xsaW5nVHJlZVJlY3Vyc2l2ZShTY3JvbGxpbmdUcmVlTm9kZSYsIGNvbnN0IFZp
c2l0b3JGdW5jdGlvbiYpOwpAQCAtMjAyLDggKzIwNSw2IEBAIHByaXZhdGU6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCBPcHRpb25TZXQ8RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU+IGV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBvaW50KEZsb2F0UG9pbnQpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCByZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgeyB9
CiAKLSAgICBMb2NrIG1fdHJlZU11dGV4OyAvLyBQcm90ZWN0cyB0aGUgc2Nyb2xsaW5nIHRyZWUu
Ci0KICAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZT4gbV9yb290Tm9k
ZTsKIAogICAgIHVzaW5nIFNjcm9sbGluZ1RyZWVOb2RlTWFwID0gSGFzaE1hcDxTY3JvbGxpbmdO
b2RlSUQsIFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXggMTkzZDIxN2JjZGFiMDlh
ODI4N2NhYjdhNjZmYjRjMzRlZGNiZDBhMS4uMzMzNWQwNmJjNzYyMjkzYzVhYTljZmE4OWUwOGZj
YjQzZTYzNzA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlTm9kZS5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNj
cm9sbGluZ1N0YXRlTm9kZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZUNvbW1p
dEZvck5vZGUoKSB7IH0KIAogICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQoKSBjb25zdCB7
IHJldHVybiBtX3BhcmVudDsgfQogICAgIHZvaWQgc2V0UGFyZW50KFNjcm9sbGluZ1RyZWVOb2Rl
KiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApp
bmRleCA4MDIxNmViYTMzN2M4M2I4MjkwNmY3NjdkYWU2ZjYwNzg4MWY4Y2ZlLi5mYTQ1Yzk3MzA2
ODFkMDk4Y2E5NDAzMzQwMDRkNGEwMGQ4NzFlMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3Bw
CkBAIC0xMjQsNiArMTI0LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNv
bW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vCiAgICAgbV9pc0Zp
cnN0Q29tbWl0ID0gZmFsc2U7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmRpZENvbXBsZXRlQ29tbWl0Rm9yTm9kZSgpCit7CisgICAgbV9zY3JvbGxlZFNpbmNlTGFzdENv
bW1pdCA9IGZhbHNlOworfQorCiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjppc0xh
dGNoZWROb2RlKCkgY29uc3QKIHsKICAgICByZXR1cm4gc2Nyb2xsaW5nVHJlZSgpLmxhdGNoZWRO
b2RlSUQoKSA9PSBzY3JvbGxpbmdOb2RlSUQoKTsKQEAgLTI1MCw2ICsyNTUsNyBAQCB2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3Np
dGlvbiwgU2Nyb2xsVHlwZQogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y3VycmVu
dFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiB7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKCp0aGlzKTsKKyAgICBtX3Njcm9sbGVkU2luY2VMYXN0Q29tbWl0
ID0gdHJ1ZTsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsUG9z
aXRpb25BbmRMYXlvdXRWaWV3cG9ydE1hdGNoKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBP
cHRpb25hbDxGbG9hdFJlY3Q+KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggOGFkOTk2MmMwNDY2
OGUzNTUwNDUxZjBmYTQ2ZmQ2NzMzMTdlYTQzNy4uMWRjNDJiMzdiN2U1NzY0YmE4ZWQ5OWRiYjY0
NTMwODUwZDQ4NWQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxp
bmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJl
bihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENvbXBs
ZXRlQ29tbWl0Rm9yTm9kZSgpIGZpbmFsOwogCiAgICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBT
Y3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpOwpAQCAtMTAzLDYgKzEwNCw4IEBAIHB1YmxpYzoKICAgICBib29sIHVzZURhcmtBcHBl
YXJhbmNlRm9yU2Nyb2xsYmFycygpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFQYXJh
bWV0ZXJzLnVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFyczsgfQogCiAgICAgYm9vbCBldmVu
dENhblNjcm9sbENvbnRlbnRzKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0OworICAg
IAorICAgIGJvb2wgc2Nyb2xsZWRTaW5jZUxhc3RDb21taXQoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbGVkU2luY2VMYXN0Q29tbWl0OyB9CiAKICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9u
JiBzY3JvbGxDb250YWluZXJMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsQ29udGFpbmVy
TGF5ZXI7IH0KICAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBzY3JvbGxlZENvbnRlbnRz
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsgfQpAQCAtMTYy
LDYgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uU2V0PFN5bmNocm9ub3VzU2Nyb2xsaW5n
UmVhc29uPiBtX3N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uczsKICNlbmRpZgogICAgIGJvb2wg
bV9pc0ZpcnN0Q29tbWl0IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9zY3JvbGxlZFNpbmNlTGFzdENv
bW1pdCB7IGZhbHNlIH07CiAKICAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fc2Nyb2xsQ29udGFp
bmVyTGF5ZXI7CiAgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX3Njcm9sbGVkQ29udGVudHNMYXll
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Ny
b2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwCmluZGV4IDY1YzRjMzQ1NzI2ZTYwMTBkYzVlZGUzOWFkZDI0MTdmYjIz
ZTczN2IuLjNkYTUwZWVlYWUwZTM2NGMxYTVmYjVkYTY4YTg1YmQxNDc0MWVmZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcApAQCAtMzgsNyArMzgsOSBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmgiCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9y
U2NvcGUuaD4KKyNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1RleHRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMDIsNiArMjA0LDk0IEBAIHZvaWQgVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCBub2RlCiB9CiAjZW5kaWYKIAordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6
OndpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKworICAgIHRyYWNlUG9pbnQoU2Nyb2xsaW5nVGhyZWFkUmVuZGVyVXBkYXRlU3luY1N0YXJ0
KTsKKworICAgIC8vIFdhaXQgZm9yIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHRvIGFjcXVpcmUgbV90
cmVlTXV0ZXguIFRoaXMgZW5zdXJlcyB0aGF0IGFueSBwZW5kaW5nIHdoZWVsIGV2ZW50cyBhcmUg
cHJvY2Vzc2VkLgorICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAgU2Nyb2xsaW5n
VGhyZWFkOjpkaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCAmc2VtYXBo
b3JlXSgpIHsKKyAgICAgICAgTG9ja0hvbGRlciB0cmVlTG9ja2VyKHByb3RlY3RlZFRoaXMtPm1f
dHJlZU11dGV4KTsKKyAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOworICAgICAgICBwcm90ZWN0
ZWRUaGlzLT53YWl0Rm9yUmVuZGVyaW5nVXBkYXRlQ29tcGxldGlvbk9yVGltZW91dCgpOworICAg
IH0pOworICAgIHNlbWFwaG9yZS53YWl0KCk7CisgICAgbV9zdGF0ZSA9IFN5bmNocm9uaXphdGlv
blN0YXRlOjpJblJlbmRlcmluZ1VwZGF0ZTsKK30KKworU2Vjb25kcyBUaHJlYWRlZFNjcm9sbGlu
Z1RyZWU6Om1heEFsbG93YWJsZVJlbmRlcmluZ1VwZGF0ZUR1cmF0aW9uRm9yU3luY2hyb25pemF0
aW9uKCkKK3sKKyAgICBjb25zdGV4cHIgZG91YmxlIGFsbG93YWJsZUZyYW1lRnJhY3Rpb24gPSAw
LjU7CisgICAgYXV0byBkaXNwbGF5RlBTID0gbm9taW5hbEZyYW1lc1BlclNlY29uZCgpLnZhbHVl
T3IoNjApOworICAgIFNlY29uZHMgZnJhbWVEdXJhdGlvbiA9IDFfcyAvIChkb3VibGUpZGlzcGxh
eUZQUzsKKyAgICByZXR1cm4gYWxsb3dhYmxlRnJhbWVGcmFjdGlvbiAqIGZyYW1lRHVyYXRpb247
Cit9CisKKy8vIFRoaXMgY29kZSBhbGxvd3MgdGhlIG1haW4gdGhyZWFkIGFib3V0IGhhbGYgYSBm
cmFtZSB0byBjb21wbGV0ZSBpdHMgcmVuZGVyaW5nIHVkcGF0ZS4gSWYgdGhlIG1haW4gdGhyZWFk
CisvLyBpcyByZXNwb25zaXZlIChpLmUuIG1hbmFnaW5nIHRvIHJlbmRlciBldmVyeSBmcmFtZSks
IHRoZW4gd2UgZXhwZWN0IHRvIGdldCBhIGRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkKKy8v
IHdpdGhpbiA4bXMgb2Ygd2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCkuIFdlIHRpbWUgdGhpcyB2
aWEgbV9zdGF0ZUNvbmRpdGlvbiwgd2hpY2ggYmxvY2tzIHRoZSBzY3JvbGxpbmcKKy8vIHRocmVh
ZCAod2l0aCBtX3RyZWVNdXRleCBsb2NrZWQgYXQgdGhlIHN0YXJ0IGFuZCBlbmQpIHNvIHRoYXQg
d2UgZG9uJ3QgaGFuZGxlIHdoZWVsIGV2ZW50cyB3aGlsZSB3YWl0aW5nLgorLy8gSWYgdGhlIGNv
bmRpdGlvbiB0aW1lcyBvdXQsIHdlIGtub3cgdGhlIG1haW4gdGhyZWFkIGlzIGJlaW5nIHNsb3cs
IGFuZCBhbGxvdyB0aGUgc2Nyb2xsaW5nIHRocmVhZCB0bworLy8gY29tbWl0IGxheWVyIHBvc2l0
aW9ucy4KK3ZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3YWl0Rm9yUmVuZGVyaW5nVXBkYXRl
Q29tcGxldGlvbk9yVGltZW91dCgpCit7CisgICAgQVNTRVJUKFNjcm9sbGluZ1RocmVhZDo6aXND
dXJyZW50VGhyZWFkKCkpOworICAgIEFTU0VSVChtX3RyZWVNdXRleC5pc0xvY2tlZCgpKTsKKwor
ICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgYXV0byB0aW1l
b3V0VGltZSA9IHN0YXJ0VGltZSArIG1heEFsbG93YWJsZVJlbmRlcmluZ1VwZGF0ZUR1cmF0aW9u
Rm9yU3luY2hyb25pemF0aW9uKCk7CisKKyAgICBib29sIGJlY2FtZUlkbGUgPSBtX3N0YXRlQ29u
ZGl0aW9uLndhaXRVbnRpbChtX3RyZWVNdXRleCwgdGltZW91dFRpbWUsIFsmXSB7CisgICAgICAg
IHJldHVybiBtX3N0YXRlID09IFN5bmNocm9uaXphdGlvblN0YXRlOjpJZGxlOworICAgIH0pOwor
CisgICAgQVNTRVJUKG1fdHJlZU11dGV4LmlzTG9ja2VkKCkpOworCisgICAgaWYgKCFiZWNhbWVJ
ZGxlKSB7CisgICAgICAgIG1fc3RhdGUgPSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6RGVzeW5jaHJv
bml6ZWQ7CisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGUgbWFpbiB0aHJlYWQg
aXMgdGFraW5nIHRvbyBsb25nIGluIHRoZSByZW5kZXJpbmcgdXBkYXRlLAorICAgICAgICAvLyBz
byB3ZSBnaXZlIHVwIHRyeWluZyB0byBzeW5jIHdpdGggdGhlIG1haW4gdGhyZWFkIGFuZCB1cGRh
dGUgbGF5ZXJzIGhlcmUgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQuCisgICAgICAgIGFwcGx5TGF5
ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOworICAgICAgICB0cmFjZVBvaW50KFNjcm9sbGluZ1RocmVh
ZFJlbmRlclVwZGF0ZVN5bmNFbmQsIDEpOworICAgIH0gZWxzZQorICAgICAgICB0cmFjZVBvaW50
KFNjcm9sbGluZ1RocmVhZFJlbmRlclVwZGF0ZVN5bmNFbmQpOworfQorCit2b2lkIFRocmVhZGVk
U2Nyb2xsaW5nVHJlZTo6ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUoKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgTG9ja0hvbGRlciB0cmVlTG9ja2VyKG1fdHJlZU11dGV4
KTsKKworICAgIGlmIChtX3N0YXRlID09IFN5bmNocm9uaXphdGlvblN0YXRlOjpJblJlbmRlcmlu
Z1VwZGF0ZSkKKyAgICAgICAgbV9zdGF0ZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKKworICAgIG1f
c3RhdGUgPSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6SWRsZTsKK30KKwordm9pZCBUaHJlYWRlZFNj
cm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRSZWZyZXNoT25TY3JvbGxpbmdUaHJlYWQoKQoreworICAg
IFRyYWNlU2NvcGUgdHJhY2luZ1Njb3BlKFNjcm9sbGluZ1RocmVhZERpc3BsYXlEaWRSZWZyZXNo
U3RhcnQsIFNjcm9sbGluZ1RocmVhZERpc3BsYXlEaWRSZWZyZXNoRW5kKTsKKyAgICBBU1NFUlQo
U2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7CisKKyAgICBMb2NrSG9sZGVyIHRy
ZWVMb2NrZXIobV90cmVlTXV0ZXgpOworCisgICAgaWYgKG1fc3RhdGUgIT0gU3luY2hyb25pemF0
aW9uU3RhdGU6OklkbGUpCisgICAgICAgIGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwor
CisgICAgc3dpdGNoIChtX3N0YXRlKSB7CisgICAgY2FzZSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6
SWRsZTogeworICAgICAgICBtX3N0YXRlID0gU3luY2hyb25pemF0aW9uU3RhdGU6OldhaXRpbmdG
b3JSZW5kZXJpbmdVcGRhdGU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFN5bmNo
cm9uaXphdGlvblN0YXRlOjpXYWl0aW5nRm9yUmVuZGVyaW5nVXBkYXRlOgorICAgIGNhc2UgU3lu
Y2hyb25pemF0aW9uU3RhdGU6OkluUmVuZGVyaW5nVXBkYXRlOgorICAgIGNhc2UgU3luY2hyb25p
emF0aW9uU3RhdGU6OkRlc3luY2hyb25pemVkOgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisK
IHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaChQbGF0Zm9ybURp
c3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAgICAgaWYgKGRpc3BsYXlJRCAhPSB0aGlzLT5kaXNwbGF5
SUQoKSkKQEAgLTIxNiwxMSArMzA2LDYgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRp
c3BsYXlEaWRSZWZyZXNoKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICNlbmRpZgogfQog
Ci12b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlzcGxheURpZFJlZnJlc2hPblNjcm9sbGlu
Z1RocmVhZCgpCi17Ci0gICAgQVNTRVJUKFNjcm9sbGluZ1RocmVhZDo6aXNDdXJyZW50VGhyZWFk
KCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKSAmJiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXgg
OTQ4YmM3ZGI5NWEzMmFlZTYzYTYwOGQ3N2Y1OTllYTFjOTJiMThhMC4uMjYzZGI4NDgyM2M2NzEx
Y2Q0YjFlYTkwYTYxYWIxZjdjYzg0ZTJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTU3LDYgKzU3LDExIEBA
IHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2goUGxh
dGZvcm1EaXNwbGF5SUQpOwogCisgICAgdm9pZCB3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKTsK
KyAgICB2b2lkIGRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCk7CisKKyAgICBMb2NrJiB0cmVl
TXV0ZXgoKSB7IHJldHVybiBtX3RyZWVNdXRleDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGlj
aXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKIApA
QCAtNzksOCArODQsMjEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByb3BhZ2F0ZVN5bmNocm9ub3Vz
U2Nyb2xsaW5nUmVhc29ucyhjb25zdCBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4mKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgZGlzcGxheURpZFJlZnJlc2hPblNjcm9sbGluZ1RocmVhZCgpOworICAg
IHZvaWQgd2FpdEZvclJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRpb25PclRpbWVvdXQoKTsKKyAgICAK
KyAgICBTZWNvbmRzIG1heEFsbG93YWJsZVJlbmRlcmluZ1VwZGF0ZUR1cmF0aW9uRm9yU3luY2hy
b25pemF0aW9uKCk7CiAKICAgICBSZWZQdHI8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9z
Y3JvbGxpbmdDb29yZGluYXRvcjsKKworICAgIGVudW0gY2xhc3MgU3luY2hyb25pemF0aW9uU3Rh
dGUgOiB1aW50OF90IHsKKyAgICAgICAgSWRsZSwKKyAgICAgICAgV2FpdGluZ0ZvclJlbmRlcmlu
Z1VwZGF0ZSwKKyAgICAgICAgSW5SZW5kZXJpbmdVcGRhdGUsCisgICAgICAgIERlc3luY2hyb25p
emVkLAorICAgIH07CisKKyAgICBTeW5jaHJvbml6YXRpb25TdGF0ZSBtX3N0YXRlIHsgU3luY2hy
b25pemF0aW9uU3RhdGU6OklkbGUgfTsKKyAgICBDb25kaXRpb24gbV9zdGF0ZUNvbmRpdGlvbjsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXgg
OTNlYTA4MmYwOGVhNDM1YjcyNDBhNzY4NjM5ZjA1MDYwMjlhNjUyNS4uZjIxNTZhZjdhNTQ3OWFj
ODNlOGYxMDQ1ODI1ZWU3ODk0MWY1ODZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKQEAgLTQ2
LDYgKzQ2LDkgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlVHJlZVN0YXRl
Q29tbWl0KCkgZmluYWw7CiAKKyAgICB2b2lkIHdpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpIGZp
bmFsOworICAgIHZvaWQgZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsKKwogICAg
IHZvaWQgdXBkYXRlVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3IoKTsKIAogICAgIHZvaWQgc3RhcnRN
b25pdG9yaW5nV2hlZWxFdmVudHMoYm9vbCBjbGVhckxhdGNoaW5nU3RhdGUpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4IGZjMjQ5MWZiODJjNmZiZjVkMmNhNTBlYzg3MWNjZTJj
ZTY1MDM1OTcuLmJiMGYyZDk5OTI4NmU2Zjg3NTg5MTdmZmRkZDk2YWUzMzRmZjA3ZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMubW0KQEAgLTExMCw2ICsxMTAsMTggQEAgdm9pZCBTY3JvbGxpbmdD
b29yZGluYXRvck1hYzo6Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKQogICAgIHVwZGF0ZVRpbGVk
U2Nyb2xsaW5nSW5kaWNhdG9yKCk7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6
OndpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpCit7CisgICAgUmVmUHRyPFRocmVhZGVkU2Nyb2xs
aW5nVHJlZT4gdGhyZWFkZWRTY3JvbGxpbmdUcmVlID0gZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxp
bmdUcmVlPihzY3JvbGxpbmdUcmVlKCkpOworICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2ls
bFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCk7CisgICAgc3luY2hyb25pemVTdGF0ZUZyb21TY3JvbGxp
bmdUcmVlKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmRpZENvbXBsZXRl
UmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+
KHNjcm9sbGluZ1RyZWUoKSktPmRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCk7Cit9CisKIHZv
aWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnVwZGF0ZVRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9y
KCkKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fcGFnZS0+bWFpbkZyYW1lKCkudmll
dygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGMzNDRmNWI4NmE2MTE4Y2M1MjAzMWUwMzU1YWFlMjRjYjU4YWE5MzUuLjNmY2IyY2NkYzUzNmEx
ZWZlMjhlMWQyYTdiYjdiMWI5ZjU4MGNiMTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNS0yMCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFNjcm9s
bGluZyBzeW5jaHJvbml6YXRpb24gcGFydCAxOiBIYXZlIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHdh
aXQgaGFsZiBhIGZyYW1lIGZvciB0aGUgbWFpbiB0aHJlYWQgdG8gY29tcGxldGUgdGhlIHJlbmRl
cmluZyB1cGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMjE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAg
U29tZSBuZXcgdHJhY2UgcG9pbnRzIGZvciBzY3JvbGxpbmcgdGhyZWFkIGFjdGl2aXR5LgorCisg
ICAgICAgICogVHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdDoKKwogMjAyMC0wNS0yMCAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBM
YXlvdXQgdGVzdHMgaW4gZWRpdGluZy9wYXN0ZWJvYXJkIHNwb3JhZGljYWxseSBjcmFzaApkaWZm
IC0tZ2l0IGEvVG9vbHMvVHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdCBiL1Rvb2xzL1Ry
YWNpbmcvU3lzdGVtVHJhY2VQb2ludHMucGxpc3QKaW5kZXggZWU0YzAxZTdiZjhkYmJjNjAxODA4
ZmM1MDQyNmU4NWE4ODM1YmRmNi4uNmFmY2I1YTY2NDFjOGIwZmZhY2MxMmE5YjNhMmFkZmU0ZGNi
NzhlYSAxMDA2NDQKLS0tIGEvVG9vbHMvVHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdAor
KysgYi9Ub29scy9UcmFjaW5nL1N5c3RlbVRyYWNlUG9pbnRzLnBsaXN0CkBAIC0zMzcsNiArMzM3
LDMwIEBACiAgICAgICAgICAgICAgICAgIDxrZXk+Q29kZUVuZDwva2V5PgogICAgICAgICAgICAg
ICAgICA8c3RyaW5nPjUwMzk8L3N0cmluZz4KICAgICAgICAgICAgICA8L2RpY3Q+CisgICAgICAg
ICAgICAgPGRpY3Q+CisgICAgICAgICAgICAgICAgIDxrZXk+TmFtZTwva2V5PgorICAgICAgICAg
ICAgICAgICA8c3RyaW5nPlNjcm9sbGluZyBTeW5jPC9zdHJpbmc+CisgICAgICAgICAgICAgICAg
IDxrZXk+VHlwZTwva2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPkludGVydmFsPC9zdHJp
bmc+CisgICAgICAgICAgICAgICAgIDxrZXk+Q29tcG9uZW50PC9rZXk+CisgICAgICAgICAgICAg
ICAgIDxzdHJpbmc+NDc8L3N0cmluZz4KKyAgICAgICAgICAgICAgICAgPGtleT5Db2RlQmVnaW48
L2tleT4KKyAgICAgICAgICAgICAgICAgPHN0cmluZz41MDQwPC9zdHJpbmc+CisgICAgICAgICAg
ICAgICAgIDxrZXk+Q29kZUVuZDwva2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPjUwNDE8
L3N0cmluZz4KKyAgICAgICAgICAgICA8L2RpY3Q+CisgICAgICAgICAgICAgPGRpY3Q+CisgICAg
ICAgICAgICAgICAgIDxrZXk+TmFtZTwva2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPlNj
cm9sbGluZyBUaHJlYWQgRGlzcGxheURpZFJlZnJlc2g8L3N0cmluZz4KKyAgICAgICAgICAgICAg
ICAgPGtleT5UeXBlPC9rZXk+CisgICAgICAgICAgICAgICAgIDxzdHJpbmc+SW50ZXJ2YWw8L3N0
cmluZz4KKyAgICAgICAgICAgICAgICAgPGtleT5Db21wb25lbnQ8L2tleT4KKyAgICAgICAgICAg
ICAgICAgPHN0cmluZz40Nzwvc3RyaW5nPgorICAgICAgICAgICAgICAgICA8a2V5PkNvZGVCZWdp
bjwva2V5PgorICAgICAgICAgICAgICAgICA8c3RyaW5nPjUwNDI8L3N0cmluZz4KKyAgICAgICAg
ICAgICAgICAgPGtleT5Db2RlRW5kPC9rZXk+CisgICAgICAgICAgICAgICAgIDxzdHJpbmc+NTA0
Mzwvc3RyaW5nPgorICAgICAgICAgICAgIDwvZGljdD4KICAgICAgICAgICAgICA8ZGljdD4KICAg
ICAgICAgICAgICAgICAgPGtleT5OYW1lPC9rZXk+CiAgICAgICAgICAgICAgICAgIDxzdHJpbmc+
UGFpbnQgV2ViSFRNTFZpZXc8L3N0cmluZz4K
</data>

          </attachment>
      

    </bug>

</bugzilla>