<?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>56981</bug_id>
          
          <creation_ts>2011-03-23 18:00:12 -0700</creation_ts>
          <short_desc>CSSStyleSheet#insertRule doesn&apos;t work well with imported stylesheets</short_desc>
          <delta_ts>2011-06-01 17:54:22 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://elv1s.ru/files/dom/insertRule-webkit-bug/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">me</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>372582</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2011-03-23 18:00:12 -0700</bug_when>
    <thetext>How to reproduce:
Open http://elv1s.ru/files/dom/insertRule-webkit-bug/

Expected:
&quot;PASS&quot; on green background.

Actual:
On first load you will see:
—  &quot;FAIL&quot; on white background in latest WebKit.
—  &quot;FAIL&quot; on green background in Safari 5.0.4.

After reloading the page, you will see &quot;PASS&quot; on green background.

The reduction works well in Firefox 4 and Opera 11.01.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372934</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-24 10:57:42 -0700</bug_when>
    <thetext>The FAIL output is caused by the stylesheet temporarily disappearing from document.styleSheets after an @import rule is added to it. Seems clearly wrong.

&quot;FAIL&quot; on white background in ToT WebKit looks like a regression to me, not sure what caused it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406214</commentid>
    <comment_count>2</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-18 19:53:36 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; The FAIL output is caused by the stylesheet temporarily disappearing from document.styleSheets after an @import rule is added to it. Seems clearly wrong.

This is caused by Document::recalcStyleSelector() removing the style sheets while they have at least a loading rule.

&gt; &quot;FAIL&quot; on white background in ToT WebKit looks like a regression to me, not sure what caused it.

I am not sure what caused this but the root cause is HTMLLinkElement not calling Document::removePendingSheet for dynamically loaded sheet. It is related to the new {add|remove}PendingSheet logic in HTMLLinkElement. I have a patch that solves this problem that I will attach to this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406215</commentid>
    <comment_count>3</comment_count>
      <attachid>94035</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-18 19:58:45 -0700</bug_when>
    <thetext>Created attachment 94035
Proposed fix: Make &lt;link&gt; aware of the dynamic stylesheet so that it properly removes them from the pending sheets</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409336</commentid>
    <comment_count>4</comment_count>
      <attachid>94035</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-24 17:32:18 -0700</bug_when>
    <thetext>Comment on attachment 94035
Proposed fix: Make &lt;link&gt; aware of the dynamic stylesheet so that it properly removes them from the pending sheets

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

The source changes look OK but I think the test could be improved.

&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:1
&gt; +&lt;!DOCTYPE HTML&gt;

html is usually lowercase

&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:3
&gt; +&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;

Remove this line.

&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:8
&gt; +&lt;div id=&quot;testArea&quot;&gt; &lt;/div&gt;

Remove space

&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:33
&gt; +    document.styleSheets[0].insertRule(&apos;@import &quot;green.css&quot;;&apos;, 1);
&gt; +    // We need to wait some time to let the stylesheet load before testing.
&gt; +    window.setTimeout(test, 100);

This will be prone to flakiness. Is there some other way to test when the stylesheet has loaded? Maybe poll for the computed style of some other element?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409793</commentid>
    <comment_count>5</comment_count>
      <attachid>94035</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-25 11:49:18 -0700</bug_when>
    <thetext>Comment on attachment 94035
Proposed fix: Make &lt;link&gt; aware of the dynamic stylesheet so that it properly removes them from the pending sheets

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

&gt;&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:1
&gt;&gt; +&lt;!DOCTYPE HTML&gt;
&gt; 
&gt; html is usually lowercase

Sure, thought it should not impact the document mode.

&gt;&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:3
&gt;&gt; +&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&gt; 
&gt; Remove this line.

Done.

&gt;&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:8
&gt;&gt; +&lt;div id=&quot;testArea&quot;&gt; &lt;/div&gt;
&gt; 
&gt; Remove space

Done.

&gt;&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:33
&gt;&gt; +    window.setTimeout(test, 100);
&gt; 
&gt; This will be prone to flakiness. Is there some other way to test when the stylesheet has loaded? Maybe poll for the computed style of some other element?

Good catch, we could do a certain number of retries to leave enough room for the stylesheet to load. The current problem is that the new stylesheet is not applied thus we could poll forever. I don&apos;t see a reliable way to get the &apos;stylesheet loaded&apos; information but we can mitigate the flakiness. Let me know what you think of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410557</commentid>
    <comment_count>6</comment_count>
      <attachid>94996</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-26 10:08:10 -0700</bug_when>
    <thetext>Created attachment 94996
Updated test case - should reduce the flakiness &amp; solve Simon&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410573</commentid>
    <comment_count>7</comment_count>
      <attachid>94996</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-26 10:19:17 -0700</bug_when>
    <thetext>Comment on attachment 94996
Updated test case - should reduce the flakiness &amp; solve Simon&apos;s comments

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

