<?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>45143</bug_id>
          
          <creation_ts>2010-09-02 15:49:14 -0700</creation_ts>
          <short_desc>V8/JS bindings should not perform type checks if the parameter has Callback attribute</short_desc>
          <delta_ts>2010-09-03 21:25:36 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>0</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dumi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273634</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-02 15:49:14 -0700</bug_when>
    <thetext>It causes compile error if an overloaded function has callback parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273717</commentid>
    <comment_count>1</comment_count>
      <attachid>66450</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-02 18:25:31 -0700</bug_when>
    <thetext>Created attachment 66450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273763</commentid>
    <comment_count>2</comment_count>
      <attachid>66450</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-09-02 20:01:56 -0700</bug_when>
    <thetext>Comment on attachment 66450
Patch

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:1137
&gt; +        if ($codeGenerator-&gt;IsStringType($type)) {
i think it might be cleaner to format this code as:

if (IsStringType($type)) {
  ...
} elsif ($parameter-&gt;extendedAttributes-&gt;{&quot;Callback&quot;}) {
  ...
} elsif (!IsNativeType($type)) {
  ...
}

same comment for CodeGeneratorV8.pm.


&gt; WebCore/bindings/scripts/test/V8/V8TestObj.cpp:-981
&gt; -    if ((args.Length() == 2 &amp;&amp; (args[0]-&gt;IsNull() || V8TestObj::HasInstance(args[0])) &amp;&amp; (args[1]-&gt;IsNull() || args[1]-&gt;IsUndefined() || args[1]-&gt;IsString() || args[1]-&gt;IsObject())))
i believe you need to change JS/JSTestObj.cpp too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273788</commentid>
    <comment_count>3</comment_count>
      <attachid>66469</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-02 22:32:08 -0700</bug_when>
    <thetext>Created attachment 66469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273791</commentid>
    <comment_count>4</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-02 22:40:24 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 66450 [details])
