<?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>159521</bug_id>
          
          <creation_ts>2016-07-07 11:35:51 -0700</creation_ts>
          <short_desc>Add always-on logging for downloads</short_desc>
          <delta_ts>2016-07-08 10:55:28 -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>WebKit Misc.</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="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1208704</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-07-07 11:35:51 -0700</bug_when>
    <thetext>Add Logging 2.0 support for downloads to be able to diagnose issues like &lt;rdar://problem/26444360&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208706</commentid>
    <comment_count>1</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-07-07 11:36:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/26630645&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208767</commentid>
    <comment_count>2</comment_count>
      <attachid>283047</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-07-07 14:02:22 -0700</bug_when>
    <thetext>Created attachment 283047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208769</commentid>
    <comment_count>3</comment_count>
      <attachid>283047</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-07 14:04:43 -0700</bug_when>
    <thetext>Comment on attachment 283047
Patch

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

&gt; Source/WebKit2/ChangeLog:13
&gt; +        Note that this logging only tracks WebKit-initiated downloading. It

TMI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208771</commentid>
    <comment_count>4</comment_count>
      <attachid>283047</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-07 14:06:56 -0700</bug_when>
    <thetext>Comment on attachment 283047
Patch

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

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:44
&gt; +#if USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)

Do we really need this? What would prevent other non NetworkSession code to use those macros for e.g.?

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:95
&gt; +#if USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)

Is this really needed?

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:104
&gt; +#if USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)

Is this really needed?

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:146
&gt; +#if USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)

Is this really needed?

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:164
&gt; +#if USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)

Is this really needed?

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:180
&gt; +#if USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)

Is this really needed?

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:203
&gt; +#if USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)

Is this really needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208794</commentid>
    <comment_count>5</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-07-07 14:45:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 283047 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283047&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:44
&gt; &gt; +#if USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)
&gt; 
&gt; Do we really need this? What would prevent other non NetworkSession code to
&gt; use those macros for e.g.?

The logging macros reference isAlwaysOnLoggingAllowed(). That function looks at the associated sessionID to see if the session is private or not. That sessionID is available only in the &quot;USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)&quot; branches of code.

I suppose it could tweak things around another way. I could change isAlwaysOnLoggingAllowed to always return some hard-coded bool (true or false, it probably doesn&apos;t matter) rather than something that references m_sessionID in the non-&quot;USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)&quot; case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208796</commentid>
    <comment_count>6</comment_count>
      <attachid>283047</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-07 14:47:36 -0700</bug_when>
    <thetext>Comment on attachment 283047
Patch

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

&gt;&gt;&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:44
&gt;&gt;&gt; +#if USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)
&gt;&gt; 
&gt;&gt; Do we really need this? What would prevent other non NetworkSession code to use those macros for e.g.?
&gt; 
&gt; The logging macros reference isAlwaysOnLoggingAllowed(). That function looks at the associated sessionID to see if the session is private or not. That sessionID is available only in the &quot;USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)&quot; branches of code.
&gt; 
&gt; I suppose it could tweak things around another way. I could change isAlwaysOnLoggingAllowed to always return some hard-coded bool (true or false, it probably doesn&apos;t matter) rather than something that references m_sessionID in the non-&quot;USE(NETWORK_SESSION) &amp;&amp; PLATFORM(COCOA)&quot; case.

Or maybe have the DOWNLOAD_LOG_ALWAYS*() macros be no-ops for other platforms so that we don&apos;t need to #ifdef at every call site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208812</commentid>
    <comment_count>7</comment_count>
      <attachid>283062</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-07-07 15:09:17 -0700</bug_when>
    <thetext>Created attachment 283062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208869</commentid>
    <comment_count>8</comment_count>
      <attachid>283080</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-07-07 16:06:49 -0700</bug_when>
    <thetext>Created attachment 283080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208899</commentid>
    <comment_count>9</comment_count>
      <attachid>283080</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-07 16:49:40 -0700</bug_when>
    <thetext>Comment on attachment 283080
Patch

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

This will require WK2 owner review but here is my informal review.

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:45
&gt; +#define DOWNLOAD_LOG_ALWAYS_ERROR(...) LOG_ALWAYS_ERROR(isAlwaysOnLoggingAllowed(), __VA_ARGS__)

You&apos;re not using this one?

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:101
&gt; +        DOWNLOAD_LOG_ALWAYS(&quot;Download task (%llu) received bytes&quot;, downloadID().downloadID());

Received *first* bytes ? Or &quot;started receiving data&quot; ?

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:102
&gt; +        m_receivedData = true;

As per coding style, Boolean variables need a prefix. In this case, I suggest &quot;hasReceivedData&quot;

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.h:150
&gt; +    WebCore::SessionID m_sessionID;

Shouldn&apos;t this be in the COCOA &amp;&amp; NETWORK_SESSION block?

&gt; Source/WebKit2/NetworkProcess/Downloads/Download.h:152
&gt; +    bool m_receivedData = false;

I think we usually use the { false } syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208903</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-07-07 16:56:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 283080 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283080&amp;action=review
&gt; 
&gt; This will require WK2 owner review but here is my informal review.
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:45
&gt; &gt; +#define DOWNLOAD_LOG_ALWAYS_ERROR(...) LOG_ALWAYS_ERROR(isAlwaysOnLoggingAllowed(), __VA_ARGS__)
&gt; 
&gt; You&apos;re not using this one?

Not this time. I&apos;ve generally added them in pairs for consistency. And so people can assume that if one is there, so is the other.

&gt; &gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:101
&gt; &gt; +        DOWNLOAD_LOG_ALWAYS(&quot;Download task (%llu) received bytes&quot;, downloadID().downloadID());
&gt; 
&gt; Received *first* bytes ? Or &quot;started receiving data&quot; ?

OK.

&gt; &gt; Source/WebKit2/NetworkProcess/Downloads/Download.cpp:102
&gt; &gt; +        m_receivedData = true;
&gt; 
&gt; As per coding style, Boolean variables need a prefix. In this case, I
&gt; suggest &quot;hasReceivedData&quot;

OK.

&gt; &gt; Source/WebKit2/NetworkProcess/Downloads/Download.h:150
&gt; &gt; +    WebCore::SessionID m_sessionID;
&gt; 
&gt; Shouldn&apos;t this be in the COCOA &amp;&amp; NETWORK_SESSION block?

You seemed to be encouraging the reduction of conditional compilation, so I didn&apos;t add a block here.

&gt; &gt; Source/WebKit2/NetworkProcess/Downloads/Download.h:152
&gt; &gt; +    bool m_receivedData = false;
&gt; 
&gt; I think we usually use the { false } syntax.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208904</commentid>
    <comment_count>11</comment_count>
      <attachid>283080</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-07 16:57:06 -0700</bug_when>
    <thetext>Comment on attachment 283080
Patch

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

&gt;&gt;&gt; Source/WebKit2/NetworkProcess/Downloads/Download.h:150
&gt;&gt;&gt; +    WebCore::SessionID m_sessionID;
&gt;&gt; 
&gt;&gt; Shouldn&apos;t this be in the COCOA &amp;&amp; NETWORK_SESSION block?
&gt; 
&gt; You seemed to be encouraging the reduction of conditional compilation, so I didn&apos;t add a block here.

