<?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>53085</bug_id>
          
          <creation_ts>2011-01-25 07:12:00 -0800</creation_ts>
          <short_desc>[cairo] Fix LayoutTests/fast/canvas/patternfill-repeat.html</short_desc>
          <delta_ts>2012-06-19 14:34:19 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          <dependson>89359</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Dominik Röttsches (drott)">d-r</assigned_to>
          <cc>alex</cc>
    
    <cc>d-r</cc>
    
    <cc>gustavo</cc>
    
    <cc>kenneth</cc>
    
    <cc>leandro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>339638</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-25 07:12:00 -0800</bug_when>
    <thetext>This test is using the different background repeat modes: repeat, repeat-x, repeat-y and no-repeat. The problem is that cairo doesn&apos;t have a extend mode for repeat-x/y and we are always using EXTEND_REPEAT. We could use EXTEND_NONE for repeat-x/y and paint the pattern multiple times ourselves, or we could try to clip the row/column we want to draw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339648</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-25 07:46:43 -0800</bug_when>
    <thetext>Committed r76593: &lt;http://trac.webkit.org/changeset/76593&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339649</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-25 07:48:04 -0800</bug_when>
    <thetext>Reopening, webkit-patch fixed it when I committed r76593</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616994</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-05 09:29:19 -0700</bug_when>
    <thetext>The following tests were found to be passing consistently after moving from using the Skipped list to using test_expectations.txt:
	fast/canvas/patternfill-repeat.html

Their expectations were removed in r116122[1] (covered by bug #85591). Tests that are covered by this bug and are still failing are the following:
	canvas/philip/tests/2d.pattern.paint.repeatx.coord1.html
	canvas/philip/tests/2d.pattern.paint.repeatx.outside.html
	canvas/philip/tests/2d.pattern.paint.repeaty.coord1.html
	canvas/philip/tests/2d.pattern.paint.repeaty.outside.html

1: http://trac.webkit.org/changeset/116122</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650057</commentid>
    <comment_count>4</comment_count>
      <attachid>147780</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-06-15 03:19:00 -0700</bug_when>
    <thetext>Created attachment 147780
Clipping repeats.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650079</commentid>
    <comment_count>5</comment_count>
      <attachid>147780</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-06-15 04:22:51 -0700</bug_when>
    <thetext>Comment on attachment 147780
Clipping repeats.

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

&gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:305
&gt; +    cairo_append_path(m_cr.get(), currentPath);
&gt; +}

I think you are leaking the path here, you should call cairo_path_destroy(), or even better you could use OwnPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650088</commentid>
    <comment_count>6</comment_count>
      <attachid>147794</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-06-15 05:02:23 -0700</bug_when>
    <thetext>Created attachment 147794
Clipping repeats, v2, OwnPtr for path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650104</commentid>
    <comment_count>7</comment_count>
      <attachid>147794</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-06-15 05:52:26 -0700</bug_when>
    <thetext>Comment on attachment 147794
Clipping repeats, v2, OwnPtr for path.

Thanks for the patch, it looks good to me in general, but I prefer that martin or alex review it since they know this code much better than me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650312</commentid>
    <comment_count>8</comment_count>
      <attachid>147794</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-15 10:35:17 -0700</bug_when>
    <thetext>Comment on attachment 147794
Clipping repeats, v2, OwnPtr for path.

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

Great work, just a few comments.

&gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:277
&gt; +    int patternWidth = patternImage-&gt;width();
&gt; +    int patternHeight = patternImage-&gt;height();

There&apos;s no need to cache these values, you only use them once.

&gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:280
&gt; +    bool repeatX = state.fillPattern-&gt;repeatX();
&gt; +    bool repeatY = state.fillPattern-&gt;repeatY();

I would recommend moving these and patternImage down to right before you use them.

&gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:283
&gt; +    OwnPtr&lt;cairo_path_t&gt; currentPath = adoptPtr(cairo_copy_path(m_cr.get()));
&gt; +    cairo_new_path(m_cr.get());

Probably should drop a comment here that says something like &quot;We need to preserve any pre-existing paths.&quot;

&gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:285
&gt; +    FloatRect clipRect = targetRect;

Why not just start with the cairo_clip_extents?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651318</commentid>
    <comment_count>9</comment_count>
      <attachid>148081</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-06-18 04:30:42 -0700</bug_when>
    <thetext>Created attachment 148081
Clipping repeats, v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651319</commentid>
    <comment_count>10</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-06-18 04:33:49 -0700</bug_when>
    <thetext>Thanks for the review and positive feedback, Martin. Here&apos;s an updated patch.

(In reply to comment #8)
&gt; (From update of attachment 147794 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147794&amp;action=review

&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:277
&gt; &gt; +    int patternWidth = patternImage-&gt;width();
&gt; &gt; +    int patternHeight = patternImage-&gt;height();
&gt; 
&gt; There&apos;s no need to cache these values, you only use them once.

Moved down into where they are used.

&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:280
&gt; &gt; +    bool repeatX = state.fillPattern-&gt;repeatX();
&gt; &gt; +    bool repeatY = state.fillPattern-&gt;repeatY();
&gt; 
&gt; I would recommend moving these and patternImage down to right before you use them.

Done.

&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:283
&gt; &gt; +    OwnPtr&lt;cairo_path_t&gt; currentPath = adoptPtr(cairo_copy_path(m_cr.get()));
&gt; &gt; +    cairo_new_path(m_cr.get());
&gt; 
&gt; Probably should drop a comment here that says something like &quot;We need to preserve any pre-existing paths.&quot;

Comment on saving and restoring added.

&gt; &gt; Source/WebCore/platform/graphics/cairo/PlatformContextCairo.cpp:285
&gt; &gt; +    FloatRect clipRect = targetRect;
&gt; 
&gt; Why not just start with the cairo_clip_extents?

Thanks - Yes, much better, very useful suggestion. I hope the double to float conversion there is alright for all practical purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651406</commentid>
    <comment_count>11</comment_count>
      <attachid>148081</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 08:41:23 -0700</bug_when>
    <thetext>Comment on attachment 148081
Clipping repeats, v3

Clearing flags on attachment: 148081

Committed r120598: &lt;http://trac.webkit.org/changeset/120598&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651407</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 08:41:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651484</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 10:09:34 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 89359</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651490</commentid>
    <comment_count>14</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-06-18 10:13:07 -0700</bug_when>
    <thetext>Reopening, commit is causing crashes on GTK and EFL release builders:
http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release/builds/25424
http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Release/builds/1502

Rolling out in bug #89359.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652295</commentid>
    <comment_count>15</comment_count>
      <attachid>148302</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-06-19 03:32:42 -0700</bug_when>
    <thetext>Created attachment 148302
Clipping repeats, v4, OwnPtrCairo free fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652299</commentid>
    <comment_count>16</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-06-19 03:34:16 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=148302) [details]
&gt; Clipping repeats, v4, OwnPtrCairo free fix.

#include &quot;OwnPtrCairo.h&quot;
was missing from PlatformContextCairo.cpp - leading to the wrong free function being called. Zan or Martin - could I ask you to re-land? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652767</commentid>
    <comment_count>17</comment_count>
      <attachid>148302</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-19 13:53:37 -0700</bug_when>
    <thetext>Comment on attachment 148302
Clipping repeats, v4, OwnPtrCairo free fix.

Sorry, I should have caught that in my previous review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652788</commentid>
    <comment_count>18</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-06-19 14:06:55 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 148302 [details])
&gt; Sorry, I should have caught that in my previous review.

No problem, thanks for the r+ - I tested this locally on EFL and GTK Debug builds - and I guess this was one of the few cases where due to WTF::fastFree the badness happens only in Release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652824</commentid>
    <comment_count>19</comment_count>
      <attachid>148302</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 14:34:13 -0700</bug_when>
    <thetext>Comment on attachment 148302
Clipping repeats, v4, OwnPtrCairo free fix.

Clearing flags on attachment: 148302

Committed r120755: &lt;http://trac.webkit.org/changeset/120755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652825</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 14:34:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147780</attachid>
            <date>2012-06-15 03:19:00 -0700</date>
            <delta_ts>2012-06-15 05:02:12 -0700</delta_ts>
            <desc>Clipping repeats.</desc>
            <filename>bug-53085-20120615132051.patch</filename>
            <type>text/plain</type>
            <size>12027</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTUwZWExMzQyY2EwMGZi
