<?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>194438</bug_id>
          
          <creation_ts>2019-02-08 09:16:38 -0800</creation_ts>
          <short_desc>[Cocoa] Optimize ResourceResponse::platformLazyInit()</short_desc>
          <delta_ts>2019-02-08 16:27:28 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1504185</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-08 09:16:38 -0800</bug_when>
    <thetext>Optimize ResourceResponse::platformLazyInit(). Most of the CPU time currently goes into getting the HTTP headers from CFNetwork:
Sample Count, Samples %, CPU %, Symbol
46, 0.0%, 0.0%, WebCore::initializeHTTPHeaders(WebCore::OnlyCommonHeaders, NSHTTPURLResponse*, WebCore::HTTPHeaderMap&amp;) (in WebCore)
34, 0.0%, 0.0%,     HTTPHeaderDict::copyAsOrdinaryDict(__CFAllocator const*) const (in CFNetwork)
11, 0.0%, 0.0%,     CFDictionaryApplyFunction (in CoreFoundation)

We currently have 2 levels of initialization: CommonFieldsOnly &amp; AllFields. With WebKit2, most ResourceResponses get sent over IPC and thus end up getting initialized twice, once with CommonFieldsOnly and then with AllFields.
This would cause us to call the expensive HTTPHeaderDict::copyAsOrdinaryDict() twice instead of once, simply to initialize the common HTTP headers first and then the uncommon ones later.

My proposal is to initialize all HTTP headers once, as soon as CommonFieldsOnly initialized is requested, so that we no longer copy all HTTP headers twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504190</commentid>
    <comment_count>1</comment_count>
      <attachid>361509</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-08 09:19:42 -0800</bug_when>
    <thetext>Created attachment 361509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504339</commentid>
    <comment_count>2</comment_count>
      <attachid>361509</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-08 15:34:45 -0800</bug_when>
    <thetext>Comment on attachment 361509
Patch

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

&gt; Source/WebCore/ChangeLog:22
&gt; +        This patch updates ResourceResponse::platformLazyInit() to initialize all HTTP headers at once, as soon as CommonFieldsOnly

If we&apos;re doing this, why not just remove CommonFieldsOnly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504349</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-08 15:48:29 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 361509 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=361509&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:22
&gt; &gt; +        This patch updates ResourceResponse::platformLazyInit() to initialize all HTTP headers at once, as soon as CommonFieldsOnly
&gt; 
&gt; If we&apos;re doing this, why not just remove CommonFieldsOnly?

I would need to gather more data before doing such change. Also, this is likely not true for WebKit1 since no IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504372</commentid>
    <comment_count>4</comment_count>
      <attachid>361509</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-08 16:18:40 -0800</bug_when>
    <thetext>Comment on attachment 361509
Patch

In a follow-up, I will look into removing the double stage lazy init altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504384</commentid>
    <comment_count>5</comment_count>
      <attachid>361509</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-08 16:26:46 -0800</bug_when>
    <thetext>Comment on attachment 361509
Patch

Clearing flags on attachment: 361509

Committed r241220: &lt;https://trac.webkit.org/changeset/241220&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504385</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-08 16:26:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504386</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-08 16:27:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/47934216&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361509</attachid>
            <date>2019-02-08 09:19:42 -0800</date>
            <delta_ts>2019-02-08 16:26:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194438-20190208091941.patch</filename>
            <type>text/plain</type>
            <size>5731</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNkNjU4NGJmZGU3MTAz
