<?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>11738</bug_id>
          
          <creation_ts>2006-12-01 16:02:27 -0800</creation_ts>
          <short_desc>Make clicking links work again on Windows</short_desc>
          <delta_ts>2006-12-04 11:49:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Don Gibson">dgibson77</reporter>
          <assigned_to name="Don Gibson">dgibson77</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>43637</commentid>
    <comment_count>0</comment_count>
    <who name="Don Gibson">dgibson77</who>
    <bug_when>2006-12-01 16:02:27 -0800</bug_when>
    <thetext>In fixing the Windows build a few weeks ago, I simply stubbed out some loader functions rather than porting over the original versions from FrameWin.  Fixing this will mean link clicks work again.

Patch coming shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43638</commentid>
    <comment_count>1</comment_count>
      <attachid>11710</attachid>
    <who name="Don Gibson">dgibson77</who>
    <bug_when>2006-12-01 16:11:07 -0800</bug_when>
    <thetext>Created attachment 11710
patch v1

Re-implements a few bits that used to be in FrameWin, adds a few EventHandler forwarding functions (may not be strictly necessary), and patches mouse message handling to ignore unnecessary move events, so link clicks actually get through instead of being invalidated in most cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43639</commentid>
    <comment_count>2</comment_count>
    <who name="Don Gibson">dgibson77</who>
    <bug_when>2006-12-01 16:13:40 -0800</bug_when>
    <thetext>Oh yeah, I forgot that the patch also updates a lot of the formerly-AbstractShared Windows classes to no longer inherit from Shared&lt;&gt;.  I don&apos;t know how this is managing to compile on the trunk and how it compiled for me before, but as soon as I started touching my checkout today it (rightfully) broke.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43450</commentid>
    <comment_count>3</comment_count>
      <attachid>11710</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-04 11:45:03 -0800</bug_when>
    <thetext>Comment on attachment 11710
patch v1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43451</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-12-04 11:49:23 -0800</bug_when>
    <thetext>Committed revision 18000.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11710</attachid>
            <date>2006-12-01 16:11:07 -0800</date>
            <delta_ts>2006-12-04 11:45:03 -0800</delta_ts>
            <desc>patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>24243</size>
            <attacher name="Don Gibson">dgibson77</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNzk4MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMDYtMTItMDEgIERvbiBHaWJzb24gIDxkZ2lic29uNzdAZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzM4OgorICAgICAgICBNYWtl
