<?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>24733</bug_id>
          
          <creation_ts>2009-03-20 19:25:03 -0700</creation_ts>
          <short_desc>Video controller doesn&apos;t respond to clicks after full-page-zoom</short_desc>
          <delta_ts>2009-03-23 13:40:18 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>114620</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-20 19:25:03 -0700</bug_when>
    <thetext>After zooming in, the built-in video controller doesn&apos;t respond to clicks any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114621</commentid>
    <comment_count>1</comment_count>
      <attachid>28816</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-20 20:00:59 -0700</bug_when>
    <thetext>Created attachment 28816
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114629</commentid>
    <comment_count>2</comment_count>
      <attachid>28818</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-20 22:44:27 -0700</bug_when>
    <thetext>Created attachment 28818
Patch, changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114645</commentid>
    <comment_count>3</comment_count>
      <attachid>28818</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-21 07:23:30 -0700</bug_when>
    <thetext>Comment on attachment 28818
Patch, changelog

Great solution!

I’m not a big fan of the word “actual” here in the name of the new function, but I don’t have a better suggestion. I also don’t think “page” was great naming either, but that came straight from the DOM specification. The idea here is that it’s the point in the document’s view’s coordinate system, I think. Maybe that could lead to a better name?

I think Node::dispatchWheelEvent needs the code to handle this properly for wheel events. I don’t see anything in there dealing with zoom factor though, so I’m concerned it might already be wrong.

I think the code in MouseEvent::computePageLocation should be in MouseRelatedEvent, not MouseEvent.

&gt; +    Frame* frame = view()-&gt;frame();
&gt; +    if (frame) {
&gt; +        float zoomFactor = frame-&gt;pageZoomFactor();
&gt; +        setActualPageLocation(roundedIntPoint(FloatPoint(pageX() * zoomFactor, pageY() * zoomFactor)));
&gt; +    }

Is it really OK to leave the page location as 0,0 if there’s no frame? Maybe it should instead act as if the zoom factor is 1 in that case instead of leaving it 0,0. I also think initCoordinates should set it to the same value it sets m_pageX and m_pageY to.

&gt; +        // Page point in pixels, independent of zoom factor. c.f. pageX, pageY.

I don’t think “in pixels” is helpful in this comment.

&gt; +    int adjustedPageX = pageX, adjustedPageY = pageY;

We normally don’t define two variables on a single line, even in a simple case like this one.

&gt; +        if (evt-&gt;isMouseEvent() &amp;&amp; evt-&gt;type() == eventNames().mousedownEvent &amp;&amp; static_cast&lt;MouseEvent*&gt;(evt)-&gt;button() == LeftButton)
&gt; +            slider-&gt;handleLeftMouseDownEvent(static_cast&lt;MouseEvent*&gt;(evt));

When I was doing some cleanup of slider in my own patch, one I probably won’t land at this time, I moved this code into RenderSlider’s forwardEvent function, because I think this qualifies as forwarding just as much as the mechanical forwarding. You should consider doing that rather than adding a new function.

&gt; -    IntPoint point = IntPoint(mouseEvent-&gt;pageX(), mouseEvent-&gt;pageY());
&gt; -    HitTestResult result(point);
&gt; +    HitTestResult result(mouseEvent-&gt;actualPageLocation());
&gt;  
&gt; -    if (Frame* frame = event-&gt;target()-&gt;toNode()-&gt;document()-&gt;frame()) {
&gt; -        float zoomFactor = frame-&gt;pageZoomFactor();
&gt; -        point.setX(static_cast&lt;int&gt;(point.x() * zoomFactor));
&gt; -        point.setY(static_cast&lt;int&gt;(point.y() * zoomFactor));
&gt; -        result = frame-&gt;eventHandler()-&gt;hitTestResultAtPoint(point, false);
&gt; -    }
&gt; +    if (Frame* frame = event-&gt;target()-&gt;toNode()-&gt;document()-&gt;frame())
&gt; +        result = frame-&gt;eventHandler()-&gt;hitTestResultAtPoint(mouseEvent-&gt;actualPageLocation(), false);

I think this is going to have an unwanted behavior change in the frame == 0 case so you should consider my suggestion above.

There are enough things that could be improved here that I’ll say review- for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114665</commentid>
    <comment_count>4</comment_count>
      <attachid>28825</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-21 15:09:49 -0700</bug_when>
    <thetext>Created attachment 28825
Revised patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114670</commentid>
    <comment_count>5</comment_count>
      <attachid>28825</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-21 18:36:57 -0700</bug_when>
    <thetext>Comment on attachment 28825
Revised patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114709</commentid>
    <comment_count>6</comment_count>
      <attachid>28825</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-22 11:03:07 -0700</bug_when>
    <thetext>Comment on attachment 28825
Revised patch

Patch landed in http://trac.webkit.org/changeset/41899

There&apos;s more to do on the video controls shadow content, so keeping bug open.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114734</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-22 19:54:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/6706994&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114826</commentid>
    <comment_count>8</comment_count>
      <attachid>28861</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-23 12:25:58 -0700</bug_when>
    <thetext>Created attachment 28861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114839</commentid>
    <comment_count>9</comment_count>
      <attachid>28864</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-23 13:32:18 -0700</bug_when>
    <thetext>Created attachment 28864
Patch with testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114840</commentid>
    <comment_count>10</comment_count>
      <attachid>28864</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2009-03-23 13:36:45 -0700</bug_when>
    <thetext>Comment on attachment 28864
Patch with testcase

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114842</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-23 13:40:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/41918</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28816</attachid>
            <date>2009-03-20 20:00:59 -0700</date>
            <delta_ts>2009-03-20 20:00:59 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>video_test.html</filename>
            <type>text/html</type>
            <size>356</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIKICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cgo8aHRtbCBs
YW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KICA8dGl0bGU+VmlkZW8gU2FtcGxlPC90aXRs
ZT4KPC9oZWFkPgo8Ym9keT4KCjx2aWRlbyBzcmM9Imh0dHA6Ly9wZW9wbGUuc2MuZnN1LmVkdS9+
YnVya2FyZHQvZGF0YS9tb3YvY3Z0X21vdmllX3AwOC5tb3YiIGNvbnRyb2xzPjwvdmlkZW8+Cjwv
Ym9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28818</attachid>
            <date>2009-03-20 22:44:27 -0700</date>
            <delta_ts>2009-03-21 15:09:49 -0700</delta_ts>
            <desc>Patch, changelog</desc>
            <filename>24733_patch.txt</filename>
            <type>text/plain</type>
            <size>17945</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDIxZjAwNy4uNzAzODljNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NiBAQAorMjAwOS0wMy0yMCAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjQ3MzMKKyAgICAgICAgCisgICAgICAgIEZpeCBoaXQgdGVzdGluZyBvbiB2aWRlbyBjb250
