<?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>164010</bug_id>
          
          <creation_ts>2016-10-26 04:11:06 -0700</creation_ts>
          <short_desc>[WebRTC][OpenWebRTC] Implement device permissions handling solution for owr backend in the UI proces</short_desc>
          <delta_ts>2016-11-11 05:12:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Alejandro G. Castro">alex</assigned_to>
          <cc>adam.bergkvist</cc>
    
    <cc>alex</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1244754</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-10-26 04:11:06 -0700</bug_when>
    <thetext>Since bug 162147 was fixed our RealtimeMediaSourceCenter is broken because the media devices are enumerated in the instance running in the UI process. The instance running in the Web process has an empty sourceMap hashmap. I think that to solve this we should move the enumeration process in a CaptureDeviceManager implementation, similar to what the Mac port does.

We will also likely need a synchronous OWR API to list devices. The API we have for this right now is asynchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244768</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-10-26 06:15:44 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Since bug 162147 was fixed our RealtimeMediaSourceCenter is broken because
&gt; the media devices are enumerated in the instance running in the UI process.
&gt; The instance running in the Web process has an empty sourceMap hashmap. I
&gt; think that to solve this we should move the enumeration process in a
&gt; CaptureDeviceManager implementation, similar to what the Mac port does.
&gt; 
&gt; We will also likely need a synchronous OWR API to list devices. The API we
&gt; have for this right now is asynchronous.

Or you can make RealtimeMediaSourceCenter::getMediaStreamDevices asynchronous, e.g. it could take a lambda:

    using GetDevicesHandler = std::function&lt;void(Vector&lt;CaptureDevice&gt;&amp;&amp;)&gt;;
    virtual void getMediaStreamDevices(GetDevicesHandler) = 0;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244769</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-10-26 06:19:27 -0700</bug_when>
    <thetext>Ah yes, good idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248734</commentid>
    <comment_count>3</comment_count>
      <attachid>294059</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2016-11-07 06:16:23 -0800</bug_when>
    <thetext>Created attachment 294059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248742</commentid>
    <comment_count>4</comment_count>
      <attachid>294059</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-11-07 07:38:36 -0800</bug_when>
    <thetext>Comment on attachment 294059
Patch

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

&gt; Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:173
&gt; +        m_completionHandler(MediaStreamPrivate::create(audioSources, videoSources));

Hum here I think that either audioSources or videoSources could be NULL. Is it properly handled?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248996</commentid>
    <comment_count>5</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2016-11-08 00:18:31 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 294059 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=294059&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:173
&gt; &gt; +        m_completionHandler(MediaStreamPrivate::create(audioSources, videoSources));
&gt; 
&gt; Hum here I think that either audioSources or videoSources could be NULL. Is
&gt; it properly handled?