IGxpbmsgY2xpY2tpbmcgd29yayBhZ2FpbiBvbiBXaW5kb3dzLgorCisgICAgICAgIFRoaXMgcmUt
aW1wbGVtZW50cyBhIGZldyBmdW5jdGlvbnMgdGhhdCB1c2VkIHRvIGJlIHBhcnQgb2YgRnJhbWVX
aW4gaW4KKyAgICAgICAgdGhlaXIgbmV3IGxvYWRlci1iYXNlZCBsb2NhdGlvbnMsIGFuZCBjb3Bp
ZXMgYSBmZXcgdGhpbmdzIGZyb20gdGhlIE1hYworICAgICAgICBhbmQgUXQgZXZlbnQgaGFuZGxp
bmcgY29kZSB0aGF0IGFyZW4ndCBzdHJpY3RseSBuZWNlc3NhcnkgYnV0IGFyZQorICAgICAgICBw
cmV0dHkgc2ltcGxlLgorCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBicmlkZ2Uvd2luL0Nocm9tZUNsaWVudFdpbi5oOgorICAgICAg
ICAqIGJyaWRnZS93aW4vQ29udGV4dE1lbnVDbGllbnRXaW4uaDoKKyAgICAgICAgKiBicmlkZ2Uv
d2luL0VkaXRvckNsaWVudFdpbi5oOgorICAgICAgICAqIGJyaWRnZS93aW4vRnJhbWVXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVXaW46OmNsaWVudCk6CisgICAgICAgICogYnJpZGdl
L3dpbi9GcmFtZVdpbi5oOgorICAgICAgICAqIGxvYWRlci93aW4vRG9jdW1lbnRMb2FkZXJXaW4u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzZXRUaXRsZSk6
CisgICAgICAgICogbG9hZGVyL3dpbi9GcmFtZUxvYWRlckNsaWVudFdpbi5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRXaW46OnVzZXJBZ2VudCk6CisgICAg
ICAgICogbG9hZGVyL3dpbi9GcmFtZUxvYWRlckNsaWVudFdpbi5oOgorICAgICAgICAqIGxvYWRl
ci93aW4vRnJhbWVMb2FkZXJXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjp1cmxTZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3Vi
bWl0Rm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c2V0VGl0bGUpOgorICAg
ICAgICAqIHBhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzTW91c2VSZWxlYXNlRXZlbnRU
b1N1YmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZl
bnRUb1N1YmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc01vdXNl
UHJlc3NFdmVudFRvU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
Ojp0YWJzVG9MaW5rcyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bENvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bGFzdEV2ZW50SXNN
b3VzZVVwKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc1N1YmZyYW1lRXZl
bnRUb1N1YmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc01vdXNl
RG93bkV2ZW50VG9XaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNz
V2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpnZXRI
aXN0b3J5TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpoaXN0b3J5VVJM
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjcmVhdGVGcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFdpbjo6c2V0VGl0bGUpOgorCiAyMDA2LTEyLTAx
ICBKdXN0aW4gR2FyY2lhICA8anVzdGluLmdhcmNpYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgam9obgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMTc5NjcpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwNTQsNiArMTA1NCwx
NCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGFnZVxTZXR0aW5ncy5oIgogCQkJCT4KIAkJ
CTwvRmlsZT4KKwkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJ3aW4iCisJCQkJPgorCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGFnZVx3aW5cRXZlbnRIYW5kbGVyV2luLmNwcCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCTwvRmlsdGVyPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgog
CQkJTmFtZT0ibG9hZGVyIgpAQCAtMTIzOCw5ICsxMjQ2LDIxIEBACiAJCQkJTmFtZT0id2luIgog
CQkJCT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGxvYWRlclx3aW5cRG9j
dW1lbnRMb2FkZXJXaW4uY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cLi5cbG9hZGVyXHdpblxGcmFtZUxvYWRlckNsaWVudFdpbi5jcHAi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlwu
Llxsb2FkZXJcd2luXEZyYW1lTG9hZGVyQ2xpZW50V2luLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxsb2FkZXJcd2luXEZyYW1lTG9h
ZGVyV2luLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KIAkJCTwvRmlsdGVyPgogCQk8L0ZpbHRl
cj4KIAkJPEZpbHRlcgpJbmRleDogV2ViQ29yZS9icmlkZ2Uvd2luL0Nocm9tZUNsaWVudFdpbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL3dpbi9DaHJvbWVDbGllbnRXaW4uaAkocmV2
aXNpb24gMTc5NjcpCisrKyBXZWJDb3JlL2JyaWRnZS93aW4vQ2hyb21lQ2xpZW50V2luLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDE0ICszMiwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSAgICBjbGFzcyBDaHJvbWVDbGllbnRXaW4gOiBwdWJsaWMgQ2hyb21lQ2xpZW50LCBwdWJsaWMg
U2hhcmVkPENocm9tZUNsaWVudFdpbj4geworICAgIGNsYXNzIENocm9tZUNsaWVudFdpbiA6IHB1
YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+Q2hyb21l
Q2xpZW50V2luKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsK
IAotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgeyBTaGFyZWQ8Q2hyb21lQ2xpZW50V2luPjo6
cmVmKCk7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgeyBTaGFyZWQ8Q2hyb21lQ2xp
ZW50V2luPjo6ZGVyZWYoKTsgfQotCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0
KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0
KCk7CiAKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3dpbi9Db250ZXh0TWVudUNsaWVudFdpbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL3dpbi9Db250ZXh0TWVudUNsaWVudFdpbi5oCShy
ZXZpc2lvbiAxNzk2NykKKysrIFdlYkNvcmUvYnJpZGdlL3dpbi9Db250ZXh0TWVudUNsaWVudFdp
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNCArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0gICAgY2xhc3MgQ29udGV4dE1lbnVDbGllbnRXaW4gOiBwdWJsaWMgQ29udGV4dE1l
bnVDbGllbnQsIHB1YmxpYyBTaGFyZWQ8Q29udGV4dE1lbnVDbGllbnRXaW4+IHsKKyAgICBjbGFz
cyBDb250ZXh0TWVudUNsaWVudFdpbiA6IHB1YmxpYyBDb250ZXh0TWVudUNsaWVudCB7CiAgICAg
cHVibGljOgogICAgICAgICB2aXJ0dWFsIH5Db250ZXh0TWVudUNsaWVudFdpbigpIHsgfQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKTsKIAotICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVmKCkgeyBTaGFyZWQ8Q29udGV4dE1lbnVDbGllbnRXaW4+OjpyZWYoKTsgfQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSB7IFNoYXJlZDxDb250ZXh0TWVudUNsaWVudFdp
bj46OmRlcmVmKCk7IH0KLQogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkQ3VzdG9tQ29udGV4dE1l
bnVJdGVtcyhDb250ZXh0TWVudSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJ
dGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKik7CiAKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3dp
bi9FZGl0b3JDbGllbnRXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS93aW4vRWRp
dG9yQ2xpZW50V2luLmgJKHJldmlzaW9uIDE3OTY3KQorKysgV2ViQ29yZS9icmlkZ2Uvd2luL0Vk
aXRvckNsaWVudFdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNCArMzIsMTEgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgRWRpdG9yQ2xpZW50V2luIDogcHVibGljIEVk
aXRvckNsaWVudCwgcHVibGljIFNoYXJlZDxFZGl0b3JDbGllbnRXaW4+IHsKKyAgICBjbGFzcyBF
ZGl0b3JDbGllbnRXaW4gOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIHZpcnR1YWwgfkVkaXRvckNsaWVudFdpbigpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQg
cGFnZURlc3Ryb3llZCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZWYoKSB7IFNoYXJlZDxF
ZGl0b3JDbGllbnRXaW4+OjpyZWYoKTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSB7
IFNoYXJlZDxFZGl0b3JDbGllbnRXaW4+OjpkZXJlZigpOyB9Ci0KICAgICAgICAgdmlydHVhbCBi
b29sIHNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRTaG93RGVsZXRlSW50ZXJmYWNlKEhUTUxFbGVtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3dpbi9G
cmFtZVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2Uvd2luL0ZyYW1lV2luLmNw
cAkocmV2aXNpb24gMTc5NjcpCisrKyBXZWJDb3JlL2JyaWRnZS93aW4vRnJhbWVXaW4uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTMsNCArMTEzLDkgQEAgYm9vbCBGcmFtZVdpbjo6a2V5UHJlc3Mo
Y29uc3QgUGxhdGZvcm1LZQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0ZyYW1lV2luQ2xpZW50
KiBGcmFtZVdpbjo6Y2xpZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQ7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3dpbi9GcmFtZVdp
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL3dpbi9GcmFtZVdpbi5oCShyZXZpc2lv
biAxNzk2NykKKysrIFdlYkNvcmUvYnJpZGdlL3dpbi9GcmFtZVdpbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC04Myw2ICs4Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wga2V5UHJlc3MoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7CiAKKyAgICAgICAg
RnJhbWVXaW5DbGllbnQqIGNsaWVudCgpIGNvbnN0OworCiAgICAgcHJvdGVjdGVkOgogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNMb2FkVHlwZVJlbG9hZCgpOwogCkluZGV4OiBXZWJDb3JlL2xvYWRl
ci93aW4vRG9jdW1lbnRMb2FkZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVy
L3dpbi9Eb2N1bWVudExvYWRlcldpbi5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2xvYWRl
ci93aW4vRG9jdW1lbnRMb2FkZXJXaW4uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IERvbiBHaWJzb24gPGRnaWJzb243N0BnbWFpbC5j
b20+CisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKworI2luY2x1ZGUgIkZyYW1lV2luLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIERvY3VtZW50TG9hZGVyOjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAg
IFN0cmluZyB0ZXh0ID0gdGl0bGU7CisgICAgdGV4dC5yZXBsYWNlKCcvLycsIG1fZnJhbWUtPmJh
Y2tzbGFzaEFzQ3VycmVuY3lTeW1ib2woKSk7CisKKyAgICBGcmFtZVdpbiogZnJhbWVXaW4gPSBz
dGF0aWNfY2FzdDxGcmFtZVdpbio+KG1fZnJhbWUpOworICAgIGlmIChmcmFtZVdpbi0+Y2xpZW50
KCkpCisgICAgICAgIGZyYW1lV2luLT5jbGllbnQoKS0+c2V0VGl0bGUodGV4dCk7Cit9CisKK30K
SW5kZXg6IFdlYkNvcmUvbG9hZGVyL3dpbi9GcmFtZUxvYWRlckNsaWVudFdpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvd2luL0ZyYW1lTG9hZGVyQ2xpZW50V2luLmNwcAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvbG9hZGVyL3dpbi9GcmFtZUxvYWRlckNsaWVudFdpbi5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
RG9uIEdpYnNvbiA8ZGdpYnNvbjc3QGdtYWlsLmNvbT4KKyAqCisgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisgCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnRXaW4uaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlCit7CisKK1N0cmluZyBGcmFtZUxvYWRlckNsaWVudFdpbjo6dXNlckFnZW50KCkKK3sK
KyAgICByZXR1cm4gIk1vemlsbGEvNS4wIChQQzsgVTsgSW50ZWw7IFdpbmRvd3M7IGVuKSBBcHBs
ZVdlYktpdC80MjArIChLSFRNTCwgbGlrZSBHZWNrbykiOworfQorCit9CkluZGV4OiBXZWJDb3Jl
L2xvYWRlci93aW4vRnJhbWVMb2FkZXJDbGllbnRXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2xvYWRlci93aW4vRnJhbWVMb2FkZXJDbGllbnRXaW4uaAkocmV2aXNpb24gMTc5NjcpCisrKyBX
ZWJDb3JlL2xvYWRlci93aW4vRnJhbWVMb2FkZXJDbGllbnRXaW4uaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsMTQgKzMyLDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEZy
YW1lTG9hZGVyQ2xpZW50V2luIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50LCBwdWJsaWMgU2hh
cmVkPEZyYW1lTG9hZGVyQ2xpZW50V2luPiB7CisgICAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRX
aW4gOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCB+RnJhbWVMb2FkZXJDbGllbnRXaW4oKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGZy
YW1lTG9hZGVyRGVzdHJveWVkKCk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlZigpIHsgU2hh
cmVkPEZyYW1lTG9hZGVyQ2xpZW50V2luPjo6cmVmKCk7IH0KLSAgICAgICAgdmlydHVhbCB2b2lk
IGRlcmVmKCkgeyBTaGFyZWQ8RnJhbWVMb2FkZXJDbGllbnRXaW4+OjpkZXJlZigpOyB9Ci0KICAg
ICAgICAgdmlydHVhbCBib29sIGhhc1dlYlZpZXcoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBi
b29sIGhhc0ZyYW1lVmlldygpIGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL2xvYWRlci93aW4vRnJh
bWVMb2FkZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL3dpbi9GcmFtZUxv
YWRlcldpbi5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2xvYWRlci93aW4vRnJhbWVMb2Fk
ZXJXaW4uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA2IERvbiBHaWJzb24gPGRnaWJzb243N0BnbWFpbC5jb20+CisgKgorICogQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRnJh
bWVMb2FkUmVxdWVzdC5oIgorI2luY2x1ZGUgIkZyYW1lV2luLmgiCisjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBGcmFtZUxvYWRlcjo6
dXJsU2VsZWN0ZWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgRXZlbnQqIC8qdHJp
Z2dlcmluZyBFdmVudCovKQoreworICAgIEZyYW1lV2luKiBmcmFtZVdpbiA9IHN0YXRpY19jYXN0
PEZyYW1lV2luKj4obV9mcmFtZSk7CisgICAgaWYgKGZyYW1lV2luLT5jbGllbnQoKSkKKyAgICAg
ICAgZnJhbWVXaW4tPmNsaWVudCgpLT5vcGVuVVJMKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCkudXJsKCksIHJlcXVlc3QubG9ja0hpc3RvcnkoKSk7Cit9CisKK3ZvaWQgRnJhbWVMb2Fk
ZXI6OnN1Ym1pdEZvcm0oY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgRXZlbnQqKQor
eworICAgIC8vIEZJWE1FOiB0aGlzIGlzIGEgaGFjayBpbmhlcml0ZWQgZnJvbSBGcmFtZU1hYywg
YW5kIHNob3VsZCBiZSBwdXNoZWQgaW50byBGcmFtZQorICAgIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVzb3VyY2VSZXF1ZXN0ID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKTsKKyAgICBpZiAo
bV9zdWJtaXR0ZWRGb3JtVVJMID09IHJlc291cmNlUmVxdWVzdC51cmwoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fc3VibWl0dGVkRm9ybVVSTCA9IHJlc291cmNlUmVxdWVzdC51cmwoKTsKKwor
ICAgIEZyYW1lV2luKiBmcmFtZVdpbiA9IHN0YXRpY19jYXN0PEZyYW1lV2luKj4obV9mcmFtZSk7
CisgICAgaWYgKGZyYW1lV2luLT5jbGllbnQoKSkKKyAgICAgICAgZnJhbWVXaW4tPmNsaWVudCgp
LT5zdWJtaXRGb3JtKHJlc291cmNlUmVxdWVzdC5odHRwTWV0aG9kKCksIHJlc291cmNlUmVxdWVz
dC51cmwoKSwgcmVzb3VyY2VSZXF1ZXN0Lmh0dHBCb2R5KCkpOworCisgICAgY2xlYXJSZWNvcmRl
ZEZvcm1WYWx1ZXMoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlcjo6c2V0VGl0bGUoY29uc3QgU3Ry
aW5nICZ0aXRsZSkKK3sKKyAgICBkb2N1bWVudExvYWRlcigpLT5zZXRUaXRsZSh0aXRsZSk7Cit9
CisKK30KSW5kZXg6IFdlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRG9uIEdpYnNvbiA8ZGdp
YnNvbjc3QGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkV2ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2Nyb2xsQmFyLmgiCisjaW5j
bHVkZSAiUmVuZGVyV2lkZ2V0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQoreworICAgIHJldHVybiBwYXNzU3Vi
ZnJhbWVFdmVudFRvU3ViZnJhbWUobWV2LCBzdWJmcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpwYXNzTW91c2VNb3ZlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQoreworICAgIHJldHVybiBwYXNzU3ViZnJhbWVF
dmVudFRvU3ViZnJhbWUobWV2LCBzdWJmcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpw
YXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQoreworICAgIHJldHVybiBwYXNzU3ViZnJhbWVFdmVu
dFRvU3ViZnJhbWUobWV2LCBzdWJmcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNz
V2hlZWxFdmVudFRvU3ViZnJhbWUoUGxhdGZvcm1XaGVlbEV2ZW50JiwgRnJhbWUqIHN1YmZyYW1l
KQoreworICAgIHJldHVybiBwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KHN1YmZyYW1lLT52aWV3KCkp
OworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU2Nyb2xsYmFy
KE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmLCBQbGF0Zm9ybVNjcm9sbGJhciogc2Nyb2xs
YmFyKQoreworICAgIHJldHVybiBwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KHNjcm9sbGJhcik7Cit9
CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChj
b25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmVudCkKK3sKKyAgICAvLyBGaWd1
cmUgb3V0IHdoaWNoIHZpZXcgdG8gc2VuZCB0aGUgZXZlbnQgdG8uCisgICAgaWYgKCFldmVudC50
YXJnZXROb2RlKCkgfHwgIWV2ZW50LnRhcmdldE5vZGUoKS0+cmVuZGVyZXIoKSB8fCAhZXZlbnQu
dGFyZ2V0Tm9kZSgpLT5yZW5kZXJlcigpLT5pc1dpZGdldCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgcmV0dXJuIHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KHN0YXRpY19j
YXN0PFJlbmRlcldpZGdldCo+KGV2ZW50LnRhcmdldE5vZGUoKS0+cmVuZGVyZXIoKSktPndpZGdl
dCgpKTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRv
V2lkZ2V0KFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0KQoreworICAgIHJldHVybiBwYXNzTW91
c2VEb3duRXZlbnRUb1dpZGdldChyZW5kZXJXaWRnZXQtPndpZGdldCgpKTsKK30KKworfQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS93aW4vVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCShyZXZpc2lv
biAxNzk2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vd2luL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIwNSwxOSArMjA1LDE2IEBAIGJvb2wgRWRpdG9yQ2xpZW50V2lu
OjpjYW5SZWRvKCkgY29uc3QgeyAKIHZvaWQgRWRpdG9yQ2xpZW50V2luOjp1bmRvKCkgeyBub3RJ
bXBsZW1lbnRlZCgpOyB9CiB2b2lkIEVkaXRvckNsaWVudFdpbjo6cmVkbygpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQogCitib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvTGlua3MoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Citib29s
IEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsQ29udHJvbHMoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNv
bnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiB2b2lkIEV2ZW50SGFuZGxl
cjo6Zm9jdXNEb2N1bWVudFZpZXcoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVEcmFnKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKSB7
IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZU1vdXNlVXAoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpIHsgbm90SW1w
bGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiBib29sIEV2ZW50SGFuZGxlcjo6bGFzdEV2ZW50
SXNNb3VzZVVwKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KLWJv
b2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSkgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gdHJ1ZTsgfQotYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVu
dFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3Vi
ZnJhbWUpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIHRydWU7IH0KLWJvb2wgRXZlbnRIYW5k
bGVyOjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVy
biB0cnVlOyB9Ci1ib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1N1YmZyYW1lKFBs
YXRmb3JtV2hlZWxFdmVudCYgZSwgRnJhbWUqIHN1YmZyYW1lKSB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBmYWxzZTsgfQotYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25F
dmVudFRvV2lkZ2V0KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKSB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3Vz
ZVByZXNzRXZlbnRUb1Njcm9sbGJhcihNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgUGxh
dGZvcm1TY3JvbGxiYXIqKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogYm9v
bCBFdmVudEhhbmRsZXI6OnNob3VsZERyYWdBdXRvTm9kZShOb2RlKiwgY29uc3QgSW50UG9pbnQm
KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotYm9vbCBFdmVudEhh
bmRsZXI6OnRhYnNUb0FsbENvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdCB7IG5vdEltcGxl
bWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtz
KEtleWJvYXJkRXZlbnQqKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsg
fQorYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqIHN1YmZyYW1lKSB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiBmYWxzZTsgfQorYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVu
dFRvV2lkZ2V0KFdpZGdldCopIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Citi
b29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChXaWRnZXQqKSB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogCiBGaWxlQ2hvb3Nlcjo6RmlsZUNob29zZXIo
RG9jdW1lbnQqLCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCopIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQogRmlsZUNob29zZXI6On5GaWxlQ2hvb3NlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpAQCAt
MjM0LDE1ICsyMzEsMTIgQEAgU3RyaW5nIEZyYW1lTG9hZGVyOjpvdmVycmlkZU1lZGlhVHlwZSgp
IAogV2lkZ2V0KiBGcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRT
aXplJiwgRWxlbWVudCosIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JikgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gMDsgfQogdm9pZCBGcmFtZUxvYWRlcjo6cmVkaXJlY3REYXRhVG9Q
bHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogaW50IEZy
YW1lTG9hZGVyOjpnZXRIaXN0b3J5TGVuZ3RoKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4g
MDsgfQotdm9pZCBGcmFtZUxvYWRlcjo6c2V0VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9CiBTdHJpbmcgRnJhbWVMb2FkZXI6OnJlZmVycmVyKCkgY29uc3Qg
eyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KIHZvaWQgRnJhbWVMb2FkZXI6
OnNhdmVEb2N1bWVudFN0YXRlKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEZyYW1lTG9h
ZGVyOjpyZXN0b3JlRG9jdW1lbnRTdGF0ZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBG
cmFtZUxvYWRlcjo6Z29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkgeyBub3RJbXBsZW1lbnRl
ZCgpOyB9CiBLVVJMIEZyYW1lTG9hZGVyOjpoaXN0b3J5VVJMKGludCBkaXN0YW5jZSkgeyBub3RJ
bXBsZW1lbnRlZCgpOyByZXR1cm4gS1VSTCgpO30KLXZvaWQgRnJhbWVMb2FkZXI6OnVybFNlbGVj
dGVkKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBFdmVudCopIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQogRnJhbWUqIEZyYW1lTG9hZGVyOjpjcmVhdGVGcmFtZShLVVJMIGNvbnN0JiwgU3RyaW5nIGNv
bnN0JiwgRWxlbWVudCosIFN0cmluZyBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IDA7IH0KLXZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0oY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYsIEV2ZW50KikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEZyYW1lTG9hZGVyOjpwYXJ0
Q2xlYXJlZEluQmVnaW4oKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIEtVUkwgRnJhbWVMb2FkZXI6
Om9yaWdpbmFsUmVxdWVzdFVSTCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIEtV
UkwoKTsgfQogYm9vbCBGcmFtZUxvYWRlcjo6Y2FuR29CYWNrT3JGb3J3YXJkKGludCkgY29uc3Qg
eyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KQEAgLTMyMyw3ICszMTcsNiBAQCB2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjphZGRIaXN0b3J5SXRlCiB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50V2luOjpkaWRGaW5pc2hMb2FkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50V2luOjpwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpzZXRUaXRsZShj
b25zdCBTdHJpbmcmLCBjb25zdCBLVVJMJikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1TdHJpbmcg
RnJhbWVMb2FkZXJDbGllbnRXaW46OnVzZXJBZ2VudCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIFN0cmluZygpOyB9CiAKIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVCb3JkZXIoKSB7IG5vdElt
cGxlbWVudGVkKCk7IH0KIApJbmRleDogV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzk4MSkKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAwNi0xMi0wMSAgRG9uIEdpYnNvbiAgPGRn
aWJzb243N0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3Mzg6
CisgICAgICAgIE1ha2UgbGluayBjbGlja2luZyB3b3JrIGFnYWluIG9uIFdpbmRvd3MuCisKKyAg
ICAgICAgVGhlIFdlYktpdCBjaGFuZ2VzIGFyZSB0byBpZ25vcmUgV01fTU9VU0VNT1ZFRCBtZXNz
YWdlcyB3aGVuIHRoZSBtb3VzZQorICAgICAgICBoYXNuJ3QgYWN0dWFsbHkgbW92ZWQsIHdoaWNo
IHdlcmUgcHJldmVudGluZyBjbGlja3MgZnJvbSBhY3R1YWxseQorICAgICAgICBnZXR0aW5nIGRp
c3BhdGNoZWQgaW4gbWFueSBjYXNlcy4gIEl0J3MgYSBwZWN1bGlhcml0eSBvZiBXaW5kb3dzIG1v
dXNlCisgICAgICAgIGhhbmRsaW5nIHRoYXQgd2UgcmVjZWl2ZSB0aGVzZSBhdCBhbGwuCisKKyAg
ICAgICAgKiBDT00vV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKyAg
ICAgICAgKFdlYlZpZXc6Om1vdXNlTW92ZWQpOgorICAgICAgICAqIENPTS9XZWJWaWV3Lmg6CisK
IDIwMDYtMTItMDEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE1pdHouCkluZGV4OiBXZWJLaXQvQ09NL1dlYlZpZXcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9DT00vV2ViVmlldy5jcHAJKHJldmlzaW9uIDE3OTY3KQorKysgV2ViS2l0L0NP
TS9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsMTAgQEAgV2ViVmlldzo6
V2ViVmlldygpCiB7CiAgICAgU2V0UmVjdEVtcHR5KCZtX2ZyYW1lKTsKIAorICAgIC8vIHNldCB0
byBpbXBvc3NpYmxlIHBvaW50IHNvIHdlIGFsd2F5cyBnZXQgdGhlIGZpcnN0IG1vdXNlIHBvcwor
ICAgIG1fbGFzdE1vdXNlUG9zLnggPSAtMTsKKyAgICBtX2xhc3RNb3VzZVBvcy55ID0gLTE7CisK
ICAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1lOjpjcmVhdGVJbnN0YW5jZSgpOwogICAgIG1fYmFj
a0ZvcndhcmRMaXN0ID0gV2ViQmFja0ZvcndhcmRMaXN0OjpjcmVhdGVJbnN0YW5jZSgpOwogCkBA
IC05OSw4ICsxMDMsMTYgQEAgV2ViVmlldyogV2ViVmlldzo6Y3JlYXRlSW5zdGFuY2UoKQogCiB2
b2lkIFdlYlZpZXc6Om1vdXNlTW92ZWQoVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFS
QU0gbFBhcmFtKQogewotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KG1fdmlld1dp
bmRvdywgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwotICAgIG1fbWFpbkZyYW1lLT5pbXBsKCkt
PmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZU1vdmVFdmVudChtb3VzZUV2ZW50KTsKKyAgICAv
LyBkb24ndCBzZW5kIG1vdXNlIG1vdmUgbWVzc2FnZXMgaWYgdGhlIG1vdXNlIGhhc24ndCBtb3Zl
ZC4KKyAgICBpZiAoTE9XT1JEKGxQYXJhbSkgIT0gbV9sYXN0TW91c2VQb3MueCB8fAorICAgICAg
ICBISVdPUkQobFBhcmFtKSAhPSBtX2xhc3RNb3VzZVBvcy55KQorICAgIHsKKyAgICAgICAgbV9s
YXN0TW91c2VQb3MueCA9IExPV09SRChsUGFyYW0pOworICAgICAgICBtX2xhc3RNb3VzZVBvcy55
ID0gSElXT1JEKGxQYXJhbSk7CisKKyAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZl
bnQobV92aWV3V2luZG93LCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgIG1fbWFp
bkZyYW1lLT5pbXBsKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZU1vdmVFdmVudChtb3Vz
ZUV2ZW50KTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViVmlldzo6bW91c2VEb3duKFVJTlQgbWVzc2Fn
ZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKSW5kZXg6IFdlYktpdC9DT00vV2ViVmll
dy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DT00vV2ViVmlldy5oCShyZXZpc2lvbiAxNzk2NykK
KysrIFdlYktpdC9DT00vV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDgsNiArNDA4LDcg
QEAgcHJvdGVjdGVkOgogICAgIEhXTkQgbV9ob3N0V2luZG93OwogICAgIEhXTkQgbV92aWV3V2lu
ZG93OwogICAgIFdlYkZyYW1lKiBtX21haW5GcmFtZTsKKyAgICBQT0lOVCBtX2xhc3RNb3VzZVBv
czsKICAgICBJV2ViRnJhbWVMb2FkRGVsZWdhdGUqIG1fZnJhbWVMb2FkRGVsZWdhdGU7CiAgICAg
SVdlYlVJRGVsZWdhdGUqIG1fdWlEZWxlZ2F0ZTsKICAgICBJV2ViQmFja0ZvcndhcmRMaXN0KiBt
X2JhY2tGb3J3YXJkTGlzdDsK
</data>
<flag name="review"
          id="4220"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>