<?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>59301</bug_id>
          
          <creation_ts>2011-04-24 06:20:34 -0700</creation_ts>
          <short_desc>Opacity transition doesn&apos;t work while content property is set.</short_desc>
          <delta_ts>2011-06-07 18:22:54 -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>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>shi_a009</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>391591</commentid>
    <comment_count>0</comment_count>
    <who name="">shi_a009</who>
    <bug_when>2011-04-24 06:20:34 -0700</bug_when>
    <thetext>The opacity transition doesn&apos;t work while content property is set in CSS.

Procedure to Reproduce:
1. open the attachment in safari or chrome.
2. wait and see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391592</commentid>
    <comment_count>1</comment_count>
      <attachid>90884</attachid>
    <who name="">shi_a009</who>
    <bug_when>2011-04-24 06:22:46 -0700</bug_when>
    <thetext>Created attachment 90884
opacity transition bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391775</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-04-25 09:20:23 -0700</bug_when>
    <thetext>We don&apos;t support transitions on generated content, but this should still work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416297</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-06 21:42:29 -0700</bug_when>
    <thetext>Weird. RenderStyle::setOpacity() is blowing away the m_content of rareNonInheritedData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416300</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-06 21:46:29 -0700</bug_when>
    <thetext>StyleRareNonInheritedData&apos;s copy ctor totally fails to set up m_content</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416327</commentid>
    <comment_count>5</comment_count>
      <attachid>96203</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-06 22:21:11 -0700</bug_when>
    <thetext>Created attachment 96203
WIP patch

Starter patch, but it would be nice to fix the mess that is ContentData (bug 62185)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416821</commentid>
    <comment_count>6</comment_count>
      <attachid>96306</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-07 15:12:29 -0700</bug_when>
    <thetext>Created attachment 96306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416840</commentid>
    <comment_count>7</comment_count>
      <attachid>96312</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-07 15:25:26 -0700</bug_when>
    <thetext>Created attachment 96312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416932</commentid>
    <comment_count>8</comment_count>
      <attachid>96312</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-07 16:52:29 -0700</bug_when>
    <thetext>Comment on attachment 96312
Patch

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

r=me as is, but I see some opportunity to improve

