<?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>28689</bug_id>
          
          <creation_ts>2009-08-24 15:27:53 -0700</creation_ts>
          <short_desc>Replace disabled media mute button with port-specific implementation.</short_desc>
          <delta_ts>2009-09-28 11:44:06 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Andrew Scherkus">scherkus</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>142429</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-08-24 15:27:53 -0700</bug_when>
    <thetext>Instead of skipping rendering the mute button when a source has no audio, allow ports to check hasAudio() and handle the rendering themselves.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142431</commentid>
    <comment_count>1</comment_count>
      <attachid>38502</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-08-24 15:30:48 -0700</bug_when>
    <thetext>Created attachment 38502
First attempt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142432</commentid>
    <comment_count>2</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-08-24 15:31:46 -0700</bug_when>
    <thetext>I&apos;m still in the process of running the layout tests with a hypothesis that they should all still pass :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142618</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-25 10:25:25 -0700</bug_when>
    <thetext>That&apos;s a long layout test run. :)  Eric should officially be a reviewer by now... or certainly is hours away.  CCing him so he at least sees this go by.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142619</commentid>
    <comment_count>4</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-08-25 10:27:04 -0700</bug_when>
    <thetext>I got completely sidetracked during said layout test run :(

I don&apos;t have a mac machine to call my own so I&apos;m borrowing someone else&apos;s in the meantime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144046</commentid>
    <comment_count>5</comment_count>
      <attachid>38502</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-01 16:46:30 -0700</bug_when>
    <thetext>Comment on attachment 38502
First attempt

This seems fine to me, but I&apos;m not an expert here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144056</commentid>
    <comment_count>6</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-01 16:59:33 -0700</bug_when>
    <thetext>it&apos;s review- :(

I need to fix the issue via adjusting the style to display:none otherwise we have a strange looking &quot;missing square&quot; on the mac port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144057</commentid>
    <comment_count>7</comment_count>
      <attachid>38502</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-01 17:00:49 -0700</bug_when>
    <thetext>Comment on attachment 38502
First attempt

Need to explicitly remove the element from the render tree instead of painting nothing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148931</commentid>
    <comment_count>8</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-21 18:38:56 -0700</bug_when>
    <thetext>*** Bug 29621 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148932</commentid>
    <comment_count>9</comment_count>
      <attachid>39900</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-21 18:42:41 -0700</bug_when>
    <thetext>Created attachment 39900
Second attempt

This is a draft of deferring the decision on rendering a media control element to the RenderTheme.

This is my first real dive into Element/RenderObject/Style/Theme interaction, so feel free to point out my mistakes :)

The overall change is:
 1) Media control elements will always create a renderer
 2) RenderTheme decides whether those renderers will be visible based on inspecting the HTMLMediaElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149060</commentid>
    <comment_count>10</comment_count>
      <attachid>39900</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-09-22 08:51:09 -0700</bug_when>
    <thetext>Comment on attachment 39900
Second attempt


&gt; +        Sample implementation for port-specific rendering of media controls.

&quot;Sample implementation&quot;, what do you mean?


&gt; +    // Alternatively we could pass in the theme for fine-tuned adjustment.  If
&gt; +    // we keep it as simply setting display to NONE then I might rename this method
&gt; +    // shouldDisplayMediaControlPart instead.
&gt; +    if (!renderer-&gt;theme()-&gt;shouldRenderMediaControlPart(renderer))
&gt; +        style-&gt;setDisplay(NONE);

This shouldn&apos;t be necessary. I think if have both MediaControlElement::
rendererIsNeeded and MediaControlInputElement:: rendererIsNeeded call the theme
method it should just work.


