<?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>29085</bug_id>
          
          <creation_ts>2009-09-09 07:17:38 -0700</creation_ts>
          <short_desc>Make PlatformWindow return something else than PlatformWidget</short_desc>
          <delta_ts>2009-09-18 10:35:24 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>hyatt</cc>
    
    <cc>kevin.rogovin</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>ukai</cc>
    
    <cc>vestbo</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145730</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-09-09 07:17:38 -0700</bug_when>
    <thetext>For the Qt port we would like to differentiate the return type of platformWidget and platformWindow, so that we can typedef that to something else.

In particular we would like to use platformWindow to return a QWebPageClient.

Since the platformWindow is per page, I would additionally like to rename it to platformChromeClient or platformPageClient. Any objections to such a change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145752</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-09-09 07:59:59 -0700</bug_when>
    <thetext>You should talk to Hyatt about this change. He added the PlatformWindow stuff, I believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146239</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-09-10 10:02:51 -0700</bug_when>
    <thetext>Seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147863</commentid>
    <comment_count>3</comment_count>
      <attachid>39712</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-09-17 11:27:48 -0700</bug_when>
    <thetext>Created attachment 39712
Make PlatformWindow return something else than PlatformWidget</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148099</commentid>
    <comment_count>4</comment_count>
      <attachid>39712</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-09-18 07:19:45 -0700</bug_when>
    <thetext>Comment on attachment 39712
Make PlatformWindow return something else than PlatformWidget

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148103</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-09-18 07:20:34 -0700</bug_when>
    <thetext>Eric, does this require any changes in Chromium? How can we synchronize the landing with the changes needed in Chromium?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148128</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-09-18 07:42:09 -0700</bug_when>
    <thetext>Adding Darin (fishd).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148213</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-09-18 09:20:50 -0700</bug_when>
    <thetext>This requires a small renaming change in the Chromium repository.  Fortunately, we always return NULL for the platformWidget.  So, the fixup on our end should just be about renaming the ChromeClient method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148214</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-09-18 09:28:26 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; This requires a small renaming change in the Chromium repository.  Fortunately,
&gt; we always return NULL for the platformWidget.  So, the fixup on our end should
&gt; just be about renaming the ChromeClient method.

That said, is it OK with you that I commit this right away?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148229</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-09-18 10:31:36 -0700</bug_when>
    <thetext>We&apos;ll be able to cope.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148231</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-09-18 10:35:06 -0700</bug_when>
    <thetext>Thansk! Landed in 48511</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39712</attachid>
            <date>2009-09-17 11:27:48 -0700</date>
            <delta_ts>2009-09-18 07:19:45 -0700</delta_ts>
            <desc>Make PlatformWindow return something else than PlatformWidget</desc>
            <filename>0001-Make-PlatformWindow-return-something-else-than-Platf.patch</filename>
            <type>text/plain</type>
            <size>56094</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">RnJvbSA4YzlkN2YzN2Q0NjhmNTM4YTM4ZTM2Yzc0MTU1OTI1MTRlZTc4YWU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3