Yes, the completion handler basically checks if they are null or not to request audio or video permissions to the user.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249282</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-11-09 08:48:23 -0800</bug_when>
    <thetext>This patch doesn&apos;t work very well here :( Please wait before landing this.

I started experimenting with a proper CaptureDeviceManager implementation. The main drawback I see so far is that we&apos;d need to list devices once from the UI process and once from the Web process. Also I think we can &quot;forge&quot; device IDs using their name maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249744</commentid>
    <comment_count>7</comment_count>
      <attachid>294356</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2016-11-10 02:47:48 -0800</bug_when>
    <thetext>Created attachment 294356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249745</commentid>
    <comment_count>8</comment_count>
      <attachid>294356</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-11-10 02:50:15 -0800</bug_when>
    <thetext>Comment on attachment 294356
Patch

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

&gt; Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:148
&gt; +#ifndef NDEBUG

Why this in a ifdef ? test sources can be useful whatever the WebKit build config.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249746</commentid>
    <comment_count>9</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2016-11-10 02:55:50 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 294356 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=294356&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:148
&gt; &gt; +#ifndef NDEBUG
&gt; 
&gt; Why this in a ifdef ? test sources can be useful whatever the WebKit build
&gt; config.

Right, I was considering it a debug feature but I think you are right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249761</commentid>
    <comment_count>10</comment_count>
      <attachid>294365</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2016-11-10 05:32:18 -0800</bug_when>
    <thetext>Created attachment 294365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250213</commentid>
    <comment_count>11</comment_count>
      <attachid>294365</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-11 01:59:06 -0800</bug_when>
    <thetext>Comment on attachment 294365
Patch

Rejecting attachment 294365 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 294365, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
1 FAILED at 81.
Hunk #2 succeeded at 147 (offset 2 lines).
Hunk #3 succeeded at 176 with fuzz 1 (offset 2 lines).
1 out of 3 hunks FAILED -- saving rejects to file Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp.rej
patching file Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Philippe Normand&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/2497039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250215</commentid>
    <comment_count>12</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2016-11-11 02:18:36 -0800</bug_when>
    <thetext>The patch is not valid anymore after r208559, the API of the ValidConstraintsHandler does not use RealtimeMediaSource anymore. This is good because we can avoid creating the dummy source objects in the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250216</commentid>
    <comment_count>13</comment_count>
      <attachid>294489</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2016-11-11 02:35:39 -0800</bug_when>
    <thetext>Created attachment 294489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250232</commentid>
    <comment_count>14</comment_count>
      <attachid>294489</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-11 05:12:39 -0800</bug_when>
    <thetext>Comment on attachment 294489
Patch

Clearing flags on attachment: 294489

Committed r208587: &lt;http://trac.webkit.org/changeset/208587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250233</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-11 05:12:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294059</attachid>
            <date>2016-11-07 06:16:23 -0800</date>
            <delta_ts>2016-11-10 02:47:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164010-20161107151215.patch</filename>
            <type>text/plain</type>
            <size>9280</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTIzN2Y5YTg3ZDg0N2Nj
NDFmMTI1ZjBkYzljZThjOGQ3M2NmMmZmNy4uMzllYjE2ZjMwMWU0YzAzYzk5ZGM2NjZiMTA2MDBk
ZTY0YTIwNmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE2LTExLTA3ICBBbGVq
YW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJSVENdW09w
ZW5XZWJSVENdIEltcGxlbWVudCBkZXZpY2UgcGVybWlzc2lvbnMgaGFuZGxpbmcgc29sdXRpb24g
Zm9yIG93ciBiYWNrZW5kIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBjYXB0dXJlIG9mIHRoZSBzb3VyY2Vz
IGZvciB0aGUgT1dSIGJhY2tlbmQgdG8gdGhlCisgICAgICAgIFdlYlByb2Nlc3MuIEluIHRoZSBV
SSB3ZSBjb250aW51ZSBjaGVja2luZyBpZiB0aGUgdXNlciBhbGxvd3MKKyAgICAgICAgYWNjZXNz
IHRvIHRoZSBhdWRpbyBhbmQgdmlkZW8gY2FwdHVyZS4gV2hlbiBkZXZpY2UgaGFuZGxpbmcgaXMK
KyAgICAgICAgYWRkZWQgaW4gdGhlIGZ1dHVyZSB3ZSB3aWxsIG5lZWQgc29tZSBwZXJzaXN0ZW50
IElEIGFuZCBBUEkgdG8KKyAgICAgICAgcGFzcyBmcm9tIHRoZSBVSSBwcm9jZXNzIHRvIHRoZSBX
ZWIgcHJvY2Vzcy4KKworICAgICAgICBUZXN0czogZmFzdC9tZWRpYXN0cmVhbS9tb2NrLW1lZGlh
LXNvdXJjZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRj
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMpOgor
ICAgICAgICBBZGQgdGhlIHByb3BlciBhdWRpbyBhbmQgdmlkZW8gc291cmNlcyB0byBhbGxvdyB0
aGUgVUkgbWVzc2FnZSB0bworICAgICAgICBiZSBwcm9wZXJseSByZW5kZXJlZC4gV2UgYXJlIGFk
ZGluZyB0aGUgc3BlY2lmaWMgZGV2aWNlcywgZXZlbgorICAgICAgICB0aG91Z2ggdGhlIGRpYWxv
ZyBqdXN0IGFza3MgZm9yIGdlbmVyYWwgYXVkaW8gYW5kIHZpZGVvLiBUaGVyZSB3YXMKKyAgICAg
ICAgYWxyZWFkeSBhIEZJWE1FIGFib3V0IGltcHJvdmluZyB0aGlzLgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6Y3JlYXRlTWVkaWFTdHJlYW0pOiBXZSBh
cmUKKyAgICAgICAgY2FwdHVyaW5nIHRoZSBkZXZpY2VzIGhlcmUgd2hlbiB0aGUgYWxsb3dlZCBt
ZXNzYWdlIGFycml2ZWQgZnJvbQorICAgICAgICB0aGUgVUkgcHJvY2Vzcy4gV2Ugc3RvcmUgdGhl
IGNvbXBsZXRpb24gaGFuZGxlciB0byB1c2UgaXQgbGF0ZXIKKyAgICAgICAgd2hlbiB0aGUgYXlu
YyBvd3IgQVBJIGZpbmlzaGVzIGNhcHR1cmUgZGV2aWNlcyBwcm9jZXNzLgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6bWVkaWFTb3VyY2VzQXZhaWxhYmxl
KTogV2UKKyAgICAgICAgbm93IGNhbGwgdGhlIGNvbXBsZXRpb24gaGFuZGxlciBpbiB0aGlzIGNh
bGxiYWNrIGNhbGxlZCB3aGVuIHRoZQorICAgICAgICBvd3IgbGlicmFyeSBmaW5pc2hlcyB0aGUg
Y2FwdHVyZSBvZiB0aGUgZGV2aWNlcy4gTm93IHRoaXMgaGFwcGVucworICAgICAgICBpbiB0aGUg
V2ViUHJvY2VzcyBmb3IgT1dSIHBvcnQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
b3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmg6CisgICAgICAgIEFkZCBh
biBhdHRyaWJ1dGUgdG8gc3RvcmUgdGhlIGNvbXBsZXRpb24gaGFuZGxlci4KKwogMjAxNi0xMS0w
NCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFdURjo6UGFya2lu
Z0xvdCBzaG91bGQgc3RvcCB1c2luZyBzdGQ6OmNocm9ubyBiZWNhdXNlIHN0ZDo6Y2hyb25vOjpk
dXJhdGlvbiBjYXN0cyBhcmUgcHJvbmUgdG8gb3ZlcmZsb3dzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJPd3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3Bl
bndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcAppbmRleCA4YWYyZjVkNmE4
OTBmNTU5NTYxZGY5YjY4MDBlYmRlNGYyNjQ1OTA4Li5iOWY2OWI2Y2Q1N2Q5OTViMWNhMTk0NDJl
MDY5ZDBmZGVkYWE1MDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck93ci5jcHAKQEAgLTgxLDQ0ICs4MSw0OCBAQCB2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJPd3I6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29u
c3RyYWludHNIYQogICAgIG1fdmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBXVEZNb3ZlKHZhbGlk
SGFuZGxlcik7CiAgICAgbV9pbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gV1RGTW92ZShpbnZh
bGlkSGFuZGxlcik7CiAKKyAgICBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBh
dWRpb1NvdXJjZXM7CisgICAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4gdmlk
ZW9Tb3VyY2VzOworCiAgICAgLy8gRklYTUU6IEFjdHVhbGx5IGRvIGNvbnN0cmFpbnRzIHZhbGlk
YXRpb24uIFRoZSBNZWRpYUNvbnN0cmFpbnRzCiAgICAgLy8gbmVlZCB0byBjb21wbHkgd2l0aCB0
aGUgYXZhaWxhYmxlIGF1ZGlvL3ZpZGVvIGRldmljZShzKQogICAgIC8vIGNhcGFiaWxpdGllcy4g
U2VlIGJ1ZyAjMTIzMzQ1LgogICAgIGludCB0eXBlcyA9IE9XUl9NRURJQV9UWVBFX1VOS05PV047
Ci0gICAgaWYgKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCgpKQorICAgIGlmIChhdWRpb0NvbnN0
cmFpbnRzLmlzVmFsaWQoKSkgeworICAgICAgICBTdHJpbmcgc291cmNlTmFtZSgiYXVkaW8iKTsK
KyAgICAgICAgU3RyaW5nIGlkKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSk7CisgICAgICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZSA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvOwogICAgICAgICB0eXBlcyB8PSBPV1JfTUVESUFfVFlQRV9BVURJTzsKLSAgICBp
ZiAodmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKCkpCisgICAgICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlT3dyPiBtZWRpYVNvdXJjZSA9IGFkb3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291
cmNlT3dyKG51bGxwdHIsIGlkLCBzb3VyY2VUeXBlLCBzb3VyY2VOYW1lKSk7CisgICAgICAgIGF1
ZGlvU291cmNlcy5hcHBlbmQobWVkaWFTb3VyY2UpOworICAgIH0KKworICAgIGlmICh2aWRlb0Nv
bnN0cmFpbnRzLmlzVmFsaWQoKSkgeworICAgICAgICBTdHJpbmcgc291cmNlTmFtZSgidmlkZW8i
KTsKKyAgICAgICAgU3RyaW5nIGlkKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSk7CisgICAg
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZSA9IFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlZpZGVvOwogICAgICAgICB0eXBlcyB8PSBPV1JfTUVESUFfVFlQRV9WSURFTzsKKyAg
ICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VPd3I+IG1lZGlhU291cmNlID0gYWRvcHRS
ZWYobmV3IFJlYWx0aW1lTWVkaWFTb3VyY2VPd3IobnVsbHB0ciwgaWQsIHNvdXJjZVR5cGUsIHNv
dXJjZU5hbWUpKTsKKyAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChtZWRpYVNvdXJjZSk7Cisg
ICAgfQogCi0gICAgb3dyX2dldF9jYXB0dXJlX3NvdXJjZXMoc3RhdGljX2Nhc3Q8T3dyTWVkaWFU
eXBlPih0eXBlcyksIG1lZGlhU291cmNlc0F2YWlsYWJsZUNhbGxiYWNrLCB0aGlzKTsKKyAgICBt
X3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyKFdURk1vdmUoYXVkaW9Tb3VyY2VzKSwgV1RGTW92ZSh2
aWRlb1NvdXJjZXMpKTsKKyAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsK
KyAgICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3Ry
ZWFtSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlciwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlE
LCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlSUQpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPj4gYXVkaW9Tb3VyY2VzOwotICAgIFZlY3RvcjxSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZT4+IHZpZGVvU291cmNlczsKKyAgICBpbnQgdHlwZXMgPSBPV1JfTUVESUFf
VFlQRV9VTktOT1dOOwogCi0gICAgaWYgKCFhdWRpb0RldmljZUlELmlzRW1wdHkoKSkgewotICAg
ICAgICBSZWFsdGltZU1lZGlhU291cmNlT3dyTWFwOjppdGVyYXRvciBzb3VyY2VJdGVyYXRvciA9
IG1fc291cmNlTWFwLmZpbmQoYXVkaW9EZXZpY2VJRCk7Ci0gICAgICAgIGlmIChzb3VyY2VJdGVy
YXRvciAhPSBtX3NvdXJjZU1hcC5lbmQoKSkgewotICAgICAgICAgICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IHNvdXJjZSA9IHNvdXJjZUl0ZXJhdG9yLT52YWx1ZTsKLSAgICAgICAgICAg
IGlmIChzb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykKLSAgICAg
ICAgICAgICAgICBhdWRpb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlKCkpOwotICAgICAg
ICB9Ci0gICAgfQotICAgIGlmICghdmlkZW9EZXZpY2VJRC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZU93ck1hcDo6aXRlcmF0b3Igc291cmNlSXRlcmF0b3IgPSBtX3Nv
dXJjZU1hcC5maW5kKHZpZGVvRGV2aWNlSUQpOwotICAgICAgICBpZiAoc291cmNlSXRlcmF0b3Ig
IT0gbV9zb3VyY2VNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlPiBzb3VyY2UgPSBzb3VyY2VJdGVyYXRvci0+dmFsdWU7Ci0gICAgICAgICAgICBpZiAo
c291cmNlLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8pCi0gICAgICAgICAg
ICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChzb3VyY2UucmVsZWFzZSgpKTsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBpZiAoIWF1ZGlvRGV2aWNlSUQuaXNFbXB0eSgpKQorICAgICAgICB0eXBlcyB8
PSBPV1JfTUVESUFfVFlQRV9BVURJTzsKKyAgICBpZiAoIXZpZGVvRGV2aWNlSUQuaXNFbXB0eSgp
KQorICAgICAgICB0eXBlcyB8PSBPV1JfTUVESUFfVFlQRV9WSURFTzsKIAotICAgIGlmICh2aWRl
b1NvdXJjZXMuaXNFbXB0eSgpICYmIGF1ZGlvU291cmNlcy5pc0VtcHR5KCkpCi0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwotICAgIGVsc2UKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoYXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJj
ZXMpKTsKKyAgICBtX2NvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXI7CisKKyAg
ICBvd3JfZ2V0X2NhcHR1cmVfc291cmNlcyhzdGF0aWNfY2FzdDxPd3JNZWRpYVR5cGU+KHR5cGVz
KSwgbWVkaWFTb3VyY2VzQXZhaWxhYmxlQ2FsbGJhY2ssIHRoaXMpOwogfQogCiBWZWN0b3I8Q2Fw
dHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6Z2V0TWVkaWFTdHJlYW1E
ZXZpY2VzKCkKQEAgLTE2MywxMCArMTY3LDExIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck93cjo6bWVkaWFTb3VyY2VzQXZhaWxhYmxlKEdMaXN0KiBzb3VyY2VzKQogICAgICAgICAg
ICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChtZWRpYVNvdXJjZSk7CiAgICAgfQogCi0gICAgLy8gVE9E
TzogTWFrZSBzdXJlIGNvbnRyYWludHMgYXJlIGFjdHVhbGx5IHZhbGlkYXRlZCBieSBjaGVja2lu
ZyBzb3VyY2UgdHlwZXMuCi0gICAgbV92YWxpZENvbnN0cmFpbnRzSGFuZGxlcihXVEZNb3ZlKGF1
ZGlvU291cmNlcyksIFdURk1vdmUodmlkZW9Tb3VyY2VzKSk7Ci0gICAgbV92YWxpZENvbnN0cmFp
bnRzSGFuZGxlciA9IG51bGxwdHI7Ci0gICAgbV9pbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0g
bnVsbHB0cjsKKyAgICBpZiAodmlkZW9Tb3VyY2VzLmlzRW1wdHkoKSAmJiBhdWRpb1NvdXJjZXMu
aXNFbXB0eSgpKQorICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgIGVs
c2UKKyAgICAgICAgbV9jb21wbGV0aW9uSGFuZGxlcihNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0
ZShhdWRpb1NvdXJjZXMsIHZpZGVvU291cmNlcykpOworCiB9CiAKIFBhc3NSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZT4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6Zmlyc3RTb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyT3dyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRj
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuaAppbmRleCA3MTQ2ZGJkZTgyNDlhNThkOGFi
Y2Q5MDM2Njk5MDZlZTkyYWI1ZDZlLi44ZTA1YzUwZWRjYTUxODgxZWJkMzQ5ODMxYjVlMDliMzY4
ZWU3MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9v
cGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJPd3IuaApAQCAtNjcsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VPd3JNYXAgbV9zb3VyY2VNYXA7CiAgICAgVmFsaWRDb25zdHJhaW50c0hhbmRsZXIgbV92
YWxpZENvbnN0cmFpbnRzSGFuZGxlcjsKICAgICBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyIG1f
aW52YWxpZENvbnN0cmFpbnRzSGFuZGxlcjsKKyAgICBOZXdNZWRpYVN0cmVhbUhhbmRsZXIgbV9j
b21wbGV0aW9uSGFuZGxlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAy
MDdlOWUxODFhMjk4M2Y2ZjA0ZGVlYjkzOTg2ZDFhOWVhNmVkNzIxLi4zOTRkOTRmMzFkNmVkNWFl
NjJlYjM0ZTA0MTVmYzI0NTVkMGZmZmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMTEt
MDcgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dl
YlJUQ11bT3BlbldlYlJUQ10gSW1wbGVtZW50IGRldmljZSBwZXJtaXNzaW9ucyBoYW5kbGluZyBz
b2x1dGlvbiBmb3Igb3dyIGJhY2tlbmQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDAxMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgbW9jay1tZWRpYS1zb3Vy
Y2UgZnJvbSB0aGUgc2tpcHBlZCB0ZXN0cywgbm93IGl0CisgICAgICAgIHdvcmtzLiBUaGlzIGRv
ZXMgbm90IHRlc3Qgb3dyIGltcGxlbWVudGF0aW9uIHRob3VnaCwganVzdCB0aGUgbW9jayBvbmUg
Zm9yIHRlc3RpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAxNi0xMS0wNSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmluZyBmbGFreSBleHBlY3RhdGlvbnMgZm9yIHRlc3RzIHRoYXQgd2VyZSBmaXhl
ZCB3aXRoIHIyMDgzMjcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDMzMGFjM2ZlNjcyYzVmMGQ1MzZmMWE2ODFjYjI3MzViZDExYjM4MmMuLjViZWZiM2Yy
ZmU3NWM3NDJhNDlhZmFjMWE5NjRjOGViOTI0NjNhZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMTIsNyArMzEyLDYgQEAgd2Via2l0Lm9yZy9iLzc5
MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC5odG1sIFsgU2tp
cCBdCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRl
by1lbGVtZW50LXRyYWNrLXN0b3AuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1MTM0NCBm
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1lbmRlZC10cmFja3MuaHRtbCBbIFNraXAg
XQogd2Via2l0Lm9yZy9iLzE1MTM0NCBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1y
ZW1vdmUtdHJhY2tzLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlh
c3RyZWFtL21vY2stbWVkaWEtc291cmNlLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNjA5
OTYgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXZpZGVvLXRyYWNr
cy1kaXNhYmxlZC10aGVuLWVuYWJsZWQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE2MDk5
NiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtdmlkZW8tdHJhY2tz
LWRpc2FibGVkLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNjA5OTYgZmFzdC9tZWRpYXN0
cmVhbS9hcHBseS1jb25zdHJhaW50cy1hZHZhbmNlZC5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294356</attachid>
            <date>2016-11-10 02:47:48 -0800</date>
            <delta_ts>2016-11-10 05:32:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164010-20161110114335.patch</filename>
            <type>text/plain</type>
            <size>10774</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmNjI0YWVmOTE3MmQy
NmY3OGI5NTU0Nzg4NWIzOGIwOGI1NjAzYi4uN2FiYzYzZDZhOTE1Y2ViZDQyM2E1N2Q3M2NlNTlj
Njk5ZjNjMTFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE2LTExLTA4ICBBbGVq
YW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJSVENdW09w
ZW5XZWJSVENdIEltcGxlbWVudCBkZXZpY2UgcGVybWlzc2lvbnMgaGFuZGxpbmcgc29sdXRpb24g
Zm9yIG93ciBiYWNrZW5kIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBQ
aGlsaXBwZSBOb3JtYW5kLgorCisgICAgICAgIE1vdmUgdGhlIGNhcHR1cmUgb2YgdGhlIHNvdXJj
ZXMgZm9yIHRoZSBPV1IgYmFja2VuZCB0byB0aGUKKyAgICAgICAgV2ViUHJvY2Vzcy4gSW4gdGhl
IFVJIHdlIGNvbnRpbnVlIGNoZWNraW5nIGlmIHRoZSB1c2VyIGFsbG93cworICAgICAgICBhY2Nl
c3MgdG8gdGhlIGF1ZGlvIGFuZCB2aWRlbyBjYXB0dXJlLiBXaGVuIGRldmljZSBoYW5kbGluZyBp
cworICAgICAgICBhZGRlZCBpbiB0aGUgZnV0dXJlIHdlIHdpbGwgbmVlZCBzb21lIHBlcnNpc3Rl
bnQgSUQgYW5kIEFQSSB0bworICAgICAgICBwYXNzIGZyb20gdGhlIFVJIHByb2Nlc3MgdG8gdGhl
IFdlYiBwcm9jZXNzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L21lZGlhc3RyZWFtL21vY2stbWVk
aWEtc291cmNlLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJy
dGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6
CisgICAgICAgIEFkZCB0aGUgcHJvcGVyIGF1ZGlvIGFuZCB2aWRlbyBzb3VyY2VzIHRvIGFsbG93
IHRoZSBVSSBtZXNzYWdlIHRvCisgICAgICAgIGJlIHByb3Blcmx5IHJlbmRlcmVkLiBXZSBhcmUg
YWRkaW5nIHRoZSBzcGVjaWZpYyBkZXZpY2VzLCBldmVuCisgICAgICAgIHRob3VnaCB0aGUgZGlh
bG9nIGp1c3QgYXNrcyBmb3IgZ2VuZXJhbCBhdWRpbyBhbmQgdmlkZW8uIFRoZXJlIHdhcworICAg
ICAgICBhbHJlYWR5IGEgRklYTUUgYWJvdXQgaW1wcm92aW5nIHRoaXMuCisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjpjcmVhdGVNZWRpYVN0cmVhbSk6IFdl
IGFyZQorICAgICAgICBjYXB0dXJpbmcgdGhlIGRldmljZXMgaGVyZSB3aGVuIHRoZSBhbGxvd2Vk
IG1lc3NhZ2UgYXJyaXZlZCBmcm9tCisgICAgICAgIHRoZSBVSSBwcm9jZXNzLiBXZSBzdG9yZSB0
aGUgY29tcGxldGlvbiBoYW5kbGVyIHRvIHVzZSBpdCBsYXRlcgorICAgICAgICB3aGVuIHRoZSBh
eW5jIG93ciBBUEkgZmluaXNoZXMgY2FwdHVyZSBkZXZpY2VzIHByb2Nlc3MuCisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjptZWRpYVNvdXJjZXNBdmFpbGFi
bGUpOiBXZQorICAgICAgICBub3cgY2FsbCB0aGUgY29tcGxldGlvbiBoYW5kbGVyIGluIHRoaXMg
Y2FsbGJhY2sgY2FsbGVkIHdoZW4gdGhlCisgICAgICAgIG93ciBsaWJyYXJ5IGZpbmlzaGVzIHRo
ZSBjYXB0dXJlIG9mIHRoZSBkZXZpY2VzLiBOb3cgdGhpcyBoYXBwZW5zCisgICAgICAgIGluIHRo
ZSBXZWJQcm9jZXNzIGZvciBPV1IgcG9ydC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuaDoKKyAgICAgICAgQWRk
IGFuIGF0dHJpYnV0ZSB0byBzdG9yZSB0aGUgY29tcGxldGlvbiBoYW5kbGVyLgorCiAyMDE2LTEx
LTEwICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtX
ZWJSVENdIFtPcGVuV2ViUlRDXSBSVFggZGVmYXVsdCBwYXJhbWV0ZXJzIGJyb2tlbiBhZnRlciBy
MjA3OTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9v
cGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyT3dyLmNwcAppbmRleCA4YWYyZjVkNmE4OTBmNTU5NTYxZGY5YjY4MDBlYmRlNGYyNjQ1OTA4
Li42ODIwZWZjMjBmYmI2OTc4YWI2Yzk3MjNjZDdmYzMyNzY1YTU0OWQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJPd3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAKQEAgLTgx
LDQ0ICs4MSw0OCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OnZhbGlkYXRl
UmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYQogICAgIG1fdmFsaWRDb25zdHJh
aW50c0hhbmRsZXIgPSBXVEZNb3ZlKHZhbGlkSGFuZGxlcik7CiAgICAgbV9pbnZhbGlkQ29uc3Ry
YWludHNIYW5kbGVyID0gV1RGTW92ZShpbnZhbGlkSGFuZGxlcik7CiAKKyAgICBWZWN0b3I8UmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBhdWRpb1NvdXJjZXM7CisgICAgVmVjdG9yPFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOworCiAgICAgLy8gRklYTUU6IEFj
dHVhbGx5IGRvIGNvbnN0cmFpbnRzIHZhbGlkYXRpb24uIFRoZSBNZWRpYUNvbnN0cmFpbnRzCiAg
ICAgLy8gbmVlZCB0byBjb21wbHkgd2l0aCB0aGUgYXZhaWxhYmxlIGF1ZGlvL3ZpZGVvIGRldmlj
ZShzKQogICAgIC8vIGNhcGFiaWxpdGllcy4gU2VlIGJ1ZyAjMTIzMzQ1LgogICAgIGludCB0eXBl
cyA9IE9XUl9NRURJQV9UWVBFX1VOS05PV047Ci0gICAgaWYgKGF1ZGlvQ29uc3RyYWludHMuaXNW
YWxpZCgpKQorICAgIGlmIChhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgeworICAgICAgICBT
dHJpbmcgc291cmNlTmFtZSgiYXVkaW8iKTsKKyAgICAgICAgU3RyaW5nIGlkKGNyZWF0ZUNhbm9u
aWNhbFVVSURTdHJpbmcoKSk7CisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291
cmNlVHlwZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvOwogICAgICAgICB0eXBlcyB8PSBP
V1JfTUVESUFfVFlQRV9BVURJTzsKLSAgICBpZiAodmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKCkp
CisgICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlT3dyPiBtZWRpYVNvdXJjZSA9IGFk
b3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291cmNlT3dyKG51bGxwdHIsIGlkLCBzb3VyY2VUeXBl
LCBzb3VyY2VOYW1lKSk7CisgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQobWVkaWFTb3VyY2Up
OworICAgIH0KKworICAgIGlmICh2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgeworICAgICAg
ICBTdHJpbmcgc291cmNlTmFtZSgidmlkZW8iKTsKKyAgICAgICAgU3RyaW5nIGlkKGNyZWF0ZUNh
bm9uaWNhbFVVSURTdHJpbmcoKSk7CisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUg
c291cmNlVHlwZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvOwogICAgICAgICB0eXBlcyB8
PSBPV1JfTUVESUFfVFlQRV9WSURFTzsKKyAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VPd3I+IG1lZGlhU291cmNlID0gYWRvcHRSZWYobmV3IFJlYWx0aW1lTWVkaWFTb3VyY2VPd3Io
bnVsbHB0ciwgaWQsIHNvdXJjZVR5cGUsIHNvdXJjZU5hbWUpKTsKKyAgICAgICAgdmlkZW9Tb3Vy
Y2VzLmFwcGVuZChtZWRpYVNvdXJjZSk7CisgICAgfQogCi0gICAgb3dyX2dldF9jYXB0dXJlX3Nv
dXJjZXMoc3RhdGljX2Nhc3Q8T3dyTWVkaWFUeXBlPih0eXBlcyksIG1lZGlhU291cmNlc0F2YWls
YWJsZUNhbGxiYWNrLCB0aGlzKTsKKyAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyKFdURk1v
dmUoYXVkaW9Tb3VyY2VzKSwgV1RGTW92ZSh2aWRlb1NvdXJjZXMpKTsKKyAgICBtX3ZhbGlkQ29u
c3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsKKyAgICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRs
ZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNy
ZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlciwg
Y29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlSUQp
CiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4gYXVkaW9Tb3VyY2Vz
OwotICAgIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IHZpZGVvU291cmNlczsK
KyAgICBpbnQgdHlwZXMgPSBPV1JfTUVESUFfVFlQRV9VTktOT1dOOwogCi0gICAgaWYgKCFhdWRp
b0RldmljZUlELmlzRW1wdHkoKSkgewotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlT3dyTWFw
OjppdGVyYXRvciBzb3VyY2VJdGVyYXRvciA9IG1fc291cmNlTWFwLmZpbmQoYXVkaW9EZXZpY2VJ
RCk7Ci0gICAgICAgIGlmIChzb3VyY2VJdGVyYXRvciAhPSBtX3NvdXJjZU1hcC5lbmQoKSkgewot
ICAgICAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSA9IHNvdXJjZUl0
ZXJhdG9yLT52YWx1ZTsKLSAgICAgICAgICAgIGlmIChzb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpbykKLSAgICAgICAgICAgICAgICBhdWRpb1NvdXJjZXMuYXBwZW5k
KHNvdXJjZS5yZWxlYXNlKCkpOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmICghdmlkZW9EZXZp
Y2VJRC5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZU93ck1hcDo6aXRl
cmF0b3Igc291cmNlSXRlcmF0b3IgPSBtX3NvdXJjZU1hcC5maW5kKHZpZGVvRGV2aWNlSUQpOwot
ICAgICAgICBpZiAoc291cmNlSXRlcmF0b3IgIT0gbV9zb3VyY2VNYXAuZW5kKCkpIHsKLSAgICAg
ICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBzb3VyY2UgPSBzb3VyY2VJdGVyYXRv
ci0+dmFsdWU7Ci0gICAgICAgICAgICBpZiAoc291cmNlLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VmlkZW8pCi0gICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChzb3Vy
Y2UucmVsZWFzZSgpKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBpZiAoIWF1ZGlvRGV2aWNlSUQu
aXNFbXB0eSgpKQorICAgICAgICB0eXBlcyB8PSBPV1JfTUVESUFfVFlQRV9BVURJTzsKKyAgICBp
ZiAoIXZpZGVvRGV2aWNlSUQuaXNFbXB0eSgpKQorICAgICAgICB0eXBlcyB8PSBPV1JfTUVESUFf
VFlQRV9WSURFTzsKIAotICAgIGlmICh2aWRlb1NvdXJjZXMuaXNFbXB0eSgpICYmIGF1ZGlvU291
cmNlcy5pc0VtcHR5KCkpCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwotICAg
IGVsc2UKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVh
dGUoYXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKKyAgICBtX2NvbXBsZXRpb25IYW5kbGVy
ID0gY29tcGxldGlvbkhhbmRsZXI7CisKKyAgICBvd3JfZ2V0X2NhcHR1cmVfc291cmNlcyhzdGF0
aWNfY2FzdDxPd3JNZWRpYVR5cGU+KHR5cGVzKSwgbWVkaWFTb3VyY2VzQXZhaWxhYmxlQ2FsbGJh
Y2ssIHRoaXMpOwogfQogCiBWZWN0b3I8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck93cjo6Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKCkKQEAgLTE0MSwxNyArMTQ1LDI2IEBA
IHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6bWVkaWFTb3VyY2VzQXZhaWxhYmxl
KEdMaXN0KiBzb3VyY2VzKQogICAgICAgICBTdHJpbmcgc291cmNlTmFtZShuYW1lLmdldCgpKTsK
ICAgICAgICAgU3RyaW5nIGlkKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSk7CiAKLSAgICAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlOworI2lmbmRlZiBOREVCVUcK
KyAgICAgICAgaWYgKGdfZ2V0ZW52KCJPV1JfVVNFX1RFU1RfU09VUkNFUyIpKSB7CisgICAgICAg
ICAgICBPd3JTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBPV1JfU09VUkNFX1RZUEVfVU5LTk9XTjsK
KyAgICAgICAgICAgIGdfb2JqZWN0X2dldChzb3VyY2UsICJ0eXBlIiwgJnNvdXJjZVR5cGUsIE5V
TEwpOworICAgICAgICAgICAgaWYgKHNvdXJjZVR5cGUgIT0gT1dSX1NPVVJDRV9UWVBFX1RFU1Qp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgbWVkaWFTb3VyY2VUeXBlOwogICAgICAgICBpZiAo
bWVkaWFUeXBlICYgT1dSX01FRElBX1RZUEVfQVVESU8pCi0gICAgICAgICAgICBzb3VyY2VUeXBl
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW87CisgICAgICAgICAgICBtZWRpYVNvdXJjZVR5
cGUgPSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbzsKICAgICAgICAgZWxzZSBpZiAobWVkaWFU
eXBlICYgT1dSX01FRElBX1RZUEVfVklERU8pCi0gICAgICAgICAgICBzb3VyY2VUeXBlID0gUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VmlkZW87CisgICAgICAgICAgICBtZWRpYVNvdXJjZVR5cGUgPSBS
ZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbzsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBz
b3VyY2VUeXBlID0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6Tm9uZTsKKyAgICAgICAgICAgIG1lZGlh
U291cmNlVHlwZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok5vbmU7CiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogCi0gICAgICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlT3dyPiBtZWRpYVNvdXJjZSA9IGFkb3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291
cmNlT3dyKHNvdXJjZSwgaWQsIHNvdXJjZVR5cGUsIHNvdXJjZU5hbWUpKTsKKyAgICAgICAgUmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VPd3I+IG1lZGlhU291cmNlID0gYWRvcHRSZWYobmV3IFJl
YWx0aW1lTWVkaWFTb3VyY2VPd3Ioc291cmNlLCBpZCwgbWVkaWFTb3VyY2VUeXBlLCBzb3VyY2VO
YW1lKSk7CiAKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZU93ck1hcDo6aXRlcmF0b3Igc291
cmNlSXRlcmF0b3IgPSBtX3NvdXJjZU1hcC5maW5kKGlkKTsKICAgICAgICAgaWYgKHNvdXJjZUl0
ZXJhdG9yID09IG1fc291cmNlTWFwLmVuZCgpKQpAQCAtMTYzLDEwICsxNzYsMTEgQEAgdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjptZWRpYVNvdXJjZXNBdmFpbGFibGUoR0xpc3Qq
IHNvdXJjZXMpCiAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKG1lZGlhU291cmNlKTsK
ICAgICB9CiAKLSAgICAvLyBUT0RPOiBNYWtlIHN1cmUgY29udHJhaW50cyBhcmUgYWN0dWFsbHkg
dmFsaWRhdGVkIGJ5IGNoZWNraW5nIHNvdXJjZSB0eXBlcy4KLSAgICBtX3ZhbGlkQ29uc3RyYWlu
dHNIYW5kbGVyKFdURk1vdmUoYXVkaW9Tb3VyY2VzKSwgV1RGTW92ZSh2aWRlb1NvdXJjZXMpKTsK
LSAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsKLSAgICBtX2ludmFsaWRD
b25zdHJhaW50c0hhbmRsZXIgPSBudWxscHRyOworICAgIGlmICh2aWRlb1NvdXJjZXMuaXNFbXB0
eSgpICYmIGF1ZGlvU291cmNlcy5pc0VtcHR5KCkpCisgICAgICAgIG1fY29tcGxldGlvbkhhbmRs
ZXIobnVsbHB0cik7CisgICAgZWxzZQorICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKE1lZGlh
U3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKSk7CisKIH0K
IAogUGFzc1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyT3dyOjpmaXJzdFNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCmluZGV4
IDcxNDZkYmRlODI0OWE1OGQ4YWJjZDkwMzY2OTkwNmVlOTJhYjVkNmUuLjhlMDVjNTBlZGNhNTE4
ODFlYmQzNDk4MzFiNWUwOWIzNjhlZTcwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMv
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCkBAIC02Nyw2ICs2Nyw3IEBAIHByaXZhdGU6
CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZU93ck1hcCBtX3NvdXJjZU1hcDsKICAgICBWYWxpZENv
bnN0cmFpbnRzSGFuZGxlciBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyOwogICAgIEludmFsaWRD
b25zdHJhaW50c0hhbmRsZXIgbV9pbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyOworICAgIE5ld01l
ZGlhU3RyZWFtSGFuZGxlciBtX2NvbXBsZXRpb25IYW5kbGVyOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGRjNzNkNzFiMGVkYmZkN2QzZmY4NjgzMWMzNDhiNDVhZDdhMDU5
MmMuLjJmZGJlNWJjY2Q0NGM5ZTkxN2UyNjEyNDBmMTZmY2NkYmIwOTczODYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNi0xMS0wOCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV2ViUlRDXVtPcGVuV2ViUlRDXSBJbXBsZW1lbnQgZGV2aWNlIHBl
cm1pc3Npb25zIGhhbmRsaW5nIHNvbHV0aW9uIGZvciBvd3IgYmFja2VuZCBpbiB0aGUgVUkgcHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0
MDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KKworICAgICAgICBS
ZW1vdmVkIG1vY2stbWVkaWEtc291cmNlIGZyb20gdGhlIHNraXBwZWQgdGVzdHMsIG5vdyBpdAor
ICAgICAgICB3b3Jrcy4gVGhpcyBkb2VzIG5vdCB0ZXN0IG93ciBpbXBsZW1lbnRhdGlvbiB0aG91
Z2gsIGp1c3QgdGhlIG1vY2sgb25lIGZvciB0ZXN0aW5nLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTYtMTEtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViSFRNTFZpZXcncyBfYXR0cmlidXRlU3RyaW5nRnJv
bURPTVJhbmdlIHNob3VsZCB1c2UgSFRNTENvbnZlcnRlciBpbnN0ZWFkIG9mIE5TQXR0cmlidXRl
ZFN0cmluZydzIF9pbml0V2l0aERPTVJhbmdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDMzMGFjM2ZlNjcyYzVmMGQ1MzZmMWE2ODFjYjI3MzViZDExYjM4
MmMuLjViZWZiM2YyZmU3NWM3NDJhNDlhZmFjMWE5NjRjOGViOTI0NjNhZjQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMTIsNyArMzEyLDYgQEAgd2Vi
a2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVu
dC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS12aWRlby1lbGVtZW50LXRyYWNrLXN0b3AuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9y
Zy9iLzE1MTM0NCBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1lbmRlZC10cmFja3Mu
aHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1MTM0NCBmYXN0L21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLWFkZC1yZW1vdmUtdHJhY2tzLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL21vY2stbWVkaWEtc291cmNlLmh0bWwgWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi8xNjA5OTYgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50
LXZpZGVvLXRyYWNrcy1kaXNhYmxlZC10aGVuLWVuYWJsZWQuaHRtbCBbIFNraXAgXQogd2Via2l0
Lm9yZy9iLzE2MDk5NiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQt
dmlkZW8tdHJhY2tzLWRpc2FibGVkLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNjA5OTYg
ZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1hZHZhbmNlZC5odG1sIFsgU2tpcCBd
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294365</attachid>
            <date>2016-11-10 05:32:18 -0800</date>
            <delta_ts>2016-11-11 02:35:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164010-20161110142804.patch</filename>
            <type>text/plain</type>
            <size>8879</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FmNjI0YWVmOTE3MmQy
NmY3OGI5NTU0Nzg4NWIzOGIwOGI1NjAzYi4uNzljMDM4ZDBmZDVlOTU2NzczYzJjZTI4YzJmMTE1
NTI1NGE0M2E1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDE2LTExLTEwICBBbGVq
YW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCisgICAgICAgIFtXZWJSVENdW09w
ZW5XZWJSVENdIEltcGxlbWVudCBkZXZpY2UgcGVybWlzc2lvbnMgaGFuZGxpbmcgc29sdXRpb24g
Zm9yIG93ciBiYWNrZW5kIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBQ
aGlsaXBwZSBOb3JtYW5kLgorCisgICAgICAgIE1vdmUgdGhlIGNhcHR1cmUgb2YgdGhlIHNvdXJj
ZXMgZm9yIHRoZSBPV1IgYmFja2VuZCB0byB0aGUKKyAgICAgICAgV2ViUHJvY2Vzcy4gSW4gdGhl
IFVJIHdlIGNvbnRpbnVlIGNoZWNraW5nIGlmIHRoZSB1c2VyIGFsbG93cworICAgICAgICBhY2Nl
c3MgdG8gdGhlIGF1ZGlvIGFuZCB2aWRlbyBjYXB0dXJlLiBXaGVuIGRldmljZSBoYW5kbGluZyBp
cworICAgICAgICBhZGRlZCBpbiB0aGUgZnV0dXJlIHdlIHdpbGwgbmVlZCBzb21lIHBlcnNpc3Rl
bnQgSUQgYW5kIEFQSSB0bworICAgICAgICBwYXNzIGZyb20gdGhlIFVJIHByb2Nlc3MgdG8gdGhl
IFdlYiBwcm9jZXNzLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0
Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToK
KyAgICAgICAgQWRkIHRoZSBwcm9wZXIgYXVkaW8gYW5kIHZpZGVvIHNvdXJjZXMgdG8gYWxsb3cg
dGhlIFVJIG1lc3NhZ2UgdG8KKyAgICAgICAgYmUgcHJvcGVybHkgcmVuZGVyZWQuIFdlIGFyZSBh
ZGRpbmcgdGhlIHNwZWNpZmljIGRldmljZXMsIGV2ZW4KKyAgICAgICAgdGhvdWdoIHRoZSBkaWFs
b2cganVzdCBhc2tzIGZvciBnZW5lcmFsIGF1ZGlvIGFuZCB2aWRlby4gVGhlcmUgd2FzCisgICAg
ICAgIGFscmVhZHkgYSBGSVhNRSBhYm91dCBpbXByb3ZpbmcgdGhpcy4KKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKTogV2Ug
YXJlCisgICAgICAgIGNhcHR1cmluZyB0aGUgZGV2aWNlcyBoZXJlIHdoZW4gdGhlIGFsbG93ZWQg
bWVzc2FnZSBhcnJpdmVkIGZyb20KKyAgICAgICAgdGhlIFVJIHByb2Nlc3MuIFdlIHN0b3JlIHRo
ZSBjb21wbGV0aW9uIGhhbmRsZXIgdG8gdXNlIGl0IGxhdGVyCisgICAgICAgIHdoZW4gdGhlIGF5
bmMgb3dyIEFQSSBmaW5pc2hlcyBjYXB0dXJlIGRldmljZXMgcHJvY2Vzcy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6Om1lZGlhU291cmNlc0F2YWlsYWJs
ZSk6IFdlCisgICAgICAgIG5vdyBjYWxsIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgaW4gdGhpcyBj
YWxsYmFjayBjYWxsZWQgd2hlbiB0aGUKKyAgICAgICAgb3dyIGxpYnJhcnkgZmluaXNoZXMgdGhl
IGNhcHR1cmUgb2YgdGhlIGRldmljZXMuIE5vdyB0aGlzIGhhcHBlbnMKKyAgICAgICAgaW4gdGhl
IFdlYlByb2Nlc3MgZm9yIE9XUiBwb3J0LgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oOgorICAgICAgICBBZGQg
YW4gYXR0cmlidXRlIHRvIHN0b3JlIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIuCisKKzIwMTYtMTEt
MTAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKICAgICAgICAgW1dl
YlJUQ10gW09wZW5XZWJSVENdIFJUWCBkZWZhdWx0IHBhcmFtZXRlcnMgYnJva2VuIGFmdGVyIHIy
MDc5NTIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NDU0MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9v
cGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyT3dyLmNwcAppbmRleCA4YWYyZjVkNmE4OTBmNTU5NTYxZGY5YjY4MDBlYmRlNGYyNjQ1OTA4
Li43MTA4ZDUyZGQ2MDBiMjExMjdkZWE2ZGQ0ZmMxNGJlZDE1YWJmNDEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJPd3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAKQEAgLTgx
LDQ0ICs4MSw0OCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OnZhbGlkYXRl
UmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYQogICAgIG1fdmFsaWRDb25zdHJh
aW50c0hhbmRsZXIgPSBXVEZNb3ZlKHZhbGlkSGFuZGxlcik7CiAgICAgbV9pbnZhbGlkQ29uc3Ry
YWludHNIYW5kbGVyID0gV1RGTW92ZShpbnZhbGlkSGFuZGxlcik7CiAKKyAgICBWZWN0b3I8UmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBhdWRpb1NvdXJjZXM7CisgICAgVmVjdG9yPFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOworCiAgICAgLy8gRklYTUU6IEFj
dHVhbGx5IGRvIGNvbnN0cmFpbnRzIHZhbGlkYXRpb24uIFRoZSBNZWRpYUNvbnN0cmFpbnRzCiAg
ICAgLy8gbmVlZCB0byBjb21wbHkgd2l0aCB0aGUgYXZhaWxhYmxlIGF1ZGlvL3ZpZGVvIGRldmlj
ZShzKQogICAgIC8vIGNhcGFiaWxpdGllcy4gU2VlIGJ1ZyAjMTIzMzQ1LgogICAgIGludCB0eXBl
cyA9IE9XUl9NRURJQV9UWVBFX1VOS05PV047Ci0gICAgaWYgKGF1ZGlvQ29uc3RyYWludHMuaXNW
YWxpZCgpKQorICAgIGlmIChhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgeworICAgICAgICBT
dHJpbmcgc291cmNlTmFtZSgiYXVkaW8iKTsKKyAgICAgICAgU3RyaW5nIGlkKGNyZWF0ZUNhbm9u
aWNhbFVVSURTdHJpbmcoKSk7CisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291
cmNlVHlwZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvOwogICAgICAgICB0eXBlcyB8PSBP
V1JfTUVESUFfVFlQRV9BVURJTzsKLSAgICBpZiAodmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKCkp
CisgICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlT3dyPiBtZWRpYVNvdXJjZSA9IGFk
b3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291cmNlT3dyKG51bGxwdHIsIGlkLCBzb3VyY2VUeXBl
LCBzb3VyY2VOYW1lKSk7CisgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQobWVkaWFTb3VyY2Up
OworICAgIH0KKworICAgIGlmICh2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgeworICAgICAg
ICBTdHJpbmcgc291cmNlTmFtZSgidmlkZW8iKTsKKyAgICAgICAgU3RyaW5nIGlkKGNyZWF0ZUNh
bm9uaWNhbFVVSURTdHJpbmcoKSk7CisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUg
c291cmNlVHlwZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvOwogICAgICAgICB0eXBlcyB8
PSBPV1JfTUVESUFfVFlQRV9WSURFTzsKKyAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VPd3I+IG1lZGlhU291cmNlID0gYWRvcHRSZWYobmV3IFJlYWx0aW1lTWVkaWFTb3VyY2VPd3Io
bnVsbHB0ciwgaWQsIHNvdXJjZVR5cGUsIHNvdXJjZU5hbWUpKTsKKyAgICAgICAgdmlkZW9Tb3Vy
Y2VzLmFwcGVuZChtZWRpYVNvdXJjZSk7CisgICAgfQogCi0gICAgb3dyX2dldF9jYXB0dXJlX3Nv
dXJjZXMoc3RhdGljX2Nhc3Q8T3dyTWVkaWFUeXBlPih0eXBlcyksIG1lZGlhU291cmNlc0F2YWls
YWJsZUNhbGxiYWNrLCB0aGlzKTsKKyAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyKFdURk1v
dmUoYXVkaW9Tb3VyY2VzKSwgV1RGTW92ZSh2aWRlb1NvdXJjZXMpKTsKKyAgICBtX3ZhbGlkQ29u
c3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsKKyAgICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRs
ZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNy
ZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlciwg
Y29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlSUQp
CiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4gYXVkaW9Tb3VyY2Vz
OwotICAgIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IHZpZGVvU291cmNlczsK
KyAgICBpbnQgdHlwZXMgPSBPV1JfTUVESUFfVFlQRV9VTktOT1dOOwogCi0gICAgaWYgKCFhdWRp
b0RldmljZUlELmlzRW1wdHkoKSkgewotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlT3dyTWFw
OjppdGVyYXRvciBzb3VyY2VJdGVyYXRvciA9IG1fc291cmNlTWFwLmZpbmQoYXVkaW9EZXZpY2VJ
RCk7Ci0gICAgICAgIGlmIChzb3VyY2VJdGVyYXRvciAhPSBtX3NvdXJjZU1hcC5lbmQoKSkgewot
ICAgICAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSA9IHNvdXJjZUl0
ZXJhdG9yLT52YWx1ZTsKLSAgICAgICAgICAgIGlmIChzb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpbykKLSAgICAgICAgICAgICAgICBhdWRpb1NvdXJjZXMuYXBwZW5k
KHNvdXJjZS5yZWxlYXNlKCkpOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmICghdmlkZW9EZXZp
Y2VJRC5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZU93ck1hcDo6aXRl
cmF0b3Igc291cmNlSXRlcmF0b3IgPSBtX3NvdXJjZU1hcC5maW5kKHZpZGVvRGV2aWNlSUQpOwot
ICAgICAgICBpZiAoc291cmNlSXRlcmF0b3IgIT0gbV9zb3VyY2VNYXAuZW5kKCkpIHsKLSAgICAg
ICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBzb3VyY2UgPSBzb3VyY2VJdGVyYXRv
ci0+dmFsdWU7Ci0gICAgICAgICAgICBpZiAoc291cmNlLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VmlkZW8pCi0gICAgICAgICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChzb3Vy
Y2UucmVsZWFzZSgpKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBpZiAoIWF1ZGlvRGV2aWNlSUQu
aXNFbXB0eSgpKQorICAgICAgICB0eXBlcyB8PSBPV1JfTUVESUFfVFlQRV9BVURJTzsKKyAgICBp
ZiAoIXZpZGVvRGV2aWNlSUQuaXNFbXB0eSgpKQorICAgICAgICB0eXBlcyB8PSBPV1JfTUVESUFf
VFlQRV9WSURFTzsKIAotICAgIGlmICh2aWRlb1NvdXJjZXMuaXNFbXB0eSgpICYmIGF1ZGlvU291
cmNlcy5pc0VtcHR5KCkpCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwotICAg
IGVsc2UKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVh
dGUoYXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpKTsKKyAgICBtX2NvbXBsZXRpb25IYW5kbGVy
ID0gY29tcGxldGlvbkhhbmRsZXI7CisKKyAgICBvd3JfZ2V0X2NhcHR1cmVfc291cmNlcyhzdGF0
aWNfY2FzdDxPd3JNZWRpYVR5cGU+KHR5cGVzKSwgbWVkaWFTb3VyY2VzQXZhaWxhYmxlQ2FsbGJh
Y2ssIHRoaXMpOwogfQogCiBWZWN0b3I8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck93cjo6Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKCkKQEAgLTE0MSwxNyArMTQ1LDI0IEBA
IHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6bWVkaWFTb3VyY2VzQXZhaWxhYmxl
KEdMaXN0KiBzb3VyY2VzKQogICAgICAgICBTdHJpbmcgc291cmNlTmFtZShuYW1lLmdldCgpKTsK
ICAgICAgICAgU3RyaW5nIGlkKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSk7CiAKLSAgICAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlOworICAgICAgICBpZiAoZ19n
ZXRlbnYoIk9XUl9VU0VfVEVTVF9TT1VSQ0VTIikpIHsKKyAgICAgICAgICAgIE93clNvdXJjZVR5
cGUgc291cmNlVHlwZSA9IE9XUl9TT1VSQ0VfVFlQRV9VTktOT1dOOworICAgICAgICAgICAgZ19v
YmplY3RfZ2V0KHNvdXJjZSwgInR5cGUiLCAmc291cmNlVHlwZSwgTlVMTCk7CisgICAgICAgICAg
ICBpZiAoc291cmNlVHlwZSAhPSBPV1JfU09VUkNFX1RZUEVfVEVTVCkKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGUgbWVkaWFTb3VyY2VUeXBlOwogICAgICAgICBpZiAobWVkaWFUeXBlICYgT1dSX01FRElBX1RZ
UEVfQVVESU8pCi0gICAgICAgICAgICBzb3VyY2VUeXBlID0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW87CisgICAgICAgICAgICBtZWRpYVNvdXJjZVR5cGUgPSBSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpbzsKICAgICAgICAgZWxzZSBpZiAobWVkaWFUeXBlICYgT1dSX01FRElBX1RZUEVfVklE
RU8pCi0gICAgICAgICAgICBzb3VyY2VUeXBlID0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW87
CisgICAgICAgICAgICBtZWRpYVNvdXJjZVR5cGUgPSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRl
bzsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBzb3VyY2VUeXBlID0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Tm9uZTsKKyAgICAgICAgICAgIG1lZGlhU291cmNlVHlwZSA9IFJlYWx0aW1lTWVk
aWFTb3VyY2U6Ok5vbmU7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgfQogCi0gICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlT3dyPiBtZWRpYVNvdXJj
ZSA9IGFkb3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291cmNlT3dyKHNvdXJjZSwgaWQsIHNvdXJj
ZVR5cGUsIHNvdXJjZU5hbWUpKTsKKyAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VP
d3I+IG1lZGlhU291cmNlID0gYWRvcHRSZWYobmV3IFJlYWx0aW1lTWVkaWFTb3VyY2VPd3Ioc291
cmNlLCBpZCwgbWVkaWFTb3VyY2VUeXBlLCBzb3VyY2VOYW1lKSk7CiAKICAgICAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZU93ck1hcDo6aXRlcmF0b3Igc291cmNlSXRlcmF0b3IgPSBtX3NvdXJjZU1h
cC5maW5kKGlkKTsKICAgICAgICAgaWYgKHNvdXJjZUl0ZXJhdG9yID09IG1fc291cmNlTWFwLmVu
ZCgpKQpAQCAtMTYzLDEwICsxNzQsMTEgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
T3dyOjptZWRpYVNvdXJjZXNBdmFpbGFibGUoR0xpc3QqIHNvdXJjZXMpCiAgICAgICAgICAgICB2
aWRlb1NvdXJjZXMuYXBwZW5kKG1lZGlhU291cmNlKTsKICAgICB9CiAKLSAgICAvLyBUT0RPOiBN
YWtlIHN1cmUgY29udHJhaW50cyBhcmUgYWN0dWFsbHkgdmFsaWRhdGVkIGJ5IGNoZWNraW5nIHNv
dXJjZSB0eXBlcy4KLSAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyKFdURk1vdmUoYXVkaW9T
b3VyY2VzKSwgV1RGTW92ZSh2aWRlb1NvdXJjZXMpKTsKLSAgICBtX3ZhbGlkQ29uc3RyYWludHNI
YW5kbGVyID0gbnVsbHB0cjsKLSAgICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBudWxs
cHRyOworICAgIGlmICh2aWRlb1NvdXJjZXMuaXNFbXB0eSgpICYmIGF1ZGlvU291cmNlcy5pc0Vt
cHR5KCkpCisgICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CisgICAgZWxzZQor
ICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKGF1
ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKSk7CisKIH0KIAogUGFzc1JlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjpmaXJzdFNvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJP
d3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCmluZGV4IDcxNDZkYmRlODI0OWE1OGQ4YWJjZDkw
MzY2OTkwNmVlOTJhYjVkNmUuLjhlMDVjNTBlZGNhNTE4ODFlYmQzNDk4MzFiNWUwOWIzNjhlZTcw
NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53
ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ck93ci5oCkBAIC02Nyw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZU93ck1hcCBtX3NvdXJjZU1hcDsKICAgICBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciBtX3ZhbGlk
Q29uc3RyYWludHNIYW5kbGVyOwogICAgIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgbV9pbnZh
bGlkQ29uc3RyYWludHNIYW5kbGVyOworICAgIE5ld01lZGlhU3RyZWFtSGFuZGxlciBtX2NvbXBs
ZXRpb25IYW5kbGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294489</attachid>
            <date>2016-11-11 02:35:39 -0800</date>
            <delta_ts>2016-11-11 05:12:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164010-20161111113124.patch</filename>
            <type>text/plain</type>
            <size>8885</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDY3YWU4ZjhmYjIzMjQ5
NzUxNzhmZGFlZjgwOWYxZDEwNGI4YjcwYy4uMmFkMDE5MDZlNTJjMTZkMjkxNmUxYmUxNzBhYjMx
OGFiY2I0NjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTExLTExICBBbGVq
YW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJSVENdW09w
ZW5XZWJSVENdIEltcGxlbWVudCBkZXZpY2UgcGVybWlzc2lvbnMgaGFuZGxpbmcgc29sdXRpb24g
Zm9yIG93ciBiYWNrZW5kIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBQ
aGlsaXBwZSBOb3JtYW5kLgorCisgICAgICAgIE1vdmUgdGhlIGNhcHR1cmUgb2YgdGhlIHNvdXJj
ZXMgZm9yIHRoZSBPV1IgYmFja2VuZCB0byB0aGUKKyAgICAgICAgV2ViUHJvY2Vzcy4gSW4gdGhl
IFVJIHdlIGNvbnRpbnVlIGNoZWNraW5nIGlmIHRoZSB1c2VyIGFsbG93cworICAgICAgICBhY2Nl
c3MgdG8gdGhlIGF1ZGlvIGFuZCB2aWRlbyBjYXB0dXJlLiBXaGVuIGRldmljZSBoYW5kbGluZyBp
cworICAgICAgICBhZGRlZCBpbiB0aGUgZnV0dXJlIHdlIHdpbGwgbmVlZCBzb21lIHBlcnNpc3Rl
bnQgSUQgYW5kIEFQSSB0bworICAgICAgICBwYXNzIGZyb20gdGhlIFVJIHByb2Nlc3MgdG8gdGhl
IFdlYiBwcm9jZXNzLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0
Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToK
KyAgICAgICAgQWRkIHRoZSBwcm9wZXIgYXVkaW8gYW5kIHZpZGVvIHNvdXJjZXMgdG8gYWxsb3cg
dGhlIFVJIG1lc3NhZ2UgdG8KKyAgICAgICAgYmUgcHJvcGVybHkgcmVuZGVyZWQuIFdlIGFyZSBh
ZGRpbmcgdGhlIHNwZWNpZmljIGRldmljZXMsIGV2ZW4KKyAgICAgICAgdGhvdWdoIHRoZSBkaWFs
b2cganVzdCBhc2tzIGZvciBnZW5lcmFsIGF1ZGlvIGFuZCB2aWRlby4gVGhlcmUgd2FzCisgICAg
ICAgIGFscmVhZHkgYSBGSVhNRSBhYm91dCBpbXByb3ZpbmcgdGhpcy4KKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKTogV2Ug
YXJlCisgICAgICAgIGNhcHR1cmluZyB0aGUgZGV2aWNlcyBoZXJlIHdoZW4gdGhlIGFsbG93ZWQg
bWVzc2FnZSBhcnJpdmVkIGZyb20KKyAgICAgICAgdGhlIFVJIHByb2Nlc3MuIFdlIHN0b3JlIHRo
ZSBjb21wbGV0aW9uIGhhbmRsZXIgdG8gdXNlIGl0IGxhdGVyCisgICAgICAgIHdoZW4gdGhlIGF5
bmMgb3dyIEFQSSBmaW5pc2hlcyBjYXB0dXJlIGRldmljZXMgcHJvY2Vzcy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6Om1lZGlhU291cmNlc0F2YWlsYWJs
ZSk6IFdlCisgICAgICAgIG5vdyBjYWxsIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgaW4gdGhpcyBj
YWxsYmFjayBjYWxsZWQgd2hlbiB0aGUKKyAgICAgICAgb3dyIGxpYnJhcnkgZmluaXNoZXMgdGhl
IGNhcHR1cmUgb2YgdGhlIGRldmljZXMuIE5vdyB0aGlzIGhhcHBlbnMKKyAgICAgICAgaW4gdGhl
IFdlYlByb2Nlc3MgZm9yIE9XUiBwb3J0LgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oOgorICAgICAgICBBZGQg
YW4gYXR0cmlidXRlIHRvIHN0b3JlIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIuCisKIDIwMTYtMTEt
MTEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJu
IE1lZGlhIENvbnRyb2xzXSBNZWRpYSBDb250cm9sbGVyOiBtZWRpYSB0cmFja3MgY29udHJvbCBz
dXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9v
cGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyT3dyLmNwcAppbmRleCAwZTkwMzJiYzc3YWE1OTc5M2E5YTE1ZDE4ZGQ0MzExYjJjZTU3ZTlh
Li45ODc3YTNlOWZlZGQ5MThkMWNlZWEzZTgxZTIzYTRiMDExOGFkZDBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJPd3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAKQEAgLTgx
LDQ2ICs4MSwzNSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OnZhbGlkYXRl
UmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYQogICAgIG1fdmFsaWRDb25zdHJh
aW50c0hhbmRsZXIgPSBXVEZNb3ZlKHZhbGlkSGFuZGxlcik7CiAgICAgbV9pbnZhbGlkQ29uc3Ry
YWludHNIYW5kbGVyID0gV1RGTW92ZShpbnZhbGlkSGFuZGxlcik7CiAKKyAgICBWZWN0b3I8U3Ry
aW5nPiBhdWRpb1NvdXJjZXM7CisgICAgVmVjdG9yPFN0cmluZz4gdmlkZW9Tb3VyY2VzOworCiAg
ICAgLy8gRklYTUU6IEFjdHVhbGx5IGRvIGNvbnN0cmFpbnRzIHZhbGlkYXRpb24uIFRoZSBNZWRp
YUNvbnN0cmFpbnRzCiAgICAgLy8gbmVlZCB0byBjb21wbHkgd2l0aCB0aGUgYXZhaWxhYmxlIGF1
ZGlvL3ZpZGVvIGRldmljZShzKQogICAgIC8vIGNhcGFiaWxpdGllcy4gU2VlIGJ1ZyAjMTIzMzQ1
LgotICAgIGludCB0eXBlcyA9IE9XUl9NRURJQV9UWVBFX1VOS05PV047CiAgICAgaWYgKGF1ZGlv
Q29uc3RyYWludHMuaXNWYWxpZCgpKQotICAgICAgICB0eXBlcyB8PSBPV1JfTUVESUFfVFlQRV9B
VURJTzsKKyAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChTdHJpbmcoImF1ZGlvIikpOworCiAg
ICAgaWYgKHZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCgpKQotICAgICAgICB0eXBlcyB8PSBPV1Jf
TUVESUFfVFlQRV9WSURFTzsKKyAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChTdHJpbmcoInZp
ZGVvIikpOwogCi0gICAgb3dyX2dldF9jYXB0dXJlX3NvdXJjZXMoc3RhdGljX2Nhc3Q8T3dyTWVk
aWFUeXBlPih0eXBlcyksIG1lZGlhU291cmNlc0F2YWlsYWJsZUNhbGxiYWNrLCB0aGlzKTsKKyAg
ICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyKFdURk1vdmUoYXVkaW9Tb3VyY2VzKSwgV1RGTW92
ZSh2aWRlb1NvdXJjZXMpKTsKKyAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gbnVsbHB0
cjsKKyAgICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBudWxscHRyOwogfQogCiB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlh
U3RyZWFtSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlciwgY29uc3QgU3RyaW5nJiBhdWRpb0Rldmlj
ZUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikKIHsKLSAgICBWZWN0b3I8UmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2U+PiBhdWRpb1NvdXJjZXM7Ci0gICAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOworICAgIGludCB0eXBlcyA9IE9XUl9NRURJQV9UWVBF
X1VOS05PV047CiAKLSAgICAvLyBGSVhNRTogQWN0dWFsbHkgYXBwbHkgY29uc3RyYWludHMgdG8g
bmV3bHkgY3JlYXRlZCBzb3VyY2VzLgorICAgIGlmICghYXVkaW9EZXZpY2VJRC5pc0VtcHR5KCkp
CisgICAgICAgIHR5cGVzIHw9IE9XUl9NRURJQV9UWVBFX0FVRElPOworICAgIGlmICghdmlkZW9E
ZXZpY2VJRC5pc0VtcHR5KCkpCisgICAgICAgIHR5cGVzIHw9IE9XUl9NRURJQV9UWVBFX1ZJREVP
OwogCi0gICAgaWYgKCFhdWRpb0RldmljZUlELmlzRW1wdHkoKSkgewotICAgICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlT3dyTWFwOjppdGVyYXRvciBzb3VyY2VJdGVyYXRvciA9IG1fc291cmNlTWFw
LmZpbmQoYXVkaW9EZXZpY2VJRCk7Ci0gICAgICAgIGlmIChzb3VyY2VJdGVyYXRvciAhPSBtX3Nv
dXJjZU1hcC5lbmQoKSkgewotICAgICAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IHNvdXJjZSA9IHNvdXJjZUl0ZXJhdG9yLT52YWx1ZTsKLSAgICAgICAgICAgIGlmIChzb3VyY2Ut
PnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykKLSAgICAgICAgICAgICAgICBh
dWRpb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlKCkpOwotICAgICAgICB9Ci0gICAgfQot
ICAgIGlmICghdmlkZW9EZXZpY2VJRC5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZU93ck1hcDo6aXRlcmF0b3Igc291cmNlSXRlcmF0b3IgPSBtX3NvdXJjZU1hcC5maW5k
KHZpZGVvRGV2aWNlSUQpOwotICAgICAgICBpZiAoc291cmNlSXRlcmF0b3IgIT0gbV9zb3VyY2VN
YXAuZW5kKCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBzb3Vy
Y2UgPSBzb3VyY2VJdGVyYXRvci0+dmFsdWU7Ci0gICAgICAgICAgICBpZiAoc291cmNlLT50eXBl
KCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8pCi0gICAgICAgICAgICAgICAgdmlkZW9T
b3VyY2VzLmFwcGVuZChzb3VyY2UucmVsZWFzZSgpKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBt
X2NvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXI7CiAKLSAgICBpZiAodmlkZW9T
b3VyY2VzLmlzRW1wdHkoKSAmJiBhdWRpb1NvdXJjZXMuaXNFbXB0eSgpKQotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihudWxscHRyKTsKLSAgICBlbHNlCi0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2Vz
KSk7CisgICAgb3dyX2dldF9jYXB0dXJlX3NvdXJjZXMoc3RhdGljX2Nhc3Q8T3dyTWVkaWFUeXBl
Pih0eXBlcyksIG1lZGlhU291cmNlc0F2YWlsYWJsZUNhbGxiYWNrLCB0aGlzKTsKIH0KIAogVmVj
dG9yPENhcHR1cmVEZXZpY2U+IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmdldE1lZGlh
U3RyZWFtRGV2aWNlcygpCkBAIC0xMzEsOCArMTIwLDggQEAgVmVjdG9yPENhcHR1cmVEZXZpY2U+
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmdldE1lZGlhU3RyZWFtRGV2aWNlcygpCiAK
IHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6bWVkaWFTb3VyY2VzQXZhaWxhYmxl
KEdMaXN0KiBzb3VyY2VzKQogewotICAgIFZlY3RvcjxTdHJpbmc+IGF1ZGlvU291cmNlczsKLSAg
ICBWZWN0b3I8U3RyaW5nPiB2aWRlb1NvdXJjZXM7CisgICAgVmVjdG9yPFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlPj4gYXVkaW9Tb3VyY2VzOworICAgIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4+IHZpZGVvU291cmNlczsKIAogICAgIGZvciAoYXV0byBpdGVtID0gc291cmNl
czsgaXRlbTsgaXRlbSA9IGl0ZW0tPm5leHQpIHsKICAgICAgICAgT3dyTWVkaWFTb3VyY2UqIHNv
dXJjZSA9IE9XUl9NRURJQV9TT1VSQ0UoaXRlbS0+ZGF0YSk7CkBAIC0xNDMsMzIgKzEzMiw0MCBA
QCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6Om1lZGlhU291cmNlc0F2YWlsYWJs
ZShHTGlzdCogc291cmNlcykKICAgICAgICAgU3RyaW5nIHNvdXJjZU5hbWUobmFtZS5nZXQoKSk7
CiAgICAgICAgIFN0cmluZyBpZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpOwogCi0gICAg
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZTsKKyAgICAgICAgaWYgKGdf
Z2V0ZW52KCJPV1JfVVNFX1RFU1RfU09VUkNFUyIpKSB7CisgICAgICAgICAgICBPd3JTb3VyY2VU
eXBlIHNvdXJjZVR5cGUgPSBPV1JfU09VUkNFX1RZUEVfVU5LTk9XTjsKKyAgICAgICAgICAgIGdf
b2JqZWN0X2dldChzb3VyY2UsICJ0eXBlIiwgJnNvdXJjZVR5cGUsIE5VTEwpOworICAgICAgICAg
ICAgaWYgKHNvdXJjZVR5cGUgIT0gT1dSX1NPVVJDRV9UWVBFX1RFU1QpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIG1lZGlhU291cmNlVHlwZTsKICAgICAgICAgaWYgKG1lZGlhVHlwZSAmIE9XUl9NRURJQV9U
WVBFX0FVRElPKQotICAgICAgICAgICAgc291cmNlVHlwZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkF1ZGlvOworICAgICAgICAgICAgbWVkaWFTb3VyY2VUeXBlID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW87CiAgICAgICAgIGVsc2UgaWYgKG1lZGlhVHlwZSAmIE9XUl9NRURJQV9UWVBFX1ZJ
REVPKQotICAgICAgICAgICAgc291cmNlVHlwZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVv
OworICAgICAgICAgICAgbWVkaWFTb3VyY2VUeXBlID0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6Vmlk
ZW87CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgc291cmNlVHlwZSA9IFJlYWx0aW1lTWVk
aWFTb3VyY2U6Ok5vbmU7CisgICAgICAgICAgICBtZWRpYVNvdXJjZVR5cGUgPSBSZWFsdGltZU1l
ZGlhU291cmNlOjpOb25lOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIH0KIAotICAgICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZU93cj4gbWVkaWFTb3Vy
Y2UgPSBhZG9wdFJlZihuZXcgUmVhbHRpbWVNZWRpYVNvdXJjZU93cihzb3VyY2UsIGlkLCBzb3Vy
Y2VUeXBlLCBzb3VyY2VOYW1lKSk7CisgICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
T3dyPiBtZWRpYVNvdXJjZSA9IGFkb3B0UmVmKG5ldyBSZWFsdGltZU1lZGlhU291cmNlT3dyKHNv
dXJjZSwgaWQsIG1lZGlhU291cmNlVHlwZSwgc291cmNlTmFtZSkpOwogCiAgICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VPd3JNYXA6Oml0ZXJhdG9yIHNvdXJjZUl0ZXJhdG9yID0gbV9zb3VyY2VN
YXAuZmluZChpZCk7CiAgICAgICAgIGlmIChzb3VyY2VJdGVyYXRvciA9PSBtX3NvdXJjZU1hcC5l
bmQoKSkKICAgICAgICAgICAgIG1fc291cmNlTWFwLmFkZChpZCwgbWVkaWFTb3VyY2UpOwogCiAg
ICAgICAgIGlmIChtZWRpYVR5cGUgJiBPV1JfTUVESUFfVFlQRV9BVURJTykKLSAgICAgICAgICAg
IGF1ZGlvU291cmNlcy5hcHBlbmQoaWQpOworICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVu
ZChtZWRpYVNvdXJjZSk7CiAgICAgICAgIGVsc2UgaWYgKG1lZGlhVHlwZSAmIE9XUl9NRURJQV9U
WVBFX1ZJREVPKQotICAgICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChpZCk7CisgICAgICAg
ICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKG1lZGlhU291cmNlKTsKICAgICB9CiAKLSAgICAvLyBU
T0RPOiBNYWtlIHN1cmUgY29udHJhaW50cyBhcmUgYWN0dWFsbHkgdmFsaWRhdGVkIGJ5IGNoZWNr
aW5nIHNvdXJjZSB0eXBlcy4KLSAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyKFdURk1vdmUo
YXVkaW9Tb3VyY2VzKSwgV1RGTW92ZSh2aWRlb1NvdXJjZXMpKTsKLSAgICBtX3ZhbGlkQ29uc3Ry
YWludHNIYW5kbGVyID0gbnVsbHB0cjsKLSAgICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRsZXIg
PSBudWxscHRyOworICAgIGlmICh2aWRlb1NvdXJjZXMuaXNFbXB0eSgpICYmIGF1ZGlvU291cmNl
cy5pc0VtcHR5KCkpCisgICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CisgICAg
ZWxzZQorICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3Jl
YXRlKGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKSk7CisKIH0KIAogUGFzc1JlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjpmaXJzdFNvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJPd3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJy
dGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCmluZGV4IDJjZDk3ODgxMzg3NTdiYzcz
YjRjYmE3N2M3ZDJhZTI0MTY2MDIwNjIuLjZjZGQ3ZDVmZTBjNGE4MjgyZDQxMDM3NGVkNGY3MmM3
ODFmZDliMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck93ci5oCkBAIC02Nyw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZU93ck1hcCBtX3NvdXJjZU1hcDsKICAgICBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciBt
X3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyOwogICAgIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXIg
bV9pbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyOworICAgIE5ld01lZGlhU3RyZWFtSGFuZGxlciBt
X2NvbXBsZXRpb25IYW5kbGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>