<?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>185315</bug_id>
          
          <creation_ts>2018-05-04 11:58:38 -0700</creation_ts>
          <short_desc>Check for com.apple.datamigrator before declaring simulators booted</short_desc>
          <delta_ts>2018-05-07 13:08:23 -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>Tools / Tests</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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1420799</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-04 11:58:38 -0700</bug_when>
    <thetext>When iOS simulators are being booted, they run a data migrator process, which is the process which frequently blocks the installing of apps.  We should check that there are no more data migrator processes before declaring that iOS simulators have been booted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420801</commentid>
    <comment_count>1</comment_count>
      <attachid>339577</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-04 12:02:51 -0700</bug_when>
    <thetext>Created attachment 339577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420807</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-04 12:08:29 -0700</bug_when>
    <thetext>Tested this on a variety of configurations which fail to install apps to simulators, it addressed the problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420823</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-04 13:02:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/39986261&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420836</commentid>
    <comment_count>4</comment_count>
      <attachid>339577</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-05-04 13:23:20 -0700</bug_when>
    <thetext>Comment on attachment 339577
Patch

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

&gt; Tools/ChangeLog:3
&gt; +        webkitpy: Check for com.apple.datamigrator before declaring simulators booted

We should update webkitdirs::runIOSWebKitAppInSimulator() &lt;https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitdirs.pm?rev=231302#L2595&gt; and any other tools/scripts that need to know when the simulator is ready to be used.

&gt; Tools/Scripts/webkitpy/common/system/executive_mock.py:181
&gt; +        self._running_pids = {&apos;test-webkitpy&apos;: os.getpid()}

Is it necessary to call os.getpid()? Can we just hardcode a dummy canonical pid and avoid the cost of calling os.getpid()?

&gt; Tools/Scripts/webkitpy/xcode/simulated_device.py:368
&gt; +        SimulatedDeviceManager.wait_until_data_migration_is_done(host, deadline - time.time())

deadline - time.time() can be negative. What does that mean?

&gt; Tools/Scripts/webkitpy/xcode/simulated_device.py:370
&gt;          return SimulatedDeviceManager.INITIALIZED_DEVICES

I know you did not touch this code in this patch, but this function as written assumes that all devices in SimulatedDeviceManager.INITIALIZED_DEVICES have been booted by the time we get to this line even though SimulatedDeviceManager._wait_until_device_in_state() may have timed out.

&gt; Tools/Scripts/webkitpy/xcode/simulated_device.py:424
&gt; +        deadline = time.time() + timeout

This function assumes timeout &gt; 0.

&gt; Tools/Scripts/webkitpy/xcode/simulated_device.py:427
&gt; +            time.sleep(1)

The placement of this sleep() means that this function will wait 1 second regardless of the value of timeout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420843</commentid>
    <comment_count>5</comment_count>
      <attachid>339577</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-04 13:38:23 -0700</bug_when>
    <thetext>Comment on attachment 339577
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/common/system/executive_mock.py:181
&gt;&gt; +        self._running_pids = {&apos;test-webkitpy&apos;: os.getpid()}
&gt; 
&gt; Is it necessary to call os.getpid()? Can we just hardcode a dummy canonical pid and avoid the cost of calling os.getpid()?

We could, but the existing code for MockExecutive does the same thing on line 75.  I don&apos;t have an opinion either way, I was just being consistent with existing code.

&gt;&gt; Tools/Scripts/webkitpy/xcode/simulated_device.py:368
&gt;&gt; +        SimulatedDeviceManager.wait_until_data_migration_is_done(host, deadline - time.time())
&gt; 
&gt; deadline - time.time() can be negative. What does that mean?

This would indicate that the timeout has already expired.

I don&apos;t think we need any special logic for negative timeouts, they will function similarly to a timeout of 0.

&gt;&gt; Tools/Scripts/webkitpy/xcode/simulated_device.py:370
&gt;&gt;          return SimulatedDeviceManager.INITIALIZED_DEVICES
&gt; 
&gt; I know you did not touch this code in this patch, but this function as written assumes that all devices in SimulatedDeviceManager.INITIALIZED_DEVICES have been booted by the time we get to this line even though SimulatedDeviceManager._wait_until_device_in_state() may have timed out.

_wait_until_device_in_state would raise an exception if it timed out.  Generally, the code in this file uses exceptions to communicate to callers that errors have occurred.

&gt;&gt; Tools/Scripts/webkitpy/xcode/simulated_device.py:424
&gt;&gt; +        deadline = time.time() + timeout
&gt; 
&gt; This function assumes timeout &gt; 0.

Actually, this code work work just fine if timeout was negative.  In that case, we would get one chance to check the pid before raising an exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420873</commentid>
    <comment_count>6</comment_count>
      <attachid>339577</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-04 14:03:33 -0700</bug_when>
    <thetext>Comment on attachment 339577
Patch

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

&gt;&gt; Tools/ChangeLog:3
&gt;&gt; +        webkitpy: Check for com.apple.datamigrator before declaring simulators booted
&gt; 
&gt; We should update webkitdirs::runIOSWebKitAppInSimulator() &lt;https://trac.webkit.org/browser/trunk/Tools/Scripts/webkitdirs.pm?rev=231302#L2595&gt; and any other tools/scripts that need to know when the simulator is ready to be used.

Are we sure it&apos;s actually worth it?

I say this for a few reasons:
    - In practice, simulators are only blocked on data migrator when multiple are booted simultaneously.  This is not a work flow supported by webkitdirs::runIOSWebKitAppInSimulator()
    - webkitdirs::runIOSWebKitAppInSimulator() is not in any automated work-flows that I&apos;m aware of. If the data migrator is stuck and a human is behind the script, it&apos;s pretty obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420916</commentid>
    <comment_count>7</comment_count>
      <attachid>339604</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-04 15:38:28 -0700</bug_when>
    <thetext>Created attachment 339604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421315</commentid>
    <comment_count>8</comment_count>
      <attachid>339604</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-05-07 10:20:24 -0700</bug_when>
    <thetext>Comment on attachment 339604
