<?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>131266</bug_id>
          
          <creation_ts>2014-04-05 05:25:58 -0700</creation_ts>
          <short_desc>[EFL] Remove deprecated ewk_paint code.</short_desc>
          <delta_ts>2014-04-30 04:39:56 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>131265</dependson>
          <blocked>79766</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hyowon Kim">hw1008.kim</reporter>
          <assigned_to name="Hyowon Kim">hw1008.kim</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>997875</commentid>
    <comment_count>0</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-05 05:25:58 -0700</bug_when>
    <thetext>There are a lot of deprecated code in WebKit1-EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001509</commentid>
    <comment_count>1</comment_count>
      <attachid>229528</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-17 00:26:09 -0700</bug_when>
    <thetext>Created attachment 229528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001523</commentid>
    <comment_count>2</comment_count>
      <attachid>229534</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-17 03:03:48 -0700</bug_when>
    <thetext>Created attachment 229534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001541</commentid>
    <comment_count>3</comment_count>
      <attachid>229534</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-04-17 07:23:29 -0700</bug_when>
    <thetext>Comment on attachment 229534
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001551</commentid>
    <comment_count>4</comment_count>
      <attachid>229534</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-17 07:53:58 -0700</bug_when>
    <thetext>Comment on attachment 229534
Patch

Clearing flags on attachment: 229534

Committed r167428: &lt;http://trac.webkit.org/changeset/167428&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001552</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-17 07:54:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229528</attachid>
            <date>2014-04-17 00:26:09 -0700</date>
            <delta_ts>2014-04-17 03:03:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131266-20140417162547.patch</filename>
            <type>text/plain</type>
            <size>35764</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNjMTQwMTJlMjY1MjViOTI0
