<?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>50216</bug_id>
          
          <creation_ts>2010-11-30 02:40:01 -0800</creation_ts>
          <short_desc>[WINCE] Add WebView</short_desc>
          <delta_ts>2010-11-30 08:30:34 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>aroben</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>314918</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-30 02:40:01 -0800</bug_when>
    <thetext>see patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314920</commentid>
    <comment_count>1</comment_count>
      <attachid>75116</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-30 02:48:32 -0800</bug_when>
    <thetext>Created attachment 75116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315025</commentid>
    <comment_count>2</comment_count>
      <attachid>75116</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-30 07:14:41 -0800</bug_when>
    <thetext>Comment on attachment 75116
Patch

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

You have a bunch of unnecessary parameter names in WebView.h.

I&apos;m not sure why the style bot didn&apos;t catch the style issues.

&gt; WebKit/wince/WebView.cpp:245
&gt; +    if (::GetUpdateRect(hWnd, &amp;updateRect, false)) {

Can you use an early return here?

&gt; WebKit/wince/WebView.h:61
&gt; +    WebCore::FrameView *view() const;

Misplaced *.

&gt; WebKit/wince/WebView.h:80
&gt; +    static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
&gt; +    LRESULT WndProc(HWND, UINT, WPARAM, LPARAM);

These should start with lowercase letters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315065</commentid>
    <comment_count>3</comment_count>
      <attachid>75116</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-30 08:30:15 -0800</bug_when>
    <thetext>Comment on attachment 75116
Patch

Clearing flags on attachment: 75116

Manually committed r72916: &lt;http://trac.webkit.org/changeset/72916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315066</commentid>
    <comment_count>4</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-30 08:30:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75116</attachid>
            <date>2010-11-30 02:48:32 -0800</date>
            <delta_ts>2010-11-30 08:30:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50216.patch</filename>
            <type>text/plain</type>
            <size>19953</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCmluZGV4IDBiOTliZjcuLjY3MDNlZGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW5jZS9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEw
LTExLTMwICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSU5DRV0gQWRkIFdlYlZp
ZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjE2
CisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDogQWRkZWQuCisgICAgICAgICogV2ViVmlldy5oOiBB
ZGRlZC4KKwogMjAxMC0xMS0xMyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggYWZ0ZXIgcjcxNTQxLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3BwIGIvV2ViS2l0L3dpbmNlL1dlYlZpZXcuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNDVlZWYKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXQvd2luY2UvV2ViVmlldy5jcHAKQEAgLTAsMCArMSw0NTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUsIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5z
dGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJW
aWV3LmgiCisKKyNpbmNsdWRlICJDaHJvbWVDbGllbnRXaW5DRS5oIgorI2luY2x1ZGUgIkNvbnRl
eHRNZW51Q2xpZW50V2luQ0UuaCIKKyNpbmNsdWRlICJEcmFnQ2xpZW50V2luQ0UuaCIKKyNpbmNs
dWRlICJFZGl0b3JDbGllbnRXaW5DRS5oIgorI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudFdpbkNFLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgor
I2luY2x1ZGUgIkluc3BlY3RvckNsaWVudFdpbkNFLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgor
I2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXNX
aW5DRS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUluc3RhbmNlSGFuZGxlLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCitjb25zdCBMUENXU1RSIGtXZWJWaWV3V2luZG93Q2xhc3NOYW1lID0g
TCJXZWJWaWV3V2luZG93Q2xhc3MiOworCisKK0xSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlldzo6V2Vi
Vmlld1duZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJB
TSBsUGFyYW0pCit7CisgICAgaWYgKFdlYlZpZXcqIHdlYlZpZXcgPSByZWludGVycHJldF9jYXN0
PFdlYlZpZXcqPihHZXRXaW5kb3dMb25nKGhXbmQsIDApKSkKKyAgICAgICAgcmV0dXJuIHdlYlZp
ZXctPlduZFByb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworCisgICAgcmV0dXJu
IERlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworfQorCitQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlSW50b0J1ZmZlcihjb25zdCBjaGFyKiBu
YW1lKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKKworV2Vi
Vmlldzo6V2ViVmlldyhIV05EIGh3bmQsIHVuc2lnbmVkIGZlYXR1cmVzKQorICAgIDogbV9mcmFt
ZSgwKQorICAgICwgbV9wYWdlKDApCisgICAgLCBtX3BhcmVudFdpbmRvd0hhbmRsZShod25kKQor
ICAgICwgbV9lbmFibGVEb3VibGVCdWZmZXIoZmVhdHVyZXMgJiBFbmFibGVEb3VibGVCdWZmZXJp
bmcpCit7CisgICAgUkVDVCByY0NsaWVudDsKKyAgICBHZXRDbGllbnRSZWN0KGh3bmQsICZyY0Ns
aWVudCk7CisKKyAgICBtX3dpbmRvd0hhbmRsZSA9IENyZWF0ZVdpbmRvdyhrV2ViVmlld1dpbmRv
d0NsYXNzTmFtZSwgMCwgV1NfQ0hJTEQsCisgICAgICAgIENXX1VTRURFRkFVTFQsIDAsIENXX1VT
RURFRkFVTFQsIDAsIGh3bmQsIDAsIFdlYkNvcmU6Omluc3RhbmNlSGFuZGxlKCksIDApOworCisg
ICAgU2V0V2luZG93TG9uZyhtX3dpbmRvd0hhbmRsZSwgMCwgcmVpbnRlcnByZXRfY2FzdDxMT05H
Pih0aGlzKSk7CisKKyAgICBNb3ZlV2luZG93KG1fd2luZG93SGFuZGxlLCAwLCAwLCByY0NsaWVu
dC5yaWdodCwgcmNDbGllbnQuYm90dG9tLCBUUlVFKTsKKyAgICBTaG93V2luZG93KG1fd2luZG93
SGFuZGxlLCBTV19TSE9XKTsKKworICAgIFBhZ2U6OlBhZ2VDbGllbnRzIHBhZ2VDbGllbnRzOwor
ICAgIHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBXZWJLaXQ6OkNocm9tZUNsaWVudFdp
bkNFKHRoaXMpOworICAgIHBhZ2VDbGllbnRzLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYktp
dDo6Q29udGV4dE1lbnVDbGllbnRXaW5DRSh0aGlzKTsKKyAgICBwYWdlQ2xpZW50cy5lZGl0b3JD
bGllbnQgPSBuZXcgV2ViS2l0OjpFZGl0b3JDbGllbnRXaW5DRSh0aGlzKTsKKyAgICBwYWdlQ2xp
ZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYktpdDo6RHJhZ0NsaWVudFdpbkNFKCk7CisgICAgcGFn
ZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50V2lu
Q0UodGhpcyk7CisgICAgbV9wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOworCisgICAgU2V0
dGluZ3MqIHNldHRpbmdzID0gbV9wYWdlLT5zZXR0aW5ncygpOworICAgIHNldHRpbmdzLT5zZXRE
ZWZhdWx0Rml4ZWRGb250U2l6ZSgxNCk7CisgICAgc2V0dGluZ3MtPnNldERlZmF1bHRGb250U2l6
ZSgxNCk7CisgICAgc2V0dGluZ3MtPnNldE1pbmltdW1Gb250U2l6ZSg4KTsKKyAgICBzZXR0aW5n
cy0+c2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZSg4KTsKKyAgICBzZXR0aW5ncy0+c2V0SmF2YVNj
cmlwdEVuYWJsZWQodHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseSh0cnVlKTsKKworICAgIFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSogbG9hZGVy
Q2xpZW50ID0gbmV3IFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSh0aGlzKTsKKyAgICBS
ZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UsIDAsIGxvYWRlckNsaWVu
dCk7CisgICAgbV9mcmFtZSA9IGZyYW1lLmdldCgpOworICAgIGxvYWRlckNsaWVudC0+c2V0RnJh
bWUobV9mcmFtZSk7CisKKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5pbml0KCk7CisKKyAgICBp
ZiAodmlldygpKSB7CisgICAgICAgIFJFQ1Qgd2luZG93UmVjdDsKKyAgICAgICAgZnJhbWVSZWN0
KCZ3aW5kb3dSZWN0KTsKKyAgICAgICAgdmlldygpLT5yZXNpemUoSW50UmVjdCh3aW5kb3dSZWN0
KS5zaXplKCkpOworICAgIH0KK30KKworV2ViVmlldzo6fldlYlZpZXcoKQoreworICAgIGRlbGV0
ZSBtX3BhZ2U7CisgICAgRGVzdHJveVdpbmRvdyhtX3dpbmRvd0hhbmRsZSk7Cit9CisKK3ZvaWQg
V2ViVmlldzo6aW5pdGlhbGl6ZShISU5TVEFOQ0UgaW5zdGFuY2VIYW5kbGUpCit7CisgICAgSlND
Ojppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgp
OworICAgIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjppbml0aWFsaXplKCk7CisKKyAgICBXZWJD
b3JlOjpzZXRJbnN0YW5jZUhhbmRsZShpbnN0YW5jZUhhbmRsZSk7CisKKyAgICBXTkRDTEFTUyB3
YzsKKyAgICB3Yy5zdHlsZSAgICAgICAgICA9IENTX0RCTENMS1M7CisgICAgd2MubHBmblduZFBy
b2MgICAgPSBXZWJWaWV3OjpXZWJWaWV3V25kUHJvYzsKKyAgICB3Yy5jYkNsc0V4dHJhICAgICA9
IDA7CisgICAgd2MuY2JXbmRFeHRyYSAgICAgPSBzaXplb2Yodm9pZCAqKTsKKyAgICB3Yy5oSW5z
dGFuY2UgICAgICA9IGluc3RhbmNlSGFuZGxlOworICAgIHdjLmhJY29uICAgICAgICAgID0gMDsK
KyAgICB3Yy5oQ3Vyc29yICAgICAgICA9IExvYWRDdXJzb3IoMCwgSURDX0FSUk9XKTsKKyAgICB3
Yy5oYnJCYWNrZ3JvdW5kICA9IDA7CisgICAgd2MubHBzek1lbnVOYW1lICAgPSAwOworICAgIHdj
Lmxwc3pDbGFzc05hbWUgID0ga1dlYlZpZXdXaW5kb3dDbGFzc05hbWU7CisKKyAgICBSZWdpc3Rl
ckNsYXNzKCZ3Yyk7Cit9CisKK3ZvaWQgV2ViVmlldzo6Y2xlYW51cCgpCit7CisgICAgVW5yZWdp
c3RlckNsYXNzKGtXZWJWaWV3V2luZG93Q2xhc3NOYW1lLCBXZWJDb3JlOjppbnN0YW5jZUhhbmRs
ZSgpKTsKK30KKworUGFzc1JlZlB0cjxGcmFtZT4gV2ViVmlldzo6Y3JlYXRlRnJhbWUoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3du
ZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCAvKmFsbG93c1Njcm9sbGluZyovLCBpbnQgLyptYXJnaW5X
aWR0aCovLCBpbnQgLyptYXJnaW5IZWlnaHQqLykKK3sKKyAgICBGcmFtZSogY29yZUZyYW1lID0g
bV9mcmFtZTsKKworICAgIFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSAqbG9hZGVyQ2xp
ZW50ID0gbmV3IFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRSh0aGlzKTsKKyAgICBSZWZQ
dHI8RnJhbWU+IGNoaWxkRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKG1fcGFnZSwgb3duZXJFbGVtZW50
LCBsb2FkZXJDbGllbnQpOworICAgIGxvYWRlckNsaWVudC0+c2V0RnJhbWUoY2hpbGRGcmFtZS5n
ZXQoKSk7CisKKyAgICBjb3JlRnJhbWUtPnRyZWUoKS0+YXBwZW5kQ2hpbGQoY2hpbGRGcmFtZSk7
CisgICAgY2hpbGRGcmFtZS0+dHJlZSgpLT5zZXROYW1lKG5hbWUpOworICAgIGNoaWxkRnJhbWUt
PmluaXQoKTsKKworICAgIC8vIFRoZSBjcmVhdGlvbiBvZiB0aGUgZnJhbWUgbWF5IGhhdmUgcnVu
IGFyYml0cmFyeSBKYXZhU2NyaXB0IHRoYXQgcmVtb3ZlZCBpdCBmcm9tIHRoZSBwYWdlIGFscmVh
ZHkuCisgICAgaWYgKCFjaGlsZEZyYW1lLT5wYWdlKCkpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgY2hpbGRGcmFtZS0+bG9hZGVyKCktPmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJlZmVy
cmVyLCBjaGlsZEZyYW1lLmdldCgpKTsKKworICAgIC8vIFRoZSBmcmFtZSdzIG9ubG9hZCBoYW5k
bGVyIG1heSBoYXZlIHJlbW92ZWQgaXQgZnJvbSB0aGUgZG9jdW1lbnQuCisgICAgaWYgKCFjaGls
ZEZyYW1lLT50cmVlKCktPnBhcmVudCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBjaGlsZEZyYW1lLnJlbGVhc2UoKTsKK30KKwordm9pZCBXZWJWaWV3OjpydW5KYXZhU2NyaXB0
QWxlcnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK2Jvb2wgV2ViVmlldzo6cnVuSmF2YVNjcmlwdENvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIFdlYlZpZXc6OnJ1bkphdmFTY3JpcHRQcm9tcHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViVmlldzo6ZnJhbWVS
ZWN0KFJFQ1QqIHJlY3QpIGNvbnN0Cit7CisgICAgR2V0V2luZG93UmVjdChtX3dpbmRvd0hhbmRs
ZSwgcmVjdCk7Cit9CisKK0ZyYW1lVmlldyogV2ViVmlldzo6dmlldygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZnJhbWUgPyBtX2ZyYW1lLT52aWV3KCkgOiAwOworfQorCit2b2lkIFdlYlZpZXc6
OmxvYWQoTFBDV1NUUiB1cmwpCit7CisgICAgbG9hZChTdHJpbmcodXJsKSk7Cit9CisKK3ZvaWQg
V2ViVmlldzo6bG9hZChjb25zdCBTdHJpbmcgJnVybCkKK3sKKyAgICBsb2FkKFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCh1cmwpKTsKK30KKwordm9pZCBXZWJWaWV3Ojpsb2FkKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCAmcmVxdWVzdCkKK3sKKyAgICBmcmFtZSgpLT5sb2FkZXIoKS0+
bG9hZChyZXF1ZXN0LCBmYWxzZSk7Cit9CisKK3ZvaWQgV2ViVmlldzo6cmVsb2FkKCkKK3sKKyAg
ICBmcmFtZSgpLT5sb2FkZXIoKS0+cmVsb2FkKCk7Cit9CisKK3ZvaWQgV2ViVmlldzo6c3RvcCgp
Cit7CisgICAgZnJhbWUoKS0+bG9hZGVyKCktPnN0b3BBbGxMb2FkZXJzKCk7Cit9CisKK3ZvaWQg
V2ViVmlldzo6cGFpbnQoSERDIGhEQywgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCit7CisgICAg
T3duUHRyPEhSR04+IGNsaXBSZ24oQ3JlYXRlUmVjdFJnbihjbGlwUmVjdC54KCksIGNsaXBSZWN0
LnkoKSwgY2xpcFJlY3QucmlnaHQoKSwgY2xpcFJlY3QuYm90dG9tKCkpKTsKKyAgICBTZWxlY3RD
bGlwUmduKGhEQywgY2xpcFJnbi5nZXQoKSk7CisKKyAgICBHcmFwaGljc0NvbnRleHQgZ2MoaERD
KTsKKyAgICB2aWV3KCktPnBhaW50KCZnYywgY2xpcFJlY3QpOworfQorCitib29sIFdlYlZpZXc6
OmhhbmRsZVBhaW50KEhXTkQgaFduZCkKK3sKKyAgICBSRUNUIHVwZGF0ZVJlY3Q7CisgICAgaWYg
KDo6R2V0VXBkYXRlUmVjdChoV25kLCAmdXBkYXRlUmVjdCwgZmFsc2UpKSB7CisgICAgICAgIFBB
SU5UU1RSVUNUIHBzOworICAgICAgICBIREMgaERDID0gQmVnaW5QYWludChtX3dpbmRvd0hhbmRs
ZSwgJnBzKTsKKworICAgICAgICBJbnRSZWN0IGNsaXBSZWN0KHVwZGF0ZVJlY3QpOworCisgICAg
ICAgIGlmIChtX2VuYWJsZURvdWJsZUJ1ZmZlcikgeworICAgICAgICAgICAgaWYgKCFtX2RvdWJs
ZUJ1ZmZlckRDKSB7CisgICAgICAgICAgICAgICAgUkVDVCByY0NsaWVudDsKKyAgICAgICAgICAg
ICAgICBHZXRDbGllbnRSZWN0KG1fd2luZG93SGFuZGxlLCAmcmNDbGllbnQpOworCisgICAgICAg
ICAgICAgICAgbV9kb3VibGVCdWZmZXJEQyA9IGFkb3B0UHRyKENyZWF0ZUNvbXBhdGlibGVEQyho
REMpKTsKKyAgICAgICAgICAgICAgICBtX2RvdWJsZUJ1ZmZlckJpdG1hcCA9IGFkb3B0UHRyKENy
ZWF0ZUNvbXBhdGlibGVCaXRtYXAoaERDLCByY0NsaWVudC5yaWdodCwgcmNDbGllbnQuYm90dG9t
KSk7CisgICAgICAgICAgICAgICAgU2VsZWN0T2JqZWN0KG1fZG91YmxlQnVmZmVyREMuZ2V0KCks
IG1fZG91YmxlQnVmZmVyQml0bWFwLmdldCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgcGFpbnQobV9kb3VibGVCdWZmZXJEQy5nZXQoKSwgY2xpcFJlY3QpOworCisgICAgICAgICAg
ICBCaXRCbHQoaERDLCBjbGlwUmVjdC54KCksIGNsaXBSZWN0LnkoKSwgY2xpcFJlY3Qud2lkdGgo
KSwgY2xpcFJlY3QuaGVpZ2h0KCksIG1fZG91YmxlQnVmZmVyREMuZ2V0KCksIGNsaXBSZWN0Lngo
KSwgY2xpcFJlY3QueSgpLCBTUkNDT1BZKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBw
YWludChoREMsIGNsaXBSZWN0KTsKKworICAgICAgICBFbmRQYWludChtX3dpbmRvd0hhbmRsZSwg
JnBzKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFdlYlZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoSFdORCBoV25kLCBVSU5UIG1lc3Nh
Z2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgc3RhdGljIExPTkcgZ2xv
YmFsQ2xpY2tDb3VudDsKKyAgICBzdGF0aWMgSW50UG9pbnQgZ2xvYmFsUHJldlBvaW50OworICAg
IHN0YXRpYyBNb3VzZUJ1dHRvbiBnbG9iYWxQcmV2QnV0dG9uOworICAgIHN0YXRpYyBMT05HIGds
b2JhbFByZXZNb3VzZURvd25UaW1lOworCisgICAgLy8gQ3JlYXRlIG91ciBldmVudC4KKyAgICAv
LyBPbiBXTV9NT1VTRUxFQVZFIHdlIG5lZWQgdG8gY3JlYXRlIGEgbW91c2VvdXQgZXZlbnQsIHNv
IHdlIGZvcmNlIHRoZSBwb3NpdGlvbgorICAgIC8vIG9mIHRoZSBldmVudCB0byBiZSBhdCAoTUlO
U0hPUlQsIE1JTlNIT1JUKS4KKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChoV25k
LCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisKKyAgICBib29sIGluc2lkZVRocmVzaG9sZCA9
IGFicyhnbG9iYWxQcmV2UG9pbnQueCgpIC0gbW91c2VFdmVudC5wb3MoKS54KCkpIDwgOjpHZXRT
eXN0ZW1NZXRyaWNzKFNNX0NYRE9VQkxFQ0xLKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
JiYgYWJzKGdsb2JhbFByZXZQb2ludC55KCkgLSBtb3VzZUV2ZW50LnBvcygpLnkoKSkgPCA6Okdl
dFN5c3RlbU1ldHJpY3MoU01fQ1lET1VCTEVDTEspOworICAgIExPTkcgbWVzc2FnZVRpbWUgPSAw
OworCisgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CisgICAgaWYgKG1lc3NhZ2UgPT0gV01fTEJV
VFRPTkRPV04gfHwgbWVzc2FnZSA9PSBXTV9NQlVUVE9ORE9XTiB8fCBtZXNzYWdlID09IFdNX1JC
VVRUT05ET1dOKSB7CisgICAgICAgIC8vIEZJWE1FOiBJJ20gbm90IHN1cmUgaWYgdGhpcyBpcyB0
aGUgInJpZ2h0IiB3YXkgdG8gZG8gdGhpcworICAgICAgICAvLyBidXQgd2l0aG91dCB0aGlzIGNh
bGwsIHdlIG5ldmVyIGJlY29tZSBmb2N1c2VkIHNpbmNlIHdlIGRvbid0IGFsbG93CisgICAgICAg
IC8vIHRoZSBkZWZhdWx0IGhhbmRsaW5nIG9mIG1vdXNlIGV2ZW50cy4KKyAgICAgICAgU2V0Rm9j
dXMobV93aW5kb3dIYW5kbGUpOworCisgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3ZlRXZl
bnQoaFduZCwgV01fTU9VU0VNT1ZFLCAwLCBsUGFyYW0sIGZhbHNlKTsKKyAgICAgICAgbW92ZUV2
ZW50LnNldENsaWNrQ291bnQoMCk7CisgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmV2ZW50
SGFuZGxlcigpLT5oYW5kbGVNb3VzZU1vdmVFdmVudChtb3ZlRXZlbnQpOworCisgICAgICAgIC8v
IEFsd2F5cyBzdGFydCBjYXB0dXJpbmcgZXZlbnRzIHdoZW4gdGhlIG1vdXNlIGdvZXMgZG93biBp
biBvdXIgSFdORC4KKyAgICAgICAgU2V0Q2FwdHVyZShtX3dpbmRvd0hhbmRsZSk7CisKKyAgICAg
ICAgaWYgKGluc2lkZVRocmVzaG9sZCAmJiBtb3VzZUV2ZW50LmJ1dHRvbigpID09IGdsb2JhbFBy
ZXZCdXR0b24pCisgICAgICAgICAgICBnbG9iYWxDbGlja0NvdW50Kys7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBjbGljayBjb3VudC4KKyAgICAgICAgICAgIGdsb2Jh
bENsaWNrQ291bnQgPSAxOworICAgICAgICBnbG9iYWxQcmV2TW91c2VEb3duVGltZSA9IG1lc3Nh
Z2VUaW1lOworICAgICAgICBnbG9iYWxQcmV2QnV0dG9uID0gbW91c2VFdmVudC5idXR0b24oKTsK
KyAgICAgICAgZ2xvYmFsUHJldlBvaW50ID0gbW91c2VFdmVudC5wb3MoKTsKKworICAgICAgICBt
b3VzZUV2ZW50LnNldENsaWNrQ291bnQoZ2xvYmFsQ2xpY2tDb3VudCk7CisgICAgICAgIGhhbmRs
ZWQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVz
c0V2ZW50KG1vdXNlRXZlbnQpOworICAgIH0gZWxzZSBpZiAobWVzc2FnZSA9PSBXTV9MQlVUVE9O
REJMQ0xLIHx8IG1lc3NhZ2UgPT0gV01fTUJVVFRPTkRCTENMSyB8fCBtZXNzYWdlID09IFdNX1JC
VVRUT05EQkxDTEspIHsKKyAgICAgICAgZ2xvYmFsQ2xpY2tDb3VudCsrOworICAgICAgICBtb3Vz
ZUV2ZW50LnNldENsaWNrQ291bnQoZ2xvYmFsQ2xpY2tDb3VudCk7CisgICAgICAgIGhhbmRsZWQg
PSBtX3BhZ2UtPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2
ZW50KG1vdXNlRXZlbnQpOworICAgIH0gZWxzZSBpZiAobWVzc2FnZSA9PSBXTV9MQlVUVE9OVVAg
fHwgbWVzc2FnZSA9PSBXTV9NQlVUVE9OVVAgfHwgbWVzc2FnZSA9PSBXTV9SQlVUVE9OVVApIHsK
KyAgICAgICAgLy8gUmVjb3JkIHRoZSBnbG9iYWwgcG9zaXRpb24gYW5kIHRoZSBidXR0b24gb2Yg
dGhlIHVwLgorICAgICAgICBnbG9iYWxQcmV2QnV0dG9uID0gbW91c2VFdmVudC5idXR0b24oKTsK
KyAgICAgICAgZ2xvYmFsUHJldlBvaW50ID0gbW91c2VFdmVudC5wb3MoKTsKKyAgICAgICAgbW91
c2VFdmVudC5zZXRDbGlja0NvdW50KGdsb2JhbENsaWNrQ291bnQpOworICAgICAgICBtX3BhZ2Ut
Pm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobW91
c2VFdmVudCk7CisgICAgICAgIFJlbGVhc2VDYXB0dXJlKCk7CisgICAgfSBlbHNlIGlmIChtZXNz
YWdlID09IFdNX01PVVNFTU9WRSkgeworICAgICAgICBpZiAoIWluc2lkZVRocmVzaG9sZCkKKyAg
ICAgICAgICAgIGdsb2JhbENsaWNrQ291bnQgPSAwOworICAgICAgICBtb3VzZUV2ZW50LnNldENs
aWNrQ291bnQoZ2xvYmFsQ2xpY2tDb3VudCk7CisgICAgICAgIGhhbmRsZWQgPSBtX3BhZ2UtPm1h
aW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+bW91c2VNb3ZlZChtb3VzZUV2ZW50KTsKKyAgICB9
CisKKyAgICByZXR1cm4gaGFuZGxlZDsKK30KKworYm9vbCBXZWJWaWV3OjpoYW5kbGVNb3VzZVdo
ZWVsKEhXTkQgaFduZCwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSwgYm9vbCBpc0hvcml6
b250YWwpCit7CisgICAgUGxhdGZvcm1XaGVlbEV2ZW50IHdoZWVsRXZlbnQoaFduZCwgd1BhcmFt
LCBsUGFyYW0sIGlzSG9yaXpvbnRhbCk7CisgICAgcmV0dXJuIGZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOworfQorCitib29sIFdlYlZpZXc6Omhh
bmRsZUtleURvd24oV1BBUkFNIHZpcnR1YWxLZXlDb2RlLCBMUEFSQU0ga2V5RGF0YSwgYm9vbCBz
eXN0ZW1LZXlEb3duKQoreworICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIGlmICh2aXJ0dWFsS2V5Q29kZSA9PSBW
S19DQVBJVEFMKQorICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmNhcHNMb2NrU3RhdGVN
YXlIYXZlQ2hhbmdlZCgpOworCisgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleUV2ZW50KG1f
d2luZG93SGFuZGxlLCB2aXJ0dWFsS2V5Q29kZSwga2V5RGF0YSwgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpSYXdLZXlEb3duLCBzeXN0ZW1LZXlEb3duKTsKKyAgICBib29sIGhhbmRsZWQgPSBmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCktPmtleUV2ZW50KGtleUV2ZW50KTsKKworICAgIC8vIFRoZXNlIGV2
ZW50cyBjYW5ub3QgYmUgY2FuY2VsZWQsIGFuZCB3ZSBoYXZlIG5vIGRlZmF1bHQgaGFuZGxpbmcg
Zm9yIHRoZW0uCisgICAgLy8gRklYTUU6IG1hdGNoIElFIGxpc3QgbW9yZSBjbG9zZWx5LCBzZWUg
PGh0dHA6Ly9tc2RuMi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM1MzY5MzguYXNweD4u
CisgICAgaWYgKHN5c3RlbUtleURvd24gJiYgdmlydHVhbEtleUNvZGUgIT0gVktfUkVUVVJOKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoaGFuZGxlZCkgeworICAgICAgICBNU0cg
bXNnOworICAgICAgICBpZiAoIXN5c3RlbUtleURvd24pCisgICAgICAgICAgICA6OlBlZWtNZXNz
YWdlKCZtc2csIG1fd2luZG93SGFuZGxlLCBXTV9DSEFSLCBXTV9DSEFSLCBQTV9SRU1PVkUpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gaGFuZGxlZDsKK30KKwor
Ym9vbCBXZWJWaWV3OjpoYW5kbGVLZXlQcmVzcyhXUEFSQU0gY2hhckNvZGUsIExQQVJBTSBrZXlE
YXRhLCBib29sIHN5c3RlbUtleURvd24pCit7CisgICAgRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisKKyAgICBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQga2V5RXZlbnQobV93aW5kb3dIYW5kbGUsIGNoYXJDb2RlLCBrZXlEYXRhLCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OkNoYXIsIHN5c3RlbUtleURvd24pOworICAgIC8vIElFIGRv
ZXMgbm90IGRpc3BhdGNoIGtleXByZXNzIGV2ZW50IGZvciBXTV9TWVNDSEFSLgorICAgIGlmIChz
eXN0ZW1LZXlEb3duKQorICAgICAgICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5k
bGVBY2Nlc3NLZXkoa2V5RXZlbnQpOworICAgIGlmIChmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmtl
eUV2ZW50KGtleUV2ZW50KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgV2ViVmlldzo6aGFuZGxlS2V5VXAoV1BBUkFNIHZpcnR1YWxLZXlDb2Rl
LCBMUEFSQU0ga2V5RGF0YSwgYm9vbCBzeXN0ZW1LZXlEb3duKQoreworICAgIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudCBrZXlFdmVudChtX3dpbmRvd0hhbmRsZSwgdmlydHVhbEtleUNvZGUsIGtleURh
dGEsIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6S2V5VXAsIHN5c3RlbUtleURvd24pOworCisgICAg
RnJhbWUqIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZy
YW1lKCk7CisgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+a2V5RXZlbnQoa2V5RXZl
bnQpOworfQorCitMUkVTVUxUIFdlYlZpZXc6OlduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3Nh
Z2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgYm9vbCBoYW5kbGVkID0g
ZmFsc2U7CisKKyAgICBpZiAodmlldygpKSB7CisgICAgICAgIHN3aXRjaCAobWVzc2FnZSkgewor
ICAgICAgICBjYXNlIFdNX1BBSU5UOgorICAgICAgICAgICAgaGFuZGxlZCA9IGhhbmRsZVBhaW50
KGhXbmQpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXTV9NT1VTRU1PVkU6
CisgICAgICAgIGNhc2UgV01fTEJVVFRPTkRPV046CisgICAgICAgIGNhc2UgV01fTUJVVFRPTkRP
V046CisgICAgICAgIGNhc2UgV01fUkJVVFRPTkRPV046CisgICAgICAgIGNhc2UgV01fTEJVVFRP
TkRCTENMSzoKKyAgICAgICAgY2FzZSBXTV9NQlVUVE9OREJMQ0xLOgorICAgICAgICBjYXNlIFdN
X1JCVVRUT05EQkxDTEs6CisgICAgICAgIGNhc2UgV01fTEJVVFRPTlVQOgorICAgICAgICBjYXNl
IFdNX01CVVRUT05VUDoKKyAgICAgICAgY2FzZSBXTV9SQlVUVE9OVVA6CisgICAgICAgICAgICBp
ZiAoZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkgJiYgdmlldygpLT5kaWRGaXJzdExheW91dCgpKQor
ICAgICAgICAgICAgICAgIGhhbmRsZWQgPSBoYW5kbGVNb3VzZUV2ZW50KGhXbmQsIG1lc3NhZ2Us
IHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV01f
TU9VU0VXSEVFTDoKKyAgICAgICAgICAgIGlmIChmcmFtZSgpLT5ldmVudEhhbmRsZXIoKSAmJiB2
aWV3KCktPmRpZEZpcnN0TGF5b3V0KCkpCisgICAgICAgICAgICAgICAgaGFuZGxlZCA9IGhhbmRs
ZU1vdXNlV2hlZWwoaFduZCwgd1BhcmFtLCBsUGFyYW0sIHdQYXJhbSAmIE1LX1NISUZUKTsKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV01fU1lTS0VZRE9XTjoKKyAgICAgICAg
ICAgIGhhbmRsZWQgPSBoYW5kbGVLZXlEb3duKHdQYXJhbSwgbFBhcmFtLCB0cnVlKTsKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV01fS0VZRE9XTjoKKyAgICAgICAgICAgIGhh
bmRsZWQgPSBoYW5kbGVLZXlEb3duKHdQYXJhbSwgbFBhcmFtLCBmYWxzZSk7CisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlIFdNX1NZU0tFWVVQOgorICAgICAgICAgICAgaGFuZGxl
ZCA9IGhhbmRsZUtleVVwKHdQYXJhbSwgbFBhcmFtLCB0cnVlKTsKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgIGNhc2UgV01fS0VZVVA6CisgICAgICAgICAgICBoYW5kbGVkID0gaGFuZGxl
S2V5VXAod1BhcmFtLCBsUGFyYW0sIGZhbHNlKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGNhc2UgV01fU1lTQ0hBUjoKKyAgICAgICAgICAgIGhhbmRsZWQgPSBoYW5kbGVLZXlQcmVz
cyh3UGFyYW0sIGxQYXJhbSwgdHJ1ZSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBj
YXNlIFdNX0NIQVI6CisgICAgICAgICAgICBoYW5kbGVkID0gaGFuZGxlS2V5UHJlc3Mod1BhcmFt
LCBsUGFyYW0sIGZhbHNlKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV01f
Q0xPU0U6CisgICAgICAgICAgICBQb3N0TWVzc2FnZShtX3BhcmVudFdpbmRvd0hhbmRsZSwgV01f
Q0xPU0UsIHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOworICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGhhbmRsZWQpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgcmV0dXJuIERlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0p
OworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL1dlYlZpZXcuaCBiL1dlYktpdC93aW5jZS9X
ZWJWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjhhMDM4NwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdC93aW5jZS9XZWJWaWV3LmgKQEAgLTAsMCArMSwxMDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJv
Z2EuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViVmlld19oCisjZGVmaW5lIFdlYlZpZXdfaAorCisjaW5jbHVkZSAiSW50
UmVjdC5oIgorI2luY2x1ZGUgIk93blB0ci5oIgorI2luY2x1ZGUgIlBhc3NSZWZQdHIuaCIKKwor
bmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmc7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIEZyYW1lOworY2xhc3MgUGFnZTsKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIEhUTUxG
cmFtZU93bmVyRWxlbWVudDsKK2NsYXNzIEtVUkw7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Cit9
CisKK2NsYXNzIFdlYlZpZXcgeworcHVibGljOgorICAgIGVudW0gRmVhdHVyZXMgeworICAgICAg
ICBOb0ZlYXR1cmUgPSAwLAorICAgICAgICBFbmFibGVEb3VibGVCdWZmZXJpbmcgPSAxIDw8IDAK
KyAgICB9OworCisgICAgV2ViVmlldyhIV05EIGh3bmQsIHVuc2lnbmVkIGZlYXR1cmVzID0gRW5h
YmxlRG91YmxlQnVmZmVyaW5nKTsKKyAgICB+V2ViVmlldygpOworCisgICAgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZShISU5TVEFOQ0UgaW5zdGFuY2VIYW5kbGUpOworICAgIHN0YXRpYyB2b2lkIGNs
ZWFudXAoKTsKKworICAgIEhXTkQgd2luZG93SGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV93aW5k
b3dIYW5kbGU7IH0KKyAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lOyB9CisgICAgV2ViQ29yZTo6UGFnZSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZTsgfQorICAgIFdlYkNvcmU6OkZyYW1lVmlldyAqdmlldygpIGNvbnN0OworCisgICAgdm9pZCBs
b2FkKExQQ1dTVFIgdXJsKTsKKyAgICB2b2lkIGxvYWQoY29uc3QgV1RGOjpTdHJpbmcgJnVybCk7
CisgICAgdm9pZCBsb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCAmcmVxdWVzdCk7
CisgICAgdm9pZCByZWxvYWQoKTsKKyAgICB2b2lkIHN0b3AoKTsKKworICAgIHZvaWQgZnJhbWVS
ZWN0KFJFQ1QqIHJlY3QpIGNvbnN0OworCisgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4g
Y3JlYXRlRnJhbWUoY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2Vi
Q29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50KiwgY29uc3QgV1RGOjpTdHJpbmcmLCBib29sLCBp
bnQsIGludCk7CisKKyAgICAvLyBKYXZhU2NyaXB0IERpYWxvZworICAgIHZvaWQgcnVuSmF2YVNj
cmlwdEFsZXJ0KGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlKTsKKyAgICBib29sIHJ1bkphdmFT
Y3JpcHRDb25maXJtKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlKTsKKyAgICBib29sIHJ1bkph
dmFTY3JpcHRQcm9tcHQoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3Ry
aW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpOworCitwcml2YXRlOgorICAg
IHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXdXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBt
ZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKKyAgICBMUkVTVUxUIFduZFBy
b2MoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOworCisgICAgYm9vbCBoYW5kbGVQYWludChI
V05EIGhXbmQpOworICAgIGJvb2wgaGFuZGxlTW91c2VFdmVudChIV05EIGhXbmQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7CisgICAgYm9vbCBoYW5kbGVNb3Vz
ZVdoZWVsKEhXTkQgaFduZCwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSwgYm9vbCBpc0hv
cml6b250YWwpOworICAgIGJvb2wgaGFuZGxlS2V5RG93bihXUEFSQU0gdmlydHVhbEtleUNvZGUs
IExQQVJBTSBrZXlEYXRhLCBib29sIHN5c3RlbUtleURvd24pOworICAgIGJvb2wgaGFuZGxlS2V5
UHJlc3MoV1BBUkFNIGNoYXJDb2RlLCBMUEFSQU0ga2V5RGF0YSwgYm9vbCBzeXN0ZW1LZXlEb3du
KTsKKyAgICBib29sIGhhbmRsZUtleVVwKFdQQVJBTSB2aXJ0dWFsS2V5Q29kZSwgTFBBUkFNIGtl
eURhdGEsIGJvb2wgc3lzdGVtS2V5RG93bik7CisKKyAgICB2b2lkIHBhaW50KEhEQyBoREMsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKKworICAgIFdlYkNvcmU6OkZyYW1lKiBt
X2ZyYW1lOworICAgIFdlYkNvcmU6OlBhZ2UqIG1fcGFnZTsKKyAgICBIV05EIG1fcGFyZW50V2lu
ZG93SGFuZGxlOworICAgIEhXTkQgbV93aW5kb3dIYW5kbGU7CisgICAgYm9vbCBtX2VuYWJsZURv
dWJsZUJ1ZmZlcjsKKyAgICBPd25QdHI8SERDPiBtX2RvdWJsZUJ1ZmZlckRDOworICAgIE93blB0
cjxIQklUTUFQPiBtX2RvdWJsZUJ1ZmZlckJpdG1hcDsKK307CisKKyNlbmRpZiAvLyBXZWJWaWV3
X2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>