NjliZGI4OGNkZWRmNTVhYWYwN2IwODgzNC4uY2VhY2I3MTBiNzQzNDQ5M2NlNjJmMWZmYTUyZDg4
ZTcxZTAwMDI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA2LTE1ICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
W2NhaXJvXSBGaXggTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcGF0dGVybmZpbGwtcmVwZWF0Lmh0
bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMDg1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xpcHBp
bmcgcHJldmlvdXNseSB1bmxpbWl0ZWQgdmVydGljYWwgYW5kIGhvcml6b250YWwgcGF0dGVybiBy
ZXBlYXRzIHdpdGgKKyAgICAgICAgYSBjbGlwIHJlY3RhbmdsZSBzaW1pbGFyIHRvIHRoZSBRdCBH
cmFwaGljcyBDb250ZXh0LiBJJ2Qgc3VnZ2VzdCB0byByZWZhY3RvcgorICAgICAgICB0aGUgaGVs
cGVyIG1ldGhvZHMgaW4gR3JhcGhpY3NDb250ZXh0Q2Fpcm8gaW50byBQbGF0Zm9ybUNvbnRleHRD
YWlybyBpbiBhCisgICAgICAgIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgdGhpcyBwYXRjaCBmaXhlcworICAgICAgICBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRl
cm4ucGFpbnQucmVwZWF0KiB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Bh
dHRlcm4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmdldFBhdHRlcm5TcGFjZVRyYW5z
Zm9ybSk6IEFkZGluZyBjb25zdGFudCBnZXR0ZXIgbWV0aG9kIHRvIGJlIGFibGUgdG8gbWFwIHRv
IHBhdHRlcm4gc3BhY2UgZXh0ZXJuYWxseSwgbmVlZGVkIGJ5IFBsYXRmb3JtQ29udGV4dENhaXJv
OjpjbGlwRm9yUGF0dGVybkZpbGxpbmcuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd1BhdGhT
aGFkb3cpOiBPcHRpb25hbCB0YXJnZXQgcmVjdGFuZ2xlIHBhcmFtZXRlciB0byBiZSBhYmxlIHRv
IGNsaXAgcGF0dGVybiByZXBlYXRzLgorICAgICAgICAoV2ViQ29yZTo6c2hhZG93QW5kRmlsbEN1
cnJlbnRDYWlyb1BhdGgpOiBPcHRpb25hbCB0YXJnZXQgcmVjdGFuZ2xlIHBhcmFtZXRlciB0byBi
ZSBhYmxlIHRvIGNsaXAgcGF0dGVybiByZXBlYXRzLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250
ZXh0Q2Fpcm86OnByZXBhcmVGb3JGaWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcpOiBDbGlwIHBhdHRlcm4gcmVwZWF0
cyBpZiBuZWVkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1D
b250ZXh0Q2Fpcm8uaDoKKwogMjAxMi0wNi0xNSAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbV2ViR0xdIFNpbXBsZSBpbXBs
ZW1lbnRhdGlvbiBvZiB0aGUgSW5qZWN0ZWRXZWJHTFNjcmlwdFNvdXJjZSB0byBzdXBwb3J0IGNh
cHR1cmluZyBXZWJHTCBjYWxscyBmb3IgYSBmcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0dGVybi5oCmluZGV4IDdlZDVjMGY0N2ExNDk4MTAxODBjMGE4ZjZkNGJlMGMz
Mzg4ODAyYTkuLjVhM2M4Nzk2NjkyYjgyMTI4OWU4YjllNmQ5MjhlZTQxMDMyMjdkOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgKQEAgLTgyLDYgKzgyLDcg
QEAgcHVibGljOgogICAgIFBsYXRmb3JtUGF0dGVyblB0ciBjcmVhdGVQbGF0Zm9ybVBhdHRlcm4o
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiB1c2VyU3BhY2VUcmFuc2Zvcm1hdGlvbikgY29uc3Q7CiAj
ZW5kaWYKICAgICB2b2lkIHNldFBhdHRlcm5TcGFjZVRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKTsKKyAgICBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIGdldFBhdHRlcm5TcGFjZVRyYW5zZm9ybSgpIHsgcmV0dXJuIG1fcGF0dGVyblNwYWNl
VHJhbnNmb3JtYXRpb247IH07CiAgICAgdm9pZCBzZXRQbGF0Zm9ybVBhdHRlcm5TcGFjZVRyYW5z
Zm9ybSgpOwogCiAgICAgYm9vbCByZXBlYXRYKCkgY29uc3QgeyByZXR1cm4gbV9yZXBlYXRYOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggZmRhYTUyNzRjYjI4ZGEyY2IxN2Fh
OWJlYjhiN2ZlNzJjODE2OTE2MC4uY2Y5YjhiNTFhZWFiNmFiZDFiOTg2ZWQ3YzQ4NWQ4ZmNiZmQz
YTIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAtOTUsNyArOTUsNyBAQCBl
bnVtIFBhdGhEcmF3aW5nU3R5bGUgewogICAgIEZpbGxBbmRTdHJva2UgPSBGaWxsICsgU3Ryb2tl
CiB9OwogCi1zdGF0aWMgaW5saW5lIHZvaWQgZHJhd1BhdGhTaGFkb3coR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBQYXRoRHJhd2luZ1N0eWxlIGRyYXdpbmdTdHlsZSkKK3N0YXRpYyBpbmxpbmUg
dm9pZCBkcmF3UGF0aFNoYWRvdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFBhdGhEcmF3aW5n
U3R5bGUgZHJhd2luZ1N0eWxlLCBjb25zdCBGbG9hdFJlY3QmIHBhdHRlcm5UYXJnZXRSZWN0ID0g
RmxvYXRSZWN0KCkpCiB7CiAgICAgU2hhZG93Qmx1ciYgc2hhZG93ID0gY29udGV4dC0+cGxhdGZv
cm1Db250ZXh0KCktPnNoYWRvd0JsdXIoKTsKICAgICBpZiAoc2hhZG93LnR5cGUoKSA9PSBTaGFk
b3dCbHVyOjpOb1NoYWRvdykKQEAgLTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
ZHJhd1BhdGhTaGFkb3coR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBQYXRoRHJhd2luZ1N0eWxl
IGRyYQogICAgIGlmIChkcmF3aW5nU3R5bGUgJiBGaWxsKSB7CiAgICAgICAgIGNhaXJvX3NhdmUo
Y2Fpcm9TaGFkb3dDb250ZXh0KTsKICAgICAgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY2Fpcm9TaGFk
b3dDb250ZXh0LCBwYXRoLmdldCgpKTsKLSAgICAgICAgc2hhZG93Q29udGV4dC0+cGxhdGZvcm1D
b250ZXh0KCktPnByZXBhcmVGb3JGaWxsaW5nKGNvbnRleHQtPnN0YXRlKCksIFBsYXRmb3JtQ29u
dGV4dENhaXJvOjpOb0FkanVzdG1lbnQpOworICAgICAgICBzaGFkb3dDb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKS0+cHJlcGFyZUZvckZpbGxpbmcoY29udGV4dC0+c3RhdGUoKSwgUGxhdGZvcm1D
b250ZXh0Q2Fpcm86Ok5vQWRqdXN0bWVudCwgcGF0dGVyblRhcmdldFJlY3QpOwogICAgICAgICBj
YWlyb19maWxsKGNhaXJvU2hhZG93Q29udGV4dCk7CiAgICAgICAgIGNhaXJvX3Jlc3RvcmUoY2Fp
cm9TaGFkb3dDb250ZXh0KTsKICAgICB9CkBAIC0xNTEsMTQgKzE1MSwxNCBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgZHJhd1BhdGhTaGFkb3coR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBQYXRoRHJh
d2luZ1N0eWxlIGRyYQogICAgIGNhaXJvX2FwcGVuZF9wYXRoKGNhaXJvQ29udGV4dCwgcGF0aC5n
ZXQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzaGFkb3dBbmRGaWxsQ3VycmVudENhaXJv
UGF0aChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCitzdGF0aWMgaW5saW5lIHZvaWQgc2hhZG93
QW5kRmlsbEN1cnJlbnRDYWlyb1BhdGgoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHBhdHRlcm5UYXJnZXRSZWN0ID0gRmxvYXRSZWN0KCkpCiB7CiAgICAgY2Fpcm9f
dCogY3IgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKTsKICAgICBjYWlyb19zYXZl
KGNyKTsKIAotICAgIGRyYXdQYXRoU2hhZG93KGNvbnRleHQsIEZpbGwpOworICAgIGRyYXdQYXRo
U2hhZG93KGNvbnRleHQsIEZpbGwsIHBhdHRlcm5UYXJnZXRSZWN0KTsKIAotICAgIGNvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpLT5wcmVwYXJlRm9yRmlsbGluZyhjb250ZXh0LT5zdGF0ZSgpLCBQ
bGF0Zm9ybUNvbnRleHRDYWlybzo6QWRqdXN0UGF0dGVybkZvckdsb2JhbEFscGhhKTsKKyAgICBj
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvckZpbGxpbmcoY29udGV4dC0+c3Rh
dGUoKSwgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OkFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSwg
cGF0dGVyblRhcmdldFJlY3QpOwogICAgIGNhaXJvX2ZpbGwoY3IpOwogCiAgICAgY2Fpcm9fcmVz
dG9yZShjcik7CkBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIAogICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1D
b250ZXh0KCktPmNyKCk7CiAgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCByZWN0LngoKSwgcmVjdC55
KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0gICAgc2hhZG93QW5kRmlsbEN1cnJl
bnRDYWlyb1BhdGgodGhpcyk7CisgICAgc2hhZG93QW5kRmlsbEN1cnJlbnRDYWlyb1BhdGgodGhp
cywgcmVjdCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENh
aXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3Jt
Q29udGV4dENhaXJvLmNwcAppbmRleCAxN2ZkNzQ5NDI1NGZkOTI4ZmYzOTBkYzQ1MGQ4ZjUxYzZl
NzAzZjE5Li4zNWUwZWVkMWQ3YmFmNGJiZWUwOTViMGJhNDdhOGJjZDQ4MDQ4OTQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRl
eHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZvaWQg
cHJlcGFyZUNhaXJvQ29udGV4dFNvdXJjZShjYWlyb190KiBjciwgUGF0dGVybiogcGF0dGVybiwg
R3JhZGllbnQqIGcKICAgICB9CiB9CiAKLXZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OnByZXBh
cmVGb3JGaWxsaW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgUGF0dGVybkFk
anVzdG1lbnQgcGF0dGVybkFkanVzdG1lbnQpCit2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpw
cmVwYXJlRm9yRmlsbGluZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIFBhdHRl
cm5BZGp1c3RtZW50IHBhdHRlcm5BZGp1c3RtZW50LCBjb25zdCBGbG9hdFJlY3QmIHBhdHRlcm5U
YXJnZXRSZWN0KQogewogICAgIGNhaXJvX3NldF9maWxsX3J1bGUobV9jci5nZXQoKSwgc3RhdGUu
ZmlsbFJ1bGUgPT0gUlVMRV9FVkVOT0REID8gIENBSVJPX0ZJTExfUlVMRV9FVkVOX09ERCA6IENB
SVJPX0ZJTExfUlVMRV9XSU5ESU5HKTsKICAgICBwcmVwYXJlQ2Fpcm9Db250ZXh0U291cmNlKG1f
Y3IuZ2V0KCksCkBAIC0yNTEsNiArMjUxLDkgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6
cHJlcGFyZUZvckZpbGxpbmcoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuZmlsbEdyYWRpZW50LmdldCgpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuZmlsbENvbG9yLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGF0dGVybkFkanVzdG1lbnQgPT0gQWRqdXN0UGF0dGVybkZvckds
b2JhbEFscGhhID8gZ2xvYmFsQWxwaGEoKSA6IDEpOworCisgICAgaWYgKHN0YXRlLmZpbGxQYXR0
ZXJuICYmICFwYXR0ZXJuVGFyZ2V0UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIGNsaXBGb3JQYXR0
ZXJuRmlsbGluZyhzdGF0ZSwgcGF0dGVyblRhcmdldFJlY3QpOwogfQogCiB2b2lkIFBsYXRmb3Jt
Q29udGV4dENhaXJvOjpwcmVwYXJlRm9yU3Ryb2tpbmcoY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlLCBBbHBoYVByZXNlcnZhdGlvbiBhbHBoYVByZXNlcnZhdGlvbikKQEAgLTI2Miw0
ICsyNjUsNDMgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6cHJlcGFyZUZvclN0cm9raW5n
KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFscGhhUHJlc2VydmF0aW9uID09IFByZXNlcnZlQWxwaGEgPyBnbG9iYWxBbHBo
YSgpIDogMSk7CiB9CiAKK3ZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OmNsaXBGb3JQYXR0ZXJu
RmlsbGluZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0UmVjdCkKK3sKKyAgICBBU1NFUlQoc3RhdGUuZmlsbFBhdHRlcm4pOworCisgICAg
Ly8gQ2xpcCB0byBwYXR0ZXJuIHJlY3RhbmdsZSwgaW5zcGlyZWQgYnkgR3JhcGhpY3NDb250ZXh0
UXQ6OmRyYXdSZXBlYXRQYXR0ZXJuLgorICAgIEltYWdlKiBwYXR0ZXJuSW1hZ2UgPSBzdGF0ZS5m
aWxsUGF0dGVybi0+dGlsZUltYWdlKCk7CisgICAgQVNTRVJUKHBhdHRlcm5JbWFnZSk7CisKKyAg
ICBpbnQgcGF0dGVybldpZHRoID0gcGF0dGVybkltYWdlLT53aWR0aCgpOworICAgIGludCBwYXR0
ZXJuSGVpZ2h0ID0gcGF0dGVybkltYWdlLT5oZWlnaHQoKTsKKworICAgIGJvb2wgcmVwZWF0WCA9
IHN0YXRlLmZpbGxQYXR0ZXJuLT5yZXBlYXRYKCk7CisgICAgYm9vbCByZXBlYXRZID0gc3RhdGUu
ZmlsbFBhdHRlcm4tPnJlcGVhdFkoKTsKKworICAgIGNhaXJvX3BhdGhfdCogY3VycmVudFBhdGgg
PSBjYWlyb19jb3B5X3BhdGgobV9jci5nZXQoKSk7CisKKyAgICBjYWlyb19uZXdfcGF0aChtX2Ny
LmdldCgpKTsKKworICAgIEZsb2F0UmVjdCBjbGlwUmVjdCA9IHRhcmdldFJlY3Q7CisKKyAgICBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0gPSBzdGF0ZS5maWxsUGF0dGVy
bi0+Z2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKCk7CisgICAgRmxvYXRSZWN0IHBhdHRlcm5SZWN0
ID0gcGF0dGVyblRyYW5zZm9ybS5tYXBSZWN0KEZsb2F0UmVjdCgwLCAwLCBwYXR0ZXJuV2lkdGgs
IHBhdHRlcm5IZWlnaHQpKTsKKworICAgIGlmICghcmVwZWF0WCkgeworICAgICAgICBjbGlwUmVj
dC5zZXRYKHBhdHRlcm5SZWN0LngoKSk7CisgICAgICAgIGNsaXBSZWN0LnNldFdpZHRoKHBhdHRl
cm5SZWN0LndpZHRoKCkpOworICAgIH0KKyAgICBpZiAoIXJlcGVhdFkpIHsKKyAgICAgICAgY2xp
cFJlY3Quc2V0WShwYXR0ZXJuUmVjdC55KCkpOworICAgICAgICBjbGlwUmVjdC5zZXRIZWlnaHQo
cGF0dGVyblJlY3QuaGVpZ2h0KCkpOworICAgIH0KKyAgICBpZiAoIXJlcGVhdFggfHwgIXJlcGVh
dFkpIHsKKyAgICAgICAgY2Fpcm9fcmVjdGFuZ2xlKG1fY3IuZ2V0KCksIGNsaXBSZWN0LngoKSwg
Y2xpcFJlY3QueSgpLCBjbGlwUmVjdC53aWR0aCgpLCBjbGlwUmVjdC5oZWlnaHQoKSk7CisgICAg
ICAgIGNhaXJvX2NsaXAobV9jci5nZXQoKSk7CisgICAgfQorCisgICAgY2Fpcm9fYXBwZW5kX3Bh
dGgobV9jci5nZXQoKSwgY3VycmVudFBhdGgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0
Zm9ybUNvbnRleHRDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaAppbmRleCBjNzQwMzJlY2QzZDUwZDI2MGU5ODRkMTQx
NDRiNzZjZjQ2NjNhYmJhLi5lYzI5OGIyZjU0MzNmNmRlMTQ4MjBmZTQ4NDk1NTlkZWNhY2UzNjFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0
Zm9ybUNvbnRleHRDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKQEAgLTYyLDEyICs2MiwxNCBAQCBwdWJsaWM6
CiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpIGNv
bnN0OwogCiAgICAgZW51bSBQYXR0ZXJuQWRqdXN0bWVudCB7IE5vQWRqdXN0bWVudCwgQWRqdXN0
UGF0dGVybkZvckdsb2JhbEFscGhhIH07Ci0gICAgdm9pZCBwcmVwYXJlRm9yRmlsbGluZyhjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIFBhdHRlcm5BZGp1c3RtZW50KTsKKyAgICB2b2lkIHBy
ZXBhcmVGb3JGaWxsaW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgUGF0dGVybkFkanVz
dG1lbnQsIGNvbnN0IEZsb2F0UmVjdCYgcGF0dGVyblRhcmdldFJlY3QgPSBGbG9hdFJlY3QoKSk7
CiAKICAgICBlbnVtIEFscGhhUHJlc2VydmF0aW9uIHsgRG9Ob3RQcmVzZXJ2ZUFscGhhLCBQcmVz
ZXJ2ZUFscGhhIH07CiAgICAgdm9pZCBwcmVwYXJlRm9yU3Ryb2tpbmcoY29uc3QgR3JhcGhpY3ND
b250ZXh0U3RhdGUmLCBBbHBoYVByZXNlcnZhdGlvbiA9IFByZXNlcnZlQWxwaGEpOwogCiBwcml2
YXRlOgorICAgIHZvaWQgY2xpcEZvclBhdHRlcm5GaWxsaW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0KTsKKwogICAgIFJlZlB0cjxjYWly
b190PiBtX2NyOwogCiAgICAgY2xhc3MgU3RhdGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjEzM2MyYjM4ODQ4OTg1Zjhj
ZGI5YjBmYmQ0ZTQwMTY0OWZiNmExNC4uYzA3YjQ0OWEwM2QwYmUyZGEyMzQxOWFjNmFjN2RiYWMw
OWRiN2I2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTE1ICBEb21pbmlrIFLDtnR0
c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAgW2NhaXJvXSBG
aXggTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcGF0dGVybmZpbGwtcmVwZWF0Lmh0bWwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMDg1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdCogdGVzdHMgbm93IHBhc3NpbmcuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9uczoKKwogMjAxMi0wNi0xNSAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBtYWMgcmViYXNlbGluZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1NraXBwZWQKaW5kZXggY2FlNjI3NzUxZTc3NTAxZWRhZTU2MzYwNTk4MmQxY2Y1
MDhjMDJhMy4uOTA4ZDlmYTIwNmNkYmVlYjNjOGFmZDBhZTA5OTc4YjliNWM2ZmQ2MyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1NraXBwZWQKQEAgLTM4OSwxMyArMzg5LDYgQEAgY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXRoLnJlY3Quc2VsZmludGVyc2VjdC5odG1sCiAjIHJlY3RhbmdsZSBoYXMgemVy
byBoZWlnaHQuCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVjdC56ZXJvLjYuaHRtbAog
Ci0jIFJlcGVhdC14Ly15IGRvZXNuJ3Qgd29yayAtIG5vdCBzdXBwb3J0ZWQgaW4gQ2Fpcm8sIHdv
cmthcm91bmQgbmVlZGVkCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MzA4NQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHguY29v
cmQxLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4Lm91
dHNpZGUuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHku
Y29vcmQxLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5
Lm91dHNpZGUuaHRtbAotCiAjIEJVRzogQnVnIGluIHRoZSB0ZXN0IGl0c2VsZiwgYXMgdGhlIGlu
cHV0IGJveCBjYW4gYmUgYmlnIGVub3VnaCBmb3IgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIHRvIGJl
IGluc2lkZSBpdC4KIGZhc3QvZm9ybXMvaW5wdXQtdGV4dC1jbGljay1vdXRzaWRlLmh0bWwKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MTZmYTM3ZmNm
NDFkMzRmZjhlMDcwMDViMDlkYWJlMDI1M2IyMjgyLi43MzkwY2ZmZGFiNDZlMzU3MzNjN2ZkMDRm
OGI1YTY3MGExZDk1N2I1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtOTAwLDEyICs5MDAsNiBAQCBCVUdXS0dUSyA6IGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQucGF0aC5yZWN0LnNlbGZpbnRlcnNlY3QuaHRtbCA9IFRFWFQKIC8vIHJlY3RhbmdsZSBoYXMg
emVybyBoZWlnaHQuCiBCVUdXS0dUSyA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5yZWN0
Lnplcm8uNi5odG1sID0gVEVYVAogCi0vLyBSZXBlYXQteC8teSBkb2Vzbid0IHdvcmsgLSBub3Qg
c3VwcG9ydGVkIGluIENhaXJvLCB3b3JrYXJvdW5kIG5lZWRlZAotQlVHV0s1MzA4NSA6IGNhbnZh
cy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4LmNvb3JkMS5odG1sID0gVEVY
VAotQlVHV0s1MzA4NSA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBl
YXR4Lm91dHNpZGUuaHRtbCA9IFRFWFQKLUJVR1dLNTMwODUgOiBjYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5jb29yZDEuaHRtbCA9IFRFWFQKLUJVR1dLNTMwODUg
OiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5vdXRzaWRlLmh0
bWwgPSBURVhUCi0KIC8vIFRlc3RzIHRoYXQgdXNlciBtb2RhbCBkaWFsb2dzIGZhaWwgaW4gdGhl
IERSVCBmb3Igc29tZSByZWFzb24uCiBCVUdXSzUzNjAwIDogZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwgPSBURVhUCiBCVUdXSzUzNjAwIDog
ZmFzdC9ldmVudHMvc2hvdy1tb2RhbC1kaWFsb2ctb25ibHVyLW9uZm9jdXMuaHRtbCA9IFRFWFQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147794</attachid>
            <date>2012-06-15 05:02:23 -0700</date>
            <delta_ts>2012-06-18 04:30:31 -0700</delta_ts>
            <desc>Clipping repeats, v2, OwnPtr for path.</desc>
            <filename>bug-53085-20120615150415.patch</filename>
            <type>text/plain</type>
            <size>12048</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTUwZWExMzQyY2EwMGZi
