<?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>87569</bug_id>
          
          <creation_ts>2012-05-25 22:22:46 -0700</creation_ts>
          <short_desc>[BlackBerry] Add a default tap highlight</short_desc>
          <delta_ts>2012-05-28 11:54: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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87566</dependson>
    
    <dependson>87567</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Arvid Nilsson">anilsson</reporter>
          <assigned_to name="Arvid Nilsson">anilsson</assigned_to>
          <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>634587</commentid>
    <comment_count>0</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-25 22:22:46 -0700</bug_when>
    <thetext>We used to require the embedder to implement tap highlight drawing.
            Now, a default tap highlight, implemented using the recently added
            accelerated compositing overlay layer support, can be used instead.
    
            The tap highlight zooms in when it appears, to provide visible feedback
            even though your finger obscures the whole link, and fades out when
            hidden. The appearance of the default tap highlight is not final.
    
            The default tap highlight can be overridden using the new
            WebPage::setTapHighlight() method.
    
            Reviewed by Mike Lattanzio and Mike Fenton.

Also

commit b4d678e9f2234041e2ccecea60968eca5ca0cf50
Author: Arvid Nilsson &lt;anilsson@rim.com&gt;
Date:   Tue May 8 17:47:14 2012 +0200

    2012-05-08  Arvid Nilsson  &lt;anilsson@rim.com&gt;
    
            Fix simulator build after AC change
    
            Reviewed by Commit Bot.
    
            * Api/WebPage_p.h:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634746</commentid>
    <comment_count>1</comment_count>
      <attachid>144231</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 06:43:34 -0700</bug_when>
    <thetext>Created attachment 144231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635244</commentid>
    <comment_count>2</comment_count>
    <who name="Mike Fenton">mifenton</who>
    <bug_when>2012-05-28 08:25:47 -0700</bug_when>
    <thetext>Reviewed internally, no new issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635297</commentid>
    <comment_count>3</comment_count>
      <attachid>144231</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-28 09:52:47 -0700</bug_when>
    <thetext>Comment on attachment 144231
Patch

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

Looks good.

&gt; Source/WebKit/blackberry/Api/WebTapHighlight.h:33
&gt; +    virtual void draw(const Platform::IntRectRegion&amp;, int red, int green, int blue, int alpha, bool hideAfterScroll) = 0;

Have you considered RGBA32?

&gt; Source/WebKit/blackberry/WebKitSupport/DefaultTapHighlight.cpp:37
&gt; +#include &lt;SkCornerPathEffect.h&gt;

Is this one needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635314</commentid>
    <comment_count>4</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-28 10:31:57 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 144231 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144231&amp;action=review
&gt; 
&gt; Looks good.
&gt; 
&gt; &gt; Source/WebKit/blackberry/Api/WebTapHighlight.h:33
&gt; &gt; +    virtual void draw(const Platform::IntRectRegion&amp;, int red, int green, int blue, int alpha, bool hideAfterScroll) = 0;
&gt; 
&gt; Have you considered RGBA32?
&gt; 

In this case, it&apos;s public api, and there&apos;s no public color class or typedef afaik. The reason four inta are used, and not oe int, or 4 chars, is that the method signature is modelled after the old WebPageClient::drawTapHighlight() method. Or was it showTapHighlight?

&gt; &gt; Source/WebKit/blackberry/WebKitSupport/DefaultTapHighlight.cpp:37
&gt; &gt; +#include &lt;SkCornerPathEffect.h&gt;
&gt; 
&gt; Is this one needed?

Nope, this one is popping up like a jack in the box, I&apos;ll have to upload a new patch without it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635347</commentid>
    <comment_count>5</comment_count>
      <attachid>144231</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 11:54:13 -0700</bug_when>
    <thetext>Comment on attachment 144231
Patch

Clearing flags on attachment: 144231

Committed r118701: &lt;http://trac.webkit.org/changeset/118701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635348</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 11:54:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144231</attachid>
            <date>2012-05-27 06:43:34 -0700</date>
            <delta_ts>2012-05-28 11:54:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87569-20120527154332.patch</filename>
            <type>text/plain</type>
            <size>20460</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjMzYyNzE1MDFjZmJmMzhi