But... The block is already there above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208909</commentid>
    <comment_count>12</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-07-07 17:06:35 -0700</bug_when>
    <thetext>Yeah, but I didn&apos;t want to add to the list of things people had to think about. &quot;Hrm. I don&apos;t remember...is m_sessionID available in this context or not?&quot;.

On the other hand, including an m_sessionID that is meaningful only some of the time is probably not a good idea, either.

Overall, I guess the best solution is to figure out how to get rid of these conditionals in the first place. :-) In the meantime, I&apos;ll put m_sessionID back up in the conditional block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208910</commentid>
    <comment_count>13</comment_count>
      <attachid>283092</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-07-07 17:08:16 -0700</bug_when>
    <thetext>Created attachment 283092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208940</commentid>
    <comment_count>14</comment_count>
      <attachid>283092</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-07 19:48:38 -0700</bug_when>
    <thetext>Comment on attachment 283092
Patch

platform differences in networking and downloading code are going to be around for a long time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209195</commentid>
    <comment_count>15</comment_count>
      <attachid>283092</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 10:55:22 -0700</bug_when>
    <thetext>Comment on attachment 283092
Patch

Clearing flags on attachment: 283092

Committed r202993: &lt;http://trac.webkit.org/changeset/202993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209197</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 10:55:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283047</attachid>
            <date>2016-07-07 14:02:22 -0700</date>
            <delta_ts>2016-07-07 15:09:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159521-20160707140149.patch</filename>
            <type>text/plain</type>
            <size>8208</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODAyODIxNTMwYmI3NDVi
