<?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>210042</bug_id>
          
          <creation_ts>2020-04-05 21:36:05 -0700</creation_ts>
          <short_desc>Make ScrollableArea TextStream-loggable</short_desc>
          <delta_ts>2020-04-06 15:01:07 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638025</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-05 21:36:05 -0700</bug_when>
    <thetext>Make ScrollableArea TextStream-loggable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638026</commentid>
    <comment_count>1</comment_count>
      <attachid>395543</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-05 21:37:41 -0700</bug_when>
    <thetext>Created attachment 395543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638117</commentid>
    <comment_count>2</comment_count>
      <attachid>395572</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-06 09:34:04 -0700</bug_when>
    <thetext>Created attachment 395572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638133</commentid>
    <comment_count>3</comment_count>
      <attachid>395578</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-06 09:58:18 -0700</bug_when>
    <thetext>Created attachment 395578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638230</commentid>
    <comment_count>4</comment_count>
      <attachid>395600</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-06 12:22:21 -0700</bug_when>
    <thetext>Created attachment 395600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638232</commentid>
    <comment_count>5</comment_count>
      <attachid>395578</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-06 12:24:02 -0700</bug_when>
    <thetext>Comment on attachment 395578
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:1437
&gt; +    StringBuilder builder;
&gt; +    builder.append(&quot;FrameView 0x&quot;_s, hex(reinterpret_cast&lt;uintptr_t&gt;(this), Lowercase));
&gt; +    builder.append(&apos; &apos;);
&gt; +    builder.append(frame().debugDescription());
&gt; +    return builder.toString();

Could use makeString here and a single line.

&gt; Source/WebCore/platform/ScrollView.cpp:1540
&gt; +    StringBuilder builder;
&gt; +    builder.append(&quot;ScrollView 0x&quot;_s, hex(reinterpret_cast&lt;uintptr_t&gt;(this), Lowercase));
&gt; +    return builder.toString();

Could use makeString here.

&gt; Source/WebCore/platform/win/PopupMenuWin.cpp:1091
&gt; +    StringBuilder builder;
&gt; +    builder.append(&quot;PopupMenuWin 0x&quot;_s, hex(reinterpret_cast&lt;uintptr_t&gt;(this), Lowercase));
&gt; +    return builder.toString();

makeString

&gt; Source/WebCore/rendering/RenderLayer.cpp:3633
&gt; +    builder.append(&quot;RenderLayer 0x&quot;_s, hex(reinterpret_cast&lt;uintptr_t&gt;(this), Lowercase));
&gt; +    builder.append(size().width(), &apos;x&apos;, size().height());

This can be one line.

&gt; Source/WebCore/rendering/RenderListBox.cpp:916
&gt; +String RenderListBox::debugDescription() const
&gt; +{
&gt; +    return RenderObject::debugDescription();
&gt; +}

What is this for?

&gt; Source/WebKit/UIProcess/win/WebPopupMenuProxyWin.cpp:1043
&gt; +    StringBuilder builder;
&gt; +    builder.append(&quot;WebPopupMenuProxyWin 0x&quot;_s, hex(reinterpret_cast&lt;uintptr_t&gt;(this), Lowercase));
&gt; +    return builder.toString();

makeString

&gt; Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:1291
&gt; +    StringBuilder builder;
&gt; +    builder.append(&quot;PDFPlugin 0x&quot;_s, hex(reinterpret_cast&lt;uintptr_t&gt;(this), Lowercase));
&gt; +    return builder.toString();

makeString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638233</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-06 12:24:15 -0700</bug_when>
    <thetext>Oops, reviewed the wrong one!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638235</commentid>
    <comment_count>7</comment_count>
      <attachid>395600</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-06 12:25:08 -0700</bug_when>
    <thetext>Comment on attachment 395600
Patch

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

&gt; Source/WebCore/rendering/RenderListBox.cpp:916
&gt; +String RenderListBox::debugDescription() const
&gt; +{
&gt; +    return RenderObject::debugDescription();
&gt; +}

What is this about? Why not just omit this override entirely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638239</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-06 12:28:15 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 395600 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395600&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderListBox.cpp:916
&gt; &gt; +String RenderListBox::debugDescription() const
&gt; &gt; +{
&gt; &gt; +    return RenderObject::debugDescription();
&gt; &gt; +}
&gt; 
&gt; What is this about? Why not just omit this override entirely?

debugDescription() is in two base classes (RenderObject and ScrollableArea) and we need this to override the pure virtual one from ScrollableArea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638335</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-06 14:59:42 -0700</bug_when>
    <thetext>Committed r259597: &lt;https://trac.webkit.org/changeset/259597&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395600.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638336</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-06 15:01:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/61360874&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395543</attachid>
            <date>2020-04-05 21:37:41 -0700</date>
            <delta_ts>2020-04-06 09:34:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210042-20200405213740.patch</filename>
            <type>text/plain</type>
            <size>17129</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmRjNjRlNjg2NTE3OTM0