Patch

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

r=me with three optional items to consider.

&gt; Tools/Scripts/webkitdirs.pm:2457
&gt; +    while (system(&quot;/bin/ps -eo pid,comm | /usr/bin/grep &apos;$process&apos;&quot;) == 0) {

Optional:  Hopefully &apos;com.apple.datamigrator&apos; doesn&apos;t appear in the path to a completely different binary on macOS.  :)  Could mitigate this by checking for the process name at the end of the line:

    while (system(&quot;/bin/ps -eo pid,comm | /usr/bin/grep &apos;&quot; + $process + &quot;\$&apos;&quot;) == 0) {

NOTE: UNTESTED.  Not sure if I&apos;m escaping the $ at the end of the regex enough.

I don&apos;t think this has to be fixed to land the patch (since behavior would be &quot;obvious&quot;--hang running Simulator app), but might be good to fix if it&apos;s easy to do.

&gt; Tools/Scripts/webkitdirs.pm:2487
&gt; +    waitUntilProcessNotRunning(&apos;com.apple.datamigrator&apos;);

Optional super-nit:  Use double-quotes for strings in Perl unless there is a reason to use single quotes.  (Python is the opposite.)

&gt; Tools/Scripts/webkitpy/xcode/simulated_device.py:368
&gt; +        SimulatedDeviceManager.wait_until_data_migration_is_done(host, deadline - time.time())

Optional:  You could state that negative timeouts are equivalent to 0 by using a max() function here, too:

        SimulatedDeviceManager.wait_until_data_migration_is_done(host, max(0, deadline - time.time()))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421351</commentid>
    <comment_count>9</comment_count>
      <attachid>339734</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-07 11:26:10 -0700</bug_when>
    <thetext>Created attachment 339734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421394</commentid>
    <comment_count>10</comment_count>
      <attachid>339734</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-07 13:08:21 -0700</bug_when>
    <thetext>Comment on attachment 339734
Patch

Clearing flags on attachment: 339734

Committed r231452: &lt;https://trac.webkit.org/changeset/231452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1421395</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-07 13:08:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339577</attachid>
            <date>2018-05-04 12:02:51 -0700</date>
            <delta_ts>2018-05-04 15:38:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185315-20180504120250.patch</filename>
            <type>text/plain</type>
            <size>4567</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMTM2OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDE4LTA1LTA0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogQ2hlY2sgZm9yIGNvbS5hcHBsZS5kYXRhbWlncmF0b3Ig
YmVmb3JlIGRlY2xhcmluZyBzaW11bGF0b3JzIGJvb3RlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MzE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZXhlY3V0aXZlX21vY2sucHk6CisgICAgICAgIChNb2NrRXhlY3V0aXZlMi5fX2luaXRfXyk6
IERlZmluZSBfcnVubmluZ19waWRzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkveGNvZGUv
c2ltdWxhdGVkX2RldmljZS5weToKKyAgICAgICAgKFNpbXVsYXRlZERldmljZU1hbmFnZXIuaW5p
dGlhbGl6ZV9kZXZpY2VzKTogQ2FsbCB3YWl0X3VudGlsX2RhdGFfbWlncmF0aW9uX2lzX2RvbmUg
YmVmb3JlCisgICAgICAgIGRlY2xhcmluZyB0aGF0IGRldmljZXMgaGF2ZSBiZWVuIGJvb3RlZCwg
aW5jcmVhc2UgdGhlIHRpbWVvdXQgc2luY2UgZGF0YSBtaWdyYXRpb24gd2lsbCBmcmVxdWVudGx5
CisgICAgICAgIHRha2UgbG9uZ2VyIHRoYW4gNjAgc2Vjb25kcywgZXNwZWNpYWxseSB3aXRoIG11
bHRpcGxlIHNpbXVsYXRvcnMgYm9vdGluZy4KKyAgICAgICAgKFNpbXVsYXRlZERldmljZU1hbmFn
ZXIuc3dhcCk6IERpdHRvLgorICAgICAgICAoU2ltdWxhdGVkRGV2aWNlTWFuYWdlcik6CisgICAg
ICAgIChTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLndhaXRfdW50aWxfZGF0YV9taWdyYXRpb25faXNf
ZG9uZSk6IFdhaXQgdW50aWwgdGhlcmUgYXJlIG5vIGNvbS5hcHBsZS5kYXRhbWlncmF0b3IKKyAg
ICAgICAgcHJvY2Vzc2VzIHJ1bm5pbmcuCisKIDIwMTgtMDUtMDQgIFdlbnNvbiBIc2llaCAgPHdo
c2llaEBiZXJrZWxleS5lZHU+CiAKICAgICAgICAgUkVHUkVTU0lPTjogW2lvcy1zaW11bGF0b3Jd
IDMgV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cyBBUEkgdGVzdCBmYWlsdXJlcyBzZWVuIHdpdGggMTEu
MyBTREsKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRp
dmVfbW9jay5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vZXhlY3V0aXZlX21vY2sucHkJKHJldmlzaW9uIDIzMTM2NCkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weQkod29ya2luZyBjb3B5
KQpAQCAtMTc4LDYgKzE3OCw3IEBAIGNsYXNzIE1vY2tFeGVjdXRpdmUyKE1vY2tFeGVjdXRpdmUp
OgogICAgICAgICBzZWxmLl9zdGRlcnIgPSBzdGRlcnIKICAgICAgICAgc2VsZi5fZXhpdF9jb2Rl
ID0gZXhpdF9jb2RlCiAgICAgICAgIHNlbGYuX2V4Y2VwdGlvbiA9IGV4Y2VwdGlvbgorICAgICAg
ICBzZWxmLl9ydW5uaW5nX3BpZHMgPSB7J3Rlc3Qtd2Via2l0cHknOiBvcy5nZXRwaWQoKX0KICAg
ICAgICAgc2VsZi5fcnVuX2NvbW1hbmRfZm4gPSBydW5fY29tbWFuZF9mbgogICAgICAgICBzZWxm
LmNhbGxzID0gW10KIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0
ZWRfZGV2aWNlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUv
c2ltdWxhdGVkX2RldmljZS5weQkocmV2aXNpb24gMjMxMzY0KQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMTQs
NyArMzE0LDcgQEAgY2xhc3MgU2ltdWxhdGVkRGV2aWNlTWFuYWdlcihvYmplY3QpOgogICAgICAg
ICBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLklOSVRJQUxJWkVEX0RFVklDRVMuYXBwZW5kKGRldmlj
ZSkKIAogICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgaW5pdGlhbGl6ZV9kZXZpY2VzKHJlcXVl
c3RzLCBob3N0PVN5c3RlbUhvc3QoKSwgbmFtZV9iYXNlPSdNYW5hZ2VkJywgc2ltdWxhdG9yX3Vp
PVRydWUsIHRpbWVvdXQ9NjAsICoqa3dhcmdzKToKKyAgICBkZWYgaW5pdGlhbGl6ZV9kZXZpY2Vz
KHJlcXVlc3RzLCBob3N0PVN5c3RlbUhvc3QoKSwgbmFtZV9iYXNlPSdNYW5hZ2VkJywgc2ltdWxh
dG9yX3VpPVRydWUsIHRpbWVvdXQ9MTgwLCAqKmt3YXJncyk6CiAgICAgICAgIGlmIFNpbXVsYXRl
ZERldmljZU1hbmFnZXIuSU5JVElBTElaRURfREVWSUNFUyBpcyBub3QgTm9uZToKICAgICAgICAg
ICAgIHJldHVybiBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLklOSVRJQUxJWkVEX0RFVklDRVMKIApA
QCAtMzY1LDYgKzM2NSw3IEBAIGNsYXNzIFNpbXVsYXRlZERldmljZU1hbmFnZXIob2JqZWN0KToK
ICAgICAgICAgZGVhZGxpbmUgPSB0aW1lLnRpbWUoKSArIHRpbWVvdXQKICAgICAgICAgZm9yIGRl
dmljZSBpbiBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLklOSVRJQUxJWkVEX0RFVklDRVM6CiAgICAg
ICAgICAgICBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLl93YWl0X3VudGlsX2RldmljZV9pbl9zdGF0
ZShkZXZpY2UsIFNpbXVsYXRlZERldmljZS5EZXZpY2VTdGF0ZS5CT09URUQsIGRlYWRsaW5lKQor
ICAgICAgICBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLndhaXRfdW50aWxfZGF0YV9taWdyYXRpb25f
aXNfZG9uZShob3N0LCBkZWFkbGluZSAtIHRpbWUudGltZSgpKQogCiAgICAgICAgIHJldHVybiBT
aW11bGF0ZWREZXZpY2VNYW5hZ2VyLklOSVRJQUxJWkVEX0RFVklDRVMKIApAQCAtMzk0LDcgKzM5
NSw3IEBAIGNsYXNzIFNpbXVsYXRlZERldmljZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgcmV0
dXJuIG1pbihtYXhfc3VwcG9ydGVkX3NpbXVsYXRvcnNfbG9jYWxseSwgbWF4X3N1cHBvcnRlZF9z
aW11bGF0b3JzX2Zvcl9oYXJkd2FyZSkKIAogICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgc3dh
cChkZXZpY2UsIHJlcXVlc3QsIGhvc3Q9U3lzdGVtSG9zdCgpLCBuYW1lX2Jhc2U9J01hbmFnZWQn
LCB0aW1lb3V0PTYwKToKKyAgICBkZWYgc3dhcChkZXZpY2UsIHJlcXVlc3QsIGhvc3Q9U3lzdGVt
SG9zdCgpLCBuYW1lX2Jhc2U9J01hbmFnZWQnLCB0aW1lb3V0PTE4MCk6CiAgICAgICAgIGlmIFNp
bXVsYXRlZERldmljZU1hbmFnZXIuSU5JVElBTElaRURfREVWSUNFUyBpcyBOb25lOgogICAgICAg
ICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdDYW5ub3Qgc3dhcCB3aGVuIHRoZXJlIGFyZSBubyBp
bml0aWFsaXplZCBkZXZpY2VzJykKICAgICAgICAgaWYgZGV2aWNlIG5vdCBpbiBTaW11bGF0ZWRE
ZXZpY2VNYW5hZ2VyLklOSVRJQUxJWkVEX0RFVklDRVM6CkBAIC00MTUsNiArNDE2LDE3IEBAIGNs
YXNzIFNpbXVsYXRlZERldmljZU1hbmFnZXIob2JqZWN0KToKIAogICAgICAgICBkZWFkbGluZSA9
IHRpbWUudGltZSgpICsgdGltZW91dAogICAgICAgICBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLl93
YWl0X3VudGlsX2RldmljZV9pbl9zdGF0ZShkZXZpY2UsIFNpbXVsYXRlZERldmljZS5EZXZpY2VT
dGF0ZS5CT09URUQsIGRlYWRsaW5lKQorICAgICAgICBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLndh
aXRfdW50aWxfZGF0YV9taWdyYXRpb25faXNfZG9uZShob3N0LCBkZWFkbGluZSAtIHRpbWUudGlt
ZSgpKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB3YWl0X3VudGlsX2RhdGFfbWlncmF0
aW9uX2lzX2RvbmUoaG9zdCwgdGltZW91dD0xODApOgorICAgICAgICAjIFRoZSBleGlzdGVuY2Ug
b2YgYSBkYXRhbWlncmF0b3IgcHJvY2VzcyBtZWFucyB0aGF0IHNpbXVsYXRvcnMgYXJlIHN0aWxs
IGJvb3RpbmcuCisgICAgICAgIGRlYWRsaW5lID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CisgICAg
ICAgIF9sb2cuZGVidWcoJ1dhaXRpbmcgdW50aWwgbm8gY29tLmFwcGxlLmRhdGFtaWdyYXRvciBw
cm9jZXNzZXMgYXJlIGZvdW5kJykKKyAgICAgICAgd2hpbGUgaG9zdC5leGVjdXRpdmUucnVubmlu
Z19waWRzKGxhbWJkYSBwcm9jZXNzX25hbWU6ICdjb20uYXBwbGUuZGF0YW1pZ3JhdG9yJyBpbiBw
cm9jZXNzX25hbWUpOgorICAgICAgICAgICAgdGltZS5zbGVlcCgxKQorICAgICAgICAgICAgaWYg
dGltZS50aW1lKCkgPiBkZWFkbGluZToKKyAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJy
b3IoJ1RpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBkYXRhIG1pZ3JhdGlvbicpCiAKICAgICBA
c3RhdGljbWV0aG9kCiAgICAgZGVmIHRlYXJfZG93bihob3N0PVN5c3RlbUhvc3QoKSwgdGltZW91
dD02MCk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339604</attachid>
            <date>2018-05-04 15:38:28 -0700</date>
            <delta_ts>2018-05-07 11:26:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185315-20180504153828.patch</filename>
            <type>text/plain</type>
            <size>5696</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMTM4NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDE4LTA1LTA0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBDaGVjayBmb3IgY29tLmFwcGxlLmRhdGFtaWdyYXRvciBiZWZvcmUgZGVj
bGFyaW5nIHNpbXVsYXRvcnMgYm9vdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODUzMTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5OTg2MjYx
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAod2FpdFVudGlsUHJvY2Vzc05vdFJ1bm5pbmcp
OiBXYWl0IHVudGlsIGEgcHJvY2VzcyBpcyBub3QgZm91bmQuCisgICAgICAgIChyZWxhdW5jaElP
U1NpbXVsYXRvcik6IFdhaXQgdW50aWwgY29tLmFwcGxlLmRhdGFtaWdyYXRvciBzdG9wcyBydW5u
aW5nIHRvIGRlY2xhcmUKKyAgICAgICAgYSBzaW11bGF0b3IgYm9vdGVkLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weToKKyAgICAgICAg
KE1vY2tFeGVjdXRpdmUyLl9faW5pdF9fKTogRGVmaW5lIF9ydW5uaW5nX3BpZHMuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5OgorICAgICAgICAo
U2ltdWxhdGVkRGV2aWNlTWFuYWdlci5pbml0aWFsaXplX2RldmljZXMpOiBDYWxsIHdhaXRfdW50
aWxfZGF0YV9taWdyYXRpb25faXNfZG9uZSBiZWZvcmUKKyAgICAgICAgZGVjbGFyaW5nIHRoYXQg
ZGV2aWNlcyBoYXZlIGJlZW4gYm9vdGVkLCBpbmNyZWFzZSB0aGUgdGltZW91dCBzaW5jZSBkYXRh
IG1pZ3JhdGlvbiB3aWxsIGZyZXF1ZW50bHkKKyAgICAgICAgdGFrZSBsb25nZXIgdGhhbiA2MCBz
ZWNvbmRzLCBlc3BlY2lhbGx5IHdpdGggbXVsdGlwbGUgc2ltdWxhdG9ycyBib290aW5nLgorICAg
ICAgICAoU2ltdWxhdGVkRGV2aWNlTWFuYWdlci5zd2FwKTogRGl0dG8uCisgICAgICAgIChTaW11
bGF0ZWREZXZpY2VNYW5hZ2VyKToKKyAgICAgICAgKFNpbXVsYXRlZERldmljZU1hbmFnZXIud2Fp
dF91bnRpbF9kYXRhX21pZ3JhdGlvbl9pc19kb25lKTogV2FpdCB1bnRpbCB0aGVyZSBhcmUgbm8g
Y29tLmFwcGxlLmRhdGFtaWdyYXRvcgorICAgICAgICBwcm9jZXNzZXMgcnVubmluZy4KKwogMjAx
OC0wNS0wNCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAg
RGVwcmVjYXRlIGxlZ2FjeSBXZWJWaWV3IGFuZCBmcmllbmRzCkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdGRpcnMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CShyZXZpc2lvbiAyMzEzNjQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtp
bmcgY29weSkKQEAgLTI0NTEsNiArMjQ1MSwxNCBAQCBzdWIgd2FpdFVudGlsSU9TU2ltdWxhdG9y
RGV2aWNlSXNJblN0YXRlCiAgICAgfQogfQogCitzdWIgd2FpdFVudGlsUHJvY2Vzc05vdFJ1bm5p
bmcoJCkKK3sKKyAgICBteSAoJHByb2Nlc3MpID0gQF87CisgICAgd2hpbGUgKHN5c3RlbSgiL2Jp
bi9wcyAtZW8gcGlkLGNvbW0gfCAvdXNyL2Jpbi9ncmVwICckcHJvY2VzcyciKSA9PSAwKSB7Cisg
ICAgICAgIHVzbGVlcCg1MDAgKiAxMDAwKTsKKyAgICB9Cit9CisKIHN1YiBzaHV0RG93bklPU1Np
bXVsYXRvckRldmljZSgkKQogewogICAgIG15ICgkc2ltdWxhdG9yRGV2aWNlKSA9IEBfOwpAQCAt
MjQ3Niw2ICsyNDg0LDcgQEAgc3ViIHJlbGF1bmNoSU9TU2ltdWxhdG9yKCQpCiAgICAgc3lzdGVt
KCJvcGVuIiwgIi1hIiwgJGlvc1NpbXVsYXRvclBhdGgsICItLWFyZ3MiLCAiLUN1cnJlbnREZXZp
Y2VVRElEIiwgJHNpbXVsYXRlZERldmljZS0+e1VESUR9KSA9PSAwIG9yIGRpZSAiRmFpbGVkIHRv
IG9wZW4gJGlvc1NpbXVsYXRvclBhdGg6ICQhIjsgCiAKICAgICB3YWl0VW50aWxJT1NTaW11bGF0
b3JEZXZpY2VJc0luU3RhdGUoJHNpbXVsYXRlZERldmljZS0+e1VESUR9LCBTSU1VTEFUT1JfREVW
SUNFX1NUQVRFX0JPT1RFRCk7CisgICAgd2FpdFVudGlsUHJvY2Vzc05vdFJ1bm5pbmcoJ2NvbS5h
cHBsZS5kYXRhbWlncmF0b3InKTsKIH0KIAogc3ViIHF1aXRJT1NTaW11bGF0b3IoOyQpCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1
dGl2ZV9tb2NrLnB5CShyZXZpc2lvbiAyMzEzNjQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHkJKHdvcmtpbmcgY29weSkKQEAgLTE3OCw2
ICsxNzgsNyBAQCBjbGFzcyBNb2NrRXhlY3V0aXZlMihNb2NrRXhlY3V0aXZlKToKICAgICAgICAg
c2VsZi5fc3RkZXJyID0gc3RkZXJyCiAgICAgICAgIHNlbGYuX2V4aXRfY29kZSA9IGV4aXRfY29k
ZQogICAgICAgICBzZWxmLl9leGNlcHRpb24gPSBleGNlcHRpb24KKyAgICAgICAgc2VsZi5fcnVu
bmluZ19waWRzID0geyd0ZXN0LXdlYmtpdHB5Jzogb3MuZ2V0cGlkKCl9CiAgICAgICAgIHNlbGYu
X3J1bl9jb21tYW5kX2ZuID0gcnVuX2NvbW1hbmRfZm4KICAgICAgICAgc2VsZi5jYWxscyA9IFtd
CiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdGVkX2RldmljZS5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9k
ZXZpY2UucHkJKHJldmlzaW9uIDIzMTM2NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNv
ZGUvc2ltdWxhdGVkX2RldmljZS5weQkod29ya2luZyBjb3B5KQpAQCAtMzE0LDcgKzMxNCw3IEBA
IGNsYXNzIFNpbXVsYXRlZERldmljZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgU2ltdWxhdGVk
RGV2aWNlTWFuYWdlci5JTklUSUFMSVpFRF9ERVZJQ0VTLmFwcGVuZChkZXZpY2UpCiAKICAgICBA
c3RhdGljbWV0aG9kCi0gICAgZGVmIGluaXRpYWxpemVfZGV2aWNlcyhyZXF1ZXN0cywgaG9zdD1T
eXN0ZW1Ib3N0KCksIG5hbWVfYmFzZT0nTWFuYWdlZCcsIHNpbXVsYXRvcl91aT1UcnVlLCB0aW1l
b3V0PTYwLCAqKmt3YXJncyk6CisgICAgZGVmIGluaXRpYWxpemVfZGV2aWNlcyhyZXF1ZXN0cywg
aG9zdD1TeXN0ZW1Ib3N0KCksIG5hbWVfYmFzZT0nTWFuYWdlZCcsIHNpbXVsYXRvcl91aT1UcnVl
LCB0aW1lb3V0PTE4MCwgKiprd2FyZ3MpOgogICAgICAgICBpZiBTaW11bGF0ZWREZXZpY2VNYW5h
Z2VyLklOSVRJQUxJWkVEX0RFVklDRVMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICByZXR1cm4g
U2ltdWxhdGVkRGV2aWNlTWFuYWdlci5JTklUSUFMSVpFRF9ERVZJQ0VTCiAKQEAgLTM2NSw2ICsz
NjUsNyBAQCBjbGFzcyBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIGRl
YWRsaW5lID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CiAgICAgICAgIGZvciBkZXZpY2UgaW4gU2lt
dWxhdGVkRGV2aWNlTWFuYWdlci5JTklUSUFMSVpFRF9ERVZJQ0VTOgogICAgICAgICAgICAgU2lt
dWxhdGVkRGV2aWNlTWFuYWdlci5fd2FpdF91bnRpbF9kZXZpY2VfaW5fc3RhdGUoZGV2aWNlLCBT
aW11bGF0ZWREZXZpY2UuRGV2aWNlU3RhdGUuQk9PVEVELCBkZWFkbGluZSkKKyAgICAgICAgU2lt
dWxhdGVkRGV2aWNlTWFuYWdlci53YWl0X3VudGlsX2RhdGFfbWlncmF0aW9uX2lzX2RvbmUoaG9z
dCwgZGVhZGxpbmUgLSB0aW1lLnRpbWUoKSkKIAogICAgICAgICByZXR1cm4gU2ltdWxhdGVkRGV2
aWNlTWFuYWdlci5JTklUSUFMSVpFRF9ERVZJQ0VTCiAKQEAgLTM5NCw3ICszOTUsNyBAQCBjbGFz
cyBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBtaW4obWF4
X3N1cHBvcnRlZF9zaW11bGF0b3JzX2xvY2FsbHksIG1heF9zdXBwb3J0ZWRfc2ltdWxhdG9yc19m
b3JfaGFyZHdhcmUpCiAKICAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIHN3YXAoZGV2aWNlLCBy
ZXF1ZXN0LCBob3N0PVN5c3RlbUhvc3QoKSwgbmFtZV9iYXNlPSdNYW5hZ2VkJywgdGltZW91dD02
MCk6CisgICAgZGVmIHN3YXAoZGV2aWNlLCByZXF1ZXN0LCBob3N0PVN5c3RlbUhvc3QoKSwgbmFt
ZV9iYXNlPSdNYW5hZ2VkJywgdGltZW91dD0xODApOgogICAgICAgICBpZiBTaW11bGF0ZWREZXZp
Y2VNYW5hZ2VyLklOSVRJQUxJWkVEX0RFVklDRVMgaXMgTm9uZToKICAgICAgICAgICAgIHJhaXNl
IFJ1bnRpbWVFcnJvcignQ2Fubm90IHN3YXAgd2hlbiB0aGVyZSBhcmUgbm8gaW5pdGlhbGl6ZWQg
ZGV2aWNlcycpCiAgICAgICAgIGlmIGRldmljZSBub3QgaW4gU2ltdWxhdGVkRGV2aWNlTWFuYWdl
ci5JTklUSUFMSVpFRF9ERVZJQ0VTOgpAQCAtNDE1LDYgKzQxNiwxNyBAQCBjbGFzcyBTaW11bGF0
ZWREZXZpY2VNYW5hZ2VyKG9iamVjdCk6CiAKICAgICAgICAgZGVhZGxpbmUgPSB0aW1lLnRpbWUo
KSArIHRpbWVvdXQKICAgICAgICAgU2ltdWxhdGVkRGV2aWNlTWFuYWdlci5fd2FpdF91bnRpbF9k
ZXZpY2VfaW5fc3RhdGUoZGV2aWNlLCBTaW11bGF0ZWREZXZpY2UuRGV2aWNlU3RhdGUuQk9PVEVE
LCBkZWFkbGluZSkKKyAgICAgICAgU2ltdWxhdGVkRGV2aWNlTWFuYWdlci53YWl0X3VudGlsX2Rh
dGFfbWlncmF0aW9uX2lzX2RvbmUoaG9zdCwgZGVhZGxpbmUgLSB0aW1lLnRpbWUoKSkKKworICAg
IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgd2FpdF91bnRpbF9kYXRhX21pZ3JhdGlvbl9pc19kb25l
KGhvc3QsIHRpbWVvdXQ9MTgwKToKKyAgICAgICAgIyBUaGUgZXhpc3RlbmNlIG9mIGEgZGF0YW1p
Z3JhdG9yIHByb2Nlc3MgbWVhbnMgdGhhdCBzaW11bGF0b3JzIGFyZSBzdGlsbCBib290aW5nLgor
ICAgICAgICBkZWFkbGluZSA9IHRpbWUudGltZSgpICsgdGltZW91dAorICAgICAgICBfbG9nLmRl
YnVnKCdXYWl0aW5nIHVudGlsIG5vIGNvbS5hcHBsZS5kYXRhbWlncmF0b3IgcHJvY2Vzc2VzIGFy
ZSBmb3VuZCcpCisgICAgICAgIHdoaWxlIGhvc3QuZXhlY3V0aXZlLnJ1bm5pbmdfcGlkcyhsYW1i
ZGEgcHJvY2Vzc19uYW1lOiAnY29tLmFwcGxlLmRhdGFtaWdyYXRvcicgaW4gcHJvY2Vzc19uYW1l
KToKKyAgICAgICAgICAgIGlmIHRpbWUudGltZSgpID4gZGVhZGxpbmU6CisgICAgICAgICAgICAg
ICAgcmFpc2UgUnVudGltZUVycm9yKCdUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3IgZGF0YSBt
aWdyYXRpb24nKQorICAgICAgICAgICAgdGltZS5zbGVlcCgxKQogCiAgICAgQHN0YXRpY21ldGhv
ZAogICAgIGRlZiB0ZWFyX2Rvd24oaG9zdD1TeXN0ZW1Ib3N0KCksIHRpbWVvdXQ9NjApOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339734</attachid>
            <date>2018-05-07 11:26:10 -0700</date>
            <delta_ts>2018-05-07 13:08:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185315-20180507112609.patch</filename>
            <type>text/plain</type>
            <size>5762</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMTQ0NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDE4LTA1LTA3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBDaGVjayBmb3IgY29tLmFwcGxlLmRhdGFtaWdyYXRvciBiZWZvcmUgZGVj
bGFyaW5nIHNpbXVsYXRvcnMgYm9vdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODUzMTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM5OTg2MjYx
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKHdhaXRVbnRpbFByb2Nlc3NOb3RSdW5uaW5nKTog
V2FpdCB1bnRpbCBhIHByb2Nlc3MgaXMgbm90IGZvdW5kLgorICAgICAgICAocmVsYXVuY2hJT1NT
aW11bGF0b3IpOiBXYWl0IHVudGlsIGNvbS5hcHBsZS5kYXRhbWlncmF0b3Igc3RvcHMgcnVubmlu
ZyB0byBkZWNsYXJlCisgICAgICAgIGEgc2ltdWxhdG9yIGJvb3RlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHk6CisgICAgICAgIChN
b2NrRXhlY3V0aXZlMi5fX2luaXRfXyk6IERlZmluZSBfcnVubmluZ19waWRzLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdGVkX2RldmljZS5weToKKyAgICAgICAgKFNp
bXVsYXRlZERldmljZU1hbmFnZXIuaW5pdGlhbGl6ZV9kZXZpY2VzKTogQ2FsbCB3YWl0X3VudGls
X2RhdGFfbWlncmF0aW9uX2lzX2RvbmUgYmVmb3JlCisgICAgICAgIGRlY2xhcmluZyB0aGF0IGRl
dmljZXMgaGF2ZSBiZWVuIGJvb3RlZCwgaW5jcmVhc2UgdGhlIHRpbWVvdXQgc2luY2UgZGF0YSBt
aWdyYXRpb24gd2lsbCBmcmVxdWVudGx5CisgICAgICAgIHRha2UgbG9uZ2VyIHRoYW4gNjAgc2Vj
b25kcywgZXNwZWNpYWxseSB3aXRoIG11bHRpcGxlIHNpbXVsYXRvcnMgYm9vdGluZy4KKyAgICAg
ICAgKFNpbXVsYXRlZERldmljZU1hbmFnZXIuc3dhcCk6IERpdHRvLgorICAgICAgICAoU2ltdWxh
dGVkRGV2aWNlTWFuYWdlcik6CisgICAgICAgIChTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLndhaXRf
dW50aWxfZGF0YV9taWdyYXRpb25faXNfZG9uZSk6IFdhaXQgdW50aWwgdGhlcmUgYXJlIG5vIGNv
bS5hcHBsZS5kYXRhbWlncmF0b3IKKyAgICAgICAgcHJvY2Vzc2VzIHJ1bm5pbmcuCisKIDIwMTgt
MDUtMDcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3Rvcjogb3B0IG91dCBvZiBwcm9jZXNzIHN3YXAgb24gbmF2aWdhdGlvbiBpZiBhIFdlYiBJbnNw
ZWN0b3IgZnJvbnRlbmQgaXMgY29ubmVjdGVkCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCShyZXZpc2lv
biAyMzE0NDYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtpbmcgY29weSkK
QEAgLTI0NTEsNiArMjQ1MSwxNCBAQCBzdWIgd2FpdFVudGlsSU9TU2ltdWxhdG9yRGV2aWNlSXNJ
blN0YXRlCiAgICAgfQogfQogCitzdWIgd2FpdFVudGlsUHJvY2Vzc05vdFJ1bm5pbmcoJCkKK3sK
KyAgICBteSAoJHByb2Nlc3MpID0gQF87CisgICAgd2hpbGUgKHN5c3RlbSgiL2Jpbi9wcyAtZW8g
cGlkLGNvbW0gfCAvdXNyL2Jpbi9ncmVwICckcHJvY2Vzc1wkJyIpID09IDApIHsKKyAgICAgICAg
dXNsZWVwKDUwMCAqIDEwMDApOworICAgIH0KK30KKwogc3ViIHNodXREb3duSU9TU2ltdWxhdG9y
RGV2aWNlKCQpCiB7CiAgICAgbXkgKCRzaW11bGF0b3JEZXZpY2UpID0gQF87CkBAIC0yNDc2LDYg
KzI0ODQsNyBAQCBzdWIgcmVsYXVuY2hJT1NTaW11bGF0b3IoJCkKICAgICBzeXN0ZW0oIm9wZW4i
LCAiLWEiLCAkaW9zU2ltdWxhdG9yUGF0aCwgIi0tYXJncyIsICItQ3VycmVudERldmljZVVESUQi
LCAkc2ltdWxhdGVkRGV2aWNlLT57VURJRH0pID09IDAgb3IgZGllICJGYWlsZWQgdG8gb3BlbiAk
aW9zU2ltdWxhdG9yUGF0aDogJCEiOyAKIAogICAgIHdhaXRVbnRpbElPU1NpbXVsYXRvckRldmlj
ZUlzSW5TdGF0ZSgkc2ltdWxhdGVkRGV2aWNlLT57VURJRH0sIFNJTVVMQVRPUl9ERVZJQ0VfU1RB
VEVfQk9PVEVEKTsKKyAgICB3YWl0VW50aWxQcm9jZXNzTm90UnVubmluZygiY29tLmFwcGxlLmRh
dGFtaWdyYXRvciIpOwogfQogCiBzdWIgcXVpdElPU1NpbXVsYXRvcig7JCkKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21v
Y2sucHkJKHJldmlzaW9uIDIzMTQ0NikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9leGVjdXRpdmVfbW9jay5weQkod29ya2luZyBjb3B5KQpAQCAtMTc4LDYgKzE3OCw3
IEBAIGNsYXNzIE1vY2tFeGVjdXRpdmUyKE1vY2tFeGVjdXRpdmUpOgogICAgICAgICBzZWxmLl9z
dGRlcnIgPSBzdGRlcnIKICAgICAgICAgc2VsZi5fZXhpdF9jb2RlID0gZXhpdF9jb2RlCiAgICAg
ICAgIHNlbGYuX2V4Y2VwdGlvbiA9IGV4Y2VwdGlvbgorICAgICAgICBzZWxmLl9ydW5uaW5nX3Bp
ZHMgPSB7J3Rlc3Qtd2Via2l0cHknOiBvcy5nZXRwaWQoKX0KICAgICAgICAgc2VsZi5fcnVuX2Nv
bW1hbmRfZm4gPSBydW5fY29tbWFuZF9mbgogICAgICAgICBzZWxmLmNhbGxzID0gW10KIApJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdGVkX2RldmljZS5w
eQkocmV2aXNpb24gMjMxNDQ2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11
bGF0ZWRfZGV2aWNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMTQsNyArMzE0LDcgQEAgY2xhc3Mg
U2ltdWxhdGVkRGV2aWNlTWFuYWdlcihvYmplY3QpOgogICAgICAgICBTaW11bGF0ZWREZXZpY2VN
YW5hZ2VyLklOSVRJQUxJWkVEX0RFVklDRVMuYXBwZW5kKGRldmljZSkKIAogICAgIEBzdGF0aWNt
ZXRob2QKLSAgICBkZWYgaW5pdGlhbGl6ZV9kZXZpY2VzKHJlcXVlc3RzLCBob3N0PVN5c3RlbUhv
c3QoKSwgbmFtZV9iYXNlPSdNYW5hZ2VkJywgc2ltdWxhdG9yX3VpPVRydWUsIHRpbWVvdXQ9NjAs
ICoqa3dhcmdzKToKKyAgICBkZWYgaW5pdGlhbGl6ZV9kZXZpY2VzKHJlcXVlc3RzLCBob3N0PVN5
c3RlbUhvc3QoKSwgbmFtZV9iYXNlPSdNYW5hZ2VkJywgc2ltdWxhdG9yX3VpPVRydWUsIHRpbWVv
dXQ9MTgwLCAqKmt3YXJncyk6CiAgICAgICAgIGlmIFNpbXVsYXRlZERldmljZU1hbmFnZXIuSU5J
VElBTElaRURfREVWSUNFUyBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHJldHVybiBTaW11bGF0
ZWREZXZpY2VNYW5hZ2VyLklOSVRJQUxJWkVEX0RFVklDRVMKIApAQCAtMzY1LDYgKzM2NSw3IEBA
IGNsYXNzIFNpbXVsYXRlZERldmljZU1hbmFnZXIob2JqZWN0KToKICAgICAgICAgZGVhZGxpbmUg
PSB0aW1lLnRpbWUoKSArIHRpbWVvdXQKICAgICAgICAgZm9yIGRldmljZSBpbiBTaW11bGF0ZWRE
ZXZpY2VNYW5hZ2VyLklOSVRJQUxJWkVEX0RFVklDRVM6CiAgICAgICAgICAgICBTaW11bGF0ZWRE
ZXZpY2VNYW5hZ2VyLl93YWl0X3VudGlsX2RldmljZV9pbl9zdGF0ZShkZXZpY2UsIFNpbXVsYXRl
ZERldmljZS5EZXZpY2VTdGF0ZS5CT09URUQsIGRlYWRsaW5lKQorICAgICAgICBTaW11bGF0ZWRE
ZXZpY2VNYW5hZ2VyLndhaXRfdW50aWxfZGF0YV9taWdyYXRpb25faXNfZG9uZShob3N0LCBtYXgo
MCwgZGVhZGxpbmUgLSB0aW1lLnRpbWUoKSkpCiAKICAgICAgICAgcmV0dXJuIFNpbXVsYXRlZERl
dmljZU1hbmFnZXIuSU5JVElBTElaRURfREVWSUNFUwogCkBAIC0zOTQsNyArMzk1LDcgQEAgY2xh
c3MgU2ltdWxhdGVkRGV2aWNlTWFuYWdlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gbWluKG1h
eF9zdXBwb3J0ZWRfc2ltdWxhdG9yc19sb2NhbGx5LCBtYXhfc3VwcG9ydGVkX3NpbXVsYXRvcnNf
Zm9yX2hhcmR3YXJlKQogCiAgICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBzd2FwKGRldmljZSwg
cmVxdWVzdCwgaG9zdD1TeXN0ZW1Ib3N0KCksIG5hbWVfYmFzZT0nTWFuYWdlZCcsIHRpbWVvdXQ9
NjApOgorICAgIGRlZiBzd2FwKGRldmljZSwgcmVxdWVzdCwgaG9zdD1TeXN0ZW1Ib3N0KCksIG5h
bWVfYmFzZT0nTWFuYWdlZCcsIHRpbWVvdXQ9MTgwKToKICAgICAgICAgaWYgU2ltdWxhdGVkRGV2
aWNlTWFuYWdlci5JTklUSUFMSVpFRF9ERVZJQ0VTIGlzIE5vbmU6CiAgICAgICAgICAgICByYWlz
ZSBSdW50aW1lRXJyb3IoJ0Nhbm5vdCBzd2FwIHdoZW4gdGhlcmUgYXJlIG5vIGluaXRpYWxpemVk
IGRldmljZXMnKQogICAgICAgICBpZiBkZXZpY2Ugbm90IGluIFNpbXVsYXRlZERldmljZU1hbmFn
ZXIuSU5JVElBTElaRURfREVWSUNFUzoKQEAgLTQxNSw2ICs0MTYsMTcgQEAgY2xhc3MgU2ltdWxh
dGVkRGV2aWNlTWFuYWdlcihvYmplY3QpOgogCiAgICAgICAgIGRlYWRsaW5lID0gdGltZS50aW1l
KCkgKyB0aW1lb3V0CiAgICAgICAgIFNpbXVsYXRlZERldmljZU1hbmFnZXIuX3dhaXRfdW50aWxf
ZGV2aWNlX2luX3N0YXRlKGRldmljZSwgU2ltdWxhdGVkRGV2aWNlLkRldmljZVN0YXRlLkJPT1RF
RCwgZGVhZGxpbmUpCisgICAgICAgIFNpbXVsYXRlZERldmljZU1hbmFnZXIud2FpdF91bnRpbF9k
YXRhX21pZ3JhdGlvbl9pc19kb25lKGhvc3QsIG1heCgwLCBkZWFkbGluZSAtIHRpbWUudGltZSgp
KSkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgd2FpdF91bnRpbF9kYXRhX21pZ3JhdGlv
bl9pc19kb25lKGhvc3QsIHRpbWVvdXQ9MTgwKToKKyAgICAgICAgIyBUaGUgZXhpc3RlbmNlIG9m
IGEgZGF0YW1pZ3JhdG9yIHByb2Nlc3MgbWVhbnMgdGhhdCBzaW11bGF0b3JzIGFyZSBzdGlsbCBi
b290aW5nLgorICAgICAgICBkZWFkbGluZSA9IHRpbWUudGltZSgpICsgdGltZW91dAorICAgICAg
ICBfbG9nLmRlYnVnKCdXYWl0aW5nIHVudGlsIG5vIGNvbS5hcHBsZS5kYXRhbWlncmF0b3IgcHJv
Y2Vzc2VzIGFyZSBmb3VuZCcpCisgICAgICAgIHdoaWxlIGhvc3QuZXhlY3V0aXZlLnJ1bm5pbmdf
cGlkcyhsYW1iZGEgcHJvY2Vzc19uYW1lOiAnY29tLmFwcGxlLmRhdGFtaWdyYXRvcicgaW4gcHJv
Y2Vzc19uYW1lKToKKyAgICAgICAgICAgIGlmIHRpbWUudGltZSgpID4gZGVhZGxpbmU6CisgICAg
ICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBm
b3IgZGF0YSBtaWdyYXRpb24nKQorICAgICAgICAgICAgdGltZS5zbGVlcCgxKQogCiAgICAgQHN0
YXRpY21ldGhvZAogICAgIGRlZiB0ZWFyX2Rvd24oaG9zdD1TeXN0ZW1Ib3N0KCksIHRpbWVvdXQ9
NjApOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>