<?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>70494</bug_id>
          
          <creation_ts>2011-10-20 05:29:48 -0700</creation_ts>
          <short_desc>[Qt] Adapt to QSG* to QQuick* API change in qtdeclarative</short_desc>
          <delta_ts>2011-10-31 11:31:00 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Hausmann">hausmann</reporter>
          <assigned_to name="Simon Hausmann">hausmann</assigned_to>
          <cc>laszlo.gombos</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>487507</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-10-20 05:29:48 -0700</bug_when>
    <thetext>We&apos;re using a bunch of the scene graph classes from QtDeclarative for our Qt 5 build. These
classes will be renamed soon. This bug tracks the patch for adapt the WebKit2/Qt5 build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489972</commentid>
    <comment_count>1</comment_count>
      <attachid>112324</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-10-25 05:23:31 -0700</bug_when>
    <thetext>Created attachment 112324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489973</commentid>
    <comment_count>2</comment_count>
      <attachid>112324</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-10-25 05:24:19 -0700</bug_when>
    <thetext>Comment on attachment 112324
Patch

Should not be landed with cq, but manually when the bot is updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490966</commentid>
    <comment_count>3</comment_count>
      <attachid>112324</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-26 10:05:54 -0700</bug_when>
    <thetext>Comment on attachment 112324
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491504</commentid>
    <comment_count>4</comment_count>
      <attachid>112670</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-10-27 06:10:45 -0700</bug_when>
    <thetext>Created attachment 112670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491507</commentid>
    <comment_count>5</comment_count>
      <attachid>112670</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-27 06:12:50 -0700</bug_when>
    <thetext>Comment on attachment 112670
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492301</commentid>
    <comment_count>6</comment_count>
      <attachid>112829</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-10-28 01:12:17 -0700</bug_when>
    <thetext>Created attachment 112829
Patch for landing