NjkzZmZiNWI5MGRiMmJhZTJkMzM0MTcuLmMyMjZiNjAzOTA2ZWJiNTk0ZTA4NmNlZmI2Y2I2MWIw
N2FhNjAyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDQtMTcgIEh5b3dvbiBL
aW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92ZSBkZXBy
ZWNhdGVkIGV3a19wYWludCBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMxMjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgZXdrX3BhaW50IHJlbGF0ZWQgY29kZSB3YXMgZGVwcmVjYXRlZCBzaW5j
ZSByMTY2NjM3LgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IFJlbW92ZSBld2tfcGFp
bnRfY29udGV4dC5jcHAKKwogMjAxNC0wNC0xMCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFw
cGxlLmNvbT4KIAogICAgICAgICBMTEludCBpbnRlcnByZXRlciBjb2RlIHNob3VsZCBiZSBnZW5l
cmF0ZWQgYXMgcGFydCBvZiBvbmUgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBhN2NjYzM4
NzJmOWI1ZjRlOTE1YjNlOTY4ZTJhMWEwNGM5Mzc2ZjM1Li42ZjBlZDU4NjJiMDYwN2U5NjU1Zjc2
YmIxNzY1NWYwOGY5OTJmNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIw
MTQtMDQtMTcgIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAg
IFtFRkxdIFJlbW92ZSBkZXByZWNhdGVkIGV3a19wYWludCBjb2RlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMjY2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZXdrX3BhaW50IHJlbGF0ZWQgY29kZSB3
YXMgZGVwcmVjYXRlZCBzaW5jZSByMTY2NjM3LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRFZmw6OmludmFsaWRhdGVSb290Vmlldyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9y
U2xvd1Njcm9sbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6
OnNjcm9sbCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcDoK
KyAgICAgICAgKiBld2svZXdrX3BhaW50X2NvbnRleHQuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IGV3ay9ld2tfcGFpbnRfY29udGV4dF9wcml2YXRlLmg6IFJlbW92ZWQuCisgICAgICAgICogZXdr
L2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19wcml2X2RlbCk6CisgICAgICAgIChf
ZXdrX3ZpZXdfc21hcnRfY2FsY3VsYXRlKToKKyAgICAgICAgKGV3a192aWV3X3NtYXJ0X3NldCk6
CisgICAgICAgIChfZXdrX3ZpZXdfcmVwYWludHNfcmVzaXplKTogRGVsZXRlZC4KKyAgICAgICAg
KF9ld2tfdmlld19yZXBhaW50X2FkZCk6IERlbGV0ZWQuCisgICAgICAgIChfZXdrX3ZpZXdfcmVw
YWludHNfZmx1c2gpOiBEZWxldGVkLgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2ZsdXNoKTog
RGVsZXRlZC4KKyAgICAgICAgKGV3a192aWV3X3JlcGFpbnRzX3BvcCk6IERlbGV0ZWQuCisgICAg
ICAgIChld2tfdmlld19yZXBhaW50X2FkZCk6IERlbGV0ZWQuCisgICAgICAgIChld2tfdmlld19w
YWludCk6IERlbGV0ZWQuCisgICAgICAgIChld2tfdmlld19wYWludF9jb250ZW50cyk6IERlbGV0
ZWQuCisgICAgICAgIChld2tfdmlld19yZXBhaW50KTogRGVsZXRlZC4KKyAgICAgICAgKGV3a192
aWV3X3Njcm9sbCk6IERlbGV0ZWQuCisgICAgICAgIChld2tfdmlld190aWxlZF9iYWNraW5nX3N0
b3JlX2ludmFsaWRhdGUpOiBEZWxldGVkLgorICAgICAgICAqIGV3ay9ld2tfdmlld19wcml2YXRl
Lmg6CisKIDIwMTQtMDQtMTUgIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIFtFRkxdIEZpeCBwcm9ibGVtcyB3aXRoIHRoZSBwaXhlbCBkdW1wLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm1FZmwuY21ha2UKaW5kZXggMzdmMDVlMTRmYmM0NDAyY2NkOWVkMGFiZjY0M2U0OGExNWNk
NmJkNy4uMjdlZWU1YTExNzI0YWEwZGMxNGY1NmMxODQwYWY1OGEyNmMwM2E3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtRWZsLmNtYWtlCkBAIC0xMjcsNyArMTI3LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NP
VVJDRVMKICAgICBlZmwvZXdrL2V3a19qcy5jcHAKICAgICBlZmwvZXdrL2V3a19tYWluLmNwcAog
ICAgIGVmbC9ld2svZXdrX25ldHdvcmsuY3BwCi0gICAgZWZsL2V3ay9ld2tfcGFpbnRfY29udGV4
dC5jcHAKICAgICBlZmwvZXdrL2V3a19zZWN1cml0eV9vcmlnaW4uY3BwCiAgICAgZWZsL2V3ay9l
d2tfc2VjdXJpdHlfcG9saWN5LmNwcAogICAgIGVmbC9ld2svZXdrX3NldHRpbmdzLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCmluZGV4IDhhMzZjZTBlMGZiYWIy
MTU4MmRkYWY3NWEyY2Q2ZWRkMjM4MGUwMTIuLmQxZDJkNTU1NGQxM2ZmNGE3ODIxYjc3ZjQyNGE3
ZTIwNzNkMmUzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAK
QEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dEVmbC5oIgogI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiQ2Fpcm9VdGls
aXRpZXNFZmwuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtQ29udGV4dENhaXJvLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCAxNGFiMTEzMDNkNTA3MzU3NGEzNDJj
OGRiYzQ1ZDUzMDI1MDE5ZWNjLi42M2YyNmFkNDhjNjg1NTlhYmNmNWM3M2U1MTZkZjNiOWI2YjJj
N2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEVmbC5jcHAKQEAgLTUxNCw0MCArNTE0LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6
OnNjaGVkdWxlQW5pbWF0aW9uKCkKIH0KICNlbmRpZgogCi12b2lkIENocm9tZUNsaWVudEVmbDo6
aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCi17Ci0jaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgZXdrX3ZpZXdfdGlsZWRfYmFja2luZ19zdG9yZV9p
bnZhbGlkYXRlKG1fdmlldywgdXBkYXRlUmVjdCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh1
cGRhdGVSZWN0KTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotI2VuZGlmCi19Ci0KLXZvaWQgQ2hy
b21lQ2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0KQotewotICAgIGlmICh1cGRhdGVSZWN0LmlzRW1wdHkoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgRXZhc19Db29yZCB4LCB5LCB3LCBoOwotCi0gICAgeCA9IHVwZGF0ZVJl
Y3QueCgpOwotICAgIHkgPSB1cGRhdGVSZWN0LnkoKTsKLSAgICB3ID0gdXBkYXRlUmVjdC53aWR0
aCgpOwotICAgIGggPSB1cGRhdGVSZWN0LmhlaWdodCgpOwotICAgIGV3a192aWV3X3JlcGFpbnQo
bV92aWV3LCB4LCB5LCB3LCBoKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKLXsKLSAg
ICBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRhdGVSZWN0KTsKLX0KLQotdm9pZCBD
aHJvbWVDbGllbnRFZmw6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3Qg
SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKLXsKLSAgICBl
d2tfdmlld19zY3JvbGwobV92aWV3LCBzY3JvbGxEZWx0YSwgcmVjdFRvU2Nyb2xsLCBjbGlwUmVj
dCk7Ci19Ci0KIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5oCmluZGV4IDY2MmI1OTE2N2I3ZDk3MzAxOTYyNjlmOTU2NTEyYjFmZDNiY2RiNTAuLjQ5ZWU4
NDBhOGNhMmUxMzJmMTliMjVmMzMwOWViZjBlMGI5ODBmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0xNTYsMTAgKzE1
NiwxMCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNv
bnN0IEludFJlY3QmKSBjb25zdCBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3Qg
SW50UmVjdCYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6
ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJl
Y3QmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9y
U2xvd1Njcm9sbChjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lk
IHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSBv
dmVycmlkZSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGll
c0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0IG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50RWZsLmNwcAppbmRleCBhNGUyZjZiOTU3MGFiOTQ4NmEyNzMxMDlhZjEzYzg5NjBhZGY2ZjJk
Li5kZDM5OTNiNTk0ZmFiMWEzYmFiMTlhYTMwNmY3OGEyMDc3MTU4NGUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5j
cHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAi
RWZsSW5zcGVjdG9yVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3BhaW50X2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wYWludF9j
b250ZXh0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMxMjY1ZTBmYjZhNTMy
OWNhMjgwMDJkNTE3M2I3OTFlNWVlZTE5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3BhaW50X2NvbnRleHQu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjAyICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcwotICAgIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
ICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAg
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAg
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZS5oIgotI2lu
Y2x1ZGUgImV3a19wYWludF9jb250ZXh0X3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tfcHJpdmF0
ZS5oIgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9s
bGVyLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2VuZGlmCi0KLUV3a19QYWludF9Db250ZXh0KiBl
d2tfcGFpbnRfY29udGV4dF9uZXcoY2Fpcm9fdCogY2Fpcm8pCi17Ci0gICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKGNhaXJvLCAwKTsKLQotICAgIEV3a19QYWludF9Db250ZXh0KiBj
b250ZXh0ID0gbmV3IEV3a19QYWludF9Db250ZXh0OwotICAgIGNvbnRleHQtPmdyYXBoaWNDb250
ZXh0ID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dChjYWlybykpOwotICAg
IGNvbnRleHQtPmNhaXJvID0gYWRvcHRSZWYoY2Fpcm9fcmVmZXJlbmNlKGNhaXJvKSk7Ci0gICAg
Y29udGV4dC0+aW1hZ2UgPSAwOwotICAgIGNvbnRleHQtPnBpeGVscyA9IDA7Ci0KLSAgICByZXR1
cm4gY29udGV4dDsKLX0KLQotRXdrX1BhaW50X0NvbnRleHQqIGV3a19wYWludF9jb250ZXh0X2Zy
b21faW1hZ2VfbmV3KEV2YXNfT2JqZWN0KiBpbWFnZSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoaW1hZ2UsIDApOwotCi0gICAgRXZhc19Db29yZCB3aWR0aCwgaGVpZ2h0
OwotICAgIHVpbnQ4X3QqIHBpeGVscyA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihldmFzX29iamVj
dF9pbWFnZV9kYXRhX2dldChpbWFnZSwgdHJ1ZSkpOwotICAgIGV2YXNfb2JqZWN0X2ltYWdlX3Np
emVfZ2V0KGltYWdlLCAmd2lkdGgsICZoZWlnaHQpOwotCi0gICAgRXdrX1BhaW50X0NvbnRleHQq
IGNvbnRleHQgPSBld2tfcGFpbnRfY29udGV4dF9mcm9tX2ltYWdlX2RhdGFfbmV3KHBpeGVscywg
d2lkdGgsIGhlaWdodCwgRVZBU19DT0xPUlNQQUNFX0FSR0I4ODg4KTsKLSAgICBpZiAoY29udGV4
dCkgewotICAgICAgICBjb250ZXh0LT5waXhlbHMgPSBwaXhlbHM7Ci0gICAgICAgIGNvbnRleHQt
PmltYWdlID0gaW1hZ2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNvbnRleHQ7Ci19Ci0KLUV3a19Q
YWludF9Db250ZXh0KiBld2tfcGFpbnRfY29udGV4dF9mcm9tX2ltYWdlX2RhdGFfbmV3KHVpbnQ4
X3QqIHBpeGVscywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgY29sb3JTcGFjZSkKLXsKLSAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocGl4ZWxzLCAwKTsKLQotICAgIE93blB0
cjxFd2tfUGFpbnRfQ29udGV4dD4gY29udGV4dCA9IGFkb3B0UHRyKG5ldyBFd2tfUGFpbnRfQ29u
dGV4dCk7Ci0gICAgY29udGV4dC0+cGl4ZWxzID0gcGl4ZWxzOwotICAgIGNvbnRleHQtPmltYWdl
ID0gMDsKLQotICAgIGNhaXJvX2Zvcm1hdF90IGZvcm1hdDsKLSAgICBpbnQgc3RyaWRlOwotICAg
IHN3aXRjaCAoY29sb3JTcGFjZSkgewotICAgIGNhc2UgRVZBU19DT0xPUlNQQUNFX0FSR0I4ODg4
OgotICAgICAgICBzdHJpZGUgPSB3aWR0aCAqIDQ7Ci0gICAgICAgIGZvcm1hdCA9IENBSVJPX0ZP
Uk1BVF9BUkdCMzI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRVZBU19DT0xPUlNQQUNFX1JH
QjU2NV9BNVA6Ci0gICAgICAgIHN0cmlkZSA9IHdpZHRoICogMjsKLSAgICAgICAgZm9ybWF0ID0g
Q0FJUk9fRk9STUFUX1JHQjE2XzU2NTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgRVJSKCJ1bmtub3duIGNvbG9yIHNwYWNlOiAlZCIsIGNvbG9yU3BhY2UpOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBjb250ZXh0LT5zdXJmYWNlID0gYWRvcHRSZWYoY2Fp
cm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEocGl4ZWxzLCBmb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIHN0cmlkZSkpOwotICAgIGNhaXJvX3N0YXR1c190IHN0YXR1cyA9IGNhaXJvX3N1cmZh
Y2Vfc3RhdHVzKGNvbnRleHQtPnN1cmZhY2UuZ2V0KCkpOwotICAgIGlmIChzdGF0dXMgIT0gQ0FJ
Uk9fU1RBVFVTX1NVQ0NFU1MpIHsKLSAgICAgICAgRVJSKCJjb3VsZCBub3QgY3JlYXRlIHN1cmZh
Y2UgZnJvbSBkYXRhICVkeCVkOiAlcyIsIHdpZHRoLCBoZWlnaHQsIGNhaXJvX3N0YXR1c190b19z
dHJpbmcoc3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGNvbnRleHQt
PmNhaXJvID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKGNvbnRleHQtPnN1cmZhY2UuZ2V0KCkpKTsK
LSAgICBzdGF0dXMgPSBjYWlyb19zdGF0dXMoY29udGV4dC0+Y2Fpcm8uZ2V0KCkpOwotICAgIGlm
IChzdGF0dXMgIT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MpIHsKLSAgICAgICAgRVJSKCJjb3VsZCBu
b3QgY3JlYXRlIGNhaXJvIGZyb20gc3VyZmFjZSAlZHglZDogJXMiLCB3aWR0aCwgaGVpZ2h0LCBj
YWlyb19zdGF0dXNfdG9fc3RyaW5nKHN0YXR1cykpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9
Ci0KLSAgICBjb250ZXh0LT5ncmFwaGljQ29udGV4dCA9IGFkb3B0UHRyKG5ldyBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQoY29udGV4dC0+Y2Fpcm8uZ2V0KCkpKTsKLQotICAgIHJldHVybiBjb250
ZXh0LnJlbGVhc2UoKS5sZWFrUHRyKCk7Ci19Ci0KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRfZnJl
ZShFd2tfUGFpbnRfQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTihjb250ZXh0KTsKLQotICAgIGlmIChjb250ZXh0LT5pbWFnZSAmJiBjb250ZXh0LT5w
aXhlbHMpIHsKLSAgICAgICAgLy8gRGVjcmVhc2UgcmVmY291bnQgaW5zaWRlIGltYWdlIG9iamVj
dC4KLSAgICAgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV9zZXQoY29udGV4dC0+aW1hZ2UsIGNv
bnRleHQtPnBpeGVscyk7Ci0gICAgfQotICAgIGRlbGV0ZSBjb250ZXh0OwotfQotCi12b2lkIGV3
a19wYWludF9jb250ZXh0X3NhdmUoRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oY29udGV4dCk7Ci0KLSAgICBjYWlyb19zYXZlKGNv
bnRleHQtPmNhaXJvLmdldCgpKTsKLSAgICBjb250ZXh0LT5ncmFwaGljQ29udGV4dC0+c2F2ZSgp
OwotfQotCi12b2lkIGV3a19wYWludF9jb250ZXh0X3Jlc3RvcmUoRXdrX1BhaW50X0NvbnRleHQq
IGNvbnRleHQpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oY29udGV4dCk7Ci0K
LSAgICBjb250ZXh0LT5ncmFwaGljQ29udGV4dC0+cmVzdG9yZSgpOwotICAgIGNhaXJvX3Jlc3Rv
cmUoY29udGV4dC0+Y2Fpcm8uZ2V0KCkpOwotfQotCi12b2lkIGV3a19wYWludF9jb250ZXh0X2Ns
aXAoRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBhcmVh
KQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGNvbnRleHQpOwotICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOKGFyZWEpOwotCi0gICAgY29udGV4dC0+Z3JhcGhpY0NvbnRl
eHQtPmNsaXAoV2ViQ29yZTo6SW50UmVjdCgqYXJlYSkpOwotfQotCi12b2lkIGV3a19wYWludF9j
b250ZXh0X3NjYWxlKEV3a19QYWludF9Db250ZXh0KiBjb250ZXh0LCBmbG9hdCBzY2FsZVgsIGZs
b2F0IHNjYWxlWSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihjb250ZXh0KTsK
LQotICAgIGNvbnRleHQtPmdyYXBoaWNDb250ZXh0LT5zY2FsZShXZWJDb3JlOjpGbG9hdFNpemUo
c2NhbGVYLCBzY2FsZVkpKTsKLX0KLQotdm9pZCBld2tfcGFpbnRfY29udGV4dF90cmFuc2xhdGUo
RXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHgsIGZsb2F0IHkpCi17Ci0gICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oY29udGV4dCk7Ci0KLSAgICBjb250ZXh0LT5ncmFwaGlj
Q29udGV4dC0+dHJhbnNsYXRlKHgsIHkpOwotfQotCi12b2lkIGV3a19wYWludF9jb250ZXh0X3Bh
aW50KEV3a19QYWludF9Db250ZXh0KiBjb250ZXh0LCBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcs
IGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBhcmVhKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOKGNvbnRleHQpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHZpZXcpOwot
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGFyZWEpOwotCi0gICAgV2ViQ29yZTo6SW50
UmVjdCBwYWludEFyZWEoKmFyZWEpOwotCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0g
ICAgaWYgKHZpZXctPmZyYW1lKCkudGlsZWRCYWNraW5nU3RvcmUoKSkgewotICAgICAgICBpbnQg
c2Nyb2xsWCA9IHZpZXctPnNjcm9sbFgoKTsKLSAgICAgICAgaW50IHNjcm9sbFkgPSB2aWV3LT5z
Y3JvbGxZKCk7Ci0KLSAgICAgICAgY29udGV4dC0+Z3JhcGhpY0NvbnRleHQtPnRyYW5zbGF0ZSgt
c2Nyb2xsWCwgLXNjcm9sbFkpOwotCi0gICAgICAgIHBhaW50QXJlYS5tb3ZlKHNjcm9sbFgsIHNj
cm9sbFkpOwotCi0gICAgICAgIHZpZXctPmZyYW1lKCkudGlsZWRCYWNraW5nU3RvcmUoKS0+cGFp
bnQoY29udGV4dC0+Z3JhcGhpY0NvbnRleHQuZ2V0KCksIHBhaW50QXJlYSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmICh2aWV3LT5pc1RyYW5zcGFyZW50KCkpCi0g
ICAgICAgIGNvbnRleHQtPmdyYXBoaWNDb250ZXh0LT5jbGVhclJlY3QocGFpbnRBcmVhKTsKLSAg
ICB2aWV3LT5wYWludChjb250ZXh0LT5ncmFwaGljQ29udGV4dC5nZXQoKSwgcGFpbnRBcmVhKTsK
LX0KLQotdm9pZCBld2tfcGFpbnRfY29udGV4dF9wYWludF9jb250ZW50cyhFd2tfUGFpbnRfQ29u
dGV4dCogY29udGV4dCwgV2ViQ29yZTo6RnJhbWVWaWV3KiB2aWV3LCBjb25zdCBFaW5hX1JlY3Rh
bmdsZSogYXJlYSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihjb250ZXh0KTsK
LSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTih2aWV3KTsKLSAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTihhcmVhKTsKLQotICAgIFdlYkNvcmU6OkludFJlY3QgcGFpbnRBcmVhKCph
cmVhKTsKLQotICAgIGlmICh2aWV3LT5pc1RyYW5zcGFyZW50KCkpCi0gICAgICAgIGNvbnRleHQt
PmdyYXBoaWNDb250ZXh0LT5jbGVhclJlY3QocGFpbnRBcmVhKTsKLSAgICB2aWV3LT5wYWludENv
bnRlbnRzKGNvbnRleHQtPmdyYXBoaWNDb250ZXh0LmdldCgpLCBwYWludEFyZWEpOwotCi0jaWYg
RU5BQkxFKElOU1BFQ1RPUikKLSAgICBXZWJDb3JlOjpQYWdlKiBwYWdlID0gdmlldy0+ZnJhbWUo
KS5wYWdlKCk7Ci0gICAgaWYgKHBhZ2UpIHsKLSAgICAgICAgV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlciYgY29udHJvbGxlciA9IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKTsKLSAgICAg
ICAgaWYgKGNvbnRyb2xsZXIuaGlnaGxpZ2h0ZWROb2RlKCkpCi0gICAgICAgICAgICBjb250cm9s
bGVyLmRyYXdIaWdobGlnaHQoKmNvbnRleHQtPmdyYXBoaWNDb250ZXh0KTsKLSAgICB9Ci0jZW5k
aWYKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcGFpbnRfY29udGV4
dF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3BhaW50X2NvbnRleHRfcHJp
dmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzI3YjA3MzdlYTQwODUzNjI4
NjBlMzQ1NzRhNjMwNWQ4NzhhNWZlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcGFpbnRfY29udGV4dF9wcml2
YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gICAgQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLQotICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQot
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0vKioKLSAqIEBmaWxlICAgIGV3
a19wYWludF9jb250ZXh0X3ByaXZhdGUuaAotICogQGJyaWVmICAgRGVzY3JpYmVzIHRoZSBwYWlu
dCBjb250ZXh0IEFQSS4KLSAqLwotCi0jaWZuZGVmIGV3a19wYWludF9jb250ZXh0X3ByaXZhdGVf
aAotI2RlZmluZSBld2tfcGFpbnRfY29udGV4dF9wcml2YXRlX2gKLQotI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIlJlZlB0ckNh
aXJvLmgiCi0jaW5jbHVkZSA8RXZhcy5oPgotI2luY2x1ZGUgPGNhaXJvLmg+Ci0KLS8vLyBDcmVh
dGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdrX1BhaW50X0NvbnRleHQuCi10eXBlZGVmIHN0cnVj
dCBfRXdrX1BhaW50X0NvbnRleHQgRXdrX1BhaW50X0NvbnRleHQ7Ci0KLS8qKgotICogQGJyaWVm
IFN0cnVjdHVyZSB0aGF0IGtlZXBzIHRoZSBwYWludCBjb250ZXh0LgotICoKLSAqIEBpbnRlcm5h
bAotICoKLSAqIEBub3RlIFRoaXMgaXMgbm90IGZvciBnZW5lcmFsIHVzZSBidXQganVzdCBmb3Ig
c3ViY2xhc3NlcyB0aGF0IHdhbnQKLSAqICAgICAgIHRvIGRlZmluZSB0aGVpciBvd24gYmFja2lu
ZyBzdG9yZS4KLSAqLwotc3RydWN0IF9Fd2tfUGFpbnRfQ29udGV4dCB7Ci0gICAgT3duUHRyPFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gZ3JhcGhpY0NvbnRleHQ7Ci0gICAgUmVmUHRyPGNhaXJv
X3Q+IGNhaXJvOwotICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2U7IC8qKjwgc3Vy
ZmFjZSB1c2VkIHRvIGNyZWF0ZSBjYWlybyBvYmplY3QgKi8KLSAgICBFdmFzX09iamVjdCogaW1h
Z2U7IC8qKjwgaW1hZ2UgdXNlZCB0byBjcmVhdGUgY2Fpcm8gc3VyZmFjZSAqLwotICAgIHVuc2ln
bmVkIGNoYXIqIHBpeGVsczsgLyoqPCBwaXhlbHMgZm9ybSBpbWFnZSAqLwotfTsKLQotLyoqCi0g
KiBAaW50ZXJuYWwKLSAqIENyZWF0ZXMgYSBuZXcgcGFpbnQgY29udGV4dCB1c2luZyBhIGNhaXJv
IGFzIG91dHB1dC4KLSAqCi0gKiBAcGFyYW0gY2Fpcm8gY29udGV4dCB0byB1c2UgYXMgcGFpbnQg
ZGVzdGluYXRpb24sIGEgbmV3Ci0gKiAgICAgICAgcmVmZXJlbmNlIGlzIHRha2VuLCBzbyBpdCdz
IHNhZmUgdG8gY2FsbCBAYyBjYWlyb19kZXN0cm95KCkKLSAqICAgICAgICBhZnRlciB0aGlzIGZ1
bmN0aW9uIHJldHVybnMuCi0gKgotICogQHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBpbnN0YW5j
ZSBvZiBAYyBFd2tfUGFpbnRfQ29udGV4dCBvbiBzdWNjZXNzLAotICogICAgICAgICBvciBAYyAw
IG9uIGZhaWx1cmUKLSAqCi0gKiBAbm90ZSBUaGlzIGlzIG5vdCBmb3IgZ2VuZXJhbCB1c2UgYnV0
IGp1c3QgZm9yIHN1YmNsYXNzZXMgdGhhdCB3YW50Ci0gKiAgICAgICB0byBkZWZpbmUgdGhlaXIg
b3duIGJhY2tpbmcgc3RvcmUuCi0gKi8KLUV3a19QYWludF9Db250ZXh0KiBld2tfcGFpbnRfY29u
dGV4dF9uZXcoY2Fpcm9fdCogY2Fpcm8pOwotCi0vKioKLSAqIEBpbnRlcm5hbAotICogQ3JlYXRl
cyBhIG5ldyBwYWludCBjb250ZXh0IHVzaW5nIGFuIGltYWdlIGFzIG91dHB1dC4KLSAqCi0gKiBA
cGFyYW0gaW1hZ2UgdG8gdXNlIGFzIHBhaW50IGRlc3RpbmF0aW9uCi0gKgotICogQHJldHVybiBh
IG5ld2x5IGFsbG9jYXRlZCBpbnN0YW5jZSBvZiBAYyBFd2tfUGFpbnRfQ29udGV4dCBvbiBzdWNj
ZXNzLAotICogICAgICAgICBvciBAYyAwIG9uIGZhaWx1cmUKLSAqCi0gKiBAbm90ZSBUaGlzIGlz
IG5vdCBmb3IgZ2VuZXJhbCB1c2UgYnV0IGp1c3QgZm9yIHN1YmNsYXNzZXMgdGhhdCB3YW50Ci0g
KiAgICAgICB0byBkZWZpbmUgdGhlaXIgb3duIGJhY2tpbmcgc3RvcmUuCi0gKi8KLUV3a19QYWlu
dF9Db250ZXh0KiBld2tfcGFpbnRfY29udGV4dF9mcm9tX2ltYWdlX25ldyhFdmFzX09iamVjdCog
aW1hZ2UpOwotCi0vKioKLSAqIEBpbnRlcm5hbAotICogQ3JlYXRlcyBhIG5ldyBwYWludCBjb250
ZXh0IHVzaW5nIGFuIGltYWdlIGFzIG91dHB1dC4KLSAqCi0gKiBAcGFyYW0gcGl4ZWwgcG9pbnRl
ciB0byBwaXhlbCBidWZmZXIKLSAqIEBwYXJhbSB3aWR0aCBzaXplIG9mIHBpeGVsIGJ1ZmZlcgot
ICogQHBhcmFtIGhlaWdodCBzaXplIG9mIHBpeGVsIGJ1ZmZlcgotICogQHBhcmFtIGNvbG9yU3Bh
Y2UgRXZhc19Db2xvcnNwYWNlIG9mIHBpeGVsIGJ1ZmZlcgotICoKLSAqIEByZXR1cm4gYSBuZXds
eSBhbGxvY2F0ZWQgaW5zdGFuY2Ugb2YgQGMgRXdrX1BhaW50X0NvbnRleHQgb24gc3VjY2VzcywK
LSAqICAgICAgICAgb3IgQGMgMCBvbiBmYWlsdXJlCi0gKgotICogQG5vdGUgVGhpcyBpcyBub3Qg
Zm9yIGdlbmVyYWwgdXNlIGJ1dCBqdXN0IGZvciBzdWJjbGFzc2VzIHRoYXQgd2FudAotICogICAg
ICAgdG8gZGVmaW5lIHRoZWlyIG93biBiYWNraW5nIHN0b3JlLgotICovCi1Fd2tfUGFpbnRfQ29u
dGV4dCogZXdrX3BhaW50X2NvbnRleHRfZnJvbV9pbWFnZV9kYXRhX25ldyh1aW50OF90KiBwaXhl
bHMsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IGNvbG9yU3BhY2UpOwotCi0vKioKLSAqIEBp
bnRlcm5hbAotICogRGVzdHJveXMgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCB0aGUgcGFpbnQgY29u
dGV4dC4KLSAqCi0gKiBAcGFyYW0gY29udGV4dCB0aGUgcGFpbnQgY29udGV4dCB0byBkZXN0cm95
LCBtdXN0IEBiIG5vdCBiZSBAYyAwCi0gKgotICogQG5vdGUgVGhpcyBpcyBub3QgZm9yIGdlbmVy
YWwgdXNlIGJ1dCBqdXN0IGZvciBzdWJjbGFzc2VzIHRoYXQgd2FudAotICogICAgICAgdG8gZGVm
aW5lIHRoZWlyIG93biBiYWNraW5nIHN0b3JlLgotICovCi12b2lkIGV3a19wYWludF9jb250ZXh0
X2ZyZWUoRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQpOwotCi0vKioKLSAqIEBpbnRlcm5hbAot
ICogU2F2ZXMgKHB1c2ggdG8gc3RhY2spIHRoZSBwYWludCBjb250ZXh0IHN0YXR1cy4KLSAqCi0g
KiBAcGFyYW0gY29udGV4dCB0aGUgcGFpbnQgY29udGV4dCB0byBzYXZlLCBtdXN0IEBiIG5vdCBi
ZSBAYyAwCi0gKgotICogQHNlZSBld2tfcGFpbnRfY29udGV4dF9yZXN0b3JlKCkKLSAqCi0gKiBA
bm90ZSBUaGlzIGlzIG5vdCBmb3IgZ2VuZXJhbCB1c2UgYnV0IGp1c3QgZm9yIHN1YmNsYXNzZXMg
dGhhdCB3YW50Ci0gKiAgICAgICB0byBkZWZpbmUgdGhlaXIgb3duIGJhY2tpbmcgc3RvcmUuCi0g
Ki8KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRfc2F2ZShFd2tfUGFpbnRfQ29udGV4dCogY29udGV4
dCk7Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBSZXN0b3JlcyAocG9wIGZyb20gc3RhY2spIHRo
ZSBwYWludCBjb250ZXh0IHN0YXR1cy4KLSAqCi0gKiBAcGFyYW0gY29udGV4dCB0aGUgcGFpbnQg
Y29udGV4dCB0byByZXN0b3JlLCBtdXN0IEBiIG5vdCBiZSBAYyAwCi0gKgotICogQHNlZSBld2tf
cGFpbnRfY29udGV4dF9zYXZlKCkKLSAqCi0gKiBAbm90ZSBUaGlzIGlzIG5vdCBmb3IgZ2VuZXJh
bCB1c2UgYnV0IGp1c3QgZm9yIHN1YmNsYXNzZXMgdGhhdCB3YW50Ci0gKiAgICAgICB0byBkZWZp
bmUgdGhlaXIgb3duIGJhY2tpbmcgc3RvcmUuCi0gKi8KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRf
cmVzdG9yZShFd2tfUGFpbnRfQ29udGV4dCogY29udGV4dCk7Ci0KLS8qKgotICogQGludGVybmFs
Ci0gKiBDbGlwcyB0aGUgcGFpbnQgY29udGV4dCBkcmF3aW5ncyB0byB0aGUgZ2l2ZW4gYXJlYS4K
LSAqCi0gKiBAcGFyYW0gY29udGV4dCB0aGUgcGFpbnQgY29udGV4dCB0byBjbGlwLCBtdXN0IEBi
IG5vdCBiZSBAYyAwCi0gKiBAcGFyYW0gYXJlYSBjbGlwIGFyZWEgdG8gdXNlLCBtdXN0IEBiIG5v
dCBiZSBAYyAwCi0gKgotICogQHNlZSBld2tfcGFpbnRfY29udGV4dF9zYXZlKCkKLSAqIEBzZWUg
ZXdrX3BhaW50X2NvbnRleHRfcmVzdG9yZSgpCi0gKgotICogQG5vdGUgVGhpcyBpcyBub3QgZm9y
IGdlbmVyYWwgdXNlIGJ1dCBqdXN0IGZvciBzdWJjbGFzc2VzIHRoYXQgd2FudAotICogICAgICAg
dG8gZGVmaW5lIHRoZWlyIG93biBiYWNraW5nIHN0b3JlLgotICovCi12b2lkIGV3a19wYWludF9j
b250ZXh0X2NsaXAoRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEVpbmFfUmVjdGFu
Z2xlKiBhcmVhKTsKLQotLyoqCi0gKiBAaW50ZXJuYWwKLSAqIFNjYWxlcyB0aGUgY29udGVudHMg
YnkgdGhlIGdpdmVuIGZhY3RvcnMuCi0gKgotICogVGhpcyBmdW5jdGlvbiBhcHBsaWVzIGEgc2Nh
bGluZyB0cmFuc2Zvcm1hdGlvbiB1c2luZyBDYWlyby4KLSAqCi0gKiBAcGFyYW0gY29udGV4dCB0
aGUgcGFpbnQgY29udGV4dCB0byBzY2FsZSwgbXVzdCBAYiBub3QgYmUgQGMgMAotICogQHBhcmFt
IHNjYWxlX3ggdGhlIHNjYWxlIGZhY3RvciBmb3IgdGhlIFggZGltZW5zaW9uCi0gKiBAcGFyYW0g
c2NhbGVfeSB0aGUgc2NhbGUgZmFjdG9yIGZvciB0aGUgWSBkaW1lbnNpb24KLSAqLwotdm9pZCBl
d2tfcGFpbnRfY29udGV4dF9zY2FsZShFd2tfUGFpbnRfQ29udGV4dCogY29udGV4dCwgZmxvYXQg
c2NhbGVfeCwgZmxvYXQgc2NhbGVfeSk7Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBQZXJmb3Jt
cyBhIHRyYW5zbGF0aW9uIG9mIHRoZSBvcmlnaW4gY29vcmRpbmF0ZXMuCi0gKgotICogVGhpcyBm
dW5jdGlvbiBtb3ZlcyB0aGUgb3JpZ2luIGNvb3JkaW5hdGVzIGJ5IEBhIHggYW5kIEBhIHkgcGl4
ZWxzLgotICoKLSAqIEBwYXJhbSBjb250ZXh0IHRoZSBwYWludCBjb250ZXh0IHRvIHRyYW5zbGF0
ZSwgbXVzdCBAYiBub3QgYmUgQGMgMAotICogQHBhcmFtIHggYW1vdW50IG9mIHBpeGVscyB0byB0
cmFuc2xhdGUgaW4gdGhlIFggZGltZW5zaW9uCi0gKiBAcGFyYW0geSBhbW91bnQgb2YgcGl4ZWxz
IHRvIHRyYW5zbGF0ZSBpbiB0aGUgWSBkaW1lbnNpb24KLSAqLwotdm9pZCBld2tfcGFpbnRfY29u
dGV4dF90cmFuc2xhdGUoRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHgsIGZsb2F0
IHkpOwotCi0vKioKLSAqIEBpbnRlcm5hbAotICogUGFpbnRzIHRoZSBjb250ZXh0IHVzaW5nIGdp
dmVuIGFyZWEuCi0gKgotICogQHBhcmFtIGNvbnRleHQgdGhlIHBhaW50IGNvbnRleHQgdG8gcGFp
bnQsIG11c3QgQGIgbm90IGJlIEBjIDAKLSAqIEBwYXJhbSB2aWV3IHRoZSB2aWV3IHRvIHBhaW50
Ci0gKiBAcGFyYW0gYXJlYSB0aGUgcGFpbnQgYXJlYSB0byB1c2UsIGNvb3JkaW5hdGVzIGFyZSBy
ZWxhdGl2ZSB0byBjdXJyZW50IHZpZXdwb3J0LAotICogICAgICAgIHRodXMgInNjcm9sbGVkIiwg
bXVzdCBAYiBub3QgYmUgQGMgMAotICoKLSAqIEBub3RlIE9uZSBtYXkgdXNlIGNhaXJvIGZ1bmN0
aW9ucyBvbiB0aGUgY2Fpcm8gY29udGV4dCB0bwotICogICAgICAgdHJhbnNsYXRlLCBzY2FsZSBv
ciBhbnkgbW9kaWZpY2F0aW9uIHRoYXQgbWF5IGZpdCBoaXMgZGVzaXJlcy4KLSAqCi0gKiBAc2Vl
IGV3a19wYWludF9jb250ZXh0X2NsaXAoKQotICogQHNlZSBld2tfcGFpbnRfY29udGV4dF9wYWlu
dF9jb250ZW50cygpCi0gKgotICogQG5vdGUgVGhpcyBpcyBub3QgZm9yIGdlbmVyYWwgdXNlIGJ1
dCBqdXN0IGZvciBzdWJjbGFzc2VzIHRoYXQgd2FudAotICogICAgICAgdG8gZGVmaW5lIHRoZWly
IG93biBiYWNraW5nIHN0b3JlLgotICovCi12b2lkIGV3a19wYWludF9jb250ZXh0X3BhaW50KEV3
a19QYWludF9Db250ZXh0KiBjb250ZXh0LCBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcsIGNvbnN0
IEVpbmFfUmVjdGFuZ2xlKiBhcmVhKTsKLQotLyoqCi0gKiBAaW50ZXJuYWwKLSAqIFBhaW50cyBq
dXN0IGNvbnRlbnRzIHVzaW5nIGNvbnRleHQgdXNpbmcgZ2l2ZW4gYXJlYS4KLSAqCi0gKiBVbmxp
a2UgZXdrX3BhaW50X2NvbnRleHRfcGFpbnQoKSwgdGhpcyBmdW5jdGlvbiBwYWludCBqdXN0Ci0g
KiBiYXJlIGNvbnRlbnRzIGFuZCBpZ25vcmVzIGFueSBzY3JvbGxpbmcsIHNjcm9sbGJhcnMgYW5k
IGV4dHJhcy4gSXQKLSAqIHdpbGwgd2FsayB0aGUgcmVuZGVyaW5nIHRyZWUgYW5kIHBhaW50IGNv
bnRlbnRzIGluc2lkZSB0aGUgZ2l2ZW4KLSAqIGFyZWEgdG8gdGhlIGNhaXJvIGNvbnRleHQgc3Bl
Y2lmaWVkIGluIEBhIGNvbnRleHQuCi0gKgotICogQHBhcmFtIGNvbnRleHQgdGhlIHBhaW50IGNv
bnRleHQgdG8gcGFpbnQsIG11c3QgQGIgbm90IGJlIEBjIDAuCi0gKiBAcGFyYW0gdmlldyB0aGUg
dmlldyB0byBwYWludAotICogQHBhcmFtIGFyZWEgdGhlIHBhaW50IGFyZWEgdG8gdXNlLCBjb29y
ZGluYXRlcyBhcmUgYWJzb2x1dGUgdG8gcGFnZSwgbXVzdCBAYiBub3QgYmUgQGMgMAotICoKLSAq
IEBub3RlIE9uZSBtYXkgdXNlIGNhaXJvIGZ1bmN0aW9ucyBvbiB0aGUgY2Fpcm8gY29udGV4dCB0
bwotICogICAgICAgdHJhbnNsYXRlLCBzY2FsZSBvciBhbnkgbW9kaWZpY2F0aW9uIHRoYXQgbWF5
IGZpdCBoaXMgZGVzaXJlcy4KLSAqCi0gKiBAc2VlIGV3a19wYWludF9jb250ZXh0X2NsaXAoKQot
ICogQHNlZSBld2tfcGFpbnRfY29udGV4dF9wYWludCgpCi0gKgotICogQG5vdGUgVGhpcyBpcyBu
b3QgZm9yIGdlbmVyYWwgdXNlIGJ1dCBqdXN0IGZvciBzdWJjbGFzc2VzIHRoYXQgd2FudAotICog
ICAgICAgdG8gZGVmaW5lIHRoZWlyIG93biBiYWNraW5nIHN0b3JlLgotICovCi12b2lkIGV3a19w
YWludF9jb250ZXh0X3BhaW50X2NvbnRlbnRzKEV3a19QYWludF9Db250ZXh0KiBjb250ZXh0LCBX
ZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBhcmVhKTsKLQot
I2VuZGlmIC8vIGV3a19wYWludF9jb250ZXh0X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAKaW5kZXggNzkzYjM5ZmYxMjBmZTgwZDZhZTE4NzM0MTIwM2Y5OTY1ZDZjNTI0OC4u
MzY0Y2FkNWExMzQ4NWI1MmQzNjVlZWFhMWM3NmQzN2E3NTA5ODVlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCkBAIC02OSwxNCArNjksMTIgQEAKICNpbmNsdWRlICJTZXNzaW9uSUQu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lvbi5o
IgotI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiY19pbnN0YW5jZS5o
IgogI2luY2x1ZGUgImV3a19jb250ZXh0bWVudV9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX2Zy
YW1lLmgiCiAjaW5jbHVkZSAiZXdrX2ZyYW1lX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfaGlz
dG9yeV9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX2pzX3ByaXZhdGUuaCIKLSNpbmNsdWRlICJl
d2tfcGFpbnRfY29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKICNp
bmNsdWRlICJld2tfc2V0dGluZ3NfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZh
dGUuaCIKQEAgLTI2MywxMSArMjYxLDYgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEg
ewogICAgICAgICBFd2tfTWVudSBtZW51OwogICAgICAgICBXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQqIG1lbnVDbGllbnQ7CiAgICAgfSBwb3B1cDsKLSAgICBzdHJ1Y3QgewotICAgICAgICBFaW5h
X1JlY3RhbmdsZSogYXJyYXk7Ci0gICAgICAgIHNpemVfdCBjb3VudDsKLSAgICAgICAgc2l6ZV90
IGFsbG9jYXRlZDsKLSAgICB9IHJlcGFpbnRzOwogICAgIHVuc2lnbmVkIGludCBpbWg7IC8qKjwg
aW5wdXQgbWV0aG9kIGhpbnRzICovCiAgICAgc3RydWN0IHsKICAgICAgICAgYm9vbCB2aWV3Q2xl
YXJlZCA6IDE7CkBAIC00MjEsNTEgKzQxNCw2IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFy
dF9jaGFuZ2VkKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBldmFzX29iamVj
dF9zbWFydF9jaGFuZ2VkKHNtYXJ0RGF0YS0+c2VsZik7CiB9CiAKLXN0YXRpYyBFaW5hX0Jvb2wg
X2V3a192aWV3X3JlcGFpbnRzX3Jlc2l6ZShFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIHNp
emVfdCBzaXplKQotewotICAgIHZvaWQqIHRtcCA9IHJlYWxsb2MocHJpdi0+cmVwYWludHMuYXJy
YXksIHNpemUgKiBzaXplb2YoRWluYV9SZWN0YW5nbGUpKTsKLSAgICBpZiAoIXRtcCkgewotICAg
ICAgICBDUklUSUNBTCgiY291bGQgbm90IHJlYWxsb2MgcmVwYWludHMgYXJyYXkgdG8gJXp1IGVs
ZW1lbnRzLiIsIHNpemUpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHByaXYt
PnJlcGFpbnRzLmFsbG9jYXRlZCA9IHNpemU7Ci0gICAgcHJpdi0+cmVwYWludHMuYXJyYXkgPSBz
dGF0aWNfY2FzdDxFaW5hX1JlY3RhbmdsZSo+KHRtcCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LXN0YXRpYyB2b2lkIF9ld2tfdmlld19yZXBhaW50X2FkZChFd2tfVmlld19Qcml2YXRlX0RhdGEq
IHByaXYsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5LCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFz
X0Nvb3JkIGhlaWdodCkKLXsKLSAgICBzaXplX3QgbmV3U2l6ZSA9IDA7Ci0KLSAgICBpZiAocHJp
di0+cmVwYWludHMuYWxsb2NhdGVkID09IHByaXYtPnJlcGFpbnRzLmNvdW50KQotICAgICAgICBu
ZXdTaXplID0gcHJpdi0+cmVwYWludHMuYWxsb2NhdGVkICsgZXdrVmlld1JlcGFpbnRzU2l6ZVN0
ZXA7Ci0gICAgZWxzZSBpZiAoIXByaXYtPnJlcGFpbnRzLmNvdW50ICYmIHByaXYtPnJlcGFpbnRz
LmFsbG9jYXRlZCA+IGV3a1ZpZXdSZXBhaW50c1NpemVJbml0aWFsKQotICAgICAgICBuZXdTaXpl
ID0gZXdrVmlld1JlcGFpbnRzU2l6ZUluaXRpYWw7Ci0KLSAgICBpZiAobmV3U2l6ZSkgewotICAg
ICAgICBpZiAoIV9ld2tfdmlld19yZXBhaW50c19yZXNpemUocHJpdiwgbmV3U2l6ZSkpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgRWluYV9SZWN0YW5nbGUqIHJlY3QgPSBwcml2
LT5yZXBhaW50cy5hcnJheSArIHByaXYtPnJlcGFpbnRzLmNvdW50OwotICAgIHByaXYtPnJlcGFp
bnRzLmNvdW50Kys7Ci0KLSAgICByZWN0LT54ID0geDsKLSAgICByZWN0LT55ID0geTsKLSAgICBy
ZWN0LT53ID0gd2lkdGg7Ci0gICAgcmVjdC0+aCA9IGhlaWdodDsKLQotICAgIERCRygiYWRkIHJl
cGFpbnQgJWQsICVkKyVkeCVkIiwgeCwgeSwgd2lkdGgsIGhlaWdodCk7Ci19Ci0KLXN0YXRpYyB2
b2lkIF9ld2tfdmlld19yZXBhaW50c19mbHVzaChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYp
Ci17Ci0gICAgcHJpdi0+cmVwYWludHMuY291bnQgPSAwOwotICAgIGlmIChwcml2LT5yZXBhaW50
cy5hbGxvY2F0ZWQgPD0gZXdrVmlld1JlcGFpbnRzU2l6ZU1heGltdW1GcmVlKQotICAgICAgICBy
ZXR1cm47Ci0gICAgX2V3a192aWV3X3JlcGFpbnRzX3Jlc2l6ZShwcml2LCBld2tWaWV3UmVwYWlu
dHNTaXplTWF4aW11bUZyZWUpOwotfQotCiAvLyBEZWZhdWx0IEV2ZW50IEhhbmRsaW5nIC8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIHN0YXRpYyBFaW5hX0Jv
b2wgX2V3a192aWV3X3NtYXJ0X2ZvY3VzX2luKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSkKIHsKQEAgLTgzMiw4ICs3ODAsNiBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfcHJpdl9kZWwo
RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2KQogCiAgICAgLyogZG8gbm90IGRlbGV0ZSBwcml2
LT5tYWluX2ZyYW1lICovCiAKLSAgICBmcmVlKHByaXYtPnJlcGFpbnRzLmFycmF5KTsKLQogICAg
IGVpbmFfc3RyaW5nc2hhcmVfZGVsKHByaXYtPnNldHRpbmdzLnVzZXJBZ2VudCk7CiAgICAgZWlu
YV9zdHJpbmdzaGFyZV9kZWwocHJpdi0+c2V0dGluZ3MudXNlclN0eWxlc2hlZXQpOwogICAgIGVp
bmFfc3RyaW5nc2hhcmVfZGVsKHByaXYtPnNldHRpbmdzLmVuY29kaW5nRGVmYXVsdCk7CkBAIC0x
MDU0LDggKzEwMDAsNiBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfY2FsY3VsYXRlKEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogICAgICAgICBzbWFydERhdGEtPnZpZXcudyA9IHdpZHRoOwog
ICAgICAgICBzbWFydERhdGEtPnZpZXcuaCA9IGhlaWdodDsKIAotICAgICAgICBfZXdrX3ZpZXdf
cmVwYWludF9hZGQocHJpdiwgMCwgMCwgd2lkdGgsIGhlaWdodCk7Ci0KICAgICAgICAgLy8gVGhp
cyBjYWxsYmFjayBpcyBhIGdvb2QgcGxhY2UgZS5nLiB0byBjaGFuZ2UgZml4ZWQgbGF5b3V0IHNp
emUgKGV3a192aWV3X2ZpeGVkX2xheW91dF9zaXplX3NldCkuCiAgICAgICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInZpZXcscmVzaXplZCIsIDApOwogICAgIH0K
QEAgLTExMjksMTIgKzEwNzMsNiBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF96
b29tX3NldChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGZsb2F0CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2ZsdXNoKEV3a19WaWV3
X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKLXsKLSAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRV
Uk4oc21hcnREYXRhLCBwcml2KTsKLSAgICBfZXdrX3ZpZXdfcmVwYWludHNfZmx1c2gocHJpdik7
Ci19Ci0KIHN0YXRpYyB2b2lkIF9ld2tfdmlld196b29tX2FuaW1hdGVkX21hcmtfc3RvcChFd2tf
Vmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiB7CiAgICAgc21hcnREYXRhLT5hbmltYXRlZF96
b29tLnpvb20uc3RhcnQgPSAwLjA7CkBAIC0xMzEzLDcgKzEyNTEsNiBAQCBFaW5hX0Jvb2wgZXdr
X3ZpZXdfc21hcnRfc2V0KEV3a19WaWV3X1NtYXJ0X0NsYXNzKiBhcGkpCiAgICAgYXBpLT56b29t
X3NldCA9IF9ld2tfdmlld19zbWFydF96b29tX3NldDsKICAgICBhcGktPnpvb21fd2Vha19zZXQg
PSBfZXdrX3ZpZXdfc21hcnRfem9vbV93ZWFrX3NldDsKICAgICBhcGktPnpvb21fd2Vha19zbW9v
dGhfc2NhbGVfc2V0ID0gX2V3a192aWV3X3NtYXJ0X3pvb21fd2Vha19zbW9vdGhfc2NhbGVfc2V0
OwotICAgIGFwaS0+Zmx1c2ggPSBfZXdrX3ZpZXdfc21hcnRfZmx1c2g7CiAgICAgYXBpLT5kaXNh
YmxlX3JlbmRlciA9IF9ld2tfdmlld19zbWFydF9kaXNhYmxlX3JlbmRlcjsKICAgICBhcGktPmVu
YWJsZV9yZW5kZXIgPSBfZXdrX3ZpZXdfc21hcnRfZW5hYmxlX3JlbmRlcjsKIApAQCAtMjY2Miw1
NiArMjU5OSw2IEBAIEV3a19WaWV3X1NtYXJ0X0RhdGEqIGV3a192aWV3X3NtYXJ0X2RhdGFfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogfQogCiAvKioKLSAqIEdldHMgdGhlIGludGVy
bmFsIGFycmF5IG9mIHJlcGFpbnQgcmVxdWVzdHMuCi0gKgotICogVGhpcyBhcnJheSBzaG91bGQg
bm90IGJlIG1vZGlmaWVkIGFueWhvdy4gSXQgc2hvdWxkIGJlIHByb2Nlc3NlZAotICogaW1tZWRp
YXRlbHkgYXMgYW55IGZ1cnRoZXIgZXdrX3ZpZXcgY2FsbCBtaWdodCBjaGFuZ2UgaXQsIGxpa2UK
LSAqIHRob3NlIHRoYXQgYWRkIHJlcGFpbnRzIG9yIGZsdXNoIHRoZW0sIHNvIGJlIHN1cmUgdGhh
dCB5b3VyIGNvZGUKLSAqIGRvZXMgbm90IGNhbGwgYW55IG9mIHRob3NlIHdoaWxlIHlvdSBwcm9j
ZXNzIHRoZSByZXBhaW50cywKLSAqIG90aGVyd2lzZSBjb3B5IHRoZSBhcnJheS4KLSAqCi0gKiBA
cGFyYW0gcHJpdiBwcml2YXRlIGhhbmRsZSBwb2ludGVyIG9mIHRoZSB2aWV3IHRvIGdldCByZXBh
aW50cy4KLSAqIEBwYXJhbSBjb3VudCB3aGVyZSB0byByZXR1cm4gdGhlIG51bWJlciBvZiBlbGVt
ZW50cyBvZiByZXR1cm5lZCBhcnJheSwgbWF5IGJlIEBjIDAuCi0gKgotICogQHJldHVybiByZWZl
cmVuY2UgdG8gYXJyYXkgb2YgcmVxdWVzdGVkIHJlcGFpbnRzLgotICoKLSAqIEBub3RlIHRoaXMg
aXMgbm90IGZvciBnZW5lcmFsIHVzZSBidXQganVzdCBmb3Igc3ViY2xhc3NlcyB0aGF0IHdhbnQK
LSAqICAgICAgIHRvIGRlZmluZSB0aGVpciBvd24gYmFja2luZyBzdG9yZS4KLSAqLwotY29uc3Qg
RWluYV9SZWN0YW5nbGUqIGV3a192aWV3X3JlcGFpbnRzX3BvcChFd2tfVmlld19Qcml2YXRlX0Rh
dGEqIHByaXYsIHNpemVfdCogY291bnQpCi17Ci0gICAgaWYgKGNvdW50KQotICAgICAgICAqY291
bnQgPSAwOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChwcml2LCAwKTsKLSAg
ICBpZiAoY291bnQpCi0gICAgICAgICpjb3VudCA9IHByaXYtPnJlcGFpbnRzLmNvdW50OwotCi0g
ICAgcHJpdi0+cmVwYWludHMuY291bnQgPSAwOwotCi0gICAgcmV0dXJuIHByaXYtPnJlcGFpbnRz
LmFycmF5OwotfQotCi0vKioKLSAqIEFkZCBhIG5ldyByZXBhaW50IHJlcXVlc3QgdG8gcXVldWUu
Ci0gKgotICogVGhlIHJlcGFpbnRzIGFyZSBhc3N1bWVkIHRvIGJlIHJlbGF0aXZlIHRvIGN1cnJl
bnQgdmlld3BvcnQuCi0gKgotICogQHBhcmFtIHByaXYgcHJpdmF0ZSBoYW5kbGUgcG9pbnRlciBv
ZiB0aGUgdmlldyB0byBhZGQgcmVwYWludCByZXF1ZXN0LgotICogQHBhcmFtIHggaG9yaXpvbnRh
bCBwb3NpdGlvbiByZWxhdGl2ZSB0byBjdXJyZW50IHZpZXcgcG9ydCAoc2Nyb2xsZWQpLgotICog
QHBhcmFtIHkgdmVydGljYWwgcG9zaXRpb24gcmVsYXRpdmUgdG8gY3VycmVudCB2aWV3IHBvcnQg
KHNjcm9sbGVkKS4KLSAqIEBwYXJhbSB3aWR0aCB3aWR0aCBvZiBhcmVhIHRvIGJlIHJlcGFpbnRl
ZAotICogQHBhcmFtIGhlaWdodCBoZWlnaHQgb2YgYXJlYSB0byBiZSByZXBhaW50ZWQKLSAqCi0g
KiBAbm90ZSB0aGlzIGlzIG5vdCBmb3IgZ2VuZXJhbCB1c2UgYnV0IGp1c3QgZm9yIHN1YmNsYXNz
ZXMgdGhhdCB3YW50Ci0gKiAgICAgICB0byBkZWZpbmUgdGhlaXIgb3duIGJhY2tpbmcgc3RvcmUu
Ci0gKi8KLXZvaWQgZXdrX3ZpZXdfcmVwYWludF9hZGQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBw
cml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgRXZhc19Db29yZCB3aWR0aCwgRXZhc19D
b29yZCBoZWlnaHQpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4ocHJpdik7Ci0g
ICAgX2V3a192aWV3X3JlcGFpbnRfYWRkKHByaXYsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwotfQot
Ci0vKioKICAqIERvIGxheW91dCBpZiByZXF1aXJlZCwgYXBwbGllZCByZWN1cnNpdmVseS4KICAq
CiAgKiBAcGFyYW0gcHJpdiBwcml2YXRlIGhhbmRsZSBwb2ludGVyIG9mIHRoZSB2aWV3IHRvIGxh
eW91dC4KQEAgLTI3MzEsOTUgKzI2MTgsNiBAQCB2b2lkIGV3a192aWV3X2xheW91dF9pZl9uZWVk
ZWRfcmVjdXJzaXZlKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKICAgICB2aWV3LT51cGRh
dGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7CiB9CiAKLS8qIGludGVybmFsIG1l
dGhvZHMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Ki8KLS8qKgotICogQGludGVybmFsCi0gKiBQYWludHMgdXNpbmcgZ2l2ZW4gZ3JhcGhpY3MgY29u
dGV4dCB0aGUgZ2l2ZW4gYXJlYS4KLSAqCi0gKiBUaGlzIHVzZXMgdmlld3BvcnQgcmVsYXRpdmUg
YXJlYSBhbmQgd2lsbCBhbHNvIGhhbmRsZSBzY3JvbGxiYXJzCi0gKiBhbmQgb3RoZXIgZXh0cmEg
ZWxlbWVudHMuIFNlZSBld2tfdmlld19wYWludF9jb250ZW50cygpIGZvciB0aGUKLSAqIGFsdGVy
bmF0aXZlIGZ1bmN0aW9uLgotICoKLSAqIEBwYXJhbSBwcml2IHRoZSBwb2ludGVyIHRvIHRoZSBw
cml2YXRlIGRhdGEgb2YgdGhlIHZpZXcgdG8gdXNlIGFzIHBhaW50IHNvdXJjZQotICogQHBhcmFt
IGNyIHRoZSBjYWlybyBjb250ZXh0IHRvIHVzZSBhcyBwYWludCBkZXN0aW5hdGlvbiwgaXRzIHN0
YXRlIHdpbGwKLSAqICAgICAgICBiZSBzYXZlZCBiZWZvcmUgb3BlcmF0aW9uIGFuZCByZXN0b3Jl
ZCBhZnRlcndhcmRzCi0gKiBAcGFyYW0gYXJlYSB2aWV3cG9ydCByZWxhdGl2ZSBnZW9tZXRyeSB0
byBwYWludAotICoKLSAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlO
QV9GQUxTRSBvbiBmYWlsdXJlCi0gKgotICogQG5vdGUgVGhpcyBpcyBhbiBlYXN5IHRvIHVzZSB2
ZXJzaW9uLCBidXQgaW50ZXJuYWwgc3RydWN0dXJlcyBhcmUKLSAqICAgICAgIGFsd2F5cyBjcmVh
dGVkLCB0aGVuIGdyYXBoaWNzIGNvbnRleHQgaXMgY2xpcHBlZCwgdGhlbgotICogICAgICAgcGFp
bnRlZCwgcmVzdG9yZWQgYW5kIGRlc3Ryb3llZC4gVGhpcyBtaWdodCBub3QgYmUgb3B0aW11bSwK
LSAqICAgICAgIHNvIHVzaW5nIEBhIEV3a19QYWludF9Db250ZXh0IG1heSBiZSBhIGJldHRlciBz
b2x1dGlvbnMKLSAqICAgICAgIGZvciBsYXJnZSBudW1iZXIgb2Ygb3BlcmF0aW9ucy4KLSAqCi0g
KiBAc2VlIGV3a192aWV3X3BhaW50X2NvbnRlbnRzKCkKLSAqIEBzZWUgZXdrX3BhaW50X2NvbnRl
eHRfcGFpbnQoKQotICoKLSAqIEBub3RlIFRoaXMgaXMgbm90IGZvciBnZW5lcmFsIHVzZSBidXQg
anVzdCBmb3Igc3ViY2xhc3NlcyB0aGF0IHdhbnQKLSAqICAgICAgIHRvIGRlZmluZSB0aGVpciBv
d24gYmFja2luZyBzdG9yZS4KLSovCi1FaW5hX0Jvb2wgZXdrX3ZpZXdfcGFpbnQoRXdrX1ZpZXdf
UHJpdmF0ZV9EYXRhKiBwcml2LCBFd2tfUGFpbnRfQ29udGV4dCogY29udGV4dCwgY29uc3QgRWlu
YV9SZWN0YW5nbGUqIGFyZWEpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHByaXYsIGZhbHNlKTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY29udGV4
dCwgZmFsc2UpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChhcmVhLCBmYWxz
ZSk7Ci0gICAgV2ViQ29yZTo6RnJhbWVWaWV3KiB2aWV3ID0gcHJpdi0+cGFnZS0+bWFpbkZyYW1l
KCkudmlldygpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCBmYWxz
ZSk7Ci0KLSAgICBld2tfcGFpbnRfY29udGV4dF9zYXZlKGNvbnRleHQpOwotICAgIGV3a19wYWlu
dF9jb250ZXh0X2NsaXAoY29udGV4dCwgYXJlYSk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfcGFp
bnQoY29udGV4dCwgdmlldywgYXJlYSk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfcmVzdG9yZShj
b250ZXh0KTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi0vKioKLSAqIEBpbnRlcm5hbAotICog
UGFpbnRzIGp1c3QgY29udGVudHMgdXNpbmcgZ2l2ZW4gZ3JhcGhpY3MgY29udGV4dCB0aGUgZ2l2
ZW4gYXJlYS4KLSAqCi0gKiBUaGlzIHVzZXMgYWJzb2x1dGUgY29vcmRpbmF0ZXMgZm9yIGFyZWEg
YW5kIHdpbGwganVzdCBoYW5kbGUKLSAqIGNvbnRlbnRzLCBubyBzY3JvbGxiYXJzIG9yIGV4dHJh
cy4gU2VlIGV3a192aWV3X3BhaW50KCkgZm9yIHRoZQotICogYWx0ZXJuYXRpdmUgc29sdXRpb24u
Ci0gKgotICogQHBhcmFtIHByaXYgdGhlIHBvaW50ZXIgdG8gdGhlIHByaXZhdGUgZGF0YSBvZiB0
aGUgdmlldyB0byB1c2UgYXMgcGFpbnQgc291cmNlCi0gKiBAcGFyYW0gY3IgdGhlIGNhaXJvIGNv
bnRleHQgdG8gdXNlIGFzIHBhaW50IGRlc3RpbmF0aW9uLCBpdHMgc3RhdGUgd2lsbAotICogICAg
ICAgIGJlIHNhdmVkIGJlZm9yZSBvcGVyYXRpb24gYW5kIHJlc3RvcmVkIGFmdGVyd2FyZHMKLSAq
IEBwYXJhbSBhcmVhIGFic29sdXRlIGdlb21ldHJ5IHRvIHBhaW50Ci0gKgotICogQHJldHVybiBA
YyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKLSAqCi0g
KiBAbm90ZSBUaGlzIGlzIGFuIGVhc3kgdG8gdXNlIHZlcnNpb24sIGJ1dCBpbnRlcm5hbCBzdHJ1
Y3R1cmVzIGFyZQotICogICAgICAgYWx3YXlzIGNyZWF0ZWQsIHRoZW4gZ3JhcGhpY3MgY29udGV4
dCBpcyBjbGlwcGVkLCB0aGVuCi0gKiAgICAgICBwYWludGVkLCByZXN0b3JlZCBhbmQgZGVzdHJv
eWVkLiBUaGlzIG1pZ2h0IG5vdCBiZSBvcHRpbXVtLAotICogICAgICAgc28gdXNpbmcgQGEgRXdr
X1BhaW50X0NvbnRleHQgbWF5IGJlIGEgYmV0dGVyIHNvbHV0aW9ucwotICogICAgICAgZm9yIGxh
cmdlIG51bWJlciBvZiBvcGVyYXRpb25zLgotICoKLSAqIEBzZWUgZXdrX3ZpZXdfcGFpbnQoKQot
ICogQHNlZSBld2tfcGFpbnRfY29udGV4dF9wYWludF9jb250ZW50cygpCi0gKgotICogQG5vdGUg
VGhpcyBpcyBub3QgZm9yIGdlbmVyYWwgdXNlIGJ1dCBqdXN0IGZvciBzdWJjbGFzc2VzIHRoYXQg
d2FudAotICogICAgICAgdG8gZGVmaW5lIHRoZWlyIG93biBiYWNraW5nIHN0b3JlLgotICovCi1F
aW5hX0Jvb2wgZXdrX3ZpZXdfcGFpbnRfY29udGVudHMoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBw
cml2LCBFd2tfUGFpbnRfQ29udGV4dCogY29udGV4dCwgY29uc3QgRWluYV9SZWN0YW5nbGUqIGFy
ZWEpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHByaXYsIGZhbHNlKTsK
LSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY29udGV4dCwgZmFsc2UpOwotICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChhcmVhLCBmYWxzZSk7Ci0gICAgV2ViQ29y
ZTo6RnJhbWVWaWV3KiB2aWV3ID0gcHJpdi0+cGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwotICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh2aWV3LCBmYWxzZSk7Ci0KLSAgICB2aWV3
LT51cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7Ci0KLSAgICBld2tfcGFp
bnRfY29udGV4dF9zYXZlKGNvbnRleHQpOwotICAgIGV3a19wYWludF9jb250ZXh0X2NsaXAoY29u
dGV4dCwgYXJlYSk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfcGFpbnRfY29udGVudHMoY29udGV4
dCwgdmlldywgYXJlYSk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfcmVzdG9yZShjb250ZXh0KTsK
LQotICAgIHJldHVybiB0cnVlOwotfQotCiAvKioKICAqIEBpbnRlcm5hbAogICogUmVwb3J0cyB0
aGUgdmlldyBpcyByZWFkeSB0byBiZSBkaXNwbGF5ZWQgYXMgYWxsIGVsZW1lbnRzIGFyZSBhcmVh
ZHkuCkBAIC0zNTA4LDI3ICszMzA2LDYgQEAgYm9vbCBld2tfdmlld19ydW5fb3Blbl9wYW5lbChF
dmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBFd2tfRmlsZV8KICAgICBy
ZXR1cm4gY29uZmlybTsKIH0KIAotdm9pZCBld2tfdmlld19yZXBhaW50KEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgRXZhc19Db29yZCB3aWR0aCwgRXZh
c19Db29yZCBoZWlnaHQpCi17Ci0gICAgREJHKCJld2tWaWV3PSVwLCByZWdpb249JWQsJWQgKyAl
ZHglZCIsIGV3a1ZpZXcsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwotICAgIEVXS19WSUVXX1NEX0dF
VF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKLSAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKLQotICAgIF9ld2tfdmlld19yZXBhaW50X2FkZChw
cml2LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBfZXdrX3ZpZXdfc21hcnRfY2hhbmdlZChz
bWFydERhdGEpOwotfQotCi12b2lkIGV3a192aWV3X3Njcm9sbChFdmFzX09iamVjdCogZXdrVmll
dywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpCi17Ci0gICAgQVNTRVJUKCFy
ZWN0VG9TY3JvbGwuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlQoZGVsdGEud2lkdGgoKSB8fCBkZWx0
YS5oZWlnaHQoKSk7Ci0KLSAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNt
YXJ0RGF0YSk7Ci0gICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
dik7Ci0KLSAgICBld2tfdmlld19tYXJrX2Zvcl9zeW5jKGV3a1ZpZXcpOwotfQotCiAvKioKICAq
IEBpbnRlcm5hbAogICoKQEAgLTQ2MDMsMjYgKzQzODAsNiBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdf
c2V0dGluZ190aWxlZF9iYWNraW5nX3N0b3JlX2VuYWJsZWRfZ2V0KEV2YXNfT2JqZWN0KiBld2tW
aWV3KQogI2VuZGlmCiB9CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLS8qKgotICog
QGludGVybmFsCi0gKiBJbnZhbGlkYXRlIGdpdmVuIGFyZWEgdG8gcmVwYWludC4gVGhlIGJhY2tp
bmcgc3RvcmUgd2lsbCBtYXJrIHRpbGVzIHRoYXQgYXJlCi0gKiBpbiB0aGUgYXJlYSBhcyBkaXJ0
eS4KLSAqCi0gKiBAcGFyYW0gZXdrVmlldyBWaWV3LgotICogQHBhcmFtIGFyZWEgQXJlYSB0byBp
bnZhbGlkYXRlCi0gKi8KLXZvaWQgZXdrX3ZpZXdfdGlsZWRfYmFja2luZ19zdG9yZV9pbnZhbGlk
YXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBhcmVhKQot
ewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGV3a1ZpZXcpOwotICAgIEVXS19WSUVX
X1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKLSAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKLQotICAgIGlmIChwcml2LT5wYWdlLT5t
YWluRnJhbWUoKS50aWxlZEJhY2tpbmdTdG9yZSgpKQotICAgICAgICBwcml2LT5wYWdlLT5tYWlu
RnJhbWUoKS50aWxlZEJhY2tpbmdTdG9yZSgpLT5pbnZhbGlkYXRlKGFyZWEpOwotfQotI2VuZGlm
Ci0KIG5hbWVzcGFjZSBFV0tQcml2YXRlIHsKIAogV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UoY29u
c3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXdfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3By
aXZhdGUuaAppbmRleCAzNWY0YjAyYjhmN2I4YWY1NDU4YmIxNDRhMTQ3NDhlZmFmNDY1MzIxLi4x
MzUxODgwZWQ5ZmNmMmJhYjBmMjVjOTFhYmY5NDgwZWRiNzFlNTg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJO
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiV2lk
Z2V0LmgiCi0jaW5jbHVkZSAiZXdrX3BhaW50X2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUg
ImV3a192aWV3LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk1LDggKzk0LDYgQEAgdWlu
dDY0X3QgZXdrX3ZpZXdfZXhjZWVkZWRfZGF0YWJhc2VfcXVvdGEoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV2YXNfT2JqZWN0KiBmcmEKIAogYm9vbCBld2tfdmlld19ydW5fb3Blbl9wYW5lbChFdmFz
X09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lLCBFd2tfRmlsZV9DaG9vc2VyKiBm
aWxlQ2hvb3NlciwgRWluYV9MaXN0Kiogc2VsZWN0ZWRGaWxlbmFtZXMpOwogCi12b2lkIGV3a192
aWV3X3JlcGFpbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29y
ZCB5LCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhlaWdodCk7Ci12b2lkIGV3a192aWV3
X3Njcm9sbChFdmFzX09iamVjdCosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGRlbHRhLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGNsaXBSZWN0KTsKIFdlYkNvcmU6OlBhZ2UqIGV3a192aWV3X2NvcmVfcGFnZV9nZXQoY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcpOwogCiB2b2lkIGV3a192aWV3X2ZyYW1lX3JlY3RfY2hhbmdl
ZChFdmFzX09iamVjdCogZXdrVmlldyk7CkBAIC0xMTgsMjYgKzExNSwxNSBAQCB2b2lkIGV3a192
aWV3X2VkaXRvcl9jbGllbnRfc2VsZWN0aW9uX2NoYW5nZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcp
OwogCiBib29sIGV3a192aWV3X2ZvY3VzX2Nhbl9jeWNsZShFdmFzX09iamVjdCogZXdrVmlldywg
RXdrX0ZvY3VzX0RpcmVjdGlvbiBkaXJlY3Rpb24pOwogCi1FaW5hX0Jvb2wgZXdrX3ZpZXdfcGFp
bnQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2LCBFd2tfUGFpbnRfQ29udGV4dCogY29udGV4
dCwgY29uc3QgRWluYV9SZWN0YW5nbGUqIGFyZWEpOwotRWluYV9Cb29sIGV3a192aWV3X3BhaW50
X2NvbnRlbnRzKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgRXdrX1BhaW50X0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBhcmVhKTsKLQogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQogdm9pZCBld2tfdmlld19qc193aW5kb3dfb2JqZWN0X2NsZWFyKEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUpOwogI2VuZGlmCiAKLSNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKLXZvaWQgZXdrX3ZpZXdfdGlsZWRfYmFja2luZ19zdG9y
ZV9pbnZhbGlkYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBhcmVhKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHZvaWQgZXdrX3Zp
ZXdfbmVlZF90b3VjaF9ldmVudHNfc2V0KEV2YXNfT2JqZWN0KiwgYm9vbCBuZWVkZWQpOwogYm9v
bCBld2tfdmlld19uZWVkX3RvdWNoX2V2ZW50c19nZXQoY29uc3QgRXZhc19PYmplY3QqKTsKICNl
bmRpZgogCi1jb25zdCBFaW5hX1JlY3RhbmdsZSogZXdrX3ZpZXdfcmVwYWludHNfcG9wKEV3a19W
aWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgc2l6ZV90KiBjb3VudCk7Ci0KLXZvaWQgZXdrX3ZpZXdf
cmVwYWludF9hZGQoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2
YXNfQ29vcmQgeSwgRXZhc19Db29yZCB3aWR0aCwgRXZhc19Db29yZCBoZWlnaHQpOwotCiB2b2lk
IGV3a192aWV3X2xheW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKEV3a19WaWV3X1ByaXZhdGVfRGF0
YSogcHJpdik7CiAKIGJvb2wgZXdrX3ZpZXdfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24oRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0KiByZXF1ZXN0LCBX
ZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229534</attachid>
            <date>2014-04-17 03:03:48 -0700</date>
            <delta_ts>2014-04-17 07:53:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131266-20140417190326.patch</filename>
            <type>text/plain</type>
            <size>35831</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM2MTM5NzRmMjVlMzc3MGY3
