<?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>222609</bug_id>
          
          <creation_ts>2021-03-02 10:45:59 -0800</creation_ts>
          <short_desc>Move AnimationFrameRate code into a .cpp file</short_desc>
          <delta_ts>2021-03-02 13:32:16 -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>Platform</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>graouts</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>1734928</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-02 10:45:59 -0800</bug_when>
    <thetext>Move AnimationFrameRate code into a .cpp file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734929</commentid>
    <comment_count>1</comment_count>
      <attachid>421964</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-02 10:47:40 -0800</bug_when>
    <thetext>Created attachment 421964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734931</commentid>
    <comment_count>2</comment_count>
      <attachid>421965</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-02 10:52:09 -0800</bug_when>
    <thetext>Created attachment 421965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734991</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-02 13:31:04 -0800</bug_when>
    <thetext>Committed r273758: &lt;https://commits.webkit.org/r273758&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421965.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734992</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-02 13:32:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/74946049&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421964</attachid>
            <date>2021-03-02 10:47:40 -0800</date>
            <delta_ts>2021-03-02 10:52:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222609-20210302104739.patch</filename>
            <type>text/plain</type>
            <size>15467</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI2OTFlZDg4YzRhYzI5
N2M0YTJjOTc0NTM1ZWNjOWIzOTU3YjJlOC4uMTJmZjFhMjQwMTYwZWVmYTNmZGQ4ZGIwY2YzNTQ2
ODUyMTQ5MDliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgQW5pbWF0
aW9uRnJhbWVSYXRlIGNvZGUgaW50byBhIC5jcHAgZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQW5pbWF0aW9uRnJhbWVSYXRlIGNvZGUgaXMgZ2V0
dGluZyBsYXJnZXIuIEl0IHNob3VsZCBub3QgYWxsIGJlIGlubGluZS4KKworICAgICAgICBBZGQg
QU5HTEVXZWJLaXRCcmlkZ2UuKiB0byB0aGUgcHJvamVjdDsgdGhleSB3ZXJlIG1pc3NpbmcuCisK
KyAgICAgICAgU29ydCB0aGUgWGNvZGUgcHJvamVjdCwgZGVhbCB3aXRoIHVuaWZpZWQgc291cmNl
cyBmYWxsb3V0LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Fu
aW1hdGlvbkZyYW1lUmF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oLgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVz
UGVyU2Vjb25kTmVhcmVzdEZ1bGxTcGVlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJyZWRG
cmFtZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OnByZWZlcnJlZEZyYW1lc1BlclNlY29u
ZCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OmZyYW1lc1Bl
clNlY29uZE5lYXJlc3RGdWxsU3BlZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJl
ZmVycmVkRnJhbWVJbnRlcnZhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJy
ZWRGcmFtZXNQZXJTZWNvbmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8
PCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VVdGlsaXRp
ZXNDRy5jcHA6CisKIDIwMjEtMDItMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9XRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9C
TE9DS0lORyB3aGljaCBpcyBhbHdheXMgdHJ1ZSBmb3IgbWFjT1MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
MTJiYWQ4NjdhYTExZjc5MGQyMTE4NmUxY2NhM2NjNGJhNTY5ODUzZS4uNDVmNzJkNGZmY2U2MDcz
MDZmMzFhMzIzNmRmNTM5MmUyYTMyZjNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE5MTgsNiArMTkx
OCw3IEBAIHBsYXRmb3JtL2dhbWVwYWQvRW1wdHlHYW1lcGFkUHJvdmlkZXIuY3BwCiBwbGF0Zm9y
bS9nYW1lcGFkL0dhbWVwYWRDb25zdGFudHMuY3BwCiBwbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQ
cm92aWRlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorcGxh
dGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yQmxlbmRpbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWI2NGJhNjZhOGU5ZTFjY2E5NjJiOWFlMTNh
ZjFhNDk2NzExZDhkYy4uMzg4NmFkNGM4NGU4ODE0NTNlYmE1OGQ3MjYzOTg0ZWE1OTA0ZGUwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjEzNSw2ICs2MTM1LDkgQEAKIAkJMEY3OTBGM0QyNTE3Q0U2RDAwOUJBMDM0IC8qIERp
c3BsYXlWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3Bs
YXlWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3OTBGM0YyNTE3Q0U2
RDAwOUJBMDM0IC8qIERpc3BsYXlWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpc3BsYXlWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0RGMTQ3
MUUyQkYxQTYwMDk1OTUxQiAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVKU0NsaWVudERhdGEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRjdFNDc1MTI1RUVCNzlBMDAxM0Y5MDkgLyogQW5pbWF0
aW9uRnJhbWVSYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFuaW1hdGlvbkZyYW1lUmF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0U0NzUzMjVFRUI3OUIwMDEzRjkw
OSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBTkdMRVdlYktp
dEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0U0NzU0MjVFRUI3
OUIwMDEzRjkwOSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdl
YktpdEJyaWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg1MEZFMjFFRDdD
MTgzMDBGQjc3QTcgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjg2ODJGQTI1NzA3RjQ3MDBDMDhCQjUgLyogRGlzcGxheVN0
YWNraW5nSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5U3RhY2tpbmdJdGVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODY4MkZDMjU3MDdGNDcwMEMwOEJCNSAvKiBEaXNw
bGF5U3RhY2tpbmdJdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlTdGFja2luZ0l0
ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc0NzcsOCArMTc0ODAsOCBA
QAogCQkJCTMxMzU5MTAzMUU3RERDNjAwMEYzMDYzMCAvKiBSVENJY2VUcmFuc3BvcnRTdGF0ZS5o
ICovLAogCQkJCTA3MjIxQkFBMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQuaCAqLywKIAkJCQk0MUE0OEE5RDFFODMxMkVCMDBEMkFDMkQgLyogUlRDUGVl
ckNvbm5lY3Rpb25TdGF0ZS5oICovLAotCQkJCTQxM0NDMTFDMjVFN0Q5OEQwMEQ1OUM0QiAvKiBS
VENQcmlvcml0eVR5cGUuaCAqLywKIAkJCQk0MTJCQTVGRTIxOEM2NTE4MDAzNjU0NzQgLyogUlRD
UE11eFBvbGljeS5oICovLAorCQkJCTQxM0NDMTFDMjVFN0Q5OEQwMEQ1OUM0QiAvKiBSVENQcmlv
cml0eVR5cGUuaCAqLywKIAkJCQk0MTJERTRCNjIxOTI4NUJGMDA3NUYzQTcgLyogUlRDUnRwQ2Fw
YWJpbGl0aWVzLmggKi8sCiAJCQkJNDFFMEE3REMyM0JCNjNEQjAwNTYxMDYwIC8qIFJUQ1J0cENv
ZGVjQ2FwYWJpbGl0eS5oICovLAogCQkJCTMxRUI1NEREMUU3REM3NDQwMEMxNjIzQiAvKiBSVENS
dHBUcmFuc2NlaXZlckRpcmVjdGlvbi5oICovLApAQCAtMjY2NDUsNiArMjY2NDgsOSBAQAogCQkJ
CTM3MjE0OTMzMThGMEI2RDYwMDE1NkVEQyAvKiBvcGVudHlwZSAqLywKIAkJCQk0OUU5MTFCMjBF
Rjg2RDI3MDA5RDBDQUYgLyogdHJhbnNmb3JtcyAqLywKIAkJCQk3Mjk5QkM2NDIzRDY4NkE2MDBD
QzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovLAorCQkJCTBGN0U0NzUzMjVFRUI3
OUIwMDEzRjkwOSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8sCisJCQkJMEY3RTQ3NTQyNUVF
Qjc5QjAwMTNGOTA5IC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi8sCisJCQkJMEY3RTQ3NTEyNUVF
Qjc5QTAwMTNGOTA5IC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5jcHAgKi8sCiAJCQkJNzIyQTgxNUMy
MzhGRDUwNTAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovLAogCQkJCUJFRjI5RUU5
MTcxNUREMDkwMEM0QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovLAogCQkJCUE4OTk0MzI3
MEI0MjMzODcwMEQ3QzgwMiAvKiBCaXRtYXBJbWFnZS5jcHAgKi8sCkBAIC0zMTE0NSw4ICszMTE1
MSw2IEBACiAJCQkJQ0RDMjZCNDExNjBBOENDRTAwMjY3NTdCIC8qIExlZ2FjeU1vY2tDRE0uaCBp
biBIZWFkZXJzICovLAogCQkJCUExQkY2QjgzMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVu
dEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCNUIyOUYxQUFBODQ2RjAwOEI2MDQyIC8q
IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxMDU4QURD
MUQ2NzkyQzEwMDlBNTM4QyAvKiBNb2NrR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEw
NThBREUxRDY3OTJDMTAwOUE1MzhDIC8qIE1vY2tHYW1lcGFkUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxNTdFQkZCMUUzQUI2N0YwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNv
bm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJENkYzRTkxMUMxRUNCMkYwMDYxREJENCAv
KiBNb2NrUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOTdGMDQ4MTlERDQxNDAw
MDFFRTlDMyAvKiBNb2NrUGFnZU92ZXJsYXlDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1
OTYsNiArMzQ2MDAsNyBAQAogCQkJCTA3OEUwOTQyMTdEMTZFMUMwMDQyMEFBMSAvKiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUU2RUM5MjU2
NkQyNzgwMDJCNTAxMCAvKiBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3OEUwOTI0MTdEMTREMUMwMDQyMEFBMSAvKiBSVENQZWVyQ29ubmVjdGlv
bkljZUV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTNDQzExRDI1RTdEOThFMDBENTlDNEIg
LyogUlRDUHJpb3JpdHlUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTE0RkUzMjI1QkVCRDE5
MDA5RDlGMjAgLyogUlRDUnRjcFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMkRF
NEI4MjE5Mjg1QzAwMDc1RjNBNyAvKiBSVENSdHBDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVFMkM0MzYzMUJDRUUzMkIwMDAxRTJCQyAvKiBSVENSdHBSZWNlaXZlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zNTA4OCw3ICszNTA5Myw2IEBACiAJCQkJNzE1MzdBMDExNDZCRDlENzAw
OEJENjE1IC8qIFNWR1BhdGhEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E1OTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzZD
OUYwMTFERjZBNTgwMDU1NUIwMiAvKiBTVkdQYXRoUGFyc2VyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTNDQzExRDI1RTdEOThFMDBENTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E1QjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBODEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDc2QzlFNjExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0
aFNlZ0xpc3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc3NGExNGE5NmJiODk5YjY3YTE3ZGRiOWEyZGZmYWM5ZjFkZDk1ZDkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUu
Y3BwCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRnJh
bWVSYXRlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRnJhbWVzUGVyU2Vjb25kIGZyYW1l
c1BlclNlY29uZE5lYXJlc3RGdWxsU3BlZWQoRnJhbWVzUGVyU2Vjb25kIG5vbWluYWxGcmFtZXNQ
ZXJTZWNvbmQpCit7CisgICAgaWYgKG5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPD0gRnVsbFNwZWVk
RnJhbWVzUGVyU2Vjb25kKQorICAgICAgICByZXR1cm4gbm9taW5hbEZyYW1lc1BlclNlY29uZDsK
KworICAgIGZsb2F0IGZ1bGxTcGVlZFJhdGlvID0gbm9taW5hbEZyYW1lc1BlclNlY29uZCAvIEZ1
bGxTcGVlZEZyYW1lc1BlclNlY29uZDsKKyAgICBGcmFtZXNQZXJTZWNvbmQgZmxvb3JTcGVlZCA9
IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQgLyBzdGQ6OmZsb29yKGZ1bGxTcGVlZFJhdGlvKTsKKyAg
ICBGcmFtZXNQZXJTZWNvbmQgY2VpbFNwZWVkID0gbm9taW5hbEZyYW1lc1BlclNlY29uZCAvIHN0
ZDo6Y2VpbChmdWxsU3BlZWRSYXRpbyk7CisKKyAgICByZXR1cm4gZnVsbFNwZWVkUmF0aW8gLSBz
dGQ6OmZsb29yKGZ1bGxTcGVlZFJhdGlvKSA8PSAwLjUgPyBmbG9vclNwZWVkIDogY2VpbFNwZWVk
OworfQorCitTZWNvbmRzIHByZWZlcnJlZEZyYW1lSW50ZXJ2YWwoY29uc3QgT3B0aW9uU2V0PFRo
cm90dGxpbmdSZWFzb24+JiByZWFzb25zLCBPcHRpb25hbDxGcmFtZXNQZXJTZWNvbmQ+IG5vbWlu
YWxGcmFtZXNQZXJTZWNvbmQpCit7CisgICAgaWYgKHJlYXNvbnMuY29udGFpbnMoVGhyb3R0bGlu
Z1JlYXNvbjo6T3V0c2lkZVZpZXdwb3J0KSkKKyAgICAgICAgcmV0dXJuIEFnZ3Jlc3NpdmVUaHJv
dHRsaW5nQW5pbWF0aW9uSW50ZXJ2YWw7CisKKyAgICBpZiAoIW5vbWluYWxGcmFtZXNQZXJTZWNv
bmQgfHwgKm5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPT0gRnVsbFNwZWVkRnJhbWVzUGVyU2Vjb25k
KSB7CisgICAgICAgIC8vIEZJWE1FOiBoYW5kbGUgVGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJ
ZGxlCisgICAgICAgIGlmIChyZWFzb25zLmNvbnRhaW5zQW55KHsgVGhyb3R0bGluZ1JlYXNvbjo6
TG93UG93ZXJNb2RlLCBUaHJvdHRsaW5nUmVhc29uOjpOb25JbnRlcmFjdGVkQ3Jvc3NPcmlnaW5G
cmFtZSB9KSkKKyAgICAgICAgICAgIHJldHVybiBIYWxmU3BlZWRUaHJvdHRsaW5nQW5pbWF0aW9u
SW50ZXJ2YWw7CisgICAgICAgIHJldHVybiBGdWxsU3BlZWRBbmltYXRpb25JbnRlcnZhbDsKKyAg
ICB9CisKKyAgICBhdXRvIGZyYW1lc1BlclNlY29uZCA9IGZyYW1lc1BlclNlY29uZE5lYXJlc3RG
dWxsU3BlZWQoKm5vbWluYWxGcmFtZXNQZXJTZWNvbmQpOworICAgIGF1dG8gaW50ZXJ2YWwgPSBT
ZWNvbmRzKDEuMCAvIGZyYW1lc1BlclNlY29uZCk7CisKKyAgICBpZiAocmVhc29ucy5jb250YWlu
c0FueSh7IFRocm90dGxpbmdSZWFzb246Okxvd1Bvd2VyTW9kZSwgVGhyb3R0bGluZ1JlYXNvbjo6
Tm9uSW50ZXJhY3RlZENyb3NzT3JpZ2luRnJhbWUsIFRocm90dGxpbmdSZWFzb246OlZpc3VhbGx5
SWRsZSB9KSkKKyAgICAgICAgaW50ZXJ2YWwgKj0gSW50ZXJ2YWxUaHJvdHRsaW5nRmFjdG9yOwor
CisgICAgcmV0dXJuIGludGVydmFsOworfQorCitGcmFtZXNQZXJTZWNvbmQgcHJlZmVycmVkRnJh
bWVzUGVyU2Vjb25kKFNlY29uZHMgcHJlZmVycmVkRnJhbWVJbnRlcnZhbCkKK3sKKyAgICBpZiAo
cHJlZmVycmVkRnJhbWVJbnRlcnZhbCA9PSBGdWxsU3BlZWRBbmltYXRpb25JbnRlcnZhbCkKKyAg
ICAgICAgcmV0dXJuIEZ1bGxTcGVlZEZyYW1lc1BlclNlY29uZDsKKworICAgIGlmIChwcmVmZXJy
ZWRGcmFtZUludGVydmFsID09IEhhbGZTcGVlZFRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbCkK
KyAgICAgICAgcmV0dXJuIEhhbGZTcGVlZFRocm90dGxpbmdGcmFtZXNQZXJTZWNvbmQ7CisKKyAg
ICByZXR1cm4gc3RkOjpyb3VuZCgxIC8gcHJlZmVycmVkRnJhbWVJbnRlcnZhbC5zZWNvbmRzKCkp
OworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBPcHRp
b25TZXQ8VGhyb3R0bGluZ1JlYXNvbj4mIHJlYXNvbnMpCit7CisgICAgYm9vbCBkaWRBcHBlbmQg
PSBmYWxzZTsKKworICAgIGZvciAoYXV0byByZWFzb24gOiByZWFzb25zKSB7CisgICAgICAgIGlm
IChkaWRBcHBlbmQpCisgICAgICAgICAgICB0cyA8PCAifCI7CisgICAgICAgIHN3aXRjaCAocmVh
c29uKSB7CisgICAgICAgIGNhc2UgVGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlOgorICAg
ICAgICAgICAgdHMgPDwgIlZpc3VhbGx5SWRsZSI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBUaHJvdHRsaW5nUmVhc29uOjpPdXRzaWRlVmlld3BvcnQ6CisgICAgICAgICAgICB0
cyA8PCAiT3V0c2lkZVZpZXdwb3J0IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFRocm90dGxpbmdSZWFzb246Okxvd1Bvd2VyTW9kZToKKyAgICAgICAgICAgIHRzIDw8ICJMb3dQ
b3dlck1vZGUiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVGhyb3R0bGluZ1Jl
YXNvbjo6Tm9uSW50ZXJhY3RlZENyb3NzT3JpZ2luRnJhbWU6CisgICAgICAgICAgICB0cyA8PCAi
Tm9uSW50ZXJhY3RpdmVDcm9zc09yaWdpbkZyYW1lIjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGRpZEFwcGVuZCA9IHRydWU7CisgICAgfQorCisgICAgaWYgKHJlYXNv
bnMuaXNFbXB0eSgpKQorICAgICAgICB0cyA8PCAiW1VudGhyb3R0bGVkXSI7CisgICAgcmV0dXJu
IHRzOworfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQW5pbWF0aW9uRnJhbWVSYXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaAppbmRleCA0Y2M0YTIxNjVl
NmQ1NDFmZTk5MWFhNDQ3NjIwMmIwNzgyOWNkYjY3Li4zYTMyYTk0OWI3MjI2ZTA3NmI2YjZlNmEw
ZTA1Y2NmMDJmZWJhNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9BbmltYXRpb25GcmFtZVJhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaApAQCAtNTAsNzcgKzUwLDEwIEBAIGNvbnN0ZXhw
ciBjb25zdCBpbnQgSW50ZXJ2YWxUaHJvdHRsaW5nRmFjdG9yIHsgMiB9OwogY29uc3RleHByIGNv
bnN0IEZyYW1lc1BlclNlY29uZCBGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQgPSA2MDsKIGNvbnN0
ZXhwciBjb25zdCBGcmFtZXNQZXJTZWNvbmQgSGFsZlNwZWVkVGhyb3R0bGluZ0ZyYW1lc1BlclNl
Y29uZCA9IDMwOwogCi1pbmxpbmUgRnJhbWVzUGVyU2Vjb25kIGZyYW1lc1BlclNlY29uZE5lYXJl
c3RGdWxsU3BlZWQoRnJhbWVzUGVyU2Vjb25kIG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpCi17Ci0g
ICAgaWYgKG5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPD0gRnVsbFNwZWVkRnJhbWVzUGVyU2Vjb25k
KQotICAgICAgICByZXR1cm4gbm9taW5hbEZyYW1lc1BlclNlY29uZDsKK1dFQkNPUkVfRVhQT1JU
IEZyYW1lc1BlclNlY29uZCBmcmFtZXNQZXJTZWNvbmROZWFyZXN0RnVsbFNwZWVkKEZyYW1lc1Bl
clNlY29uZCk7CitXRUJDT1JFX0VYUE9SVCBTZWNvbmRzIHByZWZlcnJlZEZyYW1lSW50ZXJ2YWwo
Y29uc3QgT3B0aW9uU2V0PFRocm90dGxpbmdSZWFzb24+JiwgT3B0aW9uYWw8RnJhbWVzUGVyU2Vj
b25kPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKK1dFQkNPUkVfRVhQT1JUIEZyYW1lc1BlclNl
Y29uZCBwcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoU2Vjb25kcyk7CiAKLSAgICBmbG9hdCBmdWxs
U3BlZWRSYXRpbyA9IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQgLyBGdWxsU3BlZWRGcmFtZXNQZXJT
ZWNvbmQ7Ci0gICAgRnJhbWVzUGVyU2Vjb25kIGZsb29yU3BlZWQgPSBub21pbmFsRnJhbWVzUGVy
U2Vjb25kIC8gc3RkOjpmbG9vcihmdWxsU3BlZWRSYXRpbyk7Ci0gICAgRnJhbWVzUGVyU2Vjb25k
IGNlaWxTcGVlZCA9IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQgLyBzdGQ6OmNlaWwoZnVsbFNwZWVk
UmF0aW8pOwotCi0gICAgcmV0dXJuIGZ1bGxTcGVlZFJhdGlvIC0gc3RkOjpmbG9vcihmdWxsU3Bl
ZWRSYXRpbykgPD0gMC41ID8gZmxvb3JTcGVlZCA6IGNlaWxTcGVlZDsKLX0KLQotaW5saW5lIFNl
Y29uZHMgcHJlZmVycmVkRnJhbWVJbnRlcnZhbChjb25zdCBPcHRpb25TZXQ8VGhyb3R0bGluZ1Jl
YXNvbj4mIHJlYXNvbnMsIE9wdGlvbmFsPEZyYW1lc1BlclNlY29uZD4gbm9taW5hbEZyYW1lc1Bl
clNlY29uZCkKLXsKLSAgICBpZiAocmVhc29ucy5jb250YWlucyhUaHJvdHRsaW5nUmVhc29uOjpP
dXRzaWRlVmlld3BvcnQpKQotICAgICAgICByZXR1cm4gQWdncmVzc2l2ZVRocm90dGxpbmdBbmlt
YXRpb25JbnRlcnZhbDsKLQotICAgIGlmICghbm9taW5hbEZyYW1lc1BlclNlY29uZCB8fCAqbm9t
aW5hbEZyYW1lc1BlclNlY29uZCA9PSBGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQpIHsKLSAgICAg
ICAgLy8gRklYTUU6IGhhbmRsZSBUaHJvdHRsaW5nUmVhc29uOjpWaXN1YWxseUlkbGUKLSAgICAg
ICAgaWYgKHJlYXNvbnMuY29udGFpbnNBbnkoeyBUaHJvdHRsaW5nUmVhc29uOjpMb3dQb3dlck1v
ZGUsIFRocm90dGxpbmdSZWFzb246Ok5vbkludGVyYWN0ZWRDcm9zc09yaWdpbkZyYW1lIH0pKQot
ICAgICAgICAgICAgcmV0dXJuIEhhbGZTcGVlZFRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbDsK
LSAgICAgICAgcmV0dXJuIEZ1bGxTcGVlZEFuaW1hdGlvbkludGVydmFsOwotICAgIH0KLQotICAg
IGF1dG8gZnJhbWVzUGVyU2Vjb25kID0gZnJhbWVzUGVyU2Vjb25kTmVhcmVzdEZ1bGxTcGVlZCgq
bm9taW5hbEZyYW1lc1BlclNlY29uZCk7Ci0gICAgYXV0byBpbnRlcnZhbCA9IFNlY29uZHMoMS4w
IC8gZnJhbWVzUGVyU2Vjb25kKTsKLQotICAgIGlmIChyZWFzb25zLmNvbnRhaW5zQW55KHsgVGhy
b3R0bGluZ1JlYXNvbjo6TG93UG93ZXJNb2RlLCBUaHJvdHRsaW5nUmVhc29uOjpOb25JbnRlcmFj
dGVkQ3Jvc3NPcmlnaW5GcmFtZSwgVGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlIH0pKQot
ICAgICAgICBpbnRlcnZhbCAqPSBJbnRlcnZhbFRocm90dGxpbmdGYWN0b3I7Ci0KLSAgICByZXR1
cm4gaW50ZXJ2YWw7Ci19Ci0KLWlubGluZSBGcmFtZXNQZXJTZWNvbmQgcHJlZmVycmVkRnJhbWVz
UGVyU2Vjb25kKFNlY29uZHMgcHJlZmVycmVkRnJhbWVJbnRlcnZhbCkKLXsKLSAgICBpZiAocHJl
ZmVycmVkRnJhbWVJbnRlcnZhbCA9PSBGdWxsU3BlZWRBbmltYXRpb25JbnRlcnZhbCkKLSAgICAg
ICAgcmV0dXJuIEZ1bGxTcGVlZEZyYW1lc1BlclNlY29uZDsKLQotICAgIGlmIChwcmVmZXJyZWRG
cmFtZUludGVydmFsID09IEhhbGZTcGVlZFRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbCkKLSAg
ICAgICAgcmV0dXJuIEhhbGZTcGVlZFRocm90dGxpbmdGcmFtZXNQZXJTZWNvbmQ7Ci0KLSAgICBy
ZXR1cm4gc3RkOjpyb3VuZCgxIC8gcHJlZmVycmVkRnJhbWVJbnRlcnZhbC5zZWNvbmRzKCkpOwot
fQotCi1pbmxpbmUgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3Qg
T3B0aW9uU2V0PFRocm90dGxpbmdSZWFzb24+JiByZWFzb25zKQotewotICAgIGJvb2wgZGlkQXBw
ZW5kID0gZmFsc2U7Ci0KLSAgICBmb3IgKGF1dG8gcmVhc29uIDogcmVhc29ucykgewotICAgICAg
ICBpZiAoZGlkQXBwZW5kKQotICAgICAgICAgICAgdHMgPDwgInwiOwotICAgICAgICBzd2l0Y2gg
KHJlYXNvbikgewotICAgICAgICBjYXNlIFRocm90dGxpbmdSZWFzb246OlZpc3VhbGx5SWRsZToK
LSAgICAgICAgICAgIHRzIDw8ICJWaXN1YWxseUlkbGUiOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgVGhyb3R0bGluZ1JlYXNvbjo6T3V0c2lkZVZpZXdwb3J0OgotICAgICAgICAg
ICAgdHMgPDwgIk91dHNpZGVWaWV3cG9ydCI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBUaHJvdHRsaW5nUmVhc29uOjpMb3dQb3dlck1vZGU6Ci0gICAgICAgICAgICB0cyA8PCAi
TG93UG93ZXJNb2RlIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRocm90dGxp
bmdSZWFzb246Ok5vbkludGVyYWN0ZWRDcm9zc09yaWdpbkZyYW1lOgotICAgICAgICAgICAgdHMg
PDwgIk5vbkludGVyYWN0aXZlQ3Jvc3NPcmlnaW5GcmFtZSI7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgICAgICBkaWRBcHBlbmQgPSB0cnVlOwotICAgIH0KLQotICAgIGlmIChy
ZWFzb25zLmlzRW1wdHkoKSkKLSAgICAgICAgdHMgPDwgIltVbnRocm90dGxlZF0iOwotICAgIHJl
dHVybiB0czsKLX0KK1dFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYsIGNvbnN0IE9wdGlvblNldDxUaHJvdHRsaW5nUmVhc29uPiYpOwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVV0aWxpdGllc0NH
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlVXRpbGl0aWVz
Q0cuY3BwCmluZGV4IDNhMDE3NDAyZTM2NjI5ZjE1NzdkOTI1MmRhNjc1Y2ZhZGY2NmYwMmQuLjNm
OGRlMjRlYzE0MjZiYjc3ZDc3Yjg5N2MxMzRmZmFiOWM2NjA4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlVXRpbGl0aWVzQ0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlVXRpbGl0aWVzQ0cuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlN
RVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIlVUSVV0aWxpdGllcy5oIgogI2luY2x1ZGUgPElt
YWdlSU8vSW1hZ2VJTy5oPgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421965</attachid>
            <date>2021-03-02 10:52:09 -0800</date>
            <delta_ts>2021-03-02 13:31:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222609-20210302105208.patch</filename>
            <type>text/plain</type>
            <size>16358</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzExNjQ1ZDAxOWYyMDM1