NjliZGI4OGNkZWRmNTVhYWYwN2IwODgzNC4uY2VhY2I3MTBiNzQzNDQ5M2NlNjJmMWZmYTUyZDg4
ZTcxZTAwMDI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA2LTE1ICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
W2NhaXJvXSBGaXggTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcGF0dGVybmZpbGwtcmVwZWF0Lmh0
bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMDg1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xpcHBp
bmcgcHJldmlvdXNseSB1bmxpbWl0ZWQgdmVydGljYWwgYW5kIGhvcml6b250YWwgcGF0dGVybiBy
ZXBlYXRzIHdpdGgKKyAgICAgICAgYSBjbGlwIHJlY3RhbmdsZSBzaW1pbGFyIHRvIHRoZSBRdCBH
cmFwaGljcyBDb250ZXh0LiBJJ2Qgc3VnZ2VzdCB0byByZWZhY3RvcgorICAgICAgICB0aGUgaGVs
cGVyIG1ldGhvZHMgaW4gR3JhcGhpY3NDb250ZXh0Q2Fpcm8gaW50byBQbGF0Zm9ybUNvbnRleHRD
YWlybyBpbiBhCisgICAgICAgIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgdGhpcyBwYXRjaCBmaXhlcworICAgICAgICBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRl
cm4ucGFpbnQucmVwZWF0KiB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1Bh
dHRlcm4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhdHRlcm46OmdldFBhdHRlcm5TcGFjZVRyYW5z
Zm9ybSk6IEFkZGluZyBjb25zdGFudCBnZXR0ZXIgbWV0aG9kIHRvIGJlIGFibGUgdG8gbWFwIHRv
IHBhdHRlcm4gc3BhY2UgZXh0ZXJuYWxseSwgbmVlZGVkIGJ5IFBsYXRmb3JtQ29udGV4dENhaXJv
OjpjbGlwRm9yUGF0dGVybkZpbGxpbmcuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd1BhdGhT
aGFkb3cpOiBPcHRpb25hbCB0YXJnZXQgcmVjdGFuZ2xlIHBhcmFtZXRlciB0byBiZSBhYmxlIHRv
IGNsaXAgcGF0dGVybiByZXBlYXRzLgorICAgICAgICAoV2ViQ29yZTo6c2hhZG93QW5kRmlsbEN1
cnJlbnRDYWlyb1BhdGgpOiBPcHRpb25hbCB0YXJnZXQgcmVjdGFuZ2xlIHBhcmFtZXRlciB0byBi
ZSBhYmxlIHRvIGNsaXAgcGF0dGVybiByZXBlYXRzLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250
ZXh0Q2Fpcm86OnByZXBhcmVGb3JGaWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
Q29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZpbGxpbmcpOiBDbGlwIHBhdHRlcm4gcmVwZWF0
cyBpZiBuZWVkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1D
b250ZXh0Q2Fpcm8uaDoKKwogMjAxMi0wNi0xNSAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbV2ViR0xdIFNpbXBsZSBpbXBs
ZW1lbnRhdGlvbiBvZiB0aGUgSW5qZWN0ZWRXZWJHTFNjcmlwdFNvdXJjZSB0byBzdXBwb3J0IGNh
cHR1cmluZyBXZWJHTCBjYWxscyBmb3IgYSBmcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0dGVybi5oCmluZGV4IDdlZDVjMGY0N2ExNDk4MTAxODBjMGE4ZjZkNGJlMGMz
Mzg4ODAyYTkuLjVhM2M4Nzk2NjkyYjgyMTI4OWU4YjllNmQ5MjhlZTQxMDMyMjdkOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmgKQEAgLTgyLDYgKzgyLDcg
QEAgcHVibGljOgogICAgIFBsYXRmb3JtUGF0dGVyblB0ciBjcmVhdGVQbGF0Zm9ybVBhdHRlcm4o
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiB1c2VyU3BhY2VUcmFuc2Zvcm1hdGlvbikgY29uc3Q7CiAj
ZW5kaWYKICAgICB2b2lkIHNldFBhdHRlcm5TcGFjZVRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uKTsKKyAgICBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIGdldFBhdHRlcm5TcGFjZVRyYW5zZm9ybSgpIHsgcmV0dXJuIG1fcGF0dGVyblNwYWNl
VHJhbnNmb3JtYXRpb247IH07CiAgICAgdm9pZCBzZXRQbGF0Zm9ybVBhdHRlcm5TcGFjZVRyYW5z
Zm9ybSgpOwogCiAgICAgYm9vbCByZXBlYXRYKCkgY29uc3QgeyByZXR1cm4gbV9yZXBlYXRYOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggZmRhYTUyNzRjYjI4ZGEyY2IxN2Fh
OWJlYjhiN2ZlNzJjODE2OTE2MC4uY2Y5YjhiNTFhZWFiNmFiZDFiOTg2ZWQ3YzQ4NWQ4ZmNiZmQz
YTIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAtOTUsNyArOTUsNyBAQCBl
bnVtIFBhdGhEcmF3aW5nU3R5bGUgewogICAgIEZpbGxBbmRTdHJva2UgPSBGaWxsICsgU3Ryb2tl
CiB9OwogCi1zdGF0aWMgaW5saW5lIHZvaWQgZHJhd1BhdGhTaGFkb3coR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBQYXRoRHJhd2luZ1N0eWxlIGRyYXdpbmdTdHlsZSkKK3N0YXRpYyBpbmxpbmUg
dm9pZCBkcmF3UGF0aFNoYWRvdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFBhdGhEcmF3aW5n
U3R5bGUgZHJhd2luZ1N0eWxlLCBjb25zdCBGbG9hdFJlY3QmIHBhdHRlcm5UYXJnZXRSZWN0ID0g
RmxvYXRSZWN0KCkpCiB7CiAgICAgU2hhZG93Qmx1ciYgc2hhZG93ID0gY29udGV4dC0+cGxhdGZv
cm1Db250ZXh0KCktPnNoYWRvd0JsdXIoKTsKICAgICBpZiAoc2hhZG93LnR5cGUoKSA9PSBTaGFk
b3dCbHVyOjpOb1NoYWRvdykKQEAgLTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
ZHJhd1BhdGhTaGFkb3coR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBQYXRoRHJhd2luZ1N0eWxl
IGRyYQogICAgIGlmIChkcmF3aW5nU3R5bGUgJiBGaWxsKSB7CiAgICAgICAgIGNhaXJvX3NhdmUo
Y2Fpcm9TaGFkb3dDb250ZXh0KTsKICAgICAgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY2Fpcm9TaGFk
b3dDb250ZXh0LCBwYXRoLmdldCgpKTsKLSAgICAgICAgc2hhZG93Q29udGV4dC0+cGxhdGZvcm1D
b250ZXh0KCktPnByZXBhcmVGb3JGaWxsaW5nKGNvbnRleHQtPnN0YXRlKCksIFBsYXRmb3JtQ29u
dGV4dENhaXJvOjpOb0FkanVzdG1lbnQpOworICAgICAgICBzaGFkb3dDb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKS0+cHJlcGFyZUZvckZpbGxpbmcoY29udGV4dC0+c3RhdGUoKSwgUGxhdGZvcm1D
b250ZXh0Q2Fpcm86Ok5vQWRqdXN0bWVudCwgcGF0dGVyblRhcmdldFJlY3QpOwogICAgICAgICBj
YWlyb19maWxsKGNhaXJvU2hhZG93Q29udGV4dCk7CiAgICAgICAgIGNhaXJvX3Jlc3RvcmUoY2Fp
cm9TaGFkb3dDb250ZXh0KTsKICAgICB9CkBAIC0xNTEsMTQgKzE1MSwxNCBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgZHJhd1BhdGhTaGFkb3coR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBQYXRoRHJh
d2luZ1N0eWxlIGRyYQogICAgIGNhaXJvX2FwcGVuZF9wYXRoKGNhaXJvQ29udGV4dCwgcGF0aC5n
ZXQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzaGFkb3dBbmRGaWxsQ3VycmVudENhaXJv
UGF0aChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCitzdGF0aWMgaW5saW5lIHZvaWQgc2hhZG93
QW5kRmlsbEN1cnJlbnRDYWlyb1BhdGgoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHBhdHRlcm5UYXJnZXRSZWN0ID0gRmxvYXRSZWN0KCkpCiB7CiAgICAgY2Fpcm9f
dCogY3IgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKTsKICAgICBjYWlyb19zYXZl
KGNyKTsKIAotICAgIGRyYXdQYXRoU2hhZG93KGNvbnRleHQsIEZpbGwpOworICAgIGRyYXdQYXRo
U2hhZG93KGNvbnRleHQsIEZpbGwsIHBhdHRlcm5UYXJnZXRSZWN0KTsKIAotICAgIGNvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpLT5wcmVwYXJlRm9yRmlsbGluZyhjb250ZXh0LT5zdGF0ZSgpLCBQ
bGF0Zm9ybUNvbnRleHRDYWlybzo6QWRqdXN0UGF0dGVybkZvckdsb2JhbEFscGhhKTsKKyAgICBj
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvckZpbGxpbmcoY29udGV4dC0+c3Rh
dGUoKSwgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OkFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSwg
cGF0dGVyblRhcmdldFJlY3QpOwogICAgIGNhaXJvX2ZpbGwoY3IpOwogCiAgICAgY2Fpcm9fcmVz
dG9yZShjcik7CkBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIAogICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1D
b250ZXh0KCktPmNyKCk7CiAgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCByZWN0LngoKSwgcmVjdC55
KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0gICAgc2hhZG93QW5kRmlsbEN1cnJl
bnRDYWlyb1BhdGgodGhpcyk7CisgICAgc2hhZG93QW5kRmlsbEN1cnJlbnRDYWlyb1BhdGgodGhp
cywgcmVjdCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENh
aXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3Jt
Q29udGV4dENhaXJvLmNwcAppbmRleCAxN2ZkNzQ5NDI1NGZkOTI4ZmYzOTBkYzQ1MGQ4ZjUxYzZl
NzAzZjE5Li44OTVkY2VhZmUzNGMwZjUyYzA4MjBlMTA1N2E5ZGM3NjhmM2M1MjRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRl
eHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZvaWQg
cHJlcGFyZUNhaXJvQ29udGV4dFNvdXJjZShjYWlyb190KiBjciwgUGF0dGVybiogcGF0dGVybiwg
R3JhZGllbnQqIGcKICAgICB9CiB9CiAKLXZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OnByZXBh
cmVGb3JGaWxsaW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgUGF0dGVybkFk
anVzdG1lbnQgcGF0dGVybkFkanVzdG1lbnQpCit2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpw
cmVwYXJlRm9yRmlsbGluZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIFBhdHRl
cm5BZGp1c3RtZW50IHBhdHRlcm5BZGp1c3RtZW50LCBjb25zdCBGbG9hdFJlY3QmIHBhdHRlcm5U
YXJnZXRSZWN0KQogewogICAgIGNhaXJvX3NldF9maWxsX3J1bGUobV9jci5nZXQoKSwgc3RhdGUu
ZmlsbFJ1bGUgPT0gUlVMRV9FVkVOT0REID8gIENBSVJPX0ZJTExfUlVMRV9FVkVOX09ERCA6IENB
SVJPX0ZJTExfUlVMRV9XSU5ESU5HKTsKICAgICBwcmVwYXJlQ2Fpcm9Db250ZXh0U291cmNlKG1f
Y3IuZ2V0KCksCkBAIC0yNTEsNiArMjUxLDkgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6
cHJlcGFyZUZvckZpbGxpbmcoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuZmlsbEdyYWRpZW50LmdldCgpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuZmlsbENvbG9yLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGF0dGVybkFkanVzdG1lbnQgPT0gQWRqdXN0UGF0dGVybkZvckds
b2JhbEFscGhhID8gZ2xvYmFsQWxwaGEoKSA6IDEpOworCisgICAgaWYgKHN0YXRlLmZpbGxQYXR0
ZXJuICYmICFwYXR0ZXJuVGFyZ2V0UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIGNsaXBGb3JQYXR0
ZXJuRmlsbGluZyhzdGF0ZSwgcGF0dGVyblRhcmdldFJlY3QpOwogfQogCiB2b2lkIFBsYXRmb3Jt
Q29udGV4dENhaXJvOjpwcmVwYXJlRm9yU3Ryb2tpbmcoY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlLCBBbHBoYVByZXNlcnZhdGlvbiBhbHBoYVByZXNlcnZhdGlvbikKQEAgLTI2Miw0
ICsyNjUsNDIgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6cHJlcGFyZUZvclN0cm9raW5n
KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFscGhhUHJlc2VydmF0aW9uID09IFByZXNlcnZlQWxwaGEgPyBnbG9iYWxBbHBo
YSgpIDogMSk7CiB9CiAKK3ZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OmNsaXBGb3JQYXR0ZXJu
RmlsbGluZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0UmVjdCkKK3sKKyAgICBBU1NFUlQoc3RhdGUuZmlsbFBhdHRlcm4pOworCisgICAg
Ly8gQ2xpcCB0byBwYXR0ZXJuIHJlY3RhbmdsZSwgaW5zcGlyZWQgYnkgR3JhcGhpY3NDb250ZXh0
UXQ6OmRyYXdSZXBlYXRQYXR0ZXJuLgorICAgIEltYWdlKiBwYXR0ZXJuSW1hZ2UgPSBzdGF0ZS5m
aWxsUGF0dGVybi0+dGlsZUltYWdlKCk7CisgICAgQVNTRVJUKHBhdHRlcm5JbWFnZSk7CisKKyAg
ICBpbnQgcGF0dGVybldpZHRoID0gcGF0dGVybkltYWdlLT53aWR0aCgpOworICAgIGludCBwYXR0
ZXJuSGVpZ2h0ID0gcGF0dGVybkltYWdlLT5oZWlnaHQoKTsKKworICAgIGJvb2wgcmVwZWF0WCA9
IHN0YXRlLmZpbGxQYXR0ZXJuLT5yZXBlYXRYKCk7CisgICAgYm9vbCByZXBlYXRZID0gc3RhdGUu
ZmlsbFBhdHRlcm4tPnJlcGVhdFkoKTsKKworICAgIE93blB0cjxjYWlyb19wYXRoX3Q+IGN1cnJl
bnRQYXRoID0gYWRvcHRQdHIoY2Fpcm9fY29weV9wYXRoKG1fY3IuZ2V0KCkpKTsKKyAgICBjYWly
b19uZXdfcGF0aChtX2NyLmdldCgpKTsKKworICAgIEZsb2F0UmVjdCBjbGlwUmVjdCA9IHRhcmdl
dFJlY3Q7CisKKyAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0gPSBz
dGF0ZS5maWxsUGF0dGVybi0+Z2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKCk7CisgICAgRmxvYXRS
ZWN0IHBhdHRlcm5SZWN0ID0gcGF0dGVyblRyYW5zZm9ybS5tYXBSZWN0KEZsb2F0UmVjdCgwLCAw
LCBwYXR0ZXJuV2lkdGgsIHBhdHRlcm5IZWlnaHQpKTsKKworICAgIGlmICghcmVwZWF0WCkgewor
ICAgICAgICBjbGlwUmVjdC5zZXRYKHBhdHRlcm5SZWN0LngoKSk7CisgICAgICAgIGNsaXBSZWN0
LnNldFdpZHRoKHBhdHRlcm5SZWN0LndpZHRoKCkpOworICAgIH0KKyAgICBpZiAoIXJlcGVhdFkp
IHsKKyAgICAgICAgY2xpcFJlY3Quc2V0WShwYXR0ZXJuUmVjdC55KCkpOworICAgICAgICBjbGlw
UmVjdC5zZXRIZWlnaHQocGF0dGVyblJlY3QuaGVpZ2h0KCkpOworICAgIH0KKyAgICBpZiAoIXJl
cGVhdFggfHwgIXJlcGVhdFkpIHsKKyAgICAgICAgY2Fpcm9fcmVjdGFuZ2xlKG1fY3IuZ2V0KCks
IGNsaXBSZWN0LngoKSwgY2xpcFJlY3QueSgpLCBjbGlwUmVjdC53aWR0aCgpLCBjbGlwUmVjdC5o
ZWlnaHQoKSk7CisgICAgICAgIGNhaXJvX2NsaXAobV9jci5nZXQoKSk7CisgICAgfQorCisgICAg
Y2Fpcm9fYXBwZW5kX3BhdGgobV9jci5nZXQoKSwgY3VycmVudFBhdGguZ2V0KCkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaAppbmRleCBjNzQw
MzJlY2QzZDUwZDI2MGU5ODRkMTQxNDRiNzZjZjQ2NjNhYmJhLi5lYzI5OGIyZjU0MzNmNmRlMTQ4
MjBmZTQ4NDk1NTlkZWNhY2UzNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKQEAgLTYy
LDEyICs2MiwxNCBAQCBwdWJsaWM6CiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSgpIGNvbnN0OwogCiAgICAgZW51bSBQYXR0ZXJuQWRqdXN0bWVudCB7
IE5vQWRqdXN0bWVudCwgQWRqdXN0UGF0dGVybkZvckdsb2JhbEFscGhhIH07Ci0gICAgdm9pZCBw
cmVwYXJlRm9yRmlsbGluZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIFBhdHRlcm5BZGp1
c3RtZW50KTsKKyAgICB2b2lkIHByZXBhcmVGb3JGaWxsaW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4
dFN0YXRlJiwgUGF0dGVybkFkanVzdG1lbnQsIGNvbnN0IEZsb2F0UmVjdCYgcGF0dGVyblRhcmdl
dFJlY3QgPSBGbG9hdFJlY3QoKSk7CiAKICAgICBlbnVtIEFscGhhUHJlc2VydmF0aW9uIHsgRG9O
b3RQcmVzZXJ2ZUFscGhhLCBQcmVzZXJ2ZUFscGhhIH07CiAgICAgdm9pZCBwcmVwYXJlRm9yU3Ry
b2tpbmcoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBBbHBoYVByZXNlcnZhdGlvbiA9IFBy
ZXNlcnZlQWxwaGEpOwogCiBwcml2YXRlOgorICAgIHZvaWQgY2xpcEZvclBhdHRlcm5GaWxsaW5n
KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0
KTsKKwogICAgIFJlZlB0cjxjYWlyb190PiBtX2NyOwogCiAgICAgY2xhc3MgU3RhdGU7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZjEzM2MyYjM4ODQ4OTg1ZjhjZGI5YjBmYmQ0ZTQwMTY0OWZiNmExNC4uYzA3YjQ0OWEwM2Qw
YmUyZGEyMzQxOWFjNmFjN2RiYWMwOWRiN2I2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEy
LTA2LTE1ICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+
CisKKyAgICAgICAgW2NhaXJvXSBGaXggTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcGF0dGVybmZp
bGwtcmVwZWF0Lmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUzMDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdCogdGVzdHMg
bm93IHBhc3NpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0wNi0xNSAgRW1pbCBBIEVr
bHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBt
YWMgcmViYXNlbGluZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKaW5kZXggY2FlNjI3NzUxZTc3
NTAxZWRhZTU2MzYwNTk4MmQxY2Y1MDhjMDJhMy4uOTA4ZDlmYTIwNmNkYmVlYjNjOGFmZDBhZTA5
OTc4YjliNWM2ZmQ2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKQEAgLTM4OSwxMyArMzg5
LDYgQEAgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnJlY3Quc2VsZmludGVyc2VjdC5odG1s
CiAjIHJlY3RhbmdsZSBoYXMgemVybyBoZWlnaHQuCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBh
dGgucmVjdC56ZXJvLjYuaHRtbAogCi0jIFJlcGVhdC14Ly15IGRvZXNuJ3Qgd29yayAtIG5vdCBz
dXBwb3J0ZWQgaW4gQ2Fpcm8sIHdvcmthcm91bmQgbmVlZGVkCi0jIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzA4NQotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0
ZXJuLnBhaW50LnJlcGVhdHguY29vcmQxLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0
dGVybi5wYWludC5yZXBlYXR4Lm91dHNpZGUuaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5w
YXR0ZXJuLnBhaW50LnJlcGVhdHkuY29vcmQxLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQu
cGF0dGVybi5wYWludC5yZXBlYXR5Lm91dHNpZGUuaHRtbAotCiAjIEJVRzogQnVnIGluIHRoZSB0
ZXN0IGl0c2VsZiwgYXMgdGhlIGlucHV0IGJveCBjYW4gYmUgYmlnIGVub3VnaCBmb3IgdGhlIGdp
dmVuIGNvb3JkaW5hdGVzIHRvIGJlIGluc2lkZSBpdC4KIGZhc3QvZm9ybXMvaW5wdXQtdGV4dC1j
bGljay1vdXRzaWRlLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA4MTZmYTM3ZmNmNDFkMzRmZjhlMDcwMDViMDlkYWJlMDI1M2IyMjgyLi43Mzkw
Y2ZmZGFiNDZlMzU3MzNjN2ZkMDRmOGI1YTY3MGExZDk1N2I1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTAwLDEyICs5MDAsNiBAQCBCVUdXS0dUSyA6
IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5yZWN0LnNlbGZpbnRlcnNlY3QuaHRtbCA9IFRF
WFQKIC8vIHJlY3RhbmdsZSBoYXMgemVybyBoZWlnaHQuCiBCVUdXS0dUSyA6IGNhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0aC5yZWN0Lnplcm8uNi5odG1sID0gVEVYVAogCi0vLyBSZXBlYXQteC8t
eSBkb2Vzbid0IHdvcmsgLSBub3Qgc3VwcG9ydGVkIGluIENhaXJvLCB3b3JrYXJvdW5kIG5lZWRl
ZAotQlVHV0s1MzA4NSA6IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBl
YXR4LmNvb3JkMS5odG1sID0gVEVYVAotQlVHV0s1MzA4NSA6IGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQucGF0dGVybi5wYWludC5yZXBlYXR4Lm91dHNpZGUuaHRtbCA9IFRFWFQKLUJVR1dLNTMwODUg
OiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5jb29yZDEuaHRt
bCA9IFRFWFQKLUJVR1dLNTMwODUgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFp
bnQucmVwZWF0eS5vdXRzaWRlLmh0bWwgPSBURVhUCi0KIC8vIFRlc3RzIHRoYXQgdXNlciBtb2Rh
bCBkaWFsb2dzIGZhaWwgaW4gdGhlIERSVCBmb3Igc29tZSByZWFzb24uCiBCVUdXSzUzNjAwIDog
ZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwg
PSBURVhUCiBCVUdXSzUzNjAwIDogZmFzdC9ldmVudHMvc2hvdy1tb2RhbC1kaWFsb2ctb25ibHVy
LW9uZm9jdXMuaHRtbCA9IFRFWFQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148081</attachid>
            <date>2012-06-18 04:30:42 -0700</date>
            <delta_ts>2012-06-19 03:32:32 -0700</delta_ts>
            <desc>Clipping repeats, v3</desc>
            <filename>bug-53085-20120618143238.patch</filename>
            <type>text/plain</type>
            <size>8110</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTI2NDM3ZDk5Zjk5NTEz