ZTk3NmY1OGIxZmMwMjIzN2IzNWU1M2FhMC4uOWU1NDA4ZmNkNTA5NWUwY2ZhZDJiOGRlMzhkMTFm
Zjc4ZmNmZTY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTAyLTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBPcHRpbWl6ZSBS
ZXNvdXJjZVJlc3BvbnNlOjpwbGF0Zm9ybUxhenlJbml0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDQzOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXplIFJlc291cmNlUmVzcG9uc2U6OnBs
YXRmb3JtTGF6eUluaXQoKS4gTW9zdCBvZiB0aGUgQ1BVIHRpbWUgY3VycmVudGx5IGdvZXMgaW50
byBnZXR0aW5nIHRoZQorICAgICAgICBIVFRQIGhlYWRlcnMgZnJvbSBDRk5ldHdvcms6CisgICAg
ICAgICIiIgorICAgICAgICBTYW1wbGUgQ291bnQsIFNhbXBsZXMgJSwgQ1BVICUsIFN5bWJvbAor
ICAgICAgICA0NiwgMC4wJSwgMC4wJSwgV2ViQ29yZTo6aW5pdGlhbGl6ZUhUVFBIZWFkZXJzKFdl
YkNvcmU6Ok9ubHlDb21tb25IZWFkZXJzLCBOU0hUVFBVUkxSZXNwb25zZSosIFdlYkNvcmU6OkhU
VFBIZWFkZXJNYXAmKSAoaW4gV2ViQ29yZSkKKyAgICAgICAgMzQsIDAuMCUsIDAuMCUsICAgICBI
VFRQSGVhZGVyRGljdDo6Y29weUFzT3JkaW5hcnlEaWN0KF9fQ0ZBbGxvY2F0b3IgY29uc3QqKSBj
b25zdCAoaW4gQ0ZOZXR3b3JrKQorICAgICAgICAxMSwgMC4wJSwgMC4wJSwgICAgIENGRGljdGlv
bmFyeUFwcGx5RnVuY3Rpb24gKGluIENvcmVGb3VuZGF0aW9uKQorICAgICAgICAiIiIKKworICAg
ICAgICBXZSBjdXJyZW50bHkgaGF2ZSAyIGxldmVscyBvZiBpbml0aWFsaXphdGlvbjogQ29tbW9u
RmllbGRzT25seSAmIEFsbEZpZWxkcy4gV2l0aCBXZWJLaXQyLCBtb3N0IFJlc291cmNlUmVzcG9u
c2VzIGdldCBzZW50IG92ZXIgSVBDCisgICAgICAgIGFuZCB0aHVzIGVuZCB1cCBnZXR0aW5nIGlu
aXRpYWxpemVkIHR3aWNlLCBvbmNlIHdpdGggQ29tbW9uRmllbGRzT25seSBhbmQgdGhlbiB3aXRo
IEFsbEZpZWxkcy4KKyAgICAgICAgVGhpcyB3b3VsZCBjYXVzZSB1cyB0byBjYWxsIHRoZSBleHBl
bnNpdmUgSFRUUEhlYWRlckRpY3Q6OmNvcHlBc09yZGluYXJ5RGljdCgpIHR3aWNlIGluc3RlYWQg
b2Ygb25jZSwgc2ltcGx5IHRvIGluaXRpYWxpemUgdGhlIGNvbW1vbgorICAgICAgICBIVFRQIGhl
YWRlcnMgZmlyc3QgYW5kIHRoZW4gdGhlIHVuY29tbW9uIG9uZXMgbGF0ZXIuCisKKyAgICAgICAg
VGhpcyBwYXRjaCB1cGRhdGVzIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtTGF6eUluaXQoKSB0
byBpbml0aWFsaXplIGFsbCBIVFRQIGhlYWRlcnMgYXQgb25jZSwgYXMgc29vbiBhcyBDb21tb25G
aWVsZHNPbmx5CisgICAgICAgIGluaXRpYWxpemF0aW9uIGlzIHJlcXVlc3RlZCwgc28gdGhhdCB3
ZSBubyBsb25nZXIgY29weSBhbGwgSFRUUCBoZWFkZXJzIHR3aWNlLgorCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjppbml0aWFsaXplSFRUUEhlYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZTo6cGxhdGZvcm1MYXp5SW5pdCk6CisKIDIwMTktMDItMDYgIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIE1vdmUgbGluZSBsYXlv
dXQgY29kZSB0byBhIGRlZGljYXRlZCBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVzcG9uc2VDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCmlu
ZGV4IGY2ZTI0MmJkMWQ0NTFiMjZmNzNkMWVmNzdkNDkyYTY1Yzk2MTcyNDEuLjE2ZjExZDExNzYz
NTE0ZTcxMWViYmFjOWQ3Yjg5NmE2MTZiMzNmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXNwb25zZUNvY29h
Lm1tCkBAIC0xMzcsMjMgKzEzNywxNCBAQCBzdGF0aWMgaW5saW5lIEF0b21pY1N0cmluZyBzdHJp
cExlYWRpbmdBbmRUcmFpbGluZ0RvdWJsZVF1b3RlKGNvbnN0IFN0cmluZyYgdmFsdQogICAgIHJl
dHVybiBTdHJpbmdWaWV3KHZhbHVlKS5zdWJzdHJpbmcoMSwgbGVuZ3RoIC0gMikudG9BdG9taWNT
dHJpbmcoKTsKIH0KIAotZW51bSBjbGFzcyBPbmx5Q29tbW9uSGVhZGVycyB7IE5vLCBZZXMgfTsK
LXN0YXRpYyBpbmxpbmUgdm9pZCBpbml0aWFsaXplSFRUUEhlYWRlcnMoT25seUNvbW1vbkhlYWRl
cnMgb25seUNvbW1vbkhlYWRlcnMsIE5TSFRUUFVSTFJlc3BvbnNlICpodHRwUmVzcG9uc2UsIEhU
VFBIZWFkZXJNYXAmIGhlYWRlcnNNYXApCitzdGF0aWMgaW5saW5lIEhUVFBIZWFkZXJNYXAgaW5p
dGlhbGl6ZUhUVFBIZWFkZXJzKENGSFRUUE1lc3NhZ2VSZWYgbWVzc2FnZVJlZikKIHsKLSAgICBo
ZWFkZXJzTWFwLmNsZWFyKCk7Ci0gICAgYXV0byBtZXNzYWdlUmVmID0gQ0ZVUkxSZXNwb25zZUdl
dEhUVFBSZXNwb25zZShbaHR0cFJlc3BvbnNlIF9DRlVSTFJlc3BvbnNlXSk7Ci0KICAgICAvLyBB
dm9pZCBjYWxsaW5nIFtOU1VSTFJlc3BvbnNlIGFsbEhlYWRlckZpZWxkc10gdG8gbWluaW1pemUg
Y29weWluZyAoPHJkYXI6Ly9wcm9ibGVtLzI2Nzc4ODYzPikuCiAgICAgYXV0byBoZWFkZXJzID0g
YWRvcHRDRihDRkhUVFBNZXNzYWdlQ29weUFsbEhlYWRlckZpZWxkcyhtZXNzYWdlUmVmKSk7Ci0g
ICAgaWYgKG9ubHlDb21tb25IZWFkZXJzID09IE9ubHlDb21tb25IZWFkZXJzOjpZZXMpIHsKLSAg
ICAgICAgZm9yIChhdXRvJiBjb21tb25IZWFkZXIgOiBjb21tb25IZWFkZXJGaWVsZHMpIHsKLSAg
ICAgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlOwotICAgICAgICAgICAgaWYgKENGRGljdGlvbmFy
eUdldFZhbHVlSWZQcmVzZW50KGhlYWRlcnMuZ2V0KCksIGNvbW1vbkhlYWRlciwgJnZhbHVlKSkK
LSAgICAgICAgICAgICAgICBoZWFkZXJzTWFwLnNldChjb21tb25IZWFkZXIsIChDRlN0cmluZ1Jl
ZikgdmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisKKyAgICBIVFRQ
SGVhZGVyTWFwIGhlYWRlcnNNYXA7CiAgICAgQ0ZEaWN0aW9uYXJ5QXBwbHlGdW5jdGlvbihoZWFk
ZXJzLmdldCgpLCBhZGRUb0hUVFBIZWFkZXJNYXAsICZoZWFkZXJzTWFwKTsKKyAgICByZXR1cm4g
aGVhZGVyc01hcDsKIH0KIAogc3RhdGljIGlubGluZSBBdG9taWNTdHJpbmcgZXh0cmFjdEhUVFBT
dGF0dXNUZXh0KENGSFRUUE1lc3NhZ2VSZWYgbWVzc2FnZVJlZikKQEAgLTE3Nyw3ICsxNjgsNyBA
QCB2b2lkIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtTGF6eUluaXQoSW5pdExldmVsIGluaXRM
ZXZlbCkKICAgICAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKIAotICAgICAgICBOU0hUVFBVUkxS
ZXNwb25zZSAqaHR0cFJlc3BvbnNlID0gW21fbnNSZXNwb25zZS5nZXQoKSBpc0tpbmRPZkNsYXNz
OltOU0hUVFBVUkxSZXNwb25zZSBjbGFzc11dID8gKE5TSFRUUFVSTFJlc3BvbnNlICopbV9uc1Jl
c3BvbnNlLmdldCgpIDogbnVsbHB0cjsKKyAgICAgICAgYXV0byBtZXNzYWdlUmVmID0gW21fbnNS
ZXNwb25zZS5nZXQoKSBpc0tpbmRPZkNsYXNzOltOU0hUVFBVUkxSZXNwb25zZSBjbGFzc11dID8g
Q0ZVUkxSZXNwb25zZUdldEhUVFBSZXNwb25zZShbIChOU0hUVFBVUkxSZXNwb25zZSAqKW1fbnNS
ZXNwb25zZS5nZXQoKSBfQ0ZVUkxSZXNwb25zZV0pIDogbnVsbHB0cjsKIAogICAgICAgICBpZiAo
bV9pbml0TGV2ZWwgPCBDb21tb25GaWVsZHNPbmx5KSB7CiAgICAgICAgICAgICBtX3VybCA9IFtt
X25zUmVzcG9uc2UuZ2V0KCkgVVJMXTsKQEAgLTE4NSwxOCArMTc2LDE0IEBAIHZvaWQgUmVzb3Vy
Y2VSZXNwb25zZTo6cGxhdGZvcm1MYXp5SW5pdChJbml0TGV2ZWwgaW5pdExldmVsKQogICAgICAg
ICAgICAgbV9leHBlY3RlZENvbnRlbnRMZW5ndGggPSBbbV9uc1Jlc3BvbnNlLmdldCgpIGV4cGVj
dGVkQ29udGVudExlbmd0aF07CiAgICAgICAgICAgICAvLyBTdHJpcHBpbmcgZG91YmxlIHF1b3Rl
cyBhcyBhIHdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS84NzU3MDg4PiwgY2FuIGJlIHJl
bW92ZWQgb25jZSB0aGF0IGlzIGZpeGVkLgogICAgICAgICAgICAgbV90ZXh0RW5jb2RpbmdOYW1l
ID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdEb3VibGVRdW90ZShbbV9uc1Jlc3BvbnNlLmdldCgp
IHRleHRFbmNvZGluZ05hbWVdKTsKLSAgICAgICAgICAgIG1faHR0cFN0YXR1c0NvZGUgPSBodHRw
UmVzcG9uc2UgPyBbaHR0cFJlc3BvbnNlIHN0YXR1c0NvZGVdIDogMDsKKyAgICAgICAgICAgIG1f
aHR0cFN0YXR1c0NvZGUgPSBtZXNzYWdlUmVmID8gQ0ZIVFRQTWVzc2FnZUdldFJlc3BvbnNlU3Rh
dHVzQ29kZShtZXNzYWdlUmVmKSA6IDA7CisgICAgICAgICAgICBpZiAobWVzc2FnZVJlZikKKyAg
ICAgICAgICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMgPSBpbml0aWFsaXplSFRUUEhlYWRlcnMo
bWVzc2FnZVJlZik7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGh0dHBSZXNwb25zZSkgewotICAg
ICAgICAgICAgaWYgKGluaXRMZXZlbCA9PSBBbGxGaWVsZHMpIHsKLSAgICAgICAgICAgICAgICBh
dXRvIG1lc3NhZ2VSZWYgPSBDRlVSTFJlc3BvbnNlR2V0SFRUUFJlc3BvbnNlKFtodHRwUmVzcG9u
c2UgX0NGVVJMUmVzcG9uc2VdKTsKLSAgICAgICAgICAgICAgICBtX2h0dHBTdGF0dXNUZXh0ID0g
ZXh0cmFjdEhUVFBTdGF0dXNUZXh0KG1lc3NhZ2VSZWYpOwotICAgICAgICAgICAgICAgIG1faHR0
cFZlcnNpb24gPSBTdHJpbmcoYWRvcHRDRihDRkhUVFBNZXNzYWdlQ29weVZlcnNpb24obWVzc2Fn
ZVJlZikpLmdldCgpKS5jb252ZXJ0VG9BU0NJSVVwcGVyY2FzZSgpOwotICAgICAgICAgICAgICAg
IGluaXRpYWxpemVIVFRQSGVhZGVycyhPbmx5Q29tbW9uSGVhZGVyczo6Tm8sIGh0dHBSZXNwb25z
ZSwgbV9odHRwSGVhZGVyRmllbGRzKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgIGluaXRpYWxpemVIVFRQSGVhZGVycyhPbmx5Q29tbW9uSGVhZGVyczo6WWVzLCBodHRwUmVz
cG9uc2UsIG1faHR0cEhlYWRlckZpZWxkcyk7CisgICAgICAgIGlmIChtZXNzYWdlUmVmICYmIGlu
aXRMZXZlbCA9PSBBbGxGaWVsZHMpIHsKKyAgICAgICAgICAgIG1faHR0cFN0YXR1c1RleHQgPSBl
eHRyYWN0SFRUUFN0YXR1c1RleHQobWVzc2FnZVJlZik7CisgICAgICAgICAgICBtX2h0dHBWZXJz
aW9uID0gU3RyaW5nKGFkb3B0Q0YoQ0ZIVFRQTWVzc2FnZUNvcHlWZXJzaW9uKG1lc3NhZ2VSZWYp
KS5nZXQoKSkuY29udmVydFRvQVNDSUlVcHBlcmNhc2UoKTsKICAgICAgICAgfQotCiAgICAgfQog
CiAgICAgbV9pbml0TGV2ZWwgPSBpbml0TGV2ZWw7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>