ODIyNjkxMTljNzIzYWQ3NmYwOGM1NTFmNS4uM2YyZTE0YzA0N2NjZWE0YzkyZTljMWI5ZWUwNjQy
NjJmYWI1ZDg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA0LTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
YWJsZUFyZWEgVGV4dFN0cmVhbS1sb2dnYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWEgaXMgYSBwdXJlIHZpcnR1YWwgYmFz
ZSBjbGFzcywgc28gaGFzIHRvIGR1bXAgdmlhIGEgdmlydHVhbCBmdW5jdGlvbiwKKyAgICAgICAg
c28gYWRkIGRlYnVnRGVzY3JpcHRpb24oKSBhbmQgaW1wbGVtZW50IGl0IGluIGRlcml2ZWQgY2xh
c3Nlcy4KKworICAgICAgICBNYWtlIHRoZSBjb21tb24gcGF0dGVybiBiZSB0aGF0IG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYsIC4uLikgY2FsbHMgZGVidWdEZXNjcmlwdGlvbi4KKworICAgICAgICAq
IHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRlYnVnRGVzY3JpcHRp
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGFn
ZS9GcmFtZS5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZGVi
dWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpkZWJ1Z0Rlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21w
b3NpdGluZ0xheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKwogMjAyMC0wNC0wNSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRyZXNzIHJl
dmlldyBjb21tZW50cyBhZnRlciByMjU5NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlNWFhZDk0YTU4N2FiNmY0
ZjZjYjRjOWEwMjViYThkMDdiNTgyYmQuLjFlMzlhZjU5Y2JkMzAxZGI1OTkyNTczZTNjMzdkNzA1
OGEyNzEzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDQtMDUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBTY3JvbGxhYmxl
QXJlYSBUZXh0U3RyZWFtLWxvZ2dhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTAwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTY3JvbGxhYmxlQXJlYSBpcyBhIHB1cmUgdmlydHVhbCBiYXNlIGNs
YXNzLCBzbyBoYXMgdG8gZHVtcCB2aWEgYSB2aXJ0dWFsIGZ1bmN0aW9uLAorICAgICAgICBzbyBh
ZGQgZGVidWdEZXNjcmlwdGlvbigpIGFuZCBpbXBsZW1lbnQgaXQgaW4gZGVyaXZlZCBjbGFzc2Vz
LgorCisgICAgICAgIE1ha2UgdGhlIGNvbW1vbiBwYXR0ZXJuIGJlIHRoYXQgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiwgLi4uKSBjYWxscyBkZWJ1Z0Rlc2NyaXB0aW9uLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpkZWJ1
Z0Rlc2NyaXB0aW9uIGNvbnN0KToKKwogMjAyMC0wNC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYWRkaW5nIG1pc3NpbmcgaGVh
ZGVyIGluY2x1c2lvbnMgdG8gZ2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDA1MWZkYjNlZTVj
NWMzM2U2OGIxYjZkMGQwMGMxZDA5MDNiNzlkNTYuLmU2MjcxZDdlODYwMjNiY2UwMzE5Mzc1Mjgw
NWYyMWVlOTZkMjM1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xMDMsNiArMTAzLDcgQEAK
ICNpbmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlZ3VsYXJFeHByZXNzaW9uLmg+CisjaW5jbHVkZSA8
d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgpAQCAtMTA1OCw5ICsxMDU5LDIzIEBAIHZvaWQgRnJhbWU6OnNlbGZPbmx5RGVy
ZWYoKQogICAgIGRlcmVmKCk7CiB9CiAKK1N0cmluZyBGcmFtZTo6ZGVidWdEZXNjcmlwdGlvbigp
IGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworCisgICAgYnVpbGRlci5hcHBl
bmQoIkZyYW1lIDB4Il9zLCBoZXgocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpLCBM
b3dlcmNhc2UpKTsKKyAgICBpZiAoaXNNYWluRnJhbWUoKSkKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoIiAobWFpbiBmcmFtZSkiX3MpOworCisgICAgaWYgKGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpKQorICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcsIGRvY3VtZW50LT5kb2N1bWVu
dFVSSSgpKTsKKyAgICAKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCiBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGcmFtZSYgZnJhbWUpCiB7
Ci0gICAgdHMgPDwgIkZyYW1lICIgPDwgJmZyYW1lIDw8ICIgdmlldyAiIDw8IGZyYW1lLnZpZXco
KSA8PCAiIChpcyBtYWluIGZyYW1lICIgPDwgZnJhbWUuaXNNYWluRnJhbWUoKSA8PCAiKSAiIDw8
IChmcmFtZS5kb2N1bWVudCgpID8gZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdW1lbnRVUkkoKSA6IGVt
cHR5U3RyaW5nKCkpOworICAgIHRzIDw8IGZyYW1lLmRlYnVnRGVzY3JpcHRpb24oKTsKICAgICBy
ZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCAyNTIwZTAzN2E1NDkzMGZhMWUxYmY3
MGUxY2MyYWExODM2YjU3Yjg4Li5lYjk3YTYxZmM4OGEwYzA3Njg3YWI1ZDJiMTNhNDUxNzBjYmIz
YjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xOTAsNiArMTkwLDggQEAgcHVibGljOgogCiAgICAg
Ym9vbCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoKTsKIAorICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0
aW9uKCkgY29uc3Q7CisKIC8vID09PT09PT09IEFsbCBwdWJsaWMgZnVuY3Rpb25zIGJlbG93IHRo
aXMgcG9pbnQgYXJlIGNhbmRpZGF0ZXMgdG8gbW92ZSBvdXQgb2YgRnJhbWUgaW50byBhbm90aGVy
IGNsYXNzLiA9PT09PT09PQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbmplY3RVc2VyU2Ny
aXB0cyhVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggYzY4ZjVkMzhjNmU1MWUwNDg4ODcwOTRjNTdlYmZmMDdhYWYwMWNlYi4uZDY2MjUzYzk5
ZWIxZjE4YTUwY2I0ZWY2ZWI0N2FlMjExMzU5YzM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcApAQCAtMTAzLDEzICsxMDMsMTMgQEAKICNpbmNsdWRlICJWZWxvY2l0eURhdGEuaCIKICNp
bmNsdWRlICJWaXN1YWxWaWV3cG9ydC5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRv
ci5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLQorI2luY2x1ZGUgPHd0Zi9I
ZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5j
bHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKICNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKQEAgLTE0MjgsNiArMTQy
OCwxNSBAQCB2b2lkIEZyYW1lVmlldzo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBidWlsZGVyLnRvU3Ry
aW5nKCkpOwogfQogCitTdHJpbmcgRnJhbWVWaWV3OjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QK
K3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIkZyYW1l
VmlldyAweCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgTG93ZXJj
YXNlKSk7CisgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICBidWlsZGVyLmFwcGVuZChmcmFt
ZSgpLmRlYnVnRGVzY3JpcHRpb24oKSk7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
K30KKwogYm9vbCBGcmFtZVZpZXc6OnN0eWxlSGlkZXNTY3JvbGxiYXJXaXRoT3JpZW50YXRpb24o
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0CiB7CiAgICAgYXV0byBlbGVt
ZW50ID0gcm9vdEVsZW1lbnRGb3JDdXN0b21TY3JvbGxiYXJQYXJ0U3R5bGUoUHNldWRvSWQ6OlNj
cm9sbGJhcik7CkBAIC01NDYwLDcgKzU0NjksNyBAQCBib29sIEZyYW1lVmlldzo6c2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiAKIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZyYW1lVmlldyYgdmlldykKIHsKLSAgICB0
cyA8PCAiRnJhbWVWaWV3ICIgPDwgJnZpZXcgPDwgIiBmcmFtZSAiIDw8IHZpZXcuZnJhbWUoKTsK
KyAgICB0cyA8PCB2aWV3LmRlYnVnRGVzY3JpcHRpb24oKTsKICAgICByZXR1cm4gdHM7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGJiOTU3ODVjYzgxMjdhMzdmZjYxNTA2ZmY2ODE2
MmY0ODE1N2RkZjQuLjBhZWNkZThhYmMyNTYwOTg1ZmQxMjE5NWY2ZDAyODI5MmEzMmI0YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjY0LDYgKzY2NCw4IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaW5VcGRhdGVFbWJlZGRlZE9iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX2luVXBkYXRl
RW1iZWRkZWRPYmplY3RzOyB9CiAKKyAgICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0
IGZpbmFsOworCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNv
bnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNv
bnN0IEludFJlY3QmIGNsaXBSZWN0KSBmaW5hbDsKICAgICB2b2lkIHNjcm9sbENvbnRlbnRzU2xv
d1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDJmZDE1ZjdiMzAxN2IxYzdlZTdhMjFjODYxODY1NGI5
NTExMDkyMjcuLjNmYjZiMWJhNmUzMTRlYjU2OTgyZjFhYzczMzZlMmI5MzFiYjk3M2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRl
ICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgog
CkBAIC0xNTMyLDYgKzE1MzMsMTMgQEAgSW50UG9pbnQgU2Nyb2xsVmlldzo6bG9jYXRpb25PZkNv
bnRlbnRzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitTdHJpbmcgU2Nyb2xsVmll
dzo6ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIuYXBwZW5kKCJTY3JvbGxWaWV3IDB4Il9zLCBoZXgocmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KHRoaXMpLCBMb3dlcmNhc2UpKTsKKyAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCiB2b2lkIFNjcm9sbFZpZXc6
OnBsYXRmb3JtQWRkQ2hpbGQoV2lkZ2V0KikKQEAgLTE1NDIsMTAgKzE1NTAsNiBAQCB2b2lkIFNj
cm9sbFZpZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0KikKIHsKIH0KIAotI2VuZGlmCi0K
LSNpZiAhUExBVEZPUk0oQ09DT0EpCi0KIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3Jv
bGxiYXJzU3VwcHJlc3NlZChib29sKQogewogfQpAQCAtMTU1OCwxMCArMTU2Miw2IEBAIHZvaWQg
U2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Nyb2xsYmFyT3Zl
cmxheVN0eWxlKQogewogfQogCi0jZW5kaWYKLQotI2lmICFQTEFURk9STShDT0NPQSkKLQogdm9p
ZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbGJhck1vZGVzKCkKIHsKIH0KQEAgLTE2NTIs
NiArMTY1Miw2IEBAIGJvb2wgU2Nyb2xsVmlldzo6cGxhdGZvcm1Jc09mZnNjcmVlbigpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09D
T0EpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBiNjRhYTNiYTA2
NmM5Y2RhZDkwYTFmY2JhMWExNTRiMjAzMGJiNTFlLi4xNGFkMzg0ZGJmMTc1OWNhNWQ2NjM3NjNm
OTg3Y2VmZmVmMGE5YWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC00
NDksNiArNDQ5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHNldEhhc1Njcm9sbGJhckludGVybmFs
KFJlZlB0cjxTY3JvbGxiYXI+JiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIGJvb2wgaGFzQmFyLCBi
b29sKiBjb250ZW50U2l6ZUFmZmVjdGVkKTsKIAogICAgIGJvb2wgaXNTY3JvbGxWaWV3KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGluaXQoKTsKICAgICB2b2lkIGRlc3Ryb3koKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA1YmRhODU3
YmI5MWIxNjIyMzAyNWMwZTY4ZDgwMTgxZjhhZGZlMGViLi5jZGFkMzYwMWQzOWE1MzdjZmFjNjBl
ZTc1NWUxODMyYjFhYWRjNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuY3BwCkBAIC03NjksNCArNzY5LDEwIEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OmNvbXB1
dGVTY3JvbGxiYXJWYWx1ZUFuZE92ZXJoYW5nKGZsb2F0IGN1cnJlbnRQb3NpdGlvbiwgZmxvCiAg
ICAgfQogfQogCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBT
Y3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCit7CisgICAgdHMgPDwgc2Nyb2xsYWJsZUFy
ZWEuZGVidWdEZXNjcmlwdGlvbigpOworICAgIHJldHVybiB0czsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXgg
ZDIwM2FlYmU1YzViNzI2NjgwODhjODFhOTJmYWZkNjU3OTk0ZjU5NC4uNDVmYWMwMjliZDM2YmU4
Yjg3YjkzMzM1NzkzZDM4MjY1OTA1YzE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUZXh0
U3RyZWFtOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UG9pbnQ7CkBA
IC0zNDUsNiArMzQ5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2dNb2NrU2Nyb2xs
QW5pbWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgfTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgPSAw
OworICAgIAorICAgIHZpcnR1YWwgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCA9IDA7
CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxhYmxlQXJlYSgpOwpAQCAt
NDE0LDQgKzQyMCw2IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMgOiAxOwogfTsKIAorV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIGNvbnN0IFNjcm9sbGFibGVBcmVhJik7CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDgyMWM0
YWUyMTc3N2JjMzY1OWEwZDhhZDA4ZDkyNzMxODg2MDcxOGEuLjc3OTBhOWU2Y2E3MzhhYjg4YmZj
MzBmMDA2MzBiN2FiNzA4ODNhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3Jt
T3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9yLmgiCiAjaW5jbHVk
ZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL01v
bm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMzYyNSw2ICszNjI2LDM2IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OmxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBj
b25zdAogICAgIHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdl
U291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgIlJlbmRlckxheWVyOiAiICsgbWVz
c2FnZSk7CiB9CiAKK1N0cmluZyBSZW5kZXJMYXllcjo6ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0
Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCJSZW5k
ZXJMYXllciAweCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgTG93
ZXJjYXNlKSk7CisgICAgYnVpbGRlci5hcHBlbmQoc2l6ZSgpLndpZHRoKCksICd4Jywgc2l6ZSgp
LmhlaWdodCgpKTsKKworICAgIGlmICh0cmFuc2Zvcm0oKSkKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoIiBoYXMgdHJhbnNmb3JtIl9zKTsKKworICAgIGlmIChoYXNGaWx0ZXIoKSkKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoIiBoYXMgZmlsdGVyIl9zKTsKKworICAgIGlmIChoYXNCYWNrZHJvcEZp
bHRlcigpKQorICAgICAgICBidWlsZGVyLmFwcGVuZCgiIGhhcyBiYWNrZHJvcCBmaWx0ZXIiX3Mp
OworCisgICAgaWYgKGhhc0JsZW5kTW9kZSgpKQorICAgICAgICBidWlsZGVyLmFwcGVuZCgiIGhh
cyBibGVuZCBtb2RlIl9zKTsKKworICAgIGlmIChpc29sYXRlc0JsZW5kaW5nKCkpCisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCIgaXNvbGF0ZXMgYmxlbmRpbmciX3MpOworCisgICAgaWYgKGlzQ29t
cG9zaXRlZCgpKSB7CisgICAgICAgIFRleHRTdHJlYW0gc3RyZWFtOworICAgICAgICBzdHJlYW0g
PDwgKmJhY2tpbmcoKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyZWFtLnJlbGVhc2UoKSk7
CisgICAgfQorCisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwogaW50IFJlbmRl
ckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZh
bmN5IHJlbGV2YW5jeSkgY29uc3QKIHsKICAgICBpZiAoIW1fdkJhcgpAQCAtNzAxMSwxOSArNzA0
Miw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0cywgQ2xpcFJl
Y3RzVHlwZSBjbGlwUmVjdHNUeXBlKQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpCiB7Ci0gICAgdHMgPDwgIlJlbmRlckxh
eWVyICIgPDwgJmxheWVyIDw8ICIgIiA8PCBsYXllci5zaXplKCk7Ci0gICAgaWYgKGxheWVyLnRy
YW5zZm9ybSgpKQotICAgICAgICB0cyA8PCAiIGhhcyB0cmFuc2Zvcm0iOwotICAgIGlmIChsYXll
ci5oYXNGaWx0ZXIoKSkKLSAgICAgICAgdHMgPDwgIiBoYXMgZmlsdGVyIjsKLSAgICBpZiAobGF5
ZXIuaGFzQmFja2Ryb3BGaWx0ZXIoKSkKLSAgICAgICAgdHMgPDwgIiBoYXMgYmFja2Ryb3AgZmls
dGVyIjsKLSAgICBpZiAobGF5ZXIuaGFzQmxlbmRNb2RlKCkpCi0gICAgICAgIHRzIDw8ICIgaGFz
IGJsZW5kIG1vZGUiOwotICAgIGlmIChsYXllci5pc29sYXRlc0JsZW5kaW5nKCkpCi0gICAgICAg
IHRzIDw8ICIgaXNvbGF0ZXMgYmxlbmRpbmciOwotICAgIGlmIChsYXllci5pc0NvbXBvc2l0ZWQo
KSkKLSAgICAgICAgdHMgPDwgIiAiIDw8ICpsYXllci5iYWNraW5nKCk7CisgICAgdHMgPDwgbGF5
ZXIuZGVidWdEZXNjcmlwdGlvbigpOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBkMTEzOTNlMDdkZWJhYWNiODViYTMxMjQ5MmZj
YjA0ZGNkZTU3ZmMxLi5kMTY1OWIwZTMyMDdkNmEyZTI2NjJlODM0NzdkY2I0ZjRmZGY4MDRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtOTI2LDYgKzkyNiw4IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgaW52YWxpZGF0ZUV2ZW50UmVnaW9uKCk7CiAKKyAgICBTdHJp
bmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOworCiBwcml2YXRlOgogCiAgICAgdm9p
ZCBzZXROZXh0U2libGluZyhSZW5kZXJMYXllciogbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
CmluZGV4IDNhMDM4Y2U4YTNhMmU4NzgwMTEzYjRkZTBjMTY3ZTQxMGQxN2EyNzMuLmY1NGQ4NTAy
NWEwZWNmNzk2ZmU0NzAwZGQyNDkxNDg1YjBiNzlhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC03MTAsNyArNzEwLDcg
QEAgc3RhdGljIE9wdGlvbmFsPFNjcm9sbGluZ05vZGVJRD4gZnJhbWVIb3N0aW5nTm9kZUZvckZy
YW1lKEZyYW1lJiBmcmFtZSkKIC8vIFJldHVybnMgdHJ1ZSBvbiBhIHN1Y2Nlc3NmdWwgdXBkYXRl
LgogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENv
bXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGVUeXBlLCBSZW5kZXJMYXllciogdXBkYXRlUm9vdCkK
IHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVhbSA8PCAiUmVuZGVyTGF5
ZXJDb21wb3NpdG9yICIgPDwgdGhpcyA8PCAiIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzICIgPDwg
dXBkYXRlVHlwZSA8PCAiIGNvbnRlbnRMYXllcnNDb3VudCAiIDw8IG1fY29udGVudExheWVyc0Nv
dW50KTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVhbSA8PCAiUmVuZGVy
TGF5ZXJDb21wb3NpdG9yICIgPDwgdGhpcyA8PCAiIFsiIDw8IG1fcmVuZGVyVmlldy5mcmFtZVZp
ZXcoKSA8PCAiXSB1cGRhdGVDb21wb3NpdGluZ0xheWVycyAiIDw8IHVwZGF0ZVR5cGUgPDwgIiBj
b250ZW50TGF5ZXJzQ291bnQgIiA8PCBtX2NvbnRlbnRMYXllcnNDb3VudCk7CiAKICAgICBUcmFj
ZVNjb3BlIHRyYWNpbmdTY29wZShDb21wb3NpdGluZ1VwZGF0ZVN0YXJ0LCBDb21wb3NpdGluZ1Vw
ZGF0ZUVuZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApp
bmRleCA3NzhkZjM4MjNjMGVmMDIwZjhkMzIyZjI1ZDNjYWE2ZWQ5OGRjMjg1Li5iNTc0NzdkMmRj
YWIxNGVhMzI0M2NiZDY4ZGQxMzFkYTNjMjdiNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC05MTAsNiArOTEwLDExIEBAIHZvaWQgUmVuZGVyTGlz
dEJveDo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IGNvbnN0CiAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpP
dGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgIlJlbmRlckxpc3RCb3g6ICIgKyBtZXNzYWdlKTsK
IH0KIAorU3RyaW5nIFJlbmRlckxpc3RCb3g6OmRlYnVnRGVzY3JpcHRpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmRlYnVnRGVzY3JpcHRpb24oKTsKK30KKwogUmVmPFNj
cm9sbGJhcj4gUmVuZGVyTGlzdEJveDo6Y3JlYXRlU2Nyb2xsYmFyKCkKIHsKICAgICBSZWZQdHI8
U2Nyb2xsYmFyPiB3aWRnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aAppbmRleCBmNDg1ODBhNGM3NWM1YmM4MDdlN2U5NzQ3ZjJkYjFkZTg3ZWZjYmM3Li44YzVhOGZh
ZjIwNTc1YmZhZTYzMmM0YWNiNThmMGM1Zjg0ZDQ3ZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTE0MSw2ICsxNDEsNyBAQCBwcml2YXRlOgogICAgIElu
dFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveChib29sKiA9IG51bGxwdHIpIGNvbnN0IGZp
bmFsOwogICAgIGJvb2wgdXNlc01vY2tTY3JvbGxBbmltYXRvcigpIGNvbnN0IGZpbmFsOwogICAg
IHZvaWQgbG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmKSBjb25zdCBm
aW5hbDsKKyAgICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAg
Ly8gTk9URTogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRkZW4gc2V0
U2Nyb2xsT2Zmc2V0IGZyb20gU2Nyb2xsYWJsZUFyZWEuCiAgICAgdm9pZCBzY3JvbGxUbyhpbnQg
bmV3T2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW4uaAppbmRleCA3YjhmMjU4NzFjOWM0NDllNDE2N2U2YThkYjQwYjVlZWM2Y2RkYzk5
Li5iNjg4M2I3MDU5MDI2YWI4NmNmZDYxNmY4NjcxNWRlZDE2YTQ0YWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCkBAIC0yNDYsNiAr
MjQ2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRh
aW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgV2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZvcmNl
VXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgU3RyaW5nIGRlYnVnRGVzY3Jp
cHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFBERlBsdWdpbiBmdW5jdGlvbnMuCiAgICAg
dm9pZCB1cGRhdGVTY3JvbGxiYXJzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCAyOTgwMjRmYjk5NWMxOGI3YWRlYzhkMmI0
ZWJjMGE4YzdlMzI5NzNkLi42YmVlZGZkZWUzNTAyZTg3ODE3OWFjMDUwODNjYzJlMTAwY2YxYzI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0KQEAgLTg5LDYgKzg5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RN
b25pdG9yLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+CisjaW1wb3J0IDx3dGYvSGV4TnVtYmVyLmg+CiAj
aW1wb3J0IDx3dGYvVVVJRC5oPgogI2ltcG9ydCA8d3RmL1dURlNlbWFwaG9yZS5oPgogI2ltcG9y
dCA8d3RmL1dvcmtRdWV1ZS5oPgpAQCAtMTI4Myw2ICsxMjg0LDEzIEBAIEludFBvaW50IFBERlBs
dWdpbjo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJh
ciYgc2Nyb2xsCiAgICAgcmV0dXJuIHBvaW50OwogfQogCitTdHJpbmcgUERGUGx1Z2luOjpkZWJ1
Z0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
YnVpbGRlci5hcHBlbmQoIlBERlBsdWdpbiAweCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90Pih0aGlzKSwgTG93ZXJjYXNlKSk7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKK30KKwogYm9vbCBQREZQbHVnaW46OmhhbmRsZVNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGly
ZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gc2Ny
b2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395572</attachid>
            <date>2020-04-06 09:34:04 -0700</date>
            <delta_ts>2020-04-06 09:58:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210042-20200406093404.patch</filename>
            <type>text/plain</type>
            <size>18612</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmRjNjRlNjg2NTE3OTM0