&gt; Source/WebCore/rendering/style/ContentData.cpp:53
&gt; +    switch (type()) {

Since we already have subclasses for each type of ContentData, it would be better style to use virtual function rather than a switch on type() for the type-specific part of this function. That would eliminate all the calls to static_cast.

&gt; Source/WebCore/rendering/style/ContentData.cpp:57
&gt; +        RefPtr&lt;StyleImage&gt; image = const_cast&lt;StyleImage*&gt;(static_cast&lt;const ImageContentData*&gt;(this)-&gt;image());

There must be some way to avoid this const_cast. Ugh.

&gt; Source/WebCore/rendering/style/ContentData.cpp:75
&gt; +    if (result &amp;&amp; m_next)
&gt; +        result-&gt;setNext(m_next-&gt;clone());

It should be straightforward to write this in a loop instead of making it recursive. It’s slightly better to not use stack space proportional to the complexity of the content.

&gt; Source/WebCore/rendering/style/CounterDirectives.cpp:45
&gt; +    CounterDirectiveMap::const_iterator end = counterDirectives.end();
&gt; +    for (CounterDirectiveMap::const_iterator it = counterDirectives.begin(); it != end; ++it)
&gt; +        result-&gt;add(it-&gt;first, it-&gt;second);

You should just be able to say *result = counterDirectives here. Did you try that?

&gt; Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp:162
&gt; +    if ((!m_counterDirectives &amp;&amp; o.m_counterDirectives) || (m_counterDirectives &amp;&amp; !o.m_counterDirectives))
&gt; +        return false;
&gt; +    if (m_counterDirectives &amp;&amp; o.m_counterDirectives &amp;&amp; (*m_counterDirectives != *o.m_counterDirectives))
&gt; +        return false;
&gt; +    return true;
&gt; +

Your version is OK. My version is the same speed or faster and maybe a little more obvious:

    if (m_counterDirectives == o.m_counterDirectives)
        return true;
    if (m_counterDirectives &amp;&amp; o.m_counterDirectives &amp;&amp; *m_counterDirectives == *o.m_counterDirectives)
        return false;
    return false;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416986</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-07 18:06:11 -0700</bug_when>
    <thetext>(In reply to comment #8)

&gt; Your version is OK. My version is the same speed or faster and maybe a little more obvious:
&gt; 
&gt;     if (m_counterDirectives == o.m_counterDirectives)
&gt;         return true;

I had to write this as m_counterDirectives.get() == o.m_counterDirectives.get()

&gt;     if (m_counterDirectives &amp;&amp; o.m_counterDirectives &amp;&amp; *m_counterDirectives == *o.m_counterDirectives)
&gt;         return false;

return true there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416994</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-07 18:22:54 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/88308</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>90884</attachid>
            <date>2011-04-24 06:22:46 -0700</date>
            <delta_ts>2011-04-24 06:22:46 -0700</delta_ts>
            <desc>opacity transition bug</desc>
            <filename>opacitytansitionbug.html</filename>
            <type>text/html</type>
            <size>505</size>
            <attacher>shi_a009</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbi11cyIgZGlyPSJsdHIiPg0KPGhlYWQ+DQoJ
PG1ldGEgY2hhcnNldD0idXRmLTgiIC8+DQoJPHRpdGxlPjwvdGl0bGU+DQo8L2hlYWQ+DQo8Ym9k
eT4NCjxwIHN0eWxlPSItd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZTsgIj48Yj53
aXRob3V0PC9iPiBjb250ZW50IHByb3BlcnR5PC9wPg0KPHAgc3R5bGU9Ii13ZWJraXQtdHJhbnNp
dGlvbjogb3BhY2l0eSAxcyBlYXNlOyBjb250ZW50OiAnJyI+PGI+d2l0aDwvYj4gY29udGVudCBw
cm9wZXJ0eTwvcD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCnZhciBwcyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwJykNCnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
DQogIGZvciAodmFyIGkgPSAwOyBpIDwgcHMubGVuZ3RoOyBpKyspIHBzW2ldLnN0eWxlLm9wYWNp
dHkgPSAwOw0KfSwgMjAwMCk7DQo8L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96203</attachid>
            <date>2011-06-06 22:21:11 -0700</date>
            <delta_ts>2011-06-07 15:12:26 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>clone_contentdata_patch.txt</filename>
            <type>text/plain</type>
            <size>3050</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwCmluZGV4
IGFiNTA0ZmQuLjAwNWM2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9Db250ZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0NvbnRlbnREYXRhLmNwcApAQCAtMjcsNiArMjcsMzQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitDb250ZW50RGF0YTo6Q29udGVudERhdGEoY29uc3QgQ29udGVudERhdGEmIG8pCisgICAg
OiBtX3R5cGUoby5tX3R5cGUpCisgICAgLCBtX25leHQoby5tX25leHQgPyBhZG9wdFB0cihuZXcg
Q29udGVudERhdGEoKm8ubV9uZXh0KSkgOiBudWxscHRyKQoreworICAgIHN3aXRjaCAobV90eXBl
KSB7CisgICAgY2FzZSBDT05URU5UX05PTkU6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ09O
VEVOVF9PQkpFQ1Q6CisgICAgICAgIG1fY29udGVudC5tX2ltYWdlID0gMDsKKyAgICAgICAgc2V0
SW1hZ2Uoby5pbWFnZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDT05URU5UX1RFWFQ6
CisgICAgICAgIG1fY29udGVudC5tX3RleHQgPSAwOworICAgICAgICBzZXRUZXh0KG8udGV4dCgp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CisgICAgICAgIG1f
Y29udGVudC5tX2NvdW50ZXIgPSAwOworICAgICAgICBpZiAoY29uc3QgQ291bnRlckNvbnRlbnQq
IG90aGVyQ291bnRlciA9IG8uY291bnRlcigpKSB7CisgICAgICAgICAgICBPd25QdHI8Q291bnRl
ckNvbnRlbnQ+IGNvdW50ZXJDb250ZW50ID0gYWRvcHRQdHIobmV3IENvdW50ZXJDb250ZW50KG90
aGVyQ291bnRlci0+aWRlbnRpZmllcigpLCBvdGhlckNvdW50ZXItPmxpc3RTdHlsZSgpLCBvdGhl
ckNvdW50ZXItPnNlcGFyYXRvcigpKSk7CisgICAgICAgICAgICBzZXRDb3VudGVyKGNvdW50ZXJD
b250ZW50LnJlbGVhc2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
T05URU5UX1FVT1RFOgorICAgICAgICBzZXRRdW90ZShvLnF1b3RlKCkpOworICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKIHZvaWQgQ29udGVudERhdGE6OmNsZWFyKCkKIHsKICAgICBkZWxldGVD
b250ZW50KCk7CkBAIC02NSwxMCArOTMsMTIgQEAgdm9pZCBDb250ZW50RGF0YTo6ZGVsZXRlQ29u
dGVudCgpCiAgICAgY2FzZSBDT05URU5UX05PTkU6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q09OVEVOVF9PQkpFQ1Q6Ci0gICAgICAgIG1fY29udGVudC5tX2ltYWdlLT5kZXJlZigpOworICAg
ICAgICBpZiAobV9jb250ZW50Lm1faW1hZ2UpCisgICAgICAgICAgICBtX2NvbnRlbnQubV9pbWFn
ZS0+ZGVyZWYoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDT05URU5UX1RFWFQ6Ci0gICAg
ICAgIG1fY29udGVudC5tX3RleHQtPmRlcmVmKCk7CisgICAgICAgIGlmIChtX2NvbnRlbnQubV90
ZXh0KQorICAgICAgICAgICAgbV9jb250ZW50Lm1fdGV4dC0+ZGVyZWYoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CiAgICAgICAgIGRlbGV0ZSBtX2NvbnRlbnQu
bV9jb3VudGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Nv
bnRlbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEu
aAppbmRleCBjY2UzNzU0Li41ODI4MWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvQ29udGVudERhdGEuaApAQCAtMzQsMTMgKzM0LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFN0eWxlSW1hZ2U7CiAKIHN0cnVjdCBDb250ZW50RGF0YSB7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ29udGVudERhdGEpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBDb250ZW50RGF0YSgpCiAg
ICAgICAgIDogbV90eXBlKENPTlRFTlRfTk9ORSkKICAgICB7CiAgICAgfQogCisgICAgQ29udGVu
dERhdGEoY29uc3QgQ29udGVudERhdGEmKTsKKwogICAgIH5Db250ZW50RGF0YSgpCiAgICAgewog
ICAgICAgICBjbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDRhNGQ3ZDIuLjQx
MGYwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTY2LDYgKzY2LDggQEAgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHls
ZVJhcmVOb25Jbmhlcml0ZWQKICAgICAsIG1hcnF1ZWUoby5tYXJxdWVlKQogICAgICwgbV9tdWx0
aUNvbChvLm1fbXVsdGlDb2wpCiAgICAgLCBtX3RyYW5zZm9ybShvLm1fdHJhbnNmb3JtKQorICAg
ICwgbV9jb250ZW50KG8ubV9jb250ZW50ID8gYWRvcHRQdHIobmV3IENvbnRlbnREYXRhKCpvLm1f
Y29udGVudCkpIDogbnVsbHB0cikKKyAgICAsIG1fY291bnRlckRpcmVjdGl2ZXMoby5tX2NvdW50
ZXJEaXJlY3RpdmVzID8gYWRvcHRQdHIobmV3IENvdW50ZXJEaXJlY3RpdmVNYXAoKm8ubV9jb3Vu
dGVyRGlyZWN0aXZlcykpIDogbnVsbHB0cikKICAgICAsIHVzZXJEcmFnKG8udXNlckRyYWcpCiAg
ICAgLCB0ZXh0T3ZlcmZsb3coby50ZXh0T3ZlcmZsb3cpCiAgICAgLCBtYXJnaW5CZWZvcmVDb2xs
YXBzZShvLm1hcmdpbkJlZm9yZUNvbGxhcHNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96306</attachid>
            <date>2011-06-07 15:12:29 -0700</date>
            <delta_ts>2011-06-07 15:25:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59301-20110607151228.patch</filename>
            <type>text/plain</type>
            <size>11687</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgyNDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyOWJiOThiYTAyMDg2YzM5OTA3NTE1
NThlYWU4NjVjNDMwZDVhYjZjLi44OTY5Y2QwNjliOWI2ZjQzNzM0ODQ5ZjdhM2JlY2U4YTQ3MTc4
MTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMDcgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3BhY2l0eSB0cmFuc2l0aW9uIGRvZXNuJ3Qgd29yayB3aGlsZSBjb250
ZW50IHByb3BlcnR5IGlzIHNldC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU5MzAxCisgICAgICAgIAorICAgICAgICBUZXN0Y2FzZSBmb3Igb3BhY2l0
eSB0cmFuc2l0aW9uIG9uIGVsZW1lbnQgd2l0aCAnY29udGVudCcgc3R5bGUuCisKKyAgICAgICAg
KiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLW9uLWVsZW1lbnQtd2l0aC1jb250ZW50LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1vbi1lbGVtZW50
LXdpdGgtY29udGVudC5odG1sOiBBZGRlZC4KKwogMjAxMS0wNi0wNyAgQWxleGFuZGVyIFBhdmxv
diAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2Vt
aWtoYXRza3kuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
LW9uLWVsZW1lbnQtd2l0aC1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5z
aXRpb25zL3RyYW5zaXRpb24tb24tZWxlbWVudC13aXRoLWNvbnRlbnQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU0YzMxZjhmNTc2YTRlMWRhMWRkMDlhMDBmMDhkMGY2NWIyODExMDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLW9uLWVsZW1l
bnQtd2l0aC1jb250ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgLSAib3Bh
Y2l0eSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNs
b3NlIHRvOiAwLjUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi1vbi1lbGVtZW50LXdpdGgtY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbi1vbi1lbGVtZW50LXdpdGgtY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNj
NDcyOTQ5MTY3ZDY4MzIyYTI3MzcxZWEwNzFmMjc2MTFmNjUzNjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLW9uLWVsZW1lbnQtd2l0aC1jb250
ZW50Lmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFPgorCis8aHRtbD4KKzxoZWFkPgor
ICA8c3R5bGU+CisgICAgLmJveCB7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3Jh
eTsKKyAgICAgIGNvbnRlbnQ6ICdUZXN0JzsKKyAgICB9CisgICAgCisgICAgI2JveCB7CisgICAg
ICBvcGFjaXR5OiAxOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGxpbmVh
cjsKKyAgICB9CisgICAgCisgICAgI2JveC5maW5hbCB7CisgICAgICBvcGFjaXR5OiAwOworICAg
IH0KKyAgICAKKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90cmFuc2l0aW9u
LXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KKworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgLy8gW3RpbWUsIGVs
ZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9sZXJhbmNlXQorICAgICAgWzAu
NSwgJ2JveCcsICdvcGFjaXR5JywgMC41LCAwLjFdLAorICAgIF07CisgIAorICAgIGZ1bmN0aW9u
IHNldHVwVGVzdCgpCisgICAgeworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcp
LmNsYXNzTmFtZSA9ICdib3ggZmluYWwnOworICAgIH0KKyAgCisgICAgcnVuVHJhbnNpdGlvblRl
c3QoZXhwZWN0ZWRWYWx1ZXMsIHNldHVwVGVzdCwgdXNlUGF1c2VBUEkpOworICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorCisgIDwhLS0gVGVzdCB0aGF0IGEgdHJhbnNpdGlvbiBydW5zIG9u
IGFuIGVsZW1lbnQgd2l0aCBhICdjb250ZW50JyBwcm9wZXJ0eS4gLS0+CisgIDxkaXYgaWQ9ImJv
eCIgY2xhc3M9ImJveCI+PC9kaXY+CisKKyAgPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE5ZTc5NjdhOGFiNGI4OWEwOGVmMmQyNzAzMzlk
ZmI1ZmFlY2Q4YWUuLmViYTEwYmU4OWE5NWE1ZWMzN2M3NzUxYWFmMmI0ODZjZDY4MjUwYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwzNiBAQAogMjAxMS0wNi0wNyAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBPcGFjaXR5IHRyYW5zaXRpb24gZG9lc24ndCB3b3JrIHdoaWxlIGNvbnRl
bnQgcHJvcGVydHkgaXMgc2V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTkzMDEKKyAgICAgICAgCisgICAgICAgIFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEncyBjb3B5IGNvbnN0cnVjdG9yIG9taXR0ZWQgdG8gY29weQorICAgICAgICB0aGUgbV9j
b250ZW50IGRhdGEsIHdoaWNoIGNhdXNlZCB1cyB0byBkZXRhY2ggYW5kIHJlLWF0dGFjaCB0aGUg
cmVuZGVyZXIKKyAgICAgICAgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0cmFuc2l0aW9uLCB0aGVyZWJ5
IGtpbGxpbmcgdGhlIHRyYW5zaXRpb24uCisgICAgICAgIAorICAgICAgICBGaXggYnkgbWFraW5n
IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEncyBjb3B5IGN0b3IgZG8gdGhlIHJpZ2h0IHRoaW5n
LgorCisgICAgICAgIFRlc3Q6IHRyYW5zaXRpb25zL3RyYW5zaXRpb24tb24tZWxlbWVudC13aXRo
LWNvbnRlbnQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmg6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnREYXRhOjpjbG9uZSk6IE5ldyBtZXRob2QgdG8gZG8gYSBkZWVwIGNsb25l
LiAoQ2FuJ3QgdXNlIGEgY29weQorICAgICAgICBjdG9yIGJlY2F1c2Ugb2YgdGhlIHN1YmNsYXNz
ZXMuKQorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oOiBQYWNr
IHRoZSBkYXRhIG1lbWJlcnMgdG8gc2F2ZSBzcGFjZS4KKyAgICAgICAgQWRkIGEgY2xvbmUoKSBm
dW5jdGlvbiBmb3IgdGhlIEhhc2hNYXAuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0NvdW50
ZXJEaXJlY3RpdmVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNsb25lKTogTWFrZSBhIG5ldyBI
YXNoTWFwIGFuZCBjb3B5IHRoZSBjb250ZW50cyBvdmVyLgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOiBDb3B5
CisgICAgICAgIHRoZSBjb250ZW50IGFuZCBjb3VudGVyIGRpcmVjdGl2ZXMgb3Zlci4KKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOiBSYXRo
ZXIgdGhhbiBqdXN0IGNvbXBhcmluZworICAgICAgICBmb3IgcG9pbnRlciBlcXVhbGl0eSwgZG8g
YSBjb3JyZWN0IGNoZWNrIGZvciBtX2NvdW50ZXJEaXJlY3RpdmVzIGVxdWFsaXR5LgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6Y291bnRlckRhdGFFcXVpdmFs
ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5oOgorCisyMDExLTA2LTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCiAKICAgICAgICAgQ2xlYW4gdXAg
Q29udGVudERhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9D
b250ZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERh
dGEuY3BwCmluZGV4IDljNTI0OWI5N2RkMGJhNzRmNDQxMjEyYzQ2NjBhOGNjNmMxNDAwZTkuLjUw
NWMyMjMzNGFkMDdiZDE3NzlhNzkxNjZjN2UwMWYxYTQxOTY4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcApAQCAtNDYsNiArNDYsMzcgQEAg
UGFzc093blB0cjxDb250ZW50RGF0YT4gQ29udGVudERhdGE6OmNyZWF0ZShRdW90ZVR5cGUgcXVv
dGUpCiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBRdW90ZUNvbnRlbnREYXRhKHF1b3RlKSk7CiB9
CiAKK1Bhc3NPd25QdHI8Q29udGVudERhdGE+IENvbnRlbnREYXRhOjpjbG9uZSgpIGNvbnN0Cit7
CisgICAgT3duUHRyPENvbnRlbnREYXRhPiByZXN1bHQ7CisgICAgCisgICAgc3dpdGNoICh0eXBl
KCkpIHsKKyAgICBjYXNlIENPTlRFTlRfTk9ORToKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgY2FzZSBDT05URU5UX09CSkVDVDogeworICAgICAgICBSZWZQdHI8U3R5bGVJbWFnZT4gaW1h
Z2UgPSBjb25zdF9jYXN0PFN0eWxlSW1hZ2UqPihzdGF0aWNfY2FzdDxjb25zdCBJbWFnZUNvbnRl
bnREYXRhKj4odGhpcyktPmltYWdlKCkpOworICAgICAgICByZXN1bHQgPSBjcmVhdGUoaW1hZ2Uu
cmVsZWFzZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgQ09OVEVOVF9URVhU
OgorICAgICAgICByZXN1bHQgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgVGV4dENvbnRlbnRE
YXRhKj4odGhpcyktPnRleHQoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ09OVEVOVF9D
T1VOVEVSOiB7CisgICAgICAgIE93blB0cjxDb3VudGVyQ29udGVudD4gY291bnRlckRhdGEgPSBh
ZG9wdFB0cihuZXcgQ291bnRlckNvbnRlbnQoKihzdGF0aWNfY2FzdDxjb25zdCBDb3VudGVyQ29u
dGVudERhdGEqPih0aGlzKS0+Y291bnRlcigpKSkpOworICAgICAgICByZXN1bHQgPSBjcmVhdGUo
Y291bnRlckRhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
Q09OVEVOVF9RVU9URToKKyAgICAgICAgcmVzdWx0ID0gY3JlYXRlKHN0YXRpY19jYXN0PGNvbnN0
IFF1b3RlQ29udGVudERhdGEqPih0aGlzKS0+cXVvdGUoKSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIGlmIChyZXN1bHQgJiYgbV9uZXh0KQorICAgICAgICByZXN1bHQtPnNldE5leHQo
bV9uZXh0LT5jbG9uZSgpKTsKKyAgICAgICAgCisgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7
Cit9CisKIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb250ZW50RGF0YSYgYSwgY29uc3QgQ29udGVu
dERhdGEmIGIpCiB7CiAgICAgaWYgKGEudHlwZSgpICE9IGIudHlwZSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAppbmRleCBjNWEwMjk1MDJlOWZlY2U5
ZjljMmQxYTY4OTZlYzM3YmVjNzVkYzcwLi5kODU2YTQ1NThlMWVmMTA0YzFhYmFiMDIwOTJhMjg1
ZGRjMGVmMDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29u
dGVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERh
dGEuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6CiAgICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBDb250ZW50RGF0YSYsIGNvbnN0IENvbnRlbnREYXRhJik7CiAgICAgZnJpZW5kIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBDb250ZW50RGF0YSYsIGNvbnN0IENvbnRlbnREYXRhJik7CiAK
KyAgICBQYXNzT3duUHRyPENvbnRlbnREYXRhPiBjbG9uZSgpIGNvbnN0OworCiAgICAgQ29udGVu
dERhdGEqIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQuZ2V0KCk7IH0KICAgICB2b2lkIHNl
dE5leHQoUGFzc093blB0cjxDb250ZW50RGF0YT4gbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0
aXZlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2
ZXMuY3BwCmluZGV4IGEwZmY1MmY5MTQ4Y2ZkMzFhMTlhZDZhZmE4MmE0ZWRmOTY0MTA2ZjkuLjRj
OWYzNzAyNmEzNGZjYzk3MTM4MTJjZTg0NGViNmEwMTMzNjY1YjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmNwcApAQCAtMjEs
NiArMjEsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ291bnRlckRpcmVj
dGl2ZXMuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTM1LDQgKzM2LDE1IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb3VudGVyRGly
ZWN0aXZlcyYgYSwgY29uc3QgQ291bnRlckRpcmVjdGl2ZXMmIGIpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK1Bhc3NPd25QdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gY2xvbmUoY29uc3QgQ291bnRl
ckRpcmVjdGl2ZU1hcCYgY291bnRlckRpcmVjdGl2ZXMpCit7CisgICAgT3duUHRyPENvdW50ZXJE
aXJlY3RpdmVNYXA+IHJlc3VsdCA9IGFkb3B0UHRyKG5ldyBDb3VudGVyRGlyZWN0aXZlTWFwKTsK
KyAgICAKKyAgICBDb3VudGVyRGlyZWN0aXZlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjb3Vu
dGVyRGlyZWN0aXZlcy5lbmQoKTsKKyAgICBmb3IgKENvdW50ZXJEaXJlY3RpdmVNYXA6OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gY291bnRlckRpcmVjdGl2ZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KQorICAgICAgICByZXN1bHQtPmFkZChpdC0+Zmlyc3QsIGl0LT5zZWNvbmQpOworICAgIAorICAg
IHJldHVybiByZXN1bHQucmVsZWFzZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5o
CmluZGV4IGU1NDAyOGVkZWJmNDlkYTZhODExYzUwY2RkYWM5OWU3ZDMzNjM4MTMuLjFiZGNiOTA2
MTUzZGYzZmQ1YWI3OGEyNjE1MGU2YmM1YjhlZmQwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oCkBAIC0zOSw4ICszOSw4IEBA
IHN0cnVjdCBDb3VudGVyRGlyZWN0aXZlcyB7CiAgICAgfQogCiAgICAgYm9vbCBtX3Jlc2V0Owot
ICAgIGludCBtX3Jlc2V0VmFsdWU7CiAgICAgYm9vbCBtX2luY3JlbWVudDsKKyAgICBpbnQgbV9y
ZXNldFZhbHVlOwogICAgIGludCBtX2luY3JlbWVudFZhbHVlOwogfTsKIApAQCAtNDksNiArNDks
OCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENvdW50ZXJEaXJlY3RpdmVzJiBhLCBj
b25zdCBDb3VudGVyRGlyZWN0aXZlcyYgYikgewogCiB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPEF0
b21pY1N0cmluZ0ltcGw+LCBDb3VudGVyRGlyZWN0aXZlcz4gQ291bnRlckRpcmVjdGl2ZU1hcDsK
IAorUGFzc093blB0cjxDb3VudGVyRGlyZWN0aXZlTWFwPiBjbG9uZShjb25zdCBDb3VudGVyRGly
ZWN0aXZlTWFwJik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIENvdW50
ZXJEaXJlY3RpdmVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCBlMWE2ZjEzNGYxMGMy
YjU1NzgzZmQwOTM2NjI2ZGU5MWZjNzEzODNjLi45MTNjYmM5Y2YyYmNkMTFjYTlhMDIzMzkxYTg4
YTg1M2MwNGY2YjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02Niw2ICs2Niw4IEBA
IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29u
c3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkCiAgICAgLCBtYXJxdWVlKG8ubWFycXVlZSkKICAgICAs
IG1fbXVsdGlDb2woby5tX211bHRpQ29sKQogICAgICwgbV90cmFuc2Zvcm0oby5tX3RyYW5zZm9y
bSkKKyAgICAsIG1fY29udGVudChvLm1fY29udGVudCA/IG8ubV9jb250ZW50LT5jbG9uZSgpIDog
bnVsbHB0cikKKyAgICAsIG1fY291bnRlckRpcmVjdGl2ZXMoby5tX2NvdW50ZXJEaXJlY3RpdmVz
ID8gY2xvbmUoKm8ubV9jb3VudGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQogICAgICwgdXNlckRy
YWcoby51c2VyRHJhZykKICAgICAsIHRleHRPdmVyZmxvdyhvLnRleHRPdmVyZmxvdykKICAgICAs
IG1hcmdpbkJlZm9yZUNvbGxhcHNlKG8ubWFyZ2luQmVmb3JlQ29sbGFwc2UpCkBAIC0xMTEsNyAr
MTEzLDcgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0
IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgbV9tdWx0aUNvbCA9
PSBvLm1fbXVsdGlDb2wKICAgICAgICAgJiYgbV90cmFuc2Zvcm0gPT0gby5tX3RyYW5zZm9ybQog
ICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKLSAgICAgICAgJiYgbV9jb3VudGVy
RGlyZWN0aXZlcyA9PSBvLm1fY291bnRlckRpcmVjdGl2ZXMKKyAgICAgICAgJiYgY291bnRlckRh
dGFFcXVpdmFsZW50KG8pCiAgICAgICAgICYmIHVzZXJEcmFnID09IG8udXNlckRyYWcKICAgICAg
ICAgJiYgdGV4dE92ZXJmbG93ID09IG8udGV4dE92ZXJmbG93CiAgICAgICAgICYmIG1hcmdpbkJl
Zm9yZUNvbGxhcHNlID09IG8ubWFyZ2luQmVmb3JlQ29sbGFwc2UKQEAgLTE1MCw2ICsxNTIsMTYg
QEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpjb250ZW50RGF0YUVxdWl2YWxlbnQo
Y29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpjb3VudGVyRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKK3sKKyAgICBpZiAoKCFtX2NvdW50ZXJE
aXJlY3RpdmVzICYmIG8ubV9jb3VudGVyRGlyZWN0aXZlcykgfHwgKG1fY291bnRlckRpcmVjdGl2
ZXMgJiYgIW8ubV9jb3VudGVyRGlyZWN0aXZlcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAobV9jb3VudGVyRGlyZWN0aXZlcyAmJiBvLm1fY291bnRlckRpcmVjdGl2ZXMgJiYgKCpt
X2NvdW50ZXJEaXJlY3RpdmVzICE9ICpvLm1fY291bnRlckRpcmVjdGl2ZXMpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7CisKK30KKwogYm9vbCBTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhOjpzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhJiBvKSBjb25zdAogewogICAgIGlmICgoIW1fYm94U2hhZG93ICYmIG8ubV9ib3hT
aGFkb3cpIHx8IChtX2JveFNoYWRvdyAmJiAhby5tX2JveFNoYWRvdykpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuaAppbmRleCA2OTIzM2NmMWU0MmM0M2U4MDEwYjUxZTYwZjE2ZGVlOGIzM2IzYWVhLi45OTAx
ZGRiNzRiNzBjMmRjOGQzYmQyNzliZWExMzJhNGUyN2M5NjFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmgKQEAgLTc2LDkgKzc2LDEwIEBAIHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjb25zdCB7IHJldHVybiAhKCp0aGlz
ID09IG8pOyB9CiAKLSAgICBib29sIGNvbnRlbnREYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjb25zdDsKLSAgICBib29sIHNoYWRvd0RhdGFFcXVpdmFs
ZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGNvbnN0OwotICAgIGJvb2wg
cmVmbGVjdGlvbkRhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEm
IG8pIGNvbnN0OworICAgIGJvb2wgY29udGVudERhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEmKSBjb25zdDsKKyAgICBib29sIGNvdW50ZXJEYXRhRXF1aXZhbGVu
dChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJikgY29uc3Q7CisgICAgYm9vbCBzaGFk
b3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJikgY29uc3Q7
CisgICAgYm9vbCByZWZsZWN0aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YSYpIGNvbnN0OwogICAgIGJvb2wgYW5pbWF0aW9uRGF0YUVxdWl2YWxlbnQoY29u
c3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogICAgIGJvb2wgdHJhbnNpdGlv
bkRhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmKSBjb25zdDsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96312</attachid>
            <date>2011-06-07 15:25:26 -0700</date>
            <delta_ts>2011-06-07 16:52:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59301-20110607152524.patch</filename>
            <type>text/plain</type>
            <size>11668</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgyNzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNDA2ZWVhMDc3ZDBiOWJkZTViNTBk
NjYxYzNkMjBmYTM2OTI5NDU0Li40MGEwYTMxMTlhMjA1ZmQwNDZiNmY2YjBiZjNiOGJlYjA5OTcy
YjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMDcgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3BhY2l0eSB0cmFuc2l0aW9uIGRvZXNuJ3Qgd29yayB3aGlsZSBjb250
ZW50IHByb3BlcnR5IGlzIHNldC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU5MzAxCisgICAgICAgIAorICAgICAgICBUZXN0Y2FzZSBmb3Igb3BhY2l0
eSB0cmFuc2l0aW9uIG9uIGVsZW1lbnQgd2l0aCAnY29udGVudCcgc3R5bGUuCisKKyAgICAgICAg
KiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLW9uLWVsZW1lbnQtd2l0aC1jb250ZW50LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1vbi1lbGVtZW50
LXdpdGgtY29udGVudC5odG1sOiBBZGRlZC4KKwogMjAxMS0wNi0wNyAgUm9iIEJ1aXMgIDxyYnVp
c0ByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tb24tZWxlbWVudC13aXRoLWNv
bnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1v
bi1lbGVtZW50LXdpdGgtY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRjMzFmOGY1
NzZhNGUxZGExZGQwOWEwMGYwOGQwZjY1YjI4MTEwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tb24tZWxlbWVudC13aXRoLWNvbnRlbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3Ig
ImJveCIgZWxlbWVudCBhdCAwLjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuNQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLW9uLWVsZW1lbnQtd2l0
aC1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLW9uLWVs
ZW1lbnQtd2l0aC1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M0NzI5NDkxNjdkNjgzMjJhMjcz
NzFlYTA3MWYyNzYxMWY2NTM2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5z
aXRpb25zL3RyYW5zaXRpb24tb24tZWxlbWVudC13aXRoLWNvbnRlbnQuaHRtbApAQCAtMCwwICsx
LDQ4IEBACis8IURPQ1RZUEU+CisKKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAuYm94
IHsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICBtYXJn
aW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICAgICAgY29udGVudDog
J1Rlc3QnOworICAgIH0KKyAgICAKKyAgICAjYm94IHsKKyAgICAgIG9wYWNpdHk6IDE7CisgICAg
ICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMXMgbGluZWFyOworICAgIH0KKyAgICAKKyAg
ICAjYm94LmZpbmFsIHsKKyAgICAgIG9wYWNpdHk6IDA7CisgICAgfQorICAgIAorICA8L3N0eWxl
PgorICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzIj48
L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCisgICAgY29uc3Qg
ZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAvLyBbdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHks
IGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgICBbMC41LCAnYm94JywgJ29wYWNpdHkn
LCAwLjUsIDAuMV0sCisgICAgXTsKKyAgCisgICAgZnVuY3Rpb24gc2V0dXBUZXN0KCkKKyAgICB7
CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuY2xhc3NOYW1lID0gJ2JveCBm
aW5hbCc7CisgICAgfQorICAKKyAgICBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZFZhbHVlcywg
c2V0dXBUZXN0LCB1c2VQYXVzZUFQSSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisK
KyAgPCEtLSBUZXN0IHRoYXQgYSB0cmFuc2l0aW9uIHJ1bnMgb24gYW4gZWxlbWVudCB3aXRoIGEg
J2NvbnRlbnQnIHByb3BlcnR5LiAtLT4KKyAgPGRpdiBpZD0iYm94IiBjbGFzcz0iYm94Ij48L2Rp
dj4KKworICA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZWQ2ZTdiMzgyOTI5Zjg2NGI1OWZlYzcxMmI3NGJhNWFhYmE0ZjVkYy4uMWZjMzZi
MTZlMzBiZTU1ZWI1MTBhNzI0ODcyOTFkNjcxNmU3NDBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDM2IEBACiAyMDExLTA2LTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9wYWNp
dHkgdHJhbnNpdGlvbiBkb2Vzbid0IHdvcmsgd2hpbGUgY29udGVudCBwcm9wZXJ0eSBpcyBzZXQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTMwMQor
ICAgICAgICAKKyAgICAgICAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSdzIGNvcHkgY29uc3Ry
dWN0b3Igb21pdHRlZCB0byBjb3B5CisgICAgICAgIHRoZSBtX2NvbnRlbnQgZGF0YSwgd2hpY2gg
Y2F1c2VkIHVzIHRvIGRldGFjaCBhbmQgcmUtYXR0YWNoIHRoZSByZW5kZXJlcgorICAgICAgICBh
dCB0aGUgc3RhcnQgb2YgdGhlIHRyYW5zaXRpb24sIHRoZXJlYnkga2lsbGluZyB0aGUgdHJhbnNp
dGlvbi4KKyAgICAgICAgCisgICAgICAgIEZpeCBieSBtYWtpbmcgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YSdzIGNvcHkgY3RvciBkbyB0aGUgcmlnaHQgdGhpbmcuCisKKyAgICAgICAgVGVzdDog
dHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1vbi1lbGVtZW50LXdpdGgtY29udGVudC5odG1sCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvQ29udGVudERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6
OmNsb25lKTogTmV3IG1ldGhvZCB0byBkbyBhIGRlZXAgY2xvbmUuIChDYW4ndCB1c2UgYSBjb3B5
CisgICAgICAgIGN0b3IgYmVjYXVzZSBvZiB0aGUgc3ViY2xhc3Nlcy4pCisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmg6IFBhY2sgdGhlIGRhdGEgbWVtYmVycyB0
byBzYXZlIHNwYWNlLgorICAgICAgICBBZGQgYSBjbG9uZSgpIGZ1bmN0aW9uIGZvciB0aGUgSGFz
aE1hcC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y2xvbmUpOiBNYWtlIGEgbmV3IEhhc2hNYXAgYW5kIGNvcHkgdGhl
IGNvbnRlbnRzIG92ZXIuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6IENvcHkKKyAgICAgICAgdGhlIGNvbnRl
bnQgYW5kIGNvdW50ZXIgZGlyZWN0aXZlcyBvdmVyLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6IFJhdGhlciB0aGFuIGp1c3QgY29tcGFy
aW5nCisgICAgICAgIGZvciBwb2ludGVyIGVxdWFsaXR5LCBkbyBhIGNvcnJlY3QgY2hlY2sgZm9y
IG1fY291bnRlckRpcmVjdGl2ZXMgZXF1YWxpdHkuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhOjpjb3VudGVyRGF0YUVxdWl2YWxlbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisKKzIwMTEtMDYtMDcg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGF2ZSBIeWF0dC4KIAogICAgICAgICBDbGVhbiB1cCBDb250ZW50RGF0YQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKaW5kZXggOWM1MjQ5
Yjk3ZGQwYmE3NGY0NDEyMTJjNDY2MGE4Y2M2YzE0MDBlOS4uNTA1YzIyMzM0YWQwN2JkMTc3OWE3
OTE2NmM3ZTAxZjFhNDE5NjhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0NvbnRlbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvQ29udGVudERhdGEuY3BwCkBAIC00Niw2ICs0NiwzNyBAQCBQYXNzT3duUHRyPENvbnRlbnRE
YXRhPiBDb250ZW50RGF0YTo6Y3JlYXRlKFF1b3RlVHlwZSBxdW90ZSkKICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFF1b3RlQ29udGVudERhdGEocXVvdGUpKTsKIH0KIAorUGFzc093blB0cjxDb250
ZW50RGF0YT4gQ29udGVudERhdGE6OmNsb25lKCkgY29uc3QKK3sKKyAgICBPd25QdHI8Q29udGVu
dERhdGE+IHJlc3VsdDsKKyAgICAKKyAgICBzd2l0Y2ggKHR5cGUoKSkgeworICAgIGNhc2UgQ09O
VEVOVF9OT05FOgorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBjYXNlIENPTlRFTlRfT0JK
RUNUOiB7CisgICAgICAgIFJlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSA9IGNvbnN0X2Nhc3Q8U3R5
bGVJbWFnZSo+KHN0YXRpY19jYXN0PGNvbnN0IEltYWdlQ29udGVudERhdGEqPih0aGlzKS0+aW1h
Z2UoKSk7CisgICAgICAgIHJlc3VsdCA9IGNyZWF0ZShpbWFnZS5yZWxlYXNlKCkpOworICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgY2FzZSBDT05URU5UX1RFWFQ6CisgICAgICAgIHJlc3VsdCA9
IGNyZWF0ZShzdGF0aWNfY2FzdDxjb25zdCBUZXh0Q29udGVudERhdGEqPih0aGlzKS0+dGV4dCgp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDT05URU5UX0NPVU5URVI6IHsKKyAgICAgICAg
T3duUHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyRGF0YSA9IGFkb3B0UHRyKG5ldyBDb3VudGVy
Q29udGVudCgqKHN0YXRpY19jYXN0PGNvbnN0IENvdW50ZXJDb250ZW50RGF0YSo+KHRoaXMpLT5j
b3VudGVyKCkpKSk7CisgICAgICAgIHJlc3VsdCA9IGNyZWF0ZShjb3VudGVyRGF0YS5yZWxlYXNl
KCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAg
ICAgICByZXN1bHQgPSBjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgUXVvdGVDb250ZW50RGF0YSo+
KHRoaXMpLT5xdW90ZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHJlc3Vs
dCAmJiBtX25leHQpCisgICAgICAgIHJlc3VsdC0+c2V0TmV4dChtX25leHQtPmNsb25lKCkpOwor
ICAgICAgICAKKyAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKK30KKwogYm9vbCBvcGVyYXRv
cj09KGNvbnN0IENvbnRlbnREYXRhJiBhLCBjb25zdCBDb250ZW50RGF0YSYgYikKIHsKICAgICBp
ZiAoYS50eXBlKCkgIT0gYi50eXBlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9Db250ZW50RGF0YS5oCmluZGV4IGM1YTAyOTUwMmU5ZmVjZTlmOWMyZDFhNjg5NmVjMzdiZWM3
NWRjNzAuLmQ4NTZhNDU1OGUxZWYxMDRjMWFiYWIwMjA5MmEyODVkZGMwZWYwMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5oCkBAIC01Myw2ICs1Myw4
IEBAIHB1YmxpYzoKICAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENvbnRlbnREYXRh
JiwgY29uc3QgQ29udGVudERhdGEmKTsKICAgICBmcmllbmQgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IENvbnRlbnREYXRhJiwgY29uc3QgQ29udGVudERhdGEmKTsKIAorICAgIFBhc3NPd25QdHI8Q29u
dGVudERhdGE+IGNsb25lKCkgY29uc3Q7CisKICAgICBDb250ZW50RGF0YSogbmV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsgfQogICAgIHZvaWQgc2V0TmV4dChQYXNzT3duUHRyPENv
bnRlbnREYXRhPiBuZXh0KSB7IG1fbmV4dCA9IG5leHQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5jcHAKaW5kZXggYTBmZjUy
ZjkxNDhjZmQzMWExOWFkNmFmYTgyYTRlZGY5NjQxMDZmOS4uNGM5ZjM3MDI2YTM0ZmNjOTcxMzgx
MmNlODQ0ZWI2YTAxMzM2NjViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb3VudGVyRGlyZWN0aXZlcy5oIgorI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsNCArMzYs
MTUgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENvdW50ZXJEaXJlY3RpdmVzJiBhLCBjb25zdCBD
b3VudGVyRGlyZWN0aXZlcyYgYikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorUGFzc093blB0cjxD
b3VudGVyRGlyZWN0aXZlTWFwPiBjbG9uZShjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwJiBjb3Vu
dGVyRGlyZWN0aXZlcykKK3sKKyAgICBPd25QdHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gcmVzdWx0
ID0gYWRvcHRQdHIobmV3IENvdW50ZXJEaXJlY3RpdmVNYXApOworICAgIAorICAgIENvdW50ZXJE
aXJlY3RpdmVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNvdW50ZXJEaXJlY3RpdmVzLmVuZCgp
OworICAgIGZvciAoQ291bnRlckRpcmVjdGl2ZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjb3Vu
dGVyRGlyZWN0aXZlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIHJlc3VsdC0+
YWRkKGl0LT5maXJzdCwgaXQtPnNlY29uZCk7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmgKaW5kZXggZTU0MDI4ZWRlYmY0
OWRhNmE4MTFjNTBjZGRhYzk5ZTdkMzM2MzgxMy4uMWJkY2I5MDYxNTNkZjNmZDVhYjc4YTI2MTUw
ZTZiYzViOGVmZDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0NvdW50ZXJEaXJlY3RpdmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0NvdW50ZXJEaXJlY3RpdmVzLmgKQEAgLTM5LDggKzM5LDggQEAgc3RydWN0IENvdW50ZXJEaXJl
Y3RpdmVzIHsKICAgICB9CiAKICAgICBib29sIG1fcmVzZXQ7Ci0gICAgaW50IG1fcmVzZXRWYWx1
ZTsKICAgICBib29sIG1faW5jcmVtZW50OworICAgIGludCBtX3Jlc2V0VmFsdWU7CiAgICAgaW50
IG1faW5jcmVtZW50VmFsdWU7CiB9OwogCkBAIC00OSw2ICs0OSw4IEBAIGlubGluZSBib29sIG9w
ZXJhdG9yIT0oY29uc3QgQ291bnRlckRpcmVjdGl2ZXMmIGEsIGNvbnN0IENvdW50ZXJEaXJlY3Rp
dmVzJiBiKSB7CiAKIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8QXRvbWljU3RyaW5nSW1wbD4sIENv
dW50ZXJEaXJlY3RpdmVzPiBDb3VudGVyRGlyZWN0aXZlTWFwOwogCitQYXNzT3duUHRyPENvdW50
ZXJEaXJlY3RpdmVNYXA+IGNsb25lKGNvbnN0IENvdW50ZXJEaXJlY3RpdmVNYXAmKTsKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQ291bnRlckRpcmVjdGl2ZXNfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGUxYTZmMTM0ZjEwYzJiNTU3ODNmZDA5MzY2MjZkZTkx
ZmM3MTM4M2MuLjkxM2NiYzljZjJiY2QxMWNhOWEwMjMzOTFhODhhODUzYzA0ZjZiMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTY2LDYgKzY2LDggQEAgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25Jbmhl
cml0ZWQKICAgICAsIG1hcnF1ZWUoby5tYXJxdWVlKQogICAgICwgbV9tdWx0aUNvbChvLm1fbXVs
dGlDb2wpCiAgICAgLCBtX3RyYW5zZm9ybShvLm1fdHJhbnNmb3JtKQorICAgICwgbV9jb250ZW50
KG8ubV9jb250ZW50ID8gby5tX2NvbnRlbnQtPmNsb25lKCkgOiBudWxscHRyKQorICAgICwgbV9j
b3VudGVyRGlyZWN0aXZlcyhvLm1fY291bnRlckRpcmVjdGl2ZXMgPyBjbG9uZSgqby5tX2NvdW50
ZXJEaXJlY3RpdmVzKSA6IG51bGxwdHIpCiAgICAgLCB1c2VyRHJhZyhvLnVzZXJEcmFnKQogICAg
ICwgdGV4dE92ZXJmbG93KG8udGV4dE92ZXJmbG93KQogICAgICwgbWFyZ2luQmVmb3JlQ29sbGFw
c2Uoby5tYXJnaW5CZWZvcmVDb2xsYXBzZSkKQEAgLTExMSw3ICsxMTMsNyBAQCBib29sIFN0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YSYgbykgYwogICAgICAgICAmJiBtX211bHRpQ29sID09IG8ubV9tdWx0aUNvbAogICAg
ICAgICAmJiBtX3RyYW5zZm9ybSA9PSBvLm1fdHJhbnNmb3JtCiAgICAgICAgICYmIGNvbnRlbnRE
YXRhRXF1aXZhbGVudChvKQotICAgICAgICAmJiBtX2NvdW50ZXJEaXJlY3RpdmVzID09IG8ubV9j
b3VudGVyRGlyZWN0aXZlcworICAgICAgICAmJiBjb3VudGVyRGF0YUVxdWl2YWxlbnQobykKICAg
ICAgICAgJiYgdXNlckRyYWcgPT0gby51c2VyRHJhZwogICAgICAgICAmJiB0ZXh0T3ZlcmZsb3cg
PT0gby50ZXh0T3ZlcmZsb3cKICAgICAgICAgJiYgbWFyZ2luQmVmb3JlQ29sbGFwc2UgPT0gby5t
YXJnaW5CZWZvcmVDb2xsYXBzZQpAQCAtMTUwLDYgKzE1MiwxNiBAQCBib29sIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGE6OmNvbnRlbnREYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25J
bmhlcml0ZQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGE6OmNvdW50ZXJEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhJiBvKSBjb25zdAoreworICAgIGlmICgoIW1fY291bnRlckRpcmVjdGl2ZXMgJiYgby5tX2Nv
dW50ZXJEaXJlY3RpdmVzKSB8fCAobV9jb3VudGVyRGlyZWN0aXZlcyAmJiAhby5tX2NvdW50ZXJE
aXJlY3RpdmVzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX2NvdW50ZXJEaXJl
Y3RpdmVzICYmIG8ubV9jb3VudGVyRGlyZWN0aXZlcyAmJiAoKm1fY291bnRlckRpcmVjdGl2ZXMg
IT0gKm8ubV9jb3VudGVyRGlyZWN0aXZlcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKKworfQorCiBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnNoYWRv
d0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGNvbnN0
CiB7CiAgICAgaWYgKCghbV9ib3hTaGFkb3cgJiYgby5tX2JveFNoYWRvdykgfHwgKG1fYm94U2hh
ZG93ICYmICFvLm1fYm94U2hhZG93KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDY5MjMzY2Yx
ZTQyYzQzZTgwMTBiNTFlNjBmMTZkZWU4YjMzYjNhZWEuLjk5MDFkZGI3NGI3MGMyZGM4ZDNiZDI3
OWJlYTEzMmE0ZTI3Yzk2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtNzYsOSArNzYsMTAg
QEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhJikgY29uc3Q7CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEmIG8pIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gbyk7IH0KIAotICAgIGJv
b2wgY29udGVudERhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEm
IG8pIGNvbnN0OwotICAgIGJvb2wgc2hhZG93RGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YSYgbykgY29uc3Q7Ci0gICAgYm9vbCByZWZsZWN0aW9uRGF0YUVxdWl2
YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgY29uc3Q7CisgICAgYm9v
bCBjb250ZW50RGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYp
IGNvbnN0OworICAgIGJvb2wgY291bnRlckRhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEmKSBjb25zdDsKKyAgICBib29sIHNoYWRvd0RhdGFFcXVpdmFsZW50KGNv
bnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmKSBjb25zdDsKKyAgICBib29sIHJlZmxlY3Rp
b25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJikgY29uc3Q7
CiAgICAgYm9vbCBhbmltYXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhJikgY29uc3Q7CiAgICAgYm9vbCB0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQoY29u
c3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCg==
</data>
<flag name="review"
          id="89967"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>