<?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>41718</bug_id>
          
          <creation_ts>2010-07-06 15:16:55 -0700</creation_ts>
          <short_desc>Mac OS X media controls should have a way to adjust volume incrementally</short_desc>
          <delta_ts>2010-07-12 14:49:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>rcombs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>247215</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-07-06 15:16:55 -0700</bug_when>
    <thetext>Media controls should have a slider to control audio volume, not just a button that toggles mute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247216</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-07-06 15:17:16 -0700</bug_when>
    <thetext>&lt;rdar://5679472&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247233</commentid>
    <comment_count>2</comment_count>
      <attachid>60661</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-07-06 16:15:16 -0700</bug_when>
    <thetext>Created attachment 60661
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247754</commentid>
    <comment_count>3</comment_count>
      <attachid>60661</attachid>
    <who name="">mitz</who>
    <bug_when>2010-07-07 14:22:17 -0700</bug_when>
    <thetext>Comment on attachment 60661
proposed patch

&gt; +          (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Add ButtonLocation 
&gt; +          parameter both mute buttons can be created.

Missing a word there?


&gt; +audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container {
&gt; +    -webkit-appearance: media-volume-slider-container;
&gt; +    position: absolute;
&gt; +
&gt; +    width: 22px;
&gt; +    height: 114px;
&gt; +}

I wonder if this can specify one of top/bottom and one of left/right.

&gt; +IntPoint RenderThemeMac::volumeSliderOffsetFromMuteButton(Node* muteButton, const IntSize&amp; size) const
&gt; +{
&gt; +    static const int xOffset = -4;
&gt; +    static const int yOffset = 5;
&gt; +
&gt; +    int y = muteButton-&gt;renderBox()-&gt;offsetHeight() + yOffset - size.height();
&gt; +    FloatPoint absPoint = muteButton-&gt;renderer()-&gt;localToAbsolute(FloatPoint(muteButton-&gt;renderBox()-&gt;offsetLeft(), y), true, true);
&gt; +    if (absPoint.y() &lt; 0)
&gt; +        y = muteButton-&gt;renderBox()-&gt;height();
&gt; +    return IntPoint(xOffset, y);
&gt; +}

I think I know what this does but a comment wouldn’t hurt.

r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248471</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-07-08 13:04:37 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62821</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250072</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-07-12 14:49:19 -0700</bug_when>
    <thetext>*** Bug 41980 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60661</attachid>
            <date>2010-07-06 16:15:16 -0700</date>
            <delta_ts>2010-07-07 14:22:17 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>os_patch_4.txt</filename>
            <type>text/plain</type>
            <size>33942</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MjU5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzkgQEAKKzIwMTAtMDctMDYgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT1NYIG1lZGlhIGNvbnRyb2xzIHNob3VsZCBoYXZlIGEgd2F5IHRvIGFkanVzdCB2b2x1bWUg
aW5jcmVtZW50YWxseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDE3MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2Nzk0NzI+CisKKyAgICAgICAg
KiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKTogSGFuZGxlIE1lZGlhVm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvblBhcnQuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOiAKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpwc2V1ZG9JZCk6IEhhbmRsZSBQc2V1ZG9NZWRp
YUNvbnRyb2xzVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi4KKyAgICAgICAgKFdlYkNvcmU6Om5hbWVU
b1BzZXVkb1R5cGVNYXApOiBEZWZpbmUgbWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlck11dGVCdXR0
b24uCisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOiBI
YW5kbGUgUHNldWRvTWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlck11dGVCdXR0b24uCisKKyAgICAg
ICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjop
OiBEZWZpbmUgUHNldWRvTWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlck11dGVCdXR0b24uCisKKyAg
ICAgICAgKiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogRGVmaW5lIG1lZGlhLXZvbHVtZS1zbGlk
ZXItbXV0ZS1idXR0b24uCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6IAorICAg
ICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1
dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1
dHRvbik6IE5ldy4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1lLmNzczoK
KyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCk6IEFkZCAib3ZlcmZsb3c6IHZpc2libGUiIAorICAg
ICAgICBzbyB2b2x1bWUgc2xpZGVyIHBvcC11cCB3aWxsIGJlIHZpc2libGUuCisKKyAgICAgICAg
KGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbik6IE1ha2UgCisgICAgICAgIG11dGUgYnV0dG9u
IDE0eDEyIGluc3RlYWQgb2YgMTV4MTQgc28gaXQgbWF0Y2hlcyB0aGUgc2l6ZSBpbiB0aGUgdm9s
dW1lIHNsaWRlci4KKworICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9s
dW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVt
ZS1zbGlkZXItY29udGFpbmVyKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXZvbHVtZS1zbGlkZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1z
bGlkZXIpOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNs
aWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNs
aWRlci1tdXRlLWJ1dHRvbik6IAorICAgICAgICBOZXcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9U
aGVtZVR5cGVzLmg6IERlZmluZSBNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b25QYXJ0LgorCisg
ICAgICAgICogcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50
KTogSGFuZGxlIE1FRElBX0NPTlRST0xTX1ZPTFVNRV9TTElERVJfTVVURV9CVVRUT04uCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9s
TXV0ZUJ1dHRvbkVsZW1lbnQpOiBBZGQgQnV0dG9uTG9jYXRpb24gCisgICAgICAgIHBhcmFtZXRl
ciBib3RoIG11dGUgYnV0dG9ucyBjYW4gYmUgY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUpOiBEaXR0by4KKworICAgICAgICAq
IHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOiBEZWZpbmUgTWVkaWFWb2x1bWVTbGlk
ZXJNdXRlQnV0dG9uIGFuZCBCdXR0b25Mb2NhdGlvbi4KKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJNZWRpYS5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnN0eWxlRGlk
Q2hhbmdlKTogVXBkYXRlIHZvbHVtZSBzbGlkZXIgbXV0ZSBidXR0b24uCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJNZWRpYTo6Y3JlYXRlTXV0ZUJ1dHRvbik6IFBhc3MgQnV0dG9uTG9jYXRpb24g
cGFyYW1ldGVyIHRvIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Y3JlYXRlVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbik6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjp1cGRhdGVDb250cm9scyk6IERl
YWwgd2l0aCB2b2x1bWUgc2xpZGVyIG11dGUgYnV0dG9uLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTWVkaWE6OnVwZGF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcik6IERvbid0IGFzc3VtZSBhbGwg
cG9ydHMgd2FudCB0byBwb3NpdGlvbgorICAgICAgICB0aGUgdm9sdW1lIHNsaWRlciBpbiB0aGUg
c2FtZSBwbGFjZSwgY2FsbCBuZXcgdm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24gdGhl
bWUgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYTo6Zm9yd2FyZEV2ZW50
KTogSGFuZGxlIHZvbHVtZSBzbGlkZXIgbXV0ZSBidXR0b24uCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck1lZGlhLmg6CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOiAK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwYWludCk6IEhhbmRsZSBNZWRpYVZvbHVt
ZVNsaWRlck11dGVCdXR0b25QYXJ0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnZv
bHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9uKTogTmV3LCByZXR1cm4gbG9jYXRpb24gcHJl
dmlvdXNseSBoYXJkCisgICAgICAgIGNvZGVkIGluIFJlbmRlck1lZGlhOjp1cGRhdGVWb2x1bWVT
bGlkZXJDb250YWluZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6YWRq
dXN0TWVkaWFTbGlkZXJUaHVtYlNpemUpOiBEZWFsIHdpdGggdGhlIHZvbHVtZSBzbGlkZXIgdGh1
bWIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRNZWRpYVZvbHVtZVNs
aWRlckNvbnRhaW5lcik6IE5ldywgY2FsbCB0aGUgV0tTSSBwYWludCBmdW5jdGlvbiAKKyAgICAg
ICAgZm9yIHRoaXMgYnV0dG9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBh
aW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnNob3VsZFJlbmRlck1lZGlhQ29udHJvbFBhcnQp
OiBEcmF3IHRoZSB2b2x1bWUgc2xpZGVyIHBhcnRzIHdoZW4KKyAgICAgICAgdXNpbmcgdGhlIG5l
dyBjb250cm9sbGVyIFVJIGZvciBhIG1vdmllIHRoYXQgaGFzIGF1ZGlvLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVNYWM6OnZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9uKTog
TmV3LCBwb3NpdGlvbiB0aGUgdm9sdW1lIHNsaWRlciAKKyAgICAgICAgZGlyZWN0bHkgYWJvdmUg
dGhlIG11dGUgYnV0dG9uLgorCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmg6IERlZmluZSBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSX01VVEVfQlVU
VE9OLgorCiAyMDEwLTA3LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHJldmlzaW9uIDYxMTg2KQorKysgV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEBueXBvcC5j
b20+LgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAq
IENvcHlyaWdodCAoQykgMjAwOSBKZWZmIFNjaGlsbGVyIDxjb2RlZHJlYWRAZ21haWwuY29tPgog
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmln
aHRzIHJlc2VydmVkLgpAQCAtMjUzLDYgKzI1Myw5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1MKICAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CiAg
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNsaWRlcjsKICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRv
blBhcnQ6CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYVZvbHVtZVNs
aWRlck11dGVCdXR0b247CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBNZWRpYVZv
bHVtZVNsaWRlclRodW1iUGFydDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU1lZGlhVm9sdW1lU2xpZGVydGh1bWI7CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFdlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAJKHJldmlzaW9uIDYxMTg2KQorKysgV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogICogICAgICAgICAgICAgICAxOTk5IFdh
bGRvIEJhc3RpYW4gKGJhc3RpYW5Aa2RlLm9yZykKICAqICAgICAgICAgICAgICAgMjAwMSBBbmRy
ZWFzIFNjaGxhcGJhY2ggKHNjaGxwYmNoQGlhbS51bmliZS5jaCkKICAqICAgICAgICAgICAgICAg
MjAwMS0yMDAzIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDAyLCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRGF2aWQg
U21pdGggKGNhdGZpc2gubWFuQGdtYWlsLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xMTEsNiArMTEx
LDggQEAgUHNldWRvSWQgQ1NTU2VsZWN0b3I6OnBzZXVkb0lkKFBzZXVkb1R5cAogICAgICAgICBy
ZXR1cm4gTUVESUFfQ09OVFJPTFNfVElNRUxJTkU7CiAgICAgY2FzZSBQc2V1ZG9NZWRpYUNvbnRy
b2xzVm9sdW1lU2xpZGVyOgogICAgICAgICByZXR1cm4gTUVESUFfQ09OVFJPTFNfVk9MVU1FX1NM
SURFUjsKKyAgICBjYXNlIFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJNdXRlQnV0dG9u
OgorICAgICAgICByZXR1cm4gTUVESUFfQ09OVFJPTFNfVk9MVU1FX1NMSURFUl9NVVRFX0JVVFRP
TjsKICAgICBjYXNlIFBzZXVkb01lZGlhQ29udHJvbHNTZWVrQmFja0J1dHRvbjoKICAgICAgICAg
cmV0dXJuIE1FRElBX0NPTlRST0xTX1NFRUtfQkFDS19CVVRUT047CiAgICAgY2FzZSBQc2V1ZG9N
ZWRpYUNvbnRyb2xzU2Vla0ZvcndhcmRCdXR0b246CkBAIC0yNjEsNiArMjYzLDcgQEAgc3RhdGlj
IEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbAogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBtZWRpYUNvbnRyb2xzUGxheUJ1dHRvbiwgKCItd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXBsYXktYnV0dG9uIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBtZWRpYUNvbnRyb2xzVGltZWxpbmUsICgiLXdlYmtpdC1tZWRpYS1jb250cm9scy10
aW1lbGluZSIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFD
b250cm9sc1ZvbHVtZVNsaWRlciwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlk
ZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhQ29udHJv
bHNWb2x1bWVTbGlkZXJNdXRlQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1l
LXNsaWRlci1tdXRlLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgbWVkaWFDb250cm9sc1NlZWtCYWNrQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29udHJv
bHMtc2Vlay1iYWNrLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgbWVkaWFDb250cm9sc1NlZWtGb3J3YXJkQnV0dG9uLCAoIi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtc2Vlay1mb3J3YXJkLWJ1dHRvbiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbWVkaWFDb250cm9sc1Jld2luZEJ1dHRvbiwgKCItd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXJld2luZC1idXR0b24iKSk7CkBAIC0zNTksNiArMzYyLDcgQEAgc3RhdGljIEhhc2hN
YXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbAogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5z
ZXQobWVkaWFDb250cm9sc1RpbWVSZW1haW5pbmdEaXNwbGF5LmltcGwoKSwgQ1NTU2VsZWN0b3I6
OlBzZXVkb01lZGlhQ29udHJvbHNUaW1lUmVtYWluaW5nRGlzcGxheSk7CiAgICAgICAgIG5hbWVU
b1BzZXVkb1R5cGUtPnNldChtZWRpYUNvbnRyb2xzVGltZWxpbmUuaW1wbCgpLCBDU1NTZWxlY3Rv
cjo6UHNldWRvTWVkaWFDb250cm9sc1RpbWVsaW5lKTsKICAgICAgICAgbmFtZVRvUHNldWRvVHlw
ZS0+c2V0KG1lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXIuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNl
dWRvTWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlcik7CisgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUt
PnNldChtZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi5pbXBsKCksIENTU1NlbGVj
dG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbik7CiAgICAgICAg
IG5hbWVUb1BzZXVkb1R5cGUtPnNldChtZWRpYUNvbnRyb2xzU2Vla0JhY2tCdXR0b24uaW1wbCgp
LCBDU1NTZWxlY3Rvcjo6UHNldWRvTWVkaWFDb250cm9sc1NlZWtCYWNrQnV0dG9uKTsKICAgICAg
ICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KG1lZGlhQ29udHJvbHNTZWVrRm9yd2FyZEJ1dHRvbi5p
bXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vla0ZvcndhcmRCdXR0b24p
OwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQobWVkaWFDb250cm9sc1Jld2luZEJ1dHRv
bi5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9NZWRpYUNvbnRyb2xzUmV3aW5kQnV0dG9uKTsK
QEAgLTQ1MCw2ICs0NTQsNyBAQCB2b2lkIENTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgp
IGNvCiAgICAgY2FzZSBQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZVJlbWFpbmluZ0Rpc3BsYXk6CiAg
ICAgY2FzZSBQc2V1ZG9NZWRpYUNvbnRyb2xzVGltZWxpbmU6CiAgICAgY2FzZSBQc2V1ZG9NZWRp
YUNvbnRyb2xzVm9sdW1lU2xpZGVyOgorICAgIGNhc2UgUHNldWRvTWVkaWFDb250cm9sc1ZvbHVt
ZVNsaWRlck11dGVCdXR0b246CiAgICAgY2FzZSBQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vla0JhY2tC
dXR0b246CiAgICAgY2FzZSBQc2V1ZG9NZWRpYUNvbnRyb2xzU2Vla0ZvcndhcmRCdXR0b246CiAg
ICAgY2FzZSBQc2V1ZG9NZWRpYUNvbnRyb2xzUmV3aW5kQnV0dG9uOgpJbmRleDogV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5o
CShyZXZpc2lvbiA2MTE4NikKKysrIFdlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDMgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAgICAgMTk5OSBXYWxkbyBCYXN0
aWFuIChiYXN0aWFuQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDcs
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTc0LDYgKzE3NCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb01lZGlhQ29udHJvbHNQbGF5QnV0dG9uLAog
ICAgICAgICAgICAgUHNldWRvTWVkaWFDb250cm9sc1RpbWVsaW5lQ29udGFpbmVyLAogICAgICAg
ICAgICAgUHNldWRvTWVkaWFDb250cm9sc1ZvbHVtZVNsaWRlckNvbnRhaW5lciwKKyAgICAgICAg
ICAgIFBzZXVkb01lZGlhQ29udHJvbHNWb2x1bWVTbGlkZXJNdXRlQnV0dG9uLAogICAgICAgICAg
ICAgUHNldWRvTWVkaWFDb250cm9sc0N1cnJlbnRUaW1lRGlzcGxheSwKICAgICAgICAgICAgIFBz
ZXVkb01lZGlhQ29udHJvbHNUaW1lUmVtYWluaW5nRGlzcGxheSwKICAgICAgICAgICAgIFBzZXVk
b01lZGlhQ29udHJvbHNUb2dnbGVDbG9zZWRDYXB0aW9ucywKSW5kZXg6IFdlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbgkocmV2aXNpb24gNjExODYpCisrKyBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC01ODIsNiArNTgyLDcgQEAgbWVkaWEtc2xpZGVydGh1bWIK
IG1lZGlhLXZvbHVtZS1zbGlkZXItY29udGFpbmVyCiBtZWRpYS12b2x1bWUtc2xpZGVyCiBtZWRp
YS12b2x1bWUtc2xpZGVydGh1bWIKK21lZGlhLXZvbHVtZS1zbGlkZXItbXV0ZS1idXR0b24KIG1l
ZGlhLWNvbnRyb2xzLWJhY2tncm91bmQKIG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5CiBtZWRp
YS10aW1lLXJlbWFpbmluZy1kaXNwbGF5CkluZGV4OiBXZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xz
LmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwkocmV2aXNp
b24gNjExODYpCisrKyBXZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xMzEsMyArMTMxLDggQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xl
LWNsbwogICAgIHdpZHRoOiAxNnB4OwogICAgIGhlaWdodDogMTZweDsKIH0KKworYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1tdXRlLWJ1dHRvbiB7CisgICAgLXdl
YmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLW11dGUtYnV0dG9uOworICAgIGRp
c3BsYXk6IG5vbmU7Cit9CkluZGV4OiBXZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1l
LmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1lLmNz
cwkocmV2aXNpb24gNjExODYpCisrKyBXZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzUXVpY2tUaW1l
LmNzcwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOSwgMjAxMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw2ICszMiw3IEBAIGF1ZGlvIHsKIGF1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1w
YW5lbCB7CiAgICAgLyogSW4gbWVkaWFDb250cm9scy5jc3MgKi8KICAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLWNvbnRyb2xzLWJhY2tncm91bmQ7CisgICAgb3ZlcmZsb3c6IHZpc2libGU7
CiAgICAgaGVpZ2h0OiAyNXB4OwogfQogCkBAIC00MSwxMCArNDIsMTEgQEAgdmlkZW86LXdlYmtp
dC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJraXQtbQogCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0
b24gewogICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7IC8qIEJlZm9yZSB0aGUgZnVs
bHNjcmVlbiBidXR0b24gKi8KLSAgICB3aWR0aDogMTVweDsKLSAgICBoZWlnaHQ6IDE0cHg7CisK
KyAgICB3aWR0aDogMTRweDsKKyAgICBoZWlnaHQ6IDEycHg7CiAgICAgbWFyZ2luLWxlZnQ6IDJw
eDsKLSAgICBtYXJnaW4tcmlnaHQ6IDhweDsKKyAgICBtYXJnaW4tcmlnaHQ6IDlweDsKIH0KIAog
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIHsKQEAgLTE4NSwzICsxODcsMzQgQEAgYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsbwogICAgIG1hcmdpbi1yaWdodDogN3B4
OwogICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDM7IC8qIGJldHdlZW4gbXV0ZSBhbmQg
ZnVsbHNjcmVlbiAqLwogfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUt
c2xpZGVyLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNs
aWRlci1jb250YWluZXIgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNs
aWRlci1jb250YWluZXI7CisgICAgcG9zaXRpb246IGFic29sdXRlOworCisgICAgd2lkdGg6IDIy
cHg7CisgICAgaGVpZ2h0OiAxMTRweDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNs
aWRlciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyOworICAg
IGRpc3BsYXk6IGlubGluZTsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisKKyAgICB0b3A6IDdw
eDsKKyAgICBsZWZ0OiA2cHg7CisKKyAgICB3aWR0aDogMTBweDsKKyAgICBoZWlnaHQ6IDgwcHg7
Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1i
dXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItbXV0ZS1i
dXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlci1tdXRl
LWJ1dHRvbjsKKyAgICBkaXNwbGF5OiBpbmxpbmU7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
CisgICAgd2lkdGg6IDE0cHg7CisgICAgaGVpZ2h0OiAxMnB4OworICAgIGJvdHRvbTogNXB4Owor
ICAgIGxlZnQ6IDRweDsKK30KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCShyZXZpc2lvbiA2MTE4
NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01MSw3ICs1MSw3IEBAIGVudW0gQ29udHJvbFBhcnQgewogICAgIE1lZGlhRnVsbHNjcmVlbkJ1
dHRvblBhcnQsIE1lZGlhTXV0ZUJ1dHRvblBhcnQsIE1lZGlhUGxheUJ1dHRvblBhcnQsIE1lZGlh
U2Vla0JhY2tCdXR0b25QYXJ0LCAKICAgICBNZWRpYVNlZWtGb3J3YXJkQnV0dG9uUGFydCwgTWVk
aWFSZXdpbmRCdXR0b25QYXJ0LCBNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b25QYXJ0LCBNZWRp
YVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uUGFydCwKICAgICBNZWRpYVNsaWRlclBhcnQsIE1l
ZGlhU2xpZGVyVGh1bWJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lclBhcnQsIE1lZGlh
Vm9sdW1lU2xpZGVyUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQsCi0gICAgTWVkaWFD
b250cm9sc0JhY2tncm91bmRQYXJ0LCBNZWRpYUN1cnJlbnRUaW1lUGFydCwgTWVkaWFUaW1lUmVt
YWluaW5nUGFydCwKKyAgICBNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b25QYXJ0LCBNZWRpYUNv
bnRyb2xzQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1h
aW5pbmdQYXJ0LAogICAgIE1lbnVsaXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51bGlz
dFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQsIE1ldGVyUGFydCwgT3V0ZXJTcGluQnV0
dG9uUGFydCwgUHJvZ3Jlc3NCYXJQYXJ0LCBQcm9ncmVzc0JhclZhbHVlUGFydCwKICAgICBTbGlk
ZXJIb3Jpem9udGFsUGFydCwgU2xpZGVyVmVydGljYWxQYXJ0LCBTbGlkZXJUaHVtYkhvcml6b250
YWxQYXJ0LAogICAgIFNsaWRlclRodW1iVmVydGljYWxQYXJ0LCBDYXJldFBhcnQsIFNlYXJjaEZp
ZWxkUGFydCwgU2VhcmNoRmllbGREZWNvcmF0aW9uUGFydCwKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAJKHJldmlzaW9uIDYxMTg2KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NzgsNiArMzc4LDkgQEAgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpNZWRpYUNvbnRyb2xJbgog
ICAgIGNhc2UgTUVESUFfQ09OVFJPTFNfVk9MVU1FX1NMSURFUjoKICAgICAgICAgbV9kaXNwbGF5
VHlwZSA9IE1lZGlhVm9sdW1lU2xpZGVyOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIE1FRElB
X0NPTlRST0xTX1ZPTFVNRV9TTElERVJfTVVURV9CVVRUT046CisgICAgICAgIG1fZGlzcGxheVR5
cGUgPSBNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b247CisgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTUVESUFfQ09OVFJPTFNfVE9HR0xFX0NMT1NFRF9DQVBUSU9OU19CVVRUT046CiAgICAgICAg
IG1fZGlzcGxheVR5cGUgPSBNZWRpYVNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbjsKICAgICAgICAg
YnJlYWs7CkBAIC00NzUsMTQgKzQ3OCwxNCBAQCB2b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVu
dDo6c2V0RGlzcGxhCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5l
IE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxl
bWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xJ
bnB1dEVsZW1lbnQobWVkaWFFbGVtZW50LCBNRURJQV9DT05UUk9MU19NVVRFX0JVVFRPTiwgImJ1
dHRvbiIpCitpbmxpbmUgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJv
bE11dGVCdXR0b25FbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCwgQnV0dG9u
TG9jYXRpb24gbG9jYXRpb24pCisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQobWVkaWFF
bGVtZW50LCBsb2NhdGlvbiA9PSBDb250cm9sbGVyID8gTUVESUFfQ09OVFJPTFNfTVVURV9CVVRU
T04gOiBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSX01VVEVfQlVUVE9OLCAiYnV0dG9uIikK
IHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudD4gTWVkaWFD
b250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
ZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxl
bWVudCwgQnV0dG9uTG9jYXRpb24gbG9jYXRpb24pCiB7Ci0gICAgcmV0dXJuIG5ldyBNZWRpYUNv
bnRyb2xNdXRlQnV0dG9uRWxlbWVudChtZWRpYUVsZW1lbnQpOworICAgIHJldHVybiBuZXcgTWVk
aWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50LCBsb2NhdGlvbik7CiB9CiAK
IHZvaWQgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqIGV2ZW50KQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVu
dHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5oCShyZXZpc2lvbiA2MTE4NikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVs
ZW1lbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDggQEAgZW51bSBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSB7CiAgICAgTWVkaWFDb250cm9sc1BhbmVsLAogICAgIE1lZGlhVm9sdW1l
U2xpZGVyQ29udGFpbmVyLAogICAgIE1lZGlhVm9sdW1lU2xpZGVyLAotICAgIE1lZGlhVm9sdW1l
U2xpZGVyVGh1bWIKKyAgICBNZWRpYVZvbHVtZVNsaWRlclRodW1iLAorICAgIE1lZGlhVm9sdW1l
U2xpZGVyTXV0ZUJ1dHRvbiwKIH07CiAKIEhUTUxNZWRpYUVsZW1lbnQqIHRvUGFyZW50TWVkaWFF
bGVtZW50KFJlbmRlck9iamVjdCopOwpAQCAtMjAyLDEyICsyMDMsMTMgQEAgcHJpdmF0ZToKIAog
Y2xhc3MgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9s
SW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xNdXRlQnV0dG9uRWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBlbnVt
IEJ1dHRvbkxvY2F0aW9uIHsgQ29udHJvbGxlciwgVm9sdW1lU2xpZGVyIH07CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShIVE1MTWVk
aWFFbGVtZW50KiwgQnV0dG9uTG9jYXRpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xNdXRlQnV0
dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250cm9sTXV0ZUJ1dHRv
bkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCosIEJ1dHRvbkxvY2F0aW9uKTsKIAogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpOwogfTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lZGlhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYS5jcHAJKHJldmlzaW9uIDYxMTg2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVk
aWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbmNsdWRlICJNb3Vz
ZUV2ZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
QEAgLTEzNSw2ICsxMzYsOCBAQCB2b2lkIFJlbmRlck1lZGlhOjpzdHlsZURpZENoYW5nZShTdHls
ZURpCiAgICAgICAgICAgICBtX3RpbWVSZW1haW5pbmdEaXNwbGF5LT51cGRhdGVTdHlsZSgpOwog
ICAgICAgICBpZiAobV92b2x1bWVTbGlkZXJDb250YWluZXIpCiAgICAgICAgICAgICBtX3ZvbHVt
ZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlU3R5bGUoKTsKKyAgICAgICAgaWYgKG1fdm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbikKKyAgICAgICAgICAgIG1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi0+dXBk
YXRlU3R5bGUoKTsKICAgICAgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQogICAgICAgICAgICAgbV92
b2x1bWVTbGlkZXItPnVwZGF0ZVN0eWxlKCk7CiAgICAgfQpAQCAtMTg0LDcgKzE4Nyw3IEBAIHZv
aWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVBhbmVsKCkKIHZvaWQgUmVuZGVyTWVkaWE6OmNyZWF0ZU11
dGVCdXR0b24oKQogewogICAgIEFTU0VSVCghbV9tdXRlQnV0dG9uKTsKLSAgICBtX211dGVCdXR0
b24gPSBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCgp
KTsKKyAgICBtX211dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKG1lZGlhRWxlbWVudCgpLCBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudDo6Q29udHJv
bGxlcik7CiAgICAgbV9tdXRlQnV0dG9uLT5hdHRhY2hUb1BhcmVudChtX3BhbmVsLmdldCgpKTsK
IH0KIApAQCAtMjY5LDYgKzI3MiwxNCBAQCB2b2lkIFJlbmRlck1lZGlhOjpjcmVhdGVWb2x1bWVT
bGlkZXIoKQogICAgIG1fdm9sdW1lU2xpZGVyLT5hdHRhY2hUb1BhcmVudChtX3ZvbHVtZVNsaWRl
ckNvbnRhaW5lci5nZXQoKSk7CiB9CiAKK3ZvaWQgUmVuZGVyTWVkaWE6OmNyZWF0ZVZvbHVtZVNs
aWRlck11dGVCdXR0b24oKQoreworICAgIEFTU0VSVCghbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9u
KTsKKyAgICBtX3ZvbHVtZVNsaWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xNdXRlQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCgpLCBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxl
bWVudDo6Vm9sdW1lU2xpZGVyKTsKKyAgICBtX3ZvbHVtZVNsaWRlck11dGVCdXR0b24tPmF0dGFj
aFRvUGFyZW50KG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgpKTsKKyAgICAKK30KKwogdm9p
ZCBSZW5kZXJNZWRpYTo6Y3JlYXRlQ3VycmVudFRpbWVEaXNwbGF5KCkKIHsKICAgICBBU1NFUlQo
IW1fY3VycmVudFRpbWVEaXNwbGF5KTsKQEAgLTMxNiw2ICszMjcsNyBAQCB2b2lkIFJlbmRlck1l
ZGlhOjp1cGRhdGVDb250cm9scygpCiAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5CdXR0b24gPSAw
OwogICAgICAgICAgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXIgPSAwOwogICAgICAgICAgICAg
bV92b2x1bWVTbGlkZXIgPSAwOworICAgICAgICAgICAgbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9u
ID0gMDsKICAgICAgICAgICAgIG1fY29udHJvbHNTaGFkb3dSb290ID0gMDsKICAgICAgICAgICAg
IG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSAwOwogICAgICAgICB9CkBAIC0zNDUsOCAr
MzU3LDEwIEBAIHZvaWQgUmVuZGVyTWVkaWE6OnVwZGF0ZUNvbnRyb2xzKCkKICAgICAgICAgICAg
IGNyZWF0ZUZ1bGxzY3JlZW5CdXR0b24oKTsKICAgICAgICAgICAgIGNyZWF0ZU11dGVCdXR0b24o
KTsKICAgICAgICAgICAgIGNyZWF0ZVZvbHVtZVNsaWRlckNvbnRhaW5lcigpOwotICAgICAgICAg
ICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKQorICAgICAgICAgICAgaWYgKG1fdm9sdW1l
U2xpZGVyQ29udGFpbmVyKSB7CiAgICAgICAgICAgICAgICAgY3JlYXRlVm9sdW1lU2xpZGVyKCk7
CisgICAgICAgICAgICAgICAgY3JlYXRlVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbigpOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgbV9wYW5lbC0+YXR0YWNoKCk7CiAgICAgICAgIH0KICAgICB9
CkBAIC0zOTYsNiArNDEwLDggQEAgdm9pZCBSZW5kZXJNZWRpYTo6dXBkYXRlQ29udHJvbHMoKQog
ICAgICAgICBtX2Z1bGxzY3JlZW5CdXR0b24tPnVwZGF0ZSgpOwogICAgIGlmIChtX3ZvbHVtZVNs
aWRlcikKICAgICAgICAgbV92b2x1bWVTbGlkZXItPnVwZGF0ZSgpOworICAgIGlmIChtX3ZvbHVt
ZVNsaWRlck11dGVCdXR0b24pCisgICAgICAgIG1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbi0+dXBk
YXRlKCk7CiAKICAgICB1cGRhdGVUaW1lRGlzcGxheSgpOwogICAgIHVwZGF0ZUNvbnRyb2xWaXNp
YmlsaXR5KCk7CkBAIC00OTksMTMgKzUxNSwxMyBAQCB2b2lkIFJlbmRlck1lZGlhOjp1cGRhdGVW
b2x1bWVTbGlkZXJDb250CiAKICAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBzID0gbV92b2x1
bWVTbGlkZXJDb250YWluZXItPnN0eWxlRm9yRWxlbWVudCgpOwogICAgICAgICBpbnQgaGVpZ2h0
ID0gcy0+aGVpZ2h0KCkuaXNQZXJjZW50KCkgPyAwIDogcy0+aGVpZ2h0KCkudmFsdWUoKTsKLSAg
ICAgICAgaW50IHggPSBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5vZmZzZXRMZWZ0KCk7Ci0g
ICAgICAgIGludCB5ID0gbV9tdXRlQnV0dG9uLT5yZW5kZXJCb3goKS0+b2Zmc2V0VG9wKCkgLSBo
ZWlnaHQ7Ci0gICAgICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQgPSBtX211dGVCdXR0b24tPnJlbmRl
cmVyKCktPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KHgsIHkpLCB0cnVlLCB0cnVlKTsKLSAg
ICAgICAgaWYgKGFic1BvaW50LnkoKSA8IDApCi0gICAgICAgICAgICB5ID0gbV9tdXRlQnV0dG9u
LT5yZW5kZXJCb3goKS0+b2Zmc2V0VG9wKCkgKyBtX211dGVCdXR0b24tPnJlbmRlckJveCgpLT5o
ZWlnaHQoKTsKLSAgICAgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPnNldFZpc2libGUodHJ1
ZSk7CisgICAgICAgIGludCB3aWR0aCA9IHMtPndpZHRoKCkuaXNQZXJjZW50KCkgPyAwIDogcy0+
d2lkdGgoKS52YWx1ZSgpOworICAgICAgICBJbnRQb2ludCBvZmZzZXQgPSBkb2N1bWVudCgpLT5w
YWdlKCktPnRoZW1lKCktPnZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9uKG1fbXV0ZUJ1
dHRvbi0+cmVuZGVyZXIoKS0+bm9kZSgpLCBJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICAg
ICAgaW50IHggPSBvZmZzZXQueCgpICsgbV9tdXRlQnV0dG9uLT5yZW5kZXJCb3goKS0+b2Zmc2V0
TGVmdCgpOworICAgICAgICBpbnQgeSA9IG9mZnNldC55KCkgKyBtX211dGVCdXR0b24tPnJlbmRl
ckJveCgpLT5vZmZzZXRUb3AoKTsKKwogICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+
c2V0UG9zaXRpb24oeCwgeSk7CisgICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zZXRW
aXNpYmxlKHRydWUpOwogICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+dXBkYXRlKCk7
CiAgICAgICAgIG1fdm9sdW1lU2xpZGVyLT51cGRhdGUoKTsKICAgICB9IGVsc2UgaWYgKCF2aXNp
YmxlICYmIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5pc1Zpc2libGUoKSkgewpAQCAtNTE5LDgg
KzUzNSwxNSBAQCB2b2lkIFJlbmRlck1lZGlhOjpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2CiAgICAg
aWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBtX2NvbnRyb2xzU2hhZG93Um9vdCkgewogICAg
ICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2
ZW50KTsKICAgICAgICAgSW50UG9pbnQgcG9pbnQobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlv
bigpKTsKKworICAgICAgICBib29sIGRlZmF1bHRIYW5kbGVkID0gZmFsc2U7CisgICAgICAgIGlm
IChtX3ZvbHVtZVNsaWRlck11dGVCdXR0b24gJiYgbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uLT5o
aXRUZXN0KHBvaW50KSkgeworICAgICAgICAgICAgbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uLT5k
ZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgICAgIGRlZmF1bHRIYW5kbGVkID0g
ZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIH0KKwogICAgICAgICBib29sIHNob3dW
b2x1bWVTbGlkZXIgPSBmYWxzZTsKLSAgICAgICAgaWYgKG1fbXV0ZUJ1dHRvbiAmJiBtX211dGVC
dXR0b24tPmhpdFRlc3QocG9pbnQpKSB7CisgICAgICAgIGlmICghZGVmYXVsdEhhbmRsZWQgJiYg
bV9tdXRlQnV0dG9uICYmIG1fbXV0ZUJ1dHRvbi0+aGl0VGVzdChwb2ludCkpIHsKICAgICAgICAg
ICAgIG1fbXV0ZUJ1dHRvbi0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiAgICAgICAgICAg
ICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkKICAgICAg
ICAgICAgICAgICBzaG93Vm9sdW1lU2xpZGVyID0gdHJ1ZTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lZGlhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVkaWEuaAkocmV2aXNpb24gNjExODYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRp
YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGNyZWF0ZVRpbWVsaW5lKCk7CiAgICAgdm9pZCBjcmVhdGVWb2x1bWVTbGlkZXJDb250YWluZXIo
KTsKICAgICB2b2lkIGNyZWF0ZVZvbHVtZVNsaWRlcigpOworICAgIHZvaWQgY3JlYXRlVm9sdW1l
U2xpZGVyTXV0ZUJ1dHRvbigpOwogICAgIHZvaWQgY3JlYXRlQ3VycmVudFRpbWVEaXNwbGF5KCk7
CiAgICAgdm9pZCBjcmVhdGVUaW1lUmVtYWluaW5nRGlzcGxheSgpOwogICAgIHZvaWQgY3JlYXRl
RnVsbHNjcmVlbkJ1dHRvbigpOwpAQCAtMTMxLDYgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gbV90b2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbjsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVF
bGVtZW50PiBtX3RpbWVsaW5lOwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJF
bGVtZW50PiBtX3ZvbHVtZVNsaWRlcjsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sTXV0ZUJ1dHRv
bkVsZW1lbnQ+IG1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbjsKICAgICBSZWZQdHI8TWVkaWFDb250
cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IG1fZnVsbHNjcmVlbkJ1dHRvbjsKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiBtX3RpbWVsaW5lQ29udGFp
bmVyOwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
PiBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcjsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5j
cHAJKHJldmlzaW9uIDYxMTg2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogLyoqCiAgKiBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgdGhlbWUgaW1wbGVtZW50YXRpb24gZm9yIGZvcm0gY29udHJvbHMgaW4gV2ViQ29y
ZS4KICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCBBcHBsZSBDb21wdXRlciwgSW5jLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0zMjksNiArMzI5LDggQEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoUmVuZGVyT2JqZWN0KiBv
LAogICAgICAgICAgICAgaWYgKG8tPnBhcmVudCgpLT5pc1NsaWRlcigpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBwYWludE1lZGlhU2xpZGVyVGh1bWIobywgcGFpbnRJbmZvLCByKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvblBh
cnQ6CisgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYU11dGVCdXR0b24obywgcGFpbnRJbmZv
LCByKTsKICAgICAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lclBhcnQ6CiAgICAg
ICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcihvLCBwYWludElu
Zm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoKQEAgLTUxNiw2ICs1
MTgsMTUgQEAgU3RyaW5nIFJlbmRlclRoZW1lOjpmb3JtYXRNZWRpYUNvbnRyb2xzUgogICAgIHJl
dHVybiBmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShjdXJyZW50VGltZSAtIGR1cmF0aW9uKTsKIH0K
IAorSW50UG9pbnQgUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9u
KE5vZGUqIG11dGVCdXR0b24sIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0Cit7CisgICAgaW50
IHkgPSAtc2l6ZS5oZWlnaHQoKTsKKyAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRv
bi0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbi0+cmVu
ZGVyQm94KCktPm9mZnNldExlZnQoKSwgeSksIHRydWUsIHRydWUpOworICAgIGlmIChhYnNQb2lu
dC55KCkgPCAwKQorICAgICAgICB5ID0gbXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCktPmhlaWdodCgp
OworICAgIHJldHVybiBJbnRQb2ludCgwLCB5KTsKK30KKwogI2VuZGlmCiAKIENvbG9yIFJlbmRl
clRoZW1lOjphY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdApJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oCShyZXZpc2lvbiA2MTE4NikKKysrIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAvKgogICogVGhp
cyBmaWxlIGlzIHBhcnQgb2YgdGhlIHRoZW1lIGltcGxlbWVudGF0aW9uIGZvciBmb3JtIGNvbnRy
b2xzIGluIFdlYkNvcmUuCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgQ29tcHV0ZXIsIEluYy4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMTkxLDYgKzE5MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBmb3Jt
YXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmlu
ZyBmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0
IGR1cmF0aW9uKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xz
UmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0Owor
ICAgIAorICAgIC8vIFJldHVybnMgdGhlIG1lZGlhIHZvbHVtZSBzbGlkZXIgY29udGFpbmVyJ3Mg
b2Zmc2V0IGZyb20gdGhlIG11dGUgYnV0dG9uLgorICAgIHZpcnR1YWwgSW50UG9pbnQgdm9sdW1l
U2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oTm9kZSosIGNvbnN0IEludFNpemUmKSBjb25zdDsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FVEVSX1RBRykKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMuaAkocmV2aXNpb24gNjExODYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSB0aGVtZSBpbXBsZW1lbnRhdGlvbiBmb3IgZm9ybSBjb250cm9scyBp
biBXZWJDb3JlLgogICoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5j
LgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFw
cGxlIENvbXB1dGVyLCBJbmMuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE1NSwxMiArMTU1LDE2
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzQmFja2dy
b3VuZChSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUN1cnJlbnRUaW1lKFJlbmRl
ck9iamVjdCosIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
OwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVGltZVJlbWFpbmluZyhSZW5kZXJPYmplY3Qq
LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcihSZW5kZXJPYmplY3Qq
LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNv
bnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworICAgIHZpcnR1
YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAKICAgICAvLyBNZWRp
YSBjb250cm9scwogICAgIHZpcnR1YWwgU3RyaW5nIGV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hl
ZXQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZW5kZXJNZWRpYUNvbnRyb2xQYXJ0KENv
bnRyb2xQYXJ0LCBFbGVtZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lZGlhU2xpZGVy
VGh1bWJTaXplKFJlbmRlck9iamVjdCopIGNvbnN0OworICAgIHZpcnR1YWwgSW50UG9pbnQgdm9s
dW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oTm9kZSosIGNvbnN0IEludFNpemUmKSBjb25z
dDsKICNlbmRpZgogCiBwcml2YXRlOgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0JKHJldmlzaW9uIDYxMTg2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE2
NjIsMTQgKzE2NjIsMTYgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2xpZGVyVGh1bWJT
aQogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5k
ZXJPYmplY3QqIG8pIGNvbnN0CiB7Ci0gICAgaWYgKG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9
PSBNZWRpYVNsaWRlclRodW1iUGFydCkgeworICAgIENvbnRyb2xQYXJ0IHBhcnQgPSBvLT5zdHls
ZSgpLT5hcHBlYXJhbmNlKCk7CisKKyAgICBpZiAocGFydCA9PSBNZWRpYVNsaWRlclRodW1iUGFy
dCB8fCBwYXJ0ID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KSB7CiAgICAgICAgIGludCB3
aWR0aCA9IG1lZGlhU2xpZGVyVGh1bWJXaWR0aDsKICAgICAgICAgaW50IGhlaWdodCA9IG1lZGlh
U2xpZGVyVGh1bWJIZWlnaHQ7CiAgICAgICAgIAogICAgICAgICBpZiAobWVkaWFDb250cm9sbGVy
VGhlbWUoKSA9PSBNZWRpYUNvbnRyb2xsZXJUaGVtZVF1aWNrVGltZSkgewogICAgICAgICAgICAg
Q0dTaXplICBzaXplOwogICAgICAgICAgICAgCi0gICAgICAgICAgICB3a01lYXN1cmVNZWRpYVVJ
UGFydChNZWRpYVNsaWRlclRodW1iLCBNZWRpYUNvbnRyb2xsZXJUaGVtZVF1aWNrVGltZSwgTlVM
TCwgJnNpemUpOworICAgICAgICAgICAgd2tNZWFzdXJlTWVkaWFVSVBhcnQocGFydCA9PSBNZWRp
YVNsaWRlclRodW1iUGFydCA/IE1lZGlhU2xpZGVyVGh1bWIgOiBNZWRpYVZvbHVtZVNsaWRlclRo
dW1iLCBNZWRpYUNvbnRyb2xsZXJUaGVtZVF1aWNrVGltZSwgTlVMTCwgJnNpemUpOwogICAgICAg
ICAgICAgd2lkdGggPSBzaXplLndpZHRoOwogICAgICAgICAgICAgaGVpZ2h0ID0gc2l6ZS5oZWln
aHQ7CiAgICAgICAgIH0KQEAgLTE4ODksNiArMTg5MSwzOSBAQCBib29sIFJlbmRlclRoZW1lTWFj
OjpwYWludE1lZGlhVGltZVJlbWFpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFJlbmRl
clRoZW1lTWFjOjpwYWludE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyKFJlbmRlck9iamVjdCog
bywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVj
dCYgcikKK3sKKyAgICBOb2RlKiBub2RlID0gby0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxv
Y2FsQ29udGV4dChwYWludEluZm8uY29udGV4dCk7CisgICAgd2tEcmF3TWVkaWFVSVBhcnQoTWVk
aWFWb2x1bWVTbGlkZXJDb250YWluZXIsIG1lZGlhQ29udHJvbGxlclRoZW1lKCksIHBhaW50SW5m
by5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgciwgZ2V0TWVkaWFVSVBhcnRTdGF0ZUZsYWdz
KG5vZGUpKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVNYWM6OnBh
aW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFJlbmRlck9i
amVjdDo6UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHIpCit7CisgICAgTm9k
ZSogbm9kZSA9IG8tPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQocGFpbnRJ
bmZvLmNvbnRleHQpOworICAgIHdrRHJhd01lZGlhVUlQYXJ0KE1lZGlhVm9sdW1lU2xpZGVyLCBt
ZWRpYUNvbnRyb2xsZXJUaGVtZSgpLCBwYWludEluZm8uY29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCksIHIsIGdldE1lZGlhVUlQYXJ0U3RhdGVGbGFncyhub2RlKSk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorICAgIAorYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRo
dW1iKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgSW50UmVjdCYgcikKK3sKKyAgICBOb2RlKiBub2RlID0gby0+bm9kZSgpOwor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTG9jYWxDdXJyZW50
R3JhcGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChwYWludEluZm8uY29udGV4dCk7CisgICAgd2tE
cmF3TWVkaWFVSVBhcnQoTWVkaWFWb2x1bWVTbGlkZXJUaHVtYiwgbWVkaWFDb250cm9sbGVyVGhl
bWUoKSwgcGFpbnRJbmZvLmNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCByLCBnZXRNZWRpYVVJ
UGFydFN0YXRlRmxhZ3Mobm9kZSkpOworICAgIHJldHVybiBmYWxzZTsKK30KKyAgICAKIFN0cmlu
ZyBSZW5kZXJUaGVtZU1hYzo6ZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCiB7CiAjaWYg
UExBVEZPUk0oTUFDKQpAQCAtMTkwNCwxNiArMTkzOSwzNyBAQCBTdHJpbmcgUmVuZGVyVGhlbWVN
YWM6OmV4dHJhTWVkaWFDb250cm9sCiAKIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnNob3VsZFJlbmRl
ck1lZGlhQ29udHJvbFBhcnQoQ29udHJvbFBhcnQgcGFydCwgRWxlbWVudCogZWxlbWVudCkKIHsK
LSAgICBpZiAocGFydCA9PSBNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uUGFydCkgewot
CisgICAgc3dpdGNoIChwYXJ0KSB7CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
clBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYVZv
bHVtZVNsaWRlck11dGVCdXR0b25QYXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVt
YlBhcnQ6IHsKKyAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KGVsZW1lbnQpOworICAgICAgICByZXR1cm4gbWVkaWFD
b250cm9sbGVyVGhlbWUoKSA9PSBNZWRpYUNvbnRyb2xsZXJUaGVtZVF1aWNrVGltZSAmJiBtZWRp
YUVsZW1lbnQtPmhhc0F1ZGlvKCk7CisgICAgfQorICAgIGNhc2UgTWVkaWFUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvblBhcnQ6CiAgICAgICAgIC8vIFdlIHJlbHkgb24gUVRLaXQgdG8gcmVuZGVy
IGNhcHRpb25zIHNvIGRvbid0IGVuYWJsZSB0aGUgYnV0dG9uIHVubGVzcyBpdCB3aWxsIGJlIGFi
bGUgdG8gZG8gc28uCiAgICAgICAgIGlmICghZWxlbWVudC0+aGFzVGFnTmFtZSh2aWRlb1RhZykp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogCiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaG91bGRSZW5kZXJNZWRpYUNvbnRy
b2xQYXJ0KHBhcnQsIGVsZW1lbnQpOwogfQogCitJbnRQb2ludCBSZW5kZXJUaGVtZU1hYzo6dm9s
dW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oTm9kZSogbXV0ZUJ1dHRvbiwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkgY29uc3QKK3sKKyAgICBzdGF0aWMgY29uc3QgaW50IHhPZmZzZXQgPSAtNDsK
KyAgICBzdGF0aWMgY29uc3QgaW50IHlPZmZzZXQgPSA1OworCisgICAgaW50IHkgPSBtdXRlQnV0
dG9uLT5yZW5kZXJCb3goKS0+b2Zmc2V0SGVpZ2h0KCkgKyB5T2Zmc2V0IC0gc2l6ZS5oZWlnaHQo
KTsKKyAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbi0+cmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCktPm9mZnNldExl
ZnQoKSwgeSksIHRydWUsIHRydWUpOworICAgIGlmIChhYnNQb2ludC55KCkgPCAwKQorICAgICAg
ICB5ID0gbXV0ZUJ1dHRvbi0+cmVuZGVyQm94KCktPmhlaWdodCgpOworICAgIHJldHVybiBJbnRQ
b2ludCh4T2Zmc2V0LCB5KTsKK30KKwogI2VuZGlmIC8vIEVOQUJMRShWSURFTykKIAogTlNQb3BV
cEJ1dHRvbkNlbGwqIFJlbmRlclRoZW1lTWFjOjpwb3B1cEJ1dHRvbigpIGNvbnN0CkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHJldmlz
aW9uIDYxMTg2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAw
MCBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIEFudHRp
IEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIERpcmsg
TXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgR3Jh
aGFtIERlbm5pcyAoZ3JhaGFtLmRlbm5pc0BnbWFpbC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9y
Y2htb2JpbGUuY29tLykKICAqCkBAIC03MCw3ICs3MCw4IEBAIGVudW0gUHNldWRvSWQgewogICAg
IE5PUFNFVURPLCBGSVJTVF9MSU5FLCBGSVJTVF9MRVRURVIsIEJFRk9SRSwgQUZURVIsIFNFTEVD
VElPTiwgRklSU1RfTElORV9JTkhFUklURUQsIFNDUk9MTEJBUiwgRklMRV9VUExPQURfQlVUVE9O
LCBJTlBVVF9QTEFDRUhPTERFUiwKICAgICBTTElERVJfVEhVTUIsIFNFQVJDSF9DQU5DRUxfQlVU
VE9OLCBTRUFSQ0hfREVDT1JBVElPTiwgU0VBUkNIX1JFU1VMVFNfREVDT1JBVElPTiwgU0VBUkNI
X1JFU1VMVFNfQlVUVE9OLCBNRURJQV9DT05UUk9MU19QQU5FTCwKICAgICBNRURJQV9DT05UUk9M
U19QTEFZX0JVVFRPTiwgTUVESUFfQ09OVFJPTFNfTVVURV9CVVRUT04sIE1FRElBX0NPTlRST0xT
X1RJTUVMSU5FLCBNRURJQV9DT05UUk9MU19USU1FTElORV9DT05UQUlORVIsCi0gICAgTUVESUFf
Q09OVFJPTFNfVk9MVU1FX1NMSURFUiwgTUVESUFfQ09OVFJPTFNfVk9MVU1FX1NMSURFUl9DT05U
QUlORVIsIE1FRElBX0NPTlRST0xTX0NVUlJFTlRfVElNRV9ESVNQTEFZLCBNRURJQV9DT05UUk9M
U19USU1FX1JFTUFJTklOR19ESVNQTEFZLCAKKyAgICBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJ
REVSLCBNRURJQV9DT05UUk9MU19WT0xVTUVfU0xJREVSX0NPTlRBSU5FUiwgTUVESUFfQ09OVFJP
TFNfVk9MVU1FX1NMSURFUl9NVVRFX0JVVFRPTiwgCisgICAgTUVESUFfQ09OVFJPTFNfQ1VSUkVO
VF9USU1FX0RJU1BMQVksIE1FRElBX0NPTlRST0xTX1RJTUVfUkVNQUlOSU5HX0RJU1BMQVksIAog
ICAgIE1FRElBX0NPTlRST0xTX1NFRUtfQkFDS19CVVRUT04sIE1FRElBX0NPTlRST0xTX1NFRUtf
Rk9SV0FSRF9CVVRUT04sIE1FRElBX0NPTlRST0xTX0ZVTExTQ1JFRU5fQlVUVE9OLCBNRURJQV9D
T05UUk9MU19SRVdJTkRfQlVUVE9OLCAKICAgICBNRURJQV9DT05UUk9MU19SRVRVUk5fVE9fUkVB
TFRJTUVfQlVUVE9OLCBNRURJQV9DT05UUk9MU19UT0dHTEVfQ0xPU0VEX0NBUFRJT05TX0JVVFRP
TiwKICAgICBNRURJQV9DT05UUk9MU19TVEFUVVNfRElTUExBWSwgU0NST0xMQkFSX1RIVU1CLCBT
Q1JPTExCQVJfQlVUVE9OLCBTQ1JPTExCQVJfVFJBQ0ssIFNDUk9MTEJBUl9UUkFDS19QSUVDRSwg
U0NST0xMQkFSX0NPUk5FUiwgUkVTSVpFUiwK
</data>
<flag name="review"
          id="48310"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>