cm9scyBhZnRlciBmdWxsIHBhZ2Ugem9vbSBieSBmaXhpbmcgd2lkZXIgaXNzdWUKKyAgICAgICAg
d2l0aCBldmVudC0+cGFnZVgoKSwgcGFnZVkoKSB3aXRoIHpvb21pbmcuIHBhZ2VYIGFuZCBwYWdl
WSBhcmUgImZpeGVkIiB0byBiZQorICAgICAgICBpbnZhcmlhbnQgdW5kZXIgem9vbWluZyAoZm9y
IEphdmFTY3JpcHQpLCBzbyB3ZSBrZWVwIGFuIGFjdHVhbCBwYWdlIHBvaW50IGFyb3VuZAorICAg
ICAgICBpbiBNb3VzZUV2ZW50OjphY3R1YWxQYWdlTG9jYXRpb24oKSB0byBhdm9pZCB0aGUgbmVl
ZCB0byBmYWN0b3IgaW4gem9vbWluZyBldmVyeXdoZXJlLgorCisgICAgICAgICogZG9tL01vdXNl
RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6TW91c2VFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpNb3VzZUV2ZW50Ojpjb21wdXRlUGFnZUxvY2F0aW9uKToKKyAgICAgICAgKiBkb20v
TW91c2VFdmVudC5oOgorICAgICAgICBOZXcgbWV0aG9kLCBjb21wdXRlUGFnZUxvY2F0aW9uKCks
IHRvIGNvbXB1dGUgdGhlIGFjdHVhbCBwYWdlIHBvaW50LAorICAgICAgICBhbmQgY2FsbCBpdCB3
aGVuIGNyZWF0aW5nIGFuZCBpbml0dGluZyBtb3VzZSBldmVudHMuCisKKyAgICAgICAgKFdlYkNv
cmU6Ok1vdXNlRXZlbnQ6OmFjdHVhbFBhZ2VMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpN
b3VzZUV2ZW50OjpzZXRBY3R1YWxQYWdlTG9jYXRpb24pOgorICAgICAgICAqIGRvbS9Nb3VzZVJl
bGF0ZWRFdmVudC5oOgorICAgICAgICBNZW1iZXIgdmFyLCBhbmQgZ2V0dGVyIGFuZCBzZXR0ZXIg
Zm9yIGFjdHVhbFBhZ2VMb2NhdGlvbi4KKyAgICAgICAgCisgICAgICAgICogZG9tL05vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hNb3VzZUV2ZW50KToKKyAgICAgICAg
S2VlcCBub24tYWRqdXN0ZWQgcGFnZVggYW5kIHBhZ2VZIGFyb3VuZCwgYW5kIGNhbGwgc2V0QWN0
dWFsUGFnZUxvY2F0aW9uKCkKKyAgICAgICAgb24gdGhlIGV2ZW50IHRvIHJlcGxhY2UgYSBwb3Rl
bnRpYWxseSByb3VuZGVkIHBvaW50LgorICAgICAgICAKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcik6CisgICAgICAgIENsZWFuIHVwIHNsaWRlciBoYW5kbGluZyBjb2RlLgor
ICAgICAgICAKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2ZW50SGFuZGxlcik6
CisgICAgICAgIEFkZCBGSVhNRSBjb21tZW50IGZvciB1c2Ugb2Ygb2Zmc2V0WC9vZmZzZXRZLgor
ICAgICAgICAKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZl
bnQpOgorICAgICAgICBVc2UgYWN0dWFsUGFnZUxvY2F0aW9uKCkgd2hlbiBoaXQgdGVzdGluZyBm
b3IgY29udGV4dCBtZW51cy4KKyAgICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZy
YW1lU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZyYW1lU2V0Ojp1c2VyUmVzaXpl
KToKKyAgICAgICAgVXNlIGFjdHVhbFBhZ2VMb2NhdGlvbigpIHdoZW4gcmVzaXppbmcgZnJhbWVz
LgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OmZvcndhcmRFdmVudCk6CisgICAgICAgIFVzZSBhY3R1
YWxQYWdlTG9jYXRpb24oKSB3aGVuIGhpdCB0ZXN0aW5nIG1lZGlhIGNvbnRyb2xzLgorCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNsaWRlcjo6bW91c2VFdmVudElzSW5UaHVtYik6CisgICAgICAgIFVzZSBhY3R1
YWxQYWdlTG9jYXRpb24oKSB3aGVuIGhhbmRsaW5nIHNsaWRlciBldmVudHMuCisgICAgICAgIAor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpoYW5kbGVMZWZ0TW91c2VEb3duRXZlbnQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuaDoKKyAgICAgICAgTmV3IG1ldGhv
ZCB0byBmYWN0b3Igc29tZSBjb2RlIG91dCBvZiBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKCkuCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjpmb3J3YXJkRXZlbnQpOgorICAgICAgICBVc2UgYWN0dWFsUGFnZUxvY2F0aW9u
KCkgd2hlbiBoaXQgdGVzdGluZyBzZWFyY2ggZmllbGQgYnV0dG9ucywgd2hpY2ggZml4ZWVzCisg
ICAgICAgIGJ1Z3MgaW4gdGhlIHNlYXJjaCBmaWVsZCB3aXRoIHpvb21pbmcuCisKIDIwMDktMDMt
MjAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9X
ZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAppbmRleCBiZGQzOWQzLi5hZGVmZWRiIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKIAogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQ1LDYgKzQ2LDcgQEAgTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2UKICAgICAs
IG1fcmVsYXRlZFRhcmdldChyZWxhdGVkVGFyZ2V0KQogICAgICwgbV9jbGlwYm9hcmQoY2xpcGJv
YXJkKQogeworICAgIGNvbXB1dGVQYWdlTG9jYXRpb24oKTsKIH0KIAogTW91c2VFdmVudDo6fk1v
dXNlRXZlbnQoKQpAQCAtNzIsMTEgKzc0LDI0IEBAIHZvaWQgTW91c2VFdmVudDo6aW5pdE1vdXNl
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjCiAg
ICAgbV9yZWxhdGVkVGFyZ2V0ID0gcmVsYXRlZFRhcmdldDsKIAogICAgIGluaXRDb29yZGluYXRl
cyhjbGllbnRYLCBjbGllbnRZKTsKKyAgICBjb21wdXRlUGFnZUxvY2F0aW9uKCk7CiAKICAgICAv
LyBGSVhNRTogbV9pc1NpbXVsYXRlZCBpcyBub3Qgc2V0IHRvIGZhbHNlIGhlcmUuCiAgICAgLy8g
RklYTUU6IG1fY2xpcGJvYXJkIGlzIG5vdCBzZXQgdG8gMCBoZXJlLgogfQogCit2b2lkIE1vdXNl
RXZlbnQ6OmNvbXB1dGVQYWdlTG9jYXRpb24oKQoreworICAgIGlmICghdmlldygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBGcmFtZSogZnJhbWUgPSB2aWV3KCktPmZyYW1lKCk7CisgICAgaWYg
KGZyYW1lKSB7CisgICAgICAgIGZsb2F0IHpvb21GYWN0b3IgPSBmcmFtZS0+cGFnZVpvb21GYWN0
b3IoKTsKKyAgICAgICAgc2V0QWN0dWFsUGFnZUxvY2F0aW9uKHJvdW5kZWRJbnRQb2ludChGbG9h
dFBvaW50KHBhZ2VYKCkgKiB6b29tRmFjdG9yLCBwYWdlWSgpICogem9vbUZhY3RvcikpKTsKKyAg
ICB9Cit9CisKIGJvb2wgTW91c2VFdmVudDo6aXNNb3VzZUV2ZW50KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaCBiL1dlYkNv
cmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCA3NDU0YjA0Li5kYjFlNTk3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKKysrIGIvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBA
IC02OCw2ICs2OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0RyYWdFdmVudCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGludCB3aGljaCgpIGNvbnN0
OwogCisgICAgICAgIC8vIFBhZ2UgcG9pbnQgaW4gcGl4ZWxzLCBpbmRlcGVuZGVudCBvZiB6b29t
IGZhY3Rvci4gYy5mLiBwYWdlWCwgcGFnZVkuCisgICAgICAgIEludFBvaW50IGFjdHVhbFBhZ2VM
b2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWN0dWFsUGFnZUxvY2F0aW9uOyB9CisgICAgICAg
IHZvaWQgc2V0QWN0dWFsUGFnZUxvY2F0aW9uKGNvbnN0IEludFBvaW50JiBwKSB7IG1fYWN0dWFs
UGFnZUxvY2F0aW9uID0gcDsgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgTW91c2VFdmVudCgp
OwogICAgICAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LApAQCAtNzUs
MTAgKzc5LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2ln
bmVkIHNob3J0IGJ1dHRvbiwKICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPEV2ZW50VGFy
Z2V0PiByZWxhdGVkVGFyZ2V0LCBQYXNzUmVmUHRyPENsaXBib2FyZD4gY2xpcGJvYXJkLCBib29s
IGlzU2ltdWxhdGVkKTsKIAorICAgICAgICB2b2lkIGNvbXB1dGVQYWdlTG9jYXRpb24oKTsKKyAg
ICAgICAgCiAgICAgICAgIHVuc2lnbmVkIHNob3J0IG1fYnV0dG9uOwogICAgICAgICBib29sIG1f
YnV0dG9uRG93bjsKICAgICAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3JlbGF0ZWRUYXJnZXQ7
CiAgICAgICAgIFJlZlB0cjxDbGlwYm9hcmQ+IG1fY2xpcGJvYXJkOworICAgICAgICBJbnRQb2lu
dCBtX2FjdHVhbFBhZ2VMb2NhdGlvbjsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oIGIvV2ViQ29yZS9k
b20vTW91c2VSZWxhdGVkRXZlbnQuaAppbmRleCAzNWM2NWRkLi44NTIzMWVlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBiL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmgKQEAgLTMzLDYgKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IC8vIEludGVybmFsIG9ubHk6IEhlbHBlciBjbGFzcyBmb3Igd2hhdCdzIGNvbW1vbiBiZXR3ZWVu
IG1vdXNlIGFuZCB3aGVlbCBldmVudHMuCiAgICAgY2xhc3MgTW91c2VSZWxhdGVkRXZlbnQgOiBw
dWJsaWMgVUlFdmVudFdpdGhLZXlTdGF0ZSB7CiAgICAgcHVibGljOgorICAgICAgICAvLyBOb3Rl
IHRoYXQgdGhlc2UgdmFsdWVzIGFyZSBpbW11bmUgdG8gdGhlIGVmZmVjdHMgb2YgZnVsbC1wYWdl
IHpvb20sIHNvLCB3aGVuIHpvb21lZCwKKyAgICAgICAgLy8gdGhleSBubyBsb25nZXIgcmVwcmVz
ZW50IGFjdHVhbCBwaXhlbCBvZmZzZXRzLgogICAgICAgICBpbnQgc2NyZWVuWCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2NyZWVuWDsgfQogICAgICAgICBpbnQgc2NyZWVuWSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2NyZWVuWTsgfQogICAgICAgICBpbnQgY2xpZW50WCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xp
ZW50WDsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9XZWJDb3JlL2RvbS9O
b2RlLmNwcAppbmRleCAzYTI5ZjNjLi5mOTNlMzhlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjY1MiwyMSArMjY1MiwyMyBA
QCBib29sIE5vZGU6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgaW50IGJ1dHRvbiwgaW50IGRldAogICAgIC8vIEF0dGVtcHRpbmcgdG8gZGlzcGF0Y2gg
d2l0aCBhIG5vbi1FdmVudFRhcmdldCByZWxhdGVkVGFyZ2V0IGNhdXNlcyB0aGUgcmVsYXRlZFRh
cmdldCB0byBiZSBzaWxlbnRseSBpZ25vcmVkLgogICAgIFJlZlB0cjxOb2RlPiByZWxhdGVkVGFy
Z2V0ID0gcmVsYXRlZFRhcmdldEFyZzsKIAorICAgIGludCBhZGp1c3RlZFBhZ2VYID0gcGFnZVgs
IGFkanVzdGVkUGFnZVkgPSBwYWdlWTsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQo
KS0+ZnJhbWUoKSkgewogICAgICAgICBmbG9hdCBwYWdlWm9vbSA9IGZyYW1lLT5wYWdlWm9vbUZh
Y3RvcigpOwogICAgICAgICBpZiAocGFnZVpvb20gIT0gMS4wZikgewogICAgICAgICAgICAgLy8g
QWRqdXN0IG91ciBwYWdlWCBhbmQgcGFnZVkgdG8gYWNjb3VudCBmb3IgdGhlIHBhZ2Ugem9vbS4K
LSAgICAgICAgICAgIHBhZ2VYID0gbHJvdW5kZihwYWdlWCAvIHBhZ2Vab29tKTsKLSAgICAgICAg
ICAgIHBhZ2VZID0gbHJvdW5kZihwYWdlWSAvIHBhZ2Vab29tKTsKKyAgICAgICAgICAgIGFkanVz
dGVkUGFnZVggPSBscm91bmRmKHBhZ2VYIC8gcGFnZVpvb20pOworICAgICAgICAgICAgYWRqdXN0
ZWRQYWdlWSA9IGxyb3VuZGYocGFnZVkgLyBwYWdlWm9vbSk7CiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBSZWZQdHI8RXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRU
eXBlLAorICAgIFJlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3Jl
YXRlKGV2ZW50VHlwZSwKICAgICAgICAgdHJ1ZSwgY2FuY2VsYWJsZSwgZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSwKLSAgICAgICAgZGV0YWlsLCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFn
ZVksCisgICAgICAgIGRldGFpbCwgc2NyZWVuWCwgc2NyZWVuWSwgYWRqdXN0ZWRQYWdlWCwgYWRq
dXN0ZWRQYWdlWSwKICAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSwg
YnV0dG9uLAogICAgICAgICByZWxhdGVkVGFyZ2V0LCAwLCBpc1NpbXVsYXRlZCk7CiAgICAgbW91
c2VFdmVudC0+c2V0VW5kZXJseWluZ0V2ZW50KHVuZGVybHlpbmdFdmVudC5nZXQoKSk7CisgICAg
bW91c2VFdmVudC0+c2V0QWN0dWFsUGFnZUxvY2F0aW9uKEludFBvaW50KHBhZ2VYLCBwYWdlWSkp
OwogICAgIAogICAgIGRpc3BhdGNoRXZlbnQobW91c2VFdmVudCwgZWMpOwogICAgIGJvb2wgZGVm
YXVsdEhhbmRsZWQgPSBtb3VzZUV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCmluZGV4IDE1MzU2ODcuLjhkNzhmZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKQEAgLTExMDAsNiArMTEwMCw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZ0KQogICAgICAgICAgICAgbV95UG9zID0gMDsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3Qgd29yayBj
b3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1zLgorICAgICAgICAgICAgLy8gRklYTUU6IHBhZ2VYL3Bh
Z2VZIG5lZWQgYWRqdXN0aW5nIGZvciBwYWdlWm9vbUZhY3RvcigpLiBVc2UgYWN0dWFsUGFnZUxv
Y2F0aW9uKCk/CiAgICAgICAgICAgICBJbnRQb2ludCBhYnNPZmZzZXQgPSByb3VuZGVkSW50UG9p
bnQocmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKCkpOwogICAgICAgICAgICAgbV94UG9zID0g
bWUtPnBhZ2VYKCkgLSBhYnNPZmZzZXQueCgpOwogICAgICAgICAgICAgbV95UG9zID0gbWUtPnBh
Z2VZKCkgLSBhYnNPZmZzZXQueSgpOwpAQCAtMTM0MCwxNSArMTM0MSw5IEBAIHZvaWQgSFRNTElu
cHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZ0KQogCiAgICAgaWYgKGlu
cHV0VHlwZSgpID09IFJBTkdFICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgUmVuZGVyU2xpZGVy
KiBzbGlkZXIgPSBzdGF0aWNfY2FzdDxSZW5kZXJTbGlkZXIqPihyZW5kZXJlcigpKTsKLSAgICAg
ICAgaWYgKGV2dC0+aXNNb3VzZUV2ZW50KCkgJiYgZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
Lm1vdXNlZG93bkV2ZW50ICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldnQpLT5idXR0b24o
KSA9PSBMZWZ0QnV0dG9uKSB7Ci0gICAgICAgICAgICBNb3VzZUV2ZW50KiBtRXZ0ID0gc3RhdGlj
X2Nhc3Q8TW91c2VFdmVudCo+KGV2dCk7Ci0gICAgICAgICAgICBpZiAoIXNsaWRlci0+bW91c2VF
dmVudElzSW5UaHVtYihtRXZ0KSkgewotICAgICAgICAgICAgICAgIEludFBvaW50IGV2ZW50T2Zm
c2V0KG1FdnQtPm9mZnNldFgoKSwgbUV2dC0+b2Zmc2V0WSgpKTsKLSAgICAgICAgICAgICAgICBp
ZiAobUV2dC0+dGFyZ2V0KCkgIT0gdGhpcykgLy8gRG9lcyB0aGlzIGV2ZXIgaGFwcGVuIG5vdz8g
V2FzIG9yaWdpbmFsbHkgYWRkZWQgZm9yIDx2aWRlbz4gY29udHJvbHMuCi0gICAgICAgICAgICAg
ICAgICAgIGV2ZW50T2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRl
VG9Mb2NhbChGbG9hdFBvaW50KG1FdnQtPnBhZ2VYKCksIG1FdnQtPnBhZ2VZKCkpLCBmYWxzZSwg
dHJ1ZSkpOwotICAgICAgICAgICAgICAgIHNsaWRlci0+c2V0VmFsdWVGb3JQb3NpdGlvbihzbGlk
ZXItPnBvc2l0aW9uRm9yT2Zmc2V0KGV2ZW50T2Zmc2V0KSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KKyAgICAgICAgaWYgKGV2dC0+aXNNb3VzZUV2ZW50KCkgJiYgZXZ0LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihl
dnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKQorICAgICAgICAgICAgc2xpZGVyLT5oYW5kbGVM
ZWZ0TW91c2VEb3duRXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2dCkpOworCiAgICAg
ICAgIGlmIChldnQtPmlzTW91c2VFdmVudCgpIHx8IGV2dC0+aXNEcmFnRXZlbnQoKSB8fCBldnQt
PmlzV2hlZWxFdmVudCgpKQogICAgICAgICAgICAgc2xpZGVyLT5mb3J3YXJkRXZlbnQoZXZ0KTsK
ICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCAxNmE2NTYxLi42OGFiYmY4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTY3OCw2ICs2NzgsNyBAQCB2b2lk
IEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZ0
KQogCiAgICAgICAgIC8vIENvbnZlcnQgdG8gY29vcmRzIHJlbGF0aXZlIHRvIHRoZSBsaXN0IGJv
eCBpZiBuZWVkZWQuCiAgICAgICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2Fz
dDxNb3VzZUV2ZW50Kj4oZXZ0KTsKKyAgICAgICAgLy8gRklYTUU6IG5lZWQgdG8gYWRqdXN0IG9m
ZnNldFgvb2Zmc2V0WSBmb3IgZnVsbCBwYWdlIHpvb20KICAgICAgICAgaW50IG9mZnNldFggPSBt
b3VzZUV2ZW50LT5vZmZzZXRYKCk7CiAgICAgICAgIGludCBvZmZzZXRZID0gbW91c2VFdmVudC0+
b2Zmc2V0WSgpOwogICAgICAgICBOb2RlKiB0YXJnZXQgPSBldnQtPnRhcmdldCgpLT50b05vZGUo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggZjdiM2FiOC4uYjcz
ZmNiMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTgzLDE1ICs4
MywxMCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6aGFuZGxlQ29udGV4dE1lbnVFdmVu
dChFdmVudCogZXZlbnQpCiAgICAgaWYgKCFldmVudC0+aXNNb3VzZUV2ZW50KCkpCiAgICAgICAg
IHJldHVybjsKICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VF
dmVudCo+KGV2ZW50KTsKLSAgICBJbnRQb2ludCBwb2ludCA9IEludFBvaW50KG1vdXNlRXZlbnQt
PnBhZ2VYKCksIG1vdXNlRXZlbnQtPnBhZ2VZKCkpOwotICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0
KHBvaW50KTsKKyAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChtb3VzZUV2ZW50LT5hY3R1YWxQYWdl
TG9jYXRpb24oKSk7CiAKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gZXZlbnQtPnRhcmdldCgpLT50
b05vZGUoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewotICAgICAgICBmbG9hdCB6b29tRmFjdG9y
ID0gZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCk7Ci0gICAgICAgIHBvaW50LnNldFgoc3RhdGljX2Nh
c3Q8aW50Pihwb2ludC54KCkgKiB6b29tRmFjdG9yKSk7Ci0gICAgICAgIHBvaW50LnNldFkoc3Rh
dGljX2Nhc3Q8aW50Pihwb2ludC55KCkgKiB6b29tRmFjdG9yKSk7Ci0gICAgICAgIHJlc3VsdCA9
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGl0VGVzdFJlc3VsdEF0UG9pbnQocG9pbnQsIGZhbHNl
KTsKLSAgICB9CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2Rl
KCktPmRvY3VtZW50KCktPmZyYW1lKCkpCisgICAgICAgIHJlc3VsdCA9IGZyYW1lLT5ldmVudEhh
bmRsZXIoKS0+aGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC0+YWN0dWFsUGFnZUxvY2F0
aW9uKCksIGZhbHNlKTsKIAogICAgIGlmICghcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKaW5kZXggZDgz
ODcyNi4uZWEzODgwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVT
ZXQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcApAQCAtNTY1
LDggKzU2NSw4IEBAIGJvb2wgUmVuZGVyRnJhbWVTZXQ6OnVzZXJSZXNpemUoTW91c2VFdmVudCog
ZXZ0KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoZXZ0LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2dC0+YnV0dG9uKCkgPT0gTGVmdEJ1
dHRvbikgewogICAgICAgICAgICAgRmxvYXRQb2ludCBwb3MgPSBsb2NhbFRvQWJzb2x1dGUoKTsK
LSAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9jb2xzLCBldnQtPnBhZ2VYKCkgLSBwb3MueCgp
KTsKLSAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9yb3dzLCBldnQtPnBhZ2VZKCkgLSBwb3Mu
eSgpKTsKKyAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9jb2xzLCBldnQtPmFjdHVhbFBhZ2VM
b2NhdGlvbigpLngoKSAtIHBvcy54KCkpOworICAgICAgICAgICAgc3RhcnRSZXNpemluZyhtX3Jv
d3MsIGV2dC0+YWN0dWFsUGFnZUxvY2F0aW9uKCkueSgpIC0gcG9zLnkoKSk7CiAgICAgICAgICAg
ICBpZiAobV9jb2xzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgIT0gbm9TcGxpdCB8fCBtX3Jvd3MubV9z
cGxpdEJlaW5nUmVzaXplZCAhPSBub1NwbGl0KSB7CiAgICAgICAgICAgICAgICAgc2V0SXNSZXNp
emluZyh0cnVlKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTU3NSw4ICs1NzUs
OCBAQCBib29sIFJlbmRlckZyYW1lU2V0Ojp1c2VyUmVzaXplKE1vdXNlRXZlbnQqIGV2dCkKICAg
ICB9IGVsc2UgewogICAgICAgICBpZiAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNl
bW92ZUV2ZW50IHx8IChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYm
IGV2dC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikpIHsKICAgICAgICAgICAgIEZsb2F0UG9pbnQg
cG9zID0gbG9jYWxUb0Fic29sdXRlKCk7Ci0gICAgICAgICAgICBjb250aW51ZVJlc2l6aW5nKG1f
Y29scywgZXZ0LT5wYWdlWCgpIC0gcG9zLngoKSk7Ci0gICAgICAgICAgICBjb250aW51ZVJlc2l6
aW5nKG1fcm93cywgZXZ0LT5wYWdlWSgpIC0gcG9zLnkoKSk7CisgICAgICAgICAgICBjb250aW51
ZVJlc2l6aW5nKG1fY29scywgZXZ0LT5hY3R1YWxQYWdlTG9jYXRpb24oKS54KCkgLSBwb3MueCgp
KTsKKyAgICAgICAgICAgIGNvbnRpbnVlUmVzaXppbmcobV9yb3dzLCBldnQtPmFjdHVhbFBhZ2VM
b2NhdGlvbigpLnkoKSAtIHBvcy55KCkpOwogICAgICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9u
KSB7CiAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemluZyhmYWxzZSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRp
YS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAKaW5kZXggNDk3OTUyNS4u
MmVkYzA1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcApAQCAtNDAzLDcgKzQwMyw3IEBA
IHZvaWQgUmVuZGVyTWVkaWE6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCiB7CiAgICAgaWYg
KGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBtX2NvbnRyb2xzU2hhZG93Um9vdCkgewogICAgICAg
ICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50
KTsKLSAgICAgICAgSW50UG9pbnQgcG9pbnQobW91c2VFdmVudC0+cGFnZVgoKSwgbW91c2VFdmVu
dC0+cGFnZVkoKSk7CisgICAgICAgIEludFBvaW50IHBvaW50KG1vdXNlRXZlbnQtPmFjdHVhbFBh
Z2VMb2NhdGlvbigpKTsKICAgICAgICAgaWYgKG1fbXV0ZUJ1dHRvbiAmJiBtX211dGVCdXR0b24t
PmhpdFRlc3QocG9pbnQpKQogICAgICAgICAgICAgbV9tdXRlQnV0dG9uLT5kZWZhdWx0RXZlbnRI
YW5kbGVyKGV2ZW50KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xp
ZGVyLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggYzNlZThm
Mi4uNTM4ODM4NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNw
cAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC03OSw4ICs3OSw5
IEBAIHZvaWQgSFRNTFNsaWRlclRodW1iRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCogZXZlbnQpCiAgICAgICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpICYmIHJlbmRlcmVyKCkg
JiYgcmVuZGVyZXIoKS0+cGFyZW50KCkgJiYKICAgICAgICAgICAgICAgICAoc2xpZGVyID0gc3Rh
dGljX2Nhc3Q8UmVuZGVyU2xpZGVyKj4ocmVuZGVyZXIoKS0+cGFyZW50KCkpKSAmJgogICAgICAg
ICAgICAgICAgIHNsaWRlci0+bW91c2VFdmVudElzSW5UaHVtYihtb3VzZUV2ZW50KSkgeworICAg
ICAgICAgICAgCiAgICAgICAgICAgICAvLyBDYWNoZSB0aGUgaW5pdGlhbCBwb2ludCB3aGVyZSB0
aGUgbW91c2UgZG93biBvY2N1cnJlZCwgaW4gc2xpZGVyIGNvb3JkaW5hdGVzCi0gICAgICAgICAg
ICBtX2luaXRpYWxDbGlja1BvaW50ID0gc2xpZGVyLT5hYnNvbHV0ZVRvTG9jYWwoRmxvYXRQb2lu
dChtb3VzZUV2ZW50LT5wYWdlWCgpLCBtb3VzZUV2ZW50LT5wYWdlWSgpKSwgZmFsc2UsIHRydWUp
OworICAgICAgICAgICAgbV9pbml0aWFsQ2xpY2tQb2ludCA9IHNsaWRlci0+YWJzb2x1dGVUb0xv
Y2FsKG1vdXNlRXZlbnQtPmFjdHVhbFBhZ2VMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CiAgICAg
ICAgICAgICAvLyBDYWNoZSB0aGUgaW5pdGlhbCBwb3NpdGlvbiBvZiB0aGUgdGh1bWIuCiAgICAg
ICAgICAgICBtX2luaXRpYWxQb3NpdGlvbiA9IHNsaWRlci0+Y3VycmVudFBvc2l0aW9uKCk7CiAg
ICAgICAgICAgICBtX2luRHJhZ01vZGUgPSB0cnVlOwpAQCAtMTAzLDcgKzEwNCw4IEBAIHZvaWQg
SFRNTFNsaWRlclRodW1iRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQp
CiAgICAgICAgICAgICAvLyBNb3ZlIHRoZSBzbGlkZXIKICAgICAgICAgICAgIE1vdXNlRXZlbnQq
IG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpOwogICAgICAgICAg
ICAgUmVuZGVyU2xpZGVyKiBzbGlkZXIgPSBzdGF0aWNfY2FzdDxSZW5kZXJTbGlkZXIqPihyZW5k
ZXJlcigpLT5wYXJlbnQoKSk7Ci0gICAgICAgICAgICBGbG9hdFBvaW50IGN1clBvaW50ID0gc2xp
ZGVyLT5hYnNvbHV0ZVRvTG9jYWwoRmxvYXRQb2ludChtb3VzZUV2ZW50LT5wYWdlWCgpLCBtb3Vz
ZUV2ZW50LT5wYWdlWSgpKSwgZmFsc2UsIHRydWUpOworCisgICAgICAgICAgICBGbG9hdFBvaW50
IGN1clBvaW50ID0gc2xpZGVyLT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWN0dWFsUGFn
ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKICAgICAgICAgICAgIGludCBuZXdQb3NpdGlvbiA9
IHNsaWRlci0+cG9zaXRpb25Gb3JPZmZzZXQoCiAgICAgICAgICAgICAgICAgSW50UG9pbnQobV9p
bml0aWFsUG9zaXRpb24gKyBjdXJQb2ludC54KCkgLSBtX2luaXRpYWxDbGlja1BvaW50LngoKQog
ICAgICAgICAgICAgICAgICAgICAgICAgKyAocmVuZGVyQm94KCktPndpZHRoKCkgLyAyKSwgCkBA
IC0yNjQsMTUgKzI2NiwyMiBAQCBib29sIFJlbmRlclNsaWRlcjo6bW91c2VFdmVudElzSW5UaHVt
YihNb3VzZUV2ZW50KiBldnQpCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlmIChzdHlsZSgpLT5h
cHBlYXJhbmNlKCkgPT0gTWVkaWFTbGlkZXJQYXJ0KSB7CiAgICAgICAgIE1lZGlhQ29udHJvbElu
cHV0RWxlbWVudCAqc2xpZGVyVGh1bWIgPSBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJbnB1dEVs
ZW1lbnQqPihtX3RodW1iLT5yZW5kZXJlcigpLT5ub2RlKCkpOwotICAgICAgICBJbnRQb2ludCBh
YnNQb2ludChldnQtPnBhZ2VYKCksIGV2dC0+cGFnZVkoKSk7Ci0gICAgICAgIHJldHVybiBzbGlk
ZXJUaHVtYi0+aGl0VGVzdChhYnNQb2ludCk7Ci0gICAgfSBlbHNlIAotI2VuZGlmCi0gICAgewot
ICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBtX3RodW1iLT5yZW5kZXJCb3goKS0+YWJz
b2x1dGVUb0xvY2FsKEZsb2F0UG9pbnQoZXZ0LT5wYWdlWCgpLCBldnQtPnBhZ2VZKCkpLCBmYWxz
ZSwgdHJ1ZSk7Ci0gICAgICAgIEludFJlY3QgdGh1bWJCb3VuZHMgPSBtX3RodW1iLT5yZW5kZXJC
b3goKS0+Ym9yZGVyQm94UmVjdCgpOwotICAgICAgICByZXR1cm4gdGh1bWJCb3VuZHMuY29udGFp
bnMocm91bmRlZEludFBvaW50KGxvY2FsUG9pbnQpKTsKKyAgICAgICAgcmV0dXJuIHNsaWRlclRo
dW1iLT5oaXRUZXN0KGV2dC0+YWN0dWFsUGFnZUxvY2F0aW9uKCkpOwogICAgIH0KKyNlbmRpZgor
CisgICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gbV90aHVtYi0+cmVuZGVyQm94KCktPmFic29s
dXRlVG9Mb2NhbChldnQtPmFjdHVhbFBhZ2VMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CisgICAg
SW50UmVjdCB0aHVtYkJvdW5kcyA9IG1fdGh1bWItPnJlbmRlckJveCgpLT5ib3JkZXJCb3hSZWN0
KCk7CisgICAgcmV0dXJuIHRodW1iQm91bmRzLmNvbnRhaW5zKHJvdW5kZWRJbnRQb2ludChsb2Nh
bFBvaW50KSk7Cit9CisKK3ZvaWQgUmVuZGVyU2xpZGVyOjpoYW5kbGVMZWZ0TW91c2VEb3duRXZl
bnQoTW91c2VFdmVudCogZXZ0KQoreworICAgIGlmIChtb3VzZUV2ZW50SXNJblRodW1iKGV2dCkp
CisgICAgICAgIHJldHVybjsKKworICAgIEludFBvaW50IGV2ZW50T2Zmc2V0ID0gcm91bmRlZElu
dFBvaW50KGFic29sdXRlVG9Mb2NhbChldnQtPmFjdHVhbFBhZ2VMb2NhdGlvbigpLCBmYWxzZSwg
dHJ1ZSkpOworICAgIHNldFZhbHVlRm9yUG9zaXRpb24ocG9zaXRpb25Gb3JPZmZzZXQoZXZlbnRP
ZmZzZXQpKTsKIH0KIAogdm9pZCBSZW5kZXJTbGlkZXI6OnNldFZhbHVlRm9yUG9zaXRpb24oaW50
IHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAppbmRleCAzMjdmMmQxLi5jOWRjOTcw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaApAQCAtNDUsNiArNDUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwogICAg
ICAgICAKICAgICAgICAgdmlydHVhbCBib29sIG1vdXNlRXZlbnRJc0luVGh1bWIoTW91c2VFdmVu
dCopOworICAgICAgICB2b2lkIGhhbmRsZUxlZnRNb3VzZURvd25FdmVudChNb3VzZUV2ZW50Kik7
CiAKICAgICAgICAgdm9pZCBzZXRWYWx1ZUZvclBvc2l0aW9uKGludCBwb3NpdGlvbik7CiAgICAg
ICAgIGRvdWJsZSBzZXRQb3NpdGlvbkZyb21WYWx1ZShib29sIGluTGF5b3V0ID0gZmFsc2UpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAK
aW5kZXggM2M3NmZiMS4uMTI0NTg2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0zMjUsNyArMzI1LDcgQEAgdm9pZCBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBpbm5lclRl
eHRSZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKEZsb2F0UG9pbnQoc3RhdGljX2Nhc3Q8TW91c2VF
dmVudCo+KGV2ZW50KS0+cGFnZVgoKSwgc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+
cGFnZVkoKSksIGZhbHNlLCB0cnVlKTsKKyAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBpbm5l
clRleHRSZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihl
dmVudCktPmFjdHVhbFBhZ2VMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CiAgICAgaWYgKG1fcmVz
dWx0c0J1dHRvbiAmJiBsb2NhbFBvaW50LngoKSA8IGlubmVyVGV4dFJlbmRlcmVyLT5ib3JkZXJC
b3hSZWN0KCkueCgpKQogICAgICAgICBtX3Jlc3VsdHNCdXR0b24tPmRlZmF1bHRFdmVudEhhbmRs
ZXIoZXZlbnQpOwogICAgIGVsc2UgaWYgKG1fY2FuY2VsQnV0dG9uICYmIGxvY2FsUG9pbnQueCgp
ID4gaW5uZXJUZXh0UmVuZGVyZXItPmJvcmRlckJveFJlY3QoKS5yaWdodCgpKQo=
</data>
<flag name="review"
          id="14224"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28825</attachid>
            <date>2009-03-21 15:09:49 -0700</date>
            <delta_ts>2009-03-22 11:03:07 -0700</delta_ts>
            <desc>Revised patch</desc>
            <filename>24733_patch.txt</filename>
            <type>text/plain</type>
            <size>18745</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDIxZjAwNy4uODNiMGU0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MyBAQAorMjAwOS0wMy0yMCAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjQ3MzMKKyAgICAgICAgCisgICAgICAgIEZpeCBoaXQgdGVzdGluZyBvbiB2aWRlbyBjb250