OTc4NzhkZmNkMGU1OGQzZDE3MzNlZTQuLjk1MmVjNDhhNjdiZjczNzBmMzA2Nzc3OGE1Yjg5MWYx
N2E4NGY5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDUtMjcgIEFydmlkIE5p
bHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBBZGQgYSBk
ZWZhdWx0IHRhcCBoaWdobGlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg3NTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIERlZmF1bHRUYXBIaWdobGlnaHQgdG8gdGhlIGJ1aWxkIHN5c3RlbQor
CisgICAgICAgIFJldmlld2VkIGludGVybmFsbHkgYnkgTWlrZSBMYXR0YW56aW8gYW5kIE1pa2Ug
RmVudG9uLgorCisgICAgICAgIFBSICMxNTQzMjkKKworICAgICAgICAqIFBsYXRmb3JtQmxhY2tC
ZXJyeS5jbWFrZToKKwogMjAxMi0wNS0yNCAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5j
b20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEltcGxlbWVudCBzZWxlY3QgcG9wdXAgYW5kIHJl
bW92ZSBvbGQgaG9vayB0byBhaXIgcG9wdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmlu
ZGV4IDA2ZGNhNWUyODY5NTM5OWMxODk4MWU2YmMwZjU2NWExOTcyY2E1MGYuLmQwMDY5YTVlNzZk
ZDAzM2E0NmYwNWQ1MWMwNWNlODkwMDI4MWJkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDEyLTA1LTI3ICBBcnZpZCBOaWxzc29uICA8YW5pbHNz
b25AcmltLmNvbT4KIAorICAgICAgICBbQmxhY2tCZXJyeV0gQWRkIGEgZGVmYXVsdCB0YXAgaGln
aGxpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NzU2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IHVzZWQgdG8gcmVxdWlyZSB0aGUgZW1iZWRkZXIgdG8gaW1wbGVtZW50IHRhcCBoaWdobGlnaHQg
ZHJhd2luZy4KKyAgICAgICAgTm93LCBhIGRlZmF1bHQgdGFwIGhpZ2hsaWdodCwgaW1wbGVtZW50
ZWQgdXNpbmcgdGhlIHJlY2VudGx5IGFkZGVkCisgICAgICAgIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nIG92ZXJsYXkgbGF5ZXIgc3VwcG9ydCwgY2FuIGJlIHVzZWQgaW5zdGVhZC4KKworICAgICAg
ICBUaGUgdGFwIGhpZ2hsaWdodCBhcHBlYXJzIGluc3RhbnRseSBidXQgZmFkZXMgb3V0IHdoZW4g
aGlkZGVuLgorCisgICAgICAgIFRoZSBkZWZhdWx0IHRhcCBoaWdobGlnaHQgY2FuIGJlIG92ZXJy
aWRkZW4gdXNpbmcgdGhlIG5ldworICAgICAgICBXZWJQYWdlOjpzZXRUYXBIaWdobGlnaHQoKSBt
ZXRob2QuCisKKyAgICAgICAgUmV2aWV3ZWQgaW50ZXJuYWxseSBieSBNaWtlIExhdHRhbnppbyBh
bmQgTWlrZSBGZW50b24uCisKKyAgICAgICAgUFIgIzE1NDMyOQorCisgICAgICAgICogQXBpL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6
aW5pdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6OnRhcEhpZ2hsaWdo
dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQ
YWdlOjpzZXRUYXBIaWdobGlnaHQpOgorICAgICAgICAqIEFwaS9XZWJQYWdlLmg6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAqIEFwaS9XZWJQYWdlQ2xpZW50Lmg6CisgICAgICAgICogQXBp
L1dlYlBhZ2VfcC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJQYWdlUHJpdmF0
ZSk6CisgICAgICAgICogQXBpL1dlYlRhcEhpZ2hsaWdodC5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0Ojpm
YWRlQW5pbWF0aW9uTmFtZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRU
YXBIaWdobGlnaHQ6OkRlZmF1bHRUYXBIaWdobGlnaHQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpEZWZhdWx0VGFwSGlnaGxpZ2h0Ojp+RGVmYXVsdFRhcEhpZ2hsaWdodCk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRUYXBIaWdobGlnaHQ6OmRyYXcpOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEZWZhdWx0VGFwSGlnaGxpZ2h0OjpoaWRlKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RGVmYXVsdFRhcEhpZ2hsaWdodDo6bm90aWZ5U3lu
Y1JlcXVpcmVkKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RGVmYXVsdFRhcEhpZ2hs
aWdodDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFw
SGlnaGxpZ2h0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKERlZmF1bHRU
YXBIaWdobGlnaHQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEZWZhdWx0VGFwSGln
aGxpZ2h0OjpjcmVhdGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEZWZhdWx0VGFw
SGlnaGxpZ2h0Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6RGVmYXVsdFRhcEhpZ2hsaWdodDo6c2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRUYXBIaWdobGlnaHQ6OnNob3dSZXBhaW50Q291
bnRlcik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRUYXBIaWdobGlnaHQ6
OmNvbnRlbnRzVmlzaWJsZSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9Ub3VjaEV2ZW50SGFu
ZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlRvdWNoRXZlbnRIYW5kbGVy
OjpkcmF3VGFwSGlnaGxpZ2h0KToKKworMjAxMi0wNS0yNyAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxz
c29uQHJpbS5jb20+CisKICAgICAgICAgW0JsYWNrQmVycnldIEFkZCBhbiBvdmVybGF5IGxheWVy
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzU2Nwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZSBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4IGVmOTM1MjEyZDE5YTFl
ZDc5NjFhZTIyNTU1OTM4MjJlMDBjY2UyOTAuLmEzOTFlMWI5ZGU4OGFkYTEwMTRmY2Y3NmFlYTdj
OTcxYjZlOTgxODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCkBAIC04
MCw2ICs4MCw3IEBAIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZUNvbXBvc2l0aW5nU3VyZmFjZS5jcHAKICAgICBibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFja2luZ1N0b3JlVGlsZS5jcHAKICAgICBibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvQmFja2luZ1N0b3JlQ2xpZW50LmNwcAorICAgIGJsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9ET01TdXBwb3J0LmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9GcmFt
ZUxheWVycy5jcHAKICAgICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5QYWdlU2VhcmNoTWFu
YWdlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDZk
MDJhMDkyZjVhNjRjMjg0NjljN2EyNzA3ZDRkYWZmMzRkNWI0N2MuLmExZWZlMTg5NjIwMWJkN2I2
NzA4YjQ4MjhmZDllMGU1ZGRiOTY5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlLmNwcApAQCAtMTMyLDYgKzEzMiw3IEBACiAjZW5kaWYKIAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKKyNpbmNsdWRlICJEZWZhdWx0VGFwSGlnaGxpZ2h0LmgiCiAjaW5j
bHVkZSAiRnJhbWVMYXllcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlQ29tcG9zaXRvcl9wLmgiCiAj
ZW5kaWYKQEAgLTUwNCw2ICs1MDUsMTAgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6aW5pdChjb25z
dCBXZWJTdHJpbmcmIHBhZ2VHcm91cE5hbWUpCiAgICAgbV93ZWJTZXR0aW5ncyA9IFdlYlNldHRp
bmdzOjpjcmVhdGVGcm9tU3RhbmRhcmRTZXR0aW5ncygpOwogICAgIG1fd2ViU2V0dGluZ3MtPnNl
dFVzZXJBZ2VudFN0cmluZyhkZWZhdWx0VXNlckFnZW50KCkpOwogCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorICAgIG1fdGFwSGlnaGxpZ2h0ID0gRGVmYXVsdFRhcEhpZ2hsaWdo
dDo6Y3JlYXRlKHRoaXMpOworI2VuZGlmCisKICAgICAvLyBGSVhNRTogV2UgZXhwbGljaXRseSBj
YWxsIHNldERlbGVnYXRlKCkgaW5zdGVhZCBvZiBwYXNzaW5nIG91cnNlbGYgaW4gY3JlYXRlRnJv
bVN0YW5kYXJkU2V0dGluZ3MoKQogICAgIC8vIHNvIHRoYXQgd2Ugb25seSBnZXQgb25lIGRpZENo
YW5nZVNldHRpbmdzKCkgY2FsbGJhY2sgd2hlbiB3ZSBzZXQgdGhlIHBhZ2UgZ3JvdXAgbmFtZS4g
VGhpcyBjYXVzZXMgdXMKICAgICAvLyB0byBtYWtlIGEgY29weSBvZiB0aGUgV2ViU2V0dGluZ3Mg
c2luY2Ugc29tZSBXZWJTZXR0aW5ncyBtZXRob2QgbWFrZSB1c2Ugb2YgdGhlIHBhZ2UgZ3JvdXAg
bmFtZS4KQEAgLTYxODEsNiArNjE4NiwxNiBAQCBjb25zdCBTdHJpbmcmIFdlYlBhZ2VQcml2YXRl
OjpkZWZhdWx0VXNlckFnZW50KCkKICAgICByZXR1cm4gKmRlZmF1bHRVc2VyQWdlbnQ7CiB9CiAK
K1dlYlRhcEhpZ2hsaWdodCogV2ViUGFnZTo6dGFwSGlnaGxpZ2h0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZC0+bV90YXBIaWdobGlnaHQuZ2V0KCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2V0VGFw
SGlnaGxpZ2h0KFdlYlRhcEhpZ2hsaWdodCogdGFwSGlnaGxpZ2h0KQoreworICAgIGQtPm1fdGFw
SGlnaGxpZ2h0ID0gYWRvcHRQdHIodGFwSGlnaGxpZ2h0KTsKK30KKwogdm9pZCBXZWJQYWdlOjpw
b3B1cE9wZW5lZChQYWdlUG9wdXBCbGFja0JlcnJ5KiB3ZWJQb3B1cCkKIHsKICAgICBBU1NFUlQo
IWQtPm1fc2VsZWN0UG9wdXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaApp
bmRleCA4NmYzMWU0NmIwMDU0ZjlhYTdiNDg2ZTFmMWJiNzdmMTM5NWZmY2Y3Li5lOWM5M2NmNGZl
MGYzYWE0OTkyYThiZTgxMGViNDUxNGQwNzc3NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2UuaApAQCAtNjcsNiArNjcsNyBAQCBjbGFzcyBXZWJQYWdlQ29tcG9zaXRvcjsK
IGNsYXNzIFdlYlBhZ2VHcm91cExvYWREZWZlcnJlcjsKIGNsYXNzIFdlYlBhZ2VQcml2YXRlOwog
Y2xhc3MgV2ViU2V0dGluZ3M7CitjbGFzcyBXZWJUYXBIaWdobGlnaHQ7CiBjbGFzcyBXZWJWaWV3
cG9ydEFyZ3VtZW50czsKIAogZW51bSBKYXZhU2NyaXB0RGF0YVR5cGUgeyBKU1VuZGVmaW5lZCA9
IDAsIEpTTnVsbCwgSlNCb29sZWFuLCBKU051bWJlciwgSlNTdHJpbmcsIEpTT2JqZWN0LCBKU0V4
Y2VwdGlvbiwgSlNEYXRhVHlwZU1heCB9OwpAQCAtMzM0LDYgKzMzNSw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFVzZXJWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJWaWV3cG9ydEFyZ3VtZW50
cyYpOwogICAgIHZvaWQgcmVzZXRVc2VyVmlld3BvcnRBcmd1bWVudHMoKTsKIAorICAgIFdlYlRh
cEhpZ2hsaWdodCogdGFwSGlnaGxpZ2h0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRUYXBIaWdobGln
aHQoV2ViVGFwSGlnaGxpZ2h0Kik7CisKICAgICAvLyBQb3B1cCBjbGllbnQKICAgICB2b2lkIGlu
aXRQb3B1cFdlYlZpZXcoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlKik7CiAgICAgdm9pZCBw
b3B1cE9wZW5lZChXZWJDb3JlOjpQYWdlUG9wdXBCbGFja0JlcnJ5KiB3ZWJQb3B1cCk7CkBAIC0z
NDIsNiArMzQ2LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OlBhZ2VQb3B1cEJsYWNrQmVycnkq
IHBvcHVwKCk7CiAKICAgICB2b2lkIGF1dG9maWxsVGV4dEZpZWxkKGNvbnN0IHN0ZDo6c3RyaW5n
Jik7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB+V2ViUGFnZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCmluZGV4IDRjMTAyMDU2MzVjMmFjNTE4
ZmUxM2E3NDlmYzIwZDhkODEzYzdmYzYuLmZlZTRhNTk5OTZhODNiZWJhNDE4MzJiOTQ1NzQ1MWFm
OTA4OGQyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVu
dC5oCkBAIC0xMzIsOSArMTMyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlD
b250ZW50UmVuZGVyZWQoY29uc3QgUGxhdGZvcm06OkludFJlY3QmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeVNjcmVlblJvdGF0ZWQoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZHJh
d1RhcEhpZ2hsaWdodChjb25zdCBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiYsIGludCByZWQsIGlu
dCBncmVlbiwgaW50IGJsdWUsIGludCBhbHBoYSwgYm9vbCBoaWRlQWZ0ZXJTY3JvbGwpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgaGlkZVRhcEhpZ2hsaWdodCgpID0gMDsKLQogICAgIHZpcnR1YWwg
dm9pZCBpbnB1dEZvY3VzR2FpbmVkKFBsYXRmb3JtOjpCbGFja0JlcnJ5SW5wdXRUeXBlLCBpbnQg
aW5wdXRTdHlsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnB1dEZvY3VzTG9zdCgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgaW5wdXRUZXh0Q2hhbmdlZCgpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IDlmMjBiZTAyZmEwNmI3ODQ4ZmVkYTc1OWE1
YjRmYzc5ZTRiZjc1YzEuLjlmZmYyMDFjMzFlZDRjZjU1OTc4MmNlNjY3MWNmZjAzODI0ZTAxMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgogI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV2ViVGFwSGlnaGxpZ2h0Lmgi
CiAKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1NZXNzYWdlLmg+CiAKQEAgLTQyLDYgKzQz
LDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEdlb2xvY2F0aW9uQ29u
dHJvbGxlckNsaWVudEJsYWNrQmVycnk7CiBjbGFzcyBKYXZhU2NyaXB0RGVidWdnZXJCbGFja0Jl
cnJ5OworY2xhc3MgTGF5ZXJXZWJLaXRUaHJlYWQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsK
IGNsYXNzIFBsdWdpblZpZXc7CkBAIC00MjksNiArNDMxLDcgQEAgcHVibGljOgogICAgIFdlYkNv
cmU6OkZyYW1lKiBtX21haW5GcmFtZTsKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbV9jdXJy
ZW50Q29udGV4dE5vZGU7CiAgICAgV2ViU2V0dGluZ3MqIG1fd2ViU2V0dGluZ3M7CisgICAgT3du
UHRyPFdlYlRhcEhpZ2hsaWdodD4gbV90YXBIaWdobGlnaHQ7CiAKICNpZiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikKICAgICBPd25QdHI8V2ViQ29yZTo6SmF2YVNjcmlwdERlYnVnZ2VyQmxh
Y2tCZXJyeT4gbV9zY3JpcHREZWJ1Z2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViVGFwSGlnaGxpZ2h0LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlRhcEhpZ2hsaWdodC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxZGQ3OGIxYzQ0YWNjYmI1MjhiMWZm
YjE1ZjY4OWJmZDdkZGZkNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlRhcEhpZ2hsaWdodC5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICog
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBXZWJUYXBIaWdobGlnaHRfaAor
I2RlZmluZSBXZWJUYXBIaWdobGlnaHRfaAorCisjaW5jbHVkZSAiQmxhY2tCZXJyeUdsb2JhbC5o
IgorCisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtSW50UmVjdFJlZ2lvbi5oPgorCituYW1l
c3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQkxBQ0tCRVJS
WV9FWFBPUlQgV2ViVGFwSGlnaGxpZ2h0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJUYXBI
aWdobGlnaHQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkcmF3KGNvbnN0IFBsYXRmb3JtOjpJ
bnRSZWN0UmVnaW9uJiwgaW50IHJlZCwgaW50IGdyZWVuLCBpbnQgYmx1ZSwgaW50IGFscGhhLCBi
b29sIGhpZGVBZnRlclNjcm9sbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgPSAwOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cit9IC8vIG5hbWVzcGFjZSBCbGFja0JlcnJ5CisK
KyNlbmRpZiAvLyBXZWJUYXBIaWdobGlnaHRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hsaWdodC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YTg1OWM0Y2MyOGI2NzUwZWUyYmNmN2M4ZGNmZDYxYjQxYmQxMWRkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVm
YXVsdFRhcEhpZ2hsaWdodC5jcHAKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisjaW5jbHVkZSAiRGVmYXVsdFRhcEhpZ2hsaWdodC5o
IgorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXll
ci5oIgorI2luY2x1ZGUgIkxheWVyQ29tcG9zaXRpbmdUaHJlYWQuaCIKKyNpbmNsdWRlICJMYXll
cldlYktpdFRocmVhZC5oIgorI2luY2x1ZGUgIlBhdGguaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUNv
bnRleHRTa2lhLmgiCisjaW5jbHVkZSAiU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKKyNpbmNs
dWRlICJXZWJQYWdlQ29tcG9zaXRvckNsaWVudC5oIgorI2luY2x1ZGUgIldlYlBhZ2VDb21wb3Np
dG9yX3AuaCIKKyNpbmNsdWRlICJXZWJQYWdlX3AuaCIKKworI2luY2x1ZGUgPEJsYWNrQmVycnlQ
bGF0Zm9ybU1lc3NhZ2VDbGllbnQuaD4KKyNpbmNsdWRlIDxTa0Nvcm5lclBhdGhFZmZlY3QuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjb25zdCBkb3VibGUgQWN0aXZlVGV4dEZhZGVBbmltYXRpb25E
dXJhdGlvbiA9IDAuMzsKKworc3RhdGljIGNvbnN0IGNoYXIqIGZhZGVBbmltYXRpb25OYW1lKCkg
eyByZXR1cm4gImZhZGUiOyB9CisKK0RlZmF1bHRUYXBIaWdobGlnaHQ6OkRlZmF1bHRUYXBIaWdo
bGlnaHQoV2ViUGFnZVByaXZhdGUqIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKKyAgICAsIG1f
dmlzaWJsZShmYWxzZSkKK3sKK30KKworRGVmYXVsdFRhcEhpZ2hsaWdodDo6fkRlZmF1bHRUYXBI
aWdobGlnaHQoKQoreworfQorCit2b2lkIERlZmF1bHRUYXBIaWdobGlnaHQ6OmRyYXcoY29uc3Qg
UGxhdGZvcm06OkludFJlY3RSZWdpb24mIHJlZ2lvbiwgaW50IHJlZCwgaW50IGdyZWVuLCBpbnQg
Ymx1ZSwgaW50IGFscGhhLCBib29sIGhpZGVBZnRlclNjcm9sbCkKK3sKKyAgICBBU1NFUlQoQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OndlYktpdFRocmVhZE1lc3NhZ2VDbGllbnQoKS0+aXNDdXJyZW50
VGhyZWFkKCkpOworCisgICAgbV9yZWdpb24gPSByZWdpb247CisgICAgbV9jb2xvciA9IENvbG9y
KHJlZCwgZ3JlZW4sIGJsdWUsIHN0ZDo6bWluKDEyOCwgYWxwaGEpKTsKKyAgICBJbnRSZWN0IHJl
Y3QgPSBtX3JlZ2lvbi5leHRlbnRzKCk7CisgICAgaWYgKHJlY3QuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3Zpc2libGUgPSB0cnVlOworCisgICAgaWYgKCFtX2xheWVyKSB7
CisgICAgICAgIG1fbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcyk7CisgICAgICAg
IG1fcGFnZS0+b3ZlcmxheUxheWVyKCktPmFkZENoaWxkKG1fbGF5ZXIuZ2V0KCkpOworICAgIH0K
KworICAgIG1fbGF5ZXItPnNldFBvc2l0aW9uKHJlY3QubG9jYXRpb24oKSk7CisgICAgbV9sYXll
ci0+c2V0U2l6ZShyZWN0LnNpemUoKSk7CisgICAgbV9sYXllci0+c2V0RHJhd3NDb250ZW50KHRy
dWUpOworICAgIG1fbGF5ZXItPnJlbW92ZUFuaW1hdGlvbihmYWRlQW5pbWF0aW9uTmFtZSgpKTsK
KyAgICBtX2xheWVyLT5zZXRPcGFjaXR5KDEuMCk7CisgICAgbV9sYXllci0+c2V0TmVlZHNEaXNw
bGF5KCk7Cit9CisKK3ZvaWQgRGVmYXVsdFRhcEhpZ2hsaWdodDo6aGlkZSgpCit7CisgICAgaWYg
KCFtX2xheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGlzIGFuaW1hdGlvbiBuZWVk
cyB0byBiZSBjcmVhdGVkIGFuZXcgZWFjaCB0aW1lLCBzaW5jZQorICAgIC8vIHRoZSBtZXRob2Qg
bWF5IGJlIGNhbGxlZCBvbiBkaWZmZXJlbmQgdGhyZWFkcy4KKyAgICBSZWZQdHI8QW5pbWF0aW9u
PiBmYWRlQW5pbWF0aW9uID0gQW5pbWF0aW9uOjpjcmVhdGUoKTsKKyAgICBmYWRlQW5pbWF0aW9u
LT5zZXREdXJhdGlvbihBY3RpdmVUZXh0RmFkZUFuaW1hdGlvbkR1cmF0aW9uKTsKKyAgICBLZXlm
cmFtZVZhbHVlTGlzdCBrZXlmcmFtZXMoQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkpOworICAgIGtl
eWZyYW1lcy5pbnNlcnQobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoMCwgMS4wKSk7CisgICAga2V5
ZnJhbWVzLmluc2VydChuZXcgRmxvYXRBbmltYXRpb25WYWx1ZSgxLjAsIDApKTsKKworICAgIC8v
IE5vcm1hbGx5LCB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIFdlYktpdCB0aHJlYWQsIGJ1
dCBpdCBjYW4gYWxzbyBiZQorICAgIC8vIGNhbGxlZCBmcm9tIHRoZSBjb21wb3NpdGluZyB0aHJl
YWQuCisgICAgaWYgKEJsYWNrQmVycnk6OlBsYXRmb3JtOjp3ZWJLaXRUaHJlYWRNZXNzYWdlQ2xp
ZW50KCktPmlzQ3VycmVudFRocmVhZCgpKSB7CisgICAgICAgIGlmICghbV92aXNpYmxlKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3Zpc2libGUgPSBmYWxzZTsKKyAgICAgICAgbV9s
YXllci0+YWRkQW5pbWF0aW9uKGtleWZyYW1lcywgbV9yZWdpb24uZXh0ZW50cygpLnNpemUoKSwg
ZmFkZUFuaW1hdGlvbi5nZXQoKSwgZmFkZUFuaW1hdGlvbk5hbWUoKSwgMC4wKTsKKyAgICB9IGVs
c2UgaWYgKEJsYWNrQmVycnk6OlBsYXRmb3JtOjp1c2VySW50ZXJmYWNlVGhyZWFkTWVzc2FnZUNs
aWVudCgpLT5pc0N1cnJlbnRUaHJlYWQoKSkgeworICAgICAgICBSZWZQdHI8TGF5ZXJBbmltYXRp
b24+IGFuaW1hdGlvbiA9IExheWVyQW5pbWF0aW9uOjpjcmVhdGUoa2V5ZnJhbWVzLCBtX3JlZ2lv
bi5leHRlbnRzKCkuc2l6ZSgpLCBmYWRlQW5pbWF0aW9uLmdldCgpLCBmYWRlQW5pbWF0aW9uTmFt
ZSgpLCAwLjApOworICAgICAgICBpZiAoV2ViUGFnZUNvbXBvc2l0b3JDbGllbnQqIGNvbXBvc2l0
b3JDbGllbnQgPSBtX3BhZ2UtPmNvbXBvc2l0b3IoKS0+Y2xpZW50KCkpIHsKKyAgICAgICAgICAg
IGRvdWJsZSBhbmltYXRpb25UaW1lID0gY29tcG9zaXRvckNsaWVudC0+cmVxdWVzdEFuaW1hdGlv
bkZyYW1lKCk7CisgICAgICAgICAgICBjb21wb3NpdG9yQ2xpZW50LT5pbnZhbGlkYXRlKGFuaW1h
dGlvblRpbWUpOworICAgICAgICB9CisgICAgICAgIC8vIEZJWE1FOiBVbmZvcnR1bmF0ZWx5IFdl
YlBhZ2VDb21wb3NpdG9yQ2xpZW50OjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdXNlcyBhIGRpZmZl
cmVudCB0aW1lIGNvb3JkaW5hdGUgc3lzdGVtCisgICAgICAgIC8vIHRoYW4gYWNjZWxlcmF0ZWQg
YW5pbWF0aW9ucywgc28gd2UgY2FuJ3QgdXNlIHRoZSB0aW1lIHJldHVybmVkIGJ5IFJBRiBmb3Ig
c3RhcnR0aW1lLgorICAgICAgICBhbmltYXRpb24tPnNldFN0YXJ0VGltZShjdXJyZW50VGltZSgp
KTsKKyAgICAgICAgbV9sYXllci0+cGxhdGZvcm1MYXllcigpLT5sYXllckNvbXBvc2l0aW5nVGhy
ZWFkKCktPmFkZEFuaW1hdGlvbihhbmltYXRpb24uZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBE
ZWZhdWx0VGFwSGlnaGxpZ2h0Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXll
ciopCit7CisgICAgbV9wYWdlLT5zY2hlZHVsZVJvb3RMYXllckNvbW1pdCgpOworfQorCit2b2lk
IERlZmF1bHRUYXBIaWdobGlnaHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllcios
IEdyYXBoaWNzQ29udGV4dCYgYywgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IElu
dFJlY3QmIC8qaW5DbGlwKi8pCit7CisgICAgc3RkOjp2ZWN0b3I8UGxhdGZvcm06OkludFJlY3Q+
IHJlY3RzID0gbV9yZWdpb24ucmVjdHMoKTsKKyAgICBQbGF0Zm9ybTo6SW50UmVjdCByZWN0ID0g
bV9yZWdpb24uZXh0ZW50cygpOworICAgIFNrUmVnaW9uIHdpbmRvd1JlZ2lvbjsKKworICAgIHVu
c2lnbmVkIHJlY3RDb3VudCA9IG1fcmVnaW9uLm51bVJlY3RzKCk7CisgICAgaWYgKCFyZWN0Q291
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWN0
Q291bnQ7ICsraSkgeworICAgICAgICBQbGF0Zm9ybTo6SW50UmVjdCByZWN0VG9QYWludCA9IHJl
Y3RzW2ldOworICAgICAgICBTa0lSZWN0IHIgPSBTa0lSZWN0OjpNYWtlWFlXSChyZWN0VG9QYWlu
dC54KCksIHJlY3RUb1BhaW50LnkoKSwgcmVjdFRvUGFpbnQud2lkdGgoKSwgcmVjdFRvUGFpbnQu
aGVpZ2h0KCkpOworICAgICAgICB3aW5kb3dSZWdpb24ub3AociwgU2tSZWdpb246OmtVbmlvbl9P
cCk7CisgICAgfQorCisgICAgU2tQYXRoIHBhdGhUb1BhaW50OworICAgIHdpbmRvd1JlZ2lvbi5n
ZXRCb3VuZGFyeVBhdGgoJnBhdGhUb1BhaW50KTsKKworICAgIFBhdGggcGF0aChwYXRoVG9QYWlu
dCk7CisgICAgYy5zYXZlKCk7CisgICAgYy50cmFuc2xhdGUoLXJlY3QueCgpLCAtcmVjdC55KCkp
OworCisgICAgLy8gRHJhdyB0YXAgaGlnaGxpZ2h0CisgICAgYy5zZXRGaWxsQ29sb3IobV9jb2xv
ciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgYy5maWxsUGF0aChwYXRoKTsKKyAgICBDb2xv
ciBkYXJrZXIgPSBDb2xvcihtX2NvbG9yLnJlZCgpLCBtX2NvbG9yLmdyZWVuKCksIG1fY29sb3Iu
Ymx1ZSgpKTsgLy8gR2V0IHJpZCBvZiBhbHBoYS4KKyAgICBjLnNldFN0cm9rZUNvbG9yKGRhcmtl
ciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgYy5zZXRTdHJva2VUaGlja25lc3MoMSk7Cisg
ICAgYy5zdHJva2VQYXRoKHBhdGgpOworICAgIGMucmVzdG9yZSgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKK30gLy8gbmFtZXNwYWNlIEJsYWNrQmVycnkKKworI2VuZGlmIC8vIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNDY2OTRjMTE3MTNmMzFlZTllMDgzZDYyN2M2OWMyZWE3NzJkODQ0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhp
Z2hsaWdodC5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw
MTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBEZWZhdWx0VGFwSGlnaGxpZ2h0X2gKKyNkZWZpbmUg
RGVmYXVsdFRhcEhpZ2hsaWdodF9oCisKKyNpbmNsdWRlICJCbGFja0JlcnJ5R2xvYmFsLmgiCisK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKKyNpbmNsdWRlICJDb2xvci5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2xpZW50
LmgiCisjaW5jbHVkZSAiV2ViVGFwSGlnaGxpZ2h0LmgiCisjaW5jbHVkZSA8QmxhY2tCZXJyeVBs
YXRmb3JtSW50UmVjdFJlZ2lvbi5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25h
bWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdl
UHJpdmF0ZTsKKworY2xhc3MgRGVmYXVsdFRhcEhpZ2hsaWdodCA6IHB1YmxpYyBXZWJUYXBIaWdo
bGlnaHQsIHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxEZWZhdWx0VGFwSGlnaGxpZ2h0PiBjcmVhdGUoV2ViUGFnZVBy
aXZhdGUqIHBhZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERlZmF1bHRU
YXBIaWdobGlnaHQocGFnZSkpOworICAgIH0KKworICAgIHZpcnR1YWwgfkRlZmF1bHRUYXBIaWdo
bGlnaHQoKTsKKworICAgIHZpcnR1YWwgdm9pZCBkcmF3KGNvbnN0IFBsYXRmb3JtOjpJbnRSZWN0
UmVnaW9uJiwgaW50IHJlZCwgaW50IGdyZWVuLCBpbnQgYmx1ZSwgaW50IGFscGhhLCBib29sIGhp
ZGVBZnRlclNjcm9sbCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKKworICAgIC8vIEdyYXBo
aWNzTGF5ZXJDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3Vu
dGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorCisjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKKyAgICB2aXJ0dWFsIGJvb2wgY29udGVudHNW
aXNpYmxlKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjb250ZW50UmVjdCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorI2VuZGlmCisKKworcHJp
dmF0ZToKKyAgICBEZWZhdWx0VGFwSGlnaGxpZ2h0KFdlYlBhZ2VQcml2YXRlKik7CisKKyAgICBX
ZWJQYWdlUHJpdmF0ZSogbV9wYWdlOworICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVy
PiBtX2xheWVyOworICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIG1fcmVn
aW9uOworICAgIFdlYkNvcmU6OkNvbG9yIG1fY29sb3I7CisgICAgYm9vbCBtX3Zpc2libGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK30gLy8gbmFtZXNwYWNlIEJsYWNrQmVycnkKKwor
I2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKworI2VuZGlmIC8vIERlZmF1
bHRUYXBIaWdobGlnaHRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvVG91Y2hFdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvVG91Y2hFdmVudEhhbmRsZXIuY3BwCmluZGV4IGY0Njg0NjRlZDdm
Y2NiZjU1ZGM0NWU4ZjY5ZjBjZjQ0ZmUwNzk2M2IuLjMyOTUyMzU2ZjEzZDQ5OWVkYWYxZmM4NDhj
YjdkYTFhYWM5N2Q3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L1RvdWNoRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9Ub3VjaEV2ZW50SGFuZGxlci5jcHAKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVkZSAiU2VsZWN0
aW9uSGFuZGxlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgorI2luY2x1ZGUgIldlYlRhcEhp
Z2hsaWdodC5oIgogCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtMzg5LDEyICsz
OTAsOSBAQCB2b2lkIFRvdWNoRXZlbnRIYW5kbGVyOjpkcmF3VGFwSGlnaGxpZ2h0KCkKIAogICAg
IENvbG9yIGhpZ2hsaWdodENvbG9yID0gZWxlbWVudC0+cmVuZGVyU3R5bGUoKS0+dGFwSGlnaGxp
Z2h0Q29sb3IoKTsKIAotICAgIG1fd2ViUGFnZS0+bV9jbGllbnQtPmRyYXdUYXBIaWdobGlnaHQo
cmVnaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxp
Z2h0Q29sb3IucmVkKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoaWdobGlnaHRDb2xvci5ncmVlbigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGlnaGxpZ2h0Q29sb3IuYmx1ZSgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0Q29sb3IuYWxwaGEoKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEhpZGVUYXBIaWdobGlnaHRSaWdo
dEFmdGVyU2Nyb2xsaW5nKTsKKyAgICBtX3dlYlBhZ2UtPm1fdGFwSGlnaGxpZ2h0LT5kcmF3KHJl
Z2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodENvbG9y
LnJlZCgpLCBoaWdobGlnaHRDb2xvci5ncmVlbigpLCBoaWdobGlnaHRDb2xvci5ibHVlKCksIGhp
Z2hsaWdodENvbG9yLmFscGhhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaG91bGRIaWRlVGFwSGlnaGxpZ2h0UmlnaHRBZnRlclNjcm9sbGluZyk7CiB9CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>