This is the right patch for landing (with the updatePaintNode hunk removed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492407</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-10-28 06:14:00 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/98721 and one more fix landed in http://trac.webkit.org/changeset/98722</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112324</attachid>
            <date>2011-10-25 05:23:31 -0700</date>
            <delta_ts>2011-10-27 06:10:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70494-20111025142332.patch</filename>
            <type>text/plain</type>
            <size>24731</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzMzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNDhhNWI4OTYwNWRm
MDBkZWNhMDMzZGM3NDVmNTU2NzQzY2RlNGUyYS4uYTA5OWU4OTczZDM5ZTllOGRmZjIxNjNkYTgz
OGU1ZmZmY2QyM2ZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0xMC0y
NSAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CisKKyAgICAgICAg
W1F0XSBBZGFwdCB0byBRU0cqIHRvIFFRdWljayogQVBJIGNoYW5nZSBpbiBxdGRlY2xhcmF0aXZl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBRU3Rh
bmRhcmRQYXRocyBpbnN0ZWFkIG9mIFFEZXNrdG9wTG9jYXRpb24uCisKKyAgICAgICAgKiBBcGkv
cXdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVu
dFN0b3JhZ2UpOgorCiAyMDExLTEwLTI0ICBEZWVwYWsgU2hlcnZlZ2hhciAgPGJwd3Y2NEBtb3Rv
cm9sYS5jb20+CiAKICAgICAgICAgW1F0XSBmYXN0L2V2ZW50cy9tZWRpYS1mb2N1cy1pbi1zdGFu
ZGFsb25lLW1lZGlhLWRvY3VtZW50Lmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ZmY0NDkyY2Uz
YjFkMTkxOWIwYmU1NjVmOWI1NGUyOWZjOGRkZDM1Li5kMWYwYzc0M2JiMTE1MmJiNWJiNTI0YzUw
YjljODZjNmI3MGUzOTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMTAtMjUg
IFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgorCisgICAgICAgIFtR
dF0gQWRhcHQgdG8gUVNHKiB0byBRUXVpY2sqIEFQSSBjaGFuZ2UgaW4gcXRkZWNsYXJhdGl2ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0OTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgUVF1aWNr
KiBpbnN0ZWFkIG9mIFFTRyogYXMgd2VsbCBhcyBRU3RhbmRhcmRQYXRocworICAgICAgICBpbnN0
ZWFkIG9mIFFEZXNrdG9wTG9jYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Fk
ZXNrdG9wd2Vidmlldy5jcHA6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXc6OlFEZXNrdG9wV2Vi
Vmlldyk6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXc6Omdlb21ldHJ5Q2hhbmdlZCk6CisgICAg
ICAgIChRRGVza3RvcFdlYlZpZXc6OmV2ZW50KToKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlld1By
aXZhdGU6OmVuZ2luZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZp
ZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuY3BwOgorICAg
ICAgICAoUVRvdWNoV2ViUGFnZTo6UVRvdWNoV2ViUGFnZSk6CisgICAgICAgIChRVG91Y2hXZWJQ
YWdlOjp1cGRhdGVQYWludE5vZGUpOgorICAgICAgICAoUVRvdWNoV2ViUGFnZTo6ZXZlbnQpOgor
ICAgICAgICAoUVRvdWNoV2ViUGFnZTo6Z2VvbWV0cnlDaGFuZ2VkKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3F0b3VjaHdlYnZpZXcuY3BwOgorICAgICAgICAoUVRvdWNoV2ViVmlldzo6UVRvdWNoV2ViVmll
dyk6CisgICAgICAgIChRVG91Y2hXZWJWaWV3OjpnZW9tZXRyeUNoYW5nZWQpOgorICAgICAgICAo
UVRvdWNoV2ViVmlldzo6dG91Y2hFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9x
dG91Y2h3ZWJ2aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy90ZXN0d2lu
ZG93Lmg6CisgICAgICAgIChUZXN0V2luZG93OjpUZXN0V2luZG93KToKKyAgICAgICAgKFRlc3RX
aW5kb3c6OnJlc2l6ZUV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXREZXNrdG9wV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFF0RGVza3RvcFdlYlBhZ2VQcm94eTo6Y3JlYXRlUG9w
dXBNZW51UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFNHVXBkYXRlUXVldWUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpRdFNHVXBkYXRlUXVldWU6OlF0U0dVcGRhdGVRdWV1ZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9xdC9RdFRvdWNoVmlld0ludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0VG91
Y2hWaWV3SW50ZXJmYWNlOjplbmdpbmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFZpZXdw
b3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0Ojp2aXNpYmxlUmVjdElu
Q29udGVudENvb3JkaW5hdGUpOgorICAgICAgICAoV2ViS2l0Ojpjb250ZW50UmVjdEluVmlld3Bv
cnRDb29yZGluYXRlKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5n
aW5lOjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9x
dC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQv
V2ViQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdERhdGFMb2NhdGlvbik6
CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3A6OldlYlBvcHVwTWVu
dVByb3h5UXREZXNrdG9wKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJv
eHlRdERlc2t0b3AuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlRdERlc2t0
b3A6OmNyZWF0ZSk6CisKIDIwMTEtMTAtMjUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBnb190b19iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtKCkgdG8gV2ViS2l0MiBHVEsrIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYnNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5n
cy5jcHAKaW5kZXggMTcxNGVlMzc5ZmNkM2I1MThlZDQ5OGRjMDY1ODY0OGFjMzc1MTdkYi4uMmJh
ODMzMzY2YzFkYjExNTNkMDU2OWUwNmViYjZkMDAxNDc5Mzc3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2Vic2V0dGluZ3MuY3BwCkBAIC00NSw3ICs0NSwxMSBAQAogI2luY2x1ZGUgIkZpbGVTeXN0
ZW0uaCIKIAogI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZF
UlNJT05fQ0hFQ0soNSwgMCwgMCkKKyNpbmNsdWRlIDxRU3RhbmRhcmRQYXRocz4KKyNlbHNlCiAj
aW5jbHVkZSA8UURlc2t0b3BTZXJ2aWNlcz4KKyNlbmRpZgogI2luY2x1ZGUgPFFEaXI+CiAjaW5j
bHVkZSA8UUhhc2g+CiAjaW5jbHVkZSA8UVNoYXJlZERhdGE+CkBAIC0xMTI5LDcgKzExMzMsMTEg
QEAgdm9pZCBRV2ViU2V0dGluZ3M6OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFFTdHJp
bmcmIHBhdGgpCiAKICAgICBpZiAocGF0aC5pc0VtcHR5KCkpIHsKIAorI2lmIFFUX1ZFUlNJT04g
Pj0gUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQorICAgICAgICBzdG9yYWdlUGF0aCA9IFFTdGFu
ZGFyZFBhdGhzOjp3cml0YWJsZUxvY2F0aW9uKFFTdGFuZGFyZFBhdGhzOjpEYXRhTG9jYXRpb24p
OworI2Vsc2UKICAgICAgICAgc3RvcmFnZVBhdGggPSBRRGVza3RvcFNlcnZpY2VzOjpzdG9yYWdl
TG9jYXRpb24oUURlc2t0b3BTZXJ2aWNlczo6RGF0YUxvY2F0aW9uKTsKKyNlbmRpZgogICAgICAg
ICBpZiAoc3RvcmFnZVBhdGguaXNFbXB0eSgpKQogICAgICAgICAgICAgc3RvcmFnZVBhdGggPSBX
ZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoUURpcjo6aG9tZVBhdGgoKSwgUUNvcmVB
cHBsaWNhdGlvbjo6YXBwbGljYXRpb25OYW1lKCkpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCmluZGV4IGRi
M2EzZDhkYTc5N2QzNTdkNWQxYzNjN2JjZjEyYjVkMTNkNDJmYTAuLjIzNTZjNGU4YjhlN2JlZDQw
ZGY2ZjdmOWNhNzkwM2E1ODMzYWYzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHAKQEAgLTI5LDkgKzI5LDkgQEAKICNpbmNs
dWRlIDxRR3JhcGhpY3NTY2VuZVJlc2l6ZUV2ZW50PgogI2luY2x1ZGUgPFFTdHlsZU9wdGlvbkdy
YXBoaWNzSXRlbT4KICNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZWVuZ2luZS5o
PgotI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXNnY2FudmFzLmg+Ci0jaW5jbHVkZSA8UXREZWNs
YXJhdGl2ZS9xc2dpdGVtLmg+Ci0jaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xc2d2aWV3Lmg+Cisj
aW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xcXVpY2tjYW52YXMuaD4KKyNpbmNsdWRlIDxRdERlY2xh
cmF0aXZlL3FxdWlja2l0ZW0uaD4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FxdWlja3ZpZXcu
aD4KICNpbmNsdWRlIDxRdEd1aS9RQ3Vyc29yPgogI2luY2x1ZGUgPFF0R3VpL1FEcmFnPgogI2lu
Y2x1ZGUgPFF0R3VpL1FGb2N1c0V2ZW50PgpAQCAtMjQyLDE1ICsyNDIsMTUgQEAgUVN0cmluZyBR
RGVza3RvcFdlYlZpZXdQcml2YXRlOjpydW5KYXZhU2NyaXB0UHJvbXB0KGNvbnN0IFFTdHJpbmcm
IG1lc3NhZ2UsIGNvbnMKICNlbmRpZgogfQogCi1RRGVza3RvcFdlYlZpZXc6OlFEZXNrdG9wV2Vi
VmlldyhRU0dJdGVtKiBwYXJlbnQpCi0gICAgOiBRU0dQYWludGVkSXRlbShwYXJlbnQpCitRRGVz
a3RvcFdlYlZpZXc6OlFEZXNrdG9wV2ViVmlldyhRUXVpY2tJdGVtKiBwYXJlbnQpCisgICAgOiBR
UXVpY2tQYWludGVkSXRlbShwYXJlbnQpCiAgICAgLCBkKG5ldyBRRGVza3RvcFdlYlZpZXdQcml2
YXRlKHRoaXMpKQogewogICAgIGluaXQoKTsKIH0KIAotUURlc2t0b3BXZWJWaWV3OjpRRGVza3Rv
cFdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91
cFJlZiwgUVNHSXRlbSogcGFyZW50KQotICAgIDogUVNHUGFpbnRlZEl0ZW0ocGFyZW50KQorUURl
c2t0b3BXZWJWaWV3OjpRRGVza3RvcFdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
UGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgUVF1aWNrSXRlbSogcGFyZW50KQorICAgIDogUVF1
aWNrUGFpbnRlZEl0ZW0ocGFyZW50KQogICAgICwgZChuZXcgUURlc2t0b3BXZWJWaWV3UHJpdmF0
ZSh0aGlzLCBjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYpKQogewogICAgIGluaXQoKTsKQEAgLTM5
Nyw3ICszOTcsNyBAQCB2b2lkIFFEZXNrdG9wV2ViVmlldzo6ZHJvcEV2ZW50KFFEcm9wRXZlbnQq
IGV2ZW50KQogCiB2b2lkIFFEZXNrdG9wV2ViVmlldzo6Z2VvbWV0cnlDaGFuZ2VkKGNvbnN0IFFS
ZWN0RiYgbmV3R2VvbWV0cnksIGNvbnN0IFFSZWN0RiYgb2xkR2VvbWV0cnkpCiB7Ci0gICAgUVNH
UGFpbnRlZEl0ZW06Omdlb21ldHJ5Q2hhbmdlZChuZXdHZW9tZXRyeSwgb2xkR2VvbWV0cnkpOwor
ICAgIFFRdWlja1BhaW50ZWRJdGVtOjpnZW9tZXRyeUNoYW5nZWQobmV3R2VvbWV0cnksIG9sZEdl
b21ldHJ5KTsKICAgICBpZiAobmV3R2VvbWV0cnkuc2l6ZSgpICE9IG9sZEdlb21ldHJ5LnNpemUo
KSkKICAgICAgICAgZC0+cGFnZS5zZXREcmF3aW5nQXJlYVNpemUobmV3R2VvbWV0cnkuc2l6ZSgp
LnRvU2l6ZSgpKTsKIH0KQEAgLTQxOCw4ICs0MTgsOCBAQCBib29sIFFEZXNrdG9wV2ViVmlldzo6
ZXZlbnQoUUV2ZW50KiBldikKICAgICBpZiAoZC0+cGFnZS5oYW5kbGVFdmVudChldikpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIGlmIChldi0+dHlwZSgpID09IFFFdmVudDo6SW5wdXRNZXRo
b2QpCi0gICAgICAgIHJldHVybiBmYWxzZTsgLy8gVGhpcyBpcyBuZWNlc3NhcnkgdG8gYXZvaWQg
YW4gZW5kbGVzcyBsb29wIGluIGNvbm5lY3Rpb24gd2l0aCBRU0dJdGVtOjpldmVudCgpLgotICAg
IHJldHVybiBRU0dJdGVtOjpldmVudChldik7CisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gVGhp
cyBpcyBuZWNlc3NhcnkgdG8gYXZvaWQgYW4gZW5kbGVzcyBsb29wIGluIGNvbm5lY3Rpb24gd2l0
aCBRUXVpY2tJdGVtOjpldmVudCgpLgorICAgIHJldHVybiBRUXVpY2tJdGVtOjpldmVudChldik7
CiB9CiAKIFdLUGFnZVJlZiBRRGVza3RvcFdlYlZpZXc6OnBhZ2VSZWYoKSBjb25zdApAQCAtNDQx
LDcgKzQ0MSw3IEBAIHZvaWQgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZGlkUmVsYXVuY2hQcm9j
ZXNzKCkKIAogUUpTRW5naW5lKiBRRGVza3RvcFdlYlZpZXdQcml2YXRlOjplbmdpbmUoKQogewot
ICAgIFFTR1ZpZXcqIHZpZXcgPSBxb2JqZWN0X2Nhc3Q8UVNHVmlldyo+KHEtPmNhbnZhcygpKTsK
KyAgICBRUXVpY2tWaWV3KiB2aWV3ID0gcW9iamVjdF9jYXN0PFFRdWlja1ZpZXcqPihxLT5jYW52
YXMoKSk7CiAgICAgaWYgKHZpZXcpCiAgICAgICAgIHJldHVybiB2aWV3LT5lbmdpbmUoKTsKICAg
ICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cWRlc2t0b3B3ZWJ2aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNr
dG9wd2Vidmlldy5oCmluZGV4IGQ5M2Q1ZDg0NGU0ZDIxOTVmNWNlN2I4M2IwMzIxMGU0ZjU2YzA4
MDQuLjI2OGRmMDQ2N2ZhNTYyZmM3ZDRjYmEzZGViMmIwYjYxZmZjZjYzOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuaApAQCAtMjQs
NyArMjQsNyBAQAogI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKICNpbmNsdWRlICJxd2Via2l0
dHlwZXMuaCIKICNpbmNsdWRlIDxRVXJsPgotI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXNncGFp
bnRlZGl0ZW0uaD4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FxdWlja3BhaW50ZWRpdGVtLmg+
CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KIAogY2xhc3MgUURlc2t0b3BXZWJWaWV3UHJp
dmF0ZTsKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdUUiB7CiAgICAgY2xhc3MgUGxhdGZv
cm1XZWJWaWV3OwogfQogCi1jbGFzcyBRV0VCS0lUX0VYUE9SVCBRRGVza3RvcFdlYlZpZXcgOiBw
dWJsaWMgUVNHUGFpbnRlZEl0ZW0geworY2xhc3MgUVdFQktJVF9FWFBPUlQgUURlc2t0b3BXZWJW
aWV3IDogcHVibGljIFFRdWlja1BhaW50ZWRJdGVtIHsKICAgICBRX09CSkVDVAogICAgIFFfUFJP
UEVSVFkoUVN0cmluZyB0aXRsZSBSRUFEIHRpdGxlIE5PVElGWSB0aXRsZUNoYW5nZWQpCiAgICAg
UV9QUk9QRVJUWShRVXJsIHVybCBSRUFEIHVybCBOT1RJRlkgdXJsQ2hhbmdlZCkKQEAgLTczLDcg
KzczLDcgQEAgcHVibGljOgogICAgICAgICBIdHRwRXJyb3IKICAgICB9OwogCi0gICAgUURlc2t0
b3BXZWJWaWV3KFFTR0l0ZW0qIHBhcmVudCA9IDApOworICAgIFFEZXNrdG9wV2ViVmlldyhRUXVp
Y2tJdGVtKiBwYXJlbnQgPSAwKTsKICAgICB2aXJ0dWFsIH5RRGVza3RvcFdlYlZpZXcoKTsKIAog
ICAgIFFVcmwgdXJsKCkgY29uc3Q7CkBAIC0xMjEsNyArMTIxLDcgQEAgcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgYm9vbCBldmVudChRRXZlbnQqKTsKIAogcHJpdmF0ZToKLSAgICBRRGVza3RvcFdl
YlZpZXcoV0tDb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiwgUVNHSXRlbSogcGFyZW50ID0gMCk7
CisgICAgUURlc2t0b3BXZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIFFRdWlj
a0l0ZW0qIHBhcmVudCA9IDApOwogICAgIFdLUGFnZVJlZiBwYWdlUmVmKCkgY29uc3Q7CiAKICAg
ICB2b2lkIGluaXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXRvdWNod2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0
b3VjaHdlYnBhZ2UuY3BwCmluZGV4IDhhYTY5M2E4MGMxZDU0ZWJjZTdiNWIzMmYzMmY3MDcwYmNk
NjE0ZTIuLmE4NTkwZGQ2MmRlYjU5OTVhZGRkNWQzNDBhYWJmNDU5NzNjNWFlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmNwcApAQCAt
MjksOCArMjksOCBAQAogI2luY2x1ZGUgPFFTR05vZGU+CiAjaW5jbHVkZSA8UVVybD4KIAotUVRv
dWNoV2ViUGFnZTo6UVRvdWNoV2ViUGFnZShRU0dJdGVtKiBwYXJlbnQpCi0gICAgOiBRU0dJdGVt
KHBhcmVudCkKK1FUb3VjaFdlYlBhZ2U6OlFUb3VjaFdlYlBhZ2UoUVF1aWNrSXRlbSogcGFyZW50
KQorICAgIDogUVF1aWNrSXRlbShwYXJlbnQpCiAgICAgLCBkKG5ldyBRVG91Y2hXZWJQYWdlUHJp
dmF0ZSh0aGlzKSkKIHsKICAgICBzZXRGbGFnKEl0ZW1IYXNDb250ZW50cyk7CkBAIC04NCw3ICs4
NCw3IEBAIFFTR05vZGUqIFFUb3VjaFdlYlBhZ2U6OnVwZGF0ZVBhaW50Tm9kZShRU0dOb2RlKiBv
bGROb2RlLCBVcGRhdGVQYWludE5vZGVEYXRhKikKICAgICAgICAgZC0+cGFnZS0+cmVuZGVyTmV4
dEZyYW1lKCk7CiAgICAgZC0+c2dVcGRhdGVRdWV1ZS5hcHBseVVwZGF0ZXMob2xkTm9kZSk7CiAK
LSAgICAvLyBRU0dJdGVtIHRha2VzIG93bmVyc2hpcCBvZiB0aGlzIHJldHVybiB2YWx1ZSBhbmQg
aXQncyBjaGlsZHJlbiBiZXR3ZWVuIGFuZCBhZnRlciB1cGRhdGVQYWludE5vZGUgY2FsbHMuCisg
ICAgLy8gUVF1aWNrSXRlbSB0YWtlcyBvd25lcnNoaXAgb2YgdGhpcyByZXR1cm4gdmFsdWUgYW5k
IGl0J3MgY2hpbGRyZW4gYmV0d2VlbiBhbmQgYWZ0ZXIgdXBkYXRlUGFpbnROb2RlIGNhbGxzLgog
ICAgIHJldHVybiBvbGROb2RlOwogfQogCkBAIC05NCw3ICs5NCw3IEBAIGJvb2wgUVRvdWNoV2Vi
UGFnZTo6ZXZlbnQoUUV2ZW50KiBldikKIHsKICAgICBpZiAoZC0+cGFnZS0+aGFuZGxlRXZlbnQo
ZXYpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gUVNHSXRlbTo6ZXZlbnQoZXYp
OworICAgIHJldHVybiBRUXVpY2tJdGVtOjpldmVudChldik7CiB9CiAKIHZvaWQgUVRvdWNoV2Vi
UGFnZTo6a2V5UHJlc3NFdmVudChRS2V5RXZlbnQqIGV2ZW50KQpAQCAtMTI5LDcgKzEyOSw3IEBA
IHZvaWQgUVRvdWNoV2ViUGFnZTo6dG91Y2hFdmVudChRVG91Y2hFdmVudCogZXZlbnQpCiAKIHZv
aWQgUVRvdWNoV2ViUGFnZTo6Z2VvbWV0cnlDaGFuZ2VkKGNvbnN0IFFSZWN0RiYgbmV3R2VvbWV0
cnksIGNvbnN0IFFSZWN0RiYgb2xkR2VvbWV0cnkpCiB7Ci0gICAgUVNHSXRlbTo6Z2VvbWV0cnlD
aGFuZ2VkKG5ld0dlb21ldHJ5LCBvbGRHZW9tZXRyeSk7CisgICAgUVF1aWNrSXRlbTo6Z2VvbWV0
cnlDaGFuZ2VkKG5ld0dlb21ldHJ5LCBvbGRHZW9tZXRyeSk7CiAgICAgaWYgKG5ld0dlb21ldHJ5
LnNpemUoKSAhPSBvbGRHZW9tZXRyeS5zaXplKCkpCiAgICAgICAgIGQtPnBhZ2UtPnNldERyYXdp
bmdBcmVhU2l6ZShuZXdHZW9tZXRyeS5zaXplKCkudG9TaXplKCkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuaAppbmRleCBiOGQ2ZWE1ODAx
YTg5MTE1OWUxMDY5MTNjMTJmNGRlNmVlMTYwMjNlLi42ZjgwMWMxYzI3ODE5OGZhYzE4OGFhMjE4
MDY1YTlkZjBiZTQxMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F0b3VjaHdlYnBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F0b3VjaHdlYnBhZ2UuaApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgInF3ZWJraXRnbG9i
YWwuaCIKICNpbmNsdWRlICJxd2Via2l0dHlwZXMuaCIKIAotI2luY2x1ZGUgPFF0RGVjbGFyYXRp
dmUvcXNnaXRlbS5oPgorI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXF1aWNraXRlbS5oPgogI2lu
Y2x1ZGUgPFFTaGFyZWRQb2ludGVyPgogCiBjbGFzcyBRVG91Y2hXZWJQYWdlUHJpdmF0ZTsKQEAg
LTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBRdFRvdWNoVmlld0ludGVy
ZmFjZTsKIH0KIAotY2xhc3MgUVdFQktJVF9FWFBPUlQgUVRvdWNoV2ViUGFnZSA6IHB1YmxpYyBR
U0dJdGVtIHsKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFFUb3VjaFdlYlBhZ2UgOiBwdWJsaWMgUVF1
aWNrSXRlbSB7CiAgICAgUV9PQkpFQ1QKICAgICBRX1BST1BFUlRZKFFTdHJpbmcgdGl0bGUgUkVB
RCB0aXRsZSBOT1RJRlkgdGl0bGVDaGFuZ2VkKQogICAgIFFfUFJPUEVSVFkoUVVybCB1cmwgUkVB
RCB1cmwgTk9USUZZIHVybENoYW5nZWQpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgSHR0cEVycm9yCiAgICAgfTsKIAotICAgIFFUb3VjaFdlYlBhZ2UoUVNHSXRlbSogcGFyZW50
ID0gMCk7CisgICAgUVRvdWNoV2ViUGFnZShRUXVpY2tJdGVtKiBwYXJlbnQgPSAwKTsKIAogICAg
IHZpcnR1YWwgflFUb3VjaFdlYlBhZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXRvdWNod2Vidmlldy5jcHAKaW5kZXggOTExOTBjZGM3MTFhODkyZDMzMTUw
MWYyMmJkMDlkN2M5NGM2OTU0My4uNWYyY2M1ZmU4YmIyMmQxNzFiNjNkNzA4ZTJkZTRlNTc4NmJk
OWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3
ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdl
YnZpZXcuY3BwCkBAIC05MiwxMSArOTIsMTEgQEAgdm9pZCBRVG91Y2hXZWJWaWV3UHJpdmF0ZTo6
c2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMKICAg
ICB1cGRhdGVWaWV3cG9ydENvbnN0cmFpbnRzKCk7CiB9CiAKLVFUb3VjaFdlYlZpZXc6OlFUb3Vj
aFdlYlZpZXcoUVNHSXRlbSogcGFyZW50KQotICAgIDogUVNHSXRlbShwYXJlbnQpCitRVG91Y2hX
ZWJWaWV3OjpRVG91Y2hXZWJWaWV3KFFRdWlja0l0ZW0qIHBhcmVudCkKKyAgICA6IFFRdWlja0l0
ZW0ocGFyZW50KQogICAgICwgZChuZXcgUVRvdWNoV2ViVmlld1ByaXZhdGUodGhpcykpCiB7Ci0g
ICAgc2V0RmxhZ3MoUVNHSXRlbTo6SXRlbUNsaXBzQ2hpbGRyZW5Ub1NoYXBlKTsKKyAgICBzZXRG
bGFncyhRUXVpY2tJdGVtOjpJdGVtQ2xpcHNDaGlsZHJlblRvU2hhcGUpOwogfQogCiBRVG91Y2hX
ZWJWaWV3Ojp+UVRvdWNoV2ViVmlldygpCkBAIC0xMTEsNyArMTExLDcgQEAgUVRvdWNoV2ViUGFn
ZSogUVRvdWNoV2ViVmlldzo6cGFnZSgpCiAKIHZvaWQgUVRvdWNoV2ViVmlldzo6Z2VvbWV0cnlD
aGFuZ2VkKGNvbnN0IFFSZWN0RiYgbmV3R2VvbWV0cnksIGNvbnN0IFFSZWN0RiYgb2xkR2VvbWV0
cnkpCiB7Ci0gICAgUVNHSXRlbTo6Z2VvbWV0cnlDaGFuZ2VkKG5ld0dlb21ldHJ5LCBvbGRHZW9t
ZXRyeSk7CisgICAgUVF1aWNrSXRlbTo6Z2VvbWV0cnlDaGFuZ2VkKG5ld0dlb21ldHJ5LCBvbGRH
ZW9tZXRyeSk7CiAgICAgaWYgKG5ld0dlb21ldHJ5LnNpemUoKSAhPSBvbGRHZW9tZXRyeS5zaXpl
KCkpIHsKICAgICAgICAgZC0+dXBkYXRlVmlld3BvcnRDb25zdHJhaW50cygpOwogICAgICAgICBk
LT5fcV92aWV3cG9ydFVwZGF0ZWQoKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFFUb3VjaFdl
YlZpZXc6Omdlb21ldHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmIG5ld0dlb21ldHJ5LCBjb25zdCBR
UmVjdEYmIG9sZAogdm9pZCBRVG91Y2hXZWJWaWV3Ojp0b3VjaEV2ZW50KFFUb3VjaEV2ZW50KiBl
dmVudCkKIHsKICAgICBmb3JjZUFjdGl2ZUZvY3VzKCk7Ci0gICAgUVNHSXRlbTo6dG91Y2hFdmVu
dChldmVudCk7CisgICAgUVF1aWNrSXRlbTo6dG91Y2hFdmVudChldmVudCk7CiB9CiAKICNpbmNs
dWRlICJtb2NfcXRvdWNod2Vidmlldy5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXRvdWNod2Vidmlldy5oCmluZGV4IDBmOGUyZjk5MDQ2YzQ5ZDNmZWRiMjk3NzAz
YzBiYTVmM2E1NmU1Y2MuLjQxMjQ4ZmJkNTI3MjA3YzYyY2I0MTRmN2QyZDQ5NzBhMTBhNTQxNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2Vidmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2Vidmlldy5o
CkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAKLSNpbmNs
dWRlIDxRdERlY2xhcmF0aXZlL3FzZ2l0ZW0uaD4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3Fx
dWlja2l0ZW0uaD4KIAogY2xhc3MgUVRvdWNoRXZlbnQ7CiBjbGFzcyBRVG91Y2hXZWJQYWdlOwpA
QCAtMzMsMTMgKzMzLDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgUXRUb3VjaFZpZXdJ
bnRlcmZhY2U7CiB9CiAKLWNsYXNzIFFXRUJLSVRfRVhQT1JUIFFUb3VjaFdlYlZpZXcgOiBwdWJs
aWMgUVNHSXRlbQorY2xhc3MgUVdFQktJVF9FWFBPUlQgUVRvdWNoV2ViVmlldyA6IHB1YmxpYyBR
UXVpY2tJdGVtCiB7CiAgICAgUV9PQkpFQ1QKICAgICBRX1BST1BFUlRZKFFUb3VjaFdlYlBhZ2Uq
IHBhZ2UgUkVBRCBwYWdlIENPTlNUQU5UIEZJTkFMKQogCiBwdWJsaWM6Ci0gICAgUVRvdWNoV2Vi
VmlldyhRU0dJdGVtKiBwYXJlbnQgPSAwKTsKKyAgICBRVG91Y2hXZWJWaWV3KFFRdWlja0l0ZW0q
IHBhcmVudCA9IDApOwogICAgIH5RVG91Y2hXZWJWaWV3KCk7CiAKICAgICBRVG91Y2hXZWJQYWdl
ICpwYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3Rlc3R3aW5kb3cuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
dGVzdHdpbmRvdy5oCmluZGV4IDZjZWRiMGMxYjkxZTE5NDAwYjNjYzhjZjQwNTJmZGZjZWUwYTY4
NWUuLjg3ODA5YzMzNDhmY2M3ZDhlOTRhNjQ2MmZmODc0YWNlYWJkMDc2ZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvdGVzdHdpbmRvdy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvdGVzdHdpbmRvdy5oCkBAIC0y
MiwyMCArMjIsMjAgQEAKIAogI2luY2x1ZGUgPFFSZXNpemVFdmVudD4KICNpbmNsdWRlIDxRU2Nv
cGVkUG9pbnRlcj4KLSNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FzZ3ZpZXcuaD4KLSNpbmNsdWRl
IDxRdERlY2xhcmF0aXZlL3FzZ2l0ZW0uaD4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FxdWlj
a2l0ZW0uaD4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FxdWlja3ZpZXcuaD4KIAogLy8gVGVz
dFdpbmRvdzogVXRpbGl0eSBjbGFzcyB0byBpZ25vcmUgUUdyYXBoaWNzVmlldyBkZXRhaWxzLgot
Y2xhc3MgVGVzdFdpbmRvdyA6IHB1YmxpYyBRU0dWaWV3IHsKK2NsYXNzIFRlc3RXaW5kb3cgOiBw
dWJsaWMgUVF1aWNrVmlldyB7CiBwdWJsaWM6Ci0gICAgaW5saW5lIFRlc3RXaW5kb3coUVNHSXRl
bSogd2ViVmlldyk7Ci0gICAgUVNjb3BlZFBvaW50ZXI8UVNHSXRlbT4gd2ViVmlldzsKKyAgICBp
bmxpbmUgVGVzdFdpbmRvdyhRUXVpY2tJdGVtKiB3ZWJWaWV3KTsKKyAgICBRU2NvcGVkUG9pbnRl
cjxRUXVpY2tJdGVtPiB3ZWJWaWV3OwogCiBwcm90ZWN0ZWQ6CiAgICAgaW5saW5lIHZvaWQgcmVz
aXplRXZlbnQoUVJlc2l6ZUV2ZW50Kik7CiB9OwogCi1pbmxpbmUgVGVzdFdpbmRvdzo6VGVzdFdp
bmRvdyhRU0dJdGVtKiB3ZWJWaWV3KQoraW5saW5lIFRlc3RXaW5kb3c6OlRlc3RXaW5kb3coUVF1
aWNrSXRlbSogd2ViVmlldykKICAgICA6IHdlYlZpZXcod2ViVmlldykKIHsKICAgICBRX0FTU0VS
VCh3ZWJWaWV3KTsKQEAgLTQ0LDcgKzQ0LDcgQEAgaW5saW5lIFRlc3RXaW5kb3c6OlRlc3RXaW5k
b3coUVNHSXRlbSogd2ViVmlldykKIAogaW5saW5lIHZvaWQgVGVzdFdpbmRvdzo6cmVzaXplRXZl
bnQoUVJlc2l6ZUV2ZW50KiBldmVudCkKIHsKLSAgICBRU0dDYW52YXM6OnJlc2l6ZUV2ZW50KGV2
ZW50KTsKKyAgICBRUXVpY2tWaWV3OjpyZXNpemVFdmVudChldmVudCk7CiAgICAgd2ViVmlldy0+
c2V0WCgwKTsKICAgICB3ZWJWaWV3LT5zZXRZKDApOwogICAgIHdlYlZpZXctPnNldFdpZHRoKGV2
ZW50LT5zaXplKCkud2lkdGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXREZXNrdG9wV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdERlc2t0b3BXZWJQYWdlUHJveHkuY3BwCmluZGV4IDY5MDVkZDM4Yzg4ZTA3ZThiNTVh
YjQ2NDBjYmI5MzYwN2UzZjllZmEuLjhmZmQ3ZDAzM2EyYjE1MDIwOWY0OGY4OGJmMGFlMTA1YjMw
NjE4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERlc2t0b3BX
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERlc2t0
b3BXZWJQYWdlUHJveHkuY3BwCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgUXREZXNrdG9wV2ViUGFn
ZVByb3h5Ojpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYsIGJv
b2wKIAogUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUXREZXNrdG9wV2ViUGFnZVByb3h5
OjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkqKQogewotICAgIFFTR0l0ZW0qIHdl
YlZpZXdJdGVtID0gc3RhdGljX2Nhc3Q8UURlc2t0b3BXZWJWaWV3UHJpdmF0ZSo+KG1fdmlld0lu
dGVyZmFjZSktPnE7CisgICAgUVF1aWNrSXRlbSogd2ViVmlld0l0ZW0gPSBzdGF0aWNfY2FzdDxR
RGVza3RvcFdlYlZpZXdQcml2YXRlKj4obV92aWV3SW50ZXJmYWNlKS0+cTsKICAgICByZXR1cm4g
V2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3A6OmNyZWF0ZShtX3dlYlBhZ2VQcm94eS5nZXQoKSwg
d2ViVmlld0l0ZW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRTR1VwZGF0ZVF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFNH
VXBkYXRlUXVldWUuY3BwCmluZGV4IGM4MmI0NDcxZTU5MTgxYzE2MjY5MzVhZWVmZTNjZjdkMWJk
N2Y2ODQuLjQxMGE0ODJhZjVlNDU5ZmEyYjJhNjJiZWI3ZGViMzgzMDUxMTk4MTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFNHVXBkYXRlUXVldWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFNHVXBkYXRlUXVldWUuY3BwCkBAIC0yMyw3
ICsyMyw3IEBACiAKICNpbmNsdWRlICJQYXNzT3duUHRyLmgiCiAjaW5jbHVkZSAiUXRTR1RpbGVO
b2RlLmgiCi0jaW5jbHVkZSA8UVNHSXRlbT4KKyNpbmNsdWRlIDxRUXVpY2tJdGVtPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApAQCAtNjUsNyArNjUsNyBAQCBzdHJ1Y3QgTm9kZVVwZGF0ZVN3YXBU
aWxlQnVmZmVycyA6IHB1YmxpYyBOb2RlVXBkYXRlIHsKICAgICB7IH0KIH07CiAKLVF0U0dVcGRh
dGVRdWV1ZTo6UXRTR1VwZGF0ZVF1ZXVlKFFTR0l0ZW0qIGl0ZW0pCitRdFNHVXBkYXRlUXVldWU6
OlF0U0dVcGRhdGVRdWV1ZShRUXVpY2tJdGVtICppdGVtKQogICAgIDogaXRlbShpdGVtKQogICAg
ICwgbGFzdFNjYWxlKDApCiAgICAgLCBsYXN0U2NhbGVOb2RlKDApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmgKaW5kZXggZDg5MDUyNTRhNmFiY2ZmZjJk
ZDk1NzQ3YzdhODIzYjkxZWY2YWUzZC4uZjcwYzUwNjY4MDUzZDJmMjZjZGE3YjkwMTEyOTA5YmU3
MzQ1YmMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0U0dVcGRh
dGVRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFNHVXBkYXRlUXVl
dWUuaApAQCAtMjcsNyArMjcsNyBAQAogCiBjbGFzcyBRSW1hZ2U7CiBjbGFzcyBRUmVjdDsKLWNs
YXNzIFFTR0l0ZW07CitjbGFzcyBRUXVpY2tJdGVtOwogY2xhc3MgUVNHTm9kZTsKIGNsYXNzIFFT
aXplOwogCkBAIC00MCwyMSArNDAsMjEgQEAgY2xhc3MgUXRTR1RpbGVOb2RlOwogLy8gVGFrZXMg
Y2FyZSBvZiB0YWtpbmcgdXBkYXRlIHJlcXVlc3RzIHRoZW4gZnVsZmlsbGluZyB0aGVtIGFzeW5j
aHJvbm91c2x5IG9uIHRoZSBzY2VuZSBncmFwaCB0aHJlYWQuCiBjbGFzcyBRdFNHVXBkYXRlUXVl
dWUgewogcHVibGljOgotICAgIFF0U0dVcGRhdGVRdWV1ZShRU0dJdGVtKik7CisgICAgUXRTR1Vw
ZGF0ZVF1ZXVlKFFRdWlja0l0ZW0qKTsKIAogICAgIGludCBjcmVhdGVUaWxlTm9kZShmbG9hdCBz
Y2FsZSk7CiAgICAgdm9pZCByZW1vdmVUaWxlTm9kZShpbnQgbm9kZUlEKTsKICAgICB2b2lkIHNl
dE5vZGVCYWNrQnVmZmVyKGludCBub2RlSUQsIGNvbnN0IFFJbWFnZSYgdGV4dHVyZSwgY29uc3Qg
UVJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IFFSZWN0JiB0YXJnZXRSZWN0KTsKICAgICB2b2lkIHN3
YXBUaWxlQnVmZmVycygpOwogCi0gICAgLy8gQ2FsbGVkIGJ5IHRoZSBRU0dJdGVtLgorICAgIC8v
IENhbGxlZCBieSB0aGUgUVF1aWNrSXRlbS4KICAgICB2b2lkIGFwcGx5VXBkYXRlcyhRU0dOb2Rl
KiBpdGVtTm9kZSk7CiAgICAgYm9vbCBpc1N3YXBQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9p
c1N3YXBQZW5kaW5nOyB9CiAKIHByaXZhdGU6CiAgICAgUVNHTm9kZSogZ2V0U2NhbGVOb2RlKGZs
b2F0IHNjYWxlLCBRU0dOb2RlKiBpdGVtTm9kZSk7CiAKLSAgICBRU0dJdGVtKiBpdGVtOworICAg
IFFRdWlja0l0ZW0qIGl0ZW07CiAgICAgRGVxdWU8T3duUHRyPE5vZGVVcGRhdGU+ID4gbm9kZVVw
ZGF0ZVF1ZXVlOwogICAgIEhhc2hNYXA8aW50LCBRdFNHVGlsZU5vZGUqPiBub2RlczsKICAgICBm
bG9hdCBsYXN0U2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRUb3VjaFZpZXdJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
VG91Y2hWaWV3SW50ZXJmYWNlLmNwcAppbmRleCBmNDE0NDM2ZDgxNmFiNTM1ZWM2Yjc1N2Q1YWYz
YWY0YTUyZmQ1MzAxLi43NjU4OGNmMGUyZGIzMTgxNzMxMjk3NzcwYTdiOWUzMjRlNjk3OTZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZpZXdJbnRlcmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFRvdWNoVmlld0ludGVy
ZmFjZS5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJxdG91Y2h3ZWJ2aWV3X3AuaCIK
IAogI2luY2x1ZGUgPFFEZWNsYXJhdGl2ZUVuZ2luZT4KLSNpbmNsdWRlIDxRU0dWaWV3PgorI2lu
Y2x1ZGUgPFFRdWlja1ZpZXc+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xODEsNyArMTgx
LDcgQEAgdm9pZCBRdFRvdWNoVmlld0ludGVyZmFjZTo6ZGlkUmVsYXVuY2hQcm9jZXNzKCkKIAog
UUpTRW5naW5lKiBRdFRvdWNoVmlld0ludGVyZmFjZTo6ZW5naW5lKCkKIHsKLSAgICBRU0dWaWV3
KiB2aWV3ID0gcW9iamVjdF9jYXN0PFFTR1ZpZXcqPihtX3BhZ2VWaWV3LT5jYW52YXMoKSk7Cisg
ICAgUVF1aWNrVmlldyogdmlldyA9IHFvYmplY3RfY2FzdDxRUXVpY2tWaWV3Kj4obV9wYWdlVmll
dy0+Y2FudmFzKCkpOwogICAgIGlmICh2aWV3KQogICAgICAgICByZXR1cm4gdmlldy0+ZW5naW5l
KCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCmluZGV4IGQ0MWI2M2ZjNzRl
Mzk4MjRkYTc0OWUwNDgyNmFhNWQ0NzczMWY5ZGYuLjIwZThhZDM3Y2ZhNzM4ODU0YmIzZGFhZjJl
YTQ4MDYzMDk5NGFmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCkBAIC0yMywxOCArMjMsMTgg
QEAKIAogI2luY2x1ZGUgIlBhc3NPd25QdHIuaCIKICNpbmNsdWRlIDxRUG9pbnRGPgotI2luY2x1
ZGUgPFF0RGVjbGFyYXRpdmUvcXNnaXRlbS5oPgorI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXF1
aWNraXRlbS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIGlubGluZSBRUmVjdEYg
dmlzaWJsZVJlY3RJbkNvbnRlbnRDb29yZGluYXRlKGNvbnN0IFFTR0l0ZW0qIGNvbnRlbnQsIGNv
bnN0IFFTR0l0ZW0qIHZpZXdwb3J0KQorc3RhdGljIGlubGluZSBRUmVjdEYgdmlzaWJsZVJlY3RJ
bkNvbnRlbnRDb29yZGluYXRlKGNvbnN0IFFRdWlja0l0ZW0qIGNvbnRlbnQsIGNvbnN0IFFRdWlj
a0l0ZW0qIHZpZXdwb3J0KQogewogICAgIGNvbnN0IFFSZWN0RiB2aWV3cG9ydEluQ29udGVudENv
b3JkaW5hdGUgPSBjb250ZW50LT5tYXBSZWN0RnJvbUl0ZW0odmlld3BvcnQsIHZpZXdwb3J0LT5i
b3VuZGluZ1JlY3QoKSk7CiAgICAgY29uc3QgUVJlY3RGIHZpc2libGVBcmVhID0gY29udGVudC0+
Ym91bmRpbmdSZWN0KCkuaW50ZXJzZWN0ZWQodmlld3BvcnRJbkNvbnRlbnRDb29yZGluYXRlKTsK
ICAgICByZXR1cm4gdmlzaWJsZUFyZWE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUVJlY3RGIGNvbnRl
bnRSZWN0SW5WaWV3cG9ydENvb3JkaW5hdGUoY29uc3QgUVNHSXRlbSogY29udGVudCwgY29uc3Qg
UVNHSXRlbSogdmlld3BvcnQpCitzdGF0aWMgaW5saW5lIFFSZWN0RiBjb250ZW50UmVjdEluVmll
d3BvcnRDb29yZGluYXRlKGNvbnN0IFFRdWlja0l0ZW0qIGNvbnRlbnQsIGNvbnN0IFFRdWlja0l0
ZW0qIHZpZXdwb3J0KQogewogICAgIHJldHVybiB2aWV3cG9ydC0+bWFwUmVjdEZyb21JdGVtKGNv
bnRlbnQsIGNvbnRlbnQtPmJvdW5kaW5nUmVjdCgpKTsKIH0KQEAgLTgwLDcgKzgwLDcgQEAgcHJp
dmF0ZToKICAgICBjb25zdCBxcmVhbCBwcmV2aW91c1NjYWxlOwogfTsKIAotUXRWaWV3cG9ydElu
dGVyYWN0aW9uRW5naW5lOjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUoY29uc3QgUVNHSXRl
bSogdmlld3BvcnQsIFFTR0l0ZW0qIGNvbnRlbnQpCitRdFZpZXdwb3J0SW50ZXJhY3Rpb25Fbmdp
bmU6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZShjb25zdCBRUXVpY2tJdGVtKiB2aWV3cG9y
dCwgUVF1aWNrSXRlbSogY29udGVudCkKICAgICA6IG1fdmlld3BvcnQodmlld3BvcnQpCiAgICAg
LCBtX2NvbnRlbnQoY29udGVudCkKICAgICAsIG1faXNVcGRhdGluZ0NvbnRlbnQoZmFsc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVy
YWN0aW9uRW5naW5lLmgKaW5kZXggOTIwMjkzMjY4ZDI1YWRkYWY2MDE2NDk4Y2RhMTI1MTYzMGEw
ZWEzOS4uMmFmOTNkMWYzZDlmZDE4ZTQ3NTlhZTJkZWI0YTI1MTkxOTYyNWI5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rp
b25FbmdpbmUuaApAQCAtMjcsNyArMjcsNyBAQAogCiBRVF9CRUdJTl9OQU1FU1BBQ0UKIGNsYXNz
IFFQb2ludEY7Ci1jbGFzcyBRU0dJdGVtOworY2xhc3MgUVF1aWNrSXRlbTsKIFFUX0VORF9OQU1F
U1BBQ0UKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFF0Vmll
d3BvcnRJbnRlcmFjdGlvbkVuZ2luZSA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX09CSkVDVAog
CiBwdWJsaWM6Ci0gICAgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKGNvbnN0IFFTR0l0ZW0q
LCBRU0dJdGVtKik7CisgICAgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKGNvbnN0IFFRdWlj
a0l0ZW0gKiwgUVF1aWNrSXRlbSAqKTsKICAgICB+UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
KCk7CiAKICAgICBzdHJ1Y3QgQ29uc3RyYWludHMgewpAQCAtODgsOCArODgsOCBAQCBwcml2YXRl
OgogCiAgICAgZnJpZW5kIGNsYXNzIFZpZXdwb3J0VXBkYXRlR3VhcmQ7CiAKLSAgICBjb25zdCBR
U0dJdGVtKiBjb25zdCBtX3ZpZXdwb3J0OwotICAgIFFTR0l0ZW0qIGNvbnN0IG1fY29udGVudDsK
KyAgICBjb25zdCBRUXVpY2tJdGVtKiBjb25zdCBtX3ZpZXdwb3J0OworICAgIFFRdWlja0l0ZW0q
IGNvbnN0IG1fY29udGVudDsKIAogICAgIENvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiAgICAg
Ym9vbCBtX2lzVXBkYXRpbmdDb250ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
V2ViQ29udGV4dFF0LmNwcAppbmRleCAxZjM3N2I2MTVmNmZlYmRlYTI5N2ZiODFhNTM4MGQ3Y2Ux
MzI0YmJmLi5iMGQ1YWM0YmE3NGYxYjBmMWUyMTJjNTY1NjJlMzEwNmI4ZjNkNTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcApAQCAtMzYsNyArMzYs
NyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKIAogI2luY2x1
ZGUgPFFDb3JlQXBwbGljYXRpb24+Ci0jaW5jbHVkZSA8UURlc2t0b3BTZXJ2aWNlcz4KKyNpbmNs
dWRlIDxRU3RhbmRhcmRQYXRocz4KICNpbmNsdWRlIDxRRGlyPgogI2luY2x1ZGUgPFFQcm9jZXNz
PgogCkBAIC00OSw3ICs0OSw3IEBAIHN0YXRpYyBRU3RyaW5nIGRlZmF1bHREYXRhTG9jYXRpb24o
KQogICAgIGlmICghc19kYXRhTG9jYXRpb24uaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gc19k
YXRhTG9jYXRpb247CiAKLSAgICBRU3RyaW5nIGRhdGFMb2NhdGlvbiA9IFFEZXNrdG9wU2Vydmlj
ZXM6OnN0b3JhZ2VMb2NhdGlvbihRRGVza3RvcFNlcnZpY2VzOjpEYXRhTG9jYXRpb24pOworICAg
IFFTdHJpbmcgZGF0YUxvY2F0aW9uID0gUVN0YW5kYXJkUGF0aHM6OndyaXRhYmxlTG9jYXRpb24o
UVN0YW5kYXJkUGF0aHM6OkRhdGFMb2NhdGlvbik7CiAgICAgaWYgKGRhdGFMb2NhdGlvbi5pc0Vt
cHR5KCkpCiAgICAgICAgIGRhdGFMb2NhdGlvbiA9IFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChRRGlyOjpob21lUGF0aCgpLCBRQ29yZUFwcGxpY2F0aW9uOjphcHBsaWNhdGlvbk5h
bWUoKSk7CiAgICAgc19kYXRhTG9jYXRpb24gPSBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQoZGF0YUxvY2F0aW9uLCAiLlF0V2ViS2l0LyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcC5jcHAKaW5k
ZXggYTFiNWJkZGZiZDk2ZDQ0YzNlMjMwNGVkMDYyODRiMjNlMmEyN2NmYy4uNjg3MDNmY2Y2ZmY4
YjY1NTA4ZmQ5MThmZDZjMjVhYTU2MzExZWYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AuY3BwCkBAIC0y
OCwxNSArMjgsMTUgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtUG9wdXBNZW51RGF0YS5oIgogI2lu
Y2x1ZGUgIldlYlBvcHVwSXRlbS5oIgotI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvUVNHQ2FudmFz
PgotI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvUVNHSXRlbT4KKyNpbmNsdWRlIDxRdERlY2xhcmF0
aXZlL1FRdWlja0NhbnZhcz4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL1FRdWlja0l0ZW0+CiAj
aW5jbHVkZSA8UVN0YW5kYXJkSXRlbU1vZGVsPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wOjpXZWJQ
b3B1cE1lbnVQcm94eVF0RGVza3RvcChXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50KiBjbGllbnQs
IFFTR0l0ZW0qIHdlYlZpZXdJdGVtKQorV2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3A6OldlYlBv
cHVwTWVudVByb3h5UXREZXNrdG9wKFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQqIGNsaWVudCwg
UVF1aWNrSXRlbSogd2ViVmlld0l0ZW0pCiAgICAgOiBRT2JqZWN0KCkKICAgICAsIFdlYlBvcHVw
TWVudVByb3h5KGNsaWVudCkKICAgICAsIG1fY29tYm9Cb3gobmV3IFF0V2ViQ29tYm9Cb3gpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlR
dERlc2t0b3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94
eVF0RGVza3RvcC5oCmluZGV4IDg4M2ViYzcyZjE1MTZmOTI0NTVhNWU0YzVkMzVkNTk2YjkyNTUy
MjQuLmQxNTg5YWJhMGRkZGExYTkxZWVjMDg1MDJlZmQzMjY5ZGExYjJmNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0RGVz
a3RvcC5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8UXRDb3JlL1FPYmplY3Q+CiAjaW5j
bHVkZSA8UXRDb3JlL1FXZWFrUG9pbnRlcj4KIAotY2xhc3MgUVNHSXRlbTsKK2NsYXNzIFFRdWlj
a0l0ZW07CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFF0V2ViQ29tYm9Cb3g7CkBAIC00
NSw3ICs0NSw3IEBAIGNsYXNzIFdlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wIDogcHVibGljIFFP
YmplY3QsIHB1YmxpYyBXZWJQb3B1cE1lbnVQcm94eSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
V2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AoKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YlBvcHVwTWVudVByb3h5UXREZXNrdG9wPiBjcmVhdGUoV2ViUG9wdXBNZW51UHJveHk6OkNsaWVu
dCogY2xpZW50LCBRU0dJdGVtKiB3ZWJWaWV3SXRlbSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcD4gY3JlYXRlKFdlYlBvcHVwTWVudVByb3h5OjpDbGll
bnQqIGNsaWVudCwgUVF1aWNrSXRlbSogd2ViVmlld0l0ZW0pCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wKGNsaWVudCwgd2ViVmll
d0l0ZW0pKTsKICAgICB9CkBAIC01OCwxMyArNTgsMTMgQEAgcHJpdmF0ZSBRX1NMT1RTOgogICAg
IHZvaWQgb25Qb3B1cE1lbnVIaWRkZW4oKTsKIAogcHJpdmF0ZToKLSAgICBXZWJQb3B1cE1lbnVQ
cm94eVF0RGVza3RvcChXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50KiwgUVNHSXRlbSogd2ViVmll
d0l0ZW0pOworICAgIFdlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wKFdlYlBvcHVwTWVudVByb3h5
OjpDbGllbnQqLCBRUXVpY2tJdGVtKiB3ZWJWaWV3SXRlbSk7CiAgICAgdm9pZCBwb3B1bGF0ZShj
b25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYpOwogCiAgICAgLy8gUXQgZ3VhcmRlZCBwb2ludGVy
IGJlY2F1c2UgUVdpZGdldHMgaGF2ZSB0aGVpciBvd24gbWVtb3J5IG1hbmFnZW1lbnQgYW5kCiAg
ICAgLy8gd2hlbiBjbG9zaW5nIHRoZSBVSSB0aGUgY29tYm9ib3ggd2lsbCBiZSBkZWxldGVkIGJl
Zm9yZSB3ZSBhcmUuCiAgICAgUVdlYWtQb2ludGVyPFdlYkNvcmU6OlF0V2ViQ29tYm9Cb3g+IG1f
Y29tYm9Cb3g7Ci0gICAgUVNHSXRlbSogbV93ZWJWaWV3SXRlbTsKKyAgICBRUXVpY2tJdGVtKiBt
X3dlYlZpZXdJdGVtOwogICAgIGludDMyX3QgbV9zZWxlY3RlZEluZGV4OwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112670</attachid>
            <date>2011-10-27 06:10:45 -0700</date>
            <delta_ts>2011-10-28 06:14:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70494-20111027151043.patch</filename>
            <type>text/plain</type>
            <size>31236</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1NTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNzQyZmZlYzM4Zjk2
MjU1MDUzYTI4MDM4YzEyYTk3OTc4NDM1ZGJhNS4uZDQ4NDk0MTlkOTExNjJjZTk2ZDgxY2U1NDkw
ZGNjNzQzMmNlMDlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMC0y
NyAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CisKKyAgICAgICAg
W1F0XSBBZGFwdCB0byBRU0cqIHRvIFFRdWljayogQVBJIGNoYW5nZSBpbiBxdGRlY2xhcmF0aXZl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBRUXVp
Y2sqIGluc3RlYWQgb2YgUVNHKiBhcyB3ZWxsIGFzIFFTdGFuZGFyZFBhdGhzCisgICAgICAgIGlu
c3RlYWQgb2YgUURlc2t0b3BMb2NhdGlvbi4KKworICAgICAgICAqIEFwaS9xd2Vic2V0dGluZ3Mu
Y3BwOgorICAgICAgICAoUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZSk6CisK
IDIwMTEtMTAtMjYgIFphbGFuIEJ1anRhcyAgPHpidWp0YXNAZ21haWwuY29tPgogCiAgICAgICAg
IE5hbWUgdmlld3BvcnQgY2hhbmdlIGV2ZW50IGNvbnNpc3RlbnRseS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5
NzgzN2IzODI2MDI2ZjA2N2JlN2FkYWZkNDIxOGRiZjU5OTFjNzMxLi43MjA1YmUxOWJkZmY3MzNi
MGVkZmNkYTBlYTAzMjBkMjhmNzg2ODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIw
MTEtMTAtMjcgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgorCisg
ICAgICAgIFtRdF0gQWRhcHQgdG8gUVNHKiB0byBRUXVpY2sqIEFQSSBjaGFuZ2UgaW4gcXRkZWNs
YXJhdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzA0OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgUVF1aWNrKiBpbnN0ZWFkIG9mIFFTRyogYXMgd2VsbCBhcyBRU3RhbmRhcmRQYXRocworICAg
ICAgICBpbnN0ZWFkIG9mIFFEZXNrdG9wTG9jYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHA6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXc6OlFE
ZXNrdG9wV2ViVmlldyk6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXc6Omdlb21ldHJ5Q2hhbmdl
ZCk6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXc6OmV2ZW50KToKKyAgICAgICAgKFFEZXNrdG9w
V2ViVmlld1ByaXZhdGU6OmVuZ2luZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZGVz
a3RvcHdlYnZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2Uu
Y3BwOgorICAgICAgICAoUVRvdWNoV2ViUGFnZTo6UVRvdWNoV2ViUGFnZSk6CisgICAgICAgIChR
VG91Y2hXZWJQYWdlOjp1cGRhdGVQYWludE5vZGUpOgorICAgICAgICAoUVRvdWNoV2ViUGFnZTo6
ZXZlbnQpOgorICAgICAgICAoUVRvdWNoV2ViUGFnZTo6Z2VvbWV0cnlDaGFuZ2VkKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3F0b3VjaHdlYnZpZXcuY3BwOgorICAgICAgICAoUVRvdWNoV2ViVmlldzo6UVRv
dWNoV2ViVmlldyk6CisgICAgICAgIChRVG91Y2hXZWJWaWV3OjpnZW9tZXRyeUNoYW5nZWQpOgor
ICAgICAgICAoUVRvdWNoV2ViVmlldzo6dG91Y2hFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC9xdG91Y2h3ZWJ2aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0
cy90ZXN0d2luZG93Lmg6CisgICAgICAgIChUZXN0V2luZG93OjpUZXN0V2luZG93KToKKyAgICAg
ICAgKFRlc3RXaW5kb3c6OnJlc2l6ZUV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRE
ZXNrdG9wV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFF0RGVza3RvcFdlYlBhZ2VQcm94eTo6
Y3JlYXRlUG9wdXBNZW51UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFNHVXBkYXRl
UXVldWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdFNHVXBkYXRlUXVldWU6OlF0U0dVcGRhdGVR
dWV1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9xdC9RdFRvdWNoVmlld0ludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlF0VG91Y2hWaWV3SW50ZXJmYWNlOjplbmdpbmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9x
dC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb250
ZW50UmVjdEluVmlld3BvcnRDb29yZGluYXRlcyk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3Bv
cnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHREYXRhTG9jYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94
eVF0RGVza3RvcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5UXREZXNr
dG9wOjpXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0
L1dlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
TWVudVByb3h5UXREZXNrdG9wOjpjcmVhdGUpOgorCiAyMDExLTEwLTI3ICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBXZWJBdWRp
byBBdWRpb0ZpbGVSZWFkZXIgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0
dGluZ3MuY3BwCmluZGV4IDE3MTRlZTM3OWZjZDNiNTE4ZWQ0OThkYzA2NTg2NDhhYzM3NTE3ZGIu
LjJiYTgzMzM2NmMxZGIxMTUzZDA1NjllMDZlYmI2ZDAwMTQ3OTM3NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYnNldHRpbmdzLmNwcApAQCAtNDUsNyArNDUsMTEgQEAKICNpbmNsdWRlICJGaWxl
U3lzdGVtLmgiCiAKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CisjaWYgUVRfVkVSU0lPTiA+PSBR
VF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5jbHVkZSA8UVN0YW5kYXJkUGF0aHM+CisjZWxz
ZQogI2luY2x1ZGUgPFFEZXNrdG9wU2VydmljZXM+CisjZW5kaWYKICNpbmNsdWRlIDxRRGlyPgog
I2luY2x1ZGUgPFFIYXNoPgogI2luY2x1ZGUgPFFTaGFyZWREYXRhPgpAQCAtMTEyOSw3ICsxMTMz
LDExIEBAIHZvaWQgUVdlYlNldHRpbmdzOjplbmFibGVQZXJzaXN0ZW50U3RvcmFnZShjb25zdCBR
U3RyaW5nJiBwYXRoKQogCiAgICAgaWYgKHBhdGguaXNFbXB0eSgpKSB7CiAKKyNpZiBRVF9WRVJT
SU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKKyAgICAgICAgc3RvcmFnZVBhdGggPSBR
U3RhbmRhcmRQYXRoczo6d3JpdGFibGVMb2NhdGlvbihRU3RhbmRhcmRQYXRoczo6RGF0YUxvY2F0
aW9uKTsKKyNlbHNlCiAgICAgICAgIHN0b3JhZ2VQYXRoID0gUURlc2t0b3BTZXJ2aWNlczo6c3Rv
cmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkRhdGFMb2NhdGlvbik7CisjZW5kaWYKICAg
ICAgICAgaWYgKHN0b3JhZ2VQYXRoLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHN0b3JhZ2VQYXRo
ID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFFEaXI6OmhvbWVQYXRoKCksIFFD
b3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgpKTsKICAgICB9IGVsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcAppbmRl
eCA1N2M4MTU4N2I4NTFhOGNmZTg0MTk0Y2ZiODhkMDk2OTFkZmNjYWEyLi44ZWY0NzkyODI4ODFj
NTYzOWYwZDNmMWJhM2IzMTAyNDhjYWY4OGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCkBAIC0yOSw5ICsyOSw5IEBACiAj
aW5jbHVkZSA8UUdyYXBoaWNzU2NlbmVSZXNpemVFdmVudD4KICNpbmNsdWRlIDxRU3R5bGVPcHRp
b25HcmFwaGljc0l0ZW0+CiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmVlbmdp
bmUuaD4KLSNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FzZ2NhbnZhcy5oPgotI2luY2x1ZGUgPFF0
RGVjbGFyYXRpdmUvcXNnaXRlbS5oPgotI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXNndmlldy5o
PgorI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXF1aWNrY2FudmFzLmg+CisjaW5jbHVkZSA8UXRE
ZWNsYXJhdGl2ZS9xcXVpY2tpdGVtLmg+CisjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xcXVpY2t2
aWV3Lmg+CiAjaW5jbHVkZSA8UXRHdWkvUUN1cnNvcj4KICNpbmNsdWRlIDxRdEd1aS9RRHJhZz4K
ICNpbmNsdWRlIDxRdEd1aS9RRm9jdXNFdmVudD4KQEAgLTI0MiwxNSArMjQyLDE1IEBAIFFTdHJp
bmcgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6cnVuSmF2YVNjcmlwdFByb21wdChjb25zdCBRU3Ry
aW5nJiBtZXNzYWdlLCBjb25zCiAjZW5kaWYKIH0KIAotUURlc2t0b3BXZWJWaWV3OjpRRGVza3Rv
cFdlYlZpZXcoUVNHSXRlbSogcGFyZW50KQotICAgIDogUVNHUGFpbnRlZEl0ZW0ocGFyZW50KQor
UURlc2t0b3BXZWJWaWV3OjpRRGVza3RvcFdlYlZpZXcoUVF1aWNrSXRlbSogcGFyZW50KQorICAg
IDogUVF1aWNrUGFpbnRlZEl0ZW0ocGFyZW50KQogICAgICwgZChuZXcgUURlc2t0b3BXZWJWaWV3
UHJpdmF0ZSh0aGlzKSkKIHsKICAgICBpbml0KCk7CiB9CiAKLVFEZXNrdG9wV2ViVmlldzo6UURl
c2t0b3BXZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdl
R3JvdXBSZWYsIFFTR0l0ZW0qIHBhcmVudCkKLSAgICA6IFFTR1BhaW50ZWRJdGVtKHBhcmVudCkK
K1FEZXNrdG9wV2ViVmlldzo6UURlc2t0b3BXZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVm
LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCkKKyAgICA6
IFFRdWlja1BhaW50ZWRJdGVtKHBhcmVudCkKICAgICAsIGQobmV3IFFEZXNrdG9wV2ViVmlld1By
aXZhdGUodGhpcywgY29udGV4dFJlZiwgcGFnZUdyb3VwUmVmKSkKIHsKICAgICBpbml0KCk7CkBA
IC0zOTcsNyArMzk3LDcgQEAgdm9pZCBRRGVza3RvcFdlYlZpZXc6OmRyb3BFdmVudChRRHJvcEV2
ZW50KiBldmVudCkKIAogdm9pZCBRRGVza3RvcFdlYlZpZXc6Omdlb21ldHJ5Q2hhbmdlZChjb25z
dCBRUmVjdEYmIG5ld0dlb21ldHJ5LCBjb25zdCBRUmVjdEYmIG9sZEdlb21ldHJ5KQogewotICAg
IFFTR1BhaW50ZWRJdGVtOjpnZW9tZXRyeUNoYW5nZWQobmV3R2VvbWV0cnksIG9sZEdlb21ldHJ5
KTsKKyAgICBRUXVpY2tQYWludGVkSXRlbTo6Z2VvbWV0cnlDaGFuZ2VkKG5ld0dlb21ldHJ5LCBv
bGRHZW9tZXRyeSk7CiAgICAgaWYgKG5ld0dlb21ldHJ5LnNpemUoKSAhPSBvbGRHZW9tZXRyeS5z
aXplKCkpCiAgICAgICAgIGQtPnBhZ2Uuc2V0RHJhd2luZ0FyZWFTaXplKG5ld0dlb21ldHJ5LnNp
emUoKS50b1NpemUoKSk7CiB9CkBAIC00MTgsOCArNDE4LDggQEAgYm9vbCBRRGVza3RvcFdlYlZp
ZXc6OmV2ZW50KFFFdmVudCogZXYpCiAgICAgaWYgKGQtPnBhZ2UuaGFuZGxlRXZlbnQoZXYpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoZXYtPnR5cGUoKSA9PSBRRXZlbnQ6OklucHV0
TWV0aG9kKQotICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGF2
b2lkIGFuIGVuZGxlc3MgbG9vcCBpbiBjb25uZWN0aW9uIHdpdGggUVNHSXRlbTo6ZXZlbnQoKS4K
LSAgICByZXR1cm4gUVNHSXRlbTo6ZXZlbnQoZXYpOworICAgICAgICByZXR1cm4gZmFsc2U7IC8v
IFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIGFuIGVuZGxlc3MgbG9vcCBpbiBjb25uZWN0aW9u
IHdpdGggUVF1aWNrSXRlbTo6ZXZlbnQoKS4KKyAgICByZXR1cm4gUVF1aWNrSXRlbTo6ZXZlbnQo
ZXYpOwogfQogCiBXS1BhZ2VSZWYgUURlc2t0b3BXZWJWaWV3OjpwYWdlUmVmKCkgY29uc3QKQEAg
LTQ0MSw3ICs0NDEsNyBAQCB2b2lkIFFEZXNrdG9wV2ViVmlld1ByaXZhdGU6OmRpZFJlbGF1bmNo
UHJvY2VzcygpCiAKIFFKU0VuZ2luZSogUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZW5naW5lKCkK
IHsKLSAgICBRU0dWaWV3KiB2aWV3ID0gcW9iamVjdF9jYXN0PFFTR1ZpZXcqPihxLT5jYW52YXMo
KSk7CisgICAgUVF1aWNrVmlldyogdmlldyA9IHFvYmplY3RfY2FzdDxRUXVpY2tWaWV3Kj4ocS0+
Y2FudmFzKCkpOwogICAgIGlmICh2aWV3KQogICAgICAgICByZXR1cm4gdmlldy0+ZW5naW5lKCk7
CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FkZXNrdG9wd2Vidmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
ZGVza3RvcHdlYnZpZXcuaAppbmRleCBiYTU3NGIxNzQ2NWNhMTlmNjk3ODBlYmFmY2EzZDZmZGRk
ODVkYTFlLi42ZWJjOTNjMTE0ODJiYzQxMDE5YTkyNzEyNjczYTRiNWFhZWE3N2RiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmgKQEAg
LTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKICNpbmNsdWRlIDxR
VXJsPgotI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXNncGFpbnRlZGl0ZW0uaD4KKyNpbmNsdWRl
IDxRdERlY2xhcmF0aXZlL3FxdWlja3BhaW50ZWRpdGVtLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S0Jhc2UuaD4KIAogY2xhc3MgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTsKQEAgLTUwLDcgKzUwLDcg
QEAgbmFtZXNwYWNlIFdUUiB7CiAgICAgY2xhc3MgUGxhdGZvcm1XZWJWaWV3OwogfQogCi1jbGFz
cyBRV0VCS0lUX0VYUE9SVCBRRGVza3RvcFdlYlZpZXcgOiBwdWJsaWMgUVNHUGFpbnRlZEl0ZW0g
eworY2xhc3MgUVdFQktJVF9FWFBPUlQgUURlc2t0b3BXZWJWaWV3IDogcHVibGljIFFRdWlja1Bh
aW50ZWRJdGVtIHsKICAgICBRX09CSkVDVAogICAgIFFfUFJPUEVSVFkoUVN0cmluZyB0aXRsZSBS
RUFEIHRpdGxlIE5PVElGWSB0aXRsZUNoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRVXJsIHVybCBS
RUFEIHVybCBOT1RJRlkgdXJsQ2hhbmdlZCkKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAg
ICAgICBIdHRwRXJyb3IKICAgICB9OwogCi0gICAgUURlc2t0b3BXZWJWaWV3KFFTR0l0ZW0qIHBh
cmVudCA9IDApOworICAgIFFEZXNrdG9wV2ViVmlldyhRUXVpY2tJdGVtKiBwYXJlbnQgPSAwKTsK
ICAgICB2aXJ0dWFsIH5RRGVza3RvcFdlYlZpZXcoKTsKIAogICAgIFFVcmwgdXJsKCkgY29uc3Q7
CkBAIC0xMjAsNyArMTIwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBldmVudChR
RXZlbnQqKTsKIAogcHJpdmF0ZToKLSAgICBRRGVza3RvcFdlYlZpZXcoV0tDb250ZXh0UmVmLCBX
S1BhZ2VHcm91cFJlZiwgUVNHSXRlbSogcGFyZW50ID0gMCk7CisgICAgUURlc2t0b3BXZWJWaWV3
KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCA9IDApOwog
ICAgIFdLUGFnZVJlZiBwYWdlUmVmKCkgY29uc3Q7CiAKICAgICB2b2lkIGluaXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuY3BwCmluZGV4
IDU2MGVlNTAxNjAzYWQ2NjlmZDM4YWRiMmM5ZGY4NTZiODliZjJkM2QuLjZhMThkNjZhNmEzNzhh
NjdhZmE3YmExYjM2YmNiYTg0MDhhMWM1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmNwcApAQCAtMjksOCArMjksOCBAQAogI2luY2x1
ZGUgPFFTR05vZGU+CiAjaW5jbHVkZSA8UVVybD4KIAotUVRvdWNoV2ViUGFnZTo6UVRvdWNoV2Vi
UGFnZShRU0dJdGVtKiBwYXJlbnQpCi0gICAgOiBRU0dJdGVtKHBhcmVudCkKK1FUb3VjaFdlYlBh
Z2U6OlFUb3VjaFdlYlBhZ2UoUVF1aWNrSXRlbSogcGFyZW50KQorICAgIDogUVF1aWNrSXRlbShw
YXJlbnQpCiAgICAgLCBkKG5ldyBRVG91Y2hXZWJQYWdlUHJpdmF0ZSh0aGlzKSkKIHsKICAgICBz
ZXRGbGFnKEl0ZW1IYXNDb250ZW50cyk7CkBAIC04Myw3ICs4Myw3IEBAIFFTR05vZGUqIFFUb3Vj
aFdlYlBhZ2U6OnVwZGF0ZVBhaW50Tm9kZShRU0dOb2RlKiBvbGROb2RlLCBVcGRhdGVQYWludE5v
ZGVEYXRhKikKICAgICAgICAgZC0+cGFnZS0+cmVuZGVyTmV4dEZyYW1lKCk7CiAgICAgZC0+c2dV
cGRhdGVRdWV1ZS5hcHBseVVwZGF0ZXMob2xkTm9kZSk7CiAKLSAgICAvLyBRU0dJdGVtIHRha2Vz
IG93bmVyc2hpcCBvZiB0aGlzIHJldHVybiB2YWx1ZSBhbmQgaXQncyBjaGlsZHJlbiBiZXR3ZWVu
IGFuZCBhZnRlciB1cGRhdGVQYWludE5vZGUgY2FsbHMuCisgICAgLy8gUVF1aWNrSXRlbSB0YWtl
cyBvd25lcnNoaXAgb2YgdGhpcyByZXR1cm4gdmFsdWUgYW5kIGl0J3MgY2hpbGRyZW4gYmV0d2Vl
biBhbmQgYWZ0ZXIgdXBkYXRlUGFpbnROb2RlIGNhbGxzLgogICAgIHJldHVybiBvbGROb2RlOwog
fQogCkBAIC05Myw3ICs5Myw3IEBAIGJvb2wgUVRvdWNoV2ViUGFnZTo6ZXZlbnQoUUV2ZW50KiBl
dikKIHsKICAgICBpZiAoZC0+cGFnZS0+aGFuZGxlRXZlbnQoZXYpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICByZXR1cm4gUVNHSXRlbTo6ZXZlbnQoZXYpOworICAgIHJldHVybiBRUXVpY2tJ
dGVtOjpldmVudChldik7CiB9CiAKIHZvaWQgUVRvdWNoV2ViUGFnZTo6a2V5UHJlc3NFdmVudChR
S2V5RXZlbnQqIGV2ZW50KQpAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgUVRvdWNoV2ViUGFnZTo6
dG91Y2hFdmVudChRVG91Y2hFdmVudCogZXZlbnQpCiAKIHZvaWQgUVRvdWNoV2ViUGFnZTo6Z2Vv
bWV0cnlDaGFuZ2VkKGNvbnN0IFFSZWN0RiYgbmV3R2VvbWV0cnksIGNvbnN0IFFSZWN0RiYgb2xk
R2VvbWV0cnkpCiB7Ci0gICAgUVNHSXRlbTo6Z2VvbWV0cnlDaGFuZ2VkKG5ld0dlb21ldHJ5LCBv
bGRHZW9tZXRyeSk7CisgICAgUVF1aWNrSXRlbTo6Z2VvbWV0cnlDaGFuZ2VkKG5ld0dlb21ldHJ5
LCBvbGRHZW9tZXRyeSk7CiAgICAgaWYgKG5ld0dlb21ldHJ5LnNpemUoKSAhPSBvbGRHZW9tZXRy
eS5zaXplKCkpCiAgICAgICAgIGQtPnBhZ2UtPnNldERyYXdpbmdBcmVhU2l6ZShuZXdHZW9tZXRy
eS5zaXplKCkudG9TaXplKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F0b3VjaHdlYnBhZ2UuaAppbmRleCA5YTMwYWNmMmJmNWNkY2E1MGU2NDAwMmFkNjY1ZTE3
OTBjNGI1MmJiLi4xZGE1ODU3ODI4NjA5YWRmYTkzNjJlODFmNjg5ZDA5MjRhZDI0YmM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuaApAQCAt
MjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgogCi0jaW5jbHVkZSA8
UXREZWNsYXJhdGl2ZS9xc2dpdGVtLmg+CisjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xcXVpY2tp
dGVtLmg+CiAjaW5jbHVkZSA8UVNoYXJlZFBvaW50ZXI+CiAKIGNsYXNzIFFUb3VjaFdlYlBhZ2VQ
cml2YXRlOwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFF0VG91
Y2hWaWV3SW50ZXJmYWNlOwogfQogCi1jbGFzcyBRV0VCS0lUX0VYUE9SVCBRVG91Y2hXZWJQYWdl
IDogcHVibGljIFFTR0l0ZW0geworY2xhc3MgUVdFQktJVF9FWFBPUlQgUVRvdWNoV2ViUGFnZSA6
IHB1YmxpYyBRUXVpY2tJdGVtIHsKICAgICBRX09CSkVDVAogICAgIFFfUFJPUEVSVFkoUVN0cmlu
ZyB0aXRsZSBSRUFEIHRpdGxlIE5PVElGWSB0aXRsZUNoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShR
VXJsIHVybCBSRUFEIHVybCBOT1RJRlkgdXJsQ2hhbmdlZCkKQEAgLTUwLDcgKzUwLDcgQEAgcHVi
bGljOgogICAgICAgICBIdHRwRXJyb3IKICAgICB9OwogCi0gICAgUVRvdWNoV2ViUGFnZShRU0dJ
dGVtKiBwYXJlbnQgPSAwKTsKKyAgICBRVG91Y2hXZWJQYWdlKFFRdWlja0l0ZW0qIHBhcmVudCA9
IDApOwogCiAgICAgdmlydHVhbCB+UVRvdWNoV2ViUGFnZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJ2aWV3LmNwcAppbmRleCA4ODIzYmE2ZTBm
ZTAyYmU5ZjhiMjMyZDZjNmY4ZDQzNmZkMmIxOWMxLi44N2E0NjVhZjMyYjQzNjRiNGZjMDNmMGM3
NTA5YThhNjJlMjc1MWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F0b3VjaHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXRvdWNod2Vidmlldy5jcHAKQEAgLTkyLDExICs5MiwxMSBAQCB2b2lkIFFUb3VjaFdlYlZp
ZXdQcml2YXRlOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmll
d3BvcnRBcgogICAgIHVwZGF0ZVZpZXdwb3J0Q29uc3RyYWludHMoKTsKIH0KIAotUVRvdWNoV2Vi
Vmlldzo6UVRvdWNoV2ViVmlldyhRU0dJdGVtKiBwYXJlbnQpCi0gICAgOiBRU0dJdGVtKHBhcmVu
dCkKK1FUb3VjaFdlYlZpZXc6OlFUb3VjaFdlYlZpZXcoUVF1aWNrSXRlbSogcGFyZW50KQorICAg
IDogUVF1aWNrSXRlbShwYXJlbnQpCiAgICAgLCBkKG5ldyBRVG91Y2hXZWJWaWV3UHJpdmF0ZSh0
aGlzKSkKIHsKLSAgICBzZXRGbGFncyhRU0dJdGVtOjpJdGVtQ2xpcHNDaGlsZHJlblRvU2hhcGUp
OworICAgIHNldEZsYWdzKFFRdWlja0l0ZW06Okl0ZW1DbGlwc0NoaWxkcmVuVG9TaGFwZSk7CiAg
ICAgY29ubmVjdCh0aGlzLCBTSUdOQUwodmlzaWJsZUNoYW5nZWQoKSksIFNMT1Qob25WaXNpYmxl
Q2hhbmdlZCgpKSk7CiB9CiAKQEAgLTExMiw3ICsxMTIsNyBAQCBRVG91Y2hXZWJQYWdlKiBRVG91
Y2hXZWJWaWV3OjpwYWdlKCkKIAogdm9pZCBRVG91Y2hXZWJWaWV3OjpnZW9tZXRyeUNoYW5nZWQo
Y29uc3QgUVJlY3RGJiBuZXdHZW9tZXRyeSwgY29uc3QgUVJlY3RGJiBvbGRHZW9tZXRyeSkKIHsK
LSAgICBRU0dJdGVtOjpnZW9tZXRyeUNoYW5nZWQobmV3R2VvbWV0cnksIG9sZEdlb21ldHJ5KTsK
KyAgICBRUXVpY2tJdGVtOjpnZW9tZXRyeUNoYW5nZWQobmV3R2VvbWV0cnksIG9sZEdlb21ldHJ5
KTsKICAgICBpZiAobmV3R2VvbWV0cnkuc2l6ZSgpICE9IG9sZEdlb21ldHJ5LnNpemUoKSkgewog
ICAgICAgICBkLT51cGRhdGVWaWV3cG9ydENvbnN0cmFpbnRzKCk7CiAgICAgICAgIGQtPl9xX3Zp
ZXdwb3J0VXBkYXRlZCgpOwpAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgUVRvdWNoV2ViVmlldzo6
Z2VvbWV0cnlDaGFuZ2VkKGNvbnN0IFFSZWN0RiYgbmV3R2VvbWV0cnksIGNvbnN0IFFSZWN0RiYg
b2xkCiB2b2lkIFFUb3VjaFdlYlZpZXc6OnRvdWNoRXZlbnQoUVRvdWNoRXZlbnQqIGV2ZW50KQog
ewogICAgIGZvcmNlQWN0aXZlRm9jdXMoKTsKLSAgICBRU0dJdGVtOjp0b3VjaEV2ZW50KGV2ZW50
KTsKKyAgICBRUXVpY2tJdGVtOjp0b3VjaEV2ZW50KGV2ZW50KTsKIH0KIAogdm9pZCBRVG91Y2hX
ZWJWaWV3OjpvblZpc2libGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXRvdWNod2Vidmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xdG91Y2h3ZWJ2aWV3LmgKaW5kZXggZTg2MjM3ODdjNzFmZTAzMDNjYmE3ZTFkNzJk
MDY5NWE5MzJlNzNkYS4uOGQ5ODI5N2FhMTdjZTIzODQ3NWQ5MWZkMGQzNDRmYTAyNGU2NzQxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJ2aWV3
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJ2aWV3LmgK
QEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKIAotI2luY2x1
ZGUgPFF0RGVjbGFyYXRpdmUvcXNnaXRlbS5oPgorI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXF1
aWNraXRlbS5oPgogCiBjbGFzcyBRVG91Y2hFdmVudDsKIGNsYXNzIFFUb3VjaFdlYlBhZ2U7CkBA
IC0zMywxMyArMzMsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBRdFRvdWNoVmlld0lu
dGVyZmFjZTsKIH0KIAotY2xhc3MgUVdFQktJVF9FWFBPUlQgUVRvdWNoV2ViVmlldyA6IHB1Ymxp
YyBRU0dJdGVtCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRVG91Y2hXZWJWaWV3IDogcHVibGljIFFR
dWlja0l0ZW0KIHsKICAgICBRX09CSkVDVAogICAgIFFfUFJPUEVSVFkoUVRvdWNoV2ViUGFnZSog
cGFnZSBSRUFEIHBhZ2UgQ09OU1RBTlQgRklOQUwpCiAKIHB1YmxpYzoKLSAgICBRVG91Y2hXZWJW
aWV3KFFTR0l0ZW0qIHBhcmVudCA9IDApOworICAgIFFUb3VjaFdlYlZpZXcoUVF1aWNrSXRlbSog
cGFyZW50ID0gMCk7CiAgICAgflFUb3VjaFdlYlZpZXcoKTsKIAogICAgIFFUb3VjaFdlYlBhZ2Ug
KnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvdGVzdHdpbmRvdy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy90
ZXN0d2luZG93LmgKaW5kZXggNmNlZGIwYzFiOTFlMTk0MDBiM2NjOGNmNDA1MmZkZmNlZTBhNjg1
ZS4uODc4MDljMzM0OGZjYzdkOGU5NGE2NDYyZmY4NzRhY2VhYmQwNzZkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy90ZXN0d2luZG93LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy90ZXN0d2luZG93LmgKQEAgLTIy
LDIwICsyMiwyMCBAQAogCiAjaW5jbHVkZSA8UVJlc2l6ZUV2ZW50PgogI2luY2x1ZGUgPFFTY29w
ZWRQb2ludGVyPgotI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXNndmlldy5oPgotI2luY2x1ZGUg
PFF0RGVjbGFyYXRpdmUvcXNnaXRlbS5oPgorI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXF1aWNr
aXRlbS5oPgorI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXF1aWNrdmlldy5oPgogCiAvLyBUZXN0
V2luZG93OiBVdGlsaXR5IGNsYXNzIHRvIGlnbm9yZSBRR3JhcGhpY3NWaWV3IGRldGFpbHMuCi1j
bGFzcyBUZXN0V2luZG93IDogcHVibGljIFFTR1ZpZXcgeworY2xhc3MgVGVzdFdpbmRvdyA6IHB1
YmxpYyBRUXVpY2tWaWV3IHsKIHB1YmxpYzoKLSAgICBpbmxpbmUgVGVzdFdpbmRvdyhRU0dJdGVt
KiB3ZWJWaWV3KTsKLSAgICBRU2NvcGVkUG9pbnRlcjxRU0dJdGVtPiB3ZWJWaWV3OworICAgIGlu
bGluZSBUZXN0V2luZG93KFFRdWlja0l0ZW0qIHdlYlZpZXcpOworICAgIFFTY29wZWRQb2ludGVy
PFFRdWlja0l0ZW0+IHdlYlZpZXc7CiAKIHByb3RlY3RlZDoKICAgICBpbmxpbmUgdm9pZCByZXNp
emVFdmVudChRUmVzaXplRXZlbnQqKTsKIH07CiAKLWlubGluZSBUZXN0V2luZG93OjpUZXN0V2lu
ZG93KFFTR0l0ZW0qIHdlYlZpZXcpCitpbmxpbmUgVGVzdFdpbmRvdzo6VGVzdFdpbmRvdyhRUXVp
Y2tJdGVtKiB3ZWJWaWV3KQogICAgIDogd2ViVmlldyh3ZWJWaWV3KQogewogICAgIFFfQVNTRVJU
KHdlYlZpZXcpOwpAQCAtNDQsNyArNDQsNyBAQCBpbmxpbmUgVGVzdFdpbmRvdzo6VGVzdFdpbmRv
dyhRU0dJdGVtKiB3ZWJWaWV3KQogCiBpbmxpbmUgdm9pZCBUZXN0V2luZG93OjpyZXNpemVFdmVu
dChRUmVzaXplRXZlbnQqIGV2ZW50KQogewotICAgIFFTR0NhbnZhczo6cmVzaXplRXZlbnQoZXZl
bnQpOworICAgIFFRdWlja1ZpZXc6OnJlc2l6ZUV2ZW50KGV2ZW50KTsKICAgICB3ZWJWaWV3LT5z
ZXRYKDApOwogICAgIHdlYlZpZXctPnNldFkoMCk7CiAgICAgd2ViVmlldy0+c2V0V2lkdGgoZXZl
bnQtPnNpemUoKS53aWR0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdERlc2t0b3BXZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0RGVza3RvcFdlYlBhZ2VQcm94eS5jcHAKaW5kZXggYWQwZmQ4N2FiYzM5ZTgwMWU3YTA1
YWIxM2NiM2JkOTQ1NDQ0ZTdjNS4uOTUwOTkxYmEzZmRkNTk5Mzc1ZWNkNWZkZWM2MDZiZDhlMWZm
MWM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGVza3RvcFdl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGVza3Rv
cFdlYlBhZ2VQcm94eS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBRdERlc2t0b3BXZWJQYWdl
UHJveHk6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9v
bAogCiBQYXNzUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBRdERlc2t0b3BXZWJQYWdlUHJveHk6
OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSopCiB7Ci0gICAgUVNHSXRlbSogd2Vi
Vmlld0l0ZW0gPSBzdGF0aWNfY2FzdDxRRGVza3RvcFdlYlZpZXdQcml2YXRlKj4obV92aWV3SW50
ZXJmYWNlKS0+cTsKKyAgICBRUXVpY2tJdGVtKiB3ZWJWaWV3SXRlbSA9IHN0YXRpY19jYXN0PFFE
ZXNrdG9wV2ViVmlld1ByaXZhdGUqPihtX3ZpZXdJbnRlcmZhY2UpLT5xOwogICAgIHJldHVybiBX
ZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcDo6Y3JlYXRlKG1fd2ViUGFnZVByb3h5LmdldCgpLCB3
ZWJWaWV3SXRlbSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFNHVXBkYXRlUXVldWUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0U0dV
cGRhdGVRdWV1ZS5jcHAKaW5kZXggYzgyYjQ0NzFlNTkxODFjMTYyNjkzNWFlZWZlM2NmN2QxYmQ3
ZjY4NC4uNDEwYTQ4MmFmNWU0NTlmYTJiMmE2MmJlYjdkZWIzODMwNTExOTgxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5jcHAKQEAgLTIzLDcg
KzIzLDcgQEAKIAogI2luY2x1ZGUgIlBhc3NPd25QdHIuaCIKICNpbmNsdWRlICJRdFNHVGlsZU5v
ZGUuaCIKLSNpbmNsdWRlIDxRU0dJdGVtPgorI2luY2x1ZGUgPFFRdWlja0l0ZW0+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC02NSw3ICs2NSw3IEBAIHN0cnVjdCBOb2RlVXBkYXRlU3dhcFRp
bGVCdWZmZXJzIDogcHVibGljIE5vZGVVcGRhdGUgewogICAgIHsgfQogfTsKIAotUXRTR1VwZGF0
ZVF1ZXVlOjpRdFNHVXBkYXRlUXVldWUoUVNHSXRlbSogaXRlbSkKK1F0U0dVcGRhdGVRdWV1ZTo6
UXRTR1VwZGF0ZVF1ZXVlKFFRdWlja0l0ZW0gKml0ZW0pCiAgICAgOiBpdGVtKGl0ZW0pCiAgICAg
LCBsYXN0U2NhbGUoMCkKICAgICAsIGxhc3RTY2FsZU5vZGUoMCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFNHVXBkYXRlUXVldWUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFNHVXBkYXRlUXVldWUuaAppbmRleCBkODkwNTI1NGE2YWJjZmZmMmRk
OTU3NDdjN2E4MjNiOTFlZjZhZTNkLi5mNzBjNTA2NjgwNTNkMmYyNmNkYTdiOTAxMTI5MDliZTcz
NDViYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRTR1VwZGF0
ZVF1ZXVlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1
ZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKIGNsYXNzIFFJbWFnZTsKIGNsYXNzIFFSZWN0OwotY2xh
c3MgUVNHSXRlbTsKK2NsYXNzIFFRdWlja0l0ZW07CiBjbGFzcyBRU0dOb2RlOwogY2xhc3MgUVNp
emU7CiAKQEAgLTQwLDIxICs0MCwyMSBAQCBjbGFzcyBRdFNHVGlsZU5vZGU7CiAvLyBUYWtlcyBj
YXJlIG9mIHRha2luZyB1cGRhdGUgcmVxdWVzdHMgdGhlbiBmdWxmaWxsaW5nIHRoZW0gYXN5bmNo
cm9ub3VzbHkgb24gdGhlIHNjZW5lIGdyYXBoIHRocmVhZC4KIGNsYXNzIFF0U0dVcGRhdGVRdWV1
ZSB7CiBwdWJsaWM6Ci0gICAgUXRTR1VwZGF0ZVF1ZXVlKFFTR0l0ZW0qKTsKKyAgICBRdFNHVXBk
YXRlUXVldWUoUVF1aWNrSXRlbSopOwogCiAgICAgaW50IGNyZWF0ZVRpbGVOb2RlKGZsb2F0IHNj
YWxlKTsKICAgICB2b2lkIHJlbW92ZVRpbGVOb2RlKGludCBub2RlSUQpOwogICAgIHZvaWQgc2V0
Tm9kZUJhY2tCdWZmZXIoaW50IG5vZGVJRCwgY29uc3QgUUltYWdlJiB0ZXh0dXJlLCBjb25zdCBR
UmVjdCYgc291cmNlUmVjdCwgY29uc3QgUVJlY3QmIHRhcmdldFJlY3QpOwogICAgIHZvaWQgc3dh
cFRpbGVCdWZmZXJzKCk7CiAKLSAgICAvLyBDYWxsZWQgYnkgdGhlIFFTR0l0ZW0uCisgICAgLy8g
Q2FsbGVkIGJ5IHRoZSBRUXVpY2tJdGVtLgogICAgIHZvaWQgYXBwbHlVcGRhdGVzKFFTR05vZGUq
IGl0ZW1Ob2RlKTsKICAgICBib29sIGlzU3dhcFBlbmRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lz
U3dhcFBlbmRpbmc7IH0KIAogcHJpdmF0ZToKICAgICBRU0dOb2RlKiBnZXRTY2FsZU5vZGUoZmxv
YXQgc2NhbGUsIFFTR05vZGUqIGl0ZW1Ob2RlKTsKIAotICAgIFFTR0l0ZW0qIGl0ZW07CisgICAg
UVF1aWNrSXRlbSogaXRlbTsKICAgICBEZXF1ZTxPd25QdHI8Tm9kZVVwZGF0ZT4gPiBub2RlVXBk
YXRlUXVldWU7CiAgICAgSGFzaE1hcDxpbnQsIFF0U0dUaWxlTm9kZSo+IG5vZGVzOwogICAgIGZs
b2F0IGxhc3RTY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFRvdWNoVmlld0ludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRU
b3VjaFZpZXdJbnRlcmZhY2UuY3BwCmluZGV4IGJiOTI1YjViMjNjNWQ4NDFhMTg5YjNhZjAwNDU1
Y2VkNTdlMzAxNjEuLmI4Yzc4NTI4MDRkZmY4YWJjMzRhZGZjYWYzOGIyY2FiZGYxODU2OWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFRvdWNoVmlld0ludGVyZmFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0VG91Y2hWaWV3SW50ZXJm
YWNlLmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgInF0b3VjaHdlYnZpZXdfcC5oIgog
CiAjaW5jbHVkZSA8UURlY2xhcmF0aXZlRW5naW5lPgotI2luY2x1ZGUgPFFTR1ZpZXc+CisjaW5j
bHVkZSA8UVF1aWNrVmlldz4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTE4MSw3ICsxODEs
NyBAQCB2b2lkIFF0VG91Y2hWaWV3SW50ZXJmYWNlOjpkaWRSZWxhdW5jaFByb2Nlc3MoKQogCiBR
SlNFbmdpbmUqIFF0VG91Y2hWaWV3SW50ZXJmYWNlOjplbmdpbmUoKQogewotICAgIFFTR1ZpZXcq
IHZpZXcgPSBxb2JqZWN0X2Nhc3Q8UVNHVmlldyo+KG1fcGFnZVZpZXctPmNhbnZhcygpKTsKKyAg
ICBRUXVpY2tWaWV3KiB2aWV3ID0gcW9iamVjdF9jYXN0PFFRdWlja1ZpZXcqPihtX3BhZ2VWaWV3
LT5jYW52YXMoKSk7CiAgICAgaWYgKHZpZXcpCiAgICAgICAgIHJldHVybiB2aWV3LT5lbmdpbmUo
KTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAKaW5kZXggNWE2OTg4OTY1NDY4
YTMxNzE4MzBkYjg3NGMyMjhkMjU1ZTcyYThmNS4uNDhiNTg3YjQzMGFmZjk2ZTU2ZWYzM2ZiODcz
ZTZiZTFlOGMzZjdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAKQEAgLTI3LDEzICsyNywxMyBA
QAogI2luY2x1ZGUgPFFTY3JvbGxFdmVudD4KICNpbmNsdWRlIDxRU2Nyb2xsUHJlcGFyZUV2ZW50
PgogI2luY2x1ZGUgPFFTY3JvbGxlclByb3BlcnRpZXM+Ci0jaW5jbHVkZSA8UXREZWNsYXJhdGl2
ZS9xc2dpdGVtLmg+CisjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xcXVpY2tpdGVtLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29uc3QgaW50IGtTY2FsZUFuaW1hdGlvbkR1cmF0
aW9uTWlsbGlzID0gNDAwOwogCi1zdGF0aWMgaW5saW5lIFFSZWN0RiBjb250ZW50UmVjdEluVmll
d3BvcnRDb29yZGluYXRlcyhjb25zdCBRU0dJdGVtKiBjb250ZW50LCBjb25zdCBRU0dJdGVtKiB2
aWV3cG9ydCkKK3N0YXRpYyBpbmxpbmUgUVJlY3RGIGNvbnRlbnRSZWN0SW5WaWV3cG9ydENvb3Jk
aW5hdGVzKGNvbnN0IFFRdWlja0l0ZW0qIGNvbnRlbnQsIGNvbnN0IFFRdWlja0l0ZW0qIHZpZXdw
b3J0KQogewogICAgIHJldHVybiB2aWV3cG9ydC0+bWFwUmVjdEZyb21JdGVtKGNvbnRlbnQsIGNv
bnRlbnQtPmJvdW5kaW5nUmVjdCgpKTsKIH0KQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAg
ICBjb25zdCBxcmVhbCBwcmV2aW91c1NjYWxlOwogfTsKIAotUXRWaWV3cG9ydEludGVyYWN0aW9u
RW5naW5lOjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUoY29uc3QgUVNHSXRlbSogdmlld3Bv
cnQsIFFTR0l0ZW0qIGNvbnRlbnQpCitRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OlF0Vmll
d3BvcnRJbnRlcmFjdGlvbkVuZ2luZShjb25zdCBRUXVpY2tJdGVtKiB2aWV3cG9ydCwgUVF1aWNr
SXRlbSogY29udGVudCkKICAgICA6IG1fdmlld3BvcnQodmlld3BvcnQpCiAgICAgLCBtX2NvbnRl
bnQoY29udGVudCkKICAgICAsIG1fcGVuZGluZ1VwZGF0ZXMoMCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaApp
bmRleCAzZTRlZjkwMDUzNjUxODY2OTE4MWU0YWMyZTcyYzA3ZjFhMWUyMzkxLi5kYzkyYTM5ODk1
YWE2MGFmNzgwMDczNjA0OTEyNjRjNjMyMzJlNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oCkBAIC0z
MSw3ICszMSw3IEBACiAKIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUVBvaW50RjsKLWNsYXNz
IFFTR0l0ZW07CitjbGFzcyBRUXVpY2tJdGVtOwogUVRfRU5EX05BTUVTUEFDRQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgUXRWaWV3cG9ydEludGVyYWN0aW9u
RW5naW5lIDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCiAKIHB1YmxpYzoKLSAgICBR
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUoY29uc3QgUVNHSXRlbSosIFFTR0l0ZW0qKTsKKyAg
ICBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUoY29uc3QgUVF1aWNrSXRlbSAqLCBRUXVpY2tJ
dGVtICopOwogICAgIH5RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUoKTsKIAogCkBAIC05OCw4
ICs5OCw4IEBAIHByaXZhdGU6CiAKICAgICBmcmllbmQgY2xhc3MgVmlld3BvcnRVcGRhdGVHdWFy
ZDsKIAotICAgIGNvbnN0IFFTR0l0ZW0qIGNvbnN0IG1fdmlld3BvcnQ7Ci0gICAgUVNHSXRlbSog
Y29uc3QgbV9jb250ZW50OworICAgIGNvbnN0IFFRdWlja0l0ZW0qIGNvbnN0IG1fdmlld3BvcnQ7
CisgICAgUVF1aWNrSXRlbSogY29uc3QgbV9jb250ZW50OwogCiAgICAgQ29uc3RyYWludHMgbV9j
b25zdHJhaW50czsKICAgICBpbnQgbV9wZW5kaW5nVXBkYXRlczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKaW5kZXggMWYzNzdiNjE1ZjZmZWJkZWEyOTdm
YjgxYTUzODBkN2NlMTMyNGJiZi4uYjBkNWFjNGJhNzRmMWIwZjFlMjEyYzU2NTYyZTMxMDZiOGYz
ZDUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRR
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAK
QEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAKICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgotI2luY2x1ZGUgPFFEZXNrdG9wU2Vy
dmljZXM+CisjaW5jbHVkZSA8UVN0YW5kYXJkUGF0aHM+CiAjaW5jbHVkZSA8UURpcj4KICNpbmNs
dWRlIDxRUHJvY2Vzcz4KIApAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgUVN0cmluZyBkZWZhdWx0
RGF0YUxvY2F0aW9uKCkKICAgICBpZiAoIXNfZGF0YUxvY2F0aW9uLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIHNfZGF0YUxvY2F0aW9uOwogCi0gICAgUVN0cmluZyBkYXRhTG9jYXRpb24gPSBR
RGVza3RvcFNlcnZpY2VzOjpzdG9yYWdlTG9jYXRpb24oUURlc2t0b3BTZXJ2aWNlczo6RGF0YUxv
Y2F0aW9uKTsKKyAgICBRU3RyaW5nIGRhdGFMb2NhdGlvbiA9IFFTdGFuZGFyZFBhdGhzOjp3cml0
YWJsZUxvY2F0aW9uKFFTdGFuZGFyZFBhdGhzOjpEYXRhTG9jYXRpb24pOwogICAgIGlmIChkYXRh
TG9jYXRpb24uaXNFbXB0eSgpKQogICAgICAgICBkYXRhTG9jYXRpb24gPSBXZWJDb3JlOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoUURpcjo6aG9tZVBhdGgoKSwgUUNvcmVBcHBsaWNhdGlvbjo6
YXBwbGljYXRpb25OYW1lKCkpOwogICAgIHNfZGF0YUxvY2F0aW9uID0gV2ViQ29yZTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KGRhdGFMb2NhdGlvbiwgIi5RdFdlYktpdC8iKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0RGVza3Rv
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdERl
c2t0b3AuY3BwCmluZGV4IGExYjViZGRmYmQ5NmQ0NGMzZTIzMDRlZDA2Mjg0YjIzZTJhMjdjZmMu
LjY4NzAzZmNmNmZmOGI2NTUwOGZkOTE4ZmQ2YzI1YWE1NjMxMWVmMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXREZXNr
dG9wLmNwcApAQCAtMjgsMTUgKzI4LDE1IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVBvcHVwTWVu
dURhdGEuaCIKICNpbmNsdWRlICJXZWJQb3B1cEl0ZW0uaCIKLSNpbmNsdWRlIDxRdERlY2xhcmF0
aXZlL1FTR0NhbnZhcz4KLSNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL1FTR0l0ZW0+CisjaW5jbHVk
ZSA8UXREZWNsYXJhdGl2ZS9RUXVpY2tDYW52YXM+CisjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9R
UXVpY2tJdGVtPgogI2luY2x1ZGUgPFFTdGFuZGFyZEl0ZW1Nb2RlbD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJQb3B1cE1lbnVQcm94eVF0
RGVza3RvcDo6V2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AoV2ViUG9wdXBNZW51UHJveHk6OkNs
aWVudCogY2xpZW50LCBRU0dJdGVtKiB3ZWJWaWV3SXRlbSkKK1dlYlBvcHVwTWVudVByb3h5UXRE
ZXNrdG9wOjpXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcChXZWJQb3B1cE1lbnVQcm94eTo6Q2xp
ZW50KiBjbGllbnQsIFFRdWlja0l0ZW0qIHdlYlZpZXdJdGVtKQogICAgIDogUU9iamVjdCgpCiAg
ICAgLCBXZWJQb3B1cE1lbnVQcm94eShjbGllbnQpCiAgICAgLCBtX2NvbWJvQm94KG5ldyBRdFdl
YkNvbWJvQm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBv
cHVwTWVudVByb3h5UXREZXNrdG9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2Vi
UG9wdXBNZW51UHJveHlRdERlc2t0b3AuaAppbmRleCA4ODNlYmM3MmYxNTE2ZjkyNDU1YTVlNGM1
ZDM1ZDU5NmI5MjU1MjI0Li5kMTU4OWFiYTBkZGRhMWE5MWVlYzA4NTAyZWZkMzI2OWRhMWIyZjYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJv
eHlRdERlc2t0b3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBN
ZW51UHJveHlRdERlc2t0b3AuaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPFF0Q29yZS9R
T2JqZWN0PgogI2luY2x1ZGUgPFF0Q29yZS9RV2Vha1BvaW50ZXI+CiAKLWNsYXNzIFFTR0l0ZW07
CitjbGFzcyBRUXVpY2tJdGVtOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBRdFdlYkNv
bWJvQm94OwpAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBXZWJQb3B1cE1lbnVQcm94eVF0RGVza3Rv
cCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgV2ViUG9wdXBNZW51UHJveHkgewogcHVibGljOgog
ICAgIHZpcnR1YWwgfldlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wKCk7CiAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcD4gY3JlYXRlKFdlYlBvcHVwTWVu
dVByb3h5OjpDbGllbnQqIGNsaWVudCwgUVNHSXRlbSogd2ViVmlld0l0ZW0pCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3A+IGNyZWF0ZShXZWJQb3B1cE1l
bnVQcm94eTo6Q2xpZW50KiBjbGllbnQsIFFRdWlja0l0ZW0qIHdlYlZpZXdJdGVtKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcChj
bGllbnQsIHdlYlZpZXdJdGVtKSk7CiAgICAgfQpAQCAtNTgsMTMgKzU4LDEzIEBAIHByaXZhdGUg
UV9TTE9UUzoKICAgICB2b2lkIG9uUG9wdXBNZW51SGlkZGVuKCk7CiAKIHByaXZhdGU6Ci0gICAg
V2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AoV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCosIFFT
R0l0ZW0qIHdlYlZpZXdJdGVtKTsKKyAgICBXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcChXZWJQ
b3B1cE1lbnVQcm94eTo6Q2xpZW50KiwgUVF1aWNrSXRlbSogd2ViVmlld0l0ZW0pOwogICAgIHZv
aWQgcG9wdWxhdGUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mKTsKIAogICAgIC8vIFF0IGd1
YXJkZWQgcG9pbnRlciBiZWNhdXNlIFFXaWRnZXRzIGhhdmUgdGhlaXIgb3duIG1lbW9yeSBtYW5h
Z2VtZW50IGFuZAogICAgIC8vIHdoZW4gY2xvc2luZyB0aGUgVUkgdGhlIGNvbWJvYm94IHdpbGwg
YmUgZGVsZXRlZCBiZWZvcmUgd2UgYXJlLgogICAgIFFXZWFrUG9pbnRlcjxXZWJDb3JlOjpRdFdl
YkNvbWJvQm94PiBtX2NvbWJvQm94OwotICAgIFFTR0l0ZW0qIG1fd2ViVmlld0l0ZW07CisgICAg
UVF1aWNrSXRlbSogbV93ZWJWaWV3SXRlbTsKICAgICBpbnQzMl90IG1fc2VsZWN0ZWRJbmRleDsK
IH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBjODkxMjlmNzNiYzY3NjBjMTViZWQwYzg2NWVlMDMwY2M1YjZiZWNmLi4xMDIyZDJlZGI1NTBl
YTI0YmE4ZGE4YmI0NGIyMjM4NjI5OTIxMWFkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTAtMjcgIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gQWRh
cHQgdG8gUVNHKiB0byBRUXVpY2sqIEFQSSBjaGFuZ2UgaW4gcXRkZWNsYXJhdGl2ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0OTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgUVF1aWNrKiBpbnN0
ZWFkIG9mIFFTRyogYXMgd2VsbCBhcyBRU3RhbmRhcmRQYXRocworICAgICAgICBpbnN0ZWFkIG9m
IFFEZXNrdG9wTG9jYXRpb24uCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2lu
ZG93LmNwcDoKKyAgICAgICAgKEJyb3dzZXJXaW5kb3c6OkJyb3dzZXJXaW5kb3cpOgorICAgICAg
ICAqIE1pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaDoKKyAgICAgICAgKiBRdFRlc3RCcm93
c2VyL2Nvb2tpZWphci5jcHA6CisgICAgICAgIChUZXN0QnJvd3NlckNvb2tpZUphcjo6VGVzdEJy
b3dzZXJDb29raWVKYXIpOgorICAgICAgICAqIFF0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cu
Y3BwOgorICAgICAgICAoTGF1bmNoZXJXaW5kb3c6OnNldERpc2tDYWNoZSk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcDoKKyAgICAgICAgKFdUUjo6V3JhcHBlcldp
bmRvdzo6V3JhcHBlcldpbmRvdyk6CisgICAgICAgIChXVFI6OldyYXBwZXJXaW5kb3c6OmhhbmRs
ZVN0YXR1c0NoYW5nZWQpOgorCiAyMDExLTEwLTIxICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5
bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBJbXByb3ZlIGNvbW1hbmQgbGlu
ZSBhcmd1bWVudHMgaGFuZGxpbmcgZm9yIE1pbmlCcm93c2VyLgpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9C
cm93c2VyV2luZG93LmNwcAppbmRleCBmY2E4YmU3ZjYwOThiODY0ZDlmMzJmM2Q4MTRkZDdhNGU4
YTdiYjZkLi5jYjVkMjA0ZTM2MzJmNmYyMjgwYjAyNTIwZWE0NzdkOTUxNDE1NjEwIDEwMDY0NAot
LS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAorKysgYi9Ub29scy9N
aW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcApAQCAtNDAsNyArNDAsNyBAQCBCcm93c2Vy
V2luZG93OjpCcm93c2VyV2luZG93KFdpbmRvd09wdGlvbnMqIG9wdGlvbnMpCiB7CiAgICAgc2V0
V2luZG93VGl0bGUoIk1pbmlCcm93c2VyIik7CiAgICAgc2V0V2luZG93RmxhZ3MoUXQ6OldpbmRv
dyB8IFF0OjpXaW5kb3dUaXRsZUhpbnQgfCBRdDo6V2luZG93TWluTWF4QnV0dG9uc0hpbnQgfCBR
dDo6V2luZG93Q2xvc2VCdXR0b25IaW50KTsKLSAgICBzZXRSZXNpemVNb2RlKFFTR1ZpZXc6OlNp
emVSb290T2JqZWN0VG9WaWV3KTsKKyAgICBzZXRSZXNpemVNb2RlKFFRdWlja1ZpZXc6OlNpemVS
b290T2JqZWN0VG9WaWV3KTsKIAogICAgIC8vIFRoaXMgYWxsb3dzIHN0YXJ0aW5nIE1pbmlCcm93
c2VyIGZyb20gdGhlIGJ1aWxkIGRpcmVjdG9yeSB3aXRob3V0IHByZXZpb3VzbHkgZGVmaW5pbmcg
UU1MX0lNUE9SVF9QQVRILgogICAgIFFEaXIgcW1sSW1wb3J0RGlyID0gUURpcihRQ29yZUFwcGxp
Y2F0aW9uOjphcHBsaWNhdGlvbkRpclBhdGgoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJv
d3Nlci9xdC9Ccm93c2VyV2luZG93LmggYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2lu
ZG93LmgKaW5kZXggMjBmMDhlNzU0YTNmODFkYmNkNzViZWNkOWY5OTA5YjkyYjk0OTA5Mi4uNjUx
ZWEwNzhkMzEwYTc2OWY5OWE2ZDNhMGFiODQ0ZTgyMmM1MzNmMCAxMDA2NDQKLS0tIGEvVG9vbHMv
TWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0
L0Jyb3dzZXJXaW5kb3cuaApAQCAtMzEsOSArMzEsOSBAQAogCiAjaW5jbHVkZSAiTWluaUJyb3dz
ZXJBcHBsaWNhdGlvbi5oIgogI2luY2x1ZGUgPFFTdHJpbmdMaXN0PgotI2luY2x1ZGUgPFF0RGVj
bGFyYXRpdmUvUVNHVmlldz4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL1FRdWlja1ZpZXc+CiAK
LWNsYXNzIEJyb3dzZXJXaW5kb3cgOiBwdWJsaWMgUVNHVmlldyB7CitjbGFzcyBCcm93c2VyV2lu
ZG93IDogcHVibGljIFFRdWlja1ZpZXcgewogICAgIFFfT0JKRUNUCiAKIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvY29va2llamFyLmNwcCBiL1Rvb2xzL1F0VGVzdEJy
b3dzZXIvY29va2llamFyLmNwcAppbmRleCBlNzU4NmNkNGE3MWVhYmE2OTlhZTAyYzQ0NDFiZjEz
MzBmNzlhNjEzLi4yMmE4ZDE3YTJkNjA4ZWQ5NDU4YmMyYzhjMTcxMzUwZTFkMTcyMTdlIDEwMDY0
NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL2Nvb2tpZWphci5jcHAKKysrIGIvVG9vbHMvUXRU
ZXN0QnJvd3Nlci9jb29raWVqYXIuY3BwCkBAIC0yNyw3ICsyNywxMSBAQAogCiAjaW5jbHVkZSAi
Y29va2llamFyLmgiCiAKKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwg
MCkKKyNpbmNsdWRlIDxRU3RhbmRhcmRQYXRocz4KKyNlbHNlCiAjaW5jbHVkZSA8UURlc2t0b3BT
ZXJ2aWNlcz4KKyNlbmRpZgogI2luY2x1ZGUgPFFEaXI+CiAjaW5jbHVkZSA8UVRleHRTdHJlYW0+
CiAKQEAgLTQyLDcgKzQ2LDExIEBAIFRlc3RCcm93c2VyQ29va2llSmFyOjpUZXN0QnJvd3NlckNv
b2tpZUphcihRT2JqZWN0KiBwYXJlbnQpCiAgICAgY29ubmVjdCgmbV90aW1lciwgU0lHTkFMKHRp
bWVvdXQoKSksIHRoaXMsIFNMT1Qoc2F2ZVRvRGlzaygpKSk7CiAKICNpZm5kZWYgUVRfTk9fREVT
S1RPUFNFUlZJQ0VTCisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDAp
CisgICAgUVN0cmluZyBwYXRoID0gUVN0YW5kYXJkUGF0aHM6OndyaXRhYmxlTG9jYXRpb24oUVN0
YW5kYXJkUGF0aHM6OkNhY2hlTG9jYXRpb24pOworI2Vsc2UKICAgICBRU3RyaW5nIHBhdGggPSBR
RGVza3RvcFNlcnZpY2VzOjpzdG9yYWdlTG9jYXRpb24oUURlc2t0b3BTZXJ2aWNlczo6Q2FjaGVM
b2NhdGlvbik7CisjZW5kaWYKICNlbHNlCiAgICAgUVN0cmluZyBwYXRoID0gUURpcjo6aG9tZVBh
dGgoKSArICIvLlF0VGVzdEJyb3dzZXIiOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9RdFRl
c3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNo
ZXJ3aW5kb3cuY3BwCmluZGV4IDYwNDY0NDE4Njk0M2Q1MWZkZDE1MWQ2NTkzOTM5ZmNjY2NkOTkz
MzguLjVlY2UwZWI0MWY0OTk3ODc3MmQ4MmU1ZTgxYmM4NTc2MWI4YTQyZjEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuY3BwCisrKyBiL1Rvb2xzL1F0VGVz
dEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuY3BwCkBAIC02NCw3ICs2NCwxMSBAQAogI2VuZGlmCiAK
ICNpZiAhZGVmaW5lZChRVF9OT19ORVRXT1JLRElTS0NBQ0hFKSAmJiAhZGVmaW5lZChRVF9OT19E
RVNLVE9QU0VSVklDRVMpCi0jaW5jbHVkZSA8UXRHdWkvUURlc2t0b3BTZXJ2aWNlcz4KKyNpZiBR
VF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKKyNpbmNsdWRlIDxRU3RhbmRh
cmRQYXRocz4KKyNlbHNlCisjaW5jbHVkZSA8UURlc2t0b3BTZXJ2aWNlcz4KKyNlbmRpZgogI2lu
Y2x1ZGUgPFF0TmV0d29yay9RTmV0d29ya0Rpc2tDYWNoZT4KICNlbmRpZgogCkBAIC04NDUsNyAr
ODQ5LDExIEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OnNldERpc2tDYWNoZShib29sIGVuYWJsZSkK
ICAgICBRTmV0d29ya0Rpc2tDYWNoZSogY2FjaGUgPSAwOwogICAgIGlmIChlbmFibGUpIHsKICAg
ICAgICAgY2FjaGUgPSBuZXcgUU5ldHdvcmtEaXNrQ2FjaGUoKTsKKyNpZiBRVF9WRVJTSU9OID49
IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKKyAgICAgICAgUVN0cmluZyBjYWNoZUxvY2F0aW9u
ID0gUVN0YW5kYXJkUGF0aHM6OndyaXRhYmxlTG9jYXRpb24oUVN0YW5kYXJkUGF0aHM6OkNhY2hl
TG9jYXRpb24pOworI2Vsc2UKICAgICAgICAgUVN0cmluZyBjYWNoZUxvY2F0aW9uID0gUURlc2t0
b3BTZXJ2aWNlczo6c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkNhY2hlTG9jYXRp
b24pOworI2VuZGlmCiAgICAgICAgIGNhY2hlLT5zZXRDYWNoZURpcmVjdG9yeShjYWNoZUxvY2F0
aW9uKTsKICAgICB9CiAgICAgcGFnZSgpLT5uZXR3b3JrQWNjZXNzTWFuYWdlcigpLT5zZXRDYWNo
ZShjYWNoZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2Vi
Vmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA3
ZTgyYzJlNWUxYjBiOTQxZjk2NjcxNWNmZjVhZWViOWRmMjNlN2U0Li40YTU4OWJlOTM1ZWE0OGY0
ZDA4Y2Y1YjM3YTE0YThjZDkwYTk0MTc4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV2ViVmlldy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XZWJWaWV3LmgKQEAgLTMxLDggKzMxLDggQEAKICNpZiBkZWZpbmVkKEJVSUxESU5HX1FUX18p
CiBjbGFzcyBRRGVza3RvcFdlYlZpZXc7CiB0eXBlZGVmIFFEZXNrdG9wV2ViVmlldyogUGxhdGZv
cm1XS1ZpZXc7Ci1jbGFzcyBRU0dWaWV3OwotdHlwZWRlZiBRU0dWaWV3KiBQbGF0Zm9ybVdpbmRv
dzsKK2NsYXNzIFFRdWlja1ZpZXc7Cit0eXBlZGVmIFFRdWlja1ZpZXcqIFBsYXRmb3JtV2luZG93
OwogI2VsaWYgZGVmaW5lZChfX0FQUExFX18pICYmIF9fQVBQTEVfXwogI2lmIF9fT0JKQ19fCiBA
Y2xhc3MgV0tWaWV3OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0
Zm9ybVdlYlZpZXdRdC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2Vi
Vmlld1F0LmNwcAppbmRleCA5YWVhN2IzNGZiZjhkYzc4MzQ2YzYzODEzNmRiNGFmZWE3MGEwNTQ0
Li41MTUzYjUzZWRkOTE5YTkyOTk3NWJjNTAzODI1NmFjN2VkZmNmNzFhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcApAQCAtMzEsMjggKzMx
LDI4IEBACiAKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURlY2xhcmF0aXZl
UHJvcGVydHk+Ci0jaW5jbHVkZSA8UVNHVmlldz4KKyNpbmNsdWRlIDxRUXVpY2tWaWV3PgogCiBu
YW1lc3BhY2UgV1RSIHsKIAotY2xhc3MgV3JhcHBlcldpbmRvdyA6IHB1YmxpYyBRU0dWaWV3IHsK
K2NsYXNzIFdyYXBwZXJXaW5kb3cgOiBwdWJsaWMgUVF1aWNrVmlldyB7CiAgICAgUV9PQkpFQ1QK
IHB1YmxpYzoKLSAgICBXcmFwcGVyV2luZG93KFFTR0l0ZW0qIHZpZXcpCi0gICAgICAgIDogUVNH
VmlldyhRVXJsKCJkYXRhOnRleHQvcGxhaW4saW1wb3J0IFF0UXVpY2sgMi4wXG5JdGVtIHsgb2Jq
ZWN0TmFtZTogJ3Jvb3QnIH0iKSkKKyAgICBXcmFwcGVyV2luZG93KFFRdWlja0l0ZW0qIHZpZXcp
CisgICAgICAgIDogUVF1aWNrVmlldyhRVXJsKCJkYXRhOnRleHQvcGxhaW4saW1wb3J0IFF0UXVp
Y2sgMi4wXG5JdGVtIHsgb2JqZWN0TmFtZTogJ3Jvb3QnIH0iKSkKICAgICAgICAgLCBtX3ZpZXco
dmlldykKICAgICB7Ci0gICAgICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKHN0YXR1c0NoYW5nZWQo
UVNHVmlldzo6U3RhdHVzKSksIFNMT1QoaGFuZGxlU3RhdHVzQ2hhbmdlZChRU0dWaWV3OjpTdGF0
dXMpKSk7CisgICAgICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKHN0YXR1c0NoYW5nZWQoUVF1aWNr
Vmlldzo6U3RhdHVzKSksIFNMT1QoaGFuZGxlU3RhdHVzQ2hhbmdlZChRUXVpY2tWaWV3OjpTdGF0
dXMpKSk7CiAgICAgfQogCiBwcml2YXRlIHNsb3RzOgotICAgIHZvaWQgaGFuZGxlU3RhdHVzQ2hh
bmdlZChRU0dWaWV3OjpTdGF0dXMgc3RhdHVzKQorICAgIHZvaWQgaGFuZGxlU3RhdHVzQ2hhbmdl
ZChRUXVpY2tWaWV3OjpTdGF0dXMgc3RhdHVzKQogICAgIHsKLSAgICAgICAgaWYgKHN0YXR1cyAh
PSBRU0dWaWV3OjpSZWFkeSkKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBRUXVpY2tWaWV3OjpSZWFk
eSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBzZXRHZW9tZXRyeSgwLCAwLCA4MDAs
IDYwMCk7Ci0gICAgICAgIHNldFJlc2l6ZU1vZGUoUVNHVmlldzo6U2l6ZVJvb3RPYmplY3RUb1Zp
ZXcpOworICAgICAgICBzZXRSZXNpemVNb2RlKFFRdWlja1ZpZXc6OlNpemVSb290T2JqZWN0VG9W
aWV3KTsKIAogICAgICAgICBtX3ZpZXctPnNldFBhcmVudEl0ZW0ocm9vdE9iamVjdCgpKTsKICAg
ICAgICAgUURlY2xhcmF0aXZlUHJvcGVydHk6OndyaXRlKG1fdmlldywgImFuY2hvcnMuZmlsbCIs
IHFWYXJpYW50RnJvbVZhbHVlKHJvb3RPYmplY3QoKSkpOwpAQCAtNjMsNyArNjMsNyBAQCBwcml2
YXRlIHNsb3RzOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBRU0dJdGVtKiBtX3ZpZXc7CisgICAg
UVF1aWNrSXRlbSogbV92aWV3OwogfTsKIAogUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZp
ZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>112829</attachid>
            <date>2011-10-28 01:12:17 -0700</date>
            <delta_ts>2011-10-28 01:12:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>33153</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">RnJvbSA3ZjY3ZTMxZjM2ZTY5NmQxNDlhZTFhYTFiMDM5ZTk0MzcxZGU3NjM4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBIYXVzbWFubiA8c2ltb24uaGF1c21hbm5Abm9raWEu
Y29tPgpEYXRlOiBUaHUsIDI3IE9jdCAyMDExIDE1OjA5OjUwICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gW1F0XSBBZGFwdCB0byBRU0cqIHRvIFFRdWljayogQVBJIGNoYW5nZSBpbiBxdGRlY2xhcmF0
aXZlCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0OTQKClJldmll
d2VkIGJ5IEtlbm5ldGggQ2hyaXN0aWFuc2VuLgoKVXNlIFFRdWljayogaW5zdGVhZCBvZiBRU0cq
IGFzIHdlbGwgYXMgUVN0YW5kYXJkUGF0aHMKaW5zdGVhZCBvZiBRRGVza3RvcExvY2F0aW9uLgoK
U291cmNlL1dlYktpdC9xdDoKCiogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6CihRV2ViU2V0dGluZ3M6
OmVuYWJsZVBlcnNpc3RlbnRTdG9yYWdlKToKClNvdXJjZS9XZWJLaXQyOgoKKiBVSVByb2Nlc3Mv
QVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHA6CihRRGVza3RvcFdlYlZpZXc6OlFEZXNrdG9wV2Vi
Vmlldyk6CihRRGVza3RvcFdlYlZpZXc6Omdlb21ldHJ5Q2hhbmdlZCk6CihRRGVza3RvcFdlYlZp
ZXc6OmV2ZW50KToKKFFEZXNrdG9wV2ViVmlld1ByaXZhdGU6OmVuZ2luZSk6CiogVUlQcm9jZXNz
L0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuaDoKKiBVSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBh
Z2UuY3BwOgooUVRvdWNoV2ViUGFnZTo6UVRvdWNoV2ViUGFnZSk6CihRVG91Y2hXZWJQYWdlOjpl
dmVudCk6CihRVG91Y2hXZWJQYWdlOjpnZW9tZXRyeUNoYW5nZWQpOgoqIFVJUHJvY2Vzcy9BUEkv
cXQvcXRvdWNod2VicGFnZS5oOgoqIFVJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2Vidmlldy5jcHA6
CihRVG91Y2hXZWJWaWV3OjpRVG91Y2hXZWJWaWV3KToKKFFUb3VjaFdlYlZpZXc6Omdlb21ldHJ5
Q2hhbmdlZCk6CihRVG91Y2hXZWJWaWV3Ojp0b3VjaEV2ZW50KToKKiBVSVByb2Nlc3MvQVBJL3F0
L3F0b3VjaHdlYnZpZXcuaDoKKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Rlc3R3aW5kb3cuaDoK
KFRlc3RXaW5kb3c6OlRlc3RXaW5kb3cpOgooVGVzdFdpbmRvdzo6cmVzaXplRXZlbnQpOgoqIFVJ
UHJvY2Vzcy9xdC9RdERlc2t0b3BXZWJQYWdlUHJveHkuY3BwOgooUXREZXNrdG9wV2ViUGFnZVBy
b3h5OjpjcmVhdGVQb3B1cE1lbnVQcm94eSk6CiogVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1
ZS5jcHA6CihXZWJLaXQ6OlF0U0dVcGRhdGVRdWV1ZTo6UXRTR1VwZGF0ZVF1ZXVlKToKKiBVSVBy
b2Nlc3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmg6CiogVUlQcm9jZXNzL3F0L1F0VG91Y2hWaWV3SW50
ZXJmYWNlLmNwcDoKKFdlYktpdDo6UXRUb3VjaFZpZXdJbnRlcmZhY2U6OmVuZ2luZSk6CiogVUlQ
cm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6CihXZWJLaXQ6OmNvbnRl
bnRSZWN0SW5WaWV3cG9ydENvb3JkaW5hdGVzKToKKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lOjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUpOgoqIFVJUHJvY2Vzcy9xdC9R
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaDoKKiBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0
LmNwcDoKKFdlYktpdDo6ZGVmYXVsdERhdGFMb2NhdGlvbik6CiogVUlQcm9jZXNzL3F0L1dlYlBv
cHVwTWVudVByb3h5UXREZXNrdG9wLmNwcDoKKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlRdERl
c2t0b3A6OldlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wKToKKiBVSVByb2Nlc3MvcXQvV2ViUG9w
dXBNZW51UHJveHlRdERlc2t0b3AuaDoKKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlRdERlc2t0
b3A6OmNyZWF0ZSk6CgpUb29sczoKCiogTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHA6
CihCcm93c2VyV2luZG93OjpCcm93c2VyV2luZG93KToKKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2Vy
V2luZG93Lmg6CiogUXRUZXN0QnJvd3Nlci9jb29raWVqYXIuY3BwOgooVGVzdEJyb3dzZXJDb29r
aWVKYXI6OlRlc3RCcm93c2VyQ29va2llSmFyKToKKiBRdFRlc3RCcm93c2VyL2xhdW5jaGVyd2lu
ZG93LmNwcDoKKExhdW5jaGVyV2luZG93OjpzZXREaXNrQ2FjaGUpOgoqIFdlYktpdFRlc3RSdW5u
ZXIvUGxhdGZvcm1XZWJWaWV3Lmg6CiogV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZp
ZXdRdC5jcHA6CihXVFI6OldyYXBwZXJXaW5kb3c6OldyYXBwZXJXaW5kb3cpOgooV1RSOjpXcmFw
cGVyV2luZG93OjpoYW5kbGVTdGF0dXNDaGFuZ2VkKToKCkNvbmZsaWN0czoKCglTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBhZ2UuY3BwCi0tLQogU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcCAgICAgICAgICAgICAgfCAgICA4ICsrKwogU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysr
CiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
NDcgKysrKysrKysrKysrKysrKysrKysKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRl
c2t0b3B3ZWJ2aWV3LmNwcCAgIHwgICAyMiArKysrKy0tLS0tCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5oICB8ICAgIDggKystLQogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmNwcCAgfCAgICA4ICsrLS0KIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5oICAgIHwgICAgNiArLQog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJ2aWV3LmNwcCAgfCAgIDEw
ICsrLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2Vidmlldy5oICAg
IHwgICAgNiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy90ZXN0d2lu
ZG93LmggfCAgIDE0ICsrKy0tLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGVza3RvcFdl
YlBhZ2VQcm94eS5jcHAgfCAgICAyICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRT
R1VwZGF0ZVF1ZXVlLmNwcCAgICB8ICAgIDQgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFNHVXBkYXRlUXVldWUuaCAgICAgIHwgICAgOCArKy0tCiAuLi4vV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRUb3VjaFZpZXdJbnRlcmZhY2UuY3BwICB8ICAgIDQgKy0KIC4uLi9VSVByb2Nlc3Mv
cXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcCAgIHwgICAgNiArLQogLi4uL1VJUHJv
Y2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCAgICAgfCAgICA4ICsrLS0KIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwICAgICAgIHwgICAgNCAr
LQogLi4uL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcC5jcHAgICAgfCAg
ICA2ICstCiAuLi4vVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wLmggICAg
ICB8ICAgIDggKystLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDIyICsrKysrKysrKwogVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3Nlcldp
bmRvdy5jcHAgICAgICAgICAgICAgfCAgICAyICstCiBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93
c2VyV2luZG93LmggICAgICAgICAgICAgICB8ICAgIDQgKy0KIFRvb2xzL1F0VGVzdEJyb3dzZXIv
Y29va2llamFyLmNwcCAgICAgICAgICAgICAgICAgIHwgICAgOCArKysKIFRvb2xzL1F0VGVzdEJy
b3dzZXIvbGF1bmNoZXJ3aW5kb3cuY3BwICAgICAgICAgICAgIHwgICAxMCArKysrLQogVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCAgICAgICAgICAgfCAgICA0ICstCiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcCAgICB8ICAgMTgg
KysrKy0tLS0KIDI2IGZpbGVzIGNoYW5nZWQsIDE4MyBpbnNlcnRpb25zKCspLCA3NyBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAppbmRleCAxNzE0ZWUzLi4y
YmE4MzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKQEAgLTQ1LDcgKzQ1
LDExIEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9u
PgorI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQorI2luY2x1ZGUg
PFFTdGFuZGFyZFBhdGhzPgorI2Vsc2UKICNpbmNsdWRlIDxRRGVza3RvcFNlcnZpY2VzPgorI2Vu
ZGlmCiAjaW5jbHVkZSA8UURpcj4KICNpbmNsdWRlIDxRSGFzaD4KICNpbmNsdWRlIDxRU2hhcmVk
RGF0YT4KQEAgLTExMjksNyArMTEzMywxMSBAQCB2b2lkIFFXZWJTZXR0aW5nczo6ZW5hYmxlUGVy
c2lzdGVudFN0b3JhZ2UoY29uc3QgUVN0cmluZyYgcGF0aCkKIAogICAgIGlmIChwYXRoLmlzRW1w
dHkoKSkgewogCisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisg
ICAgICAgIHN0b3JhZ2VQYXRoID0gUVN0YW5kYXJkUGF0aHM6OndyaXRhYmxlTG9jYXRpb24oUVN0
YW5kYXJkUGF0aHM6OkRhdGFMb2NhdGlvbik7CisjZWxzZQogICAgICAgICBzdG9yYWdlUGF0aCA9
IFFEZXNrdG9wU2VydmljZXM6OnN0b3JhZ2VMb2NhdGlvbihRRGVza3RvcFNlcnZpY2VzOjpEYXRh
TG9jYXRpb24pOworI2VuZGlmCiAgICAgICAgIGlmIChzdG9yYWdlUGF0aC5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICBzdG9yYWdlUGF0aCA9IFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChRRGlyOjpob21lUGF0aCgpLCBRQ29yZUFwcGxpY2F0aW9uOjphcHBsaWNhdGlvbk5hbWUoKSk7
CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDliNGI0MjIuLjI1NmFiMGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAtMjcgIFNpbW9uIEhhdXNtYW5uICA8c2lt
b24uaGF1c21hbm5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gQWRhcHQgdG8gUVNHKiB0byBR
UXVpY2sqIEFQSSBjaGFuZ2UgaW4gcXRkZWNsYXJhdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0OTQKKworICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIENocmlzdGlhbnNlbi4KKworICAgICAgICBVc2UgUVF1aWNrKiBpbnN0ZWFkIG9mIFFT
RyogYXMgd2VsbCBhcyBRU3RhbmRhcmRQYXRocworICAgICAgICBpbnN0ZWFkIG9mIFFEZXNrdG9w
TG9jYXRpb24uCisKKyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKFFX
ZWJTZXR0aW5nczo6ZW5hYmxlUGVyc2lzdGVudFN0b3JhZ2UpOgorCiAyMDExLTEwLTI3ICBIZWxk
ZXIgQ29ycmVpYSAgPGhlbGRlci5jb3JyZWlhQHBhbG0uY29tPgogCiAgICAgICAgIFtRdF0gRmFp
bHVyZSB0byBidWlsZCB3aGVuIFFUX05PX01FTlUgZGVmaW5lZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGM3MjMz
OGEuLmFlMGE5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAxMS0xMC0yNyAgU2lt
b24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBB
ZGFwdCB0byBRU0cqIHRvIFFRdWljayogQVBJIGNoYW5nZSBpbiBxdGRlY2xhcmF0aXZlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEtlbm5ldGggQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIFVzZSBRUXVp
Y2sqIGluc3RlYWQgb2YgUVNHKiBhcyB3ZWxsIGFzIFFTdGFuZGFyZFBhdGhzCisgICAgICAgIGlu
c3RlYWQgb2YgUURlc2t0b3BMb2NhdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cWRlc2t0b3B3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlldzo6UURlc2t0b3BX
ZWJWaWV3KToKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlldzo6Z2VvbWV0cnlDaGFuZ2VkKToKKyAg
ICAgICAgKFFEZXNrdG9wV2ViVmlldzo6ZXZlbnQpOgorICAgICAgICAoUURlc2t0b3BXZWJWaWV3
UHJpdmF0ZTo6ZW5naW5lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9wd2Vi
dmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5jcHA6Cisg
ICAgICAgIChRVG91Y2hXZWJQYWdlOjpRVG91Y2hXZWJQYWdlKToKKyAgICAgICAgKFFUb3VjaFdl
YlBhZ2U6OmV2ZW50KToKKyAgICAgICAgKFFUb3VjaFdlYlBhZ2U6Omdlb21ldHJ5Q2hhbmdlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFUb3VjaFdlYlZp
ZXc6OlFUb3VjaFdlYlZpZXcpOgorICAgICAgICAoUVRvdWNoV2ViVmlldzo6Z2VvbWV0cnlDaGFu
Z2VkKToKKyAgICAgICAgKFFUb3VjaFdlYlZpZXc6OnRvdWNoRXZlbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvcXRvdWNod2Vidmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvdGVzdHdpbmRvdy5oOgorICAgICAgICAoVGVzdFdpbmRvdzo6VGVzdFdpbmRvdyk6
CisgICAgICAgIChUZXN0V2luZG93OjpyZXNpemVFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L3F0L1F0RGVza3RvcFdlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChRdERlc2t0b3BXZWJQYWdl
UHJveHk6OmNyZWF0ZVBvcHVwTWVudVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRT
R1VwZGF0ZVF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UXRTR1VwZGF0ZVF1ZXVlOjpRdFNH
VXBkYXRlUXVldWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFNHVXBkYXRlUXVldWUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRUb3VjaFZpZXdJbnRlcmZhY2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpRdFRvdWNoVmlld0ludGVyZmFjZTo6ZW5naW5lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y29udGVudFJlY3RJblZpZXdwb3J0Q29vcmRpbmF0ZXMpOgorICAgICAgICAoV2ViS2l0OjpR
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSk6
CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpkZWZhdWx0RGF0YUxvY2F0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViUG9wdXBN
ZW51UHJveHlRdERlc2t0b3AuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94
eVF0RGVza3RvcDo6V2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3ApOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcC5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcDo6Y3JlYXRlKToKKwogMjAxMS0xMC0yMSAgTm8nYW0g
Um9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF1bV0sy
XSBTeW5jaHJvbml6ZSB0aWxpbmcgd2l0aCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCmlu
ZGV4IDU3YzgxNTguLjhlZjQ3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHAKQEAgLTI5LDkgKzI5LDkgQEAKICNpbmNsdWRl
IDxRR3JhcGhpY3NTY2VuZVJlc2l6ZUV2ZW50PgogI2luY2x1ZGUgPFFTdHlsZU9wdGlvbkdyYXBo
aWNzSXRlbT4KICNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZWVuZ2luZS5oPgot
I2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXNnY2FudmFzLmg+Ci0jaW5jbHVkZSA8UXREZWNsYXJh
dGl2ZS9xc2dpdGVtLmg+Ci0jaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xc2d2aWV3Lmg+CisjaW5j
bHVkZSA8UXREZWNsYXJhdGl2ZS9xcXVpY2tjYW52YXMuaD4KKyNpbmNsdWRlIDxRdERlY2xhcmF0
aXZlL3FxdWlja2l0ZW0uaD4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FxdWlja3ZpZXcuaD4K
ICNpbmNsdWRlIDxRdEd1aS9RQ3Vyc29yPgogI2luY2x1ZGUgPFF0R3VpL1FEcmFnPgogI2luY2x1
ZGUgPFF0R3VpL1FGb2N1c0V2ZW50PgpAQCAtMjQyLDE1ICsyNDIsMTUgQEAgUVN0cmluZyBRRGVz
a3RvcFdlYlZpZXdQcml2YXRlOjpydW5KYXZhU2NyaXB0UHJvbXB0KGNvbnN0IFFTdHJpbmcmIG1l
c3NhZ2UsIGNvbnMKICNlbmRpZgogfQogCi1RRGVza3RvcFdlYlZpZXc6OlFEZXNrdG9wV2ViVmll
dyhRU0dJdGVtKiBwYXJlbnQpCi0gICAgOiBRU0dQYWludGVkSXRlbShwYXJlbnQpCitRRGVza3Rv
cFdlYlZpZXc6OlFEZXNrdG9wV2ViVmlldyhRUXVpY2tJdGVtKiBwYXJlbnQpCisgICAgOiBRUXVp
Y2tQYWludGVkSXRlbShwYXJlbnQpCiAgICAgLCBkKG5ldyBRRGVza3RvcFdlYlZpZXdQcml2YXRl
KHRoaXMpKQogewogICAgIGluaXQoKTsKIH0KIAotUURlc2t0b3BXZWJWaWV3OjpRRGVza3RvcFdl
YlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJl
ZiwgUVNHSXRlbSogcGFyZW50KQotICAgIDogUVNHUGFpbnRlZEl0ZW0ocGFyZW50KQorUURlc2t0
b3BXZWJWaWV3OjpRRGVza3RvcFdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFn
ZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgUVF1aWNrSXRlbSogcGFyZW50KQorICAgIDogUVF1aWNr
UGFpbnRlZEl0ZW0ocGFyZW50KQogICAgICwgZChuZXcgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZSh0
aGlzLCBjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYpKQogewogICAgIGluaXQoKTsKQEAgLTM5Nyw3
ICszOTcsNyBAQCB2b2lkIFFEZXNrdG9wV2ViVmlldzo6ZHJvcEV2ZW50KFFEcm9wRXZlbnQqIGV2
ZW50KQogCiB2b2lkIFFEZXNrdG9wV2ViVmlldzo6Z2VvbWV0cnlDaGFuZ2VkKGNvbnN0IFFSZWN0
RiYgbmV3R2VvbWV0cnksIGNvbnN0IFFSZWN0RiYgb2xkR2VvbWV0cnkpCiB7Ci0gICAgUVNHUGFp
bnRlZEl0ZW06Omdlb21ldHJ5Q2hhbmdlZChuZXdHZW9tZXRyeSwgb2xkR2VvbWV0cnkpOworICAg
IFFRdWlja1BhaW50ZWRJdGVtOjpnZW9tZXRyeUNoYW5nZWQobmV3R2VvbWV0cnksIG9sZEdlb21l
dHJ5KTsKICAgICBpZiAobmV3R2VvbWV0cnkuc2l6ZSgpICE9IG9sZEdlb21ldHJ5LnNpemUoKSkK
ICAgICAgICAgZC0+cGFnZS5zZXREcmF3aW5nQXJlYVNpemUobmV3R2VvbWV0cnkuc2l6ZSgpLnRv
U2l6ZSgpKTsKIH0KQEAgLTQxOCw4ICs0MTgsOCBAQCBib29sIFFEZXNrdG9wV2ViVmlldzo6ZXZl
bnQoUUV2ZW50KiBldikKICAgICBpZiAoZC0+cGFnZS5oYW5kbGVFdmVudChldikpCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIGlmIChldi0+dHlwZSgpID09IFFFdmVudDo6SW5wdXRNZXRob2Qp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsgLy8gVGhpcyBpcyBuZWNlc3NhcnkgdG8gYXZvaWQgYW4g
ZW5kbGVzcyBsb29wIGluIGNvbm5lY3Rpb24gd2l0aCBRU0dJdGVtOjpldmVudCgpLgotICAgIHJl
dHVybiBRU0dJdGVtOjpldmVudChldik7CisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gVGhpcyBp
cyBuZWNlc3NhcnkgdG8gYXZvaWQgYW4gZW5kbGVzcyBsb29wIGluIGNvbm5lY3Rpb24gd2l0aCBR
UXVpY2tJdGVtOjpldmVudCgpLgorICAgIHJldHVybiBRUXVpY2tJdGVtOjpldmVudChldik7CiB9
CiAKIFdLUGFnZVJlZiBRRGVza3RvcFdlYlZpZXc6OnBhZ2VSZWYoKSBjb25zdApAQCAtNDQxLDcg
KzQ0MSw3IEBAIHZvaWQgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZGlkUmVsYXVuY2hQcm9jZXNz
KCkKIAogUUpTRW5naW5lKiBRRGVza3RvcFdlYlZpZXdQcml2YXRlOjplbmdpbmUoKQogewotICAg
IFFTR1ZpZXcqIHZpZXcgPSBxb2JqZWN0X2Nhc3Q8UVNHVmlldyo+KHEtPmNhbnZhcygpKTsKKyAg
ICBRUXVpY2tWaWV3KiB2aWV3ID0gcW9iamVjdF9jYXN0PFFRdWlja1ZpZXcqPihxLT5jYW52YXMo
KSk7CiAgICAgaWYgKHZpZXcpCiAgICAgICAgIHJldHVybiB2aWV3LT5lbmdpbmUoKTsKICAgICBy
ZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRl
c2t0b3B3ZWJ2aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNrdG9w
d2Vidmlldy5oCmluZGV4IGJhNTc0YjEuLjZlYmM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuaApAQCAtMjMsNyArMjMsNyBAQAog
CiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgogI2luY2x1ZGUgPFFVcmw+Ci0jaW5jbHVkZSA8
UXREZWNsYXJhdGl2ZS9xc2dwYWludGVkaXRlbS5oPgorI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUv
cXF1aWNrcGFpbnRlZGl0ZW0uaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogCiBjbGFz
cyBRRGVza3RvcFdlYlZpZXdQcml2YXRlOwpAQCAtNTAsNyArNTAsNyBAQCBuYW1lc3BhY2UgV1RS
IHsKICAgICBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CiB9CiAKLWNsYXNzIFFXRUJLSVRfRVhQT1JU
IFFEZXNrdG9wV2ViVmlldyA6IHB1YmxpYyBRU0dQYWludGVkSXRlbSB7CitjbGFzcyBRV0VCS0lU
X0VYUE9SVCBRRGVza3RvcFdlYlZpZXcgOiBwdWJsaWMgUVF1aWNrUGFpbnRlZEl0ZW0gewogICAg
IFFfT0JKRUNUCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIHRpdGxlIFJFQUQgdGl0bGUgTk9USUZZ
IHRpdGxlQ2hhbmdlZCkKICAgICBRX1BST1BFUlRZKFFVcmwgdXJsIFJFQUQgdXJsIE5PVElGWSB1
cmxDaGFuZ2VkKQpAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgICAgIEh0dHBFcnJvcgog
ICAgIH07CiAKLSAgICBRRGVza3RvcFdlYlZpZXcoUVNHSXRlbSogcGFyZW50ID0gMCk7CisgICAg
UURlc2t0b3BXZWJWaWV3KFFRdWlja0l0ZW0qIHBhcmVudCA9IDApOwogICAgIHZpcnR1YWwgflFE
ZXNrdG9wV2ViVmlldygpOwogCiAgICAgUVVybCB1cmwoKSBjb25zdDsKQEAgLTEyMCw3ICsxMjAs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGV2ZW50KFFFdmVudCopOwogCiBwcml2
YXRlOgotICAgIFFEZXNrdG9wV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmLCBR
U0dJdGVtKiBwYXJlbnQgPSAwKTsKKyAgICBRRGVza3RvcFdlYlZpZXcoV0tDb250ZXh0UmVmLCBX
S1BhZ2VHcm91cFJlZiwgUVF1aWNrSXRlbSogcGFyZW50ID0gMCk7CiAgICAgV0tQYWdlUmVmIHBh
Z2VSZWYoKSBjb25zdDsKIAogICAgIHZvaWQgaW5pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5jcHAKaW5kZXggMWE1NGVhYS4uYjYzZjQ4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJw
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnBh
Z2UuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSA8UVNHRW5naW5lPgogI2luY2x1ZGUg
PFFVcmw+CiAKLVFUb3VjaFdlYlBhZ2U6OlFUb3VjaFdlYlBhZ2UoUVNHSXRlbSogcGFyZW50KQot
ICAgIDogUVNHSXRlbShwYXJlbnQpCitRVG91Y2hXZWJQYWdlOjpRVG91Y2hXZWJQYWdlKFFRdWlj
a0l0ZW0qIHBhcmVudCkKKyAgICA6IFFRdWlja0l0ZW0ocGFyZW50KQogICAgICwgZChuZXcgUVRv
dWNoV2ViUGFnZVByaXZhdGUodGhpcykpCiB7CiAgICAgc2V0RmxhZyhJdGVtSGFzQ29udGVudHMp
OwpAQCAtODcsNyArODcsNyBAQCBib29sIFFUb3VjaFdlYlBhZ2U6OmV2ZW50KFFFdmVudCogZXYp
CiB7CiAgICAgaWYgKGQtPnBhZ2UtPmhhbmRsZUV2ZW50KGV2KSkKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgcmV0dXJuIFFTR0l0ZW06OmV2ZW50KGV2KTsKKyAgICByZXR1cm4gUVF1aWNrSXRl
bTo6ZXZlbnQoZXYpOwogfQogCiB2b2lkIFFUb3VjaFdlYlBhZ2U6OmtleVByZXNzRXZlbnQoUUtl
eUV2ZW50KiBldmVudCkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFFUb3VjaFdlYlBhZ2U6OnRv
dWNoRXZlbnQoUVRvdWNoRXZlbnQqIGV2ZW50KQogCiB2b2lkIFFUb3VjaFdlYlBhZ2U6Omdlb21l
dHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmIG5ld0dlb21ldHJ5LCBjb25zdCBRUmVjdEYmIG9sZEdl
b21ldHJ5KQogewotICAgIFFTR0l0ZW06Omdlb21ldHJ5Q2hhbmdlZChuZXdHZW9tZXRyeSwgb2xk
R2VvbWV0cnkpOworICAgIFFRdWlja0l0ZW06Omdlb21ldHJ5Q2hhbmdlZChuZXdHZW9tZXRyeSwg
b2xkR2VvbWV0cnkpOwogICAgIGlmIChuZXdHZW9tZXRyeS5zaXplKCkgIT0gb2xkR2VvbWV0cnku
c2l6ZSgpKQogICAgICAgICBkLT5wYWdlLT5zZXREcmF3aW5nQXJlYVNpemUobmV3R2VvbWV0cnku
c2l6ZSgpLnRvU2l6ZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXRvdWNod2VicGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xdG91Y2h3ZWJwYWdlLmgKaW5kZXggYzg3ODAzOC4uYmFlMzkzNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2VicGFnZS5oCkBAIC0yMyw3ICsyMyw3
IEBACiAKICNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAKLSNpbmNsdWRlIDxRdERlY2xhcmF0
aXZlL3FzZ2l0ZW0uaD4KKyNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FxdWlja2l0ZW0uaD4KICNp
bmNsdWRlIDxRU2hhcmVkUG9pbnRlcj4KIAogY2xhc3MgUVRvdWNoV2ViUGFnZVByaXZhdGU7CkBA
IC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgUXRUb3VjaFZpZXdJbnRl
cmZhY2U7CiB9CiAKLWNsYXNzIFFXRUJLSVRfRVhQT1JUIFFUb3VjaFdlYlBhZ2UgOiBwdWJsaWMg
UVNHSXRlbSB7CitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRVG91Y2hXZWJQYWdlIDogcHVibGljIFFR
dWlja0l0ZW0gewogICAgIFFfT0JKRUNUCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIHRpdGxlIFJF
QUQgdGl0bGUgTk9USUZZIHRpdGxlQ2hhbmdlZCkKICAgICBRX1BST1BFUlRZKFFVcmwgdXJsIFJF
QUQgdXJsIE5PVElGWSB1cmxDaGFuZ2VkKQpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEh0dHBFcnJvcgogICAgIH07CiAKLSAgICBRVG91Y2hXZWJQYWdlKFFTR0l0ZW0qIHBhcmVu
dCA9IDApOworICAgIFFUb3VjaFdlYlBhZ2UoUVF1aWNrSXRlbSogcGFyZW50ID0gMCk7CiAKICAg
ICB2aXJ0dWFsIH5RVG91Y2hXZWJQYWdlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnZpZXcuY3BwCmluZGV4IDg4MjNiYTYuLjg3YTQ2NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXRvdWNod2Vidmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJ2aWV3LmNw
cApAQCAtOTIsMTEgKzkyLDExIEBAIHZvaWQgUVRvdWNoV2ViVmlld1ByaXZhdGU6OmRpZENoYW5n
ZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyCiAgICAgdXBkYXRl
Vmlld3BvcnRDb25zdHJhaW50cygpOwogfQogCi1RVG91Y2hXZWJWaWV3OjpRVG91Y2hXZWJWaWV3
KFFTR0l0ZW0qIHBhcmVudCkKLSAgICA6IFFTR0l0ZW0ocGFyZW50KQorUVRvdWNoV2ViVmlldzo6
UVRvdWNoV2ViVmlldyhRUXVpY2tJdGVtKiBwYXJlbnQpCisgICAgOiBRUXVpY2tJdGVtKHBhcmVu
dCkKICAgICAsIGQobmV3IFFUb3VjaFdlYlZpZXdQcml2YXRlKHRoaXMpKQogewotICAgIHNldEZs
YWdzKFFTR0l0ZW06Okl0ZW1DbGlwc0NoaWxkcmVuVG9TaGFwZSk7CisgICAgc2V0RmxhZ3MoUVF1
aWNrSXRlbTo6SXRlbUNsaXBzQ2hpbGRyZW5Ub1NoYXBlKTsKICAgICBjb25uZWN0KHRoaXMsIFNJ
R05BTCh2aXNpYmxlQ2hhbmdlZCgpKSwgU0xPVChvblZpc2libGVDaGFuZ2VkKCkpKTsKIH0KIApA
QCAtMTEyLDcgKzExMiw3IEBAIFFUb3VjaFdlYlBhZ2UqIFFUb3VjaFdlYlZpZXc6OnBhZ2UoKQog
CiB2b2lkIFFUb3VjaFdlYlZpZXc6Omdlb21ldHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmIG5ld0dl
b21ldHJ5LCBjb25zdCBRUmVjdEYmIG9sZEdlb21ldHJ5KQogewotICAgIFFTR0l0ZW06Omdlb21l
dHJ5Q2hhbmdlZChuZXdHZW9tZXRyeSwgb2xkR2VvbWV0cnkpOworICAgIFFRdWlja0l0ZW06Omdl
b21ldHJ5Q2hhbmdlZChuZXdHZW9tZXRyeSwgb2xkR2VvbWV0cnkpOwogICAgIGlmIChuZXdHZW9t
ZXRyeS5zaXplKCkgIT0gb2xkR2VvbWV0cnkuc2l6ZSgpKSB7CiAgICAgICAgIGQtPnVwZGF0ZVZp
ZXdwb3J0Q29uc3RyYWludHMoKTsKICAgICAgICAgZC0+X3Ffdmlld3BvcnRVcGRhdGVkKCk7CkBA
IC0xMjIsNyArMTIyLDcgQEAgdm9pZCBRVG91Y2hXZWJWaWV3OjpnZW9tZXRyeUNoYW5nZWQoY29u
c3QgUVJlY3RGJiBuZXdHZW9tZXRyeSwgY29uc3QgUVJlY3RGJiBvbGQKIHZvaWQgUVRvdWNoV2Vi
Vmlldzo6dG91Y2hFdmVudChRVG91Y2hFdmVudCogZXZlbnQpCiB7CiAgICAgZm9yY2VBY3RpdmVG
b2N1cygpOwotICAgIFFTR0l0ZW06OnRvdWNoRXZlbnQoZXZlbnQpOworICAgIFFRdWlja0l0ZW06
OnRvdWNoRXZlbnQoZXZlbnQpOwogfQogCiB2b2lkIFFUb3VjaFdlYlZpZXc6Om9uVmlzaWJsZUNo
YW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xdG91
Y2h3ZWJ2aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnZp
ZXcuaAppbmRleCBlODYyMzc4Li44ZDk4Mjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F0b3VjaHdlYnZpZXcuaApAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVk
ZSAicXdlYmtpdGdsb2JhbC5oIgogCi0jaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xc2dpdGVtLmg+
CisjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xcXVpY2tpdGVtLmg+CiAKIGNsYXNzIFFUb3VjaEV2
ZW50OwogY2xhc3MgUVRvdWNoV2ViUGFnZTsKQEAgLTMzLDEzICszMywxMyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFF0VG91Y2hWaWV3SW50ZXJmYWNlOwogfQogCi1jbGFzcyBRV0VCS0lU
X0VYUE9SVCBRVG91Y2hXZWJWaWV3IDogcHVibGljIFFTR0l0ZW0KK2NsYXNzIFFXRUJLSVRfRVhQ
T1JUIFFUb3VjaFdlYlZpZXcgOiBwdWJsaWMgUVF1aWNrSXRlbQogewogICAgIFFfT0JKRUNUCiAg
ICAgUV9QUk9QRVJUWShRVG91Y2hXZWJQYWdlKiBwYWdlIFJFQUQgcGFnZSBDT05TVEFOVCBGSU5B
TCkKIAogcHVibGljOgotICAgIFFUb3VjaFdlYlZpZXcoUVNHSXRlbSogcGFyZW50ID0gMCk7Cisg
ICAgUVRvdWNoV2ViVmlldyhRUXVpY2tJdGVtKiBwYXJlbnQgPSAwKTsKICAgICB+UVRvdWNoV2Vi
VmlldygpOwogCiAgICAgUVRvdWNoV2ViUGFnZSAqcGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy90ZXN0d2luZG93LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Rlc3R3aW5kb3cuaAppbmRleCA2Y2VkYjBjLi44
NzgwOWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3Rlc3R3aW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3Rlc3R3aW5kb3cuaApAQCAtMjIsMjAgKzIyLDIwIEBACiAKICNpbmNsdWRlIDxRUmVzaXplRXZl
bnQ+CiAjaW5jbHVkZSA8UVNjb3BlZFBvaW50ZXI+Ci0jaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9x
c2d2aWV3Lmg+Ci0jaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xc2dpdGVtLmg+CisjaW5jbHVkZSA8
UXREZWNsYXJhdGl2ZS9xcXVpY2tpdGVtLmg+CisjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xcXVp
Y2t2aWV3Lmg+CiAKIC8vIFRlc3RXaW5kb3c6IFV0aWxpdHkgY2xhc3MgdG8gaWdub3JlIFFHcmFw
aGljc1ZpZXcgZGV0YWlscy4KLWNsYXNzIFRlc3RXaW5kb3cgOiBwdWJsaWMgUVNHVmlldyB7Citj
bGFzcyBUZXN0V2luZG93IDogcHVibGljIFFRdWlja1ZpZXcgewogcHVibGljOgotICAgIGlubGlu
ZSBUZXN0V2luZG93KFFTR0l0ZW0qIHdlYlZpZXcpOwotICAgIFFTY29wZWRQb2ludGVyPFFTR0l0
ZW0+IHdlYlZpZXc7CisgICAgaW5saW5lIFRlc3RXaW5kb3coUVF1aWNrSXRlbSogd2ViVmlldyk7
CisgICAgUVNjb3BlZFBvaW50ZXI8UVF1aWNrSXRlbT4gd2ViVmlldzsKIAogcHJvdGVjdGVkOgog
ICAgIGlubGluZSB2b2lkIHJlc2l6ZUV2ZW50KFFSZXNpemVFdmVudCopOwogfTsKIAotaW5saW5l
IFRlc3RXaW5kb3c6OlRlc3RXaW5kb3coUVNHSXRlbSogd2ViVmlldykKK2lubGluZSBUZXN0V2lu
ZG93OjpUZXN0V2luZG93KFFRdWlja0l0ZW0qIHdlYlZpZXcpCiAgICAgOiB3ZWJWaWV3KHdlYlZp
ZXcpCiB7CiAgICAgUV9BU1NFUlQod2ViVmlldyk7CkBAIC00NCw3ICs0NCw3IEBAIGlubGluZSBU
ZXN0V2luZG93OjpUZXN0V2luZG93KFFTR0l0ZW0qIHdlYlZpZXcpCiAKIGlubGluZSB2b2lkIFRl
c3RXaW5kb3c6OnJlc2l6ZUV2ZW50KFFSZXNpemVFdmVudCogZXZlbnQpCiB7Ci0gICAgUVNHQ2Fu
dmFzOjpyZXNpemVFdmVudChldmVudCk7CisgICAgUVF1aWNrVmlldzo6cmVzaXplRXZlbnQoZXZl
bnQpOwogICAgIHdlYlZpZXctPnNldFgoMCk7CiAgICAgd2ViVmlldy0+c2V0WSgwKTsKICAgICB3
ZWJWaWV3LT5zZXRXaWR0aChldmVudC0+c2l6ZSgpLndpZHRoKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGVza3RvcFdlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREZXNrdG9wV2ViUGFnZVByb3h5LmNwcAppbmRleCBl
OTM4ODk0Li4yZGFmMDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXREZXNrdG9wV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXREZXNrdG9wV2ViUGFnZVByb3h5LmNwcApAQCAtODYsNyArODYsNyBAQCB2b2lkIFF0RGVz
a3RvcFdlYlBhZ2VQcm94eTo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNo
RXZlbnQmLCBib29sCiAKIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFF0RGVza3RvcFdl
YlBhZ2VQcm94eTo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5KikKIHsKLSAgICBR
U0dJdGVtKiB3ZWJWaWV3SXRlbSA9IHN0YXRpY19jYXN0PFFEZXNrdG9wV2ViVmlld1ByaXZhdGUq
PihtX3ZpZXdJbnRlcmZhY2UpLT5xOworICAgIFFRdWlja0l0ZW0qIHdlYlZpZXdJdGVtID0gc3Rh
dGljX2Nhc3Q8UURlc2t0b3BXZWJWaWV3UHJpdmF0ZSo+KG1fdmlld0ludGVyZmFjZSktPnE7CiAg
ICAgcmV0dXJuIFdlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wOjpjcmVhdGUobV93ZWJQYWdlUHJv
eHkuZ2V0KCksIHdlYlZpZXdJdGVtKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmNwcAppbmRleCBjODJiNDQ3Li40MTBhNDgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmNwcApAQCAtMjMs
NyArMjMsNyBAQAogCiAjaW5jbHVkZSAiUGFzc093blB0ci5oIgogI2luY2x1ZGUgIlF0U0dUaWxl
Tm9kZS5oIgotI2luY2x1ZGUgPFFTR0l0ZW0+CisjaW5jbHVkZSA8UVF1aWNrSXRlbT4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKQEAgLTY1LDcgKzY1LDcgQEAgc3RydWN0IE5vZGVVcGRhdGVTd2Fw
VGlsZUJ1ZmZlcnMgOiBwdWJsaWMgTm9kZVVwZGF0ZSB7CiAgICAgeyB9CiB9OwogCi1RdFNHVXBk
YXRlUXVldWU6OlF0U0dVcGRhdGVRdWV1ZShRU0dJdGVtKiBpdGVtKQorUXRTR1VwZGF0ZVF1ZXVl
OjpRdFNHVXBkYXRlUXVldWUoUVF1aWNrSXRlbSAqaXRlbSkKICAgICA6IGl0ZW0oaXRlbSkKICAg
ICAsIGxhc3RTY2FsZSgwKQogICAgICwgbGFzdFNjYWxlTm9kZSgwKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0U0dVcGRhdGVRdWV1ZS5oCmluZGV4IGQ4OTA1MjUuLmY3MGM1MDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFNHVXBkYXRlUXVldWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRTR1VwZGF0ZVF1ZXVlLmgKQEAg
LTI3LDcgKzI3LDcgQEAKIAogY2xhc3MgUUltYWdlOwogY2xhc3MgUVJlY3Q7Ci1jbGFzcyBRU0dJ
dGVtOworY2xhc3MgUVF1aWNrSXRlbTsKIGNsYXNzIFFTR05vZGU7CiBjbGFzcyBRU2l6ZTsKIApA
QCAtNDAsMjEgKzQwLDIxIEBAIGNsYXNzIFF0U0dUaWxlTm9kZTsKIC8vIFRha2VzIGNhcmUgb2Yg
dGFraW5nIHVwZGF0ZSByZXF1ZXN0cyB0aGVuIGZ1bGZpbGxpbmcgdGhlbSBhc3luY2hyb25vdXNs
eSBvbiB0aGUgc2NlbmUgZ3JhcGggdGhyZWFkLgogY2xhc3MgUXRTR1VwZGF0ZVF1ZXVlIHsKIHB1
YmxpYzoKLSAgICBRdFNHVXBkYXRlUXVldWUoUVNHSXRlbSopOworICAgIFF0U0dVcGRhdGVRdWV1
ZShRUXVpY2tJdGVtKik7CiAKICAgICBpbnQgY3JlYXRlVGlsZU5vZGUoZmxvYXQgc2NhbGUpOwog
ICAgIHZvaWQgcmVtb3ZlVGlsZU5vZGUoaW50IG5vZGVJRCk7CiAgICAgdm9pZCBzZXROb2RlQmFj
a0J1ZmZlcihpbnQgbm9kZUlELCBjb25zdCBRSW1hZ2UmIHRleHR1cmUsIGNvbnN0IFFSZWN0JiBz
b3VyY2VSZWN0LCBjb25zdCBRUmVjdCYgdGFyZ2V0UmVjdCk7CiAgICAgdm9pZCBzd2FwVGlsZUJ1
ZmZlcnMoKTsKIAotICAgIC8vIENhbGxlZCBieSB0aGUgUVNHSXRlbS4KKyAgICAvLyBDYWxsZWQg
YnkgdGhlIFFRdWlja0l0ZW0uCiAgICAgdm9pZCBhcHBseVVwZGF0ZXMoUVNHTm9kZSogaXRlbU5v
ZGUpOwogICAgIGJvb2wgaXNTd2FwUGVuZGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNTd2FwUGVu
ZGluZzsgfQogCiBwcml2YXRlOgogICAgIFFTR05vZGUqIGdldFNjYWxlTm9kZShmbG9hdCBzY2Fs
ZSwgUVNHTm9kZSogaXRlbU5vZGUpOwogCi0gICAgUVNHSXRlbSogaXRlbTsKKyAgICBRUXVpY2tJ
dGVtKiBpdGVtOwogICAgIERlcXVlPE93blB0cjxOb2RlVXBkYXRlPiA+IG5vZGVVcGRhdGVRdWV1
ZTsKICAgICBIYXNoTWFwPGludCwgUXRTR1RpbGVOb2RlKj4gbm9kZXM7CiAgICAgZmxvYXQgbGFz
dFNjYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0VG91Y2hW
aWV3SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFRvdWNoVmll
d0ludGVyZmFjZS5jcHAKaW5kZXggNDA4ZTJhNC4uYzJkMjNiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0VG91Y2hWaWV3SW50ZXJmYWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRUb3VjaFZpZXdJbnRlcmZhY2UuY3BwCkBAIC0yOCw3
ICsyOCw3IEBACiAjaW5jbHVkZSAicXRvdWNod2Vidmlld19wLmgiCiAKICNpbmNsdWRlIDxRRGVj
bGFyYXRpdmVFbmdpbmU+Ci0jaW5jbHVkZSA8UVNHVmlldz4KKyNpbmNsdWRlIDxRUXVpY2tWaWV3
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgUXRUb3Vj
aFZpZXdJbnRlcmZhY2U6OmRpZFJlbGF1bmNoUHJvY2VzcygpCiAKIFFKU0VuZ2luZSogUXRUb3Vj
aFZpZXdJbnRlcmZhY2U6OmVuZ2luZSgpCiB7Ci0gICAgUVNHVmlldyogdmlldyA9IHFvYmplY3Rf
Y2FzdDxRU0dWaWV3Kj4obV9wYWdlVmlldy0+Y2FudmFzKCkpOworICAgIFFRdWlja1ZpZXcqIHZp
ZXcgPSBxb2JqZWN0X2Nhc3Q8UVF1aWNrVmlldyo+KG1fcGFnZVZpZXctPmNhbnZhcygpKTsKICAg
ICBpZiAodmlldykKICAgICAgICAgcmV0dXJuIHZpZXctPmVuZ2luZSgpOwogICAgIHJldHVybiAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRl
cmFjdGlvbkVuZ2luZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lLmNwcAppbmRleCA1YTY5ODg5Li40OGI1ODdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lLmNwcApAQCAtMjcsMTMgKzI3LDEzIEBACiAjaW5jbHVkZSA8UVNjcm9sbEV2ZW50
PgogI2luY2x1ZGUgPFFTY3JvbGxQcmVwYXJlRXZlbnQ+CiAjaW5jbHVkZSA8UVNjcm9sbGVyUHJv
cGVydGllcz4KLSNpbmNsdWRlIDxRdERlY2xhcmF0aXZlL3FzZ2l0ZW0uaD4KKyNpbmNsdWRlIDxR
dERlY2xhcmF0aXZlL3FxdWlja2l0ZW0uaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRp
YyBjb25zdCBpbnQga1NjYWxlQW5pbWF0aW9uRHVyYXRpb25NaWxsaXMgPSA0MDA7CiAKLXN0YXRp
YyBpbmxpbmUgUVJlY3RGIGNvbnRlbnRSZWN0SW5WaWV3cG9ydENvb3JkaW5hdGVzKGNvbnN0IFFT
R0l0ZW0qIGNvbnRlbnQsIGNvbnN0IFFTR0l0ZW0qIHZpZXdwb3J0KQorc3RhdGljIGlubGluZSBR
UmVjdEYgY29udGVudFJlY3RJblZpZXdwb3J0Q29vcmRpbmF0ZXMoY29uc3QgUVF1aWNrSXRlbSog
Y29udGVudCwgY29uc3QgUVF1aWNrSXRlbSogdmlld3BvcnQpCiB7CiAgICAgcmV0dXJuIHZpZXdw
b3J0LT5tYXBSZWN0RnJvbUl0ZW0oY29udGVudCwgY29udGVudC0+Ym91bmRpbmdSZWN0KCkpOwog
fQpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IHFyZWFsIHByZXZpb3VzU2Nh
bGU7CiB9OwogCi1RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OlF0Vmlld3BvcnRJbnRlcmFj
dGlvbkVuZ2luZShjb25zdCBRU0dJdGVtKiB2aWV3cG9ydCwgUVNHSXRlbSogY29udGVudCkKK1F0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKGNv
bnN0IFFRdWlja0l0ZW0qIHZpZXdwb3J0LCBRUXVpY2tJdGVtKiBjb250ZW50KQogICAgIDogbV92
aWV3cG9ydCh2aWV3cG9ydCkKICAgICAsIG1fY29udGVudChjb250ZW50KQogICAgICwgbV9wZW5k
aW5nVXBkYXRlcygwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oCmluZGV4IDNlNGVmOTAuLmRjOTJhMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rp
b25FbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydElu
dGVyYWN0aW9uRW5naW5lLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogUVRfQkVHSU5fTkFNRVNQQUNF
CiBjbGFzcyBRUG9pbnRGOwotY2xhc3MgUVNHSXRlbTsKK2NsYXNzIFFRdWlja0l0ZW07CiBRVF9F
TkRfTkFNRVNQQUNFCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDIsNyArNDIsNyBAQCBjbGFz
cyBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9P
QkpFQ1QKIAogcHVibGljOgotICAgIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZShjb25zdCBR
U0dJdGVtKiwgUVNHSXRlbSopOworICAgIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZShjb25z
dCBRUXVpY2tJdGVtICosIFFRdWlja0l0ZW0gKik7CiAgICAgflF0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZSgpOwogCiAKQEAgLTk4LDggKzk4LDggQEAgcHJpdmF0ZToKIAogICAgIGZyaWVuZCBj
bGFzcyBWaWV3cG9ydFVwZGF0ZUd1YXJkOwogCi0gICAgY29uc3QgUVNHSXRlbSogY29uc3QgbV92
aWV3cG9ydDsKLSAgICBRU0dJdGVtKiBjb25zdCBtX2NvbnRlbnQ7CisgICAgY29uc3QgUVF1aWNr
SXRlbSogY29uc3QgbV92aWV3cG9ydDsKKyAgICBRUXVpY2tJdGVtKiBjb25zdCBtX2NvbnRlbnQ7
CiAKICAgICBDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwogICAgIGludCBtX3BlbmRpbmdVcGRh
dGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRR
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAppbmRl
eCAxZjM3N2I2Li5iMGQ1YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvV2ViQ29udGV4dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2Vi
Q29udGV4dFF0LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCIKIAogI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+Ci0jaW5jbHVk
ZSA8UURlc2t0b3BTZXJ2aWNlcz4KKyNpbmNsdWRlIDxRU3RhbmRhcmRQYXRocz4KICNpbmNsdWRl
IDxRRGlyPgogI2luY2x1ZGUgPFFQcm9jZXNzPgogCkBAIC00OSw3ICs0OSw3IEBAIHN0YXRpYyBR
U3RyaW5nIGRlZmF1bHREYXRhTG9jYXRpb24oKQogICAgIGlmICghc19kYXRhTG9jYXRpb24uaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gc19kYXRhTG9jYXRpb247CiAKLSAgICBRU3RyaW5nIGRh
dGFMb2NhdGlvbiA9IFFEZXNrdG9wU2VydmljZXM6OnN0b3JhZ2VMb2NhdGlvbihRRGVza3RvcFNl
cnZpY2VzOjpEYXRhTG9jYXRpb24pOworICAgIFFTdHJpbmcgZGF0YUxvY2F0aW9uID0gUVN0YW5k
YXJkUGF0aHM6OndyaXRhYmxlTG9jYXRpb24oUVN0YW5kYXJkUGF0aHM6OkRhdGFMb2NhdGlvbik7
CiAgICAgaWYgKGRhdGFMb2NhdGlvbi5pc0VtcHR5KCkpCiAgICAgICAgIGRhdGFMb2NhdGlvbiA9
IFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChRRGlyOjpob21lUGF0aCgpLCBRQ29y
ZUFwcGxpY2F0aW9uOjphcHBsaWNhdGlvbk5hbWUoKSk7CiAgICAgc19kYXRhTG9jYXRpb24gPSBX
ZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YUxvY2F0aW9uLCAiLlF0V2ViS2l0
LyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVu
dVByb3h5UXREZXNrdG9wLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1
cE1lbnVQcm94eVF0RGVza3RvcC5jcHAKaW5kZXggYTFiNWJkZC4uNjg3MDNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXREZXNrdG9w
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlR
dERlc2t0b3AuY3BwCkBAIC0yOCwxNSArMjgsMTUgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtUG9w
dXBNZW51RGF0YS5oIgogI2luY2x1ZGUgIldlYlBvcHVwSXRlbS5oIgotI2luY2x1ZGUgPFF0RGVj
bGFyYXRpdmUvUVNHQ2FudmFzPgotI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvUVNHSXRlbT4KKyNp
bmNsdWRlIDxRdERlY2xhcmF0aXZlL1FRdWlja0NhbnZhcz4KKyNpbmNsdWRlIDxRdERlY2xhcmF0
aXZlL1FRdWlja0l0ZW0+CiAjaW5jbHVkZSA8UVN0YW5kYXJkSXRlbU1vZGVsPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlBvcHVwTWVudVBy
b3h5UXREZXNrdG9wOjpXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcChXZWJQb3B1cE1lbnVQcm94
eTo6Q2xpZW50KiBjbGllbnQsIFFTR0l0ZW0qIHdlYlZpZXdJdGVtKQorV2ViUG9wdXBNZW51UHJv
eHlRdERlc2t0b3A6OldlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wKFdlYlBvcHVwTWVudVByb3h5
OjpDbGllbnQqIGNsaWVudCwgUVF1aWNrSXRlbSogd2ViVmlld0l0ZW0pCiAgICAgOiBRT2JqZWN0
KCkKICAgICAsIFdlYlBvcHVwTWVudVByb3h5KGNsaWVudCkKICAgICAsIG1fY29tYm9Cb3gobmV3
IFF0V2ViQ29tYm9Cb3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
V2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9XZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcC5oCmluZGV4IDg4M2ViYzcuLmQxNTg5YWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0
RGVza3RvcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQ
cm94eVF0RGVza3RvcC5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSA8UXRDb3JlL1FPYmpl
Y3Q+CiAjaW5jbHVkZSA8UXRDb3JlL1FXZWFrUG9pbnRlcj4KIAotY2xhc3MgUVNHSXRlbTsKK2Ns
YXNzIFFRdWlja0l0ZW07CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFF0V2ViQ29tYm9C
b3g7CkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFdlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wIDog
cHVibGljIFFPYmplY3QsIHB1YmxpYyBXZWJQb3B1cE1lbnVQcm94eSB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+V2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AoKTsKIAotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wPiBjcmVhdGUoV2ViUG9wdXBNZW51UHJv
eHk6OkNsaWVudCogY2xpZW50LCBRU0dJdGVtKiB3ZWJWaWV3SXRlbSkKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcD4gY3JlYXRlKFdlYlBvcHVwTWVudVBy
b3h5OjpDbGllbnQqIGNsaWVudCwgUVF1aWNrSXRlbSogd2ViVmlld0l0ZW0pCiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wKGNsaWVu
dCwgd2ViVmlld0l0ZW0pKTsKICAgICB9CkBAIC01OCwxMyArNTgsMTMgQEAgcHJpdmF0ZSBRX1NM
T1RTOgogICAgIHZvaWQgb25Qb3B1cE1lbnVIaWRkZW4oKTsKIAogcHJpdmF0ZToKLSAgICBXZWJQ
b3B1cE1lbnVQcm94eVF0RGVza3RvcChXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50KiwgUVNHSXRl
bSogd2ViVmlld0l0ZW0pOworICAgIFdlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wKFdlYlBvcHVw
TWVudVByb3h5OjpDbGllbnQqLCBRUXVpY2tJdGVtKiB3ZWJWaWV3SXRlbSk7CiAgICAgdm9pZCBw
b3B1bGF0ZShjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYpOwogCiAgICAgLy8gUXQgZ3VhcmRl
ZCBwb2ludGVyIGJlY2F1c2UgUVdpZGdldHMgaGF2ZSB0aGVpciBvd24gbWVtb3J5IG1hbmFnZW1l
bnQgYW5kCiAgICAgLy8gd2hlbiBjbG9zaW5nIHRoZSBVSSB0aGUgY29tYm9ib3ggd2lsbCBiZSBk
ZWxldGVkIGJlZm9yZSB3ZSBhcmUuCiAgICAgUVdlYWtQb2ludGVyPFdlYkNvcmU6OlF0V2ViQ29t
Ym9Cb3g+IG1fY29tYm9Cb3g7Ci0gICAgUVNHSXRlbSogbV93ZWJWaWV3SXRlbTsKKyAgICBRUXVp
Y2tJdGVtKiBtX3dlYlZpZXdJdGVtOwogICAgIGludDMyX3QgbV9zZWxlY3RlZEluZGV4OwogfTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFm
MzI4MzMuLjcyNWNlNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMS0xMC0yNyAgU2ltb24gSGF1c21hbm4gIDxz
aW1vbi5oYXVzbWFubkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBBZGFwdCB0byBRU0cqIHRv
IFFRdWljayogQVBJIGNoYW5nZSBpbiBxdGRlY2xhcmF0aXZlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IEtlbm5ldGggQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIFVzZSBRUXVpY2sqIGluc3RlYWQgb2Yg
UVNHKiBhcyB3ZWxsIGFzIFFTdGFuZGFyZFBhdGhzCisgICAgICAgIGluc3RlYWQgb2YgUURlc2t0
b3BMb2NhdGlvbi4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuY3Bw
OgorICAgICAgICAoQnJvd3NlcldpbmRvdzo6QnJvd3NlcldpbmRvdyk6CisgICAgICAgICogTWlu
aUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oOgorICAgICAgICAqIFF0VGVzdEJyb3dzZXIvY29v
a2llamFyLmNwcDoKKyAgICAgICAgKFRlc3RCcm93c2VyQ29va2llSmFyOjpUZXN0QnJvd3NlckNv
b2tpZUphcik6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHA6Cisg
ICAgICAgIChMYXVuY2hlcldpbmRvdzo6c2V0RGlza0NhY2hlKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
cXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwOgorICAgICAgICAoV1RSOjpXcmFwcGVyV2luZG93OjpX
cmFwcGVyV2luZG93KToKKyAgICAgICAgKFdUUjo6V3JhcHBlcldpbmRvdzo6aGFuZGxlU3RhdHVz
Q2hhbmdlZCk6CisKIDIwMTEtMTAtMjggIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRv
YmUuY29tPgogCiAgICAgICAgIEFkZGVkIG15c2VsZiBhcyBhIGNvbW1pdHRlci4KZGlmZiAtLWdp
dCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuY3BwIGIvVG9vbHMvTWluaUJy
b3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAKaW5kZXggZmNhOGJlNy4uY2I1ZDIwNCAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAKKysrIGIvVG9vbHMv
TWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgQnJvd3Nl
cldpbmRvdzo6QnJvd3NlcldpbmRvdyhXaW5kb3dPcHRpb25zKiBvcHRpb25zKQogewogICAgIHNl
dFdpbmRvd1RpdGxlKCJNaW5pQnJvd3NlciIpOwogICAgIHNldFdpbmRvd0ZsYWdzKFF0OjpXaW5k
b3cgfCBRdDo6V2luZG93VGl0bGVIaW50IHwgUXQ6OldpbmRvd01pbk1heEJ1dHRvbnNIaW50IHwg
UXQ6OldpbmRvd0Nsb3NlQnV0dG9uSGludCk7Ci0gICAgc2V0UmVzaXplTW9kZShRU0dWaWV3OjpT
aXplUm9vdE9iamVjdFRvVmlldyk7CisgICAgc2V0UmVzaXplTW9kZShRUXVpY2tWaWV3OjpTaXpl
Um9vdE9iamVjdFRvVmlldyk7CiAKICAgICAvLyBUaGlzIGFsbG93cyBzdGFydGluZyBNaW5pQnJv
d3NlciBmcm9tIHRoZSBidWlsZCBkaXJlY3Rvcnkgd2l0aG91dCBwcmV2aW91c2x5IGRlZmluaW5n
IFFNTF9JTVBPUlRfUEFUSC4KICAgICBRRGlyIHFtbEltcG9ydERpciA9IFFEaXIoUUNvcmVBcHBs
aWNhdGlvbjo6YXBwbGljYXRpb25EaXJQYXRoKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJy
b3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3Nlcldp
bmRvdy5oCmluZGV4IDIwZjA4ZTcuLjY1MWVhMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93
c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2Vy
V2luZG93LmgKQEAgLTMxLDkgKzMxLDkgQEAKIAogI2luY2x1ZGUgIk1pbmlCcm93c2VyQXBwbGlj
YXRpb24uaCIKICNpbmNsdWRlIDxRU3RyaW5nTGlzdD4KLSNpbmNsdWRlIDxRdERlY2xhcmF0aXZl
L1FTR1ZpZXc+CisjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9RUXVpY2tWaWV3PgogCi1jbGFzcyBC
cm93c2VyV2luZG93IDogcHVibGljIFFTR1ZpZXcgeworY2xhc3MgQnJvd3NlcldpbmRvdyA6IHB1
YmxpYyBRUXVpY2tWaWV3IHsKICAgICBRX09CSkVDVAogCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9U
b29scy9RdFRlc3RCcm93c2VyL2Nvb2tpZWphci5jcHAgYi9Ub29scy9RdFRlc3RCcm93c2VyL2Nv
b2tpZWphci5jcHAKaW5kZXggZTc1ODZjZC4uMjJhOGQxNyAxMDA2NDQKLS0tIGEvVG9vbHMvUXRU
ZXN0QnJvd3Nlci9jb29raWVqYXIuY3BwCisrKyBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvY29va2ll
amFyLmNwcApAQCAtMjcsNyArMjcsMTEgQEAKIAogI2luY2x1ZGUgImNvb2tpZWphci5oIgogCisj
aWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5jbHVkZSA8UVN0
YW5kYXJkUGF0aHM+CisjZWxzZQogI2luY2x1ZGUgPFFEZXNrdG9wU2VydmljZXM+CisjZW5kaWYK
ICNpbmNsdWRlIDxRRGlyPgogI2luY2x1ZGUgPFFUZXh0U3RyZWFtPgogCkBAIC00Miw3ICs0Niwx
MSBAQCBUZXN0QnJvd3NlckNvb2tpZUphcjo6VGVzdEJyb3dzZXJDb29raWVKYXIoUU9iamVjdCog
cGFyZW50KQogICAgIGNvbm5lY3QoJm1fdGltZXIsIFNJR05BTCh0aW1lb3V0KCkpLCB0aGlzLCBT
TE9UKHNhdmVUb0Rpc2soKSkpOwogCiAjaWZuZGVmIFFUX05PX0RFU0tUT1BTRVJWSUNFUworI2lm
IFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg1LCAwLCAwKQorICAgIFFTdHJpbmcgcGF0
aCA9IFFTdGFuZGFyZFBhdGhzOjp3cml0YWJsZUxvY2F0aW9uKFFTdGFuZGFyZFBhdGhzOjpDYWNo
ZUxvY2F0aW9uKTsKKyNlbHNlCiAgICAgUVN0cmluZyBwYXRoID0gUURlc2t0b3BTZXJ2aWNlczo6
c3RvcmFnZUxvY2F0aW9uKFFEZXNrdG9wU2VydmljZXM6OkNhY2hlTG9jYXRpb24pOworI2VuZGlm
CiAjZWxzZQogICAgIFFTdHJpbmcgcGF0aCA9IFFEaXI6OmhvbWVQYXRoKCkgKyAiLy5RdFRlc3RC
cm93c2VyIjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hl
cndpbmRvdy5jcHAgYi9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcAppbmRl
eCA2MDQ2NDQxLi41ZWNlMGViIDEwMDY0NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5j
aGVyd2luZG93LmNwcAorKysgYi9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNw
cApAQCAtNjQsNyArNjQsMTEgQEAKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoUVRfTk9fTkVUV09S
S0RJU0tDQUNIRSkgJiYgIWRlZmluZWQoUVRfTk9fREVTS1RPUFNFUlZJQ0VTKQotI2luY2x1ZGUg
PFF0R3VpL1FEZXNrdG9wU2VydmljZXM+CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NI
RUNLKDUsIDAsIDApCisjaW5jbHVkZSA8UVN0YW5kYXJkUGF0aHM+CisjZWxzZQorI2luY2x1ZGUg
PFFEZXNrdG9wU2VydmljZXM+CisjZW5kaWYKICNpbmNsdWRlIDxRdE5ldHdvcmsvUU5ldHdvcmtE
aXNrQ2FjaGU+CiAjZW5kaWYKIApAQCAtODQ1LDcgKzg0OSwxMSBAQCB2b2lkIExhdW5jaGVyV2lu
ZG93OjpzZXREaXNrQ2FjaGUoYm9vbCBlbmFibGUpCiAgICAgUU5ldHdvcmtEaXNrQ2FjaGUqIGNh
Y2hlID0gMDsKICAgICBpZiAoZW5hYmxlKSB7CiAgICAgICAgIGNhY2hlID0gbmV3IFFOZXR3b3Jr
RGlza0NhY2hlKCk7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDAp
CisgICAgICAgIFFTdHJpbmcgY2FjaGVMb2NhdGlvbiA9IFFTdGFuZGFyZFBhdGhzOjp3cml0YWJs
ZUxvY2F0aW9uKFFTdGFuZGFyZFBhdGhzOjpDYWNoZUxvY2F0aW9uKTsKKyNlbHNlCiAgICAgICAg
IFFTdHJpbmcgY2FjaGVMb2NhdGlvbiA9IFFEZXNrdG9wU2VydmljZXM6OnN0b3JhZ2VMb2NhdGlv
bihRRGVza3RvcFNlcnZpY2VzOjpDYWNoZUxvY2F0aW9uKTsKKyNlbmRpZgogICAgICAgICBjYWNo
ZS0+c2V0Q2FjaGVEaXJlY3RvcnkoY2FjaGVMb2NhdGlvbik7CiAgICAgfQogICAgIHBhZ2UoKS0+
bmV0d29ya0FjY2Vzc01hbmFnZXIoKS0+c2V0Q2FjaGUoY2FjaGUpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggN2U4MmMyZS4uNGE1ODliZSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC0zMSw4ICszMSw4IEBACiAjaWYg
ZGVmaW5lZChCVUlMRElOR19RVF9fKQogY2xhc3MgUURlc2t0b3BXZWJWaWV3OwogdHlwZWRlZiBR
RGVza3RvcFdlYlZpZXcqIFBsYXRmb3JtV0tWaWV3OwotY2xhc3MgUVNHVmlldzsKLXR5cGVkZWYg
UVNHVmlldyogUGxhdGZvcm1XaW5kb3c7CitjbGFzcyBRUXVpY2tWaWV3OwordHlwZWRlZiBRUXVp
Y2tWaWV3KiBQbGF0Zm9ybVdpbmRvdzsKICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBfX0FQ
UExFX18KICNpZiBfX09CSkNfXwogQGNsYXNzIFdLVmlldzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKaW5kZXggOWFlYTdiMy4uNTE1M2I1MyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAK
QEAgLTMxLDI4ICszMSwyOCBAQAogCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogI2luY2x1ZGUg
PFFEZWNsYXJhdGl2ZVByb3BlcnR5PgotI2luY2x1ZGUgPFFTR1ZpZXc+CisjaW5jbHVkZSA8UVF1
aWNrVmlldz4KIAogbmFtZXNwYWNlIFdUUiB7CiAKLWNsYXNzIFdyYXBwZXJXaW5kb3cgOiBwdWJs
aWMgUVNHVmlldyB7CitjbGFzcyBXcmFwcGVyV2luZG93IDogcHVibGljIFFRdWlja1ZpZXcgewog
ICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAgV3JhcHBlcldpbmRvdyhRU0dJdGVtKiB2aWV3KQot
ICAgICAgICA6IFFTR1ZpZXcoUVVybCgiZGF0YTp0ZXh0L3BsYWluLGltcG9ydCBRdFF1aWNrIDIu
MFxuSXRlbSB7IG9iamVjdE5hbWU6ICdyb290JyB9IikpCisgICAgV3JhcHBlcldpbmRvdyhRUXVp
Y2tJdGVtKiB2aWV3KQorICAgICAgICA6IFFRdWlja1ZpZXcoUVVybCgiZGF0YTp0ZXh0L3BsYWlu
LGltcG9ydCBRdFF1aWNrIDIuMFxuSXRlbSB7IG9iamVjdE5hbWU6ICdyb290JyB9IikpCiAgICAg
ICAgICwgbV92aWV3KHZpZXcpCiAgICAgewotICAgICAgICBjb25uZWN0KHRoaXMsIFNJR05BTChz
dGF0dXNDaGFuZ2VkKFFTR1ZpZXc6OlN0YXR1cykpLCBTTE9UKGhhbmRsZVN0YXR1c0NoYW5nZWQo
UVNHVmlldzo6U3RhdHVzKSkpOworICAgICAgICBjb25uZWN0KHRoaXMsIFNJR05BTChzdGF0dXND
aGFuZ2VkKFFRdWlja1ZpZXc6OlN0YXR1cykpLCBTTE9UKGhhbmRsZVN0YXR1c0NoYW5nZWQoUVF1
aWNrVmlldzo6U3RhdHVzKSkpOwogICAgIH0KIAogcHJpdmF0ZSBzbG90czoKLSAgICB2b2lkIGhh
bmRsZVN0YXR1c0NoYW5nZWQoUVNHVmlldzo6U3RhdHVzIHN0YXR1cykKKyAgICB2b2lkIGhhbmRs
ZVN0YXR1c0NoYW5nZWQoUVF1aWNrVmlldzo6U3RhdHVzIHN0YXR1cykKICAgICB7Ci0gICAgICAg
IGlmIChzdGF0dXMgIT0gUVNHVmlldzo6UmVhZHkpCisgICAgICAgIGlmIChzdGF0dXMgIT0gUVF1
aWNrVmlldzo6UmVhZHkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgc2V0R2VvbWV0
cnkoMCwgMCwgODAwLCA2MDApOwotICAgICAgICBzZXRSZXNpemVNb2RlKFFTR1ZpZXc6OlNpemVS
b290T2JqZWN0VG9WaWV3KTsKKyAgICAgICAgc2V0UmVzaXplTW9kZShRUXVpY2tWaWV3OjpTaXpl
Um9vdE9iamVjdFRvVmlldyk7CiAKICAgICAgICAgbV92aWV3LT5zZXRQYXJlbnRJdGVtKHJvb3RP
YmplY3QoKSk7CiAgICAgICAgIFFEZWNsYXJhdGl2ZVByb3BlcnR5Ojp3cml0ZShtX3ZpZXcsICJh
bmNob3JzLmZpbGwiLCBxVmFyaWFudEZyb21WYWx1ZShyb290T2JqZWN0KCkpKTsKQEAgLTYzLDcg
KzYzLDcgQEAgcHJpdmF0ZSBzbG90czoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUVNHSXRlbSog
bV92aWV3OworICAgIFFRdWlja0l0ZW0qIG1fdmlldzsKIH07CiAKIFBsYXRmb3JtV2ViVmlldzo6
UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvdXBSZWYpCi0tIAoxLjcuNy4zMjUuZzA1ZjZlZAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>