<?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>204285</bug_id>
          
          <creation_ts>2019-11-17 07:43:29 -0800</creation_ts>
          <short_desc>[LFC] Move layout state initialization out of LayoutContext</short_desc>
          <delta_ts>2019-11-17 14:30:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1590944</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-17 07:43:29 -0800</bug_when>
    <thetext>and make it look more like the final setup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590945</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-17 07:44:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/57262858&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590946</commentid>
    <comment_count>2</comment_count>
      <attachid>383721</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-17 07:48:01 -0800</bug_when>
    <thetext>Created attachment 383721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590954</commentid>
    <comment_count>3</comment_count>
      <attachid>383722</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-17 13:03:39 -0800</bug_when>
    <thetext>Created attachment 383722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590955</commentid>
    <comment_count>4</comment_count>
      <attachid>383722</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-17 14:30:26 -0800</bug_when>
    <thetext>Comment on attachment 383722
Patch

Clearing flags on attachment: 383722

Committed r252534: &lt;https://trac.webkit.org/changeset/252534&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590956</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-17 14:30:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383721</attachid>
            <date>2019-11-17 07:48:01 -0800</date>
            <delta_ts>2019-11-17 13:03:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204285-20191117074742.patch</filename>
            <type>text/plain</type>
            <size>20185</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFjODNkMjc0N2Y4MWY4
