<?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>109054</bug_id>
          
          <creation_ts>2013-02-06 07:37:45 -0800</creation_ts>
          <short_desc>[Text Autosizing] Collect narrow descendants and process them separately. Refactoring for a change to follow.</short_desc>
          <delta_ts>2013-02-26 09:33:39 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>107300</blocked>
    
    <blocked>109573</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anton Vayvod">avayvod</reporter>
          <assigned_to name="Anton Vayvod">avayvod</assigned_to>
          <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>johnme</cc>
    
    <cc>kenneth</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>oliver</cc>
    
    <cc>peter</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826436</commentid>
    <comment_count>0</comment_count>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-06 07:37:45 -0800</bug_when>
    <thetext>[Text Autosizing] Collect narrow descendants and process them separately. Refactoring for a change to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826448</commentid>
    <comment_count>1</comment_count>
      <attachid>186856</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-06 07:49:06 -0800</bug_when>
    <thetext>Created attachment 186856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826503</commentid>
    <comment_count>2</comment_count>
      <attachid>186856</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 09:28:16 -0800</bug_when>
    <thetext>Comment on attachment 186856
Patch

Attachment 186856 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16400159</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826610</commentid>
    <comment_count>3</comment_count>
      <attachid>186856</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-06 11:46:07 -0800</bug_when>
    <thetext>Comment on attachment 186856
Patch

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

&gt; Source/WebCore/rendering/TextAutosizer.cpp:256
&gt; +    return isNarrowDescendant(renderer, parentClusterInfo) || isCertainlyAutosizingCluster(renderer, parentClusterInfo);

I don&apos;t like the naming at all. isAutosizingCluster vs isCertainlyAutosizingCluster is a confusing distinction.

I would prefer if you started returning an enum with the reason for being an autosizing cluster: NarrawDescendantReason, RegularAutosizingCluster (don&apos;t like 2nd name though).

&gt; Source/WebCore/rendering/TextAutosizer.cpp:261
&gt; +    TextAutosizingClusterInfo emptyClusterInfo(0);

It&apos;s probably better to just pass NULL than an emptyClusterInfo. That would avoid having 2 overloaded versions of isAutosizingCluster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829551</commentid>
    <comment_count>4</comment_count>
      <attachid>187539</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-11 03:30:26 -0800</bug_when>
    <thetext>Created attachment 187539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829800</commentid>
    <comment_count>5</comment_count>
      <attachid>187539</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-11 09:41:29 -0800</bug_when>
    <thetext>Comment on attachment 187539
Patch

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

Looks good to me (with minor nits). Kenneth/Julien, what do you think?

&gt; Source/WebCore/rendering/TextAutosizer.cpp:67
&gt; +    // processed as a separate cluster or clusters.

Is there a typo in &quot;cluster or clusters&quot;? That bit doesn&apos;t seem too clear.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:68
&gt; +    Vector&lt;TextAutosizingClusterInfo&gt; narrowDescendants;

Can you add a comment above the declaration of struct TextAutosizingClusterInfo, to clarify that clusterInfo objects are temporary and do not persist between calls to processSubtree?

&gt; Source/WebCore/rendering/TextAutosizer.cpp:159
&gt; +    Vector&lt;TextAutosizingClusterInfo&gt;&amp; narrowDescendants = clusterInfo.narrowDescendants;

Nit: you could probably just use this directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829804</commentid>
    <comment_count>6</comment_count>
      <attachid>187539</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-11 09:46:19 -0800</bug_when>
    <thetext>Comment on attachment 187539
Patch

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

Additional nit.

&gt; Source/WebCore/ChangeLog:9
&gt; +        the parent autosizing cluster. The groups will be autosized with the same multiplier.

You might want to expand on this a little, to explain what problem you&apos;re trying to solve, e.g. &quot;For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have a large margin individually applied (via a CSS selector), causing them all to individually appear narrower than their enclosing blockContainingAllText. Rather than making each of these paragraphs into a separate cluster, we eventually want to be able to merge them back together into one (or a few) descendant clusters.&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829969</commentid>
    <comment_count>7</comment_count>
      <attachid>187539</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-11 12:10:35 -0800</bug_when>
    <thetext>Comment on attachment 187539
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        the parent autosizing cluster. The groups will be autosized with the same multiplier.
&gt; 
&gt; You might want to expand on this a little, to explain what problem you&apos;re trying to solve, e.g. &quot;For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have a large margin individually applied (via a CSS selector), causing them all to individually appear narrower than their enclosing blockContainingAllText. Rather than making each of these paragraphs into a separate cluster, we eventually want to be able to merge them back together into one (or a few) descendant clusters.&quot;.

Done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:67
&gt;&gt; +    // processed as a separate cluster or clusters.
&gt; 
&gt; Is there a typo in &quot;cluster or clusters&quot;? That bit doesn&apos;t seem too clear.

The idea was that all narrow descendants can become either a group of clusters or a single one.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:68
&gt;&gt; +    Vector&lt;TextAutosizingClusterInfo&gt; narrowDescendants;
&gt; 
&gt; Can you add a comment above the declaration of struct TextAutosizingClusterInfo, to clarify that clusterInfo objects are temporary and do not persist between calls to processSubtree?

Done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:159
&gt;&gt; +    Vector&lt;TextAutosizingClusterInfo&gt;&amp; narrowDescendants = clusterInfo.narrowDescendants;
&gt; 
&gt; Nit: you could probably just use this directly?

Well, it&apos;s used twice below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829970</commentid>
    <comment_count>8</comment_count>
      <attachid>187635</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-11 12:10:52 -0800</bug_when>
    <thetext>Created attachment 187635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829979</commentid>
    <comment_count>9</comment_count>
      <attachid>187635</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-11 12:27:30 -0800</bug_when>
    <thetext>Comment on attachment 187635
Patch

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

&gt; Source/WebCore/rendering/TextAutosizer.cpp:51
&gt; +// Represents cluster related data. Objects should not persist between the calls to processSubtree.

Nit: s/Objects/Instances/ and s/the calls/calls/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829981</commentid>
    <comment_count>10</comment_count>
      <attachid>187638</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-11 12:29:10 -0800</bug_when>
    <thetext>Created attachment 187638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829982</commentid>
    <comment_count>11</comment_count>
      <attachid>187638</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-11 12:30:55 -0800</bug_when>
    <thetext>Comment on attachment 187638
Patch

Looks good to me. Julien/Kenneth, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830049</commentid>
    <comment_count>12</comment_count>
      <attachid>187638</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-11 13:29:23 -0800</bug_when>
    <thetext>Comment on attachment 187638
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830249</commentid>
    <comment_count>13</comment_count>
      <attachid>187638</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 15:50:29 -0800</bug_when>
    <thetext>Comment on attachment 187638
Patch

Clearing flags on attachment: 187638

Committed r142534: &lt;http://trac.webkit.org/changeset/142534&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830250</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 15:50:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841153</commentid>
    <comment_count>15</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-02-25 11:41:25 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; All reviewed patches have been landed.  Closing bug.

I think this may be responsible for for crashers in WebCore::TreeScopeAdopter::updateTreeScope, based on  it being the first build to have these crashes. (See the build bot).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842096</commentid>
    <comment_count>16</comment_count>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2013-02-26 09:33:39 -0800</bug_when>
    <thetext>Oliver, on which bot are you seeing issues?  This code is isolated to Text Autosizing, which, to my knowledge, is only enabled for certain Chromium bots.

The mention of TreeScopeAdopter makes me think it may be related to some of the ongoing Web Component/Shadow DOM refactorings instead.  Were there nearby commits, perhaps?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186856</attachid>
            <date>2013-02-06 07:49:06 -0800</date>
            <delta_ts>2013-02-11 03:30:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109054-20130206154543.patch</filename>
            <type>text/plain</type>
            <size>10230</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODE4NGQwMjhlOWUzNGZi
