<?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>100099</bug_id>
          
          <creation_ts>2012-10-23 03:05:51 -0700</creation_ts>
          <short_desc>[EFL][WK2] Make UI client a C++ class</short_desc>
          <delta_ts>2012-10-23 04:41: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>Unspecified</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>
          
          <blocked>99992</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>748443</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-23 03:05:51 -0700</bug_when>
    <thetext>As part of https://bugs.webkit.org/show_bug.cgi?id=99992, we should convert the page UI client to C++.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748455</commentid>
    <comment_count>1</comment_count>
      <attachid>170108</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-23 03:44:09 -0700</bug_when>
    <thetext>Created attachment 170108
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748469</commentid>
    <comment_count>2</comment_count>
      <attachid>170111</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-23 03:57:24 -0700</bug_when>
    <thetext>Created attachment 170111
patch v2

Fixed copyright headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748496</commentid>
    <comment_count>3</comment_count>
      <attachid>170111</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 04:41:51 -0700</bug_when>
    <thetext>Comment on attachment 170111
patch v2

Clearing flags on attachment: 170111

Committed r132203: &lt;http://trac.webkit.org/changeset/132203&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748497</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 04:41:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170108</attachid>
            <date>2012-10-23 03:44:09 -0700</date>
            <delta_ts>2012-10-23 03:57:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug100099</filename>
            <type>text/plain</type>
            <size>22261</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDFmNDQwOGZmYTNhYjZjZTUyZWY2ODA1NjAwNjVkNmZhMWU2YjY0MGIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE9jdCAyMyAxMzozNjo0NSAyMDEyICswMzAwCgogICAgYnVnMTAwMDk5CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDA0YTkyYTAuLmZiMjAwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMi0x