cm9scyBhZnRlciBmdWxsIHBhZ2Ugem9vbSBieSBmaXhpbmcgd2lkZXIgaXNzdWUKKyAgICAgICAg
d2l0aCBldmVudC0+cGFnZVgoKSwgcGFnZVkoKSB3aXRoIHpvb21pbmcuIHBhZ2VYIGFuZCBwYWdl
WSBhcmUgImZpeGVkIiB0byBiZQorICAgICAgICBpbnZhcmlhbnQgdW5kZXIgem9vbWluZyAoZm9y
IEphdmFTY3JpcHQpLCBzbyB3ZSBrZWVwIGFuIGFjdHVhbCBwYWdlIHBvaW50IGFyb3VuZAorICAg
ICAgICBpbiBNb3VzZUV2ZW50OjphYnNvbHV0ZUxvY2F0aW9uKCkgdG8gYXZvaWQgdGhlIG5lZWQg
dG8gZmFjdG9yIGluIHpvb21pbmcgZXZlcnl3aGVyZS4KKworICAgICAgICAqIGRvbS9Nb3VzZVJl
bGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6aW5p
dENvb3JkaW5hdGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50Ojpjb21w
dXRlUGFnZUxvY2F0aW9uKToKKyAgICAgICAgKiBkb20vTW91c2VSZWxhdGVkRXZlbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjphYnNvbHV0ZUxvY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpzZXRBYnNvbHV0ZUxvY2F0aW9uKToK
KyAgICAgICAgTWVtYmVyIHZhciwgYW5kIGdldHRlciBhbmQgc2V0dGVyIGZvciBhYnNvbHV0ZUxv
Y2F0aW9uLgorICAgICAgICBOZXcgbWV0aG9kLCBjb21wdXRlUGFnZUxvY2F0aW9uKCksIHRvIGNv
bXB1dGUgdGhlIGFjdHVhbCBwYWdlIHBvaW50LAorICAgICAgICBhbmQgY2FsbCBpdCB3aGVuIGNy
ZWF0aW5nIGFuZCBpbml0dGluZyBtb3VzZS1yZWxhdGVkIGV2ZW50cy4KKworICAgICAgICAqIGRv
bS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmRpc3BhdGNoTW91c2VFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpkaXNwYXRjaFdoZWVsRXZlbnQpOgorICAgICAgICBL
ZWVwIG5vbi1hZGp1c3RlZCBwYWdlWCBhbmQgcGFnZVkgYXJvdW5kLCBhbmQgY2FsbCBzZXRBYnNv
bHV0ZUxvY2F0aW9uKCkKKyAgICAgICAgb24gdGhlIGV2ZW50IHRvIHJlcGxhY2UgYSBwb3RlbnRp
YWxseSByb3VuZGVkIHBvaW50LgorICAgICAgICAKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6CisgICAgICAgIENsZWFuIHVwIHNsaWRlciBoYW5kbGluZyBjb2RlLgorICAg
ICAgICAKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2ZW50SGFuZGxlcik6Cisg
ICAgICAgIEFkZCBGSVhNRSBjb21tZW50IGZvciB1c2Ugb2Ygb2Zmc2V0WC9vZmZzZXRZLgorICAg
ICAgICAKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQp
OgorICAgICAgICBVc2UgYWJzb2x1dGVMb2NhdGlvbigpIHdoZW4gaGl0IHRlc3RpbmcgZm9yIGNv
bnRleHQgbWVudXMuCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFtZVNl
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZSk6Cisg
ICAgICAgIFVzZSBhYnNvbHV0ZUxvY2F0aW9uKCkgd2hlbiByZXNpemluZyBmcmFtZXMuCisgICAg
ICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJNZWRpYTo6Zm9yd2FyZEV2ZW50KToKKyAgICAgICAgVXNlIGFic29sdXRlTG9j
YXRpb24oKSB3aGVuIGhpdCB0ZXN0aW5nIG1lZGlhIGNvbnRyb2xzLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2xpZGVyVGh1
bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNsaWRlcjo6bW91c2VFdmVudElzSW5UaHVtYik6CisgICAgICAgIFVzZSBhYnNvbHV0ZUxvY2F0
aW9uKCkgd2hlbiBoYW5kbGluZyBzbGlkZXIgZXZlbnRzLgorCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTbGlkZXI6OmZvcndhcmRFdmVudCk6CisgICAgICAgIEZhY3RvciBzb21lIGNvZGUgb3V0
IG9mIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoKS4KKyAgICAgICAgCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmZvcndhcmRFdmVudCk6
CisgICAgICAgIFVzZSBhYnNvbHV0ZUxvY2F0aW9uKCkgd2hlbiBoaXQgdGVzdGluZyBzZWFyY2gg
ZmllbGQgYnV0dG9ucywgd2hpY2ggZml4ZWVzCisgICAgICAgIGJ1Z3MgaW4gdGhlIHNlYXJjaCBm
aWVsZCB3aXRoIHpvb21pbmcuCisKIDIwMDktMDMtMjAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlcgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwIGIvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuY3BwCmluZGV4IDQ5MTZiMGMuLjVmNGJmYWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5jcHAKQEAgLTk3LDYgKzk3LDggQEAgdm9pZCBNb3VzZVJlbGF0ZWRFdmVudDo6aW5pdENv
b3JkaW5hdGVzKCkKICAgICBtX2xheWVyWSA9IG1fcGFnZVk7CiAgICAgbV9vZmZzZXRYID0gbV9w
YWdlWDsKICAgICBtX29mZnNldFkgPSBtX3BhZ2VZOworCisgICAgY29tcHV0ZVBhZ2VMb2NhdGlv
bigpOwogfQogCiB2b2lkIE1vdXNlUmVsYXRlZEV2ZW50Ojppbml0Q29vcmRpbmF0ZXMoaW50IGNs
aWVudFgsIGludCBjbGllbnRZKQpAQCAtMTEyLDYgKzExNCwxNCBAQCB2b2lkIE1vdXNlUmVsYXRl
ZEV2ZW50Ojppbml0Q29vcmRpbmF0ZXMoaW50IGNsaWVudFgsIGludCBjbGllbnRZKQogICAgIG1f
bGF5ZXJZID0gbV9wYWdlWTsKICAgICBtX29mZnNldFggPSBtX3BhZ2VYOwogICAgIG1fb2Zmc2V0
WSA9IG1fcGFnZVk7CisKKyAgICBjb21wdXRlUGFnZUxvY2F0aW9uKCk7Cit9CisKK3ZvaWQgTW91
c2VSZWxhdGVkRXZlbnQ6OmNvbXB1dGVQYWdlTG9jYXRpb24oKQoreworICAgIGZsb2F0IHpvb21G
YWN0b3IgPSAodmlldygpICYmIHZpZXcoKS0+ZnJhbWUoKSkgPyB2aWV3KCktPmZyYW1lKCktPnBh
Z2Vab29tRmFjdG9yKCkgOiAxLjBmOworICAgIHNldEFic29sdXRlTG9jYXRpb24ocm91bmRlZElu
dFBvaW50KEZsb2F0UG9pbnQocGFnZVgoKSAqIHpvb21GYWN0b3IsIHBhZ2VZKCkgKiB6b29tRmFj
dG9yKSkpOwogfQogCiB2b2lkIE1vdXNlUmVsYXRlZEV2ZW50OjpyZWNlaXZlZFRhcmdldCgpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oIGIvV2ViQ29yZS9kb20v
TW91c2VSZWxhdGVkRXZlbnQuaAppbmRleCAzNWM2NWRkLi43NjQ5YWE5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBiL1dlYkNvcmUvZG9tL01vdXNlUmVs
YXRlZEV2ZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgTW91c2VSZWxhdGVkRXZlbnRf
aAogI2RlZmluZSBNb3VzZVJlbGF0ZWRFdmVudF9oCiAKKyNpbmNsdWRlICJJbnRQb2ludC5oIgog
I2luY2x1ZGUgIlVJRXZlbnRXaXRoS2V5U3RhdGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzMsNiArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8gSW50ZXJuYWwgb25s
eTogSGVscGVyIGNsYXNzIGZvciB3aGF0J3MgY29tbW9uIGJldHdlZW4gbW91c2UgYW5kIHdoZWVs
IGV2ZW50cy4KICAgICBjbGFzcyBNb3VzZVJlbGF0ZWRFdmVudCA6IHB1YmxpYyBVSUV2ZW50V2l0
aEtleVN0YXRlIHsKICAgICBwdWJsaWM6CisgICAgICAgIC8vIE5vdGUgdGhhdCB0aGVzZSB2YWx1
ZXMgYXJlIGFkanVzdGVkIHRvIGNvdW50ZXIgdGhlIGVmZmVjdHMgb2Ygem9vbSwgc28gdGhhdCB2
YWx1ZXMKKyAgICAgICAgLy8gZXhwb3NlZCB2aWEgRE9NIEFQSXMgYXJlIGludmFyaWFudCB1bmRl
ciB6b29taW5nLgogICAgICAgICBpbnQgc2NyZWVuWCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVu
WDsgfQogICAgICAgICBpbnQgc2NyZWVuWSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVuWTsgfQog
ICAgICAgICBpbnQgY2xpZW50WCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50WDsgfQpAQCAtNDYs
NiArNDksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGludCBwYWdl
WSgpIGNvbnN0OwogICAgICAgICBpbnQgeCgpIGNvbnN0OwogICAgICAgICBpbnQgeSgpIGNvbnN0
OworCisgICAgICAgIC8vIFBhZ2UgcG9pbnQgaW4gImFic29sdXRlIiBjb29yZGluYXRlcyAoaS5l
LiBwb3N0LXpvb21lZCwgcGFnZS1yZWxhdGl2ZSBjb29yZHMsCisgICAgICAgIC8vIHVzYWJsZSB3
aXRoIFJlbmRlck9iamVjdDo6YWJzb2x1dGVUb0xvY2FsKS4KKyAgICAgICAgSW50UG9pbnQgYWJz
b2x1dGVMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1dGVMb2NhdGlvbjsgfQorICAg
ICAgICB2b2lkIHNldEFic29sdXRlTG9jYXRpb24oY29uc3QgSW50UG9pbnQmIHApIHsgbV9hYnNv
bHV0ZUxvY2F0aW9uID0gcDsgfQogICAgIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgTW91c2VS
ZWxhdGVkRXZlbnQoKTsKQEAgLTU2LDYgKzY0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIGluaXRDb29yZGluYXRlcygpOwogICAgICAgICB2b2lkIGluaXRDb29yZGluYXRl
cyhpbnQgY2xpZW50WCwgaW50IGNsaWVudFkpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2
ZWRUYXJnZXQoKTsKKworICAgICAgICB2b2lkIGNvbXB1dGVQYWdlTG9jYXRpb24oKTsKICAgICAg
ICAgCiAgICAgICAgIC8vIEV4cG9zZSB0aGVzZSBzbyBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVu
dCBjYW4gc2V0IHRoZW0uCiAgICAgICAgIGludCBtX3NjcmVlblg7CkBAIC03MCw2ICs4MCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaW50IG1fbGF5ZXJZOwogICAgICAgICBpbnQg
bV9vZmZzZXRYOwogICAgICAgICBpbnQgbV9vZmZzZXRZOworICAgICAgICBJbnRQb2ludCBtX2Fi
c29sdXRlTG9jYXRpb247CiAgICAgICAgIGJvb2wgbV9pc1NpbXVsYXRlZDsKICAgICB9OwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1dlYkNvcmUvZG9tL05vZGUuY3BwCmlu
ZGV4IDNhMjlmM2MuLjVhMjI3ZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL05vZGUuY3BwCisr
KyBiL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNjUyLDIxICsyNjUyLDI0IEBAIGJvb2wgTm9k
ZTo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBpbnQg
YnV0dG9uLCBpbnQgZGV0CiAgICAgLy8gQXR0ZW1wdGluZyB0byBkaXNwYXRjaCB3aXRoIGEgbm9u
LUV2ZW50VGFyZ2V0IHJlbGF0ZWRUYXJnZXQgY2F1c2VzIHRoZSByZWxhdGVkVGFyZ2V0IHRvIGJl
IHNpbGVudGx5IGlnbm9yZWQuCiAgICAgUmVmUHRyPE5vZGU+IHJlbGF0ZWRUYXJnZXQgPSByZWxh
dGVkVGFyZ2V0QXJnOwogCisgICAgaW50IGFkanVzdGVkUGFnZVggPSBwYWdlWDsKKyAgICBpbnQg
YWRqdXN0ZWRQYWdlWSA9IHBhZ2VZOwogICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgp
LT5mcmFtZSgpKSB7CiAgICAgICAgIGZsb2F0IHBhZ2Vab29tID0gZnJhbWUtPnBhZ2Vab29tRmFj
dG9yKCk7CiAgICAgICAgIGlmIChwYWdlWm9vbSAhPSAxLjBmKSB7CiAgICAgICAgICAgICAvLyBB
ZGp1c3Qgb3VyIHBhZ2VYIGFuZCBwYWdlWSB0byBhY2NvdW50IGZvciB0aGUgcGFnZSB6b29tLgot
ICAgICAgICAgICAgcGFnZVggPSBscm91bmRmKHBhZ2VYIC8gcGFnZVpvb20pOwotICAgICAgICAg
ICAgcGFnZVkgPSBscm91bmRmKHBhZ2VZIC8gcGFnZVpvb20pOworICAgICAgICAgICAgYWRqdXN0
ZWRQYWdlWCA9IGxyb3VuZGYocGFnZVggLyBwYWdlWm9vbSk7CisgICAgICAgICAgICBhZGp1c3Rl
ZFBhZ2VZID0gbHJvdW5kZihwYWdlWSAvIHBhZ2Vab29tKTsKICAgICAgICAgfQogICAgIH0KIAot
ICAgIFJlZlB0cjxFdmVudD4gbW91c2VFdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5
cGUsCisgICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVh
dGUoZXZlbnRUeXBlLAogICAgICAgICB0cnVlLCBjYW5jZWxhYmxlLCBkb2N1bWVudCgpLT5kZWZh
dWx0VmlldygpLAotICAgICAgICBkZXRhaWwsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdl
WSwKKyAgICAgICAgZGV0YWlsLCBzY3JlZW5YLCBzY3JlZW5ZLCBhZGp1c3RlZFBhZ2VYLCBhZGp1
c3RlZFBhZ2VZLAogICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBi
dXR0b24sCiAgICAgICAgIHJlbGF0ZWRUYXJnZXQsIDAsIGlzU2ltdWxhdGVkKTsKICAgICBtb3Vz
ZUV2ZW50LT5zZXRVbmRlcmx5aW5nRXZlbnQodW5kZXJseWluZ0V2ZW50LmdldCgpKTsKKyAgICBt
b3VzZUV2ZW50LT5zZXRBYnNvbHV0ZUxvY2F0aW9uKEludFBvaW50KHBhZ2VYLCBwYWdlWSkpOwog
ICAgIAogICAgIGRpc3BhdGNoRXZlbnQobW91c2VFdmVudCwgZWMpOwogICAgIGJvb2wgZGVmYXVs
dEhhbmRsZWQgPSBtb3VzZUV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOwpAQCAtMjcwNSwxMCArMjcw
OCwyNCBAQCB2b2lkIE5vZGU6OmRpc3BhdGNoV2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQm
IGUpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBJbnRQb2ludCBwb3MgPSB2aWV3LT53aW5k
b3dUb0NvbnRlbnRzKGUucG9zKCkpOworCisgICAgaW50IGFkanVzdGVkUGFnZVggPSBwb3MueCgp
OworICAgIGludCBhZGp1c3RlZFBhZ2VZID0gcG9zLnkoKTsKKyAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkgeworICAgICAgICBmbG9hdCBwYWdlWm9vbSA9IGZyYW1l
LT5wYWdlWm9vbUZhY3RvcigpOworICAgICAgICBpZiAocGFnZVpvb20gIT0gMS4wZikgeworICAg
ICAgICAgICAgLy8gQWRqdXN0IG91ciBwYWdlWCBhbmQgcGFnZVkgdG8gYWNjb3VudCBmb3IgdGhl
IHBhZ2Ugem9vbS4KKyAgICAgICAgICAgIGFkanVzdGVkUGFnZVggPSBscm91bmRmKHBvcy54KCkg
LyBwYWdlWm9vbSk7CisgICAgICAgICAgICBhZGp1c3RlZFBhZ2VZID0gbHJvdW5kZihwb3MueSgp
IC8gcGFnZVpvb20pOworICAgICAgICB9CisgICAgfQogICAgIAogICAgIFJlZlB0cjxXaGVlbEV2
ZW50PiB3ZSA9IFdoZWVsRXZlbnQ6OmNyZWF0ZShlLndoZWVsVGlja3NYKCksIGUud2hlZWxUaWNr
c1koKSwKLSAgICAgICAgZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgZS5nbG9iYWxYKCksIGUu
Z2xvYmFsWSgpLCBwb3MueCgpLCBwb3MueSgpLAorICAgICAgICBkb2N1bWVudCgpLT5kZWZhdWx0
VmlldygpLCBlLmdsb2JhbFgoKSwgZS5nbG9iYWxZKCksIGFkanVzdGVkUGFnZVgsIGFkanVzdGVk
UGFnZVksCiAgICAgICAgIGUuY3RybEtleSgpLCBlLmFsdEtleSgpLCBlLnNoaWZ0S2V5KCksIGUu
bWV0YUtleSgpKTsKKworICAgIHdlLT5zZXRBYnNvbHV0ZUxvY2F0aW9uKEludFBvaW50KHBvcy54
KCksIHBvcy55KCkpKTsKKwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGlmICghZGlz
cGF0Y2hFdmVudCh3ZS5yZWxlYXNlKCksIGVjKSkKICAgICAgICAgZS5hY2NlcHQoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAxNTM1Njg3Li4wMzczZGRlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCkBAIC0xMTAwLDYgKzExMDAsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2dCkKICAgICAgICAgICAgIG1feVBvcyA9
IDA7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0
IHdvcmsgY29ycmVjdGx5IHdpdGggdHJhbnNmb3Jtcy4KKyAgICAgICAgICAgIC8vIEZJWE1FOiBw
YWdlWC9wYWdlWSBuZWVkIGFkanVzdGluZyBmb3IgcGFnZVpvb21GYWN0b3IoKS4gVXNlIGFjdHVh
bFBhZ2VMb2NhdGlvbigpPwogICAgICAgICAgICAgSW50UG9pbnQgYWJzT2Zmc2V0ID0gcm91bmRl
ZEludFBvaW50KHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZSgpKTsKICAgICAgICAgICAgIG1f
eFBvcyA9IG1lLT5wYWdlWCgpIC0gYWJzT2Zmc2V0LngoKTsKICAgICAgICAgICAgIG1feVBvcyA9
IG1lLT5wYWdlWSgpIC0gYWJzT2Zmc2V0LnkoKTsKQEAgLTEzMzgsMjAgKzEzMzksOCBAQCB2b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2dCkKICAgICBp
ZiAoaXNUZXh0RmllbGQoKSAmJiByZW5kZXJlcigpICYmIChldnQtPmlzTW91c2VFdmVudCgpIHx8
IGV2dC0+aXNEcmFnRXZlbnQoKSB8fCBldnQtPmlzV2hlZWxFdmVudCgpIHx8IGV2dC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQgfHwgZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LmZvY3VzRXZlbnQpKQogICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUqPihyZW5kZXJlcigpKS0+Zm9yd2FyZEV2ZW50KGV2dCk7CiAKLSAgICBpZiAoaW5wdXRU
eXBlKCkgPT0gUkFOR0UgJiYgcmVuZGVyZXIoKSkgewotICAgICAgICBSZW5kZXJTbGlkZXIqIHNs
aWRlciA9IHN0YXRpY19jYXN0PFJlbmRlclNsaWRlcio+KHJlbmRlcmVyKCkpOwotICAgICAgICBp
ZiAoZXZ0LT5pc01vdXNlRXZlbnQoKSAmJiBldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91
c2Vkb3duRXZlbnQgJiYgc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2dCktPmJ1dHRvbigpID09
IExlZnRCdXR0b24pIHsKLSAgICAgICAgICAgIE1vdXNlRXZlbnQqIG1FdnQgPSBzdGF0aWNfY2Fz
dDxNb3VzZUV2ZW50Kj4oZXZ0KTsKLSAgICAgICAgICAgIGlmICghc2xpZGVyLT5tb3VzZUV2ZW50
SXNJblRodW1iKG1FdnQpKSB7Ci0gICAgICAgICAgICAgICAgSW50UG9pbnQgZXZlbnRPZmZzZXQo
bUV2dC0+b2Zmc2V0WCgpLCBtRXZ0LT5vZmZzZXRZKCkpOwotICAgICAgICAgICAgICAgIGlmICht
RXZ0LT50YXJnZXQoKSAhPSB0aGlzKSAvLyBEb2VzIHRoaXMgZXZlciBoYXBwZW4gbm93PyBXYXMg
b3JpZ2luYWxseSBhZGRlZCBmb3IgPHZpZGVvPiBjb250cm9scy4KLSAgICAgICAgICAgICAgICAg
ICAgZXZlbnRPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xv
Y2FsKEZsb2F0UG9pbnQobUV2dC0+cGFnZVgoKSwgbUV2dC0+cGFnZVkoKSksIGZhbHNlLCB0cnVl
KSk7Ci0gICAgICAgICAgICAgICAgc2xpZGVyLT5zZXRWYWx1ZUZvclBvc2l0aW9uKHNsaWRlci0+
cG9zaXRpb25Gb3JPZmZzZXQoZXZlbnRPZmZzZXQpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICBpZiAoZXZ0LT5pc01vdXNlRXZlbnQoKSB8fCBldnQtPmlzRHJhZ0V2ZW50KCkg
fHwgZXZ0LT5pc1doZWVsRXZlbnQoKSkKLSAgICAgICAgICAgIHNsaWRlci0+Zm9yd2FyZEV2ZW50
KGV2dCk7Ci0gICAgfQorICAgIGlmIChpbnB1dFR5cGUoKSA9PSBSQU5HRSAmJiByZW5kZXJlcigp
ICYmIChldnQtPmlzTW91c2VFdmVudCgpIHx8IGV2dC0+aXNEcmFnRXZlbnQoKSB8fCBldnQtPmlz
V2hlZWxFdmVudCgpKSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyU2xpZGVyKj4ocmVuZGVy
ZXIoKSktPmZvcndhcmRFdmVudChldnQpOwogCiAgICAgaWYgKCFjYWxsQmFzZUNsYXNzRWFybHkg
JiYgIWV2dC0+ZGVmYXVsdEhhbmRsZWQoKSkKICAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldnQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHAKaW5kZXggMTZhNjU2MS4uNjhhYmJmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuY3BwCkBAIC02NzgsNiArNjc4LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJv
eERlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2dCkKIAogICAgICAgICAvLyBDb252ZXJ0IHRv
IGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgogICAgICAgICBNb3Vz
ZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2dCk7CisgICAg
ICAgIC8vIEZJWE1FOiBuZWVkIHRvIGFkanVzdCBvZmZzZXRYL29mZnNldFkgZm9yIGZ1bGwgcGFn
ZSB6b29tCiAgICAgICAgIGludCBvZmZzZXRYID0gbW91c2VFdmVudC0+b2Zmc2V0WCgpOwogICAg
ICAgICBpbnQgb2Zmc2V0WSA9IG1vdXNlRXZlbnQtPm9mZnNldFkoKTsKICAgICAgICAgTm9kZSog
dGFyZ2V0ID0gZXZ0LT50YXJnZXQoKS0+dG9Ob2RlKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCmluZGV4IGY3YjNhYjguLjUyMmU5MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwCkBAIC04MywxNSArODMsMTAgQEAgdm9pZCBDb250ZXh0TWVudUNv
bnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQqIGV2ZW50KQogICAgIGlmICgh
ZXZlbnQtPmlzTW91c2VFdmVudCgpKQogICAgICAgICByZXR1cm47CiAgICAgTW91c2VFdmVudCog
bW91c2VFdmVudCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCk7Ci0gICAgSW50UG9p
bnQgcG9pbnQgPSBJbnRQb2ludChtb3VzZUV2ZW50LT5wYWdlWCgpLCBtb3VzZUV2ZW50LT5wYWdl
WSgpKTsKLSAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChwb2ludCk7CisgICAgSGl0VGVzdFJlc3Vs
dCByZXN1bHQobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpKTsKIAotICAgIGlmIChGcmFt
ZSogZnJhbWUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpLT5kb2N1bWVudCgpLT5mcmFtZSgp
KSB7Ci0gICAgICAgIGZsb2F0IHpvb21GYWN0b3IgPSBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKTsK
LSAgICAgICAgcG9pbnQuc2V0WChzdGF0aWNfY2FzdDxpbnQ+KHBvaW50LngoKSAqIHpvb21GYWN0
b3IpKTsKLSAgICAgICAgcG9pbnQuc2V0WShzdGF0aWNfY2FzdDxpbnQ+KHBvaW50LnkoKSAqIHpv
b21GYWN0b3IpKTsKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oaXRU
ZXN0UmVzdWx0QXRQb2ludChwb2ludCwgZmFsc2UpOwotICAgIH0KKyAgICBpZiAoRnJhbWUqIGZy
YW1lID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAg
ICAgICAgcmVzdWx0ID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oaXRUZXN0UmVzdWx0QXRQb2lu
dChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlKTsKIAogICAgIGlmICghcmVz
dWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGcmFtZVNldC5jcHAKaW5kZXggZDgzODcyNi4uNTk5NTExNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZyYW1lU2V0LmNwcApAQCAtNTY1LDggKzU2NSw4IEBAIGJvb2wgUmVuZGVyRnJhbWVT
ZXQ6OnVzZXJSZXNpemUoTW91c2VFdmVudCogZXZ0KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICBpZiAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50
ICYmIGV2dC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewogICAgICAgICAgICAgRmxvYXRQb2lu
dCBwb3MgPSBsb2NhbFRvQWJzb2x1dGUoKTsKLSAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9j
b2xzLCBldnQtPnBhZ2VYKCkgLSBwb3MueCgpKTsKLSAgICAgICAgICAgIHN0YXJ0UmVzaXppbmco
bV9yb3dzLCBldnQtPnBhZ2VZKCkgLSBwb3MueSgpKTsKKyAgICAgICAgICAgIHN0YXJ0UmVzaXpp
bmcobV9jb2xzLCBldnQtPmFic29sdXRlTG9jYXRpb24oKS54KCkgLSBwb3MueCgpKTsKKyAgICAg
ICAgICAgIHN0YXJ0UmVzaXppbmcobV9yb3dzLCBldnQtPmFic29sdXRlTG9jYXRpb24oKS55KCkg
LSBwb3MueSgpKTsKICAgICAgICAgICAgIGlmIChtX2NvbHMubV9zcGxpdEJlaW5nUmVzaXplZCAh
PSBub1NwbGl0IHx8IG1fcm93cy5tX3NwbGl0QmVpbmdSZXNpemVkICE9IG5vU3BsaXQpIHsKICAg
ICAgICAgICAgICAgICBzZXRJc1Jlc2l6aW5nKHRydWUpOwogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtNTc1LDggKzU3NSw4IEBAIGJvb2wgUmVuZGVyRnJhbWVTZXQ6OnVzZXJSZXNp
emUoTW91c2VFdmVudCogZXZ0KQogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChldnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQgfHwgKGV2dC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSkgewog
ICAgICAgICAgICAgRmxvYXRQb2ludCBwb3MgPSBsb2NhbFRvQWJzb2x1dGUoKTsKLSAgICAgICAg
ICAgIGNvbnRpbnVlUmVzaXppbmcobV9jb2xzLCBldnQtPnBhZ2VYKCkgLSBwb3MueCgpKTsKLSAg
ICAgICAgICAgIGNvbnRpbnVlUmVzaXppbmcobV9yb3dzLCBldnQtPnBhZ2VZKCkgLSBwb3MueSgp
KTsKKyAgICAgICAgICAgIGNvbnRpbnVlUmVzaXppbmcobV9jb2xzLCBldnQtPmFic29sdXRlTG9j
YXRpb24oKS54KCkgLSBwb3MueCgpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlUmVzaXppbmcobV9y
b3dzLCBldnQtPmFic29sdXRlTG9jYXRpb24oKS55KCkgLSBwb3MueSgpKTsKICAgICAgICAgICAg
IGlmIChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIGV2dC0+YnV0
dG9uKCkgPT0gTGVmdEJ1dHRvbikgewogICAgICAgICAgICAgICAgIHNldElzUmVzaXppbmcoZmFs
c2UpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEu
Y3BwCmluZGV4IDQ5Nzk1MjUuLjUxZDg4YzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lZGlhLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAK
QEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIFJlbmRlck1lZGlhOjpmb3J3YXJkRXZlbnQoRXZlbnQq
IGV2ZW50KQogewogICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgbV9jb250cm9sc1No
YWRvd1Jvb3QpIHsKICAgICAgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHN0YXRpY19jYXN0
PE1vdXNlRXZlbnQqPihldmVudCk7Ci0gICAgICAgIEludFBvaW50IHBvaW50KG1vdXNlRXZlbnQt
PnBhZ2VYKCksIG1vdXNlRXZlbnQtPnBhZ2VZKCkpOworICAgICAgICBJbnRQb2ludCBwb2ludCht
b3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogICAgICAgICBpZiAobV9tdXRlQnV0dG9u
ICYmIG1fbXV0ZUJ1dHRvbi0+aGl0VGVzdChwb2ludCkpCiAgICAgICAgICAgICBtX211dGVCdXR0
b24tPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
LmNwcAppbmRleCBjM2VlOGYyLi5kOGFkMTUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5j
cHAKQEAgLTc5LDggKzc5LDkgQEAgdm9pZCBIVE1MU2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1l
KCkgJiYgcmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSAmJgogICAgICAgICAgICAg
ICAgIChzbGlkZXIgPSBzdGF0aWNfY2FzdDxSZW5kZXJTbGlkZXIqPihyZW5kZXJlcigpLT5wYXJl
bnQoKSkpICYmCiAgICAgICAgICAgICAgICAgc2xpZGVyLT5tb3VzZUV2ZW50SXNJblRodW1iKG1v
dXNlRXZlbnQpKSB7CisgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIENhY2hlIHRoZSBpbml0
aWFsIHBvaW50IHdoZXJlIHRoZSBtb3VzZSBkb3duIG9jY3VycmVkLCBpbiBzbGlkZXIgY29vcmRp
bmF0ZXMKLSAgICAgICAgICAgIG1faW5pdGlhbENsaWNrUG9pbnQgPSBzbGlkZXItPmFic29sdXRl
VG9Mb2NhbChGbG9hdFBvaW50KG1vdXNlRXZlbnQtPnBhZ2VYKCksIG1vdXNlRXZlbnQtPnBhZ2VZ
KCkpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAgICBtX2luaXRpYWxDbGlja1BvaW50ID0gc2xp
ZGVyLT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxz
ZSwgdHJ1ZSk7CiAgICAgICAgICAgICAvLyBDYWNoZSB0aGUgaW5pdGlhbCBwb3NpdGlvbiBvZiB0
aGUgdGh1bWIuCiAgICAgICAgICAgICBtX2luaXRpYWxQb3NpdGlvbiA9IHNsaWRlci0+Y3VycmVu
dFBvc2l0aW9uKCk7CiAgICAgICAgICAgICBtX2luRHJhZ01vZGUgPSB0cnVlOwpAQCAtMTAzLDcg
KzEwNCw4IEBAIHZvaWQgSFRNTFNsaWRlclRodW1iRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCogZXZlbnQpCiAgICAgICAgICAgICAvLyBNb3ZlIHRoZSBzbGlkZXIKICAgICAgICAg
ICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZl
bnQpOwogICAgICAgICAgICAgUmVuZGVyU2xpZGVyKiBzbGlkZXIgPSBzdGF0aWNfY2FzdDxSZW5k
ZXJTbGlkZXIqPihyZW5kZXJlcigpLT5wYXJlbnQoKSk7Ci0gICAgICAgICAgICBGbG9hdFBvaW50
IGN1clBvaW50ID0gc2xpZGVyLT5hYnNvbHV0ZVRvTG9jYWwoRmxvYXRQb2ludChtb3VzZUV2ZW50
LT5wYWdlWCgpLCBtb3VzZUV2ZW50LT5wYWdlWSgpKSwgZmFsc2UsIHRydWUpOworCisgICAgICAg
ICAgICBGbG9hdFBvaW50IGN1clBvaW50ID0gc2xpZGVyLT5hYnNvbHV0ZVRvTG9jYWwobW91c2VF
dmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSk7CiAgICAgICAgICAgICBpbnQg
bmV3UG9zaXRpb24gPSBzbGlkZXItPnBvc2l0aW9uRm9yT2Zmc2V0KAogICAgICAgICAgICAgICAg
IEludFBvaW50KG1faW5pdGlhbFBvc2l0aW9uICsgY3VyUG9pbnQueCgpIC0gbV9pbml0aWFsQ2xp
Y2tQb2ludC54KCkKICAgICAgICAgICAgICAgICAgICAgICAgICsgKHJlbmRlckJveCgpLT53aWR0
aCgpIC8gMiksIApAQCAtMjY0LDE1ICsyNjYsMTMgQEAgYm9vbCBSZW5kZXJTbGlkZXI6Om1vdXNl
RXZlbnRJc0luVGh1bWIoTW91c2VFdmVudCogZXZ0KQogI2lmIEVOQUJMRShWSURFTykKICAgICBp
ZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyUGFydCkgewogICAgICAgICBN
ZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgKnNsaWRlclRodW1iID0gc3RhdGljX2Nhc3Q8TWVkaWFD
b250cm9sSW5wdXRFbGVtZW50Kj4obV90aHVtYi0+cmVuZGVyZXIoKS0+bm9kZSgpKTsKLSAgICAg
ICAgSW50UG9pbnQgYWJzUG9pbnQoZXZ0LT5wYWdlWCgpLCBldnQtPnBhZ2VZKCkpOwotICAgICAg
ICByZXR1cm4gc2xpZGVyVGh1bWItPmhpdFRlc3QoYWJzUG9pbnQpOwotICAgIH0gZWxzZSAKLSNl
bmRpZgotICAgIHsKLSAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gbV90aHVtYi0+cmVu
ZGVyQm94KCktPmFic29sdXRlVG9Mb2NhbChGbG9hdFBvaW50KGV2dC0+cGFnZVgoKSwgZXZ0LT5w
YWdlWSgpKSwgZmFsc2UsIHRydWUpOwotICAgICAgICBJbnRSZWN0IHRodW1iQm91bmRzID0gbV90
aHVtYi0+cmVuZGVyQm94KCktPmJvcmRlckJveFJlY3QoKTsKLSAgICAgICAgcmV0dXJuIHRodW1i
Qm91bmRzLmNvbnRhaW5zKHJvdW5kZWRJbnRQb2ludChsb2NhbFBvaW50KSk7CisgICAgICAgIHJl
dHVybiBzbGlkZXJUaHVtYi0+aGl0VGVzdChldnQtPmFic29sdXRlTG9jYXRpb24oKSk7CiAgICAg
fQorI2VuZGlmCisKKyAgICBGbG9hdFBvaW50IGxvY2FsUG9pbnQgPSBtX3RodW1iLT5yZW5kZXJC
b3goKS0+YWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1
ZSk7CisgICAgSW50UmVjdCB0aHVtYkJvdW5kcyA9IG1fdGh1bWItPnJlbmRlckJveCgpLT5ib3Jk
ZXJCb3hSZWN0KCk7CisgICAgcmV0dXJuIHRodW1iQm91bmRzLmNvbnRhaW5zKHJvdW5kZWRJbnRQ
b2ludChsb2NhbFBvaW50KSk7CiB9CiAKIHZvaWQgUmVuZGVyU2xpZGVyOjpzZXRWYWx1ZUZvclBv
c2l0aW9uKGludCBwb3NpdGlvbikKQEAgLTQwMiw2ICs0MDIsMTYgQEAgaW50IFJlbmRlclNsaWRl
cjo6dHJhY2tTaXplKCkKIAogdm9pZCBSZW5kZXJTbGlkZXI6OmZvcndhcmRFdmVudChFdmVudCog
ZXZ0KQogeworICAgIGlmIChldnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgICAgIE1vdXNlRXZl
bnQqIG1vdXNlRXZ0ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2dCk7CisgICAgICAgIGlm
IChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgbW91c2VFdnQt
PmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKKyAgICAgICAgICAgIGlmICghbW91c2VFdmVudElz
SW5UaHVtYihtb3VzZUV2dCkpIHsKKyAgICAgICAgICAgICAgICBJbnRQb2ludCBldmVudE9mZnNl
dCA9IHJvdW5kZWRJbnRQb2ludChhYnNvbHV0ZVRvTG9jYWwobW91c2VFdnQtPmFic29sdXRlTG9j
YXRpb24oKSwgZmFsc2UsIHRydWUpKTsKKyAgICAgICAgICAgICAgICBzZXRWYWx1ZUZvclBvc2l0
aW9uKHBvc2l0aW9uRm9yT2Zmc2V0KGV2ZW50T2Zmc2V0KSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisKICAgICBtX3RodW1iLT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2dCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwCmluZGV4IDNjNzZmYjEuLjMwMThlOTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMzI1LDcgKzMyNSw3IEBAIHZvaWQg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gaW5u
ZXJUZXh0UmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChGbG9hdFBvaW50KHN0YXRpY19jYXN0PE1v
dXNlRXZlbnQqPihldmVudCktPnBhZ2VYKCksIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVu
dCktPnBhZ2VZKCkpLCBmYWxzZSwgdHJ1ZSk7CisgICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0g
aW5uZXJUZXh0UmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50
Kj4oZXZlbnQpLT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlLCB0cnVlKTsKICAgICBpZiAobV9y
ZXN1bHRzQnV0dG9uICYmIGxvY2FsUG9pbnQueCgpIDwgaW5uZXJUZXh0UmVuZGVyZXItPmJvcmRl
ckJveFJlY3QoKS54KCkpCiAgICAgICAgIG1fcmVzdWx0c0J1dHRvbi0+ZGVmYXVsdEV2ZW50SGFu
ZGxlcihldmVudCk7CiAgICAgZWxzZSBpZiAobV9jYW5jZWxCdXR0b24gJiYgbG9jYWxQb2ludC54
KCkgPiBpbm5lclRleHRSZW5kZXJlci0+Ym9yZGVyQm94UmVjdCgpLnJpZ2h0KCkpCg==
</data>
<flag name="review"
          id="14229"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28861</attachid>
            <date>2009-03-23 12:25:58 -0700</date>
            <delta_ts>2009-03-23 13:32:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>24733_media_controls_patch.txt</filename>
            <type>text/plain</type>
            <size>8002</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmMxN2E1Ni4uNDU3ODgxZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOS0wMy0yMyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNDczMworICAgICAgICAKKyAgICAgICAgRml4IG1lZGlhIGNvbnRyb2xsZXIg