MDhiZDdhYzIxZjBhMDI4MzQ1MGQwMTc4OS4uZTVhMWE3ZTE2MjZiODMwMjczZjBiODhmMmMwYzMx
YTc0NGU5ZDMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTE4ICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
W2NhaXJvXSBGaXggTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcGF0dGVybmZpbGwtcmVwZWF0Lmh0
bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMDg1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xpcHBp
bmcgcHJldmlvdXNseSB1bmxpbWl0ZWQgdmVydGljYWwgYW5kIGhvcml6b250YWwgcGF0dGVybiBy
ZXBlYXRzIHdpdGgKKyAgICAgICAgYSBjbGlwIHJlY3RhbmdsZSBzaW1pbGFyIHRvIHRoZSBRdCBH
cmFwaGljcyBDb250ZXh0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGhpcyBwYXRjaCBmaXhl
cworICAgICAgICBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0KiB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhdHRlcm46OmdldFBhdHRlcm5TcGFjZVRyYW5zZm9ybSk6IEFkZGluZyBjb25z
dGFudCBnZXR0ZXIgbWV0aG9kIHRvIGJlIGFibGUgdG8gbWFwIHRvIHBhdHRlcm4gc3BhY2UgZXh0
ZXJuYWxseSwgbmVlZGVkIGJ5IFBsYXRmb3JtQ29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZp
bGxpbmcuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0
Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OnByZXBh
cmVGb3JGaWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpj
bGlwRm9yUGF0dGVybkZpbGxpbmcpOiBDbGlwIHBhdHRlcm4gcmVwZWF0cyBpZiBuZWVkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaDoK
KwogMjAxMi0wNi0xOCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXI6IGludmlzaWJsZSBsYXllcnMgZG8gbm90IGxl
dCB0aGVpciBjaGlsZHJlbiB0byBiZSBwYWludGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QYXR0ZXJuLmgKaW5kZXggN2VkNWMwZjQ3YTE0OTgxMDE4MGMwYThmNmQ0YmUwYzMz
ODg4MDJhOS4uNWEzYzg3OTY2OTJiODIxMjg5ZThiOWU2ZDkyOGVlNDEwMzIyN2Q5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaApAQCAtODIsNiArODIsNyBA
QCBwdWJsaWM6CiAgICAgUGxhdGZvcm1QYXR0ZXJuUHRyIGNyZWF0ZVBsYXRmb3JtUGF0dGVybihj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHVzZXJTcGFjZVRyYW5zZm9ybWF0aW9uKSBjb25zdDsKICNl
bmRpZgogICAgIHZvaWQgc2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pOworICAgIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgZ2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKCkgeyByZXR1cm4gbV9wYXR0ZXJuU3BhY2VU
cmFuc2Zvcm1hdGlvbjsgfTsKICAgICB2b2lkIHNldFBsYXRmb3JtUGF0dGVyblNwYWNlVHJhbnNm
b3JtKCk7CiAKICAgICBib29sIHJlcGVhdFgoKSBjb25zdCB7IHJldHVybiBtX3JlcGVhdFg7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRm
b3JtQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcAppbmRleCAxN2ZkNzQ5NDI1NGZkOTI4ZmYzOTBk
YzQ1MGQ4ZjUxYzZlNzAzZjE5Li4xNDk3OGMyMjU1YWFlYWZhYmJhOWQ5N2Y5OWFlYjk0ZjRkNWI3
N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
bGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCkBAIC0yNTEsNiArMjUxLDkgQEAg
dm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6cHJlcGFyZUZvckZpbGxpbmcoY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmIHN0YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGUuZmlsbEdyYWRpZW50LmdldCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGUuZmlsbENvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkFkanVz
dG1lbnQgPT0gQWRqdXN0UGF0dGVybkZvckdsb2JhbEFscGhhID8gZ2xvYmFsQWxwaGEoKSA6IDEp
OworCisgICAgaWYgKHN0YXRlLmZpbGxQYXR0ZXJuKQorICAgICAgICBjbGlwRm9yUGF0dGVybkZp
bGxpbmcoc3RhdGUpOwogfQogCiB2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpwcmVwYXJlRm9y
U3Ryb2tpbmcoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBBbHBoYVByZXNlcnZh
dGlvbiBhbHBoYVByZXNlcnZhdGlvbikKQEAgLTI2Miw0ICsyNjUsNDMgQEAgdm9pZCBQbGF0Zm9y
bUNvbnRleHRDYWlybzo6cHJlcGFyZUZvclN0cm9raW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJiBzdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhUHJlc2VydmF0
aW9uID09IFByZXNlcnZlQWxwaGEgPyBnbG9iYWxBbHBoYSgpIDogMSk7CiB9CiAKK3ZvaWQgUGxh
dGZvcm1Db250ZXh0Q2Fpcm86OmNsaXBGb3JQYXR0ZXJuRmlsbGluZyhjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZSYgc3RhdGUpCit7CisgICAgQVNTRVJUKHN0YXRlLmZpbGxQYXR0ZXJuKTsKKwor
ICAgIC8vIEhvbGQgY3VycmVudCBjYWlybyBwYXRoIGluIGEgdmFyaWFibGUgZm9yIHJlc3Rvcmlu
ZyBpdCBhZnRlciBjb25maWd1cmluZyB0aGUgcGF0dGVybiBjbGlwIHJlY3RhbmdsZS4KKyAgICBP
d25QdHI8Y2Fpcm9fcGF0aF90PiBjdXJyZW50UGF0aCA9IGFkb3B0UHRyKGNhaXJvX2NvcHlfcGF0
aChtX2NyLmdldCgpKSk7CisgICAgY2Fpcm9fbmV3X3BhdGgobV9jci5nZXQoKSk7CisKKyAgICAv
LyBJbml0aWFsaXplIGNsaXBwaW5nIGV4dGVudCBmcm9tIGN1cnJlbnQgY2Fpcm8gY2xpcCBleHRl
bnRzLCB0aGVuIHNocmluayBpZiBuZWVkZWQgYWNjb3JkaW5nIHRvIHBhdHRlcm4uCisgICAgLy8g
SW5zcGlyZWQgYnkgR3JhcGhpY3NDb250ZXh0UXQ6OmRyYXdSZXBlYXRQYXR0ZXJuLgorICAgIGRv
dWJsZSB4MSwgeTEsIHgyLCB5MjsKKyAgICBjYWlyb19jbGlwX2V4dGVudHMobV9jci5nZXQoKSwg
JngxLCAmeTEsICZ4MiwgJnkyKTsKKyAgICBGbG9hdFJlY3QgY2xpcFJlY3QoeDEsIHkxLCB4MiAt
IHgxLCB5MiAtIHkxKTsKKworICAgIEltYWdlKiBwYXR0ZXJuSW1hZ2UgPSBzdGF0ZS5maWxsUGF0
dGVybi0+dGlsZUltYWdlKCk7CisgICAgQVNTRVJUKHBhdHRlcm5JbWFnZSk7CisgICAgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtID0gc3RhdGUuZmlsbFBhdHRlcm4tPmdl
dFBhdHRlcm5TcGFjZVRyYW5zZm9ybSgpOworICAgIEZsb2F0UmVjdCBwYXR0ZXJuUmVjdCA9IHBh
dHRlcm5UcmFuc2Zvcm0ubWFwUmVjdChGbG9hdFJlY3QoMCwgMCwgcGF0dGVybkltYWdlLT53aWR0
aCgpLCBwYXR0ZXJuSW1hZ2UtPmhlaWdodCgpKSk7CisKKyAgICBib29sIHJlcGVhdFggPSBzdGF0
ZS5maWxsUGF0dGVybi0+cmVwZWF0WCgpOworICAgIGJvb2wgcmVwZWF0WSA9IHN0YXRlLmZpbGxQ
YXR0ZXJuLT5yZXBlYXRZKCk7CisKKyAgICBpZiAoIXJlcGVhdFgpIHsKKyAgICAgICAgY2xpcFJl
Y3Quc2V0WChwYXR0ZXJuUmVjdC54KCkpOworICAgICAgICBjbGlwUmVjdC5zZXRXaWR0aChwYXR0
ZXJuUmVjdC53aWR0aCgpKTsKKyAgICB9CisgICAgaWYgKCFyZXBlYXRZKSB7CisgICAgICAgIGNs
aXBSZWN0LnNldFkocGF0dGVyblJlY3QueSgpKTsKKyAgICAgICAgY2xpcFJlY3Quc2V0SGVpZ2h0
KHBhdHRlcm5SZWN0LmhlaWdodCgpKTsKKyAgICB9CisgICAgaWYgKCFyZXBlYXRYIHx8ICFyZXBl
YXRZKSB7CisgICAgICAgIGNhaXJvX3JlY3RhbmdsZShtX2NyLmdldCgpLCBjbGlwUmVjdC54KCks
IGNsaXBSZWN0LnkoKSwgY2xpcFJlY3Qud2lkdGgoKSwgY2xpcFJlY3QuaGVpZ2h0KCkpOworICAg
ICAgICBjYWlyb19jbGlwKG1fY3IuZ2V0KCkpOworICAgIH0KKworICAgIC8vIFJlc3RvcmluZyBj
YWlybyBwYXRoLgorICAgIGNhaXJvX2FwcGVuZF9wYXRoKG1fY3IuZ2V0KCksIGN1cnJlbnRQYXRo
LmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENh
aXJvLmgKaW5kZXggYzc0MDMyZWNkM2Q1MGQyNjBlOTg0ZDE0MTQ0Yjc2Y2Y0NjYzYWJiYS4uZDdm
MTIwNWY3MmNhNDA0NmIzODU3YjY0MTQ3ZmU2MjRhZGRkZTBjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRl
eHRDYWlyby5oCkBAIC02OCw2ICs2OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JT
dHJva2luZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEFscGhhUHJlc2VydmF0aW9uID0g
UHJlc2VydmVBbHBoYSk7CiAKIHByaXZhdGU6CisgICAgdm9pZCBjbGlwRm9yUGF0dGVybkZpbGxp
bmcoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmKTsKKwogICAgIFJlZlB0cjxjYWlyb190PiBt
X2NyOwogCiAgICAgY2xhc3MgU3RhdGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmI0OTFhNjE3NmQyNzA5MzcwZTcyZDU1
ZGUyNWYxZTc2YTAxZmRiMi4uYmE4NDE2ZDBhNjY1YmVkM2ZjN2IxMTY2ZmVjM2FjNzc4ZDdmM2My
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTE4ICBEb21pbmlrIFLDtnR0c2NoZXMg
IDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAgW2NhaXJvXSBGaXggTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvcGF0dGVybmZpbGwtcmVwZWF0Lmh0bWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMDg1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5wYXR0ZXJuLnBhaW50LnJlcGVhdCogdGVzdHMgbm93IHBhc3NpbmcuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAxMi0wNi0xOCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIHNraXAgZmFzdC9maWxlcy94aHItcmVzcG9uc2Ut
YmxvYi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDIwOTA4MWJhZmM0MzY3ZjVi
NjBhMjAxNzFkNDRjNmY1ZGNmNzBiODUuLjhhYTA4ZmUwMDUzOGVjZjQ2MDA0YjJmMGFjODc4Mjdl
ZWQ1MWExN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC0zODksMTMgKzM4OSw2IEBA
IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5yZWN0LnNlbGZpbnRlcnNlY3QuaHRtbAogIyBy
ZWN0YW5nbGUgaGFzIHplcm8gaGVpZ2h0LgogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLnJl
Y3QuemVyby42Lmh0bWwKIAotIyBSZXBlYXQteC8teSBkb2Vzbid0IHdvcmsgLSBub3Qgc3VwcG9y
dGVkIGluIENhaXJvLCB3b3JrYXJvdW5kIG5lZWRlZAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTMwODUKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5w
YWludC5yZXBlYXR4LmNvb3JkMS5odG1sCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4u
cGFpbnQucmVwZWF0eC5vdXRzaWRlLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVy
bi5wYWludC5yZXBlYXR5LmNvb3JkMS5odG1sCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRl
cm4ucGFpbnQucmVwZWF0eS5vdXRzaWRlLmh0bWwKLQogIyBCVUc6IEJ1ZyBpbiB0aGUgdGVzdCBp
dHNlbGYsIGFzIHRoZSBpbnB1dCBib3ggY2FuIGJlIGJpZyBlbm91Z2ggZm9yIHRoZSBnaXZlbiBj
b29yZGluYXRlcyB0byBiZSBpbnNpZGUgaXQuCiBmYXN0L2Zvcm1zL2lucHV0LXRleHQtY2xpY2st
b3V0c2lkZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNjBkMjQ1ODQ4YTZmMjMyYjhkOTUwMDhmZDkzZmI0NGU1YzcwZGYzYy4uZDE3YWYwMDkx
ZjFjN2VhMzM0OTgxMjM3NjUyNzJmNzU5NWIyODdmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTgxOSwxMiArODE5LDYgQEAgQlVHV0tHVEsgOiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVjdC5zZWxmaW50ZXJzZWN0Lmh0bWwgPSBURVhUCiAv
LyByZWN0YW5nbGUgaGFzIHplcm8gaGVpZ2h0LgogQlVHV0tHVEsgOiBjYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnBhdGgucmVjdC56ZXJvLjYuaHRtbCA9IFRFWFQKIAotLy8gUmVwZWF0LXgvLXkgZG9l
c24ndCB3b3JrIC0gbm90IHN1cHBvcnRlZCBpbiBDYWlybywgd29ya2Fyb3VuZCBuZWVkZWQKLUJV
R1dLNTMwODUgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5j
b29yZDEuaHRtbCA9IFRFWFQKLUJVR1dLNTMwODUgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBh
dHRlcm4ucGFpbnQucmVwZWF0eC5vdXRzaWRlLmh0bWwgPSBURVhUCi1CVUdXSzUzMDg1IDogY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkuY29vcmQxLmh0bWwgPSBU
RVhUCi1CVUdXSzUzMDg1IDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJl
cGVhdHkub3V0c2lkZS5odG1sID0gVEVYVAotCiAvLyBUZXN0cyB0aGF0IHVzZXIgbW9kYWwgZGlh
bG9ncyBmYWlsIGluIHRoZSBEUlQgZm9yIHNvbWUgcmVhc29uLgogQlVHV0s1MzYwMCA6IGZhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sID0gVEVY
VAogQlVHV0s1MzYwMCA6IGZhc3QvZXZlbnRzL3Nob3ctbW9kYWwtZGlhbG9nLW9uYmx1ci1vbmZv
Y3VzLmh0bWwgPSBURVhUCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148302</attachid>
            <date>2012-06-19 03:32:42 -0700</date>
            <delta_ts>2012-06-19 14:34:13 -0700</delta_ts>
            <desc>Clipping repeats, v4, OwnPtrCairo free fix.</desc>
            <filename>bug-53085-20120619133439.patch</filename>
            <type>text/plain</type>
            <size>8305</size>
            <attacher name="Dominik Röttsches (drott)">d-r</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI3MTczZmViYjJhZGY5