&gt;  bool MediaControlMuteButtonElement::rendererIsNeeded(RenderStyle* style)
&gt;  {
&gt; -    return MediaControlInputElement::rendererIsNeeded(style) &amp;&amp; !disabled();
&gt; +    // All subclasses will probably end up NOT implementing this method anymore.
&gt; +    return MediaControlInputElement::rendererIsNeeded(style);

Why not just remove the method completely?


&gt; +bool RenderTheme::shouldRenderMediaControlPart(RenderObject* o)
&gt; +{
&gt; +    HTMLMediaElement* mediaElement = static_cast&lt;MediaControlInputElement*&gt;(o-&gt;node())-&gt;mediaElement();
&gt; +    switch (o-&gt;style()-&gt;appearance()) {
&gt; +    case MediaMuteButtonPart:
&gt; +        return mediaElement-&gt;hasAudio();
&gt; +    // More media parts can go here, but then we end up moving localized logic
&gt; +    // from the MediaControl elements into a big switch statement here, which
&gt; +    // kind of sucks.

&quot;which kind of sucks&quot; is probably not the most helpful comment to someone coming along later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149543</commentid>
    <comment_count>11</comment_count>
      <attachid>40027</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-23 16:36:19 -0700</bug_when>
    <thetext>Created attachment 40027
Third attempt

Being new to this part of WebKit I&apos;m not quite sure how to access the RenderTheme from inside an HTMLElement (and its subclasses).  document()-&gt;page()-&gt;theme() was the best I could come up with (looks like what RenderObject does)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149753</commentid>
    <comment_count>12</comment_count>
      <attachid>40027</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-09-24 07:42:04 -0700</bug_when>
    <thetext>Comment on attachment 40027
Third attempt

&gt; -    return HTMLDivElement::rendererIsNeeded(style) &amp;&amp; parent() &amp;&amp; parent()-&gt;renderer();
&gt; +    return HTMLDivElement::rendererIsNeeded(style) &amp;&amp; parent() &amp;&amp; parent()-&gt;renderer()
&gt; +        &amp;&amp; document()-&gt;page()-&gt;theme()-&gt;shouldRenderMediaControlPart(style-&gt;appearance(), m_mediaElement);

I don&apos;t know if the page can ever be NULL in this situation, but it is probably worth adding a check since RenderObject::theme() asserts it.

&gt; -    return HTMLInputElement::rendererIsNeeded(style) &amp;&amp; parent() &amp;&amp; parent()-&gt;renderer();
&gt; +    return HTMLInputElement::rendererIsNeeded(style) &amp;&amp; parent() &amp;&amp; parent()-&gt;renderer()
&gt; +        &amp;&amp; document()-&gt;page()-&gt;theme()-&gt;shouldRenderMediaControlPart(style-&gt;appearance(), m_mediaElement);

Ditto.

r=me with this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149894</commentid>
    <comment_count>13</comment_count>
      <attachid>40093</attachid>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-24 16:36:34 -0700</bug_when>
    <thetext>Created attachment 40093
Added asserts

Added ASSERT(document()-&gt;page())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150108</commentid>
    <comment_count>14</comment_count>
      <attachid>40093</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-09-25 12:33:01 -0700</bug_when>
    <thetext>Comment on attachment 40093
Added asserts

r=me

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150569</commentid>
    <comment_count>15</comment_count>
    <who name="Andrew Scherkus">scherkus</who>
    <bug_when>2009-09-28 11:24:14 -0700</bug_when>
    <thetext>Added commit-queue?

(should I do this every time I upload a patch?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150574</commentid>
    <comment_count>16</comment_count>
      <attachid>40027</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-28 11:33:04 -0700</bug_when>
    <thetext>Comment on attachment 40027
Third attempt

Obsoleting this old patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150575</commentid>
    <comment_count>17</comment_count>
      <attachid>40093</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-28 11:33:57 -0700</bug_when>
    <thetext>Comment on attachment 40093
Added asserts

You only need to set cq? if you want the commit-queue to auto-commit the patch for you.  If that&apos;s every time, then yes, you should set cq? every time.  I need to add an option to have post-diff do that for you (bug 29202).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150584</commentid>
    <comment_count>18</comment_count>
      <attachid>40093</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-28 11:44:01 -0700</bug_when>
    <thetext>Comment on attachment 40093
Added asserts

Clearing flags on attachment: 40093

Committed r48822: &lt;http://trac.webkit.org/changeset/48822&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150585</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-28 11:44:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38502</attachid>
            <date>2009-08-24 15:30:48 -0700</date>
            <delta_ts>2009-09-06 21:49:45 -0700</delta_ts>
            <desc>First attempt</desc>
            <filename>render_mute.patch</filename>
            <type>text/plain</type>
            <size>6102</size>
            <attacher name="Andrew Scherkus">scherkus</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWUwOTIyOS4uZGY2NjUzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAwOS0wOC0yNCAgQW5kcmV3IFNjaGVy
a3VzICA8c2NoZXJrdXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgZGlzYWJsZWQgbWVkaWEgbXV0ZSBidXR0b24g
d2l0aCBwb3J0LXNwZWNpZmljIGltcGxlbWVudGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2ODkKKworICAgICAgICBJbnN0ZWFkIG9mIHNr
aXBwaW5nIHJlbmRlcmluZyB0aGUgbXV0ZSBidXR0b24gd2hlbiBhIHNvdXJjZSBoYXMgbm8KKyAg
ICAgICAgYXVkaW8sIGFsbG93IHBvcnRzIHRvIGNoZWNrIGhhc0F1ZGlvKCkgYW5kIGhhbmRsZSB0
aGUgcmVuZGVyaW5nCisgICAgICAgIHRoZW1zZWx2ZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyBtZWRpYSBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5oOiBSZW1vdmVkIGRpc2FibGVkKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sczo6
cGFpbnRNZWRpYUNvbnRyb2xzUGFydCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFj
OjpwYWludE1lZGlhTXV0ZUJ1dHRvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50TWVkaWFNdXRl
QnV0dG9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5jZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVdpbmNlOjpwYWludE1lZGlhTXV0ZUJ1dHRvbik6CisK
IDIwMDktMDgtMjEgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAppbmRleCAwZTU4ODRiLi42NzE1MTExIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC0zNDcsMTYgKzM0Nyw2IEBAIHZv
aWQgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKCkKICAg
ICBzZXREaXNwbGF5VHlwZShtX21lZGlhRWxlbWVudC0+bXV0ZWQoKSA/IE1lZGlhVW5NdXRlQnV0
dG9uIDogTWVkaWFNdXRlQnV0dG9uKTsKIH0KIAotYm9vbCBNZWRpYUNvbnRyb2xNdXRlQnV0dG9u
RWxlbWVudDo6ZGlzYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiAhbV9tZWRpYUVsZW1lbnQt
Pmhhc0F1ZGlvKCk7Ci19Ci0KLWJvb2wgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKQotewotICAgIHJldHVybiBNZWRpYUNv
bnRyb2xJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpICYmICFkaXNhYmxlZCgp
OwotfQotCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE1lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChEb2N1bWVudCog
ZG9jdW1lbnQsIEhUTUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvTWVk
aWFDb250cm9sRWxlbWVudHMuaAppbmRleCA5NTM0OGIyLi5kNWZhNWQyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1dlYkNvcmUvcmVu
ZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAgLTEzMCw5ICsxMzAsNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoaXRUZXN0KGNvbnN0IEludFBvaW50JiBhYnNQb2ludCk7CiAgICAgTWVkaWFD
b250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlU
eXBlOyB9CiAKLSAgICAvLyBTb21lIGVsZW1lbnRzIGFyZSBkaXNhYmxlZCBieSBtb3ZpZSBzdGF0
ZSAoZWcuIG11dGUgaWYgbm8gYXVkaW8pLgotICAgIHZpcnR1YWwgYm9vbCBkaXNhYmxlZCgpIGNv
bnN0ICB7IHJldHVybiBmYWxzZTsgfQotCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZURpc3BsYXlUeXBlKCkgeyB9CiAgICAgdm9pZCBzZXREaXNwbGF5VHlwZShNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSk7CkBAIC0xNDksOCArMTQ2LDYgQEAgcHVibGljOgogICAgIE1lZGlhQ29u
dHJvbE11dGVCdXR0b25FbGVtZW50KERvY3VtZW50KiwgSFRNTE1lZGlhRWxlbWVudCopOwogICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZURpc3BsYXlUeXBlKCk7Ci0gICAgdmlydHVhbCBib29sIGRpc2FibGVkKCkgY29u
c3Q7Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKIH07
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9scy5jcHAKaW5kZXggMDZkOTAxYS4uYmIwODZjZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKQEAgLTEwMiw3ICsxMDIsOCBAQCBib29s
IFJlbmRlck1lZGlhQ29udHJvbHM6OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9s
RWxlbWVudFR5cGUgcGFydCwgUgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVk
aWFNdXRlQnV0dG9uOgogICAgICAgICBjYXNlIE1lZGlhVW5NdXRlQnV0dG9uOgotICAgICAgICAg
ICAgaWYgKE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50KiBidG4gPSBzdGF0aWNfY2FzdDxN
ZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudCo+KG8tPm5vZGUoKSkpIHsKKyAgICAgICAgICAg
IGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSBwYXJlbnRNZWRpYUVsZW1lbnQo
bykgJiYgbWVkaWFFbGVtZW50LT5oYXNBdWRpbygpICYmCisgICAgICAgICAgICAgICAgTWVkaWFD
b250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQqIGJ0biA9IHN0YXRpY19jYXN0PE1lZGlhQ29udHJvbE11
dGVCdXR0b25FbGVtZW50Kj4oby0+bm9kZSgpKSkgewogICAgICAgICAgICAgICAgIGJvb2wgYXVk
aW9FbmFibGVkID0gYnRuLT5kaXNwbGF5VHlwZSgpID09IE1lZGlhTXV0ZUJ1dHRvbjsKICAgICAg
ICAgICAgICAgICBwYWludFRoZW1lUGFydChhdWRpb0VuYWJsZWQgPyBTYWZhcmlUaGVtZTo6TWVk
aWFNdXRlQnV0dG9uUGFydCA6IFNhZmFyaVRoZW1lOjpNZWRpYVVuTXV0ZUJ1dHRvblBhcnQsIHBh
aW50SW5mby5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgciwgTlNSZWd1bGFyQ29udHJvbFNp
emUsIGRldGVybWluZVN0YXRlKG8pKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0gYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCmluZGV4IDQyZTJhY2EuLmI3MWQ5ZGIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQpAQCAtMTg2Miw3ICsx
ODYyLDcgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludE1lZGlhTXV0ZUJ1dHRv
bihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck8KICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE1l
ZGlhRWxlbWVudCo+KG1lZGlhTm9kZSk7Ci0gICAgaWYgKCFtZWRpYUVsZW1lbnQpCisgICAgaWYg
KCFtZWRpYUVsZW1lbnQgfHwgIW1lZGlhRWxlbWVudC0+aGFzQXVkaW8oKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIAogICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENv
bnRleHQocGFpbnRJbmZvLmNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0gYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpp
bmRleCA2ZDkyNTU2Li4xNmEwYWNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpA
QCAtMTU0NSw2ICsxNTQ1LDEwIEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50TWVkaWFNdXRl
QnV0dG9uKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQCiAgICAgaWYgKCFt
ZWRpYU5vZGUgfHwgKCFtZWRpYU5vZGUtPmhhc1RhZ05hbWUodmlkZW9UYWcpICYmICFtZWRpYU5v
ZGUtPmhhc1RhZ05hbWUoYXVkaW9UYWcpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxl
bWVudCo+KG1lZGlhTm9kZSk7CisgICAgaWYgKCFtZWRpYUVsZW1lbnQgfHwgIW1lZGlhRWxlbWVu
dC0+aGFzQXVkaW8oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKE1lZGlhQ29u
dHJvbFBsYXlCdXR0b25FbGVtZW50KiBidG4gPSBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xQbGF5
QnV0dG9uRWxlbWVudCo+KG5vZGUpKSB7CiAgICAgICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29u
dGV4dCBsb2NhbENvbnRleHQocGFpbnRJbmZvLmNvbnRleHQpOwogICAgICAgICB3a0RyYXdNZWRp
YVVJUGFydChidG4tPmRpc3BsYXlUeXBlKCksIG1lZGlhQ29udHJvbGxlclRoZW1lKCksIHBhaW50
SW5mby5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgciwgZ2V0TWVkaWFVSVBhcnRTdGF0ZUZs
YWdzKG5vZGUpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2lu
Y2UuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5jZS5jcHAKaW5kZXggZmI4
OTY3OC4uNzQ5Mjk1ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVX
aW5jZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW5jZS5jcHAKQEAg
LTU3NSw2ICs1NzUsOSBAQCBib29sIFJlbmRlclRoZW1lV2luY2U6OnBhaW50TWVkaWFNdXRlQnV0
dG9uKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OgogewogICAgIGJvb2wgcmMg
PSBwYWludEJ1dHRvbihvLCBwYWludEluZm8sIHIpOwogICAgIEhUTUxNZWRpYUVsZW1lbnQgKm1l
ZGlhRWxlbWVudCA9IG1lZGlhRWxlbWVudFBhcmVudChvLT5ub2RlKCkpOworICAgIGlmIChtZWRp
YUVsZW1lbnQgJiYgIW1lZGlhRWxlbWVudC0+aGFzQXVkaW8oKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCiAgICAgYm9vbCBtdXRlZCA9ICFtZWRpYUVsZW1lbnQgfHwgbWVkaWFFbGVtZW50LT5t
dXRlZCgpOwogICAgIEZsb2F0UmVjdCBpbVJlY3QgPSByOwogICAgIGltUmVjdC5pbmZsYXRlKC0y
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39900</attachid>
            <date>2009-09-21 18:42:41 -0700</date>
            <delta_ts>2009-09-23 16:36:19 -0700</delta_ts>
            <desc>Second attempt</desc>
            <filename>should_render.patch</filename>
            <type>text/plain</type>
            <size>5659</size>
            <attacher name="Andrew Scherkus">scherkus</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWUyNTMwNC4uY2IzY2NmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAwOS0wOS0yMSAgQW5kcmV3IFNjaGVy
a3VzICA8c2NoZXJrdXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNhbXBsZSBpbXBsZW1lbnRhdGlvbiBmb3IgcG9ydC1zcGVj
aWZpYyByZW5kZXJpbmcgb2YgbWVkaWEgY29udHJvbHMuCisKKyAgICAgICAgV2lsbCBmaWxsIGlu
IG1vcmUgZGV0YWlscyBhcyBJIHdvcmsgb24gdGhlIHBhdGNoLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk2MjEKKworICAgICAgICBDb3ZlcmVkIGJ5
IGV4aXN0aW5nIG1lZGlhIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIHJlbmRlcmluZy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xNdXRlQnV0
dG9uRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpzaG91bGRSZW5kZXJN
ZWRpYUNvbnRyb2xQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnNob3VsZFJlbmRlck1lZGlhQ29udHJv
bFBhcnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oOgor
CiAyMDA5LTA5LTE3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRlbGUgUGV0ZXJzb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xF
bGVtZW50cy5jcHAKaW5kZXggOTY5NzE2Zi4uZjdmZWE2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5n
L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMzc3LDYgKzM3NywxMiBAQCB2b2lkIE1lZGlh
Q29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKCkKICAgICAgICAgcmV0dXJuOwogICAgIHJlbmRl
cmVyLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiAgICAgc2V0UmVuZGVyZXIocmVuZGVyZXIpOwor
CisgICAgLy8gQWx0ZXJuYXRpdmVseSB3ZSBjb3VsZCBwYXNzIGluIHRoZSB0aGVtZSBmb3IgZmlu
ZS10dW5lZCBhZGp1c3RtZW50LiAgSWYKKyAgICAvLyB3ZSBrZWVwIGl0IGFzIHNpbXBseSBzZXR0
aW5nIGRpc3BsYXkgdG8gTk9ORSB0aGVuIEkgbWlnaHQgcmVuYW1lIHRoaXMgbWV0aG9kCisgICAg
Ly8gc2hvdWxkRGlzcGxheU1lZGlhQ29udHJvbFBhcnQgaW5zdGVhZC4KKyAgICBpZiAoIXJlbmRl
cmVyLT50aGVtZSgpLT5zaG91bGRSZW5kZXJNZWRpYUNvbnRyb2xQYXJ0KHJlbmRlcmVyKSkKKyAg
ICAgICAgc3R5bGUtPnNldERpc3BsYXkoTk9ORSk7CiAgICAgaWYgKHBhcmVudCgpICYmIHBhcmVu
dCgpLT5yZW5kZXJlcigpKSB7CiAgICAgICAgIC8vIEZpbmQgbmV4dCBzaWJsaW5nIHdpdGggYSBy
ZW5kZXJlciB0byBkZXRlcm1pbmUgd2hlcmUgdG8gaW5zZXJ0LgogICAgICAgICBOb2RlKiBzaWJs
aW5nID0gbmV4dFNpYmxpbmcoKTsKQEAgLTQ1MSw3ICs0NTcsOCBAQCBib29sIE1lZGlhQ29udHJv
bE11dGVCdXR0b25FbGVtZW50OjpkaXNhYmxlZCgpIGNvbnN0CiAKIGJvb2wgTWVkaWFDb250cm9s
TXV0ZUJ1dHRvbkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKQog
ewotICAgIHJldHVybiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQo
c3R5bGUpICYmICFkaXNhYmxlZCgpOworICAgIC8vIEFsbCBzdWJjbGFzc2VzIHdpbGwgcHJvYmFi
bHkgZW5kIHVwIE5PVCBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QgYW55bW9yZS4KKyAgICByZXR1
cm4gTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0K
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwCmluZGV4IDdiNGRmZTMuLjY4MmQ2MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAi
TWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0zOTYsNiArMzk3LDIwIEBA
IGJvb2wgUmVuZGVyVGhlbWU6OmhpdFRlc3RNZWRpYUNvbnRyb2xQYXJ0KFJlbmRlck9iamVjdCog
bywgY29uc3QgSW50UG9pbnQmIGFic1BvCiAgICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gby0+
YWJzb2x1dGVUb0xvY2FsKGFic1BvaW50LCBmYWxzZSwgdHJ1ZSk7ICAvLyByZXNwZWN0IHRyYW5z
Zm9ybXMKICAgICByZXR1cm4gdG9SZW5kZXJCb3gobyktPmJvcmRlckJveFJlY3QoKS5jb250YWlu
cyhyb3VuZGVkSW50UG9pbnQobG9jYWxQb2ludCkpOwogfQorCitib29sIFJlbmRlclRoZW1lOjpz
aG91bGRSZW5kZXJNZWRpYUNvbnRyb2xQYXJ0KFJlbmRlck9iamVjdCogbykKK3sKKyAgICBIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQqPihvLT5ub2RlKCkpLT5tZWRpYUVsZW1lbnQoKTsKKyAgICBzd2l0Y2ggKG8tPnN0
eWxlKCktPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFNdXRlQnV0dG9uUGFydDoKKyAg
ICAgICAgcmV0dXJuIG1lZGlhRWxlbWVudC0+aGFzQXVkaW8oKTsKKyAgICAvLyBNb3JlIG1lZGlh
IHBhcnRzIGNhbiBnbyBoZXJlLCBidXQgdGhlbiB3ZSBlbmQgdXAgbW92aW5nIGxvY2FsaXplZCBs
b2dpYworICAgIC8vIGZyb20gdGhlIE1lZGlhQ29udHJvbCBlbGVtZW50cyBpbnRvIGEgYmlnIHN3
aXRjaCBzdGF0ZW1lbnQgaGVyZSwgd2hpY2gKKyAgICAvLyBraW5kIG9mIHN1Y2tzLgorICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KICNlbmRpZgogCiBDb2xvciBS
ZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oCmluZGV4IGMwMGMyZWIuLjI1ZGMzMGQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaApAQCAtMTcyLDYgKzE3Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU8pCiAg
ICAgLy8gTWVkaWEgY29udHJvbHMKICAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdE1lZGlhQ29udHJv
bFBhcnQoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50UG9pbnQmIGFic1BvaW50KTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydChSZW5kZXJPYmplY3QqKTsKICNl
bmRpZgogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtU2tpYS5jcHAKaW5kZXggODJlNjMzYi4uMjNhOWIwYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcApAQCAtODY4LDYgKzg2OCwyMCBAQCBpbnQg
UmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmJ1dHRvbkludGVybmFsUGFkZGluZ0JvdHRvbSgpIGNv
bnN0CiAgICAgcmV0dXJuIDE7CiB9CiAKKyNpZiBFTkFCTEUoVklERU8pCitib29sIFJlbmRlclRo
ZW1lQ2hyb21pdW1Ta2lhOjpzaG91bGRSZW5kZXJNZWRpYUNvbnRyb2xQYXJ0KFJlbmRlck9iamVj
dCogbykKK3sKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQqPihvLT5ub2RlKCkpLT5tZWRpYUVsZW1lbnQoKTsK
KyAgICBzd2l0Y2ggKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFN
dXRlQnV0dG9uUGFydDoKKyAgICAgICAgLy8gVGhpcyBpcyBhbiBleGFtcGxlIHdoZXJlIHdlIGFs
d2F5cyB3YW50IHRvIHJlbmRlciB0aGUgbXV0ZSBidXR0b24uCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c2hvdWxkUmVuZGVy
TWVkaWFDb250cm9sUGFydChvKTsKKyAgICB9Cit9CisjZW5kaWYKKwogLy8gc3RhdGljCiB2b2lk
IFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpzZXREZWZhdWx0Rm9udFNpemUoaW50IGZvbnRTaXpl
KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNr
aWEuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKaW5kZXgg
MzdlNjU2Zi4uMmM4OGJhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVDaHJvbWl1bVNraWEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtU2tpYS5oCkBAIC0xMjYsNiArMTI2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCBpbnQgYnV0dG9uSW50ZXJuYWxQYWRkaW5nVG9wKCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgaW50IGJ1dHRvbkludGVybmFsUGFkZGluZ0JvdHRvbSgpIGNvbnN0OwogCisjaWYg
RU5BQkxFKFZJREVPKQorICAgICAgICAvLyBNZWRpYSBjb250cm9scworICAgICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydChSZW5kZXJPYmplY3QqKTsKKyNlbmRp
ZgorCiAgICAgICAgIC8vIFByb3ZpZGUgYSB3YXkgdG8gcGFzcyB0aGUgZGVmYXVsdCBmb250IHNp
emUgZnJvbSB0aGUgU2V0dGluZ3Mgb2JqZWN0CiAgICAgICAgIC8vIHRvIHRoZSByZW5kZXIgdGhl
bWUuICBGSVhNRTogaHR0cDovL2IvMTEyOTE4NiBBIGNsZWFuZXIgd2F5IHdvdWxkIGJlCiAgICAg
ICAgIC8vIHRvIHJlbW92ZSB0aGUgZGVmYXVsdCBmb250IHNpemUgZnJvbSB0aGlzIG9iamVjdCBh
bmQgaGF2ZSBjYWxsZXJzCg==
</data>
<flag name="review"
          id="21043"
          type_id="1"
          status="-"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40027</attachid>
            <date>2009-09-23 16:36:19 -0700</date>
            <delta_ts>2009-09-28 11:33:04 -0700</delta_ts>
            <desc>Third attempt</desc>
            <filename>delegate_renderer_is_needed.patch</filename>
            <type>text/plain</type>
            <size>9547</size>
            <attacher name="Andrew Scherkus">scherkus</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Mjk4M2VmNS4uZWQwYjFmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAwOS0wOS0yMyAgQW5kcmV3IFNjaGVy
a3VzICA8c2NoZXJrdXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlbGVnYXRlIGltcGxlbWVudGF0aW9uIG9mIHJlbmRlcmVy
SXNOZWVkZWQoKSBmb3IgbWVkaWEgY29udHJvbCBlbGVtZW50cyB0byBSZW5kZXJUaGVtZS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2ODkKKwor
ICAgICAgICBDb3ZlcmVkIGJ5IExheW91dFRlc3RzL21lZGlhL3ZpZGVvLW5vLWF1ZGlvLmh0bWwK
KworICAgICAgICAqIHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6IFJlbW92ZWQg
c3ViY2xhc3MgaW1wbGVtZW50YXRpb25zIG9mIHJlbmRlcmVySXNOZWVkZWQoKS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOiBJbmNsdWRl
IGNhbGxpbmcgc2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydCgpLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKTogSW5jbHVkZSBj
YWxsaW5nIHNob3VsZFJlbmRlck1lZGlhQ29udHJvbFBhcnQoKS4KKyAgICAgICAgKiByZW5kZXJp
bmcvTWVkaWFDb250cm9sRWxlbWVudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnNob3VsZFJlbmRlck1lZGlh
Q29udHJvbFBhcnQpOiBOZXcgbWV0aG9kLiAgQ29udGFpbnMgbG9naWMgbW92ZWQgZnJvbSBzdWJj
bGFzcyBpbXBsZW1lbnRhdGlvbnMgb2YgcmVuZGVyZXJJc05lZWRlZCgpLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtU2tp
YTo6c2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydCk6IE92ZXJyaWRlIHRvIGFsd2F5cyByZW5k
ZXIgbXV0ZSBidXR0b24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1T
a2lhLmg6CisKIDIwMDktMDktMjIgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgSm9obiBTdWxsaXZhbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAppbmRleCA5Njk3MTZmLi5iOTJhYWUxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC0xMzUsNyArMTM1LDggQEAgUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4gTWVkaWFDb250cm9sRWxlbWVudDo6c3R5bGVGb3JFbGVtZW50
KCkKIAogYm9vbCBNZWRpYUNvbnRyb2xFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0
eWxlKiBzdHlsZSkKIHsKLSAgICByZXR1cm4gSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQoc3R5bGUpICYmIHBhcmVudCgpICYmIHBhcmVudCgpLT5yZW5kZXJlcigpOworICAgIHJldHVy
biBIVE1MRGl2RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSkgJiYgcGFyZW50KCkgJiYg
cGFyZW50KCktPnJlbmRlcmVyKCkKKyAgICAgICAgJiYgZG9jdW1lbnQoKS0+cGFnZSgpLT50aGVt
ZSgpLT5zaG91bGRSZW5kZXJNZWRpYUNvbnRyb2xQYXJ0KHN0eWxlLT5hcHBlYXJhbmNlKCksIG1f
bWVkaWFFbGVtZW50KTsKIH0KICAgICAKIHZvaWQgTWVkaWFDb250cm9sRWxlbWVudDo6YXR0YWNo
KCkKQEAgLTM2MCw3ICszNjEsOCBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBNZWRpYUNvbnRy
b2xJbnB1dEVsZW1lbnQ6OnN0eWxlRm9yRWxlbWVudCgpCiAKIGJvb2wgTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKLSAgICBy
ZXR1cm4gSFRNTElucHV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSkgJiYgcGFyZW50
KCkgJiYgcGFyZW50KCktPnJlbmRlcmVyKCk7CisgICAgcmV0dXJuIEhUTUxJbnB1dEVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpICYmIHBhcmVudCgpICYmIHBhcmVudCgpLT5yZW5kZXJl
cigpCisgICAgICAgICYmIGRvY3VtZW50KCktPnBhZ2UoKS0+dGhlbWUoKS0+c2hvdWxkUmVuZGVy
TWVkaWFDb250cm9sUGFydChzdHlsZS0+YXBwZWFyYW5jZSgpLCBtX21lZGlhRWxlbWVudCk7CiB9
CiAKIHZvaWQgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjphdHRhY2goKQpAQCAtNDQ0LDE2ICs0
NDYsNiBAQCB2b2lkIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5
VHlwZSgpCiAgICAgc2V0RGlzcGxheVR5cGUobV9tZWRpYUVsZW1lbnQtPm11dGVkKCkgPyBNZWRp
YVVuTXV0ZUJ1dHRvbiA6IE1lZGlhTXV0ZUJ1dHRvbik7CiB9CiAKLWJvb2wgTWVkaWFDb250cm9s
TXV0ZUJ1dHRvbkVsZW1lbnQ6OmRpc2FibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIW1fbWVk
aWFFbGVtZW50LT5oYXNBdWRpbygpOwotfQotCi1ib29sIE1lZGlhQ29udHJvbE11dGVCdXR0b25F
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHlsZSkKLXsKLSAgICByZXR1
cm4gTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKSAmJiAh
ZGlzYWJsZWQoKTsKLX0KLQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBNZWRp
YUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQo
RG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQpAQCAtNTUxLDEx
ICs1NDMsNiBAQCB2b2lkIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoZXZlbnQpOwogfQogCi1ib29sIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVs
ZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKQotewotICAgIHJldHVy
biBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpICYmIG1f
bWVkaWFFbGVtZW50LT5tb3ZpZUxvYWRUeXBlKCkgIT0gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07
Ci19Ci0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC01NzMsMTAgKzU2
MCw2IEBAIHZvaWQgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50CiAgICAgSFRNTElucHV0RWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKLWJvb2wgTWVkaWFDb250cm9sUmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxl
KQotewotICAgIHJldHVybiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQoc3R5bGUpICYmIG1fbWVkaWFFbGVtZW50LT5tb3ZpZUxvYWRUeXBlKCkgPT0gTWVkaWFQbGF5
ZXI6OkxpdmVTdHJlYW07Ci19CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApA
QCAtNjY0LDExICs2NDcsNiBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBIVE1MSW5wdXRFbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotYm9vbCBNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSogc3R5
bGUpCi17Ci0gICAgcmV0dXJuIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6cmVuZGVyZXJJc05l
ZWRlZChzdHlsZSkgJiYgbV9tZWRpYUVsZW1lbnQtPnN1cHBvcnRzRnVsbHNjcmVlbigpOwotfQot
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL01l
ZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggZTgwZjdmYS4uZjY5MjQ4NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC0xNTUsOSArMTU1LDYgQEAgcHVibGlj
OgogICAgIGJvb2wgaGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpOwogICAgIE1lZGlh
Q29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5
VHlwZTsgfQogCi0gICAgLy8gU29tZSBlbGVtZW50cyBhcmUgZGlzYWJsZWQgYnkgbW92aWUgc3Rh
dGUgKGVnLiBtdXRlIGlmIG5vIGF1ZGlvKS4KLSAgICB2aXJ0dWFsIGJvb2wgZGlzYWJsZWQoKSBj
b25zdCAgeyByZXR1cm4gZmFsc2U7IH0KLQogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50OyB9CiAgICAgdmlydHVhbCBib29s
IGlzTWVkaWFDb250cm9sRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIApAQCAtMTc3
LDggKzE3NCw2IEBAIHB1YmxpYzoKICAgICBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChE
b2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgp
OwotICAgIHZpcnR1YWwgYm9vbCBkaXNhYmxlZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKik7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCkBAIC0yMTIsNyArMjA3LDYgQEAgY2xhc3MgTWVkaWFDb250cm9sUmV3aW5k
QnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGlj
OgogICAgIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqLCBIVE1MTWVk
aWFFbGVtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopOwogfTsK
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjIxLDcgKzIxNSw2IEBAIGNs
YXNzIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50IDogcHVibGljIE1l
ZGlhQ29udHJvbElucHV0RWxlbWVuCiBwdWJsaWM6CiAgICAgTWVkaWFDb250cm9sUmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqLCBIVE1MTWVkaWFFbGVtZW50Kik7CiAgICAg
dmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKLSAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopOwogfTsgICAgCiAKIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0Nyw3ICsyNDAsNiBAQCBjbGFzcyBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1l
bnQgewogcHVibGljOgogICAgIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50KERv
Y3VtZW50KiwgSFRNTE1lZGlhRWxlbWVudCopOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50Kik7Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVu
ZGVyU3R5bGUqKTsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCA3YjRkZmUzLi5iNTgyNmNkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgorI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAt
Mzk2LDYgKzM5NywyMyBAQCBib29sIFJlbmRlclRoZW1lOjpoaXRUZXN0TWVkaWFDb250cm9sUGFy
dChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IEludFBvaW50JiBhYnNQbwogICAgIEZsb2F0UG9pbnQg
bG9jYWxQb2ludCA9IG8tPmFic29sdXRlVG9Mb2NhbChhYnNQb2ludCwgZmFsc2UsIHRydWUpOyAg
Ly8gcmVzcGVjdCB0cmFuc2Zvcm1zCiAgICAgcmV0dXJuIHRvUmVuZGVyQm94KG8pLT5ib3JkZXJC
b3hSZWN0KCkuY29udGFpbnMocm91bmRlZEludFBvaW50KGxvY2FsUG9pbnQpKTsKIH0KKworYm9v
bCBSZW5kZXJUaGVtZTo6c2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydChDb250cm9sUGFydCBw
YXJ0LCBFbGVtZW50KiBlKQoreworICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9
IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihlKTsKKyAgICBzd2l0Y2ggKHBhcnQpIHsK
KyAgICBjYXNlIE1lZGlhTXV0ZUJ1dHRvblBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYUVsZW1l
bnQtPmhhc0F1ZGlvKCk7CisgICAgY2FzZSBNZWRpYVJld2luZEJ1dHRvblBhcnQ6CisgICAgICAg
IHJldHVybiBtZWRpYUVsZW1lbnQtPm1vdmllTG9hZFR5cGUoKSAhPSBNZWRpYVBsYXllcjo6TGl2
ZVN0cmVhbTsKKyAgICBjYXNlIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQ6CisgICAg
ICAgIHJldHVybiBtZWRpYUVsZW1lbnQtPm1vdmllTG9hZFR5cGUoKSA9PSBNZWRpYVBsYXllcjo6
TGl2ZVN0cmVhbTsKKyAgICBjYXNlIE1lZGlhRnVsbHNjcmVlbkJ1dHRvblBhcnQ6CisgICAgICAg
IHJldHVybiBtZWRpYUVsZW1lbnQtPnN1cHBvcnRzRnVsbHNjcmVlbigpOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KICNlbmRpZgogCiBDb2xvciBSZW5kZXJU
aGVtZTo6YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5oCmluZGV4IGMwMGMyZWIuLjFiNmE3ZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aApAQCAtMTcyLDYgKzE3Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU8pCiAgICAgLy8g
TWVkaWEgY29udHJvbHMKICAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdE1lZGlhQ29udHJvbFBhcnQo
UmVuZGVyT2JqZWN0KiwgY29uc3QgSW50UG9pbnQmIGFic1BvaW50KTsKKyAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydChDb250cm9sUGFydCwgRWxlbWVudCopOwog
I2VuZGlmCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1Ta2lhLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhLmNwcAppbmRleCA4MmU2MzNiLi40ZjQ4NmQ1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCkBAIC04NjgsNiArODY4LDE5IEBAIGlu
dCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YnV0dG9uSW50ZXJuYWxQYWRkaW5nQm90dG9tKCkg
Y29uc3QKICAgICByZXR1cm4gMTsKIH0KIAorI2lmIEVOQUJMRShWSURFTykKK2Jvb2wgUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OnNob3VsZFJlbmRlck1lZGlhQ29udHJvbFBhcnQoQ29udHJvbFBh
cnQgcGFydCwgRWxlbWVudCogZSkKK3sKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1l
bnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4oZSk7CisgICAgc3dpdGNoIChwYXJ0
KSB7CisgICAgY2FzZSBNZWRpYU11dGVCdXR0b25QYXJ0OgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnNob3VsZFJlbmRlck1l
ZGlhQ29udHJvbFBhcnQocGFydCwgZSk7CisgICAgfQorfQorI2VuZGlmCisKIC8vIHN0YXRpYwog
dm9pZCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6c2V0RGVmYXVsdEZvbnRTaXplKGludCBmb250
U2l6ZSkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1Ta2lhLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oCmlu
ZGV4IDM3ZTY1NmYuLjk4ZTNhMzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1Ta2lhLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuaApAQCAtMTI2LDYgKzEyNiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgaW50IGJ1dHRvbkludGVybmFsUGFkZGluZ1RvcCgpIGNvbnN0OwogICAg
ICAgICB2aXJ0dWFsIGludCBidXR0b25JbnRlcm5hbFBhZGRpbmdCb3R0b20oKSBjb25zdDsKIAor
I2lmIEVOQUJMRShWSURFTykKKyAgICAgICAgLy8gTWVkaWEgY29udHJvbHMKKyAgICAgICAgdmly
dHVhbCBib29sIHNob3VsZFJlbmRlck1lZGlhQ29udHJvbFBhcnQoQ29udHJvbFBhcnQsIEVsZW1l
bnQqKTsKKyNlbmRpZgorCiAgICAgICAgIC8vIFByb3ZpZGUgYSB3YXkgdG8gcGFzcyB0aGUgZGVm
YXVsdCBmb250IHNpemUgZnJvbSB0aGUgU2V0dGluZ3Mgb2JqZWN0CiAgICAgICAgIC8vIHRvIHRo
ZSByZW5kZXIgdGhlbWUuICBGSVhNRTogaHR0cDovL2IvMTEyOTE4NiBBIGNsZWFuZXIgd2F5IHdv
dWxkIGJlCiAgICAgICAgIC8vIHRvIHJlbW92ZSB0aGUgZGVmYXVsdCBmb250IHNpemUgZnJvbSB0
aGlzIG9iamVjdCBhbmQgaGF2ZSBjYWxsZXJzCg==
</data>
<flag name="review"
          id="21187"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40093</attachid>
            <date>2009-09-24 16:36:34 -0700</date>
            <delta_ts>2009-09-28 11:44:01 -0700</delta_ts>
            <desc>Added asserts</desc>
            <filename>audio_button_4.patch</filename>
            <type>text/plain</type>
            <size>9619</size>
            <attacher name="Andrew Scherkus">scherkus</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Mjk4M2VmNS4uZWQwYjFmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAwOS0wOS0yMyAgQW5kcmV3IFNjaGVy
a3VzICA8c2NoZXJrdXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlbGVnYXRlIGltcGxlbWVudGF0aW9uIG9mIHJlbmRlcmVy
SXNOZWVkZWQoKSBmb3IgbWVkaWEgY29udHJvbCBlbGVtZW50cyB0byBSZW5kZXJUaGVtZS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2ODkKKwor
ICAgICAgICBDb3ZlcmVkIGJ5IExheW91dFRlc3RzL21lZGlhL3ZpZGVvLW5vLWF1ZGlvLmh0bWwK
KworICAgICAgICAqIHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6IFJlbW92ZWQg
c3ViY2xhc3MgaW1wbGVtZW50YXRpb25zIG9mIHJlbmRlcmVySXNOZWVkZWQoKS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOiBJbmNsdWRl
IGNhbGxpbmcgc2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydCgpLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKTogSW5jbHVkZSBj
YWxsaW5nIHNob3VsZFJlbmRlck1lZGlhQ29udHJvbFBhcnQoKS4KKyAgICAgICAgKiByZW5kZXJp
bmcvTWVkaWFDb250cm9sRWxlbWVudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnNob3VsZFJlbmRlck1lZGlh
Q29udHJvbFBhcnQpOiBOZXcgbWV0aG9kLiAgQ29udGFpbnMgbG9naWMgbW92ZWQgZnJvbSBzdWJj
bGFzcyBpbXBsZW1lbnRhdGlvbnMgb2YgcmVuZGVyZXJJc05lZWRlZCgpLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtU2tp
YTo6c2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydCk6IE92ZXJyaWRlIHRvIGFsd2F5cyByZW5k
ZXIgbXV0ZSBidXR0b24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1T
a2lhLmg6CisKIDIwMDktMDktMjIgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgSm9obiBTdWxsaXZhbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAppbmRleCA5Njk3MTZmLi4yOWUyZTU3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC0xMzUsNyArMTM1LDEwIEBAIFBh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+IE1lZGlhQ29udHJvbEVsZW1lbnQ6OnN0eWxlRm9yRWxlbWVu
dCgpCiAKIGJvb2wgTWVkaWFDb250cm9sRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJT
dHlsZSogc3R5bGUpCiB7Ci0gICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKHN0eWxlKSAmJiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+cmVuZGVyZXIoKTsKKyAgICBBU1NF
UlQoZG9jdW1lbnQoKS0+cGFnZSgpKTsKKworICAgIHJldHVybiBIVE1MRGl2RWxlbWVudDo6cmVu
ZGVyZXJJc05lZWRlZChzdHlsZSkgJiYgcGFyZW50KCkgJiYgcGFyZW50KCktPnJlbmRlcmVyKCkK
KyAgICAgICAgJiYgZG9jdW1lbnQoKS0+cGFnZSgpLT50aGVtZSgpLT5zaG91bGRSZW5kZXJNZWRp
YUNvbnRyb2xQYXJ0KHN0eWxlLT5hcHBlYXJhbmNlKCksIG1fbWVkaWFFbGVtZW50KTsKIH0KICAg
ICAKIHZvaWQgTWVkaWFDb250cm9sRWxlbWVudDo6YXR0YWNoKCkKQEAgLTM2MCw3ICszNjMsMTAg
QEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpzdHls
ZUZvckVsZW1lbnQoKQogCiBib29sIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6cmVuZGVyZXJJ
c05lZWRlZChSZW5kZXJTdHlsZSogc3R5bGUpCiB7Ci0gICAgcmV0dXJuIEhUTUxJbnB1dEVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpICYmIHBhcmVudCgpICYmIHBhcmVudCgpLT5yZW5k
ZXJlcigpOworICAgIEFTU0VSVChkb2N1bWVudCgpLT5wYWdlKCkpOworCisgICAgcmV0dXJuIEhU
TUxJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpICYmIHBhcmVudCgpICYmIHBh
cmVudCgpLT5yZW5kZXJlcigpCisgICAgICAgICYmIGRvY3VtZW50KCktPnBhZ2UoKS0+dGhlbWUo
KS0+c2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydChzdHlsZS0+YXBwZWFyYW5jZSgpLCBtX21l
ZGlhRWxlbWVudCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjphdHRhY2go
KQpAQCAtNDQ0LDE2ICs0NTAsNiBAQCB2b2lkIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50
Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCiAgICAgc2V0RGlzcGxheVR5cGUobV9tZWRpYUVsZW1lbnQt
Pm11dGVkKCkgPyBNZWRpYVVuTXV0ZUJ1dHRvbiA6IE1lZGlhTXV0ZUJ1dHRvbik7CiB9CiAKLWJv
b2wgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ6OmRpc2FibGVkKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gIW1fbWVkaWFFbGVtZW50LT5oYXNBdWRpbygpOwotfQotCi1ib29sIE1lZGlhQ29u
dHJvbE11dGVCdXR0b25FbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKiBzdHls
ZSkKLXsKLSAgICByZXR1cm4gTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpyZW5kZXJlcklzTmVl
ZGVkKHN0eWxlKSAmJiAhZGlzYWJsZWQoKTsKLX0KLQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCiBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUGxh
eUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MTWVkaWFFbGVtZW50KiBlbGVt
ZW50KQpAQCAtNTUxLDExICs1NDcsNiBAQCB2b2lkIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIEhUTUxJbnB1dEVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQogCi1ib29sIE1lZGlhQ29udHJv
bFJld2luZEJ1dHRvbkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxl
KQotewotICAgIHJldHVybiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQoc3R5bGUpICYmIG1fbWVkaWFFbGVtZW50LT5tb3ZpZUxvYWRUeXBlKCkgIT0gTWVkaWFQbGF5
ZXI6OkxpdmVTdHJlYW07Ci19Ci0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CkBAIC01NzMsMTAgKzU2NCw2IEBAIHZvaWQgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1
dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50CiAgICAgSFRNTElu
cHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKLWJvb2wgTWVkaWFD
b250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVu
ZGVyU3R5bGUqIHN0eWxlKQotewotICAgIHJldHVybiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpICYmIG1fbWVkaWFFbGVtZW50LT5tb3ZpZUxvYWRUeXBl
KCkgPT0gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07Ci19CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIApAQCAtNjY0LDExICs2NTEsNiBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAg
ICBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotYm9v
bCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChS
ZW5kZXJTdHlsZSogc3R5bGUpCi17Ci0gICAgcmV0dXJuIE1lZGlhQ29udHJvbElucHV0RWxlbWVu
dDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSkgJiYgbV9tZWRpYUVsZW1lbnQtPnN1cHBvcnRzRnVs
bHNjcmVlbigpOwotfQotCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1dlYkNv
cmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggZTgwZjdmYS4uZjY5MjQ4
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC0xNTUsOSAr
MTU1LDYgQEAgcHVibGljOgogICAgIGJvb2wgaGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9p
bnQpOwogICAgIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9kaXNwbGF5VHlwZTsgfQogCi0gICAgLy8gU29tZSBlbGVtZW50cyBhcmUgZGlzYWJs
ZWQgYnkgbW92aWUgc3RhdGUgKGVnLiBtdXRlIGlmIG5vIGF1ZGlvKS4KLSAgICB2aXJ0dWFsIGJv
b2wgZGlzYWJsZWQoKSBjb25zdCAgeyByZXR1cm4gZmFsc2U7IH0KLQogICAgIEhUTUxNZWRpYUVs
ZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50OyB9CiAg
ICAgdmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KIApAQCAtMTc3LDggKzE3NCw2IEBAIHB1YmxpYzoKICAgICBNZWRpYUNvbnRyb2xNdXRl
QnV0dG9uRWxlbWVudChEb2N1bWVudCosIEhUTUxNZWRpYUVsZW1lbnQqKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVEaXNwbGF5VHlwZSgpOwotICAgIHZpcnR1YWwgYm9vbCBkaXNhYmxlZCgpIGNvbnN0OwotICAg
IHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKik7CiB9OwogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTIsNyArMjA3LDYgQEAgY2xhc3MgTWVk
aWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVs
ZW1lbnQgewogcHVibGljOgogICAgIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9j
dW1lbnQqLCBIVE1MTWVkaWFFbGVtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqKTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5k
ZXJTdHlsZSopOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjIx
LDcgKzIxNSw2IEBAIGNsYXNzIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVt
ZW50IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVuCiBwdWJsaWM6CiAgICAgTWVkaWFD
b250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqLCBIVE1MTWVkaWFF
bGVtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsK
LSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopOwogfTsgICAg
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0Nyw3ICsyNDAsNiBAQCBj
bGFzcyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNv
bnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgogICAgIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5C
dXR0b25FbGVtZW50KERvY3VtZW50KiwgSFRNTE1lZGlhRWxlbWVudCopOwogICAgIHZpcnR1YWwg
dm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7Ci0gICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCA3YjRkZmUzLi5iNTgyNmNk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgpAQCAtMzk2LDYgKzM5NywyMyBAQCBib29sIFJlbmRlclRoZW1lOjpoaXRUZXN0
TWVkaWFDb250cm9sUGFydChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IEludFBvaW50JiBhYnNQbwog
ICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IG8tPmFic29sdXRlVG9Mb2NhbChhYnNQb2ludCwg
ZmFsc2UsIHRydWUpOyAgLy8gcmVzcGVjdCB0cmFuc2Zvcm1zCiAgICAgcmV0dXJuIHRvUmVuZGVy
Qm94KG8pLT5ib3JkZXJCb3hSZWN0KCkuY29udGFpbnMocm91bmRlZEludFBvaW50KGxvY2FsUG9p
bnQpKTsKIH0KKworYm9vbCBSZW5kZXJUaGVtZTo6c2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFy
dChDb250cm9sUGFydCBwYXJ0LCBFbGVtZW50KiBlKQoreworICAgIEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihlKTsKKyAgICBz
d2l0Y2ggKHBhcnQpIHsKKyAgICBjYXNlIE1lZGlhTXV0ZUJ1dHRvblBhcnQ6CisgICAgICAgIHJl
dHVybiBtZWRpYUVsZW1lbnQtPmhhc0F1ZGlvKCk7CisgICAgY2FzZSBNZWRpYVJld2luZEJ1dHRv
blBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYUVsZW1lbnQtPm1vdmllTG9hZFR5cGUoKSAhPSBN
ZWRpYVBsYXllcjo6TGl2ZVN0cmVhbTsKKyAgICBjYXNlIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1
dHRvblBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYUVsZW1lbnQtPm1vdmllTG9hZFR5cGUoKSA9
PSBNZWRpYVBsYXllcjo6TGl2ZVN0cmVhbTsKKyAgICBjYXNlIE1lZGlhRnVsbHNjcmVlbkJ1dHRv
blBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYUVsZW1lbnQtPnN1cHBvcnRzRnVsbHNjcmVlbigp
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KICNlbmRpZgog
CiBDb2xvciBSZW5kZXJUaGVtZTo6YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IGMwMGMyZWIuLjFiNmE3ZTQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuaApAQCAtMTcyLDYgKzE3Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
VklERU8pCiAgICAgLy8gTWVkaWEgY29udHJvbHMKICAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdE1l
ZGlhQ29udHJvbFBhcnQoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50UG9pbnQmIGFic1BvaW50KTsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVuZGVyTWVkaWFDb250cm9sUGFydChDb250cm9sUGFy
dCwgRWxlbWVudCopOwogI2VuZGlmCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAppbmRleCA4MmU2MzNiLi40ZjQ4NmQ1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKKysr
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCkBAIC04Njgs
NiArODY4LDE5IEBAIGludCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6YnV0dG9uSW50ZXJuYWxQ
YWRkaW5nQm90dG9tKCkgY29uc3QKICAgICByZXR1cm4gMTsKIH0KIAorI2lmIEVOQUJMRShWSURF
TykKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnNob3VsZFJlbmRlck1lZGlhQ29udHJv
bFBhcnQoQ29udHJvbFBhcnQgcGFydCwgRWxlbWVudCogZSkKK3sKKyAgICBIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4oZSk7Cisg
ICAgc3dpdGNoIChwYXJ0KSB7CisgICAgY2FzZSBNZWRpYU11dGVCdXR0b25QYXJ0OgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6
OnNob3VsZFJlbmRlck1lZGlhQ29udHJvbFBhcnQocGFydCwgZSk7CisgICAgfQorfQorI2VuZGlm
CisKIC8vIHN0YXRpYwogdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6c2V0RGVmYXVsdEZv
bnRTaXplKGludCBmb250U2l6ZSkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtU2tpYS5oCmluZGV4IDM3ZTY1NmYuLjk4ZTNhMzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaApAQCAtMTI2LDYgKzEyNiwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgaW50IGJ1dHRvbkludGVybmFsUGFkZGluZ1Rv
cCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGludCBidXR0b25JbnRlcm5hbFBhZGRpbmdCb3R0
b20oKSBjb25zdDsKIAorI2lmIEVOQUJMRShWSURFTykKKyAgICAgICAgLy8gTWVkaWEgY29udHJv
bHMKKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFJlbmRlck1lZGlhQ29udHJvbFBhcnQoQ29u
dHJvbFBhcnQsIEVsZW1lbnQqKTsKKyNlbmRpZgorCiAgICAgICAgIC8vIFByb3ZpZGUgYSB3YXkg
dG8gcGFzcyB0aGUgZGVmYXVsdCBmb250IHNpemUgZnJvbSB0aGUgU2V0dGluZ3Mgb2JqZWN0CiAg
ICAgICAgIC8vIHRvIHRoZSByZW5kZXIgdGhlbWUuICBGSVhNRTogaHR0cDovL2IvMTEyOTE4NiBB
IGNsZWFuZXIgd2F5IHdvdWxkIGJlCiAgICAgICAgIC8vIHRvIHJlbW92ZSB0aGUgZGVmYXVsdCBm
b250IHNpemUgZnJvbSB0aGlzIG9iamVjdCBhbmQgaGF2ZSBjYWxsZXJzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>