&gt; &gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:1137
&gt; &gt; +        if ($codeGenerator-&gt;IsStringType($type)) {
&gt; i think it might be cleaner to format this code as:
&gt; 
&gt; if (IsStringType($type)) {
&gt;   ...
&gt; } elsif ($parameter-&gt;extendedAttributes-&gt;{&quot;Callback&quot;}) {
&gt;   ...
&gt; } elsif (!IsNativeType($type)) {
&gt;   ...
&gt; }
&gt; 
&gt; same comment for CodeGeneratorV8.pm.

Fixed.

Wasn&apos;t very sure if we want to check that for native types... but maybe it would contribute to readability.

&gt; &gt; WebCore/bindings/scripts/test/V8/V8TestObj.cpp:-981
&gt; &gt; -    if ((args.Length() == 2 &amp;&amp; (args[0]-&gt;IsNull() || V8TestObj::HasInstance(args[0])) &amp;&amp; (args[1]-&gt;IsNull() || args[1]-&gt;IsUndefined() || args[1]-&gt;IsString() || args[1]-&gt;IsObject())))
&gt; i believe you need to change JS/JSTestObj.cpp too.

Fixed.  (The update in the previous patch was an error actually - this time I added a new overloaded method with callback arg and updated both {V8,JS}TestObj.cpp.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273855</commentid>
    <comment_count>5</comment_count>
      <attachid>66469</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-09-03 03:40:03 -0700</bug_when>
    <thetext>Comment on attachment 66469
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273986</commentid>
    <comment_count>6</comment_count>
      <attachid>66469</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-03 09:59:39 -0700</bug_when>
    <thetext>Comment on attachment 66469
Patch

Why did this test go in without any actual JavaScript regression tests? Presumably this was done to change real-world behavior, not just to change the bindings source code in a way that is not visible from web pages.

We don’t want bug fixes going in without regression tests. I don’t see any reason for this to be an exception!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273987</commentid>
    <comment_count>7</comment_count>
      <attachid>66469</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-03 10:00:04 -0700</bug_when>
    <thetext>Comment on attachment 66469
Patch

I’m going to change this to a review- until I find out why there are no regression tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273988</commentid>
    <comment_count>8</comment_count>
      <attachid>66469</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-03 10:00:33 -0700</bug_when>
    <thetext>Comment on attachment 66469
Patch

Oops, I see now. A compilation error. My bad. Adding back Dumi’s review+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274088</commentid>
    <comment_count>9</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-03 11:56:09 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 66469 [details])
&gt; Oops, I see now. A compilation error. My bad. Adding back Dumi’s review+.

Thanks for examining this... ok to go now?   Currently there&apos;s no such IDL that has overloaded function with callbacks (I was going to add one and got a compilation error).   I&apos;ll double check that this doesn&apos;t change anything for existing IDLs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274171</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-03 14:17:13 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Thanks for examining this... ok to go now?

I have no objection. I didn’t review the patch, but I see no reason to reverse Dumi’s review+ now that I understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274346</commentid>
    <comment_count>11</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-03 21:25:36 -0700</bug_when>
    <thetext>Committed r66791: &lt;http://trac.webkit.org/changeset/66791&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66450</attachid>
            <date>2010-09-02 18:25:31 -0700</date>
            <delta_ts>2010-09-02 22:32:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45143-20100902182529.patch</filename>
            <type>text/plain</type>
            <size>5515</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjFhMThkZDk1MGRiODJjZjRlNzBkYzY0OTYxNGJhMDJjOWVkMDIwOS4uYzZiZDgyYmU2MzVkNDZi
ZDI0ODMyNjg2NWI3ZDA3ZTUyMDQ4ZmM4YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxMC0wOS0wMiAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVjgvSlMgYmluZGluZ3Mgc2hvdWxkIG5vdCBwZXJm
b3JtIHR5cGUgY2hlY2tzIGlmIHRoZSBwYXJhbWV0ZXIgaGFzIENhbGxiYWNrIGF0dHJpYnV0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxNDMKKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0aW5nIHJ1bi1iaW5kaW5ncy10ZXN0cyBleHBlY3Rh
dGlvbnMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RPYmpJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZENhbGxiYWNrKToKKworMjAxMC0w
OS0wMiAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgVW5y
ZXZpZXdlZCwgdXBkYXRpbmcgYmluZGluZy10ZXN0cyBleHBlY3RhdGlvbnMgKGZvciBjaGFuZ2Vz
ZXQgNjY1MjEpLgogCiAgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHA6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCA4NGUzOTE5MDVmNTYyNTU4NTMyNzE4MDFhOGRhZjMxNTdhMDJlNjE2Li5kYTE5ZDNmNjBkYWU0
YWJiYTY1MWFhNzMxYTg2NTdmMDhjNjdmMGE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTExMzQsOSArMTEzNCwxNiBAQCBzdWIgR2VuZXJhdGVQ
YXJhbWV0ZXJzQ2hlY2tFeHByZXNzaW9uCiAgICAgICAgICMgRm9yIERPTVN0cmluZywgTnVsbCwg
VW5kZWZpbmVkIGFuZCBhbnkgT2JqZWN0IGFyZSBhY2NlcHRlZCB0b28sIGFzCiAgICAgICAgICMg
dGhlc2UgYXJlIGFjY2VwdGFibGUgdmFsdWVzIGZvciBhIERPTVN0cmluZyBhcmd1bWVudCAoYW55
IE9iamVjdCBjYW4KICAgICAgICAgIyBiZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcgdmlhIC50b1N0
cmluZykuCi0gICAgICAgIHB1c2goQGFuZEV4cHJlc3Npb24sICIoJHt2YWx1ZX0uaXNOdWxsKCkg
fHwgJHt2YWx1ZX0uaXNVbmRlZmluZWQoKSB8fCAke3ZhbHVlfS5pc1N0cmluZygpIHx8ICR7dmFs
dWV9LmlzT2JqZWN0KCkpIikgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7
Ci0gICAgICAgIHB1c2goQGFuZEV4cHJlc3Npb24sICIoJHt2YWx1ZX0uaXNOdWxsKCkgfHwgKCR7
dmFsdWV9LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoJHt2YWx1ZX0pLT5pbmhlcml0cygmSlMke3R5
cGV9OjpzX2luZm8pKSkiKSB1bmxlc3MgSXNOYXRpdmVUeXBlKCR0eXBlKTsKLQorICAgICAgICBp
ZiAoJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgIHB1
c2goQGFuZEV4cHJlc3Npb24sICIoJHt2YWx1ZX0uaXNOdWxsKCkgfHwgJHt2YWx1ZX0uaXNVbmRl
ZmluZWQoKSB8fCAke3ZhbHVlfS5pc1N0cmluZygpIHx8ICR7dmFsdWV9LmlzT2JqZWN0KCkpIik7
CisgICAgICAgIH0gZWxzaWYgKCFJc05hdGl2ZVR5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICBp
ZiAoJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0pIHsKKyAgICAg
ICAgICAgICAgICAjIEZvciBDYWxsYmFja3Mgb25seSBjaGVja3MgaWYgdGhlIHZhbHVlIGlzIG51
bGwgb3Igb2JqZWN0LgorICAgICAgICAgICAgICAgIHB1c2goQGFuZEV4cHJlc3Npb24sICIoJHt2
YWx1ZX0uaXNOdWxsKCkgfHwgJHt2YWx1ZX0uaXNPYmplY3QoKSkiKTsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS5p
c051bGwoKSB8fCAoJHt2YWx1ZX0uaXNPYmplY3QoKSAmJiBhc09iamVjdCgke3ZhbHVlfSktPmlu
aGVyaXRzKCZKUyR7dHlwZX06OnNfaW5mbykpKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9
CiAgICAgICAgICRwYXJhbWV0ZXJJbmRleCsrOwogICAgIH0KICAgICBteSAkcmVzID0gam9pbigi
ICYmICIsIEBhbmRFeHByZXNzaW9uKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCmluZGV4IDAyODE2OWY4OGI0MTc0Yjk2MzNiM2FiZGM0MjMzYjVjMWJhZmRj
NDYuLmEwNGZkZGNkOTI5ZTNjYjg3NDQ5YjllYWM4ZDNhOTg2NDc3NDZjOWYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTAzMSw4ICsxMDMxLDE2
IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVja0V4cHJlc3Npb24KICAgICAgICAgIyBGb3Ig
RE9NU3RyaW5nLCBOdWxsLCBVbmRlZmluZWQgYW5kIGFueSBPYmplY3QgYXJlIGFjY2VwdGVkIHRv
bywgYXMKICAgICAgICAgIyB0aGVzZSBhcmUgYWNjZXB0YWJsZSB2YWx1ZXMgZm9yIGEgRE9NU3Ry
aW5nIGFyZ3VtZW50IChhbnkgT2JqZWN0IGNhbgogICAgICAgICAjIGJlIGNvbnZlcnRlZCB0byBh
IHN0cmluZyB2aWEgLnRvU3RyaW5nKS4KLSAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigk
e3ZhbHVlfS0+SXNOdWxsKCkgfHwgJHt2YWx1ZX0tPklzVW5kZWZpbmVkKCkgfHwgJHt2YWx1ZX0t
PklzU3RyaW5nKCkgfHwgJHt2YWx1ZX0tPklzT2JqZWN0KCkpIikgaWYgJGNvZGVHZW5lcmF0b3It
PklzU3RyaW5nVHlwZSgkdHlwZSk7Ci0gICAgICAgIHB1c2goQGFuZEV4cHJlc3Npb24sICIoJHt2
YWx1ZX0tPklzTnVsbCgpIHx8IFY4JHt0eXBlfTo6SGFzSW5zdGFuY2UoJHZhbHVlKSkiKSBpZiBJ
c1dyYXBwZXJUeXBlKCR0eXBlKTsKKyAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmlu
Z1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICBwdXNoKEBhbmRFeHByZXNzaW9uLCAiKCR7dmFs
dWV9LT5Jc051bGwoKSB8fCAke3ZhbHVlfS0+SXNVbmRlZmluZWQoKSB8fCAke3ZhbHVlfS0+SXNT
dHJpbmcoKSB8fCAke3ZhbHVlfS0+SXNPYmplY3QoKSkiKTsKKyAgICAgICAgfSBlbHNpZiAoSXNX
cmFwcGVyVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5leHRlbmRl
ZEF0dHJpYnV0ZXMoeyJDYWxsYmFjayJ9KSkgeworICAgICAgICAgICAgICAgICMgRm9yIENhbGxi
YWNrcyBvbmx5IGNoZWNrcyBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciBvYmplY3QuCisgICAgICAg
ICAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS0+SXNOdWxsKCkgfHwgJHt2
YWx1ZX0tPklzT2JqZWN0KCkpIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIHB1c2goQGFuZEV4cHJlc3Npb24sICIoJHt2YWx1ZX0tPklzTnVsbCgpIHx8IFY4JHt0eXBl
fTo6SGFzSW5zdGFuY2UoJHZhbHVlKSkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCiAg
ICAgICAgICRwYXJhbWV0ZXJJbmRleCsrOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDUyODg3ZDFjYTdkNDA5ZWM4MDEwOGE5
MTMwNmI4YjY5Mjk2NmUwMWQuLmZiYmYyOTJiZGQ5NGExZjE1ZWVmMjM1ZWE2ZDNiN2FhNWZlOTNl
NTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNw
cApAQCAtOTc4LDkgKzk3OCw5IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3Zlcmxv
YWRlZE1ldGhvZDRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoub3ZlcmxvYWRlZE1l
dGhvZCIpOwotICAgIGlmICgoYXJncy5MZW5ndGgoKSA9PSAyICYmIChhcmdzWzBdLT5Jc051bGwo
KSB8fCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSAmJiAoYXJnc1sxXS0+SXNOdWxs
KCkgfHwgYXJnc1sxXS0+SXNVbmRlZmluZWQoKSB8fCBhcmdzWzFdLT5Jc1N0cmluZygpIHx8IGFy
Z3NbMV0tPklzT2JqZWN0KCkpKSkKKyAgICBpZiAoKGFyZ3MuTGVuZ3RoKCkgPT0gMiAmJiAoYXJn
c1swXS0+SXNOdWxsKCkgfHwgYXJnc1swXS0+SXNPYmplY3QoKSkgJiYgKGFyZ3NbMV0tPklzTnVs
bCgpIHx8IGFyZ3NbMV0tPklzVW5kZWZpbmVkKCkgfHwgYXJnc1sxXS0+SXNTdHJpbmcoKSB8fCBh
cmdzWzFdLT5Jc09iamVjdCgpKSkpCiAgICAgICAgIHJldHVybiBvdmVybG9hZGVkTWV0aG9kMUNh
bGxiYWNrKGFyZ3MpOwotICAgIGlmICgoYXJncy5MZW5ndGgoKSA9PSAxICYmIChhcmdzWzBdLT5J
c051bGwoKSB8fCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSkgfHwgKGFyZ3MuTGVu
Z3RoKCkgPT0gMiAmJiAoYXJnc1swXS0+SXNOdWxsKCkgfHwgVjhUZXN0T2JqOjpIYXNJbnN0YW5j
ZShhcmdzWzBdKSkpKQorICAgIGlmICgoYXJncy5MZW5ndGgoKSA9PSAxICYmIChhcmdzWzBdLT5J
c051bGwoKSB8fCBhcmdzWzBdLT5Jc09iamVjdCgpKSkgfHwgKGFyZ3MuTGVuZ3RoKCkgPT0gMiAm
JiAoYXJnc1swXS0+SXNOdWxsKCkgfHwgYXJnc1swXS0+SXNPYmplY3QoKSkpKQogICAgICAgICBy
ZXR1cm4gb3ZlcmxvYWRlZE1ldGhvZDJDYWxsYmFjayhhcmdzKTsKICAgICBpZiAoKGFyZ3MuTGVu
Z3RoKCkgPT0gMSAmJiAoYXJnc1swXS0+SXNOdWxsKCkgfHwgYXJnc1swXS0+SXNVbmRlZmluZWQo
KSB8fCBhcmdzWzBdLT5Jc1N0cmluZygpIHx8IGFyZ3NbMF0tPklzT2JqZWN0KCkpKSkKICAgICAg
ICAgcmV0dXJuIG92ZXJsb2FkZWRNZXRob2QzQ2FsbGJhY2soYXJncyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66469</attachid>
            <date>2010-09-02 22:32:08 -0700</date>
            <delta_ts>2010-09-03 10:00:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45143-20100902223207.patch</filename>
            <type>text/plain</type>
            <size>8438</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjFhMThkZDk1MGRiODJjZjRlNzBkYzY0OTYxNGJhMDJjOWVkMDIwOS4uNjc4MGVkNjcwOGE1YTdl
MGY5NjI5OTM1OWQ2NjY0MTY1OGQwYTUyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxMC0wOS0wMiAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVjgvSlMgYmluZGluZ3Mgc2hvdWxkIG5vdCBwZXJm
b3JtIHR5cGUgY2hlY2tzIGlmIHRoZSBwYXJhbWV0ZXIgaGFzIENhbGxiYWNrIGF0dHJpYnV0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxNDMKKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0aW5nIHJ1bi1iaW5kaW5ncy10ZXN0cyBleHBlY3Rh
dGlvbnMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqSW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2Q1Q2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kQ2FsbGJhY2spOgorCisy
MDEwLTA5LTAyICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KKwogICAgICAg
ICBVbnJldmlld2VkLCB1cGRhdGluZyBiaW5kaW5nLXRlc3RzIGV4cGVjdGF0aW9ucyAoZm9yIGNo
YW5nZXNldCA2NjUyMSkuCiAKICAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CmluZGV4IDg0ZTM5MTkwNWY1NjI1NTg1MzI3MTgwMWE4ZGFmMzE1N2EwMmU2MTYuLjFhMTE0YTQy
OTdlMTQ5MjkzM2JhYjI4M2UzNjRmNWNhMTQ3OTJiY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTEzNCw5ICsxMTM0LDE0IEBAIHN1YiBHZW5l
cmF0ZVBhcmFtZXRlcnNDaGVja0V4cHJlc3Npb24KICAgICAgICAgIyBGb3IgRE9NU3RyaW5nLCBO
dWxsLCBVbmRlZmluZWQgYW5kIGFueSBPYmplY3QgYXJlIGFjY2VwdGVkIHRvbywgYXMKICAgICAg
ICAgIyB0aGVzZSBhcmUgYWNjZXB0YWJsZSB2YWx1ZXMgZm9yIGEgRE9NU3RyaW5nIGFyZ3VtZW50
IChhbnkgT2JqZWN0IGNhbgogICAgICAgICAjIGJlIGNvbnZlcnRlZCB0byBhIHN0cmluZyB2aWEg
LnRvU3RyaW5nKS4KLSAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS5pc051
bGwoKSB8fCAke3ZhbHVlfS5pc1VuZGVmaW5lZCgpIHx8ICR7dmFsdWV9LmlzU3RyaW5nKCkgfHwg
JHt2YWx1ZX0uaXNPYmplY3QoKSkiKSBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0
eXBlKTsKLSAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS5pc051bGwoKSB8
fCAoJHt2YWx1ZX0uaXNPYmplY3QoKSAmJiBhc09iamVjdCgke3ZhbHVlfSktPmluaGVyaXRzKCZK
UyR7dHlwZX06OnNfaW5mbykpKSIpIHVubGVzcyBJc05hdGl2ZVR5cGUoJHR5cGUpOwotCisgICAg
ICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKSkgeworICAgICAgICAg
ICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS5pc051bGwoKSB8fCAke3ZhbHVlfS5p
c1VuZGVmaW5lZCgpIHx8ICR7dmFsdWV9LmlzU3RyaW5nKCkgfHwgJHt2YWx1ZX0uaXNPYmplY3Qo
KSkiKTsKKyAgICAgICAgfSBlbHNpZiAoJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNhbGxiYWNrIn0pIHsKKyAgICAgICAgICAgICMgRm9yIENhbGxiYWNrcyBvbmx5IGNoZWNrcyBp
ZiB0aGUgdmFsdWUgaXMgbnVsbCBvciBvYmplY3QuCisgICAgICAgICAgICBwdXNoKEBhbmRFeHBy
ZXNzaW9uLCAiKCR7dmFsdWV9LmlzTnVsbCgpIHx8ICR7dmFsdWV9LmlzT2JqZWN0KCkpIik7Cisg
ICAgICAgIH0gZWxzaWYgKCFJc05hdGl2ZVR5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICBwdXNo
KEBhbmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9LmlzTnVsbCgpIHx8ICgke3ZhbHVlfS5pc09iamVj
dCgpICYmIGFzT2JqZWN0KCR7dmFsdWV9KS0+aW5oZXJpdHMoJkpTJHt0eXBlfTo6c19pbmZvKSkp
Iik7CisgICAgICAgIH0KICAgICAgICAgJHBhcmFtZXRlckluZGV4Kys7CiAgICAgfQogICAgIG15
ICRyZXMgPSBqb2luKCIgJiYgIiwgQGFuZEV4cHJlc3Npb24pOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggMDI4MTY5Zjg4YjQxNzRiOTYzM2IzYWJk
YzQyMzNiNWMxYmFmZGM0Ni4uZWNhNzMwMTZlYjk5NjZlOWVkMjZkMTRkZTBiNDA0YWQ3MmYzMmFl
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0x
MDMxLDggKzEwMzEsMTQgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrRXhwcmVzc2lvbgog
ICAgICAgICAjIEZvciBET01TdHJpbmcsIE51bGwsIFVuZGVmaW5lZCBhbmQgYW55IE9iamVjdCBh
cmUgYWNjZXB0ZWQgdG9vLCBhcwogICAgICAgICAjIHRoZXNlIGFyZSBhY2NlcHRhYmxlIHZhbHVl
cyBmb3IgYSBET01TdHJpbmcgYXJndW1lbnQgKGFueSBPYmplY3QgY2FuCiAgICAgICAgICMgYmUg
Y29udmVydGVkIHRvIGEgc3RyaW5nIHZpYSAudG9TdHJpbmcpLgotICAgICAgICBwdXNoKEBhbmRF
eHByZXNzaW9uLCAiKCR7dmFsdWV9LT5Jc051bGwoKSB8fCAke3ZhbHVlfS0+SXNVbmRlZmluZWQo
KSB8fCAke3ZhbHVlfS0+SXNTdHJpbmcoKSB8fCAke3ZhbHVlfS0+SXNPYmplY3QoKSkiKSBpZiAk
Y29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKLSAgICAgICAgcHVzaChAYW5kRXhw
cmVzc2lvbiwgIigke3ZhbHVlfS0+SXNOdWxsKCkgfHwgVjgke3R5cGV9OjpIYXNJbnN0YW5jZSgk
dmFsdWUpKSIpIGlmIElzV3JhcHBlclR5cGUoJHR5cGUpOworICAgICAgICBpZiAoJGNvZGVHZW5l
cmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgIHB1c2goQGFuZEV4cHJl
c3Npb24sICIoJHt2YWx1ZX0tPklzTnVsbCgpIHx8ICR7dmFsdWV9LT5Jc1VuZGVmaW5lZCgpIHx8
ICR7dmFsdWV9LT5Jc1N0cmluZygpIHx8ICR7dmFsdWV9LT5Jc09iamVjdCgpKSIpOworICAgICAg
ICB9IGVsc2lmICgkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJhY2sifSkg
eworICAgICAgICAgICAgIyBGb3IgQ2FsbGJhY2tzIG9ubHkgY2hlY2tzIGlmIHRoZSB2YWx1ZSBp
cyBudWxsIG9yIG9iamVjdC4KKyAgICAgICAgICAgIHB1c2goQGFuZEV4cHJlc3Npb24sICIoJHt2
YWx1ZX0tPklzTnVsbCgpIHx8ICR7dmFsdWV9LT5Jc09iamVjdCgpKSIpOworICAgICAgICB9IGVs
c2lmIChJc1dyYXBwZXJUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgcHVzaChAYW5kRXhwcmVz
c2lvbiwgIigke3ZhbHVlfS0+SXNOdWxsKCkgfHwgVjgke3R5cGV9OjpIYXNJbnN0YW5jZSgkdmFs
dWUpKSIpOworICAgICAgICB9CiAKICAgICAgICAgJHBhcmFtZXRlckluZGV4Kys7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXgg
MmEzOWFjNGUzMTM0NjVkN2QzZTcwMTZhMTIwOTliM2FmMjg4YzIxNS4uZTE3MmNkNTdlNGY2M2Q0
N2VhZjQ0OGJhNDM2MGNlMDViMzI0NmFlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0xNDE1LDYgKzE0MTUsMjMgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kNCgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q1KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNW
YWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjKTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2Fz
dDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDw9IDAgfHwgIWV4ZWMtPmFyZ3VtZW50KDApLmlzT2JqZWN0KCkpIHsK
KyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9CisgICAgUmVm
UHRyPFRlc3RDYWxsYmFjaz4gY2FsbGJhY2sgPSBKU1Rlc3RDYWxsYmFjazo6Y3JlYXRlKGFzT2Jq
ZWN0KGV4ZWMtPmFyZ3VtZW50KDApKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpOworCisg
ICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKGNhbGxiYWNrKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgaWYgKChleGVjLT5hcmd1bWVudENvdW50KCkgPT0gMiAmJiAoZXhlYy0+YXJn
dW1lbnQoMCkuaXNOdWxsKCkgfHwgKGV4ZWMtPmFyZ3VtZW50KDApLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZXhlYy0+YXJndW1lbnQoMCkpLT5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKSkg
JiYgKGV4ZWMtPmFyZ3VtZW50KDEpLmlzTnVsbCgpIHx8IGV4ZWMtPmFyZ3VtZW50KDEpLmlzVW5k
ZWZpbmVkKCkgfHwgZXhlYy0+YXJndW1lbnQoMSkuaXNTdHJpbmcoKSB8fCBleGVjLT5hcmd1bWVu
dCgxKS5pc09iamVjdCgpKSkpCkBAIC0xNDI1LDYgKzE0NDIsOCBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZChF
eGVjU3RhdAogICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kMyhleGVjKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID09IDEpCiAg
ICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0
KGV4ZWMpOworICAgIGlmICgoZXhlYy0+YXJndW1lbnRDb3VudCgpID09IDEgJiYgKGV4ZWMtPmFy
Z3VtZW50KDApLmlzTnVsbCgpIHx8IGV4ZWMtPmFyZ3VtZW50KDApLmlzT2JqZWN0KCkpKSkKKyAg
ICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDUo
ZXhlYyk7CiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggOTRmNzM0YmM3ZjE0NWJmOGEy
NmU5MDhhZGYxYWMwYTY5NjM0YzhjMy4uZjhmZTc4MjdmOTQwOTJiMWZmYjliNGU2MDllMTk0NDc5
MDM1NjBjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAg
LTEzNSw2ICsxMzUsNyBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRl
ZE1ldGhvZChpbiBUZXN0T2JqIG9iakFyZywgaW4gW09wdGlvbmFsXSBsb25nIGludEFyZyk7CiAg
ICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBET01TdHJpbmcgc3RyQXJnKTsKICAg
ICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIGxvbmcgaW50QXJnKTsKKyAgICAgICAg
dm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIFtDYWxsYmFja10gVGVzdENhbGxiYWNrIGNhbGxi
YWNrKTsKICNlbmRpZgogCiAgICAgICAgIC8vIE9iamVjdGl2ZUMgcmVzZXJ2ZWQgd29yZHMuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCA1
Mjg4N2QxY2E3ZDQwOWVjODAxMDhhOTEzMDZiOGI2OTI5NjZlMDFkLi5iNGFjZjc0ZTliYWQxODAz
YTc5MzkxYTIzM2NkNmFiZDRmZTlhNjJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTk3NSw2ICs5NzUsMTcgQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kNENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CiAKK3N0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDVDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoub3Zl
cmxvYWRlZE1ldGhvZDUiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZl
KGFyZ3MuSG9sZGVyKCkpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDw9IDAgfHwgIWFyZ3NbMF0t
PklzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFRZUEVfTUlTTUFUQ0hfRVJS
KTsKKyAgICBSZWZQdHI8VGVzdENhbGxiYWNrPiBjYWxsYmFjayA9IFY4VGVzdENhbGxiYWNrOjpj
cmVhdGUoYXJnc1swXSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBpbXAtPm92
ZXJsb2FkZWRNZXRob2QoY2FsbGJhY2spOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9k
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLm92ZXJsb2FkZWRNZXRob2QiKTsKQEAgLTk4Niw2ICs5OTcsOCBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQogICAgICAgICByZXR1cm4gb3ZlcmxvYWRlZE1ldGhvZDNDYWxsYmFj
ayhhcmdzKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA9PSAxKQogICAgICAgICByZXR1cm4gb3Zl
cmxvYWRlZE1ldGhvZDRDYWxsYmFjayhhcmdzKTsKKyAgICBpZiAoKGFyZ3MuTGVuZ3RoKCkgPT0g
MSAmJiAoYXJnc1swXS0+SXNOdWxsKCkgfHwgYXJnc1swXS0+SXNPYmplY3QoKSkpKQorICAgICAg
ICByZXR1cm4gb3ZlcmxvYWRlZE1ldGhvZDVDYWxsYmFjayhhcmdzKTsKICAgICBWOFByb3h5Ojp0
aHJvd1R5cGVFcnJvcigpOwogICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwog
fQo=
</data>
<flag name="review"
          id="55504"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>