<?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>216747</bug_id>
          
          <creation_ts>2020-09-20 11:09:02 -0700</creation_ts>
          <short_desc>[LFC Display] Move LFC Display infrastructure files into a new &apos;display&apos; directory</short_desc>
          <delta_ts>2020-09-21 12:02:03 -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>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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</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>1690180</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-09-20 11:09:02 -0700</bug_when>
    <thetext>[LFC Display] Move LFC Display infrastructure files into a new toplevel &apos;display&apos; directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690181</commentid>
    <comment_count>1</comment_count>
      <attachid>409238</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-09-20 11:10:05 -0700</bug_when>
    <thetext>Created attachment 409238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690194</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-20 12:21:35 -0700</bug_when>
    <thetext>Committed r267328: &lt;https://trac.webkit.org/changeset/267328&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409238.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690387</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-21 12:02:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/69318362&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409238</attachid>
            <date>2020-09-20 11:10:05 -0700</date>
            <delta_ts>2020-09-20 12:21:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216747-20200920111005.patch</filename>
            <type>text/plain</type>
            <size>47216</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY1YmExZjkxNjA1M2M3
MWIxYmFkN2ZlNjcyODhhZTViYjM0MjhlYi4uZWFiYWI1OGRiNmEyNzMxNDMwMWFmNzVkMWNkNmI5
ODQ0ZjA1ZWEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA5LTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkMgRGlzcGxh
eV0gTW92ZSBMRkMgRGlzcGxheSBpbmZyYXN0cnVjdHVyZSBmaWxlcyBpbnRvIGEgbmV3ICdkaXNw
bGF5JyBkaXJlY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjc0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlYkNvcmUvU291cmNlL2Rpc3BsYXkgd2lsbCBiZWNvbWUgdGhlIGhvbWUgZm9yIGFs
bCB0aGUgTEZDIHBhaW50aW5nIGNvZGU7IG1vdmUKKyAgICAgICAgRGlzcGxheVZpZXcgYW5kIERp
c3BsYXlMYXllckNvbnRyb2xsZXIgaW50byBpdC4KKyAgICAgICAgCisgICAgICAgIEFsc28gZml4
IHNvbWUgdW5pZmllZCBidWlsZCBpbmNsdWRlIGlzc3Vlcy4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGRpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZGlzcGxheS9EaXNwbGF5TGF5ZXJDb250cm9sbGVyLmNwcC4KKyAgICAg
ICAgKiBkaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuaC4KKyAgICAg
ICAgKiBkaXNwbGF5L0Rpc3BsYXlWaWV3LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2xheW91dC9kaXNwbGF5L0Rpc3BsYXlWaWV3LmNwcC4KKyAgICAgICAgKiBkaXNwbGF5L0Rpc3Bs
YXlWaWV3Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheS9EaXNw
bGF5Vmlldy5oLgorICAgICAgICAqIGxheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmVCb3guY3BwOgorCiAyMDIwLTA5LTIwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSUZDXSBJbmxpbmVGb3JtYXR0aW5nU3RhdGUgc2hvdWxkIG5vdCBz
dG9yZSBkaXNwbGF5IGxpbmVzIGFuZCBydW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGE0MzBj
ZjcwYzEyMmZhZWJhMDVhZWRhNWI3ZGU5MzQ3OTIyZjBlMTYuLjUwNzljYjE5ZjQ0NjA0N2JlNjg1
YThmOGY0YTlhYjVhZmVkNjI3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC04NCw2ICs4NCw3
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNP
UkVfRElSfS9jc3MvcGFyc2VyIgogICAgICIke1dFQkNPUkVfRElSfS9jc3MvdHlwZWRvbSIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vY3Nzaml0IgorICAgICIke1dFQkNPUkVfRElSfS9kaXNwbGF5Igog
ICAgICIke1dFQkNPUkVfRElSfS9kb20iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2RvbS9tZXNzYWdl
cG9ydHMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2RvbWppdCIKQEAgLTEwMyw3ICsxMDQsNiBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJ
Un0vbGF5b3V0IgogICAgICIke1dFQkNPUkVfRElSfS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nIgog
ICAgICIke1dFQkNPUkVfRElSfS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL3RhYmxld3JhcHBlciIK
LSAgICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0L2Rpc3BsYXkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L2xheW91dC9kaXNwbGF5dHJlZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0L2ZsZXhmb3Jt
YXR0aW5nIgogICAgICIke1dFQkNPUkVfRElSfS9sYXlvdXQvZmxvYXRzIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKaW5kZXggNDZiNjVkMGVhNWI0NTY3YTRhYzY3NTk1ZjdjOTk0ZTUxNzYyZDJiZi4uMzhjMDZi
OGJiZGNjMWExMDgxN2FmOTgxOWMwMWM2MGVlMjhkZjI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBA
IC0zNjEsNiArMzYxLDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIGNzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uaAogICAgIGNzcy9wYXJzZXIvQ1NTUGFyc2Vy
VG9rZW5SYW5nZS5oCiAKKyAgICBkaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuaAorICAg
IGRpc3BsYXkvRGlzcGxheVZpZXcuaAorCiAgICAgZG9tL0FjdGl2ZURPTUNhbGxiYWNrLmgKICAg
ICBkb20vQWN0aXZlRE9NT2JqZWN0LmgKICAgICBkb20vQXR0ci5oCkBAIC02OTMsOSArNjk2LDYg
QEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGxheW91dC9MYXlv
dXRVbml0cy5oCiAgICAgbGF5b3V0L01hcmdpblR5cGVzLmgKIAotICAgIGxheW91dC9kaXNwbGF5
L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuaAotICAgIGxheW91dC9kaXNwbGF5L0Rpc3BsYXlWaWV3
LmgKLQogICAgIGxheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmgKICAgICBsYXlvdXQvZGlz
cGxheXRyZWUvRGlzcGxheUlubGluZUNvbnRlbnQuaAogICAgIGxheW91dC9kaXNwbGF5dHJlZS9E
aXNwbGF5TGluZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGMwZmU5NDAxYzAzZjA4ZTFhMGMxM2ZhMTI0
N2Y3MGMyZjg0MmI2ZjcuLjcyNzU2M2U1ZmI3N2E0NTk0MzEwYzQwZTMzZWU0NjY4Y2I4NWE4Zjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC03OTQsNiArNzk0LDggQEAgY3NzL3R5cGVkb20vVHlwZWRPTUNT
U1N0eWxlVmFsdWUuY3BwCiBjc3MvdHlwZWRvbS9UeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcAogY3Nz
L3R5cGVkb20vVHlwZWRPTUNTU1VucGFyc2VkVmFsdWUuY3BwCiBjc3NqaXQvU2VsZWN0b3JDb21w
aWxlci5jcHAKK2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHAKK2Rpc3BsYXkvRGlz
cGxheVZpZXcuY3BwCiBkb20vQWJvcnRDb250cm9sbGVyLmNwcAogZG9tL0Fib3J0U2lnbmFsLmNw
cAogZG9tL0FjdGl2ZURPTUNhbGxiYWNrLmNwcApAQCAtMTQzMiw4ICsxNDM0LDYgQEAgbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAogbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCiBsYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmNwcAogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKLWxheW91dC9kaXNwbGF5L0Rpc3BsYXlMYXll
ckNvbnRyb2xsZXIuY3BwCi1sYXlvdXQvZGlzcGxheS9EaXNwbGF5Vmlldy5jcHAKIGxheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5Qm94LmNwcAogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxp
bmVDb250ZW50LmNwcAogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDg4ODc3MmU2MDRiNzUwNjNhN2Y5Y2I1OGM2MDg3YTFhNmIzYTY2M2IuLjNkY2M1ZTcxYjhiMTMz
OTAwMjYyMWFjN2I2Y2FiNzQwYWRmY2UyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxOCw2ICszMTgsOCBAQAogCQkwRjZB
MTJCRTFBMDA5MjM3MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkExMkJDMUEwMDkyMzcwMEM2REU3
MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGNkI3MDdBMjM3QkMzNkQwMDUyQ0E0NyAvKiBDU1NVbml0cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjcwNzcy
MzdCQzEyRjAwNTJDQTQ3IC8qIENTU1VuaXRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3M0I3NjkyMjJCM0EwQzAwODA1MzE2IC8qIFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzA1MTZBMjE5QjVFQkUwMDMxQzM5RSAvKiBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8q
IERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNzkwRjNFMjUxN0NFNkQwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJD
b250cm9sbGVyLmggKi87IH07CisJCTBGNzkwRjQzMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5
Vmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3
OTBGM0YyNTE3Q0U2RDAwOUJBMDM0IC8qIERpc3BsYXlWaWV3LmggKi87IH07CiAJCTBGN0QwNzMz
MTg4NEM1NkMwMEI0QUY4NiAvKiBQbGF0Zm9ybVRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8q
IFBsYXRmb3JtVGV4dFRyYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY4NTBGRTMxRUQ3QzE4MzAwRkI3N0E3IC8qIFBlcmZvcm1hbmNlTG9n
Z2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4NTBGRTIxRUQ3QzE4MzAwRkI3N0E3IC8qIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODcx
NjcwMUM4NjlEODMwMDRGRjBERSAvKiBMZW5ndGhQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzE2NkUxQzg2OUQ4MzAwNEZGMERFIC8qIExl
bmd0aFBvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTU5NjAsNiArNTk2MiwxMCBAQAogCQkwRjZCNzA3OTIzN0JDMTJGMDA1MkNBNDcgLyog
Q1NTVW5pdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTVW5pdHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjcwNDk1RDIxMUI1MjQyMDAzNjk5NjggLyogQWN0aXZpdHlT
dGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY3Rpdml0eVN0YXRlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3M0I3NjUyMjJCMzI3RjAwODA1MzE2IC8qIFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEY3OTBGM0QyNTE3Q0U2RDAwOUJBMDM0IC8qIERpc3BsYXlWaWV3LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEY3OTBGM0UyNTE3Q0U2RDAwOUJBMDM0IC8qIERpc3BsYXlMYXllckNv
bnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxheWVy
Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjc5MEYzRjI1MTdD
RTZEMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGlzcGxheVZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3OTBG
NDAyNTE3Q0U2RDAwOUJBMDM0IC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0RGMTQ3MUUyQkYxQTYwMDk1OTUxQiAv
KiBXZWJDb3JlSlNDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkNvcmVKU0NsaWVudERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjg1MEZFMjFFRDdDMTgzMDBGQjc3QTcgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9nZ2luZ0Ns
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3MTY2RDFDODY5RDgzMDA0
RkYwREUgLyogTGVuZ3RoUG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTGVuZ3RoUG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjA3
NSwxMCArNjA4MSw2IEBACiAJCTBGRjgzNUJGMUVFMzU0REEwMDhCNENDNyAvKiBET01RdWFkLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01RdWFkLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZGODM1QzAxRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1YWRJbml0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVF1YWRJbml0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGRjgzNUMxMUVFMzU0REEwMDhCNENDNyAvKiBET01RdWFkSW5p
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NUXVhZEluaXQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwRkZCNERBMTI1MEVBMDBFMDA4NkI5NTIgLyogRGlzcGxheUxh
eWVyQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRkI0REEyMjUwRUEwMEYwMDg2Qjk1MiAv
KiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlM
YXllckNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkZCNERB
MzI1MEVBMzcwMDA4NkI5NTIgLyogRGlzcGxheVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxh
eVZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZGQjREQTQyNTBFQTM3MDAw
ODZCOTUyIC8qIERpc3BsYXlWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlWaWV3
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGRDQ1QTcyNDNCRjI1NzAwMEQ0
QkVBIC8qIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkZENDVBODI0M0JGMjU3MDAwRDRCRUEgLyogU2Nyb2xsaW5nVHJlZUxhdGNoaW5n
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdD
b250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGRDRENUUxODY1
MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzIwNyw2ICsxNzIwOSw3IEBACiAJCQkJ
RTFGRjhGNUIxODA3MzYyQjAwMTMyNjc0IC8qIGNyeXB0byAqLywKIAkJCQlGNTIzRDE4NDAyREU0
MkU4MDE4NjM1Q0EgLyogY3NzICovLAogCQkJCTI2Qjk5OThEMTgwM0FERkEwMEQwMTEyMSAvKiBj
c3NqaXQgKi8sCisJCQkJMEY3OTBGM0MyNTE3Q0U2RDAwOUJBMDM0IC8qIGRpc3BsYXkgKi8sCiAJ
CQkJRjUyM0QzMjQwMkRFNDQ3ODAxODYzNUNBIC8qIGRvbSAqLywKIAkJCQlFM0FGQTk2MzFEQTZF
OEFGMDAyODYxQkQgLyogZG9taml0ICovLAogCQkJCTkzMzA5RDg2MDk5RTY0OTEwMDU2RTU4MSAv
KiBlZGl0aW5nICovLApAQCAtMTc0MDIsNiArMTc0MDUsMTcgQEAKIAkJCXRhYldpZHRoID0gNDsK
IAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJMEY3OTBGM0MyNTE3Q0U2RDAwOUJBMDM0IC8qIGRp
c3BsYXkgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTBG
NzkwRjQwMjUxN0NFNkQwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmNwcCAqLywK
KwkJCQkwRjc5MEYzRTI1MTdDRTZEMDA5QkEwMzQgLyogRGlzcGxheUxheWVyQ29udHJvbGxlci5o
ICovLAorCQkJCTBGNzkwRjNEMjUxN0NFNkQwMDlCQTAzNCAvKiBEaXNwbGF5Vmlldy5jcHAgKi8s
CisJCQkJMEY3OTBGM0YyNTE3Q0U2RDAwOUJBMDM0IC8qIERpc3BsYXlWaWV3LmggKi8sCisJCQkp
OworCQkJcGF0aCA9IGRpc3BsYXk7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQkwRkU1RkJDOTFDM0RENTA2MDAwN0EyQ0EgLyogZGlzcGxheWxpc3RzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE3NDIwLDIyICsxNzQzNCwxMCBAQAog
CQkJcGF0aCA9IGRpc3BsYXlsaXN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
Ci0JCTBGRkI0REEwMjUwRTlGQzQwMDg2Qjk1MiAvKiBkaXNwbGF5ICovID0gewotCQkJaXNhID0g
UEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQkwRkZCNERBMjI1MEVBMDBGMDA4NkI5NTIg
LyogRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHAgKi8sCi0JCQkJMEZGQjREQTEyNTBFQTAwRTAw
ODZCOTUyIC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCAqLywKLQkJCQkwRkZCNERBNDI1MEVB
MzcwMDA4NkI5NTIgLyogRGlzcGxheVZpZXcuY3BwICovLAotCQkJCTBGRkI0REEzMjUwRUEzNzAw
MDg2Qjk1MiAvKiBEaXNwbGF5Vmlldy5oICovLAotCQkJKTsKLQkJCXBhdGggPSBkaXNwbGF5Owot
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJMTE1Q0ZBNjYyMDhBRjcyMDAwMUU2
OTkxIC8qIGxheW91dCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJMTE1Q0ZBOTkyMDhCQzA5QTAwMUU2OTkxIC8qIGJsb2NrZm9ybWF0dGluZyAqLywKLQkJ
CQkwRkZCNERBMDI1MEU5RkM0MDA4NkI5NTIgLyogZGlzcGxheSAqLywKIAkJCQkxMTk5RkE1ODIw
OEUzQzRDMDAyMzU4Q0MgLyogZGlzcGxheXRyZWUgKi8sCiAJCQkJNkZCN0QyRDUyNTBGRDdCNTAw
MDIwN0FBIC8qIGZsZXhmb3JtYXR0aW5nICovLAogCQkJCTZGQ0ZDMDU1MjEyREFDQzIwMDc2OTVE
MiAvKiBmbG9hdHMgKi8sCkBAIC0zMTAzNSw2ICszMTAzNyw3IEBACiAJCQkJN0VEQUFGQzkxOUEy
Q0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTE5OUZBNUIyMDhFM0M3RjAwMjM1OENDIC8qIERpc3BsYXlCb3guaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0NTFDNjM0MjM5NDA1OEYwMDk5MzE5MCAvKiBEaXNwbGF5SW5saW5lQ29udGVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlM
YXllckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjQ3RTYzMjI3NzQyNUEwMEM3
QkNCMCAvKiBEaXNwbGF5TGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDMxQzNERDUx
RTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFEMDk0MDI0
MDg5NjQwMDBERTREMkYgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0zMTA1MCw2ICszMTA1Myw3IEBACiAJCQkJMkRFNzAwMjMxOTJGRTgyQTAwQjA5NzVD
IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQyOUVD
QzgxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZGQ0UxQTFBMjI2MThBQkQwMDRGMDM0MyAvKiBEaXNwbGF5UnVuLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjc5MEY0MzI1MTdDRTZFMDA5QkEwMzQgLyogRGlzcGxheVZp
ZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDkxMTJCMDI2RjcwMEMxQTM1OSAvKiBEaXN0
YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMwNDAyODMyNDlBN0E2MjAwQTkwRDhEIC8qIERp
c3RhbmNlTW9kZWxUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ3NzEyNDhGMEIzMDBE
M0E5QzkgLyogRGlzdGFudExpZ2h0U291cmNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIyNzJkZDgwOGQxMTk1NWRlZDBkNDJlZGQ1NzNlOTQzZGUwN2Y4MDEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwCkBA
IC0wLDAgKzEsMjIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRpc3BsYXlMYXllckNvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFU
VElOR19DT05URVhUKQorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xp
ZW50LmgiCisjaW5jbHVkZSAiRGlzcGxheVBhaW50ZXIuaCIKKyNpbmNsdWRlICJEaXNwbGF5Vmll
dy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVk
ZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKKyNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCisjaW5j
bHVkZSAiTGF5b3V0U3RhdGUuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheSB7CisKK0xh
eWVyQ29udHJvbGxlcjo6Um9vdExheWVyQ2xpZW50OjpSb290TGF5ZXJDbGllbnQoTGF5ZXJDb250
cm9sbGVyJiBsYXllckNvbnRyb2xsZXIpCisgICAgOiBtX2xheWVyQ29udHJvbGxlcihsYXllckNv
bnRyb2xsZXIpCit7Cit9CisKK3ZvaWQgTGF5ZXJDb250cm9sbGVyOjpSb290TGF5ZXJDbGllbnQ6
Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit7CisgICAgbV9sYXll
ckNvbnRyb2xsZXIuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKK30KKwordm9pZCBMYXllckNv
bnRyb2xsZXI6OlJvb3RMYXllckNsaWVudDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xh
eWVyKiBsYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRp
cnR5UmVjdCwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpCit7CisgICAgQVNTRVJUX1VOVVNF
RChsYXllciwgbGF5ZXIgPT0gbV9sYXllckNvbnRyb2xsZXIuY29udGVudExheWVyKCkpOworCisg
ICAgLy8gRklYTUU6IFRlbXBvcmFyeTsgb25jZSB3ZSBkbyBzY3JvbGxpbmcgdGhpcyByb290IGxh
eWVyIHdvbid0IHBhaW50IGFueXRoaW5nLgorICAgIGlmIChhdXRvKiBsYXlvdXRTdGF0ZSA9IG1f
bGF5ZXJDb250cm9sbGVyLnZpZXcoKS5sYXlvdXRTdGF0ZSgpKQorICAgICAgICBMYXlvdXQ6Okxh
eW91dENvbnRleHQ6OnBhaW50KCpsYXlvdXRTdGF0ZSwgY29udGV4dCwgZW5jbG9zaW5nSW50UmVj
dChkaXJ0eVJlY3QpKTsKK30KKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKExheWVyQ29u
dHJvbGxlcik7CisKK0xheWVyQ29udHJvbGxlcjo6TGF5ZXJDb250cm9sbGVyKFZpZXcmIHZpZXcp
CisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1fcm9vdExheWVyQ2xpZW50KCp0aGlzKQorewor
fQorCitMYXllckNvbnRyb2xsZXI6On5MYXllckNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKK3Zv
aWQgTGF5ZXJDb250cm9sbGVyOjpwcmVwYXJlRm9yRGlzcGxheShjb25zdCBMYXlvdXQ6OkxheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSkKK3sKKyAgICBpZiAoIWxheW91dFN0YXRlLmhhc1Jvb3QoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgcm9vdExheW91dEJveCA9IGxheW91dFN0YXRl
LnJvb3QoKTsKKyAgICBpZiAoIXJvb3RMYXlvdXRCb3guZmlyc3RDaGlsZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBBU1NFUlQobGF5b3V0U3RhdGUuaGFzQm94R2VvbWV0cnkocm9vdExheW91
dEJveCkpOworCisgICAgYXV0byB2aWV3U2l6ZSA9IGxheW91dFN0YXRlLmdlb21ldHJ5Rm9yQm94
KHJvb3RMYXlvdXRCb3gpLmxvZ2ljYWxTaXplKCk7CisgICAgYXV0byBjb250ZW50U2l6ZSA9IGxh
eW91dFN0YXRlLmdlb21ldHJ5Rm9yQm94KCpyb290TGF5b3V0Qm94LmZpcnN0Q2hpbGQoKSkubG9n
aWNhbFNpemUoKTsKKyAgICAKKyAgICAvLyBGSVhNRTogVXNpbmcgdGhlIGZpcnN0Q2hpbGQoKSBz
aXplIHdvbid0IGJlIGNvcnJlY3QgdW50aWwgd2UgY29tcHV0ZSBvdmVyZmxvdyBjb3JyZWN0bHks
CisgICAgY29udGVudFNpemUuY2xhbXBUb01pbmltdW1TaXplKHZpZXdTaXplKTsKKworICAgIExP
R19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJMYXllckNv
bnRyb2xsZXI6OnByZXBhcmVGb3JEaXNwbGF5IC0gdmlld1NpemUgIiA8PCB2aWV3U2l6ZSA8PCAi
IGNvbnRlbnRTaXplICIgPDwgY29udGVudFNpemUpOworCisgICAgZW5zdXJlUm9vdExheWVyKHZp
ZXdTaXplLCBjb250ZW50U2l6ZSk7CisgICAgCisgICAgLy8gRklYTUU6IEZvciBub3csIHJlcGFp
bnQgdGhlIHdvcmxkIG9uIGV2ZXJ5IHVwZGF0ZS4KKyAgICBtX2NvbnRlbnRMYXllci0+c2V0TmVl
ZHNEaXNwbGF5KCk7CisgICAgCisgICAgYXV0byYgc2V0dGluZ3MgPSBtX3ZpZXcuZnJhbWUoKS5z
ZXR0aW5ncygpOworICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycyA9IHNldHRpbmdzLnNob3dEZWJ1
Z0JvcmRlcnMoKTsKKyAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA9IHNldHRpbmdzLnNob3dS
ZXBhaW50Q291bnRlcigpOworICAgIGJvb2wgYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCA9IHNl
dHRpbmdzLmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKTsKKworICAgIG1fcm9vdExheWVyLT5z
ZXRTaG93RGVidWdCb3JkZXIoc2hvd0RlYnVnQm9yZGVycyk7CisgICAgbV9jb250ZW50SG9zdExh
eWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0RlYnVnQm9yZGVycyk7CisKKyAgICBtX2NvbnRl
bnRMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dEZWJ1Z0JvcmRlcnMpOworICAgIG1fY29u
dGVudExheWVyLT5zZXRTaG93UmVwYWludENvdW50ZXIoc2hvd1JlcGFpbnRDb3VudGVyKTsKKyAg
ICBtX2NvbnRlbnRMYXllci0+c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKGFjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQpOworfQorCit2b2lkIExheWVyQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQorewor
ICAgIGlmICghbV9yb290TGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEZsb2F0UmVjdCB2
aXNpYmxlUmVjdCA9IHZpc2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZygpOworICAgIG1fcm9vdExh
eWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodmlzaWJsZVJlY3QpOworfQorCitGbG9hdFJlY3Qg
TGF5ZXJDb250cm9sbGVyOjp2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcoKSBjb25zdAorewor
ICAgIGNvbnN0IGF1dG8mIGZyYW1lVmlldyA9IG1fdmlldy5mcmFtZVZpZXcoKTsKKyAgICByZXR1
cm4gZnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpOworfQorCit2b2lkIExheWVyQ29udHJv
bGxlcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKQoreworICAgIGF1dG8gcGFnZSA9IG1fdmll
dy5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5z
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOworfQorCit2b2lkIExheWVyQ29udHJvbGxlcjo6ZW5z
dXJlUm9vdExheWVyKExheW91dFNpemUgdmlld1NpemUsIExheW91dFNpemUgY29udGVudFNpemUp
Cit7CisgICAgaWYgKG1fcm9vdExheWVyKSB7CisgICAgICAgIHVwZGF0ZVJvb3RMYXllckdlb21l
dHJ5KHZpZXdTaXplLCBjb250ZW50U2l6ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBzZXR1cFJvb3RMYXllckhpZXJhcmNoeSgpOworICAgIHVwZGF0ZVJvb3RMYXllckdlb21ldHJ5
KHZpZXdTaXplLCBjb250ZW50U2l6ZSk7CisKKyAgICBhdHRhY2hSb290TGF5ZXIoKTsKK30KKwor
dm9pZCBMYXllckNvbnRyb2xsZXI6OnNldHVwUm9vdExheWVySGllcmFyY2h5KCkKK3sKKyAgICAv
LyBGSVhNRTogVGhpcyBsYXllciBoaWVyYXJjaHkgaXMganVzdCBlbm91Z2ggdG8gZ2V0IHRvcENv
bnRlbnRJbnNldCB3b3JraW5nLgorICAgIG1fcm9vdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3Jl
YXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIG1fcm9vdExheWVyQ2xpZW50KTsKKyAgICBtX3Jv
b3RMYXllci0+c2V0TmFtZSgiZGlzcGxheSByb290Iik7CisgICAgbV9yb290TGF5ZXItPnNldFBv
c2l0aW9uKHsgfSk7CisgICAgbV9yb290TGF5ZXItPnNldEFuY2hvclBvaW50KHsgfSk7CisKKyAg
ICBtX2NvbnRlbnRIb3N0TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXll
ckZhY3RvcnkoKSwgbV9yb290TGF5ZXJDbGllbnQpOworICAgIG1fY29udGVudEhvc3RMYXllci0+
c2V0TmFtZSgiY29udGVudCBob3N0Iik7CisgICAgbV9jb250ZW50SG9zdExheWVyLT5zZXRBbmNo
b3JQb2ludCh7IH0pOworCisgICAgbV9jb250ZW50TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVh
dGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgbV9yb290TGF5ZXJDbGllbnQpOworICAgIG1fY29u
dGVudExheWVyLT5zZXROYW1lKCJjb250ZW50Iik7CisgICAgbV9jb250ZW50TGF5ZXItPnNldFBv
c2l0aW9uKHsgfSk7CisgICAgbV9jb250ZW50TGF5ZXItPnNldEFuY2hvclBvaW50KHsgfSk7Cisg
ICAgbV9jb250ZW50TGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICAKKyAgICBtX3Jv
b3RMYXllci0+YWRkQ2hpbGQoKm1fY29udGVudEhvc3RMYXllcik7CisgICAgbV9jb250ZW50SG9z
dExheWVyLT5hZGRDaGlsZCgqbV9jb250ZW50TGF5ZXIpOworfQorCit2b2lkIExheWVyQ29udHJv
bGxlcjo6dXBkYXRlUm9vdExheWVyR2VvbWV0cnkoTGF5b3V0U2l6ZSB2aWV3U2l6ZSwgTGF5b3V0
U2l6ZSBjb250ZW50U2l6ZSkKK3sKKyAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZSh2aWV3U2l6ZSk7
CisKKyAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQgPSBtX3ZpZXcuZnJhbWVWaWV3KCkudG9wQ29u
dGVudEluc2V0KCk7CisgICAgbV9jb250ZW50SG9zdExheWVyLT5zZXRQb3NpdGlvbih7IDAsIHRv
cENvbnRlbnRJbnNldCB9KTsKKyAgICBtX2NvbnRlbnRIb3N0TGF5ZXItPnNldFNpemUodmlld1Np
emUpOworCisgICAgbV9jb250ZW50TGF5ZXItPnNldFNpemUoY29udGVudFNpemUpOworfQorCit2
b2lkIExheWVyQ29udHJvbGxlcjo6YXR0YWNoUm9vdExheWVyKCkKK3sKKyAgICBhdXRvIHBhZ2Ug
PSBtX3ZpZXcucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIobV92aWV3LmZy
YW1lKCksIHJvb3RHcmFwaGljc0xheWVyKCkpOworfQorCit2b2lkIExheWVyQ29udHJvbGxlcjo6
ZGV0YWNoUm9vdExheWVyKCkKK3sKKyAgICBhdXRvIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIobV92aWV3LmZyYW1lKCksIG51bGxwdHIpOworfQor
Cit2b2lkIExheWVyQ29udHJvbGxlcjo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCit7
CisgICAgaWYgKGlzSW5XaW5kb3cpCisgICAgICAgIGF0dGFjaFJvb3RMYXllcigpOworICAgIGVs
c2UKKyAgICAgICAgZGV0YWNoUm9vdExheWVyKCk7Cit9CisKK0dyYXBoaWNzTGF5ZXJGYWN0b3J5
KiBMYXllckNvbnRyb2xsZXI6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QKK3sKKyAgICBh
dXRvIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZ3JhcGhpY3NM
YXllckZhY3RvcnkoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheQorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM4OTU3MDk1NjMwNWYyMWViOTU4OTU3YTE2NGNhY2UwY2FjZTE4YmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xs
ZXIuaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJEaXNwbGF5UmVj
dC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlICJMYXlvdXRVbml0cy5o
IgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBHcmFwaGljc0xheWVyOworY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rvcnk7CisKK25hbWVz
cGFjZSBMYXlvdXQgeworY2xhc3MgTGF5b3V0U3RhdGU7Cit9CisKK25hbWVzcGFjZSBEaXNwbGF5
IHsKKworY2xhc3MgVmlldzsKKworLy8gQSBjb250cm9sbGVyIG9iamVjdCB0aGF0IG1ha2VzIGxh
eWVyaXphdGlvbiBkZWNpc2lvbnMgZm9yIGEgZGlzcGxheSB0cmVlLCBmb3IgYSBzaW5nbGUgZG9j
dW1lbnQuCitjbGFzcyBMYXllckNvbnRyb2xsZXIgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoTGF5ZXJDb250cm9sbGVyKTsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBMYXllckNvbnRyb2xs
ZXIoVmlldyYpOworICAgIH5MYXllckNvbnRyb2xsZXIoKTsKKyAgICAKKyAgICB2b2lkIHByZXBh
cmVGb3JEaXNwbGF5KGNvbnN0IExheW91dDo6TGF5b3V0U3RhdGUmKTsKKyAgICB2b2lkIGZsdXNo
TGF5ZXJzKCk7CisKKyAgICB2b2lkIHNldElzSW5XaW5kb3coYm9vbCk7CisKKyAgICBjb25zdCBW
aWV3JiB2aWV3KCkgY29uc3QgeyByZXR1cm4gbV92aWV3OyB9CisKK3ByaXZhdGU6CisgICAgdm9p
ZCBlbnN1cmVSb290TGF5ZXIoTGF5b3V0U2l6ZSB2aWV3U2l6ZSwgTGF5b3V0U2l6ZSBjb250ZW50
U2l6ZSk7CisgICAgdm9pZCBhdHRhY2hSb290TGF5ZXIoKTsKKyAgICB2b2lkIGRldGFjaFJvb3RM
YXllcigpOworICAgIHZvaWQgc2V0dXBSb290TGF5ZXJIaWVyYXJjaHkoKTsKKyAgICB2b2lkIHVw
ZGF0ZVJvb3RMYXllckdlb21ldHJ5KExheW91dFNpemUgdmlld1NpemUsIExheW91dFNpemUgY29u
dGVudFNpemUpOworICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAKKyAg
ICBHcmFwaGljc0xheWVyKiByb290R3JhcGhpY3NMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9v
dExheWVyLmdldCgpOyB9CisgICAgR3JhcGhpY3NMYXllciogY29udGVudExheWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZW50TGF5ZXIuZ2V0KCk7IH0KKworICAgIEdyYXBoaWNzTGF5ZXJGYWN0
b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0OworCisgICAgRmxvYXRSZWN0IHZpc2li
bGVSZWN0Rm9yTGF5ZXJGbHVzaGluZygpIGNvbnN0OworCisgICAgY2xhc3MgUm9vdExheWVyQ2xp
ZW50IDogcHVibGljIEdyYXBoaWNzTGF5ZXJDbGllbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAg
Um9vdExheWVyQ2xpZW50KExheWVyQ29udHJvbGxlciYpOworCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRhdGlvbgorICAgICAgICB2b2lkIG5v
dGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIGZpbmFsOworICAgICAgICB2
b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBmaW5hbDsKKwor
ICAgICAgICBMYXllckNvbnRyb2xsZXImIG1fbGF5ZXJDb250cm9sbGVyOworICAgIH07CisKKyAg
ICBWaWV3JiBtX3ZpZXc7CisgICAgUm9vdExheWVyQ2xpZW50IG1fcm9vdExheWVyQ2xpZW50Owor
CisgICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOworICAgIFJlZlB0cjxHcmFw
aGljc0xheWVyPiBtX2NvbnRlbnRIb3N0TGF5ZXI7CisgICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXI+
IG1fY29udGVudExheWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheQorfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheVZpZXcuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2OTY5
MDI0N2U0MWI1YjViODc4NTM2N2IwMDhlOGNhOGE0ZDZiMjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlWaWV3LmNwcApAQCAtMCwwICsxLDkxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BsYXlWaWV3Lmgi
CisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3TGF5b3V0
Q29udGV4dC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNpbmNsdWRlICJMYXlvdXRT
dGF0ZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChWaWV3KTsKKworVmlldzo6VmlldyhGcmFtZVZpZXcmIGZy
YW1lVmlldykKKyAgICA6IG1fZnJhbWVWaWV3KGZyYW1lVmlldykKKyAgICAsIG1fbGF5ZXJDb250
cm9sbGVyKCp0aGlzKQoreworfQorCitWaWV3Ojp+VmlldygpCit7Cit9CisKK0ZyYW1lJiBWaWV3
OjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWVWaWV3LmZyYW1lKCk7Cit9CisK
K1BhZ2UqIFZpZXc6OnBhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lVmlldy5mcmFt
ZSgpLnBhZ2UoKTsKK30KKworY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSogVmlldzo6bGF5b3V0
U3RhdGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lVmlldy5sYXlvdXRDb250ZXh0KCku
bGF5b3V0Rm9ybWF0dGluZ1N0YXRlKCk7Cit9CisKK3ZvaWQgVmlldzo6cHJlcGFyZUZvckRpc3Bs
YXkoKQoreworICAgIGF1dG8qIGxheW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKTsKKyAg
ICBpZiAoIWxheW91dFN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVyQ29udHJv
bGxlci5wcmVwYXJlRm9yRGlzcGxheSgqbGF5b3V0U3RhdGUpOworfQorCit2b2lkIFZpZXc6OmZs
dXNoTGF5ZXJzKCkKK3sKKyAgICBtX2xheWVyQ29udHJvbGxlci5mbHVzaExheWVycygpOworfQor
Cit2b2lkIFZpZXc6OnNldElzSW5XaW5kb3coYm9vbCBpc0luV2luZG93KQoreworICAgIG1fbGF5
ZXJDb250cm9sbGVyLnNldElzSW5XaW5kb3coaXNJbldpbmRvdyk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIERpc3BsYXkKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShM
QVlPVVRfRk9STUFUVElOR19DT05URVhUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZGlz
cGxheS9EaXNwbGF5Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5Vmlldy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYzNjEwY2Q0NDVlYjNlYzVlODEyNWYyNGU2ZjA4OTkwZjMzNDE0MzMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlWaWV3LmgKQEAg
LTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJEaXNwbGF5TGF5ZXJDb250cm9s
bGVyLmgiCisjaW5jbHVkZSAiRGlzcGxheVJlY3QuaCIKKyNpbmNsdWRlICJMYXlvdXRVbml0cy5o
IgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBGcmFtZTsKK2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFBhZ2U7CisKK25hbWVzcGFjZSBM
YXlvdXQgeworY2xhc3MgTGF5b3V0U3RhdGU7CitjbGFzcyBMYXlvdXRUcmVlOworfQorCituYW1l
c3BhY2UgRGlzcGxheSB7CisKKy8vIFRoZSByb290IG9iamVjdCB3aGljaCByZW5kZXJzIGEgZGlz
cGxheSB0cmVlIGZvciBhIHNpbmdsZSBkb2N1bWVudC4KK2NsYXNzIFZpZXcgeworICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoVmlldyk7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVmlldyhGcmFt
ZVZpZXcmKTsKKyAgICB+VmlldygpOworICAgIAorICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXko
KTsKKyAgICB2b2lkIGZsdXNoTGF5ZXJzKCk7CisgICAgCisgICAgdm9pZCBzZXRJc0luV2luZG93
KGJvb2wpOworCisgICAgUGFnZSogcGFnZSgpIGNvbnN0OworICAgIEZyYW1lVmlldyYgZnJhbWVW
aWV3KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZVZpZXc7IH0KKyAgICBGcmFtZSYgZnJhbWUoKSBj
b25zdDsKKworICAgIGNvbnN0IExheW91dDo6TGF5b3V0U3RhdGUqIGxheW91dFN0YXRlKCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgRnJhbWVWaWV3JiBtX2ZyYW1lVmlldzsKKyAgICBMYXllckNv
bnRyb2xsZXIgbV9sYXllckNvbnRyb2xsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5
L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3Bs
YXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIyNzJkZDgwOGQxMTk1NWRlZDBkNDJlZGQ1NzNlOTQzZGUwN2Y4MDEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwy
MjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJE
aXNwbGF5TGF5ZXJDb250cm9sbGVyLmgiCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKLQotI2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkNocm9tZUNsaWVudC5o
IgotI2luY2x1ZGUgIkRpc3BsYXlQYWludGVyLmgiCi0jaW5jbHVkZSAiRGlzcGxheVZpZXcuaCIK
LSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkxh
eW91dEJveEdlb21ldHJ5LmgiCi0jaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgotI2luY2x1ZGUg
IkxheW91dFN0YXRlLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIK
LSNpbmNsdWRlICJTZXR0aW5ncy5oIgotCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIERpc3BsYXkgewotCi1MYXllckNv
bnRyb2xsZXI6OlJvb3RMYXllckNsaWVudDo6Um9vdExheWVyQ2xpZW50KExheWVyQ29udHJvbGxl
ciYgbGF5ZXJDb250cm9sbGVyKQotICAgIDogbV9sYXllckNvbnRyb2xsZXIobGF5ZXJDb250cm9s
bGVyKQotewotfQotCi12b2lkIExheWVyQ29udHJvbGxlcjo6Um9vdExheWVyQ2xpZW50Ojpub3Rp
ZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQotewotICAgIG1fbGF5ZXJDb250
cm9sbGVyLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7Ci19Ci0KLXZvaWQgTGF5ZXJDb250cm9s
bGVyOjpSb290TGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciog
bGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJl
Y3QsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKQotewotICAgIEFTU0VSVF9VTlVTRUQobGF5
ZXIsIGxheWVyID09IG1fbGF5ZXJDb250cm9sbGVyLmNvbnRlbnRMYXllcigpKTsKLQotICAgIC8v
IEZJWE1FOiBUZW1wb3Jhcnk7IG9uY2Ugd2UgZG8gc2Nyb2xsaW5nIHRoaXMgcm9vdCBsYXllciB3
b24ndCBwYWludCBhbnl0aGluZy4KLSAgICBpZiAoYXV0byogbGF5b3V0U3RhdGUgPSBtX2xheWVy
Q29udHJvbGxlci52aWV3KCkubGF5b3V0U3RhdGUoKSkKLSAgICAgICAgTGF5b3V0OjpMYXlvdXRD
b250ZXh0OjpwYWludCgqbGF5b3V0U3RhdGUsIGNvbnRleHQsIGVuY2xvc2luZ0ludFJlY3QoZGly
dHlSZWN0KSk7Ci19Ci0KLVdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChMYXllckNvbnRyb2xs
ZXIpOwotCi1MYXllckNvbnRyb2xsZXI6OkxheWVyQ29udHJvbGxlcihWaWV3JiB2aWV3KQotICAg
IDogbV92aWV3KHZpZXcpCi0gICAgLCBtX3Jvb3RMYXllckNsaWVudCgqdGhpcykKLXsKLX0KLQot
TGF5ZXJDb250cm9sbGVyOjp+TGF5ZXJDb250cm9sbGVyKCkgPSBkZWZhdWx0OwotCi12b2lkIExh
eWVyQ29udHJvbGxlcjo6cHJlcGFyZUZvckRpc3BsYXkoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0
ZSYgbGF5b3V0U3RhdGUpCi17Ci0gICAgaWYgKCFsYXlvdXRTdGF0ZS5oYXNSb290KCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGF1dG8mIHJvb3RMYXlvdXRCb3ggPSBsYXlvdXRTdGF0ZS5yb290
KCk7Ci0gICAgaWYgKCFyb290TGF5b3V0Qm94LmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgQVNTRVJUKGxheW91dFN0YXRlLmhhc0JveEdlb21ldHJ5KHJvb3RMYXlvdXRCb3gp
KTsKLQotICAgIGF1dG8gdmlld1NpemUgPSBsYXlvdXRTdGF0ZS5nZW9tZXRyeUZvckJveChyb290
TGF5b3V0Qm94KS5sb2dpY2FsU2l6ZSgpOwotICAgIGF1dG8gY29udGVudFNpemUgPSBsYXlvdXRT
dGF0ZS5nZW9tZXRyeUZvckJveCgqcm9vdExheW91dEJveC5maXJzdENoaWxkKCkpLmxvZ2ljYWxT
aXplKCk7Ci0gICAgCi0gICAgLy8gRklYTUU6IFVzaW5nIHRoZSBmaXJzdENoaWxkKCkgc2l6ZSB3
b24ndCBiZSBjb3JyZWN0IHVudGlsIHdlIGNvbXB1dGUgb3ZlcmZsb3cgY29ycmVjdGx5LAotICAg
IGNvbnRlbnRTaXplLmNsYW1wVG9NaW5pbXVtU2l6ZSh2aWV3U2l6ZSk7Ci0KLSAgICBMT0dfV0lU
SF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiTGF5ZXJDb250cm9s
bGVyOjpwcmVwYXJlRm9yRGlzcGxheSAtIHZpZXdTaXplICIgPDwgdmlld1NpemUgPDwgIiBjb250
ZW50U2l6ZSAiIDw8IGNvbnRlbnRTaXplKTsKLQotICAgIGVuc3VyZVJvb3RMYXllcih2aWV3U2l6
ZSwgY29udGVudFNpemUpOwotICAgIAotICAgIC8vIEZJWE1FOiBGb3Igbm93LCByZXBhaW50IHRo
ZSB3b3JsZCBvbiBldmVyeSB1cGRhdGUuCi0gICAgbV9jb250ZW50TGF5ZXItPnNldE5lZWRzRGlz
cGxheSgpOwotICAgIAotICAgIGF1dG8mIHNldHRpbmdzID0gbV92aWV3LmZyYW1lKCkuc2V0dGlu
Z3MoKTsKLSAgICBib29sIHNob3dEZWJ1Z0JvcmRlcnMgPSBzZXR0aW5ncy5zaG93RGVidWdCb3Jk
ZXJzKCk7Ci0gICAgYm9vbCBzaG93UmVwYWludENvdW50ZXIgPSBzZXR0aW5ncy5zaG93UmVwYWlu
dENvdW50ZXIoKTsKLSAgICBib29sIGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgPSBzZXR0aW5n
cy5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCk7Ci0KLSAgICBtX3Jvb3RMYXllci0+c2V0U2hv
d0RlYnVnQm9yZGVyKHNob3dEZWJ1Z0JvcmRlcnMpOwotICAgIG1fY29udGVudEhvc3RMYXllci0+
c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dEZWJ1Z0JvcmRlcnMpOwotCi0gICAgbV9jb250ZW50TGF5
ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93RGVidWdCb3JkZXJzKTsKLSAgICBtX2NvbnRlbnRM
YXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3dSZXBhaW50Q291bnRlcik7Ci0gICAgbV9j
b250ZW50TGF5ZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyhhY2NlbGVyYXRlZERyYXdpbmdFbmFi
bGVkKTsKLX0KLQotdm9pZCBMYXllckNvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKLXsKLSAgICBp
ZiAoIW1fcm9vdExheWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBGbG9hdFJlY3QgdmlzaWJs
ZVJlY3QgPSB2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcoKTsKLSAgICBtX3Jvb3RMYXllci0+
Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHZpc2libGVSZWN0KTsKLX0KLQotRmxvYXRSZWN0IExheWVy
Q29udHJvbGxlcjo6dmlzaWJsZVJlY3RGb3JMYXllckZsdXNoaW5nKCkgY29uc3QKLXsKLSAgICBj
b25zdCBhdXRvJiBmcmFtZVZpZXcgPSBtX3ZpZXcuZnJhbWVWaWV3KCk7Ci0gICAgcmV0dXJuIGZy
YW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoKTsKLX0KLQotdm9pZCBMYXllckNvbnRyb2xsZXI6
OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKLXsKLSAgICBhdXRvIHBhZ2UgPSBtX3ZpZXcucGFn
ZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFnZS0+c2NoZWR1
bGVSZW5kZXJpbmdVcGRhdGUoKTsKLX0KLQotdm9pZCBMYXllckNvbnRyb2xsZXI6OmVuc3VyZVJv
b3RMYXllcihMYXlvdXRTaXplIHZpZXdTaXplLCBMYXlvdXRTaXplIGNvbnRlbnRTaXplKQotewot
ICAgIGlmIChtX3Jvb3RMYXllcikgewotICAgICAgICB1cGRhdGVSb290TGF5ZXJHZW9tZXRyeSh2
aWV3U2l6ZSwgY29udGVudFNpemUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc2V0
dXBSb290TGF5ZXJIaWVyYXJjaHkoKTsKLSAgICB1cGRhdGVSb290TGF5ZXJHZW9tZXRyeSh2aWV3
U2l6ZSwgY29udGVudFNpemUpOwotCi0gICAgYXR0YWNoUm9vdExheWVyKCk7Ci19Ci0KLXZvaWQg
TGF5ZXJDb250cm9sbGVyOjpzZXR1cFJvb3RMYXllckhpZXJhcmNoeSgpCi17Ci0gICAgLy8gRklY
TUU6IFRoaXMgbGF5ZXIgaGllcmFyY2h5IGlzIGp1c3QgZW5vdWdoIHRvIGdldCB0b3BDb250ZW50
SW5zZXQgd29ya2luZy4KLSAgICBtX3Jvb3RMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShn
cmFwaGljc0xheWVyRmFjdG9yeSgpLCBtX3Jvb3RMYXllckNsaWVudCk7Ci0gICAgbV9yb290TGF5
ZXItPnNldE5hbWUoImRpc3BsYXkgcm9vdCIpOwotICAgIG1fcm9vdExheWVyLT5zZXRQb3NpdGlv
bih7IH0pOwotICAgIG1fcm9vdExheWVyLT5zZXRBbmNob3JQb2ludCh7IH0pOwotCi0gICAgbV9j
b250ZW50SG9zdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCksIG1fcm9vdExheWVyQ2xpZW50KTsKLSAgICBtX2NvbnRlbnRIb3N0TGF5ZXItPnNldE5h
bWUoImNvbnRlbnQgaG9zdCIpOwotICAgIG1fY29udGVudEhvc3RMYXllci0+c2V0QW5jaG9yUG9p
bnQoeyB9KTsKLQotICAgIG1fY29udGVudExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdy
YXBoaWNzTGF5ZXJGYWN0b3J5KCksIG1fcm9vdExheWVyQ2xpZW50KTsKLSAgICBtX2NvbnRlbnRM
YXllci0+c2V0TmFtZSgiY29udGVudCIpOwotICAgIG1fY29udGVudExheWVyLT5zZXRQb3NpdGlv
bih7IH0pOwotICAgIG1fY29udGVudExheWVyLT5zZXRBbmNob3JQb2ludCh7IH0pOwotICAgIG1f
Y29udGVudExheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7Ci0gICAgCi0gICAgbV9yb290TGF5
ZXItPmFkZENoaWxkKCptX2NvbnRlbnRIb3N0TGF5ZXIpOwotICAgIG1fY29udGVudEhvc3RMYXll
ci0+YWRkQ2hpbGQoKm1fY29udGVudExheWVyKTsKLX0KLQotdm9pZCBMYXllckNvbnRyb2xsZXI6
OnVwZGF0ZVJvb3RMYXllckdlb21ldHJ5KExheW91dFNpemUgdmlld1NpemUsIExheW91dFNpemUg
Y29udGVudFNpemUpCi17Ci0gICAgbV9yb290TGF5ZXItPnNldFNpemUodmlld1NpemUpOwotCi0g
ICAgZmxvYXQgdG9wQ29udGVudEluc2V0ID0gbV92aWV3LmZyYW1lVmlldygpLnRvcENvbnRlbnRJ
bnNldCgpOwotICAgIG1fY29udGVudEhvc3RMYXllci0+c2V0UG9zaXRpb24oeyAwLCB0b3BDb250
ZW50SW5zZXQgfSk7Ci0gICAgbV9jb250ZW50SG9zdExheWVyLT5zZXRTaXplKHZpZXdTaXplKTsK
LQotICAgIG1fY29udGVudExheWVyLT5zZXRTaXplKGNvbnRlbnRTaXplKTsKLX0KLQotdm9pZCBM
YXllckNvbnRyb2xsZXI6OmF0dGFjaFJvb3RMYXllcigpCi17Ci0gICAgYXV0byBwYWdlID0gbV92
aWV3LnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2Ut
PmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKG1fdmlldy5mcmFtZSgp
LCByb290R3JhcGhpY3NMYXllcigpKTsKLX0KLQotdm9pZCBMYXllckNvbnRyb2xsZXI6OmRldGFj
aFJvb3RMYXllcigpCi17Ci0gICAgYXV0byBwYWdlID0gbV92aWV3LnBhZ2UoKTsKLSAgICBpZiAo
IXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKG1fdmlldy5mcmFtZSgpLCBudWxscHRyKTsKLX0KLQotdm9p
ZCBMYXllckNvbnRyb2xsZXI6OnNldElzSW5XaW5kb3coYm9vbCBpc0luV2luZG93KQotewotICAg
IGlmIChpc0luV2luZG93KQotICAgICAgICBhdHRhY2hSb290TGF5ZXIoKTsKLSAgICBlbHNlCi0g
ICAgICAgIGRldGFjaFJvb3RMYXllcigpOwotfQotCi1HcmFwaGljc0xheWVyRmFjdG9yeSogTGF5
ZXJDb250cm9sbGVyOjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0Ci17Ci0gICAgYXV0byBw
YWdlID0gbV92aWV3LnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotCi0gICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJG
YWN0b3J5KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIERpc3BsYXkKLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJv
bGxlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODk1NzA5NTYzMDVmMjFlYjk1
ODk1N2ExNjRjYWNlMGNhY2UxOGJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5L0Rpc3BsYXlMYXllckNv
bnRyb2xsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQot
I2luY2x1ZGUgIkRpc3BsYXlSZWN0LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgotI2lu
Y2x1ZGUgIkxheW91dFVuaXRzLmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEdyYXBoaWNzTGF5ZXI7Ci1jbGFzcyBHcmFwaGljc0xh
eWVyRmFjdG9yeTsKLQotbmFtZXNwYWNlIExheW91dCB7Ci1jbGFzcyBMYXlvdXRTdGF0ZTsKLX0K
LQotbmFtZXNwYWNlIERpc3BsYXkgewotCi1jbGFzcyBWaWV3OwotCi0vLyBBIGNvbnRyb2xsZXIg
b2JqZWN0IHRoYXQgbWFrZXMgbGF5ZXJpemF0aW9uIGRlY2lzaW9ucyBmb3IgYSBkaXNwbGF5IHRy
ZWUsIGZvciBhIHNpbmdsZSBkb2N1bWVudC4KLWNsYXNzIExheWVyQ29udHJvbGxlciB7Ci0gICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChMYXllckNvbnRyb2xsZXIpOwotcHVibGljOgotICAgIGV4
cGxpY2l0IExheWVyQ29udHJvbGxlcihWaWV3Jik7Ci0gICAgfkxheWVyQ29udHJvbGxlcigpOwot
ICAgIAotICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0
ZSYpOwotICAgIHZvaWQgZmx1c2hMYXllcnMoKTsKLQotICAgIHZvaWQgc2V0SXNJbldpbmRvdyhi
b29sKTsKLQotICAgIGNvbnN0IFZpZXcmIHZpZXcoKSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0K
LQotcHJpdmF0ZToKLSAgICB2b2lkIGVuc3VyZVJvb3RMYXllcihMYXlvdXRTaXplIHZpZXdTaXpl
LCBMYXlvdXRTaXplIGNvbnRlbnRTaXplKTsKLSAgICB2b2lkIGF0dGFjaFJvb3RMYXllcigpOwot
ICAgIHZvaWQgZGV0YWNoUm9vdExheWVyKCk7Ci0gICAgdm9pZCBzZXR1cFJvb3RMYXllckhpZXJh
cmNoeSgpOwotICAgIHZvaWQgdXBkYXRlUm9vdExheWVyR2VvbWV0cnkoTGF5b3V0U2l6ZSB2aWV3
U2l6ZSwgTGF5b3V0U2l6ZSBjb250ZW50U2l6ZSk7Ci0gICAgdm9pZCBzY2hlZHVsZVJlbmRlcmlu
Z1VwZGF0ZSgpOwotICAgIAotICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RHcmFwaGljc0xheWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KLSAgICBHcmFwaGljc0xheWVyKiBj
b250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMYXllci5nZXQoKTsgfQotCi0g
ICAgR3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3Q7Ci0K
LSAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3RGb3JMYXllckZsdXNoaW5nKCkgY29uc3Q7Ci0KLSAg
ICBjbGFzcyBSb290TGF5ZXJDbGllbnQgOiBwdWJsaWMgR3JhcGhpY3NMYXllckNsaWVudCB7Ci0g
ICAgcHVibGljOgotICAgICAgICBSb290TGF5ZXJDbGllbnQoTGF5ZXJDb250cm9sbGVyJik7Ci0K
LSAgICBwcml2YXRlOgotICAgICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IGltcGxlbWVudGF0
aW9uCi0gICAgICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikgZmluYWw7Ci0gICAgICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVy
KiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgR3JhcGhpY3NMYXllclBhaW50
QmVoYXZpb3IpIGZpbmFsOwotCi0gICAgICAgIExheWVyQ29udHJvbGxlciYgbV9sYXllckNvbnRy
b2xsZXI7Ci0gICAgfTsKLQotICAgIFZpZXcmIG1fdmlldzsKLSAgICBSb290TGF5ZXJDbGllbnQg
bV9yb290TGF5ZXJDbGllbnQ7Ci0KLSAgICBSZWZQdHI8R3JhcGhpY3NMYXllcj4gbV9yb290TGF5
ZXI7Ci0gICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVudEhvc3RMYXllcjsKLSAgICBS
ZWZQdHI8R3JhcGhpY3NMYXllcj4gbV9jb250ZW50TGF5ZXI7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBEaXNwbGF5Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9kaXNwbGF5L0Rpc3BsYXlWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5
L0Rpc3BsYXlWaWV3LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjY5NjkwMjQ3
ZTQxYjViNWI4Nzg1MzY3YjAwOGU4Y2E4YTRkNmIyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheS9EaXNw
bGF5Vmlldy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRpc3BsYXlWaWV3LmgiCi0KLSNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIgot
I2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKLSNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgotI2lu
Y2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgRGlzcGxheSB7Ci0KLVdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChWaWV3KTsKLQotVmlldzo6VmlldyhGcmFtZVZpZXcmIGZyYW1lVmlldykKLSAg
ICA6IG1fZnJhbWVWaWV3KGZyYW1lVmlldykKLSAgICAsIG1fbGF5ZXJDb250cm9sbGVyKCp0aGlz
KQotewotfQotCi1WaWV3Ojp+VmlldygpCi17Ci19Ci0KLUZyYW1lJiBWaWV3OjpmcmFtZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fZnJhbWVWaWV3LmZyYW1lKCk7Ci19Ci0KLVBhZ2UqIFZpZXc6
OnBhZ2UoKSBjb25zdAotewotICAgIHJldHVybiBtX2ZyYW1lVmlldy5mcmFtZSgpLnBhZ2UoKTsK
LX0KLQotY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSogVmlldzo6bGF5b3V0U3RhdGUoKSBjb25z
dAotewotICAgIHJldHVybiBtX2ZyYW1lVmlldy5sYXlvdXRDb250ZXh0KCkubGF5b3V0Rm9ybWF0
dGluZ1N0YXRlKCk7Ci19Ci0KLXZvaWQgVmlldzo6cHJlcGFyZUZvckRpc3BsYXkoKQotewotICAg
IGF1dG8qIGxheW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKTsKLSAgICBpZiAoIWxheW91
dFN0YXRlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2xheWVyQ29udHJvbGxlci5wcmVwYXJl
Rm9yRGlzcGxheSgqbGF5b3V0U3RhdGUpOwotfQotCi12b2lkIFZpZXc6OmZsdXNoTGF5ZXJzKCkK
LXsKLSAgICBtX2xheWVyQ29udHJvbGxlci5mbHVzaExheWVycygpOwotfQotCi12b2lkIFZpZXc6
OnNldElzSW5XaW5kb3coYm9vbCBpc0luV2luZG93KQotewotICAgIG1fbGF5ZXJDb250cm9sbGVy
LnNldElzSW5XaW5kb3coaXNJbldpbmRvdyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIERpc3BsYXkK
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShMQVlPVVRfRk9STUFU
VElOR19DT05URVhUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXkv
RGlzcGxheVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5L0Rpc3BsYXlWaWV3
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzNjEwY2Q0NDVlYjNlYzVlODEyNWYy
NGU2ZjA4OTkwZjMzNDE0MzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXkvRGlzcGxheVZpZXcuaAorKysg
L2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiRGlzcGxh
eUxheWVyQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRpc3BsYXlSZWN0LmgiCi0jaW5jbHVkZSAi
TGF5b3V0VW5pdHMuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRnJhbWU7Ci1jbGFzcyBGcmFtZVZpZXc7Ci1jbGFzcyBQYWdlOwot
Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLWNsYXNzIExheW91dFN0YXRlOwotY2xhc3MgTGF5b3V0VHJl
ZTsKLX0KLQotbmFtZXNwYWNlIERpc3BsYXkgewotCi0vLyBUaGUgcm9vdCBvYmplY3Qgd2hpY2gg
cmVuZGVycyBhIGRpc3BsYXkgdHJlZSBmb3IgYSBzaW5nbGUgZG9jdW1lbnQuCi1jbGFzcyBWaWV3
IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFZpZXcpOwotcHVibGljOgotICAgIGV4cGxp
Y2l0IFZpZXcoRnJhbWVWaWV3Jik7Ci0gICAgflZpZXcoKTsKLSAgICAKLSAgICB2b2lkIHByZXBh
cmVGb3JEaXNwbGF5KCk7Ci0gICAgdm9pZCBmbHVzaExheWVycygpOwotICAgIAotICAgIHZvaWQg
c2V0SXNJbldpbmRvdyhib29sKTsKLQotICAgIFBhZ2UqIHBhZ2UoKSBjb25zdDsKLSAgICBGcmFt
ZVZpZXcmIGZyYW1lVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVWaWV3OyB9Ci0gICAgRnJh
bWUmIGZyYW1lKCkgY29uc3Q7Ci0KLSAgICBjb25zdCBMYXlvdXQ6OkxheW91dFN0YXRlKiBsYXlv
dXRTdGF0ZSgpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIEZyYW1lVmlldyYgbV9mcmFtZVZpZXc7
Ci0gICAgTGF5ZXJDb250cm9sbGVyIG1fbGF5ZXJDb250cm9sbGVyOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgRGlzcGxheQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxF
KExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmlu
ZGV4IDUzMTNiYzhlMzIwMDM4NGY2MDU4NmIyZGI3MzNiOTk1ZmM1ZmI4MWMuLmVjMTU4OGY0MTky
M2NhNmJlMDllNjRjMzQ5YmM3ODZjZDBjMmQyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQu
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRmxleEZvcm1hdHRpbmdTdGF0ZS5oIgog
I2luY2x1ZGUgIkludmFsaWRhdGlvblN0YXRlLmgiCiAjaW5jbHVkZSAiTGF5b3V0Q2hpbGRJdGVy
YXRvci5oIgorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3BwCmluZGV4
IDQ4YTM3OGMwYzUyZTNiMjdjMjBlMzBlZGE1NzJhNmJhMTVkMzBmMTEuLjI2YmY1MTBkYzczNThi
ZTgwZDZjM2ZiMmZjMjgyZWY0Njc2NWQ0NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3BwCkBAIC0yNSw2ICsy
NSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbmxpbmVMaW5lQm94Lmgi
CisjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyQm94LmgiCiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZP
Uk1BVFRJTkdfQ09OVEVYVCkKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>