<?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>99938</bug_id>
          
          <creation_ts>2012-10-21 10:07:12 -0700</creation_ts>
          <short_desc>Touch adjustment snaps to wrong target at a plugin boundary.</short_desc>
          <delta_ts>2013-03-19 12:11:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kevin Ellis">kevers</reporter>
          <assigned_to name="Kevin Ellis">kevers</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>falken</cc>
    
    <cc>rjkroege</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747126</commentid>
    <comment_count>0</comment_count>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-10-21 10:07:12 -0700</bug_when>
    <thetext>Touch adjustment snaps to wrong target at a plugin boundary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747130</commentid>
    <comment_count>1</comment_count>
      <attachid>169807</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-10-21 10:23:08 -0700</bug_when>
    <thetext>Created attachment 169807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747132</commentid>
    <comment_count>2</comment_count>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-10-21 10:30:03 -0700</bug_when>
    <thetext>Touch adjustment snaps to an on-screen target when I touch on a control in a flash plugin (e.g. Youtube flash player).

&lt;embed&gt; elements were not considered as candidates for touch adjustment.  It is difficult to tap on a control at the bottom of the flash player without also clipping the toolbar below the player, which triggers touch adjustment to the toolbar buttons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747427</commentid>
    <comment_count>3</comment_count>
      <attachid>169807</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-22 04:57:19 -0700</bug_when>
    <thetext>Comment on attachment 169807
Patch

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

&gt; Source/WebCore/html/HTMLEmbedElement.cpp:239
&gt; +bool HTMLEmbedElement::willRespondToMouseClickEvents()
&gt; +{
&gt; +    return !disabled();
&gt; +}

I think we might want to make this slightly more specific. For instance check if it actually embeds a plugin or plugin-document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747433</commentid>
    <comment_count>4</comment_count>
      <attachid>169807</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-22 05:01:25 -0700</bug_when>
    <thetext>Comment on attachment 169807
Patch

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

&gt;&gt; Source/WebCore/html/HTMLEmbedElement.cpp:239
&gt;&gt; +}
&gt; 
&gt; I think we might want to make this slightly more specific. For instance check if it actually embeds a plugin or plugin-document.

Specifically. WillRespondToMouseClickEvents is a companion function to defaultEventHandler, so it might fit  better in HTMLPlugInElement where the defaultEventHandler is, and it uses a toRenderWidget()-&gt;widget() call to get the widget. We could say it could responds to mouseClickEvents if it has a widget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747654</commentid>
    <comment_count>5</comment_count>
      <attachid>169933</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-10-22 10:08:36 -0700</bug_when>
    <thetext>Created attachment 169933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748893</commentid>
    <comment_count>6</comment_count>
      <attachid>169807</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-10-23 13:19:05 -0700</bug_when>
    <thetext>Comment on attachment 169807
Patch

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

&gt;&gt;&gt; Source/WebCore/html/HTMLEmbedElement.cpp:239
&gt;&gt;&gt; +}
&gt;&gt; 
&gt;&gt; I think we might want to make this slightly more specific. For instance check if it actually embeds a plugin or plugin-document.
&gt; 
&gt; Specifically. WillRespondToMouseClickEvents is a companion function to defaultEventHandler, so it might fit  better in HTMLPlugInElement where the defaultEventHandler is, and it uses a toRenderWidget()-&gt;widget() call to get the widget. We could say it could responds to mouseClickEvents if it has a widget.

Done, with one small caveat.  The default event handler has some special handling for embedded objects that is performed before testing for a widget, thus basing the rule on being an embedded object or widget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750901</commentid>
    <comment_count>7</comment_count>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-10-25 09:11:51 -0700</bug_when>
    <thetext>Tonikitoo, can you please take a look at this latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750994</commentid>
    <comment_count>8</comment_count>
      <attachid>169933</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-10-25 10:40:18 -0700</bug_when>
    <thetext>Comment on attachment 169933
Patch

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

&gt; Source/WebCore/html/HTMLPlugInElement.cpp:88
&gt; +    if (!r-&gt;isEmbeddedObject() &amp;&amp; !r-&gt;isWidget())