NzMzZGQyZGI2ZWRkZTRiOGYwNGJhMDVkMy4uNjAzMmU4NDViZDc0MzA0NmNhMzY3YWEwNzVjZDBi
YWQxOTVhNTE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAyLTA2ICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVGV4dCBBdXRvc2l6
aW5nXSBDb2xsZWN0IG5hcnJvdyBkZXNjZW5kYW50cyBhbmQgcHJvY2VzcyB0aGVtIHNlcGFyYXRl
bHkuCisgICAgICAgIFJlZmFjdG9yaW5nIGZvciBhIGNoYW5nZSB0byBmb2xsb3cuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNTQKKworICAgICAg
ICBQcmVwYXJhdGlvbmFsIGNoYW5nZSB0byBjb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBvZiB0
aGUgc2FtZSBhdXRvc2l6aW5nIGNsdXN0ZXIgaW50bworICAgICAgICBncm91cHMgYnkgdGhlIHdp
ZHRoIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgZGVzY2VuZGFudCBhbmQgdGhlIGJsb2NrIGNvbnRh
aW5pbmcgYWxsIHRleHQgb2YKKyAgICAgICAgdGhlIHBhcmVudCBhdXRvc2l6aW5nIGNsdXN0ZXIu
IFRoZSBncm91cHMgd2lsbCBiZSBhdXRvc2l6ZWQgd2l0aCB0aGUgc2FtZSBtdWx0aXBsaWVyLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2
aW9yYWwgY2hhbmdlcyB0aHVzIG5vIG5ldyB0ZXN0cyBvciB0ZXN0IGNoYW5nZXMuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHA6CisgICAgICAgIChUZXh0QXV0b3Npemlu
Z0NsdXN0ZXJJbmZvKTogVmVjdG9yIG9mIG5hcnJvdyBkZXNjZW5kYW50cy4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVyKTogUHJvY2VzcyBuYXJyb3cgZGVz
Y2VuZGFudHMgc2VwYXJhdGVseS4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnBy
b2Nlc3NDb250YWluZXIpOgorCisgICAgICAgICAgICBSZW1lbWJlciBuYXJyb3cgZGVzY2VuZGFu
dHMgb2YgdGhlIHBhcmVudCBjbHVzdGVyIGZvciBsYXRlciBwcm9jZXNzaW5nLgorCisgICAgICAg
IChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdDbHVzdGVyKToKKworICAgICAg
ICAgICAgU3BsaXQgaW50byB0aGUgdHdvIGluZGVwZW5kZW50IG1ldGhvZHMgYmVsb3cuCisKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OmlzQ2VydGFpbmx5QXV0b3NpemluZ0NsdXN0
ZXIpOgorCisgICAgICAgICAgICBEZXRlcm1pbmVzIGlmIHRoZSByZW5kZXJlciBpcyBhbiBhdXRv
c2l6aW5nIGNsdXN0ZXIgb24gaXRzIG93biBhbmQgZG9lc24ndCBuZWVkIHRvIGJlCisgICAgICAg
ICAgICBjb21iaW5lZCB3aXRoIGFueSBvdGhlciByZW5kZXJlci4KKworICAgICAgICAoV2ViQ29y
ZTo6VGV4dEF1dG9zaXplcjo6aXNOYXJyb3dEZXNjZW5kYW50KToKKworICAgICAgICAgICAgRGV0
ZXJtaW5lcyBpZiB0aGUgcmVuZGVyZXIgaXMgbmFycm93ZXIgdGhhbiB0aGUgcGFyZW50IGNsdXN0
ZXIncyBibG9jayBjb250YWluaW5nIGFsbAorICAgICAgICAgICAgdGV4dCBhbmQgdGhlcmVmb3Jl
IG5lZWRzIHRvIGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgbmFycm93ZXIgZGVzY2VuZGFudHMgb2Yg
dGhlIGdpdmVuCisgICAgICAgICAgICBjbHVzdGVyLgorCisgICAgICAgICogcmVuZGVyaW5nL1Rl
eHRBdXRvc2l6ZXIuaDogVGhlIHByb3RvdHlwZXMgZm9yIHRoZSBuZXcgbWV0aG9kcyBhZGRlZC4K
KwogMjAxMy0wMi0wNSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBHcmlkIGl0ZW0ncyBsb2dpY2FsIGhlaWdodCBp
cyBub3QgcHJvcGVybHkgcmVjb21wdXRlZCBhZnRlciAtd2Via2l0LWdyaWQtY29sdW1uIC8gLXdl
YmtpdC1ncmlkLXJvdyBjaGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9z
aXplci5jcHAKaW5kZXggOTFkYmExY2Y1NTE3Yjc0OWQ4ZTIxNzk5NjA2MzU2NjdmOGRlZGQzMS4u
YzJkMDBkZDNjZTRlZmQwMTNhODEwMTZhMzEwOGM1NjgzMWJhYTRiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogCiAjaW5j
bHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjEsNiArNjIsMTAg
QEAgc3RydWN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8gewogICAgIC8vIFVwcGVyIGxpbWl0
IG9uIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpZHRoIG9mIHRoZSBjbHVzdGVyJ3MgYmxv
Y2sgY29udGFpbmluZyBhbGwKICAgICAvLyB0ZXh0IGFuZCB0aGF0IG9mIGEgbmFycm93IGNoaWxk
IGJlZm9yZSB0aGUgY2hpbGQgYmVjb21lcyBhIHNlcGFyYXRlIGNsdXN0ZXIuCiAgICAgZmxvYXQg
bWF4QWxsb3dlZERpZmZlcmVuY2VGcm9tVGV4dFdpZHRoOworCisgICAgLy8gRGVzY2VuZGFudHMg
b2YgdGhlIGNsdXN0ZXIgdGhhdCBhcmUgbmFycm93ZXIgdGhhbiB0aGUgYmxvY2sgY29udGFpbmlu
ZyBhbGwgdGV4dCBhbmQgbXVzdCBiZQorICAgIC8vIHByb2Nlc3NlZCBhcyBhIHNlcGFyYXRlIGNs
dXN0ZXIgb3IgY2x1c3RlcnMuCisgICAgVmVjdG9yPFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8+
IG5hcnJvd0Rlc2NlbmRhbnRzOwogfTsKIAogCkBAIC0xNTAsNiArMTU1LDEyIEBAIHZvaWQgVGV4
dEF1dG9zaXplcjo6cHJvY2Vzc0NsdXN0ZXIoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyogY2x1
c3RlckluZm8sIFJlbmRlCiAgICAgfQogCiAgICAgcHJvY2Vzc0NvbnRhaW5lcihtdWx0aXBsaWVy
LCBjb250YWluZXIsIGNsdXN0ZXJJbmZvLCBzdWJ0cmVlUm9vdCwgd2luZG93SW5mbyk7CisKKyAg
ICBWZWN0b3I8VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbz4mIG5hcnJvd0Rlc2NlbmRhbnRzID0g
Y2x1c3RlckluZm8tPm5hcnJvd0Rlc2NlbmRhbnRzOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbmFycm93RGVzY2VuZGFudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgVGV4dEF1dG9zaXpp
bmdDbHVzdGVySW5mbyogZGVzY2VuZGFudENsdXN0ZXJJbmZvID0gJm5hcnJvd0Rlc2NlbmRhbnRz
W2ldOworICAgICAgICBwcm9jZXNzQ2x1c3RlcihkZXNjZW5kYW50Q2x1c3RlckluZm8sIGRlc2Nl
bmRhbnRDbHVzdGVySW5mby0+cm9vdCwgZGVzY2VuZGFudENsdXN0ZXJJbmZvLT5yb290LCB3aW5k
b3dJbmZvKTsKKyAgICB9CiB9CiAKIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5l
cihmbG9hdCBtdWx0aXBsaWVyLCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBUZXh0QXV0b3Npemlu
Z0NsdXN0ZXJJbmZvKiBjbHVzdGVySW5mbywgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUm9vdCwgY29u
c3QgVGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKQpAQCAtMTY4LDkgKzE3OSwx
MyBAQCB2b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIoZmxvYXQgbXVsdGlwbGll
ciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgVAogICAgICAgICAgICAgLy8gRklYTUU6IEluY3Jl
YXNlIGxpc3QgbWFya2VyIHNpemUgcHJvcG9ydGlvbmF0ZWx5LgogICAgICAgICB9IGVsc2UgaWYg
KGlzQXV0b3NpemluZ0NvbnRhaW5lcihkZXNjZW5kYW50KSkgewogICAgICAgICAgICAgUmVuZGVy
QmxvY2sqIGRlc2NlbmRhbnRCbG9jayA9IHRvUmVuZGVyQmxvY2soZGVzY2VuZGFudCk7Ci0gICAg
ICAgICAgICBpZiAoaXNBdXRvc2l6aW5nQ2x1c3RlcihkZXNjZW5kYW50QmxvY2ssIGNsdXN0ZXJJ
bmZvKSkgewotICAgICAgICAgICAgICAgIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8gZGVzY2Vu
ZGFudENsdXN0ZXJJbmZvKGRlc2NlbmRhbnRCbG9jayk7CisgICAgICAgICAgICBUZXh0QXV0b3Np
emluZ0NsdXN0ZXJJbmZvIGRlc2NlbmRhbnRDbHVzdGVySW5mbyhkZXNjZW5kYW50QmxvY2spOwor
ICAgICAgICAgICAgaWYgKGlzQ2VydGFpbmx5QXV0b3NpemluZ0NsdXN0ZXIoZGVzY2VuZGFudEJs
b2NrLCBjbHVzdGVySW5mbykpCiAgICAgICAgICAgICAgICAgcHJvY2Vzc0NsdXN0ZXIoJmRlc2Nl
bmRhbnRDbHVzdGVySW5mbywgZGVzY2VuZGFudEJsb2NrLCBkZXNjZW5kYW50QmxvY2ssIHdpbmRv
d0luZm8pOworICAgICAgICAgICAgZWxzZSBpZiAoaXNOYXJyb3dEZXNjZW5kYW50KGRlc2NlbmRh
bnRCbG9jaywgY2x1c3RlckluZm8pKSB7CisgICAgICAgICAgICAgICAgLy8gTmFycm93IGRlc2Nl
bmRhbnRzIGFyZSBwcm9jZXNzZWQgdG9nZXRoZXIgbGF0ZXIgdG8gYmUgYWJsZSB0byBhcHBseSB0
aGUgc2FtZSBtdWx0aXBsaWVyCisgICAgICAgICAgICAgICAgLy8gdG8gZWFjaCBvZiB0aGVtIGlm
IG5lY2Vzc2FyeS4KKyAgICAgICAgICAgICAgICBjbHVzdGVySW5mby0+bmFycm93RGVzY2VuZGFu
dHMuYXBwZW5kKGRlc2NlbmRhbnRDbHVzdGVySW5mbyk7CiAgICAgICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgICAgICBwcm9jZXNzQ29udGFpbmVyKG11bHRpcGxpZXIsIGRlc2NlbmRhbnRCbG9j
aywgY2x1c3RlckluZm8sIGRlc2NlbmRhbnRCbG9jaywgd2luZG93SW5mbyk7CiAgICAgICAgIH0K
QEAgLTIzNyw2ICsyNTIsMTggQEAgYm9vbCBUZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdDb250
YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIAogYm9vbCBUZXh0QXV0b3NpemVy
Ojppc0F1dG9zaXppbmdDbHVzdGVyKGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJlciwgVGV4dEF1
dG9zaXppbmdDbHVzdGVySW5mbyogcGFyZW50Q2x1c3RlckluZm8pCiB7CisgICAgQVNTRVJUKGlz
QXV0b3NpemluZ0NvbnRhaW5lcihyZW5kZXJlcikpOworICAgIHJldHVybiBpc05hcnJvd0Rlc2Nl
bmRhbnQocmVuZGVyZXIsIHBhcmVudENsdXN0ZXJJbmZvKSB8fCBpc0NlcnRhaW5seUF1dG9zaXpp
bmdDbHVzdGVyKHJlbmRlcmVyLCBwYXJlbnRDbHVzdGVySW5mbyk7Cit9CisKK2Jvb2wgVGV4dEF1
dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkK
K3sKKyAgICBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvIGVtcHR5Q2x1c3RlckluZm8oMCk7Cisg
ICAgcmV0dXJuIGlzQXV0b3NpemluZ0NvbnRhaW5lcihvYmplY3QpICYmIGlzQXV0b3NpemluZ0Ns
dXN0ZXIodG9SZW5kZXJCbG9jayhvYmplY3QpLCAmZW1wdHlDbHVzdGVySW5mbyk7Cit9CisKK2Jv
b2wgVGV4dEF1dG9zaXplcjo6aXNDZXJ0YWlubHlBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5k
ZXJCbG9jayogcmVuZGVyZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIHBhcmVudENsdXN0
ZXJJbmZvKQorewogICAgIC8vICJBdXRvc2l6aW5nIGNsdXN0ZXJzIiBhcmUgc3BlY2lhbCBhdXRv
c2l6aW5nIGNvbnRhaW5lcnMgd2l0aGluIHdoaWNoIHdlCiAgICAgLy8gd2FudCB0byBlbmZvcmNl
IGEgdW5pZm9ybSB0ZXh0IHNpemUgbXVsdGlwbGllciwgaW4gdGhlIGhvcGVzIG9mIG1ha2luZwog
ICAgIC8vIHRoZSBtYWpvciBzZWN0aW9ucyBvZiB0aGUgcGFnZSBsb29rIGludGVybmFsbHkgY29u
c2lzdGVudC4KQEAgLTI1NiwyNiArMjgzLDE0IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6aXNBdXRv
c2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIsIFRleHRBdXRvc2l6CiAg
ICAgLy8gZnJvbSB0aGUgYm94J3MgcGFyZW50ICh3ZSB3YW50IHRvIGF2b2lkIGhhdmluZyBzaWdu
aWZpY2FudGx5IGRpZmZlcmVudAogICAgIC8vIHdpZHRoIGJsb2NrcyB3aXRoaW4gYSBjbHVzdGVy
LCBzaW5jZSB0aGUgbmFycm93ZXIgYmxvY2tzIHdvdWxkIGVuZCB1cAogICAgIC8vIGxhcmdlciB0
aGFuIHdvdWxkIG90aGVyd2lzZSBiZSBuZWNlc3NhcnkpLgotICAgIC8vIEFkZGl0aW9uYWxseSwg
YW55IGNvbnRhaW5lcnMgdGhhdCBhcmUgd2lkZXIgb3IgYXQgbGVhc3QgMjAwcHggbmFycm93ZXIg
dGhhbgotICAgIC8vIHRoZSB8YmxvY2tDb250YWluaW5nQWxsVGV4dHwgb2YgdGhlaXIgZW5jbG9z
aW5nIGNsdXN0ZXIgYWxzbyBiZWNvbWUgY2x1c3RlcnMsCi0gICAgLy8gc2luY2UgdGhleSBuZWVk
IHNwZWNpYWwgdHJlYXRtZW50IGR1ZSB0byB0aGVpciB3aWR0aC4KLSAgICBBU1NFUlQoaXNBdXRv
c2l6aW5nQ29udGFpbmVyKHJlbmRlcmVyKSk7Ci0KKyAgICAvLyBBZGRpdGlvbmFsbHksIGFueSBj
b250YWluZXJzIHRoYXQgYXJlIHdpZGVyIHRoYW4gdGhlIHxibG9ja0NvbnRhaW5pbmdBbGxUZXh0
fCBvZiB0aGVpcgorICAgIC8vIGVuY2xvc2luZyBjbHVzdGVyIGFsc28gYmVjb21lIGNsdXN0ZXJz
LCBzaW5jZSB0aGV5IG5lZWQgc3BlY2lhbCB0cmVhdG1lbnQgZHVlIHRvIHRoZWlyIHdpZHRoLgog
ICAgIGlmIChwYXJlbnRDbHVzdGVySW5mby0+YmxvY2tDb250YWluaW5nQWxsVGV4dCkgewogICAg
ICAgICBmbG9hdCBjb250ZW50V2lkdGggPSByZW5kZXJlci0+Y29udGVudExvZ2ljYWxXaWR0aCgp
OwogICAgICAgICBmbG9hdCBjbHVzdGVyVGV4dFdpZHRoID0gcGFyZW50Q2x1c3RlckluZm8tPmJs
b2NrQ29udGFpbmluZ0FsbFRleHQtPmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKICAgICAgICAgaWYg
KGNvbnRlbnRXaWR0aCA+IGNsdXN0ZXJUZXh0V2lkdGgpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKIAotICAgICAgICAvLyBUaGUgdXBwZXIgbGltaXQgb24gaG93IG1hbnkgcGl4ZWxzIHRoZSBk
aWZmZXJlbmNlIGJldHdlZW4gdGhlIHJlbmRlcmVyIHdpZHRoCi0gICAgICAgIC8vIGFuZCBpdHMg
cGFyZW50IGNsdXN0ZXIgd2lkdGggY2FuIGV4Y2VlZCB0aGUgY3VycmVudCBtYXhpbXVtIGRpZmZl
cmVuY2UgYnkKLSAgICAgICAgLy8gYmVmb3JlIHRoZSBvYmplY3QgaXMgY29uc2lkZXJlZCB0byBi
ZSBhIHNlcGFyYXRlIGF1dG9zaXppbmcgY2x1c3Rlci4KLSAgICAgICAgY29uc3QgZmxvYXQgZGlm
ZmVyZW5jZUZyb21NYXhXaWR0aERpZmZlcmVuY2UgPSA1MDsKLQotICAgICAgICBmbG9hdCB3aWR0
aERpZmZlcmVuY2UgPSBjbHVzdGVyVGV4dFdpZHRoIC0gY29udGVudFdpZHRoOwotICAgICAgICBp
ZiAod2lkdGhEaWZmZXJlbmNlIC0gcGFyZW50Q2x1c3RlckluZm8tPm1heEFsbG93ZWREaWZmZXJl
bmNlRnJvbVRleHRXaWR0aCA+IGRpZmZlcmVuY2VGcm9tTWF4V2lkdGhEaWZmZXJlbmNlKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhBbGxv
d2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGggPSBzdGQ6Om1heCh3aWR0aERpZmZlcmVuY2UsIHBh
cmVudENsdXN0ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGgpOwogICAg
IH0KIAogICAgIHJldHVybiByZW5kZXJlci0+aXNSZW5kZXJWaWV3KCkKQEAgLTI5MiwxMCArMzA3
LDI2IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5k
ZXJCbG9jayogcmVuZGVyZXIsIFRleHRBdXRvc2l6CiAgICAgLy8gY29udGFpbmVycywgYW5kIHBy
b2JhYmx5IGZsZXhib3hlcy4uLgogfQogCi1ib29sIFRleHRBdXRvc2l6ZXI6OmlzQXV0b3Npemlu
Z0NsdXN0ZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCitib29sIFRleHRBdXRvc2l6ZXI6
OmlzTmFycm93RGVzY2VuZGFudChjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIsIFRleHRBdXRv
c2l6aW5nQ2x1c3RlckluZm8qIHBhcmVudENsdXN0ZXJJbmZvKQogewotICAgIFRleHRBdXRvc2l6
aW5nQ2x1c3RlckluZm8gZW1wdHlDbHVzdGVySW5mbygwKTsKLSAgICByZXR1cm4gaXNBdXRvc2l6
aW5nQ29udGFpbmVyKG9iamVjdCkgJiYgaXNBdXRvc2l6aW5nQ2x1c3Rlcih0b1JlbmRlckJsb2Nr
KG9iamVjdCksICZlbXB0eUNsdXN0ZXJJbmZvKTsKKyAgICBBU1NFUlQoaXNBdXRvc2l6aW5nQ29u
dGFpbmVyKHJlbmRlcmVyKSk7CisKKyAgICBpZiAocGFyZW50Q2x1c3RlckluZm8tPmJsb2NrQ29u
dGFpbmluZ0FsbFRleHQpIHsKKyAgICAgICAgZmxvYXQgY29udGVudFdpZHRoID0gcmVuZGVyZXIt
PmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKKyAgICAgICAgZmxvYXQgY2x1c3RlclRleHRXaWR0aCA9
IHBhcmVudENsdXN0ZXJJbmZvLT5ibG9ja0NvbnRhaW5pbmdBbGxUZXh0LT5jb250ZW50TG9naWNh
bFdpZHRoKCk7CisKKyAgICAgICAgLy8gVGhlIHVwcGVyIGxpbWl0IG9uIGhvdyBtYW55IHBpeGVs
cyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSByZW5kZXJlciB3aWR0aAorICAgICAgICAvLyBh
bmQgaXRzIHBhcmVudCBjbHVzdGVyIHdpZHRoIGNhbiBleGNlZWQgdGhlIGN1cnJlbnQgbWF4aW11
bSBkaWZmZXJlbmNlIGJ5CisgICAgICAgIC8vIGJlZm9yZSB0aGUgb2JqZWN0IGlzIGNvbnNpZGVy
ZWQgdG8gYmUgYSBzZXBhcmF0ZSBhdXRvc2l6aW5nIGNsdXN0ZXIuCisgICAgICAgIGNvbnN0IGZs
b2F0IGRpZmZlcmVuY2VGcm9tTWF4V2lkdGhEaWZmZXJlbmNlID0gNTA7CisKKyAgICAgICAgZmxv
YXQgd2lkdGhEaWZmZXJlbmNlID0gY2x1c3RlclRleHRXaWR0aCAtIGNvbnRlbnRXaWR0aDsKKyAg
ICAgICAgaWYgKHdpZHRoRGlmZmVyZW5jZSAtIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhBbGxvd2Vk
RGlmZmVyZW5jZUZyb21UZXh0V2lkdGggPiBkaWZmZXJlbmNlRnJvbU1heFdpZHRoRGlmZmVyZW5j
ZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBwYXJlbnRDbHVzdGVySW5mby0+
bWF4QWxsb3dlZERpZmZlcmVuY2VGcm9tVGV4dFdpZHRoID0gc3RkOjptYXgod2lkdGhEaWZmZXJl
bmNlLCBwYXJlbnRDbHVzdGVySW5mby0+bWF4QWxsb3dlZERpZmZlcmVuY2VGcm9tVGV4dFdpZHRo
KTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgVGV4dEF1dG9zaXplcjo6
Y29udGFpbmVyU2hvdWxkQmVBdXRvc2l6ZWQoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oCmluZGV4IDE2NmUwNTZkMTFi
ZDNmN2JkN2U2MmJlNWUyNTZkZDJlYjNiODRkMzQuLjc5Yzg5YzlhNmI3MTRlYmRhN2NjYjNlNTk1
MzJjZDQwODBkYmM0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIu
aApAQCAtNjksNiArNjksOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGlzQXV0b3Npemlu
Z0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqKTsKICAgICBzdGF0aWMgYm9vbCBpc0F1dG9z
aXppbmdDbHVzdGVyKGNvbnN0IFJlbmRlckJsb2NrKiwgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5m
byogcGFyZW50Q2x1c3RlckluZm8pOwogICAgIHN0YXRpYyBib29sIGlzQXV0b3NpemluZ0NsdXN0
ZXIoY29uc3QgUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIGJvb2wgaXNDZXJ0YWlubHlBdXRv
c2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJCbG9jayosIFRleHRBdXRvc2l6aW5nQ2x1c3Rlcklu
Zm8qIHBhcmVudENsdXN0ZXJJbmZvKTsKKyAgICBzdGF0aWMgYm9vbCBpc05hcnJvd0Rlc2NlbmRh
bnQoY29uc3QgUmVuZGVyQmxvY2sqLCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBwYXJlbnRD
bHVzdGVySW5mbyk7CiAKICAgICBzdGF0aWMgYm9vbCBjb250YWluZXJTaG91bGRCZUF1dG9zaXpl
ZChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyKTsKICAgICBzdGF0aWMgYm9vbCBjb250YWlu
ZXJDb250YWluc09uZU9mVGFncyhjb25zdCBSZW5kZXJCbG9jayogY2x1c3RlciwgY29uc3QgVmVj
dG9yPFF1YWxpZmllZE5hbWU+JiB0YWdzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187539</attachid>
            <date>2013-02-11 03:30:26 -0800</date>
            <delta_ts>2013-02-11 12:10:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109054-20130211112657.patch</filename>
            <type>text/plain</type>
            <size>4270</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwOGRkNmM3OWUyOTYw
