<?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>64130</bug_id>
          
          <creation_ts>2011-07-07 16:16:42 -0700</creation_ts>
          <short_desc>Implement didReceiveDataArray callback for CFNetwork based loader</short_desc>
          <delta_ts>2011-07-12 11:47:34 -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>Platform</component>
          <version>528+ (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>
          
          <blocked>51836</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Pratik Solanki">psolanki</reporter>
          <assigned_to name="Pratik Solanki">psolanki</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>jberlin</cc>
    
    <cc>koivisto</cc>
    
    <cc>psolanki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>433769</commentid>
    <comment_count>0</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-07-07 16:16:42 -0700</bug_when>
    <thetext>Same as &lt;https://bugs.webkit.org/show_bug.cgi?id=56838&gt; but for the CFNetwork side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433785</commentid>
    <comment_count>1</comment_count>
      <attachid>100049</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-07-07 16:46:51 -0700</bug_when>
    <thetext>Created attachment 100049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433832</commentid>
    <comment_count>2</comment_count>
      <attachid>100056</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-07-07 18:09:38 -0700</bug_when>
    <thetext>Created attachment 100056
Patch.v2

Updated patch that should apply cleanly. It includes some of the header file changes from patch in bug 63674.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435065</commentid>
    <comment_count>3</comment_count>
      <attachid>100056</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-07-11 11:49:29 -0700</bug_when>
    <thetext>Comment on attachment 100056
Patch.v2

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

Unofficial r=me!

&gt; Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:449
&gt; +    CFURLConnectionClient_V6 client = { 6, this, 0, 0, 0, WebCore::willSendRequest, didReceiveResponse, didReceiveData, 0, didFinishLoading, didFail, willCacheResponse, didReceiveChallenge, didSendBodyData, shouldUseCredentialStorageCallback, 0, 0, 0, didReceiveDataArray};

Is there a reason to name this &quot;V6&quot;? Are there versions 4 and 5 somewhere?

&gt; Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:877
&gt; +        client()-&gt;didReceiveDataArray(this, dataArray);

I know you are just moving this code, but instead of the extra nesting of and if { ... } else { ... } clause here, it would be better to just do an early return:

if (client()-&gt;supportsDataArray()) {
    client()-&gt;didReceiveDataArray(this, dataArray);
    return;
}

CFIndex count = CFArrayGetCount(....

&gt; Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:885
&gt; +        } else {

Ditto about an early return being better here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435078</commentid>
    <comment_count>4</comment_count>
      <attachid>100056</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-07-11 11:55:01 -0700</bug_when>
    <thetext>Comment on attachment 100056
Patch.v2

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

&gt;&gt; Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:449
&gt;&gt; +    CFURLConnectionClient_V6 client = { 6, this, 0, 0, 0, WebCore::willSendRequest, didReceiveResponse, didReceiveData, 0, didFinishLoading, didFail, willCacheResponse, didReceiveChallenge, didSendBodyData, shouldUseCredentialStorageCallback, 0, 0, 0, didReceiveDataArray};
&gt; 
&gt; Is there a reason to name this &quot;V6&quot;? Are there versions 4 and 5 somewhere?

Yes. There&apos;s CFURLConnectionClient_V4 and CFURLConnectionClient_V5 in CFURLConnection.h.

&gt;&gt; Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:877
&gt;&gt; +        client()-&gt;didReceiveDataArray(this, dataArray);
&gt; 
&gt; I know you are just moving this code, but instead of the extra nesting of and if { ... } else { ... } clause here, it would be better to just do an early return:
&gt; 
&gt; if (client()-&gt;supportsDataArray()) {
&gt;     client()-&gt;didReceiveDataArray(this, dataArray);
&gt;     return;
&gt; }
&gt; 
&gt; CFIndex count = CFArrayGetCount(....

Ok. I can do that.

&gt;&gt; Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:885
&gt;&gt; +        } else {
&gt; 
&gt; Ditto about an early return being better here.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435154</commentid>
    <comment_count>5</comment_count>
      <attachid>100056</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-07-11 13:02:10 -0700</bug_when>
    <thetext>Comment on attachment 100056
Patch.v2

r=me with jessieberlin&apos;s comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435828</commentid>
    <comment_count>6</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-07-12 11:47:34 -0700</bug_when>
    <thetext>Committed r90834: &lt;http://trac.webkit.org/changeset/90834&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100049</attachid>
            <date>2011-07-07 16:46:51 -0700</date>
            <delta_ts>2011-07-07 18:09:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64130-20110707164650.patch</filename>
            <type>text/plain</type>
            <size>8368</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA1MDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MzVkOWE5ZjFkYTM4ZjA0
NTZhNDI0ZjE5MzFjMGU1Mjc3NmUwMzhhLi4zMTU5MjlmYmZiOTVlYjQ4OTkzNzc4NWM0ODljZGM1
ZmU2M2E5YmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDctMDcgIFByYXRp
ayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBkaWRSZWNlaXZlRGF0YUFycmF5IGNh
bGxiYWNrIGZvciBDRk5ldHdvcmsgYmFzZWQgbG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDEzMAorCisgICAgICAgIEZhY3RvciBvdXQgdGhl
IGRpZFJlY2VpdmVEYXRhQXJyYXkgY29kZSBmcm9tIFJlc291cmNlSGFuZGxlTWFjLm1tIGludG8K
KyAgICAgICAgYSBuZXcgbWV0aG9kIFJlc291cmNlSGFuZGxlOjpoYW5kbGVEYXRhQXJyYXkoKS4g
SW1wbGVtZW50IHRoZSBjYWxsYmFjaworICAgICAgICBpbiB0aGUgQ0ZOZXR3b3JrIGxvYWRlciBj
b2RlIGFuZCBjYWxsIGhhbmRsZURhdGFBcnJheSgpIHRvIHByb2Nlc3MKKyAgICAgICAgaW5jb21p
bmcgZGF0YS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGUgZmxhZyBpcyBub3Qg
ZW5hYmxlZCBmb3IgYW55IGJvdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpZFJlY2VpdmVEYXRhQXJyYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6aGFuZGxlRGF0YUFycmF5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAg
KC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVE
YXRhQXJyYXk6XSk6CisKIDIwMTEtMDYtMjkgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IDRjYWYx
NWQ3NWEwZWQ4NTdjOWRhYjYwOWVlMWJhYmU3ZDc3MGM0NmEuLjA1M2EwNGZiNDA3N2E4MDNjYzUx
OGFiNTIxYzdhM2YwNDhiZmRhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTIxMSw2ICsyMTEsMTAgQEAgcHVibGljOgogICAg
IHN0YXRpYyBDRlN0cmluZ1JlZiBzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZSgpOwogI2VuZGlm
CiAKKyNpZiBIQVZFKENGTkVUV09SS19EQVRBX0FSUkFZX0NBTExCQUNLKQorICAgIHZvaWQgaGFu
ZGxlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6
CiAgICAgUmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5kZXggMWJlYTk4ZGVjOTBlZTBmMTMzMWEzZGViZGJjMzRj
YWU5YzE0ZDYzZi4uOWZmYmVhZjQwYzk1Nzc5Y2E3NjEwZmQxZDE3N2E5MDU1YmVkN2Q5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKIAotI2lmIFVTRShDRk5FVFdPUkspCi0KICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVy
bmFsLmgiCiAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNGLmgiCkBAIC01Myw3ICs1MSw3IEBA
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpICYmIFVTRShDRk5FVFdP
UkspCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2luY2x1ZGUgIldlYkNv
cmVVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTENvbm5lY3Rpb25Qcml2
Lmg+CkBAIC03Nyw2ICs3NSw4IEBAIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBDRlVSTENvbm5lY3Rp
b25SZWYgQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMoCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorI2lmIFVTRShDRk5FVFdPUkspCisKIGNsYXNzIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlckNsaWVudCA6IHB1YmxpYyBSZXNvdXJjZUhhbmRsZUNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NPd25QdHI8V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50PiBjcmVh
dGUoUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAt
MjI5LDYgKzIyOSwyMiBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDb25u
ZWN0aW9uUmVmIGNvbm4sIENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwbwogICAgIGhhbmRsZS0+Y2xp
ZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUsIGNmUmVzcG9uc2UpOwogfQogCisjaWYg
SEFWRShDRk5FVFdPUktfREFUQV9BUlJBWV9DQUxMQkFDSykKK3N0YXRpYyB2b2lkIGRpZFJlY2Vp
dmVEYXRhQXJyYXkoQ0ZVUkxDb25uZWN0aW9uUmVmIGNvbm4sIENGQXJyYXlSZWYgZGF0YUFycmF5
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworI2lmIExPR19ESVNBQkxFRAorICAgIFVOVVNF
RF9QQVJBTShjb25uKTsKKyNlbmRpZgorICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUgPSBzdGF0
aWNfY2FzdDxSZXNvdXJjZUhhbmRsZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsK
KyAgICBpZiAoIWhhbmRsZS0+Y2xpZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIExPRyhO
ZXR3b3JrLCAiQ0ZOZXQgLSBkaWRSZWNlaXZlRGF0YUFycmF5KGNvbm49JXAsIGhhbmRsZT0lcCwg
YXJyYXlMZW5ndGg9JWxkKSAoJXMpIiwgY29ubiwgaGFuZGxlLCBDRkFycmF5R2V0Q291bnQoZGF0
YUFycmF5KSwgaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKKworICAgIGhhbmRsZS0+aGFuZGxlRGF0YUFycmF5KGRhdGFBcnJheSk7Cit9CisjZW5k
aWYKKwogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZURhdGEoQ0ZVUkxDb25uZWN0aW9uUmVmIGNvbm4s
IENGRGF0YVJlZiBkYXRhLCBDRkluZGV4IG9yaWdpbmFsTGVuZ3RoLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewogI2lmIExPR19ESVNBQkxFRApAQCAtNDQ0LDcgKzQ2MCwxMSBAQCB2b2lkIFJl
c291cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZSwgYm9vbAogCiAgICAgUmV0YWluUHRyPENGVVJMUmVxdWVzdFJlZj4gcmVxdWVz
dChBZG9wdENGLCBtYWtlRmluYWxSZXF1ZXN0KGZpcnN0UmVxdWVzdCgpLCBzaG91bGRDb250ZW50
U25pZmYpKTsKIAorI2lmIEhBVkUoQ0ZORVRXT1JLX0RBVEFfQVJSQVlfQ0FMTEJBQ0spCisgICAg
Q0ZVUkxDb25uZWN0aW9uQ2xpZW50X1Y2IGNsaWVudCA9IHsgNiwgdGhpcywgMCwgMCwgMCwgV2Vi
Q29yZTo6d2lsbFNlbmRSZXF1ZXN0LCBkaWRSZWNlaXZlUmVzcG9uc2UsIGRpZFJlY2VpdmVEYXRh
LCAwLCBkaWRGaW5pc2hMb2FkaW5nLCBkaWRGYWlsLCB3aWxsQ2FjaGVSZXNwb25zZSwgZGlkUmVj
ZWl2ZUNoYWxsZW5nZSwgZGlkU2VuZEJvZHlEYXRhLCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZUNhbGxiYWNrLCAwLCAwLCAwLCBkaWRSZWNlaXZlRGF0YUFycmF5fTsKKyNlbHNlCiAgICAgQ0ZV
UkxDb25uZWN0aW9uQ2xpZW50X1YzIGNsaWVudCA9IHsgMywgdGhpcywgMCwgMCwgMCwgV2ViQ29y
ZTo6d2lsbFNlbmRSZXF1ZXN0LCBkaWRSZWNlaXZlUmVzcG9uc2UsIGRpZFJlY2VpdmVEYXRhLCAw
LCBkaWRGaW5pc2hMb2FkaW5nLCBkaWRGYWlsLCB3aWxsQ2FjaGVSZXNwb25zZSwgZGlkUmVjZWl2
ZUNoYWxsZW5nZSwgZGlkU2VuZEJvZHlEYXRhLCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZUNh
bGxiYWNrLCAwfTsKKyNlbmRpZgogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGNvbm5l
Y3Rpb25Qcm9wZXJ0aWVzKEFkb3B0Q0YsIGNyZWF0ZUNvbm5lY3Rpb25Qcm9wZXJ0aWVzKHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlKSk7CiAKICAgICBkLT5tX2Nvbm5lY3Rpb24uYWRvcHRDRihD
RlVSTENvbm5lY3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0LmdldCgpLCByZWlu
dGVycHJldF9jYXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBjb25uZWN0aW9u
UHJvcGVydGllcy5nZXQoKSkpOwpAQCAtODcxLDYgKzg5MSwzOCBAQCBib29sIFdlYkNvcmVTeW5j
aHJvbm91c0xvYWRlckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VI
YW5kbGUqKQogICAgIHJldHVybiBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiB9CiAKKyNlbmRp
ZiAvLyBVU0UoQ0ZORVRXT1JLKQorCisjaWYgSEFWRShDRk5FVFdPUktfREFUQV9BUlJBWV9DQUxM
QkFDSykKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmhhbmRsZURhdGFBcnJheShDRkFycmF5UmVmIGRh
dGFBcnJheSkKK3sKKyAgICBBU1NFUlQoY2xpZW50KCkpOworICAgIGlmIChjbGllbnQoKS0+c3Vw
cG9ydHNEYXRhQXJyYXkoKSkKKyAgICAgICAgY2xpZW50KCktPmRpZFJlY2VpdmVEYXRhQXJyYXko
dGhpcywgZGF0YUFycmF5KTsKKyAgICBlbHNlIHsKKyAgICAgICAgQ0ZJbmRleCBjb3VudCA9IENG
QXJyYXlHZXRDb3VudChkYXRhQXJyYXkpOworICAgICAgICBBU1NFUlQoY291bnQpOworICAgICAg
ICBpZiAoY291bnQgPT0gMSkgeworICAgICAgICAgICAgQ0ZEYXRhUmVmIGRhdGEgPSBzdGF0aWNf
Y2FzdDxDRkRhdGFSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoZGF0YUFycmF5LCAwKSk7Cisg
ICAgICAgICAgICBDRkluZGV4IGxlbmd0aCA9IENGRGF0YUdldExlbmd0aChkYXRhKTsKKyAgICAg
ICAgICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YSh0aGlzLCByZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPihDRkRhdGFHZXRCeXRlUHRyKGRhdGEpKSwgbGVuZ3RoLCBzdGF0aWNfY2FzdDxp
bnQ+KGxlbmd0aCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ0ZJbmRleCB0b3Rh
bFNpemUgPSAwOworICAgICAgICAgICAgQ0ZJbmRleCBpbmRleDsKKyAgICAgICAgICAgIGZvciAo
aW5kZXggPSAwOyBpbmRleCA8IGNvdW50OyBpbmRleCsrKQorICAgICAgICAgICAgICAgIHRvdGFs
U2l6ZSArPSBDRkRhdGFHZXRMZW5ndGgoc3RhdGljX2Nhc3Q8Q0ZEYXRhUmVmPihDRkFycmF5R2V0
VmFsdWVBdEluZGV4KGRhdGFBcnJheSwgaW5kZXgpKSk7CisKKyAgICAgICAgICAgIFJldGFpblB0
cjxDRk11dGFibGVEYXRhUmVmPiBtZXJnZWREYXRhKEFkb3B0Q0YsIENGRGF0YUNyZWF0ZU11dGFi
bGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdG90YWxTaXplKSk7CisgICAgICAgICAgICBmb3IgKGlu
ZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgaW5kZXgrKykgeworICAgICAgICAgICAgICAgIENGRGF0
YVJlZiBkYXRhID0gc3RhdGljX2Nhc3Q8Q0ZEYXRhUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4
KGRhdGFBcnJheSwgaW5kZXgpKTsKKyAgICAgICAgICAgICAgICBDRkRhdGFBcHBlbmRCeXRlcyht
ZXJnZWREYXRhLmdldCgpLCBDRkRhdGFHZXRCeXRlUHRyKGRhdGEpLCBDRkRhdGFHZXRMZW5ndGgo
ZGF0YSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2
ZURhdGEodGhpcywgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oQ0ZEYXRhR2V0Qnl0ZVB0
cihtZXJnZWREYXRhLmdldCgpKSksIHRvdGFsU2l6ZSwgc3RhdGljX2Nhc3Q8aW50Pih0b3RhbFNp
emUpKTsKKyAgICAgICAgfQorICAgIH0KK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKLSNlbmRpZiAvLyBVU0UoQ0ZORVRXT1JLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCAwMjlk
ZmFhNDZhY2Y0MTI3ODg5NzgxMDJiYTVhOTliNzI0Mjk5YzUzLi42ZGM4ODgyMDBjMWVlMDczNzBh
ZjJhZmRkYjExNGQxZmU0MDIyYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtODA4LDI3ICs4MDgs
NyBAQCBTdHJpbmcgUmVzb3VyY2VIYW5kbGU6OnByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9u
SWRlbnRpZmllckRlZmF1bHRCYXNlKCkKICAgICBpZiAoIW1faGFuZGxlIHx8ICFtX2hhbmRsZS0+
Y2xpZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkt
PnN1cHBvcnRzRGF0YUFycmF5KCkpCi0gICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVj
ZWl2ZURhdGFBcnJheShtX2hhbmRsZSwgcmVpbnRlcnByZXRfY2FzdDxDRkFycmF5UmVmPihkYXRh
QXJyYXkpKTsKLSAgICBlbHNlIHsKLSAgICAgICAgTlNVSW50ZWdlciBjb3VudCA9IFtkYXRhQXJy
YXkgY291bnRdOwotICAgICAgICBBU1NFUlQoY291bnQpOwotICAgICAgICBpZiAoY291bnQgPT0g
MSkgewotICAgICAgICAgICAgTlNEYXRhICpkYXRhID0gW2RhdGFBcnJheSBvYmplY3RBdEluZGV4
OjBdOwotICAgICAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YShtX2hh
bmRsZSwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KFtkYXRhIGJ5dGVzXSksIFtkYXRhIGxlbmd0
aF0sIHN0YXRpY19jYXN0PGludD4oW2RhdGEgbGVuZ3RoXSkpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgTlNVSW50ZWdlciB0b3RhbFNpemUgPSAwOwotICAgICAgICAgICAgZm9yIChO
U0RhdGEgKmRhdGEgaW4gZGF0YUFycmF5KQotICAgICAgICAgICAgICAgIHRvdGFsU2l6ZSArPSBb
ZGF0YSBsZW5ndGhdOwotCi0gICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGF0YT4gbWVy
Z2VkRGF0YShBZG9wdE5TLCBbW05TTXV0YWJsZURhdGEgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6
dG90YWxTaXplXSk7Ci0gICAgICAgICAgICBmb3IgKE5TRGF0YSAqZGF0YSBpbiBkYXRhQXJyYXkp
Ci0gICAgICAgICAgICAgICAgW21lcmdlZERhdGEuZ2V0KCkgYXBwZW5kRGF0YTpkYXRhXTsKLQot
ICAgICAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YShtX2hhbmRsZSwg
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KFttZXJnZWREYXRhLmdldCgpIGJ5dGVzXSksIHRvdGFs
U2l6ZSwgc3RhdGljX2Nhc3Q8aW50Pih0b3RhbFNpemUpKTsKLSAgICAgICAgfQotICAgIH0KLQor
ICAgIG1faGFuZGxlLT5oYW5kbGVEYXRhQXJyYXkocmVpbnRlcnByZXRfY2FzdDxDRkFycmF5UmVm
PihkYXRhQXJyYXkpKTsKICAgICAvLyBUaGUgY2FsbCB0byBkaWRSZWNlaXZlRGF0YSBhYm92ZSBj
YW4gY2FuY2VsIGEgbG9hZCwgYW5kIGlmIHNvLCB0aGUgZGVsZWdhdGUgKHNlbGYpIGNvdWxkIGhh
dmUgYmVlbiBkZWFsbG9jYXRlZCBieSB0aGlzIHBvaW50LgogfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100056</attachid>
            <date>2011-07-07 18:09:38 -0700</date>
            <delta_ts>2011-07-11 13:02:10 -0700</delta_ts>
            <desc>Patch.v2</desc>
            <filename>bug-64130-20110707180937.patch</filename>
            <type>text/plain</type>
            <size>8985</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA2MDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2OWEwYjljYTVlYmUxYWNm
YmE3MDhlY2YxMTlkZWYzZDJlNjgxNjk3Li5lNjFjYmM4NTQ3NjMwODYzOGUyYmYzMzc4MTczZTcz
MzRiZWFmMTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDctMDcgIFByYXRp
ayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBkaWRSZWNlaXZlRGF0YUFycmF5IGNh
bGxiYWNrIGZvciBDRk5ldHdvcmsgYmFzZWQgbG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDEzMAorCisgICAgICAgIEZhY3RvciBvdXQgdGhl
IGRpZFJlY2VpdmVEYXRhQXJyYXkgY29kZSBmcm9tIFJlc291cmNlSGFuZGxlTWFjLm1tIGludG8K
KyAgICAgICAgYSBuZXcgbWV0aG9kIFJlc291cmNlSGFuZGxlOjpoYW5kbGVEYXRhQXJyYXkoKS4g
SW1wbGVtZW50IHRoZSBjYWxsYmFjaworICAgICAgICBpbiB0aGUgQ0ZOZXR3b3JrIGxvYWRlciBj
b2RlIGFuZCBjYWxsIGhhbmRsZURhdGFBcnJheSgpIHRvIHByb2Nlc3MKKyAgICAgICAgaW5jb21p
bmcgZGF0YS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGUgZmxhZyBpcyBub3Qg
ZW5hYmxlZCBmb3IgYW55IGJvdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpZFJlY2VpdmVEYXRhQXJyYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6aGFuZGxlRGF0YUFycmF5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAg
KC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVE
YXRhQXJyYXk6XSk6CisKIDIwMTEtMDctMDcgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFN3aXRjaCBIaXRUZXN0UmVzdWx0IHRvIHRvIG5ldyBsYXlvdXQgdHlw
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aAppbmRleCAwMWRlYjU3ZTE2NjFiMzcwYWFjZmY4OWEwYTI3ZjcyYTBjZTBkMWZjLi4zNjQzOWNi
Yjk1MDk1MWY0YWU5ZTllOGZiZGU1ZmUxODA4ZDk4MzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0yMTEsNiArMjExLDEwIEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgQ0ZTdHJpbmdSZWYgc3luY2hyb25vdXNMb2FkUnVuTG9vcE1v
ZGUoKTsKICNlbmRpZgogCisjaWYgSEFWRShDRk5FVFdPUktfREFUQV9BUlJBWV9DQUxMQkFDSykK
KyAgICB2b2lkIGhhbmRsZURhdGFBcnJheShDRkFycmF5UmVmIGRhdGFBcnJheSk7CisjZW5kaWYK
KwogcHJvdGVjdGVkOgogICAgIFJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENv
bnRlbnRTbmlmZik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDczZDE2ZjViMjM2M2ZkMjU4
NzkzMDUxNDFhNDMwNzUwY2RiN2Y2NWEuLjA1Y2I2ODIxZmI5YzI5YzYyODZmMzg3ZjIxZjdiZTI3
NzVkMTA0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtMjUsOCArMjUsNiBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQ0ZORVRXT1JLKQotCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oIgogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DRi5oIgpAQCAt
NDYsMTQgKzQ0LDIyIEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPENGTmV0d29yay9DRk5ldHdvcmsuaD4KLSNpbmNs
dWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+Ci0jaW5j
bHVkZSA8cHJvY2Vzcy5oPiAvLyBmb3IgX2JlZ2ludGhyZWFkKCkKICNpbmNsdWRlIDxzeXMvc3Rh
dC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAorI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKENGTkVUV09SSykKKyNpbmNsdWRlICJXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiV2ViQ29yZVVSTFJlc3BvbnNlLmgiCisjaW5j
bHVkZSA8Q0ZOZXR3b3JrL0NGVVJMQ29ubmVjdGlvblByaXYuaD4KKyNlbmRpZgorCisjaWYgUExB
VEZPUk0oV0lOKQorI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxwcm9jZXNzLmg+CisKIC8vIEZJWE1FOiBSZW1vdmUgdGhp
cyBkZWNsYXJhdGlvbiBvbmNlIGl0J3MgaW4gV2ViS2l0U3VwcG9ydExpYnJhcnkuCiBleHRlcm4g
IkMiIHsKIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBDRlVSTENvbm5lY3Rpb25SZWYgQ0ZVUkxDb25u
ZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMoCkBAIC02Miw5ICs2OCwxMiBAQCBfX2RlY2xzcGVj
KGRsbGltcG9ydCkgQ0ZVUkxDb25uZWN0aW9uUmVmIENGVVJMQ29ubmVjdGlvbkNyZWF0ZVdpdGhQ
cm9wZXJ0aWVzKAogICBDRlVSTENvbm5lY3Rpb25DbGllbnQgKiAgY2xpZW50LAogICBDRkRpY3Rp
b25hcnlSZWYgcHJvcGVydGllcyk7CiB9CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CisjaWYgVVNFKENGTkVUV09SSykKKwogY2xhc3MgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xp
ZW50IDogcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc093blB0cjxXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ+IGNyZWF0ZShSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgUmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC0yMDUsNiArMjE0
LDIyIEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShDRlVSTENvbm5lY3Rpb25SZWYg
Y29ubiwgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvCiAgICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlk
UmVjZWl2ZVJlc3BvbnNlKGhhbmRsZSwgY2ZSZXNwb25zZSk7CiB9CiAKKyNpZiBIQVZFKENGTkVU
V09SS19EQVRBX0FSUkFZX0NBTExCQUNLKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZURhdGFBcnJh
eShDRlVSTENvbm5lY3Rpb25SZWYgY29ubiwgQ0ZBcnJheVJlZiBkYXRhQXJyYXksIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCit7CisjaWYgTE9HX0RJU0FCTEVECisgICAgVU5VU0VEX1BBUkFNKGNv
bm4pOworI2VuZGlmCisgICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSA9IHN0YXRpY19jYXN0PFJl
c291cmNlSGFuZGxlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIGlmICgh
aGFuZGxlLT5jbGllbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTE9HKE5ldHdvcmssICJD
Rk5ldCAtIGRpZFJlY2VpdmVEYXRhQXJyYXkoY29ubj0lcCwgaGFuZGxlPSVwLCBhcnJheUxlbmd0
aD0lbGQpICglcykiLCBjb25uLCBoYW5kbGUsIENGQXJyYXlHZXRDb3VudChkYXRhQXJyYXkpLCBo
YW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisg
ICAgaGFuZGxlLT5oYW5kbGVEYXRhQXJyYXkoZGF0YUFycmF5KTsKK30KKyNlbmRpZgorCiBzdGF0
aWMgdm9pZCBkaWRSZWNlaXZlRGF0YShDRlVSTENvbm5lY3Rpb25SZWYgY29ubiwgQ0ZEYXRhUmVm
IGRhdGEsIENGSW5kZXggb3JpZ2luYWxMZW5ndGgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
CiAjaWYgTE9HX0RJU0FCTEVECkBAIC00MjAsNyArNDQ1LDExIEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LCBib29sCiAKICAgICBSZXRhaW5QdHI8Q0ZVUkxSZXF1ZXN0UmVmPiByZXF1ZXN0KEFkb3B0Q0Ys
IG1ha2VGaW5hbFJlcXVlc3QoZmlyc3RSZXF1ZXN0KCksIHNob3VsZENvbnRlbnRTbmlmZikpOwog
CisjaWYgSEFWRShDRk5FVFdPUktfREFUQV9BUlJBWV9DQUxMQkFDSykKKyAgICBDRlVSTENvbm5l
Y3Rpb25DbGllbnRfVjYgY2xpZW50ID0geyA2LCB0aGlzLCAwLCAwLCAwLCBXZWJDb3JlOjp3aWxs
U2VuZFJlcXVlc3QsIGRpZFJlY2VpdmVSZXNwb25zZSwgZGlkUmVjZWl2ZURhdGEsIDAsIGRpZEZp
bmlzaExvYWRpbmcsIGRpZEZhaWwsIHdpbGxDYWNoZVJlc3BvbnNlLCBkaWRSZWNlaXZlQ2hhbGxl
bmdlLCBkaWRTZW5kQm9keURhdGEsIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlQ2FsbGJhY2ss
IDAsIDAsIDAsIGRpZFJlY2VpdmVEYXRhQXJyYXl9OworI2Vsc2UKICAgICBDRlVSTENvbm5lY3Rp
b25DbGllbnRfVjMgY2xpZW50ID0geyAzLCB0aGlzLCAwLCAwLCAwLCBXZWJDb3JlOjp3aWxsU2Vu
ZFJlcXVlc3QsIGRpZFJlY2VpdmVSZXNwb25zZSwgZGlkUmVjZWl2ZURhdGEsIDAsIGRpZEZpbmlz
aExvYWRpbmcsIGRpZEZhaWwsIHdpbGxDYWNoZVJlc3BvbnNlLCBkaWRSZWNlaXZlQ2hhbGxlbmdl
LCBkaWRTZW5kQm9keURhdGEsIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlQ2FsbGJhY2ssIDB9
OworI2VuZGlmCiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gY29ubmVjdGlvblByb3Bl
cnRpZXMoQWRvcHRDRiwgY3JlYXRlQ29ubmVjdGlvblByb3BlcnRpZXMoc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UpKTsKIAogICAgIGQtPm1fY29ubmVjdGlvbi5hZG9wdENGKENGVVJMQ29ubmVj
dGlvbkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nh
c3Q8Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0aWVz
LmdldCgpKSk7CkBAIC04MzgsNiArODY3LDM4IEBAIGJvb2wgV2ViQ29yZVN5bmNocm9ub3VzTG9h
ZGVyQ2xpZW50OjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopCiAg
ICAgcmV0dXJuIG1fYWxsb3dTdG9yZWRDcmVkZW50aWFsczsKIH0KIAorI2VuZGlmIC8vIFVTRShD
Rk5FVFdPUkspCisKKyNpZiBIQVZFKENGTkVUV09SS19EQVRBX0FSUkFZX0NBTExCQUNLKQordm9p
ZCBSZXNvdXJjZUhhbmRsZTo6aGFuZGxlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KQor
eworICAgIEFTU0VSVChjbGllbnQoKSk7CisgICAgaWYgKGNsaWVudCgpLT5zdXBwb3J0c0RhdGFB
cnJheSgpKQorICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGFBcnJheSh0aGlzLCBkYXRh
QXJyYXkpOworICAgIGVsc2UgeworICAgICAgICBDRkluZGV4IGNvdW50ID0gQ0ZBcnJheUdldENv
dW50KGRhdGFBcnJheSk7CisgICAgICAgIEFTU0VSVChjb3VudCk7CisgICAgICAgIGlmIChjb3Vu
dCA9PSAxKSB7CisgICAgICAgICAgICBDRkRhdGFSZWYgZGF0YSA9IHN0YXRpY19jYXN0PENGRGF0
YVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChkYXRhQXJyYXksIDApKTsKKyAgICAgICAgICAg
IENGSW5kZXggbGVuZ3RoID0gQ0ZEYXRhR2V0TGVuZ3RoKGRhdGEpOworICAgICAgICAgICAgY2xp
ZW50KCktPmRpZFJlY2VpdmVEYXRhKHRoaXMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KENGRGF0YUdldEJ5dGVQdHIoZGF0YSkpLCBsZW5ndGgsIHN0YXRpY19jYXN0PGludD4obGVuZ3Ro
KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBDRkluZGV4IHRvdGFsU2l6ZSA9IDA7
CisgICAgICAgICAgICBDRkluZGV4IGluZGV4OworICAgICAgICAgICAgZm9yIChpbmRleCA9IDA7
IGluZGV4IDwgY291bnQ7IGluZGV4KyspCisgICAgICAgICAgICAgICAgdG90YWxTaXplICs9IENG
RGF0YUdldExlbmd0aChzdGF0aWNfY2FzdDxDRkRhdGFSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5k
ZXgoZGF0YUFycmF5LCBpbmRleCkpKTsKKworICAgICAgICAgICAgUmV0YWluUHRyPENGTXV0YWJs
ZURhdGFSZWY+IG1lcmdlZERhdGEoQWRvcHRDRiwgQ0ZEYXRhQ3JlYXRlTXV0YWJsZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCB0b3RhbFNpemUpKTsKKyAgICAgICAgICAgIGZvciAoaW5kZXggPSAwOyBp
bmRleCA8IGNvdW50OyBpbmRleCsrKSB7CisgICAgICAgICAgICAgICAgQ0ZEYXRhUmVmIGRhdGEg
PSBzdGF0aWNfY2FzdDxDRkRhdGFSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoZGF0YUFycmF5
LCBpbmRleCkpOworICAgICAgICAgICAgICAgIENGRGF0YUFwcGVuZEJ5dGVzKG1lcmdlZERhdGEu
Z2V0KCksIENGRGF0YUdldEJ5dGVQdHIoZGF0YSksIENGRGF0YUdldExlbmd0aChkYXRhKSk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YSh0aGlz
LCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihDRkRhdGFHZXRCeXRlUHRyKG1lcmdlZERh
dGEuZ2V0KCkpKSwgdG90YWxTaXplLCBzdGF0aWNfY2FzdDxpbnQ+KHRvdGFsU2l6ZSkpOworICAg
ICAgICB9CisgICAgfQorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2Vu
ZGlmIC8vIFVTRShDRk5FVFdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IDAyOWRmYWE0NmFjZjQx
Mjc4ODk3ODEwMmJhNWE5OWI3MjQyOTljNTMuLjZkYzg4ODIwMGMxZWUwNzM3MGFmMmFmZGRiMTE0
ZDFmZTQwMjJiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC04MDgsMjcgKzgwOCw3IEBAIFN0cmlu
ZyBSZXNvdXJjZUhhbmRsZTo6cHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVy
RGVmYXVsdEJhc2UoKQogICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFuZGxlLT5jbGllbnQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faGFuZGxlLT5jbGllbnQoKS0+c3VwcG9ydHNE
YXRhQXJyYXkoKSkKLSAgICAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YUFy
cmF5KG1faGFuZGxlLCByZWludGVycHJldF9jYXN0PENGQXJyYXlSZWY+KGRhdGFBcnJheSkpOwot
ICAgIGVsc2UgewotICAgICAgICBOU1VJbnRlZ2VyIGNvdW50ID0gW2RhdGFBcnJheSBjb3VudF07
Ci0gICAgICAgIEFTU0VSVChjb3VudCk7Ci0gICAgICAgIGlmIChjb3VudCA9PSAxKSB7Ci0gICAg
ICAgICAgICBOU0RhdGEgKmRhdGEgPSBbZGF0YUFycmF5IG9iamVjdEF0SW5kZXg6MF07Ci0gICAg
ICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKG1faGFuZGxlLCBzdGF0
aWNfY2FzdDxjb25zdCBjaGFyKj4oW2RhdGEgYnl0ZXNdKSwgW2RhdGEgbGVuZ3RoXSwgc3RhdGlj
X2Nhc3Q8aW50PihbZGF0YSBsZW5ndGhdKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBOU1VJbnRlZ2VyIHRvdGFsU2l6ZSA9IDA7Ci0gICAgICAgICAgICBmb3IgKE5TRGF0YSAqZGF0
YSBpbiBkYXRhQXJyYXkpCi0gICAgICAgICAgICAgICAgdG90YWxTaXplICs9IFtkYXRhIGxlbmd0
aF07Ci0KLSAgICAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVEYXRhPiBtZXJnZWREYXRhKEFk
b3B0TlMsIFtbTlNNdXRhYmxlRGF0YSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTp0b3RhbFNpemVd
KTsKLSAgICAgICAgICAgIGZvciAoTlNEYXRhICpkYXRhIGluIGRhdGFBcnJheSkKLSAgICAgICAg
ICAgICAgICBbbWVyZ2VkRGF0YS5nZXQoKSBhcHBlbmREYXRhOmRhdGFdOwotCi0gICAgICAgICAg
ICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKG1faGFuZGxlLCBzdGF0aWNfY2Fz
dDxjb25zdCBjaGFyKj4oW21lcmdlZERhdGEuZ2V0KCkgYnl0ZXNdKSwgdG90YWxTaXplLCBzdGF0
aWNfY2FzdDxpbnQ+KHRvdGFsU2l6ZSkpOwotICAgICAgICB9Ci0gICAgfQotCisgICAgbV9oYW5k
bGUtPmhhbmRsZURhdGFBcnJheShyZWludGVycHJldF9jYXN0PENGQXJyYXlSZWY+KGRhdGFBcnJh
eSkpOwogICAgIC8vIFRoZSBjYWxsIHRvIGRpZFJlY2VpdmVEYXRhIGFib3ZlIGNhbiBjYW5jZWwg
YSBsb2FkLCBhbmQgaWYgc28sIHRoZSBkZWxlZ2F0ZSAoc2VsZikgY291bGQgaGF2ZSBiZWVuIGRl
YWxsb2NhdGVkIGJ5IHRoaXMgcG9pbnQuCiB9CiAjZW5kaWYK
</data>
<flag name="review"
          id="94677"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>