<?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>200609</bug_id>
          
          <creation_ts>2019-08-09 23:58:25 -0700</creation_ts>
          <short_desc>Disable ContentChangeObserver on the mobile version of youtube.com</short_desc>
          <delta_ts>2023-04-11 01:20:00 -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>New Bugs</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>
          
          <blocked>255275</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>mjs</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1560187</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-09 23:58:25 -0700</bug_when>
    <thetext>Disable ContentChangeObserver on youtube.com</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560191</commentid>
    <comment_count>1</comment_count>
      <attachid>376000</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-10 00:04:24 -0700</bug_when>
    <thetext>Created attachment 376000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560192</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-10 00:04:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/54015403&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560193</commentid>
    <comment_count>3</comment_count>
      <attachid>376001</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-10 00:09:46 -0700</bug_when>
    <thetext>Created attachment 376001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560194</commentid>
    <comment_count>4</comment_count>
      <attachid>376001</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2019-08-10 00:11:33 -0700</bug_when>
    <thetext>Comment on attachment 376001
Patch

We should almost certainly do this only in mobile content mode. Otherwise, this change is likely to break YouTube on iPad as it was necessary for reasonable hover interaction. (ContentChangeObserver isn&apos;t a web platform feature, it&apos;s just part of the new hover heuristic for desktop websites on iPad.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560195</commentid>
    <comment_count>5</comment_count>
      <attachid>376001</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-10 00:16:24 -0700</bug_when>
    <thetext>Comment on attachment 376001
Patch

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

&gt; Source/WebCore/page/Quirks.cpp:141
&gt; +bool Quirks::shouldDisableContentChangeObserver() const

I&apos;m not sure where or how to check if it&apos;s in mobile content mode.  I have a Document here.  Any tips would be appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560196</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-10 00:24:02 -0700</bug_when>
    <thetext>I&apos;m going to bed.  If someone wants to take this one home, be my guest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560197</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-08-10 00:41:34 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #5)
&gt; Comment on attachment 376001 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=376001&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Quirks.cpp:141
&gt; &gt; +bool Quirks::shouldDisableContentChangeObserver() const
&gt; 
&gt; I&apos;m not sure where or how to check if it&apos;s in mobile content mode.  I have a
&gt; Document here.  Any tips would be appreciated.

You want WebsitePoliciesData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560199</commentid>
    <comment_count>8</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2019-08-10 00:51:52 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #7)
&gt; (In reply to Alex Christensen from comment #5)
&gt; &gt; Comment on attachment 376001 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=376001&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/Quirks.cpp:141
&gt; &gt; &gt; +bool Quirks::shouldDisableContentChangeObserver() const
&gt; &gt; 
&gt; &gt; I&apos;m not sure where or how to check if it&apos;s in mobile content mode.  I have a
&gt; &gt; Document here.  Any tips would be appreciated.
&gt; 
&gt; You want WebsitePoliciesData

That doesn&apos;t seem to exist anywhere in WebCore, and it also doesn&apos;t seem to directly contain the content mode (though it does contain some things controlled by it, like meta viewport mode). In fact I don&apos;t think any explicit knowledge of the content mode exists in the WebContent process. 

Could you be a bit more explicit in your suggestion? Does WebsitePoliciesData contain something that can be used to infer the content mode, and if so how does one get to it from WebCore?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560200</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-08-10 00:55:32 -0700</bug_when>
    <thetext>(In reply to Maciej Stachowiak from comment #8)
&gt; (In reply to Tim Horton from comment #7)
&gt; &gt; (In reply to Alex Christensen from comment #5)
&gt; &gt; &gt; Comment on attachment 376001 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=376001&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/page/Quirks.cpp:141
&gt; &gt; &gt; &gt; +bool Quirks::shouldDisableContentChangeObserver() const
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m not sure where or how to check if it&apos;s in mobile content mode.  I have a
&gt; &gt; &gt; Document here.  Any tips would be appreciated.
&gt; &gt; 
&gt; &gt; You want WebsitePoliciesData
&gt; 
&gt; That doesn&apos;t seem to exist anywhere in WebCore, and it also doesn&apos;t seem to
&gt; directly contain the content mode (though it does contain some things
&gt; controlled by it, like meta viewport mode). In fact I don&apos;t think any
&gt; explicit knowledge of the content mode exists in the WebContent process. 

Agreed, but it&apos;s where you would go with such a bit if you were to add one.

&gt; Could you be a bit more explicit in your suggestion? Does
&gt; WebsitePoliciesData contain something that can be used to infer the content
&gt; mode, and if so how does one get to it from WebCore?

You add a bit to WebsitePoliciesData, a bit to DocumentLoader, propagate it in WebsitePoliciesData::applyToDocumentLoader, and then you can get to it from WebCore.

Not beautiful, but it&apos;s how all the others work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560231</commentid>
    <comment_count>10</comment_count>
      <attachid>376001</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-10 08:26:04 -0700</bug_when>
    <thetext>Comment on attachment 376001
Patch

Rather than disable all content observation, i think it would be better to figure out which specific behavior causes the bug. Content Observation is about whether to simulate hover or just send simulated clicks. There&apos;s a log channel you can turn on to figure out what it&apos;s doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560235</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-10 08:58:35 -0700</bug_when>
    <thetext>Good morning!  I&apos;m back on this.  I&apos;ll add a mobile content only check and bisect this change to find out which behavior change is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560239</commentid>
    <comment_count>12</comment_count>
      <attachid>376013</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-10 10:02:30 -0700</bug_when>
    <thetext>Created attachment 376013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560249</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-10 12:46:58 -0700</bug_when>
    <thetext>Alan is looking into whether the quirk check should be moved to ContentChangeObserver::shouldObserveVisibilityChangeForElement (which I verified also fixes the problem) or an even less invasive change that has lower risk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560264</commentid>
    <comment_count>14</comment_count>
      <attachid>376013</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2019-08-10 14:58:43 -0700</bug_when>
    <thetext>Comment on attachment 376013
Patch

This change seems to address previous comments and looks like it will work. I&apos;m gonna guess quirks are untestable, but if not I&apos;d suggest a test case. I think it would be good to land some working version ASAP, and consider refining further from there.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560269</commentid>
    <comment_count>15</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-08-10 15:37:22 -0700</bug_when>
    <thetext>the mobile version of youtube.com 
1. constructs a visible and actionable content
2. attaches it to the tree
3. and later destroys it completely
Content change observer (historically) stops at the first visible change.

I&apos;ve seen this type of behavior on another page and was planning to
1. not stop at the first visible change but instead collect all the qualified nodes.
2. check if the collected nodes are still considered visible right at the end of the observation window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560270</commentid>
    <comment_count>16</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-10 15:46:36 -0700</bug_when>
    <thetext>Alan&apos;s plan sounds like a good plan longer term, but too risky for this particular change.  I committed the patch to http://trac.webkit.org/r248502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560273</commentid>
    <comment_count>17</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-08-10 15:49:06 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #16)
&gt; Alan&apos;s plan sounds like a good plan longer term, but too risky for this
&gt; particular change.  I committed the patch to http://trac.webkit.org/r248502
Agree!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376000</attachid>
            <date>2019-08-10 00:04:24 -0700</date>
            <delta_ts>2019-08-10 00:09:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200609-20190810000423.patch</filename>
            <type>text/plain</type>
            <size>10932</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTliZjZiYmFiYjllOWJj
YWJkNzUzNmViNjJmZjE4NWRlM2VjZjdiYS4uNzgxYTZiYTRkYzdlNTgyZGQxOWQzMjdhYzFiYjhl
ZDlmOGZjNmRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA4LTA5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRGlzYWJs
ZSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIgb24geW91dHViZS5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDYwOQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTQwMTU0MDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiB3YXRjaGluZyBhIHlvdXR1YmUgdmlkZW8gb24gaU9TIHdpdGggIkF1dG9w
bGF5IiBzd2l0Y2hlZCB0byBvZmYsCisgICAgICAgIHVwb24gZmluaXNoaW5nIHRoZSB2aWRlbyBh
bGwgY2xpY2tzIGFueXdoZXJlIG9uIHRoZSBwYWdlIGFyZSBlZmZlY3RpdmVseSBpZ25vcmVkLgor
ICAgICAgICBEaXNhYmxpbmcgQ29udGVudENoYW5nZU9ic2VydmVyIGZpeGVzIHRoaXMgYnVnLiAg
SSB2ZXJpZmllZCB0aGlzIG1hbnVhbGx5LgorICAgICAgICBUaGlzIHN3aXRjaCB3YXMgaW50cm9k
dWNlZCBpbiByMjQyNjIxLCBhbmQgaXQgZGlzYWJsZXMgYSBuZXcgZmVhdHVyZSwgc28gdGhlcmUg
aXMgbG93IHJpc2sgb2YgZmFsbG91dC4KKworICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZl
ciBjb25zdCk6CisgICAgICAgICogcGFnZS9RdWlya3MuaDoKKyAgICAgICAgKiBwYWdlL2lvcy9D
b250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5n
ZU9ic2VydmVyOjpzdGFydENvbnRlbnRPYnNlcnZhdGlvbkZvckR1cmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlkQWRkVHJhbnNpdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZEluc3RhbGxET01UaW1lcik6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnJlbmRlclRyZWVVcGRh
dGVEaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6Ondp
bGxEZXN0cm95UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2Vy
dmVyOjp0b3VjaEV2ZW50RGlkU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5n
ZU9ic2VydmVyOjp0b3VjaEV2ZW50RGlkRmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRDaGFuZ2VPYnNlcnZlcjo6bW91c2VNb3ZlZERpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6bW91c2VNb3ZlZERpZEZpbmlzaCk6CisKIDIwMTktMDgt
MDUgIFRha2FzaGkgS29tb3JpICA8VGFrYXNoaS5Lb21vcmlAc29ueS5jb20+CiAKICAgICAgICAg
W0N1cmxdIGltcGxlbWVudCBDZXJ0aWZpY2F0ZUluZm86OnN1bW1hcnlJbmZvCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDFmNmM0ZjIzZDExY2JlNDI1ZWE4MGU3Y2JmZDg2NTFjNzM3YzQ1MDQuLjgwMWQxOTdmYTViMGEz
MDNhOTU0YzhiZGU4N2I3OTVjY2M5MTEyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTktMDgtMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBEaXNhYmxlIENvbnRlbnRDaGFuZ2VPYnNlcnZlciBvbiB5b3V0dWJlLmNvbQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNjA5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81NDAxNTQwMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2spOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKToKKwogMjAx
OS0wOC0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlz
YWJsZSBzcGVjdWxhdGl2ZSBsb2FkaW5nIGlmIGNhY2hlIGlzIG5vdCB0byBiZSB1c2VkIGZvciB0
aGUgbG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCmluZGV4IDU0OWE5MmU3M2YwYjJhZjE0NTQ4ZTIz
Mzg5OTdmYmMyMGVjZDVhMTIuLjg4MjFjZjg2ZGU1Nzc4N2YwZDhlOTdiNGRhMWJiMDQyNWY0NGYx
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKQEAgLTEzOCw2ICsxMzgsMTUgQEAgYm9vbCBRdWly
a3M6Omhhc0Jyb2tlbkVuY3J5cHRlZE1lZGlhQVBJU3VwcG9ydFF1aXJrKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9oYXNCcm9rZW5FbmNyeXB0ZWRNZWRpYUFQSVN1cHBvcnRRdWlyay52YWx1ZSgpOwog
fQogCitib29sIFF1aXJrczo6c2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpIGNv
bnN0Cit7CisgICAgaWYgKCFuZWVkc1F1aXJrcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgYXV0byBob3N0ID0gbV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS51cmwoKS5ob3N0
KCk7CisgICAgcmV0dXJuIGhvc3QuZW5kc1dpdGgoIi55b3V0dWJlLmNvbSIpIHx8IGhvc3QgPT0g
InlvdXR1YmUuY29tIjsKK30KKwogYm9vbCBRdWlya3M6OnNob3VsZFN0cmlwUXVvdGF0aW9uTWFy
a0luRm9udEZhY2VTZXRGYW1pbHkoKSBjb25zdAogewogICAgIGlmICghbmVlZHNRdWlya3MoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1F1aXJrcy5oCmluZGV4IDAzZDZiNThkN2I5OWQwNTRiMzlkZWE4MWY0YTJjNmNlOWZj
ODc1ODMuLjZlNzNmZjMxYzlhNWMzYTBlMjI3MWI0NTM1YmMyMTZlM2VhYjY5N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9RdWlya3MuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0RlZmVy
S2V5RG93bkFuZEtleVByZXNzVGltZXJzVW50aWxOZXh0RWRpdGluZ0NvbW1hbmQoKSBjb25zdDsK
ICAgICBib29sIHNob3VsZExpZ2h0ZW5KYXBhbmVzZUJvbGRTYW5zU2VyaWYoKSBjb25zdDsKIAor
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZl
cigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkRGlzcGF0Y2hTeW50aGV0
aWNNb3VzZUV2ZW50c1doZW5Nb2RpZnlpbmdTZWxlY3Rpb24oKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNob3VsZFN1cHByZXNzQXV0b2NvcnJlY3Rpb25BbmRBdXRvY2FwdGlhbGl6
YXRpb25JbkhpZGRlbkVkaXRhYmxlQXJlYXMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGlzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VP
YnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2
ZXIuY3BwCmluZGV4IDc1ZWQ2ZmI1YzcwNDYzYjlmODhiMTJiZTQ3ZDBiZTA3MjE0ZmQzY2QuLjJj
Yzg0NDIxNGRjYzcwZGUwMzZmZjU2NTIyZmU4NzEzOWJhMDA2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcApAQCAtMzYsNiArMzYs
NyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUXVpcmtzLmgiCiAjaW5jbHVkZSAiUmVuZGVy
RGVzY2VuZGFudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIApAQCAtMTkzLDcg
KzE5NCw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkaWRQcmV2ZW50RGVmYXVsdEZv
ckV2ZW50KEZyYW1lJiBtYWluRnJhbWUpCiAKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpz
dGFydENvbnRlbnRPYnNlcnZhdGlvbkZvckR1cmF0aW9uKFNlY29uZHMgZHVyYXRpb24pCiB7Ci0g
ICAgaWYgKCFtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxl
ZCgpKQorICAgIGlmICghbV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZl
ckVuYWJsZWQoKSB8fCBtX2RvY3VtZW50LnF1aXJrcygpLnNob3VsZERpc2FibGVDb250ZW50Q2hh
bmdlT2JzZXJ2ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCghaGFzVmlzaWJsZUNo
YW5nZVN0YXRlKCkpOwogICAgIExPR19XSVRIX1NUUkVBTShDb250ZW50T2JzZXJ2YXRpb24sIHN0
cmVhbSA8PCAic3RhcnRDb250ZW50T2JzZXJ2YXRpb25Gb3JEdXJhdGlvbjogc3RhcnQgb2JzZXJ2
aW5nIHRoZSBjb250ZW50IGZvciAiIDw8IGR1cmF0aW9uLm1pbGxpc2Vjb25kcygpIDw8ICJtcyIp
OwpAQCAtMjA5LDcgKzIxMCw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpjb21wbGV0
ZUR1cmF0aW9uQmFzZWRDb250ZW50T2JzZXJ2YXRpb24oKQogCiB2b2lkIENvbnRlbnRDaGFuZ2VP
YnNlcnZlcjo6ZGlkQWRkVHJhbnNpdGlvbihjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBB
bmltYXRpb24mIHRyYW5zaXRpb24pCiB7Ci0gICAgaWYgKCFtX2RvY3VtZW50LnNldHRpbmdzKCku
Y29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKQorICAgIGlmICghbV9kb2N1bWVudC5zZXR0
aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSB8fCBtX2RvY3VtZW50LnF1aXJr
cygpLnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSkKICAgICAgICAgcmV0dXJu
OwogICAgIGlmIChoYXNWaXNpYmxlQ2hhbmdlU3RhdGUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MjY2LDcgKzI2Nyw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkaWRSZW1vdmVUcmFu
c2l0aW9uKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIENTU1Byb3BlCiAKIHZvaWQgQ29udGVudENo
YW5nZU9ic2VydmVyOjpkaWRJbnN0YWxsRE9NVGltZXIoY29uc3QgRE9NVGltZXImIHRpbWVyLCBT
ZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xlU2hvdCkKIHsKLSAgICBpZiAoIW1fZG9jdW1lbnQu
c2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpCisgICAgaWYgKCFtX2Rv
Y3VtZW50LnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpIHx8IG1fZG9j
dW1lbnQucXVpcmtzKCkuc2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpKQogICAg
ICAgICByZXR1cm47CiAgICAgaWYgKG1fZG9jdW1lbnQuYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3Bl
bmRlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzQyLDcgQEAgdm9pZCBDb250ZW50
Q2hhbmdlT2JzZXJ2ZXI6OnN0eWxlUmVjYWxjRGlkRmluaXNoKCkKIAogdm9pZCBDb250ZW50Q2hh
bmdlT2JzZXJ2ZXI6OnJlbmRlclRyZWVVcGRhdGVEaWRTdGFydCgpCiB7Ci0gICAgaWYgKCFtX2Rv
Y3VtZW50LnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKQorICAgIGlm
ICghbV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSB8
fCBtX2RvY3VtZW50LnF1aXJrcygpLnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2ZXIo
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygp
KQogICAgICAgICByZXR1cm47CkBAIC00MDEsNyArNDAyLDcgQEAgdm9pZCBDb250ZW50Q2hhbmdl
T2JzZXJ2ZXI6OndpbGxEZXRhY2hQYWdlKCkKIAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6
OndpbGxEZXN0cm95UmVuZGVyZXIoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsgCi0gICAgaWYg
KCFtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKQor
ICAgIGlmICghbV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJs
ZWQoKSB8fCBtX2RvY3VtZW50LnF1aXJrcygpLnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghbV9pc0luT2JzZXJ2ZWRSZW5kZXJU
cmVlVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC00MjIsNyArNDIzLDcgQEAgdm9pZCBDb250
ZW50Q2hhbmdlT2JzZXJ2ZXI6OmNvbnRlbnRWaXNpYmlsaXR5RGlkQ2hhbmdlKCkKIHZvaWQgQ29u
dGVudENoYW5nZU9ic2VydmVyOjp0b3VjaEV2ZW50RGlkU3RhcnQoUGxhdGZvcm1FdmVudDo6VHlw
ZSBldmVudFR5cGUpCiB7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBpZiAoIW1fZG9j
dW1lbnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpCisgICAgaWYg
KCFtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpIHx8
IG1fZG9jdW1lbnQucXVpcmtzKCkuc2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZlcigp
KQogICAgICAgICByZXR1cm47CiAgICAgaWYgKGV2ZW50VHlwZSAhPSBQbGF0Zm9ybUV2ZW50OjpU
eXBlOjpUb3VjaFN0YXJ0KQogICAgICAgICByZXR1cm47CkBAIC00MzksNyArNDQwLDcgQEAgdm9p
ZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnRvdWNoRXZlbnREaWRGaW5pc2goKQogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCiAgICAgaWYgKCFtX3RvdWNoRXZlbnRJc0JlaW5nRGlzcGF0Y2hlZCkK
ICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVu
dENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKTsKKyAgICBBU1NFUlQobV9kb2N1bWVudC5zZXR0aW5n
cygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSAmJiAhbV9kb2N1bWVudC5xdWlya3Mo
KS5zaG91bGREaXNhYmxlQ29udGVudENoYW5nZU9ic2VydmVyKCkpOwogICAgIExPRyhDb250ZW50
T2JzZXJ2YXRpb24sICJ0b3VjaEV2ZW50RGlkRmluaXNoOiB0b3VjaCBzdGFydCBldmVudCBmaW5p
c2hlZC4iKTsKICAgICBtX3RvdWNoRXZlbnRJc0JlaW5nRGlzcGF0Y2hlZCA9IGZhbHNlOwogICAg
IGFkanVzdE9ic2VydmVkU3RhdGUoRXZlbnQ6OkVuZGVkVG91Y2hTdGFydEV2ZW50RGlzcGF0Y2hp
bmcpOwpAQCAtNDQ4LDcgKzQ0OSw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjp0b3Vj
aEV2ZW50RGlkRmluaXNoKCkKIAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6Om1vdXNlTW92
ZWREaWRTdGFydCgpCiB7Ci0gICAgaWYgKCFtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVudENo
YW5nZU9ic2VydmVyRW5hYmxlZCgpKQorICAgIGlmICghbV9kb2N1bWVudC5zZXR0aW5ncygpLmNv
bnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSB8fCBtX2RvY3VtZW50LnF1aXJrcygpLnNob3Vs
ZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIExP
RyhDb250ZW50T2JzZXJ2YXRpb24sICJtb3VzZU1vdmVkRGlkU3RhcnQ6IG1vdXNlTW92ZWQgc3Rh
cnRlZC4iKTsKICAgICBtX21vdXNlTW92ZWRFdmVudElzQmVpbmdEaXNwYXRjaGVkID0gdHJ1ZTsK
QEAgLTQ1OSw3ICs0NjAsNyBAQCB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6bW91c2VNb3Zl
ZERpZEZpbmlzaCgpCiB7CiAgICAgaWYgKCFtX21vdXNlTW92ZWRFdmVudElzQmVpbmdEaXNwYXRj
aGVkKQogICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQuc2V0dGluZ3MoKS5j
b250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpOworICAgIEFTU0VSVChtX2RvY3VtZW50LnNl
dHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpICYmICFtX2RvY3VtZW50LnF1
aXJrcygpLnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSk7CiAgICAgTE9HKENv
bnRlbnRPYnNlcnZhdGlvbiwgIm1vdXNlTW92ZWREaWRGaW5pc2g6IG1vdXNlTW92ZWQgZmluaXNo
ZWQuIik7CiAgICAgYWRqdXN0T2JzZXJ2ZWRTdGF0ZShFdmVudDo6RW5kZWRNb3VzZU1vdmVkRXZl
bnREaXNwYXRjaGluZyk7CiAgICAgbV9tb3VzZU1vdmVkRXZlbnRJc0JlaW5nRGlzcGF0Y2hlZCA9
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQppbmRleCBmMzY3MmNhMGIzMjFjMzI1OTFhZGM1ZmM5ZTlkNDAxOWQ1Nzg1NGY5
Li4xMjI4ZWM0MzUyODUzMzcxN2QwMjk1YWNhYmFiNzMwZDVmYmFiMjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNjc3
LDEyICs2NzcsMTIgQEAgdm9pZCBXZWJQYWdlOjpnZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kKFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSBjb21tYW4KIAogdm9pZCBXZWJQYWdlOjpo
YW5kbGVTeW50aGV0aWNDbGljayhOb2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVy
PiBtb2RpZmllcnMsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCiB7Ci0gICAgaWYgKCFu
b2RlUmVzcG9uZGluZ1RvQ2xpY2suZG9jdW1lbnQoKS5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VP
YnNlcnZlckVuYWJsZWQoKSkgeworICAgIGF1dG8mIHJlc3BvbmRpbmdEb2N1bWVudCA9IG5vZGVS
ZXNwb25kaW5nVG9DbGljay5kb2N1bWVudCgpOworICAgIGlmICghcmVzcG9uZGluZ0RvY3VtZW50
LnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpIHx8IHJlc3BvbmRpbmdE
b2N1bWVudC5xdWlya3MoKS5zaG91bGREaXNhYmxlQ29udGVudENoYW5nZU9ic2VydmVyKCkpIHsK
ICAgICAgICAgY29tcGxldGVTeW50aGV0aWNDbGljayhub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGxv
Y2F0aW9uLCBtb2RpZmllcnMsIFdlYkNvcmU6Ok9uZUZpbmdlclRhcCwgcG9pbnRlcklkKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8mIHJlc3BvbmRpbmdEb2N1bWVudCA9IG5v
ZGVSZXNwb25kaW5nVG9DbGljay5kb2N1bWVudCgpOwogICAgIGF1dG8mIGNvbnRlbnRDaGFuZ2VP
YnNlcnZlciA9IHJlc3BvbmRpbmdEb2N1bWVudC5jb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKTsKICAg
ICBhdXRvIHRhcmdldE5vZGVXZW50RnJvbUhpZGRlblRvVmlzaWJsZSA9IGNvbnRlbnRDaGFuZ2VP
YnNlcnZlci5oaWRkZW5Ub3VjaFRhcmdldCgpID09ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2sgJiYg
Q29udGVudENoYW5nZU9ic2VydmVyOjppc0NvbnNpZGVyZWRWaXNpYmxlKG5vZGVSZXNwb25kaW5n
VG9DbGljayk7CiAgICAgewpAQCAtNzk2LDggKzc5Niw4IEBAIHZvaWQgV2ViUGFnZTo6Y29tcGxl
dGVTeW50aGV0aWNDbGljayhOb2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNv
cmU6CiAgICAgaWYgKG5ld0ZvY3VzZWRFbGVtZW50ICYmIG5ld0ZvY3VzZWRFbGVtZW50ID09IG9s
ZEZvY3VzZWRFbGVtZW50KQogICAgICAgICBlbGVtZW50RGlkUmVmb2N1cygqbmV3Rm9jdXNlZEVs
ZW1lbnQpOwogCi0gICAgaWYgKG5vZGVSZXNwb25kaW5nVG9DbGljay5kb2N1bWVudCgpLnNldHRp
bmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8mIGRv
Y3VtZW50ID0gbm9kZVJlc3BvbmRpbmdUb0NsaWNrLmRvY3VtZW50KCk7CisgICAgYXV0byYgZG9j
dW1lbnQgPSBub2RlUmVzcG9uZGluZ1RvQ2xpY2suZG9jdW1lbnQoKTsKKyAgICBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkgfHwgZG9jdW1lbnQu
cXVpcmtzKCkuc2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpKSB7CiAgICAgICAg
IC8vIERpc3BhdGNoIG1vdXNlT3V0IHRvIGRpc21pc3MgdG9vbHRpcCBjb250ZW50IHdoZW4gdGFw
cGluZyBvbiB0aGUgY29udHJvbCBiYXIgYnV0dG9ucyAoY2MsIHNldHRpbmdzKS4KICAgICAgICAg
aWYgKGRvY3VtZW50LnF1aXJrcygpLm5lZWRzWW91VHViZU1vdXNlT3V0UXVpcmsoKSkgewogICAg
ICAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376001</attachid>
            <date>2019-08-10 00:09:46 -0700</date>
            <delta_ts>2019-08-10 10:02:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200609-20190810000945.patch</filename>
            <type>text/plain</type>
            <size>10854</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFhMTlhZTg1ZTNiYzVj
NTUxY2ZhZTNhYzAzN2I5MDk1MzdjN2U2NC4uNDhjNmQ0ZmFlNDQxNjJkYTY5NTJlYjUyMjdhNjk1
ZDY5ZDIwMWVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA4LTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRGlzYWJs
ZSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIgb24geW91dHViZS5jb20KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDYwOQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTQwMTU0MDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiB3YXRjaGluZyBhIHlvdXR1YmUgdmlkZW8gb24gaU9TIHdpdGggIkF1dG9w
bGF5IiBzd2l0Y2hlZCB0byBvZmYsCisgICAgICAgIHVwb24gZmluaXNoaW5nIHRoZSB2aWRlbyBh
bGwgY2xpY2tzIGFueXdoZXJlIG9uIHRoZSBwYWdlIGFyZSBlZmZlY3RpdmVseSBpZ25vcmVkLgor
ICAgICAgICBEaXNhYmxpbmcgQ29udGVudENoYW5nZU9ic2VydmVyIGZpeGVzIHRoaXMgYnVnLiAg
SSB2ZXJpZmllZCB0aGlzIG1hbnVhbGx5LgorICAgICAgICBUaGlzIHN3aXRjaCB3YXMgaW50cm9k
dWNlZCBpbiByMjQyNjIxLCBhbmQgaXQgZGlzYWJsZXMgYSBuZXcgZmVhdHVyZSwgc28gdGhlcmUg
aXMgbG93IHJpc2sgb2YgZmFsbG91dC4KKworICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZl
ciBjb25zdCk6CisgICAgICAgICogcGFnZS9RdWlya3MuaDoKKyAgICAgICAgKiBwYWdlL2lvcy9D
b250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5n
ZU9ic2VydmVyOjpzdGFydENvbnRlbnRPYnNlcnZhdGlvbkZvckR1cmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlkQWRkVHJhbnNpdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmRpZEluc3RhbGxET01UaW1lcik6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnJlbmRlclRyZWVVcGRh
dGVEaWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6Ondp
bGxEZXN0cm95UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2Vy
dmVyOjp0b3VjaEV2ZW50RGlkU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5n
ZU9ic2VydmVyOjp0b3VjaEV2ZW50RGlkRmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRDaGFuZ2VPYnNlcnZlcjo6bW91c2VNb3ZlZERpZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6bW91c2VNb3ZlZERpZEZpbmlzaCk6CisKIDIwMTktMDgt
MTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJFR1JFU1NJT04ocjI0ODQ1NCk6IFdLMSBpbnNwZWN0b3IgZnJvbnRlbmQgY2xpZW50
IGRvZXNuJ3QgcXVldWUgbWVzc2FnZXMgdG8gdGhlIGZyb250ZW5kIGJlZm9yZSBpdCdzIGxvYWRl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBjMjgwZWNlZWUyZjgxMTg4MTBjMzExZWRmY2M1NmE2YjQzMzEzNDcwLi44
NGM1N2U0NjBhYmUxZTI1YWVmOWRjZWZlNmE1NjU2ZGFkMmJkZjAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE5LTA4LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgRGlzYWJsZSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIgb24geW91
dHViZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMDYwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQwMTU0MDM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVN5bnRo
ZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcGxldGVTeW50aGV0aWND
bGljayk6CisKIDIwMTktMDgtMDkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPUyAxM10gR29vZ2xlIERvY3MvU2xpZGVzL1NoZWV0czogcGFzdGUg
b2Z0ZW4gZG9lc24ndCB3b3JrIGFuZCBzb21ldGltZXMgcHJvZHVjZXMgYW4gZXJyb3IKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUXVpcmtzLmNwcAppbmRleCA2MjhlNjMzZTUwMTBmZDU1NmNhMzY3ZDNkOWYwZjliNzRjMjQ1
ZGZkLi43OGRiZTVhZWQ0NWE5NmM5YjMzMjllZDM0YzM4NmE3ZjMyZTQ2ZDExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9RdWlya3MuY3BwCkBAIC0xMzgsNiArMTM4LDE1IEBAIGJvb2wgUXVpcmtzOjpoYXNCcm9rZW5F
bmNyeXB0ZWRNZWRpYUFQSVN1cHBvcnRRdWlyaygpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFzQnJv
a2VuRW5jcnlwdGVkTWVkaWFBUElTdXBwb3J0UXVpcmsudmFsdWUoKTsKIH0KIAorYm9vbCBRdWly
a3M6OnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSBjb25zdAoreworICAgIGlm
ICghbmVlZHNRdWlya3MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBob3N0
ID0gbV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS51cmwoKS5ob3N0KCk7CisgICAgcmV0dXJuIGhv
c3QuZW5kc1dpdGgoIi55b3V0dWJlLmNvbSIpIHx8IGhvc3QgPT0gInlvdXR1YmUuY29tIjsKK30K
KwogYm9vbCBRdWlya3M6OnNob3VsZFN0cmlwUXVvdGF0aW9uTWFya0luRm9udEZhY2VTZXRGYW1p
bHkoKSBjb25zdAogewogICAgIGlmICghbmVlZHNRdWlya3MoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCmlu
ZGV4IDBhYmNiMmFmMTUxM2FhMjg4MWZlOThmNGM5Y2IwZjgxMDg2OTVjNGIuLjVjZmQzYTViMjY0
NDVlNTlmNTMyNDdlZDc4MTBjN2ZhMjMxY2U1MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAtNjEs
NiArNjEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0RlZmVyS2V5RG93bkFuZEtleVByZXNz
VGltZXJzVW50aWxOZXh0RWRpdGluZ0NvbW1hbmQoKSBjb25zdDsKICAgICBib29sIHNob3VsZExp
Z2h0ZW5KYXBhbmVzZUJvbGRTYW5zU2VyaWYoKSBjb25zdDsKIAorICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgc2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpIGNvbnN0OwogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkRGlzcGF0Y2hTeW50aGV0aWNNb3VzZUV2ZW50c1doZW5N
b2RpZnlpbmdTZWxlY3Rpb24oKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3Vs
ZFN1cHByZXNzQXV0b2NvcnJlY3Rpb25BbmRBdXRvY2FwdGlhbGl6YXRpb25JbkhpZGRlbkVkaXRh
YmxlQXJlYXMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVG91Y2hCYXJVcGRh
dGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRpdGFibGUoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwCmluZGV4IDBiZTVl
ZThhNWU5ZTIwYWM0MjY4NzQyNzY4NjBlYWVjZDM0NzgyOTkuLmJkNGJkMjBmYTc0NWMyNzQ0MDRm
M2QzMDFjZDFhNmU1Y2MwMGUwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3Mv
Q29udGVudENoYW5nZU9ic2VydmVyLmNwcApAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgQ29udGVu
dENoYW5nZU9ic2VydmVyOjpkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KEZyYW1lJiBtYWluRnJh
bWUpCiAKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpzdGFydENvbnRlbnRPYnNlcnZhdGlv
bkZvckR1cmF0aW9uKFNlY29uZHMgZHVyYXRpb24pCiB7Ci0gICAgaWYgKCFtX2RvY3VtZW50LnNl
dHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKQorICAgIGlmICghbV9kb2N1
bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSB8fCBtX2RvY3Vt
ZW50LnF1aXJrcygpLnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIEFTU0VSVCghaGFzVmlzaWJsZUNoYW5nZVN0YXRlKCkpOwogICAgIExP
R19XSVRIX1NUUkVBTShDb250ZW50T2JzZXJ2YXRpb24sIHN0cmVhbSA8PCAic3RhcnRDb250ZW50
T2JzZXJ2YXRpb25Gb3JEdXJhdGlvbjogc3RhcnQgb2JzZXJ2aW5nIHRoZSBjb250ZW50IGZvciAi
IDw8IGR1cmF0aW9uLm1pbGxpc2Vjb25kcygpIDw8ICJtcyIpOwpAQCAtMjEwLDcgKzIxMCw3IEBA
IHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpjb21wbGV0ZUR1cmF0aW9uQmFzZWRDb250ZW50
T2JzZXJ2YXRpb24oKQogCiB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlkQWRkVHJhbnNp
dGlvbihjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBbmltYXRpb24mIHRyYW5zaXRpb24p
CiB7Ci0gICAgaWYgKCFtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVy
RW5hYmxlZCgpKQorICAgIGlmICghbV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VP
YnNlcnZlckVuYWJsZWQoKSB8fCBtX2RvY3VtZW50LnF1aXJrcygpLnNob3VsZERpc2FibGVDb250
ZW50Q2hhbmdlT2JzZXJ2ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChoYXNWaXNpYmxl
Q2hhbmdlU3RhdGUoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQg
Q29udGVudENoYW5nZU9ic2VydmVyOjpkaWRSZW1vdmVUcmFuc2l0aW9uKGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQsIENTU1Byb3BlCiAKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkaWRJbnN0
YWxsRE9NVGltZXIoY29uc3QgRE9NVGltZXImIHRpbWVyLCBTZWNvbmRzIHRpbWVvdXQsIGJvb2wg
c2luZ2xlU2hvdCkKIHsKLSAgICBpZiAoIW1fZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50Q2hh
bmdlT2JzZXJ2ZXJFbmFibGVkKCkpCisgICAgaWYgKCFtX2RvY3VtZW50LnNldHRpbmdzKCkuY29u
dGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpIHx8IG1fZG9jdW1lbnQucXVpcmtzKCkuc2hvdWxk
RGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpKQogICAgICAgICByZXR1cm47CiAgICAgaWYg
KG1fZG9jdW1lbnQuYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpKQogICAgICAgICByZXR1
cm47CkBAIC0zNDIsNyArMzQyLDcgQEAgdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnN0eWxl
UmVjYWxjRGlkRmluaXNoKCkKIAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OnJlbmRlclRy
ZWVVcGRhdGVEaWRTdGFydCgpCiB7Ci0gICAgaWYgKCFtX2RvY3VtZW50LnNldHRpbmdzKCkuY29u
dGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKQorICAgIGlmICghbV9kb2N1bWVudC5zZXR0aW5n
cygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSB8fCBtX2RvY3VtZW50LnF1aXJrcygp
LnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICghaXNPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpKQogICAgICAgICByZXR1cm47CkBA
IC00MDIsNyArNDAyLDcgQEAgdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OndpbGxEZXRhY2hQ
YWdlKCkKIAogdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OndpbGxEZXN0cm95UmVuZGVyZXIo
Y29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsgCi0gICAgaWYgKCFtX2RvY3VtZW50LnNldHRpbmdz
KCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKQorICAgIGlmICghbV9kb2N1bWVudC5z
ZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSB8fCBtX2RvY3VtZW50LnF1
aXJrcygpLnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIGlmICghbV9pc0luT2JzZXJ2ZWRSZW5kZXJUcmVlVXBkYXRlKQogICAgICAgICBy
ZXR1cm47CkBAIC00MjMsNyArNDIzLDcgQEAgdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6OmNv
bnRlbnRWaXNpYmlsaXR5RGlkQ2hhbmdlKCkKIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjp0
b3VjaEV2ZW50RGlkU3RhcnQoUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUpCiB7CiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBpZiAoIW1fZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250
ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkpCisgICAgaWYgKCFtX2RvY3VtZW50LnNldHRpbmdz
KCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpIHx8IG1fZG9jdW1lbnQucXVpcmtzKCku
c2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKGV2ZW50VHlwZSAhPSBQbGF0Zm9ybUV2ZW50OjpUeXBlOjpUb3VjaFN0YXJ0KQogICAg
ICAgICByZXR1cm47CkBAIC00NDAsNyArNDQwLDcgQEAgdm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2
ZXI6OnRvdWNoRXZlbnREaWRGaW5pc2goKQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAg
aWYgKCFtX3RvdWNoRXZlbnRJc0JlaW5nRGlzcGF0Y2hlZCkKICAgICAgICAgcmV0dXJuOwotICAg
IEFTU0VSVChtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxl
ZCgpKTsKKyAgICBBU1NFUlQobV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNl
cnZlckVuYWJsZWQoKSAmJiAhbV9kb2N1bWVudC5xdWlya3MoKS5zaG91bGREaXNhYmxlQ29udGVu
dENoYW5nZU9ic2VydmVyKCkpOwogICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJ0b3VjaEV2
ZW50RGlkRmluaXNoOiB0b3VjaCBzdGFydCBldmVudCBmaW5pc2hlZC4iKTsKICAgICBtX3RvdWNo
RXZlbnRJc0JlaW5nRGlzcGF0Y2hlZCA9IGZhbHNlOwogICAgIGFkanVzdE9ic2VydmVkU3RhdGUo
RXZlbnQ6OkVuZGVkVG91Y2hTdGFydEV2ZW50RGlzcGF0Y2hpbmcpOwpAQCAtNDQ5LDcgKzQ0OSw3
IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjp0b3VjaEV2ZW50RGlkRmluaXNoKCkKIAog
dm9pZCBDb250ZW50Q2hhbmdlT2JzZXJ2ZXI6Om1vdXNlTW92ZWREaWRTdGFydCgpCiB7Ci0gICAg
aWYgKCFtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgp
KQorICAgIGlmICghbV9kb2N1bWVudC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVu
YWJsZWQoKSB8fCBtX2RvY3VtZW50LnF1aXJrcygpLnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdl
T2JzZXJ2ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24s
ICJtb3VzZU1vdmVkRGlkU3RhcnQ6IG1vdXNlTW92ZWQgc3RhcnRlZC4iKTsKICAgICBtX21vdXNl
TW92ZWRFdmVudElzQmVpbmdEaXNwYXRjaGVkID0gdHJ1ZTsKQEAgLTQ2MCw3ICs0NjAsNyBAQCB2
b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6bW91c2VNb3ZlZERpZEZpbmlzaCgpCiB7CiAgICAg
aWYgKCFtX21vdXNlTW92ZWRFdmVudElzQmVpbmdEaXNwYXRjaGVkKQogICAgICAgICByZXR1cm47
Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJF
bmFibGVkKCkpOworICAgIEFTU0VSVChtX2RvY3VtZW50LnNldHRpbmdzKCkuY29udGVudENoYW5n
ZU9ic2VydmVyRW5hYmxlZCgpICYmICFtX2RvY3VtZW50LnF1aXJrcygpLnNob3VsZERpc2FibGVD
b250ZW50Q2hhbmdlT2JzZXJ2ZXIoKSk7CiAgICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgIm1v
dXNlTW92ZWREaWRGaW5pc2g6IG1vdXNlTW92ZWQgZmluaXNoZWQuIik7CiAgICAgYWRqdXN0T2Jz
ZXJ2ZWRTdGF0ZShFdmVudDo6RW5kZWRNb3VzZU1vdmVkRXZlbnREaXNwYXRjaGluZyk7CiAgICAg
bV9tb3VzZU1vdmVkRXZlbnRJc0JlaW5nRGlzcGF0Y2hlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA3MmQ0
MjgzY2FiNDlmMTcxMmE2NzkxZmZmZjExOGZlOWYzNWExMTJhLi5hOGE3NDY5ZDlkODdiMWUyYWZl
MzcwZmUwZjhmN2ZhNDk3Mzg1OThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNjc3LDEyICs2NzcsMTIgQEAgdm9pZCBX
ZWJQYWdlOjpnZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKFN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZSBjb21tYW4KIAogdm9pZCBXZWJQYWdlOjpoYW5kbGVTeW50aGV0aWNDbGljayhO
b2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxv
Y2F0aW9uLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFdlYkNvcmU6
OlBvaW50ZXJJRCBwb2ludGVySWQpCiB7Ci0gICAgaWYgKCFub2RlUmVzcG9uZGluZ1RvQ2xpY2su
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSkgewor
ICAgIGF1dG8mIHJlc3BvbmRpbmdEb2N1bWVudCA9IG5vZGVSZXNwb25kaW5nVG9DbGljay5kb2N1
bWVudCgpOworICAgIGlmICghcmVzcG9uZGluZ0RvY3VtZW50LnNldHRpbmdzKCkuY29udGVudENo
YW5nZU9ic2VydmVyRW5hYmxlZCgpIHx8IHJlc3BvbmRpbmdEb2N1bWVudC5xdWlya3MoKS5zaG91
bGREaXNhYmxlQ29udGVudENoYW5nZU9ic2VydmVyKCkpIHsKICAgICAgICAgY29tcGxldGVTeW50
aGV0aWNDbGljayhub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGxvY2F0aW9uLCBtb2RpZmllcnMsIFdl
YkNvcmU6Ok9uZUZpbmdlclRhcCwgcG9pbnRlcklkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGF1dG8mIHJlc3BvbmRpbmdEb2N1bWVudCA9IG5vZGVSZXNwb25kaW5nVG9DbGljay5k
b2N1bWVudCgpOwogICAgIGF1dG8mIGNvbnRlbnRDaGFuZ2VPYnNlcnZlciA9IHJlc3BvbmRpbmdE
b2N1bWVudC5jb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKTsKICAgICBhdXRvIHRhcmdldE5vZGVXZW50
RnJvbUhpZGRlblRvVmlzaWJsZSA9IGNvbnRlbnRDaGFuZ2VPYnNlcnZlci5oaWRkZW5Ub3VjaFRh
cmdldCgpID09ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2sgJiYgQ29udGVudENoYW5nZU9ic2VydmVy
Ojppc0NvbnNpZGVyZWRWaXNpYmxlKG5vZGVSZXNwb25kaW5nVG9DbGljayk7CiAgICAgewpAQCAt
Nzk2LDggKzc5Niw4IEBAIHZvaWQgV2ViUGFnZTo6Y29tcGxldGVTeW50aGV0aWNDbGljayhOb2Rl
JiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6CiAgICAgaWYgKG5ld0ZvY3Vz
ZWRFbGVtZW50ICYmIG5ld0ZvY3VzZWRFbGVtZW50ID09IG9sZEZvY3VzZWRFbGVtZW50KQogICAg
ICAgICBlbGVtZW50RGlkUmVmb2N1cygqbmV3Rm9jdXNlZEVsZW1lbnQpOwogCi0gICAgaWYgKG5v
ZGVSZXNwb25kaW5nVG9DbGljay5kb2N1bWVudCgpLnNldHRpbmdzKCkuY29udGVudENoYW5nZU9i
c2VydmVyRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8mIGRvY3VtZW50ID0gbm9kZVJlc3BvbmRp
bmdUb0NsaWNrLmRvY3VtZW50KCk7CisgICAgYXV0byYgZG9jdW1lbnQgPSBub2RlUmVzcG9uZGlu
Z1RvQ2xpY2suZG9jdW1lbnQoKTsKKyAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50
Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkgfHwgZG9jdW1lbnQucXVpcmtzKCkuc2hvdWxkRGlzYWJs
ZUNvbnRlbnRDaGFuZ2VPYnNlcnZlcigpKSB7CiAgICAgICAgIC8vIERpc3BhdGNoIG1vdXNlT3V0
IHRvIGRpc21pc3MgdG9vbHRpcCBjb250ZW50IHdoZW4gdGFwcGluZyBvbiB0aGUgY29udHJvbCBi
YXIgYnV0dG9ucyAoY2MsIHNldHRpbmdzKS4KICAgICAgICAgaWYgKGRvY3VtZW50LnF1aXJrcygp
Lm5lZWRzWW91VHViZU1vdXNlT3V0UXVpcmsoKSkgewogICAgICAgICAgICAgaWYgKGF1dG8qIGZy
YW1lID0gZG9jdW1lbnQuZnJhbWUoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376013</attachid>
            <date>2019-08-10 10:02:30 -0700</date>
            <delta_ts>2019-08-10 14:58:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200609-20190810100229.patch</filename>
            <type>text/plain</type>
            <size>12268</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFhMTlhZTg1ZTNiYzVj
NTUxY2ZhZTNhYzAzN2I5MDk1MzdjN2U2NC4uZThhMmFjMTAwMjA1YTFmZTVjMGQ0ZTMyOGU4MjNj
NDg1YjE5NTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTA4LTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRGlzYWJs
ZSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIgVG91Y2hFdmVudCBhZGp1c3RtZW50IG9uIHlvdXR1YmUu
Y29tIG9uIGlPUyBpbiBtb2JpbGUgYnJvd3NpbmcgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNjA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NDAxNTQwMz4KKworICAgICAgICBXaGVuIHdhdGNoaW5nIGEgeW91dHViZSB2aWRlbyBvbiBp
T1Mgd2l0aCAiQXV0b3BsYXkiIHN3aXRjaGVkIHRvIG9mZiwKKyAgICAgICAgdXBvbiBmaW5pc2hp
bmcgdGhlIHZpZGVvIGFsbCBjbGlja3MgYW55d2hlcmUgb24gdGhlIHBhZ2UgYXJlIGVmZmVjdGl2
ZWx5IGlnbm9yZWQuCisgICAgICAgIERpc2FibGluZyBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIncyBU
b3VjaEV2ZW50IGFkanVzdG1lbnQgZml4ZXMgdGhpcyBidWcuICBJIHZlcmlmaWVkIHRoaXMgbWFu
dWFsbHkuCisgICAgICAgIFRoaXMgc3dpdGNoIHdhcyBpbnRyb2R1Y2VkIGluIHIyNDI2MjEsIGFu
ZCBpdCBkaXNhYmxlcyBwYXJ0IG9mIGEgbmV3IGZlYXR1cmUsIHNvIHRoZXJlIGlzIGxvdyByaXNr
IG9mIGZhbGxvdXQuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzZXRBbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZl
clF1aXJrKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphbGxvd0NvbnRlbnRD
aGFuZ2VPYnNlcnZlclF1aXJrIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1F1aXJrcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2
ZXJUb3VjaEV2ZW50QWRqdXN0bWVudCBjb25zdCk6CisgICAgICAgICogcGFnZS9RdWlya3MuaDoK
KyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjp0b3VjaEV2ZW50RGlkU3RhcnQpOgorCiAy
MDE5LTA4LTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OKHIyNDg0NTQpOiBXSzEgaW5zcGVjdG9yIGZyb250ZW5k
IGNsaWVudCBkb2Vzbid0IHF1ZXVlIG1lc3NhZ2VzIHRvIHRoZSBmcm9udGVuZCBiZWZvcmUgaXQn
cyBsb2FkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggYzI4MGVjZWVlMmY4MTE4ODEwYzMxMWVkZmNjNTZhNmI0MzMx
MzQ3MC4uMjgwMzRiZWEyYmEwMWQ1ODZjMzgzNWMwMTMxZDAxZTk5ZjllNDJjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMyBAQAorMjAxOS0wOC0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIERpc2FibGUgQ29udGVudENoYW5nZU9ic2VydmVy
IFRvdWNoRXZlbnQgYWRqdXN0bWVudCBvbiB5b3V0dWJlLmNvbSBvbiBpT1MgaW4gbW9iaWxlIGJy
b3dzaW5nIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMDYwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQwMTU0MDM+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZVBv
bGljaWVzRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29k
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE6OmFwcGx5VG9Eb2N1bWVu
dExvYWRlcik6CisgICAgICAgICogU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHA6CisgICAgICAgIChBUEk6
OldlYnNpdGVQb2xpY2llczo6Y29weSBjb25zdCk6CisgICAgICAgIChBUEk6OldlYnNpdGVQb2xp
Y2llczo6ZGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjplZmZlY3RpdmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5n
UG9saWNpZXMpOgorCiAyMDE5LTA4LTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1MgMTNdIEdvb2dsZSBEb2NzL1NsaWRlcy9TaGVldHM6IHBh
c3RlIG9mdGVuIGRvZXNuJ3Qgd29yayBhbmQgc29tZXRpbWVzIHByb2R1Y2VzIGFuIGVycm9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IDdmMjY5N2JjNTY3NWY1Njkz
MGI1MjQ5OGYyY2MwOGU3ZWJlNDg1YmYuLmNkODkyNzE3N2YwNmU1YmY2ZGY4Yzg3NGQxOWEwMWRl
ZmE1ZTBkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC0zOTEs
NiArMzkxLDkgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBseVBvbGlj
aWVzVG9TZXR0aW5ncygpOwogCisgICAgdm9pZCBzZXRBbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZl
clF1aXJrKGJvb2wgYWxsb3cpIHsgbV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrID0g
YWxsb3c7IH0KKyAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoKSBjb25z
dCB7IHJldHVybiBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcms7IH0KKwogcHJvdGVj
dGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50TG9hZGVyKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJik7CiAKQEAgLTU5NCw2ICs1OTcsNyBAQCBwcml2
YXRlOgogI2VuZGlmCiAgICAgU3RyaW5nIG1fY3VzdG9tVXNlckFnZW50OwogICAgIFN0cmluZyBt
X2N1c3RvbUphdmFTY3JpcHRVc2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrczsKKyAgICBib29s
IG1fYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayB7IGZhbHNlIH07CiAgICAgU3RyaW5n
IG1fY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm07CiAgICAgYm9vbCBtX3VzZXJDb250ZW50RXh0ZW5z
aW9uc0VuYWJsZWQgeyB0cnVlIH07CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUXVpcmtzLmNwcAppbmRleCA2MjhlNjMzZTUwMTBmZDU1NmNhMzY3ZDNkOWYwZjliNzRj
MjQ1ZGZkLi44YzBhOWNiYTE4YTRkZDFjYjQwMDVlYzgzNzg3YjY0NTBmZTUwZWE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9RdWlya3MuY3BwCkBAIC0xMzgsNiArMTM4LDIwIEBAIGJvb2wgUXVpcmtzOjpoYXNCcm9r
ZW5FbmNyeXB0ZWRNZWRpYUFQSVN1cHBvcnRRdWlyaygpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFz
QnJva2VuRW5jcnlwdGVkTWVkaWFBUElTdXBwb3J0UXVpcmsudmFsdWUoKTsKIH0KIAorYm9vbCBR
dWlya3M6OnNob3VsZERpc2FibGVDb250ZW50Q2hhbmdlT2JzZXJ2ZXJUb3VjaEV2ZW50QWRqdXN0
bWVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFuZWVkc1F1aXJrcygpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9IG1fZG9jdW1lbnQtPnRvcERvY3VtZW50
KCk7CisgICAgYXV0byogdG9wRG9jdW1lbnRMb2FkZXIgPSB0b3BEb2N1bWVudC5sb2FkZXIoKTsK
KyAgICBpZiAoIXRvcERvY3VtZW50TG9hZGVyIHx8ICF0b3BEb2N1bWVudExvYWRlci0+YWxsb3dD
b250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyaygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBhdXRvIGhvc3QgPSBtX2RvY3VtZW50LT50b3BEb2N1bWVudCgpLnVybCgpLmhvc3QoKTsKKyAg
ICByZXR1cm4gaG9zdC5lbmRzV2l0aCgiLnlvdXR1YmUuY29tIikgfHwgaG9zdCA9PSAieW91dHVi
ZS5jb20iOworfQorCiBib29sIFF1aXJrczo6c2hvdWxkU3RyaXBRdW90YXRpb25NYXJrSW5Gb250
RmFjZVNldEZhbWlseSgpIGNvbnN0CiB7CiAgICAgaWYgKCFuZWVkc1F1aXJrcygpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UXVpcmtzLmgKaW5kZXggMGFiY2IyYWYxNTEzYWEyODgxZmU5OGY0YzljYjBmODEwODY5NWM0Yi4u
MzM3MjI2YWE2MzczZDM2OWNhNjA5YmNjY2M1MmU0ZDI5ZGVhYjQ2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJr
cy5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICBib29sIG5lZWRzSW5wdXRNb2RlTm9u
ZUltcGxpY2l0bHkoY29uc3QgSFRNTEVsZW1lbnQmKSBjb25zdDsKICAgICBib29sIG5lZWRzRGVm
ZXJLZXlEb3duQW5kS2V5UHJlc3NUaW1lcnNVbnRpbE5leHRFZGl0aW5nQ29tbWFuZCgpIGNvbnN0
OwogICAgIGJvb2wgc2hvdWxkTGlnaHRlbkphcGFuZXNlQm9sZFNhbnNTZXJpZigpIGNvbnN0Owor
ICAgIGJvb2wgc2hvdWxkRGlzYWJsZUNvbnRlbnRDaGFuZ2VPYnNlcnZlclRvdWNoRXZlbnRBZGp1
c3RtZW50KCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZERpc3BhdGNo
U3ludGhldGljTW91c2VFdmVudHNXaGVuTW9kaWZ5aW5nU2VsZWN0aW9uKCkgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRTdXBwcmVzc0F1dG9jb3JyZWN0aW9uQW5kQXV0b2Nh
cHRpYWxpemF0aW9uSW5IaWRkZW5FZGl0YWJsZUFyZWFzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcAppbmRleCAwYmU1ZWU4
YTVlOWUyMGFjNDI2ODc0Mjc2ODYwZWFlY2QzNDc4Mjk5Li4wYzY1NTY4MDJmZmNiZWUzNTI1MzJk
ZTVkYzZhNjJhNzExNTYyYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9D
b250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0Nv
bnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIENvbnRlbnRD
aGFuZ2VPYnNlcnZlcjo6Y29udGVudFZpc2liaWxpdHlEaWRDaGFuZ2UoKQogdm9pZCBDb250ZW50
Q2hhbmdlT2JzZXJ2ZXI6OnRvdWNoRXZlbnREaWRTdGFydChQbGF0Zm9ybUV2ZW50OjpUeXBlIGV2
ZW50VHlwZSkKIHsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGlmICghbV9kb2N1bWVu
dC5zZXR0aW5ncygpLmNvbnRlbnRDaGFuZ2VPYnNlcnZlckVuYWJsZWQoKSkKKyAgICBpZiAoIW1f
ZG9jdW1lbnQuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkgfHwgbV9k
b2N1bWVudC5xdWlya3MoKS5zaG91bGREaXNhYmxlQ29udGVudENoYW5nZU9ic2VydmVyVG91Y2hF
dmVudEFkanVzdG1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChldmVudFR5cGUgIT0g
UGxhdGZvcm1FdmVudDo6VHlwZTo6VG91Y2hTdGFydCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcAppbmRleCAzZDgxYzg3N2E1
ZWZiMzEwY2VjNTk5MTk2MDFjM2NhMzg4NzZjYmI3Li4zYTA2MDU2NGE3ZmY1Mjg3MTUwNTU2MzZm
NTExOWNmNDcyNjNhMmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
UG9saWNpZXNEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNp
ZXNEYXRhLmNwcApAQCAtNTMsNiArNTMsNyBAQCB2b2lkIFdlYnNpdGVQb2xpY2llc0RhdGE6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtZWRpYVNv
dXJjZVBvbGljeTsKICAgICBlbmNvZGVyIDw8IHNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQ
b2xpY3k7CiAgICAgZW5jb2RlciA8PCBsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5
OworICAgIGVuY29kZXIgPDwgYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyazsKIH0KIAog
T3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTEyOSw2ICsxMzAsMTEgQEAgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKICAgICBpZiAoIWxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICBPcHRpb25hbDxib29sPiBhbGxv
d0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOworICAgIGRlY29kZXIgPj4gYWxsb3dDb250ZW50
Q2hhbmdlT2JzZXJ2ZXJRdWlyazsKKyAgICBpZiAoIWFsbG93Q29udGVudENoYW5nZU9ic2VydmVy
UXVpcmspCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgCiAgICAgcmV0dXJuIHsg
ewogICAgICAgICBXVEZNb3ZlKCpjb250ZW50QmxvY2tlcnNFbmFibGVkKSwKICAgICAgICAgV1RG
TW92ZSgqYWxsb3dlZEF1dG9wbGF5UXVpcmtzKSwKQEAgLTE0Niw2ICsxNTIsNyBAQCBPcHRpb25h
bDxXZWJzaXRlUG9saWNpZXNEYXRhPiBXZWJzaXRlUG9saWNpZXNEYXRhOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBXVEZNb3ZlKCptZWRpYVNvdXJjZVBvbGljeSksCiAg
ICAgICAgIFdURk1vdmUoKnNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kpLAogICAg
ICAgICBXVEZNb3ZlKCpsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5KSwKKyAgICAg
ICAgV1RGTW92ZSgqYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayksCiAgICAgfSB9Owog
fQogCkBAIC0yNTYsNiArMjYzLDggQEAgdm9pZCBXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBseVRv
RG9jdW1lbnRMb2FkZXIoV2Vic2l0ZVBvbGljaWVzRGF0YSYmIHdlYnNpdGVQb2wKICAgICAgICAg
YnJlYWs7CiAgICAgfQogCisgICAgZG9jdW1lbnRMb2FkZXIuc2V0QWxsb3dDb250ZW50Q2hhbmdl
T2JzZXJ2ZXJRdWlyayh3ZWJzaXRlUG9saWNpZXMuYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJR
dWlyayk7CisKICAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50TG9hZGVyLmZyYW1lKCk7CiAgICAg
aWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0
ZVBvbGljaWVzRGF0YS5oCmluZGV4IDk4ZmM5OTEwY2YyZjgwYTJiM2NjMWQwNmMwZGFlMWEyNjhj
MDUyZjYuLmE5ZTUyZjU0M2NhYTE3YTk4Njg3MTlkNTM1ZDIwMDk4NzIzOWFjNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgKQEAgLTY3LDYgKzY3LDcgQEAg
c3RydWN0IFdlYnNpdGVQb2xpY2llc0RhdGEgewogICAgIFdlYnNpdGVNZWRpYVNvdXJjZVBvbGlj
eSBtZWRpYVNvdXJjZVBvbGljeSB7IFdlYnNpdGVNZWRpYVNvdXJjZVBvbGljeTo6RGVmYXVsdCB9
OwogICAgIFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5IHNpbXVsYXRl
ZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kgeyBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNE
aXNwYXRjaFBvbGljeTo6RGVmYXVsdCB9OwogICAgIFdlYnNpdGVMZWdhY3lPdmVyZmxvd1Njcm9s
bGluZ1RvdWNoUG9saWN5IGxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgeyBXZWJz
aXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeTo6RGVmYXVsdCB9OworICAgIGJv
b2wgYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayB7IGZhbHNlIH07CiAKICAgICB2b2lk
IGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4gZGVjb2RlKElQQzo6RGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcAppbmRleCBiMGE5MDBjYWZh
NTZjMjAwNTI0NTIyNGQxNjY1ZGJjMzEyOTVkMDU3Li5mYzBjMmRlYmZhODMzYWVlNjhiYzFjM2Fi
MmFjZjlkYTdiNzcyZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJV2Vic2l0ZVBvbGljaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJV2Vic2l0ZVBvbGljaWVzLmNwcApAQCAtNjIsNiArNjIsNyBAQCBSZWY8V2Vic2l0ZVBvbGlj
aWVzPiBXZWJzaXRlUG9saWNpZXM6OmNvcHkoKSBjb25zdAogICAgIHBvbGljaWVzLT5zZXRNZWRp
YVNvdXJjZVBvbGljeShtX21lZGlhU291cmNlUG9saWN5KTsKICAgICBwb2xpY2llcy0+c2V0U2lt
dWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeShtX3NpbXVsYXRlZE1vdXNlRXZlbnRzRGlz
cGF0Y2hQb2xpY3kpOwogICAgIHBvbGljaWVzLT5zZXRMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1Rv
dWNoUG9saWN5KG1fbGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSk7CisgICAgcG9s
aWNpZXMtPnNldEFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsobV9hbGxvd0NvbnRlbnRD
aGFuZ2VPYnNlcnZlclF1aXJrKTsKICAgICAKICAgICBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRl
ckZpZWxkPiBsZWdhY3lDdXN0b21IZWFkZXJGaWVsZHM7CiAgICAgbGVnYWN5Q3VzdG9tSGVhZGVy
RmllbGRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9sZWdhY3lDdXN0b21IZWFkZXJGaWVsZHMu
c2l6ZSgpKTsKQEAgLTExNSw2ICsxMTYsNyBAQCBXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGEg
V2Vic2l0ZVBvbGljaWVzOjpkYXRhKCkKICAgICAgICAgbV9tZWRpYVNvdXJjZVBvbGljeSwKICAg
ICAgICAgbV9zaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LAogICAgICAgICBtX2xl
Z2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3ksCisgICAgICAgIG1fYWxsb3dDb250ZW50
Q2hhbmdlT2JzZXJ2ZXJRdWlyaywKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmgKaW5kZXggMWQ3OGQyMDIzZWI1NzI4N2Y4
OWJkZTlkODFmYjkyMjY2ODk4OTQ0Ny4uOGQyYTcxYjE4MmEzNmVlMzEwOWViODhjYzFiYTVhOTI5
YzkxMGZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNp
dGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRl
UG9saWNpZXMuaApAQCAtMTE0LDYgKzExNCw5IEBAIHB1YmxpYzoKICAgICBXVEY6OlN0cmluZyBh
cHBsaWNhdGlvbk5hbWVGb3JEZXNrdG9wVXNlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9hcHBs
aWNhdGlvbk5hbWVGb3JEZXNrdG9wVXNlckFnZW50OyB9CiAgICAgdm9pZCBzZXRBcHBsaWNhdGlv
bk5hbWVGb3JEZXNrdG9wVXNlckFnZW50KGNvbnN0IFdURjo6U3RyaW5nJiBhcHBsaWNhdGlvbk5h
bWUpIHsgbV9hcHBsaWNhdGlvbk5hbWVGb3JEZXNrdG9wVXNlckFnZW50ID0gYXBwbGljYXRpb25O
YW1lOyB9CiAKKyAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoKSBjb25z
dCB7IHJldHVybiBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcms7IH0KKyAgICB2b2lk
IHNldEFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoYm9vbCBhbGxvdykgeyBtX2FsbG93
Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsgPSBhbGxvdzsgfQorCiBwcml2YXRlOgogICAgIFdl
YnNpdGVQb2xpY2llcyhib29sIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQsIE9wdGlvblNldDxXZWJL
aXQ6OldlYnNpdGVBdXRvcGxheVF1aXJrPiwgV2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlQb2xpY3ks
IFZlY3RvcjxXZWJDb3JlOjpIVFRQSGVhZGVyRmllbGQ+JiYsIFZlY3RvcjxXZWJDb3JlOjpDdXN0
b21IZWFkZXJGaWVsZHM+JiYsIFdlYktpdDo6V2Vic2l0ZVBvcFVwUG9saWN5LCBSZWZQdHI8V2Vi
c2l0ZURhdGFTdG9yZT4mJik7CiAKQEAgLTEzNyw2ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIFdl
YktpdDo6V2Vic2l0ZUxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgbV9sZWdhY3lP
dmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5IHsgV2ViS2l0OjpXZWJzaXRlTGVnYWN5T3ZlcmZs
b3dTY3JvbGxpbmdUb3VjaFBvbGljeTo6RGVmYXVsdCB9OwogICAgIGJvb2wgbV9hbGxvd1NpdGVT
cGVjaWZpY1F1aXJrc1RvT3ZlcnJpZGVDb250ZW50TW9kZSB7IGZhbHNlIH07CiAgICAgV1RGOjpT
dHJpbmcgbV9hcHBsaWNhdGlvbk5hbWVGb3JEZXNrdG9wVXNlckFnZW50OworICAgIGJvb2wgbV9h
bGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KaW5kZXggNThjOTk2YTk2YWM3ODc5ODUyNmQxZTcwZDVhYmEyM2Y3NGMyMjIwYi4uNzM1
NTYwZTM0M2YxMjExN2ViNWViOGRiNWYxOWYyMDMwMzZhZmE2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xNDIwLDggKzE0MjAsMTAg
QEAgV2ViQ29udGVudE1vZGUgV2ViUGFnZVByb3h5OjplZmZlY3RpdmVDb250ZW50TW9kZUFmdGVy
QWRqdXN0aW5nUG9saWNpZXMoQVBJOjpXZWIKIAogICAgIG1fYWxsb3dzRmFzdENsaWNrc0V2ZXJ5
d2hlcmUgPSBmYWxzZTsKIAotICAgIGlmICghdXNlRGVza3RvcEJyb3dzaW5nTW9kZSkKKyAgICBp
ZiAoIXVzZURlc2t0b3BCcm93c2luZ01vZGUpIHsKKyAgICAgICAgcG9saWNpZXMuc2V0QWxsb3dD
b250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayh0cnVlKTsKICAgICAgICAgcmV0dXJuIFdlYkNvbnRl
bnRNb2RlOjpNb2JpbGU7CisgICAgfQogCiAgICAgaWYgKHBvbGljaWVzLmN1c3RvbVVzZXJBZ2Vu
dCgpLmlzRW1wdHkoKSAmJiBjdXN0b21Vc2VyQWdlbnQoKS5pc0VtcHR5KCkpIHsKICAgICAgICAg
YXV0byBhcHBsaWNhdGlvbk5hbWUgPSBwb2xpY2llcy5hcHBsaWNhdGlvbk5hbWVGb3JEZXNrdG9w
VXNlckFnZW50KCk7Cg==
</data>
<flag name="review"
          id="391787"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>