AND or OR?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751036</commentid>
    <comment_count>9</comment_count>
      <attachid>169933</attachid>
    <who name="Kevin Ellis">kevers</who>
    <bug_when>2012-10-25 11:13:11 -0700</bug_when>
    <thetext>Comment on attachment 169933
Patch

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

&gt;&gt; Source/WebCore/html/HTMLPlugInElement.cpp:88
&gt;&gt; +    if (!r-&gt;isEmbeddedObject() &amp;&amp; !r-&gt;isWidget())
&gt; 
&gt; AND or OR?

And is correct here.  Could have used !(A || B) instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751073</commentid>
    <comment_count>10</comment_count>
      <attachid>169933</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-25 11:50:04 -0700</bug_when>
    <thetext>Comment on attachment 169933
Patch

Clearing flags on attachment: 169933

Committed r132509: &lt;http://trac.webkit.org/changeset/132509&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751074</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-25 11:50:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855028</commentid>
    <comment_count>12</comment_count>
      <attachid>169933</attachid>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2013-03-14 00:55:11 -0700</bug_when>
    <thetext>Comment on attachment 169933
Patch

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

&gt; Source/WebCore/html/HTMLPlugInElement.cpp:83
&gt; +    if (disabled())

Hi, I&apos;m working on refactoring Node::disabled. It seems the concept is really just for form control elements. Do you expect HTMLPlugInElement to have disable() return true ever?

My guess is this just copied Node::willRespondToMouseClickEvents(), in which case I should be able to remove this call in the refactoring, but wanted to ask just in case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855130</commentid>
    <comment_count>13</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-03-14 04:32:20 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 169933 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169933&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLPlugInElement.cpp:83
&gt; &gt; +    if (disabled())
&gt; 
&gt; Hi, I&apos;m working on refactoring Node::disabled. It seems the concept is really just for form control elements. Do you expect HTMLPlugInElement to have disable() return true ever?
&gt; 
&gt; My guess is this just copied Node::willRespondToMouseClickEvents(), in which case I should be able to remove this call in the refactoring, but wanted to ask just in case.

