<?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>189822</bug_id>
          
          <creation_ts>2018-09-21 02:14:50 -0700</creation_ts>
          <short_desc>Apache can return a corrupt manifest file while ManifestGenerator::store is running</short_desc>
          <delta_ts>2018-09-26 23:30:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1461766</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-09-21 02:14:50 -0700</bug_when>
    <thetext>Generating manifest.json should be transactional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1461768</commentid>
    <comment_count>1</comment_count>
      <attachid>350341</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-09-21 02:23:35 -0700</bug_when>
    <thetext>Created attachment 350341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462297</commentid>
    <comment_count>2</comment_count>
      <attachid>350341</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-21 22:47:51 -0700</bug_when>
    <thetext>Comment on attachment 350341
Patch

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

r-. There are enough problems in this patch that I&apos;d like to see another iteration.

&gt; Websites/perf.webkit.org/ChangeLog:3
&gt; +        Updating file on perf-safari should be transactional between php and apache.

We shouldn&apos;t mention perf-safari. I&apos;ve updated the bug title. Please update the change log as well.

&gt; Websites/perf.webkit.org/public/api/measurement-set.php:41
&gt; +    $json = NULL;

Please declare these variables inside the loop.
Also, there is no point in declaring $json.

&gt; Websites/perf.webkit.org/public/api/measurement-set.php:55
&gt; +        $content[&apos;elapsedTime&apos;] = $elapsed_time;
&gt; +        $json = json_encode($content);
&gt; +        generate_json_data_conditionally($cache_filename, $json, &apos;elapsedTime&apos;);

I don&apos;t think we want to rely on elapsedTime being the last item like this.
Pass in $elapsed_time as the last argument to generate_json_data_conditionally instead:
generate_json_data_conditionally($cache_filename, $content, $elapsed_time);
It&apos;s better to invoke json_encode in generate_json_data_conditionally instead.
Also, we should probably call this generate_json_data_if_needed to match the naming convention used elsewhere in WebKit.

&gt; Websites/perf.webkit.org/public/include/db.php:65
&gt; +    $target_file_path = config_path(&apos;dataDirectory&apos;, $filename);
&gt; +    $temp_file_path = tempnam(config_path(&apos;dataDirectory&apos;, &apos;&apos;), $filename . &apos;-temp-&apos;);

Why do we need to make a temporary file before comparing the content?