ODIyNjkxMTljNzIzYWQ3NmYwOGM1NTFmNS4uM2YyZTE0YzA0N2NjZWE0YzkyZTljMWI5ZWUwNjQy
NjJmYWI1ZDg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA0LTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
YWJsZUFyZWEgVGV4dFN0cmVhbS1sb2dnYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWEgaXMgYSBwdXJlIHZpcnR1YWwgYmFz
ZSBjbGFzcywgc28gaGFzIHRvIGR1bXAgdmlhIGEgdmlydHVhbCBmdW5jdGlvbiwKKyAgICAgICAg
c28gYWRkIGRlYnVnRGVzY3JpcHRpb24oKSBhbmQgaW1wbGVtZW50IGl0IGluIGRlcml2ZWQgY2xh
c3Nlcy4KKworICAgICAgICBNYWtlIHRoZSBjb21tb24gcGF0dGVybiBiZSB0aGF0IG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYsIC4uLikgY2FsbHMgZGVidWdEZXNjcmlwdGlvbi4KKworICAgICAgICAq
IHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRlYnVnRGVzY3JpcHRp
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGFn
ZS9GcmFtZS5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZGVi
dWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpkZWJ1Z0Rlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21w
b3NpdGluZ0xheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKwogMjAyMC0wNC0wNSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRyZXNzIHJl
dmlldyBjb21tZW50cyBhZnRlciByMjU5NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlNWFhZDk0YTU4N2FiNmY0
ZjZjYjRjOWEwMjViYThkMDdiNTgyYmQuLjFlMzlhZjU5Y2JkMzAxZGI1OTkyNTczZTNjMzdkNzA1
OGEyNzEzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDQtMDUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBTY3JvbGxhYmxl
QXJlYSBUZXh0U3RyZWFtLWxvZ2dhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTAwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTY3JvbGxhYmxlQXJlYSBpcyBhIHB1cmUgdmlydHVhbCBiYXNlIGNs
YXNzLCBzbyBoYXMgdG8gZHVtcCB2aWEgYSB2aXJ0dWFsIGZ1bmN0aW9uLAorICAgICAgICBzbyBh
ZGQgZGVidWdEZXNjcmlwdGlvbigpIGFuZCBpbXBsZW1lbnQgaXQgaW4gZGVyaXZlZCBjbGFzc2Vz
LgorCisgICAgICAgIE1ha2UgdGhlIGNvbW1vbiBwYXR0ZXJuIGJlIHRoYXQgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiwgLi4uKSBjYWxscyBkZWJ1Z0Rlc2NyaXB0aW9uLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpkZWJ1
Z0Rlc2NyaXB0aW9uIGNvbnN0KToKKwogMjAyMC0wNC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYWRkaW5nIG1pc3NpbmcgaGVh
ZGVyIGluY2x1c2lvbnMgdG8gZ2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDA1MWZkYjNlZTVj
NWMzM2U2OGIxYjZkMGQwMGMxZDA5MDNiNzlkNTYuLmU2MjcxZDdlODYwMjNiY2UwMzE5Mzc1Mjgw
NWYyMWVlOTZkMjM1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xMDMsNiArMTAzLDcgQEAK
ICNpbmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlZ3VsYXJFeHByZXNzaW9uLmg+CisjaW5jbHVkZSA8
d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgpAQCAtMTA1OCw5ICsxMDU5LDIzIEBAIHZvaWQgRnJhbWU6OnNlbGZPbmx5RGVy
ZWYoKQogICAgIGRlcmVmKCk7CiB9CiAKK1N0cmluZyBGcmFtZTo6ZGVidWdEZXNjcmlwdGlvbigp
IGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworCisgICAgYnVpbGRlci5hcHBl
bmQoIkZyYW1lIDB4Il9zLCBoZXgocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpLCBM
b3dlcmNhc2UpKTsKKyAgICBpZiAoaXNNYWluRnJhbWUoKSkKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoIiAobWFpbiBmcmFtZSkiX3MpOworCisgICAgaWYgKGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5k
b2N1bWVudCgpKQorICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcsIGRvY3VtZW50LT5kb2N1bWVu
dFVSSSgpKTsKKyAgICAKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCiBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGcmFtZSYgZnJhbWUpCiB7
Ci0gICAgdHMgPDwgIkZyYW1lICIgPDwgJmZyYW1lIDw8ICIgdmlldyAiIDw8IGZyYW1lLnZpZXco
KSA8PCAiIChpcyBtYWluIGZyYW1lICIgPDwgZnJhbWUuaXNNYWluRnJhbWUoKSA8PCAiKSAiIDw8
IChmcmFtZS5kb2N1bWVudCgpID8gZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdW1lbnRVUkkoKSA6IGVt
cHR5U3RyaW5nKCkpOworICAgIHRzIDw8IGZyYW1lLmRlYnVnRGVzY3JpcHRpb24oKTsKICAgICBy
ZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCAyNTIwZTAzN2E1NDkzMGZhMWUxYmY3
MGUxY2MyYWExODM2YjU3Yjg4Li5lYjk3YTYxZmM4OGEwYzA3Njg3YWI1ZDJiMTNhNDUxNzBjYmIz
YjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xOTAsNiArMTkwLDggQEAgcHVibGljOgogCiAgICAg
Ym9vbCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoKTsKIAorICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0
aW9uKCkgY29uc3Q7CisKIC8vID09PT09PT09IEFsbCBwdWJsaWMgZnVuY3Rpb25zIGJlbG93IHRo
aXMgcG9pbnQgYXJlIGNhbmRpZGF0ZXMgdG8gbW92ZSBvdXQgb2YgRnJhbWUgaW50byBhbm90aGVy
IGNsYXNzLiA9PT09PT09PQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbmplY3RVc2VyU2Ny
aXB0cyhVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggYzY4ZjVkMzhjNmU1MWUwNDg4ODcwOTRjNTdlYmZmMDdhYWYwMWNlYi4uZDY2MjUzYzk5
ZWIxZjE4YTUwY2I0ZWY2ZWI0N2FlMjExMzU5YzM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcApAQCAtMTAzLDEzICsxMDMsMTMgQEAKICNpbmNsdWRlICJWZWxvY2l0eURhdGEuaCIKICNp
bmNsdWRlICJWaXN1YWxWaWV3cG9ydC5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRv
ci5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLQorI2luY2x1ZGUgPHd0Zi9I
ZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5j
bHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKICNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKQEAgLTE0MjgsNiArMTQy
OCwxNSBAQCB2b2lkIEZyYW1lVmlldzo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBidWlsZGVyLnRvU3Ry
aW5nKCkpOwogfQogCitTdHJpbmcgRnJhbWVWaWV3OjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QK
K3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIkZyYW1l
VmlldyAweCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgTG93ZXJj
YXNlKSk7CisgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICBidWlsZGVyLmFwcGVuZChmcmFt
ZSgpLmRlYnVnRGVzY3JpcHRpb24oKSk7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
K30KKwogYm9vbCBGcmFtZVZpZXc6OnN0eWxlSGlkZXNTY3JvbGxiYXJXaXRoT3JpZW50YXRpb24o
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0CiB7CiAgICAgYXV0byBlbGVt
ZW50ID0gcm9vdEVsZW1lbnRGb3JDdXN0b21TY3JvbGxiYXJQYXJ0U3R5bGUoUHNldWRvSWQ6OlNj
cm9sbGJhcik7CkBAIC01NDYwLDcgKzU0NjksNyBAQCBib29sIEZyYW1lVmlldzo6c2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiAKIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZyYW1lVmlldyYgdmlldykKIHsKLSAgICB0
cyA8PCAiRnJhbWVWaWV3ICIgPDwgJnZpZXcgPDwgIiBmcmFtZSAiIDw8IHZpZXcuZnJhbWUoKTsK
KyAgICB0cyA8PCB2aWV3LmRlYnVnRGVzY3JpcHRpb24oKTsKICAgICByZXR1cm4gdHM7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGJiOTU3ODVjYzgxMjdhMzdmZjYxNTA2ZmY2ODE2
MmY0ODE1N2RkZjQuLjBhZWNkZThhYmMyNTYwOTg1ZmQxMjE5NWY2ZDAyODI5MmEzMmI0YjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjY0LDYgKzY2NCw4IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaW5VcGRhdGVFbWJlZGRlZE9iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX2luVXBkYXRl
RW1iZWRkZWRPYmplY3RzOyB9CiAKKyAgICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0
IGZpbmFsOworCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNv
bnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNv
bnN0IEludFJlY3QmIGNsaXBSZWN0KSBmaW5hbDsKICAgICB2b2lkIHNjcm9sbENvbnRlbnRzU2xv
d1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDJmZDE1ZjdiMzAxN2IxYzdlZTdhMjFjODYxODY1NGI5
NTExMDkyMjcuLjNmYjZiMWJhNmUzMTRlYjU2OTgyZjFhYzczMzZlMmI5MzFiYjk3M2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRl
ICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgog
CkBAIC0xNTMyLDYgKzE1MzMsMTMgQEAgSW50UG9pbnQgU2Nyb2xsVmlldzo6bG9jYXRpb25PZkNv
bnRlbnRzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitTdHJpbmcgU2Nyb2xsVmll
dzo6ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIuYXBwZW5kKCJTY3JvbGxWaWV3IDB4Il9zLCBoZXgocmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KHRoaXMpLCBMb3dlcmNhc2UpKTsKKyAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCiB2b2lkIFNjcm9sbFZpZXc6
OnBsYXRmb3JtQWRkQ2hpbGQoV2lkZ2V0KikKQEAgLTE1NDIsMTAgKzE1NTAsNiBAQCB2b2lkIFNj
cm9sbFZpZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0KikKIHsKIH0KIAotI2VuZGlmCi0K
LSNpZiAhUExBVEZPUk0oQ09DT0EpCi0KIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3Jv
bGxiYXJzU3VwcHJlc3NlZChib29sKQogewogfQpAQCAtMTU1OCwxMCArMTU2Miw2IEBAIHZvaWQg
U2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Nyb2xsYmFyT3Zl
cmxheVN0eWxlKQogewogfQogCi0jZW5kaWYKLQotI2lmICFQTEFURk9STShDT0NPQSkKLQogdm9p
ZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbGJhck1vZGVzKCkKIHsKIH0KQEAgLTE2NTIs
NiArMTY1Miw2IEBAIGJvb2wgU2Nyb2xsVmlldzo6cGxhdGZvcm1Jc09mZnNjcmVlbigpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09D
T0EpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBiNjRhYTNiYTA2
NmM5Y2RhZDkwYTFmY2JhMWExNTRiMjAzMGJiNTFlLi4xNGFkMzg0ZGJmMTc1OWNhNWQ2NjM3NjNm
OTg3Y2VmZmVmMGE5YWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC00
NDksNiArNDQ5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHNldEhhc1Njcm9sbGJhckludGVybmFs
KFJlZlB0cjxTY3JvbGxiYXI+JiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIGJvb2wgaGFzQmFyLCBi
b29sKiBjb250ZW50U2l6ZUFmZmVjdGVkKTsKIAogICAgIGJvb2wgaXNTY3JvbGxWaWV3KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGluaXQoKTsKICAgICB2b2lkIGRlc3Ryb3koKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA1YmRhODU3
YmI5MWIxNjIyMzAyNWMwZTY4ZDgwMTgxZjhhZGZlMGViLi5jZGFkMzYwMWQzOWE1MzdjZmFjNjBl
ZTc1NWUxODMyYjFhYWRjNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuY3BwCkBAIC03NjksNCArNzY5LDEwIEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OmNvbXB1
dGVTY3JvbGxiYXJWYWx1ZUFuZE92ZXJoYW5nKGZsb2F0IGN1cnJlbnRQb3NpdGlvbiwgZmxvCiAg
ICAgfQogfQogCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBT
Y3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCit7CisgICAgdHMgPDwgc2Nyb2xsYWJsZUFy
ZWEuZGVidWdEZXNjcmlwdGlvbigpOworICAgIHJldHVybiB0czsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXgg
ZDIwM2FlYmU1YzViNzI2NjgwODhjODFhOTJmYWZkNjU3OTk0ZjU5NC4uNDVmYWMwMjliZDM2YmU4
Yjg3YjkzMzM1NzkzZDM4MjY1OTA1YzE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUZXh0
U3RyZWFtOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UG9pbnQ7CkBA
IC0zNDUsNiArMzQ5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2dNb2NrU2Nyb2xs
QW5pbWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgfTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgPSAw
OworICAgIAorICAgIHZpcnR1YWwgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCA9IDA7
CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxhYmxlQXJlYSgpOwpAQCAt
NDE0LDQgKzQyMCw2IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMgOiAxOwogfTsKIAorV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIGNvbnN0IFNjcm9sbGFibGVBcmVhJik7CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVX
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKaW5k
ZXggN2M3YmZkZmIxOGM1YmU2N2UxNzBkYTk2NDNiOWMzZGRlNWMzMmRmNC4uMTE0MWJkYWRlN2Ji
ZTJmMTU2NjM2NDczNDhjMjZlZjhjN2JjZjMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1BvcHVwTWVudVdpbi5jcHAKQEAgLTQ5LDcgKzQ5LDkgQEAKICNpbmNsdWRlICJTY3Jv
bGxiYXJUaGVtZVdpbi5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJXZWJDb3Jl
SW5zdGFuY2VIYW5kbGUuaCIKKyNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8
d3RmL1dpbmRvd3NFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d2luZG93c3guaD4KQEAgLTEwODIs
NiArMTA4NCwxMyBAQCBMUkVTVUxUIFBvcHVwTWVudVdpbjo6d25kUHJvYyhIV05EIGhXbmQsIFVJ
TlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYQogICAgIHJldHVybiBsUmVzdWx0
OwogfQogCitTdHJpbmcgUG9wdXBNZW51V2luOjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIlBvcHVwTWVu
dVdpbiAweCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgTG93ZXJj
YXNlKSk7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwogQWNjZXNzaWJsZVBv
cHVwTWVudTo6QWNjZXNzaWJsZVBvcHVwTWVudShjb25zdCBQb3B1cE1lbnVXaW4mIHBvcHVwTWVu
dSkKICAgICA6IG1fcG9wdXBNZW51KHBvcHVwTWVudSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9Qb3B1cE1lbnVXaW4uaAppbmRleCAzNTI5YjhmMjg3OTM3NzM3ZDhmMjQzMTZlY2Q2
YzI5ZDRkNzYxMWFiLi43ZDU3ZGFhOWNkZmE4MWM0ZTVkNzU3YTZjYjY1YzUwNDQ0Mzk3NWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCkBAIC00OSw2ICs0
OSw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBMUENXU1RSIHBvcHVwQ2xhc3NOYW1lKCk7CiAK
KyAgICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOworCiBwcml2YXRlOgog
ICAgIFBvcHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVu
dDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA4MjFj
NGFlMjE3NzdiYzM2NTlhMGQ4YWQwOGQ5MjczMTg4NjA3MThhLi43NzkwYTllNmNhNzM4YWI4OGJm
YzMwZjAwNjMwYjdhYjcwODgzYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKQEAgLTEyNyw2ICsxMjcsNyBAQAogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRvci5oIgogI2luY2x1
ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9N
b25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTM2MjUsNiArMzYyNiwzNiBAQCB2b2lkIFJlbmRlckxh
eWVyOjpsb2dNb2NrU2Nyb2xsQW5pbWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkg
Y29uc3QKICAgICByZW5kZXJlcigpLmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsICJSZW5kZXJMYXllcjogIiArIG1l
c3NhZ2UpOwogfQogCitTdHJpbmcgUmVuZGVyTGF5ZXI6OmRlYnVnRGVzY3JpcHRpb24oKSBjb25z
dAoreworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiUmVu
ZGVyTGF5ZXIgMHgiX3MsIGhleChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4odGhpcyksIExv
d2VyY2FzZSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKHNpemUoKS53aWR0aCgpLCAneCcsIHNpemUo
KS5oZWlnaHQoKSk7CisKKyAgICBpZiAodHJhbnNmb3JtKCkpCisgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCIgaGFzIHRyYW5zZm9ybSJfcyk7CisKKyAgICBpZiAoaGFzRmlsdGVyKCkpCisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCIgaGFzIGZpbHRlciJfcyk7CisKKyAgICBpZiAoaGFzQmFja2Ryb3BG
aWx0ZXIoKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiBoYXMgYmFja2Ryb3AgZmlsdGVyIl9z
KTsKKworICAgIGlmIChoYXNCbGVuZE1vZGUoKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiBo
YXMgYmxlbmQgbW9kZSJfcyk7CisKKyAgICBpZiAoaXNvbGF0ZXNCbGVuZGluZygpKQorICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiIGlzb2xhdGVzIGJsZW5kaW5nIl9zKTsKKworICAgIGlmIChpc0Nv
bXBvc2l0ZWQoKSkgeworICAgICAgICBUZXh0U3RyZWFtIHN0cmVhbTsKKyAgICAgICAgc3RyZWFt
IDw8ICpiYWNraW5nKCk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0cmVhbS5yZWxlYXNlKCkp
OworICAgIH0KKworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKIGludCBSZW5k
ZXJMYXllcjo6dmVydGljYWxTY3JvbGxiYXJXaWR0aChPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2
YW5jeSByZWxldmFuY3kpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3ZCYXIKQEAgLTcwMTEsMTkgKzcw
NDIsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMsIENsaXBS
ZWN0c1R5cGUgY2xpcFJlY3RzVHlwZSkKIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyKQogewotICAgIHRzIDw8ICJSZW5kZXJM
YXllciAiIDw8ICZsYXllciA8PCAiICIgPDwgbGF5ZXIuc2l6ZSgpOwotICAgIGlmIChsYXllci50
cmFuc2Zvcm0oKSkKLSAgICAgICAgdHMgPDwgIiBoYXMgdHJhbnNmb3JtIjsKLSAgICBpZiAobGF5
ZXIuaGFzRmlsdGVyKCkpCi0gICAgICAgIHRzIDw8ICIgaGFzIGZpbHRlciI7Ci0gICAgaWYgKGxh
eWVyLmhhc0JhY2tkcm9wRmlsdGVyKCkpCi0gICAgICAgIHRzIDw8ICIgaGFzIGJhY2tkcm9wIGZp
bHRlciI7Ci0gICAgaWYgKGxheWVyLmhhc0JsZW5kTW9kZSgpKQotICAgICAgICB0cyA8PCAiIGhh
cyBibGVuZCBtb2RlIjsKLSAgICBpZiAobGF5ZXIuaXNvbGF0ZXNCbGVuZGluZygpKQotICAgICAg
ICB0cyA8PCAiIGlzb2xhdGVzIGJsZW5kaW5nIjsKLSAgICBpZiAobGF5ZXIuaXNDb21wb3NpdGVk
KCkpCi0gICAgICAgIHRzIDw8ICIgIiA8PCAqbGF5ZXIuYmFja2luZygpOworICAgIHRzIDw8IGxh
eWVyLmRlYnVnRGVzY3JpcHRpb24oKTsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggZDExMzkzZTA3ZGViYWFjYjg1YmEzMTI0OTJm
Y2IwNGRjZGU1N2ZjMS4uZDE2NTliMGUzMjA3ZDZhMmUyNjYyZTgzNDc3ZGNiNGY0ZmRmODA0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTkyNiw2ICs5MjYsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGludmFsaWRhdGVFdmVudFJlZ2lvbigpOwogCisgICAgU3Ry
aW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKKwogcHJpdmF0ZToKIAogICAgIHZv
aWQgc2V0TmV4dFNpYmxpbmcoUmVuZGVyTGF5ZXIqIG5leHQpIHsgbV9uZXh0ID0gbmV4dDsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCAzYTAzOGNlOGEzYTJlODc4MDExM2I0ZGUwYzE2N2U0MTBkMTdhMjczLi5mNTRkODUw
MjVhMGVjZjc5NmZlNDcwMGRkMjQ5MTQ4NWIwYjc5YTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNzEwLDcgKzcxMCw3
IEBAIHN0YXRpYyBPcHRpb25hbDxTY3JvbGxpbmdOb2RlSUQ+IGZyYW1lSG9zdGluZ05vZGVGb3JG
cmFtZShGcmFtZSYgZnJhbWUpCiAvLyBSZXR1cm5zIHRydWUgb24gYSBzdWNjZXNzZnVsIHVwZGF0
ZS4KIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhD
b21wb3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlVHlwZSwgUmVuZGVyTGF5ZXIqIHVwZGF0ZVJvb3Qp
CiB7Ci0gICAgTE9HX1dJVEhfU1RSRUFNKENvbXBvc2l0aW5nLCBzdHJlYW0gPDwgIlJlbmRlckxh
eWVyQ29tcG9zaXRvciAiIDw8IHRoaXMgPDwgIiB1cGRhdGVDb21wb3NpdGluZ0xheWVycyAiIDw8
IHVwZGF0ZVR5cGUgPDwgIiBjb250ZW50TGF5ZXJzQ291bnQgIiA8PCBtX2NvbnRlbnRMYXllcnND
b3VudCk7CisgICAgTE9HX1dJVEhfU1RSRUFNKENvbXBvc2l0aW5nLCBzdHJlYW0gPDwgIlJlbmRl
ckxheWVyQ29tcG9zaXRvciAiIDw8IHRoaXMgPDwgIiBbIiA8PCBtX3JlbmRlclZpZXcuZnJhbWVW
aWV3KCkgPDwgIl0gdXBkYXRlQ29tcG9zaXRpbmdMYXllcnMgIiA8PCB1cGRhdGVUeXBlIDw8ICIg
Y29udGVudExheWVyc0NvdW50ICIgPDwgbV9jb250ZW50TGF5ZXJzQ291bnQpOwogCiAgICAgVHJh
Y2VTY29wZSB0cmFjaW5nU2NvcGUoQ29tcG9zaXRpbmdVcGRhdGVTdGFydCwgQ29tcG9zaXRpbmdV
cGRhdGVFbmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAK
aW5kZXggNzc4ZGYzODIzYzBlZjAyMGY4ZDMyMmYyNWQzY2FhNmVkOThkYzI4NS4uYjU3NDc3ZDJk
Y2FiMTRlYTMyNDNjYmQ2OGRkMTMxZGEzYzI3Yjc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtOTEwLDYgKzkxMCwxMSBAQCB2b2lkIFJlbmRlckxp
c3RCb3g6OmxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSBjb25zdAogICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsICJSZW5kZXJMaXN0Qm94OiAiICsgbWVzc2FnZSk7
CiB9CiAKK1N0cmluZyBSZW5kZXJMaXN0Qm94OjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpkZWJ1Z0Rlc2NyaXB0aW9uKCk7Cit9CisKIFJlZjxT
Y3JvbGxiYXI+IFJlbmRlckxpc3RCb3g6OmNyZWF0ZVNjcm9sbGJhcigpCiB7CiAgICAgUmVmUHRy
PFNjcm9sbGJhcj4gd2lkZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmgKaW5kZXggZjQ4NTgwYTRjNzVjNWJjODA3ZTdlOTc0N2YyZGIxZGU4N2VmY2JjNy4uOGM1YThm
YWYyMDU3NWJmYWU2MzJjNGFjYjU4ZjBjNWY4NGQ0N2ZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC0xNDEsNiArMTQxLDcgQEAgcHJpdmF0ZToKICAgICBJ
bnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBjb25zdCBm
aW5hbDsKICAgICBib29sIHVzZXNNb2NrU2Nyb2xsQW5pbWF0b3IoKSBjb25zdCBmaW5hbDsKICAg
ICB2b2lkIGxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3QgU3RyaW5nJikgY29uc3Qg
ZmluYWw7CisgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAg
IC8vIE5PVEU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVycmlkZGVuIHNl
dFNjcm9sbE9mZnNldCBmcm9tIFNjcm9sbGFibGVBcmVhLgogICAgIHZvaWQgc2Nyb2xsVG8oaW50
IG5ld09mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luLmgKaW5kZXggN2I4ZjI1ODcxYzljNDQ5ZTQxNjdlNmE4ZGI0MGI1ZWVjNmNkZGM5
OS4uYjY4ODNiNzA1OTAyNmFiODZjZmQ2MTZmODY3MTVkZWQxNmE0NGFjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjQ2LDYg
KzI0Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmb3Jj
ZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25z
dCBmaW5hbDsKICAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIFN0cmluZyBkZWJ1Z0Rlc2Ny
aXB0aW9uKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBQREZQbHVnaW4gZnVuY3Rpb25zLgogICAg
IHZvaWQgdXBkYXRlU2Nyb2xsYmFycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggMjk4MDI0ZmI5OTVjMThiN2FkZWM4ZDJi
NGViYzBhOGM3ZTMyOTczZC4uNmJlZWRmZGVlMzUwMmU4NzgxNzlhYzA1MDgzY2MyZTEwMGNmMWMy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tCkBAIC04OSw2ICs4OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1doZWVsRXZlbnRUZXN0
TW9uaXRvci5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBv
cnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgorI2ltcG9ydCA8d3RmL0hleE51bWJlci5oPgog
I2ltcG9ydCA8d3RmL1VVSUQuaD4KICNpbXBvcnQgPHd0Zi9XVEZTZW1hcGhvcmUuaD4KICNpbXBv
cnQgPHd0Zi9Xb3JrUXVldWUuaD4KQEAgLTEyODMsNiArMTI4NCwxMyBAQCBJbnRQb2ludCBQREZQ
bHVnaW46OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxi
YXImIHNjcm9sbAogICAgIHJldHVybiBwb2ludDsKIH0KIAorU3RyaW5nIFBERlBsdWdpbjo6ZGVi
dWdEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
IGJ1aWxkZXIuYXBwZW5kKCJQREZQbHVnaW4gMHgiX3MsIGhleChyZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4odGhpcyksIExvd2VyY2FzZSkpOworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5n
KCk7Cit9CisKIGJvb2wgUERGUGx1Z2luOjpoYW5kbGVTY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRp
cmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIHNj
cm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395578</attachid>
            <date>2020-04-06 09:58:18 -0700</date>
            <delta_ts>2020-04-06 12:22:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210042-20200406095817.patch</filename>
            <type>text/plain</type>
            <size>20351</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmRjNjRlNjg2NTE3OTM0