ZjNjNDg1MmUwMWYxMjE0ZWFmYTdiNzNlZS4uZjBhZWE2NzI3YmUwYjg0NzIzNmI0OTAxYzRmZGRh
OGUwOTcwZTVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTExLTE3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gTW92ZSBsYXlvdXQg
c3RhdGUgaW5pdGlhbGl6YXRpb24gb3V0IG9mIExheW91dENvbnRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDI4NQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTcyNjI4NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBsYXlvdXQgaW5pdGlhbGl6YXRpb24gdG8gRnJhbWVWaWV3TGF5b3V0
Q29udGV4dDo6bGF5b3V0VXNpbmdGb3JtYXR0aW5nQ29udGV4dC4gVGhpcyBpcyBub3cgcHJldHR5
IGNsb3NlIHRvCisgICAgICAgIHdoYXQgdGhlIGZpbmFsIGluaXRpYWxpemF0aW9uIHdpbGwgbG9v
ayBsaWtlLgorCisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0Ojppbml0aWFsaXplTGF5b3V0U3RhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpydW5MYXlvdXQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpydW5MYXlvdXRBbmRWZXJp
ZnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0Ojpj
cmVhdGVMYXlvdXRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRl
eHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0U3Rh
dGUpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L0xh
eW91dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpyb290
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OnJvb3RSZW5k
ZXJlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpzZXRR
dWlya3NNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmxheW91
dEJveEZvclJlbmRlcmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxh
eW91dFRyZWVDb250ZW50OjpMYXlvdXRUcmVlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlRyZWVCdWlsZGVyOjpidWlsZExheW91dFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpUcmVlQnVpbGRlcjo6YnVpbGRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OnByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMpOgorICAgICAgICAqIGxheW91dC9s
YXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkxheW91dFRyZWVDb250ZW50Ojpyb290TGF5b3V0Qm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGF5b3V0VHJlZUNvbnRlbnQ6OnJvb3RMYXlvdXRCb3gpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRUcmVlQ29udGVudDo6cm9vdFJlbmRlcmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0VHJlZUNvbnRlbnQ6OmxheW91dEJveEZv
clJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0VHJlZUNvbnRlbnQ6
OmFkZExheW91dEJveEZvclJlbmRlcmVyKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6
bGF5b3V0VXNpbmdGb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXdMYXlvdXRDb250ZXh0OjppbnZhbGlkYXRlTGF5b3V0VHJlZUNvbnRlbnQpOgorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0VHJlZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVyZXJTdHlsZSk6CisKIDIwMTktMTEtMTcg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBQYXNzIGlu
IHRoZSBjb250ZW50IGFyZWEgdG8gTGF5b3V0Q29udGV4dDo6bGF5b3V0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKaW5kZXggMzkzNzZmZjRkNTA1MmExNTQxNzZlZWJmODc5
ZTFmZmFhMDEyYzNlYS4uMmUwMmJkNzc1NzEwYTQ0ZTcwMWY1MTA0MWYwZTc5ODJmMDZjZGEzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAtMTA5LDQzICsxMDks
NiBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ0NvbnRleHQ+IExheW91dENvbnRleHQ6OmNy
ZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0CiAgICAgQ1JBU0goKTsKIH0KIAotc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZUxheW91dFN0YXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3Qg
UmVuZGVyVmlldyYgcmVuZGVyVmlldykKLXsKLSAgICBhdXRvIHF1aXJrc01vZGUgPSBbJl0gewot
ICAgICAgICBhdXRvJiBkb2N1bWVudCA9IHJlbmRlclZpZXcuZG9jdW1lbnQoKTsKLSAgICAgICAg
aWYgKGRvY3VtZW50LmluTGltaXRlZFF1aXJrc01vZGUoKSkKLSAgICAgICAgICAgIHJldHVybiBM
YXlvdXRTdGF0ZTo6UXVpcmtzTW9kZTo6TGltaXRlZDsKLSAgICAgICAgaWYgKGRvY3VtZW50Lmlu
UXVpcmtzTW9kZSgpKQotICAgICAgICAgICAgcmV0dXJuIExheW91dFN0YXRlOjpRdWlya3NNb2Rl
OjpZZXM7Ci0gICAgICAgIHJldHVybiBMYXlvdXRTdGF0ZTo6UXVpcmtzTW9kZTo6Tm87Ci0gICAg
fTsKLSAgICBsYXlvdXRTdGF0ZS5zZXRRdWlya3NNb2RlKHF1aXJrc01vZGUoKSk7Ci19Ci0KLXZv
aWQgTGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RDb250ZW50
Qm94U2l6ZSwgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQotewotICAgIGF1dG8gaW52YWxpZGF0
aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25TdGF0ZSB7IH07Ci0gICAgYXV0byBpbnZhbGlkYXRpb25D
b250ZXh0ID0gSW52YWxpZGF0aW9uQ29udGV4dCB7IGludmFsaWRhdGlvblN0YXRlIH07Ci0gICAg
aW52YWxpZGF0aW9uQ29udGV4dC5zdHlsZUNoYW5nZWQoKmxheW91dFN0YXRlLnJvb3QoKS5maXJz
dENoaWxkKCksIFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0KTsKLQotICAgIExheW91dENvbnRleHQo
bGF5b3V0U3RhdGUpLmxheW91dChyb290Q29udGVudEJveFNpemUsIGludmFsaWRhdGlvblN0YXRl
KTsKLX0KLQotdm9pZCBMYXlvdXRDb250ZXh0OjpydW5MYXlvdXRBbmRWZXJpZnkoY29uc3QgTGF5
b3V0U2l6ZSYgcm9vdENvbnRlbnRCb3hTaXplLCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCi17
Ci0gICAgcnVuTGF5b3V0KHJvb3RDb250ZW50Qm94U2l6ZSwgbGF5b3V0U3RhdGUpOwotI2lmbmRl
ZiBOREVCVUcKLSAgICBMYXlvdXRDb250ZXh0Ojp2ZXJpZnlBbmRPdXRwdXRNaXNtYXRjaGluZ0xh
eW91dFRyZWUobGF5b3V0U3RhdGUpOwotI2VuZGlmCi19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxMYXlv
dXRTdGF0ZT4gTGF5b3V0Q29udGV4dDo6Y3JlYXRlTGF5b3V0U3RhdGUoY29uc3QgUmVuZGVyVmll
dyYgcmVuZGVyVmlldykKLXsKLSAgICBhdXRvIGxheW91dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlv
dXRTdGF0ZT4oVHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0VHJlZShyZW5kZXJWaWV3KSk7Ci0gICAg
aW5pdGlhbGl6ZUxheW91dFN0YXRlKCpsYXlvdXRTdGF0ZSwgcmVuZGVyVmlldyk7Ci0gICAgcmV0
dXJuIGxheW91dFN0YXRlOwotfQotCiB2b2lkIExheW91dENvbnRleHQ6OnBhaW50KGNvbnN0IExh
eW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QpCiB7CiAgICAgRGlzcGxheTo6UGFpbnRlcjo6cGFpbnQobGF5b3V0
U3RhdGUsIGNvbnRleHQsIGRpcnR5UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRl
eHQuaAppbmRleCA3NGQzZDEwMDc4NWM2MzlhNjY5NDAzYTgyMjViYThlNWJlZWUwZTMyLi4xYjli
ZTQwZWFlMmNmODcyMTUwOTU5NzAzZjk1MWIxYTE0ZTc0OTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRDb250ZXh0LmgKQEAgLTQ4LDI5ICs0OCwyNCBAQCBjbGFzcyBGb3JtYXR0aW5nQ29u
dGV4dDsKIC8vIE5vdGUsIHdoaWxlIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2sgaXMgZW50
cnkgcG9pbnQgZm9yIHRoZSBpbml0aWFsIGxheW91dCwgaXQgZG9lcyBub3QgbmVjZXNzYXJpbHkg
bmVlZCB0byBiZSB0aGUgZW50cnkgcG9pbnQgb2YgYW55CiAvLyBzdWJzZXF1ZW50IGxheW91dHMg
KHN1YnRyZWUgbGF5b3V0KS4gQSBub24taW5pdGlhbCwgc3VidHJlZSBsYXlvdXQgY291bGQgYmUg
aW5pdGlhdGVkIG9uIG11bHRpcGxlIGZvcm1hdHRpbmcgY29udGV4dHMuCiAvLyBFYWNoIGZvcm1h
dHRpbmcgY29udGV4dCBoYXMgYW4gZW50cnkgcG9pbnQgZm9yIGxheW91dCwgd2hpY2ggcG90ZW5p
dGFsbHkgbWVhbnMgbXVsdGlwbGUgZW50cnkgcG9pbnRzIHBlciBsYXlvdXQgZnJhbWUuCi0vLyBM
YXlvdXRTdGF0ZSBob2xkcyB0aGUgZm9ybWF0dGluZyBzdGF0ZXMuIFRoZXkgY2FjaGUgZm9ybWF0
dGluZyBjb250ZXh0IHNwZWNpZmljIGRhdGEgdG8gZW5hYmxlIHBlcmZvcm1hbnQgaW5jcmVtZW50
YWwgbGF5b3V0cy4KIGNsYXNzIExheW91dENvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoTGF5b3V0Q29udGV4dCk7CiBwdWJsaWM6Ci0gICAgLy8gRklYTUU6IFRoZXNlIGFyZSB0
ZW1wb3JhcnkgZW50cnkgcG9pbnRzIGZvciBMRkMgbGF5b3V0LgotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8TGF5b3V0U3RhdGU+IGNyZWF0ZUxheW91dFN0YXRlKGNvbnN0IFJlbmRlclZpZXcm
KTsKLSAgICBzdGF0aWMgdm9pZCBydW5MYXlvdXRBbmRWZXJpZnkoY29uc3QgTGF5b3V0U2l6ZSYg
cm9vdENvbnRlbnRCb3hTaXplLCBMYXlvdXRTdGF0ZSYpOwotICAgIHN0YXRpYyB2b2lkIHBhaW50
KGNvbnN0IExheW91dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgZGly
dHlSZWN0KTsKLQogICAgIExheW91dENvbnRleHQoTGF5b3V0U3RhdGUmKTsKICAgICB2b2lkIGxh
eW91dChjb25zdCBMYXlvdXRTaXplJiByb290Q29udGVudEJveFNpemUsIEludmFsaWRhdGlvblN0
YXRlJik7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRpbmdDb250ZXh0PiBj
cmVhdGVGb3JtYXR0aW5nQ29udGV4dChjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0
Um9vdCwgTGF5b3V0U3RhdGUmKTsKIAotcHJpdmF0ZToKLSAgICB2b2lkIGxheW91dEZvcm1hdHRp
bmdDb250ZXh0U3VidHJlZShjb25zdCBDb250YWluZXImLCBJbnZhbGlkYXRpb25TdGF0ZSYpOwot
ICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fbGF5b3V0U3RhdGU7IH0K
LQotICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkKKyAgICAvLyBGSVhNRTogVGhpcyBp
cyB0ZW1wb3JhcnkuIAorICAgIHN0YXRpYyB2b2lkIHBhaW50KGNvbnN0IExheW91dFN0YXRlJiwg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KTsKICNpZm5kZWYgTkRF
QlVHCisgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seQogICAgIHN0YXRpYyB2b2lkIHZl
cmlmeUFuZE91dHB1dE1pc21hdGNoaW5nTGF5b3V0VHJlZShjb25zdCBMYXlvdXRTdGF0ZSYpOwog
I2VuZGlmCi0gICAgc3RhdGljIHZvaWQgcnVuTGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RD
b250ZW50Qm94U2l6ZSwgTGF5b3V0U3RhdGUmKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGxheW91
dEZvcm1hdHRpbmdDb250ZXh0U3VidHJlZShjb25zdCBDb250YWluZXImLCBJbnZhbGlkYXRpb25T
dGF0ZSYpOworICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fbGF5b3V0
U3RhdGU7IH0KIAogICAgIExheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDRlY2E5ZTllOTM5YmE0MzRjZWE1MGE2OGI3
NGVmZTQ1MWQ2NjQ5MDcuLjM2NmM2NmQ0MWE2ODQ1YjA4MDg5OTEzMzEzNmJhYWQzODZjMDcyMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcApAQCAtMzgsMTEgKzM4LDIxIEBA
IG5hbWVzcGFjZSBMYXlvdXQgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGF5b3V0
U3RhdGUpOwogCi1MYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0VHJlZUNvbnRlbnQmJiBs
YXlvdXRUcmVlQ29udGVudCkKLSAgICA6IG1fbGF5b3V0VHJlZUNvbnRlbnQoV1RGTW92ZShsYXlv
dXRUcmVlQ29udGVudCkpCitMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoY29uc3QgTGF5b3V0VHJl
ZUNvbnRlbnQmIGxheW91dFRyZWVDb250ZW50KQorICAgIDogbV9sYXlvdXRUcmVlQ29udGVudCht
YWtlV2Vha1B0cihsYXlvdXRUcmVlQ29udGVudCkpCiB7CiAgICAgLy8gSXQgbWFrZXMgYWJzb2x1
dGVseSBubyBzZW5zZSB0byBjb25zdHJ1Y3QgYSBkZWRpY2F0ZWQgbGF5b3V0IHN0YXRlIGZvciBh
IG5vbi1mb3JtYXR0aW5nIGNvbnRleHQgcm9vdCAobGF5b3V0IHdvdWxkIGJlIGEgbm8tb3ApLgot
ICAgIEFTU0VSVChtX2xheW91dFRyZWVDb250ZW50LnJvb3RMYXlvdXRCb3gtPmVzdGFibGlzaGVz
Rm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgQVNTRVJUKG1fbGF5b3V0VHJlZUNvbnRlbnQtPnJv
b3RMYXlvdXRCb3goKS5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOworCisgICAgYXV0
byBxdWlya3NNb2RlID0gWyZdIHsKKyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBtX2xheW91dFRy
ZWVDb250ZW50LT5yb290UmVuZGVyZXIoKS5kb2N1bWVudCgpOworICAgICAgICBpZiAoZG9jdW1l
bnQuaW5MaW1pdGVkUXVpcmtzTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIExheW91dFN0YXRl
OjpRdWlya3NNb2RlOjpMaW1pdGVkOworICAgICAgICBpZiAoZG9jdW1lbnQuaW5RdWlya3NNb2Rl
KCkpCisgICAgICAgICAgICByZXR1cm4gTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6OlllczsKKyAg
ICAgICAgcmV0dXJuIExheW91dFN0YXRlOjpRdWlya3NNb2RlOjpObzsKKyAgICB9OworICAgIHNl
dFF1aXJrc01vZGUocXVpcmtzTW9kZSgpKTsKIH0KIAogTGF5b3V0U3RhdGU6On5MYXlvdXRTdGF0
ZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKaW5kZXggMGQ2NzY1
OWQzYWU4NDI5ODA4NDcxMzM3MjcwZGQzN2FkMGY3Zjk2NC4uN2RhMDgzYzk3MGZiNDVmNGI5ZTg3
ZjA3ODRhYWY2MGQxZTUyMjZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xh
eW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKQEAg
LTQ5LDcgKzQ5LDcgQEAgY2xhc3MgRm9ybWF0dGluZ1N0YXRlOwogY2xhc3MgTGF5b3V0U3RhdGUg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTGF5b3V0U3RhdGUpOwogcHVibGljOgotICAg
IExheW91dFN0YXRlKExheW91dFRyZWVDb250ZW50JiYpOworICAgIExheW91dFN0YXRlKGNvbnN0
IExheW91dFRyZWVDb250ZW50Jik7CiAgICAgfkxheW91dFN0YXRlKCk7CiAKICAgICBGb3JtYXR0
aW5nU3RhdGUmIGNyZWF0ZUZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdSb290SWZOZWVkZWQo
Y29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwpAQCAtNjcsMTggKzY3LDE4
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0Rpc3BsYXlCb3goY29uc3QgQm94JiBsYXlvdXRCb3gp
IGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0VG9EaXNwbGF5Qm94LmNvbnRhaW5zKCZsYXlvdXRCb3gp
OyB9CiAKICAgICBlbnVtIGNsYXNzIFF1aXJrc01vZGUgeyBObywgTGltaXRlZCwgWWVzIH07Ci0g
ICAgdm9pZCBzZXRRdWlya3NNb2RlKFF1aXJrc01vZGUgcXVpcmtzTW9kZSkgeyBtX3F1aXJrc01v
ZGUgPSBxdWlya3NNb2RlOyB9CiAgICAgYm9vbCBpblF1aXJrc01vZGUoKSBjb25zdCB7IHJldHVy
biBtX3F1aXJrc01vZGUgPT0gUXVpcmtzTW9kZTo6WWVzOyB9CiAgICAgYm9vbCBpbkxpbWl0ZWRR
dWlya3NNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9xdWlya3NNb2RlID09IFF1aXJrc01vZGU6Okxp
bWl0ZWQ7IH0KICAgICBib29sIGluTm9RdWlya3NNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9xdWly
a3NNb2RlID09IFF1aXJrc01vZGU6Ok5vOyB9CiAKLSAgICBjb25zdCBDb250YWluZXImIHJvb3Qo
KSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRUcmVlQ29udGVudC5yb290TGF5b3V0Qm94OyB9Cisg
ICAgY29uc3QgQ29udGFpbmVyJiByb290KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRUcmVlQ29u
dGVudC0+cm9vdExheW91dEJveCgpOyB9CiAjaWZuZGVmIE5ERUJVRwotICAgIGNvbnN0IFJlbmRl
ckJveCYgcm9vdFJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRUcmVlQ29udGVudC5y
b290UmVuZGVyZXI7IH0KKyAgICBjb25zdCBSZW5kZXJCb3gmIHJvb3RSZW5kZXJlcigpIGNvbnN0
IHsgcmV0dXJuIG1fbGF5b3V0VHJlZUNvbnRlbnQtPnJvb3RSZW5kZXJlcigpOyB9CiAjZW5kaWYK
LSAgICBCb3gqIGxheW91dEJveEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0VHJlZUNvbnRlbnQucmVuZGVyT2JqZWN0VG9MYXlv
dXRCb3guZ2V0KCZyZW5kZXJlcik7IH0KIAogcHJpdmF0ZToKKyAgICB2b2lkIHNldFF1aXJrc01v
ZGUoUXVpcmtzTW9kZSBxdWlya3NNb2RlKSB7IG1fcXVpcmtzTW9kZSA9IHF1aXJrc01vZGU7IH0K
KwogICAgIEhhc2hNYXA8Y29uc3QgQ29udGFpbmVyKiwgc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRp
bmdTdGF0ZT4+IG1fZm9ybWF0dGluZ1N0YXRlczsKICNpZm5kZWYgTkRFQlVHCiAgICAgSGFzaFNl
dDxjb25zdCBGb3JtYXR0aW5nQ29udGV4dCo+IG1fZm9ybWF0dGluZ0NvbnRleHRMaXN0OwpAQCAt
ODYsOCArODYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8Y29uc3QgQm94Kiwgc3RkOjp1bmlx
dWVfcHRyPERpc3BsYXk6OkJveD4+IG1fbGF5b3V0VG9EaXNwbGF5Qm94OwogICAgIFF1aXJrc01v
ZGUgbV9xdWlya3NNb2RlIHsgUXVpcmtzTW9kZTo6Tm8gfTsKIAotICAgIC8vIEZJWE1FOiBGaWd1
cmUgb3V0IHRoZSBvd25lcnNoaXAgbW9kZWwgZm9yIHRoZSBsYXlvdXQgdHJlZS4KLSAgICBMYXlv
dXRUcmVlQ29udGVudCBtX2xheW91dFRyZWVDb250ZW50OworICAgIFdlYWtQdHI8Y29uc3QgTGF5
b3V0VHJlZUNvbnRlbnQ+IG1fbGF5b3V0VHJlZUNvbnRlbnQ7CiB9OwogCiAjaWZuZGVmIE5ERUJV
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuY3BwCmluZGV4IGRlMzFjMGQ5MTkwOGMxNzdkMDcyYzdlYTQxNTAwNGE0MmUwYzc2
YmYuLjNmZDJlMjg2ZDZmMTFkMjNjODNlN2JlOWQ3NWIyNDBkNzE0MDlmMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5j
cHAKQEAgLTU0LDExICs1NCwxOSBAQAogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2FwdGlvbi5oIgog
I2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRT
dHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKK1dU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChMYXlvdXRUcmVlQ29udGVudCk7CitMYXlvdXRUcmVl
Q29udGVudDo6TGF5b3V0VHJlZUNvbnRlbnQoY29uc3QgUmVuZGVyQm94JiByb290UmVuZGVyZXIs
IHN0ZDo6dW5pcXVlX3B0cjxDb250YWluZXI+IHJvb3RMYXlvdXRCb3gpCisgICAgOiBtX3Jvb3RS
ZW5kZXJlcihyb290UmVuZGVyZXIpCisgICAgLCBtX3Jvb3RMYXlvdXRCb3goV1RGTW92ZShyb290
TGF5b3V0Qm94KSkKK3sKK30KKwogc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGQoQ29udGFpbmVyJiBw
YXJlbnQsIEJveCYgbmV3Q2hpbGQpCiB7CiAgICAgaWYgKCFwYXJlbnQuaGFzQ2hpbGQoKSkgewpA
QCAtMTAyLDcgKzExMCw3IEBAIHN0YXRpYyBTdHJpbmcgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiB0ZXh0
OwogfQogCi1MYXlvdXRUcmVlQ29udGVudCBUcmVlQnVpbGRlcjo6YnVpbGRMYXlvdXRUcmVlKGNv
bnN0IFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCitzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0OjpMYXlv
dXRUcmVlQ29udGVudD4gVHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0VHJlZShjb25zdCBSZW5kZXJW
aWV3JiByZW5kZXJWaWV3KQogewogICAgIFBoYXNlU2NvcGUgc2NvcGUoUGhhc2U6OlR5cGU6OlRy
ZWVCdWlsZGluZyk7CiAKQEAgLTExMCwxNyArMTE4LDExIEBAIExheW91dFRyZWVDb250ZW50IFRy
ZWVCdWlsZGVyOjpidWlsZExheW91dFRyZWUoY29uc3QgUmVuZGVyVmlldyYgcmVuZGVyVmlldykK
ICAgICBzdHlsZS5zZXRMb2dpY2FsV2lkdGgoTGVuZ3RoKHJlbmRlclZpZXcud2lkdGgoKSwgRml4
ZWQpKTsKICAgICBzdHlsZS5zZXRMb2dpY2FsSGVpZ2h0KExlbmd0aChyZW5kZXJWaWV3LmhlaWdo
dCgpLCBGaXhlZCkpOwogCi0gICAgYXV0byBsYXlvdXRUcmVlQ29udGVudCA9IExheW91dFRyZWVD
b250ZW50IHsgcmVuZGVyVmlldywgbWFrZVVuaXF1ZTxDb250YWluZXI+KFdURjo6bnVsbG9wdCwg
V1RGTW92ZShzdHlsZSkpIH07Ci0gICAgVHJlZUJ1aWxkZXIobGF5b3V0VHJlZUNvbnRlbnQpLmJ1
aWxkVHJlZSgpOworICAgIGF1dG8gbGF5b3V0VHJlZUNvbnRlbnQgPSBtYWtlVW5pcXVlPExheW91
dFRyZWVDb250ZW50PihyZW5kZXJWaWV3LCBtYWtlVW5pcXVlPENvbnRhaW5lcj4oV1RGOjpudWxs
b3B0LCBXVEZNb3ZlKHN0eWxlKSkpOworICAgIFRyZWVCdWlsZGVyKCpsYXlvdXRUcmVlQ29udGVu
dCkuYnVpbGRUcmVlKCk7CiAgICAgcmV0dXJuIGxheW91dFRyZWVDb250ZW50OwogfQogCi1MYXlv
dXRUcmVlQ29udGVudDo6TGF5b3V0VHJlZUNvbnRlbnQoY29uc3QgUmVuZGVyQm94JiByb290UmVu
ZGVyZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb250YWluZXI+IHJvb3RMYXlvdXRCb3gpCi0gICAgOiBy
b290UmVuZGVyZXIocm9vdFJlbmRlcmVyKQotICAgICwgcm9vdExheW91dEJveChXVEZNb3ZlKHJv
b3RMYXlvdXRCb3gpKQotewotfQotCiBUcmVlQnVpbGRlcjo6VHJlZUJ1aWxkZXIoTGF5b3V0VHJl
ZUNvbnRlbnQmIGxheW91dFRyZWVDb250ZW50KQogICAgIDogbV9sYXlvdXRUcmVlQ29udGVudChs
YXlvdXRUcmVlQ29udGVudCkKIHsKQEAgLTEyOCw3ICsxMzAsNyBAQCBUcmVlQnVpbGRlcjo6VHJl
ZUJ1aWxkZXIoTGF5b3V0VHJlZUNvbnRlbnQmIGxheW91dFRyZWVDb250ZW50KQogCiB2b2lkIFRy
ZWVCdWlsZGVyOjpidWlsZFRyZWUoKQogewotICAgIGJ1aWxkU3ViVHJlZShtX2xheW91dFRyZWVD
b250ZW50LnJvb3RSZW5kZXJlciwgKm1fbGF5b3V0VHJlZUNvbnRlbnQucm9vdExheW91dEJveCk7
CisgICAgYnVpbGRTdWJUcmVlKG1fbGF5b3V0VHJlZUNvbnRlbnQucm9vdFJlbmRlcmVyKCksIG1f
bGF5b3V0VHJlZUNvbnRlbnQucm9vdExheW91dEJveCgpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PEJveD4gVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveChjb25zdCBSZW5kZXJFbGVtZW50JiBw
YXJlbnRSZW5kZXJlciwgY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRlcmVyKQpAQCAtMjMx
LDcgKzIzMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IFRyZWVCdWlsZGVyOjpjcmVhdGVMYXlv
dXRCb3goY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuCiAgICAgICAgIGlmIChjaGlsZFJl
bmRlcmVyLmlzQW5vbnltb3VzKCkpCiAgICAgICAgICAgICBjaGlsZExheW91dEJveC0+c2V0SXNB
bm9ueW1vdXMoKTsKICAgICB9Ci0gICAgbV9sYXlvdXRUcmVlQ29udGVudC5yZW5kZXJPYmplY3RU
b0xheW91dEJveC5hZGQoJmNoaWxkUmVuZGVyZXIsIGNoaWxkTGF5b3V0Qm94LmdldCgpKTsKKyAg
ICBtX2xheW91dFRyZWVDb250ZW50LmFkZExheW91dEJveEZvclJlbmRlcmVyKGNoaWxkUmVuZGVy
ZXIsICpjaGlsZExheW91dEJveCk7CiAgICAgcmV0dXJuIGNoaWxkTGF5b3V0Qm94OwogfQogCkBA
IC00MTcsOCArNDE5LDggQEAgdm9pZCBwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKCkK
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgZG9jdW1lbnQtPnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAvLyBGSVhNRTogTmVlZCB0byBmaW5kIGEgd2F5IHRv
IG91dHB1dCBnZW9tZXRyeSB3aXRob3V0IGxheW91dCBjb250ZXh0LgogICAgICAgICBhdXRvJiBy
ZW5kZXJWaWV3ID0gKmRvY3VtZW50LT5yZW5kZXJWaWV3KCk7Ci0gICAgICAgIGF1dG8gbGF5b3V0
U3RhdGUgPSBMYXlvdXRTdGF0ZSB7IFRyZWVCdWlsZGVyOjpidWlsZExheW91dFRyZWUocmVuZGVy
VmlldykgfTsKLSAgICAgICAgbGF5b3V0U3RhdGUuc2V0UXVpcmtzTW9kZShyZW5kZXJWaWV3LmRv
Y3VtZW50KCkuaW5MaW1pdGVkUXVpcmtzTW9kZSgpID8gTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6
OkxpbWl0ZWQgOiAocmVuZGVyVmlldy5kb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpID8gTGF5b3V0
U3RhdGU6OlF1aXJrc01vZGU6OlllcyA6IExheW91dFN0YXRlOjpRdWlya3NNb2RlOjpObykpOwor
ICAgICAgICBhdXRvIGxheW91dFRyZWVDb250ZW50ID0gVHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0
VHJlZShyZW5kZXJWaWV3KTsKKyAgICAgICAgYXV0byBsYXlvdXRTdGF0ZSA9IExheW91dFN0YXRl
IHsgKmxheW91dFRyZWVDb250ZW50IH07CiAKICAgICAgICAgYXV0byYgbGF5b3V0Um9vdCA9IGxh
eW91dFN0YXRlLnJvb3QoKTsKICAgICAgICAgYXV0byBpbnZhbGlkYXRpb25TdGF0ZSA9IEludmFs
aWRhdGlvblN0YXRlIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlv
dXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCmluZGV4IGRmMjYwMmJjNzc0NDliNjQ1YmVlMjlmZTcw
OGM1ZTEwZWQ0MGRlOWQuLjdkMWEyMjdlZmY1ODIzNDE3YzQ1OWY3NDNiOGJiNWJiY2MzMjE1YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVC
dWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuaApAQCAtMjcsNiArMjcsOSBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCiAKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJFbGVtZW50
OwpAQCAtNDAsMTkgKzQzLDI4IEBAIGNsYXNzIEJveDsKIGNsYXNzIENvbnRhaW5lcjsKIGNsYXNz
IExheW91dFN0YXRlOwogCi1zdHJ1Y3QgTGF5b3V0VHJlZUNvbnRlbnQgeworY2xhc3MgTGF5b3V0
VHJlZUNvbnRlbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TGF5b3V0VHJlZUNvbnRlbnQ+IHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKExheW91dFRyZWVDb250ZW50KTsKK3B1YmxpYzoK
ICAgICBMYXlvdXRUcmVlQ29udGVudChjb25zdCBSZW5kZXJCb3gmLCBzdGQ6OnVuaXF1ZV9wdHI8
Q29udGFpbmVyPik7CiAKLSAgICBjb25zdCBSZW5kZXJCb3gmIHJvb3RSZW5kZXJlcjsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q29udGFpbmVyPiByb290TGF5b3V0Qm94OworICAgIGNvbnN0IENvbnRh
aW5lciYgcm9vdExheW91dEJveCgpIGNvbnN0IHsgcmV0dXJuICptX3Jvb3RMYXlvdXRCb3g7IH0K
KyAgICBDb250YWluZXImIHJvb3RMYXlvdXRCb3goKSB7IHJldHVybiAqbV9yb290TGF5b3V0Qm94
OyB9CisgICAgY29uc3QgUmVuZGVyQm94JiByb290UmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBt
X3Jvb3RSZW5kZXJlcjsgfQogCiAgICAgdXNpbmcgUmVuZGVyT2JqZWN0VG9MYXlvdXRCb3hNYXAg
PSBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIEJveCo+OwotICAgIFJlbmRlck9iamVjdFRv
TGF5b3V0Qm94TWFwIHJlbmRlck9iamVjdFRvTGF5b3V0Qm94OworICAgIEJveCogbGF5b3V0Qm94
Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikgeyByZXR1cm4gbV9yZW5k
ZXJPYmplY3RUb0xheW91dEJveC5nZXQoJnJlbmRlcmVyKTsgfQorICAgIHZvaWQgYWRkTGF5b3V0
Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgQm94JiBsYXlvdXRC
b3gpIHsgbV9yZW5kZXJPYmplY3RUb0xheW91dEJveC5hZGQoJnJlbmRlcmVyLCAmbGF5b3V0Qm94
KTsgfQorCitwcml2YXRlOgorICAgIGNvbnN0IFJlbmRlckJveCYgbV9yb290UmVuZGVyZXI7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5lcj4gbV9yb290TGF5b3V0Qm94OworICAgIFJlbmRl
ck9iamVjdFRvTGF5b3V0Qm94TWFwIG1fcmVuZGVyT2JqZWN0VG9MYXlvdXRCb3g7CiB9OwogCiBj
bGFzcyBUcmVlQnVpbGRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIExheW91dFRyZWVDb250ZW50
IGJ1aWxkTGF5b3V0VHJlZShjb25zdCBSZW5kZXJWaWV3Jik7CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxMYXlvdXQ6OkxheW91dFRyZWVDb250ZW50PiBidWlsZExheW91dFRyZWUoY29uc3Qg
UmVuZGVyVmlldyYpOwogCiBwcml2YXRlOgogICAgIFRyZWVCdWlsZGVyKExheW91dFRyZWVDb250
ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNw
cAppbmRleCAyZmFkZTk3MTY5NDRhMTE0NDliMTQ3YWYzZGJlZmRkNzdjYTg2MTlkLi43NDQ3NmZh
ODc3ZmExNDY4YWE2NTRlYmJjYmM0YTM3NzU2MzI4MWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTQwLDggKzQwLDExIEBACiAjaW5j
bHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
ZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKyNpbmNsdWRlICJJbnZhbGlkYXRp
b25Db250ZXh0LmgiCisjaW5jbHVkZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJM
YXlvdXRDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKKyNpbmNsdWRlICJMYXlv
dXRUcmVlQnVpbGRlci5oIgogI2VuZGlmCiAKICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4K
QEAgLTU1LDEwICs1OCwzMSBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dFVz
aW5nRm9ybWF0dGluZ0NvbnRleHQoKQogewogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dEVuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2xheW91dFRyZWVDb250ZW50KSB7CisgICAgICAg
IG1fbGF5b3V0VHJlZUNvbnRlbnQgPSBMYXlvdXQ6OlRyZWVCdWlsZGVyOjpidWlsZExheW91dFRy
ZWUoKnJlbmRlclZpZXcoKSk7CisgICAgICAgIC8vIEZJWE1FOiBOZXcgbGF5b3V0IHRyZWUgcmVx
dWlyZXMgYSBuZXcgc3RhdGUgZm9yIG5vdy4KKyAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IG51bGxw
dHI7CisgICAgfQogICAgIGlmICghbV9sYXlvdXRTdGF0ZSkKLSAgICAgICAgbV9sYXlvdXRTdGF0
ZSA9IExheW91dDo6TGF5b3V0Q29udGV4dDo6Y3JlYXRlTGF5b3V0U3RhdGUoKnJlbmRlclZpZXco
KSk7Ci0gICAgTGF5b3V0OjpMYXlvdXRDb250ZXh0OjpydW5MYXlvdXRBbmRWZXJpZnkocmVuZGVy
VmlldygpLT5zaXplKCksICptX2xheW91dFN0YXRlKTsKLX0gCisgICAgICAgIG1fbGF5b3V0U3Rh
dGUgPSBtYWtlVW5pcXVlPExheW91dDo6TGF5b3V0U3RhdGU+KCptX2xheW91dFRyZWVDb250ZW50
KTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5vdCB0aGUgcmVhbCBpbnZhbGlkYXRpb24geWV0
LgorICAgIGF1dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBMYXlvdXQ6OkludmFsaWRhdGlvblN0YXRl
IHsgfTsKKyAgICBhdXRvIGludmFsaWRhdGlvbkNvbnRleHQgPSBMYXlvdXQ6OkludmFsaWRhdGlv
bkNvbnRleHQgeyBpbnZhbGlkYXRpb25TdGF0ZSB9OworICAgIGludmFsaWRhdGlvbkNvbnRleHQu
c3R5bGVDaGFuZ2VkKCptX2xheW91dFN0YXRlLT5yb290KCkuZmlyc3RDaGlsZCgpLCBTdHlsZURp
ZmZlcmVuY2U6OkxheW91dCk7CisKKyAgICBhdXRvIGxheW91dENvbnRleHQgPSBMYXlvdXQ6Okxh
eW91dENvbnRleHQgeyAqbV9sYXlvdXRTdGF0ZSB9OworICAgIGxheW91dENvbnRleHQubGF5b3V0
KHJlbmRlclZpZXcoKS0+c2l6ZSgpLCBpbnZhbGlkYXRpb25TdGF0ZSk7CisjaWZuZGVmIE5ERUJV
RworICAgIExheW91dDo6TGF5b3V0Q29udGV4dDo6dmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdM
YXlvdXRUcmVlKCptX2xheW91dFN0YXRlKTsKKyNlbmRpZgorfQorCit2b2lkIEZyYW1lVmlld0xh
eW91dENvbnRleHQ6OmludmFsaWRhdGVMYXlvdXRUcmVlQ29udGVudCgpCit7CisgICAgbV9sYXlv
dXRUcmVlQ29udGVudCA9IG51bGxwdHI7Cit9CiAjZW5kaWYKIAogc3RhdGljIGJvb2wgaXNPYmpl
Y3RBbmNlc3RvckNvbnRhaW5lck9mKFJlbmRlckVsZW1lbnQmIGFuY2VzdG9yLCBSZW5kZXJFbGVt
ZW50JiBkZXNjZW5kYW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuaAppbmRleCBlNTkxZDExZGM4ZmRmMTkzNTFjZDgyMDhhOWQyMTYzYmQwMDQ1OWE0Li43
NTBmM2RmOWQzNWU0ZDU3YjY1OWE4ZDFmMGJkYzhjM2ViZjE0MjM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFz
cyBSZW5kZXJWaWV3OwogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogbmFt
ZXNwYWNlIExheW91dCB7CiBjbGFzcyBMYXlvdXRTdGF0ZTsKK2NsYXNzIExheW91dFRyZWVDb250
ZW50OwogfQogI2VuZGlmCiAgICAgCkBAIC0xMTcsNiArMTE4LDggQEAgcHVibGljOgogCiAjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAgICAgY29uc3QgTGF5b3V0OjpMYXlv
dXRTdGF0ZSogbGF5b3V0Rm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRT
dGF0ZS5nZXQoKTsgfQorICAgIExheW91dDo6TGF5b3V0VHJlZUNvbnRlbnQqIGxheW91dFRyZWVD
b250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRUcmVlQ29udGVudC5nZXQoKTsgfQorICAg
IHZvaWQgaW52YWxpZGF0ZUxheW91dFRyZWVDb250ZW50KCk7CiAjZW5kaWYKIAogcHJpdmF0ZToK
QEAgLTE4OSw2ICsxOTIsNyBAQCBwcml2YXRlOgogICAgIExheW91dFN0YXRlU3RhY2sgbV9sYXlv
dXRTdGF0ZVN0YWNrOwogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogICAg
IHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6OkxheW91dFN0YXRlPiBtX2xheW91dFN0YXRlOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6OkxheW91dFRyZWVDb250ZW50PiBtX2xheW91dFRyZWVD
b250ZW50OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAppbmRleCBlZDRjNWEwMDZjMTJiY2Mw
Y2I3MGZiYmIxMGIxOTgyY2NmMzM1ODJkLi42ZDUxMzFmZWI3OTk3NmM3YzQ1ZjQ2Y2MzYjIwNWU5
ZTk1NjAzYjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTI5OSw3ICsyOTksNyBAQCB2b2lkIFJlbmRl
clRyZWVVcGRhdGVyOjp1cGRhdGVSZW5kZXJlclN0eWxlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVy
LCBSZW5kZXJTdHlsZQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZCgpKSB7CiAgICAgICAgIGlmICgh
bV9kb2N1bWVudC52aWV3KCkgfHwgbV9kb2N1bWVudC52aWV3KCktPmxheW91dENvbnRleHQoKS5s
YXlvdXRGb3JtYXR0aW5nU3RhdGUoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYg
KGF1dG8qIGxheW91dEJveCA9IG1fZG9jdW1lbnQudmlldygpLT5sYXlvdXRDb250ZXh0KCkubGF5
b3V0Rm9ybWF0dGluZ1N0YXRlKCktPmxheW91dEJveEZvclJlbmRlcmVyKHJlbmRlcmVyKSkKKyAg
ICAgICAgaWYgKGF1dG8qIGxheW91dEJveCA9IG1fZG9jdW1lbnQudmlldygpLT5sYXlvdXRDb250
ZXh0KCkubGF5b3V0VHJlZUNvbnRlbnQoKS0+bGF5b3V0Qm94Rm9yUmVuZGVyZXIocmVuZGVyZXIp
KQogICAgICAgICAgICAgbGF5b3V0Qm94LT51cGRhdGVTdHlsZShuZXdTdHlsZSk7CiAgICAgfQog
I2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383722</attachid>
            <date>2019-11-17 13:03:39 -0800</date>
            <delta_ts>2019-11-17 14:30:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204285-20191117130338.patch</filename>
            <type>text/plain</type>
            <size>20185</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTlkMWRiYmZiZmE3NDk4
MWVlYzRlZjQ4MmIxYmFlOTAzYWRjYmJiZC4uY2U2MTQzZjY1OTBhYzIzYzQwNWYwYWU3NjUyODM1
NGY4YWVkNzcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTExLTE3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gTW92ZSBsYXlvdXQg
c3RhdGUgaW5pdGlhbGl6YXRpb24gb3V0IG9mIExheW91dENvbnRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDI4NQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTcyNjI4NTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8u
CisKKyAgICAgICAgTW92ZSBsYXlvdXQgaW5pdGlhbGl6YXRpb24gdG8gRnJhbWVWaWV3TGF5b3V0
Q29udGV4dDo6bGF5b3V0VXNpbmdGb3JtYXR0aW5nQ29udGV4dC4gVGhpcyBpcyBub3cgcHJldHR5
IGNsb3NlIHRvCisgICAgICAgIHdoYXQgdGhlIGZpbmFsIGluaXRpYWxpemF0aW9uIHdpbGwgbG9v
ayBsaWtlLgorCisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0Ojppbml0aWFsaXplTGF5b3V0U3RhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpydW5MYXlvdXQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpydW5MYXlvdXRBbmRWZXJp
ZnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0Ojpj
cmVhdGVMYXlvdXRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRl
eHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0U3Rh
dGUpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAgICogbGF5b3V0L0xh
eW91dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpyb290
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OnJvb3RSZW5k
ZXJlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRlOjpzZXRR
dWlya3NNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmxheW91
dEJveEZvclJlbmRlcmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxh
eW91dFRyZWVDb250ZW50OjpMYXlvdXRUcmVlQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlRyZWVCdWlsZGVyOjpidWlsZExheW91dFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpUcmVlQnVpbGRlcjo6YnVpbGRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OnByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMpOgorICAgICAgICAqIGxheW91dC9s
YXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkxheW91dFRyZWVDb250ZW50Ojpyb290TGF5b3V0Qm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGF5b3V0VHJlZUNvbnRlbnQ6OnJvb3RMYXlvdXRCb3gpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRUcmVlQ29udGVudDo6cm9vdFJlbmRlcmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0VHJlZUNvbnRlbnQ6OmxheW91dEJveEZv
clJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0VHJlZUNvbnRlbnQ6
OmFkZExheW91dEJveEZvclJlbmRlcmVyKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6
bGF5b3V0VXNpbmdGb3JtYXR0aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXdMYXlvdXRDb250ZXh0OjppbnZhbGlkYXRlTGF5b3V0VHJlZUNvbnRlbnQpOgorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0VHJlZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVyZXJTdHlsZSk6CisKIDIwMTktMTEtMTcg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBQYXNzIGlu
IHRoZSBjb250ZW50IGFyZWEgdG8gTGF5b3V0Q29udGV4dDo6bGF5b3V0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKaW5kZXggMzkzNzZmZjRkNTA1MmExNTQxNzZlZWJmODc5
ZTFmZmFhMDEyYzNlYS4uMmUwMmJkNzc1NzEwYTQ0ZTcwMWY1MTA0MWYwZTc5ODJmMDZjZGEzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAtMTA5LDQzICsxMDks
NiBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ0NvbnRleHQ+IExheW91dENvbnRleHQ6OmNy
ZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0CiAgICAgQ1JBU0goKTsKIH0KIAotc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZUxheW91dFN0YXRlKExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3Qg
UmVuZGVyVmlldyYgcmVuZGVyVmlldykKLXsKLSAgICBhdXRvIHF1aXJrc01vZGUgPSBbJl0gewot
ICAgICAgICBhdXRvJiBkb2N1bWVudCA9IHJlbmRlclZpZXcuZG9jdW1lbnQoKTsKLSAgICAgICAg
aWYgKGRvY3VtZW50LmluTGltaXRlZFF1aXJrc01vZGUoKSkKLSAgICAgICAgICAgIHJldHVybiBM
YXlvdXRTdGF0ZTo6UXVpcmtzTW9kZTo6TGltaXRlZDsKLSAgICAgICAgaWYgKGRvY3VtZW50Lmlu
UXVpcmtzTW9kZSgpKQotICAgICAgICAgICAgcmV0dXJuIExheW91dFN0YXRlOjpRdWlya3NNb2Rl
OjpZZXM7Ci0gICAgICAgIHJldHVybiBMYXlvdXRTdGF0ZTo6UXVpcmtzTW9kZTo6Tm87Ci0gICAg
fTsKLSAgICBsYXlvdXRTdGF0ZS5zZXRRdWlya3NNb2RlKHF1aXJrc01vZGUoKSk7Ci19Ci0KLXZv
aWQgTGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RDb250ZW50
Qm94U2l6ZSwgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQotewotICAgIGF1dG8gaW52YWxpZGF0
aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25TdGF0ZSB7IH07Ci0gICAgYXV0byBpbnZhbGlkYXRpb25D
b250ZXh0ID0gSW52YWxpZGF0aW9uQ29udGV4dCB7IGludmFsaWRhdGlvblN0YXRlIH07Ci0gICAg
aW52YWxpZGF0aW9uQ29udGV4dC5zdHlsZUNoYW5nZWQoKmxheW91dFN0YXRlLnJvb3QoKS5maXJz
dENoaWxkKCksIFN0eWxlRGlmZmVyZW5jZTo6TGF5b3V0KTsKLQotICAgIExheW91dENvbnRleHQo
bGF5b3V0U3RhdGUpLmxheW91dChyb290Q29udGVudEJveFNpemUsIGludmFsaWRhdGlvblN0YXRl
KTsKLX0KLQotdm9pZCBMYXlvdXRDb250ZXh0OjpydW5MYXlvdXRBbmRWZXJpZnkoY29uc3QgTGF5
b3V0U2l6ZSYgcm9vdENvbnRlbnRCb3hTaXplLCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCi17
Ci0gICAgcnVuTGF5b3V0KHJvb3RDb250ZW50Qm94U2l6ZSwgbGF5b3V0U3RhdGUpOwotI2lmbmRl
ZiBOREVCVUcKLSAgICBMYXlvdXRDb250ZXh0Ojp2ZXJpZnlBbmRPdXRwdXRNaXNtYXRjaGluZ0xh
eW91dFRyZWUobGF5b3V0U3RhdGUpOwotI2VuZGlmCi19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxMYXlv
dXRTdGF0ZT4gTGF5b3V0Q29udGV4dDo6Y3JlYXRlTGF5b3V0U3RhdGUoY29uc3QgUmVuZGVyVmll
dyYgcmVuZGVyVmlldykKLXsKLSAgICBhdXRvIGxheW91dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlv
dXRTdGF0ZT4oVHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0VHJlZShyZW5kZXJWaWV3KSk7Ci0gICAg
aW5pdGlhbGl6ZUxheW91dFN0YXRlKCpsYXlvdXRTdGF0ZSwgcmVuZGVyVmlldyk7Ci0gICAgcmV0
dXJuIGxheW91dFN0YXRlOwotfQotCiB2b2lkIExheW91dENvbnRleHQ6OnBhaW50KGNvbnN0IExh
eW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QpCiB7CiAgICAgRGlzcGxheTo6UGFpbnRlcjo6cGFpbnQobGF5b3V0
U3RhdGUsIGNvbnRleHQsIGRpcnR5UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTGF5b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRl
eHQuaAppbmRleCA3NGQzZDEwMDc4NWM2MzlhNjY5NDAzYTgyMjViYThlNWJlZWUwZTMyLi4xYjli
ZTQwZWFlMmNmODcyMTUwOTU5NzAzZjk1MWIxYTE0ZTc0OTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRDb250ZXh0LmgKQEAgLTQ4LDI5ICs0OCwyNCBAQCBjbGFzcyBGb3JtYXR0aW5nQ29u
dGV4dDsKIC8vIE5vdGUsIHdoaWxlIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2sgaXMgZW50
cnkgcG9pbnQgZm9yIHRoZSBpbml0aWFsIGxheW91dCwgaXQgZG9lcyBub3QgbmVjZXNzYXJpbHkg
bmVlZCB0byBiZSB0aGUgZW50cnkgcG9pbnQgb2YgYW55CiAvLyBzdWJzZXF1ZW50IGxheW91dHMg
KHN1YnRyZWUgbGF5b3V0KS4gQSBub24taW5pdGlhbCwgc3VidHJlZSBsYXlvdXQgY291bGQgYmUg
aW5pdGlhdGVkIG9uIG11bHRpcGxlIGZvcm1hdHRpbmcgY29udGV4dHMuCiAvLyBFYWNoIGZvcm1h
dHRpbmcgY29udGV4dCBoYXMgYW4gZW50cnkgcG9pbnQgZm9yIGxheW91dCwgd2hpY2ggcG90ZW5p
dGFsbHkgbWVhbnMgbXVsdGlwbGUgZW50cnkgcG9pbnRzIHBlciBsYXlvdXQgZnJhbWUuCi0vLyBM
YXlvdXRTdGF0ZSBob2xkcyB0aGUgZm9ybWF0dGluZyBzdGF0ZXMuIFRoZXkgY2FjaGUgZm9ybWF0
dGluZyBjb250ZXh0IHNwZWNpZmljIGRhdGEgdG8gZW5hYmxlIHBlcmZvcm1hbnQgaW5jcmVtZW50
YWwgbGF5b3V0cy4KIGNsYXNzIExheW91dENvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoTGF5b3V0Q29udGV4dCk7CiBwdWJsaWM6Ci0gICAgLy8gRklYTUU6IFRoZXNlIGFyZSB0
ZW1wb3JhcnkgZW50cnkgcG9pbnRzIGZvciBMRkMgbGF5b3V0LgotICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8TGF5b3V0U3RhdGU+IGNyZWF0ZUxheW91dFN0YXRlKGNvbnN0IFJlbmRlclZpZXcm
KTsKLSAgICBzdGF0aWMgdm9pZCBydW5MYXlvdXRBbmRWZXJpZnkoY29uc3QgTGF5b3V0U2l6ZSYg
cm9vdENvbnRlbnRCb3hTaXplLCBMYXlvdXRTdGF0ZSYpOwotICAgIHN0YXRpYyB2b2lkIHBhaW50
KGNvbnN0IExheW91dFN0YXRlJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgZGly
dHlSZWN0KTsKLQogICAgIExheW91dENvbnRleHQoTGF5b3V0U3RhdGUmKTsKICAgICB2b2lkIGxh
eW91dChjb25zdCBMYXlvdXRTaXplJiByb290Q29udGVudEJveFNpemUsIEludmFsaWRhdGlvblN0
YXRlJik7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRpbmdDb250ZXh0PiBj
cmVhdGVGb3JtYXR0aW5nQ29udGV4dChjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0
Um9vdCwgTGF5b3V0U3RhdGUmKTsKIAotcHJpdmF0ZToKLSAgICB2b2lkIGxheW91dEZvcm1hdHRp
bmdDb250ZXh0U3VidHJlZShjb25zdCBDb250YWluZXImLCBJbnZhbGlkYXRpb25TdGF0ZSYpOwot
ICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fbGF5b3V0U3RhdGU7IH0K
LQotICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkKKyAgICAvLyBGSVhNRTogVGhpcyBp
cyB0ZW1wb3JhcnkuIAorICAgIHN0YXRpYyB2b2lkIHBhaW50KGNvbnN0IExheW91dFN0YXRlJiwg
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KTsKICNpZm5kZWYgTkRF
QlVHCisgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seQogICAgIHN0YXRpYyB2b2lkIHZl
cmlmeUFuZE91dHB1dE1pc21hdGNoaW5nTGF5b3V0VHJlZShjb25zdCBMYXlvdXRTdGF0ZSYpOwog
I2VuZGlmCi0gICAgc3RhdGljIHZvaWQgcnVuTGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RD
b250ZW50Qm94U2l6ZSwgTGF5b3V0U3RhdGUmKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGxheW91
dEZvcm1hdHRpbmdDb250ZXh0U3VidHJlZShjb25zdCBDb250YWluZXImLCBJbnZhbGlkYXRpb25T
dGF0ZSYpOworICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fbGF5b3V0
U3RhdGU7IH0KIAogICAgIExheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDRlY2E5ZTllOTM5YmE0MzRjZWE1MGE2OGI3
NGVmZTQ1MWQ2NjQ5MDcuLjM2NmM2NmQ0MWE2ODQ1YjA4MDg5OTEzMzEzNmJhYWQzODZjMDcyMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcApAQCAtMzgsMTEgKzM4LDIxIEBA
IG5hbWVzcGFjZSBMYXlvdXQgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGF5b3V0
U3RhdGUpOwogCi1MYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0VHJlZUNvbnRlbnQmJiBs
YXlvdXRUcmVlQ29udGVudCkKLSAgICA6IG1fbGF5b3V0VHJlZUNvbnRlbnQoV1RGTW92ZShsYXlv
dXRUcmVlQ29udGVudCkpCitMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoY29uc3QgTGF5b3V0VHJl
ZUNvbnRlbnQmIGxheW91dFRyZWVDb250ZW50KQorICAgIDogbV9sYXlvdXRUcmVlQ29udGVudCht
YWtlV2Vha1B0cihsYXlvdXRUcmVlQ29udGVudCkpCiB7CiAgICAgLy8gSXQgbWFrZXMgYWJzb2x1
dGVseSBubyBzZW5zZSB0byBjb25zdHJ1Y3QgYSBkZWRpY2F0ZWQgbGF5b3V0IHN0YXRlIGZvciBh
IG5vbi1mb3JtYXR0aW5nIGNvbnRleHQgcm9vdCAobGF5b3V0IHdvdWxkIGJlIGEgbm8tb3ApLgot
ICAgIEFTU0VSVChtX2xheW91dFRyZWVDb250ZW50LnJvb3RMYXlvdXRCb3gtPmVzdGFibGlzaGVz
Rm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgQVNTRVJUKG1fbGF5b3V0VHJlZUNvbnRlbnQtPnJv
b3RMYXlvdXRCb3goKS5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOworCisgICAgYXV0
byBxdWlya3NNb2RlID0gWyZdIHsKKyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBtX2xheW91dFRy
ZWVDb250ZW50LT5yb290UmVuZGVyZXIoKS5kb2N1bWVudCgpOworICAgICAgICBpZiAoZG9jdW1l
bnQuaW5MaW1pdGVkUXVpcmtzTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIExheW91dFN0YXRl
OjpRdWlya3NNb2RlOjpMaW1pdGVkOworICAgICAgICBpZiAoZG9jdW1lbnQuaW5RdWlya3NNb2Rl
KCkpCisgICAgICAgICAgICByZXR1cm4gTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6OlllczsKKyAg
ICAgICAgcmV0dXJuIExheW91dFN0YXRlOjpRdWlya3NNb2RlOjpObzsKKyAgICB9OworICAgIHNl
dFF1aXJrc01vZGUocXVpcmtzTW9kZSgpKTsKIH0KIAogTGF5b3V0U3RhdGU6On5MYXlvdXRTdGF0
ZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKaW5kZXggMGQ2NzY1
OWQzYWU4NDI5ODA4NDcxMzM3MjcwZGQzN2FkMGY3Zjk2NC4uN2RhMDgzYzk3MGZiNDVmNGI5ZTg3
ZjA3ODRhYWY2MGQxZTUyMjZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xh
eW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKQEAg
LTQ5LDcgKzQ5LDcgQEAgY2xhc3MgRm9ybWF0dGluZ1N0YXRlOwogY2xhc3MgTGF5b3V0U3RhdGUg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTGF5b3V0U3RhdGUpOwogcHVibGljOgotICAg
IExheW91dFN0YXRlKExheW91dFRyZWVDb250ZW50JiYpOworICAgIExheW91dFN0YXRlKGNvbnN0
IExheW91dFRyZWVDb250ZW50Jik7CiAgICAgfkxheW91dFN0YXRlKCk7CiAKICAgICBGb3JtYXR0
aW5nU3RhdGUmIGNyZWF0ZUZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRpbmdSb290SWZOZWVkZWQo
Y29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwpAQCAtNjcsMTggKzY3LDE4
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0Rpc3BsYXlCb3goY29uc3QgQm94JiBsYXlvdXRCb3gp
IGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0VG9EaXNwbGF5Qm94LmNvbnRhaW5zKCZsYXlvdXRCb3gp
OyB9CiAKICAgICBlbnVtIGNsYXNzIFF1aXJrc01vZGUgeyBObywgTGltaXRlZCwgWWVzIH07Ci0g
ICAgdm9pZCBzZXRRdWlya3NNb2RlKFF1aXJrc01vZGUgcXVpcmtzTW9kZSkgeyBtX3F1aXJrc01v
ZGUgPSBxdWlya3NNb2RlOyB9CiAgICAgYm9vbCBpblF1aXJrc01vZGUoKSBjb25zdCB7IHJldHVy
biBtX3F1aXJrc01vZGUgPT0gUXVpcmtzTW9kZTo6WWVzOyB9CiAgICAgYm9vbCBpbkxpbWl0ZWRR
dWlya3NNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9xdWlya3NNb2RlID09IFF1aXJrc01vZGU6Okxp
bWl0ZWQ7IH0KICAgICBib29sIGluTm9RdWlya3NNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9xdWly
a3NNb2RlID09IFF1aXJrc01vZGU6Ok5vOyB9CiAKLSAgICBjb25zdCBDb250YWluZXImIHJvb3Qo
KSBjb25zdCB7IHJldHVybiAqbV9sYXlvdXRUcmVlQ29udGVudC5yb290TGF5b3V0Qm94OyB9Cisg
ICAgY29uc3QgQ29udGFpbmVyJiByb290KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRUcmVlQ29u
dGVudC0+cm9vdExheW91dEJveCgpOyB9CiAjaWZuZGVmIE5ERUJVRwotICAgIGNvbnN0IFJlbmRl
ckJveCYgcm9vdFJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRUcmVlQ29udGVudC5y
b290UmVuZGVyZXI7IH0KKyAgICBjb25zdCBSZW5kZXJCb3gmIHJvb3RSZW5kZXJlcigpIGNvbnN0
IHsgcmV0dXJuIG1fbGF5b3V0VHJlZUNvbnRlbnQtPnJvb3RSZW5kZXJlcigpOyB9CiAjZW5kaWYK
LSAgICBCb3gqIGxheW91dEJveEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVy
ZXIpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0VHJlZUNvbnRlbnQucmVuZGVyT2JqZWN0VG9MYXlv
dXRCb3guZ2V0KCZyZW5kZXJlcik7IH0KIAogcHJpdmF0ZToKKyAgICB2b2lkIHNldFF1aXJrc01v
ZGUoUXVpcmtzTW9kZSBxdWlya3NNb2RlKSB7IG1fcXVpcmtzTW9kZSA9IHF1aXJrc01vZGU7IH0K
KwogICAgIEhhc2hNYXA8Y29uc3QgQ29udGFpbmVyKiwgc3RkOjp1bmlxdWVfcHRyPEZvcm1hdHRp
bmdTdGF0ZT4+IG1fZm9ybWF0dGluZ1N0YXRlczsKICNpZm5kZWYgTkRFQlVHCiAgICAgSGFzaFNl
dDxjb25zdCBGb3JtYXR0aW5nQ29udGV4dCo+IG1fZm9ybWF0dGluZ0NvbnRleHRMaXN0OwpAQCAt
ODYsOCArODYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8Y29uc3QgQm94Kiwgc3RkOjp1bmlx
dWVfcHRyPERpc3BsYXk6OkJveD4+IG1fbGF5b3V0VG9EaXNwbGF5Qm94OwogICAgIFF1aXJrc01v
ZGUgbV9xdWlya3NNb2RlIHsgUXVpcmtzTW9kZTo6Tm8gfTsKIAotICAgIC8vIEZJWE1FOiBGaWd1
cmUgb3V0IHRoZSBvd25lcnNoaXAgbW9kZWwgZm9yIHRoZSBsYXlvdXQgdHJlZS4KLSAgICBMYXlv
dXRUcmVlQ29udGVudCBtX2xheW91dFRyZWVDb250ZW50OworICAgIFdlYWtQdHI8Y29uc3QgTGF5
b3V0VHJlZUNvbnRlbnQ+IG1fbGF5b3V0VHJlZUNvbnRlbnQ7CiB9OwogCiAjaWZuZGVmIE5ERUJV
RwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuY3BwCmluZGV4IGRlMzFjMGQ5MTkwOGMxNzdkMDcyYzdlYTQxNTAwNGE0MmUwYzc2
YmYuLjNmZDJlMjg2ZDZmMTFkMjNjODNlN2JlOWQ3NWIyNDBkNzE0MDlmMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5j
cHAKQEAgLTU0LDExICs1NCwxOSBAQAogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2FwdGlvbi5oIgog
I2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRT
dHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKK1dU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChMYXlvdXRUcmVlQ29udGVudCk7CitMYXlvdXRUcmVl
Q29udGVudDo6TGF5b3V0VHJlZUNvbnRlbnQoY29uc3QgUmVuZGVyQm94JiByb290UmVuZGVyZXIs
IHN0ZDo6dW5pcXVlX3B0cjxDb250YWluZXI+IHJvb3RMYXlvdXRCb3gpCisgICAgOiBtX3Jvb3RS
ZW5kZXJlcihyb290UmVuZGVyZXIpCisgICAgLCBtX3Jvb3RMYXlvdXRCb3goV1RGTW92ZShyb290
TGF5b3V0Qm94KSkKK3sKK30KKwogc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGQoQ29udGFpbmVyJiBw
YXJlbnQsIEJveCYgbmV3Q2hpbGQpCiB7CiAgICAgaWYgKCFwYXJlbnQuaGFzQ2hpbGQoKSkgewpA
QCAtMTAyLDcgKzExMCw3IEBAIHN0YXRpYyBTdHJpbmcgYXBwbHlUZXh0VHJhbnNmb3JtKGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogICAgIHJldHVybiB0ZXh0
OwogfQogCi1MYXlvdXRUcmVlQ29udGVudCBUcmVlQnVpbGRlcjo6YnVpbGRMYXlvdXRUcmVlKGNv
bnN0IFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCitzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0OjpMYXlv
dXRUcmVlQ29udGVudD4gVHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0VHJlZShjb25zdCBSZW5kZXJW
aWV3JiByZW5kZXJWaWV3KQogewogICAgIFBoYXNlU2NvcGUgc2NvcGUoUGhhc2U6OlR5cGU6OlRy
ZWVCdWlsZGluZyk7CiAKQEAgLTExMCwxNyArMTE4LDExIEBAIExheW91dFRyZWVDb250ZW50IFRy
ZWVCdWlsZGVyOjpidWlsZExheW91dFRyZWUoY29uc3QgUmVuZGVyVmlldyYgcmVuZGVyVmlldykK
ICAgICBzdHlsZS5zZXRMb2dpY2FsV2lkdGgoTGVuZ3RoKHJlbmRlclZpZXcud2lkdGgoKSwgRml4
ZWQpKTsKICAgICBzdHlsZS5zZXRMb2dpY2FsSGVpZ2h0KExlbmd0aChyZW5kZXJWaWV3LmhlaWdo
dCgpLCBGaXhlZCkpOwogCi0gICAgYXV0byBsYXlvdXRUcmVlQ29udGVudCA9IExheW91dFRyZWVD
b250ZW50IHsgcmVuZGVyVmlldywgbWFrZVVuaXF1ZTxDb250YWluZXI+KFdURjo6bnVsbG9wdCwg
V1RGTW92ZShzdHlsZSkpIH07Ci0gICAgVHJlZUJ1aWxkZXIobGF5b3V0VHJlZUNvbnRlbnQpLmJ1
aWxkVHJlZSgpOworICAgIGF1dG8gbGF5b3V0VHJlZUNvbnRlbnQgPSBtYWtlVW5pcXVlPExheW91
dFRyZWVDb250ZW50PihyZW5kZXJWaWV3LCBtYWtlVW5pcXVlPENvbnRhaW5lcj4oV1RGOjpudWxs
b3B0LCBXVEZNb3ZlKHN0eWxlKSkpOworICAgIFRyZWVCdWlsZGVyKCpsYXlvdXRUcmVlQ29udGVu
dCkuYnVpbGRUcmVlKCk7CiAgICAgcmV0dXJuIGxheW91dFRyZWVDb250ZW50OwogfQogCi1MYXlv
dXRUcmVlQ29udGVudDo6TGF5b3V0VHJlZUNvbnRlbnQoY29uc3QgUmVuZGVyQm94JiByb290UmVu
ZGVyZXIsIHN0ZDo6dW5pcXVlX3B0cjxDb250YWluZXI+IHJvb3RMYXlvdXRCb3gpCi0gICAgOiBy
b290UmVuZGVyZXIocm9vdFJlbmRlcmVyKQotICAgICwgcm9vdExheW91dEJveChXVEZNb3ZlKHJv
b3RMYXlvdXRCb3gpKQotewotfQotCiBUcmVlQnVpbGRlcjo6VHJlZUJ1aWxkZXIoTGF5b3V0VHJl
ZUNvbnRlbnQmIGxheW91dFRyZWVDb250ZW50KQogICAgIDogbV9sYXlvdXRUcmVlQ29udGVudChs
YXlvdXRUcmVlQ29udGVudCkKIHsKQEAgLTEyOCw3ICsxMzAsNyBAQCBUcmVlQnVpbGRlcjo6VHJl
ZUJ1aWxkZXIoTGF5b3V0VHJlZUNvbnRlbnQmIGxheW91dFRyZWVDb250ZW50KQogCiB2b2lkIFRy
ZWVCdWlsZGVyOjpidWlsZFRyZWUoKQogewotICAgIGJ1aWxkU3ViVHJlZShtX2xheW91dFRyZWVD
b250ZW50LnJvb3RSZW5kZXJlciwgKm1fbGF5b3V0VHJlZUNvbnRlbnQucm9vdExheW91dEJveCk7
CisgICAgYnVpbGRTdWJUcmVlKG1fbGF5b3V0VHJlZUNvbnRlbnQucm9vdFJlbmRlcmVyKCksIG1f
bGF5b3V0VHJlZUNvbnRlbnQucm9vdExheW91dEJveCgpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PEJveD4gVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveChjb25zdCBSZW5kZXJFbGVtZW50JiBw
YXJlbnRSZW5kZXJlciwgY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRlcmVyKQpAQCAtMjMx
LDcgKzIzMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IFRyZWVCdWlsZGVyOjpjcmVhdGVMYXlv
dXRCb3goY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuCiAgICAgICAgIGlmIChjaGlsZFJl
bmRlcmVyLmlzQW5vbnltb3VzKCkpCiAgICAgICAgICAgICBjaGlsZExheW91dEJveC0+c2V0SXNB
bm9ueW1vdXMoKTsKICAgICB9Ci0gICAgbV9sYXlvdXRUcmVlQ29udGVudC5yZW5kZXJPYmplY3RU
b0xheW91dEJveC5hZGQoJmNoaWxkUmVuZGVyZXIsIGNoaWxkTGF5b3V0Qm94LmdldCgpKTsKKyAg
ICBtX2xheW91dFRyZWVDb250ZW50LmFkZExheW91dEJveEZvclJlbmRlcmVyKGNoaWxkUmVuZGVy
ZXIsICpjaGlsZExheW91dEJveCk7CiAgICAgcmV0dXJuIGNoaWxkTGF5b3V0Qm94OwogfQogCkBA
IC00MTcsOCArNDE5LDggQEAgdm9pZCBwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKCkK
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgZG9jdW1lbnQtPnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAvLyBGSVhNRTogTmVlZCB0byBmaW5kIGEgd2F5IHRv
IG91dHB1dCBnZW9tZXRyeSB3aXRob3V0IGxheW91dCBjb250ZXh0LgogICAgICAgICBhdXRvJiBy
ZW5kZXJWaWV3ID0gKmRvY3VtZW50LT5yZW5kZXJWaWV3KCk7Ci0gICAgICAgIGF1dG8gbGF5b3V0
U3RhdGUgPSBMYXlvdXRTdGF0ZSB7IFRyZWVCdWlsZGVyOjpidWlsZExheW91dFRyZWUocmVuZGVy
VmlldykgfTsKLSAgICAgICAgbGF5b3V0U3RhdGUuc2V0UXVpcmtzTW9kZShyZW5kZXJWaWV3LmRv
Y3VtZW50KCkuaW5MaW1pdGVkUXVpcmtzTW9kZSgpID8gTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6
OkxpbWl0ZWQgOiAocmVuZGVyVmlldy5kb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpID8gTGF5b3V0
U3RhdGU6OlF1aXJrc01vZGU6OlllcyA6IExheW91dFN0YXRlOjpRdWlya3NNb2RlOjpObykpOwor
ICAgICAgICBhdXRvIGxheW91dFRyZWVDb250ZW50ID0gVHJlZUJ1aWxkZXI6OmJ1aWxkTGF5b3V0
VHJlZShyZW5kZXJWaWV3KTsKKyAgICAgICAgYXV0byBsYXlvdXRTdGF0ZSA9IExheW91dFN0YXRl
IHsgKmxheW91dFRyZWVDb250ZW50IH07CiAKICAgICAgICAgYXV0byYgbGF5b3V0Um9vdCA9IGxh
eW91dFN0YXRlLnJvb3QoKTsKICAgICAgICAgYXV0byBpbnZhbGlkYXRpb25TdGF0ZSA9IEludmFs
aWRhdGlvblN0YXRlIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlv
dXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCmluZGV4IGRmMjYwMmJjNzc0NDliNjQ1YmVlMjlmZTcw
OGM1ZTEwZWQ0MGRlOWQuLjdkMWEyMjdlZmY1ODIzNDE3YzQ1OWY3NDNiOGJiNWJiY2MzMjE1YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVC
dWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuaApAQCAtMjcsNiArMjcsOSBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCiAKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJFbGVtZW50
OwpAQCAtNDAsMTkgKzQzLDI4IEBAIGNsYXNzIEJveDsKIGNsYXNzIENvbnRhaW5lcjsKIGNsYXNz
IExheW91dFN0YXRlOwogCi1zdHJ1Y3QgTGF5b3V0VHJlZUNvbnRlbnQgeworY2xhc3MgTGF5b3V0
VHJlZUNvbnRlbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TGF5b3V0VHJlZUNvbnRlbnQ+IHsK
KyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKExheW91dFRyZWVDb250ZW50KTsKK3B1YmxpYzoK
ICAgICBMYXlvdXRUcmVlQ29udGVudChjb25zdCBSZW5kZXJCb3gmLCBzdGQ6OnVuaXF1ZV9wdHI8
Q29udGFpbmVyPik7CiAKLSAgICBjb25zdCBSZW5kZXJCb3gmIHJvb3RSZW5kZXJlcjsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q29udGFpbmVyPiByb290TGF5b3V0Qm94OworICAgIGNvbnN0IENvbnRh
aW5lciYgcm9vdExheW91dEJveCgpIGNvbnN0IHsgcmV0dXJuICptX3Jvb3RMYXlvdXRCb3g7IH0K
KyAgICBDb250YWluZXImIHJvb3RMYXlvdXRCb3goKSB7IHJldHVybiAqbV9yb290TGF5b3V0Qm94
OyB9CisgICAgY29uc3QgUmVuZGVyQm94JiByb290UmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBt
X3Jvb3RSZW5kZXJlcjsgfQogCiAgICAgdXNpbmcgUmVuZGVyT2JqZWN0VG9MYXlvdXRCb3hNYXAg
PSBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIEJveCo+OwotICAgIFJlbmRlck9iamVjdFRv
TGF5b3V0Qm94TWFwIHJlbmRlck9iamVjdFRvTGF5b3V0Qm94OworICAgIEJveCogbGF5b3V0Qm94
Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikgeyByZXR1cm4gbV9yZW5k
ZXJPYmplY3RUb0xheW91dEJveC5nZXQoJnJlbmRlcmVyKTsgfQorICAgIHZvaWQgYWRkTGF5b3V0
Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgQm94JiBsYXlvdXRC
b3gpIHsgbV9yZW5kZXJPYmplY3RUb0xheW91dEJveC5hZGQoJnJlbmRlcmVyLCAmbGF5b3V0Qm94
KTsgfQorCitwcml2YXRlOgorICAgIGNvbnN0IFJlbmRlckJveCYgbV9yb290UmVuZGVyZXI7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5lcj4gbV9yb290TGF5b3V0Qm94OworICAgIFJlbmRl
ck9iamVjdFRvTGF5b3V0Qm94TWFwIG1fcmVuZGVyT2JqZWN0VG9MYXlvdXRCb3g7CiB9OwogCiBj
bGFzcyBUcmVlQnVpbGRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIExheW91dFRyZWVDb250ZW50
IGJ1aWxkTGF5b3V0VHJlZShjb25zdCBSZW5kZXJWaWV3Jik7CisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxMYXlvdXQ6OkxheW91dFRyZWVDb250ZW50PiBidWlsZExheW91dFRyZWUoY29uc3Qg
UmVuZGVyVmlldyYpOwogCiBwcml2YXRlOgogICAgIFRyZWVCdWlsZGVyKExheW91dFRyZWVDb250
ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNw
cAppbmRleCAyZmFkZTk3MTY5NDRhMTE0NDliMTQ3YWYzZGJlZmRkNzdjYTg2MTlkLi43NDQ3NmZh
ODc3ZmExNDY4YWE2NTRlYmJjYmM0YTM3NzU2MzI4MWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTQwLDggKzQwLDExIEBACiAjaW5j
bHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
ZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKyNpbmNsdWRlICJJbnZhbGlkYXRp
b25Db250ZXh0LmgiCisjaW5jbHVkZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJM
YXlvdXRDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKKyNpbmNsdWRlICJMYXlv
dXRUcmVlQnVpbGRlci5oIgogI2VuZGlmCiAKICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4K
QEAgLTU1LDEwICs1OCwzMSBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dFVz
aW5nRm9ybWF0dGluZ0NvbnRleHQoKQogewogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dEVuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2xheW91dFRyZWVDb250ZW50KSB7CisgICAgICAg
IG1fbGF5b3V0VHJlZUNvbnRlbnQgPSBMYXlvdXQ6OlRyZWVCdWlsZGVyOjpidWlsZExheW91dFRy
ZWUoKnJlbmRlclZpZXcoKSk7CisgICAgICAgIC8vIEZJWE1FOiBOZXcgbGF5b3V0IHRyZWUgcmVx
dWlyZXMgYSBuZXcgc3RhdGUgZm9yIG5vdy4KKyAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IG51bGxw
dHI7CisgICAgfQogICAgIGlmICghbV9sYXlvdXRTdGF0ZSkKLSAgICAgICAgbV9sYXlvdXRTdGF0
ZSA9IExheW91dDo6TGF5b3V0Q29udGV4dDo6Y3JlYXRlTGF5b3V0U3RhdGUoKnJlbmRlclZpZXco
KSk7Ci0gICAgTGF5b3V0OjpMYXlvdXRDb250ZXh0OjpydW5MYXlvdXRBbmRWZXJpZnkocmVuZGVy
VmlldygpLT5zaXplKCksICptX2xheW91dFN0YXRlKTsKLX0gCisgICAgICAgIG1fbGF5b3V0U3Rh
dGUgPSBtYWtlVW5pcXVlPExheW91dDo6TGF5b3V0U3RhdGU+KCptX2xheW91dFRyZWVDb250ZW50
KTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5vdCB0aGUgcmVhbCBpbnZhbGlkYXRpb24geWV0
LgorICAgIGF1dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBMYXlvdXQ6OkludmFsaWRhdGlvblN0YXRl
IHsgfTsKKyAgICBhdXRvIGludmFsaWRhdGlvbkNvbnRleHQgPSBMYXlvdXQ6OkludmFsaWRhdGlv
bkNvbnRleHQgeyBpbnZhbGlkYXRpb25TdGF0ZSB9OworICAgIGludmFsaWRhdGlvbkNvbnRleHQu
c3R5bGVDaGFuZ2VkKCptX2xheW91dFN0YXRlLT5yb290KCkuZmlyc3RDaGlsZCgpLCBTdHlsZURp
ZmZlcmVuY2U6OkxheW91dCk7CisKKyAgICBhdXRvIGxheW91dENvbnRleHQgPSBMYXlvdXQ6Okxh
eW91dENvbnRleHQgeyAqbV9sYXlvdXRTdGF0ZSB9OworICAgIGxheW91dENvbnRleHQubGF5b3V0
KHJlbmRlclZpZXcoKS0+c2l6ZSgpLCBpbnZhbGlkYXRpb25TdGF0ZSk7CisjaWZuZGVmIE5ERUJV
RworICAgIExheW91dDo6TGF5b3V0Q29udGV4dDo6dmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdM
YXlvdXRUcmVlKCptX2xheW91dFN0YXRlKTsKKyNlbmRpZgorfQorCit2b2lkIEZyYW1lVmlld0xh
eW91dENvbnRleHQ6OmludmFsaWRhdGVMYXlvdXRUcmVlQ29udGVudCgpCit7CisgICAgbV9sYXlv
dXRUcmVlQ29udGVudCA9IG51bGxwdHI7Cit9CiAjZW5kaWYKIAogc3RhdGljIGJvb2wgaXNPYmpl
Y3RBbmNlc3RvckNvbnRhaW5lck9mKFJlbmRlckVsZW1lbnQmIGFuY2VzdG9yLCBSZW5kZXJFbGVt
ZW50JiBkZXNjZW5kYW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuaAppbmRleCBlNTkxZDExZGM4ZmRmMTkzNTFjZDgyMDhhOWQyMTYzYmQwMDQ1OWE0Li43
NTBmM2RmOWQzNWU0ZDU3YjY1OWE4ZDFmMGJkYzhjM2ViZjE0MjM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtNDUsNiArNDUsNyBAQCBjbGFz
cyBSZW5kZXJWaWV3OwogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogbmFt
ZXNwYWNlIExheW91dCB7CiBjbGFzcyBMYXlvdXRTdGF0ZTsKK2NsYXNzIExheW91dFRyZWVDb250
ZW50OwogfQogI2VuZGlmCiAgICAgCkBAIC0xMTcsNiArMTE4LDggQEAgcHVibGljOgogCiAjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAgICAgY29uc3QgTGF5b3V0OjpMYXlv
dXRTdGF0ZSogbGF5b3V0Rm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRT
dGF0ZS5nZXQoKTsgfQorICAgIExheW91dDo6TGF5b3V0VHJlZUNvbnRlbnQqIGxheW91dFRyZWVD
b250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRUcmVlQ29udGVudC5nZXQoKTsgfQorICAg
IHZvaWQgaW52YWxpZGF0ZUxheW91dFRyZWVDb250ZW50KCk7CiAjZW5kaWYKIAogcHJpdmF0ZToK
QEAgLTE4OSw2ICsxOTIsNyBAQCBwcml2YXRlOgogICAgIExheW91dFN0YXRlU3RhY2sgbV9sYXlv
dXRTdGF0ZVN0YWNrOwogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogICAg
IHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6OkxheW91dFN0YXRlPiBtX2xheW91dFN0YXRlOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6OkxheW91dFRyZWVDb250ZW50PiBtX2xheW91dFRyZWVD
b250ZW50OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAppbmRleCBlZDRjNWEwMDZjMTJiY2Mw
Y2I3MGZiYmIxMGIxOTgyY2NmMzM1ODJkLi42ZDUxMzFmZWI3OTk3NmM3YzQ1ZjQ2Y2MzYjIwNWU5
ZTk1NjAzYjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTI5OSw3ICsyOTksNyBAQCB2b2lkIFJlbmRl
clRyZWVVcGRhdGVyOjp1cGRhdGVSZW5kZXJlclN0eWxlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVy
LCBSZW5kZXJTdHlsZQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZCgpKSB7CiAgICAgICAgIGlmICgh
bV9kb2N1bWVudC52aWV3KCkgfHwgbV9kb2N1bWVudC52aWV3KCktPmxheW91dENvbnRleHQoKS5s
YXlvdXRGb3JtYXR0aW5nU3RhdGUoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYg
KGF1dG8qIGxheW91dEJveCA9IG1fZG9jdW1lbnQudmlldygpLT5sYXlvdXRDb250ZXh0KCkubGF5
b3V0Rm9ybWF0dGluZ1N0YXRlKCktPmxheW91dEJveEZvclJlbmRlcmVyKHJlbmRlcmVyKSkKKyAg
ICAgICAgaWYgKGF1dG8qIGxheW91dEJveCA9IG1fZG9jdW1lbnQudmlldygpLT5sYXlvdXRDb250
ZXh0KCkubGF5b3V0VHJlZUNvbnRlbnQoKS0+bGF5b3V0Qm94Rm9yUmVuZGVyZXIocmVuZGVyZXIp
KQogICAgICAgICAgICAgbGF5b3V0Qm94LT51cGRhdGVTdHlsZShuZXdTdHlsZSk7CiAgICAgfQog
I2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>