d2l0aCBmdWxsLXBhZ2Ugem9vbS4gUHJldmlvdXNseSwgdGhlIG1lZGlhIGNvbnRyb2xsZXIKKyAg
ICAgICAgc2hhZG93IG5vZGVzIG5ldmVyIHNhdyBzdHlsZSBjaGFuZ2VzIG9uIHRoZSBSZW5kZXJN
ZWRpYSwgc28gZGlkIG5vdCByZXNwb25kCisgICAgICAgIHRvIHpvb21pbmcgYXQgYWxsLiBOb3cs
IHdlIHVwZGF0ZSB0aGUgc3R5bGUgb24gdGhlIHNoYWRvdyByZW5kZXJlcnMKKyAgICAgICAgd2hl
bmV2ZXIgUmVuZGVyTWVkaWEgZ2V0cyBhIHN0eWxlIGNoYW5nZS4KKworICAgICAgICBObyBMYXlv
dXRUZXN0IGR1ZSB0byBGdWxsIFBhZ2UgWm9vbSBub3QgYmVpbmcgZXhlcmNpc2FibGUgdGhyb3Vn
aCBEUlQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sU2hhZG93Um9vdEVsZW1lbnQ6OnVwZGF0ZVN0
eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVGV4dERpc3BsYXlFbGVtZW50OjpNZWRpYVRl
eHREaXNwbGF5RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVRleHREaXNwbGF5RWxl
bWVudDo6dXBkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sSW5wdXRF
bGVtZW50OjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sSW5wdXRFbGVtZW50Ojp1cGRhdGVTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5n
L01lZGlhQ29udHJvbEVsZW1lbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpzdHlsZURpZENoYW5nZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhLmg6CisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6YWRq
dXN0U2xpZGVyVGh1bWJTaXplKToKKyAgICAgICAgVGFrZSB6b29taW5nIGludG8gYWNjb3VudCB3
aGVuIHNpemluZyB0aGUgdmlkZW8gY29udHJvbGxlciB0aHVtYi4KKwogMjAwOS0wMy0yMyAgR2xl
biBNdXJwaHkgIDxnbGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5k
ZXggMWFlM2YxNS4uZDg0ZTlhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcApAQCAtNjgsMTMgKzY4LDIyIEBAIE1lZGlhQ29udHJvbFNoYWRvd1Jvb3RFbGVt
ZW50OjpNZWRpYUNvbnRyb2xTaGFkb3dSb290RWxlbWVudChEb2N1bWVudCogZG9jLCBIVE1MCiAg
ICAgc2V0SW5Eb2N1bWVudCh0cnVlKTsKIH0KIAordm9pZCBNZWRpYUNvbnRyb2xTaGFkb3dSb290
RWxlbWVudDo6dXBkYXRlU3R5bGUoKQoreworICAgIGlmIChyZW5kZXJlcigpKSB7CisgICAgICAg
IFJlbmRlclN0eWxlKiB0aW1lbGluZUNvbnRhaW5lclN0eWxlID0gbV9tZWRpYUVsZW1lbnQtPnJl
bmRlcmVyKCktPmdldENhY2hlZFBzZXVkb1N0eWxlKE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NP
TlRBSU5FUik7CisgICAgICAgIHJlbmRlcmVyKCktPnNldFN0eWxlKHRpbWVsaW5lQ29udGFpbmVy
U3R5bGUpOworICAgIH0KK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBN
ZWRpYVRleHREaXNwbGF5RWxlbWVudDo6TWVkaWFUZXh0RGlzcGxheUVsZW1lbnQoRG9jdW1lbnQq
IGRvYywgUHNldWRvSWQgcHNldWRvLCBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpIAog
ICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2MpCiAgICAgLCBtX21lZGlhRWxlbWVudCht
ZWRpYUVsZW1lbnQpCisgICAgLCBtX3BzZXVkb1N0eWxlSWQocHNldWRvKQogewotICAgIFJlbmRl
clN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1
ZG9TdHlsZShwc2V1ZG8pOworICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50
LT5yZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxlSWQpOwogICAg
IFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcihtX21lZGlhRWxlbWVudC0+
cmVuZGVyZXIoKS0+cmVuZGVyQXJlbmEoKSwgc3R5bGUpOwogICAgIGlmIChyZW5kZXJlcikgewog
ICAgICAgICBzZXRSZW5kZXJlcihyZW5kZXJlcik7CkBAIC05Nyw2ICsxMDYsMTQgQEAgdm9pZCBN
ZWRpYVRleHREaXNwbGF5RWxlbWVudDo6dXBkYXRlKCkKICAgICAgICAgcmVuZGVyZXIoKS0+dXBk
YXRlRnJvbUVsZW1lbnQoKTsKIH0KIAordm9pZCBNZWRpYVRleHREaXNwbGF5RWxlbWVudDo6dXBk
YXRlU3R5bGUoKQoreworICAgIGlmIChyZW5kZXJlcigpICYmIG1fbWVkaWFFbGVtZW50LT5yZW5k
ZXJlcigpKSB7CisgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50LT5y
ZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxlSWQpOworICAgICAg
ICByZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZSk7CisgICAgfQorfQorCiBNZWRpYVRpbWVEaXNw
bGF5RWxlbWVudDo6TWVkaWFUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQqIGRvYywgSFRNTE1l
ZGlhRWxlbWVudCogZWxlbWVudCwgYm9vbCBjdXJyZW50VGltZSkKICAgICA6IE1lZGlhVGV4dERp
c3BsYXlFbGVtZW50KGRvYywgY3VycmVudFRpbWUgPyBNRURJQV9DT05UUk9MU19DVVJSRU5UX1RJ
TUVfRElTUExBWSA6IE1FRElBX0NPTlRST0xTX1RJTUVfUkVNQUlOSU5HX0RJU1BMQVksIGVsZW1l
bnQpCiB7CkBAIC0xMDcsOSArMTI0LDEwIEBAIE1lZGlhVGltZURpc3BsYXlFbGVtZW50OjpNZWRp
YVRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCogZG9jLCBIVE1MTWVkaWFFbGVtZW50CiBNZWRp
YUNvbnRyb2xJbnB1dEVsZW1lbnQ6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudChEb2N1bWVudCog
ZG9jLCBQc2V1ZG9JZCBwc2V1ZG8sIGNvbnN0IFN0cmluZyYgdHlwZSwgSFRNTE1lZGlhRWxlbWVu
dCogbWVkaWFFbGVtZW50KSAKICAgICA6IEhUTUxJbnB1dEVsZW1lbnQoaW5wdXRUYWcsIGRvYykK
ICAgICAsIG1fbWVkaWFFbGVtZW50KG1lZGlhRWxlbWVudCkKKyAgICAsIG1fcHNldWRvU3R5bGVJ
ZChwc2V1ZG8pCiB7CiAgICAgc2V0SW5wdXRUeXBlKHR5cGUpOwotICAgIFJlbmRlclN0eWxlKiBz
dHlsZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShw
c2V1ZG8pOworICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJl
cigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxlSWQpOwogICAgIFJlbmRlck9i
amVjdCogcmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcihtX21lZGlhRWxlbWVudC0+cmVuZGVyZXIo
KS0+cmVuZGVyQXJlbmEoKSwgc3R5bGUpOwogICAgIGlmIChyZW5kZXJlcikgewogICAgICAgICBz
ZXRSZW5kZXJlcihyZW5kZXJlcik7CkBAIC0xMzEsNiArMTQ5LDE0IEBAIHZvaWQgTWVkaWFDb250
cm9sSW5wdXRFbGVtZW50Ojp1cGRhdGUoKQogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9t
RWxlbWVudCgpOwogfQogCit2b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6dXBkYXRlU3R5
bGUoKQoreworICAgIGlmIChyZW5kZXJlcigpICYmIG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigp
KSB7CisgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJl
cigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxlSWQpOworICAgICAgICByZW5k
ZXJlcigpLT5zZXRTdHlsZShzdHlsZSk7CisgICAgfQorfQorCiBib29sIE1lZGlhQ29udHJvbElu
cHV0RWxlbWVudDo6aGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpCiB7CiAgICAgaWYg
KHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1dlYkNv
cmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggOWVlYjExMy4uZmEwZmIz
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC01Niw2ICs1
Niw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dOb2RlKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgTm9kZSogc2hhZG93UGFyZW50Tm9kZSgp
IHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50OyB9CisKKyAgICB2b2lkIHVwZGF0ZVN0eWxlKCk7CiAg
ICAgCiBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1fbWVkaWFFbGVtZW50OyAgICAK
QEAgLTY5LDggKzcxLDEwIEBAIHB1YmxpYzoKICAgICBNZWRpYVRleHREaXNwbGF5RWxlbWVudChE
b2N1bWVudCosIFBzZXVkb0lkLCBIVE1MTWVkaWFFbGVtZW50Kik7CiAgICAgdm9pZCBhdHRhY2hU
b1BhcmVudChFbGVtZW50Kik7CiAgICAgdm9pZCB1cGRhdGUoKTsKKyAgICB2b2lkIHVwZGF0ZVN0
eWxlKCk7CiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbV9tZWRpYUVsZW1lbnQ7
ICAgCisgICAgUHNldWRvSWQgbV9wc2V1ZG9TdHlsZUlkOwogfTsKIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQpAQCAtODcsOSArOTEsMTEgQEAgcHVibGljOgogICAgIE1lZGlhQ29u
dHJvbElucHV0RWxlbWVudChEb2N1bWVudCosIFBzZXVkb0lkLCBjb25zdCBTdHJpbmcmIHR5cGUs
IEhUTUxNZWRpYUVsZW1lbnQqKTsKICAgICB2b2lkIGF0dGFjaFRvUGFyZW50KEVsZW1lbnQqKTsK
ICAgICB2b2lkIHVwZGF0ZSgpOworICAgIHZvaWQgdXBkYXRlU3R5bGUoKTsKICAgICBib29sIGhp
dFRlc3QoY29uc3QgSW50UG9pbnQmIGFic1BvaW50KTsKIHByb3RlY3RlZDoKICAgICBIVE1MTWVk
aWFFbGVtZW50KiBtX21lZGlhRWxlbWVudDsgICAKKyAgICBQc2V1ZG9JZCBtX3BzZXVkb1N0eWxl
SWQ7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZWRpYS5jcHAKaW5kZXggNTFkODhjNi4uNDJjZDcwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhLmNwcApAQCAtMTAzLDYgKzEwMywyOCBAQCBNZWRpYVBsYXllciogUmVuZGVyTWVkaWE6OnBs
YXllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1lZGlhRWxlbWVudCgpLT5wbGF5ZXIoKTsKIH0KIAor
dm9pZCBSZW5kZXJNZWRpYTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBSZW5kZXJSZXBsYWNlZDo6c3R5bGVE
aWRDaGFuZ2UoZGlmZiwgb2xkU3R5bGUpOworCisgICAgaWYgKG1fY29udHJvbHNTaGFkb3dSb290
KSB7CisgICAgICAgIGlmIChtX3BhbmVsLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgbV9wYW5l
bC0+cmVuZGVyZXIoKS0+c2V0U3R5bGUoZ2V0Q2FjaGVkUHNldWRvU3R5bGUoTUVESUFfQ09OVFJP
TFNfUEFORUwpKTsKKworICAgICAgICBpZiAobV90aW1lbGluZUNvbnRhaW5lci0+cmVuZGVyZXIo
KSkKKyAgICAgICAgICAgIG1fdGltZWxpbmVDb250YWluZXItPnJlbmRlcmVyKCktPnNldFN0eWxl
KGdldENhY2hlZFBzZXVkb1N0eWxlKE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRBSU5FUikp
OworICAgICAgICAKKyAgICAgICAgbV9tdXRlQnV0dG9uLT51cGRhdGVTdHlsZSgpOworICAgICAg
ICBtX3BsYXlCdXR0b24tPnVwZGF0ZVN0eWxlKCk7CisgICAgICAgIG1fc2Vla0JhY2tCdXR0b24t
PnVwZGF0ZVN0eWxlKCk7CisgICAgICAgIG1fc2Vla0ZvcndhcmRCdXR0b24tPnVwZGF0ZVN0eWxl
KCk7CisgICAgICAgIG1fdGltZWxpbmUtPnVwZGF0ZVN0eWxlKCk7CisgICAgICAgIG1fZnVsbHNj
cmVlbkJ1dHRvbi0+dXBkYXRlU3R5bGUoKTsKKyAgICAgICAgbV9jdXJyZW50VGltZURpc3BsYXkt
PnVwZGF0ZVN0eWxlKCk7CisgICAgICAgIG1fdGltZVJlbWFpbmluZ0Rpc3BsYXktPnVwZGF0ZVN0
eWxlKCk7CisgICAgfQorfQorCiB2b2lkIFJlbmRlck1lZGlhOjpsYXlvdXQoKQogewogICAgIElu
dFNpemUgb2xkU2l6ZSA9IGNvbnRlbnRCb3hSZWN0KCkuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhLmgKaW5kZXggZmYyY2RiMy4uMGU1NmRhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVkaWEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5oCkBA
IC05OCw2ICs5OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGFuZ2VPcGFjaXR5KEhUTUxFbGVt
ZW50KiwgZmxvYXQgb3BhY2l0eSk7CiAgICAgdm9pZCBvcGFjaXR5QW5pbWF0aW9uVGltZXJGaXJl
ZChUaW1lcjxSZW5kZXJNZWRpYT4qKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CisKICAgICBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IG1fY29udHJvbHNTaGFkb3dSb290OwogICAgIFJlZlB0cjxIVE1M
RWxlbWVudD4gbV9wYW5lbDsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1l
bnQ+IG1fbXV0ZUJ1dHRvbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMGMx
MmI2Mi4uN2QxYTYwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTE0NTUs
OCArMTQ1NSw4IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFNsaWRlclRodW1iU2l6ZShS
ZW5kZXJPYmplY3QqIG8pIGNvbnN0CiAgICAgICAgICAgICBoZWlnaHQgPSBzaXplLmhlaWdodDsK
ICAgICAgICAgfQogCi0gICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aCh3aWR0aCwg
Rml4ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChoZWlnaHQsIEZp
eGVkKSk7CisgICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxp
bnQ+KHdpZHRoICogem9vbUxldmVsKSwgRml4ZWQpKTsKKyAgICAgICAgby0+c3R5bGUoKS0+c2V0
SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCAqIHpvb21MZXZlbCksIEZpeGVk
KSk7CiAgICAgfQogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28864</attachid>
            <date>2009-03-23 13:32:18 -0700</date>
            <delta_ts>2009-03-23 13:36:45 -0700</delta_ts>
            <desc>Patch with testcase</desc>
            <filename>24733_media_controls_patch.txt</filename>
            <type>text/plain</type>
            <size>10279</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzOTY1OThjLi5lYzJlNDQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMDktMDMt
MjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI0NzMzCisgICAgICAgIAorICAgICAgICBUZXN0IGV2ZW50cyBv
biB0aGUgcGxheSBidXR0b24gYWZ0ZXIgem9vbWluZy4KKworICAgICAgICAqIG1lZGlhL3ZpZGVv
LWNvbnRyb2xzLXpvb21lZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3Zp
ZGVvLWNvbnRyb2xzLXpvb21lZC5odG1sOiBBZGRlZC4KKworMjAwOS0wMy0yMyAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlcgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNDczNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9v
bWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXpvb21l
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FiNWRk
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXpv
b21lZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGNvbnRyb2xzIG9uIHpvb21l
ZCB2aWRlby4KKworVGhpcyB0ZXN0IG9ubHkgcnVucyBpbiBEUlQhCisKK0VYUEVDVEVEICh2aWRl
by5jb250cm9scyAhPSAnbnVsbCcpIE9LCitFVkVOVChsb2FkKQorRVhQRUNURUQgKHZpZGVvLnBh
dXNlZCA9PSAnZmFsc2UnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tY29udHJvbHMtem9vbWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1jb250cm9scy16b29tZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42NjQwNmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
Y29udHJvbHMtem9vbWVkLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPGh0bWw+Cis8aGVhZD4KKyAg
PHRpdGxlPlRlc3QgY29udHJvbHMgd2l0aCB6b29taW5nPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICB2aWRlbyB7CisgICAgICBtYXJnaW46IDUw
cHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
Y2hhcnNldD0idXRmLTgiPgorICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQuc3R5bGUuem9vbSA9ICcxNTAlJzsKKyAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgCisgICAgICAgIHsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEyMCw0
MzIpOyAvLyBvdmVyIHBsYXkgYnV0dG9uCisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgfQorICAg
ICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGZhbHNlKTsKKyAgICAgICAgZW5kVGVz
dCgpOworICAgICAgfSwgNTApOworICAgIH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKyAgICA8cD5UZXN0IGNvbnRyb2xzIG9uIHpv
b21lZCB2aWRlby48L3A+CisgICAgPHA+VGhpcyB0ZXN0IG9ubHkgcnVucyBpbiBEUlQhPC9wPgor
ICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jb250cm9scyIsIG51bGwsICchPScpOworICAgICAg
ICB3YWl0Rm9yRXZlbnQoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1blRlc3Qo
KTsKKyAgICAgICAgfSApOworICAgICAgICB2aWRlby5zcmMgPSAnY29udGVudC90ZXN0Lm1wNCc7
CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmYzE3YTU2Li4zZmZhNzgzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDA5LTAzLTIzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NzMzCisg
ICAgICAgIAorICAgICAgICBGaXggbWVkaWEgY29udHJvbGxlciB3aXRoIGZ1bGwtcGFnZSB6b29t
LiBQcmV2aW91c2x5LCB0aGUgbWVkaWEgY29udHJvbGxlcgorICAgICAgICBzaGFkb3cgbm9kZXMg
bmV2ZXIgc2F3IHN0eWxlIGNoYW5nZXMgb24gdGhlIFJlbmRlck1lZGlhLCBzbyBkaWQgbm90IHJl
c3BvbmQKKyAgICAgICAgdG8gem9vbWluZyBhdCBhbGwuIE5vdywgd2UgdXBkYXRlIHRoZSBzdHls
ZSBvbiB0aGUgc2hhZG93IHJlbmRlcmVycworICAgICAgICB3aGVuZXZlciBSZW5kZXJNZWRpYSBn
ZXRzIGEgc3R5bGUgY2hhbmdlLiBBbHNvIGZpeCB0aGUgdmlkZW8gdGh1bWIgaW4KKyAgICAgICAg
dGhlIHRoZW1lIHRvIGJlIHNjYWxlZCBwcm9wZXJseS4KKworICAgICAgICBUZXN0OiBtZWRpYS92
aWRlby1jb250cm9scy16b29tZWQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL01lZGlhQ29u
dHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNoYWRvd1Jv
b3RFbGVtZW50Ojp1cGRhdGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVRleHREaXNw
bGF5RWxlbWVudDo6TWVkaWFUZXh0RGlzcGxheUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFUZXh0RGlzcGxheUVsZW1lbnQ6OnVwZGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6dXBkYXRlU3R5bGUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJNZWRpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6
c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lTWFjOjphZGp1c3RTbGlkZXJUaHVtYlNpemUpOgogMjAwOS0wMy0yMyAgR2xlbiBN
dXJwaHkgIDxnbGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBG
aXNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXgg
MWFlM2YxNS4uZDg0ZTlhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcApAQCAtNjgsMTMgKzY4LDIyIEBAIE1lZGlhQ29udHJvbFNoYWRvd1Jvb3RFbGVtZW50
OjpNZWRpYUNvbnRyb2xTaGFkb3dSb290RWxlbWVudChEb2N1bWVudCogZG9jLCBIVE1MCiAgICAg
c2V0SW5Eb2N1bWVudCh0cnVlKTsKIH0KIAordm9pZCBNZWRpYUNvbnRyb2xTaGFkb3dSb290RWxl
bWVudDo6dXBkYXRlU3R5bGUoKQoreworICAgIGlmIChyZW5kZXJlcigpKSB7CisgICAgICAgIFJl
bmRlclN0eWxlKiB0aW1lbGluZUNvbnRhaW5lclN0eWxlID0gbV9tZWRpYUVsZW1lbnQtPnJlbmRl
cmVyKCktPmdldENhY2hlZFBzZXVkb1N0eWxlKE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRB
SU5FUik7CisgICAgICAgIHJlbmRlcmVyKCktPnNldFN0eWxlKHRpbWVsaW5lQ29udGFpbmVyU3R5
bGUpOworICAgIH0KK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBNZWRp
YVRleHREaXNwbGF5RWxlbWVudDo6TWVkaWFUZXh0RGlzcGxheUVsZW1lbnQoRG9jdW1lbnQqIGRv
YywgUHNldWRvSWQgcHNldWRvLCBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpIAogICAg
IDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2MpCiAgICAgLCBtX21lZGlhRWxlbWVudChtZWRp
YUVsZW1lbnQpCisgICAgLCBtX3BzZXVkb1N0eWxlSWQocHNldWRvKQogewotICAgIFJlbmRlclN0
eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9T
dHlsZShwc2V1ZG8pOworICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50LT5y
ZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxlSWQpOwogICAgIFJl
bmRlck9iamVjdCogcmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcihtX21lZGlhRWxlbWVudC0+cmVu
ZGVyZXIoKS0+cmVuZGVyQXJlbmEoKSwgc3R5bGUpOwogICAgIGlmIChyZW5kZXJlcikgewogICAg
ICAgICBzZXRSZW5kZXJlcihyZW5kZXJlcik7CkBAIC05Nyw2ICsxMDYsMTQgQEAgdm9pZCBNZWRp
YVRleHREaXNwbGF5RWxlbWVudDo6dXBkYXRlKCkKICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRl
RnJvbUVsZW1lbnQoKTsKIH0KIAordm9pZCBNZWRpYVRleHREaXNwbGF5RWxlbWVudDo6dXBkYXRl
U3R5bGUoKQoreworICAgIGlmIChyZW5kZXJlcigpICYmIG1fbWVkaWFFbGVtZW50LT5yZW5kZXJl
cigpKSB7CisgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5k
ZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxlSWQpOworICAgICAgICBy
ZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZSk7CisgICAgfQorfQorCiBNZWRpYVRpbWVEaXNwbGF5
RWxlbWVudDo6TWVkaWFUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQqIGRvYywgSFRNTE1lZGlh
RWxlbWVudCogZWxlbWVudCwgYm9vbCBjdXJyZW50VGltZSkKICAgICA6IE1lZGlhVGV4dERpc3Bs
YXlFbGVtZW50KGRvYywgY3VycmVudFRpbWUgPyBNRURJQV9DT05UUk9MU19DVVJSRU5UX1RJTUVf
RElTUExBWSA6IE1FRElBX0NPTlRST0xTX1RJTUVfUkVNQUlOSU5HX0RJU1BMQVksIGVsZW1lbnQp
CiB7CkBAIC0xMDcsOSArMTI0LDEwIEBAIE1lZGlhVGltZURpc3BsYXlFbGVtZW50OjpNZWRpYVRp
bWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCogZG9jLCBIVE1MTWVkaWFFbGVtZW50CiBNZWRpYUNv
bnRyb2xJbnB1dEVsZW1lbnQ6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudChEb2N1bWVudCogZG9j
LCBQc2V1ZG9JZCBwc2V1ZG8sIGNvbnN0IFN0cmluZyYgdHlwZSwgSFRNTE1lZGlhRWxlbWVudCog
bWVkaWFFbGVtZW50KSAKICAgICA6IEhUTUxJbnB1dEVsZW1lbnQoaW5wdXRUYWcsIGRvYykKICAg
ICAsIG1fbWVkaWFFbGVtZW50KG1lZGlhRWxlbWVudCkKKyAgICAsIG1fcHNldWRvU3R5bGVJZChw
c2V1ZG8pCiB7CiAgICAgc2V0SW5wdXRUeXBlKHR5cGUpOwotICAgIFJlbmRlclN0eWxlKiBzdHls
ZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShwc2V1
ZG8pOworICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigp
LT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxlSWQpOwogICAgIFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSBjcmVhdGVSZW5kZXJlcihtX21lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+
cmVuZGVyQXJlbmEoKSwgc3R5bGUpOwogICAgIGlmIChyZW5kZXJlcikgewogICAgICAgICBzZXRS
ZW5kZXJlcihyZW5kZXJlcik7CkBAIC0xMzEsNiArMTQ5LDE0IEBAIHZvaWQgTWVkaWFDb250cm9s
SW5wdXRFbGVtZW50Ojp1cGRhdGUoKQogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxl
bWVudCgpOwogfQogCit2b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6dXBkYXRlU3R5bGUo
KQoreworICAgIGlmIChyZW5kZXJlcigpICYmIG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpKSB7
CisgICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigp
LT5nZXRDYWNoZWRQc2V1ZG9TdHlsZShtX3BzZXVkb1N0eWxlSWQpOworICAgICAgICByZW5kZXJl
cigpLT5zZXRTdHlsZShzdHlsZSk7CisgICAgfQorfQorCiBib29sIE1lZGlhQ29udHJvbElucHV0
RWxlbWVudDo6aGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpCiB7CiAgICAgaWYgKHJl
bmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgpKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1dlYkNvcmUv
cmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggOWVlYjExMy4uZmEwZmIzMCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC01Niw2ICs1Niw4
IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dOb2RlKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgTm9kZSogc2hhZG93UGFyZW50Tm9kZSgpIHsg
cmV0dXJuIG1fbWVkaWFFbGVtZW50OyB9CisKKyAgICB2b2lkIHVwZGF0ZVN0eWxlKCk7CiAgICAg
CiBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1fbWVkaWFFbGVtZW50OyAgICAKQEAg
LTY5LDggKzcxLDEwIEBAIHB1YmxpYzoKICAgICBNZWRpYVRleHREaXNwbGF5RWxlbWVudChEb2N1
bWVudCosIFBzZXVkb0lkLCBIVE1MTWVkaWFFbGVtZW50Kik7CiAgICAgdm9pZCBhdHRhY2hUb1Bh
cmVudChFbGVtZW50Kik7CiAgICAgdm9pZCB1cGRhdGUoKTsKKyAgICB2b2lkIHVwZGF0ZVN0eWxl
KCk7CiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbV9tZWRpYUVsZW1lbnQ7ICAg
CisgICAgUHNldWRvSWQgbV9wc2V1ZG9TdHlsZUlkOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpAQCAtODcsOSArOTEsMTEgQEAgcHVibGljOgogICAgIE1lZGlhQ29udHJv
bElucHV0RWxlbWVudChEb2N1bWVudCosIFBzZXVkb0lkLCBjb25zdCBTdHJpbmcmIHR5cGUsIEhU
TUxNZWRpYUVsZW1lbnQqKTsKICAgICB2b2lkIGF0dGFjaFRvUGFyZW50KEVsZW1lbnQqKTsKICAg
ICB2b2lkIHVwZGF0ZSgpOworICAgIHZvaWQgdXBkYXRlU3R5bGUoKTsKICAgICBib29sIGhpdFRl
c3QoY29uc3QgSW50UG9pbnQmIGFic1BvaW50KTsKIHByb3RlY3RlZDoKICAgICBIVE1MTWVkaWFF
bGVtZW50KiBtX21lZGlhRWxlbWVudDsgICAKKyAgICBQc2V1ZG9JZCBtX3BzZXVkb1N0eWxlSWQ7
CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYS5jcHAKaW5kZXggNTFkODhjNi4uNDJjZDcwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVkaWEuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlh
LmNwcApAQCAtMTAzLDYgKzEwMywyOCBAQCBNZWRpYVBsYXllciogUmVuZGVyTWVkaWE6OnBsYXll
cigpIGNvbnN0CiAgICAgcmV0dXJuIG1lZGlhRWxlbWVudCgpLT5wbGF5ZXIoKTsKIH0KIAordm9p
ZCBSZW5kZXJNZWRpYTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBSZW5kZXJSZXBsYWNlZDo6c3R5bGVEaWRD
aGFuZ2UoZGlmZiwgb2xkU3R5bGUpOworCisgICAgaWYgKG1fY29udHJvbHNTaGFkb3dSb290KSB7
CisgICAgICAgIGlmIChtX3BhbmVsLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgbV9wYW5lbC0+
cmVuZGVyZXIoKS0+c2V0U3R5bGUoZ2V0Q2FjaGVkUHNldWRvU3R5bGUoTUVESUFfQ09OVFJPTFNf
UEFORUwpKTsKKworICAgICAgICBpZiAobV90aW1lbGluZUNvbnRhaW5lci0+cmVuZGVyZXIoKSkK
KyAgICAgICAgICAgIG1fdGltZWxpbmVDb250YWluZXItPnJlbmRlcmVyKCktPnNldFN0eWxlKGdl
dENhY2hlZFBzZXVkb1N0eWxlKE1FRElBX0NPTlRST0xTX1RJTUVMSU5FX0NPTlRBSU5FUikpOwor
ICAgICAgICAKKyAgICAgICAgbV9tdXRlQnV0dG9uLT51cGRhdGVTdHlsZSgpOworICAgICAgICBt
X3BsYXlCdXR0b24tPnVwZGF0ZVN0eWxlKCk7CisgICAgICAgIG1fc2Vla0JhY2tCdXR0b24tPnVw
ZGF0ZVN0eWxlKCk7CisgICAgICAgIG1fc2Vla0ZvcndhcmRCdXR0b24tPnVwZGF0ZVN0eWxlKCk7
CisgICAgICAgIG1fdGltZWxpbmUtPnVwZGF0ZVN0eWxlKCk7CisgICAgICAgIG1fZnVsbHNjcmVl
bkJ1dHRvbi0+dXBkYXRlU3R5bGUoKTsKKyAgICAgICAgbV9jdXJyZW50VGltZURpc3BsYXktPnVw
ZGF0ZVN0eWxlKCk7CisgICAgICAgIG1fdGltZVJlbWFpbmluZ0Rpc3BsYXktPnVwZGF0ZVN0eWxl
KCk7CisgICAgfQorfQorCiB2b2lkIFJlbmRlck1lZGlhOjpsYXlvdXQoKQogewogICAgIEludFNp
emUgb2xkU2l6ZSA9IGNvbnRlbnRCb3hSZWN0KCkuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlh
LmgKaW5kZXggZmYyY2RiMy4uMGU1NmRhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVkaWEuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5oCkBAIC05
OCw2ICs5OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGFuZ2VPcGFjaXR5KEhUTUxFbGVtZW50
KiwgZmxvYXQgb3BhY2l0eSk7CiAgICAgdm9pZCBvcGFjaXR5QW5pbWF0aW9uVGltZXJGaXJlZChU
aW1lcjxSZW5kZXJNZWRpYT4qKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CisKICAgICBSZWZQ
dHI8SFRNTEVsZW1lbnQ+IG1fY29udHJvbHNTaGFkb3dSb290OwogICAgIFJlZlB0cjxIVE1MRWxl
bWVudD4gbV9wYW5lbDsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ+
IG1fbXV0ZUJ1dHRvbjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMGMxMmI2
Mi4uN2QxYTYwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0KKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTE0NTUsOCAr
MTQ1NSw4IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5k
ZXJPYmplY3QqIG8pIGNvbnN0CiAgICAgICAgICAgICBoZWlnaHQgPSBzaXplLmhlaWdodDsKICAg
ICAgICAgfQogCi0gICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aCh3aWR0aCwgRml4
ZWQpKTsKLSAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChoZWlnaHQsIEZpeGVk
KSk7CisgICAgICAgIG8tPnN0eWxlKCktPnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+
KHdpZHRoICogem9vbUxldmVsKSwgRml4ZWQpKTsKKyAgICAgICAgby0+c3R5bGUoKS0+c2V0SGVp
Z2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCAqIHpvb21MZXZlbCksIEZpeGVkKSk7
CiAgICAgfQogI2VuZGlmCiB9Cg==
</data>
<flag name="review"
          id="14256"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>