ZDBjMWQyYzdkMjM2OGZlNzRiMmViMGM4Mi4uNzQxYTc4N2ZlYzk4M2JkZjExYmIzZWQyMGM4MzI1
NzAwY2FhNWM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAyLTExICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVGV4dCBBdXRvc2l6
aW5nXSBDb2xsZWN0IG5hcnJvdyBkZXNjZW5kYW50cyBhbmQgcHJvY2VzcyB0aGVtIHNlcGFyYXRl
bHkuIFJlZmFjdG9yaW5nIGZvcgorICAgICAgICBhIGNoYW5nZSB0byBmb2xsb3cuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNTQKKworICAgICAg
ICBQcmVwYXJhdGlvbmFsIGNoYW5nZSB0byBjb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBvZiB0
aGUgc2FtZSBhdXRvc2l6aW5nIGNsdXN0ZXIgaW50bworICAgICAgICBncm91cHMgYnkgdGhlIHdp
ZHRoIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgZGVzY2VuZGFudCBhbmQgdGhlIGJsb2NrIGNvbnRh
aW5pbmcgYWxsIHRleHQgb2YKKyAgICAgICAgdGhlIHBhcmVudCBhdXRvc2l6aW5nIGNsdXN0ZXIu
IFRoZSBncm91cHMgd2lsbCBiZSBhdXRvc2l6ZWQgd2l0aCB0aGUgc2FtZSBtdWx0aXBsaWVyLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2
aW9yYWwgY2hhbmdlcyB0aHVzIG5vIG5ldyB0ZXN0cyBvciB0ZXN0IGNoYW5nZXMuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHA6CisgICAgICAgIChUZXh0QXV0b3Npemlu
Z0NsdXN0ZXJJbmZvKTogVmVjdG9yIG9mIG5hcnJvdyBkZXNjZW5kYW50cy4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVyKTogUHJvY2VzcyBuYXJyb3cgZGVz
Y2VuZGFudHMgc2VwYXJhdGVseS4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnBy
b2Nlc3NDb250YWluZXIpOgorCisgICAgICAgICAgICBSZW1lbWJlciBuYXJyb3cgZGVzY2VuZGFu
dHMgb2YgdGhlIHBhcmVudCBjbHVzdGVyIGZvciBsYXRlciBwcm9jZXNzaW5nLgorCiAyMDEzLTAy
LTA2ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhd
IFJlbmFtZSBpc29sYXRlZCgpIHRvIGdldFdvcmxkKCksIHJlbmFtZSB3b3JsZEZvckVudGVyZWRD
b250ZXh0SWZJc29sYXRlZCgpIHRvIHdvcmxkRm9yRW50ZXJlZENvbnRleHQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCmluZGV4IDkwMWI5ZDdjNTEyNzI1YmZj
Y2Q2Njc5YzZkYWU4M2Y2NzIwYzIyOTUuLjBlM2ZhNGEzNGY1MTcwMjE5MjhmNDE3NmU2MTU5OTM5
Njg2ODM0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3Np
emVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKIAogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTYxLDYgKzYyLDEwIEBAIHN0cnVjdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJ
bmZvIHsKICAgICAvLyBVcHBlciBsaW1pdCBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3
aWR0aCBvZiB0aGUgY2x1c3RlcidzIGJsb2NrIGNvbnRhaW5pbmcgYWxsCiAgICAgLy8gdGV4dCBh
bmQgdGhhdCBvZiBhIG5hcnJvdyBjaGlsZCBiZWZvcmUgdGhlIGNoaWxkIGJlY29tZXMgYSBzZXBh
cmF0ZSBjbHVzdGVyLgogICAgIGZsb2F0IG1heEFsbG93ZWREaWZmZXJlbmNlRnJvbVRleHRXaWR0
aDsKKworICAgIC8vIERlc2NlbmRhbnRzIG9mIHRoZSBjbHVzdGVyIHRoYXQgYXJlIG5hcnJvd2Vy
IHRoYW4gdGhlIGJsb2NrIGNvbnRhaW5pbmcgYWxsIHRleHQgYW5kIG11c3QgYmUKKyAgICAvLyBw
cm9jZXNzZWQgYXMgYSBzZXBhcmF0ZSBjbHVzdGVyIG9yIGNsdXN0ZXJzLgorICAgIFZlY3RvcjxU
ZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvPiBuYXJyb3dEZXNjZW5kYW50czsKIH07CiAKIApAQCAt
MTUwLDYgKzE1NSwxMiBAQCB2b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVyKFRleHRB
dXRvc2l6aW5nQ2x1c3RlckluZm8mIGNsdXN0ZXJJbmZvLCBSZW5kZQogICAgIH0KIAogICAgIHBy
b2Nlc3NDb250YWluZXIobXVsdGlwbGllciwgY29udGFpbmVyLCBjbHVzdGVySW5mbywgc3VidHJl
ZVJvb3QsIHdpbmRvd0luZm8pOworCisgICAgVmVjdG9yPFRleHRBdXRvc2l6aW5nQ2x1c3Rlcklu
Zm8+JiBuYXJyb3dEZXNjZW5kYW50cyA9IGNsdXN0ZXJJbmZvLm5hcnJvd0Rlc2NlbmRhbnRzOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFycm93RGVzY2VuZGFudHMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyYgZGVzY2VuZGFudENsdXN0ZXJJ
bmZvID0gbmFycm93RGVzY2VuZGFudHNbaV07CisgICAgICAgIHByb2Nlc3NDbHVzdGVyKGRlc2Nl
bmRhbnRDbHVzdGVySW5mbywgZGVzY2VuZGFudENsdXN0ZXJJbmZvLnJvb3QsIGRlc2NlbmRhbnRD
bHVzdGVySW5mby5yb290LCB3aW5kb3dJbmZvKTsKKyAgICB9CiB9CiAKIHZvaWQgVGV4dEF1dG9z
aXplcjo6cHJvY2Vzc0NvbnRhaW5lcihmbG9hdCBtdWx0aXBsaWVyLCBSZW5kZXJCbG9jayogY29u
dGFpbmVyLCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvJiBjbHVzdGVySW5mbywgUmVuZGVyT2Jq
ZWN0KiBzdWJ0cmVlUm9vdCwgY29uc3QgVGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvJiB3aW5kb3dJ
bmZvKQpAQCAtMTY4LDkgKzE3OSwxMyBAQCB2b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250
YWluZXIoZmxvYXQgbXVsdGlwbGllciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgVAogICAgICAg
ICAgICAgLy8gRklYTUU6IEluY3JlYXNlIGxpc3QgbWFya2VyIHNpemUgcHJvcG9ydGlvbmF0ZWx5
LgogICAgICAgICB9IGVsc2UgaWYgKGlzQXV0b3NpemluZ0NvbnRhaW5lcihkZXNjZW5kYW50KSkg
ewogICAgICAgICAgICAgUmVuZGVyQmxvY2sqIGRlc2NlbmRhbnRCbG9jayA9IHRvUmVuZGVyQmxv
Y2soZGVzY2VuZGFudCk7Ci0gICAgICAgICAgICBpZiAoaXNBdXRvc2l6aW5nQ2x1c3RlcihkZXNj
ZW5kYW50QmxvY2ssIGNsdXN0ZXJJbmZvKSkgewotICAgICAgICAgICAgICAgIFRleHRBdXRvc2l6
aW5nQ2x1c3RlckluZm8gZGVzY2VuZGFudENsdXN0ZXJJbmZvKGRlc2NlbmRhbnRCbG9jayk7Cisg
ICAgICAgICAgICBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvIGRlc2NlbmRhbnRDbHVzdGVySW5m
byhkZXNjZW5kYW50QmxvY2spOworICAgICAgICAgICAgaWYgKGlzV2lkZXJEZXNjZW5kYW50KGRl
c2NlbmRhbnRCbG9jaywgY2x1c3RlckluZm8pIHx8IGlzSW5kZXBlbmRlbnREZXNjZW5kYW50KGRl
c2NlbmRhbnRCbG9jaykpCiAgICAgICAgICAgICAgICAgcHJvY2Vzc0NsdXN0ZXIoZGVzY2VuZGFu
dENsdXN0ZXJJbmZvLCBkZXNjZW5kYW50QmxvY2ssIGRlc2NlbmRhbnRCbG9jaywgd2luZG93SW5m
byk7CisgICAgICAgICAgICBlbHNlIGlmIChpc05hcnJvd0Rlc2NlbmRhbnQoZGVzY2VuZGFudEJs
b2NrLCBjbHVzdGVySW5mbykpIHsKKyAgICAgICAgICAgICAgICAvLyBOYXJyb3cgZGVzY2VuZGFu
dHMgYXJlIHByb2Nlc3NlZCB0b2dldGhlciBsYXRlciB0byBiZSBhYmxlIHRvIGFwcGx5IHRoZSBz
YW1lIG11bHRpcGxpZXIKKyAgICAgICAgICAgICAgICAvLyB0byBlYWNoIG9mIHRoZW0gaWYgbmVj
ZXNzYXJ5LgorICAgICAgICAgICAgICAgIGNsdXN0ZXJJbmZvLm5hcnJvd0Rlc2NlbmRhbnRzLmFw
cGVuZChkZXNjZW5kYW50Q2x1c3RlckluZm8pOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICAgICAgcHJvY2Vzc0NvbnRhaW5lcihtdWx0aXBsaWVyLCBkZXNjZW5kYW50QmxvY2ssIGNs
dXN0ZXJJbmZvLCBkZXNjZW5kYW50QmxvY2ssIHdpbmRvd0luZm8pOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187635</attachid>
            <date>2013-02-11 12:10:52 -0800</date>
            <delta_ts>2013-02-11 12:29:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109054-20130211200722.patch</filename>
            <type>text/plain</type>
            <size>5009</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwOGRkNmM3OWUyOTYw