MC0yMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIE1ha2UgVUkgY2xpZW50IGEgQysrIGNsYXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAwOTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWRlIHBhZ2UgVUkgY2xp
ZW50IGEgQysrIGNsYXNzIGFuZCByZW1vdmVkIGl0IGZyb20gQVBJIGRpcmVjdG9yeS4KKworICAg
ICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3LmNwcDoKKyAgICAgICAgKEV3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChf
ZXdrX3ZpZXdfaW5pdGlhbGl6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfdWlfY2xpZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlld191aV9jbGllbnRfcHJpdmF0ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0Ojp0b1BhZ2VVSUNsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VV
SUNsaWVudEVmbDo6Y2xvc2VQYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZs
OjpjcmVhdGVOZXdQYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpydW5K
YXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6OnJ1bkph
dmFTY3JpcHRDb25maXJtKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpydW5K
YXZhU2NyaXB0UHJvbXB0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpzaG93
Q29sb3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6OmhpZGVDb2xv
clBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNsaWVudEVmbDo6ZXhjZWVkZWREYXRh
YmFzZVF1b3RhKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpmb2N1cyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNsaWVudEVmbDo6dW5mb2N1cyk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VVSUNsaWVudEVmbDo6dGFrZUZvY3VzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJ
Q2xpZW50RWZsOjpnZXRXaW5kb3dGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNsaWVu
dEVmbDo6c2V0V2luZG93RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6
OlBhZ2VVSUNsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRF
ZmwuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUGFnZVVJQ2xpZW50RWZs
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpjcmVhdGUpOgorCiAyMDEyLTEw
LTIzICBBbmRyYXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgogCiAgICAgICAgIFJl
bW92ZSBkZXZpY2VQaXhlbFJhdGlvIGZyb20gVmlld3BvcnRBdHRyaWJ1dGVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlCmluZGV4IDNiMDYyYWUuLmVjZDhjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCkBAIC03NCwxMSArNzQsMTEgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAg
ICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAKLSAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlld191aV9jbGllbnQuY3BwCiAKICAgICBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fp
cm8uY3BwCiAKICAgICBVSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcAorICAgIFVJ
UHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvUmVzb3Vy
Y2VMb2FkQ2xpZW50RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3Bw
CiAgICAgVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGU3Nzc1MTkuLjRhZWQzZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAi
UGFnZUNsaWVudEltcGwuaCIKICNpbmNsdWRlICJQYWdlTG9hZENsaWVudEVmbC5oIgorI2luY2x1
ZGUgIlBhZ2VVSUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIlJlZlB0ckVmbC5oIgogI2luY2x1ZGUg
IlJlc291cmNlTG9hZENsaWVudEVmbC5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgpAQCAtNTUs
NyArNTYsNiBAQAogI2luY2x1ZGUgImV3a192aWV3X2Zvcm1fY2xpZW50X3ByaXZhdGUuaCIKICNp
bmNsdWRlICJld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tf
dmlld19wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3ZpZXdfdWlfY2xpZW50X3ByaXZhdGUuaCIK
ICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWRqZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ3Vyc29yLmg+CkBAIC0xMTksNiArMTE5LDcgQEAgc3RydWN0IEV3a19WaWV3X1ByaXZh
dGVfRGF0YSB7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdlUHJveHk7CiAg
ICAgT3duUHRyPFBhZ2VMb2FkQ2xpZW50RWZsPiBwYWdlTG9hZENsaWVudDsKKyAgICBPd25QdHI8
UGFnZVVJQ2xpZW50RWZsPiBwYWdlVUlDbGllbnQ7CiAgICAgT3duUHRyPFJlc291cmNlTG9hZENs
aWVudEVmbD4gcmVzb3VyY2VMb2FkQ2xpZW50OwogCiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVy
bDsKQEAgLTgzMSwxMiArODMyLDEyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXpl
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBQYXNzUmVmUHRyPEV3a19Db250ZXh0PiBjCiAgICAgZXdr
X3ZpZXdfZmluZF9jbGllbnRfYXR0YWNoKHdrUGFnZSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdf
Zm9ybV9jbGllbnRfYXR0YWNoKHdrUGFnZSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfcG9saWN5
X2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKLSAgICBld2tfdmlld191aV9jbGllbnRf
YXR0YWNoKHdrUGFnZSwgZXdrVmlldyk7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IHByaXYtPnBhZ2VQcm94eS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+c2V0V2ViVmlldyhld2tWaWV3
KTsKICAgICBld2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVkX3NldChwcml2LT5zZXR0aW5n
cy5nZXQoKSwgdHJ1ZSk7CiAjZW5kaWYKICAgICBwcml2LT5wYWdlTG9hZENsaWVudCA9IFBhZ2VM
b2FkQ2xpZW50RWZsOjpjcmVhdGUoZXdrVmlldyk7CisgICAgcHJpdi0+cGFnZVVJQ2xpZW50ID0g
UGFnZVVJQ2xpZW50RWZsOjpjcmVhdGUoZXdrVmlldyk7CiAgICAgcHJpdi0+cmVzb3VyY2VMb2Fk
Q2xpZW50ID0gUmVzb3VyY2VMb2FkQ2xpZW50RWZsOjpjcmVhdGUoZXdrVmlldyk7CiAKICAgICAv
KiBMaXN0ZW4gZm9yIGZhdmljb24gY2hhbmdlcyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3VpX2NsaWVudC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBmN2JkOTIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50LmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDE0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLQotI2luY2x1ZGUgIldLU3RyaW5nLmgiCi0jaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5o
IgotI2luY2x1ZGUgImV3a192aWV3X3VpX2NsaWVudF9wcml2YXRlLmgiCi0jaW5jbHVkZSA8RWNv
cmVfRXZhcy5oPgotCi1zdGF0aWMgaW5saW5lIEV2YXNfT2JqZWN0KiB0b0V3a1ZpZXcoY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3Qq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNsb3Nl
UGFnZShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgZXdrX3ZpZXdf
cGFnZV9jbG9zZSh0b0V3a1ZpZXcoY2xpZW50SW5mbykpOwotfQotCi1zdGF0aWMgV0tQYWdlUmVm
IGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1VSTFJlcXVlc3RSZWYsIFdLRGljdGlvbmFyeVJl
ZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQotewotICAgICByZXR1cm4gZXdrX3ZpZXdfcGFnZV9jcmVhdGUodG9Fd2tWaWV3KGNs
aWVudEluZm8pKTsKLX0KLQotc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJl
ZiwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQotewotICAgIGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X2FsZXJ0KHRvRXdrVmlldyhjbGll
bnRJbmZvKSwgV0tFaW5hU2hhcmVkU3RyaW5nKGFsZXJ0VGV4dCkpOwotfQotCi1zdGF0aWMgYm9v
bCBydW5KYXZhU2NyaXB0Q29uZmlybShXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdL
RnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgcmV0dXJuIGV3a192aWV3
X3J1bl9qYXZhc2NyaXB0X2NvbmZpcm0odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBXS0VpbmFTaGFy
ZWRTdHJpbmcobWVzc2FnZSkpOwotfQotCi1zdGF0aWMgV0tTdHJpbmdSZWYgcnVuSmF2YVNjcmlw
dFByb21wdChXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlZmF1
bHRWYWx1ZSwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBXS0Vp
bmFTaGFyZWRTdHJpbmcgdmFsdWUgPSBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQodG9F
d2tWaWV3KGNsaWVudEluZm8pLCBXS0VpbmFTaGFyZWRTdHJpbmcobWVzc2FnZSksIFdLRWluYVNo
YXJlZFN0cmluZyhkZWZhdWx0VmFsdWUpKTsKLSAgICByZXR1cm4gdmFsdWUgPyBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyh2YWx1ZSkgOiAwOwotfQotCi0jaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCi1zdGF0aWMgdm9pZCBzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBXS1N0cmlu
Z1JlZiBpbml0aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5l
ciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9
IFdlYkNvcmU6OkNvbG9yKFdlYktpdDo6dG9XVEZTdHJpbmcoaW5pdGlhbENvbG9yKSk7Ci0gICAg
ZXdrX3ZpZXdfY29sb3JfcGlja2VyX3JlcXVlc3QodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBjb2xv
ci5yZWQoKSwgY29sb3IuZ3JlZW4oKSwgY29sb3IuYmx1ZSgpLCBjb2xvci5hbHBoYSgpLCBsaXN0
ZW5lcik7Ci19Ci0KLXN0YXRpYyB2b2lkIGhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgZXdrX3ZpZXdfY29sb3JfcGlja2VyX2Rpc21pc3Mo
dG9Fd2tWaWV3KGNsaWVudEluZm8pKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNRTF9EQVRB
QkFTRSkKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdL
UGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tTdHJpbmdSZWYgZGF0
YWJhc2VOYW1lLCBXS1N0cmluZ1JlZiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1
cnJlbnRRdW90YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRPcmlnaW5Vc2FnZSwgdW5zaWdu
ZWQgbG9uZyBsb25nIGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgZXhw
ZWN0ZWRVc2FnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICByZXR1cm4gZXdrX3Zp
ZXdfZGF0YWJhc2VfcXVvdGFfZXhjZWVkZWQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBXS0VpbmFT
aGFyZWRTdHJpbmcoZGF0YWJhc2VOYW1lKSwgV0tFaW5hU2hhcmVkU3RyaW5nKGRpc3BsYXlOYW1l
KSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdl
LCBleHBlY3RlZFVzYWdlKTsKLX0KLSNlbmRpZgotCi1zdGF0aWMgdm9pZCBmb2N1cyhXS1BhZ2VS
ZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgZXZhc19vYmplY3RfZm9jdXNfc2V0
KHRvRXdrVmlldyhjbGllbnRJbmZvKSwgdHJ1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHVuZm9jdXMo
V0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIGV2YXNfb2JqZWN0X2Zv
Y3VzX3NldCh0b0V3a1ZpZXcoY2xpZW50SW5mbyksIGZhbHNlKTsKLX0KLQotc3RhdGljIHZvaWQg
dGFrZUZvY3VzKFdLUGFnZVJlZiwgV0tGb2N1c0RpcmVjdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKLXsKLSAgICAvLyBGSVhNRTogdGhpcyBpcyBvbmx5IGEgcGFydGlhbCBpbXBsZW1lbnRh
dGlvbi4KLSAgICBldmFzX29iamVjdF9mb2N1c19zZXQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBm
YWxzZSk7Ci19Ci0KLXN0YXRpYyBXS1JlY3QgZ2V0V2luZG93RnJhbWUoV0tQYWdlUmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIGludCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwotCi0g
ICAgRWNvcmVfRXZhcyogZWUgPSBlY29yZV9ldmFzX2Vjb3JlX2V2YXNfZ2V0KGV2YXNfb2JqZWN0
X2V2YXNfZ2V0KHRvRXdrVmlldyhjbGllbnRJbmZvKSkpOwotICAgIGVjb3JlX2V2YXNfcmVxdWVz
dF9nZW9tZXRyeV9nZXQoZWUsICZ4LCAmeSwgJndpZHRoLCAmaGVpZ2h0KTsKLQotICAgIHJldHVy
biBXS1JlY3RNYWtlKHgsIHksIHdpZHRoLCBoZWlnaHQpOwotfQotCi1zdGF0aWMgdm9pZCBzZXRX
aW5kb3dGcmFtZShXS1BhZ2VSZWYsIFdLUmVjdCBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKLXsKLSAgICBFY29yZV9FdmFzKiBlZSA9IGVjb3JlX2V2YXNfZWNvcmVfZXZhc19nZXQoZXZh
c19vYmplY3RfZXZhc19nZXQodG9Fd2tWaWV3KGNsaWVudEluZm8pKSk7Ci0gICAgZWNvcmVfZXZh
c19tb3ZlX3Jlc2l6ZShlZSwgZnJhbWUub3JpZ2luLngsIGZyYW1lLm9yaWdpbi55LCBmcmFtZS5z
aXplLndpZHRoLCBmcmFtZS5zaXplLmhlaWdodCk7Ci19Ci0KLXZvaWQgZXdrX3ZpZXdfdWlfY2xp
ZW50X2F0dGFjaChXS1BhZ2VSZWYgcGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCi17Ci0g
ICAgV0tQYWdlVUlDbGllbnQgdWlDbGllbnQ7Ci0gICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6
ZW9mKFdLUGFnZVVJQ2xpZW50KSk7Ci0gICAgdWlDbGllbnQudmVyc2lvbiA9IGtXS1BhZ2VVSUNs
aWVudEN1cnJlbnRWZXJzaW9uOwotICAgIHVpQ2xpZW50LmNsaWVudEluZm8gPSBld2tWaWV3Owot
ICAgIHVpQ2xpZW50LmNsb3NlID0gY2xvc2VQYWdlOwotICAgIHVpQ2xpZW50LmNyZWF0ZU5ld1Bh
Z2UgPSBjcmVhdGVOZXdQYWdlOwotICAgIHVpQ2xpZW50LnJ1bkphdmFTY3JpcHRBbGVydCA9IHJ1
bkphdmFTY3JpcHRBbGVydDsKLSAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0Q29uZmlybSA9IHJ1
bkphdmFTY3JpcHRDb25maXJtOwotICAgIHVpQ2xpZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQgPSBy
dW5KYXZhU2NyaXB0UHJvbXB0OwotICAgIHVpQ2xpZW50LnRha2VGb2N1cyA9IHRha2VGb2N1czsK
LSAgICB1aUNsaWVudC5mb2N1cyA9IGZvY3VzOwotICAgIHVpQ2xpZW50LnVuZm9jdXMgPSB1bmZv
Y3VzOwotICAgIHVpQ2xpZW50LmdldFdpbmRvd0ZyYW1lID0gZ2V0V2luZG93RnJhbWU7Ci0gICAg
dWlDbGllbnQuc2V0V2luZG93RnJhbWUgPSBzZXRXaW5kb3dGcmFtZTsKLSNpZiBFTkFCTEUoU1FM
X0RBVEFCQVNFKQotICAgIHVpQ2xpZW50LmV4Y2VlZGVkRGF0YWJhc2VRdW90YSA9IGV4Y2VlZGVk
RGF0YWJhc2VRdW90YTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0g
ICAgdWlDbGllbnQuc2hvd0NvbG9yUGlja2VyID0gc2hvd0NvbG9yUGlja2VyOwotICAgIHVpQ2xp
ZW50LmhpZGVDb2xvclBpY2tlciA9IGhpZGVDb2xvclBpY2tlcjsKLSNlbmRpZgotCi0gICAgV0tQ
YWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VSZWYsICZ1aUNsaWVudCk7Ci19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld191aV9jbGllbnRfcHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50
X3ByaXZhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM5YzQ5Mi4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld191aV9jbGll
bnRfcHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIGV3a192aWV3X3VpX2NsaWVudF9wcml2YXRlX2gKLSNkZWZpbmUg
ZXdrX3ZpZXdfdWlfY2xpZW50X3ByaXZhdGVfaAotCi0jaW5jbHVkZSA8RXZhcy5oPgotI2luY2x1
ZGUgPFdlYktpdDIvV0tCYXNlLmg+Ci0KLXZvaWQgZXdrX3ZpZXdfdWlfY2xpZW50X2F0dGFjaChX
S1BhZ2VSZWYgcGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpOwotCi0jZW5kaWYgLy8gZXdr
X3ZpZXdfdWlfY2xpZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjA5ZTIxZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1BhZ2VVSUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSwxNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlVUlDbGllbnRFZmwuaCIK
KworI2luY2x1ZGUgIldLU3RyaW5nLmgiCisjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgor
I2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBp
bmxpbmUgUGFnZVVJQ2xpZW50RWZsKiB0b1BhZ2VVSUNsaWVudEVmbChjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxQYWdlVUlDbGllbnRFZmwqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Cit9CisKK3ZvaWQgUGFnZVVJQ2xpZW50RWZsOjpj
bG9zZVBhZ2UoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGV3a192
aWV3X3BhZ2VfY2xvc2UodG9QYWdlVUlDbGllbnRFZmwoY2xpZW50SW5mbyktPm1fdmlldyk7Cit9
CisKK1dLUGFnZVJlZiBQYWdlVUlDbGllbnRFZmw6OmNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBX
S1VSTFJlcXVlc3RSZWYsIFdLRGljdGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVu
dE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHJldHVybiBld2tf
dmlld19wYWdlX2NyZWF0ZSh0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3KTsK
K30KKwordm9pZCBQYWdlVUlDbGllbnRFZmw6OnJ1bkphdmFTY3JpcHRBbGVydChXS1BhZ2VSZWYs
IFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICBld2tfdmlld19ydW5famF2YXNjcmlwdF9hbGVydCh0b1BhZ2VVSUNsaWVudEVm
bChjbGllbnRJbmZvKS0+bV92aWV3LCBXS0VpbmFTaGFyZWRTdHJpbmcoYWxlcnRUZXh0KSk7Cit9
CisKK2Jvb2wgUGFnZVVJQ2xpZW50RWZsOjpydW5KYXZhU2NyaXB0Q29uZmlybShXS1BhZ2VSZWYs
IFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Cit7CisgICAgcmV0dXJuIGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X2NvbmZpcm0odG9QYWdlVUlD
bGllbnRFZmwoY2xpZW50SW5mbyktPm1fdmlldywgV0tFaW5hU2hhcmVkU3RyaW5nKG1lc3NhZ2Up
KTsKK30KKworV0tTdHJpbmdSZWYgUGFnZVVJQ2xpZW50RWZsOjpydW5KYXZhU2NyaXB0UHJvbXB0
KFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVmYXVsdFZhbHVl
LCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFdLRWluYVNoYXJl
ZFN0cmluZyB2YWx1ZSA9IGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X3Byb21wdCh0b1BhZ2VVSUNs
aWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3LCBXS0VpbmFTaGFyZWRTdHJpbmcobWVzc2FnZSks
IFdLRWluYVNoYXJlZFN0cmluZyhkZWZhdWx0VmFsdWUpKTsKKyAgICByZXR1cm4gdmFsdWUgPyBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyh2YWx1ZSkgOiAwOworfQorCisjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCit2b2lkIFBhZ2VVSUNsaWVudEVmbDo6c2hvd0NvbG9yUGlja2Vy
KFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0
TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgV2Vi
Q29yZTo6Q29sb3IgY29sb3IgPSBXZWJDb3JlOjpDb2xvcihXZWJLaXQ6OnRvV1RGU3RyaW5nKGlu
aXRpYWxDb2xvcikpOworICAgIGV3a192aWV3X2NvbG9yX3BpY2tlcl9yZXF1ZXN0KHRvUGFnZVVJ
Q2xpZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXcsIGNvbG9yLnJlZCgpLCBjb2xvci5ncmVlbigp
LCBjb2xvci5ibHVlKCksIGNvbG9yLmFscGhhKCksIGxpc3RlbmVyKTsKK30KKwordm9pZCBQYWdl
VUlDbGllbnRFZmw6OmhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCit7CisgICAgZXdrX3ZpZXdfY29sb3JfcGlja2VyX2Rpc21pc3ModG9QYWdlVUlDbGll
bnRFZmwoY2xpZW50SW5mbyktPm1fdmlldyk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShTUUxf
REFUQUJBU0UpCit1bnNpZ25lZCBsb25nIGxvbmcgUGFnZVVJQ2xpZW50RWZsOjpleGNlZWRlZERh
dGFiYXNlUXVvdGEoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBX
S1N0cmluZ1JlZiBkYXRhYmFzZU5hbWUsIFdLU3RyaW5nUmVmIGRpc3BsYXlOYW1lLCB1bnNpZ25l
ZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudE9yaWdp
blVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVuc2lnbmVk
IGxvbmcgbG9uZyBleHBlY3RlZFVzYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAg
IHJldHVybiBld2tfdmlld19kYXRhYmFzZV9xdW90YV9leGNlZWRlZCh0b1BhZ2VVSUNsaWVudEVm
bChjbGllbnRJbmZvKS0+bV92aWV3LCBXS0VpbmFTaGFyZWRTdHJpbmcoZGF0YWJhc2VOYW1lKSwg
V0tFaW5hU2hhcmVkU3RyaW5nKGRpc3BsYXlOYW1lKSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3Jp
Z2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKK30KKyNlbmRp
ZgorCit2b2lkIFBhZ2VVSUNsaWVudEVmbDo6Zm9jdXMoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldCh0b1BhZ2VVSUNsaWVudEVm
bChjbGllbnRJbmZvKS0+bV92aWV3LCB0cnVlKTsKK30KKwordm9pZCBQYWdlVUlDbGllbnRFZmw6
OnVuZm9jdXMoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGV2YXNf
b2JqZWN0X2ZvY3VzX3NldCh0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3LCBm
YWxzZSk7Cit9CisKK3ZvaWQgUGFnZVVJQ2xpZW50RWZsOjp0YWtlRm9jdXMoV0tQYWdlUmVmLCBX
S0ZvY3VzRGlyZWN0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIC8vIEZJWE1F
OiB0aGlzIGlzIG9ubHkgYSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uLgorICAgIGV2YXNfb2JqZWN0
X2ZvY3VzX3NldCh0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3LCBmYWxzZSk7
Cit9CisKK1dLUmVjdCBQYWdlVUlDbGllbnRFZmw6OmdldFdpbmRvd0ZyYW1lKFdLUGFnZVJlZiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBpbnQgeCwgeSwgd2lkdGgsIGhlaWdodDsK
KworICAgIEVjb3JlX0V2YXMqIGVlID0gZWNvcmVfZXZhc19lY29yZV9ldmFzX2dldChldmFzX29i
amVjdF9ldmFzX2dldCh0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3KSk7Cisg
ICAgZWNvcmVfZXZhc19yZXF1ZXN0X2dlb21ldHJ5X2dldChlZSwgJngsICZ5LCAmd2lkdGgsICZo
ZWlnaHQpOworCisgICAgcmV0dXJuIFdLUmVjdE1ha2UoeCwgeSwgd2lkdGgsIGhlaWdodCk7Cit9
CisKK3ZvaWQgUGFnZVVJQ2xpZW50RWZsOjpzZXRXaW5kb3dGcmFtZShXS1BhZ2VSZWYsIFdLUmVj
dCBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBFY29yZV9FdmFzKiBlZSA9
IGVjb3JlX2V2YXNfZWNvcmVfZXZhc19nZXQoZXZhc19vYmplY3RfZXZhc19nZXQodG9QYWdlVUlD
bGllbnRFZmwoY2xpZW50SW5mbyktPm1fdmlldykpOworICAgIGVjb3JlX2V2YXNfbW92ZV9yZXNp
emUoZWUsIGZyYW1lLm9yaWdpbi54LCBmcmFtZS5vcmlnaW4ueSwgZnJhbWUuc2l6ZS53aWR0aCwg
ZnJhbWUuc2l6ZS5oZWlnaHQpOworfQorCitQYWdlVUlDbGllbnRFZmw6OlBhZ2VVSUNsaWVudEVm
bChFdmFzX09iamVjdCogdmlldykKKyAgICA6IG1fdmlldyh2aWV3KQoreworICAgIFdLUGFnZVJl
ZiBwYWdlUmVmID0gZXdrX3ZpZXdfd2twYWdlX2dldChtX3ZpZXcpOworICAgIEFTU0VSVChwYWdl
UmVmKTsKKworICAgIFdLUGFnZVVJQ2xpZW50IHVpQ2xpZW50OworICAgIG1lbXNldCgmdWlDbGll
bnQsIDAsIHNpemVvZihXS1BhZ2VVSUNsaWVudCkpOworICAgIHVpQ2xpZW50LnZlcnNpb24gPSBr
V0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbjsKKyAgICB1aUNsaWVudC5jbGllbnRJbmZvID0g
dGhpczsKKyAgICB1aUNsaWVudC5jbG9zZSA9IGNsb3NlUGFnZTsKKyAgICB1aUNsaWVudC5jcmVh
dGVOZXdQYWdlID0gY3JlYXRlTmV3UGFnZTsKKyAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0QWxl
cnQgPSBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgdWlDbGllbnQucnVuSmF2YVNjcmlwdENvbmZp
cm0gPSBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0UHJv
bXB0ID0gcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICB1aUNsaWVudC50YWtlRm9jdXMgPSB0YWtl
Rm9jdXM7CisgICAgdWlDbGllbnQuZm9jdXMgPSBmb2N1czsKKyAgICB1aUNsaWVudC51bmZvY3Vz
ID0gdW5mb2N1czsKKyAgICB1aUNsaWVudC5nZXRXaW5kb3dGcmFtZSA9IGdldFdpbmRvd0ZyYW1l
OworICAgIHVpQ2xpZW50LnNldFdpbmRvd0ZyYW1lID0gc2V0V2luZG93RnJhbWU7CisjaWYgRU5B
QkxFKFNRTF9EQVRBQkFTRSkKKyAgICB1aUNsaWVudC5leGNlZWRlZERhdGFiYXNlUXVvdGEgPSBl
eGNlZWRlZERhdGFiYXNlUXVvdGE7CisjZW5kaWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQorICAgIHVpQ2xpZW50LnNob3dDb2xvclBpY2tlciA9IHNob3dDb2xvclBpY2tlcjsKKyAg
ICB1aUNsaWVudC5oaWRlQ29sb3JQaWNrZXIgPSBoaWRlQ29sb3JQaWNrZXI7CisjZW5kaWYKKwor
ICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChwYWdlUmVmLCAmdWlDbGllbnQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvUGFnZVVJQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VV
SUNsaWVudEVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNzZkZTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VVSUNs
aWVudEVmbC5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50
ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
UGFnZVVJQ2xpZW50RWZsX2gKKyNkZWZpbmUgUGFnZVVJQ2xpZW50RWZsX2gKKworI2luY2x1ZGUg
ImV3a192aWV3X3ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGFnZVVJQ2xpZW50RWZsIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc093blB0cjxQYWdlVUlDbGllbnRFZmw+IGNyZWF0ZShFdmFzX09iamVjdCogdmll
dykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFnZVVJQ2xpZW50RWZsKHZp
ZXcpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUGFnZVVJQ2xpZW50RWZsKEV2
YXNfT2JqZWN0KiB2aWV3KTsKKworICAgIHN0YXRpYyB2b2lkIGNsb3NlUGFnZShXS1BhZ2VSZWYs
IGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdl
UmVmLCBXS1VSTFJlcXVlc3RSZWYsIFdLRGljdGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywg
V0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgcnVuSmF2
YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYsIFdLRnJhbWVSZWYsIGNvbnN0IHZv
aWQqKTsKKyAgICBzdGF0aWMgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXS1BhZ2VSZWYsIFdL
U3RyaW5nUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIFdLU3RyaW5n
UmVmIHJ1bkphdmFTY3JpcHRQcm9tcHQoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiwgV0tTdHJpbmdS
ZWYsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKKyAgICBzdGF0aWMgdm9pZCBzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBXS1N0cmluZ1Jl
ZiBpbml0aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiwgY29uc3Qgdm9p
ZCopOworICAgIHN0YXRpYyB2b2lkIGhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNvbnN0IHZv
aWQqKTsKKyNlbmRpZgorI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCisgICAgc3RhdGljIHVuc2ln
bmVkIGxvbmcgbG9uZyBleGNlZWRlZERhdGFiYXNlUXVvdGEoV0tQYWdlUmVmLCBXS0ZyYW1lUmVm
LCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1N0cmluZ1JlZiwgV0tTdHJpbmdSZWYsIHVuc2lnbmVk
IGxvbmcgbG9uZyBjdXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9u
ZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcsIGNvbnN0IHZvaWQqKTsKKyNlbmRpZgorICAgIHN0
YXRpYyB2b2lkIGZvY3VzKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRpYyB2b2lk
IHVuZm9jdXMoV0tQYWdlUmVmLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgdGFrZUZv
Y3VzKFdLUGFnZVJlZiwgV0tGb2N1c0RpcmVjdGlvbiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRp
YyBXS1JlY3QgZ2V0V2luZG93RnJhbWUoV0tQYWdlUmVmLCBjb25zdCB2b2lkKik7CisgICAgc3Rh
dGljIHZvaWQgc2V0V2luZG93RnJhbWUoV0tQYWdlUmVmLCBXS1JlY3QsIGNvbnN0IHZvaWQqKTsK
KworICAgIEV2YXNfT2JqZWN0KiBtX3ZpZXc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFBhZ2VVSUNsaWVudEVmbF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170111</attachid>
            <date>2012-10-23 03:57:24 -0700</date>
            <delta_ts>2012-10-23 04:41:51 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug100099_v2</filename>
            <type>text/plain</type>
            <size>22439</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGFjMWZmYjI1ZDgzMTFhOTA4YTMwNjQzNmRhYTY2OWY0NjVmZjZjM2UKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE9jdCAyMyAxMzozNjo0NSAyMDEyICswMzAwCgogICAgYnVnMTAwMDk5CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDc1NzllMDIuLmRmM2RmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMi0x
