<?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>16676</bug_id>
          
          <creation_ts>2007-12-30 05:38:14 -0800</creation_ts>
          <short_desc>Apply GTK coding style to WebKit Gtk public headers</short_desc>
          <delta_ts>2008-06-10 01:08:41 -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>WebKitGTK</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Natterer">mitch</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
    
    <cc>christian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>65736</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Natterer">mitch</who>
    <bug_when>2007-12-30 05:38:14 -0800</bug_when>
    <thetext>Summary says it all :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65738</commentid>
    <comment_count>1</comment_count>
      <attachid>18191</attachid>
    <who name="Michael Natterer">mitch</who>
    <bug_when>2007-12-30 06:08:25 -0800</bug_when>
    <thetext>Created attachment 18191
Apply GTK coding style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65801</commentid>
    <comment_count>2</comment_count>
      <attachid>18191</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-30 22:35:53 -0800</bug_when>
    <thetext>Comment on attachment 18191
Apply GTK coding style

Seems smart to apply GTK coding style to the headers. But seems strange to do it inside the files. I&apos;ll let the GTK WebKit hackers make the call, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65885</commentid>
    <comment_count>3</comment_count>
      <attachid>18191</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-01 02:10:37 -0800</bug_when>
    <thetext>Comment on attachment 18191
Apply GTK coding style

Mitch,

I&apos;ve been thinking about this one the last couple of days.

There are two reasons why I don&apos;t think we should do this (yet):

(1) The patch makes indentation dependent on the length of various types names and variables names that we&apos;re planning to change pretty soon. So it would make future patches much larger than necessary. We want to keep patches as small as possible to ease reviewing and to ease merging, since several developers currently maintain their own branches and push regularly.

(2) The Apple guys often help out in maintaining this code, which is very valuable to the GTK+ port. I think they&apos;d be less likely to casually fix our build if they had to mess about with whitespace in surrounding unrelated lines.

The GTK+ coding style is more aesthetic but I don&apos;t think it&apos;s worthwhile given these factors.

It may make sense to apply the header changes after the API has stabilised.

It probably makes sense to apply the part of the patch to GtkLauncher&apos;s main.c right now. I can apply a reduced version of the patch to do that if you like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66025</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Natterer">mitch</who>
    <bug_when>2008-01-02 07:07:56 -0800</bug_when>
    <thetext>Sure, please go ahead and apply the patch to the launcher please, better
that than nothing :)

However, I don&apos;t really agree on the &quot;we want to keep patches as small
as possible&quot; argument. If you apply that policy, the coding stlye will
always be slightly messed up. Also, there is never a moment where you
can &quot;safely&quot; change a project&apos;s coding style. People always have
patches and branches.

I vote for better now than later as the API is guaranteed to grow,
and if it&apos;s in the right style now people are at least shown what
the right style is, rather than having their commits changed at
some later point and sitting on even larger patches to a bigger
code base which don&apos;t apply any longer.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66571</commentid>
    <comment_count>5</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-01-08 12:06:03 -0800</bug_when>
    <thetext>Thanks for your comments Mitch -- I think we should keep this debate open. There are strong arguments in each direction from both camps, one experienced in WebKit/C++ and the other in GTK+/C.

Our project sits at the borderline and the current coding style is a compromise that&apos;s worked quite well. As the project grows I&apos;d be happy to re-evaluate this decision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82575</commentid>
    <comment_count>6</comment_count>
      <attachid>21564</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2008-06-07 13:43:42 -0700</bug_when>
    <thetext>Created attachment 21564
Apply gtk+ style to headers

This patch applies Gtk+ coding style to public webkit headers. It doesn&apos;t touch any implementation or private files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82668</commentid>
    <comment_count>7</comment_count>
      <attachid>21564</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-08 13:57:47 -0700</bug_when>
    <thetext>Comment on attachment 21564
Apply gtk+ style to headers

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82815</commentid>
    <comment_count>8</comment_count>
      <attachid>21564</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2008-06-10 00:51:38 -0700</bug_when>
    <thetext>Comment on attachment 21564
Apply gtk+ style to headers

Committed in r34477.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18191</attachid>
            <date>2007-12-30 06:08:25 -0800</date>
            <delta_ts>2008-06-07 13:43:42 -0700</delta_ts>
            <desc>Apply GTK coding style</desc>
            <filename>gtk-coding-style.patch-1</filename>
            <type>text/plain</type>
            <size>124509</size>
            <attacher name="Michael Natterer">mitch</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggYWJiMmU2ZS4uNDliYWM5MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwNy0xMi0zMCAg