ODIyNjkxMTljNzIzYWQ3NmYwOGM1NTFmNS4uM2YyZTE0YzA0N2NjZWE0YzkyZTljMWI5ZWUwNjQy
NjJmYWI1ZDg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA0LTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
YWJsZUFyZWEgVGV4dFN0cmVhbS1sb2dnYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWEgaXMgYSBwdXJlIHZpcnR1YWwgYmFz
ZSBjbGFzcywgc28gaGFzIHRvIGR1bXAgdmlhIGEgdmlydHVhbCBmdW5jdGlvbiwKKyAgICAgICAg
c28gYWRkIGRlYnVnRGVzY3JpcHRpb24oKSBhbmQgaW1wbGVtZW50IGl0IGluIGRlcml2ZWQgY2xh
c3Nlcy4KKworICAgICAgICBNYWtlIHRoZSBjb21tb24gcGF0dGVybiBiZSB0aGF0IG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYsIC4uLikgY2FsbHMgZGVidWdEZXNjcmlwdGlvbi4KKworICAgICAgICAq
IHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRlYnVnRGVzY3JpcHRp
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGFn
ZS9GcmFtZS5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZGVi
dWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpkZWJ1Z0Rlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21w
b3NpdGluZ0xheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKwogMjAyMC0wNC0wNSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRyZXNzIHJl
dmlldyBjb21tZW50cyBhZnRlciByMjU5NTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlNWFhZDk0YTU4N2FiNmY0
ZjZjYjRjOWEwMjViYThkMDdiNTgyYmQuLjUwODlmNDMzOGE0NzNmZDJkOTBkZDRmYzRkYjgwMWY1
MTc3MTQ0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDQtMDUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBTY3JvbGxhYmxl
QXJlYSBUZXh0U3RyZWFtLWxvZ2dhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTAwNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTY3JvbGxhYmxlQXJlYSBpcyBhIHB1cmUgdmlydHVhbCBiYXNlIGNs
YXNzLCBzbyBoYXMgdG8gZHVtcCB2aWEgYSB2aXJ0dWFsIGZ1bmN0aW9uLAorICAgICAgICBzbyBh
ZGQgZGVidWdEZXNjcmlwdGlvbigpIGFuZCBpbXBsZW1lbnQgaXQgaW4gZGVyaXZlZCBjbGFzc2Vz
LgorCisgICAgICAgIE1ha2UgdGhlIGNvbW1vbiBwYXR0ZXJuIGJlIHRoYXQgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiwgLi4uKSBjYWxscyBkZWJ1Z0Rlc2NyaXB0aW9uLgorCisgICAgICAgICogVUlQ
cm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBvcHVwTWVudVByb3h5V2luOjpkZWJ1Z0Rlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpkZWJ1Z0Rlc2Ny
aXB0aW9uIGNvbnN0KToKKwogMjAyMC0wNC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYWRkaW5nIG1pc3NpbmcgaGVhZGVyIGlu
Y2x1c2lvbnMgdG8gZ2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDA1MWZkYjNlZTVjNWMzM2U2
OGIxYjZkMGQwMGMxZDA5MDNiNzlkNTYuLmU2MjcxZDdlODYwMjNiY2UwMzE5Mzc1MjgwNWYyMWVl
OTZkMjM1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xMDMsNiArMTAzLDcgQEAKICNpbmNs
dWRlICJucHJ1bnRpbWVfaW1wbC5oIgogI2luY2x1ZGUgInJ1bnRpbWVfcm9vdC5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1JlZ3VsYXJFeHByZXNzaW9uLmg+CisjaW5jbHVkZSA8d3RmL0hl
eE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgpAQCAtMTA1OCw5ICsxMDU5LDIzIEBAIHZvaWQgRnJhbWU6OnNlbGZPbmx5RGVyZWYoKQog
ICAgIGRlcmVmKCk7CiB9CiAKK1N0cmluZyBGcmFtZTo6ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0
Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworCisgICAgYnVpbGRlci5hcHBlbmQoIkZy
YW1lIDB4Il9zLCBoZXgocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpLCBMb3dlcmNh
c2UpKTsKKyAgICBpZiAoaXNNYWluRnJhbWUoKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiAo
bWFpbiBmcmFtZSkiX3MpOworCisgICAgaWYgKGF1dG8gZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVu
dCgpKQorICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcsIGRvY3VtZW50LT5kb2N1bWVudFVSSSgp
KTsKKyAgICAKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCiBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAg
dHMgPDwgIkZyYW1lICIgPDwgJmZyYW1lIDw8ICIgdmlldyAiIDw8IGZyYW1lLnZpZXcoKSA8PCAi
IChpcyBtYWluIGZyYW1lICIgPDwgZnJhbWUuaXNNYWluRnJhbWUoKSA8PCAiKSAiIDw8IChmcmFt
ZS5kb2N1bWVudCgpID8gZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdW1lbnRVUkkoKSA6IGVtcHR5U3Ry
aW5nKCkpOworICAgIHRzIDw8IGZyYW1lLmRlYnVnRGVzY3JpcHRpb24oKTsKICAgICByZXR1cm4g
dHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCAyNTIwZTAzN2E1NDkzMGZhMWUxYmY3MGUxY2My
YWExODM2YjU3Yjg4Li5lYjk3YTYxZmM4OGEwYzA3Njg3YWI1ZDJiMTNhNDUxNzBjYmIzYjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oCkBAIC0xOTAsNiArMTkwLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoKTsKIAorICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkg
Y29uc3Q7CisKIC8vID09PT09PT09IEFsbCBwdWJsaWMgZnVuY3Rpb25zIGJlbG93IHRoaXMgcG9p
bnQgYXJlIGNhbmRpZGF0ZXMgdG8gbW92ZSBvdXQgb2YgRnJhbWUgaW50byBhbm90aGVyIGNsYXNz
LiA9PT09PT09PQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbmplY3RVc2VyU2NyaXB0cyhV
c2VyU2NyaXB0SW5qZWN0aW9uVGltZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
YzY4ZjVkMzhjNmU1MWUwNDg4ODcwOTRjNTdlYmZmMDdhYWYwMWNlYi4uZDY2MjUzYzk5ZWIxZjE4
YTUwY2I0ZWY2ZWI0N2FlMjExMzU5YzM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMTAzLDEzICsxMDMsMTMgQEAKICNpbmNsdWRlICJWZWxvY2l0eURhdGEuaCIKICNpbmNsdWRl
ICJWaXN1YWxWaWV3cG9ydC5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRvci5oIgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLQorI2luY2x1ZGUgPHd0Zi9IZXhOdW1i
ZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKQEAgLTE0MjgsNiArMTQyOCwxNSBA
QCB2b2lkIEZyYW1lVmlldzo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkRlYnVnLCBidWlsZGVyLnRvU3RyaW5nKCkp
OwogfQogCitTdHJpbmcgRnJhbWVWaWV3OjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIkZyYW1lVmlldyAw
eCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgTG93ZXJjYXNlKSk7
CisgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICBidWlsZGVyLmFwcGVuZChmcmFtZSgpLmRl
YnVnRGVzY3JpcHRpb24oKSk7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwog
Ym9vbCBGcmFtZVZpZXc6OnN0eWxlSGlkZXNTY3JvbGxiYXJXaXRoT3JpZW50YXRpb24oU2Nyb2xs
YmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0CiB7CiAgICAgYXV0byBlbGVtZW50ID0g
cm9vdEVsZW1lbnRGb3JDdXN0b21TY3JvbGxiYXJQYXJ0U3R5bGUoUHNldWRvSWQ6OlNjcm9sbGJh
cik7CkBAIC01NDYwLDcgKzU0NjksNyBAQCBib29sIEZyYW1lVmlldzo6c2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZyYW1lVmlldyYgdmlldykKIHsKLSAgICB0cyA8PCAi
RnJhbWVWaWV3ICIgPDwgJnZpZXcgPDwgIiBmcmFtZSAiIDw8IHZpZXcuZnJhbWUoKTsKKyAgICB0
cyA8PCB2aWV3LmRlYnVnRGVzY3JpcHRpb24oKTsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCmluZGV4IGJiOTU3ODVjYzgxMjdhMzdmZjYxNTA2ZmY2ODE2MmY0ODE1
N2RkZjQuLjBhZWNkZThhYmMyNTYwOTg1ZmQxMjE5NWY2ZDAyODI5MmEzMmI0YjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaApAQCAtNjY0LDYgKzY2NCw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aW5VcGRhdGVFbWJlZGRlZE9iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX2luVXBkYXRlRW1iZWRk
ZWRPYmplY3RzOyB9CiAKKyAgICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFs
OworCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IElu
dFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IElu
dFJlY3QmIGNsaXBSZWN0KSBmaW5hbDsKICAgICB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgo
Y29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwCmluZGV4IDJmZDE1ZjdiMzAxN2IxYzdlZTdhMjFjODYxODY1NGI5NTExMDky
MjcuLjNmYjZiMWJhNmUzMTRlYjU2OTgyZjFhYzczMzZlMmI5MzFiYjk3M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
U2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJTY3Jv
bGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC0x
NTMyLDYgKzE1MzMsMTMgQEAgSW50UG9pbnQgU2Nyb2xsVmlldzo6bG9jYXRpb25PZkNvbnRlbnRz
KCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitTdHJpbmcgU2Nyb2xsVmlldzo6ZGVi
dWdEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
IGJ1aWxkZXIuYXBwZW5kKCJTY3JvbGxWaWV3IDB4Il9zLCBoZXgocmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KHRoaXMpLCBMb3dlcmNhc2UpKTsKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmlu
ZygpOworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogCiB2b2lkIFNjcm9sbFZpZXc6OnBsYXRm
b3JtQWRkQ2hpbGQoV2lkZ2V0KikKQEAgLTE1NDIsMTAgKzE1NTAsNiBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0KikKIHsKIH0KIAotI2VuZGlmCi0KLSNpZiAh
UExBVEZPUk0oQ09DT0EpCi0KIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJz
U3VwcHJlc3NlZChib29sKQogewogfQpAQCAtMTU1OCwxMCArMTU2Miw2IEBAIHZvaWQgU2Nyb2xs
Vmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Nyb2xsYmFyT3ZlcmxheVN0
eWxlKQogewogfQogCi0jZW5kaWYKLQotI2lmICFQTEFURk9STShDT0NPQSkKLQogdm9pZCBTY3Jv
bGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbGJhck1vZGVzKCkKIHsKIH0KQEAgLTE2NTIsNiArMTY1
Miw2IEBAIGJvb2wgU2Nyb2xsVmlldzo6cGxhdGZvcm1Jc09mZnNjcmVlbigpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpCiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBiNjRhYTNiYTA2NmM5Y2Rh
ZDkwYTFmY2JhMWExNTRiMjAzMGJiNTFlLi4xNGFkMzg0ZGJmMTc1OWNhNWQ2NjM3NjNmOTg3Y2Vm
ZmVmMGE5YWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC00NDksNiAr
NDQ5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHNldEhhc1Njcm9sbGJhckludGVybmFsKFJlZlB0
cjxTY3JvbGxiYXI+JiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIGJvb2wgaGFzQmFyLCBib29sKiBj
b250ZW50U2l6ZUFmZmVjdGVkKTsKIAogICAgIGJvb2wgaXNTY3JvbGxWaWV3KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGluaXQoKTsKICAgICB2b2lkIGRlc3Ryb3koKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA1YmRhODU3YmI5MWIx
NjIyMzAyNWMwZTY4ZDgwMTgxZjhhZGZlMGViLi5jZGFkMzYwMWQzOWE1MzdjZmFjNjBlZTc1NWUx
ODMyYjFhYWRjNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwCkBAIC03NjksNCArNzY5LDEwIEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVTY3Jv
bGxiYXJWYWx1ZUFuZE92ZXJoYW5nKGZsb2F0IGN1cnJlbnRQb3NpdGlvbiwgZmxvCiAgICAgfQog
fQogCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTY3JvbGxh
YmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCit7CisgICAgdHMgPDwgc2Nyb2xsYWJsZUFyZWEuZGVi
dWdEZXNjcmlwdGlvbigpOworICAgIHJldHVybiB0czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggZDIwM2Fl
YmU1YzViNzI2NjgwODhjODFhOTJmYWZkNjU3OTk0ZjU5NC4uNDVmYWMwMjliZDM2YmU4Yjg3Yjkz
MzM1NzkzZDM4MjY1OTA1YzE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUZXh0U3RyZWFt
OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UG9pbnQ7CkBAIC0zNDUs
NiArMzQ5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2dNb2NrU2Nyb2xsQW5pbWF0
b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgfTsKIAogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgPSAwOworICAg
IAorICAgIHZpcnR1YWwgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCA9IDA7CiAKIHBy
b3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxhYmxlQXJlYSgpOwpAQCAtNDE0LDQg
KzQyMCw2IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jdXJyZW50U2Nyb2xsQmVoYXZpb3JT
dGF0dXMgOiAxOwogfTsKIAorV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIGNvbnN0IFNjcm9sbGFibGVBcmVhJik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKaW5kZXggN2M3
YmZkZmIxOGM1YmU2N2UxNzBkYTk2NDNiOWMzZGRlNWMzMmRmNC4uMTE0MWJkYWRlN2JiZTJmMTU2
NjM2NDczNDhjMjZlZjhjN2JjZjMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1BvcHVwTWVudVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1BvcHVwTWVudVdpbi5jcHAKQEAgLTQ5LDcgKzQ5LDkgQEAKICNpbmNsdWRlICJTY3JvbGxiYXJU
aGVtZVdpbi5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJXZWJDb3JlSW5zdGFu
Y2VIYW5kbGUuaCIKKyNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL1dp
bmRvd3NFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNp
bmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d2luZG93c3guaD4KQEAgLTEwODIsNiArMTA4
NCwxMyBAQCBMUkVTVUxUIFBvcHVwTWVudVdpbjo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYQogICAgIHJldHVybiBsUmVzdWx0OwogfQog
CitTdHJpbmcgUG9wdXBNZW51V2luOjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIlBvcHVwTWVudVdpbiAw
eCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgTG93ZXJjYXNlKSk7
CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwogQWNjZXNzaWJsZVBvcHVwTWVu
dTo6QWNjZXNzaWJsZVBvcHVwTWVudShjb25zdCBQb3B1cE1lbnVXaW4mIHBvcHVwTWVudSkKICAg
ICA6IG1fcG9wdXBNZW51KHBvcHVwTWVudSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uaAppbmRleCAzNTI5YjhmMjg3OTM3NzM3ZDhmMjQzMTZlY2Q2YzI5ZDRk
NzYxMWFiLi43ZDU3ZGFhOWNkZmE4MWM0ZTVkNzU3YTZjYjY1YzUwNDQ0Mzk3NWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCkBAIC00OSw2ICs0OSw4IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBMUENXU1RSIHBvcHVwQ2xhc3NOYW1lKCk7CiAKKyAgICBT
dHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOworCiBwcml2YXRlOgogICAgIFBv
cHVwTWVudUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wb3B1cENsaWVudDsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA4MjFjNGFlMjE3
NzdiYzM2NTlhMGQ4YWQwOGQ5MjczMTg4NjA3MThhLi43NzkwYTllNmNhNzM4YWI4OGJmYzMwZjAw
NjMwYjdhYjcwODgzYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKQEAgLTEyNyw2ICsxMjcsNyBAQAogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbi5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRvci5oIgogI2luY2x1ZGUgPHN0
ZGlvLmg+CisjaW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9u
aWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KQEAgLTM2MjUsNiArMzYyNiwzNiBAQCB2b2lkIFJlbmRlckxheWVyOjps
b2dNb2NrU2Nyb2xsQW5pbWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgY29uc3QK
ICAgICByZW5kZXJlcigpLmRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsICJSZW5kZXJMYXllcjogIiArIG1lc3NhZ2Up
OwogfQogCitTdHJpbmcgUmVuZGVyTGF5ZXI6OmRlYnVnRGVzY3JpcHRpb24oKSBjb25zdAorewor
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiUmVuZGVyTGF5
ZXIgMHgiX3MsIGhleChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4odGhpcyksIExvd2VyY2Fz
ZSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKHNpemUoKS53aWR0aCgpLCAneCcsIHNpemUoKS5oZWln
aHQoKSk7CisKKyAgICBpZiAodHJhbnNmb3JtKCkpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIg
aGFzIHRyYW5zZm9ybSJfcyk7CisKKyAgICBpZiAoaGFzRmlsdGVyKCkpCisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCIgaGFzIGZpbHRlciJfcyk7CisKKyAgICBpZiAoaGFzQmFja2Ryb3BGaWx0ZXIo
KSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiBoYXMgYmFja2Ryb3AgZmlsdGVyIl9zKTsKKwor
ICAgIGlmIChoYXNCbGVuZE1vZGUoKSkKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIiBoYXMgYmxl
bmQgbW9kZSJfcyk7CisKKyAgICBpZiAoaXNvbGF0ZXNCbGVuZGluZygpKQorICAgICAgICBidWls
ZGVyLmFwcGVuZCgiIGlzb2xhdGVzIGJsZW5kaW5nIl9zKTsKKworICAgIGlmIChpc0NvbXBvc2l0
ZWQoKSkgeworICAgICAgICBUZXh0U3RyZWFtIHN0cmVhbTsKKyAgICAgICAgc3RyZWFtIDw8ICpi
YWNraW5nKCk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0cmVhbS5yZWxlYXNlKCkpOworICAg
IH0KKworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKIGludCBSZW5kZXJMYXll
cjo6dmVydGljYWxTY3JvbGxiYXJXaWR0aChPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSBy
ZWxldmFuY3kpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3ZCYXIKQEAgLTcwMTEsMTkgKzcwNDIsNyBA
QCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMsIENsaXBSZWN0c1R5
cGUgY2xpcFJlY3RzVHlwZSkKIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0
cywgY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyKQogewotICAgIHRzIDw8ICJSZW5kZXJMYXllciAi
IDw8ICZsYXllciA8PCAiICIgPDwgbGF5ZXIuc2l6ZSgpOwotICAgIGlmIChsYXllci50cmFuc2Zv
cm0oKSkKLSAgICAgICAgdHMgPDwgIiBoYXMgdHJhbnNmb3JtIjsKLSAgICBpZiAobGF5ZXIuaGFz
RmlsdGVyKCkpCi0gICAgICAgIHRzIDw8ICIgaGFzIGZpbHRlciI7Ci0gICAgaWYgKGxheWVyLmhh
c0JhY2tkcm9wRmlsdGVyKCkpCi0gICAgICAgIHRzIDw8ICIgaGFzIGJhY2tkcm9wIGZpbHRlciI7
Ci0gICAgaWYgKGxheWVyLmhhc0JsZW5kTW9kZSgpKQotICAgICAgICB0cyA8PCAiIGhhcyBibGVu
ZCBtb2RlIjsKLSAgICBpZiAobGF5ZXIuaXNvbGF0ZXNCbGVuZGluZygpKQotICAgICAgICB0cyA8
PCAiIGlzb2xhdGVzIGJsZW5kaW5nIjsKLSAgICBpZiAobGF5ZXIuaXNDb21wb3NpdGVkKCkpCi0g
ICAgICAgIHRzIDw8ICIgIiA8PCAqbGF5ZXIuYmFja2luZygpOworICAgIHRzIDw8IGxheWVyLmRl
YnVnRGVzY3JpcHRpb24oKTsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKaW5kZXggZDExMzkzZTA3ZGViYWFjYjg1YmEzMTI0OTJmY2IwNGRj
ZGU1N2ZjMS4uZDE2NTliMGUzMjA3ZDZhMmUyNjYyZTgzNDc3ZGNiNGY0ZmRmODA0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTkyNiw2ICs5MjYsOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGludmFsaWRhdGVFdmVudFJlZ2lvbigpOwogCisgICAgU3RyaW5nIGRl
YnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKKwogcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0
TmV4dFNpYmxpbmcoUmVuZGVyTGF5ZXIqIG5leHQpIHsgbV9uZXh0ID0gbmV4dDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRl
eCAzYTAzOGNlOGEzYTJlODc4MDExM2I0ZGUwYzE2N2U0MTBkMTdhMjczLi5mNTRkODUwMjVhMGVj
Zjc5NmZlNDcwMGRkMjQ5MTQ4NWIwYjc5YTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNzEwLDcgKzcxMCw3IEBAIHN0
YXRpYyBPcHRpb25hbDxTY3JvbGxpbmdOb2RlSUQ+IGZyYW1lSG9zdGluZ05vZGVGb3JGcmFtZShG
cmFtZSYgZnJhbWUpCiAvLyBSZXR1cm5zIHRydWUgb24gYSBzdWNjZXNzZnVsIHVwZGF0ZS4KIGJv
b2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3Np
dGluZ1VwZGF0ZVR5cGUgdXBkYXRlVHlwZSwgUmVuZGVyTGF5ZXIqIHVwZGF0ZVJvb3QpCiB7Ci0g
ICAgTE9HX1dJVEhfU1RSRUFNKENvbXBvc2l0aW5nLCBzdHJlYW0gPDwgIlJlbmRlckxheWVyQ29t
cG9zaXRvciAiIDw8IHRoaXMgPDwgIiB1cGRhdGVDb21wb3NpdGluZ0xheWVycyAiIDw8IHVwZGF0
ZVR5cGUgPDwgIiBjb250ZW50TGF5ZXJzQ291bnQgIiA8PCBtX2NvbnRlbnRMYXllcnNDb3VudCk7
CisgICAgTE9HX1dJVEhfU1RSRUFNKENvbXBvc2l0aW5nLCBzdHJlYW0gPDwgIlJlbmRlckxheWVy
Q29tcG9zaXRvciAiIDw8IHRoaXMgPDwgIiBbIiA8PCBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkg
PDwgIl0gdXBkYXRlQ29tcG9zaXRpbmdMYXllcnMgIiA8PCB1cGRhdGVUeXBlIDw8ICIgY29udGVu
dExheWVyc0NvdW50ICIgPDwgbV9jb250ZW50TGF5ZXJzQ291bnQpOwogCiAgICAgVHJhY2VTY29w
ZSB0cmFjaW5nU2NvcGUoQ29tcG9zaXRpbmdVcGRhdGVTdGFydCwgQ29tcG9zaXRpbmdVcGRhdGVF
bmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXgg
Nzc4ZGYzODIzYzBlZjAyMGY4ZDMyMmYyNWQzY2FhNmVkOThkYzI4NS4uYjU3NDc3ZDJkY2FiMTRl
YTMyNDNjYmQ2OGRkMTMxZGEzYzI3Yjc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcApAQCAtOTEwLDYgKzkxMCwxMSBAQCB2b2lkIFJlbmRlckxpc3RCb3g6
OmxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBjb25z
dAogICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIs
IE1lc3NhZ2VMZXZlbDo6RGVidWcsICJSZW5kZXJMaXN0Qm94OiAiICsgbWVzc2FnZSk7CiB9CiAK
K1N0cmluZyBSZW5kZXJMaXN0Qm94OjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gUmVuZGVyT2JqZWN0OjpkZWJ1Z0Rlc2NyaXB0aW9uKCk7Cit9CisKIFJlZjxTY3JvbGxi
YXI+IFJlbmRlckxpc3RCb3g6OmNyZWF0ZVNjcm9sbGJhcigpCiB7CiAgICAgUmVmUHRyPFNjcm9s
bGJhcj4gd2lkZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5k
ZXggZjQ4NTgwYTRjNzVjNWJjODA3ZTdlOTc0N2YyZGIxZGU4N2VmY2JjNy4uOGM1YThmYWYyMDU3
NWJmYWU2MzJjNGFjYjU4ZjBjNWY4NGQ0N2ZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oCkBAIC0xNDEsNiArMTQxLDcgQEAgcHJpdmF0ZToKICAgICBJbnRSZWN0
IHNjcm9sbGFibGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIHVzZXNNb2NrU2Nyb2xsQW5pbWF0b3IoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IGxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7
CisgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIE5P
VEU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVycmlkZGVuIHNldFNjcm9s
bE9mZnNldCBmcm9tIFNjcm9sbGFibGVBcmVhLgogICAgIHZvaWQgc2Nyb2xsVG8oaW50IG5ld09m
ZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBN
ZW51UHJveHlXaW4uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVu
dVByb3h5V2luLmNwcAppbmRleCAxMWI0ZGZkNmViNWM4NjdkYjA5ZTZhMDQwMzZkMmYyNmEyYjZk
NjFiLi40Mjc1M2E5MzYwYjdhNDY0MDBlOThjMWRkMWY3MTQyNmFjNWMwM2IzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHAK
QEAgLTQxLDYgKzQxLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhclRoZW1lV2luLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlSW5zdGFuY2VIYW5kbGUuaD4KICNpbmNsdWRlIDx3
aW5kb3dzeC5oPgorI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZiBVU0UoRElSRUNUMkQpCiAjaW5jbHVkZSA8V2ViQ29y
ZS9EaXJlY3QyRFV0aWxpdGllcy5oPgpAQCAtMTAzMyw0ICsxMDM1LDEyIEBAIHZvaWQgV2ViUG9w
dXBNZW51UHJveHlXaW46OmNvbmZpZ3VyZUJhY2tpbmdTdG9yZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzaXplKQogICAgIG1faW1tZWRpYXRlQ29udGV4dC0+Q2xlYXJSZW5kZXJUYXJnZXRWaWV3
KG1fcmVuZGVyVGFyZ2V0Vmlldy5nZXQoKSwgRGlyZWN0WDo6Q29sb3JzOjpCbGFuY2hlZEFsbW9u
ZCk7IAogfQogI2VuZGlmCisKK1N0cmluZyBXZWJQb3B1cE1lbnVQcm94eVdpbjo6ZGVidWdEZXNj
cmlwdGlvbigpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxk
ZXIuYXBwZW5kKCJXZWJQb3B1cE1lbnVQcm94eVdpbiAweCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90Pih0aGlzKSwgTG93ZXJjYXNlKSk7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oCmluZGV4IGVmNjgwNmExZGU1
YWIwNzJkOGU5M2I1YWJiZDRmZWY2MDRiMjAyZjMuLjU3Y2YwOGZkZDY3NmUyNDVjMTQ4ZDdkY2Vm
MGYxM2VmNGFlY2E4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9X
ZWJQb3B1cE1lbnVQcm94eVdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9X
ZWJQb3B1cE1lbnVQcm94eVdpbi5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgaGlkZSgpIHsgaGlkZVBvcHVwTWVudSgpOyB9CiAKKyAgICBTdHJpbmcgZGVidWdEZXNjcmlw
dGlvbigpIGNvbnN0IGZpbmFsOworCiBwcml2YXRlOgogICAgIFdlYlBvcHVwTWVudVByb3h5V2lu
KFdlYlZpZXcqLCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50Jik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAppbmRleCA3YjhmMjU4NzFj
OWM0NDllNDE2N2U2YThkYjQwYjVlZWM2Y2RkYzk5Li5iNjg4M2I3MDU5MDI2YWI4NmNmZDYxNmY4
NjcxNWRlZDE2YTQ0YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5oCkBAIC0yNDYsNiArMjQ2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3Qg
V2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBhcmVudFBvaW50
KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZvcmNlVXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVh
ZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgc2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAg
IC8vIFBERlBsdWdpbiBmdW5jdGlvbnMuCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxiYXJzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpp
bmRleCAyOTgwMjRmYjk5NWMxOGI3YWRlYzhkMmI0ZWJjMGE4YzdlMzI5NzNkLi42YmVlZGZkZWUz
NTAyZTg3ODE3OWFjMDUwODNjYzJlMTAwY2YxYzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTg5LDYgKzg5LDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RNb25pdG9yLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+
CisjaW1wb3J0IDx3dGYvSGV4TnVtYmVyLmg+CiAjaW1wb3J0IDx3dGYvVVVJRC5oPgogI2ltcG9y
dCA8d3RmL1dURlNlbWFwaG9yZS5oPgogI2ltcG9ydCA8d3RmL1dvcmtRdWV1ZS5oPgpAQCAtMTI4
Myw2ICsxMjg0LDEzIEBAIEludFBvaW50IFBERlBsdWdpbjo6Y29udmVydEZyb21Db250YWluaW5n
Vmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsCiAgICAgcmV0dXJuIHBvaW50
OwogfQogCitTdHJpbmcgUERGUGx1Z2luOjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIlBERlBsdWdpbiAw
eCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgTG93ZXJjYXNlKSk7
CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwogYm9vbCBQREZQbHVnaW46Omhh
bmRsZVNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBn
cmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gc2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395600</attachid>
            <date>2020-04-06 12:22:21 -0700</date>
            <delta_ts>2020-04-06 14:59:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210042-20200406122220.patch</filename>
            <type>text/plain</type>
            <size>20307</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcwYWUwMzkwNGNlOGY1
YzJhZTQ3OTY4MGM5MGJlNzY2YzE5ZmVlMy4uNTQyMjExMDFmZmQxNTM1MjRiNzJhODY0N2Q1ODJm
MDlmOWQyZjBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA0LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2Nyb2xs
YWJsZUFyZWEgVGV4dFN0cmVhbS1sb2dnYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2Nyb2xsYWJsZUFyZWEgaXMgYSBwdXJlIHZpcnR1YWwgYmFz
ZSBjbGFzcywgc28gaGFzIHRvIGR1bXAgdmlhIGEgdmlydHVhbCBmdW5jdGlvbiwKKyAgICAgICAg
c28gYWRkIGRlYnVnRGVzY3JpcHRpb24oKSBhbmQgaW1wbGVtZW50IGl0IGluIGRlcml2ZWQgY2xh
c3Nlcy4KKworICAgICAgICBNYWtlIHRoZSBjb21tb24gcGF0dGVybiBiZSB0aGF0IG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYsIC4uLikgY2FsbHMgZGVidWdEZXNjcmlwdGlvbi4KKworICAgICAgICAq
IHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRlYnVnRGVzY3JpcHRp
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGFn
ZS9GcmFtZS5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZGVi
dWdEZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpkZWJ1Z0Rlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21w
b3NpdGluZ0xheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6ZGVidWdEZXNjcmlwdGlvbiBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKwogMjAyMC0wNC0wMSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JvbGwgbGF0
Y2hpbmcgc3RhdGUgaXMgbm90IGEgc3RhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzU1YjQ4NzM1NjllZDQ3NzEx
YzA2MGYzZGM1OGRiMDM0YmUwNjAyNi4uMWNhNDUzZmQ3Yzg2MTUyNGZhNDZjMzdmMTE1ZjIzYzFk
ZDI1OWM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNC0wNiAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFNjcm9sbGFibGVB
cmVhIFRleHRTdHJlYW0tbG9nZ2FibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMDA0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNjcm9sbGFibGVBcmVhIGlzIGEgcHVyZSB2aXJ0dWFsIGJhc2UgY2xh
c3MsIHNvIGhhcyB0byBkdW1wIHZpYSBhIHZpcnR1YWwgZnVuY3Rpb24sCisgICAgICAgIHNvIGFk
ZCBkZWJ1Z0Rlc2NyaXB0aW9uKCkgYW5kIGltcGxlbWVudCBpdCBpbiBkZXJpdmVkIGNsYXNzZXMu
CisKKyAgICAgICAgTWFrZSB0aGUgY29tbW9uIHBhdHRlcm4gYmUgdGhhdCBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mLCAuLi4pIGNhbGxzIGRlYnVnRGVzY3JpcHRpb24uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UG9wdXBNZW51UHJveHlXaW46OmRlYnVnRGVzY3JpcHRpb24gY29uc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmRlYnVnRGVzY3Jp
cHRpb24gY29uc3QpOgorCiAyMDIwLTA0LTA2ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNv
bT4KIAogICAgICAgICBDcmFzaFRyYWNlcjogTW9iaWxlU2FmYXJpIGF0IFdlYktpdDogV2ViS2l0
OjpTeXN0ZW1QcmV2aWV3Q29udHJvbGxlcjo6dXBkYXRlUHJvZ3Jlc3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKaW5kZXggMDUxZmRiM2VlNWM1YzMzZTY4YjFiNmQwZDAwYzFkMDkwM2I3OWQ1Ni4uZTYyNzFk
N2U4NjAyM2JjZTAzMTkzNzUyODA1ZjIxZWU5NmQyMzVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
QEAgLTEwMyw2ICsxMDMsNyBAQAogI2luY2x1ZGUgIm5wcnVudGltZV9pbXBsLmgiCiAjaW5jbHVk
ZSAicnVudGltZV9yb290LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVndWxhckV4cHJl
c3Npb24uaD4KKyNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWRMZWFrQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC0xMDU4LDkgKzEwNTksMjMgQEAgdm9p
ZCBGcmFtZTo6c2VsZk9ubHlEZXJlZigpCiAgICAgZGVyZWYoKTsKIH0KIAorU3RyaW5nIEZyYW1l
OjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7
CisKKyAgICBidWlsZGVyLmFwcGVuZCgiRnJhbWUgMHgiX3MsIGhleChyZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4odGhpcyksIExvd2VyY2FzZSkpOworICAgIGlmIChpc01haW5GcmFtZSgpKQor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiIChtYWluIGZyYW1lKSJfcyk7CisKKyAgICBpZiAoYXV0
byBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcg
JywgZG9jdW1lbnQtPmRvY3VtZW50VVJJKCkpOworICAgIAorICAgIHJldHVybiBidWlsZGVyLnRv
U3RyaW5nKCk7Cit9CisKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IEZyYW1lJiBmcmFtZSkKIHsKLSAgICB0cyA8PCAiRnJhbWUgIiA8PCAmZnJhbWUgPDwgIiB2
aWV3ICIgPDwgZnJhbWUudmlldygpIDw8ICIgKGlzIG1haW4gZnJhbWUgIiA8PCBmcmFtZS5pc01h
aW5GcmFtZSgpIDw8ICIpICIgPDwgKGZyYW1lLmRvY3VtZW50KCkgPyBmcmFtZS5kb2N1bWVudCgp
LT5kb2N1bWVudFVSSSgpIDogZW1wdHlTdHJpbmcoKSk7CisgICAgdHMgPDwgZnJhbWUuZGVidWdE
ZXNjcmlwdGlvbigpOwogICAgIHJldHVybiB0czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDI1
MjBlMDM3YTU0OTMwZmExZTFiZjcwZTFjYzJhYTE4MzZiNTdiODguLmViOTdhNjFmYzg4YTBjMDc2
ODdhYjVkMmIxM2E0NTE3MGNiYjNiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTE5MCw2ICsxOTAs
OCBAQCBwdWJsaWM6CiAKICAgICBib29sIHJlcXVlc3RET01QYXN0ZUFjY2VzcygpOwogCisgICAg
U3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdDsKKwogLy8gPT09PT09PT0gQWxsIHB1Ymxp
YyBmdW5jdGlvbnMgYmVsb3cgdGhpcyBwb2ludCBhcmUgY2FuZGlkYXRlcyB0byBtb3ZlIG91dCBv
ZiBGcmFtZSBpbnRvIGFub3RoZXIgY2xhc3MuID09PT09PT09CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGluamVjdFVzZXJTY3JpcHRzKFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAwMTc3NmZjZDAxNGUyZDhjNGE3ZjdhYzdkNTExM2Nh
Y2I0ZTM1N2NjLi5mNTliYWE4YzRhYjNlMTMwYTdjNGQ2N2ZmZmI4ZGMxNzhjOGNjODRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xMDMsMTMgKzEwMywxMyBAQAogI2luY2x1ZGUg
IlZlbG9jaXR5RGF0YS5oIgogI2luY2x1ZGUgIlZpc3VhbFZpZXdwb3J0LmgiCiAjaW5jbHVkZSAi
V2hlZWxFdmVudFRlc3RNb25pdG9yLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5o
PgotCisjaW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3
dGYvU3lzdGVtVHJhY2luZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAog
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9y
ZS5oIgpAQCAtMTQyMywxMSArMTQyMywxNSBAQCB2b2lkIEZyYW1lVmlldzo6bG9nTW9ja1Njcm9s
bEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwogICAgIGlmIChmcmFtZSgpLmlzTWFpbkZyYW1lKCkpCiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTWFpbiIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiRnJhbWVWaWV3OiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZChtZXNzYWdlKTsKKyAgICBidWls
ZGVyLmFwcGVuZCgiRnJhbWVWaWV3OiAiLCBtZXNzYWdlKTsKICAgICBkb2N1bWVudC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RGVidWcsIGJ1
aWxkZXIudG9TdHJpbmcoKSk7CiB9CiAKK1N0cmluZyBGcmFtZVZpZXc6OmRlYnVnRGVzY3JpcHRp
b24oKSBjb25zdAoreworICAgIHJldHVybiBtYWtlU3RyaW5nKCJGcmFtZVZpZXcgMHgiLCBoZXgo
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHRoaXMpLCBMb3dlcmNhc2UpLCAnICcsIGZyYW1l
KCkuZGVidWdEZXNjcmlwdGlvbigpKTsKK30KKwogYm9vbCBGcmFtZVZpZXc6OnN0eWxlSGlkZXNT
Y3JvbGxiYXJXaXRoT3JpZW50YXRpb24oU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24p
IGNvbnN0CiB7CiAgICAgYXV0byBlbGVtZW50ID0gcm9vdEVsZW1lbnRGb3JDdXN0b21TY3JvbGxi
YXJQYXJ0U3R5bGUoUHNldWRvSWQ6OlNjcm9sbGJhcik7CkBAIC01NDU4LDcgKzU0NjIsNyBAQCBi
b29sIEZyYW1lVmlldzo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZy
YW1lVmlldyYgdmlldykKIHsKLSAgICB0cyA8PCAiRnJhbWVWaWV3ICIgPDwgJnZpZXcgPDwgIiBm
cmFtZSAiIDw8IHZpZXcuZnJhbWUoKTsKKyAgICB0cyA8PCB2aWV3LmRlYnVnRGVzY3JpcHRpb24o
KTsKICAgICByZXR1cm4gdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGJiOTU3
ODVjYzgxMjdhMzdmZjYxNTA2ZmY2ODE2MmY0ODE1N2RkZjQuLjBhZWNkZThhYmMyNTYwOTg1ZmQx
MjE5NWY2ZDAyODI5MmEzMmI0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjY0LDYg
KzY2NCw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaW5VcGRhdGVFbWJlZGRlZE9iamVjdHMoKSBj
b25zdCB7IHJldHVybiBtX2luVXBkYXRlRW1iZWRkZWRPYmplY3RzOyB9CiAKKyAgICBTdHJpbmcg
ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOworCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBz
Y3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJ
bnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KSBmaW5hbDsKICAg
ICB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDJmZDE1Zjdi
MzAxN2IxYzdlZTdhMjFjODYxODY1NGI5NTExMDkyMjcuLjNlMjE2ZTE2ZGY1ZWIyYTI5ZWIxNmEx
MTVkMzk5MGUwMzY1ZDgzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3Bw
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRl
ICJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgPHd0
Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC0xNTMyLDYgKzE1MzMsMTEgQEAgSW50UG9pbnQg
U2Nyb2xsVmlldzo6bG9jYXRpb25PZkNvbnRlbnRzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitTdHJpbmcgU2Nyb2xsVmlldzo6ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoIlNjcm9sbFZpZXcgMHgiLCBoZXgocmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KHRoaXMpLCBMb3dlcmNhc2UpKTsKK30KKwogI2lmICFQTEFURk9STShDT0NP
QSkKIAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUFkZENoaWxkKFdpZGdldCopCkBAIC0xNTQy
LDEwICsxNTQ4LDYgQEAgdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlbW92ZUNoaWxkKFdpZGdl
dCopCiB7CiB9CiAKLSNlbmRpZgotCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotCiB2b2lkIFNjcm9s
bFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsYmFyc1N1cHByZXNzZWQoYm9vbCkKIHsKIH0KQEAgLTE1
NTgsMTAgKzE1NjAsNiBAQCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsYmFyT3Zl
cmxheVN0eWxlKFNjcm9sbGJhck92ZXJsYXlTdHlsZSkKIHsKIH0KIAotI2VuZGlmCi0KLSNpZiAh
UExBVEZPUk0oQ09DT0EpCi0KIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJN
b2RlcygpCiB7CiB9CkBAIC0xNjUyLDYgKzE2NTAsNiBAQCBib29sIFNjcm9sbFZpZXc6OnBsYXRm
b3JtSXNPZmZzY3JlZW4oKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2VuZGlmCisj
ZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKaW5kZXggYjY0YWEzYmEwNjZjOWNkYWQ5MGExZmNiYTFhMTU0YjIwMzBiYjUxZS4uMTRh
ZDM4NGRiZjE3NTljYTVkNjYzNzYzZjk4N2NlZmZlZjBhOWFiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuaApAQCAtNDQ5LDYgKzQ0OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBz
ZXRIYXNTY3JvbGxiYXJJbnRlcm5hbChSZWZQdHI8U2Nyb2xsYmFyPiYsIFNjcm9sbGJhck9yaWVu
dGF0aW9uLCBib29sIGhhc0JhciwgYm9vbCogY29udGVudFNpemVBZmZlY3RlZCk7CiAKICAgICBi
b29sIGlzU2Nyb2xsVmlldygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBTdHJp
bmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBpbml0KCk7
CiAgICAgdm9pZCBkZXN0cm95KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5jcHAKaW5kZXggNWJkYTg1N2JiOTFiMTYyMjMwMjVjMGU2OGQ4MDE4MWY4YWRmZTBlYi4u
Y2RhZDM2MDFkMzlhNTM3Y2ZhYzYwZWU3NTVlMTgzMmIxYWFkYzRkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNzY5LDQgKzc2OSwxMCBAQCB2b2lk
IFNjcm9sbGFibGVBcmVhOjpjb21wdXRlU2Nyb2xsYmFyVmFsdWVBbmRPdmVyaGFuZyhmbG9hdCBj
dXJyZW50UG9zaXRpb24sIGZsbwogICAgIH0KIH0KIAorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQorewor
ICAgIHRzIDw8IHNjcm9sbGFibGVBcmVhLmRlYnVnRGVzY3JpcHRpb24oKTsKKyAgICByZXR1cm4g
dHM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oCmluZGV4IGQyMDNhZWJlNWM1YjcyNjY4MDg4YzgxYTkyZmFmZDY1Nzk5
NGY1OTQuLjQ1ZmFjMDI5YmQzNmJlOGI4N2I5MzMzNTc5M2QzODI2NTkwNWMxOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMzEsNiArMzEsMTAgQEAKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVz
cGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVhbTsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGbG9hdFBvaW50OwpAQCAtMzQ1LDYgKzM0OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgbG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmKSBjb25z
dCB7IH07CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0ID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1Z0Rl
c2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQg
U2Nyb2xsYWJsZUFyZWEoKTsKQEAgLTQxNCw0ICs0MjAsNiBAQCBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzIDogMTsKIH07CiAKK1dURjo6VGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBTY3JvbGxhYmxlQXJlYSYp
OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uY3BwCmluZGV4IDdjN2JmZGZiMThjNWJlNjdlMTcwZGE5NjQzYjljM2Rk
ZTVjMzJkZjQuLjMxZDkzNTQ4ODM4YTA0ZTc2NzA0OGM4NTAzNmU3NGMyNzExN2QxM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCkBAIC00OSw3ICs0
OSw5IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVXaW4uaCIKICNpbmNsdWRlICJUZXh0UnVu
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUluc3RhbmNlSGFuZGxlLmgiCisjaW5jbHVkZSA8d3RmL0hl
eE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9XaW5kb3dzRXh0cmFzLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUg
PHdpbmRvd3N4Lmg+CkBAIC0xMDgyLDYgKzEwODQsMTEgQEAgTFJFU1VMVCBQb3B1cE1lbnVXaW46
OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBs
UGEKICAgICByZXR1cm4gbFJlc3VsdDsKIH0KIAorU3RyaW5nIFBvcHVwTWVudVdpbjo6ZGVidWdE
ZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIlBvcHVwTWVudVdp
biAweCIsIGhleChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4odGhpcyksIExvd2VyY2FzZSkp
OworfQorCiBBY2Nlc3NpYmxlUG9wdXBNZW51OjpBY2Nlc3NpYmxlUG9wdXBNZW51KGNvbnN0IFBv
cHVwTWVudVdpbiYgcG9wdXBNZW51KQogICAgIDogbV9wb3B1cE1lbnUocG9wdXBNZW51KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCmluZGV4IDM1MjliOGYy
ODc5Mzc3MzdkOGYyNDMxNmVjZDZjMjlkNGQ3NjExYWIuLjdkNTdkYWE5Y2RmYTgxYzRlNWQ3NTdh
NmNiNjVjNTA0NDQzOTc1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9Qb3B1cE1lbnVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBN
ZW51V2luLmgKQEAgLTQ5LDYgKzQ5LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIExQQ1dTVFIg
cG9wdXBDbGFzc05hbWUoKTsKIAorICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3Qg
ZmluYWw7CisKIHByaXZhdGU6CiAgICAgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IDgyMWM0YWUyMTc3N2JjMzY1OWEwZDhhZDA4ZDkyNzMxODg2MDcxOGEu
LjJlOTBmMGQ0MWMwYzY3MzU3OGFkMTI3MmU0ZmMwMTc4MmJjY2I1ZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBACiAjaW5jbHVk
ZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRl
c3RNb25pdG9yLmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvSGV4TnVtYmVy
Lmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMzYyNSw2ICszNjI2
LDM2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKSBjb25zdAogICAgIHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1Zywg
IlJlbmRlckxheWVyOiAiICsgbWVzc2FnZSk7CiB9CiAKK1N0cmluZyBSZW5kZXJMYXllcjo6ZGVi
dWdEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
IGJ1aWxkZXIuYXBwZW5kKCJSZW5kZXJMYXllciAweCJfcywgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90Pih0aGlzKSwgTG93ZXJjYXNlKSwgJyAnLCBzaXplKCkud2lkdGgoKSwgJ3gnLCBz
aXplKCkuaGVpZ2h0KCkpOworCisgICAgaWYgKHRyYW5zZm9ybSgpKQorICAgICAgICBidWlsZGVy
LmFwcGVuZCgiIGhhcyB0cmFuc2Zvcm0iX3MpOworCisgICAgaWYgKGhhc0ZpbHRlcigpKQorICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiIGhhcyBmaWx0ZXIiX3MpOworCisgICAgaWYgKGhhc0JhY2tk
cm9wRmlsdGVyKCkpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgaGFzIGJhY2tkcm9wIGZpbHRl
ciJfcyk7CisKKyAgICBpZiAoaGFzQmxlbmRNb2RlKCkpCisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCIgaGFzIGJsZW5kIG1vZGUiX3MpOworCisgICAgaWYgKGlzb2xhdGVzQmxlbmRpbmcoKSkKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIiBpc29sYXRlcyBibGVuZGluZyJfcyk7CisKKyAgICBpZiAo
aXNDb21wb3NpdGVkKCkpIHsKKyAgICAgICAgLy8gT2ggZm9yIGJldHRlciBTdHJpbmdCdWlsZGVy
L1RleHRTdHJlYW0gaW50ZWdyYXRpb24uCisgICAgICAgIFRleHRTdHJlYW0gc3RyZWFtOworICAg
ICAgICBzdHJlYW0gPDwgKmJhY2tpbmcoKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyZWFt
LnJlbGVhc2UoKSk7CisgICAgfQorCisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30K
KwogaW50IFJlbmRlckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKE92ZXJsYXlTY3JvbGxi
YXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSkgY29uc3QKIHsKICAgICBpZiAoIW1fdkJhcgpAQCAt
NzAxMSwxOSArNzA0Miw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFt
JiB0cywgQ2xpcFJlY3RzVHlwZSBjbGlwUmVjdHNUeXBlKQogCiBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpCiB7Ci0gICAgdHMg
PDwgIlJlbmRlckxheWVyICIgPDwgJmxheWVyIDw8ICIgIiA8PCBsYXllci5zaXplKCk7Ci0gICAg
aWYgKGxheWVyLnRyYW5zZm9ybSgpKQotICAgICAgICB0cyA8PCAiIGhhcyB0cmFuc2Zvcm0iOwot
ICAgIGlmIChsYXllci5oYXNGaWx0ZXIoKSkKLSAgICAgICAgdHMgPDwgIiBoYXMgZmlsdGVyIjsK
LSAgICBpZiAobGF5ZXIuaGFzQmFja2Ryb3BGaWx0ZXIoKSkKLSAgICAgICAgdHMgPDwgIiBoYXMg
YmFja2Ryb3AgZmlsdGVyIjsKLSAgICBpZiAobGF5ZXIuaGFzQmxlbmRNb2RlKCkpCi0gICAgICAg
IHRzIDw8ICIgaGFzIGJsZW5kIG1vZGUiOwotICAgIGlmIChsYXllci5pc29sYXRlc0JsZW5kaW5n
KCkpCi0gICAgICAgIHRzIDw8ICIgaXNvbGF0ZXMgYmxlbmRpbmciOwotICAgIGlmIChsYXllci5p
c0NvbXBvc2l0ZWQoKSkKLSAgICAgICAgdHMgPDwgIiAiIDw8ICpsYXllci5iYWNraW5nKCk7Cisg
ICAgdHMgPDwgbGF5ZXIuZGVidWdEZXNjcmlwdGlvbigpOwogICAgIHJldHVybiB0czsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBkMTEzOTNlMDdkZWJhYWNi
ODViYTMxMjQ5MmZjYjA0ZGNkZTU3ZmMxLi5kMTY1OWIwZTMyMDdkNmEyZTI2NjJlODM0NzdkY2I0
ZjRmZGY4MDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtOTI2
LDYgKzkyNiw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW52YWxpZGF0ZUV2ZW50UmVnaW9uKCk7
CiAKKyAgICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOworCiBwcml2YXRl
OgogCiAgICAgdm9pZCBzZXROZXh0U2libGluZyhSZW5kZXJMYXllciogbmV4dCkgeyBtX25leHQg
PSBuZXh0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCmluZGV4IDNhMDM4Y2U4YTNhMmU4NzgwMTEzYjRkZTBjMTY3ZTQxMGQxN2Ey
NzMuLmY1NGQ4NTAyNWEwZWNmNzk2ZmU0NzAwZGQyNDkxNDg1YjBiNzlhMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC03
MTAsNyArNzEwLDcgQEAgc3RhdGljIE9wdGlvbmFsPFNjcm9sbGluZ05vZGVJRD4gZnJhbWVIb3N0
aW5nTm9kZUZvckZyYW1lKEZyYW1lJiBmcmFtZSkKIC8vIFJldHVybnMgdHJ1ZSBvbiBhIHN1Y2Nl
c3NmdWwgdXBkYXRlLgogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0
aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGVUeXBlLCBSZW5kZXJMYXllciog
dXBkYXRlUm9vdCkKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVhbSA8
PCAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yICIgPDwgdGhpcyA8PCAiIHVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzICIgPDwgdXBkYXRlVHlwZSA8PCAiIGNvbnRlbnRMYXllcnNDb3VudCAiIDw8IG1fY29u
dGVudExheWVyc0NvdW50KTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oQ29tcG9zaXRpbmcsIHN0cmVh
bSA8PCAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yICIgPDwgdGhpcyA8PCAiIFsiIDw8IG1fcmVuZGVy
Vmlldy5mcmFtZVZpZXcoKSA8PCAiXSB1cGRhdGVDb21wb3NpdGluZ0xheWVycyAiIDw8IHVwZGF0
ZVR5cGUgPDwgIiBjb250ZW50TGF5ZXJzQ291bnQgIiA8PCBtX2NvbnRlbnRMYXllcnNDb3VudCk7
CiAKICAgICBUcmFjZVNjb3BlIHRyYWNpbmdTY29wZShDb21wb3NpdGluZ1VwZGF0ZVN0YXJ0LCBD
b21wb3NpdGluZ1VwZGF0ZUVuZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmNwcAppbmRleCA3NzhkZjM4MjNjMGVmMDIwZjhkMzIyZjI1ZDNjYWE2ZWQ5OGRjMjg1
Li5iNTc0NzdkMmRjYWIxNGVhMzI0M2NiZDY4ZGQxMzFkYTNjMjdiNzg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC05MTAsNiArOTEwLDExIEBAIHZv
aWQgUmVuZGVyTGlzdEJveDo6bG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpPdGhlciwgTWVzc2FnZUxldmVsOjpEZWJ1ZywgIlJlbmRlckxpc3RCb3g6ICIg
KyBtZXNzYWdlKTsKIH0KIAorU3RyaW5nIFJlbmRlckxpc3RCb3g6OmRlYnVnRGVzY3JpcHRpb24o
KSBjb25zdAoreworICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OmRlYnVnRGVzY3JpcHRpb24oKTsK
K30KKwogUmVmPFNjcm9sbGJhcj4gUmVuZGVyTGlzdEJveDo6Y3JlYXRlU2Nyb2xsYmFyKCkKIHsK
ICAgICBSZWZQdHI8U2Nyb2xsYmFyPiB3aWRnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guaAppbmRleCBmNDg1ODBhNGM3NWM1YmM4MDdlN2U5NzQ3ZjJkYjFkZTg3ZWZj
YmM3Li44YzVhOGZhZjIwNTc1YmZhZTYzMmM0YWNiNThmMGM1Zjg0ZDQ3ZmEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTE0MSw2ICsxNDEsNyBAQCBwcml2
YXRlOgogICAgIEludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveChib29sKiA9IG51bGxw
dHIpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgdXNlc01vY2tTY3JvbGxBbmltYXRvcigpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgbG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJp
bmcmKSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZp
bmFsOwogCiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgdGhlIG92
ZXJyaWRkZW4gc2V0U2Nyb2xsT2Zmc2V0IGZyb20gU2Nyb2xsYWJsZUFyZWEuCiAgICAgdm9pZCBz
Y3JvbGxUbyhpbnQgbmV3T2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uY3BwCmluZGV4IDExYjRkZmQ2ZWI1Yzg2N2RiMDll
NmEwNDAzNmQyZjI2YTJiNmQ2MWIuLjRjZTk3YWI0OWIyZDY4Nzc4MWVmMjg3ZDhiMzQ5ZGRlOTdk
NWE5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1l
bnVQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVw
TWVudVByb3h5V2luLmNwcApAQCAtNDEsNiArNDEsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2Ny
b2xsYmFyVGhlbWVXaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVJbnN0YW5jZUhhbmRs
ZS5oPgogI2luY2x1ZGUgPHdpbmRvd3N4Lmg+CisjaW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIFVTRShESVJFQ1QyRCkK
ICNpbmNsdWRlIDxXZWJDb3JlL0RpcmVjdDJEVXRpbGl0aWVzLmg+CkBAIC0xMDMzLDQgKzEwMzUs
MTAgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eVdpbjo6Y29uZmlndXJlQmFja2luZ1N0b3JlKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCiAgICAgbV9pbW1lZGlhdGVDb250ZXh0LT5DbGVh
clJlbmRlclRhcmdldFZpZXcobV9yZW5kZXJUYXJnZXRWaWV3LmdldCgpLCBEaXJlY3RYOjpDb2xv
cnM6OkJsYW5jaGVkQWxtb25kKTsgCiB9CiAjZW5kaWYKKworU3RyaW5nIFdlYlBvcHVwTWVudVBy
b3h5V2luOjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbWFrZVN0cmlu
ZygiV2ViUG9wdXBNZW51UHJveHlXaW4gMHgiLCBoZXgocmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KHRoaXMpLCBMb3dlcmNhc2UpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oCmlu
ZGV4IGVmNjgwNmExZGU1YWIwNzJkOGU5M2I1YWJiZDRmZWY2MDRiMjAyZjMuLjU3Y2YwOGZkZDY3
NmUyNDVjMTQ4ZDdkY2VmMGYxM2VmNGFlY2E4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oCkBAIC01OSw2ICs1OSw4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgaGlkZSgpIHsgaGlkZVBvcHVwTWVudSgpOyB9CiAKKyAgICBTdHJp
bmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOworCiBwcml2YXRlOgogICAgIFdlYlBv
cHVwTWVudVByb3h5V2luKFdlYlZpZXcqLCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50Jik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaApp
bmRleCA3YjhmMjU4NzFjOWM0NDllNDE2N2U2YThkYjQwYjVlZWM2Y2RkYzk5Li5iNjg4M2I3MDU5
MDI2YWI4NmNmZDYxNmY4NjcxNWRlZDE2YTQ0YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCkBAIC0yNDYsNiArMjQ2LDcgQEAgcHJp
dmF0ZToKICAgICBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9T
Y3JvbGxiYXIoY29uc3QgV2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHBhcmVudFBvaW50KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZvcmNlVXBkYXRlU2Nyb2xs
YmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25z
dCBmaW5hbDsKIAogICAgIC8vIFBERlBsdWdpbiBmdW5jdGlvbnMuCiAgICAgdm9pZCB1cGRhdGVT
Y3JvbGxiYXJzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbi5tbQppbmRleCAyOTgwMjRmYjk5NWMxOGI3YWRlYzhkMmI0ZWJjMGE4YzdlMzI5
NzNkLi4xMDE5NWZhY2IxNzMzODJhZjljZTM4YjQ3ZWJhZDIwYzc5ZWQxNTcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTg5
LDYgKzg5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RNb25pdG9yLmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9t
YWMvTlNNZW51U1BJLmg+CisjaW1wb3J0IDx3dGYvSGV4TnVtYmVyLmg+CiAjaW1wb3J0IDx3dGYv
VVVJRC5oPgogI2ltcG9ydCA8d3RmL1dURlNlbWFwaG9yZS5oPgogI2ltcG9ydCA8d3RmL1dvcmtR
dWV1ZS5oPgpAQCAtMTI4Myw2ICsxMjg0LDExIEBAIEludFBvaW50IFBERlBsdWdpbjo6Y29udmVy
dEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsCiAg
ICAgcmV0dXJuIHBvaW50OwogfQogCitTdHJpbmcgUERGUGx1Z2luOjpkZWJ1Z0Rlc2NyaXB0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbWFrZVN0cmluZygiUERGUGx1Z2luIDB4IiwgaGV4KHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih0aGlzKSwgTG93ZXJjYXNlKSk7Cit9CisKIGJvb2wg
UERGUGx1Z2luOjpoYW5kbGVTY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIHNjcm9sbChkaXJlY3Rpb24s
IGdyYW51bGFyaXR5KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>