NjE4MmRlZDExODE1ZWViMzEzNTAxYjEzZC4uYTgwNTIxM2UyMDIxMTczZjNmZDkxNTIwZmFhNTY3
NTFiYjdmZWYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTE5ICBEb21p
bmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CisKKyAgICAgICAg
W2NhaXJvXSBGaXggTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcGF0dGVybmZpbGwtcmVwZWF0Lmh0
bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMDg1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xpcHBp
bmcgcHJldmlvdXNseSB1bmxpbWl0ZWQgdmVydGljYWwgYW5kIGhvcml6b250YWwgcGF0dGVybiBy
ZXBlYXRzIHdpdGgKKyAgICAgICAgYSBjbGlwIHJlY3RhbmdsZSBzaW1pbGFyIHRvIHRoZSBRdCBH
cmFwaGljcyBDb250ZXh0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGhpcyBwYXRjaCBmaXhl
cworICAgICAgICBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0KiB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhdHRlcm46OmdldFBhdHRlcm5TcGFjZVRyYW5zZm9ybSk6IEFkZGluZyBjb25z
dGFudCBnZXR0ZXIgbWV0aG9kIHRvIGJlIGFibGUgdG8gbWFwIHRvIHBhdHRlcm4gc3BhY2UgZXh0
ZXJuYWxseSwgbmVlZGVkIGJ5IFBsYXRmb3JtQ29udGV4dENhaXJvOjpjbGlwRm9yUGF0dGVybkZp
bGxpbmcuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0
Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OnByZXBh
cmVGb3JGaWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvOjpj
bGlwRm9yUGF0dGVybkZpbGxpbmcpOiBDbGlwIHBhdHRlcm4gcmVwZWF0cyBpZiBuZWVkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaDoK
KwogMjAxMi0wNi0xOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gVXNlIEF1dG9kcmFpbmVkUG9vbCBpbnN0ZWFkIG9mIE5TQXV0b3JlbGVhc2VQb29sIGlu
IEF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QYXR0ZXJuLmgKaW5kZXggN2VkNWMwZjQ3YTE0OTgxMDE4MGMwYThmNmQ0YmUw
YzMzODg4MDJhOS4uNWEzYzg3OTY2OTJiODIxMjg5ZThiOWU2ZDkyOGVlNDEwMzIyN2Q5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaApAQCAtODIsNiArODIs
NyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1QYXR0ZXJuUHRyIGNyZWF0ZVBsYXRmb3JtUGF0dGVy
bihjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHVzZXJTcGFjZVRyYW5zZm9ybWF0aW9uKSBjb25zdDsK
ICNlbmRpZgogICAgIHZvaWQgc2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblNwYWNlVHJhbnNmb3JtYXRpb24pOworICAgIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgZ2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKCkgeyByZXR1cm4gbV9wYXR0ZXJuU3Bh
Y2VUcmFuc2Zvcm1hdGlvbjsgfTsKICAgICB2b2lkIHNldFBsYXRmb3JtUGF0dGVyblNwYWNlVHJh
bnNmb3JtKCk7CiAKICAgICBib29sIHJlcGVhdFgoKSBjb25zdCB7IHJldHVybiBtX3JlcGVhdFg7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1Bs
YXRmb3JtQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcAppbmRleCAxN2ZkNzQ5NDI1NGZkOTI4ZmYz
OTBkYzQ1MGQ4ZjUxYzZlNzAzZjE5Li44NjVkMTUyOTQ0ODhmMDEwYmQ3ZWJhYTNkZmFiMjk0OGVj
NDA2ZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIk93blB0ckNhaXJvLmgiCiAjaW5j
bHVkZSAiUGF0dGVybi5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CiAKQEAgLTI1MSw2ICsyNTIsOSBA
QCB2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpwcmVwYXJlRm9yRmlsbGluZyhjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0ZS5maWxsR3JhZGllbnQuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0ZS5maWxsQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuQWRq
dXN0bWVudCA9PSBBZGp1c3RQYXR0ZXJuRm9yR2xvYmFsQWxwaGEgPyBnbG9iYWxBbHBoYSgpIDog
MSk7CisKKyAgICBpZiAoc3RhdGUuZmlsbFBhdHRlcm4pCisgICAgICAgIGNsaXBGb3JQYXR0ZXJu
RmlsbGluZyhzdGF0ZSk7CiB9CiAKIHZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OnByZXBhcmVG
b3JTdHJva2luZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIEFscGhhUHJlc2Vy
dmF0aW9uIGFscGhhUHJlc2VydmF0aW9uKQpAQCAtMjYyLDQgKzI2Niw0MyBAQCB2b2lkIFBsYXRm
b3JtQ29udGV4dENhaXJvOjpwcmVwYXJlRm9yU3Ryb2tpbmcoY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGUmIHN0YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGFQcmVzZXJ2
YXRpb24gPT0gUHJlc2VydmVBbHBoYSA/IGdsb2JhbEFscGhhKCkgOiAxKTsKIH0KIAordm9pZCBQ
bGF0Zm9ybUNvbnRleHRDYWlybzo6Y2xpcEZvclBhdHRlcm5GaWxsaW5nKGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiBzdGF0ZSkKK3sKKyAgICBBU1NFUlQoc3RhdGUuZmlsbFBhdHRlcm4pOwor
CisgICAgLy8gSG9sZCBjdXJyZW50IGNhaXJvIHBhdGggaW4gYSB2YXJpYWJsZSBmb3IgcmVzdG9y
aW5nIGl0IGFmdGVyIGNvbmZpZ3VyaW5nIHRoZSBwYXR0ZXJuIGNsaXAgcmVjdGFuZ2xlLgorICAg
IE93blB0cjxjYWlyb19wYXRoX3Q+IGN1cnJlbnRQYXRoID0gYWRvcHRQdHIoY2Fpcm9fY29weV9w
YXRoKG1fY3IuZ2V0KCkpKTsKKyAgICBjYWlyb19uZXdfcGF0aChtX2NyLmdldCgpKTsKKworICAg
IC8vIEluaXRpYWxpemUgY2xpcHBpbmcgZXh0ZW50IGZyb20gY3VycmVudCBjYWlybyBjbGlwIGV4
dGVudHMsIHRoZW4gc2hyaW5rIGlmIG5lZWRlZCBhY2NvcmRpbmcgdG8gcGF0dGVybi4KKyAgICAv
LyBJbnNwaXJlZCBieSBHcmFwaGljc0NvbnRleHRRdDo6ZHJhd1JlcGVhdFBhdHRlcm4uCisgICAg
ZG91YmxlIHgxLCB5MSwgeDIsIHkyOworICAgIGNhaXJvX2NsaXBfZXh0ZW50cyhtX2NyLmdldCgp
LCAmeDEsICZ5MSwgJngyLCAmeTIpOworICAgIEZsb2F0UmVjdCBjbGlwUmVjdCh4MSwgeTEsIHgy
IC0geDEsIHkyIC0geTEpOworCisgICAgSW1hZ2UqIHBhdHRlcm5JbWFnZSA9IHN0YXRlLmZpbGxQ
YXR0ZXJuLT50aWxlSW1hZ2UoKTsKKyAgICBBU1NFUlQocGF0dGVybkltYWdlKTsKKyAgICBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0gPSBzdGF0ZS5maWxsUGF0dGVybi0+
Z2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKCk7CisgICAgRmxvYXRSZWN0IHBhdHRlcm5SZWN0ID0g
cGF0dGVyblRyYW5zZm9ybS5tYXBSZWN0KEZsb2F0UmVjdCgwLCAwLCBwYXR0ZXJuSW1hZ2UtPndp
ZHRoKCksIHBhdHRlcm5JbWFnZS0+aGVpZ2h0KCkpKTsKKworICAgIGJvb2wgcmVwZWF0WCA9IHN0
YXRlLmZpbGxQYXR0ZXJuLT5yZXBlYXRYKCk7CisgICAgYm9vbCByZXBlYXRZID0gc3RhdGUuZmls
bFBhdHRlcm4tPnJlcGVhdFkoKTsKKworICAgIGlmICghcmVwZWF0WCkgeworICAgICAgICBjbGlw
UmVjdC5zZXRYKHBhdHRlcm5SZWN0LngoKSk7CisgICAgICAgIGNsaXBSZWN0LnNldFdpZHRoKHBh
dHRlcm5SZWN0LndpZHRoKCkpOworICAgIH0KKyAgICBpZiAoIXJlcGVhdFkpIHsKKyAgICAgICAg
Y2xpcFJlY3Quc2V0WShwYXR0ZXJuUmVjdC55KCkpOworICAgICAgICBjbGlwUmVjdC5zZXRIZWln
aHQocGF0dGVyblJlY3QuaGVpZ2h0KCkpOworICAgIH0KKyAgICBpZiAoIXJlcGVhdFggfHwgIXJl
cGVhdFkpIHsKKyAgICAgICAgY2Fpcm9fcmVjdGFuZ2xlKG1fY3IuZ2V0KCksIGNsaXBSZWN0Lngo
KSwgY2xpcFJlY3QueSgpLCBjbGlwUmVjdC53aWR0aCgpLCBjbGlwUmVjdC5oZWlnaHQoKSk7Cisg
ICAgICAgIGNhaXJvX2NsaXAobV9jci5nZXQoKSk7CisgICAgfQorCisgICAgLy8gUmVzdG9yaW5n
IGNhaXJvIHBhdGguCisgICAgY2Fpcm9fYXBwZW5kX3BhdGgobV9jci5nZXQoKSwgY3VycmVudFBh
dGguZ2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0
Q2Fpcm8uaAppbmRleCBjNzQwMzJlY2QzZDUwZDI2MGU5ODRkMTQxNDRiNzZjZjQ2NjNhYmJhLi5k
N2YxMjA1ZjcyY2E0MDQ2YjM4NTdiNjQxNDdmZTYyNGFkZGRlMGNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29u
dGV4dENhaXJvLmgKQEAgLTY4LDYgKzY4LDggQEAgcHVibGljOgogICAgIHZvaWQgcHJlcGFyZUZv
clN0cm9raW5nKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgQWxwaGFQcmVzZXJ2YXRpb24g
PSBQcmVzZXJ2ZUFscGhhKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGNsaXBGb3JQYXR0ZXJuRmls
bGluZyhjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOworCiAgICAgUmVmUHRyPGNhaXJvX3Q+
IG1fY3I7CiAKICAgICBjbGFzcyBTdGF0ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNWZmOTk3Mzk3YzhiZmU3ZjFlN2Qy
OTQzYTM4ZDlhMjY5NTc0ODVmLi5mNmVkOWM4NTQyYWVhNjM4NTIzMGRlMTA4YTlkNzk2ZjIyNGEw
ZDUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMTkgIERvbWluaWsgUsO2dHRzY2hl
cyAgPGRvbWluaWsucm90dHNjaGVzQGludGVsLmNvbT4KKworICAgICAgICBbY2Fpcm9dIEZpeCBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9wYXR0ZXJuZmlsbC1yZXBlYXQuaHRtbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMwODUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0KiB0ZXN0cyBub3cgcGFzc2luZy4KKworICAgICAgICAq
IHBsYXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zOgorCiAyMDEyLTA2LTE5ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1l
ekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRUZMJ3MgTGF5b3V0VGVzdENvbnRyb2xsZXIg
ZG9lcyBub3Qgc3VwcG9ydCBzZXRUZXh0RGlyZWN0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVk
CmluZGV4IGZlMTQ5ZmY2NzYxZDQxYWU3NWIyNTk2MjljOTJiZjJhZTBlOTRhYTkuLmQyNTNjMzBm
YzlkODlkMWU5OTY1YmJiYjRhNzYxYmQ3MzkzNDM3MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lw
cGVkCkBAIC0zODYsMTMgKzM4Niw2IEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5yZWN0
LnNlbGZpbnRlcnNlY3QuaHRtbAogIyByZWN0YW5nbGUgaGFzIHplcm8gaGVpZ2h0LgogY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXRoLnJlY3QuemVyby42Lmh0bWwKIAotIyBSZXBlYXQteC8teSBk
b2Vzbid0IHdvcmsgLSBub3Qgc3VwcG9ydGVkIGluIENhaXJvLCB3b3JrYXJvdW5kIG5lZWRlZAot
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMwODUKLWNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXR4LmNvb3JkMS5odG1sCi1jYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5vdXRzaWRlLmh0bWwKLWNhbnZh
cy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5wYWludC5yZXBlYXR5LmNvb3JkMS5odG1sCi1jYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eS5vdXRzaWRlLmh0bWwKLQog
IyBCVUc6IEJ1ZyBpbiB0aGUgdGVzdCBpdHNlbGYsIGFzIHRoZSBpbnB1dCBib3ggY2FuIGJlIGJp
ZyBlbm91Z2ggZm9yIHRoZSBnaXZlbiBjb29yZGluYXRlcyB0byBiZSBpbnNpZGUgaXQuCiBmYXN0
L2Zvcm1zL2lucHV0LXRleHQtY2xpY2stb3V0c2lkZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNTlmOTY5ODk1NjVjODgxMDE2ZDYyN2Y4MjI4
YzBmN2Y5NmZlNWViZi4uM2ZmYTRjNDc0N2RiOTlhNTIyZWVjY2RkYWZkMTAzNGJmYTYwNTRhMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTgyMCwxMiAr
ODIwLDYgQEAgQlVHV0tHVEsgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVjdC5zZWxm
aW50ZXJzZWN0Lmh0bWwgPSBURVhUCiAvLyByZWN0YW5nbGUgaGFzIHplcm8gaGVpZ2h0LgogQlVH
V0tHVEsgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGgucmVjdC56ZXJvLjYuaHRtbCA9IFRF
WFQKIAotLy8gUmVwZWF0LXgvLXkgZG9lc24ndCB3b3JrIC0gbm90IHN1cHBvcnRlZCBpbiBDYWly
bywgd29ya2Fyb3VuZCBuZWVkZWQKLUJVR1dLNTMwODUgOiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LnBhdHRlcm4ucGFpbnQucmVwZWF0eC5jb29yZDEuaHRtbCA9IFRFWFQKLUJVR1dLNTMwODUgOiBj
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4ucGFpbnQucmVwZWF0eC5vdXRzaWRlLmh0bWwg
PSBURVhUCi1CVUdXSzUzMDg1IDogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLnBhaW50
LnJlcGVhdHkuY29vcmQxLmh0bWwgPSBURVhUCi1CVUdXSzUzMDg1IDogY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5wYXR0ZXJuLnBhaW50LnJlcGVhdHkub3V0c2lkZS5odG1sID0gVEVYVAotCiAvLyBU
ZXN0cyB0aGF0IHVzZXIgbW9kYWwgZGlhbG9ncyBmYWlsIGluIHRoZSBEUlQgZm9yIHNvbWUgcmVh
c29uLgogQlVHV0s1MzYwMCA6IGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWR1cmluZy1tb2RhbC5odG1sID0gVEVYVAogQlVHV0s1MzYwMCA6IGZhc3QvZXZlbnRzL3Nob3ct
bW9kYWwtZGlhbG9nLW9uYmx1ci1vbmZvY3VzLmh0bWwgPSBURVhUCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>