<?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>72382</bug_id>
          
          <creation_ts>2011-11-15 05:58:47 -0800</creation_ts>
          <short_desc>[Gtk] atk_text_get_text_at_offset() sometimes fails to provide the correct line</short_desc>
          <delta_ts>2012-02-02 05:18:26 -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>Accessibility</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>25531</blocked>
    
    <blocked>73431</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Mario Sanchez Prada">mario</assigned_to>
          <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>502848</commentid>
    <comment_count>0</comment_count>
      <attachid>115151</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2011-11-15 05:58:47 -0800</bug_when>
    <thetext>Created attachment 115151
test script

Steps to reproduce:

1. View http://www.vogella.de/articles/OSGi/article.html in epiphany
2. Launch the attached test script
3. In epiphany, press F7 to enable caret browsing
4. Position the caret at the heading &apos;3.2 Coding&apos;
5. Begin Down Arrowing

Results: The lines of text are correctly reported outside of the code examples. Inside the examples, characters are reported for lines on which they do not appear, and all lines seem to be incorrect.

(Perhaps a failed/overlooked &apos;flattening&apos; case??)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534836</commentid>
    <comment_count>1</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-01-12 07:49:22 -0800</bug_when>
    <thetext>Seems to be related to an additional &apos;\n&apos; that is being manually added in some cases, at the end of a line. See https://bugs.webkit.org/show_bug.cgi?id=25415#c78.

Now working on it...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534921</commentid>
    <comment_count>2</comment_count>
      <attachid>122263</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-01-12 09:49:33 -0800</bug_when>
    <thetext>Created attachment 122263
Patch proposal + Unit test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536938</commentid>
    <comment_count>3</comment_count>
      <attachid>122263</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-01-17 00:50:42 -0800</bug_when>
    <thetext>Comment on attachment 122263
Patch proposal + Unit test

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

&gt; Source/WebKit/gtk/tests/testatk.c:796
&gt; +static void testWebkitAtkGetTextAtOffserWithPreformattedText()

Obviously, this is a typo. The right name would be testWebkitAtkGetTextAtOffsetWithPreformattedText()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537023</commentid>
    <comment_count>4</comment_count>
      <attachid>122750</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-01-17 04:59:48 -0800</bug_when>
    <thetext>Created attachment 122750
Patch proposal + Unit test

New patch, fixing some stupid mistakes in the previous one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541648</commentid>
    <comment_count>5</comment_count>
      <attachid>123799</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-01-24 13:52:30 -0800</bug_when>
    <thetext>Created attachment 123799
Patch proposal + Unit Test

Updating the patch after the refactor done for fixing bug 76783</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541661</commentid>
    <comment_count>6</comment_count>
      <attachid>123799</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-01-24 13:59:28 -0800</bug_when>
    <thetext>Comment on attachment 123799
Patch proposal + Unit Test

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

&gt; Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp:-105
&gt; -            box = box-&gt;nextTextBox();

Did you mean to remove this line? I don&apos;t see anyting about this in the ChangeLog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545421</commentid>
    <comment_count>7</comment_count>
      <attachid>123799</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-01-30 14:31:38 -0800</bug_when>
    <thetext>Comment on attachment 123799
Patch proposal + Unit Test

While smoke testing some stuff with MiniBrowser and Orca, I found out today that this patch seems to cause some hangs when browsing with the caret, so I&apos;m withdrawing the r? flag for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547081</commentid>
    <comment_count>8</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-02-01 07:38:56 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 123799 [details])
&gt; While smoke testing some stuff with MiniBrowser and Orca, I found out today that this patch seems to cause some hangs when browsing with the caret

Found an Orca-free way to reliably reproduce the hang:

1. Launch the tester (below)
2. Launch Epiphany
3. Navigate via the caret

I get reliable and immediate hangs in Epiphany, along with the following pyatspi lookup error:

Traceback (most recent call last):
  File &quot;/usr/lib/python2.7/site-packages/pyatspi/registry.py&quot;, line 193, in eventWrapper
    return callback(event)
  File &quot;./caret-moved.py&quot;, line 11, in listener
    print text.getTextAtOffset(event.detail1, pyatspi.TEXT_BOUNDARY_LINE_START)
  File &quot;/usr/lib/python2.7/site-packages/pyatspi/text.py&quot;, line 443, in getTextAtOffset
    ret = exwrap(Atspi.Text.get_text_at_offset, self.obj, offset, type)
  File &quot;/usr/lib/python2.7/site-packages/pyatspi/utils.py&quot;, line 339, in exwrap
    raise LookupError
LookupError

BTW pyatspi LookupErrors are the spawn of &lt;insert your personal devil here&gt;. I&apos;ll poke Mike Gorse.

--------------------
#!/usr/bin/python

import pyatspi

def listener(event):
    try:
        text = event.source.queryText()
    except NotImplementedError:
        return

    print text.getTextAtOffset(event.detail1, pyatspi.TEXT_BOUNDARY_LINE_START)

pyatspi.Registry.registerEventListener(listener, &quot;object:text-caret-moved&quot;)
pyatspi.Registry.start()
--------------------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547129</commentid>
    <comment_count>9</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-02-01 09:30:50 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 123799 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=123799&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp:-105
&gt; &gt; -            box = box-&gt;nextTextBox();
&gt; 
&gt; Did you mean to remove this line? I don&apos;t see anyting about this in the ChangeLog?

So... I&apos;m going to test having put that line back. Unfortunately, I&apos;m still building (building building) WebKitGtk due to having built Gtk+ and Glib from master. But in the meantime, it sure looks to me that this may be the source of the hang because I don&apos;t see anything else updating the value of box which is being looped over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547211</commentid>
    <comment_count>10</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2012-02-01 10:58:19 -0800</bug_when>
    <thetext>So finally the build completed. I did some quick testing of WebKit from master with the patch proposed with the accidentally removed line put back. Bug seems to be fixed, hang is definitely gone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547281</commentid>
    <comment_count>11</comment_count>
      <attachid>124990</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-02-01 12:30:28 -0800</bug_when>
    <thetext>Created attachment 124990
Patch proposal + Unit Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547283</commentid>
    <comment_count>12</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-02-01 12:31:44 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 123799 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=123799&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp:-105
&gt; &gt; -            box = box-&gt;nextTextBox();
&gt; 
&gt; Did you mean to remove this line? I don&apos;t see anyting about this in the ChangeLog?