YzJiOTViYWVkZjIyMWNmY2JhNmJmZDQuLmI0N2QzMmY3NzNmNDA1YjE1OTg1YTI3NWYxOTNhNDFh
ODIxNWJmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDQtMTcgIEh5b3dvbiBL
aW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92ZSBkZXBy
ZWNhdGVkIGV3a19wYWludCBjb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMxMjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgZXdrX3BhaW50IHJlbGF0ZWQgY29kZSB3YXMgZGVwcmVjYXRlZCBzaW5j
ZSByMTY2NjM3LgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IFJlbW92ZSBld2tfcGFp
bnRfY29udGV4dC5jcHAKKwogMjAxNC0wNC0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFdpbmRvd3MgZmFpbCB3aXRoIGEgbGluayBlcnJv
ciBzbyBJIGtub3cgd2hhdCB0aGUgbmV3IHN5bWJvbCBpcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAz
YzU3ZTg0YzJhOGVhOTkyNWYwNTcyZDU1ZTM3NjcwMDg4YjE0MTJkLi5lODI2NzM2Y2JkODkxYjVi
MTQ5NTNlYTdiMjVhZjZjNTk3ZDE2MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTQtMDQtMTcgIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdIFJlbW92ZSBkZXByZWNhdGVkIGV3a19wYWludCBjb2RlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMjY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZXdrX3BhaW50IHJlbGF0ZWQg
Y29kZSB3YXMgZGVwcmVjYXRlZCBzaW5jZSByMTY2NjM3LgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRl
bnRzRm9yU2xvd1Njcm9sbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRFZmw6OnNjcm9sbCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmNwcDoKKyAgICAgICAgKiBld2svZXdrX3BhaW50X2NvbnRleHQuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGV3ay9ld2tfcGFpbnRfY29udGV4dF9wcml2YXRlLmg6IFJlbW92ZWQuCisgICAgICAg
ICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19wcml2X2RlbCk6CisgICAg
ICAgIChfZXdrX3ZpZXdfc21hcnRfY2FsY3VsYXRlKToKKyAgICAgICAgKGV3a192aWV3X3NtYXJ0
X3NldCk6CisgICAgICAgIChfZXdrX3ZpZXdfcmVwYWludHNfcmVzaXplKTogRGVsZXRlZC4KKyAg
ICAgICAgKF9ld2tfdmlld19yZXBhaW50X2FkZCk6IERlbGV0ZWQuCisgICAgICAgIChfZXdrX3Zp
ZXdfcmVwYWludHNfZmx1c2gpOiBEZWxldGVkLgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2Zs
dXNoKTogRGVsZXRlZC4KKyAgICAgICAgKGV3a192aWV3X3JlcGFpbnRzX3BvcCk6IERlbGV0ZWQu
CisgICAgICAgIChld2tfdmlld19yZXBhaW50X2FkZCk6IERlbGV0ZWQuCisgICAgICAgIChld2tf
dmlld19wYWludCk6IERlbGV0ZWQuCisgICAgICAgIChld2tfdmlld19wYWludF9jb250ZW50cyk6
IERlbGV0ZWQuCisgICAgICAgIChld2tfdmlld19yZXBhaW50KTogRGVsZXRlZC4KKyAgICAgICAg
KGV3a192aWV3X3Njcm9sbCk6IERlbGV0ZWQuCisgICAgICAgIChld2tfdmlld190aWxlZF9iYWNr
aW5nX3N0b3JlX2ludmFsaWRhdGUpOiBEZWxldGVkLgorICAgICAgICAqIGV3ay9ld2tfdmlld19w
cml2YXRlLmg6CisKIDIwMTQtMDQtMTYgIEplb25nZXVuIEtpbSAgPGplX2p1bGllLmtpbUBzYW1z
dW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBDbGVhbnVwIHRoZSBidWlsZCBmcm9tIHVudXNlZCBw
YXJhbWV0ZXJzIGluIFdlYktpdC1lZmwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAzN2Yw
NWUxNGZiYzQ0MDJjY2Q5ZWQwYWJmNjQzZTQ4YTE1Y2Q2YmQ3Li4yN2VlZTVhMTE3MjRhYTBkYzE0
ZjU2YzE4NDBhZjU4YTI2YzAzYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
RWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEyNyw3
ICsxMjcsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9ld2svZXdrX2pz
LmNwcAogICAgIGVmbC9ld2svZXdrX21haW4uY3BwCiAgICAgZWZsL2V3ay9ld2tfbmV0d29yay5j
cHAKLSAgICBlZmwvZXdrL2V3a19wYWludF9jb250ZXh0LmNwcAogICAgIGVmbC9ld2svZXdrX3Nl
Y3VyaXR5X29yaWdpbi5jcHAKICAgICBlZmwvZXdrL2V3a19zZWN1cml0eV9wb2xpY3kuY3BwCiAg
ICAgZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dEVmbC5jcHAKaW5kZXggOGEzNmNlMGUwZmJhYjIxNTgyZGRhZjc1YTJjZDZlZGQyMzgwZTAx
Mi4uZDFkMmQ1NTU0ZDEzZmY0YTc4MjFiNzdmNDI0YTdlMjA3M2QyZTM0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1
ZGUgIkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgiCiAjaW5jbHVkZSAiQ2Fpcm9V
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJDYWlyb1V0aWxpdGllc0VmbC5oIgorI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgiCiAjaW5j
bHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwCmluZGV4IDE0YWIxMTMwM2Q1MDczNTc0YTM0MmM4ZGJjNDVkNTMwMjUwMTllY2MuLjYzZjI2
YWQ0OGM2ODU1OWFiY2Y1YzczZTUxNmRmM2I5YjZiMmM3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNTE0LDQw
ICs1MTQsNiBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6c2NoZWR1bGVBbmltYXRpb24oKQogfQog
I2VuZGlmCiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3Qg
SW50UmVjdCYgdXBkYXRlUmVjdCkKLXsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSAg
ICBld2tfdmlld190aWxlZF9iYWNraW5nX3N0b3JlX2ludmFsaWRhdGUobV92aWV3LCB1cGRhdGVS
ZWN0KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHVwZGF0ZVJlY3QpOwotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCi17Ci0gICAgaWYg
KHVwZGF0ZVJlY3QuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBFdmFzX0Nvb3Jk
IHgsIHksIHcsIGg7Ci0KLSAgICB4ID0gdXBkYXRlUmVjdC54KCk7Ci0gICAgeSA9IHVwZGF0ZVJl
Y3QueSgpOwotICAgIHcgPSB1cGRhdGVSZWN0LndpZHRoKCk7Ci0gICAgaCA9IHVwZGF0ZVJlY3Qu
aGVpZ2h0KCk7Ci0gICAgZXdrX3ZpZXdfcmVwYWludChtX3ZpZXcsIHgsIHksIHcsIGgpOwotfQot
Ci12b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChj
b25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQotewotICAgIGludmFsaWRhdGVDb250ZW50c0FuZFJv
b3RWaWV3KHVwZGF0ZVJlY3QpOwotfQotCi12b2lkIENocm9tZUNsaWVudEVmbDo6c2Nyb2xsKGNv
bnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNv
bnN0IEludFJlY3QmIGNsaXBSZWN0KQotewotICAgIGV3a192aWV3X3Njcm9sbChtX3ZpZXcsIHNj
cm9sbERlbHRhLCByZWN0VG9TY3JvbGwsIGNsaXBSZWN0KTsKLX0KLQogdm9pZCBDaHJvbWVDbGll
bnRFZmw6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxv
YWRlciopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXggNjYyYjU5MTY3YjdkOTcz
MDE5NjI2OWY5NTY1MTJiMWZkM2JjZGI1MC4uNDllZTg0MGE4Y2EyZTEzMmYxOWIyNWYzMzA5ZWJm
MGUwYjk4MGZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmgKQEAgLTE1NiwxMCArMTU2LDEwIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJy
aWRlIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJv
b3RWaWV3KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0
IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3
KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3Qm
KSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBj
b25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQogCiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0
QXJndW1lbnRzJikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCmluZGV4IGE0ZTJmNmI5
NTcwYWI5NDg2YTI3MzEwOWFmMTNjODk2MGFkZjZmMmQuLmRkMzk5M2I1OTRmYWIxYTNiYWIxOWFh
MzA2Zjc4YTIwNzcxNTg0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJFZmxJbnNwZWN0b3JVdGlsaXRpZXMuaCIK
KyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcGFpbnRfY29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3BhaW50X2NvbnRleHQuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMzEyNjVlMGZiNmE1MzI5Y2EyODAwMmQ1MTczYjc5MWU1ZWVlMTk1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfcGFpbnRfY29udGV4dC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwy
MDIgKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzCi0gICAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5
c3RlbXMKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJGcmFtZS5oIgotI2lu
Y2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlLmgiCi0jaW5jbHVkZSAiZXdrX3BhaW50X2NvbnRleHRf
cHJpdmF0ZS5oIgotI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCi0KLSNpZiBFTkFCTEUoSU5TUEVD
VE9SKQotI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJQYWdlLmgi
Ci0jZW5kaWYKLQotRXdrX1BhaW50X0NvbnRleHQqIGV3a19wYWludF9jb250ZXh0X25ldyhjYWly
b190KiBjYWlybykKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2Fpcm8s
IDApOwotCi0gICAgRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQgPSBuZXcgRXdrX1BhaW50X0Nv
bnRleHQ7Ci0gICAgY29udGV4dC0+Z3JhcGhpY0NvbnRleHQgPSBhZG9wdFB0cihuZXcgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0KGNhaXJvKSk7Ci0gICAgY29udGV4dC0+Y2Fpcm8gPSBhZG9wdFJl
ZihjYWlyb19yZWZlcmVuY2UoY2Fpcm8pKTsKLSAgICBjb250ZXh0LT5pbWFnZSA9IDA7Ci0gICAg
Y29udGV4dC0+cGl4ZWxzID0gMDsKLQotICAgIHJldHVybiBjb250ZXh0OwotfQotCi1Fd2tfUGFp
bnRfQ29udGV4dCogZXdrX3BhaW50X2NvbnRleHRfZnJvbV9pbWFnZV9uZXcoRXZhc19PYmplY3Qq
IGltYWdlKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpbWFnZSwgMCk7
Ci0KLSAgICBFdmFzX0Nvb3JkIHdpZHRoLCBoZWlnaHQ7Ci0gICAgdWludDhfdCogcGl4ZWxzID0g
c3RhdGljX2Nhc3Q8dWludDhfdCo+KGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfZ2V0KGltYWdlLCB0
cnVlKSk7Ci0gICAgZXZhc19vYmplY3RfaW1hZ2Vfc2l6ZV9nZXQoaW1hZ2UsICZ3aWR0aCwgJmhl
aWdodCk7Ci0KLSAgICBFd2tfUGFpbnRfQ29udGV4dCogY29udGV4dCA9IGV3a19wYWludF9jb250
ZXh0X2Zyb21faW1hZ2VfZGF0YV9uZXcocGl4ZWxzLCB3aWR0aCwgaGVpZ2h0LCBFVkFTX0NPTE9S
U1BBQ0VfQVJHQjg4ODgpOwotICAgIGlmIChjb250ZXh0KSB7Ci0gICAgICAgIGNvbnRleHQtPnBp
eGVscyA9IHBpeGVsczsKLSAgICAgICAgY29udGV4dC0+aW1hZ2UgPSBpbWFnZTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gY29udGV4dDsKLX0KLQotRXdrX1BhaW50X0NvbnRleHQqIGV3a19wYWludF9j
b250ZXh0X2Zyb21faW1hZ2VfZGF0YV9uZXcodWludDhfdCogcGl4ZWxzLCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQsIGludCBjb2xvclNwYWNlKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChwaXhlbHMsIDApOwotCi0gICAgT3duUHRyPEV3a19QYWludF9Db250ZXh0PiBjb250
ZXh0ID0gYWRvcHRQdHIobmV3IEV3a19QYWludF9Db250ZXh0KTsKLSAgICBjb250ZXh0LT5waXhl
bHMgPSBwaXhlbHM7Ci0gICAgY29udGV4dC0+aW1hZ2UgPSAwOwotCi0gICAgY2Fpcm9fZm9ybWF0
X3QgZm9ybWF0OwotICAgIGludCBzdHJpZGU7Ci0gICAgc3dpdGNoIChjb2xvclNwYWNlKSB7Ci0g
ICAgY2FzZSBFVkFTX0NPTE9SU1BBQ0VfQVJHQjg4ODg6Ci0gICAgICAgIHN0cmlkZSA9IHdpZHRo
ICogNDsKLSAgICAgICAgZm9ybWF0ID0gQ0FJUk9fRk9STUFUX0FSR0IzMjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBFVkFTX0NPTE9SU1BBQ0VfUkdCNTY1X0E1UDoKLSAgICAgICAgc3RyaWRl
ID0gd2lkdGggKiAyOwotICAgICAgICBmb3JtYXQgPSBDQUlST19GT1JNQVRfUkdCMTZfNTY1Owot
ICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBFUlIoInVua25vd24gY29sb3Ig
c3BhY2U6ICVkIiwgY29sb3JTcGFjZSk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAg
IGNvbnRleHQtPnN1cmZhY2UgPSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9m
b3JfZGF0YShwaXhlbHMsIGZvcm1hdCwgd2lkdGgsIGhlaWdodCwgc3RyaWRlKSk7Ci0gICAgY2Fp
cm9fc3RhdHVzX3Qgc3RhdHVzID0gY2Fpcm9fc3VyZmFjZV9zdGF0dXMoY29udGV4dC0+c3VyZmFj
ZS5nZXQoKSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBDQUlST19TVEFUVVNfU1VDQ0VTUykgewotICAg
ICAgICBFUlIoImNvdWxkIG5vdCBjcmVhdGUgc3VyZmFjZSBmcm9tIGRhdGEgJWR4JWQ6ICVzIiwg
d2lkdGgsIGhlaWdodCwgY2Fpcm9fc3RhdHVzX3RvX3N0cmluZyhzdGF0dXMpKTsKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgfQotCi0gICAgY29udGV4dC0+Y2Fpcm8gPSBhZG9wdFJlZihjYWlyb19j
cmVhdGUoY29udGV4dC0+c3VyZmFjZS5nZXQoKSkpOwotICAgIHN0YXR1cyA9IGNhaXJvX3N0YXR1
cyhjb250ZXh0LT5jYWlyby5nZXQoKSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBDQUlST19TVEFUVVNf
U1VDQ0VTUykgewotICAgICAgICBFUlIoImNvdWxkIG5vdCBjcmVhdGUgY2Fpcm8gZnJvbSBzdXJm
YWNlICVkeCVkOiAlcyIsIHdpZHRoLCBoZWlnaHQsIGNhaXJvX3N0YXR1c190b19zdHJpbmcoc3Rh
dHVzKSk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGNvbnRleHQtPmdyYXBoaWND
b250ZXh0ID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dChjb250ZXh0LT5j
YWlyby5nZXQoKSkpOwotCi0gICAgcmV0dXJuIGNvbnRleHQucmVsZWFzZSgpLmxlYWtQdHIoKTsK
LX0KLQotdm9pZCBld2tfcGFpbnRfY29udGV4dF9mcmVlKEV3a19QYWludF9Db250ZXh0KiBjb250
ZXh0KQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGNvbnRleHQpOwotCi0gICAg
aWYgKGNvbnRleHQtPmltYWdlICYmIGNvbnRleHQtPnBpeGVscykgewotICAgICAgICAvLyBEZWNy
ZWFzZSByZWZjb3VudCBpbnNpZGUgaW1hZ2Ugb2JqZWN0LgotICAgICAgICBldmFzX29iamVjdF9p
bWFnZV9kYXRhX3NldChjb250ZXh0LT5pbWFnZSwgY29udGV4dC0+cGl4ZWxzKTsKLSAgICB9Ci0g
ICAgZGVsZXRlIGNvbnRleHQ7Ci19Ci0KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRfc2F2ZShFd2tf
UGFpbnRfQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tihjb250ZXh0KTsKLQotICAgIGNhaXJvX3NhdmUoY29udGV4dC0+Y2Fpcm8uZ2V0KCkpOwotICAg
IGNvbnRleHQtPmdyYXBoaWNDb250ZXh0LT5zYXZlKCk7Ci19Ci0KLXZvaWQgZXdrX3BhaW50X2Nv
bnRleHRfcmVzdG9yZShFd2tfUGFpbnRfQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTihjb250ZXh0KTsKLQotICAgIGNvbnRleHQtPmdyYXBoaWNDb250
ZXh0LT5yZXN0b3JlKCk7Ci0gICAgY2Fpcm9fcmVzdG9yZShjb250ZXh0LT5jYWlyby5nZXQoKSk7
Ci19Ci0KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRfY2xpcChFd2tfUGFpbnRfQ29udGV4dCogY29u
dGV4dCwgY29uc3QgRWluYV9SZWN0YW5nbGUqIGFyZWEpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk4oY29udGV4dCk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oYXJl
YSk7Ci0KLSAgICBjb250ZXh0LT5ncmFwaGljQ29udGV4dC0+Y2xpcChXZWJDb3JlOjpJbnRSZWN0
KCphcmVhKSk7Ci19Ci0KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRfc2NhbGUoRXdrX1BhaW50X0Nv
bnRleHQqIGNvbnRleHQsIGZsb2F0IHNjYWxlWCwgZmxvYXQgc2NhbGVZKQotewotICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOKGNvbnRleHQpOwotCi0gICAgY29udGV4dC0+Z3JhcGhpY0Nv
bnRleHQtPnNjYWxlKFdlYkNvcmU6OkZsb2F0U2l6ZShzY2FsZVgsIHNjYWxlWSkpOwotfQotCi12
b2lkIGV3a19wYWludF9jb250ZXh0X3RyYW5zbGF0ZShFd2tfUGFpbnRfQ29udGV4dCogY29udGV4
dCwgZmxvYXQgeCwgZmxvYXQgeSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihj
b250ZXh0KTsKLQotICAgIGNvbnRleHQtPmdyYXBoaWNDb250ZXh0LT50cmFuc2xhdGUoeCwgeSk7
Ci19Ci0KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRfcGFpbnQoRXdrX1BhaW50X0NvbnRleHQqIGNv
bnRleHQsIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldywgY29uc3QgRWluYV9SZWN0YW5nbGUqIGFy
ZWEpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oY29udGV4dCk7Ci0gICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk4odmlldyk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk4oYXJlYSk7Ci0KLSAgICBXZWJDb3JlOjpJbnRSZWN0IHBhaW50QXJlYSgqYXJlYSk7Ci0K
LSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICBpZiAodmlldy0+ZnJhbWUoKS50aWxl
ZEJhY2tpbmdTdG9yZSgpKSB7Ci0gICAgICAgIGludCBzY3JvbGxYID0gdmlldy0+c2Nyb2xsWCgp
OwotICAgICAgICBpbnQgc2Nyb2xsWSA9IHZpZXctPnNjcm9sbFkoKTsKLQotICAgICAgICBjb250
ZXh0LT5ncmFwaGljQ29udGV4dC0+dHJhbnNsYXRlKC1zY3JvbGxYLCAtc2Nyb2xsWSk7Ci0KLSAg
ICAgICAgcGFpbnRBcmVhLm1vdmUoc2Nyb2xsWCwgc2Nyb2xsWSk7Ci0KLSAgICAgICAgdmlldy0+
ZnJhbWUoKS50aWxlZEJhY2tpbmdTdG9yZSgpLT5wYWludChjb250ZXh0LT5ncmFwaGljQ29udGV4
dC5nZXQoKSwgcGFpbnRBcmVhKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCi0g
ICAgaWYgKHZpZXctPmlzVHJhbnNwYXJlbnQoKSkKLSAgICAgICAgY29udGV4dC0+Z3JhcGhpY0Nv
bnRleHQtPmNsZWFyUmVjdChwYWludEFyZWEpOwotICAgIHZpZXctPnBhaW50KGNvbnRleHQtPmdy
YXBoaWNDb250ZXh0LmdldCgpLCBwYWludEFyZWEpOwotfQotCi12b2lkIGV3a19wYWludF9jb250
ZXh0X3BhaW50X2NvbnRlbnRzKEV3a19QYWludF9Db250ZXh0KiBjb250ZXh0LCBXZWJDb3JlOjpG
cmFtZVZpZXcqIHZpZXcsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBhcmVhKQotewotICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOKGNvbnRleHQpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOKHZpZXcpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGFyZWEpOwotCi0g
ICAgV2ViQ29yZTo6SW50UmVjdCBwYWludEFyZWEoKmFyZWEpOwotCi0gICAgaWYgKHZpZXctPmlz
VHJhbnNwYXJlbnQoKSkKLSAgICAgICAgY29udGV4dC0+Z3JhcGhpY0NvbnRleHQtPmNsZWFyUmVj
dChwYWludEFyZWEpOwotICAgIHZpZXctPnBhaW50Q29udGVudHMoY29udGV4dC0+Z3JhcGhpY0Nv
bnRleHQuZ2V0KCksIHBhaW50QXJlYSk7Ci0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIFdl
YkNvcmU6OlBhZ2UqIHBhZ2UgPSB2aWV3LT5mcmFtZSgpLnBhZ2UoKTsKLSAgICBpZiAocGFnZSkg
ewotICAgICAgICBXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyJiBjb250cm9sbGVyID0gcGFn
ZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpOwotICAgICAgICBpZiAoY29udHJvbGxlci5oaWdobGln
aHRlZE5vZGUoKSkKLSAgICAgICAgICAgIGNvbnRyb2xsZXIuZHJhd0hpZ2hsaWdodCgqY29udGV4
dC0+Z3JhcGhpY0NvbnRleHQpOwotICAgIH0KLSNlbmRpZgotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19wYWludF9jb250ZXh0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfcGFpbnRfY29udGV4dF9wcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU3MjdiMDczN2VhNDA4NTM2Mjg2MGUzNDU3NGE2MzA1ZDg3OGE1ZmUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19wYWludF9jb250ZXh0X3ByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0x
LDIyMSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAwOS0yMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQg
c3lzdGVtcwotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSovCi0KLS8qKgotICogQGZpbGUgICAgZXdrX3BhaW50X2NvbnRleHRfcHJpdmF0ZS5o
Ci0gKiBAYnJpZWYgICBEZXNjcmliZXMgdGhlIHBhaW50IGNvbnRleHQgQVBJLgotICovCi0KLSNp
Zm5kZWYgZXdrX3BhaW50X2NvbnRleHRfcHJpdmF0ZV9oCi0jZGVmaW5lIGV3a19wYWludF9jb250
ZXh0X3ByaXZhdGVfaAotCi0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKLSNpbmNsdWRlIDxFdmFzLmg+
Ci0jaW5jbHVkZSA8Y2Fpcm8uaD4KLQotLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIF9F
d2tfUGFpbnRfQ29udGV4dC4KLXR5cGVkZWYgc3RydWN0IF9Fd2tfUGFpbnRfQ29udGV4dCBFd2tf
UGFpbnRfQ29udGV4dDsKLQotLyoqCi0gKiBAYnJpZWYgU3RydWN0dXJlIHRoYXQga2VlcHMgdGhl
IHBhaW50IGNvbnRleHQuCi0gKgotICogQGludGVybmFsCi0gKgotICogQG5vdGUgVGhpcyBpcyBu
b3QgZm9yIGdlbmVyYWwgdXNlIGJ1dCBqdXN0IGZvciBzdWJjbGFzc2VzIHRoYXQgd2FudAotICog
ICAgICAgdG8gZGVmaW5lIHRoZWlyIG93biBiYWNraW5nIHN0b3JlLgotICovCi1zdHJ1Y3QgX0V3
a19QYWludF9Db250ZXh0IHsKLSAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBn
cmFwaGljQ29udGV4dDsKLSAgICBSZWZQdHI8Y2Fpcm9fdD4gY2Fpcm87Ci0gICAgUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gc3VyZmFjZTsgLyoqPCBzdXJmYWNlIHVzZWQgdG8gY3JlYXRlIGNhaXJv
IG9iamVjdCAqLwotICAgIEV2YXNfT2JqZWN0KiBpbWFnZTsgLyoqPCBpbWFnZSB1c2VkIHRvIGNy
ZWF0ZSBjYWlybyBzdXJmYWNlICovCi0gICAgdW5zaWduZWQgY2hhciogcGl4ZWxzOyAvKio8IHBp
eGVscyBmb3JtIGltYWdlICovCi19OwotCi0vKioKLSAqIEBpbnRlcm5hbAotICogQ3JlYXRlcyBh
IG5ldyBwYWludCBjb250ZXh0IHVzaW5nIGEgY2Fpcm8gYXMgb3V0cHV0LgotICoKLSAqIEBwYXJh
bSBjYWlybyBjb250ZXh0IHRvIHVzZSBhcyBwYWludCBkZXN0aW5hdGlvbiwgYSBuZXcKLSAqICAg
ICAgICByZWZlcmVuY2UgaXMgdGFrZW4sIHNvIGl0J3Mgc2FmZSB0byBjYWxsIEBjIGNhaXJvX2Rl
c3Ryb3koKQotICogICAgICAgIGFmdGVyIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4KLSAqCi0gKiBA
cmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIGluc3RhbmNlIG9mIEBjIEV3a19QYWludF9Db250ZXh0
IG9uIHN1Y2Nlc3MsCi0gKiAgICAgICAgIG9yIEBjIDAgb24gZmFpbHVyZQotICoKLSAqIEBub3Rl
IFRoaXMgaXMgbm90IGZvciBnZW5lcmFsIHVzZSBidXQganVzdCBmb3Igc3ViY2xhc3NlcyB0aGF0
IHdhbnQKLSAqICAgICAgIHRvIGRlZmluZSB0aGVpciBvd24gYmFja2luZyBzdG9yZS4KLSAqLwot
RXdrX1BhaW50X0NvbnRleHQqIGV3a19wYWludF9jb250ZXh0X25ldyhjYWlyb190KiBjYWlybyk7
Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBDcmVhdGVzIGEgbmV3IHBhaW50IGNvbnRleHQgdXNp
bmcgYW4gaW1hZ2UgYXMgb3V0cHV0LgotICoKLSAqIEBwYXJhbSBpbWFnZSB0byB1c2UgYXMgcGFp
bnQgZGVzdGluYXRpb24KLSAqCi0gKiBAcmV0dXJuIGEgbmV3bHkgYWxsb2NhdGVkIGluc3RhbmNl
IG9mIEBjIEV3a19QYWludF9Db250ZXh0IG9uIHN1Y2Nlc3MsCi0gKiAgICAgICAgIG9yIEBjIDAg
b24gZmFpbHVyZQotICoKLSAqIEBub3RlIFRoaXMgaXMgbm90IGZvciBnZW5lcmFsIHVzZSBidXQg
anVzdCBmb3Igc3ViY2xhc3NlcyB0aGF0IHdhbnQKLSAqICAgICAgIHRvIGRlZmluZSB0aGVpciBv
d24gYmFja2luZyBzdG9yZS4KLSAqLwotRXdrX1BhaW50X0NvbnRleHQqIGV3a19wYWludF9jb250
ZXh0X2Zyb21faW1hZ2VfbmV3KEV2YXNfT2JqZWN0KiBpbWFnZSk7Ci0KLS8qKgotICogQGludGVy
bmFsCi0gKiBDcmVhdGVzIGEgbmV3IHBhaW50IGNvbnRleHQgdXNpbmcgYW4gaW1hZ2UgYXMgb3V0
cHV0LgotICoKLSAqIEBwYXJhbSBwaXhlbCBwb2ludGVyIHRvIHBpeGVsIGJ1ZmZlcgotICogQHBh
cmFtIHdpZHRoIHNpemUgb2YgcGl4ZWwgYnVmZmVyCi0gKiBAcGFyYW0gaGVpZ2h0IHNpemUgb2Yg
cGl4ZWwgYnVmZmVyCi0gKiBAcGFyYW0gY29sb3JTcGFjZSBFdmFzX0NvbG9yc3BhY2Ugb2YgcGl4
ZWwgYnVmZmVyCi0gKgotICogQHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBpbnN0YW5jZSBvZiBA
YyBFd2tfUGFpbnRfQ29udGV4dCBvbiBzdWNjZXNzLAotICogICAgICAgICBvciBAYyAwIG9uIGZh
aWx1cmUKLSAqCi0gKiBAbm90ZSBUaGlzIGlzIG5vdCBmb3IgZ2VuZXJhbCB1c2UgYnV0IGp1c3Qg
Zm9yIHN1YmNsYXNzZXMgdGhhdCB3YW50Ci0gKiAgICAgICB0byBkZWZpbmUgdGhlaXIgb3duIGJh
Y2tpbmcgc3RvcmUuCi0gKi8KLUV3a19QYWludF9Db250ZXh0KiBld2tfcGFpbnRfY29udGV4dF9m
cm9tX2ltYWdlX2RhdGFfbmV3KHVpbnQ4X3QqIHBpeGVscywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0
LCBpbnQgY29sb3JTcGFjZSk7Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBEZXN0cm95cyB0aGUg
cHJldmlvdXNseSBjcmVhdGVkIHRoZSBwYWludCBjb250ZXh0LgotICoKLSAqIEBwYXJhbSBjb250
ZXh0IHRoZSBwYWludCBjb250ZXh0IHRvIGRlc3Ryb3ksIG11c3QgQGIgbm90IGJlIEBjIDAKLSAq
Ci0gKiBAbm90ZSBUaGlzIGlzIG5vdCBmb3IgZ2VuZXJhbCB1c2UgYnV0IGp1c3QgZm9yIHN1YmNs
YXNzZXMgdGhhdCB3YW50Ci0gKiAgICAgICB0byBkZWZpbmUgdGhlaXIgb3duIGJhY2tpbmcgc3Rv
cmUuCi0gKi8KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRfZnJlZShFd2tfUGFpbnRfQ29udGV4dCog
Y29udGV4dCk7Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBTYXZlcyAocHVzaCB0byBzdGFjaykg
dGhlIHBhaW50IGNvbnRleHQgc3RhdHVzLgotICoKLSAqIEBwYXJhbSBjb250ZXh0IHRoZSBwYWlu
dCBjb250ZXh0IHRvIHNhdmUsIG11c3QgQGIgbm90IGJlIEBjIDAKLSAqCi0gKiBAc2VlIGV3a19w
YWludF9jb250ZXh0X3Jlc3RvcmUoKQotICoKLSAqIEBub3RlIFRoaXMgaXMgbm90IGZvciBnZW5l
cmFsIHVzZSBidXQganVzdCBmb3Igc3ViY2xhc3NlcyB0aGF0IHdhbnQKLSAqICAgICAgIHRvIGRl
ZmluZSB0aGVpciBvd24gYmFja2luZyBzdG9yZS4KLSAqLwotdm9pZCBld2tfcGFpbnRfY29udGV4
dF9zYXZlKEV3a19QYWludF9Db250ZXh0KiBjb250ZXh0KTsKLQotLyoqCi0gKiBAaW50ZXJuYWwK
LSAqIFJlc3RvcmVzIChwb3AgZnJvbSBzdGFjaykgdGhlIHBhaW50IGNvbnRleHQgc3RhdHVzLgot
ICoKLSAqIEBwYXJhbSBjb250ZXh0IHRoZSBwYWludCBjb250ZXh0IHRvIHJlc3RvcmUsIG11c3Qg
QGIgbm90IGJlIEBjIDAKLSAqCi0gKiBAc2VlIGV3a19wYWludF9jb250ZXh0X3NhdmUoKQotICoK
LSAqIEBub3RlIFRoaXMgaXMgbm90IGZvciBnZW5lcmFsIHVzZSBidXQganVzdCBmb3Igc3ViY2xh
c3NlcyB0aGF0IHdhbnQKLSAqICAgICAgIHRvIGRlZmluZSB0aGVpciBvd24gYmFja2luZyBzdG9y
ZS4KLSAqLwotdm9pZCBld2tfcGFpbnRfY29udGV4dF9yZXN0b3JlKEV3a19QYWludF9Db250ZXh0
KiBjb250ZXh0KTsKLQotLyoqCi0gKiBAaW50ZXJuYWwKLSAqIENsaXBzIHRoZSBwYWludCBjb250
ZXh0IGRyYXdpbmdzIHRvIHRoZSBnaXZlbiBhcmVhLgotICoKLSAqIEBwYXJhbSBjb250ZXh0IHRo
ZSBwYWludCBjb250ZXh0IHRvIGNsaXAsIG11c3QgQGIgbm90IGJlIEBjIDAKLSAqIEBwYXJhbSBh
cmVhIGNsaXAgYXJlYSB0byB1c2UsIG11c3QgQGIgbm90IGJlIEBjIDAKLSAqCi0gKiBAc2VlIGV3
a19wYWludF9jb250ZXh0X3NhdmUoKQotICogQHNlZSBld2tfcGFpbnRfY29udGV4dF9yZXN0b3Jl
KCkKLSAqCi0gKiBAbm90ZSBUaGlzIGlzIG5vdCBmb3IgZ2VuZXJhbCB1c2UgYnV0IGp1c3QgZm9y
IHN1YmNsYXNzZXMgdGhhdCB3YW50Ci0gKiAgICAgICB0byBkZWZpbmUgdGhlaXIgb3duIGJhY2tp
bmcgc3RvcmUuCi0gKi8KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRfY2xpcChFd2tfUGFpbnRfQ29u
dGV4dCogY29udGV4dCwgY29uc3QgRWluYV9SZWN0YW5nbGUqIGFyZWEpOwotCi0vKioKLSAqIEBp
bnRlcm5hbAotICogU2NhbGVzIHRoZSBjb250ZW50cyBieSB0aGUgZ2l2ZW4gZmFjdG9ycy4KLSAq
Ci0gKiBUaGlzIGZ1bmN0aW9uIGFwcGxpZXMgYSBzY2FsaW5nIHRyYW5zZm9ybWF0aW9uIHVzaW5n
IENhaXJvLgotICoKLSAqIEBwYXJhbSBjb250ZXh0IHRoZSBwYWludCBjb250ZXh0IHRvIHNjYWxl
LCBtdXN0IEBiIG5vdCBiZSBAYyAwCi0gKiBAcGFyYW0gc2NhbGVfeCB0aGUgc2NhbGUgZmFjdG9y
IGZvciB0aGUgWCBkaW1lbnNpb24KLSAqIEBwYXJhbSBzY2FsZV95IHRoZSBzY2FsZSBmYWN0b3Ig
Zm9yIHRoZSBZIGRpbWVuc2lvbgotICovCi12b2lkIGV3a19wYWludF9jb250ZXh0X3NjYWxlKEV3
a19QYWludF9Db250ZXh0KiBjb250ZXh0LCBmbG9hdCBzY2FsZV94LCBmbG9hdCBzY2FsZV95KTsK
LQotLyoqCi0gKiBAaW50ZXJuYWwKLSAqIFBlcmZvcm1zIGEgdHJhbnNsYXRpb24gb2YgdGhlIG9y
aWdpbiBjb29yZGluYXRlcy4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIG1vdmVzIHRoZSBvcmlnaW4g
Y29vcmRpbmF0ZXMgYnkgQGEgeCBhbmQgQGEgeSBwaXhlbHMuCi0gKgotICogQHBhcmFtIGNvbnRl
eHQgdGhlIHBhaW50IGNvbnRleHQgdG8gdHJhbnNsYXRlLCBtdXN0IEBiIG5vdCBiZSBAYyAwCi0g
KiBAcGFyYW0geCBhbW91bnQgb2YgcGl4ZWxzIHRvIHRyYW5zbGF0ZSBpbiB0aGUgWCBkaW1lbnNp
b24KLSAqIEBwYXJhbSB5IGFtb3VudCBvZiBwaXhlbHMgdG8gdHJhbnNsYXRlIGluIHRoZSBZIGRp
bWVuc2lvbgotICovCi12b2lkIGV3a19wYWludF9jb250ZXh0X3RyYW5zbGF0ZShFd2tfUGFpbnRf
Q29udGV4dCogY29udGV4dCwgZmxvYXQgeCwgZmxvYXQgeSk7Ci0KLS8qKgotICogQGludGVybmFs
Ci0gKiBQYWludHMgdGhlIGNvbnRleHQgdXNpbmcgZ2l2ZW4gYXJlYS4KLSAqCi0gKiBAcGFyYW0g
Y29udGV4dCB0aGUgcGFpbnQgY29udGV4dCB0byBwYWludCwgbXVzdCBAYiBub3QgYmUgQGMgMAot
ICogQHBhcmFtIHZpZXcgdGhlIHZpZXcgdG8gcGFpbnQKLSAqIEBwYXJhbSBhcmVhIHRoZSBwYWlu
dCBhcmVhIHRvIHVzZSwgY29vcmRpbmF0ZXMgYXJlIHJlbGF0aXZlIHRvIGN1cnJlbnQgdmlld3Bv
cnQsCi0gKiAgICAgICAgdGh1cyAic2Nyb2xsZWQiLCBtdXN0IEBiIG5vdCBiZSBAYyAwCi0gKgot
ICogQG5vdGUgT25lIG1heSB1c2UgY2Fpcm8gZnVuY3Rpb25zIG9uIHRoZSBjYWlybyBjb250ZXh0
IHRvCi0gKiAgICAgICB0cmFuc2xhdGUsIHNjYWxlIG9yIGFueSBtb2RpZmljYXRpb24gdGhhdCBt
YXkgZml0IGhpcyBkZXNpcmVzLgotICoKLSAqIEBzZWUgZXdrX3BhaW50X2NvbnRleHRfY2xpcCgp
Ci0gKiBAc2VlIGV3a19wYWludF9jb250ZXh0X3BhaW50X2NvbnRlbnRzKCkKLSAqCi0gKiBAbm90
ZSBUaGlzIGlzIG5vdCBmb3IgZ2VuZXJhbCB1c2UgYnV0IGp1c3QgZm9yIHN1YmNsYXNzZXMgdGhh
dCB3YW50Ci0gKiAgICAgICB0byBkZWZpbmUgdGhlaXIgb3duIGJhY2tpbmcgc3RvcmUuCi0gKi8K
LXZvaWQgZXdrX3BhaW50X2NvbnRleHRfcGFpbnQoRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQs
IFdlYkNvcmU6OkZyYW1lVmlldyogdmlldywgY29uc3QgRWluYV9SZWN0YW5nbGUqIGFyZWEpOwot
Ci0vKioKLSAqIEBpbnRlcm5hbAotICogUGFpbnRzIGp1c3QgY29udGVudHMgdXNpbmcgY29udGV4
dCB1c2luZyBnaXZlbiBhcmVhLgotICoKLSAqIFVubGlrZSBld2tfcGFpbnRfY29udGV4dF9wYWlu
dCgpLCB0aGlzIGZ1bmN0aW9uIHBhaW50IGp1c3QKLSAqIGJhcmUgY29udGVudHMgYW5kIGlnbm9y
ZXMgYW55IHNjcm9sbGluZywgc2Nyb2xsYmFycyBhbmQgZXh0cmFzLiBJdAotICogd2lsbCB3YWxr
IHRoZSByZW5kZXJpbmcgdHJlZSBhbmQgcGFpbnQgY29udGVudHMgaW5zaWRlIHRoZSBnaXZlbgot
ICogYXJlYSB0byB0aGUgY2Fpcm8gY29udGV4dCBzcGVjaWZpZWQgaW4gQGEgY29udGV4dC4KLSAq
Ci0gKiBAcGFyYW0gY29udGV4dCB0aGUgcGFpbnQgY29udGV4dCB0byBwYWludCwgbXVzdCBAYiBu
b3QgYmUgQGMgMC4KLSAqIEBwYXJhbSB2aWV3IHRoZSB2aWV3IHRvIHBhaW50Ci0gKiBAcGFyYW0g
YXJlYSB0aGUgcGFpbnQgYXJlYSB0byB1c2UsIGNvb3JkaW5hdGVzIGFyZSBhYnNvbHV0ZSB0byBw
YWdlLCBtdXN0IEBiIG5vdCBiZSBAYyAwCi0gKgotICogQG5vdGUgT25lIG1heSB1c2UgY2Fpcm8g
ZnVuY3Rpb25zIG9uIHRoZSBjYWlybyBjb250ZXh0IHRvCi0gKiAgICAgICB0cmFuc2xhdGUsIHNj
YWxlIG9yIGFueSBtb2RpZmljYXRpb24gdGhhdCBtYXkgZml0IGhpcyBkZXNpcmVzLgotICoKLSAq
IEBzZWUgZXdrX3BhaW50X2NvbnRleHRfY2xpcCgpCi0gKiBAc2VlIGV3a19wYWludF9jb250ZXh0
X3BhaW50KCkKLSAqCi0gKiBAbm90ZSBUaGlzIGlzIG5vdCBmb3IgZ2VuZXJhbCB1c2UgYnV0IGp1
c3QgZm9yIHN1YmNsYXNzZXMgdGhhdCB3YW50Ci0gKiAgICAgICB0byBkZWZpbmUgdGhlaXIgb3du
IGJhY2tpbmcgc3RvcmUuCi0gKi8KLXZvaWQgZXdrX3BhaW50X2NvbnRleHRfcGFpbnRfY29udGVu
dHMoRXdrX1BhaW50X0NvbnRleHQqIGNvbnRleHQsIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldywg
Y29uc3QgRWluYV9SZWN0YW5nbGUqIGFyZWEpOwotCi0jZW5kaWYgLy8gZXdrX3BhaW50X2NvbnRl
eHRfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA3NDUwMzY3Mzhl
ZmNkOGQzZTRhNmJlODU1OWU5Y2RiYTgyZmMxMjk2Li4zNjRjYWQ1YTEzNDg1YjUyZDM2NWVlYWEx
Yzc2ZDM3YTc1MDk4NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTY5LDE0
ICs2OSwxMiBAQAogI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiU291cE5ldHdvcmtTZXNzaW9uLmgiCi0jaW5jbHVkZSAiVGlsZWRCYWNraW5n
U3RvcmUuaCIKICNpbmNsdWRlICJjX2luc3RhbmNlLmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRt
ZW51X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfZnJhbWUuaCIKICNpbmNsdWRlICJld2tfZnJh
bWVfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19oaXN0b3J5X3ByaXZhdGUuaCIKICNpbmNsdWRl
ICJld2tfanNfcHJpdmF0ZS5oIgotI2luY2x1ZGUgImV3a19wYWludF9jb250ZXh0X3ByaXZhdGUu
aCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5nc19wcml2
YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgpAQCAtMjYzLDExICsyNjEsNiBA
QCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgICAgIEV3a19NZW51IG1lbnU7
CiAgICAgICAgIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogbWVudUNsaWVudDsKICAgICB9IHBv
cHVwOwotICAgIHN0cnVjdCB7Ci0gICAgICAgIEVpbmFfUmVjdGFuZ2xlKiBhcnJheTsKLSAgICAg
ICAgc2l6ZV90IGNvdW50OwotICAgICAgICBzaXplX3QgYWxsb2NhdGVkOwotICAgIH0gcmVwYWlu
dHM7CiAgICAgdW5zaWduZWQgaW50IGltaDsgLyoqPCBpbnB1dCBtZXRob2QgaGludHMgKi8KICAg
ICBzdHJ1Y3QgewogICAgICAgICBib29sIHZpZXdDbGVhcmVkIDogMTsKQEAgLTQyMSw1MSArNDE0
LDYgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2NoYW5nZWQoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhKQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NoYW5nZWQoc21hcnREYXRh
LT5zZWxmKTsKIH0KIAotc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfcmVwYWludHNfcmVzaXpl
KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgc2l6ZV90IHNpemUpCi17Ci0gICAgdm9pZCog
dG1wID0gcmVhbGxvYyhwcml2LT5yZXBhaW50cy5hcnJheSwgc2l6ZSAqIHNpemVvZihFaW5hX1Jl
Y3RhbmdsZSkpOwotICAgIGlmICghdG1wKSB7Ci0gICAgICAgIENSSVRJQ0FMKCJjb3VsZCBub3Qg
cmVhbGxvYyByZXBhaW50cyBhcnJheSB0byAlenUgZWxlbWVudHMuIiwgc2l6ZSk7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcHJpdi0+cmVwYWludHMuYWxsb2NhdGVkID0gc2l6
ZTsKLSAgICBwcml2LT5yZXBhaW50cy5hcnJheSA9IHN0YXRpY19jYXN0PEVpbmFfUmVjdGFuZ2xl
Kj4odG1wKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIHZvaWQgX2V3a192aWV3X3Jl
cGFpbnRfYWRkKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgRXZhc19Db29yZCB4LCBFdmFz
X0Nvb3JkIHksIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29vcmQgaGVpZ2h0KQotewotICAgIHNp
emVfdCBuZXdTaXplID0gMDsKLQotICAgIGlmIChwcml2LT5yZXBhaW50cy5hbGxvY2F0ZWQgPT0g
cHJpdi0+cmVwYWludHMuY291bnQpCi0gICAgICAgIG5ld1NpemUgPSBwcml2LT5yZXBhaW50cy5h
bGxvY2F0ZWQgKyBld2tWaWV3UmVwYWludHNTaXplU3RlcDsKLSAgICBlbHNlIGlmICghcHJpdi0+
cmVwYWludHMuY291bnQgJiYgcHJpdi0+cmVwYWludHMuYWxsb2NhdGVkID4gZXdrVmlld1JlcGFp
bnRzU2l6ZUluaXRpYWwpCi0gICAgICAgIG5ld1NpemUgPSBld2tWaWV3UmVwYWludHNTaXplSW5p
dGlhbDsKLQotICAgIGlmIChuZXdTaXplKSB7Ci0gICAgICAgIGlmICghX2V3a192aWV3X3JlcGFp
bnRzX3Jlc2l6ZShwcml2LCBuZXdTaXplKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBFaW5hX1JlY3RhbmdsZSogcmVjdCA9IHByaXYtPnJlcGFpbnRzLmFycmF5ICsgcHJpdi0+
cmVwYWludHMuY291bnQ7Ci0gICAgcHJpdi0+cmVwYWludHMuY291bnQrKzsKLQotICAgIHJlY3Qt
PnggPSB4OwotICAgIHJlY3QtPnkgPSB5OwotICAgIHJlY3QtPncgPSB3aWR0aDsKLSAgICByZWN0
LT5oID0gaGVpZ2h0OwotCi0gICAgREJHKCJhZGQgcmVwYWludCAlZCwgJWQrJWR4JWQiLCB4LCB5
LCB3aWR0aCwgaGVpZ2h0KTsKLX0KLQotc3RhdGljIHZvaWQgX2V3a192aWV3X3JlcGFpbnRzX2Zs
dXNoKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKLXsKLSAgICBwcml2LT5yZXBhaW50cy5j
b3VudCA9IDA7Ci0gICAgaWYgKHByaXYtPnJlcGFpbnRzLmFsbG9jYXRlZCA8PSBld2tWaWV3UmVw
YWludHNTaXplTWF4aW11bUZyZWUpCi0gICAgICAgIHJldHVybjsKLSAgICBfZXdrX3ZpZXdfcmVw
YWludHNfcmVzaXplKHByaXYsIGV3a1ZpZXdSZXBhaW50c1NpemVNYXhpbXVtRnJlZSk7Ci19Ci0K
IC8vIERlZmF1bHQgRXZlbnQgSGFuZGxpbmcgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfZm9jdXNf
aW4oRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogewpAQCAtODMyLDggKzc4MCw2IEBA
IHN0YXRpYyB2b2lkIF9ld2tfdmlld19wcml2X2RlbChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHBy
aXYpCiAKICAgICAvKiBkbyBub3QgZGVsZXRlIHByaXYtPm1haW5fZnJhbWUgKi8KIAotICAgIGZy
ZWUocHJpdi0+cmVwYWludHMuYXJyYXkpOwotCiAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwocHJp
di0+c2V0dGluZ3MudXNlckFnZW50KTsKICAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChwcml2LT5z
ZXR0aW5ncy51c2VyU3R5bGVzaGVldCk7CiAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwocHJpdi0+
c2V0dGluZ3MuZW5jb2RpbmdEZWZhdWx0KTsKQEAgLTEwNTQsOCArMTAwMCw2IEBAIHN0YXRpYyB2
b2lkIF9ld2tfdmlld19zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAg
ICAgIHNtYXJ0RGF0YS0+dmlldy53ID0gd2lkdGg7CiAgICAgICAgIHNtYXJ0RGF0YS0+dmlldy5o
ID0gaGVpZ2h0OwogCi0gICAgICAgIF9ld2tfdmlld19yZXBhaW50X2FkZChwcml2LCAwLCAwLCB3
aWR0aCwgaGVpZ2h0KTsKLQogICAgICAgICAvLyBUaGlzIGNhbGxiYWNrIGlzIGEgZ29vZCBwbGFj
ZSBlLmcuIHRvIGNoYW5nZSBmaXhlZCBsYXlvdXQgc2l6ZSAoZXdrX3ZpZXdfZml4ZWRfbGF5b3V0
X3NpemVfc2V0KS4KICAgICAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tW
aWV3LCAidmlldyxyZXNpemVkIiwgMCk7CiAgICAgfQpAQCAtMTEyOSwxMiArMTA3Myw2IEBAIHN0
YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X3pvb21fc2V0KEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSwgZmxvYXQKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfc21hcnRfZmx1c2goRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQot
ewotICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOwotICAg
IF9ld2tfdmlld19yZXBhaW50c19mbHVzaChwcml2KTsKLX0KLQogc3RhdGljIHZvaWQgX2V3a192
aWV3X3pvb21fYW5pbWF0ZWRfbWFya19zdG9wKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSkKIHsKICAgICBzbWFydERhdGEtPmFuaW1hdGVkX3pvb20uem9vbS5zdGFydCA9IDAuMDsKQEAg
LTEzMTMsNyArMTI1MSw2IEBAIEVpbmFfQm9vbCBld2tfdmlld19zbWFydF9zZXQoRXdrX1ZpZXdf
U21hcnRfQ2xhc3MqIGFwaSkKICAgICBhcGktPnpvb21fc2V0ID0gX2V3a192aWV3X3NtYXJ0X3pv
b21fc2V0OwogICAgIGFwaS0+em9vbV93ZWFrX3NldCA9IF9ld2tfdmlld19zbWFydF96b29tX3dl
YWtfc2V0OwogICAgIGFwaS0+em9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQgPSBfZXdrX3ZpZXdf
c21hcnRfem9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQ7Ci0gICAgYXBpLT5mbHVzaCA9IF9ld2tf
dmlld19zbWFydF9mbHVzaDsKICAgICBhcGktPmRpc2FibGVfcmVuZGVyID0gX2V3a192aWV3X3Nt
YXJ0X2Rpc2FibGVfcmVuZGVyOwogICAgIGFwaS0+ZW5hYmxlX3JlbmRlciA9IF9ld2tfdmlld19z
bWFydF9lbmFibGVfcmVuZGVyOwogCkBAIC0yNjYyLDU2ICsyNTk5LDYgQEAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCiB9CiAKIC8qKgotICogR2V0cyB0aGUgaW50ZXJuYWwgYXJyYXkgb2YgcmVwYWludCByZXF1
ZXN0cy4KLSAqCi0gKiBUaGlzIGFycmF5IHNob3VsZCBub3QgYmUgbW9kaWZpZWQgYW55aG93LiBJ
dCBzaG91bGQgYmUgcHJvY2Vzc2VkCi0gKiBpbW1lZGlhdGVseSBhcyBhbnkgZnVydGhlciBld2tf
dmlldyBjYWxsIG1pZ2h0IGNoYW5nZSBpdCwgbGlrZQotICogdGhvc2UgdGhhdCBhZGQgcmVwYWlu
dHMgb3IgZmx1c2ggdGhlbSwgc28gYmUgc3VyZSB0aGF0IHlvdXIgY29kZQotICogZG9lcyBub3Qg
Y2FsbCBhbnkgb2YgdGhvc2Ugd2hpbGUgeW91IHByb2Nlc3MgdGhlIHJlcGFpbnRzLAotICogb3Ro
ZXJ3aXNlIGNvcHkgdGhlIGFycmF5LgotICoKLSAqIEBwYXJhbSBwcml2IHByaXZhdGUgaGFuZGxl
IHBvaW50ZXIgb2YgdGhlIHZpZXcgdG8gZ2V0IHJlcGFpbnRzLgotICogQHBhcmFtIGNvdW50IHdo
ZXJlIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIG9mIHJldHVybmVkIGFycmF5LCBt
YXkgYmUgQGMgMC4KLSAqCi0gKiBAcmV0dXJuIHJlZmVyZW5jZSB0byBhcnJheSBvZiByZXF1ZXN0
ZWQgcmVwYWludHMuCi0gKgotICogQG5vdGUgdGhpcyBpcyBub3QgZm9yIGdlbmVyYWwgdXNlIGJ1
dCBqdXN0IGZvciBzdWJjbGFzc2VzIHRoYXQgd2FudAotICogICAgICAgdG8gZGVmaW5lIHRoZWly
IG93biBiYWNraW5nIHN0b3JlLgotICovCi1jb25zdCBFaW5hX1JlY3RhbmdsZSogZXdrX3ZpZXdf
cmVwYWludHNfcG9wKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgc2l6ZV90KiBjb3VudCkK
LXsKLSAgICBpZiAoY291bnQpCi0gICAgICAgICpjb3VudCA9IDA7Ci0gICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHByaXYsIDApOwotICAgIGlmIChjb3VudCkKLSAgICAgICAgKmNv
dW50ID0gcHJpdi0+cmVwYWludHMuY291bnQ7Ci0KLSAgICBwcml2LT5yZXBhaW50cy5jb3VudCA9
IDA7Ci0KLSAgICByZXR1cm4gcHJpdi0+cmVwYWludHMuYXJyYXk7Ci19Ci0KLS8qKgotICogQWRk
IGEgbmV3IHJlcGFpbnQgcmVxdWVzdCB0byBxdWV1ZS4KLSAqCi0gKiBUaGUgcmVwYWludHMgYXJl
IGFzc3VtZWQgdG8gYmUgcmVsYXRpdmUgdG8gY3VycmVudCB2aWV3cG9ydC4KLSAqCi0gKiBAcGFy
YW0gcHJpdiBwcml2YXRlIGhhbmRsZSBwb2ludGVyIG9mIHRoZSB2aWV3IHRvIGFkZCByZXBhaW50
IHJlcXVlc3QuCi0gKiBAcGFyYW0geCBob3Jpem9udGFsIHBvc2l0aW9uIHJlbGF0aXZlIHRvIGN1
cnJlbnQgdmlldyBwb3J0IChzY3JvbGxlZCkuCi0gKiBAcGFyYW0geSB2ZXJ0aWNhbCBwb3NpdGlv
biByZWxhdGl2ZSB0byBjdXJyZW50IHZpZXcgcG9ydCAoc2Nyb2xsZWQpLgotICogQHBhcmFtIHdp
ZHRoIHdpZHRoIG9mIGFyZWEgdG8gYmUgcmVwYWludGVkCi0gKiBAcGFyYW0gaGVpZ2h0IGhlaWdo
dCBvZiBhcmVhIHRvIGJlIHJlcGFpbnRlZAotICoKLSAqIEBub3RlIHRoaXMgaXMgbm90IGZvciBn
ZW5lcmFsIHVzZSBidXQganVzdCBmb3Igc3ViY2xhc3NlcyB0aGF0IHdhbnQKLSAqICAgICAgIHRv
IGRlZmluZSB0aGVpciBvd24gYmFja2luZyBzdG9yZS4KLSAqLwotdm9pZCBld2tfdmlld19yZXBh
aW50X2FkZChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIEV2YXNfQ29vcmQgeCwgRXZhc19D
b29yZCB5LCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhlaWdodCkKLXsKLSAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihwcml2KTsKLSAgICBfZXdrX3ZpZXdfcmVwYWludF9hZGQo
cHJpdiwgeCwgeSwgd2lkdGgsIGhlaWdodCk7Ci19Ci0KLS8qKgogICogRG8gbGF5b3V0IGlmIHJl
cXVpcmVkLCBhcHBsaWVkIHJlY3Vyc2l2ZWx5LgogICoKICAqIEBwYXJhbSBwcml2IHByaXZhdGUg
aGFuZGxlIHBvaW50ZXIgb2YgdGhlIHZpZXcgdG8gbGF5b3V0LgpAQCAtMjczMSw5NSArMjYxOCw2
IEBAIHZvaWQgZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUoRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKiBwcml2KQogICAgIHZpZXctPnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRS
ZWN1cnNpdmUoKTsKIH0KIAotLyogaW50ZXJuYWwgbWV0aG9kcyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqCi0gKiBAaW50ZXJuYWwKLSAq
IFBhaW50cyB1c2luZyBnaXZlbiBncmFwaGljcyBjb250ZXh0IHRoZSBnaXZlbiBhcmVhLgotICoK
LSAqIFRoaXMgdXNlcyB2aWV3cG9ydCByZWxhdGl2ZSBhcmVhIGFuZCB3aWxsIGFsc28gaGFuZGxl
IHNjcm9sbGJhcnMKLSAqIGFuZCBvdGhlciBleHRyYSBlbGVtZW50cy4gU2VlIGV3a192aWV3X3Bh
aW50X2NvbnRlbnRzKCkgZm9yIHRoZQotICogYWx0ZXJuYXRpdmUgZnVuY3Rpb24uCi0gKgotICog
QHBhcmFtIHByaXYgdGhlIHBvaW50ZXIgdG8gdGhlIHByaXZhdGUgZGF0YSBvZiB0aGUgdmlldyB0
byB1c2UgYXMgcGFpbnQgc291cmNlCi0gKiBAcGFyYW0gY3IgdGhlIGNhaXJvIGNvbnRleHQgdG8g
dXNlIGFzIHBhaW50IGRlc3RpbmF0aW9uLCBpdHMgc3RhdGUgd2lsbAotICogICAgICAgIGJlIHNh
dmVkIGJlZm9yZSBvcGVyYXRpb24gYW5kIHJlc3RvcmVkIGFmdGVyd2FyZHMKLSAqIEBwYXJhbSBh
cmVhIHZpZXdwb3J0IHJlbGF0aXZlIGdlb21ldHJ5IHRvIHBhaW50Ci0gKgotICogQHJldHVybiBA
YyBFSU5BX1RSVUUgb24gc3VjY2VzcyBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKLSAqCi0g
KiBAbm90ZSBUaGlzIGlzIGFuIGVhc3kgdG8gdXNlIHZlcnNpb24sIGJ1dCBpbnRlcm5hbCBzdHJ1
Y3R1cmVzIGFyZQotICogICAgICAgYWx3YXlzIGNyZWF0ZWQsIHRoZW4gZ3JhcGhpY3MgY29udGV4
dCBpcyBjbGlwcGVkLCB0aGVuCi0gKiAgICAgICBwYWludGVkLCByZXN0b3JlZCBhbmQgZGVzdHJv
eWVkLiBUaGlzIG1pZ2h0IG5vdCBiZSBvcHRpbXVtLAotICogICAgICAgc28gdXNpbmcgQGEgRXdr
X1BhaW50X0NvbnRleHQgbWF5IGJlIGEgYmV0dGVyIHNvbHV0aW9ucwotICogICAgICAgZm9yIGxh
cmdlIG51bWJlciBvZiBvcGVyYXRpb25zLgotICoKLSAqIEBzZWUgZXdrX3ZpZXdfcGFpbnRfY29u
dGVudHMoKQotICogQHNlZSBld2tfcGFpbnRfY29udGV4dF9wYWludCgpCi0gKgotICogQG5vdGUg
VGhpcyBpcyBub3QgZm9yIGdlbmVyYWwgdXNlIGJ1dCBqdXN0IGZvciBzdWJjbGFzc2VzIHRoYXQg
d2FudAotICogICAgICAgdG8gZGVmaW5lIHRoZWlyIG93biBiYWNraW5nIHN0b3JlLgotKi8KLUVp
bmFfQm9vbCBld2tfdmlld19wYWludChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIEV3a19Q
YWludF9Db250ZXh0KiBjb250ZXh0LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogYXJlYSkKLXsKLSAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocHJpdiwgZmFsc2UpOwotICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb250ZXh0LCBmYWxzZSk7Ci0gICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKGFyZWEsIGZhbHNlKTsKLSAgICBXZWJDb3JlOjpGcmFtZVZp
ZXcqIHZpZXcgPSBwcml2LT5wYWdlLT5tYWluRnJhbWUoKS52aWV3KCk7Ci0gICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHZpZXcsIGZhbHNlKTsKLQotICAgIGV3a19wYWludF9jb250
ZXh0X3NhdmUoY29udGV4dCk7Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfY2xpcChjb250ZXh0LCBh
cmVhKTsKLSAgICBld2tfcGFpbnRfY29udGV4dF9wYWludChjb250ZXh0LCB2aWV3LCBhcmVhKTsK
LSAgICBld2tfcGFpbnRfY29udGV4dF9yZXN0b3JlKGNvbnRleHQpOwotCi0gICAgcmV0dXJuIHRy
dWU7Ci19Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBQYWludHMganVzdCBjb250ZW50cyB1c2lu
ZyBnaXZlbiBncmFwaGljcyBjb250ZXh0IHRoZSBnaXZlbiBhcmVhLgotICoKLSAqIFRoaXMgdXNl
cyBhYnNvbHV0ZSBjb29yZGluYXRlcyBmb3IgYXJlYSBhbmQgd2lsbCBqdXN0IGhhbmRsZQotICog
Y29udGVudHMsIG5vIHNjcm9sbGJhcnMgb3IgZXh0cmFzLiBTZWUgZXdrX3ZpZXdfcGFpbnQoKSBm
b3IgdGhlCi0gKiBhbHRlcm5hdGl2ZSBzb2x1dGlvbi4KLSAqCi0gKiBAcGFyYW0gcHJpdiB0aGUg
cG9pbnRlciB0byB0aGUgcHJpdmF0ZSBkYXRhIG9mIHRoZSB2aWV3IHRvIHVzZSBhcyBwYWludCBz
b3VyY2UKLSAqIEBwYXJhbSBjciB0aGUgY2Fpcm8gY29udGV4dCB0byB1c2UgYXMgcGFpbnQgZGVz
dGluYXRpb24sIGl0cyBzdGF0ZSB3aWxsCi0gKiAgICAgICAgYmUgc2F2ZWQgYmVmb3JlIG9wZXJh
dGlvbiBhbmQgcmVzdG9yZWQgYWZ0ZXJ3YXJkcwotICogQHBhcmFtIGFyZWEgYWJzb2x1dGUgZ2Vv
bWV0cnkgdG8gcGFpbnQKLSAqCi0gKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9y
IEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQotICoKLSAqIEBub3RlIFRoaXMgaXMgYW4gZWFzeSB0
byB1c2UgdmVyc2lvbiwgYnV0IGludGVybmFsIHN0cnVjdHVyZXMgYXJlCi0gKiAgICAgICBhbHdh
eXMgY3JlYXRlZCwgdGhlbiBncmFwaGljcyBjb250ZXh0IGlzIGNsaXBwZWQsIHRoZW4KLSAqICAg
ICAgIHBhaW50ZWQsIHJlc3RvcmVkIGFuZCBkZXN0cm95ZWQuIFRoaXMgbWlnaHQgbm90IGJlIG9w
dGltdW0sCi0gKiAgICAgICBzbyB1c2luZyBAYSBFd2tfUGFpbnRfQ29udGV4dCBtYXkgYmUgYSBi
ZXR0ZXIgc29sdXRpb25zCi0gKiAgICAgICBmb3IgbGFyZ2UgbnVtYmVyIG9mIG9wZXJhdGlvbnMu
Ci0gKgotICogQHNlZSBld2tfdmlld19wYWludCgpCi0gKiBAc2VlIGV3a19wYWludF9jb250ZXh0
X3BhaW50X2NvbnRlbnRzKCkKLSAqCi0gKiBAbm90ZSBUaGlzIGlzIG5vdCBmb3IgZ2VuZXJhbCB1
c2UgYnV0IGp1c3QgZm9yIHN1YmNsYXNzZXMgdGhhdCB3YW50Ci0gKiAgICAgICB0byBkZWZpbmUg
dGhlaXIgb3duIGJhY2tpbmcgc3RvcmUuCi0gKi8KLUVpbmFfQm9vbCBld2tfdmlld19wYWludF9j
b250ZW50cyhFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIEV3a19QYWludF9Db250ZXh0KiBj
b250ZXh0LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogYXJlYSkKLXsKLSAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwocHJpdiwgZmFsc2UpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChjb250ZXh0LCBmYWxzZSk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKGFyZWEsIGZhbHNlKTsKLSAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2
LT5wYWdlLT5tYWluRnJhbWUoKS52aWV3KCk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHZpZXcsIGZhbHNlKTsKLQotICAgIHZpZXctPnVwZGF0ZUxheW91dEFuZFN0eWxlSWZO
ZWVkZWRSZWN1cnNpdmUoKTsKLQotICAgIGV3a19wYWludF9jb250ZXh0X3NhdmUoY29udGV4dCk7
Ci0gICAgZXdrX3BhaW50X2NvbnRleHRfY2xpcChjb250ZXh0LCBhcmVhKTsKLSAgICBld2tfcGFp
bnRfY29udGV4dF9wYWludF9jb250ZW50cyhjb250ZXh0LCB2aWV3LCBhcmVhKTsKLSAgICBld2tf
cGFpbnRfY29udGV4dF9yZXN0b3JlKGNvbnRleHQpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
IC8qKgogICogQGludGVybmFsCiAgKiBSZXBvcnRzIHRoZSB2aWV3IGlzIHJlYWR5IHRvIGJlIGRp
c3BsYXllZCBhcyBhbGwgZWxlbWVudHMgYXJlIGFyZWFkeS4KQEAgLTM1MDgsMjcgKzMzMDYsNiBA
QCBib29sIGV3a192aWV3X3J1bl9vcGVuX3BhbmVsKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFz
X09iamVjdCogZnJhbWUsIEV3a19GaWxlXwogICAgIHJldHVybiBjb25maXJtOwogfQogCi12b2lk
IGV3a192aWV3X3JlcGFpbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZh
c19Db29yZCB5LCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhlaWdodCkKLXsKLSAgICBE
QkcoImV3a1ZpZXc9JXAsIHJlZ2lvbj0lZCwlZCArICVkeCVkIiwgZXdrVmlldywgeCwgeSwgd2lk
dGgsIGhlaWdodCk7Ci0gICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFy
dERhdGEpOwotICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYp
OwotCi0gICAgX2V3a192aWV3X3JlcGFpbnRfYWRkKHByaXYsIHgsIHksIHdpZHRoLCBoZWlnaHQp
OwotICAgIF9ld2tfdmlld19zbWFydF9jaGFuZ2VkKHNtYXJ0RGF0YSk7Ci19Ci0KLXZvaWQgZXdr
X3ZpZXdfc2Nyb2xsKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikKLXsKLSAgICBBU1NFUlRfVU5VU0VEKHJlY3RUb1Njcm9sbCwgIXJlY3RU
b1Njcm9sbC5pc0VtcHR5KCkpOwotICAgIEFTU0VSVF9VTlVTRUQoZGVsdGEsIGRlbHRhLndpZHRo
KCkgfHwgZGVsdGEuaGVpZ2h0KCkpOwotCi0gICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihl
d2tWaWV3LCBzbWFydERhdGEpOwotICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFy
dERhdGEsIHByaXYpOwotCi0gICAgZXdrX3ZpZXdfbWFya19mb3Jfc3luYyhld2tWaWV3KTsKLX0K
LQogLyoqCiAgKiBAaW50ZXJuYWwKICAqCkBAIC00NjAzLDI2ICs0MzgwLDYgQEAgRWluYV9Cb29s
IGV3a192aWV3X3NldHRpbmdfdGlsZWRfYmFja2luZ19zdG9yZV9lbmFibGVkX2dldChFdmFzX09i
amVjdCogZXdrVmlldykKICNlbmRpZgogfQogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
Ci0vKioKLSAqIEBpbnRlcm5hbAotICogSW52YWxpZGF0ZSBnaXZlbiBhcmVhIHRvIHJlcGFpbnQu
IFRoZSBiYWNraW5nIHN0b3JlIHdpbGwgbWFyayB0aWxlcyB0aGF0IGFyZQotICogaW4gdGhlIGFy
ZWEgYXMgZGlydHkuCi0gKgotICogQHBhcmFtIGV3a1ZpZXcgVmlldy4KLSAqIEBwYXJhbSBhcmVh
IEFyZWEgdG8gaW52YWxpZGF0ZQotICovCi12b2lkIGV3a192aWV3X3RpbGVkX2JhY2tpbmdfc3Rv
cmVfaW52YWxpZGF0ZShFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgYXJlYSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihld2tWaWV3KTsKLSAg
ICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7Ci0gICAgRVdL
X1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7Ci0KLSAgICBpZiAocHJp
di0+cGFnZS0+bWFpbkZyYW1lKCkudGlsZWRCYWNraW5nU3RvcmUoKSkKLSAgICAgICAgcHJpdi0+
cGFnZS0+bWFpbkZyYW1lKCkudGlsZWRCYWNraW5nU3RvcmUoKS0+aW52YWxpZGF0ZShhcmVhKTsK
LX0KLSNlbmRpZgotCiBuYW1lc3BhY2UgRVdLUHJpdmF0ZSB7CiAKIFdlYkNvcmU6OlBhZ2UqIGNv
cmVQYWdlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlld19wcml2YXRlLmgKaW5kZXggMzVmNGIwMmI4ZjdiOGFmNTQ1OGJiMTQ0YTE0NzQ4ZWZh
ZjQ2NTMyMS4uMTM1MTg4MGVkOWZjZjJiYWIwZjI1YzkxYWJmOTQ4MGVkYjcxZTU4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAj
aW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIldpZGdldC5oIgotI2luY2x1ZGUgImV3a19wYWludF9jb250ZXh0X3ByaXZhdGUuaCIK
ICNpbmNsdWRlICJld2tfdmlldy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05NSw4ICs5
NCw2IEBAIHVpbnQ2NF90IGV3a192aWV3X2V4Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhCiAKIGJvb2wgZXdrX3ZpZXdfcnVuX29wZW5f
cGFuZWwoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSwgRXdrX0ZpbGVf
Q2hvb3NlciogZmlsZUNob29zZXIsIEVpbmFfTGlzdCoqIHNlbGVjdGVkRmlsZW5hbWVzKTsKIAot
dm9pZCBld2tfdmlld19yZXBhaW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgs
IEV2YXNfQ29vcmQgeSwgRXZhc19Db29yZCB3aWR0aCwgRXZhc19Db29yZCBoZWlnaHQpOwotdm9p
ZCBld2tfdmlld19zY3JvbGwoRXZhc19PYmplY3QqLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBk
ZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBjbGlwUmVjdCk7CiBXZWJDb3JlOjpQYWdlKiBld2tfdmlld19jb3JlX3BhZ2Vf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIAogdm9pZCBld2tfdmlld19mcmFtZV9y
ZWN0X2NoYW5nZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwpAQCAtMTE4LDI2ICsxMTUsMTUgQEAg
dm9pZCBld2tfdmlld19lZGl0b3JfY2xpZW50X3NlbGVjdGlvbl9jaGFuZ2VkKEV2YXNfT2JqZWN0
KiBld2tWaWV3KTsKIAogYm9vbCBld2tfdmlld19mb2N1c19jYW5fY3ljbGUoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIEV3a19Gb2N1c19EaXJlY3Rpb24gZGlyZWN0aW9uKTsKIAotRWluYV9Cb29sIGV3
a192aWV3X3BhaW50KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgRXdrX1BhaW50X0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBhcmVhKTsKLUVpbmFfQm9vbCBld2tf
dmlld19wYWludF9jb250ZW50cyhFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIEV3a19QYWlu
dF9Db250ZXh0KiBjb250ZXh0LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogYXJlYSk7Ci0KICNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIHZvaWQgZXdrX3ZpZXdfanNfd2luZG93X29iamVj
dF9jbGVhcihFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKTsKICNlbmRp
ZgogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi12b2lkIGV3a192aWV3X3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfaW52YWxpZGF0ZShFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgYXJlYSk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB2
b2lkIGV3a192aWV3X25lZWRfdG91Y2hfZXZlbnRzX3NldChFdmFzX09iamVjdCosIGJvb2wgbmVl
ZGVkKTsKIGJvb2wgZXdrX3ZpZXdfbmVlZF90b3VjaF9ldmVudHNfZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0Kik7CiAjZW5kaWYKIAotY29uc3QgRWluYV9SZWN0YW5nbGUqIGV3a192aWV3X3JlcGFpbnRz
X3BvcChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYsIHNpemVfdCogY291bnQpOwotCi12b2lk
IGV3a192aWV3X3JlcGFpbnRfYWRkKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiwgRXZhc19D
b29yZCB4LCBFdmFzX0Nvb3JkIHksIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29vcmQgaGVpZ2h0
KTsKLQogdm9pZCBld2tfdmlld19sYXlvdXRfaWZfbmVlZGVkX3JlY3Vyc2l2ZShFd2tfVmlld19Q
cml2YXRlX0RhdGEqIHByaXYpOwogCiBib29sIGV3a192aWV3X25hdmlnYXRpb25fcG9saWN5X2Rl
Y2lzaW9uKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfRnJhbWVfUmVzb3VyY2VfUmVxdWVzdCog
cmVxdWVzdCwgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>