ZWJraXQub3JnPgpEYXRlOiBUaHUsIDE3IFNlcCAyMDA5IDE0OjM3OjQwIC0wMzAwClN1YmplY3Q6
IFtQQVRDSF0gTWFrZSBQbGF0Zm9ybVdpbmRvdyByZXR1cm4gc29tZXRoaW5nIGVsc2UgdGhhbiBQ
bGF0Zm9ybVdpZGdldAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5
MDg1CgpQYXRjaCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiA8a2VubmV0aEB3ZWJraXQu
b3JnPiBvbiAyMDA5LTA5LTE3ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViQ29yZToK
Ck1ha2UgcGxhdGZvcm1XaW5kb3cgcmV0dXJuIGEgUGxhdGZvcm1QYWdlQ2xpZW50Cihmb3Igbm93
IHR5cGVkZWYnZWQgdG8gUGxhdGZvcm1XaWRnZXQpCgpBbHNvLCBjaGFuZ2UgdGhlIG5hbWUgb2Yg
cGxhdGZvcm1XaW5kb3cgdG8gcGxhdGZvcm1QYWdlQ2xpZW50KCkKCiogYWNjZXNzaWJpbGl0eS9n
dGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgooZ2V0UGFuZ29MYXlvdXRGb3JB
dGspOgoqIGFjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgooV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKToKKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CihXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50
KToKKiBwYWdlL0Nocm9tZS5jcHA6CihXZWJDb3JlOjpDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVu
dCk6CiogcGFnZS9DaHJvbWUuaDoKKiBwYWdlL0Nocm9tZUNsaWVudC5oOgoqIHBhZ2UvbWFjL0V2
ZW50SGFuZGxlck1hYy5tbToKKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudCk6CihX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQpOgooV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudCk6CihXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmV2ZW50TWF5U3RhcnREcmFnKToKKiBwbGF0Zm9ybS9Ib3N0V2luZG93Lmg6CiogcGxh
dGZvcm0vV2lkZ2V0Lmg6CiogcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcDoKKFdl
YkNvcmU6OmdldFZpc3VhbCk6CihXZWJDb3JlOjpzY3JlZW5SZWN0KToKKFdlYkNvcmU6OnNjcmVl
bkF2YWlsYWJsZVJlY3QpOgoqIHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgooV2ViQ29y
ZTo6UG9wdXBNZW51OjpzaG93KToKKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHA6CihX
ZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUFkZENoaWxkKToKKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQpOgooV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZUNv
bnRlbnRSZWN0KToKKiBwbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcDoKKFdlYkNvcmU6OldpZGdl
dDo6c2V0Rm9jdXMpOgooV2ViQ29yZTo6V2lkZ2V0OjpzZXRDdXJzb3IpOgoqIHBsYXRmb3JtL3F0
L1BsYXRmb3JtU2NyZWVuUXQuY3BwOgooV2ViQ29yZTo6c2NyZWVuRGVwdGgpOgooV2ViQ29yZTo6
c2NyZWVuRGVwdGhQZXJDb21wb25lbnQpOgooV2ViQ29yZTo6c2NyZWVuSXNNb25vY2hyb21lKToK
KFdlYkNvcmU6OnNjcmVlblJlY3QpOgooV2ViQ29yZTo6c2NyZWVuQXZhaWxhYmxlUmVjdCk6Ciog
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwOgooV2ViQ29yZTo6UG9wdXBNZW51OjpzaG93KToK
KiBwbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHA6CihXZWJDb3JlOjpXaWRnZXQ6OnNldEN1cnNvcik6
CiogcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcDoKKFdlYkNvcmU6Om1vbml0b3JJ
bmZvRm9yV2lkZ2V0KToKKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcDoKKFdlYkNvcmU6
OlBvcHVwTWVudTo6c2hvdyk6CihXZWJDb3JlOjpQb3B1cE1lbnU6OmNhbGN1bGF0ZVBvc2l0aW9u
QW5kU2l6ZSk6CihXZWJDb3JlOjpQb3B1cE1lbnU6OnduZFByb2MpOgoqIHBsYXRmb3JtL3d4L1Jl
bmRlclRoZW1lV3guY3BwOgooV2ViQ29yZTo6bmF0aXZlV2luZG93Rm9yUmVuZGVyT2JqZWN0KToK
KiBwbGF0Zm9ybS93eC9TY3JvbGxiYXJUaGVtZVd4LmNwcDoKKFdlYkNvcmU6OlNjcm9sbGJhclRo
ZW1lV3g6OnBhaW50KToKKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKFdlYkNvcmU6
OlBsdWdpblZpZXc6OmdldFZhbHVlKToKKFdlYkNvcmU6OlBsdWdpblZpZXc6OmZvcmNlUmVkcmF3
KToKKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgoqIHBsdWdpbnMvbWFjL1Bs
dWdpblZpZXdNYWMuY3BwOgooV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6Ciog
cGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgooV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxl
S2V5Ym9hcmRFdmVudCk6CihXZWJDb3JlOjpQbHVnaW5WaWV3OjpnZXRWYWx1ZSk6CihXZWJDb3Jl
OjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKiBwbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2lu
LmNwcDoKKFdlYkNvcmU6OlBsdWdpblZpZXc6OmdldFZhbHVlKToKKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OmZvcmNlUmVkcmF3KToKKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgoK
V2ViS2l0L2d0azoKClJlZmxlY3QgdGhlIHJlbmFtZSBvZiBwbGF0Zm9ybVdpbmRvdyBhbmQgaXQn
cyByZXR1cm4gdHlwZS4KCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQpOgooV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OnJ1bk9wZW5QYW5lbCk6CiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6
Ciogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgooY3VycmVudFRvcGxldmVsQ2FsbGJhY2spOgoq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKHdlYmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hh
bmRsZXIpOgoKV2ViS2l0L2hhaWt1OgoKUmVmbGVjdCB0aGUgcmVuYW1lIG9mIHBsYXRmb3JtV2lu
ZG93IGFuZCBpdCdzIHJldHVybiB0eXBlLgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRI
YWlrdS5jcHA6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6cGxhdGZvcm1QYWdlQ2xpZW50
KToKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgoKV2ViS2l0L21hYzoKClJl
ZmxlY3QgdGhlIHJlbmFtZSBvZiBwbGF0Zm9ybVdpbmRvdyBhbmQgaXQncyByZXR1cm4gdHlwZS4K
CiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CiogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgooV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQpOgoK
V2ViS2l0L3F0OgoKUmVmbGVjdCB0aGUgcmVuYW1lIG9mIHBsYXRmb3JtV2luZG93IGFuZCBpdCdz
IHJldHVybiB0eXBlLgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CihXZWJD
b3JlOjpDaHJvbWVDbGllbnRRdDo6cGxhdGZvcm1QYWdlQ2xpZW50KToKKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oOgoKV2ViS2l0L3dpbjoKClJlZmxlY3QgdGhlIHJlbmFtZSBvZiBw
bGF0Zm9ybVdpbmRvdyBhbmQgaXQncyByZXR1cm4gdHlwZS4KCiogQWNjZXNzaWJsZUJhc2UuY3Bw
OgooQWNjZXNzaWJsZUJhc2U6OmdldF9hY2NQYXJlbnQpOgoqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CihXZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVudCk6Ciog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpXZWJLaXQvd3g6CgpSZWZsZWN0IHRo
ZSByZW5hbWUgb2YgcGxhdGZvcm1XaW5kb3cgYW5kIGl0J3MgcmV0dXJuIHR5cGUuCgoqIFdlYktp
dFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnBs
YXRmb3JtUGFnZUNsaWVudCk6CiogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgoqIFdl
YktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgooV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6
OmlzRWRpdGFibGUpOgooV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnJlZ2lzdGVyQ29tbWFuZEZv
clVuZG8pOgooV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnJlZ2lzdGVyQ29tbWFuZEZvclJlZG8p
OgooV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKToKKFdl
YkNvcmU6OkVkaXRvckNsaWVudFd4OjpjYW5VbmRvKToKKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4
OjpjYW5SZWRvKToKKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4Ojp1bmRvKToKKFdlYkNvcmU6OkVk
aXRvckNsaWVudFd4OjpyZWRvKToKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgNzggKysrKysrKysrKysrKysrKysrKysKIC4uLi9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAgMiArLQogV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcCAgICAgfCAgICA2ICst
CiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAgICAgICAgICB8ICAg
IDIgKy0KIFdlYkNvcmUvcGFnZS9DaHJvbWUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNCArLQogV2ViQ29yZS9wYWdlL0Nocm9tZS5oICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAyICstCiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1t
ICAgICAgICAgICAgICAgIHwgICAgOCArLQogV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93Lmgg
ICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5o
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UGxhdGZvcm1TY3JlZW5HdGsuY3BwICAgICAgICAgfCAgICA2ICstCiBXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Qb3B1cE1lbnVHdGsuY3BwICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwICAgICAgICAgICAgIHwgICAgNiArLQogV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcCAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBX
ZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwICAgICAgICAgICB8ICAgMTAg
Ky0KIFdlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwICAgICAgICAgICAgICAgIHwg
ICAgMiArLQogV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAgICAgICAgICAgICAgICAg
ICAgfCAgICAyICstCiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAg
ICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAg
ICAgICAgICAgICAgIHwgICAgNiArLQogV2ViQ29yZS9wbGF0Zm9ybS93eC9SZW5kZXJUaGVtZVd4
LmNwcCAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL3BsYXRmb3JtL3d4L1Njcm9sbGJh
clRoZW1lV3guY3BwICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcGx1Z2lucy9ndGsvUGx1
Z2luVmlld0d0ay5jcHAgICAgICAgICAgICAgIHwgICAxMiArKy0tCiBXZWJDb3JlL3BsdWdpbnMv
bWFjL1BsdWdpblZpZXdNYWMuY3BwICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcGx1
Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwICAgICAgICAgICAgICAgIHwgICAgOCArLQogV2ViQ29y
ZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCAgICAgICAgICAgICAgfCAgICA2ICstCiBX
ZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTgg
KysrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCAgICAg
IHwgICAgNCArLQogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCAg
ICAgICAgfCAgICAyICstCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcCAgICAg
ICAgICAgICAgICB8ICAgIDIgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
ICAgICAgICAgICAgICAgIHwgICAgMiArLQogV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKwogV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcCAgfCAgICAyICstCiBXZWJLaXQvaGFpa3UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaCAgICB8ICAgIDIgKy0KIFdlYktpdC9tYWMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysKIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggICAgICAgIHwgICAgMiArLQogV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gICAgICAgfCAgICAyICst
CiBXZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTMgKysrCiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwICAgICAg
ICB8ICAgIDIgKy0KIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oICAg
ICAgICAgIHwgICAgMiArLQogV2ViS2l0L3dpbi9BY2Nlc3NpYmxlQmFzZS5jcHAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAyICstCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKwogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwICAgICAgfCAgICAyICstCiBXZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oICAgICAgICB8ICAgIDIgKy0KIFdlYktpdC93eC9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKysKIFdlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcCAgICAgICAgIHwgICAgMiArLQogV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCAgICAgICAgICAgfCAgICAyICst
CiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAgICAgICAgICB8ICAg
MTYgKystLQogNDcgZmlsZXMgY2hhbmdlZCwgMjQ5IGluc2VydGlvbnMoKyksIDc1IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggOGEyNzhjZS4uNDAxMTZlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MSBAQAorMjAwOS0wOS0xNyAgS2VubmV0
aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBQbGF0Zm9ybVdpbmRvdyBy
ZXR1cm4gc29tZXRoaW5nIGVsc2UgdGhhbiBQbGF0Zm9ybVdpZGdldAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwODUKKworICAgICAgICBNYWtlIHBs
YXRmb3JtV2luZG93IHJldHVybiBhIFBsYXRmb3JtUGFnZUNsaWVudAorICAgICAgICAoZm9yIG5v
dyB0eXBlZGVmJ2VkIHRvIFBsYXRmb3JtV2lkZ2V0KQorCisgICAgICAgIEFsc28sIGNoYW5nZSB0
aGUgbmFtZSBvZiBwbGF0Zm9ybVdpbmRvdyB0byBwbGF0Zm9ybVBhZ2VDbGllbnQoKQorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3Bw
OgorICAgICAgICAoZ2V0UGFuZ29MYXlvdXRGb3JBdGspOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKToKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
cGxhdGZvcm1QYWdlQ2xpZW50KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVudCk6CisgICAgICAgICogcGFnZS9D
aHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2Uv
bWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmN1cnJlbnRQbGF0
Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29u
dGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmV2ZW50TWF5
U3RhcnREcmFnKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Ib3N0V2luZG93Lmg6CisgICAgICAgICog
cGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVu
R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFZpc3VhbCk6CisgICAgICAgIChXZWJDb3Jl
OjpzY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJsZVJlY3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Qb3B1cE1lbnVHdGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UG9wdXBNZW51OjpzaG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUFkZENoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZUNvbnRlbnRSZWN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6
c2V0Rm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRDdXJzb3IpOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2NyZWVuRGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuSXNNb25vY2hyb21lKToKKyAgICAgICAgKFdlYkNv
cmU6OnNjcmVlblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuQXZhaWxhYmxlUmVjdCk6
CisgICAgICAgICogcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UG9wdXBNZW51OjpzaG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnNldEN1cnNvcik6CisgICAgICAgICogcGxhdGZv
cm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1vbml0b3JJ
bmZvRm9yV2lkZ2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnU6OmNhbGN1bGF0ZVBvc2l0aW9uQW5kU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
b3B1cE1lbnU6OnduZFByb2MpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L1JlbmRlclRoZW1lV3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bmF0aXZlV2luZG93Rm9yUmVuZGVyT2JqZWN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS93eC9TY3JvbGxiYXJUaGVtZVd4LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGJhclRoZW1lV3g6OnBhaW50KToKKyAgICAgICAgKiBwbHVnaW5zL2d0ay9QbHVn
aW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmdldFZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmZvcmNlUmVkcmF3KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAqIHBsdWdpbnMvbWFj
L1BsdWdpblZpZXdNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZv
cm1TdGFydCk6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3OjpnZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5W
aWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKiBwbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2lu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmdldFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmZvcmNlUmVkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgorCiAyMDA5LTA5LTE2ICBEYW5pZWwgQmF0ZXMgIDxk
YmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggY2Q5ZGRmZi4uODExOTAzZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAK
KysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckF0ay5jcHAKQEAgLTU1Niw3ICs1NTYsNyBAQCBzdGF0aWMgUGFuZ29MYXlvdXQqIGdldFBhbmdv
TGF5b3V0Rm9yQXRrKEF0a1RleHQqIHRleHRPYmplY3QpCiAgICAgSG9zdFdpbmRvdyogaG9zdFdp
bmRvdyA9IGNvcmVPYmplY3QtPmRvY3VtZW50KCktPnZpZXcoKS0+aG9zdFdpbmRvdygpOwogICAg
IGlmICghaG9zdFdpbmRvdykKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgUGxhdGZvcm1XaWRnZXQg
d2ViVmlldyA9IGhvc3RXaW5kb3ctPnBsYXRmb3JtV2luZG93KCk7CisgICAgUGxhdGZvcm1QYWdl
Q2xpZW50IHdlYlZpZXcgPSBob3N0V2luZG93LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKICAgICBp
ZiAoIXdlYlZpZXcpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcAppbmRleCAxM2VkNTEwLi5hMWJkY2MwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwCisr
KyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKQEAgLTY4
LDcgKzY4LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlIHx8ICFwYWdl
LT5jaHJvbWUoKS0+cGxhdGZvcm1XaW5kb3coKSkKKyAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmNo
cm9tZSgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgRFdP
UkQgbXNhYUV2ZW50OwpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwog
ICAgIEFTU0VSVChvYmotPmF4T2JqZWN0SUQoKSA+PSAxKTsKICAgICBBU1NFUlQob2JqLT5heE9i
amVjdElEKCkgPD0gbnVtZXJpY19saW1pdHM8TE9ORz46Om1heCgpKTsKIAotICAgIE5vdGlmeVdp
bkV2ZW50KG1zYWFFdmVudCwgcGFnZS0+Y2hyb21lKCktPnBsYXRmb3JtV2luZG93KCksIE9CSklE
X0NMSUVOVCwgLXN0YXRpY19jYXN0PExPTkc+KG9iai0+YXhPYmplY3RJRCgpKSk7CisgICAgTm90
aWZ5V2luRXZlbnQobXNhYUV2ZW50LCBwYWdlLT5jaHJvbWUoKS0+cGxhdGZvcm1QYWdlQ2xpZW50
KCksIE9CSklEX0NMSUVOVCwgLXN0YXRpY19jYXN0PExPTkc+KG9iai0+YXhPYmplY3RJRCgpKSk7
CiB9CiAKIEFYSUQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1HZW5lcmF0ZUFYSUQoKSBjb25zdApA
QCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlRm9jdXNlZFVJRWxl
bWVudENoYW5nZWQoUmVuZGVyT2JqZWN0KiwgUmVuZGVyT2JqZWN0KiBuCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFBhZ2UqIHBhZ2UgPSBuZXdGb2N1c2VkUmVuZGVyZXItPmRvY3VtZW50KCktPnBh
Z2UoKTsKLSAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmNocm9tZSgpLT5wbGF0Zm9ybVdpbmRvdygp
KQorICAgIGlmICghcGFnZSB8fCAhcGFnZS0+Y2hyb21lKCktPnBsYXRmb3JtUGFnZUNsaWVudCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkT2Jq
ZWN0ID0gZm9jdXNlZFVJRWxlbWVudEZvclBhZ2UocGFnZSk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmlu
ZGV4IDQxNzJjMDYuLjQxYjZlYmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xMjAsNyArMTIw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNv
bnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgeyB9CiAgICAgdmlydHVhbCBJbnRQb2ludCBz
Y3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgcCkgY29uc3QgeyByZXR1cm4gcDsgfQogICAg
IHZpcnR1YWwgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByKSBjb25zdCB7
IHJldHVybiByOyB9Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0
Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGNv
bnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3QgeyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCB7IH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
aW5kZXggYTE2ZGI2OC4uOTZmMGZiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTg3LDkgKzg3LDkgQEAgSW50UmVj
dCBDaHJvbWU6OndpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiAgICAg
cmV0dXJuIG1fY2xpZW50LT53aW5kb3dUb1NjcmVlbihyZWN0KTsKIH0KIAotUGxhdGZvcm1XaWRn
ZXQgQ2hyb21lOjpwbGF0Zm9ybVdpbmRvdygpIGNvbnN0CitQbGF0Zm9ybVBhZ2VDbGllbnQgQ2hy
b21lOjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogewotICAgIHJldHVybiBtX2NsaWVudC0+
cGxhdGZvcm1XaW5kb3coKTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnBsYXRmb3JtUGFnZUNsaWVu
dCgpOwogfQogCiB2b2lkIENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUs
IGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNzlkM2VjYS4uMDMzMzExZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aApAQCAtNjMsNyArNjMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJl
Y3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOwogICAgICAgICB2aXJ0dWFsIElu
dFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgICAgIHZp
cnR1YWwgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7Ci0gICAg
ICAgIHZpcnR1YWwgUGxhdGZvcm1XaWRnZXQgcGxhdGZvcm1XaW5kb3coKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Q7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYs
IGNvbnN0IFNjcm9sbFZpZXcqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJh
cnNNb2RlRGlkQ2hhbmdlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyYTFlOTkxLi4y
ZDExMjc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9s
bERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBS
ZWN0KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3Qg
SW50UG9pbnQmKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dUb1Nj
cmVlbihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIFBsYXRmb3Jt
V2lkZ2V0IHBsYXRmb3JtV2luZG93KCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIFBsYXRm
b3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCA9IDA7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNv
bnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJ
bnRSZWN0JiwgY29uc3QgU2Nyb2xsVmlldyopIGNvbnN0ID0gMDsgLy8gQ3VycmVudGx5IG9ubHkg
TWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAgLy8gRW5kIG1ldGhv
ZHMgdXNlZCBieSBIb3N0V2luZG93LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL21hYy9FdmVu
dEhhbmRsZXJNYWMubW0gYi9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCA0ZTVkNmFmLi43ZGExZDM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFu
ZGxlck1hYy5tbQorKysgYi9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAt
MTEyLDcgKzExMiw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50KE5TRXZlbnQgKmV2
ZW50KQogCiAgICAgbV91c2VMYXRjaGVkV2hlZWxFdmVudE5vZGUgPSB3a0lzTGF0Y2hpbmdXaGVl
bEV2ZW50KGV2ZW50KTsKICAgICAKLSAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgd2hlZWxFdmVudChl
dmVudCwgcGFnZS0+Y2hyb21lKCktPnBsYXRmb3JtV2luZG93KCkpOworICAgIFBsYXRmb3JtV2hl
ZWxFdmVudCB3aGVlbEV2ZW50KGV2ZW50LCBwYWdlLT5jaHJvbWUoKS0+cGxhdGZvcm1QYWdlQ2xp
ZW50KCkpOwogICAgIGhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKICAgICByZXR1cm4g
d2hlZWxFdmVudC5pc0FjY2VwdGVkKCk7CkBAIC03MTIsNyArNzEyLDcgQEAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IEV2ZW50SGFuZGxlcjo6Y3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpIGNvbnN0CiB7
CiAgICAgTlNWaWV3ICp3aW5kb3dWaWV3ID0gbmlsOwogICAgIGlmIChQYWdlKiBwYWdlID0gbV9m
cmFtZS0+cGFnZSgpKQotICAgICAgICB3aW5kb3dWaWV3ID0gcGFnZS0+Y2hyb21lKCktPnBsYXRm
b3JtV2luZG93KCk7CisgICAgICAgIHdpbmRvd1ZpZXcgPSBwYWdlLT5jaHJvbWUoKS0+cGxhdGZv
cm1QYWdlQ2xpZW50KCk7CiAgICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChjdXJyZW50TlNF
dmVudCgpLCB3aW5kb3dWaWV3KTsKIH0KIApAQCAtNzIyLDcgKzcyMiw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudChOU0V2ZW50ICpldmVudCkKICAgICBQYWdlKiBw
YWdlID0gbV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiBzZW5kQ29udGV4dE1lbnVFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQo
ZXZlbnQsIHBhZ2UtPmNocm9tZSgpLT5wbGF0Zm9ybVdpbmRvdygpKSk7CisgICAgcmV0dXJuIHNl
bmRDb250ZXh0TWVudUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudChldmVudCwgcGFnZS0+Y2hyb21l
KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRf
TUVOVVMpCiAKQEAgLTczMiw3ICs3MzIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRNYXlT
dGFydERyYWcoTlNFdmVudCAqZXZlbnQpCiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2Uo
KTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gZXZl
bnRNYXlTdGFydERyYWcoUGxhdGZvcm1Nb3VzZUV2ZW50KGV2ZW50LCBwYWdlLT5jaHJvbWUoKS0+
cGxhdGZvcm1XaW5kb3coKSkpOworICAgIHJldHVybiBldmVudE1heVN0YXJ0RHJhZyhQbGF0Zm9y
bU1vdXNlRXZlbnQoZXZlbnQsIHBhZ2UtPmNocm9tZSgpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkp
OwogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgK
aW5kZXggOGM3NGQ0Zi4uODBmNmJkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0
V2luZG93LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmgKQEAgLTQ4LDggKzQ4
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3Qg
SW50UG9pbnQmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1RvU2NyZWVu
KGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAKLSAgICAvLyBNZXRob2QgZm9yIHJldHJpZXZp
bmcgdGhlIG5hdGl2ZSB3aW5kb3cuCi0gICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9y
bVdpbmRvdygpIGNvbnN0ID0gMDsKKyAgICAvLyBNZXRob2QgZm9yIHJldHJpZXZpbmcgdGhlIG5h
dGl2ZSBjbGllbnQgb2YgdGhlIHBhZ2UuCisgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQg
cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgPSAwOwogICAgIAogICAgIC8vIEZvciBzY3JvbGxp
bmcgYSByZWN0IGludG8gdmlldyByZWN1cnNpdmVseS4gIFVzZWZ1bCBpbiB0aGUgY2FzZXMgd2hl
cmUgYSBXZWJWaWV3IGlzIGVtYmVkZGVkIGluc2lkZSBzb21lIGNvbnRhaW5pbmcKICAgICAvLyBw
bGF0Zm9ybS1zcGVjaWZpYyBTY3JvbGxWaWV3LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9XaWRnZXQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXggYTEwMmI5Ni4uNzlk
OGYzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL1dpZGdldC5oCkBAIC03NCw2ICs3NCw4IEBAIHR5cGVkZWYgQlZpZXcqIFBsYXRm
b3JtV2lkZ2V0OwogI2luY2x1ZGUgIlBsYXRmb3JtV2lkZ2V0LmgiCiAjZW5kaWYKIAordHlwZWRl
ZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBhZ2VDbGllbnQ7CisKICNpbmNsdWRlICJJbnRQb2lu
dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKaW5kZXggNGJhNmQ0My4uYTZmZjk1
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcApAQCAtNDks
NyArNDksNyBAQCBzdGF0aWMgR2RrVmlzdWFsKiBnZXRWaXN1YWwoV2lkZ2V0KiB3aWRnZXQpCiAg
ICAgaWYgKCF3aWRnZXQpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgR3RrV2lkZ2V0KiBjb250
YWluZXIgPSBHVEtfV0lER0VUKHdpZGdldC0+cm9vdCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3Jt
V2luZG93KCkpOworICAgIEd0a1dpZGdldCogY29udGFpbmVyID0gR1RLX1dJREdFVCh3aWRnZXQt
PnJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSk7CiAKICAgICBpZiAo
IWNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuIDA7CkBAIC05Myw3ICs5Myw3IEBAIEZsb2F0UmVj
dCBzY3JlZW5SZWN0KFdpZGdldCogd2lkZ2V0KQogICAgIGlmICghd2lkZ2V0KQogICAgICAgICBy
ZXR1cm4gRmxvYXRSZWN0KCk7CiAKLSAgICBHdGtXaWRnZXQqIGNvbnRhaW5lciA9IGd0a193aWRn
ZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQod2lkZ2V0LT5yb290KCktPmhvc3RXaW5kb3coKS0+
cGxhdGZvcm1XaW5kb3coKSkpOworICAgIEd0a1dpZGdldCogY29udGFpbmVyID0gZ3RrX3dpZGdl
dF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh3aWRnZXQtPnJvb3QoKS0+aG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVBhZ2VDbGllbnQoKSkpOwogICAgIGlmICghR1RLX1dJREdFVF9UT1BMRVZFTChjb250
YWluZXIpKQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAKQEAgLTExNCw3ICsxMTQsNyBA
QCBGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqIHdpZGdldCkKICAgICAgICAg
cmV0dXJuIEZsb2F0UmVjdCgpOwogCiAjaWYgUExBVEZPUk0oWDExKQotICAgIEd0a1dpZGdldCog
Y29udGFpbmVyID0gR1RLX1dJREdFVCh3aWRnZXQtPnJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVdpbmRvdygpKTsKKyAgICBHdGtXaWRnZXQqIGNvbnRhaW5lciA9IEdUS19XSURHRVQod2lk
Z2V0LT5yb290KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpOwogICAgIGlm
ICghY29udGFpbmVyKQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9Qb3B1cE1lbnVHdGsuY3BwCmluZGV4IDg4ZDM3ZDEuLjNmNmIwMmEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BvcHVwTWVudUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUG9wdXBNZW51R3RrLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFBvcHVwTWVu
dTo6c2hvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkK
ICAgICAgICAgZ3RrX2NvbnRhaW5lcl9mb3JlYWNoKEdUS19DT05UQUlORVIobV9wb3B1cCksIHJl
aW50ZXJwcmV0X2Nhc3Q8R3RrQ2FsbGJhY2s+KG1lbnVSZW1vdmVJdGVtKSwgdGhpcyk7CiAKICAg
ICBpbnQgeCwgeTsKLSAgICBnZGtfd2luZG93X2dldF9vcmlnaW4oR1RLX1dJREdFVCh2aWV3LT5o
b3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCkpLT53aW5kb3csICZ4LCAmeSk7CisgICAgZ2Rr
X3dpbmRvd19nZXRfb3JpZ2luKEdUS19XSURHRVQodmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9y
bVBhZ2VDbGllbnQoKSktPndpbmRvdywgJngsICZ5KTsKICAgICBtX21lbnVQb3NpdGlvbiA9IHZp
ZXctPmNvbnRlbnRzVG9XaW5kb3cocmVjdC5sb2NhdGlvbigpKTsKICAgICBtX21lbnVQb3NpdGlv
biA9IEludFBvaW50KG1fbWVudVBvc2l0aW9uLngoKSArIHgsIG1fbWVudVBvc2l0aW9uLnkoKSAr
IHkgKyByZWN0LmhlaWdodCgpKTsKICAgICBtX2luZGV4TWFwLmNsZWFyKCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCmluZGV4IDkxNDM4ZTEuLmExZWQ4YzMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBT
Y3JvbGxWaWV3OjpzZXRHdGtBZGp1c3RtZW50cyhHdGtBZGp1c3RtZW50KiBoYWRqLCBHdGtBZGp1
c3RtZW50KiB2YWRqKQogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUFkZENoaWxkKFdpZGdldCog
Y2hpbGQpCiB7CiAgICAgaWYgKCFHVEtfSVNfU09DS0VUKGNoaWxkLT5wbGF0Zm9ybVdpZGdldCgp
KSkKLSAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihob3N0V2luZG93KCkt
PnBsYXRmb3JtV2luZG93KCkpLCBjaGlsZC0+cGxhdGZvcm1XaWRnZXQoKSk7CisgICAgICAgIGd0
a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIoaG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VD
bGllbnQoKSksIGNoaWxkLT5wbGF0Zm9ybVdpZGdldCgpKTsKIH0KIAogdm9pZCBTY3JvbGxWaWV3
OjpwbGF0Zm9ybVJlbW92ZUNoaWxkKFdpZGdldCogY2hpbGQpCkBAIC0xMTcsNyArMTE3LDcgQEAg
dm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlbW92ZUNoaWxkKFdpZGdldCogY2hpbGQpCiAgICAg
Ly8gSG9zdFdpbmRvdyBjYW4gYmUgTlVMTCBoZXJlLiBJZiB0aGF0J3MgdGhlIGNhc2UKICAgICAv
LyBsZXQncyBncmFiIHRoZSBjaGlsZCdzIHBhcmVudCBpbnN0ZWFkLgogICAgIGlmIChob3N0V2lu
ZG93KCkpCi0gICAgICAgIHBhcmVudCA9IEdUS19XSURHRVQoaG9zdFdpbmRvdygpLT5wbGF0Zm9y
bVdpbmRvdygpKTsKKyAgICAgICAgcGFyZW50ID0gR1RLX1dJREdFVChob3N0V2luZG93KCktPnBs
YXRmb3JtUGFnZUNsaWVudCgpKTsKICAgICBlbHNlCiAgICAgICAgIHBhcmVudCA9IEdUS19XSURH
RVQoY2hpbGQtPnBsYXRmb3JtV2lkZ2V0KCktPnBhcmVudCk7CiAKQEAgLTEzMyw3ICsxMzMsNyBA
QCBJbnRSZWN0IFNjcm9sbFZpZXc6OnZpc2libGVDb250ZW50UmVjdChib29sIGluY2x1ZGVTY3Jv
bGxiYXJzKSBjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heCgwLCBoZWln
aHQoKSAtIChob3Jpem9udGFsU2Nyb2xsYmFyKCkgJiYgIWluY2x1ZGVTY3JvbGxiYXJzID8gaG9y
aXpvbnRhbFNjcm9sbGJhcigpLT5oZWlnaHQoKSA6IDApKSkpOwogCiAgICAgLy8gTWFpbiBmcmFt
ZS4KLSAgICBHdGtXaWRnZXQqIG1lYXN1cmVkV2lkZ2V0ID0gaG9zdFdpbmRvdygpLT5wbGF0Zm9y
bVdpbmRvdygpOworICAgIEd0a1dpZGdldCogbWVhc3VyZWRXaWRnZXQgPSBob3N0V2luZG93KCkt
PnBsYXRmb3JtUGFnZUNsaWVudCgpOwogICAgIEd0a1dpZGdldCogcGFyZW50ID0gZ3RrX3dpZGdl
dF9nZXRfcGFyZW50KG1lYXN1cmVkV2lkZ2V0KTsKIAogICAgIC8vIFdlIG1heSBub3QgYmUgaW4g
YSB3aWRnZXQgdGhhdCBkaXNwbGF5cyBzY3JvbGxiYXJzLCBidXQgd2UgbWF5CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvV2lkZ2V0R3RrLmNwcAppbmRleCAwMDdmMmVlLi41M2MxMGYxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1dpZGdldEd0ay5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgV2lkZ2V0Ojp+V2lkZ2V0KCkKIAogdm9p
ZCBXaWRnZXQ6OnNldEZvY3VzKCkKIHsKLSAgICBndGtfd2lkZ2V0X2dyYWJfZm9jdXMocGxhdGZv
cm1XaWRnZXQoKSA/IHBsYXRmb3JtV2lkZ2V0KCkgOiBHVEtfV0lER0VUKHJvb3QoKS0+aG9zdFdp
bmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpKSk7CisgICAgZ3RrX3dpZGdldF9ncmFiX2ZvY3VzKHBs
YXRmb3JtV2lkZ2V0KCkgPyBwbGF0Zm9ybVdpZGdldCgpIDogR1RLX1dJREdFVChyb290KCktPmhv
c3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpKTsKIH0KIAogc3RhdGljIEdka0RyYXdh
YmxlKiBnZGtEcmF3YWJsZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQpCkBAIC03Niw3ICs3Niw3IEBA
IHZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiAgICAgaWYgKHBs
YXRmb3JtQ3Vyc29yID09IGxhc3RTZXRDdXJzb3IpCiAgICAgICAgIHJldHVybjsKIAotICAgIGdk
a193aW5kb3dfc2V0X2N1cnNvcihnZGtEcmF3YWJsZShwbGF0Zm9ybVdpZGdldCgpKSA/IEdES19X
SU5ET1coZ2RrRHJhd2FibGUocGxhdGZvcm1XaWRnZXQoKSkpIDogR1RLX1dJREdFVChyb290KCkt
Pmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSktPndpbmRvdywgcGxhdGZvcm1DdXJzb3Ip
OworICAgIGdka193aW5kb3dfc2V0X2N1cnNvcihnZGtEcmF3YWJsZShwbGF0Zm9ybVdpZGdldCgp
KSA/IEdES19XSU5ET1coZ2RrRHJhd2FibGUocGxhdGZvcm1XaWRnZXQoKSkpIDogR1RLX1dJREdF
VChyb290KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpLT53aW5kb3csIHBs
YXRmb3JtQ3Vyc29yKTsKICAgICBsYXN0U2V0Q3Vyc29yID0gcGxhdGZvcm1DdXJzb3I7CiB9CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwCmluZGV4IDVkYzA5NjMuLmI5
YmVmOWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcApAQCAtNDQs
MzQgKzQ0LDM0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGludCBzY3JlZW5EZXB0aChXaWRnZXQq
IHcpCiB7CiAgICAgUURlc2t0b3BXaWRnZXQqIGQgPSBRQXBwbGljYXRpb246OmRlc2t0b3AoKTsK
LSAgICBRV2lkZ2V0ICp2aWV3ID0gdyA/IHctPnJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9y
bVdpbmRvdygpIDogMDsKKyAgICBRV2lkZ2V0ICp2aWV3ID0gdyA/IHctPnJvb3QoKS0+aG9zdFdp
bmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSA6IDA7CiAgICAgaW50IHNjcmVlbk51bWJlciA9
IHZpZXcgPyBkLT5zY3JlZW5OdW1iZXIodmlldykgOiAwOwogICAgIHJldHVybiBkLT5zY3JlZW4o
c2NyZWVuTnVtYmVyKS0+ZGVwdGgoKTsKIH0KIAogaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50
KFdpZGdldCogdykKIHsKLSAgICBRV2lkZ2V0ICp2aWV3ID0gdyA/IHctPnJvb3QoKS0+aG9zdFdp
bmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpIDogMDsKKyAgICBRV2lkZ2V0ICp2aWV3ID0gdyA/IHct
PnJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSA6IDA7CiAgICAgcmV0
dXJuIHZpZXcgPyB2aWV3LT5kZXB0aCgpIDogUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVl
bigwKS0+ZGVwdGgoKTsKIH0KIAogYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KiB3KQog
ewogICAgIFFEZXNrdG9wV2lkZ2V0KiBkID0gUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCk7Ci0gICAg
UVdpZGdldCAqdmlldyA9IHcgPyB3LT5yb290KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5k
b3coKTogMDsKKyAgICBRV2lkZ2V0ICp2aWV3ID0gdyA/IHctPnJvb3QoKS0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTogMDsKICAgICBpbnQgc2NyZWVuTnVtYmVyID0gdmlldyA/
IGQtPnNjcmVlbk51bWJlcih2aWV3KSA6IDA7CiAgICAgcmV0dXJuIGQtPnNjcmVlbihzY3JlZW5O
dW1iZXIpLT5udW1Db2xvcnMoKSA8IDI7CiB9CiAKIEZsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdl
dCogdykKIHsKLSAgICBRUmVjdCByID0gUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPnNjcmVlbkdl
b21ldHJ5KHcgPyB3LT5yb290KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKTogMCk7
CisgICAgUVJlY3QgciA9IFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5HZW9tZXRyeSh3
ID8gdy0+cm9vdCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOiAwKTsKICAg
ICByZXR1cm4gRmxvYXRSZWN0KHIueCgpLCByLnkoKSwgci53aWR0aCgpLCByLmhlaWdodCgpKTsK
IH0KIAogRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0KiB3KQogewotICAgIFFS
ZWN0IHIgPSBRQXBwbGljYXRpb246OmRlc2t0b3AoKS0+YXZhaWxhYmxlR2VvbWV0cnkodyA/IHct
PnJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpOiAwKTsKKyAgICBRUmVjdCBy
ID0gUUFwcGxpY2F0aW9uOjpkZXNrdG9wKCktPmF2YWlsYWJsZUdlb21ldHJ5KHcgPyB3LT5yb290
KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk6IDApOwogICAgIHJldHVybiBG
bG9hdFJlY3Qoci54KCksIHIueSgpLCByLndpZHRoKCksIHIuaGVpZ2h0KCkpOwogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCmluZGV4IDExZGZlNDEuLjAxMTg4NGEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgUG9wdXBNZW51
Ojpwb3B1bGF0ZShjb25zdCBJbnRSZWN0JiByKQogCiB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25z
dCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBpbmRleCkKIHsKLSAgICBRV2lkZ2V0KiB3
aW5kb3cgPSB2LT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCk7CisgICAgUVdpZGdldCog
d2luZG93ID0gdi0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKICAgICBwb3B1
bGF0ZShyKTsKICAgICBRUmVjdCByZWN0ID0gcjsKICAgICByZWN0Lm1vdmVUb3BMZWZ0KHYtPmNv
bnRlbnRzVG9XaW5kb3coci50b3BMZWZ0KCkpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vcXQvV2lkZ2V0UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAKaW5k
ZXggYWJjZDU4NC4uNTI0YjUyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRn
ZXRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaWRnZXRRdC5jcHAKQEAgLTgxLDcg
KzgxLDcgQEAgdm9pZCBXaWRnZXQ6OnNldEZvY3VzKCkKIHZvaWQgV2lkZ2V0OjpzZXRDdXJzb3Io
Y29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7CiAjaWZuZGVmIFFUX05PX0NVUlNPUgotICAgIFFXaWRn
ZXQqIHdpZGdldCA9IHJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpOworICAg
IFFXaWRnZXQqIHdpZGdldCA9IHJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGll
bnQoKTsKIAogICAgIGlmICghd2lkZ2V0KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9QbGF0Zm9ybVNjcmVlbldpbi5jcHAKaW5kZXggN2FjNDcwNi4uNmUwZjg2MSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1TY3JlZW5XaW4uY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1BsYXRmb3JtU2NyZWVuV2luLmNwcApAQCAtMzksNyArMzks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBSZXR1cm5zIGluZm8gZm9yIHRoZSBkZWZhdWx0
IG1vbml0b3IgaWYgd2lkZ2V0IGlzIE5VTEwKIHN0YXRpYyBNT05JVE9SSU5GT0VYIG1vbml0b3JJ
bmZvRm9yV2lkZ2V0KFdpZGdldCogd2lkZ2V0KQogewotICAgIEhXTkQgd2luZG93ID0gd2lkZ2V0
ID8gd2lkZ2V0LT5yb290KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSA6IDA7Cisg
ICAgSFdORCB3aW5kb3cgPSB3aWRnZXQgPyB3aWRnZXQtPnJvb3QoKS0+aG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVBhZ2VDbGllbnQoKSA6IDA7CiAgICAgSE1PTklUT1IgbW9uaXRvciA9IE1vbml0b3JG
cm9tV2luZG93KHdpbmRvdywgTU9OSVRPUl9ERUZBVUxUVE9QUklNQVJZKTsKIAogICAgIE1PTklU
T1JJTkZPRVggbW9uaXRvckluZm87CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
b3B1cE1lbnVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcApp
bmRleCBmMzQ4MWE5Li43MzViMjUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
b3B1cE1lbnVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5j
cHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIFBvcHVwTWVudTo6c2hvdyhjb25zdCBJbnRSZWN0
JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKICAgICBpZiAoY2xpZW50UmVjdCgpLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSFdORCBob3N0V2luZG93ID0gdmlldy0+
aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpOworICAgIEhXTkQgaG9zdFdpbmRvdyA9IHZp
ZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CiAKICAgICBpZiAoIW1fc2Ny
b2xsYmFyICYmIHZpc2libGVJdGVtcygpIDwgY2xpZW50KCktPmxpc3RTaXplKCkpIHsKICAgICAg
ICAgLy8gV2UgbmVlZCBhIHNjcm9sbCBiYXIKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIFBvcHVw
TWVudTo6Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmll
dyogdikKIAogICAgIC8vIFRoZW4sIHRyYW5zbGF0ZSB0byBzY3JlZW4gY29vcmRpbmF0ZXMKICAg
ICBQT0lOVCBsb2NhdGlvbihyU2NyZWVuQ29vcmRzLmxvY2F0aW9uKCkpOwotICAgIGlmICghOjpD
bGllbnRUb1NjcmVlbih2LT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCksICZsb2NhdGlv
bikpCisgICAgaWYgKCE6OkNsaWVudFRvU2NyZWVuKHYtPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1Q
YWdlQ2xpZW50KCksICZsb2NhdGlvbikpCiAgICAgICAgIHJldHVybjsKIAogICAgIHJTY3JlZW5D
b29yZHMuc2V0TG9jYXRpb24obG9jYXRpb24pOwpAQCAtODE3LDcgKzgxNyw3IEBAIExSRVNVTFQg
UG9wdXBNZW51Ojp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFt
LCBMUEFSQU0gbFBhcmFtCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBjYXNlIFZLX1RBQjoKLSAgICAgICAgICAgICAgICAgICAg
OjpTZW5kTWVzc2FnZShjbGllbnQoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpLCBt
ZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICAgICAgICAgIDo6U2VuZE1lc3Nh
Z2UoY2xpZW50KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCksIG1lc3NhZ2Us
IHdQYXJhbSwgbFBhcmFtKTsKICAgICAgICAgICAgICAgICAgICAgaGlkZSgpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIFZLX0VTQ0FQRToKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvUmVuZGVyVGhlbWVXeC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL3d4L1JlbmRlclRoZW1lV3guY3BwCmluZGV4IGJhMjA0ZTMuLmM2NmZmODcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvUmVuZGVyVGhlbWVXeC5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS93eC9SZW5kZXJUaGVtZVd4LmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHd4V2lu
ZG93KiBuYXRpdmVXaW5kb3dGb3JSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0KiBvKQogICAgIEZy
YW1lVmlldyogZnJhbWVWaWV3ID0gby0+dmlldygpLT5mcmFtZVZpZXcoKTsKICAgICBBU1NFUlQo
ZnJhbWVWaWV3KTsKICAgICBBU1NFUlQoZnJhbWVWaWV3LT5ob3N0V2luZG93KCkpOwotICAgIHJl
dHVybiBmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKTsKKyAgICByZXR1
cm4gZnJhbWVWaWV3LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwogfQogCiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2Nyb2xsYmFyVGhlbWVXeC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL3d4L1Njcm9sbGJhclRoZW1lV3guY3BwCmluZGV4IDA4Y2Y0ZmMuLjY5
MDRmNDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvU2Nyb2xsYmFyVGhlbWVXeC5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9TY3JvbGxiYXJUaGVtZVd4LmNwcApAQCAtMTcx
LDcgKzE3MSw3IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVXeDo6cGFpbnQoU2Nyb2xsYmFyKiBzY3Jv
bGxiYXIsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uCiAgICAgaWYgKCFyb290KQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgd3hXaW5kb3cqIHdlYnZpZXcgPSByb290LT5o
b3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCk7IAorICAgIHd4V2luZG93KiB3ZWJ2aWV3ID0g
cm9vdC0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsgCiAgICAgCiAgICAgd3hS
ZW5kZXJlcl9EcmF3U2Nyb2xsYmFyKHdlYnZpZXcsICpkYywgc2Nyb2xsYmFyLT5mcmFtZVJlY3Qo
KSwgb3JpZW50YXRpb24sIHNjcm9sbGJhci0+Y3VycmVudFBvcygpLCBzdGF0aWNfY2FzdDx3eFNj
cm9sbGJhclBhcnQ+KHNjcm9sbGJhci0+cHJlc3NlZFBhcnQoKSksICAgIAogICAgICAgICAgICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8d3hTY3JvbGxiYXJQYXJ0PihzY3JvbGxiYXItPmhvdmVyZWRQ
YXJ0KCkpLCBzY3JvbGxiYXItPm1heGltdW0oKSwgc2Nyb2xsYmFyLT5wYWdlU3RlcCgpLCBmbGFn
cyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwIGIv
V2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAppbmRleCA0NmIwZmM3Li5kODQz
NDAxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKQEAgLTM4MiwxMSArMzgy
LDExIEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQqIHZhbHVlKQogICAgICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogI2lmIGRl
ZmluZWQoWFBfVU5JWCkKICAgICAgICAgICAgIHZvaWQqIHcgPSByZWludGVycHJldF9jYXN0PHZv
aWQqPih2YWx1ZSk7Ci0gICAgICAgICAgICAqKChYSUQgKil3KSA9IEdES19XSU5ET1dfWFdJTkRP
VyhtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKS0+
d2luZG93KTsKKyAgICAgICAgICAgICooKFhJRCAqKXcpID0gR0RLX1dJTkRPV19YV0lORE9XKG1f
cGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+
d2luZG93KTsKICNlbmRpZgogI2lmZGVmIEdES19XSU5ET1dJTkdfV0lOMzIKICAgICAgICAgICAg
IEhHRElPQkoqIHcgPSByZWludGVycHJldF9jYXN0PEhHRElPQkoqPih2YWx1ZSk7Ci0gICAgICAg
ICAgICAqdyA9IEdES19XSU5ET1dfSFdORChtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5k
b3coKS0+cGxhdGZvcm1XaW5kb3coKS0+d2luZG93KTsKKyAgICAgICAgICAgICp3ID0gR0RLX1dJ
TkRPV19IV05EKG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBh
Z2VDbGllbnQoKS0+d2luZG93KTsKICNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIE5QRVJSX05P
X0VSUk9SOwogICAgICAgICB9CkBAIC00MjgsNyArNDI4LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpm
b3JjZVJlZHJhdygpCiAgICAgaWYgKG1faXNXaW5kb3dlZCkKICAgICAgICAgZ3RrX3dpZGdldF9x
dWV1ZV9kcmF3KHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOwogICAgIGVsc2UKLSAgICAgICAgZ3Rr
X3dpZGdldF9xdWV1ZV9kcmF3KG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVdpbmRvdygpKTsKKyAgICAgICAgZ3RrX3dpZGdldF9xdWV1ZV9kcmF3KG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSk7CiB9CiAK
IHN0YXRpYyBnYm9vbGVhbgpAQCAtNDU0LDEzICs0NTQsMTMgQEAgYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVN0YXJ0KCkKICNpZiBkZWZpbmVkKFhQX1VOSVgpCiAgICAgaWYgKG1fbmVlZHNYRW1i
ZWQpIHsKICAgICAgICAgc2V0UGxhdGZvcm1XaWRnZXQoZ3RrX3NvY2tldF9uZXcoKSk7Ci0gICAg
ICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIobV9wYXJlbnRGcmFtZS0+dmlldygp
LT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCkpLCBwbGF0Zm9ybVBsdWdpbldpZGdldCgp
KTsKKyAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihtX3BhcmVudEZyYW1l
LT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpLCBwbGF0Zm9ybVBs
dWdpbldpZGdldCgpKTsKICAgICAgICAgZ19zaWduYWxfY29ubmVjdChwbGF0Zm9ybVBsdWdpbldp
ZGdldCgpLCAicGx1Z19yZW1vdmVkIiwgR19DQUxMQkFDSyhwbHVnX3JlbW92ZWRfY2IpLCBOVUxM
KTsKICAgICB9IGVsc2UgaWYgKG1faXNXaW5kb3dlZCkKLSAgICAgICAgc2V0UGxhdGZvcm1XaWRn
ZXQoZ3RrX3h0YmluX25ldyhtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxh
dGZvcm1XaW5kb3coKS0+d2luZG93LCAwKSk7CisgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KGd0
a194dGJpbl9uZXcobV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3Jt
UGFnZUNsaWVudCgpLT53aW5kb3csIDApKTsKICNlbHNlCiAgICAgc2V0UGxhdGZvcm1XaWRnZXQo
Z3RrX3NvY2tldF9uZXcoKSk7Ci0gICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUiht
X3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSksIHBs
YXRmb3JtUGx1Z2luV2lkZ2V0KCkpOworICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlO
RVIobV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVu
dCgpKSwgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CiAjZW5kaWYKICAgICBzaG93KCk7CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAgYi9XZWJDb3Jl
L3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCmluZGV4IGQwYTMyODguLmIzMDExZjQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKKysrIGIvV2Vi
Q29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIGJv
b2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKLSAgICBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldChtX3BhcmVudEZyYW1lLT52aWV3KCkt
Pmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSk7CisgICAgc2V0UGxhdGZvcm1QbHVnaW5X
aWRnZXQobV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNs
aWVudCgpKTsKIAogICAgIHNob3coKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0
L1BsdWdpblZpZXdRdC5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcApp
bmRleCBmZGVhYzJmLi5lODMzOWU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1
Z2luVmlld1F0LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcApA
QCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChL
ZXlib2FyZEV2ZW50KiBldmVudCkKICAgICBYRXZlbnQgbnBFdmVudDsgLy8gT24gVU5JWCBOUEV2
ZW50IGlzIGEgdHlwZWRlZiBmb3IgWEV2ZW50LgogCiAgICAgbnBFdmVudC50eXBlID0gKGV2ZW50
LT50eXBlKCkgPT0gImtleWRvd24iKSA/IDIgOiAzOyAvLyBpbnRzIGFzIFF0IHVuc2V0cyBLZXlQ
cmVzcyBhbmQgS2V5UmVsZWFzZQotICAgIHNldFNoYXJlZFhFdmVudEZpZWxkcyhucEV2ZW50LCBt
X3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSk7Cisg
ICAgc2V0U2hhcmVkWEV2ZW50RmllbGRzKG5wRXZlbnQsIG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+
aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSk7CiAgICAgc2V0WEtleUV2ZW50U3Bl
Y2lmaWNGaWVsZHMobnBFdmVudCwgZXZlbnQpOwogCiAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQo
bnBFdmVudCkpCkBAIC0zNTEsNyArMzUxLDcgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1
ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgICAgIGlmIChwbGF0Zm9y
bVBsdWdpbldpZGdldCgpKQogICAgICAgICAgICAgKih2b2lkICoqKXZhbHVlID0gcGxhdGZvcm1Q
bHVnaW5XaWRnZXQoKS0+eDExSW5mbygpLmRpc3BsYXkoKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgKih2b2lkICoqKXZhbHVlID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93
KCktPnBsYXRmb3JtV2luZG93KCktPngxMUluZm8oKS5kaXNwbGF5KCk7CisgICAgICAgICAgICAq
KHZvaWQgKiopdmFsdWUgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxh
dGZvcm1QYWdlQ2xpZW50KCktPngxMUluZm8oKS5kaXNwbGF5KCk7CiAgICAgICAgIHJldHVybiBO
UEVSUl9OT19FUlJPUjsKIAogICAgIGNhc2UgTlBOVnh0QXBwQ29udGV4dDoKQEAgLTM5Niw3ICsz
OTYsNyBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxl
LCB2b2lkKiB2YWx1ZSkKIAogICAgIGNhc2UgTlBOVm5ldHNjYXBlV2luZG93OiB7CiAgICAgICAg
IHZvaWQqIHcgPSByZWludGVycHJldF9jYXN0PHZvaWQqPih2YWx1ZSk7Ci0gICAgICAgICooKFhJ
RCAqKXcpID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2lu
ZG93KCktPndpbklkKCk7CisgICAgICAgICooKFhJRCAqKXcpID0gbV9wYXJlbnRGcmFtZS0+dmll
dygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT53aW5JZCgpOwogICAgICAg
ICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiAgICAgfQogCkBAIC00NTEsNyArNDUxLDcgQEAgYm9v
bCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICB9CiAKICAgICBpZiAobV9uZWVkc1hF
bWJlZCkgewotICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldChuZXcgUGx1Z2luQ29udGFpbmVyUXQo
dGhpcywgbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93
KCkpKTsKKyAgICAgICAgc2V0UGxhdGZvcm1XaWRnZXQobmV3IFBsdWdpbkNvbnRhaW5lclF0KHRo
aXMsIG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGll
bnQoKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmll
d1dpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCmluZGV4IDll
ZThlZTYuLmQ4NWUyYTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmll
d1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcApAQCAt
ODgwLDcgKzg4MCw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUg
dmFyaWFibGUsIHZvaWQqIHZhbHVlKQogICAgICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzog
ewogICAgICAgICAgICAgSFdORCogdyA9IHJlaW50ZXJwcmV0X2Nhc3Q8SFdORCo+KHZhbHVlKTsK
IAotICAgICAgICAgICAgKncgPSB3aW5kb3dIYW5kbGVGb3JQbGF0Zm9ybVdpZGdldChwYXJlbnQo
KSA/IHBhcmVudCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCkgOiAwKTsKKyAgICAg
ICAgICAgICp3ID0gd2luZG93SGFuZGxlRm9yUGxhdGZvcm1XaWRnZXQocGFyZW50KCkgPyBwYXJl
bnQoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSA6IDApOwogCiAgICAgICAg
ICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIH0KQEAgLTk1Miw3ICs5NTIsNyBA
QCB2b2lkIFBsdWdpblZpZXc6OmZvcmNlUmVkcmF3KCkKICAgICBpZiAobV9pc1dpbmRvd2VkKQog
ICAgICAgICA6OlVwZGF0ZVdpbmRvdyhwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKICAgICBlbHNl
Ci0gICAgICAgIDo6VXBkYXRlV2luZG93KHdpbmRvd0hhbmRsZUZvclBsYXRmb3JtV2lkZ2V0KHBh
cmVudCgpID8gcGFyZW50KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSA6IDApKTsK
KyAgICAgICAgOjpVcGRhdGVXaW5kb3cod2luZG93SGFuZGxlRm9yUGxhdGZvcm1XaWRnZXQocGFy
ZW50KCkgPyBwYXJlbnQoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSA6IDAp
KTsKIH0KIAogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKQEAgLTk3MCw3ICs5NzAs
NyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgICAgICBpZiAoaXNTZWxm
VmlzaWJsZSgpKQogICAgICAgICAgICAgZmxhZ3MgfD0gV1NfVklTSUJMRTsKIAotICAgICAgICBI
V05EIHBhcmVudFdpbmRvd0hhbmRsZSA9IHdpbmRvd0hhbmRsZUZvclBsYXRmb3JtV2lkZ2V0KG1f
cGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpKTsKKyAg
ICAgICAgSFdORCBwYXJlbnRXaW5kb3dIYW5kbGUgPSB3aW5kb3dIYW5kbGVGb3JQbGF0Zm9ybVdp
ZGdldChtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xp
ZW50KCkpOwogICAgICAgICBIV05EIHdpbmRvdyA9IDo6Q3JlYXRlV2luZG93RXgoMCwga1dlYlBs
dWdpblZpZXdkb3dDbGFzc05hbWUsIDAsIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgcGFyZW50V2luZG93SGFuZGxlLCAwLCBQYWdlOjpp
bnN0YW5jZUhhbmRsZSgpLCAwKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cg
Yi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBlYTNjMGMyLi4wMzk3ZmEwIDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDA5LTA5LTE3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5l
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIFBsYXRmb3JtV2luZG93IHJldHVybiBzb21ldGhpbmcgZWxzZSB0aGFuIFBs
YXRmb3JtV2lkZ2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTA4NQorCisgICAgICAgIFJlZmxlY3QgdGhlIHJlbmFtZSBvZiBwbGF0Zm9ybVdpbmRv
dyBhbmQgaXQncyByZXR1cm4gdHlwZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cGxhdGZvcm1Q
YWdlQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorICAgICAgICAq
IHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoKKyAgICAgICAgKGN1cnJlbnRUb3BsZXZlbENhbGxi
YWNrKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfcG9wdXBfbWVudV9oYW5kbGVyKToKKwogMjAwOS0wOS0xNCAgR3VzdGF2byBO
b3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBYYW4gTG9wZXogYW5kIEphbiBBbG9uem8uCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggODg1OGRmNS4uOGEzOTIyZCAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
CisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAt
Mzg2LDcgKzM4Niw3IEBAIEludFBvaW50IENocm9tZUNsaWVudDo6c2NyZWVuVG9XaW5kb3coY29u
c3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVBsYXRm
b3JtV2lkZ2V0IENocm9tZUNsaWVudDo6cGxhdGZvcm1XaW5kb3coKSBjb25zdAorUGxhdGZvcm1Q
YWdlQ2xpZXRuIENocm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gR1RLX1dJREdFVChtX3dlYlZpZXcpOwogfQpAQCAtNTIzLDcgKzUyMyw3IEBAIHZv
aWQgQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9v
c2VyPiBwcnBGaWxlQ2hvb3NlcikKICAgICBSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIgPSBw
cnBGaWxlQ2hvb3NlcjsKIAogICAgIEd0a1dpZGdldCogZGlhbG9nID0gZ3RrX2ZpbGVfY2hvb3Nl
cl9kaWFsb2dfbmV3KF8oIlVwbG9hZCBGaWxlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1dJTkRPVyhndGtfd2lkZ2V0X2dldF90b3Bs
ZXZlbChHVEtfV0lER0VUKHBsYXRmb3JtV2luZG93KCkpKSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1dJTkRPVyhndGtfd2lkZ2V0X2dl
dF90b3BsZXZlbChHVEtfV0lER0VUKHBsYXRmb3JtUGFnZUNsaWVudCgpKSkpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19GSUxFX0NIT09T
RVJfQUNUSU9OX09QRU4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR1RLX1NUT0NLX0NBTkNFTCwgR1RLX1JFU1BPTlNFX0NBTkNFTCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfU1RPQ0tf
T1BFTiwgR1RLX1JFU1BPTlNFX0FDQ0VQVCwKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oCmluZGV4IDlhZmEwMjIuLmUzMjFjMzUgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtODksNyArODksNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xs
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBQbGF0Zm9ybVdp
ZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFn
ZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lk
IGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJikgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hh
bmdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRl
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCmluZGV4IDYwOTVkNTAu
LjRmOWFmYmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
CisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwCkBAIC0xNjQsNyArMTY0
LDcgQEAgc3RhdGljIEd0a1dpZGdldCogY3VycmVudFRvcGxldmVsQ2FsbGJhY2soV2ViS2l0U291
cEF1dGhEaWFsb2cqIGZlYXR1cmUsIFNvdXBNZXMKICAgICBpZiAoIWZyYW1lKQogICAgICAgICBy
ZXR1cm4gTlVMTDsKIAotICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSAgZ3RrX3dpZGdldF9nZXRf
dG9wbGV2ZWwoR1RLX1dJREdFVChmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+cGxhdGZvcm1XaW5k
b3coKSkpOworICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSAgZ3RrX3dpZGdldF9nZXRfdG9wbGV2
ZWwoR1RLX1dJREdFVChmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+cGxhdGZvcm1QYWdlQ2xpZW50
KCkpKTsKICAgICBpZiAoR1RLX1dJREdFVF9UT1BMRVZFTCh0b3BsZXZlbCkpCiAgICAgICAgIHJl
dHVybiB0b3BsZXZlbDsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmlu
ZGV4IDUxNzM2ODIuLmE1NDc5NjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBA
IC0yNzQsNyArMjc0LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19wb3B1cF9t
ZW51X2hhbmRsZXIoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgfQogCiAgICAgaW50IHgsIHk7Ci0g
ICAgZ2RrX3dpbmRvd19nZXRfb3JpZ2luKEdUS19XSURHRVQodmlldy0+aG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVdpbmRvdygpKS0+d2luZG93LCAmeCwgJnkpOworICAgIGdka193aW5kb3dfZ2V0X29y
aWdpbihHVEtfV0lER0VUKHZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkp
LT53aW5kb3csICZ4LCAmeSk7CiAKICAgICAvLyBGSVhNRTogVGhlIEludFNpemUoMCwgLTEpIGlz
IGEgaGFjayB0byBnZXQgdGhlIGhpdC10ZXN0aW5nIHRvIHJlc3VsdCBpbiB0aGUgc2VsZWN0ZWQg
ZWxlbWVudC4KICAgICAvLyBJZGVhbGx5IHdlJ2QgaGF2ZSB0aGUgcG9zaXRpb24gb2YgYSBjb250
ZXh0IG1lbnUgZXZlbnQgYmUgc2VwYXJhdGUgZnJvbSBpdHMgdGFyZ2V0IG5vZGUuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRl
eCBhNjlkZGI4Li40Mzk3YmI4IDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wOS0xNyAg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBQbGF0Zm9ybVdp
bmRvdyByZXR1cm4gc29tZXRoaW5nIGVsc2UgdGhhbiBQbGF0Zm9ybVdpZGdldAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwODUKKworICAgICAgICBS
ZWZsZWN0IHRoZSByZW5hbWUgb2YgcGxhdGZvcm1XaW5kb3cgYW5kIGl0J3MgcmV0dXJuIHR5cGUu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6cGxhdGZvcm1QYWdlQ2xpZW50KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgorCiAyMDA5LTA4LTI4
ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVr
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KZGlmZiAtLWdpdCBhL1dl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAgYi9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCmluZGV4IDg5MzJkYTEu
LjQ4MjBkNzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5jcHAKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEhhaWt1LmNwcApAQCAtMjcxLDcgKzI3MSw3IEBAIEludFJlY3QgQ2hyb21lQ2xpZW50SGFp
a3U6OndpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdAogICAgIHJldHVybiBJbnRS
ZWN0KCk7CiB9CiAKLVBsYXRmb3JtV2lkZ2V0IENocm9tZUNsaWVudEhhaWt1OjpwbGF0Zm9ybVdp
bmRvdygpIGNvbnN0CitQbGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lQ2xpZW50SGFpa3U6OnBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gUGxhdGZvcm1XaWRnZXQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEhhaWt1LmgKaW5kZXggYWIwZjkwMS4uYTZmNTdlYiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKKysrIGIvV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKQEAgLTEwNCw3ICsxMDQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNp
emUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJl
Y3QmIGNsaXBSZWN0KTsKICAgICAgICAgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50
UG9pbnQmKSBjb25zdDsKICAgICAgICAgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRS
ZWN0JikgY29uc3Q7Ci0gICAgICAgIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2luZG93KCkgY29u
c3Q7CisgICAgICAgIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25z
dDsKICAgICAgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0OwogICAgICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0
JiwgY29uc3QgU2Nyb2xsVmlldyopIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0No
YW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGYyZmNjNTguLjE4MWU0NmIgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDktMTcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
ICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2UgUGxhdGZvcm1XaW5kb3cgcmV0dXJuIHNvbWV0aGluZyBlbHNl
IHRoYW4gUGxhdGZvcm1XaWRnZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI5MDg1CisKKyAgICAgICAgUmVmbGVjdCB0aGUgcmVuYW1lIG9mIHBsYXRm
b3JtV2luZG93IGFuZCBpdCdzIHJldHVybiB0eXBlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQp
OgorCiAyMDA5LTA5LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggN2NkZWZkMS4uMWY4M2VmZiAxMDA2NDQKLS0t
IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC05Myw3ICs5Myw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBv
aW50IHNjcmVlblRvV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2luZG93
KCkgY29uc3Q7CisgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xp
ZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29y
ZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6U2Nyb2xsVmlldyopIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA5OTExZjg2Li5jMWQ1NjJlIDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNDYyLDcgKzQ2Miw3
IEBAIEludFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0
JiByKSBjb25zdAogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHRlbXBSZWN0KTsKIH0KIAot
UGxhdGZvcm1XaWRnZXQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVdpbmRvdygpIGNvbnN0CitQ
bGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBj
b25zdAogewogICAgIGlmIChbbV93ZWJWaWV3IF91c2VzRG9jdW1lbnRWaWV3c10pCiAgICAgICAg
IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9D
aGFuZ2VMb2cKaW5kZXggZTllMzk5NS4uNGFiZDU4YyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0No
YW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMDkt
MDktMTcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgog
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgUGxh
dGZvcm1XaW5kb3cgcmV0dXJuIHNvbWV0aGluZyBlbHNlIHRoYW4gUGxhdGZvcm1XaWRnZXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDg1CisKKyAg
ICAgICAgUmVmbGVjdCB0aGUgcmVuYW1lIG9mIHBsYXRmb3JtV2luZG93IGFuZCBpdCdzIHJldHVy
biB0eXBlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OnBsYXRmb3JtUGFnZUNsaWVudCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKworMjAwOS0wOS0xNyAg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKICAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCiAKICAgICAgICAgSW1wcm92ZSBkb2N1bWVu
dGF0aW9uIGZvciBQYWdlIENhY2hlLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5jcHAKaW5kZXggOWE2M2U4NS4uYTZkZGVjNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC0zNDIsNyArMzQyLDcgQEAgSW50UG9pbnQg
Q2hyb21lQ2xpZW50UXQ6OnNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29u
c3QKICAgICByZXR1cm4gcG9pbnQ7CiB9CiAKLVBsYXRmb3JtV2lkZ2V0IENocm9tZUNsaWVudFF0
OjpwbGF0Zm9ybVdpbmRvdygpIGNvbnN0CitQbGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lQ2xpZW50
UXQ6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2ViUGFnZS0+
dmlldygpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRl
eCA3ZWE2YTcwLi4xOTZjNGZjIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaApAQCAtMTA1LDcgKzEwNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50
UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgICAgIHZp
cnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAg
ICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25z
dDsKLSAgICAgICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpbmRvdygpIGNvbnN0
OworICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQo
KSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUq
LCBjb25zdCBJbnRTaXplJikgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJh
cnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgeyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0FjY2Vz
c2libGVCYXNlLmNwcCBiL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCmluZGV4IGRmMTI1
YjEuLmQwMmVjN2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCisr
KyBiL1dlYktpdC93aW4vQWNjZXNzaWJsZUJhc2UuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBBY2Nlc3NpYmxlQmFzZTo6Z2V0X2FjY1BhcmVudChJRGlz
cGF0Y2gqKiBwYXJlbnQpCiAgICAgaWYgKCFtX29iamVjdCB8fCAhbV9vYmplY3QtPnRvcERvY3Vt
ZW50RnJhbWVWaWV3KCkpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICByZXR1cm4gV2Vi
Vmlldzo6QWNjZXNzaWJsZU9iamVjdEZyb21XaW5kb3cobV9vYmplY3QtPnRvcERvY3VtZW50RnJh
bWVWaWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSwKKyAgICByZXR1cm4gV2Vi
Vmlldzo6QWNjZXNzaWJsZU9iamVjdEZyb21XaW5kb3cobV9vYmplY3QtPnRvcERvY3VtZW50RnJh
bWVWaWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCksCiAgICAgICAgIE9C
SklEX1dJTkRPVywgX191dWlkb2YoSUFjY2Vzc2libGUpLCByZWludGVycHJldF9jYXN0PHZvaWQq
Kj4ocGFyZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMWNmZTg4Yy4uMGU4ZDFlMyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAwOS0wOS0xNyAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTWFrZSBQbGF0Zm9ybVdpbmRvdyByZXR1cm4gc29tZXRoaW5nIGVsc2UgdGhhbiBQbGF0Zm9y
bVdpZGdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjkwODUKKworICAgICAgICBSZWZsZWN0IHRoZSByZW5hbWUgb2YgcGxhdGZvcm1XaW5kb3cgYW5k
IGl0J3MgcmV0dXJuIHR5cGUuCisKKyAgICAgICAgKiBBY2Nlc3NpYmxlQmFzZS5jcHA6CisgICAg
ICAgIChBY2Nlc3NpYmxlQmFzZTo6Z2V0X2FjY1BhcmVudCk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cGxh
dGZvcm1QYWdlQ2xpZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAwOS0wOS0xNiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIGEgVUkgZGVsZWdhdGUgY2FsbGJhY2sgdG8gbGV0IHRoZSBkZWxlZ2F0ZSBkcmF3
IGEgV2ViVmlldydzCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggMDAyYzg2My4uNWQzOTQ1MiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDg2LDcgKzQ4Niw3IEBAIEludFBvaW50IFdl
YkNocm9tZUNsaWVudDo6c2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25z
dAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVBsYXRmb3JtV2lkZ2V0IFdlYkNocm9tZUNsaWVu
dDo6cGxhdGZvcm1XaW5kb3coKSBjb25zdAorUGxhdGZvcm1QYWdlQ2xpZW50IFdlYkNocm9tZUNs
aWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKIHsKICAgICBIV05EIHZpZXdXaW5kb3c7
CiAgICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPnZpZXdXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxP
TEVfSEFORExFKj4oJnZpZXdXaW5kb3cpKSkpCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCA0Yzg3YzAxLi5kMDFlNDdkIDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xs
RGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgY2xpcFJlY3QpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2Ny
ZWVuVG9XaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHApIGNvbnN0OwogICAgIHZpcnR1
YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2luZG93KCkg
Y29uc3Q7CisgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6
RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCB7IH0KZGlmZiAtLWdpdCBhL1dlYktp
dC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IGEwODZiYTIuLjAwZTAw
YTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3d4L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDA5LTA5LTE3ICBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWtlIFBsYXRmb3JtV2luZG93IHJldHVybiBzb21ldGhpbmcg
ZWxzZSB0aGFuIFBsYXRmb3JtV2lkZ2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yOTA4NQorCisgICAgICAgIFJlZmxlY3QgdGhlIHJlbmFtZSBvZiBw
bGF0Zm9ybVdpbmRvdyBhbmQgaXQncyByZXR1cm4gdHlwZS4KKworICAgICAgICAqIFdlYktpdFN1
cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6OnBsYXRmb3JtUGFnZUNsaWVudCk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5oOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OmlzRWRpdGFibGUpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnJlZ2lzdGVyQ29tbWFuZEZvclVuZG8pOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnJlZ2lzdGVyQ29tbWFuZEZvclJlZG8pOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4OjpjYW5VbmRvKToKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudFd4OjpjYW5SZWRvKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudFd4Ojp1bmRvKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4OjpyZWRv
KToKKwogMjAwOS0wOS0xNiAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNv
bT4KIAogICAgICAgICB3eFB5dGhvbiBiaW5kaW5ncyBidWlsZCBmaXhlcyBhZnRlciByZWNlbnQg
Y2hhbmdlcy4KZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVu
dFd4LmNwcCBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAppbmRl
eCBmMGJiYWViLi45YjJmMjY0IDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHAKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xp
ZW50V3guY3BwCkBAIC0zMzksNyArMzM5LDcgQEAgSW50UG9pbnQgQ2hyb21lQ2xpZW50V3g6OnNj
cmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKICAgICByZXR1cm4gcG9p
bnQ7CiB9CiAKLVBsYXRmb3JtV2lkZ2V0IENocm9tZUNsaWVudFd4OjpwbGF0Zm9ybVdpbmRvdygp
IGNvbnN0CitQbGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lQ2xpZW50V3g6OnBsYXRmb3JtUGFnZUNs
aWVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2ViVmlldzsKIH0KZGlmZiAtLWdpdCBhL1dl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IGIwNDhmM2UuLjA3ZjcwYTggMTAwNjQ0Ci0t
LSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysrIGIvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
LCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsK
ICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29u
c3Q7CiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBj
b25zdDsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2luZG93KCkgY29uc3Q7
CisgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJ
bnRTaXplJikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFu
Z2UoKSBjb25zdCB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRv
ckNsaWVudFd4LmNwcCBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNw
cAppbmRleCAyOTI0NGYwLi5iZDNhZjQ4IDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRp
dG9yQ2xpZW50V3guY3BwCkBAIC0yMDIsNyArMjAyLDcgQEAgYm9vbCBFZGl0b3JDbGllbnRXeDo6
aXNFZGl0YWJsZSgpCiAgICAgRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAKICAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgd3hX
ZWJWaWV3KiB3ZWJLaXRXaW4gPSBkeW5hbWljX2Nhc3Q8d3hXZWJWaWV3Kj4oZnJhbWUtPnZpZXco
KS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpKTsKKyAgICAgICAgd3hXZWJWaWV3KiB3
ZWJLaXRXaW4gPSBkeW5hbWljX2Nhc3Q8d3hXZWJWaWV3Kj4oZnJhbWUtPnZpZXcoKS0+aG9zdFdp
bmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSk7CiAgICAgICAgIGlmICh3ZWJLaXRXaW4pIAog
ICAgICAgICAgICAgcmV0dXJuIHdlYktpdFdpbi0+SXNFZGl0YWJsZSgpOwogICAgIH0KQEAgLTI4
NSw3ICsyODUsNyBAQCB2b2lkIEVkaXRvckNsaWVudFd4OjpyZWdpc3RlckNvbW1hbmRGb3JVbmRv
KFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+IGNvbW1hbmQpCiAgICAgRnJhbWUqIGZyYW1lID0gbV9w
YWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAKICAgICBpZiAo
ZnJhbWUpIHsKLSAgICAgICAgd3hXZWJWaWV3KiB3ZWJLaXRXaW4gPSBkeW5hbWljX2Nhc3Q8d3hX
ZWJWaWV3Kj4oZnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpKTsK
KyAgICAgICAgd3hXZWJWaWV3KiB3ZWJLaXRXaW4gPSBkeW5hbWljX2Nhc3Q8d3hXZWJWaWV3Kj4o
ZnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSk7CiAgICAg
ICAgIGlmICh3ZWJLaXRXaW4pIHsKICAgICAgICAgICAgIHdlYktpdFdpbi0+bV9pbXBsLT51bmRv
U3RhY2suYXBwZW5kKEVkaXRDb21tYW5kV3goY29tbWFuZCkpOwogICAgICAgICB9CkBAIC0yOTcs
NyArMjk3LDcgQEAgdm9pZCBFZGl0b3JDbGllbnRXeDo6cmVnaXN0ZXJDb21tYW5kRm9yUmVkbyhQ
YXNzUmVmUHRyPEVkaXRDb21tYW5kPiBjb21tYW5kKQogICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwogCiAgICAgaWYgKGZy
YW1lKSB7Ci0gICAgICAgIHd4V2ViVmlldyogd2ViS2l0V2luID0gZHluYW1pY19jYXN0PHd4V2Vi
Vmlldyo+KGZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSk7Cisg
ICAgICAgIHd4V2ViVmlldyogd2ViS2l0V2luID0gZHluYW1pY19jYXN0PHd4V2ViVmlldyo+KGZy
YW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCkpOwogICAgICAg
ICBpZiAod2ViS2l0V2luKSB7CiAgICAgICAgICAgICB3ZWJLaXRXaW4tPm1faW1wbC0+cmVkb1N0
YWNrLmluc2VydCgwLCBFZGl0Q29tbWFuZFd4KGNvbW1hbmQpKTsKICAgICAgICAgfQpAQCAtMzA5
LDcgKzMwOSw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50V3g6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25z
KCkKICAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2Vk
T3JNYWluRnJhbWUoKTsKICAgICAKICAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgd3hXZWJWaWV3
KiB3ZWJLaXRXaW4gPSBkeW5hbWljX2Nhc3Q8d3hXZWJWaWV3Kj4oZnJhbWUtPnZpZXcoKS0+aG9z
dFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpKTsKKyAgICAgICAgd3hXZWJWaWV3KiB3ZWJLaXRX
aW4gPSBkeW5hbWljX2Nhc3Q8d3hXZWJWaWV3Kj4oZnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSk7CiAgICAgICAgIGlmICh3ZWJLaXRXaW4pIHsKICAgICAg
ICAgICAgIHdlYktpdFdpbi0+bV9pbXBsLT5yZWRvU3RhY2suY2xlYXIoKTsKICAgICAgICAgICAg
IHdlYktpdFdpbi0+bV9pbXBsLT51bmRvU3RhY2suY2xlYXIoKTsKQEAgLTMyMiw3ICszMjIsNyBA
QCBib29sIEVkaXRvckNsaWVudFd4OjpjYW5VbmRvKCkgY29uc3QKICAgICBGcmFtZSogZnJhbWUg
PSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAogICAg
IGlmIChmcmFtZSkgewotICAgICAgICB3eFdlYlZpZXcqIHdlYktpdFdpbiA9IGR5bmFtaWNfY2Fz
dDx3eFdlYlZpZXcqPihmcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93
KCkpOworICAgICAgICB3eFdlYlZpZXcqIHdlYktpdFdpbiA9IGR5bmFtaWNfY2FzdDx3eFdlYlZp
ZXcqPihmcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKTsK
ICAgICAgICAgaWYgKHdlYktpdFdpbikgewogICAgICAgICAgICAgcmV0dXJuIHdlYktpdFdpbi0+
bV9pbXBsLT51bmRvU3RhY2suc2l6ZSgpICE9IDA7CiAgICAgICAgIH0KQEAgLTMzNSw3ICszMzUs
NyBAQCBib29sIEVkaXRvckNsaWVudFd4OjpjYW5SZWRvKCkgY29uc3QKICAgICBGcmFtZSogZnJh
bWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAog
ICAgIGlmIChmcmFtZSkgewotICAgICAgICB3eFdlYlZpZXcqIHdlYktpdFdpbiA9IGR5bmFtaWNf
Y2FzdDx3eFdlYlZpZXcqPihmcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2lu
ZG93KCkpOworICAgICAgICB3eFdlYlZpZXcqIHdlYktpdFdpbiA9IGR5bmFtaWNfY2FzdDx3eFdl
YlZpZXcqPihmcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgp
KTsKICAgICAgICAgaWYgKHdlYktpdFdpbiAmJiB3ZWJLaXRXaW4pIHsKICAgICAgICAgICAgIHJl
dHVybiB3ZWJLaXRXaW4tPm1faW1wbC0+cmVkb1N0YWNrLnNpemUoKSAhPSAwOwogICAgICAgICB9
CkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBFZGl0b3JDbGllbnRXeDo6dW5kbygpCiAgICAgRnJh
bWUqIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1l
KCk7CiAKICAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgd3hXZWJWaWV3KiB3ZWJLaXRXaW4gPSBk
eW5hbWljX2Nhc3Q8d3hXZWJWaWV3Kj4oZnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVdpbmRvdygpKTsKKyAgICAgICAgd3hXZWJWaWV3KiB3ZWJLaXRXaW4gPSBkeW5hbWljX2Nh
c3Q8d3hXZWJWaWV3Kj4oZnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VD
bGllbnQoKSk7CiAgICAgICAgIGlmICh3ZWJLaXRXaW4pIHsKICAgICAgICAgICAgIHdlYktpdFdp
bi0+bV9pbXBsLT51bmRvU3RhY2subGFzdCgpLmVkaXRDb21tYW5kKCktPnVuYXBwbHkoKTsKICAg
ICAgICAgICAgIHdlYktpdFdpbi0+bV9pbXBsLT51bmRvU3RhY2sucmVtb3ZlTGFzdCgpOwpAQCAt
MzYxLDcgKzM2MSw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50V3g6OnJlZG8oKQogICAgIEZyYW1lKiBm
cmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwog
CiAgICAgaWYgKGZyYW1lKSB7ICAgIAotICAgICAgICB3eFdlYlZpZXcqIHdlYktpdFdpbiA9IGR5
bmFtaWNfY2FzdDx3eFdlYlZpZXcqPihmcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRm
b3JtV2luZG93KCkpOworICAgICAgICB3eFdlYlZpZXcqIHdlYktpdFdpbiA9IGR5bmFtaWNfY2Fz
dDx3eFdlYlZpZXcqPihmcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNs
aWVudCgpKTsKICAgICAgICAgaWYgKHdlYktpdFdpbikgewogICAgICAgICAgICAgd2ViS2l0V2lu
LT5tX2ltcGwtPnJlZG9TdGFjay5maXJzdCgpLmVkaXRDb21tYW5kKCktPnJlYXBwbHkoKTsKICAg
ICAgICAgICAgIHdlYktpdFdpbi0+bV9pbXBsLT5yZWRvU3RhY2sucmVtb3ZlKDApOwotLSAKMS42
LjAuNAoK
</data>
<flag name="review"
          id="20839"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>