TWljaGFlbCBOYXR0ZXJlciAgPG1pdGNoQGltZW5kaW8uY29tPgorCisJUmV2aWV3ZWQgYnkgZm9v
YmFyLgorCisJKiBXZWJWaWV3L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcAorCSogV2ViVmlldy93
ZWJraXRuZXR3b3JrcmVxdWVzdC5oCisJKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCisJKiBX
ZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAorCSogV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5jcHAKKwkq
IFdlYlZpZXcvd2Via2l0d2ViZnJhbWUuaDogYXBwbHkgR1RLKyBjb2Rpbmcgc3R5bGUgKG1vcmUg
b3IgbGVzcykuCisKIDIwMDctMTItMjkgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHVu
cGx1Z2dhYmxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwIGIvV2ViS2l0
L2d0ay9XZWJWaWV3L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcAppbmRleCBkY2MxZTFmLi5iMmIx
ZGM4IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0bmV0d29ya3JlcXVlc3Qu
Y3BwCisrKyBiL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAKQEAg
LTI3LDU2ICsyNyw2MyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogZXh0ZXJuICJDIiB7
CiAKLUdfREVGSU5FX1RZUEUoV2ViS2l0TmV0d29ya1JlcXVlc3QsIHdlYmtpdF9uZXR3b3JrX3Jl
cXVlc3QsIEdfVFlQRV9PQkpFQ1QpOworR19ERUZJTkVfVFlQRSAoV2ViS2l0TmV0d29ya1JlcXVl
c3QsIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpOwogCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3N0YXRp
YyB2b2lkCit3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3Qp
CiB7Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiByZXF1ZXN0UHJpdmF0ZSA9IFdF
QktJVF9ORVRXT1JLX1JFUVVFU1RfR0VUX1BSSVZBVEUob2JqZWN0KTsKKyAgICBXZWJLaXROZXR3
b3JrUmVxdWVzdFByaXZhdGUgKnJlcXVlc3RQcml2YXRlID0gV0VCS0lUX05FVFdPUktfUkVRVUVT
VF9HRVRfUFJJVkFURShvYmplY3QpOwogCi0gICAgZ19mcmVlKHJlcXVlc3RQcml2YXRlLT51cmkp
OworICAgIGdfZnJlZSAocmVxdWVzdFByaXZhdGUtPnVyaSk7CiAKLSAgICBHX09CSkVDVF9DTEFT
Uyh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7
CisgICAgR19PQkpFQ1RfQ0xBU1MgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfcGFyZW50X2NsYXNz
KS0+ZmluYWxpemUgKG9iamVjdCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3Jl
cXVlc3RfY2xhc3NfaW5pdChXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzKiByZXF1ZXN0Q2xhc3Mp
CitzdGF0aWMgdm9pZAord2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0IChXZWJLaXRO
ZXR3b3JrUmVxdWVzdENsYXNzICpyZXF1ZXN0Q2xhc3MpCiB7Ci0gICAgZ190eXBlX2NsYXNzX2Fk
ZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0
ZSkpOworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAocmVxdWVzdENsYXNzLCBzaXplb2Yg
KFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSkpOwogCi0gICAgR19PQkpFQ1RfQ0xBU1MocmVx
dWVzdENsYXNzKS0+ZmluYWxpemUgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplOwor
ICAgIEdfT0JKRUNUX0NMQVNTIChyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfZmluYWxpemU7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3Jl
cXVlc3RfaW5pdChXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKK3N0YXRpYyB2b2lkCit3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X2luaXQgKFdlYktpdE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0
KQogewogfQogCi1XZWJLaXROZXR3b3JrUmVxdWVzdCogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9u
ZXcoY29uc3QgZ2NoYXIqIHVyaSkKK1dlYktpdE5ldHdvcmtSZXF1ZXN0ICoKK3dlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfbmV3IChjb25zdCBnY2hhciAqdXJpKQogewotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKHVyaSwgTlVMTCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHVyaSAhPSBOVUxM
LCBOVUxMKTsKIAotICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX05F
VFdPUktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCBO
VUxMKSk7Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiByZXF1ZXN0UHJpdmF0ZSA9
IFdFQktJVF9ORVRXT1JLX1JFUVVFU1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgV2ViS2l0
TmV0d29ya1JlcXVlc3QgKnJlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUIChnX29iamVj
dF9uZXcgKFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgTlVMTCkpOworICAgIFdlYktpdE5l
dHdvcmtSZXF1ZXN0UHJpdmF0ZSAqcmVxdWVzdFByaXZhdGUgPSBXRUJLSVRfTkVUV09SS19SRVFV
RVNUX0dFVF9QUklWQVRFIChyZXF1ZXN0KTsKIAotICAgIHJlcXVlc3RQcml2YXRlLT51cmkgPSBn
X3N0cmR1cCh1cmkpOworICAgIHJlcXVlc3RQcml2YXRlLT51cmkgPSBnX3N0cmR1cCAodXJpKTsK
IAogICAgIHJldHVybiByZXF1ZXN0OwogfQogCi12b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rf
c2V0X3VyaShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgZ2NoYXIqIHVyaSkK
K3ZvaWQKK3dlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaSAoV2ViS2l0TmV0d29ya1JlcXVl
c3QgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy
ICAgICAgICAgICp1cmkpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfTkVUV09S
S19SRVFVRVNUKHJlcXVlc3QpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHVyaSk7CisgICAgZ19y
ZXR1cm5faWZfZmFpbCAoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVTVCAocmVxdWVzdCkpOworICAg
IGdfcmV0dXJuX2lmX2ZhaWwgKHVyaSAhPSBOVUxMKTsKIAotICAgIFdlYktpdE5ldHdvcmtSZXF1
ZXN0UHJpdmF0ZSogcmVxdWVzdFByaXZhdGUgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUX0dFVF9Q
UklWQVRFKHJlcXVlc3QpOworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSAqcmVxdWVz
dFByaXZhdGUgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUX0dFVF9QUklWQVRFIChyZXF1ZXN0KTsK
IAotICAgIGdfZnJlZShyZXF1ZXN0UHJpdmF0ZS0+dXJpKTsKLSAgICByZXF1ZXN0UHJpdmF0ZS0+
dXJpID0gZ19zdHJkdXAodXJpKTsKKyAgICBnX2ZyZWUgKHJlcXVlc3RQcml2YXRlLT51cmkpOwor
ICAgIHJlcXVlc3RQcml2YXRlLT51cmkgPSBnX3N0cmR1cCAodXJpKTsKIH0KIAotY29uc3QgZ2No
YXIqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShXZWJLaXROZXR3b3JrUmVxdWVzdCog
cmVxdWVzdCkKK2NvbnN0IGdjaGFyICoKK3dlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaSAo
V2ViS2l0TmV0d29ya1JlcXVlc3QgKnJlcXVlc3QpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVTVChyZXF1ZXN0KSwgTlVMTCk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwgKFdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1QgKHJlcXVlc3QpLCBOVUxM
KTsKIAotICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSogcmVxdWVzdFByaXZhdGUgPSBX
RUJLSVRfTkVUV09SS19SRVFVRVNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIFdlYktpdE5l
dHdvcmtSZXF1ZXN0UHJpdmF0ZSAqcmVxdWVzdFByaXZhdGUgPSBXRUJLSVRfTkVUV09SS19SRVFV
RVNUX0dFVF9QUklWQVRFIChyZXF1ZXN0KTsKIAogICAgIHJldHVybiByZXF1ZXN0UHJpdmF0ZS0+
dXJpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdG5ldHdvcmtyZXF1
ZXN0LmggYi9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0bmV0d29ya3JlcXVlc3QuaAppbmRleCA0
NmQ1Y2M2Li5iYjgxZDI3IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0bmV0
d29ya3JlcXVlc3QuaAorKysgYi9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0bmV0d29ya3JlcXVl
c3QuaApAQCAtMzUsMjQgKzM1LDI1IEBAIEdfQkVHSU5fREVDTFMKIAogCiBzdHJ1Y3QgX1dlYktp
dE5ldHdvcmtSZXF1ZXN0IHsKLSAgICBHT2JqZWN0IHBhcmVudDsKKyAgICBHT2JqZWN0IHBhcmVu
dF9pbnN0YW5jZTsKIH07CiAKIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzcyB7Ci0g
ICAgR09iamVjdENsYXNzIHBhcmVudDsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwog
fTsKIAogV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfdHlwZSAo
dm9pZCk7CiAKLVdFQktJVF9BUEkgV2ViS2l0TmV0d29ya1JlcXVlc3QqCi13ZWJraXRfbmV0d29y
a19yZXF1ZXN0X25ldyAoY29uc3QgZ2NoYXIqIHVyaSk7CitXRUJLSVRfQVBJIFdlYktpdE5ldHdv
cmtSZXF1ZXN0ICoKK3dlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3ICAgICAgKGNvbnN0IGdjaGFy
ICAgICAgICAgICp1cmkpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9uZXR3b3JrX3JlcXVl
c3Rfc2V0X3VyaSAoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IGdjaGFyKiB1
cmkpOword2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfdXJpICAoV2ViS2l0TmV0d29ya1JlcXVl
c3QgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh
ciAgICAgICAgICAqdXJpKTsKIAotV0VCS0lUX0FQSSBjb25zdCBnY2hhcioKLXdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfZ2V0X3VyaSAoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOworV0VC
S0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkgIChX
ZWJLaXROZXR3b3JrUmVxdWVzdCAqcmVxdWVzdCk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5jcHAgYi9XZWJLaXQvZ3RrL1dl
YlZpZXcvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IDk5MGU1ZjQuLjNhNjMwYTQgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0L2d0
ay9XZWJWaWV3L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtNTYsODQgKzU2LDkzIEBAIGVudW0gewog
CiBzdGF0aWMgZ3VpbnQgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsg
MCwgfTsKIAotR19ERUZJTkVfVFlQRShXZWJLaXRXZWJGcmFtZSwgd2Via2l0X3dlYl9mcmFtZSwg
R19UWVBFX09CSkVDVCkKK0dfREVGSU5FX1RZUEUgKFdlYktpdFdlYkZyYW1lLCB3ZWJraXRfd2Vi
X2ZyYW1lLCBHX1RZUEVfT0JKRUNUKQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2Zp
bmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3N0YXRpYyB2b2lkCit3ZWJraXRfd2ViX2ZyYW1lX2Zp
bmFsaXplIChHT2JqZWN0ICpvYmplY3QpCiB7Ci0gICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBw
cml2YXRlRGF0YSA9IFdFQktJVF9XRUJfRlJBTUVfR0VUX1BSSVZBVEUoV0VCS0lUX1dFQl9GUkFN
RShvYmplY3QpKTsKLSAgICBwcml2YXRlRGF0YS0+ZnJhbWUtPmxvYWRlcigpLT5jYW5jZWxBbmRD
bGVhcigpOwotICAgIGdfZnJlZShwcml2YXRlRGF0YS0+bmFtZSk7Ci0gICAgZ19mcmVlKHByaXZh
dGVEYXRhLT50aXRsZSk7Ci0gICAgZ19mcmVlKHByaXZhdGVEYXRhLT51cmkpOworICAgIFdlYktp
dFdlYkZyYW1lUHJpdmF0ZSAqcHJpdmF0ZURhdGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9QUklW
QVRFIChXRUJLSVRfV0VCX0ZSQU1FKG9iamVjdCkpOworCisgICAgcHJpdmF0ZURhdGEtPmZyYW1l
LT5sb2FkZXIgKCktPmNhbmNlbEFuZENsZWFyICgpOworICAgIGdfZnJlZSAocHJpdmF0ZURhdGEt
Pm5hbWUpOworICAgIGdfZnJlZSAocHJpdmF0ZURhdGEtPnRpdGxlKTsKKyAgICBnX2ZyZWUgKHBy
aXZhdGVEYXRhLT51cmkpOwogICAgIGRlbGV0ZSBwcml2YXRlRGF0YS0+ZnJhbWU7CiAKLSAgICBH
X09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX2ZyYW1lX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9i
amVjdCk7CisgICAgR19PQkpFQ1RfQ0xBU1MgKHdlYmtpdF93ZWJfZnJhbWVfcGFyZW50X2NsYXNz
KS0+ZmluYWxpemUgKG9iamVjdCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVf
Y2xhc3NfaW5pdChXZWJLaXRXZWJGcmFtZUNsYXNzKiBmcmFtZUNsYXNzKQorc3RhdGljIHZvaWQK
K3dlYmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdCAoV2ViS2l0V2ViRnJhbWVDbGFzcyAqZnJhbWVD
bGFzcykKIHsKLSAgICB3ZWJraXRfaW5pdCgpOworICAgIHdlYmtpdF9pbml0ICgpOwogCi0gICAg
Z190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGZyYW1lQ2xhc3MsIHNpemVvZihXZWJLaXRXZWJGcmFt
ZVByaXZhdGUpKTsKKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGZyYW1lQ2xhc3MsIHNp
emVvZiAoV2ViS2l0V2ViRnJhbWVQcml2YXRlKSk7CiAKICAgICAvKgogICAgICAqIHNpZ25hbHMK
ICAgICAgKi8KLSAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbQ0xFQVJFRF0gPSBnX3NpZ25h
bF9uZXcoImNsZWFyZWQiLAotICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFz
cyksCi0gICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lH
TkFMX0FDVElPTiksCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAgTlVMTCwKLSAgICAgICAg
ICAgIE5VTEwsCi0gICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKLSAg
ICAgICAgICAgIEdfVFlQRV9OT05FLCAwKTsKLQotICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFs
c1tMT0FEX0NPTU1JVFRFRF0gPSBnX3NpZ25hbF9uZXcoImxvYWQtY29tbWl0dGVkIiwKLSAgICAg
ICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAotICAgICAgICAgICAgKEdTaWdu
YWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAotICAgICAgICAg
ICAgMCwKLSAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAg
Z19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCi0gICAgICAgICAgICBHX1RZUEVfTk9ORSwg
MCk7Ci0KLSAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbTE9BRF9ET05FXSA9IGdfc2lnbmFs
X25ldygibG9hZC1kb25lIiwKLSAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xh
c3MpLAotICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9BQ1RJT04pLAotICAgICAgICAgICAgMCwKLSAgICAgICAgICAgIE5VTEwsCi0gICAgICAg
ICAgICBOVUxMLAotICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX0JPT0xFQU4s
Ci0gICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAgICAgICAgIEdfVFlQRV9CT09MRUFO
KTsKLQotICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tUSVRMRV9DSEFOR0VEXSA9IGdfc2ln
bmFsX25ldygidGl0bGUtY2hhbmdlZCIsCi0gICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhm
cmFtZUNsYXNzKSwKLSAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNU
IHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAg
ICBOVUxMLAotICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fU1RSSU5HLAotICAgICAg
ICAgICAgR19UWVBFX05PTkUsIDEsCi0gICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsKLQotICAg
IHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tIT1ZFUklOR19PVkVSX0xJTktdID0gZ19zaWduYWxf
bmV3KCJob3ZlcmluZy1vdmVyLWxpbmsiLAotICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mo
ZnJhbWVDbGFzcyksCi0gICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFT
VCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAgTlVMTCwK
LSAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19TVFJJ
TkdfU1RSSU5HLAotICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCi0gICAgICAgICAgICBHX1RZ
UEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNb
Q0xFQVJFRF0gPQorICAgICAgICBnX3NpZ25hbF9uZXcgKCJjbGVhcmVkIiwKKyAgICAgICAgICAg
ICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyAoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAg
ICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJ
T04pLAorICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgTlVM
TCwKKyAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIGdf
Y2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQ
RV9OT05FLCAwKTsKKworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tMT0FEX0NPTU1JVFRF
RF0gPQorICAgICAgICBnX3NpZ25hbF9uZXcgKCJsb2FkLWNvbW1pdHRlZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAg
ICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNU
SU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsCisgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBn
X2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZ
UEVfTk9ORSwgMCk7CisKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbTE9BRF9ET05FXSA9
CisgICAgICAgIGdfc2lnbmFsX25ldyAoImxvYWQtZG9uZSIsCisgICAgICAgICAgICAgICAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1MgKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgICAgICAgICAg
IChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBnX2NjbG9zdXJl
X21hcnNoYWxfVk9JRF9fQk9PTEVBTiwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfTk9O
RSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTik7CisKKyAgICB3ZWJr
aXRfd2ViX2ZyYW1lX3NpZ25hbHNbVElUTEVfQ0hBTkdFRF0gPQorICAgICAgICBnX3NpZ25hbF9u
ZXcgKCJ0aXRsZS1jaGFuZ2VkIiwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyAoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAgICAgICAgICAgKEdTaWduYWxGbGFncyko
R19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgICAgICAg
ICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX1NUUklO
RywKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAgICAgICAg
ICAgICAgICBHX1RZUEVfU1RSSU5HKTsKKworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tI
T1ZFUklOR19PVkVSX0xJTktdID0KKyAgICAgICAgZ19zaWduYWxfbmV3ICgiaG92ZXJpbmctb3Zl
ci1saW5rIiwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyAoZnJhbWVD
bGFzcyksCisgICAgICAgICAgICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVO
X0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAg
ICAgICAgICAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX1NUUklOR19TVFJJTkcsCisg
ICAgICAgICAgICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgICAgICAgICAgICAg
ICAgR19UWVBFX1NUUklORywKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsK
IAogICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAg
ICAqLwotICAgIEdfT0JKRUNUX0NMQVNTKGZyYW1lQ2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF93
ZWJfZnJhbWVfZmluYWxpemU7CisgICAgR19PQkpFQ1RfQ0xBU1MgKGZyYW1lQ2xhc3MpLT5maW5h
bGl6ZSA9IHdlYmtpdF93ZWJfZnJhbWVfZmluYWxpemU7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfZnJhbWVfaW5pdChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCitzdGF0aWMgdm9pZCB3ZWJr
aXRfd2ViX2ZyYW1lX2luaXQgKFdlYktpdFdlYkZyYW1lICpmcmFtZSkKIHsKICAgICAvLyBUT0RP
OiBNb3ZlIGNvbnN0cnVjdG9yIGNvZGUgaGVyZS4KIH0KQEAgLTE0NiwyMyArMTU1LDI0IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfaW5pdChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAg
KgogICogUmV0dXJuczogYSBuZXcgI1dlYktpdFdlYkZyYW1lCiAgKiovCi1XZWJLaXRXZWJGcmFt
ZSogd2Via2l0X3dlYl9mcmFtZV9uZXcoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK1dlYktpdFdl
YkZyYW1lICoKK3dlYmtpdF93ZWJfZnJhbWVfbmV3IChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3KQog
ewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwg
TlVMTCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAod2Vi
VmlldyksIE5VTEwpOwogCi0gICAgV2ViS2l0V2ViRnJhbWUqIGZyYW1lID0gV0VCS0lUX1dFQl9G
UkFNRShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLCBOVUxMKSk7Ci0gICAgV2Vi
S2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURhdGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9QUklW
QVRFKGZyYW1lKTsKLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJL
SVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAgV2ViS2l0V2ViRnJhbWUgKmZy
YW1lID0gV0VCS0lUX1dFQl9GUkFNRSAoZ19vYmplY3RfbmV3IChXRUJLSVRfVFlQRV9XRUJfRlJB
TUUsIE5VTEwpKTsKKyAgICBXZWJLaXRXZWJGcmFtZVByaXZhdGUgKmZyYW1lRGF0YSA9IFdFQktJ
VF9XRUJfRlJBTUVfR0VUX1BSSVZBVEUgKGZyYW1lKTsKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0
ZSAqd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUgKHdlYlZpZXcpOwog
Ci0gICAgZnJhbWVEYXRhLT5jbGllbnQgPSBuZXcgV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudChm
cmFtZSk7Ci0gICAgZnJhbWVEYXRhLT5mcmFtZSA9IG5ldyBGcmFtZSh3ZWJWaWV3RGF0YS0+Y29y
ZVBhZ2UsIDAsIGZyYW1lRGF0YS0+Y2xpZW50KTsKKyAgICBmcmFtZURhdGEtPmNsaWVudCA9IG5l
dyBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50IChmcmFtZSk7CisgICAgZnJhbWVEYXRhLT5mcmFt
ZSA9IG5ldyBGcmFtZSAod2ViVmlld0RhdGEtPmNvcmVQYWdlLCAwLCBmcmFtZURhdGEtPmNsaWVu
dCk7CiAKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG5ldyBGcmFtZVZpZXcoZnJhbWVEYXRh
LT5mcmFtZSk7Ci0gICAgZnJhbWVWaWV3LT5zZXRDb250YWluaW5nV2luZG93KEdUS19DT05UQUlO
RVIod2ViVmlldykpOwotICAgIGZyYW1lVmlldy0+c2V0R3RrQWRqdXN0bWVudHMoR1RLX0FESlVT
VE1FTlQoZ3RrX2FkanVzdG1lbnRfbmV3KDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjApKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19BREpVU1RNRU5UKGd0a19hZGp1
c3RtZW50X25ldygwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wKSkpOwotICAgIGZyYW1lRGF0
YS0+ZnJhbWUtPnNldFZpZXcoZnJhbWVWaWV3KTsKLSAgICBmcmFtZURhdGEtPmZyYW1lLT5pbml0
KCk7CisgICAgRnJhbWVWaWV3ICpmcmFtZVZpZXcgPSBuZXcgRnJhbWVWaWV3IChmcmFtZURhdGEt
PmZyYW1lKTsKKyAgICBmcmFtZVZpZXctPnNldENvbnRhaW5pbmdXaW5kb3cgKEdUS19DT05UQUlO
RVIgKHdlYlZpZXcpKTsKKyAgICBmcmFtZVZpZXctPnNldEd0a0FkanVzdG1lbnRzIChHVEtfQURK
VVNUTUVOVCAoZ3RrX2FkanVzdG1lbnRfbmV3ICgwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4w
KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0FESlVTVE1FTlQgKGd0
a19hZGp1c3RtZW50X25ldyAoMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCkpKTsKKyAgICBm
cmFtZURhdGEtPmZyYW1lLT5zZXRWaWV3IChmcmFtZVZpZXcpOworICAgIGZyYW1lRGF0YS0+ZnJh
bWUtPmluaXQgKCk7CiAgICAgZnJhbWVEYXRhLT53ZWJWaWV3ID0gd2ViVmlldzsKICAgICBmcmFt
ZURhdGEtPm5hbWUgPSAwOwogICAgIGZyYW1lRGF0YS0+dGl0bGUgPSAwOwpAQCAtMTcxLDM4ICsx
ODEsNDQgQEAgV2ViS2l0V2ViRnJhbWUqIHdlYmtpdF93ZWJfZnJhbWVfbmV3KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcpCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1XZWJLaXRXZWJGcmFtZSogd2Vi
a2l0X3dlYl9mcmFtZV9pbml0X3dpdGhfd2ViX3ZpZXcoV2ViS2l0V2ViVmlldyogd2ViVmlldywg
SFRNTEZyYW1lT3duZXJFbGVtZW50KiBlbGVtZW50KQorV2ViS2l0V2ViRnJhbWUgKgord2Via2l0
X3dlYl9mcmFtZV9pbml0X3dpdGhfd2ViX3ZpZXcgKFdlYktpdFdlYlZpZXcgICAgICAgICAqd2Vi
VmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MRnJhbWVPd25l
ckVsZW1lbnQgKmVsZW1lbnQpCiB7Ci0gICAgV2ViS2l0V2ViRnJhbWUqIGZyYW1lID0gV0VCS0lU
X1dFQl9GUkFNRShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLCBOVUxMKSk7Ci0g
ICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURhdGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dF
VF9QUklWQVRFKGZyYW1lKTsKLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEg
PSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7Ci0KLSAgICBmcmFtZURhdGEt
PmNsaWVudCA9IG5ldyBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lKTsKLSAgICBmcmFt
ZURhdGEtPmZyYW1lID0gbmV3IEZyYW1lKHdlYlZpZXdEYXRhLT5jb3JlUGFnZSwgZWxlbWVudCwg
ZnJhbWVEYXRhLT5jbGllbnQpOwotCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBuZXcgRnJh
bWVWaWV3KGZyYW1lRGF0YS0+ZnJhbWUpOwotICAgIGZyYW1lVmlldy0+c2V0Q29udGFpbmluZ1dp
bmRvdyhHVEtfQ09OVEFJTkVSKHdlYlZpZXcpKTsKLSAgICBmcmFtZURhdGEtPmZyYW1lLT5zZXRW
aWV3KGZyYW1lVmlldyk7Ci0gICAgZnJhbWVWaWV3LT5kZXJlZigpOwotICAgIGZyYW1lRGF0YS0+
ZnJhbWUtPmluaXQoKTsKKyAgICBXZWJLaXRXZWJGcmFtZSAqZnJhbWUgPSBXRUJLSVRfV0VCX0ZS
QU1FIChnX29iamVjdF9uZXcgKFdFQktJVF9UWVBFX1dFQl9GUkFNRSwgTlVMTCkpOworICAgIFdl
YktpdFdlYkZyYW1lUHJpdmF0ZSAqZnJhbWVEYXRhID0gV0VCS0lUX1dFQl9GUkFNRV9HRVRfUFJJ
VkFURSAoZnJhbWUpOworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlICp3ZWJWaWV3RGF0YSA9IFdF
QktJVF9XRUJfVklFV19HRVRfUFJJVkFURSAod2ViVmlldyk7CisKKyAgICBmcmFtZURhdGEtPmNs
aWVudCA9IG5ldyBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50IChmcmFtZSk7CisgICAgZnJhbWVE
YXRhLT5mcmFtZSA9IG5ldyBGcmFtZSAod2ViVmlld0RhdGEtPmNvcmVQYWdlLCBlbGVtZW50LCBm
cmFtZURhdGEtPmNsaWVudCk7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG5ldyBGcmFt
ZVZpZXcgKGZyYW1lRGF0YS0+ZnJhbWUpOworICAgIGZyYW1lVmlldy0+c2V0Q29udGFpbmluZ1dp
bmRvdyAoR1RLX0NPTlRBSU5FUiAod2ViVmlldykpOworICAgIGZyYW1lRGF0YS0+ZnJhbWUtPnNl
dFZpZXcgKGZyYW1lVmlldyk7CisgICAgZnJhbWVWaWV3LT5kZXJlZiAoKTsKKyAgICBmcmFtZURh
dGEtPmZyYW1lLT5pbml0ICgpOwogICAgIGZyYW1lRGF0YS0+d2ViVmlldyA9IHdlYlZpZXc7CiAK
ICAgICByZXR1cm4gZnJhbWU7CiB9CiAKLWNvbnN0IGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF90aXRsZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCitjb25zdCBnY2hhciAqCit3ZWJraXRfd2Vi
X2ZyYW1lX2dldF90aXRsZSAoV2ViS2l0V2ViRnJhbWUgKmZyYW1lKQogewotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbCAoV0VCS0lUX0lTX1dFQl9GUkFNRSAoZnJhbWUpLCBOVUxMKTsKKwor
ICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSAqZnJhbWVEYXRhID0gV0VCS0lUX1dFQl9GUkFNRV9H
RVRfUFJJVkFURSAoZnJhbWUpOwogCi0gICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURh
dGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9QUklWQVRFKGZyYW1lKTsKICAgICByZXR1cm4gZnJh
bWVEYXRhLT50aXRsZTsKIH0KIAotY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Vy
aShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCitjb25zdCBnY2hhciAqCit3ZWJraXRfd2ViX2ZyYW1l
X2dldF91cmkgKFdlYktpdFdlYkZyYW1lICpmcmFtZSkKIHsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfRlJBTUUgKGZyYW1lKSwgTlVMTCk7CisKKyAgICBXZWJL
aXRXZWJGcmFtZVByaXZhdGUgKmZyYW1lRGF0YSA9IFdFQktJVF9XRUJfRlJBTUVfR0VUX1BSSVZB
VEUgKGZyYW1lKTsKIAotICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSogZnJhbWVEYXRhID0gV0VC
S0lUX1dFQl9GUkFNRV9HRVRfUFJJVkFURShmcmFtZSk7CiAgICAgcmV0dXJuIGZyYW1lRGF0YS0+
dXJpOwogfQogCkBAIC0yMTcsMTEgKzIzMywxMyBAQCBjb25zdCBnY2hhciogd2Via2l0X3dlYl9m
cmFtZV9nZXRfdXJpKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKICAqCiAgKiBSZXR1cm4gdmFsdWU6
IHRoZSAjV2ViS2l0V2ViVmlldyB0aGF0IG1hbmFnZXMgQGZyYW1lCiAgKi8KLVdlYktpdFdlYlZp
ZXcqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkK
K1dlYktpdFdlYlZpZXcgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcgKFdlYktpdFdl
YkZyYW1lICpmcmFtZSkKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFdFQktJVF9J
U19XRUJfRlJBTUUgKGZyYW1lKSwgTlVMTCk7CisKKyAgICBXZWJLaXRXZWJGcmFtZVByaXZhdGUg
KmZyYW1lRGF0YSA9IFdFQktJVF9XRUJfRlJBTUVfR0VUX1BSSVZBVEUgKGZyYW1lKTsKIAotICAg
IFdlYktpdFdlYkZyYW1lUHJpdmF0ZSogZnJhbWVEYXRhID0gV0VCS0lUX1dFQl9GUkFNRV9HRVRf
UFJJVkFURShmcmFtZSk7CiAgICAgcmV0dXJuIGZyYW1lRGF0YS0+d2ViVmlldzsKIH0KIApAQCAt
MjMzLDIwICsyNTEsMjEgQEAgV2ViS2l0V2ViVmlldyogd2Via2l0X3dlYl9mcmFtZV9nZXRfd2Vi
X3ZpZXcoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogICoKICAqIFJldHVybiB2YWx1ZTogdGhlIG5h
bWUgb2YgQGZyYW1lCiAgKi8KLWNvbnN0IGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1l
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK2NvbnN0IGdjaGFyICoKK3dlYmtpdF93ZWJfZnJhbWVf
Z2V0X25hbWUgKFdlYktpdFdlYkZyYW1lICpmcmFtZSkKIHsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfRlJBTUUgKGZyYW1lKSwgTlVMTCk7CiAKLSAgICBXZWJL
aXRXZWJGcmFtZVByaXZhdGUqIGZyYW1lRGF0YSA9IFdFQktJVF9XRUJfRlJBTUVfR0VUX1BSSVZB
VEUoZnJhbWUpOworICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSAqZnJhbWVEYXRhID0gV0VCS0lU
X1dFQl9GUkFNRV9HRVRfUFJJVkFURSAoZnJhbWUpOwogCiAgICAgaWYgKGZyYW1lRGF0YS0+bmFt
ZSkKICAgICAgICAgcmV0dXJuIGZyYW1lRGF0YS0+bmFtZTsKIAotICAgIEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKGZyYW1lKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlRnJhbWUsIE5V
TEwpOworICAgIEZyYW1lICpjb3JlRnJhbWUgPSBjb3JlIChmcmFtZSk7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwgKGNvcmVGcmFtZSwgTlVMTCk7CiAKLSAgICBTdHJpbmcgc3RyaW5nID0gY29y
ZUZyYW1lLT50cmVlKCktPm5hbWUoKTsKLSAgICBmcmFtZURhdGEtPm5hbWUgPSBnX3N0cmR1cChz
dHJpbmcudXRmOCgpLmRhdGEoKSk7CisgICAgU3RyaW5nIHN0cmluZyA9IGNvcmVGcmFtZS0+dHJl
ZSAoKS0+bmFtZSAoKTsKKyAgICBmcmFtZURhdGEtPm5hbWUgPSBnX3N0cmR1cCAoc3RyaW5nLnV0
ZjggKCkuZGF0YSAoKSk7CiAKICAgICByZXR1cm4gZnJhbWVEYXRhLT5uYW1lOwogfQpAQCAtMjU5
LDE0ICsyNzgsMTUgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWUoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lKQogICoKICAqIFJldHVybiB2YWx1ZTogdGhlIHBhcmVudCAjV2Vi
S2l0V2ViRnJhbWUgb3IgJU5VTEwgaW4gY2FzZSB0aGVyZSBpcyBub25lCiAgKi8KLVdlYktpdFdl
YkZyYW1lKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9wYXJlbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1l
KQorV2ViS2l0V2ViRnJhbWUgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfcGFyZW50IChXZWJLaXRX
ZWJGcmFtZSAqZnJhbWUpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9GUkFNRShmcmFtZSksIE5VTEwpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChXRUJLSVRf
SVNfV0VCX0ZSQU1FIChmcmFtZSksIE5VTEwpOwogCi0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNv
cmUoZnJhbWUpOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVGcmFtZSwgTlVMTCk7Cisg
ICAgRnJhbWUgKmNvcmVGcmFtZSA9IGNvcmUgKGZyYW1lKTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCAoY29yZUZyYW1lLCBOVUxMKTsKIAotICAgIHJldHVybiBraXQoY29yZUZyYW1lLT50cmVl
KCktPnBhcmVudCgpKTsKKyAgICByZXR1cm4ga2l0IChjb3JlRnJhbWUtPnRyZWUgKCktPnBhcmVu
dCAoKSk7CiB9CiAKIC8qKgpAQCAtMjgwLDE3ICszMDAsMTkgQEAgV2ViS2l0V2ViRnJhbWUqIHdl
YmtpdF93ZWJfZnJhbWVfZ2V0X3BhcmVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAgKiBzb3Vy
Y2Ugb25jZSBhbnkgZGF0YSBoYXMgYmVlbiByZWNlaXZlZC4gVXNlIHdlYmtpdF93ZWJfZnJhbWVf
c3RvcF9sb2FkaW5nKCkgdG8KICAqIHN0b3AgdGhlIGxvYWQuIFRoaXMgZnVuY3Rpb24gaXMgdHlw
aWNhbGx5IGludm9rZWQgb24gdGhlIG1haW4gZnJhbWUuCiAgKi8KLXZvaWQgd2Via2l0X3dlYl9m
cmFtZV9sb2FkX3JlcXVlc3QoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVx
dWVzdCogcmVxdWVzdCkKK3ZvaWQKK3dlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0IChXZWJL
aXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViS2l0TmV0d29ya1JlcXVlc3QgKnJlcXVlc3QpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRf
SVNfTkVUV09SS19SRVFVRVNUKHJlcXVlc3QpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsIChXRUJL
SVRfSVNfV0VCX0ZSQU1FIChmcmFtZSkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9J
U19ORVRXT1JLX1JFUVVFU1QgKHJlcXVlc3QpKTsKIAotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBj
b3JlKGZyYW1lKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKGNvcmVGcmFtZSk7CisgICAgRnJhbWUg
KmNvcmVGcmFtZSA9IGNvcmUgKGZyYW1lKTsKKyAgICBnX3JldHVybl9pZl9mYWlsIChjb3JlRnJh
bWUpOwogCiAgICAgLy8gVE9ETzogVXNlIHRoZSBSZXNvdXJjZVJlcXVlc3QgY2FycmllZCBieSBX
ZWJLaXROZXR3b3JrUmVxdWVzdCB3aGVuIGl0IGdldHMgaW1wbGVtZW50ZWQuCi0gICAgRGVwcmVj
YXRlZFN0cmluZyBzdHJpbmcgPSBEZXByZWNhdGVkU3RyaW5nOjpmcm9tVXRmOCh3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkpOwotICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkt
PmxvYWQoUmVzb3VyY2VSZXF1ZXN0KEtVUkwoc3RyaW5nKSkpOworICAgIERlcHJlY2F0ZWRTdHJp
bmcgc3RyaW5nID0gRGVwcmVjYXRlZFN0cmluZzo6ZnJvbVV0ZjggKHdlYmtpdF9uZXR3b3JrX3Jl
cXVlc3RfZ2V0X3VyaSAocmVxdWVzdCkpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyICgpLT5sb2Fk
IChSZXNvdXJjZVJlcXVlc3QgKEtVUkwgKHN0cmluZykpKTsKIH0KIAogLyoqCkBAIC0yOTksMTQg
KzMyMSwxNSBAQCB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0KFdlYktpdFdlYkZy
YW1lKiBmcmFtZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqCiAgKgogICogU3RvcHMgYW55IHBlbmRp
bmcgbG9hZHMgb24gQGZyYW1lJ3MgZGF0YSBzb3VyY2UsIGFuZCB0aG9zZSBvZiBpdHMgY2hpbGRy
ZW4uCiAgKi8KLXZvaWQgd2Via2l0X3dlYl9mcmFtZV9zdG9wX2xvYWRpbmcoV2ViS2l0V2ViRnJh
bWUqIGZyYW1lKQordm9pZAord2Via2l0X3dlYl9mcmFtZV9zdG9wX2xvYWRpbmcgKFdlYktpdFdl
YkZyYW1lICpmcmFtZSkKIHsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJB
TUUoZnJhbWUpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsIChXRUJLSVRfSVNfV0VCX0ZSQU1FIChm
cmFtZSkpOwogCi0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOwotICAgIGdfcmV0
dXJuX2lmX2ZhaWwoY29yZUZyYW1lKTsKKyAgICBGcmFtZSAqY29yZUZyYW1lID0gY29yZSAoZnJh
bWUpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGNvcmVGcmFtZSk7CiAKLSAgICBjb3JlRnJhbWUt
PmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOworICAgIGNvcmVGcmFtZS0+bG9hZGVyICgpLT5z
dG9wQWxsTG9hZGVycyAoKTsKIH0KIAogLyoqCkBAIC0zMTUsMTQgKzMzOCwxNSBAQCB2b2lkIHdl
YmtpdF93ZWJfZnJhbWVfc3RvcF9sb2FkaW5nKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKICAqCiAg
KiBSZWxvYWRzIHRoZSBpbml0aWFsIHJlcXVlc3QuCiAgKi8KLXZvaWQgd2Via2l0X3dlYl9mcmFt
ZV9yZWxvYWQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQordm9pZAord2Via2l0X3dlYl9mcmFtZV9y
ZWxvYWQgKFdlYktpdFdlYkZyYW1lICpmcmFtZSkKIHsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdF
QktJVF9JU19XRUJfRlJBTUUoZnJhbWUpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsIChXRUJLSVRf
SVNfV0VCX0ZSQU1FIChmcmFtZSkpOwogCi0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJh
bWUpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29yZUZyYW1lKTsKKyAgICBGcmFtZSAqY29yZUZy
YW1lID0gY29yZSAoZnJhbWUpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGNvcmVGcmFtZSk7CiAK
LSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLT5yZWxvYWQoKTsKKyAgICBjb3JlRnJhbWUtPmxvYWRl
ciAoKS0+cmVsb2FkICgpOwogfQogCiAvKioKQEAgLTM0MiwxNiArMzY2LDE4IEBAIHZvaWQgd2Vi
a2l0X3dlYl9mcmFtZV9yZWxvYWQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogICoKICAqIFJldHVy
biB2YWx1ZTogdGhlIGZvdW5kICNXZWJLaXRXZWJGcmFtZSBvciAlTlVMTCBpbiBjYXNlIG5vbmUg
aXMgZm91bmQKICAqLwotV2ViS2l0V2ViRnJhbWUqIHdlYmtpdF93ZWJfZnJhbWVfZmluZF9mcmFt
ZShXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBuYW1lKQorV2ViS2l0V2ViRnJh
bWUgKgord2Via2l0X3dlYl9mcmFtZV9maW5kX2ZyYW1lIChXZWJLaXRXZWJGcmFtZSAqZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICpuYW1lKQogewot
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxM
KTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChuYW1lLCBOVUxMKTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbCAoV0VCS0lUX0lTX1dFQl9GUkFNRSAoZnJhbWUpLCBOVUxMKTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbCAobmFtZSwgTlVMTCk7CiAKLSAgICBGcmFtZSogY29yZUZyYW1lID0g
Y29yZShmcmFtZSk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29yZUZyYW1lLCBOVUxMKTsK
KyAgICBGcmFtZSAqY29yZUZyYW1lID0gY29yZSAoZnJhbWUpOworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsIChjb3JlRnJhbWUsIE5VTEwpOwogCi0gICAgU3RyaW5nIG5hbWVTdHJpbmcgPSBTdHJp
bmc6OmZyb21VVEY4KG5hbWUpOwotICAgIHJldHVybiBraXQoY29yZUZyYW1lLT50cmVlKCktPmZp
bmQoQXRvbWljU3RyaW5nKG5hbWVTdHJpbmcpKSk7CisgICAgU3RyaW5nIG5hbWVTdHJpbmcgPSBT
dHJpbmc6OmZyb21VVEY4IChuYW1lKTsKKyAgICByZXR1cm4ga2l0IChjb3JlRnJhbWUtPnRyZWUg
KCktPmZpbmQgKEF0b21pY1N0cmluZyAobmFtZVN0cmluZykpKTsKIH0KIAogLyoqCkBAIC0zNjMs
MTQgKzM4OSwxNSBAQCBXZWJLaXRXZWJGcmFtZSogd2Via2l0X3dlYl9mcmFtZV9maW5kX2ZyYW1l
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqCiAgKgogICogUmV0dXJuIHZhbHVl
OiB0aGUgZ2xvYmFsIEphdmFTY3JpcHQgY29udGV4dAogICovCi1KU0dsb2JhbENvbnRleHRSZWYg
d2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQoV2ViS2l0V2ViRnJhbWUqIGZyYW1l
KQorSlNHbG9iYWxDb250ZXh0UmVmCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4
dCAoV2ViS2l0V2ViRnJhbWUgKmZyYW1lKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bCAoV0VCS0lUX0lTX1dFQl9GUkFNRSAoZnJhbWUpLCBOVUxMKTsKIAotICAgIEZyYW1lKiBjb3Jl
RnJhbWUgPSBjb3JlKGZyYW1lKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlRnJhbWUs
IE5VTEwpOworICAgIEZyYW1lICpjb3JlRnJhbWUgPSBjb3JlIChmcmFtZSk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwgKGNvcmVGcmFtZSwgTlVMTCk7CiAKLSAgICByZXR1cm4gdG9HbG9iYWxS
ZWYoY29yZUZyYW1lLT5zY3JpcHRQcm94eSgpLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygp
KTsKKyAgICByZXR1cm4gdG9HbG9iYWxSZWYgKGNvcmVGcmFtZS0+c2NyaXB0UHJveHkgKCktPmds
b2JhbE9iamVjdCAoKS0+Z2xvYmFsRXhlYyAoKSk7CiB9CiAKIC8qKgpAQCAtMzc5LDE4ICs0MDYs
MTkgQEAgSlNHbG9iYWxDb250ZXh0UmVmIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2dsb2JhbF9jb250
ZXh0KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKICAqCiAgKiBSZXR1cm4gdmFsdWU6IGNoaWxkIGZy
YW1lcyBvZiBAZnJhbWUKICAqLwotR1NMaXN0KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9jaGlsZHJl
bihXZWJLaXRXZWJGcmFtZSogZnJhbWUpCitHU0xpc3QgKgord2Via2l0X3dlYl9mcmFtZV9nZXRf
Y2hpbGRyZW4gKFdlYktpdFdlYkZyYW1lICpmcmFtZSkKIHsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfRlJBTUUgKGZyYW1lKSwgTlVMTCk7CiAKLSAgICBHU0xp
c3QqIGNoaWxkcmVuID0gTlVMTDsKLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7
CisgICAgR1NMaXN0ICpjaGlsZHJlbiA9IE5VTEw7CisgICAgRnJhbWUgKmNvcmVGcmFtZSA9IGNv
cmUgKGZyYW1lKTsKIAotICAgIGZvciAoRnJhbWUqIGNoaWxkID0gY29yZUZyYW1lLT50cmVlKCkt
PmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS0+bmV4dFNpYmxpbmco
KSkgewotICAgICAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gY2hpbGQtPmxvYWRlcigpOwotICAg
ICAgICBXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50Kj4obG9hZGVyLT5jbGllbnQoKSk7CisgICAgZm9yIChGcmFt
ZSAqY2hpbGQgPSBjb3JlRnJhbWUtPnRyZWUgKCktPmZpcnN0Q2hpbGQgKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT50cmVlICgpLT5uZXh0U2libGluZyAoKSkgeworICAgICAgICBGcmFtZUxvYWRl
ciAqbG9hZGVyID0gY2hpbGQtPmxvYWRlciAoKTsKKyAgICAgICAgV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudCo+
KGxvYWRlci0+Y2xpZW50ICgpKTsKICAgICAgICAgaWYgKGNsaWVudCkKLSAgICAgICAgICBjaGls
ZHJlbiA9IGdfc2xpc3RfYXBwZW5kKGNoaWxkcmVuLCBjbGllbnQtPndlYkZyYW1lKCkpOworICAg
ICAgICAgICAgY2hpbGRyZW4gPSBnX3NsaXN0X2FwcGVuZCAoY2hpbGRyZW4sIGNsaWVudC0+d2Vi
RnJhbWUgKCkpOwogICAgIH0KIAogICAgIHJldHVybiBjaGlsZHJlbjsKQEAgLTQwMiwxOSArNDMw
LDIwIEBAIEdTTGlzdCogd2Via2l0X3dlYl9mcmFtZV9nZXRfY2hpbGRyZW4oV2ViS2l0V2ViRnJh
bWUqIGZyYW1lKQogICoKICAqIFJldHVybiB2YWx1ZTogaW5uZXIgdGV4dCBvZiBAZnJhbWUKICAq
LwotZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2lubmVyX3RleHQoV2ViS2l0V2ViRnJhbWUq
IGZyYW1lKQorZ2NoYXIgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfaW5uZXJfdGV4dCAoV2ViS2l0
V2ViRnJhbWUgKmZyYW1lKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoV0VCS0lU
X0lTX1dFQl9GUkFNRSAoZnJhbWUpLCBOVUxMKTsKIAotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBj
b3JlKGZyYW1lKTsKLSAgICBGcmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKKyAg
ICBGcmFtZSAqY29yZUZyYW1lID0gY29yZSAoZnJhbWUpOworICAgIEZyYW1lVmlldyAqdmlldyA9
IGNvcmVGcmFtZS0+dmlldyAoKTsKIAotICAgIGlmICh2aWV3LT5sYXlvdXRQZW5kaW5nKCkpCi0g
ICAgICAgIHZpZXctPmxheW91dCgpOworICAgIGlmICh2aWV3LT5sYXlvdXRQZW5kaW5nICgpKQor
ICAgICAgICB2aWV3LT5sYXlvdXQgKCk7CiAKLSAgICBFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQg
PSBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpOwotICAgIFN0cmluZyBz
dHJpbmcgPSAgZG9jdW1lbnRFbGVtZW50LT5pbm5lclRleHQoKTsKLSAgICByZXR1cm4gZ19zdHJk
dXAoc3RyaW5nLnV0ZjgoKS5kYXRhKCkpOworICAgIEVsZW1lbnQgKmRvY3VtZW50RWxlbWVudCA9
IGNvcmVGcmFtZS0+ZG9jdW1lbnQgKCktPmRvY3VtZW50RWxlbWVudCAoKTsKKyAgICBTdHJpbmcg
c3RyaW5nID0gIGRvY3VtZW50RWxlbWVudC0+aW5uZXJUZXh0ICgpOworICAgIHJldHVybiBnX3N0
cmR1cCAoc3RyaW5nLnV0ZjggKCkuZGF0YSAoKSk7CiB9CiAKICNpZiBHVEtfQ0hFQ0tfVkVSU0lP
TigyLDEwLDApCkBAIC01NjgsNDEgKzU5Nyw0OSBAQCBzdGF0aWMgdm9pZCBlbmRfcHJpbnQoR3Rr
UHJpbnRPcGVyYXRpb24qIG9wLCBHdGtQcmludENvbnRleHQqIGNvbnRleHQsIGdwb2ludGVyCiAg
ICAgcHJpbnRDb250ZXh0LT5lbmQoKTsKIH0KIAotdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX3ByaW50
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3ZvaWQKK3dlYmtpdF93ZWJfZnJhbWVfcHJpbnQgKFdl
YktpdFdlYkZyYW1lICpmcmFtZSkKIHsKLSAgICBHdGtXaWRnZXQqIHRvcExldmVsID0gZ3RrX3dp
ZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmll
dyhmcmFtZSkpKTsKLSAgICBpZiAoIUdUS19XSURHRVRfVE9QTEVWRUwodG9wTGV2ZWwpKQorICAg
IEd0a1dpZGdldCAqdG9wTGV2ZWwgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbCAoR1RLX1dJREdF
VCAod2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcgKGZyYW1lKSkpOworICAgIGlmICghR1RL
X1dJREdFVF9UT1BMRVZFTCAodG9wTGV2ZWwpKQogICAgICAgICB0b3BMZXZlbCA9IE5VTEw7CiAK
LSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgUHJpbnRDb250ZXh0IHBy
aW50Q29udGV4dChjb3JlRnJhbWUpOworICAgIEZyYW1lICpjb3JlRnJhbWUgPSBjb3JlIChmcmFt
ZSk7CisgICAgUHJpbnRDb250ZXh0IHByaW50Q29udGV4dCAoY29yZUZyYW1lKTsKKworICAgIEd0
a1ByaW50T3BlcmF0aW9uICpvcCA9IGd0a19wcmludF9vcGVyYXRpb25fbmV3ICgpOworICAgIGdf
c2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUIChvcCksICJiZWdpbi1wcmludCIsCisgICAgICAgICAg
ICAgICAgICAgICAgR19DQUxMQkFDSyAoYmVnaW5fcHJpbnQpLCAmcHJpbnRDb250ZXh0KTsKKyAg
ICBnX3NpZ25hbF9jb25uZWN0IChHX09CSkVDVCAob3ApLCAiZHJhdy1wYWdlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICBHX0NBTExCQUNLIChkcmF3X3BhZ2UpLCAmcHJpbnRDb250ZXh0KTsKKyAg
ICBnX3NpZ25hbF9jb25uZWN0IChHX09CSkVDVCAob3ApLCAiZW5kLXByaW50IiwKKyAgICAgICAg
ICAgICAgICAgICAgICBHX0NBTExCQUNLIChlbmRfcHJpbnQpLCAmcHJpbnRDb250ZXh0KTsKIAot
ICAgIEd0a1ByaW50T3BlcmF0aW9uKiBvcCA9IGd0a19wcmludF9vcGVyYXRpb25fbmV3KCk7Ci0g
ICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChvcCksICJiZWdpbi1wcmludCIsIEdfQ0FMTEJB
Q0soYmVnaW5fcHJpbnQpLCAmcHJpbnRDb250ZXh0KTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdf
T0JKRUNUKG9wKSwgImRyYXctcGFnZSIsIEdfQ0FMTEJBQ0soZHJhd19wYWdlKSwgJnByaW50Q29u
dGV4dCk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVChvcCksICJlbmQtcHJpbnQiLCBH
X0NBTExCQUNLKGVuZF9wcmludCksICZwcmludENvbnRleHQpOwogICAgIEdFcnJvciAqZXJyb3Ig
PSBOVUxMOwotICAgIGd0a19wcmludF9vcGVyYXRpb25fcnVuKG9wLCBHVEtfUFJJTlRfT1BFUkFU
SU9OX0FDVElPTl9QUklOVF9ESUFMT0csIEdUS19XSU5ET1codG9wTGV2ZWwpLCAmZXJyb3IpOwot
ICAgIGdfb2JqZWN0X3VucmVmKG9wKTsKKyAgICBndGtfcHJpbnRfb3BlcmF0aW9uX3J1biAob3As
IEdUS19QUklOVF9PUEVSQVRJT05fQUNUSU9OX1BSSU5UX0RJQUxPRywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR1RLX1dJTkRPVyAodG9wTGV2ZWwpLCAmZXJyb3IpOworICAgIGdfb2Jq
ZWN0X3VucmVmIChvcCk7CiAKICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgR3RrV2lkZ2V0KiBk
aWFsb2cgPSBndGtfbWVzc2FnZV9kaWFsb2dfbmV3KEdUS19XSU5ET1codG9wTGV2ZWwpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0RJQUxP
R19ERVNUUk9ZX1dJVEhfUEFSRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1RLX01FU1NBR0VfRVJST1IsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfQlVUVE9OU19DTE9TRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyIsIGVycm9y
LT5tZXNzYWdlKTsKLSAgICAgICAgZ19lcnJvcl9mcmVlKGVycm9yKTsKLQotICAgICAgICBnX3Np
Z25hbF9jb25uZWN0KGRpYWxvZywgInJlc3BvbnNlIiwgR19DQUxMQkFDSyhndGtfd2lkZ2V0X2Rl
c3Ryb3kpLCBOVUxMKTsKLSAgICAgICAgZ3RrX3dpZGdldF9zaG93KGRpYWxvZyk7CisgICAgICAg
IEd0a1dpZGdldCAqZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldyAoR1RLX1dJTkRPVyAo
dG9wTGV2ZWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BBUkVOVCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfTUVTU0FHRV9FUlJPUiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfQlVU
VE9OU19DTE9TRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiJXMiLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJy
b3IpOworCisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKGRpYWxvZywgInJlc3BvbnNlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoZ3RrX3dpZGdldF9kZXN0cm95KSwg
TlVMTCk7CisgICAgICAgIGd0a193aWRnZXRfc2hvdyAoZGlhbG9nKTsKICAgICB9CiB9CiAKICNl
bHNlCiAKLXZvaWQgd2Via2l0X3dlYl9mcmFtZV9wcmludChXZWJLaXRXZWJGcmFtZSopCit2b2lk
Cit3ZWJraXRfd2ViX2ZyYW1lX3ByaW50IChXZWJLaXRXZWJGcmFtZSAqKQogewotICAgIGdfd2Fy
bmluZygiUHJpbnRpbmcgc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlIGluIG9sZGVyIHZlcnNpb25z
IG9mIEdUSysiKTsKKyAgICBnX3dhcm5pbmcgKCJQcmludGluZyBzdXBwb3J0IGlzIG5vdCBhdmFp
bGFibGUgaW4gb2xkZXIgdmVyc2lvbnMgb2YgR1RLKyIpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5oIGIvV2ViS2l0L2d0ay9XZWJW
aWV3L3dlYmtpdHdlYmZyYW1lLmgKaW5kZXggYWY5MDkzOC4uYjc0NGEzOSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYmZyYW1lLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJW
aWV3L3dlYmtpdHdlYmZyYW1lLmgKQEAgLTM3LDExICszNywxMSBAQCBHX0JFR0lOX0RFQ0xTCiAK
IAogc3RydWN0IF9XZWJLaXRXZWJGcmFtZSB7Ci0gICAgR09iamVjdCBwYXJlbnQ7CisgICAgR09i
amVjdCBwYXJlbnRfaW5zdGFuY2U7CiB9OwogCiBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lQ2xhc3Mg
ewotICAgIEdPYmplY3RDbGFzcyBwYXJlbnQ7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFz
czsKIAogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwogICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwpAQCAtNTIsNDAgKzUyLDQyIEBAIHN0cnVjdCBfV2Vi
S2l0V2ViRnJhbWVDbGFzcyB7CiB9OwogCiBXRUJLSVRfQVBJIEdUeXBlCi13ZWJraXRfd2ViX2Zy
YW1lX2dldF90eXBlICh2b2lkKTsKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X3R5cGUgICAgICAgICAg
ICh2b2lkKTsKIAotV0VCS0lUX0FQSSBXZWJLaXRXZWJGcmFtZSoKLXdlYmtpdF93ZWJfZnJhbWVf
bmV3IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7CitXRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1l
ICoKK3dlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAg
ICAgICAqd2ViX3ZpZXcpOwogCi1XRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcqCi13ZWJraXRfd2Vi
X2ZyYW1lX2dldF93ZWJfdmlldyAoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsKK1dFQktJVF9BUEkg
V2ViS2l0V2ViVmlldyAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAgICAgICAoV2Vi
S2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAotV0VCS0lUX0FQSSBjb25zdCBnY2hhcioKLXdl
YmtpdF93ZWJfZnJhbWVfZ2V0X25hbWUgKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CitXRUJLSVRf
QVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWUgICAgICAgICAgIChX
ZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgot
d2Via2l0X3dlYl9mcmFtZV9nZXRfdGl0bGUgKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CitXRUJL
SVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X3RpdGxlICAgICAgICAg
IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFy
Kgotd2Via2l0X3dlYl9mcmFtZV9nZXRfdXJpIChXZWJLaXRXZWJGcmFtZSogZnJhbWUpOworV0VC
S0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkgICAgICAgICAg
ICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAogV0VCS0lUX0FQSSBXZWJLaXRXZWJG
cmFtZSoKLXdlYmtpdF93ZWJfZnJhbWVfZ2V0X3BhcmVudCAoV2ViS2l0V2ViRnJhbWUqIGZyYW1l
KTsKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X3BhcmVudCAgICAgICAgIChXZWJLaXRXZWJGcmFtZSAg
ICAgICAqZnJhbWUpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfZnJhbWVfbG9hZF9y
ZXF1ZXN0IChXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1
ZXN0KTsKK3dlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJGcmFt
ZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0TmV0d29ya1JlcXVlc3QgKnJlcXVlc3QpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93
ZWJfZnJhbWVfc3RvcF9sb2FkaW5nIChXZWJLaXRXZWJGcmFtZSogZnJhbWUpOword2Via2l0X3dl
Yl9mcmFtZV9zdG9wX2xvYWRpbmcgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7
CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl9mcmFtZV9yZWxvYWQgKFdlYktpdFdlYkZy
YW1lKiBmcmFtZSk7Cit3ZWJraXRfd2ViX2ZyYW1lX3JlbG9hZCAgICAgICAgICAgICAoV2ViS2l0
V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAotV0VCS0lUX0FQSSBXZWJLaXRXZWJGcmFtZSoKLXdl
YmtpdF93ZWJfZnJhbWVfZmluZF9mcmFtZSAoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBn
Y2hhciogbmFtZSk7CitXRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1lICoKK3dlYmtpdF93ZWJfZnJh
bWVfZmluZF9mcmFtZSAgICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKm5h
bWUpOwogCiBXRUJLSVRfQVBJIEpTR2xvYmFsQ29udGV4dFJlZgotd2Via2l0X3dlYl9mcmFtZV9n
ZXRfZ2xvYmFsX2NvbnRleHQgKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7Cit3ZWJraXRfd2ViX2Zy
YW1lX2dldF9nbG9iYWxfY29udGV4dCAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAog
R19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZp
ZXcuY3BwIGIvV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDc3YmZi
YzQuLmJmMGU5MDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAKQEAgLTg2LDQ5
ICs4Niw1OCBAQCBlbnVtIHsKIAogc3RhdGljIGd1aW50IHdlYmtpdF93ZWJfdmlld19zaWduYWxz
W0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKIAotR19ERUZJTkVfVFlQRShXZWJLaXRXZWJWaWV3LCB3
ZWJraXRfd2ViX3ZpZXcsIEdUS19UWVBFX0NPTlRBSU5FUikKK0dfREVGSU5FX1RZUEUgKFdlYktp
dFdlYlZpZXcsIHdlYmtpdF93ZWJfdmlldywgR1RLX1RZUEVfQ09OVEFJTkVSKQogCi1zdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KEdPYmplY3QgKm9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwgR1ZhbHVlICp2YWx1ZSwgR1BhcmFtU3BlYyAqcHNwZWMpIHsKLSAgICBXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKG9iamVjdCk7CitzdGF0aWMgdm9pZAor
d2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0eSAoR09iamVjdCAgICAqb2JqZWN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgcHJvcF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdWYWx1ZSAgICAgKnZhbHVlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR1BhcmFtU3BlYyAqcHNwZWMpCit7CisgICAgV2ViS2l0V2ViVmlldyAqd2Vi
VmlldyA9IFdFQktJVF9XRUJfVklFVyAob2JqZWN0KTsKIAotICAgIHN3aXRjaChwcm9wX2lkKSB7
CisgICAgc3dpdGNoIChwcm9wX2lkKSB7CiAgICAgY2FzZSBQUk9QX0NPUFlfVEFSR0VUX0xJU1Q6
Ci0gICAgICAgIGdfdmFsdWVfc2V0X2JveGVkKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Nv
cHlfdGFyZ2V0X2xpc3Qod2ViVmlldykpOworICAgICAgICBnX3ZhbHVlX3NldF9ib3hlZCAodmFs
dWUsIHdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdCAod2ViVmlldykpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFBST1BfUEFTVEVfVEFSR0VUX0xJU1Q6Ci0gICAgICAgIGdf
dmFsdWVfc2V0X2JveGVkKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bhc3RlX3RhcmdldF9s
aXN0KHdlYlZpZXcpKTsKKyAgICAgICAgZ192YWx1ZV9zZXRfYm94ZWQgKHZhbHVlLCB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3Bhc3RlX3RhcmdldF9saXN0ICh3ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAotc3RhdGljIGdib29s
ZWFuIHdlYmtpdF93ZWJfdmlld19leHBvc2VfZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2
ZW50RXhwb3NlKiBldmVudCkKK3N0YXRpYyBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2V4cG9z
ZV9ldmVudCAoR3RrV2lkZ2V0ICAgICAgKndpZGdldCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdka0V2ZW50RXhwb3NlICpldmVudCkKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBjb3Jl
KHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZShXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KSkp
OworICAgIEZyYW1lICpmcmFtZSA9IGNvcmUgKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFt
ZSAoV0VCS0lUX1dFQl9WSUVXICh3aWRnZXQpKSk7CiAgICAgR2RrUmVjdGFuZ2xlIGNsaXA7Ci0g
ICAgZ2RrX3JlZ2lvbl9nZXRfY2xpcGJveChldmVudC0+cmVnaW9uLCAmY2xpcCk7Ci0gICAgY2Fp
cm9fdCogY3IgPSBnZGtfY2Fpcm9fY3JlYXRlKGV2ZW50LT53aW5kb3cpOwotICAgIEdyYXBoaWNz
Q29udGV4dCBjdHgoY3IpOwotICAgIGN0eC5zZXRHZGtFeHBvc2VFdmVudChldmVudCk7Ci0gICAg
aWYgKGZyYW1lLT5yZW5kZXJlcigpKSB7Ci0gICAgICAgIGZyYW1lLT52aWV3KCktPmxheW91dElm
TmVlZGVkUmVjdXJzaXZlKCk7Ci0gICAgICAgIGZyYW1lLT52aWV3KCktPnBhaW50KCZjdHgsIGNs
aXApOworICAgIGdka19yZWdpb25fZ2V0X2NsaXBib3ggKGV2ZW50LT5yZWdpb24sICZjbGlwKTsK
KyAgICBjYWlyb190ICpjciA9IGdka19jYWlyb19jcmVhdGUgKGV2ZW50LT53aW5kb3cpOworICAg
IEdyYXBoaWNzQ29udGV4dCBjdHggKGNyKTsKKyAgICBjdHguc2V0R2RrRXhwb3NlRXZlbnQgKGV2
ZW50KTsKKyAgICBpZiAoZnJhbWUtPnJlbmRlcmVyICgpKSB7CisgICAgICAgIGZyYW1lLT52aWV3
ICgpLT5sYXlvdXRJZk5lZWRlZFJlY3Vyc2l2ZSAoKTsKKyAgICAgICAgZnJhbWUtPnZpZXcgKCkt
PnBhaW50ICgmY3R4LCBjbGlwKTsKICAgICB9Ci0gICAgY2Fpcm9fZGVzdHJveShjcik7CisgICAg
Y2Fpcm9fZGVzdHJveSAoY3IpOwogCiAgICAgcmV0dXJuIEZBTFNFOwogfQogCi1zdGF0aWMgZ2Jv
b2xlYW4gd2Via2l0X3dlYl92aWV3X2tleV9wcmVzc19ldmVudChHdGtXaWRnZXQqIHdpZGdldCwg
R2RrRXZlbnRLZXkqIGV2ZW50KQorc3RhdGljIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfa2V5
X3ByZXNzX2V2ZW50IChHdGtXaWRnZXQgICAqd2lkZ2V0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR2RrRXZlbnRLZXkgKmV2ZW50KQogewotICAgIEZyYW1lKiBmcmFtZSA9IGNv
cmUoV0VCS0lUX1dFQl9WSUVXKHdpZGdldCkpLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9y
TWFpbkZyYW1lKCk7Ci0gICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IGtleWJvYXJkRXZlbnQoZXZl
bnQpOworICAgIEZyYW1lICpmcmFtZSA9IGNvcmUgKFdFQktJVF9XRUJfVklFVyAod2lkZ2V0KSkt
PmZvY3VzQ29udHJvbGxlciAoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lICgpOworICAgIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudCBrZXlib2FyZEV2ZW50IChldmVudCk7CiAKLSAgICBpZiAoZnJhbWUtPmV2
ZW50SGFuZGxlcigpLT5rZXlFdmVudChrZXlib2FyZEV2ZW50KSkKKyAgICBpZiAoZnJhbWUtPmV2
ZW50SGFuZGxlciAoKS0+a2V5RXZlbnQgKGtleWJvYXJkRXZlbnQpKQogICAgICAgICByZXR1cm4g
VFJVRTsKIAotICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CisgICAgRnJhbWVW
aWV3ICp2aWV3ID0gZnJhbWUtPnZpZXcgKCk7CiAgICAgU2VsZWN0aW9uQ29udHJvbGxlcjo6RUFs
dGVyYXRpb24gYWx0ZXJhdGlvbjsKICAgICBpZiAoZXZlbnQtPnN0YXRlICYgR0RLX1NISUZUX01B
U0spCiAgICAgICAgIGFsdGVyYXRpb24gPSBTZWxlY3Rpb25Db250cm9sbGVyOjpFWFRFTkQ7CkBA
IC0xMzksOTYgKzE0OCwxMTIgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19rZXlf
cHJlc3NfZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50S2V5KgogICAgIC8vIGFwcHJv
YWNoIG1vcmUgbGlrZSB0aGUgV2luIGFuZCBNYWMgcG9ydHMgZm9yIGtleSBoYW5kbGluZy4KICAg
ICBzd2l0Y2ggKGV2ZW50LT5rZXl2YWwpIHsKICAgICBjYXNlIEdES19Eb3duOgotICAgICAgICB2
aWV3LT5zY3JvbGxCeSgwLCBMSU5FX1NURVApOworICAgICAgICB2aWV3LT5zY3JvbGxCeSAoMCwg
TElORV9TVEVQKTsKICAgICAgICAgcmV0dXJuIFRSVUU7CiAgICAgY2FzZSBHREtfVXA6Ci0gICAg
ICAgIHZpZXctPnNjcm9sbEJ5KDAsIC1MSU5FX1NURVApOworICAgICAgICB2aWV3LT5zY3JvbGxC
eSAoMCwgLUxJTkVfU1RFUCk7CiAgICAgICAgIHJldHVybiBUUlVFOwogICAgIGNhc2UgR0RLX1Jp
Z2h0OgotICAgICAgICB2aWV3LT5zY3JvbGxCeShMSU5FX1NURVAsIDApOworICAgICAgICB2aWV3
LT5zY3JvbGxCeSAoTElORV9TVEVQLCAwKTsKICAgICAgICAgcmV0dXJuIFRSVUU7CiAgICAgY2Fz
ZSBHREtfTGVmdDoKLSAgICAgICAgdmlldy0+c2Nyb2xsQnkoLUxJTkVfU1RFUCwgMCk7CisgICAg
ICAgIHZpZXctPnNjcm9sbEJ5ICgtTElORV9TVEVQLCAwKTsKICAgICAgICAgcmV0dXJuIFRSVUU7
CiAgICAgY2FzZSBHREtfSG9tZToKLSAgICAgICAgZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIo
KS0+bW9kaWZ5KGFsdGVyYXRpb24sIFNlbGVjdGlvbkNvbnRyb2xsZXI6OkJBQ0tXQVJELCBEb2N1
bWVudEJvdW5kYXJ5LCB0cnVlKTsKKyAgICAgICAgZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIg
KCktPm1vZGlmeSAoYWx0ZXJhdGlvbiwgU2VsZWN0aW9uQ29udHJvbGxlcjo6QkFDS1dBUkQsIERv
Y3VtZW50Qm91bmRhcnksIHRydWUpOwogICAgICAgICByZXR1cm4gVFJVRTsKICAgICBjYXNlIEdE
S19FbmQ6Ci0gICAgICAgIGZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPm1vZGlmeShhbHRl
cmF0aW9uLCBTZWxlY3Rpb25Db250cm9sbGVyOjpGT1JXQVJELCBEb2N1bWVudEJvdW5kYXJ5LCB0
cnVlKTsKKyAgICAgICAgZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIgKCktPm1vZGlmeSAoYWx0
ZXJhdGlvbiwgU2VsZWN0aW9uQ29udHJvbGxlcjo6Rk9SV0FSRCwgRG9jdW1lbnRCb3VuZGFyeSwg
dHJ1ZSk7CiAgICAgICAgIHJldHVybiBUUlVFOwogICAgIH0KIAogICAgIC8qIENoYWluIHVwIHRv
IG91ciBwYXJlbnQgY2xhc3MgZm9yIGJpbmRpbmcgYWN0aXZhdGlvbiAqLwotICAgIHJldHVybiBH
VEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5rZXlfcHJlc3Nf
ZXZlbnQod2lkZ2V0LCBldmVudCk7CisgICAgcmV0dXJuIEdUS19XSURHRVRfQ0xBU1MgKHdlYmtp
dF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5rZXlfcHJlc3NfZXZlbnQgKHdpZGdldCwgZXZlbnQp
OwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2tleV9yZWxlYXNlX2V2ZW50
KEd0a1dpZGdldCogd2lkZ2V0LCBHZGtFdmVudEtleSogZXZlbnQpCitzdGF0aWMgZ2Jvb2xlYW4K
K3dlYmtpdF93ZWJfdmlld19rZXlfcmVsZWFzZV9ldmVudCAoR3RrV2lkZ2V0ICAgKndpZGdldCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnRLZXkgKmV2ZW50KQog
ewotICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUoV0VCS0lUX1dFQl9WSUVXKHdpZGdldCkpLT5mb2N1
c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50IGtleWJvYXJkRXZlbnQoZXZlbnQpOworICAgIEZyYW1lICpmcmFtZSA9IGNvcmUgKFdF
QktJVF9XRUJfVklFVyAod2lkZ2V0KSktPmZvY3VzQ29udHJvbGxlciAoKS0+Zm9jdXNlZE9yTWFp
bkZyYW1lICgpOworICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXlib2FyZEV2ZW50IChldmVu
dCk7CiAKLSAgICBpZiAoZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5rZXlFdmVudChrZXlib2FyZEV2
ZW50KSkKKyAgICBpZiAoZnJhbWUtPmV2ZW50SGFuZGxlciAoKS0+a2V5RXZlbnQgKGtleWJvYXJk
RXZlbnQpKQogICAgICAgICByZXR1cm4gVFJVRTsKIAogICAgIC8qIENoYWluIHVwIHRvIG91ciBw
YXJlbnQgY2xhc3MgZm9yIGJpbmRpbmcgYWN0aXZhdGlvbiAqLwotICAgIHJldHVybiBHVEtfV0lE
R0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5rZXlfcmVsZWFzZV9ldmVu
dCh3aWRnZXQsIGV2ZW50KTsKKyAgICByZXR1cm4gR1RLX1dJREdFVF9DTEFTUyAod2Via2l0X3dl
Yl92aWV3X3BhcmVudF9jbGFzcyktPmtleV9yZWxlYXNlX2V2ZW50ICh3aWRnZXQsIGV2ZW50KTsK
IH0KIAotc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19idXR0b25fcHJlc3NfZXZlbnQo
R3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50QnV0dG9uKiBldmVudCkKK3N0YXRpYyBnYm9vbGVh
bgord2Via2l0X3dlYl92aWV3X2J1dHRvbl9wcmVzc19ldmVudCAoR3RrV2lkZ2V0ICAgICAgKndp
ZGdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50QnV0dG9u
ICpldmVudCkKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYmtpdF93ZWJfdmlld19nZXRf
bWFpbl9mcmFtZShXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KSkpOworICAgIEZyYW1lICpmcmFtZSA9
IGNvcmUgKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSAoV0VCS0lUX1dFQl9WSUVXICh3
aWRnZXQpKSk7CiAKICAgICAvLyBGSVhNRTogbmVlZCB0byBrZWVwIHRyYWNrIG9mIHN1YmZyYW1l
IGZvY3VzIGZvciBrZXkgZXZlbnRzCi0gICAgZ3RrX3dpZGdldF9ncmFiX2ZvY3VzKEdUS19XSURH
RVQod2lkZ2V0KSk7Ci0gICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91
c2VQcmVzc0V2ZW50KFBsYXRmb3JtTW91c2VFdmVudChldmVudCkpOworICAgIGd0a193aWRnZXRf
Z3JhYl9mb2N1cyAoR1RLX1dJREdFVCAod2lkZ2V0KSk7CisKKyAgICByZXR1cm4gZnJhbWUtPmV2
ZW50SGFuZGxlciAoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50IChQbGF0Zm9ybU1vdXNlRXZlbnQg
KGV2ZW50KSk7CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfYnV0dG9uX3Jl
bGVhc2VfZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50QnV0dG9uKiBldmVudCkKK3N0
YXRpYyBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2J1dHRvbl9yZWxlYXNlX2V2ZW50IChHdGtX
aWRnZXQgICAgICAqd2lkZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHZGtFdmVudEJ1dHRvbiAqZXZlbnQpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUoV0VCS0lUX1dFQl9WSUVXKHdpZGdldCkpKTsKKyAg
ICBGcmFtZSAqZnJhbWUgPSBjb3JlICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUgKFdF
QktJVF9XRUJfVklFVyAod2lkZ2V0KSkpOwogCi0gICAgV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcg
PSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogd2Vi
Vmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViX3ZpZXcpOwotICAgIEZy
YW1lKiBmb2N1c2VkRnJhbWUgPSB3ZWJWaWV3RGF0YS0+Y29yZVBhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLT5mb2N1c2VkRnJhbWUoKTsKKyAgICBXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldyA9IFdFQktJ
VF9XRUJfVklFVyAod2lkZ2V0KTsKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSAqd2ViVmlld0Rh
dGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUgKHdlYl92aWV3KTsKKyAgICBGcmFtZSAq
Zm9jdXNlZEZyYW1lID0gd2ViVmlld0RhdGEtPmNvcmVQYWdlLT5mb2N1c0NvbnRyb2xsZXIgKCkt
PmZvY3VzZWRGcmFtZSAoKTsKIAotICAgIGlmIChmb2N1c2VkRnJhbWUtPmVkaXRvcigpLT5jYW5F
ZGl0KCkpIHsKLSAgICAgICAgR2RrV2luZG93KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF9wYXJl
bnRfd2luZG93KHdpZGdldCk7Ci0gICAgICAgIGd0a19pbV9jb250ZXh0X3NldF9jbGllbnRfd2lu
ZG93KHdlYlZpZXdEYXRhLT5pbUNvbnRleHQsIHdpbmRvdyk7CisgICAgaWYgKGZvY3VzZWRGcmFt
ZS0+ZWRpdG9yICgpLT5jYW5FZGl0ICgpKSB7CisgICAgICAgIEdka1dpbmRvdyAqd2luZG93ID0g
Z3RrX3dpZGdldF9nZXRfcGFyZW50X3dpbmRvdyAod2lkZ2V0KTsKKyAgICAgICAgZ3RrX2ltX2Nv
bnRleHRfc2V0X2NsaWVudF93aW5kb3cgKHdlYlZpZXdEYXRhLT5pbUNvbnRleHQsIHdpbmRvdyk7
CiAjaWZkZWYgTUFFTU9fQ0hBTkdFUwotICAgICAgICBoaWxkb25fZ3RrX2ltX2NvbnRleHRfZmls
dGVyX2V2ZW50KHdlYlZpZXdEYXRhLT5pbUNvbnRleHQsIChHZGtFdmVudCopZXZlbnQpOwotICAg
ICAgICBoaWxkb25fZ3RrX2ltX2NvbnRleHRfc2hvdyh3ZWJWaWV3RGF0YS0+aW1Db250ZXh0KTsK
KyAgICAgICAgaGlsZG9uX2d0a19pbV9jb250ZXh0X2ZpbHRlcl9ldmVudCAod2ViVmlld0RhdGEt
PmltQ29udGV4dCwgKEdka0V2ZW50KikgZXZlbnQpOworICAgICAgICBoaWxkb25fZ3RrX2ltX2Nv
bnRleHRfc2hvdyAod2ViVmlld0RhdGEtPmltQ29udGV4dCk7CiAjZW5kaWYKICAgICB9CiAKLSAg
ICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChQ
bGF0Zm9ybU1vdXNlRXZlbnQoZXZlbnQpKTsKKyAgICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxl
ciAoKS0+aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQgKFBsYXRmb3JtTW91c2VFdmVudCAoZXZlbnQp
KTsKIH0KIAotc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19tb3Rpb25fZXZlbnQoR3Rr
V2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50TW90aW9uKiBldmVudCkKK3N0YXRpYyBnYm9vbGVhbgor
d2Via2l0X3dlYl92aWV3X21vdGlvbl9ldmVudCAoR3RrV2lkZ2V0ICAgICAgKndpZGdldCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50TW90aW9uICpldmVudCkKIHsKLSAg
ICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZShXRUJL
SVRfV0VCX1ZJRVcod2lkZ2V0KSkpOwotICAgIHJldHVybiBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkt
Pm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KGV2ZW50KSk7CisgICAgRnJhbWUgKmZyYW1l
ID0gY29yZSAod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lIChXRUJLSVRfV0VCX1ZJRVcg
KHdpZGdldCkpKTsKKworICAgIHJldHVybiBmcmFtZS0+ZXZlbnRIYW5kbGVyICgpLT5tb3VzZU1v
dmVkIChQbGF0Zm9ybU1vdXNlRXZlbnQgKGV2ZW50KSk7CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3
ZWJraXRfd2ViX3ZpZXdfc2Nyb2xsX2V2ZW50KEd0a1dpZGdldCogd2lkZ2V0LCBHZGtFdmVudFNj
cm9sbCogZXZlbnQpCitzdGF0aWMgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19zY3JvbGxfZXZl
bnQgKEd0a1dpZGdldCAgICAgICp3aWRnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHZGtFdmVudFNjcm9sbCAqZXZlbnQpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUoV0VCS0lUX1dFQl9WSUVXKHdpZGdldCkpKTsKLSAg
ICBQbGF0Zm9ybVdoZWVsRXZlbnQgd2hlZWxFdmVudChldmVudCk7Ci0gICAgcmV0dXJuIGZyYW1l
LT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICBGcmFt
ZSAqZnJhbWUgPSBjb3JlICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUgKFdFQktJVF9X
RUJfVklFVyAod2lkZ2V0KSkpOworICAgIFBsYXRmb3JtV2hlZWxFdmVudCB3aGVlbEV2ZW50IChl
dmVudCk7CisKKyAgICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxlciAoKS0+aGFuZGxlV2hlZWxF
dmVudCAod2hlZWxFdmVudCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zaXpl
X2FsbG9jYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBHdGtBbGxvY2F0aW9uKiBhbGxvY2F0aW9uKQor
c3RhdGljIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zaXplX2FsbG9jYXRlIChHdGtXaWRnZXQgICAg
ICp3aWRnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrQWxsb2NhdGlvbiAq
YWxsb2NhdGlvbikKIHsKLSAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJl
bnRfY2xhc3MpLT5zaXplX2FsbG9jYXRlKHdpZGdldCxhbGxvY2F0aW9uKTsKKyAgICBHVEtfV0lE
R0VUX0NMQVNTICh3ZWJraXRfd2ViX3ZpZXdfcGFyZW50X2NsYXNzKS0+c2l6ZV9hbGxvY2F0ZSAo
d2lkZ2V0LCBhbGxvY2F0aW9uKTsKIAotICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUod2Via2l0X3dl
Yl92aWV3X2dldF9tYWluX2ZyYW1lKFdFQktJVF9XRUJfVklFVyh3aWRnZXQpKSk7Ci0gICAgZnJh
bWUtPnZpZXcoKS0+cmVzaXplKGFsbG9jYXRpb24tPndpZHRoLCBhbGxvY2F0aW9uLT5oZWlnaHQp
OwotICAgIGZyYW1lLT5mb3JjZUxheW91dCgpOwotICAgIGZyYW1lLT52aWV3KCktPmFkanVzdFZp
ZXdTaXplKCk7CisgICAgRnJhbWUgKmZyYW1lID0gY29yZSAod2Via2l0X3dlYl92aWV3X2dldF9t
YWluX2ZyYW1lIChXRUJLSVRfV0VCX1ZJRVcgKHdpZGdldCkpKTsKKyAgICBmcmFtZS0+dmlldyAo
KS0+cmVzaXplIChhbGxvY2F0aW9uLT53aWR0aCwgYWxsb2NhdGlvbi0+aGVpZ2h0KTsKKyAgICBm
cmFtZS0+Zm9yY2VMYXlvdXQgKCk7CisgICAgZnJhbWUtPnZpZXcgKCktPmFkanVzdFZpZXdTaXpl
ICgpOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZShHdGtXaWRnZXQq
IHdpZGdldCkKK3N0YXRpYyB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZSAoR3RrV2lkZ2V0
ICp3aWRnZXQpCiB7Ci0gICAgR1RLX1dJREdFVF9TRVRfRkxBR1Mod2lkZ2V0LCBHVEtfUkVBTEla
RUQpOworICAgIEdUS19XSURHRVRfU0VUX0ZMQUdTICh3aWRnZXQsIEdUS19SRUFMSVpFRCk7CiAK
ICAgICBHZGtXaW5kb3dBdHRyIGF0dHJpYnV0ZXM7CiAgICAgYXR0cmlidXRlcy53aW5kb3dfdHlw
ZSA9IEdES19XSU5ET1dfQ0hJTEQ7CkBAIC0yNTIsNzcgKzI3NywxMDkgQEAgc3RhdGljIHZvaWQg
d2Via2l0X3dlYl92aWV3X3JlYWxpemUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCBHREtfQlVUVE9OM19NT1RJT05fTUFTSzsKIAogICAgIGdpbnQgYXR0
cmlidXRlc19tYXNrID0gR0RLX1dBX1ggfCBHREtfV0FfWSB8IEdES19XQV9WSVNVQUwgfCBHREtf
V0FfQ09MT1JNQVA7Ci0gICAgd2lkZ2V0LT53aW5kb3cgPSBnZGtfd2luZG93X25ldyhndGtfd2lk
Z2V0X2dldF9wYXJlbnRfd2luZG93ICh3aWRnZXQpLCAmYXR0cmlidXRlcywgYXR0cmlidXRlc19t
YXNrKTsKLSAgICBnZGtfd2luZG93X3NldF91c2VyX2RhdGEod2lkZ2V0LT53aW5kb3csIHdpZGdl
dCk7CisgICAgd2lkZ2V0LT53aW5kb3cgPSBnZGtfd2luZG93X25ldyAoZ3RrX3dpZGdldF9nZXRf
cGFyZW50X3dpbmRvdyAod2lkZ2V0KSwgJmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXNfbWFzayk7Cisg
ICAgZ2RrX3dpbmRvd19zZXRfdXNlcl9kYXRhICh3aWRnZXQtPndpbmRvdywgd2lkZ2V0KTsKIH0K
IAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9zY3JvbGxfYWRqdXN0bWVudHMoV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCog
dmFkaikKK3N0YXRpYyB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X3Njcm9sbF9hZGp1c3RtZW50
cyAoV2ViS2l0V2ViVmlldyAqd2ViVmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHdGtBZGp1c3RtZW50ICpoYWRqLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEd0a0FkanVzdG1lbnQgKnZhZGopCiB7Ci0gICAgRnJhbWVWaWV3KiB2
aWV3ID0gY29yZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUod2ViVmlldykpLT52aWV3
KCk7Ci0gICAgdmlldy0+c2V0R3RrQWRqdXN0bWVudHMoaGFkaiwgdmFkaik7CisgICAgRnJhbWVW
aWV3ICp2aWV3ID0gY29yZSAod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lICh3ZWJWaWV3
KSktPnZpZXcgKCk7CisKKyAgICB2aWV3LT5zZXRHdGtBZGp1c3RtZW50cyAoaGFkaiwgdmFkaik7
CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jb250YWluZXJfYWRkKEd0a0NvbnRh
aW5lciogY29udGFpbmVyLCBHdGtXaWRnZXQqIHdpZGdldCkKK3N0YXRpYyB2b2lkCit3ZWJraXRf
d2ViX3ZpZXdfY29udGFpbmVyX2FkZCAoR3RrQ29udGFpbmVyICpjb250YWluZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR3RrV2lkZ2V0ICAgICp3aWRnZXQpCiB7Ci0gICAgV2Vi
S2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhjb250YWluZXIpOwotICAgIFdl
YktpdFdlYlZpZXdQcml2YXRlKiBwcml2YXRlX2RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BS
SVZBVEUod2ViVmlldyk7CisgICAgV2ViS2l0V2ViVmlldyAqd2ViVmlldyA9IFdFQktJVF9XRUJf
VklFVyAoY29udGFpbmVyKTsKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSAqcHJpdmF0ZV9kYXRh
ID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFICh3ZWJWaWV3KTsKIAotICAgIHByaXZhdGVf
ZGF0YS0+Y2hpbGRyZW4uYWRkKHdpZGdldCk7Ci0gICAgaWYgKEdUS19XSURHRVRfUkVBTElaRUQo
Y29udGFpbmVyKSkKLSAgICAgICAgZ3RrX3dpZGdldF9zZXRfcGFyZW50X3dpbmRvdyh3aWRnZXQs
IEdUS19XSURHRVQod2ViVmlldyktPndpbmRvdyk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfcGFyZW50
KHdpZGdldCwgR1RLX1dJREdFVChjb250YWluZXIpKTsKKyAgICBwcml2YXRlX2RhdGEtPmNoaWxk
cmVuLmFkZCAod2lkZ2V0KTsKKyAgICBpZiAoR1RLX1dJREdFVF9SRUFMSVpFRCAoY29udGFpbmVy
KSkKKyAgICAgICAgZ3RrX3dpZGdldF9zZXRfcGFyZW50X3dpbmRvdyAod2lkZ2V0LCBHVEtfV0lE
R0VUICh3ZWJWaWV3KS0+d2luZG93KTsKKyAgICBndGtfd2lkZ2V0X3NldF9wYXJlbnQgKHdpZGdl
dCwgR1RLX1dJREdFVCAoY29udGFpbmVyKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJf
dmlld19jb250YWluZXJfcmVtb3ZlKEd0a0NvbnRhaW5lciogY29udGFpbmVyLCBHdGtXaWRnZXQq
IHdpZGdldCkKK3N0YXRpYyB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfY29udGFpbmVyX3JlbW92ZSAo
R3RrQ29udGFpbmVyICpjb250YWluZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR3RrV2lkZ2V0ICAgICp3aWRnZXQpCiB7Ci0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHBy
aXZhdGVfZGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURShXRUJLSVRfV0VCX1ZJRVco
Y29udGFpbmVyKSk7CisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUgKnByaXZhdGVfZGF0YSA9IFdF
QktJVF9XRUJfVklFV19HRVRfUFJJVkFURSAoV0VCS0lUX1dFQl9WSUVXIChjb250YWluZXIpKTsK
IAotICAgIGlmIChwcml2YXRlX2RhdGEtPmNoaWxkcmVuLmNvbnRhaW5zKHdpZGdldCkpIHsKLSAg
ICAgICAgZ3RrX3dpZGdldF91bnBhcmVudCh3aWRnZXQpOwotICAgICAgICBwcml2YXRlX2RhdGEt
PmNoaWxkcmVuLnJlbW92ZSh3aWRnZXQpOworICAgIGlmIChwcml2YXRlX2RhdGEtPmNoaWxkcmVu
LmNvbnRhaW5zICh3aWRnZXQpKSB7CisgICAgICAgIGd0a193aWRnZXRfdW5wYXJlbnQgKHdpZGdl
dCk7CisgICAgICAgIHByaXZhdGVfZGF0YS0+Y2hpbGRyZW4ucmVtb3ZlICh3aWRnZXQpOwogICAg
IH0KIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NvbnRhaW5lcl9mb3JhbGwoR3Rr
Q29udGFpbmVyKiBjb250YWluZXIsIGdib29sZWFuLCBHdGtDYWxsYmFjayBjYWxsYmFjaywgZ3Bv
aW50ZXIgY2FsbGJhY2tEYXRhKQorc3RhdGljIHZvaWQKK3dlYmtpdF93ZWJfdmlld19jb250YWlu
ZXJfZm9yYWxsIChHdGtDb250YWluZXIgKmNvbnRhaW5lciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnYm9vbGVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHdGtDYWxsYmFjayAgIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdwb2ludGVyICAgICAgY2FsbGJhY2tEYXRhKQogewotICAgIFdlYktpdFdlYlZpZXdQcml2
YXRlKiBwcml2YXRlRGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURShXRUJLSVRfV0VC
X1ZJRVcoY29udGFpbmVyKSk7CisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUgKnByaXZhdGVEYXRh
ID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFIChXRUJLSVRfV0VCX1ZJRVcgKGNvbnRhaW5l
cikpOwogCiAgICAgSGFzaFNldDxHdGtXaWRnZXQqPiBjaGlsZHJlbiA9IHByaXZhdGVEYXRhLT5j
aGlsZHJlbjsKLSAgICBIYXNoU2V0PEd0a1dpZGdldCo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBj
aGlsZHJlbi5lbmQoKTsKLSAgICBmb3IgKEhhc2hTZXQ8R3RrV2lkZ2V0Kj46OmNvbnN0X2l0ZXJh
dG9yIGN1cnJlbnQgPSBjaGlsZHJlbi5iZWdpbigpOyBjdXJyZW50ICE9IGVuZDsgKytjdXJyZW50
KQotICAgICAgICAoKmNhbGxiYWNrKSgqY3VycmVudCwgY2FsbGJhY2tEYXRhKTsKKyAgICBIYXNo
U2V0PEd0a1dpZGdldCo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBjaGlsZHJlbi5lbmQgKCk7Cisg
ICAgZm9yIChIYXNoU2V0PEd0a1dpZGdldCo+Ojpjb25zdF9pdGVyYXRvciBjdXJyZW50ID0gY2hp
bGRyZW4uYmVnaW4gKCk7IGN1cnJlbnQgIT0gZW5kOyArK2N1cnJlbnQpCisgICAgICAgIGNhbGxi
YWNrICgqY3VycmVudCwgY2FsbGJhY2tEYXRhKTsKIH0KIAotc3RhdGljIFdlYktpdFdlYlZpZXcq
IHdlYmtpdF93ZWJfdmlld19yZWFsX2NyZWF0ZV93ZWJfdmlldyhXZWJLaXRXZWJWaWV3KikKK3N0
YXRpYyBXZWJLaXRXZWJWaWV3ICoKK3dlYmtpdF93ZWJfdmlld19yZWFsX2NyZWF0ZV93ZWJfdmll
dyAoV2ViS2l0V2ViVmlldyAqKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbm90SW1w
bGVtZW50ZWQgKCk7CisKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIFdlYktpdE5hdmlnYXRp
b25SZXNwb25zZSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9uYXZpZ2F0aW9uX3JlcXVlc3RlZChXZWJL
aXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCop
CitzdGF0aWMgV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlCit3ZWJraXRfd2ViX3ZpZXdfcmVhbF9u
YXZpZ2F0aW9uX3JlcXVlc3RlZCAoV2ViS2l0V2ViVmlldyAgICAgICAgKiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJh
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0TmV0
d29ya1JlcXVlc3QgKikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG5vdEltcGxlbWVu
dGVkICgpOworCiAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQVDsK
IH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3JlYWxfd2luZG93X29iamVjdF9jbGVh
cmVkKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRXZWJGcmFtZSosIEpTR2xvYmFsQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiB3aW5kb3dfb2JqZWN0KQorc3RhdGljIHZvaWQKK3dlYmtpdF93
ZWJfdmlld19yZWFsX3dpbmRvd19vYmplY3RfY2xlYXJlZCAoV2ViS2l0V2ViVmlldyAgICAgICos
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYkZy
YW1lICAgICAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBK
U0dsb2JhbENvbnRleHRSZWYgIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEpTT2JqZWN0UmVmICAgICAgICAgd2luZG93X29iamVjdCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIG5vdEltcGxlbWVudGVkICgpOwogfQogCi1zdGF0aWMg
Z2NoYXIqIHdlYmtpdF93ZWJfdmlld19yZWFsX2Nob29zZV9maWxlKFdlYktpdFdlYlZpZXcqLCBX
ZWJLaXRXZWJGcmFtZSosIGNvbnN0IGdjaGFyKiBvbGRfbmFtZSkKK3N0YXRpYyBnY2hhciAqCit3
ZWJraXRfd2ViX3ZpZXdfcmVhbF9jaG9vc2VfZmlsZSAoV2ViS2l0V2ViVmlldyAgKiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJGcmFtZSAqLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICpvbGRfbmFtZSkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBnX3N0cmR1cChvbGRfbmFtZSk7CisgICAg
bm90SW1wbGVtZW50ZWQgKCk7CisKKyAgICByZXR1cm4gZ19zdHJkdXAgKG9sZF9uYW1lKTsKIH0K
IAogdHlwZWRlZiBlbnVtIHsKICAgICBXRUJLSVRfU0NSSVBUX0RJQUxPR19BTEVSVCwKICAgICBX
RUJLSVRfU0NSSVBUX0RJQUxPR19DT05GSVJNLAogICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BS
T01QVAotIH0gV2ViS2l0U2NyaXB0RGlhbG9nVHlwZTsKLQotc3RhdGljIGdib29sZWFuIHdlYmtp
dF93ZWJfdmlld19zY3JpcHRfZGlhbG9nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdl
YkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIFdlYktpdFNjcmlwdERpYWxvZ1R5
cGUgdHlwZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1ZSwgZ2NoYXIqKiB2YWx1ZSkKK30gV2Vi
S2l0U2NyaXB0RGlhbG9nVHlwZTsKKworc3RhdGljIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdf
c2NyaXB0X2RpYWxvZyAoV2ViS2l0V2ViVmlldyAgICAgICAgICAqd2ViVmlldywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJGcmFtZSAgICAgICAgICpmcmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICptZXNz
YWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNjcmlwdERpYWxvZ1R5
cGUgIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAg
ICAgICAgICAqZGVmYXVsdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdj
aGFyICAgICAgICAgICAgICAgICAqKnZhbHVlKQogewogICAgIEd0a01lc3NhZ2VUeXBlIG1lc3Nh
Z2VUeXBlOwogICAgIEd0a0J1dHRvbnNUeXBlIGJ1dHRvbnM7CkBAIC0zNDksMjYgKzQwNiwzMSBA
QCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X3NjcmlwdF9kaWFsb2coV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgV2ViS2l0V2ViRgogICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtf
UkVTUE9OU0VfT0s7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdfd2Fy
bmluZygiVW5rbm93biB2YWx1ZSBmb3IgV2ViS2l0U2NyaXB0RGlhbG9nVHlwZS4iKTsKKyAgICAg
ICAgZ193YXJuaW5nICgiVW5rbm93biB2YWx1ZSBmb3IgV2ViS2l0U2NyaXB0RGlhbG9nVHlwZS4i
KTsKICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgIH0KIAotICAgIHdpbmRvdyA9IGd0a193aWRn
ZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQod2ViVmlldykpOwotICAgIGRpYWxvZyA9IGd0a19t
ZXNzYWdlX2RpYWxvZ19uZXcoR1RLX1dJREdFVF9UT1BMRVZFTCh3aW5kb3cpID8gR1RLX1dJTkRP
Vyh3aW5kb3cpIDogMCwgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULCBtZXNzYWdlVHlw
ZSwgYnV0dG9ucywgIiVzIiwgbWVzc2FnZSk7Ci0gICAgZ2NoYXIqIHRpdGxlID0gZ19zdHJjb25j
YXQoIkphdmFTY3JpcHQgLSAiLCB3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkoZnJhbWUpLCBOVUxM
KTsKLSAgICBndGtfd2luZG93X3NldF90aXRsZShHVEtfV0lORE9XKGRpYWxvZyksIHRpdGxlKTsK
LSAgICBnX2ZyZWUodGl0bGUpOworICAgIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVs
IChHVEtfV0lER0VUICh3ZWJWaWV3KSk7CisgICAgZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9n
X25ldyAoR1RLX1dJREdFVF9UT1BMRVZFTCAod2luZG93KSA/CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR1RLX1dJTkRPVyAod2luZG93KSA6IDAsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUeXBlLCBidXR0b25z
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyIsIG1lc3NhZ2UpOwor
ICAgIGdjaGFyICp0aXRsZSA9IGdfc3RyY29uY2F0ICgiSmF2YVNjcmlwdCAtICIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3VyaSAoZnJhbWUp
LCBOVUxMKTsKKyAgICBndGtfd2luZG93X3NldF90aXRsZSAoR1RLX1dJTkRPVyAoZGlhbG9nKSwg
dGl0bGUpOworICAgIGdfZnJlZSAodGl0bGUpOwogCiAgICAgaWYgKHR5cGUgPT0gV0VCS0lUX1ND
UklQVF9ESUFMT0dfUFJPTVBUKSB7Ci0gICAgICAgIGVudHJ5ID0gZ3RrX2VudHJ5X25ldygpOwot
ICAgICAgICBndGtfZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKGVudHJ5KSwgZGVmYXVsdFZhbHVl
KTsKLSAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihHVEtfRElBTE9HKGRp
YWxvZyktPnZib3gpLCBlbnRyeSk7Ci0gICAgICAgIGd0a19lbnRyeV9zZXRfYWN0aXZhdGVzX2Rl
ZmF1bHQoR1RLX0VOVFJZKGVudHJ5KSwgVFJVRSk7Ci0gICAgICAgIGd0a193aWRnZXRfc2hvdyhl
bnRyeSk7CisgICAgICAgIGVudHJ5ID0gZ3RrX2VudHJ5X25ldyAoKTsKKyAgICAgICAgZ3RrX2Vu
dHJ5X3NldF90ZXh0IChHVEtfRU5UUlkgKGVudHJ5KSwgZGVmYXVsdFZhbHVlKTsKKyAgICAgICAg
Z3RrX2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKEdUS19ESUFMT0cgKGRpYWxvZyktPnZi
b3gpLCBlbnRyeSk7CisgICAgICAgIGd0a19lbnRyeV9zZXRfYWN0aXZhdGVzX2RlZmF1bHQgKEdU
S19FTlRSWSAoZW50cnkpLCBUUlVFKTsKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93IChlbnRyeSk7
CiAgICAgfQogCi0gICAgZ3RrX2RpYWxvZ19zZXRfZGVmYXVsdF9yZXNwb25zZShHVEtfRElBTE9H
KGRpYWxvZyksIGRlZmF1bHRSZXNwb25zZSk7Ci0gICAgZ2ludCByZXNwb25zZSA9IGd0a19kaWFs
b2dfcnVuKEdUS19ESUFMT0coZGlhbG9nKSk7CisgICAgZ3RrX2RpYWxvZ19zZXRfZGVmYXVsdF9y
ZXNwb25zZSAoR1RLX0RJQUxPRyAoZGlhbG9nKSwgZGVmYXVsdFJlc3BvbnNlKTsKKyAgICBnaW50
IHJlc3BvbnNlID0gZ3RrX2RpYWxvZ19ydW4gKEdUS19ESUFMT0cgKGRpYWxvZykpOwogCiAgICAg
c3dpdGNoIChyZXNwb25zZSkgewogICAgIGNhc2UgR1RLX1JFU1BPTlNFX1lFUzoKQEAgLTM3Nyw3
ICs0MzksNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X3NjcmlwdF9kaWFsb2co
V2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRgogICAgIGNhc2UgR1RLX1JFU1BPTlNF
X09LOgogICAgICAgICBkaWRDb25maXJtID0gVFJVRTsKICAgICAgICAgaWYgKGVudHJ5KQotICAg
ICAgICAgICAgKnZhbHVlID0gZ19zdHJkdXAoZ3RrX2VudHJ5X2dldF90ZXh0KEdUS19FTlRSWShl
bnRyeSkpKTsKKyAgICAgICAgICAgICp2YWx1ZSA9IGdfc3RyZHVwIChndGtfZW50cnlfZ2V0X3Rl
eHQgKEdUS19FTlRSWSAoZW50cnkpKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgICp2YWx1
ZSA9IDA7CiAgICAgICAgIGJyZWFrOwpAQCAtMzg3LDk3ICs0NDksMTI5IEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJraXRfd2ViX3ZpZXdfc2NyaXB0X2RpYWxvZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJLaXRXZWJGCiAgICAgICAgIGJyZWFrOwogCiAgICAgfQotICAgIGd0a193aWRnZXRfZGVz
dHJveShHVEtfV0lER0VUKGRpYWxvZykpOworCisgICAgZ3RrX3dpZGdldF9kZXN0cm95IChHVEtf
V0lER0VUIChkaWFsb2cpKTsKKwogICAgIHJldHVybiBkaWRDb25maXJtOwogfQogCi1zdGF0aWMg
Z2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X3JlYWxfc2NyaXB0X2FsZXJ0KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpCitz
dGF0aWMgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19yZWFsX3NjcmlwdF9hbGVydCAoV2ViS2l0
V2ViVmlldyAgKndlYlZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFdlYkZyYW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIgICAgKm1lc3NhZ2UpCiB7Ci0gICAgd2Via2l0X3dlYl92aWV3X3NjcmlwdF9k
aWFsb2cod2ViVmlldywgZnJhbWUsIG1lc3NhZ2UsIFdFQktJVF9TQ1JJUFRfRElBTE9HX0FMRVJU
LCAwLCAwKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2NyaXB0X2RpYWxvZyAod2ViVmlldywgZnJh
bWUsIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9T
Q1JJUFRfRElBTE9HX0FMRVJULCAwLCAwKTsKKwogICAgIHJldHVybiBUUlVFOwogfQogCi1zdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X3JlYWxfc2NyaXB0X2NvbmZpcm0oV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2Fn
ZSwgZ2Jvb2xlYW4qIGRpZENvbmZpcm0pCitzdGF0aWMgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmll
d19yZWFsX3NjcmlwdF9jb25maXJtIChXZWJLaXRXZWJWaWV3ICAqd2ViVmlldywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJGcmFtZSAqZnJhbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgKm1lc3NhZ2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgKmRp
ZENvbmZpcm0pCiB7Ci0gICAgKmRpZENvbmZpcm0gPSB3ZWJraXRfd2ViX3ZpZXdfc2NyaXB0X2Rp
YWxvZyh3ZWJWaWV3LCBmcmFtZSwgbWVzc2FnZSwgV0VCS0lUX1NDUklQVF9ESUFMT0dfQ09ORklS
TSwgMCwgMCk7CisgICAgKmRpZENvbmZpcm0gPSB3ZWJraXRfd2ViX3ZpZXdfc2NyaXB0X2RpYWxv
ZyAod2ViVmlldywgZnJhbWUsIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1NDUklQVF9ESUFMT0dfQ09ORklSTSwgMCwgMCk7
CisKICAgICByZXR1cm4gVFJVRTsKIH0KIAotc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmll
d19yZWFsX3NjcmlwdF9wcm9tcHQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJh
bWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1
ZSwgZ2NoYXIqKiB2YWx1ZSkKK3N0YXRpYyBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X3JlYWxf
c2NyaXB0X3Byb21wdCAoV2ViS2l0V2ViVmlldyAgICp3ZWJWaWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViRnJhbWUgICpmcmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAqbWVzc2FnZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAqZGVmYXVsdFZh
bHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAg
Kip2YWx1ZSkKIHsKLSAgICBpZiAoIXdlYmtpdF93ZWJfdmlld19zY3JpcHRfZGlhbG9nKHdlYlZp
ZXcsIGZyYW1lLCBtZXNzYWdlLCBXRUJLSVRfU0NSSVBUX0RJQUxPR19QUk9NUFQsIGRlZmF1bHRW
YWx1ZSwgdmFsdWUpKQorICAgIGlmICghd2Via2l0X3dlYl92aWV3X3NjcmlwdF9kaWFsb2cgKHdl
YlZpZXcsIGZyYW1lLCBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVCwgZGVmYXVsdFZhbHVlLCB2YWx1ZSkp
CiAgICAgICAgICp2YWx1ZSA9IE5VTEw7CisKICAgICByZXR1cm4gVFJVRTsKIH0KIAotc3RhdGlj
IGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19yZWFsX2NvbnNvbGVfbWVzc2FnZShXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmUsIGNv
bnN0IGdjaGFyKiBzb3VyY2VJZCkKK3N0YXRpYyBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X3Jl
YWxfY29uc29sZV9tZXNzYWdlIChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICptZXNzYWdlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICBsaW5lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICpzb3VyY2VJ
ZCkKIHsKLSAgICBnX3ByaW50KCJjb25zb2xlIG1lc3NhZ2U6ICVzIEAlZDogJXNcbiIsIHNvdXJj
ZUlkLCBsaW5lLCBtZXNzYWdlKTsKKyAgICBnX3ByaW50ICgiY29uc29sZSBtZXNzYWdlOiAlcyBA
JWQ6ICVzXG4iLCBzb3VyY2VJZCwgbGluZSwgbWVzc2FnZSk7CisKICAgICByZXR1cm4gVFJVRTsK
IH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3JlYWxfc2VsZWN0X2FsbChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQorc3RhdGljIHZvaWQKK3dlYmtpdF93ZWJfdmlld19yZWFsX3NlbGVj
dF9hbGwgKFdlYktpdFdlYlZpZXcgKndlYlZpZXcpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gY29y
ZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAg
IGZyYW1lLT5lZGl0b3IoKS0+Y29tbWFuZCgiU2VsZWN0QWxsIikuZXhlY3V0ZSgpOworICAgIEZy
YW1lICpmcmFtZSA9IGNvcmUgKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIgKCktPmZvY3VzZWRP
ck1haW5GcmFtZSAoKTsKKyAgICBmcmFtZS0+ZWRpdG9yICgpLT5jb21tYW5kICgiU2VsZWN0QWxs
IikuZXhlY3V0ZSAoKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3JlYWxfY3V0
X2NsaXBib2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQorc3RhdGljIHZvaWQKK3dlYmtpdF93
ZWJfdmlld19yZWFsX2N1dF9jbGlwYm9hcmQgKFdlYktpdFdlYlZpZXcgKndlYlZpZXcpCiB7Ci0g
ICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3Vz
ZWRPck1haW5GcmFtZSgpOwotICAgIGZyYW1lLT5lZGl0b3IoKS0+Y29tbWFuZCgiQ3V0IikuZXhl
Y3V0ZSgpOworICAgIEZyYW1lICpmcmFtZSA9IGNvcmUgKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xs
ZXIgKCktPmZvY3VzZWRPck1haW5GcmFtZSAoKTsKKyAgICBmcmFtZS0+ZWRpdG9yICgpLT5jb21t
YW5kICgiQ3V0IikuZXhlY3V0ZSAoKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X3JlYWxfY29weV9jbGlwYm9hcmQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3N0YXRpYyB2b2lk
Cit3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jb3B5X2NsaXBib2FyZCAoV2ViS2l0V2ViVmlldyAqd2Vi
VmlldykKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xs
ZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5jb21tYW5k
KCJDb3B5IikuZXhlY3V0ZSgpOworICAgIEZyYW1lICpmcmFtZSA9IGNvcmUgKHdlYlZpZXcpLT5m
b2N1c0NvbnRyb2xsZXIgKCktPmZvY3VzZWRPck1haW5GcmFtZSAoKTsKKyAgICBmcmFtZS0+ZWRp
dG9yICgpLT5jb21tYW5kICgiQ29weSIpLmV4ZWN1dGUgKCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfdmlld19yZWFsX3Bhc3RlX2NsaXBib2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KQorc3RhdGljIHZvaWQKK3dlYmtpdF93ZWJfdmlld19yZWFsX3Bhc3RlX2NsaXBib2FyZCAoV2Vi
S2l0V2ViVmlldyAqd2ViVmlldykKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcp
LT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgZnJhbWUtPmVk
aXRvcigpLT5jb21tYW5kKCJQYXN0ZSIpLmV4ZWN1dGUoKTsKKyAgICBGcmFtZSAqZnJhbWUgPSBj
b3JlICh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyICgpLT5mb2N1c2VkT3JNYWluRnJhbWUgKCk7
CisgICAgZnJhbWUtPmVkaXRvciAoKS0+Y29tbWFuZCAoIlBhc3RlIikuZXhlY3V0ZSAoKTsKIH0K
IAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkK
K3N0YXRpYyB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkK
IHsKLSAgICB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nKFdFQktJVF9XRUJfVklFVyhvYmpl
Y3QpKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nIChXRUJLSVRfV0VCX1ZJRVcg
KG9iamVjdCkpOwogCi0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VC
S0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFKFdFQktJVF9XRUJfVklFVyhvYmplY3QpKTsKKyAgICBX
ZWJLaXRXZWJWaWV3UHJpdmF0ZSAqd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BS
SVZBVEUgKFdFQktJVF9XRUJfVklFVyhvYmplY3QpKTsKICAgICBkZWxldGUgd2ViVmlld0RhdGEt
PmNvcmVQYWdlOwogICAgIGRlbGV0ZSB3ZWJWaWV3RGF0YS0+c2V0dGluZ3M7Ci0gICAgZ19vYmpl
Y3RfdW5yZWYod2ViVmlld0RhdGEtPm1haW5GcmFtZSk7Ci0gICAgZ19vYmplY3RfdW5yZWYod2Vi
Vmlld0RhdGEtPmltQ29udGV4dCk7Ci0gICAgZ3RrX3RhcmdldF9saXN0X3VucmVmKHdlYlZpZXdE
YXRhLT5jb3B5X3RhcmdldF9saXN0KTsKLSAgICBndGtfdGFyZ2V0X2xpc3RfdW5yZWYod2ViVmll
d0RhdGEtPnBhc3RlX3RhcmdldF9saXN0KTsKKyAgICBnX29iamVjdF91bnJlZiAod2ViVmlld0Rh
dGEtPm1haW5GcmFtZSk7CisgICAgZ19vYmplY3RfdW5yZWYgKHdlYlZpZXdEYXRhLT5pbUNvbnRl
eHQpOworICAgIGd0a190YXJnZXRfbGlzdF91bnJlZiAod2ViVmlld0RhdGEtPmNvcHlfdGFyZ2V0
X2xpc3QpOworICAgIGd0a190YXJnZXRfbGlzdF91bnJlZiAod2ViVmlld0RhdGEtPnBhc3RlX3Rh
cmdldF9saXN0KTsKICAgICBkZWxldGUgd2ViVmlld0RhdGEtPnVzZXJBZ2VudDsKIAotICAgIEdf
T0JKRUNUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmpl
Y3QpOworICAgIEdfT0JKRUNUX0NMQVNTICh3ZWJraXRfd2ViX3ZpZXdfcGFyZW50X2NsYXNzKS0+
ZmluYWxpemUgKG9iamVjdCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFz
c19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQorc3RhdGljIHZvaWQKK3dl
YmtpdF93ZWJfdmlld19jbGFzc19pbml0IChXZWJLaXRXZWJWaWV3Q2xhc3MgKndlYlZpZXdDbGFz
cykKIHsKLSAgICBHdGtCaW5kaW5nU2V0KiBiaW5kaW5nX3NldDsKKyAgICBHdGtCaW5kaW5nU2V0
ICpiaW5kaW5nX3NldDsKIAotICAgIHdlYmtpdF9pbml0KCk7CisgICAgd2Via2l0X2luaXQgKCk7
CiAKLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUod2ViVmlld0NsYXNzLCBzaXplb2YoV2Vi
S2l0V2ViVmlld1ByaXZhdGUpKTsKKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKHdlYlZp
ZXdDbGFzcywgc2l6ZW9mIChXZWJLaXRXZWJWaWV3UHJpdmF0ZSkpOwogCiAgICAgLyoKICAgICAg
KiBTaWduYWxzCiAgICAgICovCiAKLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tOQVZJR0FU
SU9OX1JFUVVFU1RFRF0gPSBnX3NpZ25hbF9uZXcoIm5hdmlnYXRpb24tcmVxdWVzdGVkIiwKLSAg
ICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgICAgICAo
R1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAg
ICAgICAgICBHX1NUUlVDVF9PRkZTRVQgKFdlYktpdFdlYlZpZXdDbGFzcywgbmF2aWdhdGlvbl9y
ZXF1ZXN0ZWQpLAotICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgIE5VTEwsCi0gICAgICAg
ICAgICB3ZWJraXRfbWFyc2hhbF9JTlRfX09CSkVDVF9PQkpFQ1QsCi0gICAgICAgICAgICBHX1RZ
UEVfSU5ULCAyLAotICAgICAgICAgICAgR19UWVBFX09CSkVDVCwKLSAgICAgICAgICAgIEdfVFlQ
RV9PQkpFQ1QpOworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW05BVklHQVRJT05fUkVRVUVT
VEVEXSA9CisgICAgICAgIGdfc2lnbmFsX25ldyAoIm5hdmlnYXRpb24tcmVxdWVzdGVkIiwKKyAg
ICAgICAgICAgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyAod2ViVmlld0NsYXNzKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdf
U0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUIChX
ZWJLaXRXZWJWaWV3Q2xhc3MsIG5hdmlnYXRpb25fcmVxdWVzdGVkKSwKKyAgICAgICAgICAgICAg
ICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAg
ICAgICAgICAgd2Via2l0X21hcnNoYWxfSU5UX19PQkpFQ1RfT0JKRUNULAorICAgICAgICAgICAg
ICAgICAgICAgIEdfVFlQRV9JTlQsIDIsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX09C
SkVDVCwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfT0JKRUNUKTsKIAogICAgIC8qKgog
ICAgICAqIFdlYktpdFdlYlZpZXc6OndpbmRvdy1vYmplY3QtY2xlYXJlZDoKQEAgLTQ5NCwxNyAr
NTg4LDE4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdl
YlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqIGNsZWFyZWQgaW4gcHJlcGFyYXRpb24g
Zm9yIGEgbmV3IGxvYWQuIFRoaXMgaXMgdGhlIHByZWZlcnJlZCBwbGFjZSB0bwogICAgICAqIHNl
dCBjdXN0b20gcHJvcGVydGllcyBvbiB0aGUgd2luZG93IG9iamVjdCB1c2luZyB0aGUgSmF2YVNj
cmlwdENvcmUgQVBJLgogICAgICAqLwotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1dJTkRP
V19PQkpFQ1RfQ0xFQVJFRF0gPSBnX3NpZ25hbF9uZXcoIndpbmRvdy1vYmplY3QtY2xlYXJlZCIs
Ci0gICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAg
ICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAot
ICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUIChXZWJLaXRXZWJWaWV3Q2xhc3MsIHdpbmRvd19v
YmplY3RfY2xlYXJlZCksCi0gICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgTlVMTCwKLSAg
ICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9QT0lOVEVSX1BPSU5URVIsCi0g
ICAgICAgICAgICBHX1RZUEVfTk9ORSwgMywKLSAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9G
UkFNRSwKLSAgICAgICAgICAgIEdfVFlQRV9QT0lOVEVSLAotICAgICAgICAgICAgR19UWVBFX1BP
SU5URVIpOworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1dJTkRPV19PQkpFQ1RfQ0xFQVJF
RF0gPQorICAgICAgICBnX3NpZ25hbF9uZXcgKCJ3aW5kb3ctb2JqZWN0LWNsZWFyZWQiLAorICAg
ICAgICAgICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTICh3ZWJWaWV3Q2xhc3MpLAorICAg
ICAgICAgICAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19T
SUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQgKFdl
YktpdFdlYlZpZXdDbGFzcywgd2luZG93X29iamVjdF9jbGVhcmVkKSwKKyAgICAgICAgICAgICAg
ICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAg
ICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX1BPSU5URVJfUE9JTlRFUiwKKyAg
ICAgICAgICAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAgICAgICAgICAgICAg
ICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX1BP
SU5URVIsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX1BPSU5URVIpOwogCiAgICAgLyoq
CiAgICAgICogV2ViS2l0V2ViVmlldzo6bG9hZC1zdGFydGVkOgpAQCAtNTEzLDE1ICs2MDgsMTYg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0Ns
YXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICoKICAgICAgKiBXaGVuIGEgI1dlYktpdFdlYkZyYW1l
IGJlZ2lucyB0byBsb2FkIHRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQuCiAgICAgICovCi0gICAgd2Vi
a2l0X3dlYl92aWV3X3NpZ25hbHNbTE9BRF9TVEFSVEVEXSA9IGdfc2lnbmFsX25ldygibG9hZC1z
dGFydGVkIiwKLSAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0g
ICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FD
VElPTiksCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgIE5V
TEwsCi0gICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAotICAgICAg
ICAgICAgR19UWVBFX05PTkUsIDEsCi0gICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUp
OworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0xPQURfU1RBUlRFRF0gPQorICAgICAgICBn
X3NpZ25hbF9uZXcgKCJsb2FkLXN0YXJ0ZWQiLAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQ
RV9GUk9NX0NMQVNTICh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAgICAgICAgICAgICAgIChHU2ln
bmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNo
YWxfVk9JRF9fT0JKRUNULAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAor
ICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSk7CiAKICAgICAvKioK
ICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNvbW1pdHRlZDoKQEAgLTUzMCw0MSArNjI2LDQz
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdD
bGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqCiAgICAgICogV2hlbiBhICNXZWJLaXRXZWJGcmFt
ZSBsb2FkZWQgdGhlIGZpcnN0IGRhdGEgdGhpcyBzaWduYWwgaXMgZW1pdHRlZC4KICAgICAgKi8K
LSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMT0FEX0NPTU1JVFRFRF0gPSBnX3NpZ25hbF9u
ZXcoImxvYWQtY29tbWl0dGVkIiwKLSAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZp
ZXdDbGFzcyksCi0gICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAgTlVMTCwKLSAg
ICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JK
RUNULAotICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCi0gICAgICAgICAgICBXRUJLSVRfVFlQ
RV9XRUJfRlJBTUUpOwotCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbTE9BRF9DT01NSVRU
RURdID0KKyAgICAgICAgZ19zaWduYWxfbmV3ICgibG9hZC1jb21taXR0ZWQiLAorICAgICAgICAg
ICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTICh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAg
ICAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxf
QUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg
ICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAorICAgICAgICAgICAgICAgICAgICAg
IEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9G
UkFNRSk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLXByb2dyZXNzLWNo
YW5nZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcKICAgICAgKiBAcHJv
Z3Jlc3M6IHRoZSBnbG9iYWwgcHJvZ3Jlc3MKICAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdf
c2lnbmFsc1tMT0FEX1BST0dSRVNTX0NIQU5HRURdID0gZ19zaWduYWxfbmV3KCJsb2FkLXByb2dy
ZXNzLWNoYW5nZWQiLAotICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNz
KSwKLSAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdO
QUxfQUNUSU9OKSwKLSAgICAgICAgICAgIDAsCi0gICAgICAgICAgICBOVUxMLAotICAgICAgICAg
ICAgTlVMTCwKLSAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19JTlQsCi0gICAg
ICAgICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAgICAgICAgIEdfVFlQRV9JTlQpOwotCi0gICAg
d2Via2l0X3dlYl92aWV3X3NpZ25hbHNbTE9BRF9GSU5JU0hFRF0gPSBnX3NpZ25hbF9uZXcoImxv
YWQtZmluaXNoZWQiLAotICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNz
KSwKLSAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdO
QUxfQUNUSU9OKSwKLSAgICAgICAgICAgIDAsCi0gICAgICAgICAgICBOVUxMLAotICAgICAgICAg
ICAgTlVMTCwKLSAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19PQkpFQ1QsCi0g
ICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9G
UkFNRSk7CisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbTE9BRF9QUk9HUkVTU19DSEFOR0VE
XSA9CisgICAgICAgIGdfc2lnbmFsX25ldyAoImxvYWQtcHJvZ3Jlc3MtY2hhbmdlZCIsCisgICAg
ICAgICAgICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKHdlYlZpZXdDbGFzcyksCisgICAg
ICAgICAgICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9BQ1RJT04pLAorICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAg
ICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAg
ICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19JTlQsCisgICAgICAgICAgICAgICAgICAg
ICAgR19UWVBFX05PTkUsIDEsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0lOVCk7CisK
KyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMT0FEX0ZJTklTSEVEXSA9CisgICAgICAgIGdf
c2lnbmFsX25ldyAoImxvYWQtZmluaXNoZWQiLAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQ
RV9GUk9NX0NMQVNTICh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAgICAgICAgICAgICAgIChHU2ln
bmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNo
YWxfVk9JRF9fT0JKRUNULAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAor
ICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSk7CiAKICAgICAvKioK
ICAgICAgKiBXZWJLaXRXZWJWaWV3Ojp0aXRsZS1jaGFuZ2VkOgpAQCAtNTc0LDU1ICs2NzIsNjAg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0Ns
YXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICoKICAgICAgKiBXaGVuIGEgI1dlYktpdFdlYkZyYW1l
IGNoYW5nZXMgdGhlIGRvY3VtZW50IHRpdGxlIHRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQuCiAgICAg
ICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbVElUTEVfQ0hBTkdFRF0gPSBnX3NpZ25h
bF9uZXcoInRpdGxlLWNoYW5nZWQiLAotICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2Vi
Vmlld0NsYXNzKSwKLSAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNU
IHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgICAgIDAsCi0gICAgICAgICAgICBOVUxMLAot
ICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVD
VF9TVFJJTkcsCi0gICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKLSAgICAgICAgICAgIFdFQktJ
VF9UWVBFX1dFQl9GUkFNRSwKLSAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcpOwotCi0gICAgd2Vi
a2l0X3dlYl92aWV3X3NpZ25hbHNbSE9WRVJJTkdfT1ZFUl9MSU5LXSA9IGdfc2lnbmFsX25ldygi
aG92ZXJpbmctb3Zlci1saW5rIiwKLSAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZp
ZXdDbGFzcyksCi0gICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAgTlVMTCwKLSAg
ICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19TVFJJTkdf
U1RSSU5HLAotICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCi0gICAgICAgICAgICBHX1RZUEVf
U1RSSU5HLAotICAgICAgICAgICAgR19UWVBFX1NUUklORyk7Ci0KLSAgICB3ZWJraXRfd2ViX3Zp
ZXdfc2lnbmFsc1tTVEFUVVNfQkFSX1RFWFRfQ0hBTkdFRF0gPSBnX3NpZ25hbF9uZXcoInN0YXR1
cy1iYXItdGV4dC1jaGFuZ2VkIiwKLSAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZp
ZXdDbGFzcyksCi0gICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAgTlVMTCwKLSAg
ICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fU1RS
SU5HLAotICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCi0gICAgICAgICAgICBHX1RZUEVfU1RS
SU5HKTsKLQotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0lDT05EX0xPQURFRF0gPSBnX3Np
Z25hbF9uZXcoImljb24tbG9hZGVkIiwKLSAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdl
YlZpZXdDbGFzcyksCi0gICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFT
VCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgICAgICAwLAotICAgICAgICAgICAgTlVMTCwK
LSAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9f
Vk9JRCwKLSAgICAgICAgICAgIEdfVFlQRV9OT05FLCAwKTsKLQotICAgIHdlYmtpdF93ZWJfdmll
d19zaWduYWxzW1NFTEVDVElPTl9DSEFOR0VEXSA9IGdfc2lnbmFsX25ldygic2VsZWN0aW9uLWNo
YW5nZWQiLAotICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAg
ICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNU
SU9OKSwKLSAgICAgICAgICAgIDAsCi0gICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgTlVM
TCwKLSAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAotICAgICAgICAg
ICAgR19UWVBFX05PTkUsIDApOworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1RJVExFX0NI
QU5HRURdID0KKyAgICAgICAgZ19zaWduYWxfbmV3ICgidGl0bGUtY2hhbmdlZCIsCisgICAgICAg
ICAgICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKHdlYlZpZXdDbGFzcyksCisgICAgICAg
ICAgICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05B
TF9BQ1RJT04pLAorICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAg
ICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAg
ICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9TVFJJTkcsCisgICAgICAgICAgICAgICAg
ICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVf
V0VCX0ZSQU1FLAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcpOworCisgICAg
d2Via2l0X3dlYl92aWV3X3NpZ25hbHNbSE9WRVJJTkdfT1ZFUl9MSU5LXSA9CisgICAgICAgIGdf
c2lnbmFsX25ldyAoImhvdmVyaW5nLW92ZXItbGluayIsCisgICAgICAgICAgICAgICAgICAgICAg
R19UWVBFX0ZST01fQ0xBU1MgKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAgICAgICAgICAg
KEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAg
ICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAg
ICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9tYXJz
aGFsX1ZPSURfX1NUUklOR19TVFJJTkcsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX05P
TkUsIDIsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX1NUUklORywKKyAgICAgICAgICAg
ICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsKKworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxz
W1NUQVRVU19CQVJfVEVYVF9DSEFOR0VEXSA9CisgICAgICAgIGdfc2lnbmFsX25ldyAoInN0YXR1
cy1iYXItdGV4dC1jaGFuZ2VkIiwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyAod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAoR1NpZ25hbEZsYWdz
KShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAgICAg
ICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAg
ICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURf
X1NUUklORywKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAg
ICAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsKKworICAgIHdlYmtpdF93ZWJfdmlld19zaWdu
YWxzW0lDT05EX0xPQURFRF0gPQorICAgICAgICBnX3NpZ25hbF9uZXcgKCJpY29uLWxvYWRlZCIs
CisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKHdlYlZpZXdDbGFzcyks
CisgICAgICAgICAgICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1Qg
fCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAorICAgICAgICAgICAg
ICAgICAgICAgIEdfVFlQRV9OT05FLCAwKTsKKworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxz
W1NFTEVDVElPTl9DSEFOR0VEXSA9CisgICAgICAgIGdfc2lnbmFsX25ldyAoInNlbGVjdGlvbi1j
aGFuZ2VkIiwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyAod2ViVmll
d0NsYXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9S
VU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAgICAgICAgICAgMCwKKyAg
ICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisg
ICAgICAgICAgICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCisgICAg
ICAgICAgICAgICAgICAgICAgR19UWVBFX05PTkUsIDApOwogCiAgICAgLyoqCiAgICAgICogV2Vi
S2l0V2ViVmlldzo6Y29uc29sZS1tZXNzYWdlOgpAQCAtNjM0LDE1ICs3MzcsMTggQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJW
aWV3Q2xhc3MpCiAgICAgICoKICAgICAgKiBBIEphdmFTY3JpcHQgY29uc29sZSBtZXNzYWdlIHdh
cyBjcmVhdGVkLgogICAgICAqLwotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0NPTlNPTEVf
TUVTU0FHRV0gPSBnX3NpZ25hbF9uZXcoImNvbnNvbGUtbWVzc2FnZSIsCi0gICAgICAgICAgICBH
X1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAgICAgKEdTaWduYWxGbGFn
cykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAotICAgICAgICAgICAgR19T
VFJVQ1RfT0ZGU0VUKFdlYktpdFdlYlZpZXdDbGFzcywgY29uc29sZV9tZXNzYWdlKSwKLSAgICAg
ICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKLSAgICAgICAgICAgIE5V
TEwsCi0gICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19TVFJJTkdfSU5UX1NUUklO
RywKLSAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAzLAotICAgICAgICAgICAgR19UWVBFX1NU
UklORywgR19UWVBFX0lOVCwgR19UWVBFX1NUUklORyk7CisgICAgd2Via2l0X3dlYl92aWV3X3Np
Z25hbHNbQ09OU09MRV9NRVNTQUdFXSA9CisgICAgICAgIGdfc2lnbmFsX25ldyAoImNvbnNvbGUt
bWVzc2FnZSIsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKHdlYlZp
ZXdDbGFzcyksCisgICAgICAgICAgICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxf
UlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgICAgICAgICAgIEdfU1RS
VUNUX09GRlNFVCAoV2ViS2l0V2ViVmlld0NsYXNzLCBjb25zb2xlX21lc3NhZ2UpLAorICAgICAg
ICAgICAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAg
ICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9tYXJz
aGFsX0JPT0xFQU5fX1NUUklOR19JTlRfU1RSSU5HLAorICAgICAgICAgICAgICAgICAgICAgIEdf
VFlQRV9CT09MRUFOLCAzLAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcsCisg
ICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0lOVCwKKyAgICAgICAgICAgICAgICAgICAgICBH
X1RZUEVfU1RSSU5HKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6OnNjcmlwdC1h
bGVydDoKQEAgLTY1MywxNSArNzU5LDE3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19j
bGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqCiAgICAg
ICogQSBKYXZhU2NyaXB0IGFsZXJ0IGRpYWxvZyB3YXMgY3JlYXRlZC4KICAgICAgKi8KLSAgICB3
ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tTQ1JJUFRfQUxFUlRdID0gZ19zaWduYWxfbmV3KCJzY3Jp
cHQtYWxlcnQiLAotICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwK
LSAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxf
QUNUSU9OKSwKLSAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3Ms
IHNjcmlwdF9hbGVydCksCi0gICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hh
bmRsZWQsCi0gICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9P
TEVBTl9fT0JKRUNUX1NUUklORywKLSAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAyLAotICAg
ICAgICAgICAgR19UWVBFX09CSkVDVCwgR19UWVBFX1NUUklORyk7CisgICAgd2Via2l0X3dlYl92
aWV3X3NpZ25hbHNbU0NSSVBUX0FMRVJUXSA9CisgICAgICAgIGdfc2lnbmFsX25ldyAoInNjcmlw
dC1hbGVydCIsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKHdlYlZp
ZXdDbGFzcyksCisgICAgICAgICAgICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxf
UlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgICAgICAgICAgIEdfU1RS
VUNUX09GRlNFVCAoV2ViS2l0V2ViVmlld0NsYXNzLCBzY3JpcHRfYWxlcnQpLAorICAgICAgICAg
ICAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAgICAgICAg
ICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFs
X0JPT0xFQU5fX09CSkVDVF9TVFJJTkcsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0JP
T0xFQU4sIDIsCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX09CSkVDVCwKKyAgICAgICAg
ICAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsKIAogICAgIC8qKgogICAgICAqIFdlYktpdFdl
YlZpZXc6OnNjcmlwdC1jb25maXJtOgpAQCAtNjczLDE1ICs3ODEsMTggQEAgc3RhdGljIHZvaWQg
d2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xh
c3MpCiAgICAgICoKICAgICAgKiBBIEphdmFTY3JpcHQgY29uZmlybSBkaWFsb2cgd2FzIGNyZWF0
ZWQsIHByb3ZpZGluZyBZZXMgYW5kIE5vIGJ1dHRvbnMuCiAgICAgICovCi0gICAgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbU0NSSVBUX0NPTkZJUk1dID0gZ19zaWduYWxfbmV3KCJzY3JpcHQtY29u
ZmlybSIsCi0gICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAg
ICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJ
T04pLAotICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFdlYlZpZXdDbGFzcywgc2Ny
aXB0X2NvbmZpcm0pLAotICAgICAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5k
bGVkLAotICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xF
QU5fX09CSkVDVF9TVFJJTkdfQk9PTEVBTiwKLSAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAz
LAotICAgICAgICAgICAgR19UWVBFX09CSkVDVCwgR19UWVBFX1NUUklORywgR19UWVBFX0JPT0xF
QU4pOworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1NDUklQVF9DT05GSVJNXSA9CisgICAg
ICAgIGdfc2lnbmFsX25ldyAoInNjcmlwdC1jb25maXJtIiwKKyAgICAgICAgICAgICAgICAgICAg
ICBHX1RZUEVfRlJPTV9DTEFTUyAod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisg
ICAgICAgICAgICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUIChXZWJLaXRXZWJWaWV3Q2xhc3Ms
IHNjcmlwdF9jb25maXJtKSwKKyAgICAgICAgICAgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVs
YXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfU1RSSU5HX0JPT0xF
QU4sCisgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDMsCisgICAgICAgICAg
ICAgICAgICAgICAgR19UWVBFX09CSkVDVCwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVf
U1RSSU5HLAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOKTsKIAogICAgIC8q
KgogICAgICAqIFdlYktpdFdlYlZpZXc6OnNjcmlwdC1wcm9tcHQ6CkBAIC02OTQsMTUgKzgwNSwx
OSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3
Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgKgogICAgICAqIEEgSmF2YVNjcmlwdCBwcm9tcHQg
ZGlhbG9nIHdhcyBjcmVhdGVkLCBwcm92aWRpbmcgYW4gZW50cnkgdG8gaW5wdXQgdGV4dC4KICAg
ICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tTQ1JJUFRfUFJPTVBUXSA9IGdfc2ln
bmFsX25ldygic2NyaXB0LXByb21wdCIsCi0gICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3
ZWJWaWV3Q2xhc3MpLAotICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xB
U1QgfCBHX1NJR05BTF9BQ1RJT04pLAotICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktp
dFdlYlZpZXdDbGFzcywgc2NyaXB0X3Byb21wdCksCi0gICAgICAgICAgICBnX3NpZ25hbF9hY2N1
bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0gICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgd2Vi
a2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX1NUUklOR19TVFJJTkdfU1RSSU5HLAotICAgICAg
ICAgICAgR19UWVBFX0JPT0xFQU4sIDQsCi0gICAgICAgICAgICBHX1RZUEVfT0JKRUNULCBHX1RZ
UEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfUE9JTlRFUik7CisgICAgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbU0NSSVBUX1BST01QVF0gPQorICAgICAgICBnX3NpZ25hbF9uZXcgKCJz
Y3JpcHQtcHJvbXB0IiwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyAo
d2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJ
R05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAgICAgICAgICAg
R19TVFJVQ1RfT0ZGU0VUIChXZWJLaXRXZWJWaWV3Q2xhc3MsIHNjcmlwdF9wcm9tcHQpLAorICAg
ICAgICAgICAgICAgICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKKyAg
ICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF9t
YXJzaGFsX0JPT0xFQU5fX09CSkVDVF9TVFJJTkdfU1RSSU5HX1NUUklORywKKyAgICAgICAgICAg
ICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgNCwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZ
UEVfT0JKRUNULAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcsCisgICAgICAg
ICAgICAgICAgICAgICAgR19UWVBFX1NUUklORywKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZ
UEVfUE9JTlRFUik7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3OjpzZWxlY3QtYWxs
OgpAQCAtNzEzLDEzICs4MjgsMTQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNz
X2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICoKICAgICAgKiBU
aGUgZGVmYXVsdCBiaW5kaW5ncyBmb3IgdGhpcyBzaWduYWwgaXMgQ3RybC1hLgogICAgICAqLwot
ICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1NFTEVDVF9BTExdID0gZ19zaWduYWxfbmV3KCJz
ZWxlY3QtYWxsIiwKLSAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyks
Ci0gICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFM
X0FDVElPTiksCi0gICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNz
LCBzZWxlY3RfYWxsKSwKLSAgICAgICAgICAgIE5VTEwsIE5VTEwsCi0gICAgICAgICAgICBnX2Nj
bG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKLSAgICAgICAgICAgIEdfVFlQRV9OT05FLCAwKTsK
KyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tTRUxFQ1RfQUxMXSA9CisgICAgICAgIGdfc2ln
bmFsX25ldyAoInNlbGVjdC1hbGwiLAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9GUk9N
X0NMQVNTICh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAgICAgICAgICAgICAgIChHU2lnbmFsRmxh
Z3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgICAg
ICAgICAgICBHX1NUUlVDVF9PRkZTRVQgKFdlYktpdFdlYlZpZXdDbGFzcywgc2VsZWN0X2FsbCks
CisgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg
ICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKKyAgICAgICAgICAgICAgICAgICAgICBH
X1RZUEVfTk9ORSwgMCk7CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3OjpjdXQtY2xp
cGJvYXJkOgpAQCAtNzMwLDEzICs4NDYsMTQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICoKICAg
ICAgKiBUaGUgZGVmYXVsdCBiaW5kaW5ncyBmb3IgdGhpcyBzaWduYWwgYXJlIEN0cmwteCBhbmQg
U2hpZnQtRGVsZXRlLgogICAgICAqLwotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0NVVF9D
TElQQk9BUkRdID0gZ19zaWduYWxfbmV3KCJjdXQtY2xpcGJvYXJkIiwKLSAgICAgICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgICAgICAoR1NpZ25hbEZsYWdz
KShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgICAgICBHX1NU
UlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBjdXRfY2xpcGJvYXJkKSwKLSAgICAgICAg
ICAgIE5VTEwsIE5VTEwsCi0gICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9J
RCwKLSAgICAgICAgICAgIEdfVFlQRV9OT05FLCAwKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2ln
bmFsc1tDVVRfQ0xJUEJPQVJEXSA9CisgICAgICAgIGdfc2lnbmFsX25ldyAoImN1dC1jbGlwYm9h
cmQiLAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTICh3ZWJWaWV3Q2xh
c3MpLAorICAgICAgICAgICAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9M
QVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICBHX1NUUlVDVF9P
RkZTRVQgKFdlYktpdFdlYlZpZXdDbGFzcywgY3V0X2NsaXBib2FyZCksCisgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBnX2NjbG9zdXJlX21h
cnNoYWxfVk9JRF9fVk9JRCwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMCk7
CiAKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpjb3B5LWNsaXBib2FyZDoKQEAgLTc0
NywxMyArODY0LDE0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdl
YktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAqCiAgICAgICogVGhlIGRlZmF1
bHQgYmluZGluZ3MgZm9yIHRoaXMgc2lnbmFsIGFyZSBDdHJsLWMgYW5kIEN0cmwtSW5zZXJ0Lgog
ICAgICAqLwotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0NPUFlfQ0xJUEJPQVJEXSA9IGdf
c2lnbmFsX25ldygiY29weS1jbGlwYm9hcmQiLAotICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xB
U1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JV
Tl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVChX
ZWJLaXRXZWJWaWV3Q2xhc3MsIGNvcHlfY2xpcGJvYXJkKSwKLSAgICAgICAgICAgIE5VTEwsIE5V
TEwsCi0gICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKLSAgICAgICAg
ICAgIEdfVFlQRV9OT05FLCAwKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tDT1BZX0NM
SVBCT0FSRF0gPQorICAgICAgICBnX3NpZ25hbF9uZXcgKCJjb3B5LWNsaXBib2FyZCIsCisgICAg
ICAgICAgICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKHdlYlZpZXdDbGFzcyksCisgICAg
ICAgICAgICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9BQ1RJT04pLAorICAgICAgICAgICAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVCAoV2Vi
S2l0V2ViVmlld0NsYXNzLCBjb3B5X2NsaXBib2FyZCksCisgICAgICAgICAgICAgICAgICAgICAg
TlVMTCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9J
RF9fVk9JRCwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMCk7CiAKICAgICAv
KioKICAgICAgKiBXZWJLaXRXZWJWaWV3OjpwYXN0ZS1jbGlwYm9hcmQ6CkBAIC03NjQsMTMgKzg4
MiwxNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJW
aWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgKgogICAgICAqIFRoZSBkZWZhdWx0IGJpbmRp
bmdzIGZvciB0aGlzIHNpZ25hbCBhcmUgQ3RybC12IGFuZCBTaGlmdC1JbnNlcnQuCiAgICAgICov
Ci0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUEFTVEVfQ0xJUEJPQVJEXSA9IGdfc2lnbmFs
X25ldygicGFzdGUtY2xpcGJvYXJkIiwKLSAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdl
YlZpZXdDbGFzcyksCi0gICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFT
VCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0
V2ViVmlld0NsYXNzLCBwYXN0ZV9jbGlwYm9hcmQpLAotICAgICAgICAgICAgTlVMTCwgTlVMTCwK
LSAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAotICAgICAgICAgICAg
R19UWVBFX05PTkUsIDApOworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1BBU1RFX0NMSVBC
T0FSRF0gPQorICAgICAgICBnX3NpZ25hbF9uZXcgKCJwYXN0ZS1jbGlwYm9hcmQiLAorICAgICAg
ICAgICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTICh3ZWJWaWV3Q2xhc3MpLAorICAgICAg
ICAgICAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdO
QUxfQUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQgKFdlYktp
dFdlYlZpZXdDbGFzcywgcGFzdGVfY2xpcGJvYXJkKSwKKyAgICAgICAgICAgICAgICAgICAgICBO
VUxMLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lE
X19WT0lELAorICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAwKTsKIAogICAgIC8q
CiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwpAQCAtNzg4LDEyICs5
MDcsMTIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2Vi
Vmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgd2ViVmlld0NsYXNzLT5jb3B5X2NsaXBib2Fy
ZCA9IHdlYmtpdF93ZWJfdmlld19yZWFsX2NvcHlfY2xpcGJvYXJkOwogICAgIHdlYlZpZXdDbGFz
cy0+cGFzdGVfY2xpcGJvYXJkID0gd2Via2l0X3dlYl92aWV3X3JlYWxfcGFzdGVfY2xpcGJvYXJk
OwogCi0gICAgR19PQkpFQ1RfQ0xBU1Mod2ViVmlld0NsYXNzKS0+ZmluYWxpemUgPSB3ZWJraXRf
d2ViX3ZpZXdfZmluYWxpemU7CisgICAgR19PQkpFQ1RfQ0xBU1MgKHdlYlZpZXdDbGFzcyktPmZp
bmFsaXplID0gd2Via2l0X3dlYl92aWV3X2ZpbmFsaXplOwogCi0gICAgR09iamVjdENsYXNzKiBv
YmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYlZpZXdDbGFzcyk7CisgICAgR09iamVjdENs
YXNzICpvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTICh3ZWJWaWV3Q2xhc3MpOwogICAgIG9i
amVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Byb3BlcnR5Owog
Ci0gICAgR3RrV2lkZ2V0Q2xhc3MqIHdpZGdldENsYXNzID0gR1RLX1dJREdFVF9DTEFTUyh3ZWJW
aWV3Q2xhc3MpOworICAgIEd0a1dpZGdldENsYXNzICp3aWRnZXRDbGFzcyA9IEdUS19XSURHRVRf
Q0xBU1MgKHdlYlZpZXdDbGFzcyk7CiAgICAgd2lkZ2V0Q2xhc3MtPnJlYWxpemUgPSB3ZWJraXRf
d2ViX3ZpZXdfcmVhbGl6ZTsKICAgICB3aWRnZXRDbGFzcy0+ZXhwb3NlX2V2ZW50ID0gd2Via2l0
X3dlYl92aWV3X2V4cG9zZV9ldmVudDsKICAgICB3aWRnZXRDbGFzcy0+a2V5X3ByZXNzX2V2ZW50
ID0gd2Via2l0X3dlYl92aWV3X2tleV9wcmVzc19ldmVudDsKQEAgLTgwNCw3ICs5MjMsNyBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3Mq
IHdlYlZpZXdDbGFzcykKICAgICB3aWRnZXRDbGFzcy0+c2Nyb2xsX2V2ZW50ID0gd2Via2l0X3dl
Yl92aWV3X3Njcm9sbF9ldmVudDsKICAgICB3aWRnZXRDbGFzcy0+c2l6ZV9hbGxvY2F0ZSA9IHdl
YmtpdF93ZWJfdmlld19zaXplX2FsbG9jYXRlOwogCi0gICAgR3RrQ29udGFpbmVyQ2xhc3MqIGNv
bnRhaW5lckNsYXNzID0gR1RLX0NPTlRBSU5FUl9DTEFTUyh3ZWJWaWV3Q2xhc3MpOworICAgIEd0
a0NvbnRhaW5lckNsYXNzICpjb250YWluZXJDbGFzcyA9IEdUS19DT05UQUlORVJfQ0xBU1MgKHdl
YlZpZXdDbGFzcyk7CiAgICAgY29udGFpbmVyQ2xhc3MtPmFkZCA9IHdlYmtpdF93ZWJfdmlld19j
b250YWluZXJfYWRkOwogICAgIGNvbnRhaW5lckNsYXNzLT5yZW1vdmUgPSB3ZWJraXRfd2ViX3Zp
ZXdfY29udGFpbmVyX3JlbW92ZTsKICAgICBjb250YWluZXJDbGFzcy0+Zm9yYWxsID0gd2Via2l0
X3dlYl92aWV3X2NvbnRhaW5lcl9mb3JhbGw7CkBAIC04MTMsNzkgKzkzMiw4MyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZp
ZXdDbGFzcykKICAgICAgKiBtYWtlIHVzIHNjcm9sbGFibGUgKGUuZy4gYWRkYWJsZSB0byBhIEd0
a1Njcm9sbGVkV2luZG93KQogICAgICAqLwogICAgIHdlYlZpZXdDbGFzcy0+c2V0X3Njcm9sbF9h
ZGp1c3RtZW50cyA9IHdlYmtpdF93ZWJfdmlld19zZXRfc2Nyb2xsX2FkanVzdG1lbnRzOwotICAg
IEdUS19XSURHRVRfQ0xBU1Mod2ViVmlld0NsYXNzKS0+c2V0X3Njcm9sbF9hZGp1c3RtZW50c19z
aWduYWwgPSBnX3NpZ25hbF9uZXcoInNldC1zY3JvbGwtYWRqdXN0bWVudHMiLAotICAgICAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgICAgIChHU2lnbmFs
RmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgICAg
IEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIHNldF9zY3JvbGxfYWRqdXN0bWVu
dHMpLAotICAgICAgICAgICAgTlVMTCwgTlVMTCwKLSAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFs
X1ZPSURfX09CSkVDVF9PQkpFQ1QsCi0gICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKLSAgICAg
ICAgICAgIEdUS19UWVBFX0FESlVTVE1FTlQsIEdUS19UWVBFX0FESlVTVE1FTlQpOworCisgICAg
R1RLX1dJREdFVF9DTEFTUyAod2ViVmlld0NsYXNzKS0+c2V0X3Njcm9sbF9hZGp1c3RtZW50c19z
aWduYWwgPQorICAgICAgICBnX3NpZ25hbF9uZXcgKCJzZXQtc2Nyb2xsLWFkanVzdG1lbnRzIiwK
KyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyAod2ViVmlld0NsYXNzKSwK
KyAgICAgICAgICAgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VU
IChXZWJLaXRXZWJWaWV3Q2xhc3MsIHNldF9zY3JvbGxfYWRqdXN0bWVudHMpLAorICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgd2Via2l0X21h
cnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVCwKKyAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVf
Tk9ORSwgMiwKKyAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9BREpVU1RNRU5ULAorICAg
ICAgICAgICAgICAgICAgICAgIEdUS19UWVBFX0FESlVTVE1FTlQpOwogCiAgICAgLyoKICAgICAg
KiBLZXkgYmluZGluZ3MKICAgICAgKi8KIAotICAgIGJpbmRpbmdfc2V0ID0gZ3RrX2JpbmRpbmdf
c2V0X2J5X2NsYXNzKHdlYlZpZXdDbGFzcyk7CisgICAgYmluZGluZ19zZXQgPSBndGtfYmluZGlu
Z19zZXRfYnlfY2xhc3MgKHdlYlZpZXdDbGFzcyk7CiAKLSAgICBndGtfYmluZGluZ19lbnRyeV9h
ZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfYSwgR0RLX0NPTlRST0xfTUFTSywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxlY3RfYWxsIiwgMCk7CisgICAgZ3RrX2JpbmRp
bmdfZW50cnlfYWRkX3NpZ25hbCAoYmluZGluZ19zZXQsIEdES19hLCBHREtfQ09OVFJPTF9NQVNL
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWxlY3QtYWxsIiwgMCk7CiAK
ICAgICAvKiBDdXQvY29weS9wYXN0ZSAqLwogCi0gICAgZ3RrX2JpbmRpbmdfZW50cnlfYWRkX3Np
Z25hbChiaW5kaW5nX3NldCwgR0RLX3gsIEdES19DT05UUk9MX01BU0ssCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY3V0X2NsaXBib2FyZCIsIDApOwotICAgIGd0a19iaW5kaW5n
X2VudHJ5X2FkZF9zaWduYWwoYmluZGluZ19zZXQsIEdES19jLCBHREtfQ09OVFJPTF9NQVNLLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvcHlfY2xpcGJvYXJkIiwgMCk7Ci0g
ICAgZ3RrX2JpbmRpbmdfZW50cnlfYWRkX3NpZ25hbChiaW5kaW5nX3NldCwgR0RLX3YsIEdES19D
T05UUk9MX01BU0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFzdGVfY2xp
cGJvYXJkIiwgMCk7CisgICAgZ3RrX2JpbmRpbmdfZW50cnlfYWRkX3NpZ25hbCAoYmluZGluZ19z
ZXQsIEdES194LCBHREtfQ09OVFJPTF9NQVNLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJjdXQtY2xpcGJvYXJkIiwgMCk7CisgICAgZ3RrX2JpbmRpbmdfZW50cnlfYWRkX3Np
Z25hbCAoYmluZGluZ19zZXQsIEdES19jLCBHREtfQ09OVFJPTF9NQVNLLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjb3B5LWNsaXBib2FyZCIsIDApOworICAgIGd0a19iaW5k
aW5nX2VudHJ5X2FkZF9zaWduYWwgKGJpbmRpbmdfc2V0LCBHREtfdiwgR0RLX0NPTlRST0xfTUFT
SywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFzdGUtY2xpcGJvYXJkIiwg
MCk7CiAKLSAgICBndGtfYmluZGluZ19lbnRyeV9hZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtf
RGVsZXRlLCBHREtfU0hJRlRfTUFTSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjdXRfY2xpcGJvYXJkIiwgMCk7Ci0gICAgZ3RrX2JpbmRpbmdfZW50cnlfYWRkX3NpZ25hbChi
aW5kaW5nX3NldCwgR0RLX0luc2VydCwgR0RLX0NPTlRST0xfTUFTSywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJjb3B5X2NsaXBib2FyZCIsIDApOwotICAgIGd0a19iaW5kaW5n
X2VudHJ5X2FkZF9zaWduYWwoYmluZGluZ19zZXQsIEdES19JbnNlcnQsIEdES19TSElGVF9NQVNL
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhc3RlX2NsaXBib2FyZCIsIDAp
OworICAgIGd0a19iaW5kaW5nX2VudHJ5X2FkZF9zaWduYWwgKGJpbmRpbmdfc2V0LCBHREtfRGVs
ZXRlLCBHREtfU0hJRlRfTUFTSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y3V0LWNsaXBib2FyZCIsIDApOworICAgIGd0a19iaW5kaW5nX2VudHJ5X2FkZF9zaWduYWwgKGJp
bmRpbmdfc2V0LCBHREtfSW5zZXJ0LCBHREtfQ09OVFJPTF9NQVNLLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJjb3B5LWNsaXBib2FyZCIsIDApOworICAgIGd0a19iaW5kaW5n
X2VudHJ5X2FkZF9zaWduYWwgKGJpbmRpbmdfc2V0LCBHREtfSW5zZXJ0LCBHREtfU0hJRlRfTUFT
SywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFzdGUtY2xpcGJvYXJkIiwg
MCk7CiAKICAgICAvKiBQcm9wZXJ0aWVzICovCiAgICAgR1BhcmFtRmxhZ3MgZmxhZ3MgPSAoR1Bh
cmFtRmxhZ3MpKEdfUEFSQU1fUkVBREFCTEV8R19QQVJBTV9TVEFUSUNfTkFNRXxHX1BBUkFNX1NU
QVRJQ19OSUNLfEdfUEFSQU1fU1RBVElDX0JMVVJCKTsKLSAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX0NPUFlfVEFSR0VUX0xJU1QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQoImNvcHktdGFy
Z2V0LWxpc3QiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJUYXJnZXQgbGlzdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyBXZWIgdmll
dyBzdXBwb3J0cyBmb3IgY29weWluZyB0byB0aGUgY2xpcGJvYXJkIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9UQVJHRVRf
TElTVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmbGFncykpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmpl
Y3RDbGFzcywgUFJPUF9QQVNURV9UQVJHRVRfTElTVCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib3hlZCgicGFzdGUtdGFyZ2V0LWxpc3QiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUYXJn
ZXQgbGlzdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyBXZWIgdmlldyBzdXBwb3J0cyBmb3Ig
cGFzdGluZyB0byB0aGUgY2xpcGJvYXJkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfVFlQRV9UQVJHRVRfTElTVCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwor
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKG9iamVjdENsYXNzLCBQUk9QX0NP
UFlfVEFSR0VUX0xJU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19w
YXJhbV9zcGVjX2JveGVkICgiY29weS10YXJnZXQtbGlzdCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFyZ2V0IGxpc3QiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRo
ZSBsaXN0IG9mIHRhcmdldHMgdGhpcyBXZWIgdmlldyBzdXBwb3J0cyBmb3IgY29weWluZyB0byB0
aGUgY2xpcGJvYXJkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdUS19UWVBFX1RBUkdFVF9MSVNULAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKKworICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKG9iamVjdENsYXNzLCBQUk9QX1BBU1RFX1RB
UkdFVF9MSVNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1f
c3BlY19ib3hlZCgicGFzdGUtdGFyZ2V0LWxpc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFyZ2V0IGxpc3QiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGxpc3Qg
b2YgdGFyZ2V0cyB0aGlzIFdlYiB2aWV3IHN1cHBvcnRzIGZvciBwYXN0aW5nIHRvIHRoZSBjbGlw
Ym9hcmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHVEtfVFlQRV9UQVJHRVRfTElTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKIH0KIAotc3RhdGljIHZvaWQg
d2Via2l0X3dlYl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3N0YXRpYyB2b2lk
Cit3ZWJraXRfd2ViX3ZpZXdfaW5pdCAoV2ViS2l0V2ViVmlldyAqd2ViVmlldykKIHsKLSAgICBX
ZWJLaXRXZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BS
SVZBVEUoV0VCS0lUX1dFQl9WSUVXKHdlYlZpZXcpKTsKLSAgICB3ZWJWaWV3RGF0YS0+aW1Db250
ZXh0ID0gZ3RrX2ltX211bHRpY29udGV4dF9uZXcoKTsKLSAgICB3ZWJWaWV3RGF0YS0+Y29yZVBh
Z2UgPSBuZXcgUGFnZShuZXcgV2ViS2l0OjpDaHJvbWVDbGllbnQod2ViVmlldyksIG5ldyBXZWJL
aXQ6OkNvbnRleHRNZW51Q2xpZW50LCBuZXcgV2ViS2l0OjpFZGl0b3JDbGllbnQod2ViVmlldyks
IG5ldyBXZWJLaXQ6OkRyYWdDbGllbnQsIG5ldyBXZWJLaXQ6Okluc3BlY3RvckNsaWVudCk7Ci0K
LSAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJWaWV3RGF0YS0+Y29yZVBhZ2UtPnNldHRpbmdz
KCk7Ci0gICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh0cnVlKTsKLSAg
ICBzZXR0aW5ncy0+c2V0TWluaW11bUZvbnRTaXplKDUpOwotICAgIHNldHRpbmdzLT5zZXRET01Q
YXN0ZUFsbG93ZWQodHJ1ZSk7Ci0gICAgc2V0dGluZ3MtPnNldE1pbmltdW1Mb2dpY2FsRm9udFNp
emUoNSk7Ci0gICAgc2V0dGluZ3MtPnNldFNob3VsZFByaW50QmFja2dyb3VuZHModHJ1ZSk7Ci0g
ICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRFbmFibGVkKHRydWUpOwotICAgIHNldHRpbmdzLT5z
ZXREZWZhdWx0Rml4ZWRGb250U2l6ZSgxNCk7Ci0gICAgc2V0dGluZ3MtPnNldERlZmF1bHRGb250
U2l6ZSgxNCk7Ci0gICAgc2V0dGluZ3MtPnNldFNlcmlmRm9udEZhbWlseSgiVGltZXMgTmV3IFJv
bWFuIik7Ci0gICAgc2V0dGluZ3MtPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoIkFyaWFsIik7Ci0g
ICAgc2V0dGluZ3MtPnNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciBOZXciKTsKLSAgICBzZXR0
aW5ncy0+c2V0U3RhbmRhcmRGb250RmFtaWx5KCJBcmlhbCIpOwotCi0gICAgR1RLX1dJREdFVF9T
RVRfRkxBR1Mod2ViVmlldywgR1RLX0NBTl9GT0NVUyk7Ci0gICAgd2ViVmlld0RhdGEtPm1haW5G
cmFtZSA9IFdFQktJVF9XRUJfRlJBTUUod2Via2l0X3dlYl9mcmFtZV9uZXcod2ViVmlldykpOwor
ICAgIFdlYktpdFdlYlZpZXdQcml2YXRlICp3ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJfVklFV19H
RVRfUFJJVkFURSAoV0VCS0lUX1dFQl9WSUVXICh3ZWJWaWV3KSk7CisgICAgd2ViVmlld0RhdGEt
PmltQ29udGV4dCA9IGd0a19pbV9tdWx0aWNvbnRleHRfbmV3ICgpOworICAgIHdlYlZpZXdEYXRh
LT5jb3JlUGFnZSA9IG5ldyBQYWdlIChuZXcgV2ViS2l0OjpDaHJvbWVDbGllbnQgKHdlYlZpZXcp
LCBuZXcgV2ViS2l0OjpDb250ZXh0TWVudUNsaWVudCwgbmV3IFdlYktpdDo6RWRpdG9yQ2xpZW50
ICh3ZWJWaWV3KSwgbmV3IFdlYktpdDo6RHJhZ0NsaWVudCwgbmV3IFdlYktpdDo6SW5zcGVjdG9y
Q2xpZW50KTsKKworICAgIFNldHRpbmdzICpzZXR0aW5ncyA9IHdlYlZpZXdEYXRhLT5jb3JlUGFn
ZS0+c2V0dGluZ3MgKCk7CisgICAgc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eSAodHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldE1pbmltdW1Gb250U2l6ZSAoNSk7CisgICAgc2V0
dGluZ3MtPnNldERPTVBhc3RlQWxsb3dlZCAodHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldE1pbmlt
dW1Mb2dpY2FsRm9udFNpemUgKDUpOworICAgIHNldHRpbmdzLT5zZXRTaG91bGRQcmludEJhY2tn
cm91bmRzICh0cnVlKTsKKyAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQgKHRydWUp
OworICAgIHNldHRpbmdzLT5zZXREZWZhdWx0Rml4ZWRGb250U2l6ZSAoMTQpOworICAgIHNldHRp
bmdzLT5zZXREZWZhdWx0Rm9udFNpemUgKDE0KTsKKyAgICBzZXR0aW5ncy0+c2V0U2VyaWZGb250
RmFtaWx5ICgiVGltZXMgTmV3IFJvbWFuIik7CisgICAgc2V0dGluZ3MtPnNldFNhbnNTZXJpZkZv
bnRGYW1pbHkgKCJBcmlhbCIpOworICAgIHNldHRpbmdzLT5zZXRGaXhlZEZvbnRGYW1pbHkgKCJD
b3VyaWVyIE5ldyIpOworICAgIHNldHRpbmdzLT5zZXRTdGFuZGFyZEZvbnRGYW1pbHkgKCJBcmlh
bCIpOworCisgICAgR1RLX1dJREdFVF9TRVRfRkxBR1MgKHdlYlZpZXcsIEdUS19DQU5fRk9DVVMp
OworICAgIHdlYlZpZXdEYXRhLT5tYWluRnJhbWUgPSBXRUJLSVRfV0VCX0ZSQU1FICh3ZWJraXRf
d2ViX2ZyYW1lX25ldyAod2ViVmlldykpOwogICAgIHdlYlZpZXdEYXRhLT5lZGl0YWJsZSA9IGZh
bHNlOwogCiAjaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwxMCwwKQpAQCAtOTA1LDEwOSArMTAyOCwx
MzAgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKIAogfQogCi1HdGtXaWRnZXQqIHdlYmtpdF93ZWJfdmlld19uZXcodm9pZCkKK0d0a1dp
ZGdldCAqCit3ZWJraXRfd2ViX3ZpZXdfbmV3ICh2b2lkKQogewotICAgIFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9W
SUVXLCBOVUxMKSk7CisgICAgV2ViS2l0V2ViVmlldyAqd2ViVmlldyA9IFdFQktJVF9XRUJfVklF
VyAoZ19vYmplY3RfbmV3IChXRUJLSVRfVFlQRV9XRUJfVklFVywgTlVMTCkpOwogCi0gICAgcmV0
dXJuIEdUS19XSURHRVQod2ViVmlldyk7CisgICAgcmV0dXJuIEdUS19XSURHRVQgKHdlYlZpZXcp
OwogfQogCi12b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfc2V0dGluZ3MoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzKQordm9pZAord2Via2l0X3dlYl92aWV3
X3NldF9zZXR0aW5ncyAoV2ViS2l0V2ViVmlldyAgKndlYlZpZXcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRTZXR0aW5ncyAqc2V0dGluZ3MpCiB7Ci0gICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdfcmV0dXJuX2lmX2Zh
aWwoc2V0dGluZ3MpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAo
d2ViVmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHNldHRpbmdzKTsKIAotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgbm90SW1wbGVtZW50ZWQgKCk7CiB9CiAKLVdlYktpdFNldHRpbmdz
KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCitX
ZWJLaXRTZXR0aW5ncyAqCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzIChXZWJLaXRXZWJW
aWV3ICp3ZWJWaWV3KQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJf
VklFVyh3ZWJWaWV3KSwgTlVMTCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFdFQktJVF9J
U19XRUJfVklFVyAod2ViVmlldyksIE5VTEwpOworCisgICAgbm90SW1wbGVtZW50ZWQgKCk7CiAK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBOVUxMOwogfQogCi12b2lkIHdlYmtp
dF93ZWJfdmlld19nb19iYWNrd2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQordm9pZAord2Vi
a2l0X3dlYl92aWV3X2dvX2JhY2t3YXJkIChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3KQogewotICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKyAgICBnX3Jl
dHVybl9pZl9mYWlsIChXRUJLSVRfSVNfV0VCX1ZJRVcgKHdlYlZpZXcpKTsKIAotICAgIEZyYW1l
KiBmcmFtZSA9IGNvcmUod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHdlYlZpZXcpKTsK
LSAgICBmcmFtZS0+bG9hZGVyKCktPmdvQmFja09yRm9yd2FyZCgtMSk7CisgICAgRnJhbWUgKmZy
YW1lID0gY29yZSAod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lICh3ZWJWaWV3KSk7Cisg
ICAgZnJhbWUtPmxvYWRlciAoKS0+Z29CYWNrT3JGb3J3YXJkICgtMSk7CiB9CiAKLXZvaWQgd2Vi
a2l0X3dlYl92aWV3X2dvX2ZvcndhcmQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3ZvaWQKK3dl
YmtpdF93ZWJfdmlld19nb19mb3J3YXJkIChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3KQogewotICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKyAgICBnX3Jl
dHVybl9pZl9mYWlsIChXRUJLSVRfSVNfV0VCX1ZJRVcgKHdlYlZpZXcpKTsKIAotICAgIEZyYW1l
KiBmcmFtZSA9IGNvcmUod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHdlYlZpZXcpKTsK
LSAgICBmcmFtZS0+bG9hZGVyKCktPmdvQmFja09yRm9yd2FyZCgxKTsKKyAgICBGcmFtZSAqZnJh
bWUgPSBjb3JlICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUgKHdlYlZpZXcpKTsKKyAg
ICBmcmFtZS0+bG9hZGVyICgpLT5nb0JhY2tPckZvcndhcmQgKDEpOwogfQogCi1nYm9vbGVhbiB3
ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2JhY2t3YXJkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCitn
Ym9vbGVhbgord2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrd2FyZCAoV2ViS2l0V2ViVmlldyAq
d2ViVmlldykKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVco
d2ViVmlldyksIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoV0VCS0lUX0lTX1dF
Ql9WSUVXICh3ZWJWaWV3KSwgRkFMU0UpOwogCi0gICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUod2ViVmlldykpOwotICAgIHJldHVybiBmcmFtZS0+
bG9hZGVyKCktPmNhbkdvQmFja09yRm9yd2FyZCgtMSk7CisgICAgRnJhbWUgKmZyYW1lID0gY29y
ZSAod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lICh3ZWJWaWV3KSk7CisgICAgcmV0dXJu
IGZyYW1lLT5sb2FkZXIgKCktPmNhbkdvQmFja09yRm9yd2FyZCAoLTEpOwogfQogCi1nYm9vbGVh
biB3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQoV2ViS2l0V2ViVmlldyogd2ViVmlldykK
K2dib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQgKFdlYktpdFdlYlZpZXcg
KndlYlZpZXcpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpLCBGQUxTRSk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFdFQktJVF9JU19X
RUJfVklFVyAod2ViVmlldyksIEZBTFNFKTsKIAotICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUod2Vi
a2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHdlYlZpZXcpKTsKLSAgICByZXR1cm4gZnJhbWUt
PmxvYWRlcigpLT5jYW5Hb0JhY2tPckZvcndhcmQoMSk7CisgICAgRnJhbWUgKmZyYW1lID0gY29y
ZSAod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lICh3ZWJWaWV3KSk7CisgICAgcmV0dXJu
IGZyYW1lLT5sb2FkZXIgKCktPmNhbkdvQmFja09yRm9yd2FyZCAoMSk7CiB9CiAKLXZvaWQgd2Vi
a2l0X3dlYl92aWV3X29wZW4oV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIHVy
aSkKK3ZvaWQKK3dlYmtpdF93ZWJfdmlld19vcGVuIChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LAor
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgKnVyaSkKIHsKLSAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbCh1cmkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAod2Vi
VmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHVyaSAhPSBOVUxMKTsKIAotICAgIEZyYW1l
KiBmcmFtZSA9IGNvcmUod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHdlYlZpZXcpKTsK
LSAgICBEZXByZWNhdGVkU3RyaW5nIHN0cmluZyA9IERlcHJlY2F0ZWRTdHJpbmc6OmZyb21VdGY4
KHVyaSk7Ci0gICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKFJlc291cmNlUmVxdWVzdChLVVJMKHN0
cmluZykpKTsKKyAgICBGcmFtZSAqZnJhbWUgPSBjb3JlICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21h
aW5fZnJhbWUgKHdlYlZpZXcpKTsKKyAgICBEZXByZWNhdGVkU3RyaW5nIHN0cmluZyA9IERlcHJl
Y2F0ZWRTdHJpbmc6OmZyb21VdGY4ICh1cmkpOworICAgIGZyYW1lLT5sb2FkZXIgKCktPmxvYWQg
KFJlc291cmNlUmVxdWVzdCAoS1VSTCAoc3RyaW5nKSkpOwogfQogCi12b2lkIHdlYmtpdF93ZWJf
dmlld19yZWxvYWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3ZvaWQKK3dlYmtpdF93ZWJfdmll
d19yZWxvYWQgKFdlYktpdFdlYlZpZXcgKndlYlZpZXcpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKFdF
QktJVF9JU19XRUJfVklFVyAod2ViVmlldykpOwogCi0gICAgRnJhbWUqIGZyYW1lID0gY29yZSh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUod2ViVmlldykpOwotICAgIGZyYW1lLT5sb2Fk
ZXIoKS0+cmVsb2FkKCk7CisgICAgRnJhbWUgKmZyYW1lID0gY29yZSAod2Via2l0X3dlYl92aWV3
X2dldF9tYWluX2ZyYW1lICh3ZWJWaWV3KSk7CisgICAgZnJhbWUtPmxvYWRlciAoKS0+cmVsb2Fk
ICgpOwogfQogCi12b2lkIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyhXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogY29udGVudCwgY29uc3QgZ2NoYXIqIGNvbnRlbnRNaW1l
VHlwZSwgY29uc3QgZ2NoYXIqIGNvbnRlbnRFbmNvZGluZywgY29uc3QgZ2NoYXIqIGJhc2VVcmkp
Cit2b2lkCit3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcgKFdlYktpdFdlYlZpZXcgKndlYlZp
ZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgKmNvbnRlbnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgKmNvbnRlbnRNaW1l
VHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAqY29udGVu
dEVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICpi
YXNlVXJpKQogewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZp
ZXcpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKGNvbnRlbnQpOworICAgIGdfcmV0dXJuX2lmX2Zh
aWwgKFdFQktJVF9JU19XRUJfVklFVyAod2ViVmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwg
KGNvbnRlbnQgIT0gTlVMTCk7CiAKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYmtpdF93ZWJf
dmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3KSk7CisgICAgRnJhbWUgKmZyYW1lID0gY29yZSAo
d2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lICh3ZWJWaWV3KSk7CiAKLSAgICBLVVJMIHVy
bChiYXNlVXJpID8gRGVwcmVjYXRlZFN0cmluZzo6ZnJvbVV0ZjgoYmFzZVVyaSkgOiAiIik7Ci0g
ICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVkQnVmZmVyID0gbmV3IFNoYXJlZEJ1ZmZlcihz
dHJkdXAoY29udGVudCksIHN0cmxlbihjb250ZW50KSk7Ci0gICAgU3Vic3RpdHV0ZURhdGEgc3Vi
c3RpdHV0ZURhdGEoc2hhcmVkQnVmZmVyLnJlbGVhc2UoKSwgY29udGVudE1pbWVUeXBlID8gU3Ry
aW5nKGNvbnRlbnRNaW1lVHlwZSkgOiAidGV4dC9odG1sIiwgY29udGVudEVuY29kaW5nID8gU3Ry
aW5nKGNvbnRlbnRFbmNvZGluZykgOiAiVVRGLTgiLCBLVVJMKCJhYm91dDpibGFuayIpLCB1cmwp
OworICAgIEtVUkwgdXJsIChiYXNlVXJpID8gRGVwcmVjYXRlZFN0cmluZzo6ZnJvbVV0ZjggKGJh
c2VVcmkpIDogIiIpOworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZEJ1ZmZlciA9IG5l
dyBTaGFyZWRCdWZmZXIgKHN0cmR1cCAoY29udGVudCksIHN0cmxlbiAoY29udGVudCkpOworICAg
IFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhIChzaGFyZWRCdWZmZXIucmVsZWFzZSAoKSwg
Y29udGVudE1pbWVUeXBlID8gU3RyaW5nIChjb250ZW50TWltZVR5cGUpIDogInRleHQvaHRtbCIs
IGNvbnRlbnRFbmNvZGluZyA/IFN0cmluZyAoY29udGVudEVuY29kaW5nKSA6ICJVVEYtOCIsIEtV
UkwgKCJhYm91dDpibGFuayIpLCB1cmwpOwogCi0gICAgZnJhbWUtPmxvYWRlcigpLT5sb2FkKFJl
c291cmNlUmVxdWVzdCh1cmwpLCBzdWJzdGl0dXRlRGF0YSk7CisgICAgZnJhbWUtPmxvYWRlciAo
KS0+bG9hZCAoUmVzb3VyY2VSZXF1ZXN0ICh1cmwpLCBzdWJzdGl0dXRlRGF0YSk7CiB9CiAKLXZv
aWQgd2Via2l0X3dlYl92aWV3X2xvYWRfaHRtbF9zdHJpbmcoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgY29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNvbnN0IGdjaGFyKiBiYXNlVXJpKQordm9pZAord2Vi
a2l0X3dlYl92aWV3X2xvYWRfaHRtbF9zdHJpbmcgKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAqY29udGVudCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICpiYXNlVXJs
KQogewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsK
LSAgICBnX3JldHVybl9pZl9mYWlsKGNvbnRlbnQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKFdF
QktJVF9JU19XRUJfVklFVyAod2ViVmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGNvbnRl
bnQpOwogCi0gICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGNvbnRlbnQs
IE5VTEwsIE5VTEwsIGJhc2VVcmkpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyAo
d2ViVmlldywgY29udGVudCwgTlVMTCwgTlVMTCwgYmFzZVVybCk7CiB9CiAKLXZvaWQgd2Via2l0
X3dlYl92aWV3X3N0b3BfbG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQordm9pZAord2Vi
a2l0X3dlYl92aWV3X3N0b3BfbG9hZGluZyAoV2ViS2l0V2ViVmlldyAqd2ViVmlldykKIHsKLSAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisgICAgZ19y
ZXR1cm5faWZfZmFpbCAoV0VCS0lUX0lTX1dFQl9WSUVXICh3ZWJWaWV3KSk7CiAKLSAgICBGcmFt
ZSogZnJhbWUgPSBjb3JlKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3KSk7
CisgICAgRnJhbWUgKmZyYW1lID0gY29yZSAod2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1l
ICh3ZWJWaWV3KSk7CiAKLSAgICBpZiAoRnJhbWVMb2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2Fk
ZXIoKSkKLSAgICAgICAgbG9hZGVyLT5zdG9wQWxsTG9hZGVycygpOworICAgIGlmIChGcmFtZUxv
YWRlciAqbG9hZGVyID0gZnJhbWUtPmxvYWRlciAoKSkKKyAgICAgICAgbG9hZGVyLT5zdG9wQWxs
TG9hZGVycyAoKTsKIH0KIAogLyoqCkBAIC0xMDIyLDE2ICsxMTY2LDIyIEBAIHZvaWQgd2Via2l0
X3dlYl92aWV3X3N0b3BfbG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICoKICAqIFJl
dHVybiB2YWx1ZTogJVRSVUUgb24gc3VjY2VzcyBvciAlRkFMU0Ugb24gZmFpbHVyZQogICovCi1n
Ym9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jvb2xlYW4gY2FzZVNlbnNpdGl2ZSwgZ2Jvb2xlYW4g
Zm9yd2FyZCwgZ2Jvb2xlYW4gc2hvdWxkV3JhcCkKK2dib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdf
c2VhcmNoX3RleHQgKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyICAgKnN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2Jvb2xlYW4gICAgICAgY2FzZVNlbnNpdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2Jvb2xlYW4gICAgICAgZm9yd2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2Jvb2xlYW4gICAgICAgc2hvdWxkV3JhcCkKIHsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChzdHJpbmcsIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoV0VC
S0lUX0lTX1dFQl9WSUVXICh3ZWJWaWV3KSwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsIChzdHJpbmcsIEZBTFNFKTsKIAogICAgIFRleHRDYXNlU2Vuc2l0aXZpdHkgY2FzZVNlbnNp
dGl2aXR5ID0gY2FzZVNlbnNpdGl2ZSA/IFRleHRDYXNlU2Vuc2l0aXZlIDogVGV4dENhc2VJbnNl
bnNpdGl2ZTsKICAgICBGaW5kRGlyZWN0aW9uIGRpcmVjdGlvbiA9IGZvcndhcmQgPyBGaW5kRGly
ZWN0aW9uRm9yd2FyZCA6IEZpbmREaXJlY3Rpb25CYWNrd2FyZDsKIAotICAgIFdlYktpdFdlYlZp
ZXdQcml2YXRlKiB3ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJW
aWV3KTsKLSAgICByZXR1cm4gd2ViVmlld0RhdGEtPmNvcmVQYWdlLT5maW5kU3RyaW5nKFN0cmlu
Zzo6ZnJvbVVURjgoc3RyaW5nKSwgY2FzZVNlbnNpdGl2aXR5LCBkaXJlY3Rpb24sIHNob3VsZFdy
YXApOworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlICp3ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJf
VklFV19HRVRfUFJJVkFURSAod2ViVmlldyk7CisKKyAgICByZXR1cm4gd2ViVmlld0RhdGEtPmNv
cmVQYWdlLT5maW5kU3RyaW5nIChTdHJpbmc6OmZyb21VVEY4IChzdHJpbmcpLCBjYXNlU2Vuc2l0
aXZpdHksIGRpcmVjdGlvbiwgc2hvdWxkV3JhcCk7CiB9CiAKIC8qKgpAQCAtMTA0NSwxNSArMTE5
NSwyMCBAQCBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQoV2ViS2l0V2ViVmll
dyogd2ViVmlldywgY29uc3QgZ2NoYXIqIHN0cmluZwogICoKICAqIFJldHVybiB2YWx1ZTogdGhl
IG51bWJlciBvZiBzdHJpbmdzIGhpZ2hsaWdodGVkCiAgKi8KLWd1aW50IHdlYmtpdF93ZWJfdmll
d19tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciog
c3RyaW5nLCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBndWludCBsaW1pdCkKK2d1aW50Cit3ZWJr
aXRfd2ViX3ZpZXdfbWFya190ZXh0X21hdGNoZXMgKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgKnN0cmluZywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgY2FzZVNl
bnNpdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAg
ICAgbGltaXQpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChzdHJpbmcsIDApOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChXRUJLSVRfSVNfV0VCX1ZJRVcgKHdlYlZpZXcpLCAwKTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc3RyaW5nLCAwKTsKIAogICAgIFRleHRDYXNlU2Vu
c2l0aXZpdHkgY2FzZVNlbnNpdGl2aXR5ID0gY2FzZVNlbnNpdGl2ZSA/IFRleHRDYXNlU2Vuc2l0
aXZlIDogVGV4dENhc2VJbnNlbnNpdGl2ZTsKIAotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3
ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKLSAgICBy
ZXR1cm4gd2ViVmlld0RhdGEtPmNvcmVQYWdlLT5tYXJrQWxsTWF0Y2hlc0ZvclRleHQoU3RyaW5n
Ojpmcm9tVVRGOChzdHJpbmcpLCBjYXNlU2Vuc2l0aXZpdHksIGZhbHNlLCBsaW1pdCk7CisgICAg
V2ViS2l0V2ViVmlld1ByaXZhdGUgKndlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9Q
UklWQVRFICh3ZWJWaWV3KTsKKworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+Y29yZVBhZ2UtPm1h
cmtBbGxNYXRjaGVzRm9yVGV4dCAoU3RyaW5nOjpmcm9tVVRGOCAoc3RyaW5nKSwgY2FzZVNlbnNp
dGl2aXR5LCBmYWxzZSwgbGltaXQpOwogfQogCiAvKioKQEAgLTEwNjMsMTMgKzEyMTgsMTYgQEAg
Z3VpbnQgd2Via2l0X3dlYl92aWV3X21hcmtfdGV4dF9tYXRjaGVzKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIGNvbnN0IGdjaGFyKiBzdHIKICAqCiAgKiBIaWdobGlnaHRzIHRleHQgbWF0Y2hlcyBw
cmV2aW91c2x5IG1hcmtlZCBieSB3ZWJraXRfd2ViX3ZpZXdfbWFya190ZXh0X21hdGNoZXMuCiAg
Ki8KLXZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9oaWdobGlnaHRfdGV4dF9tYXRjaGVzKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIHNob3VsZEhpZ2hsaWdodCkKK3ZvaWQKK3dlYmtp
dF93ZWJfdmlld19zZXRfaGlnaGxpZ2h0X3RleHRfbWF0Y2hlcyAoV2ViS2l0V2ViVmlldyAqd2Vi
VmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xl
YW4gICAgICAgc2hvdWxkSGlnaGxpZ2h0KQogewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsIChXRUJLSVRfSVNf
V0VCX1ZJRVcgKHdlYlZpZXcpKTsKKworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlICp3ZWJWaWV3
RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSAod2ViVmlldyk7CisgICAgV2ViS2l0
V2ViRnJhbWVQcml2YXRlICpmcmFtZURhdGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9QUklWQVRF
ICh3ZWJWaWV3RGF0YS0+bWFpbkZyYW1lKTsKIAotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3
ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKLSAgICBX
ZWJLaXRXZWJGcmFtZVByaXZhdGUqIGZyYW1lRGF0YSA9IFdFQktJVF9XRUJfRlJBTUVfR0VUX1BS
SVZBVEUod2ViVmlld0RhdGEtPm1haW5GcmFtZSk7Ci0gICAgZnJhbWVEYXRhLT5mcmFtZS0+c2V0
TWFya2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZChzaG91bGRIaWdobGlnaHQpOworICAgIGZy
YW1lRGF0YS0+ZnJhbWUtPnNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQgKHNob3Vs
ZEhpZ2hsaWdodCk7CiB9CiAKIC8qKgpAQCAtMTA3OCwzMCArMTIzNiwzNyBAQCB2b2lkIHdlYmtp
dF93ZWJfdmlld19zZXRfaGlnaGxpZ2h0X3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBnYm9vbGVhbgogICoKICAqIFJlbW92ZXMgaGlnaGxpZ2h0aW5nIHByZXZpb3VzbHkgc2V0
IGJ5IHdlYmtpdF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcy4KICAqLwotdm9pZCB3ZWJraXRf
d2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQordm9p
ZAord2Via2l0X3dlYl92aWV3X3VubWFya190ZXh0X21hdGNoZXMgKFdlYktpdFdlYlZpZXcgKndl
YlZpZXcpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmll
dykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAod2ViVmlldykp
OwogCi0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9W
SUVXX0dFVF9QUklWQVRFKHdlYlZpZXcpOwotICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+Y29yZVBh
Z2UtPnVubWFya0FsbFRleHRNYXRjaGVzKCk7CisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUgKndl
YlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFICh3ZWJWaWV3KTsKKworICAg
IHJldHVybiB3ZWJWaWV3RGF0YS0+Y29yZVBhZ2UtPnVubWFya0FsbFRleHRNYXRjaGVzICgpOwog
fQogCi1XZWJLaXRXZWJGcmFtZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcpCitXZWJLaXRXZWJGcmFtZSAqCit3ZWJraXRfd2ViX3ZpZXdfZ2V0
X21haW5fZnJhbWUgKFdlYktpdFdlYlZpZXcgKndlYlZpZXcpCiB7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBOVUxMKTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCAoV0VCS0lUX0lTX1dFQl9WSUVXICh3ZWJWaWV3KSwgTlVMTCk7CisKKyAg
ICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSAqd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VU
X1BSSVZBVEUgKHdlYlZpZXcpOwogCi0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdE
YXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFKHdlYlZpZXcpOwogICAgIHJldHVybiB3
ZWJWaWV3RGF0YS0+bWFpbkZyYW1lOwogfQogCi12b2lkIHdlYmtpdF93ZWJfdmlld19leGVjdXRl
X3NjcmlwdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogc2NyaXB0KQordm9p
ZAord2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfc2NyaXB0IChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICpzY3JpcHQp
CiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwot
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2NyaXB0KTsKKyAgICBnX3JldHVybl9pZl9mYWlsIChXRUJL
SVRfSVNfV0VCX1ZJRVcgKHdlYlZpZXcpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsIChzY3JpcHQp
OwogCi0gICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJh
bWUod2ViVmlldykpOwotICAgIGlmIChGcmFtZUxvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRl
cigpKQotICAgICAgICBsb2FkZXItPmV4ZWN1dGVTY3JpcHQoU3RyaW5nOjpmcm9tVVRGOChzY3Jp
cHQpLCB0cnVlKTsKKyAgICBGcmFtZSAqZnJhbWUgPSBjb3JlICh3ZWJraXRfd2ViX3ZpZXdfZ2V0
X21haW5fZnJhbWUgKHdlYlZpZXcpKTsKKworICAgIGlmIChGcmFtZUxvYWRlciAqbG9hZGVyID0g
ZnJhbWUtPmxvYWRlciAoKSkKKyAgICAgICAgbG9hZGVyLT5leGVjdXRlU2NyaXB0IChTdHJpbmc6
OmZyb21VVEY4IChzY3JpcHQpLCB0cnVlKTsKIH0KIAogLyoqCkBAIC0xMTEyLDEyICsxMjc3LDE0
IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfc2NyaXB0KFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIGNvbnN0IGdjaGFyKiBzY3JpcHQpCiAgKgogICogUmV0dXJuIHZhbHVlOiAlVFJVRSBp
ZiBhIHNlbGVjdGlvbiBjYW4gYmUgY3V0LCAlRkFMU0UgaWYgbm90CiAgKi8KLWdib29sZWFuIHdl
YmtpdF93ZWJfdmlld19jYW5fY3V0X2NsaXBib2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQor
Z2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19jYW5fY3V0X2NsaXBib2FyZCAoV2ViS2l0V2ViVmll
dyAqd2ViVmlldykKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJ
RVcod2ViVmlldyksIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoV0VCS0lUX0lT
X1dFQl9WSUVXICh3ZWJWaWV3KSwgRkFMU0UpOworCisgICAgRnJhbWUgKmZyYW1lID0gY29yZSAo
d2ViVmlldyktPmZvY3VzQ29udHJvbGxlciAoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lICgpOwogCi0g
ICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3Vz
ZWRPck1haW5GcmFtZSgpOwotICAgIHJldHVybiBmcmFtZS0+ZWRpdG9yKCktPmNhbkN1dCgpIHx8
IGZyYW1lLT5lZGl0b3IoKS0+Y2FuREhUTUxDdXQoKTsKKyAgICByZXR1cm4gZnJhbWUtPmVkaXRv
ciAoKS0+Y2FuQ3V0ICgpIHx8IGZyYW1lLT5lZGl0b3IgKCktPmNhbkRIVE1MQ3V0ICgpOwogfQog
CiAvKioKQEAgLTExMjgsMTIgKzEyOTUsMTQgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2Nh
bl9jdXRfY2xpcGJvYXJkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgKgogICogUmV0dXJuIHZh
bHVlOiAlVFJVRSBpZiBhIHNlbGVjdGlvbiBjYW4gYmUgY29waWVkLCAlRkFMU0UgaWYgbm90CiAg
Ki8KLWdib29sZWFuIHdlYmtpdF93ZWJfdmlld19jYW5fY29weV9jbGlwYm9hcmQoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKK2dib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfY2FuX2NvcHlfY2xpcGJv
YXJkIChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3KQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsIChXRUJLSVRfSVNfV0VCX1ZJRVcgKHdlYlZpZXcpLCBGQUxTRSk7CisKKyAgICBGcmFt
ZSAqZnJhbWUgPSBjb3JlICh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyICgpLT5mb2N1c2VkT3JN
YWluRnJhbWUgKCk7CiAKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5mb2N1c0Nv
bnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgcmV0dXJuIGZyYW1lLT5lZGl0
b3IoKS0+Y2FuQ29weSgpIHx8IGZyYW1lLT5lZGl0b3IoKS0+Y2FuREhUTUxDb3B5KCk7CisgICAg
cmV0dXJuIGZyYW1lLT5lZGl0b3IgKCktPmNhbkNvcHkgKCkgfHwgZnJhbWUtPmVkaXRvciAoKS0+
Y2FuREhUTUxDb3B5ICgpOwogfQogCiAvKioKQEAgLTExNDQsMTIgKzEzMTMsMTQgQEAgZ2Jvb2xl
YW4gd2Via2l0X3dlYl92aWV3X2Nhbl9jb3B5X2NsaXBib2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQogICoKICAqIFJldHVybiB2YWx1ZTogJVRSVUUgaWYgYSBzZWxlY3Rpb24gY2FuIGJlIHBh
c3RlZCwgJUZBTFNFIGlmIG5vdAogICovCi1nYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfY2FuX3Bh
c3RlX2NsaXBib2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQorZ2Jvb2xlYW4KK3dlYmtpdF93
ZWJfdmlld19jYW5fcGFzdGVfY2xpcGJvYXJkIChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3KQogewot
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFM
U0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChXRUJLSVRfSVNfV0VCX1ZJRVcgKHdlYlZp
ZXcpLCBGQUxTRSk7CiAKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5mb2N1c0Nv
bnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgcmV0dXJuIGZyYW1lLT5lZGl0
b3IoKS0+Y2FuUGFzdGUoKSB8fCBmcmFtZS0+ZWRpdG9yKCktPmNhbkRIVE1MUGFzdGUoKTsKKyAg
ICBGcmFtZSAqZnJhbWUgPSBjb3JlICh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyICgpLT5mb2N1
c2VkT3JNYWluRnJhbWUgKCk7CisKKyAgICByZXR1cm4gZnJhbWUtPmVkaXRvciAoKS0+Y2FuUGFz
dGUgKCkgfHwgZnJhbWUtPmVkaXRvciAoKS0+Y2FuREhUTUxQYXN0ZSAoKTsKIH0KIAogLyoqCkBA
IC0xMTU4LDEyICsxMzI5LDEzIEBAIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19jYW5fcGFzdGVf
Y2xpcGJvYXJkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgKgogICogQ3V0cyB0aGUgY3VycmVu
dCBzZWxlY3Rpb24gaW5zaWRlIHRoZSBAd2ViX3ZpZXcgdG8gdGhlIGNsaXBib2FyZC4KICAqLwot
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfY3V0X2NsaXBib2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KQordm9pZAord2Via2l0X3dlYl92aWV3X2N1dF9jbGlwYm9hcmQgKFdlYktpdFdlYlZpZXcgKndl
YlZpZXcpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmll
dykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAod2ViVmlldykp
OwogCi0gICAgaWYgKHdlYmtpdF93ZWJfdmlld19jYW5fY3V0X2NsaXBib2FyZCh3ZWJWaWV3KSkK
LSAgICAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tD
VVRfQ0xJUEJPQVJEXSwgMCk7CisgICAgaWYgKHdlYmtpdF93ZWJfdmlld19jYW5fY3V0X2NsaXBi
b2FyZCAod2ViVmlldykpCisgICAgICAgIGdfc2lnbmFsX2VtaXQgKHdlYlZpZXcsIHdlYmtpdF93
ZWJfdmlld19zaWduYWxzW0NVVF9DTElQQk9BUkRdLCAwKTsKIH0KIAogLyoqCkBAIC0xMTcyLDEy
ICsxMzQ0LDEzIEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2N1dF9jbGlwYm9hcmQoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKICAqCiAgKiBDb3BpZXMgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGluc2lk
ZSB0aGUgQHdlYl92aWV3IHRvIHRoZSBjbGlwYm9hcmQuCiAgKi8KLXZvaWQgd2Via2l0X3dlYl92
aWV3X2NvcHlfY2xpcGJvYXJkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit2b2lkCit3ZWJraXRf
d2ViX3ZpZXdfY29weV9jbGlwYm9hcmQgKFdlYktpdFdlYlZpZXcgKndlYlZpZXcpCiB7Ci0gICAg
Z19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworICAgIGdfcmV0
dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAod2ViVmlldykpOwogCi0gICAgaWYgKHdl
YmtpdF93ZWJfdmlld19jYW5fY29weV9jbGlwYm9hcmQod2ViVmlldykpCi0gICAgICAgIGdfc2ln
bmFsX2VtaXQod2ViVmlldywgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbQ09QWV9DTElQQk9BUkRd
LCAwKTsKKyAgICBpZiAod2Via2l0X3dlYl92aWV3X2Nhbl9jb3B5X2NsaXBib2FyZCAod2ViVmll
dykpCisgICAgICAgIGdfc2lnbmFsX2VtaXQgKHdlYlZpZXcsIHdlYmtpdF93ZWJfdmlld19zaWdu
YWxzW0NPUFlfQ0xJUEJPQVJEXSwgMCk7CiB9CiAKIC8qKgpAQCAtMTE4NiwxMiArMTM1OSwxMyBA
QCB2b2lkIHdlYmtpdF93ZWJfdmlld19jb3B5X2NsaXBib2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQogICoKICAqIFBhc3RlcyB0aGUgY3VycmVudCBjb250ZW50cyBvZiB0aGUgY2xpcGJvYXJk
IHRvIHRoZSBAd2ViX3ZpZXcuCiAgKi8KLXZvaWQgd2Via2l0X3dlYl92aWV3X3Bhc3RlX2NsaXBi
b2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQordm9pZAord2Via2l0X3dlYl92aWV3X3Bhc3Rl
X2NsaXBib2FyZCAoV2ViS2l0V2ViVmlldyAqd2ViVmlldykKIHsKLSAgICBnX3JldHVybl9pZl9m
YWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbCAo
V0VCS0lUX0lTX1dFQl9WSUVXICh3ZWJWaWV3KSk7CiAKLSAgICBpZiAod2Via2l0X3dlYl92aWV3
X2Nhbl9wYXN0ZV9jbGlwYm9hcmQod2ViVmlldykpCi0gICAgICAgIGdfc2lnbmFsX2VtaXQod2Vi
Vmlldywgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUEFTVEVfQ0xJUEJPQVJEXSwgMCk7CisgICAg
aWYgKHdlYmtpdF93ZWJfdmlld19jYW5fcGFzdGVfY2xpcGJvYXJkICh3ZWJWaWV3KSkKKyAgICAg
ICAgZ19zaWduYWxfZW1pdCAod2ViVmlldywgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUEFTVEVf
Q0xJUEJPQVJEXSwgMCk7CiB9CiAKIC8qKgpAQCAtMTIwMCwxMiArMTM3NCwxNCBAQCB2b2lkIHdl
YmtpdF93ZWJfdmlld19wYXN0ZV9jbGlwYm9hcmQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAq
CiAgKiBEZWxldGVzIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBpbnNpZGUgdGhlIEB3ZWJfdmlldy4K
ICAqLwotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZGVsZXRlX3NlbGVjdGlvbihXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQordm9pZAord2Via2l0X3dlYl92aWV3X2RlbGV0ZV9zZWxlY3Rpb24gKFdlYktp
dFdlYlZpZXcgKndlYlZpZXcpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VC
X1ZJRVcod2ViVmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklF
VyAod2ViVmlldykpOworCisgICAgRnJhbWUgKmZyYW1lID0gY29yZSAod2ViVmlldyktPmZvY3Vz
Q29udHJvbGxlciAoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lICgpOwogCi0gICAgRnJhbWUqIGZyYW1l
ID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgp
OwotICAgIGZyYW1lLT5lZGl0b3IoKS0+cGVyZm9ybURlbGV0ZSgpOworICAgIGZyYW1lLT5lZGl0
b3IgKCktPnBlcmZvcm1EZWxldGUgKCk7CiB9CiAKIC8qKgpAQCAtMTIxNiwxMiArMTM5MiwxNCBA
QCB2b2lkIHdlYmtpdF93ZWJfdmlld19kZWxldGVfc2VsZWN0aW9uKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcpCiAgKgogICogUmV0dXJuIHZhbHVlOiAlVFJVRSBpZiB0aGVyZSBpcyBzZWxlY3RlZCB0
ZXh0LCAlRkFMU0UgaWYgbm90CiAgKi8KLWdib29sZWFuIHdlYmtpdF93ZWJfdmlld19oYXNfc2Vs
ZWN0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCitnYm9vbGVhbgord2Via2l0X3dlYl92aWV3
X2hhc19zZWxlY3Rpb24gKFdlYktpdFdlYlZpZXcgKndlYlZpZXcpCiB7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAod2ViVmlldyksIEZBTFNFKTsK
IAotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJfVklF
V19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKLSAgICByZXR1cm4gIXdlYlZpZXdEYXRhLT5jb3JlUGFn
ZS0+c2VsZWN0aW9uKCkuaXNOb25lKCk7CisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUgKndlYlZp
ZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFICh3ZWJWaWV3KTsKKworICAgIHJl
dHVybiAhd2ViVmlld0RhdGEtPmNvcmVQYWdlLT5zZWxlY3Rpb24gKCkuaXNOb25lICgpOwogfQog
CiAvKioKQEAgLTEyMzIsMTIgKzE0MTAsMTQgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2hh
c19zZWxlY3Rpb24oV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAqCiAgKiBSZXR1cm4gdmFsdWU6
IGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB3aXRoIHRoZSBzZWxlY3Rpb24gb3IgJU5VTEwKICAq
LwotZ2NoYXIqIHdlYmtpdF93ZWJfdmlld19nZXRfc2VsZWN0ZWRfdGV4dChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQorZ2NoYXIgKgord2Via2l0X3dlYl92aWV3X2dldF9zZWxlY3RlZF90ZXh0IChX
ZWJLaXRXZWJWaWV3ICp3ZWJWaWV3KQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFdF
QktJVF9JU19XRUJfVklFVyAod2ViVmlldyksIDApOworCisgICAgRnJhbWUgKmZyYW1lID0gY29y
ZSAod2ViVmlldyktPmZvY3VzQ29udHJvbGxlciAoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lICgpOwog
Ci0gICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCktPmZv
Y3VzZWRPck1haW5GcmFtZSgpOwotICAgIHJldHVybiBnX3N0cmR1cChmcmFtZS0+c2VsZWN0ZWRU
ZXh0KCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGdfc3RyZHVwIChmcmFtZS0+c2VsZWN0
ZWRUZXh0ICgpLnV0ZjggKCkuZGF0YSAoKSk7CiB9CiAKIC8qKgpAQCAtMTI2NSwxMiArMTQ0NSwx
MiBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19zZWxlY3RfYWxsKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCiAgKgogICogUmV0dXJuIHZhbHVlOiBhICNnYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBlZGl0
YWJsZSBzdGF0ZQogICovCi1nYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpCitnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2dldF9lZGl0
YWJsZSAoV2ViS2l0V2ViVmlldyAqd2ViVmlldykKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbCAoV0VCS0lUX0lTX1dFQl9WSUVXICh3ZWJWaWV3KSwgRkFMU0UpOwogCi0gICAgV2Vi
S2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklW
QVRFKHdlYlZpZXcpOwotICAgIEFTU0VSVCh3ZWJWaWV3RGF0YSk7CisgICAgV2ViS2l0V2ViVmll
d1ByaXZhdGUgKndlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFICh3ZWJW
aWV3KTsKIAogICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+ZWRpdGFibGU7CiB9CkBAIC0xMjkzLDE2
ICsxNDczLDE4IEBAIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19nZXRfZWRpdGFibGUoV2ViS2l0
V2ViVmlldyogd2ViVmlldykKICAqIGNvbnRlbnRzIG9mIGEgI1dlYktpdFdlYlZpZXcgZWRpdGFi
bGUgd2l0aG91dCBhbHRlcmluZyB0aGUgZG9jdW1lbnQgb3IgRE9NCiAgKiBzdHJ1Y3R1cmUuCiAg
Ki8KLXZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZShXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBnYm9vbGVhbiBmbGFnKQordm9pZAord2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZSAo
V2ViS2l0V2ViVmlldyAqd2ViVmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi
b29sZWFuICAgICAgIGZsYWcpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VC
X1ZJRVcod2ViVmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklF
VyAod2ViVmlldykpOworCiAgICAgZmxhZyA9IGZsYWcgIT0gRkFMU0U7CiAKLSAgICBXZWJLaXRX
ZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUo
d2ViVmlldyk7Ci0gICAgQVNTRVJUKHdlYlZpZXdEYXRhKTsKKyAgICBXZWJLaXRXZWJWaWV3UHJp
dmF0ZSAqd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUgKHdlYlZpZXcp
OwogCi0gICAgRnJhbWUqIG1haW5GcmFtZSA9IGNvcmUod2ViVmlld0RhdGEtPm1haW5GcmFtZSk7
Ci0gICAgZ19yZXR1cm5faWZfZmFpbChtYWluRnJhbWUpOworICAgIEZyYW1lICptYWluRnJhbWUg
PSBjb3JlICh3ZWJWaWV3RGF0YS0+bWFpbkZyYW1lKTsKKyAgICBnX3JldHVybl9pZl9mYWlsICht
YWluRnJhbWUpOwogCiAgICAgLy8gVE9ETzogV2hhdCBoYXBwZW5zIHdoZW4gdGhlIGZyYW1lIGlz
IHJlcGxhY2VkPwogICAgIGlmIChmbGFnID09IHdlYlZpZXdEYXRhLT5lZGl0YWJsZSkKQEAgLTEz
MTEsMTIgKzE0OTMsMTIgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIGZsYWcpCiAgICAgd2ViVmlld0RhdGEtPmVkaXRh
YmxlID0gZmxhZzsKIAogICAgIGlmIChmbGFnKSB7Ci0gICAgICAgIG1haW5GcmFtZS0+YXBwbHlF
ZGl0aW5nU3R5bGVUb0JvZHlFbGVtZW50KCk7CisgICAgICAgIG1haW5GcmFtZS0+YXBwbHlFZGl0
aW5nU3R5bGVUb0JvZHlFbGVtZW50ICgpOwogICAgICAgICAvLyBUT0RPOiBJZiB0aGUgV2ViS2l0
V2ViVmlldyBpcyBtYWRlIGVkaXRhYmxlIGFuZCB0aGUgc2VsZWN0aW9uIGlzIGVtcHR5LCBzZXQg
aXQgdG8gc29tZXRoaW5nLgogICAgICAgICAvL2lmICghd2Via2l0X3dlYl92aWV3X2dldF9zZWxl
Y3RlZF9kb21fcmFuZ2Uod2ViVmlldykpCiAgICAgICAgIC8vICAgIG1haW5GcmFtZS0+c2V0U2Vs
ZWN0aW9uRnJvbU5vbmUoKTsKICAgICB9IGVsc2UKLSAgICAgICAgbWFpbkZyYW1lLT5yZW1vdmVF
ZGl0aW5nU3R5bGVGcm9tQm9keUVsZW1lbnQoKTsKKyAgICAgICAgbWFpbkZyYW1lLT5yZW1vdmVF
ZGl0aW5nU3R5bGVGcm9tQm9keUVsZW1lbnQgKCk7CiB9CiAKIC8qKgpAQCAtMTMzMSwxMSArMTUx
MywxMyBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgZ2Jvb2xlYW4gZmxhZykKICAqCiAgKiBSZXR1cm4gdmFsdWU6IHRoZSAjR3RrVGFy
Z2V0TGlzdAogICoqLwotR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3Rh
cmdldF9saXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCitHdGtUYXJnZXRMaXN0ICoKK3dlYmtp
dF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdCAoV2ViS2l0V2ViVmlldyAqd2ViVmlldykK
IHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyks
IE5VTEwpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChXRUJLSVRfSVNfV0VCX1ZJRVcgKHdl
YlZpZXcpLCBOVUxMKTsKKworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlICp3ZWJWaWV3RGF0YSA9
IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSAod2ViVmlldyk7CiAKLSAgICBXZWJLaXRXZWJW
aWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2Vi
Vmlldyk7CiAgICAgcmV0dXJuIHdlYlZpZXdEYXRhLT5jb3B5X3RhcmdldF9saXN0OwogfQogCkBA
IC0xMzUxLDExICsxNTM1LDEzIEBAIEd0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRf
Y29weV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICoKICAqIFJldHVybiB2
YWx1ZTogdGhlICNHdGtUYXJnZXRMaXN0CiAgKiovCi1HdGtUYXJnZXRMaXN0KiB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3Bhc3RlX3RhcmdldF9saXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCitHdGtU
YXJnZXRMaXN0ICoKK3dlYmtpdF93ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QgKFdlYktp
dFdlYlZpZXcgKndlYlZpZXcpCiB7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lT
X1dFQl9WSUVXKHdlYlZpZXcpLCBOVUxMKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoV0VC
S0lUX0lTX1dFQl9WSUVXICh3ZWJWaWV3KSwgTlVMTCk7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJp
dmF0ZSAqd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUgKHdlYlZpZXcp
OwogCi0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9W
SUVXX0dFVF9QUklWQVRFKHdlYlZpZXcpOwogICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+cGFzdGVf
dGFyZ2V0X2xpc3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3
ZWJ2aWV3LmggYi9XZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5oCmluZGV4IDdkMTIw
NzcuLjRiMjkwYmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmgKKysrIGIvV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaApAQCAtNDgsMTEgKzQ4
LDExIEBAIHR5cGVkZWYgZW51bQogfSBXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbzsKIAogc3RydWN0
IF9XZWJLaXRXZWJWaWV3IHsKLSAgICBHdGtDb250YWluZXIgcGFyZW50OworICAgIEd0a0NvbnRh
aW5lciBwYXJlbnRfaW5zdGFjbmU7CiB9OwogCiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdDbGFzcyB7
Ci0gICAgR3RrQ29udGFpbmVyQ2xhc3MgcGFyZW50OworICAgIEd0a0NvbnRhaW5lckNsYXNzIHBh
cmVudF9jbGFzczsKIAogICAgIC8qCiAgICAgICogZGVmYXVsdCBoYW5kbGVyL3ZpcnR1YWwgbWV0
aG9kcwpAQCAtNjAsMTE5ICs2MCwxNTkgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3Q2xhc3Mgewog
ICAgICAqIHJlcXVpcmUgc29tZW9uZSBkb2luZyBhIGdfc2lnbmFsX3N0b3BfZW1pc3Npb25fYnlf
bmFtZQogICAgICAqIFdlYlVJRGVsZWdhdGUgaGFzIG5vdGhpbmcgZm9yIGNyZWF0ZV9mcmFtZSwg
V2ViUG9saWN5RGVsZWdhdGUgYXMgd2VsbC4uLgogICAgICAqLwotICAgIFdlYktpdFdlYlZpZXcq
ICAoKmNyZWF0ZV93ZWJfdmlldykgIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7CisgICAgV2Vi
S2l0V2ViVmlldyAqCisgICAgICAgICAgICAgKCogY3JlYXRlX3dlYl92aWV3KSAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAKICAgICAvKgogICAgICAqIFRPRE86IEZJ
WE1FOiBDcmVhdGUgc29tZXRoaW5nIGxpa2UgV2ViUG9saWN5RGVjaXNpb25MaXN0ZW5lcl9Qcm90
b2NvbCBpbnN0ZWFkCiAgICAgICovCi0gICAgV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlICgqbmF2
aWdhdGlvbl9yZXF1ZXN0ZWQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0V2ViRnJh
bWUqIGZyYW1lLCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCk7Ci0KLSAgICB2b2lkICgq
d2luZG93X29iamVjdF9jbGVhcmVkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIFdlYktpdFdl
YkZyYW1lKiBmcmFtZSwgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHdp
bmRvd19vYmplY3QpOwotICAgIGdjaGFyKiAgICgqY2hvb3NlX2ZpbGUpIChXZWJLaXRXZWJWaWV3
KiB3ZWJfdmlldywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogb2xkX2ZpbGUp
OwotICAgIGdib29sZWFuICgqc2NyaXB0X2FsZXJ0KSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcs
IFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGFsZXJ0X21lc3NhZ2UpOwotICAg
IGdib29sZWFuICgqc2NyaXB0X2NvbmZpcm0pIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogY29uZmlybV9tZXNzYWdlLCBnYm9vbGVh
biogZGlkX2NvbmZpcm0pOwotICAgIGdib29sZWFuICgqc2NyaXB0X3Byb21wdCkgKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBtZXNz
YWdlLCBjb25zdCBnY2hhciogZGVmYXVsdF92YWx1ZSwgZ2NoYXIqKiB2YWx1ZSk7Ci0gICAgZ2Jv
b2xlYW4gKCpjb25zb2xlX21lc3NhZ2UpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3Qg
Z2NoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lX251bWJlciwgY29uc3QgZ2NoYXIqIHNv
dXJjZV9pZCk7Ci0gICAgdm9pZCAoKnNlbGVjdF9hbGwpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmll
dyk7Ci0gICAgdm9pZCAoKmN1dF9jbGlwYm9hcmQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7
Ci0gICAgdm9pZCAoKmNvcHlfY2xpcGJvYXJkKSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOwot
ICAgIHZvaWQgKCpwYXN0ZV9jbGlwYm9hcmQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7Cisg
ICAgV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlCisgICAgICAgICAgICAgKCogbmF2aWdhdGlvbl9y
ZXF1ZXN0ZWQpICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXROZXR3b3Jr
UmVxdWVzdCAqcmVxdWVzdCk7CisKKyAgICB2b2lkICAgICAoKiB3aW5kb3dfb2JqZWN0X2NsZWFy
ZWQpICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlZiAg
ICBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09i
amVjdFJlZiAgICAgICAgICAgd2luZG93X29iamVjdCk7CisgICAgZ2NoYXIqICAgKCogY2hvb3Nl
X2ZpbGUpICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViRnJhbWUgICAgICAg
KmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciAgICAgICAgICAqb2xkX2ZpbGUpOworICAgIGdib29sZWFuICgqIHNjcmlwdF9hbGVydCkg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAg
ICAgICAgKmFsZXJ0X21lc3NhZ2UpOworICAgIGdib29sZWFuICgqIHNjcmlwdF9jb25maXJtKSAg
ICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAg
ICAgKmNvbmZpcm1fbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgKmRpZF9jb25maXJtKTsKKyAgICBnYm9vbGVhbiAo
KiBzY3JpcHRfcHJvbXB0KSAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJGcmFt
ZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdjaGFyICAgICAgICAgICptZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqZGVmYXVsdF92YWx1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAgICAgICAg
ICAqKnZhbHVlKTsKKyAgICBnYm9vbGVhbiAoKiBjb25zb2xlX21lc3NhZ2UpICAgICAgICAoV2Vi
S2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqbWVzc2FnZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgIGxpbmVf
bnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciAgICAgICAgICAqc291cmNlX2lkKTsKKyAgICB2b2lkICAgICAoKiBzZWxlY3RfYWxsKSAg
ICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKKyAgICB2b2lkICAg
ICAoKiBjdXRfY2xpcGJvYXJkKSAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92
aWV3KTsKKyAgICB2b2lkICAgICAoKiBjb3B5X2NsaXBib2FyZCkgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgKndlYl92aWV3KTsKKyAgICB2b2lkICAgICAoKiBwYXN0ZV9jbGlwYm9hcmQp
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKIAogICAgIC8qCiAgICAg
ICogaW50ZXJuYWwKICAgICAgKi8KLSAgICB2b2lkICAgKCpzZXRfc2Nyb2xsX2FkanVzdG1lbnRz
KSAoV2ViS2l0V2ViVmlldyosIEd0a0FkanVzdG1lbnQqLCBHdGtBZGp1c3RtZW50Kik7CisgICAg
dm9pZCAgICAgKCogc2V0X3Njcm9sbF9hZGp1c3RtZW50cykgKFdlYktpdFdlYlZpZXcgICAgICAg
ICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Rr
QWRqdXN0bWVudCAgICAgICAgKmhhZGosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEd0a0FkanVzdG1lbnQgICAgICAgICp2YWRqKTsKIH07CiAKIFdFQktJVF9BUEkg
R1R5cGUKLXdlYmtpdF93ZWJfdmlld19nZXRfdHlwZSAodm9pZCk7Cit3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3R5cGUgICAgICAgICAgICAgICAgICAgKHZvaWQpOwogCi1XRUJLSVRfQVBJIEd0a1dpZGdl
dCoKLXdlYmtpdF93ZWJfdmlld19uZXcgKHZvaWQpOworV0VCS0lUX0FQSSBHdGtXaWRnZXQgKgor
d2Via2l0X3dlYl92aWV3X25ldyAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKIAogV0VC
S0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrd2FyZCAoV2ViS2l0
V2ViVmlldyogd2ViX3ZpZXcpOword2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrd2FyZCAgICAg
ICAgICAgIChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4K
LXdlYmtpdF93ZWJfdmlld19jYW5fZ29fZm9yd2FyZCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcp
Oword2Via2l0X3dlYl92aWV3X2Nhbl9nb19mb3J3YXJkICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X2dvX2Jh
Y2t3YXJkIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7Cit3ZWJraXRfd2ViX3ZpZXdfZ29fYmFj
a3dhcmQgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3KTsKIAogV0VCS0lU
X0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfZ29fZm9yd2FyZCAoV2ViS2l0V2ViVmlldyogd2Vi
X3ZpZXcpOword2Via2l0X3dlYl92aWV3X2dvX2ZvcndhcmQgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3ICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3
X3N0b3BfbG9hZGluZyAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOword2Via2l0X3dlYl92aWV3
X3N0b3BfbG9hZGluZyAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldyk7CiAK
IFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X29wZW4gKFdlYktpdFdlYlZpZXcqIHdl
Yl92aWV3LCBjb25zdCBnY2hhciogdXJpKTsKK3dlYmtpdF93ZWJfdmlld19vcGVuICAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgKnVyaSk7CiAKIFdFQktJ
VF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3JlbG9hZCAoV2ViS2l0V2ViVmlldyAqd2ViX3Zp
ZXcpOword2Via2l0X3dlYl92aWV3X3JlbG9hZCAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X2xv
YWRfc3RyaW5nIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIGNvbnRlbnQs
IGNvbnN0IGdjaGFyKiBjb250ZW50X21pbWVfdHlwZSwgY29uc3QgZ2NoYXIqIGNvbnRlbnRfZW5j
b2RpbmcsIGNvbnN0IGdjaGFyKiBiYXNlX3VyaSk7Cit3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJp
bmcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICpjb250ZW50LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAg
ICpjb250ZW50X21pbWVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIgICAqY29udGVudF9lbmNvZGluZywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAqYmFzZV91cmkpOwog
CiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWxfc3RyaW5nIChXZWJL
aXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNvbnN0IGdjaGFyKiBi
YXNlX3VyaSk7Cit3ZWJraXRfd2ViX3ZpZXdfbG9hZF9odG1sX3N0cmluZyAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICpjb250ZW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICpiYXNlX3VyaSk7CiAKIFdFQktJ
VF9BUEkgZ2Jvb2xlYW4KLXdlYmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dCAoV2ViS2l0V2ViVmll
dyogd2ViX3ZpZXcsIGNvbnN0IGdjaGFyKiBzdHJpbmcsIGdib29sZWFuIGNhc2Vfc2Vuc2l0aXZl
LCBnYm9vbGVhbiBmb3J3YXJkLCBnYm9vbGVhbiB3cmFwKTsKK3dlYmtpdF93ZWJfdmlld19zZWFy
Y2hfdGV4dCAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgKnN0cmlu
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4g
ICAgICAgY2FzZV9zZW5zaXRpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdib29sZWFuICAgICAgIGZvcndhcmQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgIHdyYXApOwogCiBXRUJLSVRfQVBJ
IGd1aW50Ci13ZWJraXRfd2ViX3ZpZXdfbWFya190ZXh0X21hdGNoZXMgKFdlYktpdFdlYlZpZXcq
IHdlYl92aWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlX3NlbnNpdGl2ZSwg
Z3VpbnQgbGltaXQpOword2Via2l0X3dlYl92aWV3X21hcmtfdGV4dF9tYXRjaGVzICAgICAgICAg
IChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAqc3RyaW5nLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICBjYXNlX3NlbnNpdGl2ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAg
ICAgbGltaXQpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19zZXRfaGlnaGxp
Z2h0X3RleHRfbWF0Y2hlcyAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGdib29sZWFuIGhpZ2hs
aWdodCk7Cit3ZWJraXRfd2ViX3ZpZXdfc2V0X2hpZ2hsaWdodF90ZXh0X21hdGNoZXMgKFdlYktp
dFdlYlZpZXcgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiAgICAgICBoaWdobGlnaHQpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdl
YmtpdF93ZWJfdmlld191bm1hcmtfdGV4dF9tYXRjaGVzIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmll
dyk7Cit3ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlcyAgICAgICAgKFdlYktpdFdl
YlZpZXcgKndlYl92aWV3KTsKIAotV0VCS0lUX0FQSSBXZWJLaXRXZWJGcmFtZSoKLXdlYmtpdF93
ZWJfdmlld19nZXRfbWFpbl9mcmFtZSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOworV0VCS0lU
X0FQSSBXZWJLaXRXZWJGcmFtZSAqCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUgICAg
ICAgICAgICAgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3KTsKIAogV0VCS0lUX0FQSSB2b2lkCi13
ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9zY3JpcHQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBj
b25zdCBnY2hhciogc2NyaXB0KTsKK3dlYmtpdF93ZWJfdmlld19leGVjdXRlX3NjcmlwdCAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgKnNjcmlwdCk7CiAKIFdFQktJVF9B
UEkgZ2Jvb2xlYW4KLXdlYmtpdF93ZWJfdmlld19jYW5fY3V0X2NsaXBib2FyZCAoV2ViS2l0V2Vi
Vmlldyogd2ViX3ZpZXcpOword2Via2l0X3dlYl92aWV3X2Nhbl9jdXRfY2xpcGJvYXJkICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdl
YmtpdF93ZWJfdmlld19jYW5fY29weV9jbGlwYm9hcmQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3
KTsKK3dlYmtpdF93ZWJfdmlld19jYW5fY29weV9jbGlwYm9hcmQgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIGdib29sZWFuCi13ZWJraXRfd2ViX3ZpZXdf
Y2FuX3Bhc3RlX2NsaXBib2FyZCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOword2Via2l0X3dl
Yl92aWV3X2Nhbl9wYXN0ZV9jbGlwYm9hcmQgICAgICAgIChXZWJLaXRXZWJWaWV3ICp3ZWJfdmll
dyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X2N1dF9jbGlwYm9hcmQgKFdl
YktpdFdlYlZpZXcqIHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19jdXRfY2xpcGJvYXJkICAg
ICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIHZvaWQK
LXdlYmtpdF93ZWJfdmlld19jb3B5X2NsaXBib2FyZCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcp
Oword2Via2l0X3dlYl92aWV3X2NvcHlfY2xpcGJvYXJkICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3Bhc3Rl
X2NsaXBib2FyZCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOword2Via2l0X3dlYl92aWV3X3Bh
c3RlX2NsaXBib2FyZCAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldyk7CiAKIFdF
QktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X2RlbGV0ZV9zZWxlY3Rpb24gKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19kZWxldGVfc2VsZWN0aW9uICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIGdib29sZWFuCi13
ZWJraXRfd2ViX3ZpZXdfaGFzX3NlbGVjdGlvbiAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOwor
d2Via2l0X3dlYl92aWV3X2hhc19zZWxlY3Rpb24gICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3
ICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3NlbGVjdF9h
bGwgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19zZWxlY3RfYWxs
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJ
IGdib29sZWFuCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlIChXZWJLaXRXZWJWaWV3KiB3
ZWJfdmlldyk7Cit3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgKndlYl92aWV3KTsKIAogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3Zp
ZXdfc2V0X2VkaXRhYmxlIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgZ2Jvb2xlYW4gZmxhZyk7
Cit3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlICAgICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnYm9vbGVhbiAgICAgICBmbGFnKTsKIAogV0VCS0lUX0FQSSBHdGtUYXJnZXRMaXN0Kgotd2Vi
a2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0IChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KTsKK3dlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdCAgICAgICAoV2ViS2l0V2Vi
VmlldyAqd2ViVmlldyk7CiAKIFdFQktJVF9BUEkgR3RrVGFyZ2V0TGlzdCoKLXdlYmtpdF93ZWJf
dmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QgKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpOword2Vi
a2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdCAgICAgIChXZWJLaXRXZWJWaWV3ICp3
ZWJWaWV3KTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM4NDU1MDEuLjkzZTA1MjcgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw5IEBACisyMDA3LTEyLTMwICBNaWNoYWVsIE5hdHRlcmVyICA8bWl0Y2hAaW1l
bmRpby5jb20+CisKKwlSZXZpZXdlZCBieSBmb29iYXIuCisKKwkqIEd0a0xhdW5jaGVyL21haW4u
YzogYXBwbHkgR1RLKyBjb2Rpbmcgc3R5bGUgKG1vcmUgb3IgbGVzcykuCisKIDIwMDctMTItMjkg
IERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlci4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0d0a0xhdW5jaGVyL21haW4uYyBiL1dlYktp
dFRvb2xzL0d0a0xhdW5jaGVyL21haW4uYwppbmRleCBmZDg2Mjc5Li5mMDM1Y2M0IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9HdGtMYXVuY2hlci9tYWluLmMKKysrIGIvV2ViS2l0VG9vbHMvR3Rr
TGF1bmNoZXIvbWFpbi5jCkBAIC0zNiw3ICszNiw4IEBAIHN0YXRpYyBnaW50IGxvYWRfcHJvZ3Jl
c3M7CiBzdGF0aWMgZ3VpbnQgc3RhdHVzX2NvbnRleHRfaWQ7CiAKIHN0YXRpYyB2b2lkCi1hY3Rp
dmF0ZV91cmlfZW50cnlfY2IgKEd0a1dpZGdldCogZW50cnksIGdwb2ludGVyIGRhdGEpCithY3Rp
dmF0ZV91cmlfZW50cnlfY2IgKEd0a1dpZGdldCAqZW50cnksCisgICAgICAgICAgICAgICAgICAg
ICAgIGdwb2ludGVyICAgZGF0YSkKIHsKICAgICBjb25zdCBnY2hhciogdXJpID0gZ3RrX2VudHJ5
X2dldF90ZXh0IChHVEtfRU5UUlkgKGVudHJ5KSk7CiAgICAgZ19hc3NlcnQgKHVyaSk7CkBAIC01
Niw3ICs1NywxMCBAQCB1cGRhdGVfdGl0bGUgKEd0a1dpbmRvdyogd2luZG93KQogfQogCiBzdGF0
aWMgdm9pZAotbGlua19ob3Zlcl9jYiAoV2ViS2l0V2ViVmlldyogcGFnZSwgY29uc3QgZ2NoYXIq
IHRpdGxlLCBjb25zdCBnY2hhciogbGluaywgZ3BvaW50ZXIgZGF0YSkKK2xpbmtfaG92ZXJfY2Ig
KFdlYktpdFdlYlZpZXcgKnBhZ2UsCisgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICp0aXRs
ZSwKKyAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgKmxpbmssCisgICAgICAgICAgICAgICBn
cG9pbnRlciAgICAgICBkYXRhKQogewogICAgIC8qIHVuZGVyZmxvdyBpcyBhbGxvd2VkICovCiAg
ICAgZ3RrX3N0YXR1c2Jhcl9wb3AgKG1haW5fc3RhdHVzYmFyLCBzdGF0dXNfY29udGV4dF9pZCk7
CkBAIC02NSw3ICs2OSwxMCBAQCBsaW5rX2hvdmVyX2NiIChXZWJLaXRXZWJWaWV3KiBwYWdlLCBj
b25zdCBnY2hhciogdGl0bGUsIGNvbnN0IGdjaGFyKiBsaW5rLCBncG9pbgogfQogCiBzdGF0aWMg
dm9pZAotdGl0bGVfY2hhbmdlX2NiIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0V2Vi
RnJhbWUqIHdlYl9mcmFtZSwgY29uc3QgZ2NoYXIqIHRpdGxlLCBncG9pbnRlciBkYXRhKQordGl0
bGVfY2hhbmdlX2NiIChXZWJLaXRXZWJWaWV3ICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAg
IFdlYktpdFdlYkZyYW1lICp3ZWJfZnJhbWUsCisgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy
ICAgICp0aXRsZSwKKyAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgIGRhdGEpCiB7CiAg
ICAgaWYgKG1haW5fdGl0bGUpCiAgICAgICAgIGdfZnJlZSAobWFpbl90aXRsZSk7CkBAIC03NCw0
MiArODEsNDkgQEAgdGl0bGVfY2hhbmdlX2NiIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2Vi
S2l0V2ViRnJhbWUqIHdlYl9mcmFtZSwgY29uc3QgZ2NoYXIKIH0KIAogc3RhdGljIHZvaWQKLXBy
b2dyZXNzX2NoYW5nZV9jYiAoV2ViS2l0V2ViVmlldyogcGFnZSwgZ2ludCBwcm9ncmVzcywgZ3Bv
aW50ZXIgZGF0YSkKK3Byb2dyZXNzX2NoYW5nZV9jYiAoV2ViS2l0V2ViVmlldyAqcGFnZSwKKyAg
ICAgICAgICAgICAgICAgICAgZ2ludCAgICAgICAgICAgcHJvZ3Jlc3MsCisgICAgICAgICAgICAg
ICAgICAgIGdwb2ludGVyICAgICAgIGRhdGEpCiB7CiAgICAgbG9hZF9wcm9ncmVzcyA9IHByb2dy
ZXNzOwogICAgIHVwZGF0ZV90aXRsZSAoR1RLX1dJTkRPVyAobWFpbl93aW5kb3cpKTsKIH0KIAog
c3RhdGljIHZvaWQKLWxvYWRfY29tbWl0X2NiIChXZWJLaXRXZWJWaWV3KiBwYWdlLCBXZWJLaXRX
ZWJGcmFtZSogZnJhbWUsIGdwb2ludGVyIGRhdGEpCitsb2FkX2NvbW1pdF9jYiAoV2ViS2l0V2Vi
VmlldyAgKnBhZ2UsCisgICAgICAgICAgICAgICAgV2ViS2l0V2ViRnJhbWUgKmZyYW1lLAorICAg
ICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICBkYXRhKQogewotICAgIGNvbnN0IGdjaGFyKiB1
cmkgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkoZnJhbWUpOworICAgIGNvbnN0IGdjaGFyKiB1
cmkgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkgKGZyYW1lKTsKICAgICBpZiAodXJpKQogICAg
ICAgICBndGtfZW50cnlfc2V0X3RleHQgKEdUS19FTlRSWSAodXJpX2VudHJ5KSwgdXJpKTsKIH0K
IAogc3RhdGljIHZvaWQKLWRlc3Ryb3lfY2IgKEd0a1dpZGdldCogd2lkZ2V0LCBncG9pbnRlciBk
YXRhKQorZGVzdHJveV9jYiAoR3RrV2lkZ2V0ICp3aWRnZXQsCisgICAgICAgICAgICBncG9pbnRl
ciAgIGRhdGEpCiB7CiAgICAgZ3RrX21haW5fcXVpdCAoKTsKIH0KIAogc3RhdGljIHZvaWQKLWdv
X2JhY2tfY2IgKEd0a1dpZGdldCogd2lkZ2V0LCBncG9pbnRlciBkYXRhKQorZ29fYmFja19jYiAo
R3RrV2lkZ2V0ICp3aWRnZXQsCisgICAgICAgICAgICBncG9pbnRlciAgIGRhdGEpCiB7CiAgICAg
d2Via2l0X3dlYl92aWV3X2dvX2JhY2t3YXJkICh3ZWJfdmlldyk7CiB9CiAKIHN0YXRpYyB2b2lk
Ci1nb19mb3J3YXJkX2NiIChHdGtXaWRnZXQqIHdpZGdldCwgZ3BvaW50ZXIgZGF0YSkKK2dvX2Zv
cndhcmRfY2IgKEd0a1dpZGdldCAqd2lkZ2V0LAorICAgICAgICAgICAgICAgZ3BvaW50ZXIgICBk
YXRhKQogewogICAgIHdlYmtpdF93ZWJfdmlld19nb19mb3J3YXJkICh3ZWJfdmlldyk7CiB9CiAK
LXN0YXRpYyBHdGtXaWRnZXQqCi1jcmVhdGVfYnJvd3NlciAoKQorc3RhdGljIEd0a1dpZGdldCAq
CitjcmVhdGVfYnJvd3NlciAodm9pZCkKIHsKLSAgICBHdGtXaWRnZXQqIHNjcm9sbGVkX3dpbmRv
dyA9IGd0a19zY3JvbGxlZF93aW5kb3dfbmV3IChOVUxMLCBOVUxMKTsKKyAgICBHdGtXaWRnZXQg
KnNjcm9sbGVkX3dpbmRvdyA9IGd0a19zY3JvbGxlZF93aW5kb3dfbmV3IChOVUxMLCBOVUxMKTsK
ICAgICBndGtfc2Nyb2xsZWRfd2luZG93X3NldF9wb2xpY3kgKEdUS19TQ1JPTExFRF9XSU5ET1cg
KHNjcm9sbGVkX3dpbmRvdyksIEdUS19QT0xJQ1lfQVVUT01BVElDLCBHVEtfUE9MSUNZX0FVVE9N
QVRJQyk7CiAKICAgICB3ZWJfdmlldyA9IFdFQktJVF9XRUJfVklFVyAod2Via2l0X3dlYl92aWV3
X25ldyAoKSk7CkBAIC0xMjMsOCArMTM3LDggQEAgY3JlYXRlX2Jyb3dzZXIgKCkKICAgICByZXR1
cm4gc2Nyb2xsZWRfd2luZG93OwogfQogCi1zdGF0aWMgR3RrV2lkZ2V0KgotY3JlYXRlX3N0YXR1
c2JhciAoKQorc3RhdGljIEd0a1dpZGdldCAqCitjcmVhdGVfc3RhdHVzYmFyICh2b2lkKQogewog
ICAgIG1haW5fc3RhdHVzYmFyID0gR1RLX1NUQVRVU0JBUiAoZ3RrX3N0YXR1c2Jhcl9uZXcgKCkp
OwogICAgIHN0YXR1c19jb250ZXh0X2lkID0gZ3RrX3N0YXR1c2Jhcl9nZXRfY29udGV4dF9pZCAo
bWFpbl9zdGF0dXNiYXIsICJMaW5rIEhvdmVyIik7CkBAIC0xMzIsMTUgKzE0NiwxNSBAQCBjcmVh
dGVfc3RhdHVzYmFyICgpCiAgICAgcmV0dXJuIChHdGtXaWRnZXQqKW1haW5fc3RhdHVzYmFyOwog
fQogCi1zdGF0aWMgR3RrV2lkZ2V0KgotY3JlYXRlX3Rvb2xiYXIgKCkKK3N0YXRpYyBHdGtXaWRn
ZXQgKgorY3JlYXRlX3Rvb2xiYXIgKHZvaWQpCiB7Ci0gICAgR3RrV2lkZ2V0KiB0b29sYmFyID0g
Z3RrX3Rvb2xiYXJfbmV3ICgpOworICAgIEd0a1dpZGdldCAqdG9vbGJhciA9IGd0a190b29sYmFy
X25ldyAoKTsKIAogICAgIGd0a190b29sYmFyX3NldF9vcmllbnRhdGlvbiAoR1RLX1RPT0xCQVIg
KHRvb2xiYXIpLCBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCk7CiAgICAgZ3RrX3Rvb2xiYXJf
c2V0X3N0eWxlIChHVEtfVE9PTEJBUiAodG9vbGJhciksIEdUS19UT09MQkFSX0JPVEhfSE9SSVop
OwogCi0gICAgR3RrVG9vbEl0ZW0qIGl0ZW07CisgICAgR3RrVG9vbEl0ZW0gKml0ZW07CiAKICAg
ICAvKiB0aGUgYmFjayBidXR0b24gKi8KICAgICBpdGVtID0gZ3RrX3Rvb2xfYnV0dG9uX25ld19m
cm9tX3N0b2NrIChHVEtfU1RPQ0tfR09fQkFDSyk7CkBAIC0xNjgsMTAgKzE4MiwxMCBAQCBjcmVh
dGVfdG9vbGJhciAoKQogICAgIHJldHVybiB0b29sYmFyOwogfQogCi1zdGF0aWMgR3RrV2lkZ2V0
KgotY3JlYXRlX3dpbmRvdyAoKQorc3RhdGljIEd0a1dpZGdldCAqCitjcmVhdGVfd2luZG93ICh2
b2lkKQogewotICAgIEd0a1dpZGdldCogd2luZG93ID0gZ3RrX3dpbmRvd19uZXcgKEdUS19XSU5E
T1dfVE9QTEVWRUwpOworICAgIEd0a1dpZGdldCAqd2luZG93ID0gZ3RrX3dpbmRvd19uZXcgKEdU
S19XSU5ET1dfVE9QTEVWRUwpOwogICAgIGd0a193aW5kb3dfc2V0X2RlZmF1bHRfc2l6ZSAoR1RL
X1dJTkRPVyAod2luZG93KSwgODAwLCA2MDApOwogICAgIGd0a193aWRnZXRfc2V0X25hbWUgKHdp
bmRvdywgIkd0a0xhdW5jaGVyIik7CiAgICAgZ19zaWduYWxfY29ubmVjdCAoR19PQkpFQ1QgKHdp
bmRvdyksICJkZXN0cm95IiwgR19DQUxMQkFDSyAoZGVzdHJveV9jYiksIE5VTEwpOwpAQCAtMTgw
LDExICsxOTQsMTIgQEAgY3JlYXRlX3dpbmRvdyAoKQogfQogCiBpbnQKLW1haW4gKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCittYWluIChpbnQgICBhcmdjLAorICAgICAgY2hhciAqYXJndltdKQog
ewogICAgIGd0a19pbml0ICgmYXJnYywgJmFyZ3YpOwogCi0gICAgR3RrV2lkZ2V0KiB2Ym94ID0g
Z3RrX3Zib3hfbmV3IChGQUxTRSwgMCk7CisgICAgR3RrV2lkZ2V0ICp2Ym94ID0gZ3RrX3Zib3hf
bmV3IChGQUxTRSwgMCk7CiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0IChHVEtfQk9YICh2Ym94KSwg
Y3JlYXRlX3Rvb2xiYXIgKCksIEZBTFNFLCBGQUxTRSwgMCk7CiAgICAgZ3RrX2JveF9wYWNrX3N0
YXJ0IChHVEtfQk9YICh2Ym94KSwgY3JlYXRlX2Jyb3dzZXIgKCksIFRSVUUsIFRSVUUsIDApOwog
ICAgIGd0a19ib3hfcGFja19zdGFydCAoR1RLX0JPWCAodmJveCksIGNyZWF0ZV9zdGF0dXNiYXIg
KCksIEZBTFNFLCBGQUxTRSwgMCk7CkBAIC0xOTIsNyArMjA3LDcgQEAgbWFpbiAoaW50IGFyZ2Ms
IGNoYXIqIGFyZ3ZbXSkKICAgICBtYWluX3dpbmRvdyA9IGNyZWF0ZV93aW5kb3cgKCk7CiAgICAg
Z3RrX2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKG1haW5fd2luZG93KSwgdmJveCk7CiAK
LSAgICBnY2hhciogdXJpID0gKGdjaGFyKikgKGFyZ2MgPiAxID8gYXJndlsxXSA6ICJodHRwOi8v
d3d3Lmdvb2dsZS5jb20vIik7CisgICAgZ2NoYXIgKnVyaSA9IChnY2hhciopIChhcmdjID4gMSA/
IGFyZ3ZbMV0gOiAiaHR0cDovL3d3dy5nb29nbGUuY29tLyIpOwogICAgIHdlYmtpdF93ZWJfdmll
d19vcGVuICh3ZWJfdmlldywgdXJpKTsKIAogICAgIGd0a193aWRnZXRfZ3JhYl9mb2N1cyAoR1RL
X1dJREdFVCAod2ViX3ZpZXcpKTsK
</data>
<flag name="review"
          id="7909"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21564</attachid>
            <date>2008-06-07 13:43:42 -0700</date>
            <delta_ts>2008-06-10 00:51:38 -0700</delta_ts>
            <desc>Apply gtk+ style to headers</desc>
            <filename>headerstyle.diff</filename>
            <type>text/plain</type>
            <size>27525</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oCmluZGV4IDY0NTE0NGEuLmY2
NzMzNGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
LmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaApAQCAtMzgs
NyArMzgsNyBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlIFdl
YktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZTsKIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3Qg
ewogICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwogCi0gICAgV2ViS2l0TmV0d29ya1JlcXVl
c3RQcml2YXRlKiBwcml2OworICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSAqcHJpdjsK
IH07CiAKIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzcyB7CkBAIC00OCwxNCArNDgs
MTUgQEAgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzIHsKIFdFQktJVF9BUEkgR1R5
cGUKIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOwogCi1XRUJLSVRfQVBJ
IFdlYktpdE5ldHdvcmtSZXF1ZXN0Kgotd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcgKGNvbnN0
IGdjaGFyKiB1cmkpOworV0VCS0lUX0FQSSBXZWJLaXROZXR3b3JrUmVxdWVzdCAqCit3ZWJraXRf
bmV0d29ya19yZXF1ZXN0X25ldyAgICAgIChjb25zdCBnY2hhciAgICAgICAgICAqdXJpKTsKIAog
V0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF91cmkgKFdlYktpdE5l
dHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBnY2hhciogdXJpKTsKK3dlYmtpdF9uZXR3b3Jr
X3JlcXVlc3Rfc2V0X3VyaSAgKFdlYktpdE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqICAgICAgICAgIHVyaSk7CiAK
LVdFQktJVF9BUEkgY29uc3QgZ2NoYXIqCi13ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkg
KFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KTsKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIg
Kgord2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfdXJpICAoV2ViS2l0TmV0d29ya1JlcXVlc3Qg
KnJlcXVlc3QpOwogCiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmJhY2tmb3J3YXJkbGlzdC5oCmluZGV4IGU2MzUwNWQuLjY4ZTE4ZWIgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oCisrKyBiL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oCkBAIC00MCw3ICs0MCw3IEBAIHR5
cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlIFdlYktpdFdlYkJh
Y2tGb3J3YXJkTGlzdFByaXZhdGU7CiBzdHJ1Y3QgX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCB7
CiAgICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CiAKLSAgICBXZWJLaXRXZWJCYWNrRm9yd2Fy
ZExpc3RQcml2YXRlKiBwcml2OworICAgIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUg
KnByaXY7CiB9OwogCiBzdHJ1Y3QgX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdENsYXNzIHsKQEAg
LTUwLDUwICs1MCw1NiBAQCBzdHJ1Y3QgX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdENsYXNzIHsK
IFdFQktJVF9BUEkgR1R5cGUKIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X3R5cGUg
KHZvaWQpOwogCi1XRUJLSVRfQVBJIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCoKLXdlYmtpdF93
ZWJfYmFja19mb3J3YXJkX2xpc3RfbmV3X3dpdGhfd2ViX3ZpZXcgKFdlYktpdFdlYlZpZXcqIHdl
Yl92aWV3KTsKK1dFQktJVF9BUEkgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0ICoKK3dlYmtpdF93
ZWJfYmFja19mb3J3YXJkX2xpc3RfbmV3X3dpdGhfd2ViX3ZpZXcgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl9iYWNrX2Zv
cndhcmRfbGlzdF9nb19mb3J3YXJkIChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYl9iYWNr
X2ZvcndhcmRfbGlzdCk7Cit3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dvX2ZvcndhcmQg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0ICp3ZWJfYmFja19mb3J3
YXJkX2xpc3QpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xp
c3RfZ29fYmFjayAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJfYmFja19mb3J3YXJkX2xp
c3QpOword2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nb19iYWNrICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViX2JhY2tfZm9yd2FyZF9saXN0KTsK
IAogV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jb250
YWluc19pdGVtIChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYl9iYWNrX2ZvcndhcmRfbGlz
dCwgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIGhpc3RvcnlfaXRlbSk7Cit3ZWJraXRfd2ViX2JhY2tf
Zm9yd2FyZF9saXN0X2NvbnRhaW5zX2l0ZW0gICAgICAgICAgICAgICAoV2ViS2l0V2ViQmFja0Zv
cndhcmRMaXN0ICp3ZWJfYmFja19mb3J3YXJkX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0g
ICAgICpoaXN0b3J5X2l0ZW0pOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfYmFja19m
b3J3YXJkX2xpc3RfZ29fdG9faXRlbSAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJfYmFj
a19mb3J3YXJkX2xpc3QsIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBoaXN0b3J5X2l0ZW0pOword2Vi
a2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nb190b19pdGVtICAgICAgICAgICAgICAgICAgKFdl
YktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViX2JhY2tfZm9yd2FyZF9saXN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdl
Ykhpc3RvcnlJdGVtICAgICAqaGlzdG9yeV9pdGVtKTsKIAotV0VCS0lUX0FQSSBHTGlzdCoKLXdl
YmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGlzdF93aXRoX2xpbWl0IChX
ZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYl9iYWNrX2ZvcndhcmRfbGlzdCwgZ2ludCBsaW1p
dCk7CitXRUJLSVRfQVBJIEdMaXN0ICoKK3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0
X2ZvcndhcmRfbGlzdF93aXRoX2xpbWl0IChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QgKndlYl9i
YWNrX2ZvcndhcmRfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAgICAgICAgIGxpbWl0KTsKIAot
V0VCS0lUX0FQSSBHTGlzdCoKLXdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tf
bGlzdF93aXRoX2xpbWl0IChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYl9iYWNrX2Zvcndh
cmRfbGlzdCwgZ2ludCBsaW1pdCk7CitXRUJLSVRfQVBJIEdMaXN0ICoKK3dlYmtpdF93ZWJfYmFj
a19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfbGlzdF93aXRoX2xpbWl0ICAgIChXZWJLaXRXZWJCYWNr
Rm9yd2FyZExpc3QgKndlYl9iYWNrX2ZvcndhcmRfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAg
ICAgICAgIGxpbWl0KTsKIAotV0VCS0lUX0FQSSBXZWJLaXRXZWJIaXN0b3J5SXRlbSoKLXdlYmtp
dF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfaXRlbSAoV2ViS2l0V2ViQmFja0Zvcndh
cmRMaXN0KiB3ZWJfYmFja19mb3J3YXJkX2xpc3QpOworV0VCS0lUX0FQSSBXZWJLaXRXZWJIaXN0
b3J5SXRlbSAqCit3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2l0ZW0gICAg
ICAgICAgICAgICAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0ICp3ZWJfYmFja19mb3J3YXJkX2xp
c3QpOwogCi1XRUJLSVRfQVBJIFdlYktpdFdlYkhpc3RvcnlJdGVtKgotd2Via2l0X3dlYl9iYWNr
X2ZvcndhcmRfbGlzdF9nZXRfY3VycmVudF9pdGVtIChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3Qq
IHdlYl9iYWNrX2ZvcndhcmRfbGlzdCk7CitXRUJLSVRfQVBJIFdlYktpdFdlYkhpc3RvcnlJdGVt
ICoKK3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2N1cnJlbnRfaXRlbSAgICAgICAg
ICAgIChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QgKndlYl9iYWNrX2ZvcndhcmRfbGlzdCk7CiAK
LVdFQktJVF9BUEkgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qCi13ZWJraXRfd2ViX2JhY2tfZm9yd2Fy
ZF9saXN0X2dldF9mb3J3YXJkX2l0ZW0gKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCogd2ViX2Jh
Y2tfZm9yd2FyZF9saXN0KTsKK1dFQktJVF9BUEkgV2ViS2l0V2ViSGlzdG9yeUl0ZW0gKgord2Vi
a2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9pdGVtICAgICAgICAgICAgKFdl
YktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViX2JhY2tfZm9yd2FyZF9saXN0KTsKIAotV0VCS0lU
X0FQSSBXZWJLaXRXZWJIaXN0b3J5SXRlbSoKLXdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rf
Z2V0X250aF9pdGVtIChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYl9iYWNrX2ZvcndhcmRf
bGlzdCwgZ2ludCBpbmRleCk7CitXRUJLSVRfQVBJIFdlYktpdFdlYkhpc3RvcnlJdGVtICoKK3dl
YmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X250aF9pdGVtICAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QgKndlYl9iYWNrX2ZvcndhcmRfbGlzdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAg
ICAgICAgICAgICAgICAgICAgIGluZGV4KTsKIAogV0VCS0lUX0FQSSBnaW50Ci13ZWJraXRfd2Vi
X2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2xlbmd0aCAoV2ViS2l0V2ViQmFja0ZvcndhcmRM
aXN0KiB3ZWJfYmFja19mb3J3YXJkX2xpc3QpOword2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlz
dF9nZXRfYmFja19sZW5ndGggICAgICAgICAgICAgKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAq
d2ViX2JhY2tfZm9yd2FyZF9saXN0KTsKIAogV0VCS0lUX0FQSSBnaW50Ci13ZWJraXRfd2ViX2Jh
Y2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xlbmd0aCAoV2ViS2l0V2ViQmFja0ZvcndhcmRM
aXN0KiB3ZWJfYmFja19mb3J3YXJkX2xpc3QpOword2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlz
dF9nZXRfZm9yd2FyZF9sZW5ndGggICAgICAgICAgKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAq
d2ViX2JhY2tfZm9yd2FyZF9saXN0KTsKIAogV0VCS0lUX0FQSSBnaW50Ci13ZWJraXRfd2ViX2Jh
Y2tfZm9yd2FyZF9saXN0X2dldF9saW1pdCAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJf
YmFja19mb3J3YXJkX2xpc3QpOword2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbGlt
aXQgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViX2JhY2tf
Zm9yd2FyZF9saXN0KTsKIAogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX2JhY2tfZm9yd2Fy
ZF9saXN0X3NldF9saW1pdCAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJfYmFja19mb3J3
YXJkX2xpc3QsIGdpbnQgbGltaXQpOword2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9zZXRf
bGltaXQgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViX2Jh
Y2tfZm9yd2FyZF9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdpbnQgICAgICAgICAgICAgICAgICAgICAgbGltaXQpOwogCiBH
X0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAppbmRleCBhODlkYTQ2Li42
NTZkODgyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCisr
KyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgKQEAgLTQxLDcgKzQxLDcgQEAg
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lUHJpdmF0ZSBXZWJLaXRXZWJGcmFtZVByaXZh
dGU7CiBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lIHsKICAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5j
ZTsKIAotICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdjsKKyAgICBXZWJLaXRXZWJGcmFt
ZVByaXZhdGUgKnByaXY7CiB9OwogCiBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lQ2xhc3MgewpAQCAt
NTYsNDAgKzU2LDQyIEBAIHN0cnVjdCBfV2ViS2l0V2ViRnJhbWVDbGFzcyB7CiB9OwogCiBXRUJL
SVRfQVBJIEdUeXBlCi13ZWJraXRfd2ViX2ZyYW1lX2dldF90eXBlICh2b2lkKTsKK3dlYmtpdF93
ZWJfZnJhbWVfZ2V0X3R5cGUgICAgICAgICAgICh2b2lkKTsKIAotV0VCS0lUX0FQSSBXZWJLaXRX
ZWJGcmFtZSoKLXdlYmtpdF93ZWJfZnJhbWVfbmV3IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7
CitXRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1lICoKK3dlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCi1XRUJLSVRfQVBJ
IFdlYktpdFdlYlZpZXcqCi13ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAoV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lKTsKK1dFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCit3ZWJraXRfd2ViX2Zy
YW1lX2dldF93ZWJfdmlldyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAot
V0VCS0lUX0FQSSBjb25zdCBnY2hhcioKLXdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWUgKFdlYktp
dFdlYkZyYW1lKiBmcmFtZSk7CitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF93ZWJf
ZnJhbWVfZ2V0X25hbWUgICAgICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwog
Ci1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgotd2Via2l0X3dlYl9mcmFtZV9nZXRfdGl0bGUgKFdl
YktpdFdlYkZyYW1lKiBmcmFtZSk7CitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dlYmtpdF93
ZWJfZnJhbWVfZ2V0X3RpdGxlICAgICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUp
OwogCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgotd2Via2l0X3dlYl9mcmFtZV9nZXRfdXJpIChX
ZWJLaXRXZWJGcmFtZSogZnJhbWUpOworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJraXRf
d2ViX2ZyYW1lX2dldF91cmkgICAgICAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1l
KTsKIAogV0VCS0lUX0FQSSBXZWJLaXRXZWJGcmFtZSoKLXdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Bh
cmVudCAoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X3BhcmVu
dCAgICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCiBXRUJLSVRfQVBJIHZv
aWQKLXdlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0IChXZWJLaXRXZWJGcmFtZSogZnJhbWUs
IFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KTsKK3dlYmtpdF93ZWJfZnJhbWVfbG9hZF9y
ZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0TmV0d29ya1JlcXVlc3QgKnJlcXVlc3QpOwog
CiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfZnJhbWVfc3RvcF9sb2FkaW5nIChXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpOword2Via2l0X3dlYl9mcmFtZV9zdG9wX2xvYWRpbmcgICAgICAgKFdl
YktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dl
Yl9mcmFtZV9yZWxvYWQgKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7Cit3ZWJraXRfd2ViX2ZyYW1l
X3JlbG9hZCAgICAgICAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAotV0VC
S0lUX0FQSSBXZWJLaXRXZWJGcmFtZSoKLXdlYmtpdF93ZWJfZnJhbWVfZmluZF9mcmFtZSAoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbmFtZSk7CitXRUJLSVRfQVBJIFdlYktp
dFdlYkZyYW1lICoKK3dlYmtpdF93ZWJfZnJhbWVfZmluZF9mcmFtZSAgICAgICAgIChXZWJLaXRX
ZWJGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgKm5hbWUpOwogCiBXRUJLSVRfQVBJIEpTR2xvYmFsQ29u
dGV4dFJlZgotd2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQgKFdlYktpdFdlYkZy
YW1lKiBmcmFtZSk7Cit3ZWJraXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dCAoV2ViS2l0
V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaCBiL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmgKaW5kZXggMjY3ZmZiNS4uNzMwMTg4ZSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaAorKysgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oCkBAIC00MCw3ICs0MCw3IEBAIHR5cGVk
ZWYgc3RydWN0IF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGUgV2ViS2l0V2ViSGlzdG9yeUl0
ZW1Qcml2YXRlOwogc3RydWN0IF9XZWJLaXRXZWJIaXN0b3J5SXRlbSB7CiAgICAgR09iamVjdCBw
YXJlbnRfaW5zdGFuY2U7CiAKLSAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGUqIHByaXY7
CisgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlICpwcml2OwogfTsKIAogc3RydWN0IF9X
ZWJLaXRXZWJIaXN0b3J5SXRlbUNsYXNzIHsKQEAgLTUwLDI5ICs1MCwzMSBAQCBzdHJ1Y3QgX1dl
YktpdFdlYkhpc3RvcnlJdGVtQ2xhc3MgewogV0VCS0lUX0FQSSBHVHlwZQogd2Via2l0X3dlYl9o
aXN0b3J5X2l0ZW1fZ2V0X3R5cGUgKHZvaWQpOwogCi1XRUJLSVRfQVBJIFdlYktpdFdlYkhpc3Rv
cnlJdGVtKgorV0VCS0lUX0FQSSBXZWJLaXRXZWJIaXN0b3J5SXRlbSAqCiB3ZWJraXRfd2ViX2hp
c3RvcnlfaXRlbV9uZXcgKHZvaWQpOwogCi1XRUJLSVRfQVBJIFdlYktpdFdlYkhpc3RvcnlJdGVt
Kgotd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfZGF0YSAoY29uc3QgZ2NoYXIqIHVy
aSwgY29uc3QgZ2NoYXIqIHRpdGxlKTsKK1dFQktJVF9BUEkgV2ViS2l0V2ViSGlzdG9yeUl0ZW0g
Kgord2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfZGF0YSAgICAgICAgIChjb25zdCBn
Y2hhciAgICAgICAgICAqdXJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqdGl0bGUpOwogCi1XRUJLSVRfQVBJIGNv
bnN0IGdjaGFyKgotd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3RpdGxlIChXZWJLaXRXZWJI
aXN0b3J5SXRlbSogd2ViX2hpc3RvcnlfaXRlbSk7CitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoK
K3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90aXRsZSAgICAgICAgICAgICAoV2ViS2l0V2Vi
SGlzdG9yeUl0ZW0gKndlYl9oaXN0b3J5X2l0ZW0pOwogCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFy
Kgotd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X2FsdGVybmF0ZV90aXRsZSAoV2ViS2l0V2Vi
SGlzdG9yeUl0ZW0qIHdlYl9oaXN0b3J5X2l0ZW0pOworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAq
Cit3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfYWx0ZXJuYXRlX3RpdGxlICAgKFdlYktpdFdl
Ykhpc3RvcnlJdGVtICp3ZWJfaGlzdG9yeV9pdGVtKTsKIAogV0VCS0lUX0FQSSB2b2lkCi13ZWJr
aXRfd2ViX2hpc3RvcnlfaXRlbV9zZXRfYWx0ZXJuYXRlX3RpdGxlIChXZWJLaXRXZWJIaXN0b3J5
SXRlbSogd2ViX2hpc3RvcnlfaXRlbSwgY29uc3QgZ2NoYXIqIHRpdGxlKTsKK3dlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX3NldF9hbHRlcm5hdGVfdGl0bGUgICAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0g
KndlYl9oaXN0b3J5X2l0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICp0aXRsZSk7CiAKLVdFQktJVF9BUEkgY29u
c3QgZ2NoYXIqCi13ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdXJpIChXZWJLaXRXZWJIaXN0
b3J5SXRlbSogd2ViX2hpc3RvcnlfaXRlbSk7CitXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKK3dl
YmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF91cmkgICAgICAgICAgICAgICAoV2ViS2l0V2ViSGlz
dG9yeUl0ZW0gKndlYl9oaXN0b3J5X2l0ZW0pOwogCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgot
d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X29yaWdpbmFsX3VyaSAoV2ViS2l0V2ViSGlzdG9y
eUl0ZW0qIHdlYl9oaXN0b3J5X2l0ZW0pOworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCit3ZWJr
aXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfb3JpZ2luYWxfdXJpICAgICAgKFdlYktpdFdlYkhpc3Rv
cnlJdGVtICp3ZWJfaGlzdG9yeV9pdGVtKTsKIAogV0VCS0lUX0FQSSBnZG91YmxlCi13ZWJraXRf
d2ViX2hpc3RvcnlfaXRlbV9nZXRfbGFzdF92aXNpdGVkX3RpbWUgKFdlYktpdFdlYkhpc3RvcnlJ
dGVtKiB3ZWJfaGlzdG9yeV9pdGVtKTsKK3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9sYXN0
X3Zpc2l0ZWRfdGltZSAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0gKndlYl9oaXN0b3J5X2l0ZW0pOwog
CiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJz
ZXR0aW5ncy5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaAppbmRleCBh
MjFjY2Y0Li4zM2ZhNTRhIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJz
ZXR0aW5ncy5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmgKQEAg
LTM4LDcgKzM4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZSBX
ZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU7CiBzdHJ1Y3QgX1dlYktpdFdlYlNldHRpbmdzIHsKICAg
ICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKIAotICAgIFdlYktpdFdlYlNldHRpbmdzUHJpdmF0
ZSogcHJpdjsKKyAgICBXZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgKnByaXY7CiB9OwogCiBzdHJ1
Y3QgX1dlYktpdFdlYlNldHRpbmdzQ2xhc3MgewpAQCAtNTIsMTMgKzUyLDEzIEBAIHN0cnVjdCBf
V2ViS2l0V2ViU2V0dGluZ3NDbGFzcyB7CiB9OwogCiBXRUJLSVRfQVBJIEdUeXBlCi13ZWJraXRf
d2ViX3NldHRpbmdzX2dldF90eXBlKHZvaWQpOword2Via2l0X3dlYl9zZXR0aW5nc19nZXRfdHlw
ZSAodm9pZCk7CiAKLVdFQktJVF9BUEkgV2ViS2l0V2ViU2V0dGluZ3MqCi13ZWJraXRfd2ViX3Nl
dHRpbmdzX25ldyh2b2lkKTsKK1dFQktJVF9BUEkgV2ViS2l0V2ViU2V0dGluZ3MgKgord2Via2l0
X3dlYl9zZXR0aW5nc19uZXcgICAgICAodm9pZCk7CiAKLVdFQktJVF9BUEkgV2ViS2l0V2ViU2V0
dGluZ3MqCi13ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYl9z
ZXR0aW5ncyk7CitXRUJLSVRfQVBJIFdlYktpdFdlYlNldHRpbmdzICoKK3dlYmtpdF93ZWJfc2V0
dGluZ3NfY29weSAgICAgKFdlYktpdFdlYlNldHRpbmdzICp3ZWJfc2V0dGluZ3MpOwogCiBHX0VO
RF9ERUNMUwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3Lmgg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKaW5kZXggZWQ4YmViMC4uZWJkMWFh
MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCisrKyBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaApAQCAtNTUsNyArNTUsNyBAQCB0eXBlZGVm
IGVudW0KIHN0cnVjdCBfV2ViS2l0V2ViVmlldyB7CiAgICAgR3RrQ29udGFpbmVyIHBhcmVudF9p
bnN0YW5jZTsKIAotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2OworICAgIFdlYktpdFdl
YlZpZXdQcml2YXRlICpwcml2OwogfTsKIAogc3RydWN0IF9XZWJLaXRXZWJWaWV3Q2xhc3MgewpA
QCAtNjcsMTY3ICs2NywyMTIgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3Q2xhc3MgewogICAgICAq
IHJlcXVpcmUgc29tZW9uZSBkb2luZyBhIGdfc2lnbmFsX3N0b3BfZW1pc3Npb25fYnlfbmFtZQog
ICAgICAqIFdlYlVJRGVsZWdhdGUgaGFzIG5vdGhpbmcgZm9yIGNyZWF0ZV9mcmFtZSwgV2ViUG9s
aWN5RGVsZWdhdGUgYXMgd2VsbC4uLgogICAgICAqLwotICAgIFdlYktpdFdlYlZpZXcqICAoKmNy
ZWF0ZV93ZWJfdmlldykgIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7CisgICAgV2ViS2l0V2Vi
VmlldyAgICAgICAgICAgICogKCogY3JlYXRlX3dlYl92aWV3KSAgICAgICAgKFdlYktpdFdlYlZp
ZXcqIHdlYl92aWV3KTsKIAogICAgIC8qCiAgICAgICogVE9ETzogRklYTUU6IENyZWF0ZSBzb21l
dGhpbmcgbGlrZSBXZWJQb2xpY3lEZWNpc2lvbkxpc3RlbmVyX1Byb3RvY29sIGluc3RlYWQKICAg
ICAgKi8KLSAgICBXZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2UgKCpuYXZpZ2F0aW9uX3JlcXVlc3Rl
ZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdlYktp
dE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KTsKLQotICAgIHZvaWQgKCp3aW5kb3dfb2JqZWN0X2Ns
ZWFyZWQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBK
U0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgd2luZG93X29iamVjdCk7Ci0g
ICAgZ2NoYXIqICAgKCpjaG9vc2VfZmlsZSkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJL
aXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiBvbGRfZmlsZSk7Ci0gICAgZ2Jvb2xlYW4g
KCpzY3JpcHRfYWxlcnQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0V2ViRnJhbWUq
IGZyYW1lLCBjb25zdCBnY2hhciogYWxlcnRfbWVzc2FnZSk7Ci0gICAgZ2Jvb2xlYW4gKCpzY3Jp
cHRfY29uZmlybSkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJh
bWUsIGNvbnN0IGdjaGFyKiBjb25maXJtX21lc3NhZ2UsIGdib29sZWFuKiBkaWRfY29uZmlybSk7
Ci0gICAgZ2Jvb2xlYW4gKCpzY3JpcHRfcHJvbXB0KSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcs
IFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0IGdjaGFy
KiBkZWZhdWx0X3ZhbHVlLCBnY2hhcioqIHZhbHVlKTsKLSAgICBnYm9vbGVhbiAoKmNvbnNvbGVf
bWVzc2FnZSkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBjb25zdCBnY2hhciogbWVzc2FnZSwg
dW5zaWduZWQgaW50IGxpbmVfbnVtYmVyLCBjb25zdCBnY2hhciogc291cmNlX2lkKTsKLSAgICB2
b2lkICgqc2VsZWN0X2FsbCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKLSAgICB2b2lkICgq
Y3V0X2NsaXBib2FyZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKLSAgICB2b2lkICgqY29w
eV9jbGlwYm9hcmQpIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7Ci0gICAgdm9pZCAoKnBhc3Rl
X2NsaXBib2FyZCkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKKyAgICBXZWJLaXROYXZpZ2F0
aW9uUmVzcG9uc2UgICAoKiBuYXZpZ2F0aW9uX3JlcXVlc3RlZCkgICAoV2ViS2l0V2ViVmlldyAg
ICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0KTsKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgICAg
ICAoKiB3aW5kb3dfb2JqZWN0X2NsZWFyZWQpICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92
aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTR2xvYmFsQ29udGV4dFJl
ZiAgICBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBKU09iamVjdFJlZiAgICAgICAgICAgd2luZG93X29iamVjdCk7Cisg
ICAgZ2NoYXIgICAgICAgICAgICAgICAgICAgICogKCogY2hvb3NlX2ZpbGUpICAgICAgICAgICAg
KFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViRnJhbWUgICAgICAg
KmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqb2xkX2ZpbGUpOworICAgIGdib29sZWFu
ICAgICAgICAgICAgICAgICAgICgqIHNjcmlwdF9hbGVydCkgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIgICAgICAgICAgKmFsZXJ0X21lc3NhZ2UpOworICAgIGdib29sZWFuICAgICAg
ICAgICAgICAgICAgICgqIHNjcmlwdF9jb25maXJtKSAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAg
ICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIgICAgICAgICAgKmNvbmZpcm1fbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAg
KmRpZF9jb25maXJtKTsKKyAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAoKiBzY3JpcHRf
cHJvbXB0KSAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICptZXNzYWdl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnY2hhciAgICAgICAgICAqZGVmYXVsdF92YWx1ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIqICAgICAg
ICAgICAgICAgKnZhbHVlKTsKKyAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAoKiBjb25z
b2xlX21lc3NhZ2UpICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBnY2hhciAgICAgICAgICAqbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgIGxp
bmVfbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciogICAgICAgICAgc291cmNlX2lkKTsKKyAgICB2b2lk
ICAgICAgICAgICAgICAgICAgICAgICAoKiBzZWxlY3RfYWxsKSAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgICAg
ICAoKiBjdXRfY2xpcGJvYXJkKSAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92
aWV3KTsKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAoKiBjb3B5X2NsaXBib2FyZCkg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKKyAgICB2b2lkICAgICAg
ICAgICAgICAgICAgICAgICAoKiBwYXN0ZV9jbGlwYm9hcmQpICAgICAgICAoV2ViS2l0V2ViVmll
dyAgICAgICAgKndlYl92aWV3KTsKIAogICAgIC8qCiAgICAgICogaW50ZXJuYWwKICAgICAgKi8K
LSAgICB2b2lkICAgKCpzZXRfc2Nyb2xsX2FkanVzdG1lbnRzKSAoV2ViS2l0V2ViVmlldyosIEd0
a0FkanVzdG1lbnQqLCBHdGtBZGp1c3RtZW50Kik7CisgICAgdm9pZCAgICAgICAgICAgICAgICAg
ICAgICAgKCogc2V0X3Njcm9sbF9hZGp1c3RtZW50cykgKFdlYktpdFdlYlZpZXcgICAgICAgICp3
ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR3RrQWRqdXN0bWVudCAgICAgICAgKmhhZGp1c3RtZW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtBZGp1
c3RtZW50ICAgICAgICAqdmFkanVzdG1lbnQpOwogfTsKIAogV0VCS0lUX0FQSSBHVHlwZQogd2Vi
a2l0X3dlYl92aWV3X2dldF90eXBlICh2b2lkKTsKIAotV0VCS0lUX0FQSSBHdGtXaWRnZXQqCitX
RUJLSVRfQVBJIEd0a1dpZGdldCAqCiB3ZWJraXRfd2ViX3ZpZXdfbmV3ICh2b2lkKTsKIAogV0VC
S0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfc2V0X21haW50YWluc19iYWNrX2ZvcndhcmRf
bGlzdCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGdib29sZWFuIGZsYWcpOword2Via2l0X3dl
Yl92aWV3X3NldF9tYWludGFpbnNfYmFja19mb3J3YXJkX2xpc3QgKFdlYktpdFdlYlZpZXcgICAg
ICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgZmxhZyk7CiAKLVdFQktJVF9BUEkgV2ViS2l0
V2ViQmFja0ZvcndhcmRMaXN0Kgotd2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlz
dCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOworV0VCS0lUX0FQSSBXZWJLaXRXZWJCYWNrRm9y
d2FyZExpc3QgKgord2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlzdCAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xl
YW4KLXdlYmtpdF93ZWJfdmlld19nb190b19iYWNrX2ZvcndhcmRfaXRlbSAoV2ViS2l0V2ViVmll
dyAqd2ViX3ZpZXcsIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBpdGVtKTsKK3dlYmtpdF93ZWJfdmll
d19nb190b19iYWNrX2ZvcndhcmRfaXRlbSAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAq
d2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0gKml0ZW0pOwogCiBXRUJLSVRfQVBJIGdib29sZWFuCi13
ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2JhY2sgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKK3dl
YmtpdF93ZWJfdmlld19jYW5fZ29fYmFjayAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIGdib29sZWFuCi13ZWJraXRfd2Vi
X3ZpZXdfY2FuX2dvX2JhY2tfb3JfZm9yd2FyZCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGdp
bnQgc3RlcHMpOword2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrX29yX2ZvcndhcmQgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAgICAgc3RlcHMp
OwogCiBXRUJLSVRfQVBJIGdib29sZWFuCi13ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQg
KFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19jYW5fZ29fZm9yd2Fy
ZCAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBX
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19nb19iYWNrIChXZWJLaXRXZWJWaWV3KiB3
ZWJfdmlldyk7Cit3ZWJraXRfd2ViX3ZpZXdfZ29fYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKIAogV0VCS0lUX0FQSSB2b2lkCi13
ZWJraXRfd2ViX3ZpZXdfZ29fYmFja19vcl9mb3J3YXJkIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmll
dywgZ2ludCBzdGVwcyk7Cit3ZWJraXRfd2ViX3ZpZXdfZ29fYmFja19vcl9mb3J3YXJkICAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgICAgICAgICAgICAgICAgICBz
dGVwcyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X2dvX2ZvcndhcmQgKFdl
YktpdFdlYlZpZXcqIHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19nb19mb3J3YXJkICAgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBXRUJL
SVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcgKFdlYktpdFdlYlZpZXcq
IHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIHZvaWQK
LXdlYmtpdF93ZWJfdmlld19vcGVuIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2No
YXIqIHVyaSk7Cit3ZWJraXRfd2ViX3ZpZXdfb3BlbiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICp1cmkpOwog
CiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19yZWxvYWQgKFdlYktpdFdlYlZpZXcg
KndlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19yZWxvYWQgICAgICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIHZvaWQK
LXdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNv
bnN0IGdjaGFyKiBjb250ZW50LCBjb25zdCBnY2hhciogY29udGVudF9taW1lX3R5cGUsIGNvbnN0
IGdjaGFyKiBjb250ZW50X2VuY29kaW5nLCBjb25zdCBnY2hhciogYmFzZV91cmkpOword2Via2l0
X3dlYl92aWV3X2xvYWRfc3RyaW5nICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqY29udGVudCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAq
Y29udGVudF9taW1lX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKmNvbnRlbnRfZW5jb2RpbmcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg
ICAgICAgICAgKmJhc2VfdXJpKTsKIAogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdf
bG9hZF9odG1sX3N0cmluZyAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNvbnN0IGdjaGFyKiBj
b250ZW50LCBjb25zdCBnY2hhciogYmFzZV91cmkpOword2Via2l0X3dlYl92aWV3X2xvYWRfaHRt
bF9zdHJpbmcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciAgICAgICAgICAqY29udGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqYmFzZV91cmkpOwogCiBXRUJL
SVRfQVBJIGdib29sZWFuCi13ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQgKFdlYktpdFdlYlZp
ZXcqIHdlYl92aWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlX3NlbnNpdGl2
ZSwgZ2Jvb2xlYW4gZm9yd2FyZCwgZ2Jvb2xlYW4gd3JhcCk7Cit3ZWJraXRfd2ViX3ZpZXdfc2Vh
cmNoX3RleHQgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92
aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGdjaGFyICAgICAgICAgICpzdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgIGNhc2Vfc2Vuc2l0aXZl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29s
ZWFuICAgICAgICAgICAgICBmb3J3YXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICB3cmFwKTsKIAogV0VCS0lU
X0FQSSBndWludAotd2Via2l0X3dlYl92aWV3X21hcmtfdGV4dF9tYXRjaGVzIChXZWJLaXRXZWJW
aWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRp
dmUsIGd1aW50IGxpbWl0KTsKK3dlYmtpdF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcyAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAg
KnN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnYm9vbGVhbiAgICAgICAgICAgICAgY2FzZV9zZW5zaXRpdmUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgIGxp
bWl0KTsKIAogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfc2V0X2hpZ2hsaWdodF90
ZXh0X21hdGNoZXMgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBnYm9vbGVhbiBoaWdobGlnaHQp
Oword2Via2l0X3dlYl92aWV3X3NldF9oaWdobGlnaHRfdGV4dF9tYXRjaGVzICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgaGlnaGxpZ2h0KTsKIAog
V0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlcyAoV2Vi
S2l0V2ViVmlldyogd2ViX3ZpZXcpOword2Via2l0X3dlYl92aWV3X3VubWFya190ZXh0X21hdGNo
ZXMgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAKLVdFQktJ
VF9BUEkgV2ViS2l0V2ViRnJhbWUqCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUgKFdl
YktpdFdlYlZpZXcqIHdlYl92aWV3KTsKK1dFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUgKgord2Vi
a2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcgICAgICAgICp3ZWJfdmlldyk7CiAKLVdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUqCi13ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2ZvY3VzZWRfZnJhbWUgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsK
K1dFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUgKgord2Via2l0X3dlYl92aWV3X2dldF9mb2N1c2Vk
X2ZyYW1lICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAK
IFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfc2NyaXB0IChXZWJLaXRX
ZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIHNjcmlwdCk7Cit3ZWJraXRfd2ViX3ZpZXdf
ZXhlY3V0ZV9zY3JpcHQgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndl
Yl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdjaGFyICAgICAgICAgICpzY3JpcHQpOwogCiBXRUJLSVRfQVBJIGdib29sZWFuCi13
ZWJraXRfd2ViX3ZpZXdfY2FuX2N1dF9jbGlwYm9hcmQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3
KTsKK3dlYmtpdF93ZWJfdmlld19jYW5fY3V0X2NsaXBib2FyZCAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIGdib29sZWFuCi13ZWJr
aXRfd2ViX3ZpZXdfY2FuX2NvcHlfY2xpcGJvYXJkIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7
Cit3ZWJraXRfd2ViX3ZpZXdfY2FuX2NvcHlfY2xpcGJvYXJkICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKIAogV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0
X3dlYl92aWV3X2Nhbl9wYXN0ZV9jbGlwYm9hcmQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsK
K3dlYmtpdF93ZWJfdmlld19jYW5fcGFzdGVfY2xpcGJvYXJkICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJf
dmlld19jdXRfY2xpcGJvYXJkIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7Cit3ZWJraXRfd2Vi
X3ZpZXdfY3V0X2NsaXBib2FyZCAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgKndlYl92aWV3KTsKIAogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfY29weV9j
bGlwYm9hcmQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19jb3B5
X2NsaXBib2FyZCAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3Zp
ZXcpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19wYXN0ZV9jbGlwYm9hcmQg
KFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19wYXN0ZV9jbGlwYm9h
cmQgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBX
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19kZWxldGVfc2VsZWN0aW9uIChXZWJLaXRX
ZWJWaWV3KiB3ZWJfdmlldyk7Cit3ZWJraXRfd2ViX3ZpZXdfZGVsZXRlX3NlbGVjdGlvbiAgICAg
ICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKIAogV0VCS0lUX0FQ
SSBnYm9vbGVhbgotd2Via2l0X3dlYl92aWV3X2hhc19zZWxlY3Rpb24gKFdlYktpdFdlYlZpZXcq
IHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld19oYXNfc2VsZWN0aW9uICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIHZvaWQK
LXdlYmtpdF93ZWJfdmlld19zZWxlY3RfYWxsIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7Cit3
ZWJraXRfd2ViX3ZpZXdfc2VsZWN0X2FsbCAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgKndlYl92aWV3KTsKIAogV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X3dl
Yl92aWV3X2dldF9lZGl0YWJsZSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOword2Via2l0X3dl
Yl92aWV3X2dldF9lZGl0YWJsZSAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3NldF9l
ZGl0YWJsZSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGdib29sZWFuIGZsYWcpOword2Via2l0
X3dlYl92aWV3X3NldF9lZGl0YWJsZSAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgZmxhZyk7CiAKLVdFQktJVF9BUEkgR3Rr
VGFyZ2V0TGlzdCoKLXdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdCAoV2ViS2l0
V2ViVmlldyogd2ViX3ZpZXcpOworV0VCS0lUX0FQSSBHdGtUYXJnZXRMaXN0ICoKK3dlYmtpdF93
ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdCAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAg
ICAgICAqd2ViX3ZpZXcpOwogCi1XRUJLSVRfQVBJIEd0a1RhcmdldExpc3QqCi13ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3Bhc3RlX3RhcmdldF9saXN0IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7CitX
RUJLSVRfQVBJIEd0a1RhcmdldExpc3QgKgord2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJn
ZXRfbGlzdCAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAKIFdF
QktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3NldF9zZXR0aW5ncyAoV2ViS2l0V2ViVmll
dyogd2ViX3ZpZXcsIFdlYktpdFdlYlNldHRpbmdzKiBzZXR0aW5ncyk7Cit3ZWJraXRfd2ViX3Zp
ZXdfc2V0X3NldHRpbmdzICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
KndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdFdlYlNldHRpbmdzICAgICpzZXR0aW5ncyk7CiAKLVdFQktJVF9BUEkgV2ViS2l0
V2ViU2V0dGluZ3MqCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzIChXZWJLaXRXZWJWaWV3
KiB3ZWJfdmlldyk7CitXRUJLSVRfQVBJIFdlYktpdFdlYlNldHRpbmdzICoKK3dlYmtpdF93ZWJf
dmlld19nZXRfc2V0dGluZ3MgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIGdib29sZWFuCi13ZWJraXRfd2ViX3ZpZXdfZ2V0
X3RyYW5zcGFyZW50IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7Cit3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3RyYW5zcGFyZW50ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndl
Yl92aWV3KTsKIAogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfc2V0X3RyYW5zcGFy
ZW50IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgZ2Jvb2xlYW4gZmxhZyk7Cit3ZWJraXRfd2Vi
X3ZpZXdfc2V0X3RyYW5zcGFyZW50ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdib29sZWFuICAgICAgICAgICAgICBmbGFnKTsKIAogV0VCS0lUX0FQSSBnZmxvYXQK
LXdlYmtpdF93ZWJfdmlld19nZXRfem9vbV9sZXZlbCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcp
Oword2Via2l0X3dlYl92aWV3X2dldF96b29tX2xldmVsICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dl
Yl92aWV3X3NldF96b29tX2xldmVsIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgZ2Zsb2F0IHpv
b21fbGV2ZWwpOword2Via2l0X3dlYl92aWV3X3NldF96b29tX2xldmVsICAgICAgICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZmxvYXQgICAgICAgICAgICAgICAgem9vbV9s
ZXZlbCk7CiAKIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3pvb21faW4gKFdlYktp
dFdlYlZpZXcqIHdlYl92aWV3KTsKK3dlYmtpdF93ZWJfdmlld196b29tX2luICAgICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBXRUJLSVRf
QVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld196b29tX291dCAoV2ViS2l0V2ViVmlldyogd2ViX3Zp
ZXcpOword2Via2l0X3dlYl92aWV3X3pvb21fb3V0ICAgICAgICAgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdl
YmtpdF93ZWJfdmlld19nZXRfZnVsbF9jb250ZW50X3pvb20gKFdlYktpdFdlYlZpZXcqIHdlYl92
aWV3KTsKK3dlYmtpdF93ZWJfdmlld19nZXRfZnVsbF9jb250ZW50X3pvb20gICAgICAgICAgIChX
ZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtp
dF93ZWJfdmlld19zZXRfZnVsbF9jb250ZW50X3pvb20gKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3
LCBnYm9vbGVhbiBmdWxsX2NvbnRlbnRfem9vbSk7Cit3ZWJraXRfd2ViX3ZpZXdfc2V0X2Z1bGxf
Y29udGVudF96b29tICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu
ICAgICAgICAgICAgICBmdWxsX2NvbnRlbnRfem9vbSk7CiAKIEdfRU5EX0RFQ0xTCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>