ZDBjMWQyYzdkMjM2OGZlNzRiMmViMGM4Mi4uOThmNTQ2NjFjOWJmY2Q4NTExYmI4YzEzMTkyNTUy
MTI5NjUxM2EyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAyLTExICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVGV4dCBBdXRvc2l6
aW5nXSBDb2xsZWN0IG5hcnJvdyBkZXNjZW5kYW50cyBhbmQgcHJvY2VzcyB0aGVtIHNlcGFyYXRl
bHkuIFJlZmFjdG9yaW5nIGZvcgorICAgICAgICBhIGNoYW5nZSB0byBmb2xsb3cuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNTQKKworICAgICAg
ICBQcmVwYXJhdGlvbmFsIGNoYW5nZSB0byBjb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBvZiB0
aGUgc2FtZSBhdXRvc2l6aW5nIGNsdXN0ZXIgaW50bworICAgICAgICBncm91cHMgYnkgdGhlIHdp
ZHRoIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgZGVzY2VuZGFudCBhbmQgdGhlIGJsb2NrIGNvbnRh
aW5pbmcgYWxsIHRleHQgb2YKKyAgICAgICAgdGhlIHBhcmVudCBhdXRvc2l6aW5nIGNsdXN0ZXIu
IFRoZSBncm91cHMgd2lsbCBiZSBhdXRvc2l6ZWQgd2l0aCB0aGUgc2FtZSBtdWx0aXBsaWVyLgor
CisgICAgICAgIEZvciBleGFtcGxlLCBvbiBzaXRlcyB3aXRoIGEgc2lkZWJhciwgc29tZXRpbWVz
IHRoZSBwYXJhZ3JhcGhzIG5leHQgdG8gdGhlIHNpZGViYXIgd2lsbCBoYXZlCisgICAgICAgIGEg
bGFyZ2UgbWFyZ2luIGluZGl2aWR1YWxseSBhcHBsaWVkICh2aWEgYSBDU1Mgc2VsZWN0b3IpLCBj
YXVzaW5nIHRoZW0gYWxsIHRvIGluZGl2aWR1YWxseQorICAgICAgICBhcHBlYXIgbmFycm93ZXIg
dGhhbiB0aGVpciBlbmNsb3NpbmcgYmxvY2tDb250YWluaW5nQWxsVGV4dC4gUmF0aGVyIHRoYW4g
bWFraW5nIGVhY2ggb2YKKyAgICAgICAgdGhlc2UgcGFyYWdyYXBocyBpbnRvIGEgc2VwYXJhdGUg
Y2x1c3Rlciwgd2UgZXZlbnR1YWxseSB3YW50IHRvIGJlIGFibGUgdG8gbWVyZ2UgdGhlbSBiYWNr
CisgICAgICAgIHRvZ2V0aGVyIGludG8gb25lIChvciBhIGZldykgZGVzY2VuZGFudCBjbHVzdGVy
cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBi
ZWhhdmlvcmFsIGNoYW5nZXMgdGh1cyBubyBuZXcgdGVzdHMgb3IgdGVzdCBjaGFuZ2VzLgorCisg
ICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAgICAgICAoVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyk6IFZlY3RvciBvZiBuYXJyb3cgZGVzY2VuZGFudHMuCisgICAgICAg
IChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjpwcm9jZXNzQ2x1c3Rlcik6IFByb2Nlc3MgbmFycm93
IGRlc2NlbmRhbnRzIHNlcGFyYXRlbHkuCisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVy
Ojpwcm9jZXNzQ29udGFpbmVyKToKKworICAgICAgICAgICAgUmVtZW1iZXIgbmFycm93IGRlc2Nl
bmRhbnRzIG9mIHRoZSBwYXJlbnQgY2x1c3RlciBmb3IgbGF0ZXIgcHJvY2Vzc2luZy4KKwogMjAx
My0wMi0wNiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W1Y4XSBSZW5hbWUgaXNvbGF0ZWQoKSB0byBnZXRXb3JsZCgpLCByZW5hbWUgd29ybGRGb3JFbnRl
cmVkQ29udGV4dElmSXNvbGF0ZWQoKSB0byB3b3JsZEZvckVudGVyZWRDb250ZXh0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCA5MDFiOWQ3YzUxMjcy
NWJmY2NkNjY3OWM2ZGFlODNmNjcyMGMyMjk1Li44NTA0Yjg0ZDdhNTU5ZTE3OTQ2ZjJiZTY4ZDQy
YjI5ZDAzODhlM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIHN0cnVjdCBUZXh0QXV0b3NpemluZ1dpbmRv
d0luZm8gewogICAgIEludFNpemUgbWluTGF5b3V0U2l6ZTsKIH07CiAKKy8vIFJlcHJlc2VudHMg
Y2x1c3RlciByZWxhdGVkIGRhdGEuIE9iamVjdHMgc2hvdWxkIG5vdCBwZXJzaXN0IGJldHdlZW4g
dGhlIGNhbGxzIHRvIHByb2Nlc3NTdWJ0cmVlLgogc3RydWN0IFRleHRBdXRvc2l6aW5nQ2x1c3Rl
ckluZm8gewogICAgIGV4cGxpY2l0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8oUmVuZGVyQmxv
Y2sqIHJvb3QpCiAgICAgICAgIDogcm9vdChyb290KQpAQCAtNjEsNiArNjMsMTAgQEAgc3RydWN0
IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8gewogICAgIC8vIFVwcGVyIGxpbWl0IG9uIHRoZSBk
aWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpZHRoIG9mIHRoZSBjbHVzdGVyJ3MgYmxvY2sgY29udGFp
bmluZyBhbGwKICAgICAvLyB0ZXh0IGFuZCB0aGF0IG9mIGEgbmFycm93IGNoaWxkIGJlZm9yZSB0
aGUgY2hpbGQgYmVjb21lcyBhIHNlcGFyYXRlIGNsdXN0ZXIuCiAgICAgZmxvYXQgbWF4QWxsb3dl
ZERpZmZlcmVuY2VGcm9tVGV4dFdpZHRoOworCisgICAgLy8gRGVzY2VuZGFudHMgb2YgdGhlIGNs
dXN0ZXIgdGhhdCBhcmUgbmFycm93ZXIgdGhhbiB0aGUgYmxvY2sgY29udGFpbmluZyBhbGwgdGV4
dCBhbmQgbXVzdCBiZQorICAgIC8vIHByb2Nlc3NlZCB0b2dldGhlci4KKyAgICBWZWN0b3I8VGV4
dEF1dG9zaXppbmdDbHVzdGVySW5mbz4gbmFycm93RGVzY2VuZGFudHM7CiB9OwogCiAKQEAgLTE1
MCw2ICsxNTYsMTIgQEAgdm9pZCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzQ2x1c3RlcihUZXh0QXV0
b3NpemluZ0NsdXN0ZXJJbmZvJiBjbHVzdGVySW5mbywgUmVuZGUKICAgICB9CiAKICAgICBwcm9j
ZXNzQ29udGFpbmVyKG11bHRpcGxpZXIsIGNvbnRhaW5lciwgY2x1c3RlckluZm8sIHN1YnRyZWVS
b290LCB3aW5kb3dJbmZvKTsKKworICAgIFZlY3RvcjxUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZv
PiYgbmFycm93RGVzY2VuZGFudHMgPSBjbHVzdGVySW5mby5uYXJyb3dEZXNjZW5kYW50czsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hcnJvd0Rlc2NlbmRhbnRzLnNpemUoKTsgKytpKSB7
CisgICAgICAgIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8mIGRlc2NlbmRhbnRDbHVzdGVySW5m
byA9IG5hcnJvd0Rlc2NlbmRhbnRzW2ldOworICAgICAgICBwcm9jZXNzQ2x1c3RlcihkZXNjZW5k
YW50Q2x1c3RlckluZm8sIGRlc2NlbmRhbnRDbHVzdGVySW5mby5yb290LCBkZXNjZW5kYW50Q2x1
c3RlckluZm8ucm9vdCwgd2luZG93SW5mbyk7CisgICAgfQogfQogCiB2b2lkIFRleHRBdXRvc2l6
ZXI6OnByb2Nlc3NDb250YWluZXIoZmxvYXQgbXVsdGlwbGllciwgUmVuZGVyQmxvY2sqIGNvbnRh
aW5lciwgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyYgY2x1c3RlckluZm8sIFJlbmRlck9iamVj
dCogc3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRvc2l6aW5nV2luZG93SW5mbyYgd2luZG93SW5m
bykKQEAgLTE2OCw5ICsxODAsMTMgQEAgdm9pZCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzQ29udGFp
bmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBjb250YWluZXIsIFQKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBJbmNyZWFzZSBsaXN0IG1hcmtlciBzaXplIHByb3BvcnRpb25hdGVseS4K
ICAgICAgICAgfSBlbHNlIGlmIChpc0F1dG9zaXppbmdDb250YWluZXIoZGVzY2VuZGFudCkpIHsK
ICAgICAgICAgICAgIFJlbmRlckJsb2NrKiBkZXNjZW5kYW50QmxvY2sgPSB0b1JlbmRlckJsb2Nr
KGRlc2NlbmRhbnQpOwotICAgICAgICAgICAgaWYgKGlzQXV0b3NpemluZ0NsdXN0ZXIoZGVzY2Vu
ZGFudEJsb2NrLCBjbHVzdGVySW5mbykpIHsKLSAgICAgICAgICAgICAgICBUZXh0QXV0b3Npemlu
Z0NsdXN0ZXJJbmZvIGRlc2NlbmRhbnRDbHVzdGVySW5mbyhkZXNjZW5kYW50QmxvY2spOworICAg
ICAgICAgICAgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyBkZXNjZW5kYW50Q2x1c3RlckluZm8o
ZGVzY2VuZGFudEJsb2NrKTsKKyAgICAgICAgICAgIGlmIChpc1dpZGVyRGVzY2VuZGFudChkZXNj
ZW5kYW50QmxvY2ssIGNsdXN0ZXJJbmZvKSB8fCBpc0luZGVwZW5kZW50RGVzY2VuZGFudChkZXNj
ZW5kYW50QmxvY2spKQogICAgICAgICAgICAgICAgIHByb2Nlc3NDbHVzdGVyKGRlc2NlbmRhbnRD
bHVzdGVySW5mbywgZGVzY2VuZGFudEJsb2NrLCBkZXNjZW5kYW50QmxvY2ssIHdpbmRvd0luZm8p
OworICAgICAgICAgICAgZWxzZSBpZiAoaXNOYXJyb3dEZXNjZW5kYW50KGRlc2NlbmRhbnRCbG9j
aywgY2x1c3RlckluZm8pKSB7CisgICAgICAgICAgICAgICAgLy8gTmFycm93IGRlc2NlbmRhbnRz
IGFyZSBwcm9jZXNzZWQgdG9nZXRoZXIgbGF0ZXIgdG8gYmUgYWJsZSB0byBhcHBseSB0aGUgc2Ft
ZSBtdWx0aXBsaWVyCisgICAgICAgICAgICAgICAgLy8gdG8gZWFjaCBvZiB0aGVtIGlmIG5lY2Vz
c2FyeS4KKyAgICAgICAgICAgICAgICBjbHVzdGVySW5mby5uYXJyb3dEZXNjZW5kYW50cy5hcHBl
bmQoZGVzY2VuZGFudENsdXN0ZXJJbmZvKTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgICAgIHByb2Nlc3NDb250YWluZXIobXVsdGlwbGllciwgZGVzY2VuZGFudEJsb2NrLCBjbHVz
dGVySW5mbywgZGVzY2VuZGFudEJsb2NrLCB3aW5kb3dJbmZvKTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187638</attachid>
            <date>2013-02-11 12:29:10 -0800</date>
            <delta_ts>2013-02-11 15:50:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109054-20130211202540.patch</filename>
            <type>text/plain</type>
            <size>5007</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwOGRkNmM3OWUyOTYw