NzRhZGQzOGRhOTc5MmNlYjc4N2IzZTU0YS4uNGQyOGJhM2JlMzJmNzEzMTA4NDBmNDVkNGY1ODgz
NzA4MTM5ZTM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA3LTA3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYWx3YXlzLW9uIGxv
Z2dpbmcgZm9yIGRvd25sb2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU5NTIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjYzMDY0NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbG9nZ2lu
ZyBzdGF0ZW1lbnRzIHRoYXQgdHJhY2sgd2hlbiBhIGRvd25sb2FkIHN0YXJ0cywgd2hlbiBpdAor
ICAgICAgICBmaXJzdCByZWNlaXZlcyBkYXRhLCBhbmQgd2hlbiB0aGUgZG93bmxvYWQgaXMgZG9u
ZSAoZHVlIHRvIGNvbXBsZXRpb24sCisgICAgICAgIGNhbmNlbGF0aW9uLCBvciBmYWlsdXJlKS4K
KworICAgICAgICBOb3RlIHRoYXQgdGhpcyBsb2dnaW5nIG9ubHkgdHJhY2tzIFdlYktpdC1pbml0
aWF0ZWQgZG93bmxvYWRpbmcuIEl0CisgICAgICAgIGRvZXMgbm90IHRyYWNrIFNhZmFyaS1pbml0
aWF0ZWQgZG93bmxvYWRpbmcgKHN1Y2ggYXMgd2hlbiByZXN1bWluZyBhCisgICAgICAgIHBhdXNl
ZCBkb3dubG9hZCBmcm9tIHRoZSBkb3dubG9hZCBtZW51KS4gVGhpcyBpcyBiZWNhdXNlIFNhZmFy
aQorICAgICAgICBoYW5kbGVzIHRoYXQgZG93bmxvYWRpbmcgb24gaXRzIG93biAoc2VlIHJkYXI6
Ly9wcm9ibGVtLzEwMDQ2OTgyKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6Cisg
ICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAo
V2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRpZEZhaWwpOgor
ICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkQ2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpE
b3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246
ZGF0YVRhc2s6ZGlkQmVjb21lRG93bmxvYWRUYXNrOl0pOgorCiAyMDE2LTA3LTA2ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjAyNzI1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggODM5YzgyYzgwYzEzOWZiOTU3YzE4MzVi
N2IyOWFlYzIzYjY0MGNlNi4uYmQ3Y2Q2NjQ2MTZlYzI2YmYxYzQzZDJkZjM0ZDg5ZWE5MDVjNzUy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWQuY3BwCkBAIC00MSwxMCArNDEsMTUgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiBQTEFURk9STShDT0NPQSkKKyNkZWZp
bmUgRE9XTkxPQURfTE9HX0FMV0FZUyguLi4pIExPR19BTFdBWVMoaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIF9fVkFfQVJHU19fKQorI2RlZmluZSBET1dOTE9BRF9MT0dfQUxXQVlTX0VSUk9S
KC4uLikgTE9HX0FMV0FZU19FUlJPUihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9B
UkdTX18pCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICNpZiBVU0UoTkVUV09SS19T
RVNTSU9OKSAmJiBQTEFURk9STShDT0NPQSkKLURvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1h
bmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBOU1VSTFNlc3Np
b25Eb3dubG9hZFRhc2sqIGRvd25sb2FkLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCitE
b3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25s
b2FkSUQgZG93bmxvYWRJRCwgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrKiBkb3dubG9hZCwgY29u
c3QgV2ViQ29yZTo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVk
TmFtZSkKICNlbHNlCiBEb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9h
ZE1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCiAjZW5kaWYKQEAgLTU1LDYgKzYw
LDcgQEAgRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2Vy
LCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnMKICNlbmRpZgogI2lmIFVTRShORVRXT1JLX1NF
U1NJT04pICYmIFBMQVRGT1JNKENPQ09BKQogICAgICwgbV9kb3dubG9hZChkb3dubG9hZCkKKyAg
ICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICNlbmRpZgogICAgICwgbV9zdWdnZXN0ZWROYW1l
KHN1Z2dlc3RlZE5hbWUpCiB7CkBAIC04NiwxMSArOTIsMjIgQEAgdm9pZCBEb3dubG9hZDo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJgogCiB2b2lkIERvd25sb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCiB7CisjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikgJiYgUExBVEZP
Uk0oQ09DT0EpCisgICAgRE9XTkxPQURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFzayAoJWxsdSkg
Y3JlYXRlZCIsIGRvd25sb2FkSUQoKS5kb3dubG9hZElEKCkpOworI2VuZGlmCisKICAgICBzZW5k
KE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpKTsK
IH0KIAogdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEodWludDY0X3QgbGVuZ3RoKQogewor
I2lmIFVTRShORVRXT1JLX1NFU1NJT04pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmICghbV9y
ZWNlaXZlZERhdGEpIHsKKyAgICAgICAgRE9XTkxPQURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFz
ayAoJWxsdSkgcmVjZWl2ZWQgYnl0ZXMiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKKyAg
ICAgICAgbV9yZWNlaXZlZERhdGEgPSB0cnVlOworICAgIH0KKyNlbmRpZgorCiAgICAgc2VuZChN
ZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGlkUmVjZWl2ZURhdGEobGVuZ3RoKSk7CiB9CiAKQEAg
LTEyNiw2ICsxNDMsMTAgQEAgdm9pZCBEb3dubG9hZDo6ZGlkQ3JlYXRlRGVzdGluYXRpb24oY29u
c3QgU3RyaW5nJiBwYXRoKQogCiB2b2lkIERvd25sb2FkOjpkaWRGaW5pc2goKQogeworI2lmIFVT
RShORVRXT1JLX1NFU1NJT04pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIERPV05MT0FEX0xPR19B
TFdBWVMoIkRvd25sb2FkIHRhc2sgKCVsbHUpIGZpbmlzaGVkIiwgZG93bmxvYWRJRCgpLmRvd25s
b2FkSUQoKSk7CisjZW5kaWYKKwogICAgIHBsYXRmb3JtRGlkRmluaXNoKCk7CiAKICAgICBzZW5k
KE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRGaW5pc2goKSk7CkBAIC0xNDAsNiArMTYxLDEx
IEBAIHZvaWQgRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiAKIHZvaWQgRG93bmxvYWQ6OmRpZEZhaWwo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVz
dW1lRGF0YSkKIHsKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiBQTEFURk9STShDT0NPQSkK
KyAgICBET1dOTE9BRF9MT0dfQUxXQVlTKCJEb3dubG9hZCB0YXNrICglbGx1KSBmYWlsZWQsIGlz
VGltZW91dCA9ICVkLCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBlcnJDb2RlID0gJWQiLAorICAgICAg
ICBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXND
YW5jZWxsYXRpb24oKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworI2VuZGlmCisKICAgICBzZW5kKE1l
c3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRGYWlsKGVycm9yLCByZXN1bWVEYXRhKSk7CiAKICAg
ICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CkBAIC0xNTEsNiArMTc3LDEwIEBAIHZvaWQgRG93
bmxvYWQ6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgcmVzCiAKIHZvaWQgRG93bmxvYWQ6OmRpZENhbmNlbChjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmIHJlc3VtZURhdGEpCiB7CisjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikgJiYg
UExBVEZPUk0oQ09DT0EpCisgICAgRE9XTkxPQURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFzayAo
JWxsdSkgY2FuY2VsZWQiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKKyNlbmRpZgorCiAg
ICAgc2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGlkQ2FuY2VsKHJlc3VtZURhdGEpKTsK
IAogICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKQEAgLTE3MCw0ICsyMDAsMTEgQEAgdWlu
dDY0X3QgRG93bmxvYWQ6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkKICAgICByZXR1cm4g
bV9kb3dubG9hZElELmRvd25sb2FkSUQoKTsKIH0KIAorI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
ICYmIFBMQVRGT1JNKENPQ09BKQorYm9vbCBEb3dubG9hZDo6aXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCmluZGV4IDdk
YmJjZjQ2ZGVjOGYzZDVhZDcwNGFkZjFlNDY0Mjc2MWJiMTQ4NzUuLjZmNzQ2YzVhMTBkM2MyMjMw
MDllYzRlZWUxZmNhYmI4YTJhNGY1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKICNpZiBQTEFURk9STShDT0NP
QSkKQEAgLTc2LDcgKzc3LDcgQEAgY2xhc3MgRG93bmxvYWQgOiBwdWJsaWMgSVBDOjpNZXNzYWdl
U2VuZGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEb3dubG9hZCk7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pICYmIFBMQVRG
T1JNKENPQ09BKQotICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIE5T
VVJMU2Vzc2lvbkRvd25sb2FkVGFzayosIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUg
PSB7IH0pOworICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQsIE5TVVJM
U2Vzc2lvbkRvd25sb2FkVGFzayosIGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgc2Vzc2lvbklE
LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKICNlbHNlCiAgICAgRG93
bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7CiAjZW5k
aWYKQEAgLTEyMCw2ICsxMjEsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxhdGZvcm1JbnZh
bGlkYXRlKCk7CiAKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiBQTEFURk9STShDT0NPQSkK
KyAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0OworI2VuZGlmCisKICAg
ICBEb3dubG9hZE1hbmFnZXImIG1fZG93bmxvYWRNYW5hZ2VyOwogICAgIERvd25sb2FkSUQgbV9k
b3dubG9hZElEOwogI2lmICFVU0UoTkVUV09SS19TRVNTSU9OKQpAQCAtMTMxLDYgKzEzNiw4IEBA
IHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikK
ICAgICBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrPiBtX2Rvd25sb2FkOworICAg
IFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBib29sIG1fcmVjZWl2ZWREYXRh
ID0gZmFsc2U7CiAjZWxzZQogICAgIFJldGFpblB0cjxOU1VSTERvd25sb2FkPiBtX25zVVJMRG93
bmxvYWQ7CiAgICAgUmV0YWluUHRyPFdLRG93bmxvYWRBc0RlbGVnYXRlPiBtX2RlbGVnYXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KaW5kZXggYWQzNWFiZjk2OGZlNjVkNWVmZjYwNDQ1MTcxMjlkYTAx
NzI1MzljNy4uYTQxZTU3NzBjZGM0MDY3NjU5OTEyY2QyYjIyZDc3YzAwNzk2NjkwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tCkBAIC0yOTMsNyArMjkzLDcgQEAgLSAodm9pZClVUkxTZXNzaW9uOihO
U1VSTFNlc3Npb24gKilzZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRh
dGEKICAgICBpZiAoYXV0byogbmV0d29ya0RhdGFUYXNrID0gX3Nlc3Npb24tPmRhdGFUYXNrRm9y
SWRlbnRpZmllcihbZGF0YVRhc2sgdGFza0lkZW50aWZpZXJdLCBzdG9yZWRDcmVkZW50aWFscykp
IHsKICAgICAgICAgYXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFUYXNrLT5wZW5kaW5nRG93
bmxvYWRJRCgpOwogICAgICAgICBhdXRvJiBkb3dubG9hZE1hbmFnZXIgPSBXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzaW5nbGV0b24oKS5kb3dubG9hZE1hbmFnZXIoKTsKLSAgICAgICAgYXV0byBk
b3dubG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpEb3dubG9hZD4oZG93bmxvYWRNYW5h
Z2VyLCBkb3dubG9hZElELCBkb3dubG9hZFRhc2spOworICAgICAgICBhdXRvIGRvd25sb2FkID0g
c3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OkRvd25sb2FkPihkb3dubG9hZE1hbmFnZXIsIGRvd25s
b2FkSUQsIGRvd25sb2FkVGFzaywgX3Nlc3Npb24tPnNlc3Npb25JRCgpKTsKICAgICAgICAgbmV0
d29ya0RhdGFUYXNrLT50cmFuc2ZlclNhbmRib3hFeHRlbnNpb25Ub0Rvd25sb2FkKCpkb3dubG9h
ZCk7CiAgICAgICAgIEFTU0VSVChXZWJDb3JlOjpmaWxlRXhpc3RzKG5ldHdvcmtEYXRhVGFzay0+
cGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oKSkpOwogICAgICAgICBkb3dubG9hZC0+ZGlkQ3JlYXRl
RGVzdGluYXRpb24obmV0d29ya0RhdGFUYXNrLT5wZW5kaW5nRG93bmxvYWRMb2NhdGlvbigpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283062</attachid>
            <date>2016-07-07 15:09:17 -0700</date>
            <delta_ts>2016-07-07 16:06:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159521-20160707150843.patch</filename>
            <type>text/plain</type>
            <size>7594</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODAyODIxNTMwYmI3NDVi
NzRhZGQzOGRhOTc5MmNlYjc4N2IzZTU0YS4uYzA1Yjc5YjRjOWUxOTE0NjhkNmFlYzBkZTY5YWY0
ZDAxZjhlNWE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA3LTA3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYWx3YXlzLW9uIGxv
Z2dpbmcgZm9yIGRvd25sb2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU5NTIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjYzMDY0NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbG9nZ2lu
ZyBzdGF0ZW1lbnRzIHRoYXQgdHJhY2sgd2hlbiBhIGRvd25sb2FkIHN0YXJ0cywgd2hlbiBpdAor
ICAgICAgICBmaXJzdCByZWNlaXZlcyBkYXRhLCBhbmQgd2hlbiB0aGUgZG93bmxvYWQgaXMgZG9u
ZSAoZHVlIHRvIGNvbXBsZXRpb24sCisgICAgICAgIGNhbmNlbGF0aW9uLCBvciBmYWlsdXJlKS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlk
UmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkRmluaXNoKToKKyAg
ICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZDo6ZGlkQ2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1b
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlkQmVjb21lRG93
bmxvYWRUYXNrOl0pOgorCiAyMDE2LTA3LTA2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAyNzI1Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5jcHAKaW5kZXggODM5YzgyYzgwYzEzOWZiOTU3YzE4MzViN2IyOWFlYzIzYjY0MGNlNi4uZTAw
MDE3YjYzMzQ3OWNlNzU3NzMxNmRhODU1NmRkMTM5OTM1ODFlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCkBAIC00MSwx
MCArNDEsMTUgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKKyNpZiBVU0UoTkVUV09S
S19TRVNTSU9OKSAmJiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgRE9XTkxPQURfTE9HX0FMV0FZ
UyguLi4pIExPR19BTFdBWVMoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIF9fVkFfQVJHU19f
KQorI2RlZmluZSBET1dOTE9BRF9MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9HX0FMV0FZU19FUlJP
Uihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiBQTEFURk9STShD
T0NPQSkKLURvd25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdl
ciwgRG93bmxvYWRJRCBkb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sqIGRvd25s
b2FkLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCitEb3dubG9hZDo6RG93bmxvYWQoRG93
bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgTlNV
UkxTZXNzaW9uRG93bmxvYWRUYXNrKiBkb3dubG9hZCwgY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklE
JiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkKICNlbHNlCiBEb3dubG9h
ZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIERvd25sb2FkSUQg
ZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcm
IHN1Z2dlc3RlZE5hbWUpCiAjZW5kaWYKQEAgLTU1LDYgKzYwLDcgQEAgRG93bmxvYWQ6OkRvd25s
b2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2Fk
SUQsIGNvbnMKICNlbmRpZgogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pICYmIFBMQVRGT1JNKENP
Q09BKQogICAgICwgbV9kb3dubG9hZChkb3dubG9hZCkKKyAgICAsIG1fc2Vzc2lvbklEKHNlc3Np
b25JRCkKICNlbmRpZgogICAgICwgbV9zdWdnZXN0ZWROYW1lKHN1Z2dlc3RlZE5hbWUpCiB7CkBA
IC04NiwxMSArOTIsMTggQEAgdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJgogCiB2b2lkIERvd25sb2Fk
OjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7
CisgICAgRE9XTkxPQURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFzayAoJWxsdSkgY3JlYXRlZCIs
IGRvd25sb2FkSUQoKS5kb3dubG9hZElEKCkpOworCiAgICAgc2VuZChNZXNzYWdlczo6RG93bmxv
YWRQcm94eTo6RGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKSk7CiB9CiAKIHZvaWQgRG93bmxv
YWQ6OmRpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGxlbmd0aCkKIHsKKyAgICBpZiAoIW1fcmVjZWl2
ZWREYXRhKSB7CisgICAgICAgIERPV05MT0FEX0xPR19BTFdBWVMoIkRvd25sb2FkIHRhc2sgKCVs
bHUpIHJlY2VpdmVkIGJ5dGVzIiwgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CisgICAgICAg
IG1fcmVjZWl2ZWREYXRhID0gdHJ1ZTsKKyAgICB9CisKICAgICBzZW5kKE1lc3NhZ2VzOjpEb3du
bG9hZFByb3h5OjpEaWRSZWNlaXZlRGF0YShsZW5ndGgpKTsKIH0KIApAQCAtMTI2LDYgKzEzOSw4
IEBAIHZvaWQgRG93bmxvYWQ6OmRpZENyZWF0ZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgcGF0
aCkKIAogdm9pZCBEb3dubG9hZDo6ZGlkRmluaXNoKCkKIHsKKyAgICBET1dOTE9BRF9MT0dfQUxX
QVlTKCJEb3dubG9hZCB0YXNrICglbGx1KSBmaW5pc2hlZCIsIGRvd25sb2FkSUQoKS5kb3dubG9h
ZElEKCkpOworCiAgICAgcGxhdGZvcm1EaWRGaW5pc2goKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6
OkRvd25sb2FkUHJveHk6OkRpZEZpbmlzaCgpKTsKQEAgLTE0MCw2ICsxNTUsOSBAQCB2b2lkIERv
d25sb2FkOjpkaWRGaW5pc2goKQogCiB2b2lkIERvd25sb2FkOjpkaWRGYWlsKGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEpCiB7
CisgICAgRE9XTkxPQURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFzayAoJWxsdSkgZmFpbGVkLCBp
c1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgZXJyQ29kZSA9ICVkIiwKKyAgICAg
ICAgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlz
Q2FuY2VsbGF0aW9uKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKwogICAgIHNlbmQoTWVzc2FnZXM6
OkRvd25sb2FkUHJveHk6OkRpZEZhaWwoZXJyb3IsIHJlc3VtZURhdGEpKTsKIAogICAgIGlmICht
X3NhbmRib3hFeHRlbnNpb24pIHsKQEAgLTE1MSw2ICsxNjksOCBAQCB2b2lkIERvd25sb2FkOjpk
aWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIHJlcwogCiB2b2lkIERvd25sb2FkOjpkaWRDYW5jZWwoY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiByZXN1bWVEYXRhKQogeworICAgIERPV05MT0FEX0xPR19BTFdBWVMoIkRvd25sb2FkIHRh
c2sgKCVsbHUpIGNhbmNlbGVkIiwgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CisKICAgICBz
ZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRDYW5jZWwocmVzdW1lRGF0YSkpOwogCiAg
ICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgewpAQCAtMTcwLDQgKzE5MCwxMyBAQCB1aW50NjRf
dCBEb3dubG9hZDo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKQogICAgIHJldHVybiBtX2Rv
d25sb2FkSUQuZG93bmxvYWRJRCgpOwogfQogCitib29sIERvd25sb2FkOjppc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSBjb25zdAoreworI2lmIFVTRShORVRXT1JLX1NFU1NJT04pICYmIFBMQVRG
T1JNKENPQ09BKQorICAgIHJldHVybiBtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaAppbmRleCA3ZGJiY2Y0NmRlYzhmM2Q1YWQ3MDRhZGYxZTQ2NDI3NjFiYjE0
ODc1Li5hMWU2NGEwY2FmYmU5YjdlN2VjZTNiNDI5MmU4MDBhMDlhNjUzNzc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTYW5k
Ym94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC03Niw3ICs3Nyw3IEBAIGNsYXNzIERvd25sb2Fk
IDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
RG93bmxvYWQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICNpZiBVU0UoTkVU
V09SS19TRVNTSU9OKSAmJiBQTEFURk9STShDT0NPQSkKLSAgICBEb3dubG9hZChEb3dubG9hZE1h
bmFnZXImLCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sqLCBjb25zdCBTdHJp
bmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKKyAgICBEb3dubG9hZChEb3dubG9hZE1hbmFn
ZXImLCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sqLCBjb25zdCBXZWJDb3Jl
OjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9
IHsgfSk7CiAjZWxzZQogICAgIERvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25sb2FkSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVk
RmlsZW5hbWUgPSB7IH0pOwogI2VuZGlmCkBAIC0xMjAsNiArMTIxLDggQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAKKyAgICBib29sIGlzQWx3YXlzT25Mb2dn
aW5nQWxsb3dlZCgpIGNvbnN0OworCiAgICAgRG93bmxvYWRNYW5hZ2VyJiBtX2Rvd25sb2FkTWFu
YWdlcjsKICAgICBEb3dubG9hZElEIG1fZG93bmxvYWRJRDsKICNpZiAhVVNFKE5FVFdPUktfU0VT
U0lPTikKQEAgLTE0NCw3ICsxNDcsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVudD4gbV9kb3dubG9hZENsaWVudDsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU+IG1fcmVzb3VyY2VIYW5kbGU7CiAjZW5kaWYKKyAg
ICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgU3RyaW5nIG1fc3VnZ2VzdGVk
TmFtZTsKKyAgICBib29sIG1fcmVjZWl2ZWREYXRhID0gZmFsc2U7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGFkMzVhYmY5NjhmZTY1ZDVlZmY2
MDQ0NTE3MTI5ZGEwMTcyNTM5YzcuLmE0MWU1NzcwY2RjNDA2NzY1OTkxMmNkMmIyMmQ3N2MwMDc5
NjY5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMjkzLDcgKzI5Myw3IEBAIC0gKHZvaWQp
VVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiBkYXRhVGFzazooTlNVUkxTZXNzaW9u
RGF0YVRhc2sgKilkYXRhCiAgICAgaWYgKGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IF9zZXNzaW9u
LT5kYXRhVGFza0ZvcklkZW50aWZpZXIoW2RhdGFUYXNrIHRhc2tJZGVudGlmaWVyXSwgc3RvcmVk
Q3JlZGVudGlhbHMpKSB7CiAgICAgICAgIGF1dG8gZG93bmxvYWRJRCA9IG5ldHdvcmtEYXRhVGFz
ay0+cGVuZGluZ0Rvd25sb2FkSUQoKTsKICAgICAgICAgYXV0byYgZG93bmxvYWRNYW5hZ2VyID0g
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuZG93bmxvYWRNYW5hZ2VyKCk7Ci0g
ICAgICAgIGF1dG8gZG93bmxvYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdDo6RG93bmxvYWQ+
KGRvd25sb2FkTWFuYWdlciwgZG93bmxvYWRJRCwgZG93bmxvYWRUYXNrKTsKKyAgICAgICAgYXV0
byBkb3dubG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpEb3dubG9hZD4oZG93bmxvYWRN
YW5hZ2VyLCBkb3dubG9hZElELCBkb3dubG9hZFRhc2ssIF9zZXNzaW9uLT5zZXNzaW9uSUQoKSk7
CiAgICAgICAgIG5ldHdvcmtEYXRhVGFzay0+dHJhbnNmZXJTYW5kYm94RXh0ZW5zaW9uVG9Eb3du
bG9hZCgqZG93bmxvYWQpOwogICAgICAgICBBU1NFUlQoV2ViQ29yZTo6ZmlsZUV4aXN0cyhuZXR3
b3JrRGF0YVRhc2stPnBlbmRpbmdEb3dubG9hZExvY2F0aW9uKCkpKTsKICAgICAgICAgZG93bmxv
YWQtPmRpZENyZWF0ZURlc3RpbmF0aW9uKG5ldHdvcmtEYXRhVGFzay0+cGVuZGluZ0Rvd25sb2Fk
TG9jYXRpb24oKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283080</attachid>
            <date>2016-07-07 16:06:49 -0700</date>
            <delta_ts>2016-07-07 17:08:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159521-20160707160615.patch</filename>
            <type>text/plain</type>
            <size>7541</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODAyODIxNTMwYmI3NDVi
NzRhZGQzOGRhOTc5MmNlYjc4N2IzZTU0YS4uYzA1Yjc5YjRjOWUxOTE0NjhkNmFlYzBkZTY5YWY0
ZDAxZjhlNWE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA3LTA3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYWx3YXlzLW9uIGxv
Z2dpbmcgZm9yIGRvd25sb2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU5NTIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjYzMDY0NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbG9nZ2lu
ZyBzdGF0ZW1lbnRzIHRoYXQgdHJhY2sgd2hlbiBhIGRvd25sb2FkIHN0YXJ0cywgd2hlbiBpdAor
ICAgICAgICBmaXJzdCByZWNlaXZlcyBkYXRhLCBhbmQgd2hlbiB0aGUgZG93bmxvYWQgaXMgZG9u
ZSAoZHVlIHRvIGNvbXBsZXRpb24sCisgICAgICAgIGNhbmNlbGF0aW9uLCBvciBmYWlsdXJlKS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlk
UmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkRmluaXNoKToKKyAg
ICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZDo6ZGlkQ2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1b
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlkQmVjb21lRG93
bmxvYWRUYXNrOl0pOgorCiAyMDE2LTA3LTA2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAyNzI1Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5jcHAKaW5kZXggODM5YzgyYzgwYzEzOWZiOTU3YzE4MzViN2IyOWFlYzIzYjY0MGNlNi4uOTU0
M2ViM2FjYmViN2RiNjM3NGZkYTJlMjQwMDcxM2YyMjUyMmM3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCkBAIC00MSwx
MCArNDEsMTMgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKKyNkZWZpbmUgRE9XTkxP
QURfTE9HX0FMV0FZUyguLi4pIExPR19BTFdBWVMoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
IF9fVkFfQVJHU19fKQorI2RlZmluZSBET1dOTE9BRF9MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9H
X0FMV0FZU19FUlJPUihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikgJiYgUExBVEZP
Uk0oQ09DT0EpCi1Eb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1h
bmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrKiBk
b3dubG9hZCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQorRG93bmxvYWQ6OkRvd25sb2Fk
KERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQs
IE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayogZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCiAjZWxzZQogRG93
bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9h
ZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Ry
aW5nJiBzdWdnZXN0ZWROYW1lKQogI2VuZGlmCkBAIC01NSw2ICs1OCw3IEBAIERvd25sb2FkOjpE
b3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3du
bG9hZElELCBjb25zCiAjZW5kaWYKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiBQTEFURk9S
TShDT0NPQSkKICAgICAsIG1fZG93bmxvYWQoZG93bmxvYWQpCisgICAgLCBtX3Nlc3Npb25JRChz
ZXNzaW9uSUQpCiAjZW5kaWYKICAgICAsIG1fc3VnZ2VzdGVkTmFtZShzdWdnZXN0ZWROYW1lKQog
ewpAQCAtODYsMTEgKzkwLDE4IEBAIHZvaWQgRG93bmxvYWQ6OmRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYKIAogdm9pZCBEb3du
bG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQogeworICAgIERPV05MT0FEX0xPR19BTFdBWVMoIkRvd25sb2FkIHRhc2sgKCVsbHUpIGNyZWF0
ZWQiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKKwogICAgIHNlbmQoTWVzc2FnZXM6OkRv
d25sb2FkUHJveHk6OkRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSkpOwogfQogCiB2b2lkIERv
d25sb2FkOjpkaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBsZW5ndGgpCiB7CisgICAgaWYgKCFtX3Jl
Y2VpdmVkRGF0YSkgeworICAgICAgICBET1dOTE9BRF9MT0dfQUxXQVlTKCJEb3dubG9hZCB0YXNr
ICglbGx1KSByZWNlaXZlZCBieXRlcyIsIGRvd25sb2FkSUQoKS5kb3dubG9hZElEKCkpOworICAg
ICAgICBtX3JlY2VpdmVkRGF0YSA9IHRydWU7CisgICAgfQorCiAgICAgc2VuZChNZXNzYWdlczo6
RG93bmxvYWRQcm94eTo6RGlkUmVjZWl2ZURhdGEobGVuZ3RoKSk7CiB9CiAKQEAgLTEyNiw2ICsx
MzcsOCBAQCB2b2lkIERvd25sb2FkOjpkaWRDcmVhdGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcm
IHBhdGgpCiAKIHZvaWQgRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiB7CisgICAgRE9XTkxPQURfTE9H
X0FMV0FZUygiRG93bmxvYWQgdGFzayAoJWxsdSkgZmluaXNoZWQiLCBkb3dubG9hZElEKCkuZG93
bmxvYWRJRCgpKTsKKwogICAgIHBsYXRmb3JtRGlkRmluaXNoKCk7CiAKICAgICBzZW5kKE1lc3Nh
Z2VzOjpEb3dubG9hZFByb3h5OjpEaWRGaW5pc2goKSk7CkBAIC0xNDAsNiArMTUzLDkgQEAgdm9p
ZCBEb3dubG9hZDo6ZGlkRmluaXNoKCkKIAogdm9pZCBEb3dubG9hZDo6ZGlkRmFpbChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRh
KQogeworICAgIERPV05MT0FEX0xPR19BTFdBWVMoIkRvd25sb2FkIHRhc2sgKCVsbHUpIGZhaWxl
ZCwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGVyckNvZGUgPSAlZCIsCisg
ICAgICAgIGRvd25sb2FkSUQoKS5kb3dubG9hZElEKCksIGVycm9yLmlzVGltZW91dCgpLCBlcnJv
ci5pc0NhbmNlbGxhdGlvbigpLCBlcnJvci5lcnJvckNvZGUoKSk7CisKICAgICBzZW5kKE1lc3Nh
Z2VzOjpEb3dubG9hZFByb3h5OjpEaWRGYWlsKGVycm9yLCByZXN1bWVEYXRhKSk7CiAKICAgICBp
ZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CkBAIC0xNTEsNiArMTY3LDggQEAgdm9pZCBEb3dubG9h
ZDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiByZXMKIAogdm9pZCBEb3dubG9hZDo6ZGlkQ2FuY2VsKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgcmVzdW1lRGF0YSkKIHsKKyAgICBET1dOTE9BRF9MT0dfQUxXQVlTKCJEb3dubG9h
ZCB0YXNrICglbGx1KSBjYW5jZWxlZCIsIGRvd25sb2FkSUQoKS5kb3dubG9hZElEKCkpOworCiAg
ICAgc2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGlkQ2FuY2VsKHJlc3VtZURhdGEpKTsK
IAogICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKQEAgLTE3MCw0ICsxODgsMTMgQEAgdWlu
dDY0X3QgRG93bmxvYWQ6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkKICAgICByZXR1cm4g
bV9kb3dubG9hZElELmRvd25sb2FkSUQoKTsKIH0KIAorYm9vbCBEb3dubG9hZDo6aXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCkgY29uc3QKK3sKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiBQ
TEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gbV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkLmgKaW5kZXggN2RiYmNmNDZkZWM4ZjNkNWFkNzA0YWRmMWU0NjQyNzYx
YmIxNDg3NS4uYTFlNjRhMGNhZmJlOWI3ZTdlY2UzYjQyOTJlODAwYTA5YTY1Mzc3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtNzYsNyArNzcsNyBAQCBjbGFzcyBEb3du
bG9hZCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKERvd25sb2FkKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAjaWYgVVNF
KE5FVFdPUktfU0VTU0lPTikgJiYgUExBVEZPUk0oQ09DT0EpCi0gICAgRG93bmxvYWQoRG93bmxv
YWRNYW5hZ2VyJiwgRG93bmxvYWRJRCwgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrKiwgY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7CisgICAgRG93bmxvYWQoRG93bmxvYWRN
YW5hZ2VyJiwgRG93bmxvYWRJRCwgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrKiwgY29uc3QgV2Vi
Q29yZTo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5h
bWUgPSB7IH0pOwogI2Vsc2UKICAgICBEb3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9h
ZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dl
c3RlZEZpbGVuYW1lID0geyB9KTsKICNlbmRpZgpAQCAtMTIwLDYgKzEyMSw4IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIHBsYXRmb3JtSW52YWxpZGF0ZSgpOwogCisgICAgYm9vbCBpc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKKwogICAgIERvd25sb2FkTWFuYWdlciYgbV9kb3dubG9h
ZE1hbmFnZXI7CiAgICAgRG93bmxvYWRJRCBtX2Rvd25sb2FkSUQ7CiAjaWYgIVVTRShORVRXT1JL
X1NFU1NJT04pCkBAIC0xNDQsNyArMTQ3LDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ+IG1fZG93bmxvYWRDbGllbnQ7CiAgICAg
UmVmUHRyPFdlYkNvcmU6OlJlc291cmNlSGFuZGxlPiBtX3Jlc291cmNlSGFuZGxlOwogI2VuZGlm
CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFN0cmluZyBtX3N1Z2dl
c3RlZE5hbWU7CisgICAgYm9vbCBtX3JlY2VpdmVkRGF0YSA9IGZhbHNlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCBhZDM1YWJmOTY4ZmU2NWQ1
ZWZmNjA0NDUxNzEyOWRhMDE3MjUzOWM3Li5hNDFlNTc3MGNkYzQwNjc2NTk5MTJjZDJiMjJkNzdj
MDA3OTY2OTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTI5Myw3ICsyOTMsNyBAQCAtICh2
b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gZGF0YVRhc2s6KE5TVVJMU2Vz
c2lvbkRhdGFUYXNrICopZGF0YQogICAgIGlmIChhdXRvKiBuZXR3b3JrRGF0YVRhc2sgPSBfc2Vz
c2lvbi0+ZGF0YVRhc2tGb3JJZGVudGlmaWVyKFtkYXRhVGFzayB0YXNrSWRlbnRpZmllcl0sIHN0
b3JlZENyZWRlbnRpYWxzKSkgewogICAgICAgICBhdXRvIGRvd25sb2FkSUQgPSBuZXR3b3JrRGF0
YVRhc2stPnBlbmRpbmdEb3dubG9hZElEKCk7CiAgICAgICAgIGF1dG8mIGRvd25sb2FkTWFuYWdl
ciA9IFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmRvd25sb2FkTWFuYWdlcigp
OwotICAgICAgICBhdXRvIGRvd25sb2FkID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OkRvd25s
b2FkPihkb3dubG9hZE1hbmFnZXIsIGRvd25sb2FkSUQsIGRvd25sb2FkVGFzayk7CisgICAgICAg
IGF1dG8gZG93bmxvYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdDo6RG93bmxvYWQ+KGRvd25s
b2FkTWFuYWdlciwgZG93bmxvYWRJRCwgZG93bmxvYWRUYXNrLCBfc2Vzc2lvbi0+c2Vzc2lvbklE
KCkpOwogICAgICAgICBuZXR3b3JrRGF0YVRhc2stPnRyYW5zZmVyU2FuZGJveEV4dGVuc2lvblRv
RG93bmxvYWQoKmRvd25sb2FkKTsKICAgICAgICAgQVNTRVJUKFdlYkNvcmU6OmZpbGVFeGlzdHMo
bmV0d29ya0RhdGFUYXNrLT5wZW5kaW5nRG93bmxvYWRMb2NhdGlvbigpKSk7CiAgICAgICAgIGRv
d25sb2FkLT5kaWRDcmVhdGVEZXN0aW5hdGlvbihuZXR3b3JrRGF0YVRhc2stPnBlbmRpbmdEb3du
bG9hZExvY2F0aW9uKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283092</attachid>
            <date>2016-07-07 17:08:16 -0700</date>
            <delta_ts>2016-07-08 10:55:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159521-20160707170742.patch</filename>
            <type>text/plain</type>
            <size>7722</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODAyODIxNTMwYmI3NDVi
NzRhZGQzOGRhOTc5MmNlYjc4N2IzZTU0YS4uYzA1Yjc5YjRjOWUxOTE0NjhkNmFlYzBkZTY5YWY0
ZDAxZjhlNWE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA3LTA3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYWx3YXlzLW9uIGxv
Z2dpbmcgZm9yIGRvd25sb2FkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU5NTIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjYzMDY0NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbG9nZ2lu
ZyBzdGF0ZW1lbnRzIHRoYXQgdHJhY2sgd2hlbiBhIGRvd25sb2FkIHN0YXJ0cywgd2hlbiBpdAor
ICAgICAgICBmaXJzdCByZWNlaXZlcyBkYXRhLCBhbmQgd2hlbiB0aGUgZG93bmxvYWQgaXMgZG9u
ZSAoZHVlIHRvIGNvbXBsZXRpb24sCisgICAgICAgIGNhbmNlbGF0aW9uLCBvciBmYWlsdXJlKS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlk
UmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkRmluaXNoKToKKyAg
ICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZDo6ZGlkQ2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpEb3dubG9hZCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1b
V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlkQmVjb21lRG93
bmxvYWRUYXNrOl0pOgorCiAyMDE2LTA3LTA2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAyNzI1Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5jcHAKaW5kZXggODM5YzgyYzgwYzEzOWZiOTU3YzE4MzViN2IyOWFlYzIzYjY0MGNlNi4uNzZj
OTNmZDk5MTgwZTQ4NWE1OTRlZTRmNDk5NGRiMzJkY2UwMWUwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCkBAIC00MSwx
MCArNDEsMTMgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKKyNkZWZpbmUgRE9XTkxP
QURfTE9HX0FMV0FZUyguLi4pIExPR19BTFdBWVMoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
IF9fVkFfQVJHU19fKQorI2RlZmluZSBET1dOTE9BRF9MT0dfQUxXQVlTX0VSUk9SKC4uLikgTE9H
X0FMV0FZU19FUlJPUihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgX19WQV9BUkdTX18pCisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikgJiYgUExBVEZP
Uk0oQ09DT0EpCi1Eb3dubG9hZDo6RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1h
bmFnZXIsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrKiBk
b3dubG9hZCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKQorRG93bmxvYWQ6OkRvd25sb2Fk
KERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQs
IE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayogZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUpCiAjZWxzZQogRG93
bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyLCBEb3dubG9h
ZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Ry
aW5nJiBzdWdnZXN0ZWROYW1lKQogI2VuZGlmCkBAIC01NSw2ICs1OCw3IEBAIERvd25sb2FkOjpE
b3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgRG93bmxvYWRJRCBkb3du
bG9hZElELCBjb25zCiAjZW5kaWYKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiBQTEFURk9S
TShDT0NPQSkKICAgICAsIG1fZG93bmxvYWQoZG93bmxvYWQpCisgICAgLCBtX3Nlc3Npb25JRChz
ZXNzaW9uSUQpCiAjZW5kaWYKICAgICAsIG1fc3VnZ2VzdGVkTmFtZShzdWdnZXN0ZWROYW1lKQog
ewpAQCAtODYsMTEgKzkwLDE4IEBAIHZvaWQgRG93bmxvYWQ6OmRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYKIAogdm9pZCBEb3du
bG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQogeworICAgIERPV05MT0FEX0xPR19BTFdBWVMoIkRvd25sb2FkIHRhc2sgKCVsbHUpIGNyZWF0
ZWQiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKKwogICAgIHNlbmQoTWVzc2FnZXM6OkRv
d25sb2FkUHJveHk6OkRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSkpOwogfQogCiB2b2lkIERv
d25sb2FkOjpkaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBsZW5ndGgpCiB7CisgICAgaWYgKCFtX2hh
c1JlY2VpdmVkRGF0YSkgeworICAgICAgICBET1dOTE9BRF9MT0dfQUxXQVlTKCJEb3dubG9hZCB0
YXNrICglbGx1KSBzdGFydGVkIHJlY2VpdmluZyBkYXRhIiwgZG93bmxvYWRJRCgpLmRvd25sb2Fk
SUQoKSk7CisgICAgICAgIG1faGFzUmVjZWl2ZWREYXRhID0gdHJ1ZTsKKyAgICB9CisKICAgICBz
ZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRSZWNlaXZlRGF0YShsZW5ndGgpKTsKIH0K
IApAQCAtMTI2LDYgKzEzNyw4IEBAIHZvaWQgRG93bmxvYWQ6OmRpZENyZWF0ZURlc3RpbmF0aW9u
KGNvbnN0IFN0cmluZyYgcGF0aCkKIAogdm9pZCBEb3dubG9hZDo6ZGlkRmluaXNoKCkKIHsKKyAg
ICBET1dOTE9BRF9MT0dfQUxXQVlTKCJEb3dubG9hZCB0YXNrICglbGx1KSBmaW5pc2hlZCIsIGRv
d25sb2FkSUQoKS5kb3dubG9hZElEKCkpOworCiAgICAgcGxhdGZvcm1EaWRGaW5pc2goKTsKIAog
ICAgIHNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRpZEZpbmlzaCgpKTsKQEAgLTE0MCw2
ICsxNTMsOSBAQCB2b2lkIERvd25sb2FkOjpkaWRGaW5pc2goKQogCiB2b2lkIERvd25sb2FkOjpk
aWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIHJlc3VtZURhdGEpCiB7CisgICAgRE9XTkxPQURfTE9HX0FMV0FZUygiRG93bmxvYWQgdGFz
ayAoJWxsdSkgZmFpbGVkLCBpc1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgZXJy
Q29kZSA9ICVkIiwKKyAgICAgICAgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSwgZXJyb3IuaXNU
aW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKwog
ICAgIHNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRpZEZhaWwoZXJyb3IsIHJlc3VtZURh
dGEpKTsKIAogICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24pIHsKQEAgLTE1MSw2ICsxNjcsOCBA
QCB2b2lkIERvd25sb2FkOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlcwogCiB2b2lkIERvd25sb2FkOjpkaWRDYW5jZWwoY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhKQogeworICAgIERPV05MT0FEX0xPR19B
TFdBWVMoIkRvd25sb2FkIHRhc2sgKCVsbHUpIGNhbmNlbGVkIiwgZG93bmxvYWRJRCgpLmRvd25s
b2FkSUQoKSk7CisKICAgICBzZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRDYW5jZWwo
cmVzdW1lRGF0YSkpOwogCiAgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgewpAQCAtMTcwLDQg
KzE4OCwxMyBAQCB1aW50NjRfdCBEb3dubG9hZDo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQo
KQogICAgIHJldHVybiBtX2Rvd25sb2FkSUQuZG93bmxvYWRJRCgpOwogfQogCitib29sIERvd25s
b2FkOjppc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdAoreworI2lmIFVTRShORVRXT1JL
X1NFU1NJT04pICYmIFBMQVRGT1JNKENPQ09BKQorICAgIHJldHVybiBtX3Nlc3Npb25JRC5pc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAppbmRleCA3ZGJiY2Y0NmRlYzhmM2Q1YWQ3
MDRhZGYxZTQ2NDI3NjFiYjE0ODc1Li45OTM3OTViMDBmMzcwN2JkNDg0MTcxY2Y3MjUxN2E5MDBl
MTE3MWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC03Niw3ICs3Nyw3
IEBAIGNsYXNzIERvd25sb2FkIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoRG93bmxvYWQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiBQTEFURk9STShDT0NPQSkKLSAgICBE
b3dubG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9h
ZFRhc2sqLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKKyAgICBEb3du
bG9hZChEb3dubG9hZE1hbmFnZXImLCBEb3dubG9hZElELCBOU1VSTFNlc3Npb25Eb3dubG9hZFRh
c2sqLCBjb25zdCBXZWJDb3JlOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWRGaWxlbmFtZSA9IHsgfSk7CiAjZWxzZQogICAgIERvd25sb2FkKERvd25sb2FkTWFu
YWdlciYsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUgPSB7IH0pOwogI2VuZGlmCkBAIC0xMjAsNiArMTIx
LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAKKyAgICBi
b29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0OworCiAgICAgRG93bmxvYWRNYW5h
Z2VyJiBtX2Rvd25sb2FkTWFuYWdlcjsKICAgICBEb3dubG9hZElEIG1fZG93bmxvYWRJRDsKICNp
ZiAhVVNFKE5FVFdPUktfU0VTU0lPTikKQEAgLTEzMSw2ICsxMzQsNyBAQCBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKENPQ09BKQogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgUmV0YWluUHRy
PE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzaz4gbV9kb3dubG9hZDsKKyAgICBXZWJDb3JlOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAjZWxzZQogICAgIFJldGFpblB0cjxOU1VSTERvd25sb2FkPiBt
X25zVVJMRG93bmxvYWQ7CiAgICAgUmV0YWluUHRyPFdLRG93bmxvYWRBc0RlbGVnYXRlPiBtX2Rl
bGVnYXRlOwpAQCAtMTQ1LDYgKzE0OSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlPiBtX3Jlc291cmNlSGFuZGxlOwogI2VuZGlmCiAgICAgU3RyaW5nIG1f
c3VnZ2VzdGVkTmFtZTsKKyAgICBib29sIG1faGFzUmVjZWl2ZWREYXRhIHsgZmFsc2UgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggYWQzNWFi
Zjk2OGZlNjVkNWVmZjYwNDQ1MTcxMjlkYTAxNzI1MzljNy4uYTQxZTU3NzBjZGM0MDY3NjU5OTEy
Y2QyYjIyZDc3YzAwNzk2NjkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC0yOTMsNyArMjkz
LDcgQEAgLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIGRhdGFUYXNr
OihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRhdGEKICAgICBpZiAoYXV0byogbmV0d29ya0RhdGFU
YXNrID0gX3Nlc3Npb24tPmRhdGFUYXNrRm9ySWRlbnRpZmllcihbZGF0YVRhc2sgdGFza0lkZW50
aWZpZXJdLCBzdG9yZWRDcmVkZW50aWFscykpIHsKICAgICAgICAgYXV0byBkb3dubG9hZElEID0g
bmV0d29ya0RhdGFUYXNrLT5wZW5kaW5nRG93bmxvYWRJRCgpOwogICAgICAgICBhdXRvJiBkb3du
bG9hZE1hbmFnZXIgPSBXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5kb3dubG9h
ZE1hbmFnZXIoKTsKLSAgICAgICAgYXV0byBkb3dubG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8V2Vi
S2l0OjpEb3dubG9hZD4oZG93bmxvYWRNYW5hZ2VyLCBkb3dubG9hZElELCBkb3dubG9hZFRhc2sp
OworICAgICAgICBhdXRvIGRvd25sb2FkID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OkRvd25s
b2FkPihkb3dubG9hZE1hbmFnZXIsIGRvd25sb2FkSUQsIGRvd25sb2FkVGFzaywgX3Nlc3Npb24t
PnNlc3Npb25JRCgpKTsKICAgICAgICAgbmV0d29ya0RhdGFUYXNrLT50cmFuc2ZlclNhbmRib3hF
eHRlbnNpb25Ub0Rvd25sb2FkKCpkb3dubG9hZCk7CiAgICAgICAgIEFTU0VSVChXZWJDb3JlOjpm
aWxlRXhpc3RzKG5ldHdvcmtEYXRhVGFzay0+cGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oKSkpOwog
ICAgICAgICBkb3dubG9hZC0+ZGlkQ3JlYXRlRGVzdGluYXRpb24obmV0d29ya0RhdGFUYXNrLT5w
ZW5kaW5nRG93bmxvYWRMb2NhdGlvbigpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>