&gt; Websites/perf.webkit.org/public/include/json-header.php:17
&gt; +function set_success(&amp;$details = array()) {

This should be set_successful instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462896</commentid>
    <comment_count>3</comment_count>
      <attachid>350341</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-09-24 14:43:10 -0700</bug_when>
    <thetext>Comment on attachment 350341
Patch

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

&gt;&gt; Websites/perf.webkit.org/public/api/measurement-set.php:55
&gt;&gt; +        generate_json_data_conditionally($cache_filename, $json, &apos;elapsedTime&apos;);
&gt; 
&gt; I don&apos;t think we want to rely on elapsedTime being the last item like this.
&gt; Pass in $elapsed_time as the last argument to generate_json_data_conditionally instead:
&gt; generate_json_data_conditionally($cache_filename, $content, $elapsed_time);
&gt; It&apos;s better to invoke json_encode in generate_json_data_conditionally instead.
&gt; Also, we should probably call this generate_json_data_if_needed to match the naming convention used elsewhere in WebKit.

If do so, we need to make generate_json_date_conditinally returns an encoded json to void calling json_encode twice as it is needed in Lin 58.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462921</commentid>
    <comment_count>4</comment_count>
      <attachid>350341</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-24 15:21:53 -0700</bug_when>
    <thetext>Comment on attachment 350341
Patch

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

&gt;&gt;&gt; Websites/perf.webkit.org/public/api/measurement-set.php:55
&gt;&gt;&gt; +        generate_json_data_conditionally($cache_filename, $json, &apos;elapsedTime&apos;);
&gt;&gt; 
&gt;&gt; I don&apos;t think we want to rely on elapsedTime being the last item like this.
&gt;&gt; Pass in $elapsed_time as the last argument to generate_json_data_conditionally instead:
&gt;&gt; generate_json_data_conditionally($cache_filename, $content, $elapsed_time);
&gt;&gt; It&apos;s better to invoke json_encode in generate_json_data_conditionally instead.
&gt;&gt; Also, we should probably call this generate_json_data_if_needed to match the naming convention used elsewhere in WebKit.
&gt; 
&gt; If do so, we need to make generate_json_date_conditinally returns an encoded json to void calling json_encode twice as it is needed in Lin 58.

Yeah, that&apos;s fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463096</commentid>
    <comment_count>5</comment_count>
      <attachid>350736</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-09-24 21:39:42 -0700</bug_when>
    <thetext>Created attachment 350736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463100</commentid>
    <comment_count>6</comment_count>
      <attachid>350736</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-24 21:50:52 -0700</bug_when>
    <thetext>Comment on attachment 350736
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:8
&gt; +        Updating a file on should be transactional between php and apache.

Updating a file *on* what??

&gt; Websites/perf.webkit.org/ChangeLog:11
&gt; +        * public/api/measurement-set.php: Adapted invocation of &apos;generate_json_date_with_elapsed_time_if needed&apos;.

Nit: Somehow the function name has a space instead of _ between if and needed.

&gt; Websites/perf.webkit.org/ChangeLog:12
&gt; +        * public/api/runs.php: Adapted invocation of &apos;generate_json_date_with_elapsed_time_if needed&apos;.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463905</commentid>
    <comment_count>7</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-09-26 23:30:37 -0700</bug_when>
    <thetext>Landed in r236454.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350341</attachid>
            <date>2018-09-21 02:23:35 -0700</date>
            <delta_ts>2018-09-24 21:39:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189822-20180921022335.patch</filename>
            <type>text/plain</type>
            <size>8577</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MzA3CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlMGVhYzVmNjEyNWIyMzdhYzhkZGQ3MjM4ODlmYjNlNGMwMTAxOTQwLi42YzM3ZTNlZTVm
Yzg3MzYyZTJiNWM2OTlhZTM2OWYzNTA4NTM3NjkyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOC0wOS0yMSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGluZyBmaWxlIG9uIHBlcmYtc2FmYXJpIHNob3Vs
ZCBiZSB0cmFuc2FjdGlvbmFsIGJldHdlZW4gcGhwIGFuZCBhcGFjaGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk4MjIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGluZyBmaWxlIG9uIHBlcmYt
c2FmYXJpIHNob3VsZCBiZSB0cmFuc2FjdGlvbmFsIGJldHdlZW4gcGhwIGFuZCBhcGFjaGUuCisg
ICAgICAgIE90aGVyd2lzZSwgcGFydGlhbCBjb250ZW50IG1heSBiZSBzZXJ2ZWQuCisKKyAgICAg
ICAgKiBwdWJsaWMvYXBpL21lYXN1cmVtZW50LXNldC5waHA6IEFkZGVkICdlbGFwc2VkVGltZScg
dG8gdGhlIGVuZCBvZiBqc29uLgorICAgICAgICAqIHB1YmxpYy9hcGkvcnVucy5waHA6IEFkZGVk
ICdlbGFwc2VkVGltZScgdG8gdGhlIGVuZCBvZiBqc29uLgorICAgICAgICAqIHB1YmxpYy9pbmNs
dWRlL2RiLnBocDogTWFrZSBjcmVhdGluZyBmaWxlIHRyYW5zYWN0aW9uYWx5IGJ5IHRha2luZyBh
ZHZhbnRhZ2Ugb2YKKyAgICAgICAgJ21vdmUvcmVuYW1lJyBvcGVyYXRpb24gaXMgYXRvbWljIGlu
IE9TLgorICAgICAgICBBZGRlZCBsb2dpYyB0byBhdm9pZCBvdmVyd3JpdGluZyBmaWxlIGlmIGFs
bCBjb250ZW50IGV4Y2VwdCBzcGVjaWZpZWQgZmlsZWQgYXJlIGlkZW50aWNhbC4KKyAgICAgICAg
KiBwdWJsaWMvaW5jbHVkZS9qc29uLWhlYWRlci5waHA6IEFkZGVkIGEgaGVscGVyIGZ1bmN0aW9u
IHRoYXQgYWRkZWQgJ3N0YXR1cycgYnV0IGRvZXMgbm90CisgICAgICAgIGNvbnZlcnQgY29udGVu
dCB0byBqc29uLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5w
aHA6IEFkZGVkICdlbGFwc2VkVGltZScgdG8gdGhlIGVuZCBvZiBqc29uLgorICAgICAgICAqIHB1
YmxpYy9zaGFyZWQvc3RhdGlzdGljcy5qczogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBsb2dnaW5nLgor
ICAgICAgICAoU3RhdGlzdGljcy5uZXcuc2FtcGxlTWVhbkFuZFZhcmlhbmNlRnJvbU11bHRpcGxl
U2FtcGxlcyk6CisKIDIwMTgtMDgtMjIgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+
CiAKICAgICAgICAgU2hvdyB0LXRlc3QgcmVzdWx0cyBiYXNlZCBvbiBpbmRpdmlkdWFsIG1lYXN1
cmVtZW50cyB0byBhbmFseXNpcyB0YXNrIHBhZ2UuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2FwaS9tZWFzdXJlbWVudC1zZXQucGhwIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9hcGkvbWVhc3VyZW1lbnQtc2V0LnBocAppbmRleCA1NzliYjUy
M2M0NWUzMzRjOTQ1ZGUyNjg5ZWZlZWQ4ZDZhNzFkNmYwLi44MmM4YWFmNGU0YWNjN2MzMjI1YjNj
ZmNmMDJlZjY5MjM1MGU3ODAyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2FwaS9tZWFzdXJlbWVudC1zZXQucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvYXBpL21lYXN1cmVtZW50LXNldC5waHAKQEAgLTM3LDE4ICszNywyMiBAQCBm
dW5jdGlvbiBtYWluKCkgewogICAgIH0KIAogICAgICRjbHVzdGVyX2NvdW50ID0gMDsKKyAgICAk
ZWxhcHNlZF90aW1lID0gTlVMTDsKKyAgICAkanNvbiA9IE5VTEw7CiAgICAgd2hpbGUgKCEkZmV0
Y2hlci0+YXRfZW5kKCkpIHsKICAgICAgICAgJGNvbnRlbnQgPSAkZmV0Y2hlci0+ZmV0Y2hfbmV4
dF9jbHVzdGVyKCk7CiAgICAgICAgICRjbHVzdGVyX2NvdW50Kys7CiAgICAgICAgIGlmICgkZmV0
Y2hlci0+YXRfZW5kKCkpIHsKICAgICAgICAgICAgICRjYWNoZV9maWxlbmFtZSA9ICJtZWFzdXJl
bWVudC1zZXQtJHBsYXRmb3JtX2lkLSRtZXRyaWNfaWQuanNvbiI7CiAgICAgICAgICAgICAkY29u
dGVudFsnY2x1c3RlckNvdW50J10gPSAkY2x1c3Rlcl9jb3VudDsKLSAgICAgICAgICAgICRjb250
ZW50WydlbGFwc2VkVGltZSddID0gKG1pY3JvdGltZSh0cnVlKSAtICRwcm9ncmFtX3N0YXJ0X3Rp
bWUpICogMTAwMDsKKyAgICAgICAgICAgICRlbGFwc2VkX3RpbWUgPSAobWljcm90aW1lKHRydWUp
IC0gJHByb2dyYW1fc3RhcnRfdGltZSkgKiAxMDAwOwogICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICRjYWNoZV9maWxlbmFtZSA9ICJtZWFzdXJlbWVudC1zZXQtJHBsYXRmb3JtX2lkLSRtZXRy
aWNfaWQteyRjb250ZW50WydlbmRUaW1lJ119Lmpzb24iOwogCi0gICAgICAgICRqc29uID0gc3Vj
Y2Vzc19qc29uKCRjb250ZW50KTsKLSAgICAgICAgZ2VuZXJhdGVfZGF0YV9maWxlKCRjYWNoZV9m
aWxlbmFtZSwgJGpzb24pOworICAgICAgICBzZXRfc3VjY2VzcygkY29udGVudCk7CisgICAgICAg
ICRjb250ZW50WydlbGFwc2VkVGltZSddID0gJGVsYXBzZWRfdGltZTsKKyAgICAgICAgJGpzb24g
PSBqc29uX2VuY29kZSgkY29udGVudCk7CisgICAgICAgIGdlbmVyYXRlX2pzb25fZGF0YV9jb25k
aXRpb25hbGx5KCRjYWNoZV9maWxlbmFtZSwgJGpzb24sICdlbGFwc2VkVGltZScpOwogICAgIH0K
IAogICAgIGVjaG8gJGpzb247CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2FwaS9ydW5zLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBp
L3J1bnMucGhwCmluZGV4IGI2NThlMmZiZGUzMTQzNzIwMTk5ZDY2ZTNjNGY2ZTViZTBiODAxNTAu
Ljk2NjQ1MTJlZWVkMmU4MDUxYzkwNmVkZjRlZjNjYWEwYzU1MDY2MjUgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3J1bnMucGhwCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3J1bnMucGhwCkBAIC0zOSw5ICszOSwxMSBAQCBm
dW5jdGlvbiBtYWluKCRwYXRoKSB7CiAgICAgZm9yZWFjaCAoJGNvbmZpZ19yb3dzIGFzICRjb25m
aWcpCiAgICAgICAgICRnZW5lcmF0b3ItPmZldGNoX3J1bnMoJGNvbmZpZ1snY29uZmlnX3R5cGUn
XSwgJGNvbmZpZ1snY29uZmlnX2lkJ10sICRjb25maWdbJ2NvbmZpZ19ydW5zX2xhc3RfbW9kaWZp
ZWQnXSk7CiAKLSAgICAkY29udGVudCA9IHN1Y2Nlc3NfanNvbigkZ2VuZXJhdG9yLT5yZXN1bHRz
KCkpOworICAgICRyZXN1bHRzID0gc2V0X3N1Y2Nlc3MoJGdlbmVyYXRvci0+cmVzdWx0cygpKTsK
KyAgICAkcmVzdWx0c1snZWxhcHNlZFRpbWUnXSA9ICRnZW5lcmF0b3ItPmVsYXBzZWRfdGltZTsK
KyAgICAkY29udGVudCA9IGpzb25fZW5jb2RlKCRyZXN1bHRzKTsKICAgICBpZiAoISR0ZXN0X2dy
b3VwX2lkKQotICAgICAgICBnZW5lcmF0ZV9kYXRhX2ZpbGUoIiRwbGF0Zm9ybV9pZC0kbWV0cmlj
X2lkLmpzb24iLCAkY29udGVudCk7CisgICAgICAgIGdlbmVyYXRlX2pzb25fZGF0YV9jb25kaXRp
b25hbGx5KCIkcGxhdGZvcm1faWQtJG1ldHJpY19pZC5qc29uIiwgJGNvbnRlbnQsICdlbGFwc2Vk
VGltZScpOwogICAgIGVjaG8gJGNvbnRlbnQ7CiB9CiAKQEAgLTUxLDEzICs1MywxNSBAQCBjbGFz
cyBSdW5zR2VuZXJhdG9yIHsKICAgICAgICAgJHRoaXMtPnJlc3VsdHMgPSBhcnJheSgpOwogICAg
ICAgICAkdGhpcy0+bGFzdF9tb2RpZmllZCA9IDA7CiAgICAgICAgICR0aGlzLT5zdGFydF90aW1l
ID0gbWljcm90aW1lKHRydWUpOworICAgICAgICAkdGhpcy0+ZWxhcHNlZF90aW1lID0gTlVMTDsK
ICAgICB9CiAKICAgICBmdW5jdGlvbiByZXN1bHRzKCkgeworICAgICAgICAkdGhpcy0+ZWxhcHNl
ZF90aW1lID0gKG1pY3JvdGltZSh0cnVlKSAtICR0aGlzLT5zdGFydF90aW1lKSAqIDEwMDA7CiAg
ICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucycgPT4gJiR0
aGlzLT5yZXN1bHRzLAotICAgICAgICAgICAgJ2xhc3RNb2RpZmllZCcgPT4gJHRoaXMtPmxhc3Rf
bW9kaWZpZWQsCi0gICAgICAgICAgICAnZWxhcHNlZFRpbWUnID0+IChtaWNyb3RpbWUodHJ1ZSkg
LSAkdGhpcy0+c3RhcnRfdGltZSkgKiAxMDAwKTsKKyAgICAgICAgICAgICdsYXN0TW9kaWZpZWQn
ID0+ICR0aGlzLT5sYXN0X21vZGlmaWVkCisgICAgICAgICk7CiAgICAgfQogCiAgICAgZnVuY3Rp
b24gZmV0Y2hfcnVucygkbmFtZSwgJGNvbmZpZ19pZCwgJGxhc3RfbW9kaWZpZWQpIHsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9kYi5waHAgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvZGIucGhwCmluZGV4IGVkMGUx
ZDhjZjc2ZjE3ZDJlZjZkOTJmYWE3YmMyY2UwZmY3MDE0MjEuLjEyYjYwOWQ0OWNjYTEzYWE4ODky
M2Q2OTBjMGI1NTNkN2M0Y2RjNDUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvaW5jbHVkZS9kYi5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy9pbmNsdWRlL2RiLnBocApAQCAtNDQsMTAgKzQ0LDMxIEBAIGZ1bmN0aW9uIGNvbmZpZ19w
YXRoKCRrZXksICRwYXRoKSB7CiAgICAgcmV0dXJuIENPTkZJR19ESVIgLiAnLycgLiBjb25maWco
JGtleSkgLiAnLycgLiAkcGF0aDsKIH0KIAotZnVuY3Rpb24gZ2VuZXJhdGVfZGF0YV9maWxlKCRm
aWxlbmFtZSwgJGNvbnRlbnQpIHsKK2Z1bmN0aW9uIHNhbWVfdGlsbF9sYXN0X29jY3VycmVuY2Vf
b2Zfc3RyaW5nKCRtYWluX3N0cmluZywgJGNvbXBhcmluZ19zdHJpbmcsICRjb21wYXJlX3RvX2xh
c3RfcG9zaXRpb25fc3RyaW5nKSB7CisgICAgaWYgKCEkY29tcGFyZV90b19sYXN0X3Bvc2l0aW9u
X3N0cmluZykKKyAgICAgICAgcmV0dXJuICFzdHJjbXAoJG1haW5fc3RyaW5nLCAkY29tcGFyaW5n
X3N0cmluZyk7CisKKyAgICAkcG9zaXRpb25faW5fbWFpbl9zdHJpbmcgPSBzdHJycG9zKCRtYWlu
X3N0cmluZywgJGNvbXBhcmVfdG9fbGFzdF9wb3NpdGlvbl9zdHJpbmcpOworICAgICRwb3NpdGlv
bl9pbl9jb21wYXJpbmdfc3RyaW5nID0gc3RycnBvcygkY29tcGFyaW5nX3N0cmluZywgJGNvbXBh
cmVfdG9fbGFzdF9wb3NpdGlvbl9zdHJpbmcpOworICAgIGlmICgkcG9zaXRpb25faW5fbWFpbl9z
dHJpbmcgIT09ICRwb3NpdGlvbl9pbl9jb21wYXJpbmdfc3RyaW5nKQorICAgICAgICByZXR1cm4g
RkFMU0U7CisgICAgaWYgKCRwb3NpdGlvbl9pbl9tYWluX3N0cmluZyA9PT0gRkFMU0UpCisgICAg
ICAgIHJldHVybiAhc3RyY21wKCRtYWluX3N0cmluZywgJGNvbXBhcmluZ19zdHJpbmcpOworICAg
IHJldHVybiAhc3Vic3RyX2NvbXBhcmUoJG1haW5fc3RyaW5nLCAkY29tcGFyaW5nX3N0cmluZywg
MCwgJHBvc2l0aW9uX2luX21haW5fc3RyaW5nKTsKK30KKworZnVuY3Rpb24gZ2VuZXJhdGVfanNv
bl9kYXRhX2NvbmRpdGlvbmFsbHkoJGZpbGVuYW1lLCAkY29udGVudCwgJGNvbXBhcmVfdG9fbGFz
dF9wb3NpdGlvbl9zdHJpbmcgPSBOVUxMKSB7CiAgICAgaWYgKCFhc3NlcnQoY3R5cGVfYWxudW0o
c3RyX3JlcGxhY2UoYXJyYXkoJy0nLCAnXycsICcuJyksICcnLCAkZmlsZW5hbWUpKSkpCiAgICAg
ICAgIHJldHVybiBGQUxTRTsKLSAgICByZXR1cm4gZmlsZV9wdXRfY29udGVudHMoY29uZmlnX3Bh
dGgoJ2RhdGFEaXJlY3RvcnknLCAkZmlsZW5hbWUpLCAkY29udGVudCwgTE9DS19FWCk7CisKKyAg
ICAkdGFyZ2V0X2ZpbGVfcGF0aCA9IGNvbmZpZ19wYXRoKCdkYXRhRGlyZWN0b3J5JywgJGZpbGVu
YW1lKTsKKyAgICAkdGVtcF9maWxlX3BhdGggPSB0ZW1wbmFtKGNvbmZpZ19wYXRoKCdkYXRhRGly
ZWN0b3J5JywgJycpLCAkZmlsZW5hbWUgLiAnLXRlbXAtJyk7CisKKyAgICBpZiAoZmlsZV9leGlz
dHMoJHRhcmdldF9maWxlX3BhdGgpICYmIHNhbWVfdGlsbF9sYXN0X29jY3VycmVuY2Vfb2Zfc3Ry
aW5nKGZpbGVfZ2V0X2NvbnRlbnRzKCR0YXJnZXRfZmlsZV9wYXRoKSwgJGNvbnRlbnQsICRjb21w
YXJlX3RvX2xhc3RfcG9zaXRpb25fc3RyaW5nKSkKKyAgICAgICAgcmV0dXJuIHVubGluaygkdGVt
cF9maWxlX3BhdGgpOworCisgICAgZmlsZV9wdXRfY29udGVudHMoJHRlbXBfZmlsZV9wYXRoLCAk
Y29udGVudCwgTE9DS19FWCk7CisgICAgcmV0dXJuIHJlbmFtZSgkdGVtcF9maWxlX3BhdGgsICR0
YXJnZXRfZmlsZV9wYXRoKTsKIH0KIAogaWYgKGNvbmZpZygnZGVidWcnKSkgewpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2pzb24taGVhZGVyLnBo
cCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9qc29uLWhlYWRlci5w
aHAKaW5kZXggNWY4Y2YxNGNiYzE2OGVmNGRkOTU5MTkzMmUyYzNmNjNhN2Q0YzMyZC4uZjlmMzQ5
MWI2MzMzZjU3NmIzNjk5NmM1NDA0ZjQ2ODgyYjVlNTZmNyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2pzb24taGVhZGVyLnBocAorKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvanNvbi1oZWFkZXIucGhwCkBAIC0x
NCwxMCArMTQsMTQgQEAgZnVuY3Rpb24gZXhpdF93aXRoX2Vycm9yKCRzdGF0dXMsICRkZXRhaWxz
ID0gYXJyYXkoKSkgewogICAgIGV4aXQoMSk7CiB9CiAKLWZ1bmN0aW9uIHN1Y2Nlc3NfanNvbigk
ZGV0YWlscyA9IGFycmF5KCkpIHsKK2Z1bmN0aW9uIHNldF9zdWNjZXNzKCYkZGV0YWlscyA9IGFy
cmF5KCkpIHsKICAgICAkZGV0YWlsc1snc3RhdHVzJ10gPSAnT0snOwogICAgIG1lcmdlX2FkZGl0
aW9uYWxfZGV0YWlscygkZGV0YWlscyk7CisgICAgcmV0dXJuICRkZXRhaWxzOworfQogCitmdW5j
dGlvbiBzdWNjZXNzX2pzb24oJGRldGFpbHMgPSBhcnJheSgpKSB7CisgICAgc2V0X3N1Y2Nlc3Mo
JGRldGFpbHMpOwogICAgIHJldHVybiBqc29uX2VuY29kZSgkZGV0YWlscyk7CiB9CiAKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9tYW5pZmVzdC1n
ZW5lcmF0b3IucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL21h
bmlmZXN0LWdlbmVyYXRvci5waHAKaW5kZXggZTU0MzZlM2RiZDMzZmVkOWVhODNiZmY5NmMzNzcx
NDE5ZTUwMDk3NC4uMzJjZWE0MjFkNGRmYmQxZTQ1ZmRiZGIzYzJiMjFjMTY0NTc3ZmJjMyAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0
LWdlbmVyYXRvci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNs
dWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgTWFuaWZl
c3RHZW5lcmF0b3IgewogICAgIGZ1bmN0aW9uIG1hbmlmZXN0KCkgeyByZXR1cm4gJHRoaXMtPm1h
bmlmZXN0OyB9CiAKICAgICBmdW5jdGlvbiBzdG9yZSgpIHsKLSAgICAgICAgcmV0dXJuIGdlbmVy
YXRlX2RhdGFfZmlsZSgnbWFuaWZlc3QuanNvbicsIGpzb25fZW5jb2RlKCR0aGlzLT5tYW5pZmVz
dCkpOworICAgICAgICByZXR1cm4gZ2VuZXJhdGVfanNvbl9kYXRhX2NvbmRpdGlvbmFsbHkoJ21h
bmlmZXN0Lmpzb24nLCBqc29uX2VuY29kZSgkdGhpcy0+bWFuaWZlc3QpLCAnZWxhcHNlZFRpbWUn
KTsKICAgICB9CiAKICAgICBwcml2YXRlIGZ1bmN0aW9uIHRlc3RzKCkgewpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9zaGFyZWQvc3RhdGlzdGljcy5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvc2hhcmVkL3N0YXRpc3RpY3MuanMKaW5kZXgg
ODcxODQ2YzJkZGY2MWZmYWJhMzhkYmE5MGEwNTkxYzAxNWE5YzExMS4uMzIyOGVhOWI0YjY5ODgx
ZmMyZjE1MWQ0N2M4ZmJkNzhkN2U0NWQ4YyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9zaGFyZWQvc3RhdGlzdGljcy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3NoYXJlZC9zdGF0aXN0aWNzLmpzCkBAIC03Miw3ICs3Miw2IEBAIHZh
ciBTdGF0aXN0aWNzID0gbmV3IChmdW5jdGlvbiAoKSB7CiAgICAgICAgIGxldCBzdW0gPSAwOwog
ICAgICAgICBsZXQgc3F1YXJlU3VtID0gMDsKICAgICAgICAgbGV0IHNpemUgPSAwOwotICAgICAg
ICBjb25zb2xlLmxvZyhzYW1wbGVzKTsKICAgICAgICAgZm9yIChjb25zdCBzYW1wbGUgb2Ygc2Ft
cGxlcykgewogICAgICAgICAgICAgc3VtICs9IHNhbXBsZS5zdW07CiAgICAgICAgICAgICBzcXVh
cmVTdW0gKz0gc2FtcGxlLnNxdWFyZVN1bTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350736</attachid>
            <date>2018-09-24 21:39:42 -0700</date>
            <delta_ts>2018-09-24 21:50:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189822-20180924213941.patch</filename>
            <type>text/plain</type>
            <size>10601</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MzA3CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBlMGVhYzVmNjEyNWIyMzdhYzhkZGQ3MjM4ODlmYjNlNGMwMTAxOTQwLi44MTEyMGU4OTk3
ZmRkOWVlMDdjOGFmNDAwNzgzNGRmODQzODQ2ZTkyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0wOS0yMSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBBcGFjaGUgY2FuIHJldHVybiBhIGNvcnJ1cHQgbWFuaWZl
c3QgZmlsZSB3aGlsZSBNYW5pZmVzdEdlbmVyYXRvcjo6c3RvcmUgaXMgcnVubmluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5ODIyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRpbmcgYSBmaWxl
IG9uIHNob3VsZCBiZSB0cmFuc2FjdGlvbmFsIGJldHdlZW4gcGhwIGFuZCBhcGFjaGUuCisgICAg
ICAgIE90aGVyd2lzZSwgcGFydGlhbCBjb250ZW50IG1heSBiZSBzZXJ2ZWQuCisKKyAgICAgICAg
KiBwdWJsaWMvYXBpL21lYXN1cmVtZW50LXNldC5waHA6IEFkYXB0ZWQgaW52b2NhdGlvbiBvZiAn
Z2VuZXJhdGVfanNvbl9kYXRlX3dpdGhfZWxhcHNlZF90aW1lX2lmIG5lZWRlZCcuCisgICAgICAg
ICogcHVibGljL2FwaS9ydW5zLnBocDogQWRhcHRlZCBpbnZvY2F0aW9uIG9mICdnZW5lcmF0ZV9q
c29uX2RhdGVfd2l0aF9lbGFwc2VkX3RpbWVfaWYgbmVlZGVkJy4KKyAgICAgICAgKiBwdWJsaWMv
aW5jbHVkZS9kYi5waHA6IE1ha2UgY3JlYXRpbmcgZmlsZSB0cmFuc2FjdGlvbmFseSBieSB0YWtp
bmcgYWR2YW50YWdlIG9mCisgICAgICAgICdtb3ZlL3JlbmFtZScgb3BlcmF0aW9uIGlzIGF0b21p
YyBpbiBPUy4KKyAgICAgICAgQWRkZWQgbG9naWMgdG8gYXZvaWQgb3ZlcndyaXRpbmcgZmlsZSBp
ZiBhbGwgY29udGVudCBleGNlcHQgc3BlY2lmaWVkIGZpbGVkIGFyZSBpZGVudGljYWwuCisgICAg
ICAgICogcHVibGljL2luY2x1ZGUvanNvbi1oZWFkZXIucGhwOiBBZGRlZCBhIGhlbHBlciBmdW5j
dGlvbiB0aGF0IGFkZGVkICdzdGF0dXMnIGJ1dCBkb2VzIG5vdAorICAgICAgICBjb252ZXJ0IGNv
bnRlbnQgdG8ganNvbi4KKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9tYW5pZmVzdC1nZW5lcmF0
b3IucGhwOiBBZGRlZCAnZWxhcHNlZFRpbWUnIHRvIHRoZSBlbmQgb2YganNvbi4KKyAgICAgICAg
KiBwdWJsaWMvc2hhcmVkL3N0YXRpc3RpY3MuanM6IFJlbW92ZWQgdW5uZWNlc3NhcnkgbG9nZ2lu
Zy4KKyAgICAgICAgKFN0YXRpc3RpY3MubmV3LnNhbXBsZU1lYW5BbmRWYXJpYW5jZUZyb21NdWx0
aXBsZVNhbXBsZXMpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMu
anM6IFVwZGF0ZWQgb25lIHVuaXQgdGVzdC4KKwogMjAxOC0wOC0yMiAgRGV3ZWkgWmh1ICA8ZGV3
ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBTaG93IHQtdGVzdCByZXN1bHRzIGJhc2VkIG9u
IGluZGl2aWR1YWwgbWVhc3VyZW1lbnRzIHRvIGFuYWx5c2lzIHRhc2sgcGFnZS4KZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL21lYXN1cmVtZW50LXNldC5w
aHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9tZWFzdXJlbWVudC1zZXQu
cGhwCmluZGV4IDU3OWJiNTIzYzQ1ZTMzNGM5NDVkZTI2ODllZmVlZDhkNmE3MWQ2ZjAuLmRkOTU0
ZjVjMDdlNmM2OWRhOGJhZDRjNzA4NWIwYjU3OWJmMDI5ZmYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL21lYXN1cmVtZW50LXNldC5waHAKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvbWVhc3VyZW1lbnQtc2V0LnBocApAQCAt
MzcsMTggKzM3LDE5IEBAIGZ1bmN0aW9uIG1haW4oKSB7CiAgICAgfQogCiAgICAgJGNsdXN0ZXJf
Y291bnQgPSAwOworICAgICRlbGFwc2VkX3RpbWUgPSBOVUxMOwogICAgIHdoaWxlICghJGZldGNo
ZXItPmF0X2VuZCgpKSB7CiAgICAgICAgICRjb250ZW50ID0gJGZldGNoZXItPmZldGNoX25leHRf
Y2x1c3RlcigpOwogICAgICAgICAkY2x1c3Rlcl9jb3VudCsrOwogICAgICAgICBpZiAoJGZldGNo
ZXItPmF0X2VuZCgpKSB7CiAgICAgICAgICAgICAkY2FjaGVfZmlsZW5hbWUgPSAibWVhc3VyZW1l
bnQtc2V0LSRwbGF0Zm9ybV9pZC0kbWV0cmljX2lkLmpzb24iOwogICAgICAgICAgICAgJGNvbnRl
bnRbJ2NsdXN0ZXJDb3VudCddID0gJGNsdXN0ZXJfY291bnQ7Ci0gICAgICAgICAgICAkY29udGVu
dFsnZWxhcHNlZFRpbWUnXSA9IChtaWNyb3RpbWUodHJ1ZSkgLSAkcHJvZ3JhbV9zdGFydF90aW1l
KSAqIDEwMDA7CisgICAgICAgICAgICAkZWxhcHNlZF90aW1lID0gKG1pY3JvdGltZSh0cnVlKSAt
ICRwcm9ncmFtX3N0YXJ0X3RpbWUpICogMTAwMDsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICAkY2FjaGVfZmlsZW5hbWUgPSAibWVhc3VyZW1lbnQtc2V0LSRwbGF0Zm9ybV9pZC0kbWV0cmlj
X2lkLXskY29udGVudFsnZW5kVGltZSddfS5qc29uIjsKIAotICAgICAgICAkanNvbiA9IHN1Y2Nl
c3NfanNvbigkY29udGVudCk7Ci0gICAgICAgIGdlbmVyYXRlX2RhdGFfZmlsZSgkY2FjaGVfZmls
ZW5hbWUsICRqc29uKTsKKyAgICAgICAgc2V0X3N1Y2Nlc3NmdWwoJGNvbnRlbnQpOworICAgICAg
ICAkanNvbiA9IGdlbmVyYXRlX2pzb25fZGF0YV93aXRoX2VsYXBzZWRfdGltZV9pZl9uZWVkZWQo
JGNhY2hlX2ZpbGVuYW1lLCAkY29udGVudCwgJGVsYXBzZWRfdGltZSk7CiAgICAgfQogCiAgICAg
ZWNobyAkanNvbjsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
YXBpL3J1bnMucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvcnVucy5w
aHAKaW5kZXggYjY1OGUyZmJkZTMxNDM3MjAxOTlkNjZlM2M0ZjZlNWJlMGI4MDE1MC4uYmEwNDRi
NTYxNGNmMzlkNjMxN2ZmODQxZWE5NWQyMWIwMDQyMzVmMCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvcnVucy5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9hcGkvcnVucy5waHAKQEAgLTM5LDkgKzM5LDEzIEBAIGZ1bmN0aW9u
IG1haW4oJHBhdGgpIHsKICAgICBmb3JlYWNoICgkY29uZmlnX3Jvd3MgYXMgJGNvbmZpZykKICAg
ICAgICAgJGdlbmVyYXRvci0+ZmV0Y2hfcnVucygkY29uZmlnWydjb25maWdfdHlwZSddLCAkY29u
ZmlnWydjb25maWdfaWQnXSwgJGNvbmZpZ1snY29uZmlnX3J1bnNfbGFzdF9tb2RpZmllZCddKTsK
IAotICAgICRjb250ZW50ID0gc3VjY2Vzc19qc29uKCRnZW5lcmF0b3ItPnJlc3VsdHMoKSk7Cisg
ICAgJHJlc3VsdHMgPSBzZXRfc3VjY2Vzc2Z1bCgkZ2VuZXJhdG9yLT5yZXN1bHRzKCkpOwogICAg
IGlmICghJHRlc3RfZ3JvdXBfaWQpCi0gICAgICAgIGdlbmVyYXRlX2RhdGFfZmlsZSgiJHBsYXRm
b3JtX2lkLSRtZXRyaWNfaWQuanNvbiIsICRjb250ZW50KTsKKyAgICAgICAgJGNvbnRlbnQgPSBn
ZW5lcmF0ZV9qc29uX2RhdGFfd2l0aF9lbGFwc2VkX3RpbWVfaWZfbmVlZGVkKCIkcGxhdGZvcm1f
aWQtJG1ldHJpY19pZC5qc29uIiwgJHJlc3VsdHMsICAkZ2VuZXJhdG9yLT5lbGFwc2VkX3RpbWUp
OworICAgIGVsc2UgeworICAgICAgICAkcmVzdWx0c1snZWxhcHNlZFRpbWUnXSA9ICRnZW5lcmF0
b3ItPmVsYXBzZWRfdGltZTsKKyAgICAgICAgJGNvbnRlbnQgPSBqc29uX2VuY29kZSgkcmVzdWx0
cyk7CisgICAgfQogICAgIGVjaG8gJGNvbnRlbnQ7CiB9CiAKQEAgLTUxLDEzICs1NSwxNSBAQCBj
bGFzcyBSdW5zR2VuZXJhdG9yIHsKICAgICAgICAgJHRoaXMtPnJlc3VsdHMgPSBhcnJheSgpOwog
ICAgICAgICAkdGhpcy0+bGFzdF9tb2RpZmllZCA9IDA7CiAgICAgICAgICR0aGlzLT5zdGFydF90
aW1lID0gbWljcm90aW1lKHRydWUpOworICAgICAgICAkdGhpcy0+ZWxhcHNlZF90aW1lID0gTlVM
TDsKICAgICB9CiAKICAgICBmdW5jdGlvbiByZXN1bHRzKCkgeworICAgICAgICAkdGhpcy0+ZWxh
cHNlZF90aW1lID0gKG1pY3JvdGltZSh0cnVlKSAtICR0aGlzLT5zdGFydF90aW1lKSAqIDEwMDA7
CiAgICAgICAgIHJldHVybiBhcnJheSgKICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucycgPT4g
JiR0aGlzLT5yZXN1bHRzLAotICAgICAgICAgICAgJ2xhc3RNb2RpZmllZCcgPT4gJHRoaXMtPmxh
c3RfbW9kaWZpZWQsCi0gICAgICAgICAgICAnZWxhcHNlZFRpbWUnID0+IChtaWNyb3RpbWUodHJ1
ZSkgLSAkdGhpcy0+c3RhcnRfdGltZSkgKiAxMDAwKTsKKyAgICAgICAgICAgICdsYXN0TW9kaWZp
ZWQnID0+ICR0aGlzLT5sYXN0X21vZGlmaWVkCisgICAgICAgICk7CiAgICAgfQogCiAgICAgZnVu
Y3Rpb24gZmV0Y2hfcnVucygkbmFtZSwgJGNvbmZpZ19pZCwgJGxhc3RfbW9kaWZpZWQpIHsKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9kYi5waHAg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvZGIucGhwCmluZGV4IGVk
MGUxZDhjZjc2ZjE3ZDJlZjZkOTJmYWE3YmMyY2UwZmY3MDE0MjEuLmFkYTk1ZWRjNzI4MzU3Njdj
MzE1NjAxY2MxMDdiYmQ2ZmYzYmM0NDggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9kYi5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9pbmNsdWRlL2RiLnBocApAQCAtNDQsMTAgKzQ0LDMzIEBAIGZ1bmN0aW9uIGNvbmZp
Z19wYXRoKCRrZXksICRwYXRoKSB7CiAgICAgcmV0dXJuIENPTkZJR19ESVIgLiAnLycgLiBjb25m
aWcoJGtleSkgLiAnLycgLiAkcGF0aDsKIH0KIAotZnVuY3Rpb24gZ2VuZXJhdGVfZGF0YV9maWxl
KCRmaWxlbmFtZSwgJGNvbnRlbnQpIHsKLSAgICBpZiAoIWFzc2VydChjdHlwZV9hbG51bShzdHJf
cmVwbGFjZShhcnJheSgnLScsICdfJywgJy4nKSwgJycsICRmaWxlbmFtZSkpKSkKK2Z1bmN0aW9u
IHNhbWVfdGlsbF9sYXN0X29jY3VycmVuY2Vfb2Zfc3RyaW5nKCRtYWluX3N0cmluZywgJGNvbXBh
cmluZ19zdHJpbmcsICRjb21wYXJlX3RvX2xhc3RfcG9zaXRpb25fc3RyaW5nKSB7CisgICAgaWYg
KCEkY29tcGFyZV90b19sYXN0X3Bvc2l0aW9uX3N0cmluZykKKyAgICAgICAgcmV0dXJuICFzdHJj
bXAoJG1haW5fc3RyaW5nLCAkY29tcGFyaW5nX3N0cmluZyk7CisKKyAgICAkcG9zaXRpb25faW5f
bWFpbl9zdHJpbmcgPSBzdHJycG9zKCRtYWluX3N0cmluZywgJGNvbXBhcmVfdG9fbGFzdF9wb3Np
dGlvbl9zdHJpbmcpOworICAgICRwb3NpdGlvbl9pbl9jb21wYXJpbmdfc3RyaW5nID0gc3RycnBv
cygkY29tcGFyaW5nX3N0cmluZywgJGNvbXBhcmVfdG9fbGFzdF9wb3NpdGlvbl9zdHJpbmcpOwor
ICAgIGlmICgkcG9zaXRpb25faW5fbWFpbl9zdHJpbmcgIT09ICRwb3NpdGlvbl9pbl9jb21wYXJp
bmdfc3RyaW5nKQogICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgcmV0dXJuIGZpbGVfcHV0X2Nv
bnRlbnRzKGNvbmZpZ19wYXRoKCdkYXRhRGlyZWN0b3J5JywgJGZpbGVuYW1lKSwgJGNvbnRlbnQs
IExPQ0tfRVgpOworICAgIGlmICgkcG9zaXRpb25faW5fbWFpbl9zdHJpbmcgPT09IEZBTFNFKQor
ICAgICAgICByZXR1cm4gIXN0cmNtcCgkbWFpbl9zdHJpbmcsICRjb21wYXJpbmdfc3RyaW5nKTsK
KyAgICByZXR1cm4gIXN1YnN0cl9jb21wYXJlKCRtYWluX3N0cmluZywgJGNvbXBhcmluZ19zdHJp
bmcsIDAsICRwb3NpdGlvbl9pbl9tYWluX3N0cmluZyk7Cit9CisKK2Z1bmN0aW9uIGdlbmVyYXRl
X2pzb25fZGF0YV93aXRoX2VsYXBzZWRfdGltZV9pZl9uZWVkZWQoJGZpbGVuYW1lLCAkb2JqZWN0
LCAkZWxhcHNlZF90aW1lKSB7CisgICAgaWYgKCFhc3NlcnQoY3R5cGVfYWxudW0oc3RyX3JlcGxh
Y2UoYXJyYXkoJy0nLCAnXycsICcuJyksICcnLCAkZmlsZW5hbWUpKSkpCisgICAgICAgIHJldHVy
biBOVUxMOworCisgICAgJHRhcmdldF9maWxlX3BhdGggPSBjb25maWdfcGF0aCgnZGF0YURpcmVj
dG9yeScsICRmaWxlbmFtZSk7CisgICAgJG9iamVjdFsnZWxhcHNlZFRpbWUnXSA9ICRlbGFwc2Vk
X3RpbWU7CisgICAgJGNvbnRlbnQgPSBqc29uX2VuY29kZSgkb2JqZWN0KTsKKworICAgIGlmIChm
aWxlX2V4aXN0cygkdGFyZ2V0X2ZpbGVfcGF0aCkgJiYgc2FtZV90aWxsX2xhc3Rfb2NjdXJyZW5j
ZV9vZl9zdHJpbmcoZmlsZV9nZXRfY29udGVudHMoJHRhcmdldF9maWxlX3BhdGgpLCAkY29udGVu
dCwgJ2VsYXBzZWRUaW1lJykpCisgICAgICAgIHJldHVybiAkY29udGVudDsKKworICAgICR0ZW1w
X2ZpbGVfcGF0aCA9IHRlbXBuYW0oY29uZmlnX3BhdGgoJ2RhdGFEaXJlY3RvcnknLCAnJyksICRm
aWxlbmFtZSAuICctdGVtcC0nKTsKKyAgICBmaWxlX3B1dF9jb250ZW50cygkdGVtcF9maWxlX3Bh
dGgsICRjb250ZW50LCBMT0NLX0VYKTsKKyAgICByZXR1cm4gcmVuYW1lKCR0ZW1wX2ZpbGVfcGF0
aCwgJHRhcmdldF9maWxlX3BhdGgpID8gICRjb250ZW50IDogTlVMTDsKIH0KIAogaWYgKGNvbmZp
ZygnZGVidWcnKSkgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9pbmNsdWRlL2pzb24taGVhZGVyLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9qc29uLWhlYWRlci5waHAKaW5kZXggNWY4Y2YxNGNiYzE2OGVmNGRkOTU5MTkz
MmUyYzNmNjNhN2Q0YzMyZC4uYTI3NjQxYzkxOWQ0MjhkYWRiMDM4OGQ2YmFjNDI3NWUyNGRiOGM3
NyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2pz
b24taGVhZGVyLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1
ZGUvanNvbi1oZWFkZXIucGhwCkBAIC0xNCwxMCArMTQsMTQgQEAgZnVuY3Rpb24gZXhpdF93aXRo
X2Vycm9yKCRzdGF0dXMsICRkZXRhaWxzID0gYXJyYXkoKSkgewogICAgIGV4aXQoMSk7CiB9CiAK
LWZ1bmN0aW9uIHN1Y2Nlc3NfanNvbigkZGV0YWlscyA9IGFycmF5KCkpIHsKK2Z1bmN0aW9uIHNl
dF9zdWNjZXNzZnVsKCYkZGV0YWlscyA9IGFycmF5KCkpIHsKICAgICAkZGV0YWlsc1snc3RhdHVz
J10gPSAnT0snOwogICAgIG1lcmdlX2FkZGl0aW9uYWxfZGV0YWlscygkZGV0YWlscyk7CisgICAg
cmV0dXJuICRkZXRhaWxzOworfQogCitmdW5jdGlvbiBzdWNjZXNzX2pzb24oJGRldGFpbHMgPSBh
cnJheSgpKSB7CisgICAgc2V0X3N1Y2Nlc3NmdWwoJGRldGFpbHMpOwogICAgIHJldHVybiBqc29u
X2VuY29kZSgkZGV0YWlscyk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKaW5kZXgg
ZTU0MzZlM2RiZDMzZmVkOWVhODNiZmY5NmMzNzcxNDE5ZTUwMDk3NC4uYmFmZDgyNTE2MTRlNjNm
M2U4NDMxNzU0NzA1NDk0YWNiYTYxNzQxZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAK
QEAgLTksNiArOSw3IEBAIGNsYXNzIE1hbmlmZXN0R2VuZXJhdG9yIHsKIAogICAgIGZ1bmN0aW9u
IF9fY29uc3RydWN0KCRkYikgewogICAgICAgICAkdGhpcy0+ZGIgPSAkZGI7CisgICAgICAgICR0
aGlzLT5lbGFwc2VkX3RpbWUgPSBOVUxMOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIGdlbmVyYXRl
KCkgewpAQCAtNDcsNyArNDgsNyBAQCBjbGFzcyBNYW5pZmVzdEdlbmVyYXRvciB7CiAgICAgICAg
ICAgICAndGVzdEFnZVRvbGVyYW5jZUluSG91cnMnID0+IGNvbmZpZygndGVzdEFnZVRvbGVyYW5j
ZUluSG91cnMnKSwKICAgICAgICAgKTsKIAotICAgICAgICAkdGhpcy0+bWFuaWZlc3RbJ2VsYXBz
ZWRUaW1lJ10gPSAobWljcm90aW1lKHRydWUpIC0gJHN0YXJ0X3RpbWUpICogMTAwMDsKKyAgICAg
ICAgJHRoaXMtPmVsYXBzZWRfdGltZSA9IChtaWNyb3RpbWUodHJ1ZSkgLSAkc3RhcnRfdGltZSkg
KiAxMDAwOwogCiAgICAgICAgIHJldHVybiBUUlVFOwogICAgIH0KQEAgLTU1LDcgKzU2LDcgQEAg
Y2xhc3MgTWFuaWZlc3RHZW5lcmF0b3IgewogICAgIGZ1bmN0aW9uIG1hbmlmZXN0KCkgeyByZXR1
cm4gJHRoaXMtPm1hbmlmZXN0OyB9CiAKICAgICBmdW5jdGlvbiBzdG9yZSgpIHsKLSAgICAgICAg
cmV0dXJuIGdlbmVyYXRlX2RhdGFfZmlsZSgnbWFuaWZlc3QuanNvbicsIGpzb25fZW5jb2RlKCR0
aGlzLT5tYW5pZmVzdCkpOworICAgICAgICByZXR1cm4gZ2VuZXJhdGVfanNvbl9kYXRhX3dpdGhf
ZWxhcHNlZF90aW1lX2lmX25lZWRlZCgnbWFuaWZlc3QuanNvbicsICR0aGlzLT5tYW5pZmVzdCwg
JHRoaXMtPmVsYXBzZWRfdGltZSk7CiAgICAgfQogCiAgICAgcHJpdmF0ZSBmdW5jdGlvbiB0ZXN0
cygpIHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvc2hhcmVk
L3N0YXRpc3RpY3MuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3NoYXJlZC9z
dGF0aXN0aWNzLmpzCmluZGV4IDg3MTg0NmMyZGRmNjFmZmFiYTM4ZGJhOTBhMDU5MWMwMTVhOWMx
MTEuLjMyMjhlYTliNGI2OTg4MWZjMmYxNTFkNDdjOGZiZDc4ZDdlNDVkOGMgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvc2hhcmVkL3N0YXRpc3RpY3MuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9zaGFyZWQvc3RhdGlzdGljcy5qcwpA
QCAtNzIsNyArNzIsNiBAQCB2YXIgU3RhdGlzdGljcyA9IG5ldyAoZnVuY3Rpb24gKCkgewogICAg
ICAgICBsZXQgc3VtID0gMDsKICAgICAgICAgbGV0IHNxdWFyZVN1bSA9IDA7CiAgICAgICAgIGxl
dCBzaXplID0gMDsKLSAgICAgICAgY29uc29sZS5sb2coc2FtcGxlcyk7CiAgICAgICAgIGZvciAo
Y29uc3Qgc2FtcGxlIG9mIHNhbXBsZXMpIHsKICAgICAgICAgICAgIHN1bSArPSBzYW1wbGUuc3Vt
OwogICAgICAgICAgICAgc3F1YXJlU3VtICs9IHNhbXBsZS5zcXVhcmVTdW07CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0
LXRlc3RzLmpzCmluZGV4IGNiNWZjNTVjMzFmYmE3NWYyNGMyNWI2NWIyMDdjZDQ3NDkyZjJiMmIu
LjI3NWE0Mjk3OTRhZGMzYjRjZWEwMDUxYjE2ZTFmYmM1ZWY3MjNkZDEgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0
LXRlc3RzLmpzCkBAIC0xNCwxMCArMTQsNyBAQCBkZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1
bmN0aW9uICgpIHsKICAgICBpdCgic2hvdWxkIGdlbmVyYXRlIGFuIGVtcHR5IG1hbmlmZXN0IHdo
ZW4gZGF0YWJhc2UgaXMgZW1wdHkiLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLmdldEpTT04oJy9hcGkvbWFuaWZlc3QnKS50aGVuKChtYW5pZmVzdCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhtYW5pZmVzdCkuc29y
dCgpLCBbJ2FsbCcsICdidWdUcmFja2VycycsICdidWlsZGVycycsICdkYXNoYm9hcmQnLCAnZGFz
aGJvYXJkcycsCi0gICAgICAgICAgICAgICAgJ2VsYXBzZWRUaW1lJywgJ2ZpbGVVcGxvYWRTaXpl
TGltaXQnLCAnbWV0cmljcycsICdyZXBvc2l0b3JpZXMnLCAnc2l0ZVRpdGxlJywgJ3N0YXR1cycs
ICdzdW1tYXJ5UGFnZXMnLCAndGVzdEFnZVRvbGVyYW5jZUluSG91cnMnLCAndGVzdHMnLCAndHJp
Z2dlcmFibGVzJ10pOwotCi0gICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKG1hbmlmZXN0
LmVsYXBzZWRUaW1lKSwgJ251bWJlcicpOwotICAgICAgICAgICAgZGVsZXRlIG1hbmlmZXN0LmVs
YXBzZWRUaW1lOworICAgICAgICAgICAgICAgICdmaWxlVXBsb2FkU2l6ZUxpbWl0JywgJ21ldHJp
Y3MnLCAncmVwb3NpdG9yaWVzJywgJ3NpdGVUaXRsZScsICdzdGF0dXMnLCAnc3VtbWFyeVBhZ2Vz
JywgJ3Rlc3RBZ2VUb2xlcmFuY2VJbkhvdXJzJywgJ3Rlc3RzJywgJ3RyaWdnZXJhYmxlcyddKTsK
IAogICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtYW5pZmVzdCwgewogICAgICAg
ICAgICAgICAgIHNpdGVUaXRsZTogVGVzdFNlcnZlci50ZXN0Q29uZmlnKCkuc2l0ZVRpdGxlLAo=
</data>
<flag name="review"
          id="368133"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>