&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:39
&gt; +        var testArea = document.getElementById(&quot;testArea&quot;);
&gt; +        if (getComputedStyle(testArea).backgroundColor == &quot;rgb(0, 128, 0)&quot;) {
&gt; +            testArea.innerHTML = &apos;PASS&apos;;
&gt; +            remainingTests = 0;
&gt; +        } else {
&gt; +            if (--remainingTests)
&gt; +                testArea.innerHTML = &apos;FAIL, backgroundColor was &apos; + getComputedStyle(testArea).backgroundColor;
&gt; +        }
&gt; +    } catch (e) {
&gt; +        testArea.innerHTML = &apos;FAIL, exception raised (&apos; + e.message + &apos;)&apos;;
&gt; +        remainingTests = 0;
&gt; +    }
&gt; +    if (!remainingTests)
&gt; +        window.setTimeout(test, 25);
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.notifyDone();
&gt; +}
&gt; +
&gt; +window.onload = function() {
&gt; +    document.styleSheets[0].insertRule(&apos;@import &quot;green.css&quot;;&apos;, 1);
&gt; +    // We need to wait some time to let the stylesheet load before testing.
&gt; +    window.setTimeout(test, 25);

This is a confusing way to wait for the stylesheet. I&apos;d much prefer to centralize the wait logic in one function, which should call the &quot;doTest&quot; function when it detects that the load is complete.

Do you expect exceptions to fire here? We don&apos;t normally test for them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410955</commentid>
    <comment_count>8</comment_count>
      <attachid>94996</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-26 15:58:04 -0700</bug_when>
    <thetext>Comment on attachment 94996
Updated test case - should reduce the flakiness &amp; solve Simon&apos;s comments

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

&gt;&gt; LayoutTests/fast/css/import-and-insert-rule-no-update.html:39
&gt;&gt; +    window.setTimeout(test, 25);
&gt; 
&gt; This is a confusing way to wait for the stylesheet. I&apos;d much prefer to centralize the wait logic in one function, which should call the &quot;doTest&quot; function when it detects that the load is complete.
&gt; 
&gt; Do you expect exceptions to fire here? We don&apos;t normally test for them.

I don&apos;t expect any exceptions here. Let me remove that and rework the logic. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411023</commentid>
    <comment_count>9</comment_count>
      <attachid>95081</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-26 17:03:06 -0700</bug_when>
    <thetext>Created attachment 95081
Updated patch with an (hopefully) even better test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413791</commentid>
    <comment_count>10</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-06-01 17:53:25 -0700</bug_when>
    <thetext>Committed r87867: &lt;http://trac.webkit.org/changeset/87867&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413793</commentid>
    <comment_count>11</comment_count>
      <attachid>95081</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-06-01 17:54:22 -0700</bug_when>
    <thetext>Comment on attachment 95081
Updated patch with an (hopefully) even better test case

r- this patch as I landed the other one.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94035</attachid>
            <date>2011-05-18 19:58:45 -0700</date>
            <delta_ts>2011-05-26 10:08:10 -0700</delta_ts>
            <desc>Proposed fix: Make &lt;link&gt; aware of the dynamic stylesheet so that it properly removes them from the pending sheets</desc>
            <filename>bug56981-stylesheet-insertRule-bad-count-1.diff</filename>
            <type>text/plain</type>
            <size>10718</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNjkwYzQxLi43YWFkZGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDUt
MTggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENTU1N0eWxlU2hlZXQj
aW5zZXJ0UnVsZSBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIGltcG9ydGVkIHN0eWxlc2hlZXRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njk4MQorCisg
ICAgICAgIFRlc3QgdGhhdCBhIGNvbWJpbmF0aW9uIG9mIGluc2VydFJ1bGUgYW5kIEBpbXBvcnQg
d29ya3MgcHJvcGVybHkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9pbXBvcnQtYW5kLWluc2VydC1y
dWxlLW5vLXVwZGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2lt
cG9ydC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL3Jlc291cmNlcy9yZWQuY3NzOiBBZGRlZC4KKyAgICAgICAgKGRpdik6CisgICAgICAg
ICogZmFzdC9jc3MvcmVzb3VyY2VzL3JlZGltcG9ydC5jc3M6IEFkZGVkLgorCiAyMDExLTA1LTE2
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbXBvcnQtYW5k
LWluc2VydC1ydWxlLW5vLXVwZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9pbXBvcnQtYW5kLWluc2VydC1ydWxlLW5vLXVwZGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc0ZDhjYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2ltcG9ydC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Rlc3QgZm9yIGJ1ZyA1Njk4MTogQ1NTU3R5bGVTaGVl
dCNpbnNlcnRSdWxlIGRvZXNuJ3Qgd29yayB3ZWxsIHdpdGggaW1wb3J0ZWQgc3R5bGVzaGVldHMK
K1lvdSBzaG91bGQgc2VlIG9uZSBQQVNTIGJlbG93LgorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvaW1wb3J0LWFuZC1pbnNlcnQtcnVsZS1uby11cGRhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2ltcG9ydC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVmMjliMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltcG9ydC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBk
YXRlLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD48aGVhZD4K
KzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFy
c2V0PVVURi04Ij4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3JlZGlt
cG9ydC5jc3MiLz4KKzwvaGVhZD48Ym9keT4KKzxkaXY+VGVzdCBmb3IgYnVnIDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njk4MSI+NTY5ODE8L2E+OiBD
U1NTdHlsZVNoZWV0I2luc2VydFJ1bGUgZG9lc24ndCB3b3JrIHdlbGwgd2l0aCBpbXBvcnRlZCBz
dHlsZXNoZWV0czwvZGl2PgorPGRpdj5Zb3Ugc2hvdWxkIHNlZSBvbmUgUEFTUyBiZWxvdy48L2Rp
dj4KKzxkaXYgaWQ9InRlc3RBcmVhIj4gPC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3QoKSB7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHRlc3RBcmVhID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRlc3RBcmVhIik7CisgICAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxl
KHRlc3RBcmVhKS5iYWNrZ3JvdW5kQ29sb3IgPT0gInJnYigwLCAxMjgsIDApIikgeworICAgICAg
ICAgICAgdGVzdEFyZWEuaW5uZXJIVE1MID0gJ1BBU1MnOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgdGVzdEFyZWEuaW5uZXJIVE1MID0gJ0ZBSUwsIGJhY2tncm91bmRDb2xvciB3YXMg
JyArIGdldENvbXB1dGVkU3R5bGUodGVzdEFyZWEpLmJhY2tncm91bmRDb2xvcjsKKyAgICAgICAg
fQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEFyZWEuaW5uZXJIVE1MID0gJ0ZBSUws
IGV4Y2VwdGlvbiByYWlzZWQgKCcgKyBlLm1lc3NhZ2UgKyAnKSc7CisgICAgfQorICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGRv
Y3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoJ0BpbXBvcnQgImdyZWVuLmNzcyI7Jywg
MSk7CisgICAgLy8gV2UgbmVlZCB0byB3YWl0IHNvbWUgdGltZSB0byBsZXQgdGhlIHN0eWxlc2hl
ZXQgbG9hZCBiZWZvcmUgdGVzdGluZy4KKyAgICB3aW5kb3cuc2V0VGltZW91dCh0ZXN0LCAxMDAp
OworfTsKKzwvc2NyaXB0PgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3Jlc291cmNlcy9yZWQuY3NzIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVzb3Vy
Y2VzL3JlZC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RkMzQ5OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc291cmNlcy9yZWQuY3Nz
CkBAIC0wLDAgKzEgQEAKK2RpdiB7IGJhY2tncm91bmQtY29sb3I6IHJlZCB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvcmVkaW1wb3J0LmNzcyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3Jlc291cmNlcy9yZWRpbXBvcnQuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjA3OGQ1ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9yZXNvdXJjZXMvcmVkaW1wb3J0LmNzcwpAQCAtMCwwICsxIEBACitAaW1wb3J0IHVy
bChyZWQuY3NzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZGI1Mjg5Li40MDBjYmUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDkgQEAKKzIwMTEtMDUtMTggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QGNvZGVhdXJvcmEub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENTU1N0eWxlU2hlZXQjaW5zZXJ0UnVsZSBkb2Vzbid0IHdvcmsgd2VsbCB3aXRo
IGltcG9ydGVkIHN0eWxlc2hlZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01Njk4MQorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL2ltcG9ydC1hbmQt
aW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLmh0bWwKKworICAgICAgICBUaGUgYnVnIGFyaXNlcyBmcm9t
IHRoZSBmYWN0IHRoYXQgPGxpbms+IGVsZW1lbnQgZGlkIG5vdCBrbm93IGFib3V0IGEgcHJvZ3Jh
bW1hdGljYWxseQorICAgICAgICBsb2FkaW5nIHNoZWV0ICh1c2luZyBpbnNlcnRSdWxlIGFuZCBA
aW1wb3J0KSBhbmQgd291bGQgdGh1cyBuZXZlciBjYWxsIHJlbW92ZVBlbmRpbmdTaGVldC4KKyAg
ICAgICAgVGhpcyBpcyBuZWVkZWQgdG8gbWFrZSBzdXJlIG91ciBzdHlsZSBzZWxlY3RvciBjb250
YWlucyBhbiB1cC10by1kYXRlIGxpc3Qgb2Ygc3R5bGVzaGVldHMuCisKKyAgICAgICAgVGhlIGdp
c3Qgb2YgdGhlIHBhdGNoIGFkZHMgYSB3YXkgZm9yIHN0eWxlIHNoZWV0IG93bmVyIGVsZW1lbnQg
dG8ga25vdyBpZiB3ZSBhcmUKKyAgICAgICAgcHJvZ3JhbW1hdGljYWxseSBsb2FkaW5nIGEgc3R5
bGUgc2hlZXQuIFRoaXMgaXMgbmVlZGVkIGFzIDxsaW5rPiBrZWVwcyB0aGUgaW5mb3JtYXRpb24K
KyAgICAgICAgYWJvdXQgdGhhdCBsYXN0IGxvYWRlZCBzdHlsZXNoZWV0LgorCisgICAgICAgICog
Y3NzL0NTU0ltcG9ydFJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1wb3J0UnVsZTo6
aW5zZXJ0ZWRJbnRvUGFyZW50KTogQ2FsbCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQKKyAgICAg
ICAgb24gb3VyIHBhcmVudCBzdHlsZSBzaGVldCBpbnN0ZWFkIG9mIGRpcmVjdGx5IGFkZGluZyBh
IHBlbmRpbmcgc3R5bGUgc2hlZXQuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjpzdGFydExvYWRpbmdEeW5hbWljU2hl
ZXQpOiBDYWxsIHN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldAorICAgICAgICBvbiBvdXIgb3duZXIg
ZWxlbWVudCBpZiB3ZSBoYXZlIG9uZS4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0Lmg6
CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnN0YXJ0TG9h
ZGluZ0R5bmFtaWNTaGVldCk6IEFkZGVkIGNvbW1vbiBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAg
ICBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQsIHdoaWNoIHNob3VsZCBuZXZlciBiZSBjYWxsZWQu
CisKKyAgICAgICAgKiBkb20vU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlRWxlbWVudDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KToKKyAgICAgICAgKiBkb20vU3R5
bGVFbGVtZW50Lmg6CisgICAgICAgIENvbW1vbiBpbXBsZW1lbnRhdGlvbiBvZiBzdGFydExvYWRp
bmdEeW5hbWljU2hlZXQgZm9yIHN0eWxlIGVsZW1lbnRzLgorCisgICAgICAgICogaHRtbC9IVE1M
TGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpzdGFy
dExvYWRpbmdEeW5hbWljU2hlZXQpOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50Lmg6
CisgICAgICAgIFVzZSB0aGUgSFRNTExpbmtFbGVtZW50IHBsdW1iaW5nIHRvIG1ha2Ugc3VyZSB3
ZSBjYWxsIGFkZFJlbW92ZVBlbmRpbmdTaGVldC4KKworICAgICAgICAqIGh0bWwvSFRNTFN0eWxl
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudDo6c3RhcnRMb2Fk
aW5nRHluYW1pY1NoZWV0KToKKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTdHlsZUVsZW1lbnQ6OnN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCk6
CisgICAgICAgIEZvcndhcmQgdGhlIGNhbGwgdG8gU3R5bGVFbGVtZW50LgorCiAyMDExLTA1LTE2
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKaW5kZXggNWM1M2Vi
ZC4uZGZiZmIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcApAQCAtMTQzLDcg
KzE0Myw3IEBAIHZvaWQgQ1NTSW1wb3J0UnVsZTo6aW5zZXJ0ZWRJbnRvUGFyZW50KCkKICAgICAg
ICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5nIHNoZWV0IGNvdW50LCBzbyBsZXQgdGhlIGRv
YyBrbm93CiAgICAgICAgIC8vIHRoZSBzaGVldCBiZWluZyBpbXBvcnRlZCBpcyBwZW5kaW5nLgog
ICAgICAgICBpZiAocGFyZW50U2hlZXQgJiYgcGFyZW50U2hlZXQtPmxvYWRDb21wbGV0ZWQoKSAm
JiByb290ID09IHBhcmVudFNoZWV0KQotICAgICAgICAgICAgcGFyZW50U2hlZXQtPmRvY3VtZW50
KCktPmFkZFBlbmRpbmdTaGVldCgpOworICAgICAgICAgICAgcGFyZW50U2hlZXQtPnN0YXJ0TG9h
ZGluZ0R5bmFtaWNTaGVldCgpOwogICAgICAgICBtX2xvYWRpbmcgPSB0cnVlOwogICAgICAgICBt
X2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2hlZXQuY3BwCmluZGV4IDE2YzJiYTguLjJmYzNmNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTaGVldC5jcHAKQEAgLTIzMCw2ICsyMzAsMTIgQEAgdm9pZCBDU1NTdHlsZVNoZWV0Ojpj
aGVja0xvYWRlZCgpCiAgICAgbV9sb2FkQ29tcGxldGVkID0gb3duZXJOb2RlKCkgPyBvd25lck5v
ZGUoKS0+c2hlZXRMb2FkZWQoKSA6IHRydWU7CiB9CiAKK3ZvaWQgQ1NTU3R5bGVTaGVldDo6c3Rh
cnRMb2FkaW5nRHluYW1pY1NoZWV0KCkKK3sKKyAgICBpZiAoTm9kZSogb3duZXIgPSBvd25lck5v
ZGUoKSkKKyAgICAgICAgb3duZXItPnN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgpOworfQorCiBE
b2N1bWVudCogQ1NTU3R5bGVTaGVldDo6ZG9jdW1lbnQoKQogewogICAgIFN0eWxlQmFzZSogc3R5
bGVPYmplY3QgPSB0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmgKaW5kZXggMDYyODg2
YS4uMzVhNDUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCkBAIC04Niw2ICs4Niw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNMb2FkaW5nKCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgY2hlY2tMb2FkZWQoKTsKKyAgICB2b2lkIHN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgp
OwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDNmZjhmNGEu
LjA1YzIyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjc5LDYgKzI3OSw3IEBAIHB1YmxpYzoKIAogICAg
IC8vIEZvciA8bGluaz4gYW5kIDxzdHlsZT4gZWxlbWVudHMuCiAgICAgdmlydHVhbCBib29sIHNo
ZWV0TG9hZGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzdGFydExvYWRp
bmdEeW5hbWljU2hlZXQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICBib29sIGhh
c0lEKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhIYXNJREZsYWcpOyB9CiAgICAgYm9vbCBoYXND
bGFzcygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSGFzQ2xhc3NGbGFnKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU3R5bGVFbGVtZW50LmNwcAppbmRleCA1YjBlMmFkLi41MzM5MzRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU3R5bGVFbGVtZW50LmNwcApAQCAtMTgyLDQgKzE4MiwxMCBAQCBib29sIFN0eWxlRWxlbWVu
dDo6c2hlZXRMb2FkZWQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIHJldHVybiB0cnVlOwogfQog
Cit2b2lkIFN0eWxlRWxlbWVudDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KERvY3VtZW50KiBk
b2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIGRvY3VtZW50LT5hZGRQZW5k
aW5nU2hlZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxl
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5oCmluZGV4IDQzNTZj
MTcuLjE3ZmM2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmgKQEAgLTQxLDYgKzQxLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdDsKICAgICBib29sIHNo
ZWV0TG9hZGVkKERvY3VtZW50Kik7CisgICAgdm9pZCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQo
RG9jdW1lbnQqKTsKIAogICAgIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoRG9jdW1lbnQqLCBF
bGVtZW50Kik7CiAgICAgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KERvY3VtZW50KiwgRWxlbWVu
dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDMyNmVhZjQu
LjEzNmU4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTQ1
NSw2ICs0NTUsMTMgQEAgYm9vbCBIVE1MTGlua0VsZW1lbnQ6OnNoZWV0TG9hZGVkKCkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSFRNTExpbmtFbGVtZW50OjpzdGFydExvYWRpbmdEeW5h
bWljU2hlZXQoKQoreworICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgbXVsdGlwbGUgYmxvY2tpbmcg
c2hlZXRzLgorICAgIEFTU0VSVChtX3BlbmRpbmdTaGVldFR5cGUgPCBCbG9ja2luZyk7CisgICAg
YWRkUGVuZGluZ1NoZWV0KEJsb2NraW5nKTsKK30KKwogYm9vbCBIVE1MTGlua0VsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKIHsKICAgICByZXR1cm4gYXR0ci0+
bmFtZSgpID09IGhyZWZBdHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKaW5k
ZXggZmMwZjQ3Yy4uNDMxMjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5o
CkBAIC05OSw2ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlz
aGVkKENhY2hlZFJlc291cmNlKik7CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgc2hlZXRMb2Fk
ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCk7CiAKICAg
ICBib29sIGlzQWx0ZXJuYXRlKCkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxlZFN0YXRlID09IFVu
c2V0ICYmIG1fcmVsQXR0cmlidXRlLm1faXNBbHRlcm5hdGU7IH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKaW5kZXggYzliNTY0OS4uYWYyODA4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKQEAgLTU1LDYgKzU1LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRpbmcoKSBjb25zdCB7IHJldHVybiBTdHlsZUVsZW1l
bnQ6OmlzTG9hZGluZygpOyB9CiAgICAgdmlydHVhbCBib29sIHNoZWV0TG9hZGVkKCkgeyByZXR1
cm4gU3R5bGVFbGVtZW50OjpzaGVldExvYWRlZChkb2N1bWVudCgpKTsgfQorICAgIHZpcnR1YWwg
dm9pZCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoKSB7IFN0eWxlRWxlbWVudDo6c3RhcnRMb2Fk
aW5nRHluYW1pY1NoZWV0KGRvY3VtZW50KCkpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3Vi
cmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+JikgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAppbmRleCBhY2YzNThlLi5iYmQ3MmM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gU3R5bGVFbGVtZW50
Ojppc0xvYWRpbmcoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaGVldExvYWRlZCgpIHsgcmV0dXJu
IFN0eWxlRWxlbWVudDo6c2hlZXRMb2FkZWQoZG9jdW1lbnQoKSk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgc3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCkgeyBTdHlsZUVsZW1lbnQ6OnN0YXJ0TG9hZGlu
Z0R5bmFtaWNTaGVldChkb2N1bWVudCgpKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94996</attachid>
            <date>2011-05-26 10:08:10 -0700</date>
            <delta_ts>2011-05-27 17:27:05 -0700</delta_ts>
            <desc>Updated test case - should reduce the flakiness &amp; solve Simon&apos;s comments</desc>
            <filename>bug56981-stylesheet-insertRule-bad-count-2.diff</filename>
            <type>text/plain</type>
            <size>10852</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YjFlYzI0Li5jMmJiMGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDUt
MjUgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENTU1N0eWxlU2hlZXQj
aW5zZXJ0UnVsZSBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIGltcG9ydGVkIHN0eWxlc2hlZXRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njk4MQorCisg
ICAgICAgIFRlc3QgdGhhdCBhIGNvbWJpbmF0aW9uIG9mIGluc2VydFJ1bGUgYW5kIEBpbXBvcnQg
d29ya3MgcHJvcGVybHkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9pbXBvcnQtYW5kLWluc2VydC1y
dWxlLW5vLXVwZGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2lt
cG9ydC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL3Jlc291cmNlcy9yZWQuY3NzOiBBZGRlZC4KKyAgICAgICAgKGRpdik6CisgICAgICAg
ICogZmFzdC9jc3MvcmVzb3VyY2VzL3JlZGltcG9ydC5jc3M6IEFkZGVkLgorCiAyMDExLTA1LTIw
ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBHZW9mZnJleSBHYXJlbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltcG9y
dC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2ltcG9ydC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzRkOGNiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1wb3J0LWFuZC1pbnNlcnQtcnVsZS1uby11cGRhdGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdCBmb3IgYnVnIDU2OTgxOiBDU1NTdHls
ZVNoZWV0I2luc2VydFJ1bGUgZG9lc24ndCB3b3JrIHdlbGwgd2l0aCBpbXBvcnRlZCBzdHlsZXNo
ZWV0cworWW91IHNob3VsZCBzZWUgb25lIFBBU1MgYmVsb3cuCitQQVNTCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9pbXBvcnQtYW5kLWluc2VydC1ydWxlLW5vLXVwZGF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1wb3J0LWFuZC1pbnNlcnQtcnVsZS1uby11cGRhdGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWI1YWYwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1wb3J0LWFuZC1pbnNlcnQtcnVsZS1u
by11cGRhdGUuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPjxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVkaW1wb3J0LmNz
cyIvPgorPC9oZWFkPjxib2R5PgorPGRpdj5UZXN0IGZvciBidWcgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2OTgxIj41Njk4MTwvYT46IENTU1N0eWxl
U2hlZXQjaW5zZXJ0UnVsZSBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIGltcG9ydGVkIHN0eWxlc2hl
ZXRzPC9kaXY+Cis8ZGl2PllvdSBzaG91bGQgc2VlIG9uZSBQQVNTIGJlbG93LjwvZGl2PgorPGRp
diBpZD0idGVzdEFyZWEiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgcmVtYWluaW5n
VGVzdHMgPSAyMDsKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0cnkgeworICAgICAgICB2YXIg
dGVzdEFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEFyZWEiKTsKKyAgICAgICAg
aWYgKGdldENvbXB1dGVkU3R5bGUodGVzdEFyZWEpLmJhY2tncm91bmRDb2xvciA9PSAicmdiKDAs
IDEyOCwgMCkiKSB7CisgICAgICAgICAgICB0ZXN0QXJlYS5pbm5lckhUTUwgPSAnUEFTUyc7Cisg
ICAgICAgICAgICByZW1haW5pbmdUZXN0cyA9IDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBpZiAoLS1yZW1haW5pbmdUZXN0cykKKyAgICAgICAgICAgICAgICB0ZXN0QXJlYS5pbm5l
ckhUTUwgPSAnRkFJTCwgYmFja2dyb3VuZENvbG9yIHdhcyAnICsgZ2V0Q29tcHV0ZWRTdHlsZSh0
ZXN0QXJlYSkuYmFja2dyb3VuZENvbG9yOworICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICB0ZXN0QXJlYS5pbm5lckhUTUwgPSAnRkFJTCwgZXhjZXB0aW9uIHJhaXNlZCAoJyAr
IGUubWVzc2FnZSArICcpJzsKKyAgICAgICAgcmVtYWluaW5nVGVzdHMgPSAwOworICAgIH0KKyAg
ICBpZiAoIXJlbWFpbmluZ1Rlc3RzKQorICAgICAgICB3aW5kb3cuc2V0VGltZW91dCh0ZXN0LCAy
NSk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCit3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKSB7CisgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZSgnQGltcG9ydCAi
Z3JlZW4uY3NzIjsnLCAxKTsKKyAgICAvLyBXZSBuZWVkIHRvIHdhaXQgc29tZSB0aW1lIHRvIGxl
dCB0aGUgc3R5bGVzaGVldCBsb2FkIGJlZm9yZSB0ZXN0aW5nLgorICAgIHdpbmRvdy5zZXRUaW1l
b3V0KHRlc3QsIDI1KTsKK307Cis8L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvcmVkLmNzcyBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3Jlc291cmNlcy9yZWQuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmNkZDM0OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNv
dXJjZXMvcmVkLmNzcwpAQCAtMCwwICsxIEBACitkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQg
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVzb3VyY2VzL3JlZGltcG9ydC5j
c3MgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvcmVkaW1wb3J0LmNzcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzhkNWVkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVzb3VyY2VzL3JlZGltcG9ydC5jc3MKQEAgLTAsMCArMSBA
QAorQGltcG9ydCB1cmwocmVkLmNzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc4NDQ4OC4uOWE0MWU1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDExLTA1LTI1ICBKdWxpZW4gQ2hhZmZyYWl4
ICA8amNoYWZmcmFpeEBjb2RlYXVyb3JhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDU1NTdHlsZVNoZWV0I2luc2VydFJ1bGUgZG9lc24ndCB3
b3JrIHdlbGwgd2l0aCBpbXBvcnRlZCBzdHlsZXNoZWV0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5ODEKKworICAgICAgICBUZXN0OiBmYXN0L2Nz
cy9pbXBvcnQtYW5kLWluc2VydC1ydWxlLW5vLXVwZGF0ZS5odG1sCisKKyAgICAgICAgVGhlIGJ1
ZyBhcmlzZXMgZnJvbSB0aGUgZmFjdCB0aGF0IDxsaW5rPiBlbGVtZW50IGRpZCBub3Qga25vdyBh
Ym91dCBhIHByb2dyYW1tYXRpY2FsbHkKKyAgICAgICAgbG9hZGluZyBzaGVldCAodXNpbmcgaW5z
ZXJ0UnVsZSBhbmQgQGltcG9ydCkgYW5kIHdvdWxkIHRodXMgbmV2ZXIgY2FsbCByZW1vdmVQZW5k
aW5nU2hlZXQuCisgICAgICAgIFRoaXMgaXMgbmVlZGVkIHRvIG1ha2Ugc3VyZSBvdXIgc3R5bGUg
c2VsZWN0b3IgY29udGFpbnMgYW4gdXAtdG8tZGF0ZSBsaXN0IG9mIHN0eWxlc2hlZXRzLgorCisg
ICAgICAgIFRoZSBnaXN0IG9mIHRoZSBwYXRjaCBhZGRzIGEgd2F5IGZvciBzdHlsZSBzaGVldCBv
d25lciBlbGVtZW50IHRvIGtub3cgaWYgd2UgYXJlCisgICAgICAgIHByb2dyYW1tYXRpY2FsbHkg
bG9hZGluZyBhIHN0eWxlIHNoZWV0LiBUaGlzIGlzIG5lZWRlZCBhcyA8bGluaz4ga2VlcHMgdGhl
IGluZm9ybWF0aW9uCisgICAgICAgIGFib3V0IHRoYXQgbGFzdCBsb2FkZWQgc3R5bGVzaGVldC4K
KworICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltcG9ydFJ1bGU6Omluc2VydGVkSW50b1BhcmVudCk6IENhbGwgc3RhcnRMb2FkaW5nRHluYW1p
Y1NoZWV0CisgICAgICAgIG9uIG91ciBwYXJlbnQgc3R5bGUgc2hlZXQgaW5zdGVhZCBvZiBkaXJl
Y3RseSBhZGRpbmcgYSBwZW5kaW5nIHN0eWxlIHNoZWV0LgorCisgICAgICAgICogY3NzL0NTU1N0
eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTaGVldDo6c3RhcnRMb2Fk
aW5nRHluYW1pY1NoZWV0KTogQ2FsbCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQKKyAgICAgICAg
b24gb3VyIG93bmVyIGVsZW1lbnQgaWYgd2UgaGF2ZSBvbmUuCisKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTaGVldC5oOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjpzdGFydExvYWRpbmdEeW5hbWljU2hlZXQpOiBBZGRlZCBjb21tb24gaW1wbGVtZW50YXRp
b24gb2YKKyAgICAgICAgc3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0LCB3aGljaCBzaG91bGQgbmV2
ZXIgYmUgY2FsbGVkLgorCisgICAgICAgICogZG9tL1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZUVsZW1lbnQ6OnN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCk6CisgICAg
ICAgICogZG9tL1N0eWxlRWxlbWVudC5oOgorICAgICAgICBDb21tb24gaW1wbGVtZW50YXRpb24g
b2Ygc3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0IGZvciBzdHlsZSBlbGVtZW50cy4KKworICAgICAg
ICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5r
RWxlbWVudDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KToKKyAgICAgICAgKiBodG1sL0hUTUxM
aW5rRWxlbWVudC5oOgorICAgICAgICBVc2UgdGhlIEhUTUxMaW5rRWxlbWVudCBwbHVtYmluZyB0
byBtYWtlIHN1cmUgd2UgY2FsbCBhZGRSZW1vdmVQZW5kaW5nU2hlZXQuCisKKyAgICAgICAgKiBo
dG1sL0hUTUxTdHlsZUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVsZW1l
bnQ6OnN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjpzdGFydExvYWRpbmdE
eW5hbWljU2hlZXQpOgorICAgICAgICBGb3J3YXJkIHRoZSBjYWxsIHRvIFN0eWxlRWxlbWVudC4K
KwogMjAxMS0wNS0yNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVs
ZS5jcHAKaW5kZXggNWEwOGMwYi4uZTg2ZjY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltcG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRS
dWxlLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgQ1NTSW1wb3J0UnVsZTo6aW5zZXJ0ZWRJ
bnRvUGFyZW50KCkKICAgICAgICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5nIHNoZWV0IGNv
dW50LCBzbyBsZXQgdGhlIGRvYyBrbm93CiAgICAgICAgIC8vIHRoZSBzaGVldCBiZWluZyBpbXBv
cnRlZCBpcyBwZW5kaW5nLgogICAgICAgICBpZiAocGFyZW50U2hlZXQgJiYgcGFyZW50U2hlZXQt
PmxvYWRDb21wbGV0ZWQoKSAmJiByb290ID09IHBhcmVudFNoZWV0KQotICAgICAgICAgICAgcGFy
ZW50U2hlZXQtPmRvY3VtZW50KCktPmFkZFBlbmRpbmdTaGVldCgpOworICAgICAgICAgICAgcGFy
ZW50U2hlZXQtPnN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgpOwogICAgICAgICBtX2xvYWRpbmcg
PSB0cnVlOwogICAgICAgICBtX2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDE2YzJiYTguLjJmYzNmNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTIzMCw2ICsyMzAsMTIgQEAgdm9p
ZCBDU1NTdHlsZVNoZWV0OjpjaGVja0xvYWRlZCgpCiAgICAgbV9sb2FkQ29tcGxldGVkID0gb3du
ZXJOb2RlKCkgPyBvd25lck5vZGUoKS0+c2hlZXRMb2FkZWQoKSA6IHRydWU7CiB9CiAKK3ZvaWQg
Q1NTU3R5bGVTaGVldDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCkKK3sKKyAgICBpZiAoTm9k
ZSogb3duZXIgPSBvd25lck5vZGUoKSkKKyAgICAgICAgb3duZXItPnN0YXJ0TG9hZGluZ0R5bmFt
aWNTaGVldCgpOworfQorCiBEb2N1bWVudCogQ1NTU3R5bGVTaGVldDo6ZG9jdW1lbnQoKQogewog
ICAgIFN0eWxlQmFzZSogc3R5bGVPYmplY3QgPSB0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNo
ZWV0LmgKaW5kZXggMDYyODg2YS4uMzVhNDUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVl
dC5oCkBAIC04Niw2ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNMb2FkaW5n
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tMb2FkZWQoKTsKKyAgICB2b2lkIHN0YXJ0TG9h
ZGluZ0R5bmFtaWNTaGVldCgpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCmluZGV4IGI5ZGE5NGYuLmFlYzU3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjgyLDYgKzI4Miw3
IEBAIHB1YmxpYzoKIAogICAgIC8vIEZvciA8bGluaz4gYW5kIDxzdHlsZT4gZWxlbWVudHMuCiAg
ICAgdmlydHVhbCBib29sIHNoZWV0TG9hZGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgdm9pZCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CiAKICAgICBib29sIGhhc0lEKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhIYXNJREZsYWcp
OyB9CiAgICAgYm9vbCBoYXNDbGFzcygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSGFzQ2xhc3NG
bGFnKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcAppbmRleCA1YjBlMmFkLi41MzM5
MzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcApAQCAtMTgyLDQgKzE4MiwxMCBA
QCBib29sIFN0eWxlRWxlbWVudDo6c2hlZXRMb2FkZWQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
IHJldHVybiB0cnVlOwogfQogCit2b2lkIFN0eWxlRWxlbWVudDo6c3RhcnRMb2FkaW5nRHluYW1p
Y1NoZWV0KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAg
IGRvY3VtZW50LT5hZGRQZW5kaW5nU2hlZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxl
bWVudC5oCmluZGV4IDQzNTZjMTcuLjE3ZmM2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TdHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50
LmgKQEAgLTQxLDYgKzQxLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBpc0xvYWRpbmcoKSBj
b25zdDsKICAgICBib29sIHNoZWV0TG9hZGVkKERvY3VtZW50Kik7CisgICAgdm9pZCBzdGFydExv
YWRpbmdEeW5hbWljU2hlZXQoRG9jdW1lbnQqKTsKIAogICAgIHZvaWQgaW5zZXJ0ZWRJbnRvRG9j
dW1lbnQoRG9jdW1lbnQqLCBFbGVtZW50Kik7CiAgICAgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50
KERvY3VtZW50KiwgRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCmluZGV4IGU2MDc5OTcuLjBkZGJlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5jcHAKQEAgLTQ2Niw2ICs0NjYsMTMgQEAgYm9vbCBIVE1MTGlua0VsZW1lbnQ6OnNo
ZWV0TG9hZGVkKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSFRNTExpbmtFbGVtZW50
OjpzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoKQoreworICAgIC8vIFdlIGRvbid0IHN1cHBvcnQg
bXVsdGlwbGUgYmxvY2tpbmcgc2hlZXRzLgorICAgIEFTU0VSVChtX3BlbmRpbmdTaGVldFR5cGUg
PCBCbG9ja2luZyk7CisgICAgYWRkUGVuZGluZ1NoZWV0KEJsb2NraW5nKTsKK30KKwogYm9vbCBI
VE1MTGlua0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKIHsK
ICAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGhyZWZBdHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmgKaW5kZXggZGNjN2U2Ny4uNWUxY2JkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKICNlbmRpZgogICAgIHZp
cnR1YWwgYm9vbCBzaGVldExvYWRlZCgpOworICAgIHZpcnR1YWwgdm9pZCBzdGFydExvYWRpbmdE
eW5hbWljU2hlZXQoKTsKIAogICAgIGJvb2wgaXNBbHRlcm5hdGUoKSBjb25zdCB7IHJldHVybiBt
X2Rpc2FibGVkU3RhdGUgPT0gVW5zZXQgJiYgbV9yZWxBdHRyaWJ1dGUubV9pc0FsdGVybmF0ZTsg
fQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAppbmRleCBjOWI1NjQ5
Li5hZjI4MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaApAQCAtNTUs
NiArNTUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlzTG9hZGluZygpIGNvbnN0
IHsgcmV0dXJuIFN0eWxlRWxlbWVudDo6aXNMb2FkaW5nKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wg
c2hlZXRMb2FkZWQoKSB7IHJldHVybiBTdHlsZUVsZW1lbnQ6OnNoZWV0TG9hZGVkKGRvY3VtZW50
KCkpOyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgpIHsgU3R5
bGVFbGVtZW50OjpzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoZG9jdW1lbnQoKSk7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VS
TD4mKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCmluZGV4IDlmMGZm
MzEuLmU4MWMyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKQEAgLTU5LDYg
KzU5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRpbmcoKSBjb25zdCB7
IHJldHVybiBTdHlsZUVsZW1lbnQ6OmlzTG9hZGluZygpOyB9CiAgICAgdmlydHVhbCBib29sIHNo
ZWV0TG9hZGVkKCkgeyByZXR1cm4gU3R5bGVFbGVtZW50OjpzaGVldExvYWRlZChkb2N1bWVudCgp
KTsgfQorICAgIHZpcnR1YWwgdm9pZCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoKSB7IFN0eWxl
RWxlbWVudDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KGRvY3VtZW50KCkpOyB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="88402"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="88403"
          type_id="3"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95081</attachid>
            <date>2011-05-26 17:03:06 -0700</date>
            <delta_ts>2011-06-01 17:54:21 -0700</delta_ts>
            <desc>Updated patch with an (hopefully) even better test case</desc>
            <filename>bug56981-stylesheet-insertRule-bad-count-3.diff</filename>
            <type>text/plain</type>
            <size>10900</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YjFlYzI0Li5jMmJiMGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDUt
MjUgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENTU1N0eWxlU2hlZXQj
aW5zZXJ0UnVsZSBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIGltcG9ydGVkIHN0eWxlc2hlZXRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njk4MQorCisg
ICAgICAgIFRlc3QgdGhhdCBhIGNvbWJpbmF0aW9uIG9mIGluc2VydFJ1bGUgYW5kIEBpbXBvcnQg
d29ya3MgcHJvcGVybHkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9pbXBvcnQtYW5kLWluc2VydC1y
dWxlLW5vLXVwZGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2lt
cG9ydC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL3Jlc291cmNlcy9yZWQuY3NzOiBBZGRlZC4KKyAgICAgICAgKGRpdik6CisgICAgICAg
ICogZmFzdC9jc3MvcmVzb3VyY2VzL3JlZGltcG9ydC5jc3M6IEFkZGVkLgorCiAyMDExLTA1LTIw
ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBHZW9mZnJleSBHYXJlbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltcG9y
dC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2ltcG9ydC1hbmQtaW5zZXJ0LXJ1bGUtbm8tdXBkYXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzRkOGNiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1wb3J0LWFuZC1pbnNlcnQtcnVsZS1uby11cGRhdGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdCBmb3IgYnVnIDU2OTgxOiBDU1NTdHls
ZVNoZWV0I2luc2VydFJ1bGUgZG9lc24ndCB3b3JrIHdlbGwgd2l0aCBpbXBvcnRlZCBzdHlsZXNo
ZWV0cworWW91IHNob3VsZCBzZWUgb25lIFBBU1MgYmVsb3cuCitQQVNTCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9pbXBvcnQtYW5kLWluc2VydC1ydWxlLW5vLXVwZGF0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1wb3J0LWFuZC1pbnNlcnQtcnVsZS1uby11cGRhdGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWIzMjA3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1wb3J0LWFuZC1pbnNlcnQtcnVsZS1u
by11cGRhdGUuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPjxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVkaW1wb3J0LmNz
cyIvPgorPC9oZWFkPjxib2R5PgorPGRpdj5UZXN0IGZvciBidWcgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2OTgxIj41Njk4MTwvYT46IENTU1N0eWxl
U2hlZXQjaW5zZXJ0UnVsZSBkb2Vzbid0IHdvcmsgd2VsbCB3aXRoIGltcG9ydGVkIHN0eWxlc2hl
ZXRzPC9kaXY+Cis8ZGl2PllvdSBzaG91bGQgc2VlIG9uZSBQQVNTIGJlbG93LjwvZGl2PgorPGRp
diBpZD0idGVzdEFyZWEiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgcmVtYWluaW5n
VGVzdHMgPSAyMDsKK3ZhciBwb2xsRGVsYXkgPSAyNTsKKworZnVuY3Rpb24gZG9UZXN0KCkgewor
ICAgIHZhciB0ZXN0QXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0QXJlYSIpOwor
ICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKHRlc3RBcmVhKS5iYWNrZ3JvdW5kQ29sb3IgPT0gInJn
YigwLCAxMjgsIDApIikgeworICAgICAgICB0ZXN0QXJlYS5pbm5lckhUTUwgPSAnUEFTUyc7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEFyZWEuaW5uZXJIVE1MID0gJ0ZBSUwsIGJhY2tncm91
bmRDb2xvciB3YXMgJyArIGdldENvbXB1dGVkU3R5bGUodGVzdEFyZWEpLmJhY2tncm91bmRDb2xv
cjsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgdmFyIHRlc3RBcmVhID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RBcmVhIik7CisgICAgLy8gSWYgdGhlIHN0eWxlIGlz
IG5vdCBsb2FkZWQgeWV0LCBjb250aW51ZSBwb2xsaW5nLgorICAgIGlmIChnZXRDb21wdXRlZFN0
eWxlKHRlc3RBcmVhKS5iYWNrZ3JvdW5kQ29sb3IgIT0gInJnYigwLCAxMjgsIDApIiAmJiAtLXJl
bWFpbmluZ1Rlc3RzKSB7CisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHRlc3QsIHBvbGxEZWxh
eSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkb1Rlc3QoKTsKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBkb2N1
bWVudC5zdHlsZVNoZWV0c1swXS5pbnNlcnRSdWxlKCdAaW1wb3J0ICJncmVlbi5jc3MiOycsIDEp
OworICAgIC8vIFdlIG5lZWQgdG8gd2FpdCBzb21lIHRpbWUgdG8gbGV0IHRoZSBzdHlsZXNoZWV0
IGxvYWQgYmVmb3JlIHRlc3RpbmcuCisgICAgd2luZG93LnNldFRpbWVvdXQodGVzdCwgcG9sbERl
bGF5KTsKK307Cis8L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvcmVkLmNzcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jl
c291cmNlcy9yZWQuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZDM0
OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvcmVk
LmNzcwpAQCAtMCwwICsxIEBACitkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQgfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVzb3VyY2VzL3JlZGltcG9ydC5jc3MgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvcmVkaW1wb3J0LmNzcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wNzhkNWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcmVzb3VyY2VzL3JlZGltcG9ydC5jc3MKQEAgLTAsMCArMSBAQAorQGltcG9y
dCB1cmwocmVkLmNzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc4NDQ4OC4uOWE0MWU1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQ5IEBACisyMDExLTA1LTI1ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZm
cmFpeEBjb2RlYXVyb3JhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDU1NTdHlsZVNoZWV0I2luc2VydFJ1bGUgZG9lc24ndCB3b3JrIHdlbGwg
d2l0aCBpbXBvcnRlZCBzdHlsZXNoZWV0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTY5ODEKKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9pbXBvcnQt
YW5kLWluc2VydC1ydWxlLW5vLXVwZGF0ZS5odG1sCisKKyAgICAgICAgVGhlIGJ1ZyBhcmlzZXMg
ZnJvbSB0aGUgZmFjdCB0aGF0IDxsaW5rPiBlbGVtZW50IGRpZCBub3Qga25vdyBhYm91dCBhIHBy
b2dyYW1tYXRpY2FsbHkKKyAgICAgICAgbG9hZGluZyBzaGVldCAodXNpbmcgaW5zZXJ0UnVsZSBh
bmQgQGltcG9ydCkgYW5kIHdvdWxkIHRodXMgbmV2ZXIgY2FsbCByZW1vdmVQZW5kaW5nU2hlZXQu
CisgICAgICAgIFRoaXMgaXMgbmVlZGVkIHRvIG1ha2Ugc3VyZSBvdXIgc3R5bGUgc2VsZWN0b3Ig
Y29udGFpbnMgYW4gdXAtdG8tZGF0ZSBsaXN0IG9mIHN0eWxlc2hlZXRzLgorCisgICAgICAgIFRo
ZSBnaXN0IG9mIHRoZSBwYXRjaCBhZGRzIGEgd2F5IGZvciBzdHlsZSBzaGVldCBvd25lciBlbGVt
ZW50IHRvIGtub3cgaWYgd2UgYXJlCisgICAgICAgIHByb2dyYW1tYXRpY2FsbHkgbG9hZGluZyBh
IHN0eWxlIHNoZWV0LiBUaGlzIGlzIG5lZWRlZCBhcyA8bGluaz4ga2VlcHMgdGhlIGluZm9ybWF0
aW9uCisgICAgICAgIGFib3V0IHRoYXQgbGFzdCBsb2FkZWQgc3R5bGVzaGVldC4KKworICAgICAg
ICAqIGNzcy9DU1NJbXBvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltcG9ydFJ1
bGU6Omluc2VydGVkSW50b1BhcmVudCk6IENhbGwgc3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0Cisg
ICAgICAgIG9uIG91ciBwYXJlbnQgc3R5bGUgc2hlZXQgaW5zdGVhZCBvZiBkaXJlY3RseSBhZGRp
bmcgYSBwZW5kaW5nIHN0eWxlIHNoZWV0LgorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTaGVldDo6c3RhcnRMb2FkaW5nRHluYW1p
Y1NoZWV0KTogQ2FsbCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQKKyAgICAgICAgb24gb3VyIG93
bmVyIGVsZW1lbnQgaWYgd2UgaGF2ZSBvbmUuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVl
dC5oOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzdGFy
dExvYWRpbmdEeW5hbWljU2hlZXQpOiBBZGRlZCBjb21tb24gaW1wbGVtZW50YXRpb24gb2YKKyAg
ICAgICAgc3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0LCB3aGljaCBzaG91bGQgbmV2ZXIgYmUgY2Fs
bGVkLgorCisgICAgICAgICogZG9tL1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZUVsZW1lbnQ6OnN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCk6CisgICAgICAgICogZG9t
L1N0eWxlRWxlbWVudC5oOgorICAgICAgICBDb21tb24gaW1wbGVtZW50YXRpb24gb2Ygc3RhcnRM
b2FkaW5nRHluYW1pY1NoZWV0IGZvciBzdHlsZSBlbGVtZW50cy4KKworICAgICAgICAqIGh0bWwv
SFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6
c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVu
dC5oOgorICAgICAgICBVc2UgdGhlIEhUTUxMaW5rRWxlbWVudCBwbHVtYmluZyB0byBtYWtlIHN1
cmUgd2UgY2FsbCBhZGRSZW1vdmVQZW5kaW5nU2hlZXQuCisKKyAgICAgICAgKiBodG1sL0hUTUxT
dHlsZUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVsZW1lbnQ6OnN0YXJ0
TG9hZGluZ0R5bmFtaWNTaGVldCk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50OjpzdGFydExvYWRpbmdEeW5hbWljU2hl
ZXQpOgorICAgICAgICBGb3J3YXJkIHRoZSBjYWxsIHRvIFN0eWxlRWxlbWVudC4KKwogMjAxMS0w
NS0yNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1wb3J0UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKaW5k
ZXggNWEwOGMwYi4uZTg2ZjY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0lt
cG9ydFJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcApA
QCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgQ1NTSW1wb3J0UnVsZTo6aW5zZXJ0ZWRJbnRvUGFyZW50
KCkKICAgICAgICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5nIHNoZWV0IGNvdW50LCBzbyBs
ZXQgdGhlIGRvYyBrbm93CiAgICAgICAgIC8vIHRoZSBzaGVldCBiZWluZyBpbXBvcnRlZCBpcyBw
ZW5kaW5nLgogICAgICAgICBpZiAocGFyZW50U2hlZXQgJiYgcGFyZW50U2hlZXQtPmxvYWRDb21w
bGV0ZWQoKSAmJiByb290ID09IHBhcmVudFNoZWV0KQotICAgICAgICAgICAgcGFyZW50U2hlZXQt
PmRvY3VtZW50KCktPmFkZFBlbmRpbmdTaGVldCgpOworICAgICAgICAgICAgcGFyZW50U2hlZXQt
PnN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgpOwogICAgICAgICBtX2xvYWRpbmcgPSB0cnVlOwog
ICAgICAgICBtX2NhY2hlZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDE2YzJiYTguLjJmYzNmNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTIzMCw2ICsyMzAsMTIgQEAgdm9pZCBDU1NTdHls
ZVNoZWV0OjpjaGVja0xvYWRlZCgpCiAgICAgbV9sb2FkQ29tcGxldGVkID0gb3duZXJOb2RlKCkg
PyBvd25lck5vZGUoKS0+c2hlZXRMb2FkZWQoKSA6IHRydWU7CiB9CiAKK3ZvaWQgQ1NTU3R5bGVT
aGVldDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCkKK3sKKyAgICBpZiAoTm9kZSogb3duZXIg
PSBvd25lck5vZGUoKSkKKyAgICAgICAgb3duZXItPnN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgp
OworfQorCiBEb2N1bWVudCogQ1NTU3R5bGVTaGVldDo6ZG9jdW1lbnQoKQogewogICAgIFN0eWxl
QmFzZSogc3R5bGVPYmplY3QgPSB0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmgKaW5k
ZXggMDYyODg2YS4uMzVhNDUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCkBAIC04
Niw2ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNMb2FkaW5nKCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY2hlY2tMb2FkZWQoKTsKKyAgICB2b2lkIHN0YXJ0TG9hZGluZ0R5bmFt
aWNTaGVldCgpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4
IGI5ZGE5NGYuLmFlYzU3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjgyLDYgKzI4Miw3IEBAIHB1Ymxp
YzoKIAogICAgIC8vIEZvciA8bGluaz4gYW5kIDxzdHlsZT4gZWxlbWVudHMuCiAgICAgdmlydHVh
bCBib29sIHNoZWV0TG9hZGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBz
dGFydExvYWRpbmdEeW5hbWljU2hlZXQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAg
ICBib29sIGhhc0lEKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhIYXNJREZsYWcpOyB9CiAgICAg
Ym9vbCBoYXNDbGFzcygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSGFzQ2xhc3NGbGFnKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcAppbmRleCA1YjBlMmFkLi41MzM5MzRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmNwcApAQCAtMTgyLDQgKzE4MiwxMCBAQCBib29sIFN0
eWxlRWxlbWVudDo6c2hlZXRMb2FkZWQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIHJldHVybiB0
cnVlOwogfQogCit2b2lkIFN0eWxlRWxlbWVudDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KERv
Y3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIGRvY3VtZW50
LT5hZGRQZW5kaW5nU2hlZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1N0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5oCmlu
ZGV4IDQzNTZjMTcuLjE3ZmM2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHls
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVFbGVtZW50LmgKQEAgLTQx
LDYgKzQxLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdDsKICAg
ICBib29sIHNoZWV0TG9hZGVkKERvY3VtZW50Kik7CisgICAgdm9pZCBzdGFydExvYWRpbmdEeW5h
bWljU2hlZXQoRG9jdW1lbnQqKTsKIAogICAgIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoRG9j
dW1lbnQqLCBFbGVtZW50Kik7CiAgICAgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KERvY3VtZW50
KiwgRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4
IGU2MDc5OTcuLjBkZGJlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5j
cHAKQEAgLTQ2Niw2ICs0NjYsMTMgQEAgYm9vbCBIVE1MTGlua0VsZW1lbnQ6OnNoZWV0TG9hZGVk
KCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSFRNTExpbmtFbGVtZW50OjpzdGFydExv
YWRpbmdEeW5hbWljU2hlZXQoKQoreworICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgbXVsdGlwbGUg
YmxvY2tpbmcgc2hlZXRzLgorICAgIEFTU0VSVChtX3BlbmRpbmdTaGVldFR5cGUgPCBCbG9ja2lu
Zyk7CisgICAgYWRkUGVuZGluZ1NoZWV0KEJsb2NraW5nKTsKK30KKwogYm9vbCBIVE1MTGlua0Vs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKIHsKICAgICByZXR1
cm4gYXR0ci0+bmFtZSgpID09IGhyZWZBdHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmgKaW5kZXggZGNjN2U2Ny4uNWUxY2JkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKICNlbmRpZgogICAgIHZpcnR1YWwgYm9v
bCBzaGVldExvYWRlZCgpOworICAgIHZpcnR1YWwgdm9pZCBzdGFydExvYWRpbmdEeW5hbWljU2hl
ZXQoKTsKIAogICAgIGJvb2wgaXNBbHRlcm5hdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVk
U3RhdGUgPT0gVW5zZXQgJiYgbV9yZWxBdHRyaWJ1dGUubV9pc0FsdGVybmF0ZTsgfQogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAppbmRleCBjOWI1NjQ5Li5hZjI4MDg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaApAQCAtNTUsNiArNTUsNyBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGlzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJu
IFN0eWxlRWxlbWVudDo6aXNMb2FkaW5nKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hlZXRMb2Fk
ZWQoKSB7IHJldHVybiBTdHlsZUVsZW1lbnQ6OnNoZWV0TG9hZGVkKGRvY3VtZW50KCkpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgpIHsgU3R5bGVFbGVtZW50
OjpzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoZG9jdW1lbnQoKSk7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCmluZGV4IDlmMGZmMzEuLmU4MWMy
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKQEAgLTU5LDYgKzU5LDcgQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRpbmcoKSBjb25zdCB7IHJldHVybiBT
dHlsZUVsZW1lbnQ6OmlzTG9hZGluZygpOyB9CiAgICAgdmlydHVhbCBib29sIHNoZWV0TG9hZGVk
KCkgeyByZXR1cm4gU3R5bGVFbGVtZW50OjpzaGVldExvYWRlZChkb2N1bWVudCgpKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBzdGFydExvYWRpbmdEeW5hbWljU2hlZXQoKSB7IFN0eWxlRWxlbWVudDo6
c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KGRvY3VtZW50KCkpOyB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="88504"
          type_id="1"
          status="-"
          setter="jchaffraix"
    />
          </attachment>
      

    </bug>

</bugzilla>