ZDBjMWQyYzdkMjM2OGZlNzRiMmViMGM4Mi4uOThmNTQ2NjFjOWJmY2Q4NTExYmI4YzEzMTkyNTUy
MTI5NjUxM2EyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAyLTExICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVGV4dCBBdXRvc2l6
aW5nXSBDb2xsZWN0IG5hcnJvdyBkZXNjZW5kYW50cyBhbmQgcHJvY2VzcyB0aGVtIHNlcGFyYXRl
bHkuIFJlZmFjdG9yaW5nIGZvcgorICAgICAgICBhIGNoYW5nZSB0byBmb2xsb3cuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNTQKKworICAgICAg
ICBQcmVwYXJhdGlvbmFsIGNoYW5nZSB0byBjb21iaW5lIG5hcnJvdyBkZXNjZW5kYW50cyBvZiB0
aGUgc2FtZSBhdXRvc2l6aW5nIGNsdXN0ZXIgaW50bworICAgICAgICBncm91cHMgYnkgdGhlIHdp
ZHRoIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgZGVzY2VuZGFudCBhbmQgdGhlIGJsb2NrIGNvbnRh
aW5pbmcgYWxsIHRleHQgb2YKKyAgICAgICAgdGhlIHBhcmVudCBhdXRvc2l6aW5nIGNsdXN0ZXIu
IFRoZSBncm91cHMgd2lsbCBiZSBhdXRvc2l6ZWQgd2l0aCB0aGUgc2FtZSBtdWx0aXBsaWVyLgor
CisgICAgICAgIEZvciBleGFtcGxlLCBvbiBzaXRlcyB3aXRoIGEgc2lkZWJhciwgc29tZXRpbWVz
IHRoZSBwYXJhZ3JhcGhzIG5leHQgdG8gdGhlIHNpZGViYXIgd2lsbCBoYXZlCisgICAgICAgIGEg
bGFyZ2UgbWFyZ2luIGluZGl2aWR1YWxseSBhcHBsaWVkICh2aWEgYSBDU1Mgc2VsZWN0b3IpLCBj
YXVzaW5nIHRoZW0gYWxsIHRvIGluZGl2aWR1YWxseQorICAgICAgICBhcHBlYXIgbmFycm93ZXIg
dGhhbiB0aGVpciBlbmNsb3NpbmcgYmxvY2tDb250YWluaW5nQWxsVGV4dC4gUmF0aGVyIHRoYW4g
bWFraW5nIGVhY2ggb2YKKyAgICAgICAgdGhlc2UgcGFyYWdyYXBocyBpbnRvIGEgc2VwYXJhdGUg
Y2x1c3Rlciwgd2UgZXZlbnR1YWxseSB3YW50IHRvIGJlIGFibGUgdG8gbWVyZ2UgdGhlbSBiYWNr
CisgICAgICAgIHRvZ2V0aGVyIGludG8gb25lIChvciBhIGZldykgZGVzY2VuZGFudCBjbHVzdGVy
cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBi
ZWhhdmlvcmFsIGNoYW5nZXMgdGh1cyBubyBuZXcgdGVzdHMgb3IgdGVzdCBjaGFuZ2VzLgorCisg
ICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAgICAgICAoVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyk6IFZlY3RvciBvZiBuYXJyb3cgZGVzY2VuZGFudHMuCisgICAgICAg
IChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjpwcm9jZXNzQ2x1c3Rlcik6IFByb2Nlc3MgbmFycm93
IGRlc2NlbmRhbnRzIHNlcGFyYXRlbHkuCisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVy
Ojpwcm9jZXNzQ29udGFpbmVyKToKKworICAgICAgICAgICAgUmVtZW1iZXIgbmFycm93IGRlc2Nl
bmRhbnRzIG9mIHRoZSBwYXJlbnQgY2x1c3RlciBmb3IgbGF0ZXIgcHJvY2Vzc2luZy4KKwogMjAx
My0wMi0wNiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W1Y4XSBSZW5hbWUgaXNvbGF0ZWQoKSB0byBnZXRXb3JsZCgpLCByZW5hbWUgd29ybGRGb3JFbnRl
cmVkQ29udGV4dElmSXNvbGF0ZWQoKSB0byB3b3JsZEZvckVudGVyZWRDb250ZXh0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCA5MDFiOWQ3YzUxMjcy
NWJmY2NkNjY3OWM2ZGFlODNmNjcyMGMyMjk1Li5iN2YzNzE4YTY1ZTk0ZjliN2I4OGNjNjhlMTRl
NTZkZGU0ZDJiNjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIHN0cnVjdCBUZXh0QXV0b3NpemluZ1dpbmRv
d0luZm8gewogICAgIEludFNpemUgbWluTGF5b3V0U2l6ZTsKIH07CiAKKy8vIFJlcHJlc2VudHMg
Y2x1c3RlciByZWxhdGVkIGRhdGEuIEluc3RhbmNlcyBzaG91bGQgbm90IHBlcnNpc3QgYmV0d2Vl
biBjYWxscyB0byBwcm9jZXNzU3VidHJlZS4KIHN0cnVjdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJ
bmZvIHsKICAgICBleHBsaWNpdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKFJlbmRlckJsb2Nr
KiByb290KQogICAgICAgICA6IHJvb3Qocm9vdCkKQEAgLTYxLDYgKzYzLDEwIEBAIHN0cnVjdCBU
ZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvIHsKICAgICAvLyBVcHBlciBsaW1pdCBvbiB0aGUgZGlm
ZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aWR0aCBvZiB0aGUgY2x1c3RlcidzIGJsb2NrIGNvbnRhaW5p
bmcgYWxsCiAgICAgLy8gdGV4dCBhbmQgdGhhdCBvZiBhIG5hcnJvdyBjaGlsZCBiZWZvcmUgdGhl
IGNoaWxkIGJlY29tZXMgYSBzZXBhcmF0ZSBjbHVzdGVyLgogICAgIGZsb2F0IG1heEFsbG93ZWRE
aWZmZXJlbmNlRnJvbVRleHRXaWR0aDsKKworICAgIC8vIERlc2NlbmRhbnRzIG9mIHRoZSBjbHVz
dGVyIHRoYXQgYXJlIG5hcnJvd2VyIHRoYW4gdGhlIGJsb2NrIGNvbnRhaW5pbmcgYWxsIHRleHQg
YW5kIG11c3QgYmUKKyAgICAvLyBwcm9jZXNzZWQgdG9nZXRoZXIuCisgICAgVmVjdG9yPFRleHRB
dXRvc2l6aW5nQ2x1c3RlckluZm8+IG5hcnJvd0Rlc2NlbmRhbnRzOwogfTsKIAogCkBAIC0xNTAs
NiArMTU2LDEyIEBAIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NsdXN0ZXIoVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyYgY2x1c3RlckluZm8sIFJlbmRlCiAgICAgfQogCiAgICAgcHJvY2Vz
c0NvbnRhaW5lcihtdWx0aXBsaWVyLCBjb250YWluZXIsIGNsdXN0ZXJJbmZvLCBzdWJ0cmVlUm9v
dCwgd2luZG93SW5mbyk7CisKKyAgICBWZWN0b3I8VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbz4m
IG5hcnJvd0Rlc2NlbmRhbnRzID0gY2x1c3RlckluZm8ubmFycm93RGVzY2VuZGFudHM7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBuYXJyb3dEZXNjZW5kYW50cy5zaXplKCk7ICsraSkgewor
ICAgICAgICBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvJiBkZXNjZW5kYW50Q2x1c3RlckluZm8g
PSBuYXJyb3dEZXNjZW5kYW50c1tpXTsKKyAgICAgICAgcHJvY2Vzc0NsdXN0ZXIoZGVzY2VuZGFu
dENsdXN0ZXJJbmZvLCBkZXNjZW5kYW50Q2x1c3RlckluZm8ucm9vdCwgZGVzY2VuZGFudENsdXN0
ZXJJbmZvLnJvb3QsIHdpbmRvd0luZm8pOworICAgIH0KIH0KIAogdm9pZCBUZXh0QXV0b3NpemVy
Ojpwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBjb250YWlu
ZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8mIGNsdXN0ZXJJbmZvLCBSZW5kZXJPYmplY3Qq
IHN1YnRyZWVSb290LCBjb25zdCBUZXh0QXV0b3NpemluZ1dpbmRvd0luZm8mIHdpbmRvd0luZm8p
CkBAIC0xNjgsOSArMTgwLDEzIEBAIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5l
cihmbG9hdCBtdWx0aXBsaWVyLCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBUCiAgICAgICAgICAg
ICAvLyBGSVhNRTogSW5jcmVhc2UgbGlzdCBtYXJrZXIgc2l6ZSBwcm9wb3J0aW9uYXRlbHkuCiAg
ICAgICAgIH0gZWxzZSBpZiAoaXNBdXRvc2l6aW5nQ29udGFpbmVyKGRlc2NlbmRhbnQpKSB7CiAg
ICAgICAgICAgICBSZW5kZXJCbG9jayogZGVzY2VuZGFudEJsb2NrID0gdG9SZW5kZXJCbG9jayhk
ZXNjZW5kYW50KTsKLSAgICAgICAgICAgIGlmIChpc0F1dG9zaXppbmdDbHVzdGVyKGRlc2NlbmRh
bnRCbG9jaywgY2x1c3RlckluZm8pKSB7Ci0gICAgICAgICAgICAgICAgVGV4dEF1dG9zaXppbmdD
bHVzdGVySW5mbyBkZXNjZW5kYW50Q2x1c3RlckluZm8oZGVzY2VuZGFudEJsb2NrKTsKKyAgICAg
ICAgICAgIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8gZGVzY2VuZGFudENsdXN0ZXJJbmZvKGRl
c2NlbmRhbnRCbG9jayk7CisgICAgICAgICAgICBpZiAoaXNXaWRlckRlc2NlbmRhbnQoZGVzY2Vu
ZGFudEJsb2NrLCBjbHVzdGVySW5mbykgfHwgaXNJbmRlcGVuZGVudERlc2NlbmRhbnQoZGVzY2Vu
ZGFudEJsb2NrKSkKICAgICAgICAgICAgICAgICBwcm9jZXNzQ2x1c3RlcihkZXNjZW5kYW50Q2x1
c3RlckluZm8sIGRlc2NlbmRhbnRCbG9jaywgZGVzY2VuZGFudEJsb2NrLCB3aW5kb3dJbmZvKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKGlzTmFycm93RGVzY2VuZGFudChkZXNjZW5kYW50QmxvY2ss
IGNsdXN0ZXJJbmZvKSkgeworICAgICAgICAgICAgICAgIC8vIE5hcnJvdyBkZXNjZW5kYW50cyBh
cmUgcHJvY2Vzc2VkIHRvZ2V0aGVyIGxhdGVyIHRvIGJlIGFibGUgdG8gYXBwbHkgdGhlIHNhbWUg
bXVsdGlwbGllcgorICAgICAgICAgICAgICAgIC8vIHRvIGVhY2ggb2YgdGhlbSBpZiBuZWNlc3Nh
cnkuCisgICAgICAgICAgICAgICAgY2x1c3RlckluZm8ubmFycm93RGVzY2VuZGFudHMuYXBwZW5k
KGRlc2NlbmRhbnRDbHVzdGVySW5mbyk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICAgICBwcm9jZXNzQ29udGFpbmVyKG11bHRpcGxpZXIsIGRlc2NlbmRhbnRCbG9jaywgY2x1c3Rl
ckluZm8sIGRlc2NlbmRhbnRCbG9jaywgd2luZG93SW5mbyk7CiAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>