While disabled() is mainly for form-elements, it has been named genericly so that any Node objects could have circumstances where they are disabled. I would keep the check, but no, I don&apos;t think there are any cases currently where it would return true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858584</commentid>
    <comment_count>14</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2013-03-19 12:11:50 -0700</bug_when>
    <thetext>(In reply to comment #13)
Thanks! (I forgot to CC myself earlier). The context of the Node::disabled refactoring is bug 112085 and bug 110952. I&apos;m still working through the codebase and seeing if it makes sense to move it out of Node.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169807</attachid>
            <date>2012-10-21 10:23:08 -0700</date>
            <delta_ts>2012-10-23 13:19:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99938-20121021132148.patch</filename>
            <type>text/plain</type>
            <size>6876</size>
            <attacher name="Kevin Ellis">kevers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ4ZWMxMTk5YWEzYjg3
NmFhZDRkNDFjNzMxYTBjZDk1ZTM2MDkxOS4uMGVlN2YxZmViYjQ4OWIwNmQwY2ZkZTk1MGViYzQx
MWEzMWU4ZWRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTIxICBLZXZp
biBFbGxpcyAgPGtldmVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG91Y2ggYWRqdXN0bWVu
dCBzbmFwcyB0byB3cm9uZyB0YXJnZXQgYXQgYSBwbHVnaW4gYm91bmRhcnkuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTkzOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaWRjYXRlIHRoYXQgYW4gPGVt
YmVkPiBlbGVtZW50IGNhbiByZXNwb25kIHRvCisgICAgICAgIG1vdXNlIGNsaWNrIGV2ZW50cywg
c2luY2UgbW91c2UgZXZlbnRzIGFyZSBmb3J3YXJkZWQKKyAgICAgICAgdG8gdGhlIHBsdWdpbi4g
IEZpeGVzIHRvdWNoIGFkanVzdG1lbnQgYXQgYSBwbHVnaW4KKyAgICAgICAgYm91bmRhcnkuICBQ
cmlvciB0byB0aGUgcGF0Y2ggYSBjbGlja2FibGUgZWxlbWVudCAKKyAgICAgICAgYWRqYWNlbnQg
dG8gdGhlIHBsdWdpbiB3b3VsZCBjYXB0dXJlIHN5bnRoZXRpYyBtb3VzZQorICAgICAgICBldmVu
dHMgZnJvbSB0YXAgZ2VzdHVyZXMgdGhhdCBzcGFubmVkIHRoZSBwbHVnaW4KKyAgICAgICAgYm91
bmRhcnkuCisKKyAgICAgICAgVGVzdDogdG91Y2hhZGp1c3RtZW50L3BsdWdpbi5odG1sCisKKyAg
ICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVtYmVkRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50Lmg6CisKIDIwMTItMTAt
MTkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZSBMb2Nh
bGl6ZXI6Om1vbnRoRm9ybWF0IHRvIGNvbnN0cnVjdCBpbnB1dFt0eXBlPW1vbnRoXSBVSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKaW5kZXggN2M1ZDcwY2ZiMWY3MDY2
ODUyYTNiMTQyNDA5OTUzMjMwYThkNzcxMS4uNTBjN2M1YzUxMTI4MmZjOWQxNzZiMDZkYzg3MTBk
ODE3N2Y3MzE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCkBA
IC0yMzMsNCArMjMzLDkgQEAgdm9pZCBIVE1MRW1iZWRFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0
KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKQogfQogI2VuZGlmCiAKK2Jvb2wg
SFRNTEVtYmVkRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQoreworICAg
IHJldHVybiAhZGlzYWJsZWQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRW1iZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuaAppbmRleCBiZGEyZTkxNDlkM2IyNTE5NmU4M2VmNzAyZTMyYzNlOTE1ZTYyZTdmLi44
NjY1M2RkYmZmOGU2M2ViODE0MzgwYWJhMzk2NGJkOGZmYzljNGFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuaApAQCAtNTcsNiArNTcsOCBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVnaXN0ZXJBc05hbWVkSXRlbSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRv
TW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA0MTYwZmUzMmFj
N2IwMDk4NDY1MjlmZDYxZTE1ZDMwZmY3NjBhZmYuLjZkNzEyODNhNTM2NzhkZTg2NmE4ZTQyNTU1
YmUzMmIzMTk0ODIwZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0yMSAgS2V2aW4g
RWxsaXMgIDxrZXZlcnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRvdWNoIGFkanVzdG1lbnQg
c25hcHMgdG8gd3JvbmcgdGFyZ2V0IGF0IGEgcGx1Z2luIGJvdW5kYXJ5LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk5MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGZvciB0b3VjaCBhZGp1c3Rt
ZW50IGF0IGEgcGx1Z2luIGJvdW5kYXJ5LgorICAgICAgICBQcmlvciB0byB0aGUgcGF0Y2gsIHBs
dWdpbnMgd2VyZSBub3QgY29uc2lkZXJlZAorICAgICAgICBjYW5kaWRhdGVzIGZvciB0b3VjaCBh
ZGp1c3RtZW50LgorCisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L3BsdWdpbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHRvdWNoYWRqdXN0bWVudC9wbHVnaW4uaHRtbDogQWRkZWQu
CisKIDIwMTItMTAtMTkgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtRdF0gUGl4ZWwgdGVzdHMgbmVlZCByZWJhc2VsaW5lCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcGx1Z2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3RvdWNoYWRqdXN0bWVudC9wbHVnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOWE2ZmQ4
OTA4NDRjNzQ3Y2JjNmZlMmZkNjc2ZjliOGJhNTZiNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcGx1Z2luLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIx
IEBACitUZXN0cyB0b3VjaC1hZGp1c3RtZW50IGF0IGEgcGx1Z2luIGJvdW5kYXJ5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBkaXJlY3QgaGl0cy4KK1BBU1MgYWRqdXN0
ZWQgbm9kZSB3YXMgRU1CRUQjcGx1Z2luLgorUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBCVVRUT04j
YnV0dG9uMS4KK1BBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgQlVUVE9OI2J1dHRvbjIuCitQQVNTIGFk
anVzdGVkIG5vZGUgd2FzIEJVVFRPTiNidXR0b24zLgorVGVzdCBoaXRzIHNwYW5uaW5nIHRoZSBw
bHVnaW4gYm91bmRhcnkuCitQQVNTIGFkanVzdGVkIG5vZGUgd2FzIEVNQkVEI3BsdWdpbi4KK1BB
U1MgYWRqdXN0ZWQgbm9kZSB3YXMgQlVUVE9OI2J1dHRvbjEuCitQQVNTIGFkanVzdGVkIG5vZGUg
d2FzIEVNQkVEI3BsdWdpbi4KK1BBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgQlVUVE9OI2J1dHRvbjIu
CitQQVNTIGFkanVzdGVkIG5vZGUgd2FzIEVNQkVEI3BsdWdpbi4KK1BBU1MgYWRqdXN0ZWQgbm9k
ZSB3YXMgQlVUVE9OI2J1dHRvbjMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50
L3BsdWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3BsdWdpbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjUyY2VlYzY4Zjg1NjdkNmIyNmVjMTExMzJhZjA2ZTQ2ZGQ4Zjc2YzgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcGx1Z2luLmh0bWwKQEAg
LTAsMCArMSw5MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5Ub3VjaCBBZGp1c3RtZW50IDogUGx1Z2luIGJvdW5kYXJ5IC0gYnVnID8/Pz88L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90b3VjaGFkanVzdG1lbnQuanMiPjwv
c2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgI3BsdWdpbiB7CisgICAgICAgICAgaGVpZ2h0
OiAxNjBweDsKKyAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsKKyAgICAgICAgICBtYXJnaW4t
dG9wOiAxMHB4OworICAgICAgICAgIHdpZHRoOiAzMjBweDsKKyAgICAgICAgfQorICAgICAgICAj
dG9vbGJhciB7CisgICAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CisgICAgICAg
ICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgICAgICAgIGRpc3BsYXk6IC13
ZWJraXQtYm94OworICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OworICAgICAgICB9CisgICAg
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPXNhbmRib3g+CisgICAgPGVtYmVk
IGlkPSJwbHVnaW4iIHR5cGU9IkFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qtd2VicGx1Z2luIj4K
KyAgICA8ZGl2IGlkPSJ0b29sYmFyIiBvbmNraWNrPSJmdW5jdGlvbigpe30iPgorICAgICAgPGJ1
dHRvbiBpZD0iYnV0dG9uMSI+QTwvYnV0dG9uPgorICAgICAgPGJ1dHRvbiBpZD0iYnV0dG9uMiI+
QjwvYnV0dG9uPgorICAgICAgPGJ1dHRvbiBpZD0iYnV0dG9uMyI+QzwvYnV0dG9uPgorICAgIDwv
ZGl2PgorPC9kaXY+CisKKzxwIGlkPSdkZXNjcmlwdGlvbic+PC9wPgorPGRpdiBpZD0nY29uc29s
ZSc+PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgLy8gU2V0IHVwIHNob3J0Y3V0IGFjY2VzcyB0byBl
bGVtZW50cworICAgIHZhciBpZHMgPSBbJ3NhbmRib3gnLCAncGx1Z2luJywgJ3Rvb2xiYXInLCAn
YnV0dG9uMScsICdidXR0b24yJywgJ2J1dHRvbjMnXTsKKyAgICB2YXIgZSA9IHt9OworICAgIGlk
cy5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKKyAgICAgICAgZVthXSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGEpOworICAgIH0pOworICAgIHZhciBib3VuZHMgPSB7fTsKKyAgICBpZHMuZm9yRWFj
aChmdW5jdGlvbihhKSB7CisgICAgICAgIGJvdW5kc1thXSA9IGZpbmRBYnNvbHV0ZUJvdW5kcyhl
W2FdKTsKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIHRlc3RNaWRwb2ludChpZCkKKyAgICB7Cisg
ICAgICAgIHZhciB4ID0gYm91bmRzW2lkXS5sZWZ0ICsgYm91bmRzW2lkXS53aWR0aCAvIDI7Cisg
ICAgICAgIHZhciB5ID0gYm91bmRzW2lkXS50b3AgKyBib3VuZHNbaWRdLmhlaWdodCAvIDI7Cisg
ICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoeCwgeSwgMTApLCBlW2lkXSk7IAorICAg
IH0KKworICAgIGZ1bmN0aW9uIHRlc3RCb3VuZGFyeShidXR0b25JZCkKKyAgICB7CisgICAgICB2
YXIgeCA9IGJvdW5kc1tidXR0b25JZF0ubGVmdCArIGJvdW5kc1tidXR0b25JZF0ud2lkdGggLyAy
OworICAgICAgdmFyIHkgPSAoYm91bmRzWydwbHVnaW4nXS50b3AgKyBib3VuZHNbJ3BsdWdpbidd
LmhlaWdodCArIGJvdW5kc1tidXR0b25JZF0udG9wKSAvIDI7CisgICAgICB0ZXN0VG91Y2hQb2lu
dCh0b3VjaFBvaW50KHgsIHkgLSA1LCAxMCksIGVbJ3BsdWdpbiddKTsgCisgICAgICB0ZXN0VG91
Y2hQb2ludCh0b3VjaFBvaW50KHgsIHkgKyA1LCAxMCksIGVbYnV0dG9uSWRdKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2hlcygpCisgICAgeworICAgICAgICBkZWJ1Zygn
VGVzdCBkaXJlY3QgaGl0cy4nKTsKKyAgICAgICAgdGVzdE1pZHBvaW50KCdwbHVnaW4nKTsKKyAg
ICAgICAgdGVzdE1pZHBvaW50KCdidXR0b24xJyk7CisgICAgICAgIHRlc3RNaWRwb2ludCgnYnV0
dG9uMicpOworICAgICAgICB0ZXN0TWlkcG9pbnQoJ2J1dHRvbjMnKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiB0ZXN0SW5kaXJlY3RUb3VjaGVzKCkKKyAgICB7CisgICAgICAgIGRlYnVnKCdUZXN0
IGhpdHMgc3Bhbm5pbmcgdGhlIHBsdWdpbiBib3VuZGFyeS4nKTsKKyAgICAgICAgdGVzdEJvdW5k
YXJ5KCdidXR0b24xJyk7CisgICAgICAgIHRlc3RCb3VuZGFyeSgnYnV0dG9uMicpOworICAgICAg
ICB0ZXN0Qm91bmRhcnkoJ2J1dHRvbjMnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
cygpCisgICAgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7
CisgICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdHMgdG91Y2gtYWRqdXN0bWVudCBhdCBhIHBs
dWdpbiBib3VuZGFyeS4nKTsKKyAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7CisgICAg
ICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaGVzKCk7CisgICAgICAgICAgICBlWydzYW5kYm94J10u
c3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgfQorICAgIH0KKyAgICBydW5UZXN0cygp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169933</attachid>
            <date>2012-10-22 10:08:36 -0700</date>
            <delta_ts>2013-03-14 00:55:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99938-20121022130714.patch</filename>
            <type>text/plain</type>
            <size>7161</size>
            <attacher name="Kevin Ellis">kevers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ4ZWMxMTk5YWEzYjg3
NmFhZDRkNDFjNzMxYTBjZDk1ZTM2MDkxOS4uZjJhZTI2OWY2YzgzYTUwN2EwNWQ5M2EwY2YzZmQw
MjAxNWU2NDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTIyICBLZXZp
biBFbGxpcyAgPGtldmVyc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG91Y2ggYWRqdXN0bWVu
dCBzbmFwcyB0byB3cm9uZyB0YXJnZXQgYXQgYSBwbHVnaW4gYm91bmRhcnkuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTkzOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluaWRjYXRlIHRoYXQgYW4gPGVt
YmVkPiBlbGVtZW50IGNhbiByZXNwb25kIHRvCisgICAgICAgIG1vdXNlIGNsaWNrIGV2ZW50cywg
c2luY2UgbW91c2UgZXZlbnRzIGFyZSBmb3J3YXJkZWQKKyAgICAgICAgdG8gdGhlIHBsdWdpbi4g
IEZpeGVzIHRvdWNoIGFkanVzdG1lbnQgYXQgYSBwbHVnaW4KKyAgICAgICAgYm91bmRhcnkuICBQ
cmlvciB0byB0aGUgcGF0Y2ggYSBjbGlja2FibGUgZWxlbWVudCAKKyAgICAgICAgYWRqYWNlbnQg
dG8gdGhlIHBsdWdpbiB3b3VsZCBjYXB0dXJlIHN5bnRoZXRpYyBtb3VzZQorICAgICAgICBldmVu
dHMgZnJvbSB0YXAgZ2VzdHVyZXMgdGhhdCBzcGFubmVkIHRoZSBwbHVnaW4KKyAgICAgICAgYm91
bmRhcnkuCisKKyAgICAgICAgVGVzdDogdG91Y2hhZGp1c3RtZW50L3BsdWdpbi5odG1sCisKKyAg
ICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEVtYmVkRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50Lmg6CisKIDIwMTItMTAt
MTkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZSBMb2Nh
bGl6ZXI6Om1vbnRoRm9ybWF0IHRvIGNvbnN0cnVjdCBpbnB1dFt0eXBlPW1vbnRoXSBVSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCAyZDk2NTYyNGE0ZWZk
NmZjMDhhZjYwZDk2MDc3NjIxNjBmN2ZmNWZiLi43YTlmNjU0ZDcwOTAwN2QzMjM1ZjAzYmVjZWRk
OGNlNzc2MmVlOTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNw
cApAQCAtNzgsNiArNzgsMTggQEAgYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6Y2FuUHJvY2Vzc0Ry
YWcoKSBjb25zdAogICAgIHJldHVybiBwbHVnaW4gPyBwbHVnaW4tPmNhblByb2Nlc3NEcmFnKCkg
OiBmYWxzZTsKIH0KIAorYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNl
Q2xpY2tFdmVudHMoKQoreworICAgIGlmIChkaXNhYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgUmVuZGVyT2JqZWN0KiByID0gcmVuZGVyZXIoKTsKKyAgICBpZiAoIXIpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXItPmlzRW1iZWRkZWRPYmplY3QoKSAmJiAhci0+
aXNXaWRnZXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQor
CiB2b2lkIEhUTUxQbHVnSW5FbGVtZW50OjpkZXRhY2goKQogewogICAgIG1faW5zdGFuY2UuY2xl
YXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCA4NTlhYzJl
ZGMyMzkzZjBmMTNhMTIwMTJmZjJkYWVhNDAzMGU5YWU1Li42ZmJlMGUxOTY0OGUwMjMzMGZkZWY1
ZmE5MzBjYWU2ODRjZDI2ODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVu
dC5oCkBAIC02OCw2ICs2OCw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY2FuUHJvY2Vzc0RyYWco
KSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpIE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA0MTYwZmUzMmFj
N2IwMDk4NDY1MjlmZDYxZTE1ZDMwZmY3NjBhZmYuLjc1ZWI5ZDZlZjQ3ZjRhNGJiYWI4MTZkMmY2
YzY5YmQ4MTY5YzE5OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0yMiAgS2V2aW4g
RWxsaXMgIDxrZXZlcnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRvdWNoIGFkanVzdG1lbnQg
c25hcHMgdG8gd3JvbmcgdGFyZ2V0IGF0IGEgcGx1Z2luIGJvdW5kYXJ5LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk5MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGZvciB0b3VjaCBhZGp1c3Rt
ZW50IGF0IGEgcGx1Z2luIGJvdW5kYXJ5LgorICAgICAgICBQcmlvciB0byB0aGUgcGF0Y2gsIHBs
dWdpbnMgd2VyZSBub3QgY29uc2lkZXJlZAorICAgICAgICBjYW5kaWRhdGVzIGZvciB0b3VjaCBh
ZGp1c3RtZW50LgorCisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L3BsdWdpbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHRvdWNoYWRqdXN0bWVudC9wbHVnaW4uaHRtbDogQWRkZWQu
CisKIDIwMTItMTAtMTkgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtRdF0gUGl4ZWwgdGVzdHMgbmVlZCByZWJhc2VsaW5lCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcGx1Z2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3RvdWNoYWRqdXN0bWVudC9wbHVnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOWE2ZmQ4
OTA4NDRjNzQ3Y2JjNmZlMmZkNjc2ZjliOGJhNTZiNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcGx1Z2luLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIx
IEBACitUZXN0cyB0b3VjaC1hZGp1c3RtZW50IGF0IGEgcGx1Z2luIGJvdW5kYXJ5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBkaXJlY3QgaGl0cy4KK1BBU1MgYWRqdXN0
ZWQgbm9kZSB3YXMgRU1CRUQjcGx1Z2luLgorUEFTUyBhZGp1c3RlZCBub2RlIHdhcyBCVVRUT04j
YnV0dG9uMS4KK1BBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgQlVUVE9OI2J1dHRvbjIuCitQQVNTIGFk
anVzdGVkIG5vZGUgd2FzIEJVVFRPTiNidXR0b24zLgorVGVzdCBoaXRzIHNwYW5uaW5nIHRoZSBw
bHVnaW4gYm91bmRhcnkuCitQQVNTIGFkanVzdGVkIG5vZGUgd2FzIEVNQkVEI3BsdWdpbi4KK1BB
U1MgYWRqdXN0ZWQgbm9kZSB3YXMgQlVUVE9OI2J1dHRvbjEuCitQQVNTIGFkanVzdGVkIG5vZGUg
d2FzIEVNQkVEI3BsdWdpbi4KK1BBU1MgYWRqdXN0ZWQgbm9kZSB3YXMgQlVUVE9OI2J1dHRvbjIu
CitQQVNTIGFkanVzdGVkIG5vZGUgd2FzIEVNQkVEI3BsdWdpbi4KK1BBU1MgYWRqdXN0ZWQgbm9k
ZSB3YXMgQlVUVE9OI2J1dHRvbjMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50
L3BsdWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3BsdWdpbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjUyY2VlYzY4Zjg1NjdkNmIyNmVjMTExMzJhZjA2ZTQ2ZGQ4Zjc2YzgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcGx1Z2luLmh0bWwKQEAg
LTAsMCArMSw5MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5Ub3VjaCBBZGp1c3RtZW50IDogUGx1Z2luIGJvdW5kYXJ5IC0gYnVnID8/Pz88L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90b3VjaGFkanVzdG1lbnQuanMiPjwv
c2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgI3BsdWdpbiB7CisgICAgICAgICAgaGVpZ2h0
OiAxNjBweDsKKyAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsKKyAgICAgICAgICBtYXJnaW4t
dG9wOiAxMHB4OworICAgICAgICAgIHdpZHRoOiAzMjBweDsKKyAgICAgICAgfQorICAgICAgICAj
dG9vbGJhciB7CisgICAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CisgICAgICAg
ICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgICAgICAgIGRpc3BsYXk6IC13
ZWJraXQtYm94OworICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OworICAgICAgICB9CisgICAg
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPXNhbmRib3g+CisgICAgPGVtYmVk
IGlkPSJwbHVnaW4iIHR5cGU9IkFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qtd2VicGx1Z2luIj4K
KyAgICA8ZGl2IGlkPSJ0b29sYmFyIiBvbmNraWNrPSJmdW5jdGlvbigpe30iPgorICAgICAgPGJ1
dHRvbiBpZD0iYnV0dG9uMSI+QTwvYnV0dG9uPgorICAgICAgPGJ1dHRvbiBpZD0iYnV0dG9uMiI+
QjwvYnV0dG9uPgorICAgICAgPGJ1dHRvbiBpZD0iYnV0dG9uMyI+QzwvYnV0dG9uPgorICAgIDwv
ZGl2PgorPC9kaXY+CisKKzxwIGlkPSdkZXNjcmlwdGlvbic+PC9wPgorPGRpdiBpZD0nY29uc29s
ZSc+PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgLy8gU2V0IHVwIHNob3J0Y3V0IGFjY2VzcyB0byBl
bGVtZW50cworICAgIHZhciBpZHMgPSBbJ3NhbmRib3gnLCAncGx1Z2luJywgJ3Rvb2xiYXInLCAn
YnV0dG9uMScsICdidXR0b24yJywgJ2J1dHRvbjMnXTsKKyAgICB2YXIgZSA9IHt9OworICAgIGlk
cy5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKKyAgICAgICAgZVthXSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGEpOworICAgIH0pOworICAgIHZhciBib3VuZHMgPSB7fTsKKyAgICBpZHMuZm9yRWFj
aChmdW5jdGlvbihhKSB7CisgICAgICAgIGJvdW5kc1thXSA9IGZpbmRBYnNvbHV0ZUJvdW5kcyhl
W2FdKTsKKyAgICB9KTsKKworICAgIGZ1bmN0aW9uIHRlc3RNaWRwb2ludChpZCkKKyAgICB7Cisg
ICAgICAgIHZhciB4ID0gYm91bmRzW2lkXS5sZWZ0ICsgYm91bmRzW2lkXS53aWR0aCAvIDI7Cisg
ICAgICAgIHZhciB5ID0gYm91bmRzW2lkXS50b3AgKyBib3VuZHNbaWRdLmhlaWdodCAvIDI7Cisg
ICAgICAgIHRlc3RUb3VjaFBvaW50KHRvdWNoUG9pbnQoeCwgeSwgMTApLCBlW2lkXSk7IAorICAg
IH0KKworICAgIGZ1bmN0aW9uIHRlc3RCb3VuZGFyeShidXR0b25JZCkKKyAgICB7CisgICAgICB2
YXIgeCA9IGJvdW5kc1tidXR0b25JZF0ubGVmdCArIGJvdW5kc1tidXR0b25JZF0ud2lkdGggLyAy
OworICAgICAgdmFyIHkgPSAoYm91bmRzWydwbHVnaW4nXS50b3AgKyBib3VuZHNbJ3BsdWdpbidd
LmhlaWdodCArIGJvdW5kc1tidXR0b25JZF0udG9wKSAvIDI7CisgICAgICB0ZXN0VG91Y2hQb2lu
dCh0b3VjaFBvaW50KHgsIHkgLSA1LCAxMCksIGVbJ3BsdWdpbiddKTsgCisgICAgICB0ZXN0VG91
Y2hQb2ludCh0b3VjaFBvaW50KHgsIHkgKyA1LCAxMCksIGVbYnV0dG9uSWRdKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2hlcygpCisgICAgeworICAgICAgICBkZWJ1Zygn
VGVzdCBkaXJlY3QgaGl0cy4nKTsKKyAgICAgICAgdGVzdE1pZHBvaW50KCdwbHVnaW4nKTsKKyAg
ICAgICAgdGVzdE1pZHBvaW50KCdidXR0b24xJyk7CisgICAgICAgIHRlc3RNaWRwb2ludCgnYnV0
dG9uMicpOworICAgICAgICB0ZXN0TWlkcG9pbnQoJ2J1dHRvbjMnKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiB0ZXN0SW5kaXJlY3RUb3VjaGVzKCkKKyAgICB7CisgICAgICAgIGRlYnVnKCdUZXN0
IGhpdHMgc3Bhbm5pbmcgdGhlIHBsdWdpbiBib3VuZGFyeS4nKTsKKyAgICAgICAgdGVzdEJvdW5k
YXJ5KCdidXR0b24xJyk7CisgICAgICAgIHRlc3RCb3VuZGFyeSgnYnV0dG9uMicpOworICAgICAg
ICB0ZXN0Qm91bmRhcnkoJ2J1dHRvbjMnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
cygpCisgICAgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7
CisgICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdHMgdG91Y2gtYWRqdXN0bWVudCBhdCBhIHBs
dWdpbiBib3VuZGFyeS4nKTsKKyAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7CisgICAg
ICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaGVzKCk7CisgICAgICAgICAgICBlWydzYW5kYm94J10u
c3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgfQorICAgIH0KKyAgICBydW5UZXN0cygp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>