YmYxMjI0NGRhODZjNzM5ODhmZjZiY2I1Ny4uM2M1ZjM3MjUzOWY4ZDY0MTQ3NjUyNjE4NDFkYzEy
NDUzOTIxODVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAzLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgQW5pbWF0
aW9uRnJhbWVSYXRlIGNvZGUgaW50byBhIC5jcHAgZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQW5pbWF0aW9uRnJhbWVSYXRlIGNvZGUgaXMgZ2V0
dGluZyBsYXJnZXIuIEl0IHNob3VsZCBub3QgYWxsIGJlIGlubGluZS4KKworICAgICAgICBBZGQg
QU5HTEVXZWJLaXRCcmlkZ2UuKiB0byB0aGUgcHJvamVjdDsgdGhleSB3ZXJlIG1pc3NpbmcuCisK
KyAgICAgICAgU29ydCB0aGUgWGNvZGUgcHJvamVjdCwgZGVhbCB3aXRoIHVuaWZpZWQgc291cmNl
cyBmYWxsb3V0LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Fu
aW1hdGlvbkZyYW1lUmF0ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0FuaW1hdGlvbkZyYW1lUmF0ZS5oLgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVz
UGVyU2Vjb25kTmVhcmVzdEZ1bGxTcGVlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJyZWRG
cmFtZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OnByZWZlcnJlZEZyYW1lc1BlclNlY29u
ZCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OmZyYW1lc1Bl
clNlY29uZE5lYXJlc3RGdWxsU3BlZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJl
ZmVycmVkRnJhbWVJbnRlcnZhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJy
ZWRGcmFtZXNQZXJTZWNvbmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8
PCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VVdGlsaXRp
ZXNDRy5jcHA6CisKIDIwMjEtMDMtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIEVsaW1pbmF0ZSBTY3JvbGxBbmltYXRvckdlbmVyaWM6Om1fc21v
b3RoQW5pbWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDEyYmFkODY3YWExMWY3OTBkMjExODZlMWNj
YTNjYzRiYTU2OTg1M2UuLjQ1ZjcyZDRmZmNlNjA3MzA2ZjMxYTMyMzZkZjUzOTJlMmEzMmYzZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC0xOTE4LDYgKzE5MTgsNyBAQCBwbGF0Zm9ybS9nYW1lcGFkL0Vt
cHR5R2FtZXBhZFByb3ZpZGVyLmNwcAogcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkQ29uc3RhbnRz
LmNwcAogcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0FuaW1hdGlvbkZy
YW1lUmF0ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckJsZW5kaW5nLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDM5YTJlYmY0MWE2ZGU1MDkwOTFlMDE1MTNiMTEwMDgxMWM4M2U2NzYuLjMyYTQzZGEwMzRh
OTFiNzI3ZTRhYmY1MzcxYTFhZDUzZTQyNWFkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxMzYsNiArNjEzNiw5IEBACiAJ
CTBGNzkwRjNEMjUxN0NFNkQwMDlCQTAzNCAvKiBEaXNwbGF5Vmlldy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5Vmlldy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGNzkwRjNGMjUxN0NFNkQwMDlCQTAzNCAvKiBEaXNwbGF5Vmlldy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5Vmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjdERjE0NzFFMkJGMUE2MDA5NTk1MUIgLyogV2ViQ29y
ZUpTQ2xpZW50RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJDb3JlSlNDbGllbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3
RTQ3NTEyNUVFQjc5QTAwMTNGOTA5IC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBbmltYXRpb25GcmFtZVJhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjdFNDc1MzI1RUVCNzlCMDAxM0Y5MDkgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQU5HTEVXZWJLaXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwRjdFNDc1NDI1RUVCNzlCMDAxM0Y5MDkgLyogQU5HTEVXZWJLaXRC
cmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVXZWJLaXRCcmlkZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY4NTBGRTIxRUQ3QzE4MzAwRkI3N0E3IC8qIFBlcmZvcm1hbmNl
TG9nZ2luZ0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJmb3Jt
YW5jZUxvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4Njgy
RkEyNTcwN0Y0NzAwQzA4QkI1IC8qIERpc3BsYXlTdGFja2luZ0l0ZW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGlzcGxheVN0YWNraW5nSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
Rjg2ODJGQzI1NzA3RjQ3MDBDMDhCQjUgLyogRGlzcGxheVN0YWNraW5nSXRlbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEaXNwbGF5U3RhY2tpbmdJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE3NDc5LDggKzE3NDgyLDggQEAKIAkJCQkzMTM1OTEwMzFFN0REQzYwMDBG
MzA2MzAgLyogUlRDSWNlVHJhbnNwb3J0U3RhdGUuaCAqLywKIAkJCQkwNzIyMUJBQTE3Q0YwQUQ0
MDA4NDhFNTEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmggKi8sCiAJCQkJNDFB
NDhBOUQxRTgzMTJFQjAwRDJBQzJEIC8qIFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUuaCAqLywKLQkJ
CQk0MTNDQzExQzI1RTdEOThEMDBENTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmggKi8sCiAJCQkJ
NDEyQkE1RkUyMThDNjUxODAwMzY1NDc0IC8qIFJUQ1BNdXhQb2xpY3kuaCAqLywKKwkJCQk0MTND
QzExQzI1RTdEOThEMDBENTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmggKi8sCiAJCQkJNDEyREU0
QjYyMTkyODVCRjAwNzVGM0E3IC8qIFJUQ1J0cENhcGFiaWxpdGllcy5oICovLAogCQkJCTQxRTBB
N0RDMjNCQjYzREIwMDU2MTA2MCAvKiBSVENSdHBDb2RlY0NhcGFiaWxpdHkuaCAqLywKIAkJCQkz
MUVCNTRERDFFN0RDNzQ0MDBDMTYyM0IgLyogUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb24uaCAq
LywKQEAgLTI2NjQ3LDYgKzI2NjUwLDkgQEAKIAkJCQkzNzIxNDkzMzE4RjBCNkQ2MDAxNTZFREMg
Lyogb3BlbnR5cGUgKi8sCiAJCQkJNDlFOTExQjIwRUY4NkQyNzAwOUQwQ0FGIC8qIHRyYW5zZm9y
bXMgKi8sCiAJCQkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24uaCAqLywKKwkJCQkwRjdFNDc1MzI1RUVCNzlCMDAxM0Y5MDkgLyogQU5HTEVXZWJLaXRC
cmlkZ2UuY3BwICovLAorCQkJCTBGN0U0NzU0MjVFRUI3OUIwMDEzRjkwOSAvKiBBTkdMRVdlYktp
dEJyaWRnZS5oICovLAorCQkJCTBGN0U0NzUxMjVFRUI3OUEwMDEzRjkwOSAvKiBBbmltYXRpb25G
cmFtZVJhdGUuY3BwICovLAogCQkJCTcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBBbmltYXRp
b25GcmFtZVJhdGUuaCAqLywKIAkJCQlCRUYyOUVFOTE3MTVERDA5MDBDNEI0QzkgLyogQXVkaW9U
cmFja1ByaXZhdGUuaCAqLywKIAkJCQlBODk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogQml0bWFw
SW1hZ2UuY3BwICovLApAQCAtMjY2NTksOSArMjY2NjUsOSBAQAogCQkJCTdDNTE0RTAyMjRBRjgw
NTgwMDUwNzEwRiAvKiBDb2xvckNvbnZlcnNpb24uY3BwICovLAogCQkJCTdDNTE0RTAwMjRBRjgw
NTgwMDUwNzEwRiAvKiBDb2xvckNvbnZlcnNpb24uaCAqLywKIAkJCQkzMTAzQjdERTFEQjAxNTU2
MDA4QkI4OTAgLyogQ29sb3JIYXNoLmggKi8sCisJCQkJQkM0QTIzRUIyNUVDMTYwMjAwQUFDNjMw
IC8qIENvbG9yTHVtaW5hbmNlLmggKi8sCiAJCQkJN0NBQzZBRTgyNDdGMDgyMDAwRTYxRDU5IC8q
IENvbG9yTWF0cml4LmggKi8sCiAJCQkJQkMxMDEzN0IyNUMzNjI0QjAwREM3NzNDIC8qIENvbG9y
TW9kZWxzLmggKi8sCi0JCQkJQkM0QTIzRUIyNUVDMTYwMjAwQUFDNjMwIC8qIENvbG9yTHVtaW5h
bmNlLmggKi8sCiAJCQkJN0NEMUU2OTIyNEFCRjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFsaXph
dGlvbi5jcHAgKi8sCiAJCQkJN0NEMUU2OTEyNEFCRjYyNDAwODlDNDE5IC8qIENvbG9yU2VyaWFs
aXphdGlvbi5oICovLAogCQkJCUJDQUZFREFGMjU5NjZEMDUwMDMwRTZBQSAvKiBDb2xvclNwYWNl
LmNwcCAqLywKQEAgLTMxNjA4LDYgKzMxNjE0LDcgQEAKIAkJCQkzMTAzQjdERjFEQjAxNTY3MDA4
QkI4OTAgLyogQ29sb3JIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCNDEyNTFGMTJE
MDAzRUYyNjkgLyogQ29sb3JJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNTE2OUU3
MjFGMUI4NDcwMEVBNEY3OCAvKiBDb2xvcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0QTIz
RUMyNUVDMTYwMjAwQUFDNjMwIC8qIENvbG9yTHVtaW5hbmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFREUzQTUwMDBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDQUM2QUU5MjQ3RjA4MkYwMEU2MUQ1OSAvKiBDb2xvck1hdHJpeC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxMDEzN0MyNUMzNjI0QjAwREM3NzNDIC8qIENvbG9yTW9kZWxzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMxODczLDcgKzMxODgwLDYgQEAKIAkJCQlBODgyREEyMzE1OTM4NDhEMDAw
MTE1RUQgLyogQ1NTVG9TdHlsZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzE1QUQ3MjEyMDUw
NTEzRjAwRDU5MkRDIC8qIENTU1RyYW5zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUY1
M0U5MEQyNzA0RjkwMEVDRTBENSAvKiBDU1NVbmljb2RlUmFuZ2VWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQkM0QTIzRUMyNUVDMTYwMjAwQUFDNjMwIC8qIENvbG9yTHVtaW5hbmNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjZCNzA3QTIzN0JDMzZEMDA1MkNBNDcgLyogQ1NTVW5pdHMuaCBp
biBIZWFkZXJzICovLAogCQkJCUREN0NERjI1MEEyM0NGOTgwMDA2OTkyOCAvKiBDU1NVbmtub3du
UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RDhGRjAxQkQwM0I2NDAwRkZFNTQwIC8qIENT
U1Vuc2V0VmFsdWUuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1OTgsNiArMzQ2MDQsNyBAQAogCQkJ
CTA3OEUwOTQyMTdEMTZFMUMwMDQyMEFBMSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUU2RUM5MjU2NkQyNzgwMDJCNTAxMCAvKiBSVENQ
ZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTI0
MTdEMTREMUMwMDQyMEFBMSAvKiBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTNDQzExRDI1RTdEOThFMDBENTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTE0RkUzMjI1QkVCRDE5MDA5RDlGMjAgLyogUlRDUnRjcFBh
cmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMkRFNEI4MjE5Mjg1QzAwMDc1RjNBNyAv
KiBSVENSdHBDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVFMkM0MzYzMUJDRUUz
MkIwMDAxRTJCQyAvKiBSVENSdHBSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTA5MCw3
ICszNTA5Nyw2IEBACiAJCQkJNzE1MzdBMDExNDZCRDlENzAwOEJENjE1IC8qIFNWR1BhdGhEYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E1OTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0
aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzZDOUYwMTFERjZBNTgwMDU1NUIwMiAv
KiBTVkdQYXRoUGFyc2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTNDQzExRDI1RTdEOThFMDBE
NTlDNEIgLyogUlRDUHJpb3JpdHlUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E1QjBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
ODEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NDc2QzlFNjExREY2QTBCMDA1NTVCMDIgLyogU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0FuaW1hdGlvbkZyYW1lUmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9BbmltYXRpb25GcmFtZVJhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3NGExNGE5NmJiODk5YjY3YTE3
ZGRiOWEyZGZmYWM5ZjFkZDk1ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuY3BwCkBAIC0wLDAgKzEsMTA0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQW5pbWF0aW9uRnJhbWVSYXRlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworRnJhbWVzUGVyU2Vjb25kIGZyYW1lc1BlclNlY29uZE5lYXJlc3RGdWxs
U3BlZWQoRnJhbWVzUGVyU2Vjb25kIG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpCit7CisgICAgaWYg
KG5vbWluYWxGcmFtZXNQZXJTZWNvbmQgPD0gRnVsbFNwZWVkRnJhbWVzUGVyU2Vjb25kKQorICAg
ICAgICByZXR1cm4gbm9taW5hbEZyYW1lc1BlclNlY29uZDsKKworICAgIGZsb2F0IGZ1bGxTcGVl
ZFJhdGlvID0gbm9taW5hbEZyYW1lc1BlclNlY29uZCAvIEZ1bGxTcGVlZEZyYW1lc1BlclNlY29u
ZDsKKyAgICBGcmFtZXNQZXJTZWNvbmQgZmxvb3JTcGVlZCA9IG5vbWluYWxGcmFtZXNQZXJTZWNv
bmQgLyBzdGQ6OmZsb29yKGZ1bGxTcGVlZFJhdGlvKTsKKyAgICBGcmFtZXNQZXJTZWNvbmQgY2Vp
bFNwZWVkID0gbm9taW5hbEZyYW1lc1BlclNlY29uZCAvIHN0ZDo6Y2VpbChmdWxsU3BlZWRSYXRp
byk7CisKKyAgICByZXR1cm4gZnVsbFNwZWVkUmF0aW8gLSBzdGQ6OmZsb29yKGZ1bGxTcGVlZFJh
dGlvKSA8PSAwLjUgPyBmbG9vclNwZWVkIDogY2VpbFNwZWVkOworfQorCitTZWNvbmRzIHByZWZl
cnJlZEZyYW1lSW50ZXJ2YWwoY29uc3QgT3B0aW9uU2V0PFRocm90dGxpbmdSZWFzb24+JiByZWFz
b25zLCBPcHRpb25hbDxGcmFtZXNQZXJTZWNvbmQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpCit7
CisgICAgaWYgKHJlYXNvbnMuY29udGFpbnMoVGhyb3R0bGluZ1JlYXNvbjo6T3V0c2lkZVZpZXdw
b3J0KSkKKyAgICAgICAgcmV0dXJuIEFnZ3Jlc3NpdmVUaHJvdHRsaW5nQW5pbWF0aW9uSW50ZXJ2
YWw7CisKKyAgICBpZiAoIW5vbWluYWxGcmFtZXNQZXJTZWNvbmQgfHwgKm5vbWluYWxGcmFtZXNQ
ZXJTZWNvbmQgPT0gRnVsbFNwZWVkRnJhbWVzUGVyU2Vjb25kKSB7CisgICAgICAgIC8vIEZJWE1F
OiBoYW5kbGUgVGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlCisgICAgICAgIGlmIChyZWFz
b25zLmNvbnRhaW5zQW55KHsgVGhyb3R0bGluZ1JlYXNvbjo6TG93UG93ZXJNb2RlLCBUaHJvdHRs
aW5nUmVhc29uOjpOb25JbnRlcmFjdGVkQ3Jvc3NPcmlnaW5GcmFtZSB9KSkKKyAgICAgICAgICAg
IHJldHVybiBIYWxmU3BlZWRUaHJvdHRsaW5nQW5pbWF0aW9uSW50ZXJ2YWw7CisgICAgICAgIHJl
dHVybiBGdWxsU3BlZWRBbmltYXRpb25JbnRlcnZhbDsKKyAgICB9CisKKyAgICBhdXRvIGZyYW1l
c1BlclNlY29uZCA9IGZyYW1lc1BlclNlY29uZE5lYXJlc3RGdWxsU3BlZWQoKm5vbWluYWxGcmFt
ZXNQZXJTZWNvbmQpOworICAgIGF1dG8gaW50ZXJ2YWwgPSBTZWNvbmRzKDEuMCAvIGZyYW1lc1Bl
clNlY29uZCk7CisKKyAgICBpZiAocmVhc29ucy5jb250YWluc0FueSh7IFRocm90dGxpbmdSZWFz
b246Okxvd1Bvd2VyTW9kZSwgVGhyb3R0bGluZ1JlYXNvbjo6Tm9uSW50ZXJhY3RlZENyb3NzT3Jp
Z2luRnJhbWUsIFRocm90dGxpbmdSZWFzb246OlZpc3VhbGx5SWRsZSB9KSkKKyAgICAgICAgaW50
ZXJ2YWwgKj0gSW50ZXJ2YWxUaHJvdHRsaW5nRmFjdG9yOworCisgICAgcmV0dXJuIGludGVydmFs
OworfQorCitGcmFtZXNQZXJTZWNvbmQgcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKFNlY29uZHMg
cHJlZmVycmVkRnJhbWVJbnRlcnZhbCkKK3sKKyAgICBpZiAocHJlZmVycmVkRnJhbWVJbnRlcnZh
bCA9PSBGdWxsU3BlZWRBbmltYXRpb25JbnRlcnZhbCkKKyAgICAgICAgcmV0dXJuIEZ1bGxTcGVl
ZEZyYW1lc1BlclNlY29uZDsKKworICAgIGlmIChwcmVmZXJyZWRGcmFtZUludGVydmFsID09IEhh
bGZTcGVlZFRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbCkKKyAgICAgICAgcmV0dXJuIEhhbGZT
cGVlZFRocm90dGxpbmdGcmFtZXNQZXJTZWNvbmQ7CisKKyAgICByZXR1cm4gc3RkOjpyb3VuZCgx
IC8gcHJlZmVycmVkRnJhbWVJbnRlcnZhbC5zZWNvbmRzKCkpOworfQorCitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBPcHRpb25TZXQ8VGhyb3R0bGluZ1JlYXNv
bj4mIHJlYXNvbnMpCit7CisgICAgYm9vbCBkaWRBcHBlbmQgPSBmYWxzZTsKKworICAgIGZvciAo
YXV0byByZWFzb24gOiByZWFzb25zKSB7CisgICAgICAgIGlmIChkaWRBcHBlbmQpCisgICAgICAg
ICAgICB0cyA8PCAifCI7CisgICAgICAgIHN3aXRjaCAocmVhc29uKSB7CisgICAgICAgIGNhc2Ug
VGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlOgorICAgICAgICAgICAgdHMgPDwgIlZpc3Vh
bGx5SWRsZSI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUaHJvdHRsaW5nUmVh
c29uOjpPdXRzaWRlVmlld3BvcnQ6CisgICAgICAgICAgICB0cyA8PCAiT3V0c2lkZVZpZXdwb3J0
IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRocm90dGxpbmdSZWFzb246Okxv
d1Bvd2VyTW9kZToKKyAgICAgICAgICAgIHRzIDw8ICJMb3dQb3dlck1vZGUiOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgVGhyb3R0bGluZ1JlYXNvbjo6Tm9uSW50ZXJhY3RlZENy
b3NzT3JpZ2luRnJhbWU6CisgICAgICAgICAgICB0cyA8PCAiTm9uSW50ZXJhY3RpdmVDcm9zc09y
aWdpbkZyYW1lIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRpZEFw
cGVuZCA9IHRydWU7CisgICAgfQorCisgICAgaWYgKHJlYXNvbnMuaXNFbXB0eSgpKQorICAgICAg
ICB0cyA8PCAiW1VudGhyb3R0bGVkXSI7CisgICAgcmV0dXJuIHRzOworfQorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
QW5pbWF0aW9uRnJhbWVSYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
bmltYXRpb25GcmFtZVJhdGUuaAppbmRleCA0Y2M0YTIxNjVlNmQ1NDFmZTk5MWFhNDQ3NjIwMmIw
NzgyOWNkYjY3Li4zYTMyYTk0OWI3MjI2ZTA3NmI2YjZlNmEwZTA1Y2NmMDJmZWJhNTgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFt
ZVJhdGUuaApAQCAtNTAsNzcgKzUwLDEwIEBAIGNvbnN0ZXhwciBjb25zdCBpbnQgSW50ZXJ2YWxU
aHJvdHRsaW5nRmFjdG9yIHsgMiB9OwogY29uc3RleHByIGNvbnN0IEZyYW1lc1BlclNlY29uZCBG
dWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQgPSA2MDsKIGNvbnN0ZXhwciBjb25zdCBGcmFtZXNQZXJT
ZWNvbmQgSGFsZlNwZWVkVGhyb3R0bGluZ0ZyYW1lc1BlclNlY29uZCA9IDMwOwogCi1pbmxpbmUg
RnJhbWVzUGVyU2Vjb25kIGZyYW1lc1BlclNlY29uZE5lYXJlc3RGdWxsU3BlZWQoRnJhbWVzUGVy
U2Vjb25kIG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpCi17Ci0gICAgaWYgKG5vbWluYWxGcmFtZXNQ
ZXJTZWNvbmQgPD0gRnVsbFNwZWVkRnJhbWVzUGVyU2Vjb25kKQotICAgICAgICByZXR1cm4gbm9t
aW5hbEZyYW1lc1BlclNlY29uZDsKK1dFQkNPUkVfRVhQT1JUIEZyYW1lc1BlclNlY29uZCBmcmFt
ZXNQZXJTZWNvbmROZWFyZXN0RnVsbFNwZWVkKEZyYW1lc1BlclNlY29uZCk7CitXRUJDT1JFX0VY
UE9SVCBTZWNvbmRzIHByZWZlcnJlZEZyYW1lSW50ZXJ2YWwoY29uc3QgT3B0aW9uU2V0PFRocm90
dGxpbmdSZWFzb24+JiwgT3B0aW9uYWw8RnJhbWVzUGVyU2Vjb25kPiBub21pbmFsRnJhbWVzUGVy
U2Vjb25kKTsKK1dFQkNPUkVfRVhQT1JUIEZyYW1lc1BlclNlY29uZCBwcmVmZXJyZWRGcmFtZXNQ
ZXJTZWNvbmQoU2Vjb25kcyk7CiAKLSAgICBmbG9hdCBmdWxsU3BlZWRSYXRpbyA9IG5vbWluYWxG
cmFtZXNQZXJTZWNvbmQgLyBGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQ7Ci0gICAgRnJhbWVzUGVy
U2Vjb25kIGZsb29yU3BlZWQgPSBub21pbmFsRnJhbWVzUGVyU2Vjb25kIC8gc3RkOjpmbG9vcihm
dWxsU3BlZWRSYXRpbyk7Ci0gICAgRnJhbWVzUGVyU2Vjb25kIGNlaWxTcGVlZCA9IG5vbWluYWxG
cmFtZXNQZXJTZWNvbmQgLyBzdGQ6OmNlaWwoZnVsbFNwZWVkUmF0aW8pOwotCi0gICAgcmV0dXJu
IGZ1bGxTcGVlZFJhdGlvIC0gc3RkOjpmbG9vcihmdWxsU3BlZWRSYXRpbykgPD0gMC41ID8gZmxv
b3JTcGVlZCA6IGNlaWxTcGVlZDsKLX0KLQotaW5saW5lIFNlY29uZHMgcHJlZmVycmVkRnJhbWVJ
bnRlcnZhbChjb25zdCBPcHRpb25TZXQ8VGhyb3R0bGluZ1JlYXNvbj4mIHJlYXNvbnMsIE9wdGlv
bmFsPEZyYW1lc1BlclNlY29uZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZCkKLXsKLSAgICBpZiAo
cmVhc29ucy5jb250YWlucyhUaHJvdHRsaW5nUmVhc29uOjpPdXRzaWRlVmlld3BvcnQpKQotICAg
ICAgICByZXR1cm4gQWdncmVzc2l2ZVRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbDsKLQotICAg
IGlmICghbm9taW5hbEZyYW1lc1BlclNlY29uZCB8fCAqbm9taW5hbEZyYW1lc1BlclNlY29uZCA9
PSBGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQpIHsKLSAgICAgICAgLy8gRklYTUU6IGhhbmRsZSBU
aHJvdHRsaW5nUmVhc29uOjpWaXN1YWxseUlkbGUKLSAgICAgICAgaWYgKHJlYXNvbnMuY29udGFp
bnNBbnkoeyBUaHJvdHRsaW5nUmVhc29uOjpMb3dQb3dlck1vZGUsIFRocm90dGxpbmdSZWFzb246
Ok5vbkludGVyYWN0ZWRDcm9zc09yaWdpbkZyYW1lIH0pKQotICAgICAgICAgICAgcmV0dXJuIEhh
bGZTcGVlZFRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbDsKLSAgICAgICAgcmV0dXJuIEZ1bGxT
cGVlZEFuaW1hdGlvbkludGVydmFsOwotICAgIH0KLQotICAgIGF1dG8gZnJhbWVzUGVyU2Vjb25k
ID0gZnJhbWVzUGVyU2Vjb25kTmVhcmVzdEZ1bGxTcGVlZCgqbm9taW5hbEZyYW1lc1BlclNlY29u
ZCk7Ci0gICAgYXV0byBpbnRlcnZhbCA9IFNlY29uZHMoMS4wIC8gZnJhbWVzUGVyU2Vjb25kKTsK
LQotICAgIGlmIChyZWFzb25zLmNvbnRhaW5zQW55KHsgVGhyb3R0bGluZ1JlYXNvbjo6TG93UG93
ZXJNb2RlLCBUaHJvdHRsaW5nUmVhc29uOjpOb25JbnRlcmFjdGVkQ3Jvc3NPcmlnaW5GcmFtZSwg
VGhyb3R0bGluZ1JlYXNvbjo6VmlzdWFsbHlJZGxlIH0pKQotICAgICAgICBpbnRlcnZhbCAqPSBJ
bnRlcnZhbFRocm90dGxpbmdGYWN0b3I7Ci0KLSAgICByZXR1cm4gaW50ZXJ2YWw7Ci19Ci0KLWlu
bGluZSBGcmFtZXNQZXJTZWNvbmQgcHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKFNlY29uZHMgcHJl
ZmVycmVkRnJhbWVJbnRlcnZhbCkKLXsKLSAgICBpZiAocHJlZmVycmVkRnJhbWVJbnRlcnZhbCA9
PSBGdWxsU3BlZWRBbmltYXRpb25JbnRlcnZhbCkKLSAgICAgICAgcmV0dXJuIEZ1bGxTcGVlZEZy
YW1lc1BlclNlY29uZDsKLQotICAgIGlmIChwcmVmZXJyZWRGcmFtZUludGVydmFsID09IEhhbGZT
cGVlZFRocm90dGxpbmdBbmltYXRpb25JbnRlcnZhbCkKLSAgICAgICAgcmV0dXJuIEhhbGZTcGVl
ZFRocm90dGxpbmdGcmFtZXNQZXJTZWNvbmQ7Ci0KLSAgICByZXR1cm4gc3RkOjpyb3VuZCgxIC8g
cHJlZmVycmVkRnJhbWVJbnRlcnZhbC5zZWNvbmRzKCkpOwotfQotCi1pbmxpbmUgVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgT3B0aW9uU2V0PFRocm90dGxpbmdS
ZWFzb24+JiByZWFzb25zKQotewotICAgIGJvb2wgZGlkQXBwZW5kID0gZmFsc2U7Ci0KLSAgICBm
b3IgKGF1dG8gcmVhc29uIDogcmVhc29ucykgewotICAgICAgICBpZiAoZGlkQXBwZW5kKQotICAg
ICAgICAgICAgdHMgPDwgInwiOwotICAgICAgICBzd2l0Y2ggKHJlYXNvbikgewotICAgICAgICBj
YXNlIFRocm90dGxpbmdSZWFzb246OlZpc3VhbGx5SWRsZToKLSAgICAgICAgICAgIHRzIDw8ICJW
aXN1YWxseUlkbGUiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVGhyb3R0bGlu
Z1JlYXNvbjo6T3V0c2lkZVZpZXdwb3J0OgotICAgICAgICAgICAgdHMgPDwgIk91dHNpZGVWaWV3
cG9ydCI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUaHJvdHRsaW5nUmVhc29u
OjpMb3dQb3dlck1vZGU6Ci0gICAgICAgICAgICB0cyA8PCAiTG93UG93ZXJNb2RlIjsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRocm90dGxpbmdSZWFzb246Ok5vbkludGVyYWN0
ZWRDcm9zc09yaWdpbkZyYW1lOgotICAgICAgICAgICAgdHMgPDwgIk5vbkludGVyYWN0aXZlQ3Jv
c3NPcmlnaW5GcmFtZSI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBk
aWRBcHBlbmQgPSB0cnVlOwotICAgIH0KLQotICAgIGlmIChyZWFzb25zLmlzRW1wdHkoKSkKLSAg
ICAgICAgdHMgPDwgIltVbnRocm90dGxlZF0iOwotICAgIHJldHVybiB0czsKLX0KK1dFQkNPUkVf
RVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNvbnN0IE9wdGlvblNl
dDxUaHJvdHRsaW5nUmVhc29uPiYpOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVV0aWxpdGllc0NHLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlVXRpbGl0aWVzQ0cuY3BwCmluZGV4IDNhMDE3NDAy
ZTM2NjI5ZjE1NzdkOTI1MmRhNjc1Y2ZhZGY2NmYwMmQuLjNmOGRlMjRlYzE0MjZiYjc3ZDc3Yjg5
N2MxMzRmZmFiOWM2NjA4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlVXRpbGl0aWVzQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlVXRpbGl0aWVzQ0cuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2lu
Y2x1ZGUgIlVUSVV0aWxpdGllcy5oIgogI2luY2x1ZGUgPEltYWdlSU8vSW1hZ2VJTy5oPgogI2lu
Y2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>