MC0yMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIE1ha2UgVUkgY2xpZW50IGEgQysrIGNsYXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAwOTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWRlIHBhZ2UgVUkgY2xp
ZW50IGEgQysrIGNsYXNzIGFuZCByZW1vdmVkIGl0IGZyb20gQVBJIGRpcmVjdG9yeS4KKworICAg
ICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3LmNwcDoKKyAgICAgICAgKEV3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChf
ZXdrX3ZpZXdfaW5pdGlhbGl6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfdWlfY2xpZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlld191aV9jbGllbnRfcHJpdmF0ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvUGFnZVVJQ2xpZW50RWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoV2ViS2l0Ojp0b1BhZ2VVSUNsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VV
SUNsaWVudEVmbDo6Y2xvc2VQYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZs
OjpjcmVhdGVOZXdQYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpydW5K
YXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6OnJ1bkph
dmFTY3JpcHRDb25maXJtKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpydW5K
YXZhU2NyaXB0UHJvbXB0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpzaG93
Q29sb3JQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6OmhpZGVDb2xv
clBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNsaWVudEVmbDo6ZXhjZWVkZWREYXRh
YmFzZVF1b3RhKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpmb2N1cyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNsaWVudEVmbDo6dW5mb2N1cyk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VVSUNsaWVudEVmbDo6dGFrZUZvY3VzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJ
Q2xpZW50RWZsOjpnZXRXaW5kb3dGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VVSUNsaWVu
dEVmbDo6c2V0V2luZG93RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVUlDbGllbnRFZmw6
OlBhZ2VVSUNsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRF
ZmwuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUGFnZVVJQ2xpZW50RWZs
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVVJQ2xpZW50RWZsOjpjcmVhdGUpOgorCiAyMDEyLTEw
LTIzICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAg
ICAgICAgW0VGTF1bV0syXSBNYWtlIGEgZG93bmxvYWQgY2xpZW50IGEgQysrIGNsYXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDM5ZjgzOTMuLjEwZDM2MjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlCkBAIC03MywxMiArNzMsMTIgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VS
Q0VTCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZmluZF9jbGllbnQuY3BwCiAgICAg
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfZm9ybV9jbGllbnQuY3BwCiAgICAgVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAKLSAgICBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld191aV9jbGllbnQuY3BwCiAKICAgICBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0
b3JlQ2Fpcm8uY3BwCiAKICAgICBVSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAK
ICAgICBVSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcAorICAgIFVJUHJvY2Vzcy9l
ZmwvUGFnZVVJQ2xpZW50RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvUmVzb3VyY2VMb2FkQ2xp
ZW50RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3BwCiAgICAgVUlQ
cm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGU3Nzc1MTkuLjRhZWQzZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVu
dEltcGwuaCIKICNpbmNsdWRlICJQYWdlTG9hZENsaWVudEVmbC5oIgorI2luY2x1ZGUgIlBhZ2VV
SUNsaWVudEVmbC5oIgogI2luY2x1ZGUgIlJlZlB0ckVmbC5oIgogI2luY2x1ZGUgIlJlc291cmNl
TG9hZENsaWVudEVmbC5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgpAQCAtNTUsNyArNTYsNiBA
QAogI2luY2x1ZGUgImV3a192aWV3X2Zvcm1fY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJl
d2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2
YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3ZpZXdfdWlfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRl
IDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWRqZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vy
c29yLmg+CkBAIC0xMTksNiArMTE5LDcgQEAgc3RydWN0IEV3a19WaWV3X1ByaXZhdGVfRGF0YSB7
CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdlUHJveHk7CiAgICAgT3duUHRy
PFBhZ2VMb2FkQ2xpZW50RWZsPiBwYWdlTG9hZENsaWVudDsKKyAgICBPd25QdHI8UGFnZVVJQ2xp
ZW50RWZsPiBwYWdlVUlDbGllbnQ7CiAgICAgT3duUHRyPFJlc291cmNlTG9hZENsaWVudEVmbD4g
cmVzb3VyY2VMb2FkQ2xpZW50OwogCiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKQEAgLTgz
MSwxMiArODMyLDEyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXplKEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBQYXNzUmVmUHRyPEV3a19Db250ZXh0PiBjCiAgICAgZXdrX3ZpZXdfZmlu
ZF9jbGllbnRfYXR0YWNoKHdrUGFnZSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfZm9ybV9jbGll
bnRfYXR0YWNoKHdrUGFnZSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9h
dHRhY2god2tQYWdlLCBld2tWaWV3KTsKLSAgICBld2tfdmlld191aV9jbGllbnRfYXR0YWNoKHdr
UGFnZSwgZXdrVmlldyk7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIHByaXYtPnBh
Z2VQcm94eS0+ZnVsbFNjcmVlbk1hbmFnZXIoKS0+c2V0V2ViVmlldyhld2tWaWV3KTsKICAgICBl
d2tfc2V0dGluZ3NfZnVsbHNjcmVlbl9lbmFibGVkX3NldChwcml2LT5zZXR0aW5ncy5nZXQoKSwg
dHJ1ZSk7CiAjZW5kaWYKICAgICBwcml2LT5wYWdlTG9hZENsaWVudCA9IFBhZ2VMb2FkQ2xpZW50
RWZsOjpjcmVhdGUoZXdrVmlldyk7CisgICAgcHJpdi0+cGFnZVVJQ2xpZW50ID0gUGFnZVVJQ2xp
ZW50RWZsOjpjcmVhdGUoZXdrVmlldyk7CiAgICAgcHJpdi0+cmVzb3VyY2VMb2FkQ2xpZW50ID0g
UmVzb3VyY2VMb2FkQ2xpZW50RWZsOjpjcmVhdGUoZXdrVmlldyk7CiAKICAgICAvKiBMaXN0ZW4g
Zm9yIGZhdmljb24gY2hhbmdlcyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3X3VpX2NsaWVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDBmN2JkOTIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE0MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lu
Y2x1ZGUgIldLU3RyaW5nLmgiCi0jaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgotI2luY2x1
ZGUgImV3a192aWV3X3VpX2NsaWVudF9wcml2YXRlLmgiCi0jaW5jbHVkZSA8RWNvcmVfRXZhcy5o
PgotCi1zdGF0aWMgaW5saW5lIEV2YXNfT2JqZWN0KiB0b0V3a1ZpZXcoY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9j
YXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNsb3NlUGFnZShXS1Bh
Z2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgZXdrX3ZpZXdfcGFnZV9jbG9z
ZSh0b0V3a1ZpZXcoY2xpZW50SW5mbykpOwotfQotCi1zdGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU5l
d1BhZ2UoV0tQYWdlUmVmLCBXS1VSTFJlcXVlc3RSZWYsIFdLRGljdGlvbmFyeVJlZiwgV0tFdmVu
dE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQot
ewotICAgICByZXR1cm4gZXdrX3ZpZXdfcGFnZV9jcmVhdGUodG9Fd2tWaWV3KGNsaWVudEluZm8p
KTsKLX0KLQotc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiwgV0tTdHJp
bmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewot
ICAgIGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X2FsZXJ0KHRvRXdrVmlldyhjbGllbnRJbmZvKSwg
V0tFaW5hU2hhcmVkU3RyaW5nKGFsZXJ0VGV4dCkpOwotfQotCi1zdGF0aWMgYm9vbCBydW5KYXZh
U2NyaXB0Q29uZmlybShXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJhbWVSZWYs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgcmV0dXJuIGV3a192aWV3X3J1bl9qYXZh
c2NyaXB0X2NvbmZpcm0odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBXS0VpbmFTaGFyZWRTdHJpbmco
bWVzc2FnZSkpOwotfQotCi1zdGF0aWMgV0tTdHJpbmdSZWYgcnVuSmF2YVNjcmlwdFByb21wdChX
S1BhZ2VSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlZmF1bHRWYWx1ZSwg
V0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBXS0VpbmFTaGFyZWRT
dHJpbmcgdmFsdWUgPSBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQodG9Fd2tWaWV3KGNs
aWVudEluZm8pLCBXS0VpbmFTaGFyZWRTdHJpbmcobWVzc2FnZSksIFdLRWluYVNoYXJlZFN0cmlu
ZyhkZWZhdWx0VmFsdWUpKTsKLSAgICByZXR1cm4gdmFsdWUgPyBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZyh2YWx1ZSkgOiAwOwotfQotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
Ci1zdGF0aWMgdm9pZCBzaG93Q29sb3JQaWNrZXIoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiBpbml0
aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9IFdlYkNvcmU6
OkNvbG9yKFdlYktpdDo6dG9XVEZTdHJpbmcoaW5pdGlhbENvbG9yKSk7Ci0gICAgZXdrX3ZpZXdf
Y29sb3JfcGlja2VyX3JlcXVlc3QodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBjb2xvci5yZWQoKSwg
Y29sb3IuZ3JlZW4oKSwgY29sb3IuYmx1ZSgpLCBjb2xvci5hbHBoYSgpLCBsaXN0ZW5lcik7Ci19
Ci0KLXN0YXRpYyB2b2lkIGhpZGVDb2xvclBpY2tlcihXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCi17Ci0gICAgZXdrX3ZpZXdfY29sb3JfcGlja2VyX2Rpc21pc3ModG9Fd2tWaWV3
KGNsaWVudEluZm8pKTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLXN0
YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdLUGFnZVJlZiwg
V0tGcmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tTdHJpbmdSZWYgZGF0YWJhc2VOYW1l
LCBXS1N0cmluZ1JlZiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90
YSwgdW5zaWduZWQgbG9uZyBsb25nIGN1cnJlbnRPcmlnaW5Vc2FnZSwgdW5zaWduZWQgbG9uZyBs
b25nIGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgZXhwZWN0ZWRVc2Fn
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICByZXR1cm4gZXdrX3ZpZXdfZGF0YWJh
c2VfcXVvdGFfZXhjZWVkZWQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBXS0VpbmFTaGFyZWRTdHJp
bmcoZGF0YWJhc2VOYW1lKSwgV0tFaW5hU2hhcmVkU3RyaW5nKGRpc3BsYXlOYW1lKSwgY3VycmVu
dFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3Rl
ZFVzYWdlKTsKLX0KLSNlbmRpZgotCi1zdGF0aWMgdm9pZCBmb2N1cyhXS1BhZ2VSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KHRvRXdrVmll
dyhjbGllbnRJbmZvKSwgdHJ1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHVuZm9jdXMoV0tQYWdlUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldCh0
b0V3a1ZpZXcoY2xpZW50SW5mbyksIGZhbHNlKTsKLX0KLQotc3RhdGljIHZvaWQgdGFrZUZvY3Vz
KFdLUGFnZVJlZiwgV0tGb2N1c0RpcmVjdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsK
LSAgICAvLyBGSVhNRTogdGhpcyBpcyBvbmx5IGEgcGFydGlhbCBpbXBsZW1lbnRhdGlvbi4KLSAg
ICBldmFzX29iamVjdF9mb2N1c19zZXQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCBmYWxzZSk7Ci19
Ci0KLXN0YXRpYyBXS1JlY3QgZ2V0V2luZG93RnJhbWUoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQotewotICAgIGludCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwotCi0gICAgRWNvcmVf
RXZhcyogZWUgPSBlY29yZV9ldmFzX2Vjb3JlX2V2YXNfZ2V0KGV2YXNfb2JqZWN0X2V2YXNfZ2V0
KHRvRXdrVmlldyhjbGllbnRJbmZvKSkpOwotICAgIGVjb3JlX2V2YXNfcmVxdWVzdF9nZW9tZXRy
eV9nZXQoZWUsICZ4LCAmeSwgJndpZHRoLCAmaGVpZ2h0KTsKLQotICAgIHJldHVybiBXS1JlY3RN
YWtlKHgsIHksIHdpZHRoLCBoZWlnaHQpOwotfQotCi1zdGF0aWMgdm9pZCBzZXRXaW5kb3dGcmFt
ZShXS1BhZ2VSZWYsIFdLUmVjdCBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAg
ICBFY29yZV9FdmFzKiBlZSA9IGVjb3JlX2V2YXNfZWNvcmVfZXZhc19nZXQoZXZhc19vYmplY3Rf
ZXZhc19nZXQodG9Fd2tWaWV3KGNsaWVudEluZm8pKSk7Ci0gICAgZWNvcmVfZXZhc19tb3ZlX3Jl
c2l6ZShlZSwgZnJhbWUub3JpZ2luLngsIGZyYW1lLm9yaWdpbi55LCBmcmFtZS5zaXplLndpZHRo
LCBmcmFtZS5zaXplLmhlaWdodCk7Ci19Ci0KLXZvaWQgZXdrX3ZpZXdfdWlfY2xpZW50X2F0dGFj
aChXS1BhZ2VSZWYgcGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCi17Ci0gICAgV0tQYWdl
VUlDbGllbnQgdWlDbGllbnQ7Ci0gICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKFdLUGFn
ZVVJQ2xpZW50KSk7Ci0gICAgdWlDbGllbnQudmVyc2lvbiA9IGtXS1BhZ2VVSUNsaWVudEN1cnJl
bnRWZXJzaW9uOwotICAgIHVpQ2xpZW50LmNsaWVudEluZm8gPSBld2tWaWV3OwotICAgIHVpQ2xp
ZW50LmNsb3NlID0gY2xvc2VQYWdlOwotICAgIHVpQ2xpZW50LmNyZWF0ZU5ld1BhZ2UgPSBjcmVh
dGVOZXdQYWdlOwotICAgIHVpQ2xpZW50LnJ1bkphdmFTY3JpcHRBbGVydCA9IHJ1bkphdmFTY3Jp
cHRBbGVydDsKLSAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0Q29uZmlybSA9IHJ1bkphdmFTY3Jp
cHRDb25maXJtOwotICAgIHVpQ2xpZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQgPSBydW5KYXZhU2Ny
aXB0UHJvbXB0OwotICAgIHVpQ2xpZW50LnRha2VGb2N1cyA9IHRha2VGb2N1czsKLSAgICB1aUNs
aWVudC5mb2N1cyA9IGZvY3VzOwotICAgIHVpQ2xpZW50LnVuZm9jdXMgPSB1bmZvY3VzOwotICAg
IHVpQ2xpZW50LmdldFdpbmRvd0ZyYW1lID0gZ2V0V2luZG93RnJhbWU7Ci0gICAgdWlDbGllbnQu
c2V0V2luZG93RnJhbWUgPSBzZXRXaW5kb3dGcmFtZTsKLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNF
KQotICAgIHVpQ2xpZW50LmV4Y2VlZGVkRGF0YWJhc2VRdW90YSA9IGV4Y2VlZGVkRGF0YWJhc2VR
dW90YTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdWlDbGll
bnQuc2hvd0NvbG9yUGlja2VyID0gc2hvd0NvbG9yUGlja2VyOwotICAgIHVpQ2xpZW50LmhpZGVD
b2xvclBpY2tlciA9IGhpZGVDb2xvclBpY2tlcjsKLSNlbmRpZgotCi0gICAgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KHBhZ2VSZWYsICZ1aUNsaWVudCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld191aV9jbGllbnRfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50X3ByaXZhdGUu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM5YzQ5Mi4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld191aV9jbGllbnRfcHJpdmF0
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIGV3a192aWV3X3VpX2NsaWVudF9wcml2YXRlX2gKLSNkZWZpbmUgZXdrX3ZpZXdf
dWlfY2xpZW50X3ByaXZhdGVfaAotCi0jaW5jbHVkZSA8RXZhcy5oPgotI2luY2x1ZGUgPFdlYktp
dDIvV0tCYXNlLmg+Ci0KLXZvaWQgZXdrX3ZpZXdfdWlfY2xpZW50X2F0dGFjaChXS1BhZ2VSZWYg
cGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpOwotCi0jZW5kaWYgLy8gZXdrX3ZpZXdfdWlf
Y2xpZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9QYWdlVUlDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdl
VUlDbGllbnRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMzU3
MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VV
SUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VVSUNsaWVudEVmbC5oIgor
CisjaW5jbHVkZSAiV0tTdHJpbmcuaCIKKyNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCisj
aW5jbHVkZSA8RWNvcmVfRXZhcy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIGlu
bGluZSBQYWdlVUlDbGllbnRFZmwqIHRvUGFnZVVJQ2xpZW50RWZsKGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBhZ2VVSUNsaWVudEVmbCo+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKK30KKwordm9pZCBQYWdlVUlDbGllbnRFZmw6OmNs
b3NlUGFnZShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgZXdrX3Zp
ZXdfcGFnZV9jbG9zZSh0b1BhZ2VVSUNsaWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3KTsKK30K
KworV0tQYWdlUmVmIFBhZ2VVSUNsaWVudEVmbDo6Y3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYsIFdL
VVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50
TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgcmV0dXJuIGV3a192
aWV3X3BhZ2VfY3JlYXRlKHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXcpOwor
fQorCit2b2lkIFBhZ2VVSUNsaWVudEVmbDo6cnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiwg
V0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQoreworICAgIGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X2FsZXJ0KHRvUGFnZVVJQ2xpZW50RWZs
KGNsaWVudEluZm8pLT5tX3ZpZXcsIFdLRWluYVNoYXJlZFN0cmluZyhhbGVydFRleHQpKTsKK30K
KworYm9vbCBQYWdlVUlDbGllbnRFZmw6OnJ1bkphdmFTY3JpcHRDb25maXJtKFdLUGFnZVJlZiwg
V0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICByZXR1cm4gZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfY29uZmlybSh0b1BhZ2VVSUNs
aWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3LCBXS0VpbmFTaGFyZWRTdHJpbmcobWVzc2FnZSkp
OworfQorCitXS1N0cmluZ1JlZiBQYWdlVUlDbGllbnRFZmw6OnJ1bkphdmFTY3JpcHRQcm9tcHQo
V0tQYWdlUmVmLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZhdWx0VmFsdWUs
IFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgV0tFaW5hU2hhcmVk
U3RyaW5nIHZhbHVlID0gZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfcHJvbXB0KHRvUGFnZVVJQ2xp
ZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXcsIFdLRWluYVNoYXJlZFN0cmluZyhtZXNzYWdlKSwg
V0tFaW5hU2hhcmVkU3RyaW5nKGRlZmF1bHRWYWx1ZSkpOworICAgIHJldHVybiB2YWx1ZSA/IFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHZhbHVlKSA6IDA7Cit9CisKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKK3ZvaWQgUGFnZVVJQ2xpZW50RWZsOjpzaG93Q29sb3JQaWNrZXIo
V0tQYWdlUmVmLCBXS1N0cmluZ1JlZiBpbml0aWFsQ29sb3IsIFdLQ29sb3JQaWNrZXJSZXN1bHRM
aXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBXZWJD
b3JlOjpDb2xvciBjb2xvciA9IFdlYkNvcmU6OkNvbG9yKFdlYktpdDo6dG9XVEZTdHJpbmcoaW5p
dGlhbENvbG9yKSk7CisgICAgZXdrX3ZpZXdfY29sb3JfcGlja2VyX3JlcXVlc3QodG9QYWdlVUlD
bGllbnRFZmwoY2xpZW50SW5mbyktPm1fdmlldywgY29sb3IucmVkKCksIGNvbG9yLmdyZWVuKCks
IGNvbG9yLmJsdWUoKSwgY29sb3IuYWxwaGEoKSwgbGlzdGVuZXIpOworfQorCit2b2lkIFBhZ2VV
SUNsaWVudEVmbDo6aGlkZUNvbG9yUGlja2VyKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3sKKyAgICBld2tfdmlld19jb2xvcl9waWNrZXJfZGlzbWlzcyh0b1BhZ2VVSUNsaWVu
dEVmbChjbGllbnRJbmZvKS0+bV92aWV3KTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFNRTF9E
QVRBQkFTRSkKK3Vuc2lnbmVkIGxvbmcgbG9uZyBQYWdlVUlDbGllbnRFZmw6OmV4Y2VlZGVkRGF0
YWJhc2VRdW90YShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdL
U3RyaW5nUmVmIGRhdGFiYXNlTmFtZSwgV0tTdHJpbmdSZWYgZGlzcGxheU5hbWUsIHVuc2lnbmVk
IGxvbmcgbG9uZyBjdXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2lu
VXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdW5zaWduZWQg
bG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAg
cmV0dXJuIGV3a192aWV3X2RhdGFiYXNlX3F1b3RhX2V4Y2VlZGVkKHRvUGFnZVVJQ2xpZW50RWZs
KGNsaWVudEluZm8pLT5tX3ZpZXcsIFdLRWluYVNoYXJlZFN0cmluZyhkYXRhYmFzZU5hbWUpLCBX
S0VpbmFTaGFyZWRTdHJpbmcoZGlzcGxheU5hbWUpLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmln
aW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UpOworfQorI2VuZGlm
CisKK3ZvaWQgUGFnZVVJQ2xpZW50RWZsOjpmb2N1cyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCit7CisgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KHRvUGFnZVVJQ2xpZW50RWZs
KGNsaWVudEluZm8pLT5tX3ZpZXcsIHRydWUpOworfQorCit2b2lkIFBhZ2VVSUNsaWVudEVmbDo6
dW5mb2N1cyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgZXZhc19v
YmplY3RfZm9jdXNfc2V0KHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXcsIGZh
bHNlKTsKK30KKwordm9pZCBQYWdlVUlDbGllbnRFZmw6OnRha2VGb2N1cyhXS1BhZ2VSZWYsIFdL
Rm9jdXNEaXJlY3Rpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgLy8gRklYTUU6
IHRoaXMgaXMgb25seSBhIHBhcnRpYWwgaW1wbGVtZW50YXRpb24uCisgICAgZXZhc19vYmplY3Rf
Zm9jdXNfc2V0KHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXcsIGZhbHNlKTsK
K30KKworV0tSZWN0IFBhZ2VVSUNsaWVudEVmbDo6Z2V0V2luZG93RnJhbWUoV0tQYWdlUmVmLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGludCB4LCB5LCB3aWR0aCwgaGVpZ2h0Owor
CisgICAgRWNvcmVfRXZhcyogZWUgPSBlY29yZV9ldmFzX2Vjb3JlX2V2YXNfZ2V0KGV2YXNfb2Jq
ZWN0X2V2YXNfZ2V0KHRvUGFnZVVJQ2xpZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXcpKTsKKyAg
ICBlY29yZV9ldmFzX3JlcXVlc3RfZ2VvbWV0cnlfZ2V0KGVlLCAmeCwgJnksICZ3aWR0aCwgJmhl
aWdodCk7CisKKyAgICByZXR1cm4gV0tSZWN0TWFrZSh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKK30K
Kwordm9pZCBQYWdlVUlDbGllbnRFZmw6OnNldFdpbmRvd0ZyYW1lKFdLUGFnZVJlZiwgV0tSZWN0
IGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIEVjb3JlX0V2YXMqIGVlID0g
ZWNvcmVfZXZhc19lY29yZV9ldmFzX2dldChldmFzX29iamVjdF9ldmFzX2dldCh0b1BhZ2VVSUNs
aWVudEVmbChjbGllbnRJbmZvKS0+bV92aWV3KSk7CisgICAgZWNvcmVfZXZhc19tb3ZlX3Jlc2l6
ZShlZSwgZnJhbWUub3JpZ2luLngsIGZyYW1lLm9yaWdpbi55LCBmcmFtZS5zaXplLndpZHRoLCBm
cmFtZS5zaXplLmhlaWdodCk7Cit9CisKK1BhZ2VVSUNsaWVudEVmbDo6UGFnZVVJQ2xpZW50RWZs
KEV2YXNfT2JqZWN0KiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCit7CisgICAgV0tQYWdlUmVm
IHBhZ2VSZWYgPSBld2tfdmlld193a3BhZ2VfZ2V0KG1fdmlldyk7CisgICAgQVNTRVJUKHBhZ2VS
ZWYpOworCisgICAgV0tQYWdlVUlDbGllbnQgdWlDbGllbnQ7CisgICAgbWVtc2V0KCZ1aUNsaWVu
dCwgMCwgc2l6ZW9mKFdLUGFnZVVJQ2xpZW50KSk7CisgICAgdWlDbGllbnQudmVyc2lvbiA9IGtX
S1BhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uOworICAgIHVpQ2xpZW50LmNsaWVudEluZm8gPSB0
aGlzOworICAgIHVpQ2xpZW50LmNsb3NlID0gY2xvc2VQYWdlOworICAgIHVpQ2xpZW50LmNyZWF0
ZU5ld1BhZ2UgPSBjcmVhdGVOZXdQYWdlOworICAgIHVpQ2xpZW50LnJ1bkphdmFTY3JpcHRBbGVy
dCA9IHJ1bkphdmFTY3JpcHRBbGVydDsKKyAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0Q29uZmly
bSA9IHJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIHVpQ2xpZW50LnJ1bkphdmFTY3JpcHRQcm9t
cHQgPSBydW5KYXZhU2NyaXB0UHJvbXB0OworICAgIHVpQ2xpZW50LnRha2VGb2N1cyA9IHRha2VG
b2N1czsKKyAgICB1aUNsaWVudC5mb2N1cyA9IGZvY3VzOworICAgIHVpQ2xpZW50LnVuZm9jdXMg
PSB1bmZvY3VzOworICAgIHVpQ2xpZW50LmdldFdpbmRvd0ZyYW1lID0gZ2V0V2luZG93RnJhbWU7
CisgICAgdWlDbGllbnQuc2V0V2luZG93RnJhbWUgPSBzZXRXaW5kb3dGcmFtZTsKKyNpZiBFTkFC
TEUoU1FMX0RBVEFCQVNFKQorICAgIHVpQ2xpZW50LmV4Y2VlZGVkRGF0YWJhc2VRdW90YSA9IGV4
Y2VlZGVkRGF0YWJhc2VRdW90YTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1IpCisgICAgdWlDbGllbnQuc2hvd0NvbG9yUGlja2VyID0gc2hvd0NvbG9yUGlja2VyOworICAg
IHVpQ2xpZW50LmhpZGVDb2xvclBpY2tlciA9IGhpZGVDb2xvclBpY2tlcjsKKyNlbmRpZgorCisg
ICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VSZWYsICZ1aUNsaWVudCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9QYWdlVUlDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJ
Q2xpZW50RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQyYWRhNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xp
ZW50RWZsLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFBhZ2VVSUNsaWVudEVmbF9oCisjZGVmaW5lIFBhZ2VVSUNsaWVudEVmbF9oCisKKyNp
bmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBhZ2VVSUNsaWVudEVmbCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZVVJQ2xpZW50RWZsPiBjcmVhdGUoRXZhc19PYmpl
Y3QqIHZpZXcpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VVSUNsaWVu
dEVmbCh2aWV3KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFBhZ2VVSUNsaWVu
dEVmbChFdmFzX09iamVjdCogdmlldyk7CisKKyAgICBzdGF0aWMgdm9pZCBjbG9zZVBhZ2UoV0tQ
YWdlUmVmLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVOZXdQYWdl
KFdLUGFnZVJlZiwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdLRXZlbnRNb2Rp
ZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRpYyB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydChXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmLCBXS0ZyYW1lUmVmLCBj
b25zdCB2b2lkKik7CisgICAgc3RhdGljIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV0tQYWdl
UmVmLCBXS1N0cmluZ1JlZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRpYyBX
S1N0cmluZ1JlZiBydW5KYXZhU2NyaXB0UHJvbXB0KFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYsIFdL
U3RyaW5nUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCisgICAgc3RhdGljIHZvaWQgc2hvd0NvbG9yUGlja2VyKFdLUGFnZVJlZiwgV0tT
dHJpbmdSZWYgaW5pdGlhbENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYsIGNv
bnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBoaWRlQ29sb3JQaWNrZXIoV0tQYWdlUmVmLCBj
b25zdCB2b2lkKik7CisjZW5kaWYKKyNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQorICAgIHN0YXRp
YyB1bnNpZ25lZCBsb25nIGxvbmcgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tTdHJpbmdSZWYsIFdLU3RyaW5nUmVmLCB1
bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2ln
bmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nLCBjb25zdCB2b2lkKik7CisjZW5kaWYK
KyAgICBzdGF0aWMgdm9pZCBmb2N1cyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0
aWMgdm9pZCB1bmZvY3VzKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRpYyB2b2lk
IHRha2VGb2N1cyhXS1BhZ2VSZWYsIFdLRm9jdXNEaXJlY3Rpb24sIGNvbnN0IHZvaWQqKTsKKyAg
ICBzdGF0aWMgV0tSZWN0IGdldFdpbmRvd0ZyYW1lKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCopOwor
ICAgIHN0YXRpYyB2b2lkIHNldFdpbmRvd0ZyYW1lKFdLUGFnZVJlZiwgV0tSZWN0LCBjb25zdCB2
b2lkKik7CisKKyAgICBFdmFzX09iamVjdCogbV92aWV3OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBQYWdlVUlDbGllbnRFZmxfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>