(In reply to comment #10)
&gt; So finally the build completed. I did some quick testing of WebKit from master with the patch proposed with the accidentally removed line put back. Bug seems to be fixed, hang is definitely gone.

You both were right. Sorry for this mistake, and for making you waste your time... now attached the right one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547807</commentid>
    <comment_count>13</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-02-02 05:18:26 -0800</bug_when>
    <thetext>Committed r106545: &lt;http://trac.webkit.org/changeset/106545&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>115151</attachid>
            <date>2011-11-15 05:58:47 -0800</date>
            <delta_ts>2011-11-15 05:58:47 -0800</delta_ts>
            <desc>test script</desc>
            <filename>text-lines.py</filename>
            <type>text/plain</type>
            <size>483</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9weXRob24KCmltcG9ydCBweWF0c3BpCgpkZWYgb25DYXJldE1vdmVkKGV2ZW50
KToKICAgIHRyeToKICAgICAgICB0ZXh0ID0gZXZlbnQuc291cmNlLnF1ZXJ5VGV4dCgpCiAgICBl
eGNlcHQgTm90SW1wbGVtZW50ZWRFcnJvcjoKICAgICAgICByZXR1cm4KCiAgICBsaW5lID0gdGV4
dC5nZXRUZXh0QXRPZmZzZXQodGV4dC5jYXJldE9mZnNldCwgcHlhdHNwaS5URVhUX0JPVU5EQVJZ
X0xJTkVfU1RBUlQpCiAgICBwcmludCAiXG5DdXJyZW50IGxpbmU6ICVzXG5zdGFydE9mZnNldDog
JXMgZW5kT2Zmc2V0OiAlcyBjYXJldE9mZnNldDogJXMiICUgXAogICAgICAgIChsaW5lWzBdLCBs
aW5lWzFdLCBsaW5lWzJdLCB0ZXh0LmNhcmV0T2Zmc2V0KQoKcHlhdHNwaS5SZWdpc3RyeS5yZWdp
c3RlckV2ZW50TGlzdGVuZXIob25DYXJldE1vdmVkLCAib2JqZWN0OnRleHQtY2FyZXQtbW92ZWQi
KQpweWF0c3BpLlJlZ2lzdHJ5LnN0YXJ0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122263</attachid>
            <date>2012-01-12 09:49:33 -0800</date>
            <delta_ts>2012-01-17 04:59:48 -0800</delta_ts>
            <desc>Patch proposal + Unit test</desc>
            <filename>0001-2012-01-12-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>8157</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAyYjExNjU0ODc4NjRmMzFkYzI0YTczOTBjMmM5ZmVjZDYwZWUwNGNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUaHUsIDEyIEphbiAyMDEyIDE4OjQyOjQxICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMi0wMS0xMiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIHNvbWV0aW1lcyBm
YWlscyB0byBwcm92aWRlIHRoZSBjb3JyZWN0IGxpbmUKICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzODIKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgogICAgICAgIERvIG5vdCBhZGQgdW5uZWNlc2FyeSBibGFua3MgYXQgdGhlIGVu
ZCBvZiBhIGxpbmUgb2YgdGV4dC4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAgKHRleHRGb3JSZW5kZXJlcik6IERv
IG5vdCBqdXN0IGFwcGVuZCBhICdcbicgYXQgdGhlIGVuZCBvZiBhIGxpbmUKICAgICAgICBpZiB0
aGUgbGluZWJyZWFrIGZvciB0aGF0IGxpbmUgd2FzIGFscmVhZHkgY29uc2lkZXJlZC4KCjIwMTIt
MDEtMTIgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAg
ICBbR3RrXSBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoKSBzb21ldGltZXMgZmFpbHMgdG8g
cHJvdmlkZSB0aGUgY29ycmVjdCBsaW5lCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcyMzgyCgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKICAgICAgICBOZXcgdW5pdCB0ZXN0IHRvIGVuc3VyZSB0aGUgcmlnaHQgbGluZSBpcyByZXRy
aWV2ZWQgZm9yIHRoZSBmaXJzdAogICAgICAgIHBvc2l0aW9uIG9mIGVhY2ggbGluZSBpbiBhIG11
bHRpbGluZSBwcmVmb3JtYXR0ZWQgcG9ydGlvbiBvZiB0ZXh0LgoKICAgICAgICAqIHRlc3RzL3Rl
c3RhdGsuYzoKICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNlcldpdGhQcmVmb3Jt
YXR0ZWRUZXh0KTogTmV3IHVuaXQgdGVzdC4KICAgICAgICAobWFpbik6IEFkZCB0aGUgbmV3IHVu
aXQgdGVzdC4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTMgKysrKysrKysKIC4uLi9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJBdGsuY3BwICAgICAgICAgIHwgICAgOSArKysrKy0KIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrKysrKysKIFNvdXJjZS9XZWJL
aXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyAgICAgICAgICAgICAgICAgIHwgICAzMSArKysrKysrKysr
KysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBjMDgyZjdiLi43ZWNhYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMTggQEAKIDIwMTItMDEtMTIgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2Fs
aWEuY29tPgogCisgICAgICAgIFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIHNv
bWV0aW1lcyBmYWlscyB0byBwcm92aWRlIHRoZSBjb3JyZWN0IGxpbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8gbm90IGFkZCB1bm5lY2VzYXJ5IGJs
YW5rcyBhdCB0aGUgZW5kIG9mIGEgbGluZSBvZiB0ZXh0LgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgorICAgICAgICAodGV4
dEZvclJlbmRlcmVyKTogRG8gbm90IGp1c3QgYXBwZW5kIGEgJ1xuJyBhdCB0aGUgZW5kIG9mIGEg
bGluZQorICAgICAgICBpZiB0aGUgbGluZWJyZWFrIGZvciB0aGF0IGxpbmUgd2FzIGFscmVhZHkg
Y29uc2lkZXJlZC4KKworMjAxMi0wMS0xMiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6
QGlnYWxpYS5jb20+CisKICAgICAgICAgW0dUS10gQVRLIHRleHQtY2FyZXQtbW92ZWQgYW5kIHRl
eHQtc2VsZWN0aW9uLWNoYW5nZWQgZXZlbnRzIG5vdCBiZWluZyBlbWl0dGVkCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA2OQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggZWFkYWNhZi4uNTFiZDMzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtMTIwMyw4ICsxMjAzLDE1IEBAIGdjaGFy
KiB0ZXh0Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICAgICAgICAgIC8v
IE5ld2xpbmUgY2hhcnMgaW4gdGhlIHNvdXJjZSByZXN1bHQgaW4gc2VwYXJhdGUgdGV4dCBib3hl
cywgc28gY2hlY2sKICAgICAgICAgICAgIC8vIGJlZm9yZSBhZGRpbmcgYSBuZXdsaW5lIGluIHRo
ZSBsYXlvdXQuIFNlZSBidWcgMjU0MTUgY29tbWVudCAjNzguCiAgICAgICAgICAgICAvLyBJZiB0
aGUgbmV4dCBzaWJsaW5nIGlzIGEgQlIsIHdlJ2xsIGFkZCB0aGUgbmV3bGluZSB3aGVuIHdlIGV4
YW1pbmUgdGhhdCBjaGlsZC4KLSAgICAgICAgICAgIGlmICghYm94LT5uZXh0T25MaW5lRXhpc3Rz
KCkgJiYgKCFvYmplY3QtPm5leHRTaWJsaW5nKCkgfHwgIW9iamVjdC0+bmV4dFNpYmxpbmcoKS0+
aXNCUigpKSkKKyAgICAgICAgICAgIGlmICghYm94LT5uZXh0T25MaW5lRXhpc3RzKCkgJiYgIShv
YmplY3QtPm5leHRTaWJsaW5nKCkgJiYgb2JqZWN0LT5uZXh0U2libGluZygpLT5pc0JSKCkpKSB7
CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgd2FzIGEgJ1xuJyBpbiB0aGUgbGFzdCBwb3Np
dGlvbiBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBjdXJyZW50IHRleHQgYm94LCBpdCB3b3Vs
ZCBoYXZlIGJlZW4gY29udmVydGVkIHRvIGEKKyAgICAgICAgICAgICAgICAvLyBzcGFjZSBpbiBj
b252ZXJ0VW5pQ2hhclRvVVRGOCwgc28gcmVtb3ZlIGl0IGZpcnN0LgorICAgICAgICAgICAgICAg
IGlmIChyZW5kZXJUZXh0LT5jaGFyYWN0ZXJzKClbYm94LT5lbmQoKV0gPT0gJ1xuJykKKyAgICAg
ICAgICAgICAgICAgICAgZ19zdHJpbmdfZXJhc2UocmVzdWx0VGV4dCwgcmVzdWx0VGV4dC0+bGVu
IC0gMSwgLTEpOworCiAgICAgICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKHJlc3VsdFRleHQs
ICJcbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYm94ID0gYm94LT5uZXh0VGV4dEJv
eCgpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDQ0NDBiMWYuLmRjNjMw
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxMi0wMS0xMiAgTWFyaW8g
U2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKKyAgICAgICAgW0d0a10gYXRr
X3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0KCkgc29tZXRpbWVzIGZhaWxzIHRvIHByb3ZpZGUgdGhl
IGNvcnJlY3QgbGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzIzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZXcgdW5pdCB0ZXN0IHRvIGVuc3VyZSB0aGUgcmlnaHQgbGluZSBpcyByZXRyaWV2ZWQg
Zm9yIHRoZSBmaXJzdAorICAgICAgICBwb3NpdGlvbiBvZiBlYWNoIGxpbmUgaW4gYSBtdWx0aWxp
bmUgcHJlZm9ybWF0dGVkIHBvcnRpb24gb2YgdGV4dC4KKworICAgICAgICAqIHRlc3RzL3Rlc3Rh
dGsuYzoKKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXJXaXRoUHJlZm9ybWF0
dGVkVGV4dCk6IE5ldyB1bml0IHRlc3QuCisgICAgICAgIChtYWluKTogQWRkIHRoZSBuZXcgdW5p
dCB0ZXN0LgorCisyMDEyLTAxLTEyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdh
bGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBBVEsgdGV4dC1jYXJldC1tb3ZlZCBhbmQgdGV4dC1z
ZWxlY3Rpb24tY2hhbmdlZCBldmVudHMgbm90IGJlaW5nIGVtaXR0ZWQKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDY5CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3RhdGsuYwppbmRleCAzYzhiNjc5Li5iMjNjNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVz
dGF0ay5jCkBAIC0zMyw2ICszMyw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb250ZW50cyA9ICI8
aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyB0aGUgc2Vjb25kCiAKIHN0YXRp
YyBjb25zdCBjaGFyKiBjb250ZW50c1dpdGhOZXdsaW5lcyA9ICI8aHRtbD48Ym9keT48cD5UaGlz
IGlzIGEgdGVzdC4gXG5cblRoaXNcbiBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiBBbmQgdGhpcyB0
aGUgdGhpcmQuPC9wPjwvYm9keT48L2h0bWw+IjsKIAorc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRl
bnRzV2l0aFByZWZvcm1hdHRlZFRleHQgPSAiPGh0bWw+PGJvZHk+PHByZT5cblx0XG5cdGZpcnN0
IGxpbmVcblx0c2Vjb25kIGxpbmVcbjwvcHJlPjwvYm9keT48L2h0bWw+IjsKKwogc3RhdGljIGNv
bnN0IGNoYXIqIGNvbnRlbnRzV2l0aFNwZWNpYWxDaGFycyA9ICI8aHRtbD48Ym9keT48cD4mbGFx
dW87Jm5ic3A7VGhpcyBpcyBhIHBhcmFncmFwaCB3aXRoICZsZHF1bztzcGVjaWFsJnJkcXVvOyBj
aGFyYWN0ZXJzIGluc2lkZS4mbmJzcDsmcmFxdW87PC9wPjwvYm9keT48L2h0bWw+IjsKIAogc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnRlbnRzSW5UZXh0YXJlYSA9ICI8aHRtbD48Ym9keT48dGV4dGFy
ZWEgY29scz0nODAnPlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2Uu
IEFuZCB0aGlzIHRoZSB0aGlyZC48L3RleHRhcmVhPjwvYm9keT48L2h0bWw+IjsKQEAgLTc5MSw2
ICs3OTMsMzQgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFRleHRJ
bnB1dCgpCiAgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7CiB9CiAKK3N0YXRpYyB2b2lkIHRl
c3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXJXaXRoUHJlZm9ybWF0dGVkVGV4dCgpCit7CisgICAg
V2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdf
bmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRp
b24gYWxsb2NhdGlvbiA9IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVf
YWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jYXRpb24pOworICAgIHdlYmtpdF93
ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50c1dpdGhQcmVmb3JtYXR0ZWRUZXh0
LCAwLCAwLCAwKTsKKworICAgIEF0a09iamVjdCogb2JqZWN0ID0gZ2V0V2ViQXJlYU9iamVjdCh3
ZWJWaWV3KTsKKyAgICBnX2Fzc2VydChvYmplY3QpOworCisgICAgQXRrT2JqZWN0KiBwcmVmb3Jt
YXR0ZWRUZXh0ID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmplY3QsIDApOwor
ICAgIGdfYXNzZXJ0KEFUS19JU19PQkpFQ1QocHJlZm9ybWF0dGVkVGV4dCkpOworICAgIGdfYXNz
ZXJ0KGF0a19vYmplY3RfZ2V0X3JvbGUocHJlZm9ybWF0dGVkVGV4dCkgPT0gQVRLX1JPTEVfUEFO
RUwpOworICAgIGdfYXNzZXJ0KEFUS19JU19URVhUKHByZWZvcm1hdHRlZFRleHQpKTsKKyAgICBj
aGFyKiB0ZXh0ID0gYXRrX3RleHRfZ2V0X3RleHQoQVRLX1RFWFQocHJlZm9ybWF0dGVkVGV4dCks
IDAsIC0xKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIodGV4dCwgPT0sICJcdFxuXHRmaXJzdCBsaW5l
XG5cdHNlY29uZCBsaW5lXG4iKTsKKyAgICBnX2ZyZWUodGV4dCk7CisKKyAgICAvKiBUcnkgcmV0
cmlldmluZyBhbGwgdGhlIGxpbmVzIGluZGljYXRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBvZmZz
ZXRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBvZiB0aGVtLiAqLworICAgIHRlc3RHZXRUZXh0
RnVuY3Rpb24ocHJlZm9ybWF0dGVkVGV4dCwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0LCBB
VEtfVEVYVF9CT1VOREFSWV9MSU5FX1NUQVJULCAwLCAiXHRcbiIsIDAsIDIpOworICAgIHRlc3RH
ZXRUZXh0RnVuY3Rpb24ocHJlZm9ybWF0dGVkVGV4dCwgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zm
c2V0LCBBVEtfVEVYVF9CT1VOREFSWV9MSU5FX1NUQVJULCAyLCAiXHRmaXJzdCBsaW5lXG4iLCAy
LCAxNCk7CisgICAgdGVzdEdldFRleHRGdW5jdGlvbihwcmVmb3JtYXR0ZWRUZXh0LCBhdGtfdGV4
dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQsIDE0LCAi
XHRzZWNvbmQgbGluZVxuIiwgMTQsIDI3KTsKKworICAgIGdfb2JqZWN0X3VucmVmKHByZWZvcm1h
dHRlZFRleHQpOworICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOworfQorCiBzdGF0aWMgdm9p
ZCB0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0V2l0aFNwZWNpYWxDaGFyYWN0ZXJzKCkKIHsK
ICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJf
dmlld19uZXcoKSk7CkBAIC0xODU0LDYgKzE4ODQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh
cioqIGFyZ3YpCiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRUZXh0QXRPZmZz
ZXROZXdsaW5lcyIsIHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXROZXdsaW5lcyk7CiAgICAg
Z190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRUZXh0QXRPZmZzZXRUZXh0YXJlYSIsIHRl
c3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRUZXh0YXJlYSk7CiAgICAgZ190ZXN0X2FkZF9mdW5j
KCIvd2Via2l0L2F0ay9nZXRUZXh0QXRPZmZzZXRUZXh0SW5wdXQiLCB0ZXN0V2Via2l0QXRrR2V0
VGV4dEF0T2Zmc2V0VGV4dElucHV0KTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRr
L2dldFRleHRBdE9mZnNlcldpdGhQcmVmb3JtYXR0ZWRUZXh0IiwgdGVzdFdlYmtpdEF0a0dldFRl
eHRBdE9mZnNlcldpdGhQcmVmb3JtYXR0ZWRUZXh0KTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93
ZWJraXQvYXRrL2dldFRleHRBdE9mZnNldFdpdGhTcGVjaWFsQ2hhcmFjdGVycyIsIHRlc3RXZWJr
aXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoU3BlY2lhbENoYXJhY3RlcnMpOwogICAgIGdfdGVzdF9h
ZGRfZnVuYygiL3dlYmtpdC9hdGsvZ2V0VGV4dEluUGFyYWdyYXBoQW5kQm9keVNpbXBsZSIsIHRl
c3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3JhcGhBbmRCb2R5U2ltcGxlKTsKICAgICBnX3Rlc3Rf
YWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldFRleHRJblBhcmFncmFwaEFuZEJvZHlNb2RlcmF0ZSIs
IHRlc3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3JhcGhBbmRCb2R5TW9kZXJhdGUpOwotLSAKMS43
LjcuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122750</attachid>
            <date>2012-01-17 04:59:48 -0800</date>
            <delta_ts>2012-01-24 13:52:30 -0800</delta_ts>
            <desc>Patch proposal + Unit test</desc>
            <filename>0001-2012-01-12-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>8073</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA3NTBhYjMwMzU5YjlmOTU0NTE2MDMyNWZhYzQ5ZTNiNzQ3YjVkMzU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDE3IEphbiAyMDEyIDEyOjA3OjUwICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMi0wMS0xMiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIHNvbWV0aW1lcyBm
YWlscyB0byBwcm92aWRlIHRoZSBjb3JyZWN0IGxpbmUKICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzODIKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgogICAgICAgIERvIG5vdCBhZGQgdW5uZWNlc2FyeSBibGFua3MgYXQgdGhlIGVu
ZCBvZiBhIGxpbmUgb2YgdGV4dC4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAgKHRleHRGb3JSZW5kZXJlcik6IERv
IG5vdCBqdXN0IGFwcGVuZCBhICdcbicgYXQgdGhlIGVuZCBvZiBhIGxpbmUKICAgICAgICBpZiB0
aGUgbGluZWJyZWFrIGZvciB0aGF0IGxpbmUgd2FzIGFscmVhZHkgY29uc2lkZXJlZC4KCjIwMTIt
MDEtMTIgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAg
ICBbR3RrXSBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoKSBzb21ldGltZXMgZmFpbHMgdG8g
cHJvdmlkZSB0aGUgY29ycmVjdCBsaW5lCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcyMzgyCgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKICAgICAgICBOZXcgdW5pdCB0ZXN0IHRvIGVuc3VyZSB0aGUgcmlnaHQgbGluZSBpcyByZXRy
aWV2ZWQgZm9yIHRoZSBmaXJzdAogICAgICAgIHBvc2l0aW9uIG9mIGVhY2ggbGluZSBpbiBhIG11
bHRpbGluZSBwcmVmb3JtYXR0ZWQgcG9ydGlvbiBvZiB0ZXh0LgoKICAgICAgICAqIHRlc3RzL3Rl
c3RhdGsuYzoKICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFdpdGhQcmVmb3Jt
YXR0ZWRUZXh0KTogTmV3IHVuaXQgdGVzdC4KICAgICAgICAobWFpbik6IEFkZCB0aGUgbmV3IHVu
aXQgdGVzdC4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTMgKysrKysrKysKIC4uLi9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJBdGsuY3BwICAgICAgICAgIHwgICAgOSArKysrKy0KIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrKysrKysKIFNvdXJjZS9XZWJL
aXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyAgICAgICAgICAgICAgICAgIHwgICAzMSArKysrKysrKysr
KysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA0OGM0NGIyLi40NTczM2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTItMDEtMTcgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIHNv
bWV0aW1lcyBmYWlscyB0byBwcm92aWRlIHRoZSBjb3JyZWN0IGxpbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8gbm90IGFkZCB1bm5lY2VzYXJ5IGJs
YW5rcyBhdCB0aGUgZW5kIG9mIGEgbGluZSBvZiB0ZXh0LgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgorICAgICAgICAodGV4
dEZvclJlbmRlcmVyKTogRG8gbm90IGp1c3QgYXBwZW5kIGEgJ1xuJyBhdCB0aGUgZW5kIG9mIGEg
bGluZQorICAgICAgICBpZiB0aGUgbGluZWJyZWFrIGZvciB0aGF0IGxpbmUgd2FzIGFscmVhZHkg
Y29uc2lkZXJlZC4KKwogMjAxMi0wMS0xNiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQVRLIHRleHQtY2FyZXQtbW92ZWQgYW5kIHRl
eHQtc2VsZWN0aW9uLWNoYW5nZWQgZXZlbnRzIG5vdCBiZWluZyBlbWl0dGVkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggZjcyYmQ0MS4uYWI5MmM0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtMTIwMyw4ICsxMjAzLDE1IEBAIGdjaGFy
KiB0ZXh0Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICAgICAgICAgIC8v
IE5ld2xpbmUgY2hhcnMgaW4gdGhlIHNvdXJjZSByZXN1bHQgaW4gc2VwYXJhdGUgdGV4dCBib3hl
cywgc28gY2hlY2sKICAgICAgICAgICAgIC8vIGJlZm9yZSBhZGRpbmcgYSBuZXdsaW5lIGluIHRo
ZSBsYXlvdXQuIFNlZSBidWcgMjU0MTUgY29tbWVudCAjNzguCiAgICAgICAgICAgICAvLyBJZiB0
aGUgbmV4dCBzaWJsaW5nIGlzIGEgQlIsIHdlJ2xsIGFkZCB0aGUgbmV3bGluZSB3aGVuIHdlIGV4
YW1pbmUgdGhhdCBjaGlsZC4KLSAgICAgICAgICAgIGlmICghYm94LT5uZXh0T25MaW5lRXhpc3Rz
KCkgJiYgKCFvYmplY3QtPm5leHRTaWJsaW5nKCkgfHwgIW9iamVjdC0+bmV4dFNpYmxpbmcoKS0+
aXNCUigpKSkKKyAgICAgICAgICAgIGlmICghYm94LT5uZXh0T25MaW5lRXhpc3RzKCkgJiYgIShv
YmplY3QtPm5leHRTaWJsaW5nKCkgJiYgb2JqZWN0LT5uZXh0U2libGluZygpLT5pc0JSKCkpKSB7
CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgd2FzIGEgJ1xuJyBpbiB0aGUgbGFzdCBwb3Np
dGlvbiBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBjdXJyZW50IHRleHQgYm94LCBpdCB3b3Vs
ZCBoYXZlIGJlZW4gY29udmVydGVkIHRvIGEKKyAgICAgICAgICAgICAgICAvLyBzcGFjZSBpbiBj
b252ZXJ0VW5pQ2hhclRvVVRGOCwgc28gcmVtb3ZlIGl0IGZpcnN0LgorICAgICAgICAgICAgICAg
IGlmIChyZW5kZXJUZXh0LT5jaGFyYWN0ZXJzKClbYm94LT5lbmQoKV0gPT0gJ1xuJykKKyAgICAg
ICAgICAgICAgICAgICAgZ19zdHJpbmdfZXJhc2UocmVzdWx0VGV4dCwgcmVzdWx0VGV4dC0+bGVu
IC0gMSwgLTEpOworCiAgICAgICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKHJlc3VsdFRleHQs
ICJcbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYm94ID0gYm94LT5uZXh0VGV4dEJv
eCgpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGM5MGM4NWYuLjhhMjRi
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMS0xNyAgTWFyaW8g
U2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0d0a10gYXRr
X3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0KCkgc29tZXRpbWVzIGZhaWxzIHRvIHByb3ZpZGUgdGhl
IGNvcnJlY3QgbGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzIzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZXcgdW5pdCB0ZXN0IHRvIGVuc3VyZSB0aGUgcmlnaHQgbGluZSBpcyByZXRyaWV2ZWQg
Zm9yIHRoZSBmaXJzdAorICAgICAgICBwb3NpdGlvbiBvZiBlYWNoIGxpbmUgaW4gYSBtdWx0aWxp
bmUgcHJlZm9ybWF0dGVkIHBvcnRpb24gb2YgdGV4dC4KKworICAgICAgICAqIHRlc3RzL3Rlc3Rh
dGsuYzoKKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoUHJlZm9ybWF0
dGVkVGV4dCk6IE5ldyB1bml0IHRlc3QuCisgICAgICAgIChtYWluKTogQWRkIHRoZSBuZXcgdW5p
dCB0ZXN0LgorCiAyMDEyLTAxLTE2ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBVEsgdGV4dC1jYXJldC1tb3ZlZCBhbmQgdGV4dC1z
ZWxlY3Rpb24tY2hhbmdlZCBldmVudHMgbm90IGJlaW5nIGVtaXR0ZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3RhdGsuYwppbmRleCBiNDhiNTU3Li5hNzkwMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVz
dGF0ay5jCkBAIC0zMyw2ICszMyw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb250ZW50cyA9ICI8
aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyB0aGUgc2Vjb25kCiAKIHN0YXRp
YyBjb25zdCBjaGFyKiBjb250ZW50c1dpdGhOZXdsaW5lcyA9ICI8aHRtbD48Ym9keT48cD5UaGlz
IGlzIGEgdGVzdC4gXG5cblRoaXNcbiBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiBBbmQgdGhpcyB0
aGUgdGhpcmQuPC9wPjwvYm9keT48L2h0bWw+IjsKIAorc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRl
bnRzV2l0aFByZWZvcm1hdHRlZFRleHQgPSAiPGh0bWw+PGJvZHk+PHByZT5cblx0XG5cdGZpcnN0
IGxpbmVcblx0c2Vjb25kIGxpbmVcbjwvcHJlPjwvYm9keT48L2h0bWw+IjsKKwogc3RhdGljIGNv
bnN0IGNoYXIqIGNvbnRlbnRzV2l0aFNwZWNpYWxDaGFycyA9ICI8aHRtbD48Ym9keT48cD4mbGFx
dW87Jm5ic3A7VGhpcyBpcyBhIHBhcmFncmFwaCB3aXRoICZsZHF1bztzcGVjaWFsJnJkcXVvOyBj
aGFyYWN0ZXJzIGluc2lkZS4mbmJzcDsmcmFxdW87PC9wPjwvYm9keT48L2h0bWw+IjsKIAogc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnRlbnRzSW5UZXh0YXJlYSA9ICI8aHRtbD48Ym9keT48dGV4dGFy
ZWEgY29scz0nODAnPlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRoZSBzZWNvbmQgc2VudGVuY2Uu
IEFuZCB0aGlzIHRoZSB0aGlyZC48L3RleHRhcmVhPjwvYm9keT48L2h0bWw+IjsKQEAgLTc2OSw2
ICs3NzEsMzQgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFRleHRJ
bnB1dCgpCiAgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7CiB9CiAKK3N0YXRpYyB2b2lkIHRl
c3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoUHJlZm9ybWF0dGVkVGV4dCgpCit7CisgICAg
V2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdf
bmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRp
b24gYWxsb2NhdGlvbiA9IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVf
YWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jYXRpb24pOworICAgIHdlYmtpdF93
ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50c1dpdGhQcmVmb3JtYXR0ZWRUZXh0
LCAwLCAwLCAwKTsKKworICAgIEF0a09iamVjdCogb2JqZWN0ID0gZ2V0V2ViQXJlYU9iamVjdCh3
ZWJWaWV3KTsKKyAgICBnX2Fzc2VydChvYmplY3QpOworCisgICAgQXRrT2JqZWN0KiBwcmVmb3Jt
YXR0ZWRUZXh0ID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmplY3QsIDApOwor
ICAgIGdfYXNzZXJ0KEFUS19JU19PQkpFQ1QocHJlZm9ybWF0dGVkVGV4dCkpOworICAgIGdfYXNz
ZXJ0KGF0a19vYmplY3RfZ2V0X3JvbGUocHJlZm9ybWF0dGVkVGV4dCkgPT0gQVRLX1JPTEVfUEFO
RUwpOworICAgIGdfYXNzZXJ0KEFUS19JU19URVhUKHByZWZvcm1hdHRlZFRleHQpKTsKKyAgICBj
aGFyKiB0ZXh0ID0gYXRrX3RleHRfZ2V0X3RleHQoQVRLX1RFWFQocHJlZm9ybWF0dGVkVGV4dCks
IDAsIC0xKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIodGV4dCwgPT0sICJcdFxuXHRmaXJzdCBsaW5l
XG5cdHNlY29uZCBsaW5lXG4iKTsKKyAgICBnX2ZyZWUodGV4dCk7CisKKyAgICAvKiBUcnkgcmV0
cmlldmluZyBhbGwgdGhlIGxpbmVzIGluZGljYXRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBvZmZz
ZXRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBvZiB0aGVtLiAqLworICAgIHRlc3RHZXRUZXh0
RnVuY3Rpb24oQVRLX1RFWFQocHJlZm9ybWF0dGVkVGV4dCksIGF0a190ZXh0X2dldF90ZXh0X2F0
X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfTElORV9TVEFSVCwgMCwgIlx0XG4iLCAwLCAyKTsK
KyAgICB0ZXN0R2V0VGV4dEZ1bmN0aW9uKEFUS19URVhUKHByZWZvcm1hdHRlZFRleHQpLCBhdGtf
dGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQsIDIs
ICJcdGZpcnN0IGxpbmVcbiIsIDIsIDE0KTsKKyAgICB0ZXN0R2V0VGV4dEZ1bmN0aW9uKEFUS19U
RVhUKHByZWZvcm1hdHRlZFRleHQpLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19U
RVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQsIDE0LCAiXHRzZWNvbmQgbGluZVxuIiwgMTQsIDI3KTsK
KworICAgIGdfb2JqZWN0X3VucmVmKHByZWZvcm1hdHRlZFRleHQpOworICAgIGdfb2JqZWN0X3Vu
cmVmKHdlYlZpZXcpOworfQorCiBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zm
c2V0V2l0aFNwZWNpYWxDaGFyYWN0ZXJzKCkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CkBAIC0xODMxLDYgKzE4
NjEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgZ190ZXN0X2FkZF9m
dW5jKCIvd2Via2l0L2F0ay9nZXRUZXh0QXRPZmZzZXROZXdsaW5lcyIsIHRlc3RXZWJraXRBdGtH
ZXRUZXh0QXRPZmZzZXROZXdsaW5lcyk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0
ay9nZXRUZXh0QXRPZmZzZXRUZXh0YXJlYSIsIHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRU
ZXh0YXJlYSk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRUZXh0QXRPZmZz
ZXRUZXh0SW5wdXQiLCB0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0VGV4dElucHV0KTsKKyAg
ICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldFRleHRBdE9mZnNldFdpdGhQcmVmb3Jt
YXR0ZWRUZXh0IiwgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFdpdGhQcmVmb3JtYXR0ZWRU
ZXh0KTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldFRleHRBdE9mZnNldFdp
dGhTcGVjaWFsQ2hhcmFjdGVycyIsIHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoU3Bl
Y2lhbENoYXJhY3RlcnMpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvZ2V0VGV4
dEluUGFyYWdyYXBoQW5kQm9keVNpbXBsZSIsIHRlc3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3Jh
cGhBbmRCb2R5U2ltcGxlKTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldFRl
eHRJblBhcmFncmFwaEFuZEJvZHlNb2RlcmF0ZSIsIHRlc3RXZWJraXRBdGtHZXRUZXh0SW5QYXJh
Z3JhcGhBbmRCb2R5TW9kZXJhdGUpOwotLSAKMS43LjcuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123799</attachid>
            <date>2012-01-24 13:52:30 -0800</date>
            <delta_ts>2012-02-01 12:30:08 -0800</delta_ts>
            <desc>Patch proposal + Unit Test</desc>
            <filename>0001-2012-01-24-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>8025</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBhMDAxZmY5YjYyNzkzNjhhYTY5ZTgxNDU5ZDQ1ZTk3MzBmYTU1MjU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDE3IEphbiAyMDEyIDEyOjA3OjUwICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMi0wMS0yNCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIHNvbWV0aW1lcyBm
YWlscyB0byBwcm92aWRlIHRoZSBjb3JyZWN0IGxpbmUKICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzODIKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgogICAgICAgIERvIG5vdCBhZGQgdW5uZWNlc2FyeSBibGFua3MgYXQgdGhlIGVu
ZCBvZiBhIGxpbmUgb2YgdGV4dC4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRB
Y2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHA6CiAgICAgICAgKHRleHRGb3JSZW5kZXJlcik6IERv
IG5vdCBqdXN0IGFwcGVuZCBhICdcbicgYXQgdGhlIGVuZCBvZiBhIGxpbmUKICAgICAgICBpZiB0
aGUgbGluZWJyZWFrIGZvciB0aGF0IGxpbmUgd2FzIGFscmVhZHkgY29uc2lkZXJlZC4KCjIwMTIt
MDEtMjQgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAg
ICBbR3RrXSBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoKSBzb21ldGltZXMgZmFpbHMgdG8g
cHJvdmlkZSB0aGUgY29ycmVjdCBsaW5lCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcyMzgyCgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKICAgICAgICBOZXcgdW5pdCB0ZXN0IHRvIGVuc3VyZSB0aGUgcmlnaHQgbGluZSBpcyByZXRy
aWV2ZWQgZm9yIHRoZSBmaXJzdAogICAgICAgIHBvc2l0aW9uIG9mIGVhY2ggbGluZSBpbiBhIG11
bHRpbGluZSBwcmVmb3JtYXR0ZWQgcG9ydGlvbiBvZiB0ZXh0LgoKICAgICAgICAqIHRlc3RzL3Rl
c3RhdGsuYzoKICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFdpdGhQcmVmb3Jt
YXR0ZWRUZXh0KTogTmV3IHVuaXQgdGVzdC4KICAgICAgICAobWFpbik6IEFkZCB0aGUgbmV3IHVu
aXQgdGVzdC4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTMgKysrKysrKysKIC4uLi9ndGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFj
ZVRleHQuY3BwICAgICAgICAgIHwgICAxMCArKysrKy0KIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrKysrKysKIFNvdXJjZS9XZWJL
aXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyAgICAgICAgICAgICAgICAgIHwgICAzMSArKysrKysrKysr
KysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA2ZTc0OTJiLi43NjEwMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTItMDEtMjQgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIHNv
bWV0aW1lcyBmYWlscyB0byBwcm92aWRlIHRoZSBjb3JyZWN0IGxpbmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8gbm90IGFkZCB1bm5lY2VzYXJ5IGJs
YW5rcyBhdCB0aGUgZW5kIG9mIGEgbGluZSBvZiB0ZXh0LgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAodGV4
dEZvclJlbmRlcmVyKTogRG8gbm90IGp1c3QgYXBwZW5kIGEgJ1xuJyBhdCB0aGUgZW5kIG9mIGEg
bGluZQorICAgICAgICBpZiB0aGUgbGluZWJyZWFrIGZvciB0aGF0IGxpbmUgd2FzIGFscmVhZHkg
Y29uc2lkZXJlZC4KKwogMjAxMi0wMS0yNCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW1JlZmFjdG9yaW5nXSBJbiBDb2RlR2VuZXJhdG9yR09iamVjdC5w
bSwgbWVyZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dl
YktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcAppbmRleCBkYTY0ODll
Li5mYjM2ZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9X
ZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwCkBAIC0xMDAs
OSArMTAwLDE1IEBAIHN0YXRpYyBnY2hhciogdGV4dEZvclJlbmRlcmVyKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiAgICAgICAgICAgICAvLyBOZXdsaW5lIGNoYXJzIGluIHRoZSBzb3VyY2UgcmVz
dWx0IGluIHNlcGFyYXRlIHRleHQgYm94ZXMsIHNvIGNoZWNrCiAgICAgICAgICAgICAvLyBiZWZv
cmUgYWRkaW5nIGEgbmV3bGluZSBpbiB0aGUgbGF5b3V0LiBTZWUgYnVnIDI1NDE1IGNvbW1lbnQg
Izc4LgogICAgICAgICAgICAgLy8gSWYgdGhlIG5leHQgc2libGluZyBpcyBhIEJSLCB3ZSdsbCBh
ZGQgdGhlIG5ld2xpbmUgd2hlbiB3ZSBleGFtaW5lIHRoYXQgY2hpbGQuCi0gICAgICAgICAgICBp
ZiAoIWJveC0+bmV4dE9uTGluZUV4aXN0cygpICYmICghb2JqZWN0LT5uZXh0U2libGluZygpIHx8
ICFvYmplY3QtPm5leHRTaWJsaW5nKCktPmlzQlIoKSkpCisgICAgICAgICAgICBpZiAoIWJveC0+
bmV4dE9uTGluZUV4aXN0cygpICYmICEob2JqZWN0LT5uZXh0U2libGluZygpICYmIG9iamVjdC0+
bmV4dFNpYmxpbmcoKS0+aXNCUigpKSkgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIHdh
cyBhICdcbicgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgdGhlCisgICAgICAgICAgICAgICAgLy8g
Y3VycmVudCB0ZXh0IGJveCwgaXQgd291bGQgaGF2ZSBiZWVuIGNvbnZlcnRlZCB0byBhCisgICAg
ICAgICAgICAgICAgLy8gc3BhY2UgaW4gY29udmVydFVuaUNoYXJUb1VURjgsIHNvIHJlbW92ZSBp
dCBmaXJzdC4KKyAgICAgICAgICAgICAgICBpZiAocmVuZGVyVGV4dC0+Y2hhcmFjdGVycygpW2Jv
eC0+ZW5kKCldID09ICdcbicpCisgICAgICAgICAgICAgICAgICAgIGdfc3RyaW5nX2VyYXNlKHJl
c3VsdFRleHQsIHJlc3VsdFRleHQtPmxlbiAtIDEsIC0xKTsKKwogICAgICAgICAgICAgICAgIGdf
c3RyaW5nX2FwcGVuZChyZXN1bHRUZXh0LCAiXG4iKTsKLSAgICAgICAgICAgIGJveCA9IGJveC0+
bmV4dFRleHRCb3goKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCmluZGV4IGQ0NDk0NjQuLjk5NjQ4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wMS0yNCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0d0a10gYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0KCkgc29t
ZXRpbWVzIGZhaWxzIHRvIHByb3ZpZGUgdGhlIGNvcnJlY3QgbGluZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzODIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgdW5pdCB0ZXN0IHRvIGVuc3VyZSB0
aGUgcmlnaHQgbGluZSBpcyByZXRyaWV2ZWQgZm9yIHRoZSBmaXJzdAorICAgICAgICBwb3NpdGlv
biBvZiBlYWNoIGxpbmUgaW4gYSBtdWx0aWxpbmUgcHJlZm9ybWF0dGVkIHBvcnRpb24gb2YgdGV4
dC4KKworICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKKyAgICAgICAgKHRlc3RXZWJraXRBdGtH
ZXRUZXh0QXRPZmZzZXRXaXRoUHJlZm9ybWF0dGVkVGV4dCk6IE5ldyB1bml0IHRlc3QuCisgICAg
ICAgIChtYWluKTogQWRkIHRoZSBuZXcgdW5pdCB0ZXN0LgorCiAyMDEyLTAxLTIzICBNYXJpbyBT
YW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZWZh
Y3RvciBHVEsncyBhY2Nlc3NpYmlsaXRpdHkgY29kZSB0byBiZSBtb3JlIG1vZHVsYXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3Rlc3RzL3Rlc3RhdGsuYwppbmRleCBiNDhiNTU3Li5hNzkwMTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
dGVzdHMvdGVzdGF0ay5jCkBAIC0zMyw2ICszMyw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBjb250
ZW50cyA9ICI8aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyB0aGUgc2Vjb25k
CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBjb250ZW50c1dpdGhOZXdsaW5lcyA9ICI8aHRtbD48Ym9k
eT48cD5UaGlzIGlzIGEgdGVzdC4gXG5cblRoaXNcbiBpcyB0aGUgc2Vjb25kIHNlbnRlbmNlLiBB
bmQgdGhpcyB0aGUgdGhpcmQuPC9wPjwvYm9keT48L2h0bWw+IjsKIAorc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnRlbnRzV2l0aFByZWZvcm1hdHRlZFRleHQgPSAiPGh0bWw+PGJvZHk+PHByZT5cblx0
XG5cdGZpcnN0IGxpbmVcblx0c2Vjb25kIGxpbmVcbjwvcHJlPjwvYm9keT48L2h0bWw+IjsKKwog
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRzV2l0aFNwZWNpYWxDaGFycyA9ICI8aHRtbD48Ym9k
eT48cD4mbGFxdW87Jm5ic3A7VGhpcyBpcyBhIHBhcmFncmFwaCB3aXRoICZsZHF1bztzcGVjaWFs
JnJkcXVvOyBjaGFyYWN0ZXJzIGluc2lkZS4mbmJzcDsmcmFxdW87PC9wPjwvYm9keT48L2h0bWw+
IjsKIAogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRzSW5UZXh0YXJlYSA9ICI8aHRtbD48Ym9k
eT48dGV4dGFyZWEgY29scz0nODAnPlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRoZSBzZWNvbmQg
c2VudGVuY2UuIEFuZCB0aGlzIHRoZSB0aGlyZC48L3RleHRhcmVhPjwvYm9keT48L2h0bWw+IjsK
QEAgLTc2OSw2ICs3NzEsMzQgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9m
ZnNldFRleHRJbnB1dCgpCiAgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7CiB9CiAKK3N0YXRp
YyB2b2lkIHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoUHJlZm9ybWF0dGVkVGV4dCgp
Cit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRf
d2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0
a0FsbG9jYXRpb24gYWxsb2NhdGlvbiA9IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lk
Z2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jYXRpb24pOworICAg
IHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50c1dpdGhQcmVmb3Jt
YXR0ZWRUZXh0LCAwLCAwLCAwKTsKKworICAgIEF0a09iamVjdCogb2JqZWN0ID0gZ2V0V2ViQXJl
YU9iamVjdCh3ZWJWaWV3KTsKKyAgICBnX2Fzc2VydChvYmplY3QpOworCisgICAgQXRrT2JqZWN0
KiBwcmVmb3JtYXR0ZWRUZXh0ID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmpl
Y3QsIDApOworICAgIGdfYXNzZXJ0KEFUS19JU19PQkpFQ1QocHJlZm9ybWF0dGVkVGV4dCkpOwor
ICAgIGdfYXNzZXJ0KGF0a19vYmplY3RfZ2V0X3JvbGUocHJlZm9ybWF0dGVkVGV4dCkgPT0gQVRL
X1JPTEVfUEFORUwpOworICAgIGdfYXNzZXJ0KEFUS19JU19URVhUKHByZWZvcm1hdHRlZFRleHQp
KTsKKyAgICBjaGFyKiB0ZXh0ID0gYXRrX3RleHRfZ2V0X3RleHQoQVRLX1RFWFQocHJlZm9ybWF0
dGVkVGV4dCksIDAsIC0xKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIodGV4dCwgPT0sICJcdFxuXHRm
aXJzdCBsaW5lXG5cdHNlY29uZCBsaW5lXG4iKTsKKyAgICBnX2ZyZWUodGV4dCk7CisKKyAgICAv
KiBUcnkgcmV0cmlldmluZyBhbGwgdGhlIGxpbmVzIGluZGljYXRpbmcgdGhlIHBvc2l0aW9uIG9m
IHRoZSBvZmZzZXRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBvZiB0aGVtLiAqLworICAgIHRl
c3RHZXRUZXh0RnVuY3Rpb24oQVRLX1RFWFQocHJlZm9ybWF0dGVkVGV4dCksIGF0a190ZXh0X2dl
dF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfTElORV9TVEFSVCwgMCwgIlx0XG4i
LCAwLCAyKTsKKyAgICB0ZXN0R2V0VGV4dEZ1bmN0aW9uKEFUS19URVhUKHByZWZvcm1hdHRlZFRl
eHQpLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQsIEFUS19URVhUX0JPVU5EQVJZX0xJTkVf
U1RBUlQsIDIsICJcdGZpcnN0IGxpbmVcbiIsIDIsIDE0KTsKKyAgICB0ZXN0R2V0VGV4dEZ1bmN0
aW9uKEFUS19URVhUKHByZWZvcm1hdHRlZFRleHQpLCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZz
ZXQsIEFUS19URVhUX0JPVU5EQVJZX0xJTkVfU1RBUlQsIDE0LCAiXHRzZWNvbmQgbGluZVxuIiwg
MTQsIDI3KTsKKworICAgIGdfb2JqZWN0X3VucmVmKHByZWZvcm1hdHRlZFRleHQpOworICAgIGdf
b2JqZWN0X3VucmVmKHdlYlZpZXcpOworfQorCiBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0
VGV4dEF0T2Zmc2V0V2l0aFNwZWNpYWxDaGFyYWN0ZXJzKCkKIHsKICAgICBXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CkBAIC0x
ODMxLDYgKzE4NjEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgZ190
ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRUZXh0QXRPZmZzZXROZXdsaW5lcyIsIHRlc3RX
ZWJraXRBdGtHZXRUZXh0QXRPZmZzZXROZXdsaW5lcyk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIv
d2Via2l0L2F0ay9nZXRUZXh0QXRPZmZzZXRUZXh0YXJlYSIsIHRlc3RXZWJraXRBdGtHZXRUZXh0
QXRPZmZzZXRUZXh0YXJlYSk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRU
ZXh0QXRPZmZzZXRUZXh0SW5wdXQiLCB0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0VGV4dElu
cHV0KTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldFRleHRBdE9mZnNldFdp
dGhQcmVmb3JtYXR0ZWRUZXh0IiwgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFdpdGhQcmVm
b3JtYXR0ZWRUZXh0KTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldFRleHRB
dE9mZnNldFdpdGhTcGVjaWFsQ2hhcmFjdGVycyIsIHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZz
ZXRXaXRoU3BlY2lhbENoYXJhY3RlcnMpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9h
dGsvZ2V0VGV4dEluUGFyYWdyYXBoQW5kQm9keVNpbXBsZSIsIHRlc3RXZWJraXRBdGtHZXRUZXh0
SW5QYXJhZ3JhcGhBbmRCb2R5U2ltcGxlKTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQv
YXRrL2dldFRleHRJblBhcmFncmFwaEFuZEJvZHlNb2RlcmF0ZSIsIHRlc3RXZWJraXRBdGtHZXRU
ZXh0SW5QYXJhZ3JhcGhBbmRCb2R5TW9kZXJhdGUpOwotLSAKMS43LjcuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124990</attachid>
            <date>2012-02-01 12:30:28 -0800</date>
            <delta_ts>2012-02-01 15:20:18 -0800</delta_ts>
            <desc>Patch proposal + Unit Test</desc>
            <filename>bug-72382-20120201213019.patch</filename>
            <type>text/plain</type>
            <size>6748</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNkNzg5Y2QzMjg5ODM1
OTI2NjIzMzdiZGQzMWRhYjZiZGIyZmJjYS4uNTU1M2E0MDQ0ZjBhZmZkNjRlOWUxMTYyMWI3MGE4
ZWU0ZjkzMzg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTI0ICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR3RrXSBh
dGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoKSBzb21ldGltZXMgZmFpbHMgdG8gcHJvdmlkZSB0
aGUgY29ycmVjdCBsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MjM4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIERvIG5vdCBhZGQgdW5uZWNlc2FyeSBibGFua3MgYXQgdGhlIGVuZCBvZiBhIGxpbmUg
b2YgdGV4dC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVJ
bnRlcmZhY2VUZXh0LmNwcDoKKyAgICAgICAgKHRleHRGb3JSZW5kZXJlcik6IERvIG5vdCBqdXN0
IGFwcGVuZCBhICdcbicgYXQgdGhlIGVuZCBvZiBhIGxpbmUKKyAgICAgICAgaWYgdGhlIGxpbmVi
cmVhayBmb3IgdGhhdCBsaW5lIHdhcyBhbHJlYWR5IGNvbnNpZGVyZWQuCisKIDIwMTItMDItMDEg
IEJyaWFuIFNhbG9tb24gIDxic2Fsb21vbkBnb29nbGUuY29tPgogCiAgICAgICAgIFtTS0lBL0NI
Uk9NSVVNXSBQZXJmb3JtIGdldEltYWdlRGF0YSBmb3JtYXQgY29udmVyc2lvbnMgdXNpbmcgU2tp
YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCmluZGV4IDE1YjVkZWU2MzRmNmU5ZjRkNDMyYWFkZTQ2NjYyYTFkMGEy
Y2MwZTUuLjZiNjVlYTk0YTJiMjdkMDRlZDA3MmQ5ZjE5ODJjNDUwMzg5ZGQzYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMS0yNCAgTWFyaW8gU2FuY2hleiBQcmFk
YSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0d0a10gYXRrX3RleHRfZ2V0X3Rl
eHRfYXRfb2Zmc2V0KCkgc29tZXRpbWVzIGZhaWxzIHRvIHByb3ZpZGUgdGhlIGNvcnJlY3QgbGlu
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzODIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgdW5p
dCB0ZXN0IHRvIGVuc3VyZSB0aGUgcmlnaHQgbGluZSBpcyByZXRyaWV2ZWQgZm9yIHRoZSBmaXJz
dAorICAgICAgICBwb3NpdGlvbiBvZiBlYWNoIGxpbmUgaW4gYSBtdWx0aWxpbmUgcHJlZm9ybWF0
dGVkIHBvcnRpb24gb2YgdGV4dC4KKworICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKKyAgICAg
ICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoUHJlZm9ybWF0dGVkVGV4dCk6IE5l
dyB1bml0IHRlc3QuCisgICAgICAgIChtYWluKTogQWRkIHRoZSBuZXcgdW5pdCB0ZXN0LgorCiAy
MDEyLTAyLTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSB1bml0dGVzdHMvdGVzdGxvYWRpbmcgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJs
ZUludGVyZmFjZVRleHQuY3BwCmluZGV4IGRhNjQ4OWUxOTM1ZjkyZTNlNzNiZTdlMmZhYzM1NWQ3
NTlkYmVhYjkuLmM3NWRlMmM1MjQyODNkODA1YmQ1Njc1MmU1Zjc4NDM1NzY4OTg2NmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVJ
bnRlcmZhY2VUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9X
ZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKQEAgLTEwMCw4ICsxMDAsMTUgQEAgc3Rh
dGljIGdjaGFyKiB0ZXh0Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICAg
ICAgICAgIC8vIE5ld2xpbmUgY2hhcnMgaW4gdGhlIHNvdXJjZSByZXN1bHQgaW4gc2VwYXJhdGUg
dGV4dCBib3hlcywgc28gY2hlY2sKICAgICAgICAgICAgIC8vIGJlZm9yZSBhZGRpbmcgYSBuZXds
aW5lIGluIHRoZSBsYXlvdXQuIFNlZSBidWcgMjU0MTUgY29tbWVudCAjNzguCiAgICAgICAgICAg
ICAvLyBJZiB0aGUgbmV4dCBzaWJsaW5nIGlzIGEgQlIsIHdlJ2xsIGFkZCB0aGUgbmV3bGluZSB3
aGVuIHdlIGV4YW1pbmUgdGhhdCBjaGlsZC4KLSAgICAgICAgICAgIGlmICghYm94LT5uZXh0T25M
aW5lRXhpc3RzKCkgJiYgKCFvYmplY3QtPm5leHRTaWJsaW5nKCkgfHwgIW9iamVjdC0+bmV4dFNp
YmxpbmcoKS0+aXNCUigpKSkKKyAgICAgICAgICAgIGlmICghYm94LT5uZXh0T25MaW5lRXhpc3Rz
KCkgJiYgIShvYmplY3QtPm5leHRTaWJsaW5nKCkgJiYgb2JqZWN0LT5uZXh0U2libGluZygpLT5p
c0JSKCkpKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgd2FzIGEgJ1xuJyBpbiB0aGUg
bGFzdCBwb3NpdGlvbiBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBjdXJyZW50IHRleHQgYm94
LCBpdCB3b3VsZCBoYXZlIGJlZW4gY29udmVydGVkIHRvIGEKKyAgICAgICAgICAgICAgICAvLyBz
cGFjZSBpbiBjb252ZXJ0VW5pQ2hhclRvVVRGOCwgc28gcmVtb3ZlIGl0IGZpcnN0LgorICAgICAg
ICAgICAgICAgIGlmIChyZW5kZXJUZXh0LT5jaGFyYWN0ZXJzKClbYm94LT5lbmQoKV0gPT0gJ1xu
JykKKyAgICAgICAgICAgICAgICAgICAgZ19zdHJpbmdfZXJhc2UocmVzdWx0VGV4dCwgcmVzdWx0
VGV4dC0+bGVuIC0gMSwgLTEpOworCiAgICAgICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kKHJl
c3VsdFRleHQsICJcbiIpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYm94ID0gYm94LT5u
ZXh0VGV4dEJveCgpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvdGVzdHMvdGVzdGF0ay5jIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5j
CmluZGV4IGI0OGI1NTc5OWUwODVkN2Q1YmQ5YmU1NmIzNzIxODYzZGQ3OGRkZGYuLmE3OTAxMDE3
NTZlNDc0YjVkM2I5NTg4NGYwNmM4YmYzMzVmYjE2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0
YXRrLmMKQEAgLTMzLDYgKzMzLDggQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRzID0gIjxo
dG1sPjxib2R5PjxwPlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIHRoZSBzZWNvbmQKIAogc3RhdGlj
IGNvbnN0IGNoYXIqIGNvbnRlbnRzV2l0aE5ld2xpbmVzID0gIjxodG1sPjxib2R5PjxwPlRoaXMg
aXMgYSB0ZXN0LiBcblxuVGhpc1xuIGlzIHRoZSBzZWNvbmQgc2VudGVuY2UuIEFuZCB0aGlzIHRo
ZSB0aGlyZC48L3A+PC9ib2R5PjwvaHRtbD4iOwogCitzdGF0aWMgY29uc3QgY2hhciogY29udGVu
dHNXaXRoUHJlZm9ybWF0dGVkVGV4dCA9ICI8aHRtbD48Ym9keT48cHJlPlxuXHRcblx0Zmlyc3Qg
bGluZVxuXHRzZWNvbmQgbGluZVxuPC9wcmU+PC9ib2R5PjwvaHRtbD4iOworCiBzdGF0aWMgY29u
c3QgY2hhciogY29udGVudHNXaXRoU3BlY2lhbENoYXJzID0gIjxodG1sPjxib2R5PjxwPiZsYXF1
bzsmbmJzcDtUaGlzIGlzIGEgcGFyYWdyYXBoIHdpdGggJmxkcXVvO3NwZWNpYWwmcmRxdW87IGNo
YXJhY3RlcnMgaW5zaWRlLiZuYnNwOyZyYXF1bzs8L3A+PC9ib2R5PjwvaHRtbD4iOwogCiBzdGF0
aWMgY29uc3QgY2hhciogY29udGVudHNJblRleHRhcmVhID0gIjxodG1sPjxib2R5Pjx0ZXh0YXJl
YSBjb2xzPSc4MCc+VGhpcyBpcyBhIHRlc3QuIFRoaXMgaXMgdGhlIHNlY29uZCBzZW50ZW5jZS4g
QW5kIHRoaXMgdGhlIHRoaXJkLjwvdGV4dGFyZWE+PC9ib2R5PjwvaHRtbD4iOwpAQCAtNzY5LDYg
Kzc3MSwzNCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0VGV4dElu
cHV0KCkKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKIH0KIAorc3RhdGljIHZvaWQgdGVz
dFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFdpdGhQcmVmb3JtYXR0ZWRUZXh0KCkKK3sKKyAgICBX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19u
ZXcoKSk7CisgICAgZ19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAgR3RrQWxsb2NhdGlv
biBhbGxvY2F0aW9uID0geyAwLCAwLCA4MDAsIDYwMCB9OworICAgIGd0a193aWRnZXRfc2l6ZV9h
bGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2NhdGlvbik7CisgICAgd2Via2l0X3dl
Yl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGNvbnRlbnRzV2l0aFByZWZvcm1hdHRlZFRleHQs
IDAsIDAsIDApOworCisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVhT2JqZWN0KHdl
YlZpZXcpOworICAgIGdfYXNzZXJ0KG9iamVjdCk7CisKKyAgICBBdGtPYmplY3QqIHByZWZvcm1h
dHRlZFRleHQgPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iamVjdCwgMCk7Cisg
ICAgZ19hc3NlcnQoQVRLX0lTX09CSkVDVChwcmVmb3JtYXR0ZWRUZXh0KSk7CisgICAgZ19hc3Nl
cnQoYXRrX29iamVjdF9nZXRfcm9sZShwcmVmb3JtYXR0ZWRUZXh0KSA9PSBBVEtfUk9MRV9QQU5F
TCk7CisgICAgZ19hc3NlcnQoQVRLX0lTX1RFWFQocHJlZm9ybWF0dGVkVGV4dCkpOworICAgIGNo
YXIqIHRleHQgPSBhdGtfdGV4dF9nZXRfdGV4dChBVEtfVEVYVChwcmVmb3JtYXR0ZWRUZXh0KSwg
MCwgLTEpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0LCA9PSwgIlx0XG5cdGZpcnN0IGxpbmVc
blx0c2Vjb25kIGxpbmVcbiIpOworICAgIGdfZnJlZSh0ZXh0KTsKKworICAgIC8qIFRyeSByZXRy
aWV2aW5nIGFsbCB0aGUgbGluZXMgaW5kaWNhdGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIG9mZnNl
dHMgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIG9mIHRoZW0uICovCisgICAgdGVzdEdldFRleHRG
dW5jdGlvbihBVEtfVEVYVChwcmVmb3JtYXR0ZWRUZXh0KSwgYXRrX3RleHRfZ2V0X3RleHRfYXRf
b2Zmc2V0LCBBVEtfVEVYVF9CT1VOREFSWV9MSU5FX1NUQVJULCAwLCAiXHRcbiIsIDAsIDIpOwor
ICAgIHRlc3RHZXRUZXh0RnVuY3Rpb24oQVRLX1RFWFQocHJlZm9ybWF0dGVkVGV4dCksIGF0a190
ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RFWFRfQk9VTkRBUllfTElORV9TVEFSVCwgMiwg
Ilx0Zmlyc3QgbGluZVxuIiwgMiwgMTQpOworICAgIHRlc3RHZXRUZXh0RnVuY3Rpb24oQVRLX1RF
WFQocHJlZm9ybWF0dGVkVGV4dCksIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCwgQVRLX1RF
WFRfQk9VTkRBUllfTElORV9TVEFSVCwgMTQsICJcdHNlY29uZCBsaW5lXG4iLCAxNCwgMjcpOwor
CisgICAgZ19vYmplY3RfdW5yZWYocHJlZm9ybWF0dGVkVGV4dCk7CisgICAgZ19vYmplY3RfdW5y
ZWYod2ViVmlldyk7Cit9CisKIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZz
ZXRXaXRoU3BlY2lhbENoYXJhY3RlcnMoKQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcg
PSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsKQEAgLTE4MzEsNiArMTg2
MSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBnX3Rlc3RfYWRkX2Z1
bmMoIi93ZWJraXQvYXRrL2dldFRleHRBdE9mZnNldE5ld2xpbmVzIiwgdGVzdFdlYmtpdEF0a0dl
dFRleHRBdE9mZnNldE5ld2xpbmVzKTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRr
L2dldFRleHRBdE9mZnNldFRleHRhcmVhIiwgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFRl
eHRhcmVhKTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2dldFRleHRBdE9mZnNl
dFRleHRJbnB1dCIsIHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRUZXh0SW5wdXQpOworICAg
IGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvZ2V0VGV4dEF0T2Zmc2V0V2l0aFByZWZvcm1h
dHRlZFRleHQiLCB0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0V2l0aFByZWZvcm1hdHRlZFRl
eHQpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvZ2V0VGV4dEF0T2Zmc2V0V2l0
aFNwZWNpYWxDaGFyYWN0ZXJzIiwgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFdpdGhTcGVj
aWFsQ2hhcmFjdGVycyk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRUZXh0
SW5QYXJhZ3JhcGhBbmRCb2R5U2ltcGxlIiwgdGVzdFdlYmtpdEF0a0dldFRleHRJblBhcmFncmFw
aEFuZEJvZHlTaW1wbGUpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvZ2V0VGV4
dEluUGFyYWdyYXBoQW5kQm9keU1vZGVyYXRlIiwgdGVzdFdlYmtpdEF0a0dldFRleHRJblBhcmFn
cmFwaEFuZEJvZHlNb2RlcmF0ZSk7Cg==
</data>
<flag name="review"
          id="126387"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>