<?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>231629</bug_id>
          
          <creation_ts>2021-10-12 15:04:23 -0700</creation_ts>
          <short_desc>Use std::variant instead of WTF::Variant</short_desc>
          <delta_ts>2021-10-13 04:08:52 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231667</see_also>
          <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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>alecflett</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>jamesr</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>macpherson</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803442</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-12 15:04:23 -0700</bug_when>
    <thetext>Use std::variant instead of WTF::Variant</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803445</commentid>
    <comment_count>1</comment_count>
      <attachid>440993</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-12 15:05:56 -0700</bug_when>
    <thetext>Created attachment 440993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803500</commentid>
    <comment_count>2</comment_count>
      <attachid>441006</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-12 15:52:29 -0700</bug_when>
    <thetext>Created attachment 441006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803503</commentid>
    <comment_count>3</comment_count>
      <attachid>441006</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 15:55:10 -0700</bug_when>
    <thetext>Comment on attachment 441006
Patch

r=me once the bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803513</commentid>
    <comment_count>4</comment_count>
      <attachid>441009</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-12 16:01:33 -0700</bug_when>
    <thetext>Created attachment 441009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803609</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-12 18:40:17 -0700</bug_when>
    <thetext>Committed r284075 (242903@main): &lt;https://commits.webkit.org/242903@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441009.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803610</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-12 18:41:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/84176705&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440993</attachid>
            <date>2021-10-12 15:05:56 -0700</date>
            <delta_ts>2021-10-12 15:52:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231629-20211012160555.patch</filename>
            <type>text/plain</type>
            <size>199791</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
OTFiNDA3N2M3MWViN2FhN2MwNThkMWVmN2RkYTgzOTg1MGNkZWI3Li5kMzBlM2IyMjc5M2JlZWFl
ODhkNDg0MmJiYTUwN2NkZGRjYWFlNzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBzdGQ6OnZhcmlhbnQgaW5zdGVhZCBvZiBXVEY6OlZh
cmlhbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTYyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVDYWxsRE9NKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNwcDoK
KyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZlZhbHVlKToKKyAgICAgICAg
KiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6
YnJhbmNoSWZUcnV0aHkpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElm
RmFsc2V5KToKKyAgICAgICAgKiBqaXQvU25pcHBldFJlZy5oOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgICogcGFyc2VyL0xleGVyLmg6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxlRW52
aXJvbm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5oOgorICAg
ICAgICAqIHJ1bnRpbWUvQ2FjaGVQYXlsb2FkLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVQYXls
b2FkOjpDYWNoZVBheWxvYWQpOgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVQYXlsb2FkLmg6Cisg
ICAgICAgICogcnVudGltZS9DYWNoZVVwZGF0ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSVNPODYw
MS5jcHA6CisgICAgICAgIChKU0M6OklTTzg2MDE6OnBhcnNlVGltZVpvbmVCcmFja2V0ZWRBbm5v
dGF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0lTTzg2MDEuaDoKKyAgICAgICAgKiB3YXNtL1dh
c21MTEludEdlbmVyYXRvci5jcHA6CisKIDIwMjEtMTAtMTIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgU1RMIGluc3RlYWQgb2YgV1RG
OjpnZXRfaWYsIFdURjo6TW9ub3N0YXRlLCBXVEY6OnZpc2l0LCBhbmQgV1RGOjpob2xkc19hbHRl
cm5hdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCA3ZjE1N2MxZTIwM2VjODhiYWZhZDJkMWEzN2RmMWU4NDQwZmVmNDJkLi5j
NWYyNzgyMzUxNDBhMWFkMGMwOTYwNjkxYmI1NTQyM2QxNDBhZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIxLTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgVXNlIHN0ZDo6dmFyaWFudCBpbnN0ZWFkIG9mIFdURjo6VmFyaWFudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjI5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTGlr
ZWx5RGVuc2VVbnNpZ25lZEludGVnZXJTZXQuaDoKKyAgICAgICAgKiB3dGYvU21hbGxTZXQuaDoK
KyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6
Om1hcE1vZGVUb0JhY2tpbmdJdGVyYXRvcik6CisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9jb2NvYS9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVQ29jb2EuY3BwOgorICAgICAgICAoV1RGOjptYXBNb2RlVG9CYWNraW5nSXRlcmF0
b3IpOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBTY3JvbGxPcHRpb25zJyBTY3JvbGxCZWhhdmlv
ciBhbmQgQ1NTIHNjcm9sbC1iZWhhdmlvciBwcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZmMzZh
Mjg4YjE2MTNhYjgyMTczNjkyZmNiNTEyN2Q0OTE1NzcyZi4uYmIxYzk3MmZiZjYxZDAyYjczYzBm
MzU2MmNlYmQxN2Y3ZGUyNzczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NiBAQAorMjAyMS0x
MC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIFVzZSBzdGQ6OnZhcmlhbnQgaW5zdGVhZCBvZiBXVEY6OlZhcmlhbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTYyOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9hc3luYy1jbGlw
Ym9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keS5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXF1ZXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNl
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJLZXkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmg6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29u
dHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1l
ZGlhQ29uc3RyYWludHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWlu
dHMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlci5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybS5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRl
ckJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRNZXRo
b2RDaGFuZ2VFdmVudC5oOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVu
dFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hFdmVudEluaXQuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdC5o
OgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRPcHRpb25zLmg6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1dlYlhSV2ViR0xMYXllci5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFj
ZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
Lmg6CisgICAgICAgICogYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oOgorICAgICAgICAqIGFuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVj
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaDoKKyAgICAg
ICAgKiBhbmltYXRpb24vT3B0aW9uYWxFZmZlY3RUaW1pbmcuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9JRExUeXBlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0J1ZmZlclNvdXJjZS5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTVmFsdWVJbldyYXBwZWRPYmplY3QuaDoKKyAgICAgICAgKiBj
cnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmg6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0tleS5oOgor
ICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uaDoKKyAgICAgICAgKiBjcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1FY2RzYVBhcmFtcy5oOgorICAgICAgICAqIGNyeXB0by9wYXJh
bWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMuaDoKKyAgICAgICAgKiBjcnlwdG8vcGFy
YW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmg6CisgICAgICAgICogY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUGJrZGYyUGFyYW1zLmg6CisgICAgICAgICogY3J5
cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmg6Cisg
ICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkS2V5R2Vu
UGFyYW1zLmg6CisgICAgICAgICogY3NzL0NTU0N1c3RvbVByb3BlcnR5VmFsdWUuaDoKKyAgICAg
ICAgKiBjc3MvRE9NTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1hdHJpeDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBjc3MvRE9NTWF0cml4Lmg6CisgICAgICAgICogY3NzL0RPTU1hdHJp
eFJlYWRPbmx5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1hdHJpeFJlYWRPbmx5OjpjcmVh
dGUpOgorICAgICAgICAqIGNzcy9ET01NYXRyaXhSZWFkT25seS5oOgorICAgICAgICAqIGNzcy9G
b250RmFjZS5oOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuaDoKKyAgICAgICAgKiBjc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NT
U051bWVyaWNWYWx1ZS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1VucGFyc2VkVmFsdWUu
aDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJr
ZXIuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzY3JvbGxJbnRvVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjphbmltYXRl
KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5o
OgorICAgICAgICAqIGRvbS9NZXNzYWdlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vTm9kZS5oOgor
ICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oOgorICAgICAgICAq
IGVkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRD
aGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlzc3BlbGxlZFdvcmRPclVuZ3JhbW1hdGljYWxQaHJh
c2UgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmg6CisgICAg
ICAgICogZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIGZp
bGVhcGkvQmxvYi5oOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlUmVhZGVyOjpyZXN1bHQgY29uc3QpOgorICAgICAgICAqIGZpbGVhcGkv
RmlsZVJlYWRlci5oOgorICAgICAgICAqIGZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oOgorICAg
ICAgICAqIGh0bWwvRE9NRm9ybURhdGEuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBbGxDb2xsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZE9ySW5k
ZXhlZEl0ZW1Pckl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbGxDb2xsZWN0
aW9uOjpuYW1lZEl0ZW1Pckl0ZW1zIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxBbGxDb2xs
ZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTERvY3VtZW50OjpuYW1lZEl0ZW0pOgorICAgICAgICAqIGh0bWwvSFRNTERvY3Vt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6bmFtZWRJdGVtT3JJ
dGVtcyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5o
OgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxGb3JtRWxlbWVudDo6bmFtZWRJdGVtKToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSW1hZ2VCaXRtYXAuaDoKKyAgICAgICAgKiBodG1sL09m
ZnNjcmVlbkNhbnZhcy5oOgorICAgICAgICAqIGh0bWwvVVJMU2VhcmNoUGFyYW1zLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlVSTFNlYXJjaFBhcmFtczo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1s
L1VSTFNlYXJjaFBhcmFtcy5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTEFueS5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMTXVs
dGlEcmF3Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oOgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tFdmVudC5oOgorICAgICAgICAqIGh0bWwv
dHJhY2svVlRUQ3VlLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg6CisgICAgICAgICog
bGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94Lmg6CisgICAgICAgICogbGF5b3V0
L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oOgorICAgICAgICAqIHBhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlvbk9ic2VydmVy
Lmg6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZS5o
OgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VNZWFzdXJlT3B0aW9ucy5oOgorICAgICAgICAq
IHBhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlVXNlclRpbWluZzo6Y29udmVydE1hcmtUb1RpbWVzdGFtcCBjb25zdCk6CisgICAgICAg
ICogcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmRD
dXN0b21EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlQbGF0Zm9ybURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmZvckVhY2hQbGF0Zm9ybVN0cmlu
Z09yQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0
YS5oOgorICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rl
Y29kaW5nT3B0aW9ucy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
RGVzY3JpcHRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lubGluZVBhdGhEYXRhLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlc291cmNlSGVh
cC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNv
dXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja01lZGlhRGV2aWNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ETlMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL0Zvcm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTFZhbHVlLmg6CisgICAg
ICAgICogcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuaDoKKyAgICAgICAgKiB0ZXN0aW5nL1R5cGVDb252ZXJzaW9ucy5oOgorICAg
ICAgICAqIHdvcmtlcnMvU2hhcmVkV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJl
ZFdvcmtlcjo6U2hhcmVkV29ya2VyKToKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlci5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oOgorICAgICAgICAq
IHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNjcm9sbGluZyB0aHJlYWQgYW5pbWF0aW9u
cyBuZWVkIHRvIGNvbW1pdCBsYXllcnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggNzEyZGFhZTA3N2UzZGJkM2IyODY0NGQwMGFmY2ExNGFiZGZjMDAwZi4uODQ1ZDc2YjkzYzU0
YTdlZTA4YWVlOGE5YzJiMGFjNmQzZGE1MjQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBAQAor
MjAyMS0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgor
CisgICAgICAgIFVzZSBzdGQ6OnZhcmlhbnQgaW5zdGVhZCBvZiBXVEY6OlZhcmlhbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTYyOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlRGF0YS5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAoSVBDOjpWYXJpYW50Q29kZXI6OmVuY29kZSk6CisgICAgICAgIChJUEM6
OlZhcmlhbnRDb2Rlcjo6ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXR0YWNobWVu
dC5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmg6Cisg
ICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
OgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJz
b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuY3BwOgorICAg
ICAgICAoV0tBZGRNb2NrTWVkaWFEZXZpY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nob3dTYWZlQnJvd3NpbmdX
YXJuaW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nob3dT
YWZlQnJvd3NpbmdXYXJuaW5nV2l0aFVSTDp0aXRsZTp3YXJuaW5nOmRldGFpbHNXaXRoTGlua3M6
Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKC1bX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bCBtYWtlQ3JlZGVudGlhbFdpdGhDaGFsbGVuZ2U6b3JpZ2luOm9wdGlvbnM6Y29tcGxldGlvbkhh
bmRsZXI6XSk6CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgZ2V0QXNzZXJ0
aW9uV2l0aENoYWxsZW5nZTpvcmlnaW46b3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpzaW11bGF0ZUtleWJvYXJk
SW50ZXJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vaW9zL1dlYkF1dG9t
YXRpb25TZXNzaW9uSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6cGxhdGZvcm1TaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlib2FyZElu
dGVyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1N1
YkZyYW1lU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XS1NhZmVCcm93c2luZ1dhcm5pbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV0tT
YWZlQnJvd3NpbmdXYXJuaW5nLm1tOgorICAgICAgICAoLVtXS1NhZmVCcm93c2luZ1dhcm5pbmcg
aW5pdFdpdGhGcmFtZTpzYWZlQnJvd3NpbmdXYXJuaW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpzaG93U2FmZUJyb3dzaW5nV2Fybmlu
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvcmU6OmdldFJwSWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb3Jl
OjpnZXRVc2VyTmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0Ojpn
ZXRDbGllbnREYXRhVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OmdldFVzZXJWZXJpZmljYXRpb25S
ZXF1aXJlbWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlUmVxdWVzdCk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcpOgorICAgICAgICAqIFdlYkF1
dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmhhbmRsZVJlcXVlc3QpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmg6CisKIDIwMjEtMTAtMTIgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU2Nyb2xsaW5nIHRocmVhZCBh
bmltYXRpb25zIG5lZWQgdG8gY29tbWl0IGxheWVycyBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDAwM2YyZDE0YjE0MGY1MTYxNTZmNDQyNThh
YTdhM2QyZDYwNjZkODIuLmIzOTUyYmExNjAxMTgyOWNjMDRjZjI1MTI5ZmIxMDNhYmI5ZDE5ZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0xMC0x
MiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IFVzZSBzdGQ6OnZhcmlhbnQgaW5zdGVhZCBvZiBXVEY6OlZhcmlhbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTYyOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRE9NL0RPTUhUTUxTZWxlY3RFbGVt
ZW50Lm1tOgorICAgICAgICAoLVtET01IVE1MU2VsZWN0RWxlbWVudCBhZGQ6YmVmb3JlOl0pOgor
CiAyMDIxLTEwLTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
QWxsb3cgZGlyZWN0IGNvbnN0cnVjdGlvbiBvZiBXZWFrUHRyIHdpdGhvdXQgbWFrZVdlYWtQdHIo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
dHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmgKaW5kZXggMjc1NGIzMWVlMTZiMzg4Y2Yx
NzE1OWEzNjY2ZTBiYmU3NTAyY2M3Yi4uZmNlYzdkMWVkYTFlYjA0MzMwODlkNmVkMmI0MWU1OGQ3
ZTQ1YWFmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oCkBAIC04OSw3ICs4OSw3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIHVzaW5nIE5vZGUgPSBWYXJpYW50
PFN0cnVjdHVyZVRyYW5zaXRpb25TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LCBBZGFw
dGl2ZVZhbHVlU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludD47CisgICAgdXNpbmcgTm9k
ZSA9IHN0ZDo6dmFyaWFudDxTdHJ1Y3R1cmVUcmFuc2l0aW9uU3RydWN0dXJlU3R1YkNsZWFyaW5n
V2F0Y2hwb2ludCwgQWRhcHRpdmVWYWx1ZVN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQ+
OwogCiAgICAgTm9kZSYgYWRkV2F0Y2hwb2ludChjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlv
biYga2V5KTsKICAgICAKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogICAgIFN0cnVjdHVy
ZVN0dWJJbmZvKiBtX3N0dWJJbmZvOwogICAgIC8vIEZJWE1FOiB1c2UgbGVzcyBtZW1vcnkgZm9y
IHRoZSBlbnRyaWVzIGluIHRoaXMgQmFnOgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDIzODAKLSAgICBCYWc8V1RGOjpWYXJpYW50PFN0cnVjdHVyZVRy
YW5zaXRpb25TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LCBBZGFwdGl2ZVZhbHVlU3Ry
dWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludD4+IG1fd2F0Y2hwb2ludHM7CisgICAgQmFnPHN0
ZDo6dmFyaWFudDxTdHJ1Y3R1cmVUcmFuc2l0aW9uU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hw
b2ludCwgQWRhcHRpdmVWYWx1ZVN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQ+PiBtX3dh
dGNocG9pbnRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDQ3OTYzODQ0OTQ0YTBiNzll
YTM0Njg1ZWQ1ZTVlYWQzNTkxYTEwNGQuLjI1ZjZhY2E2N2M0OGU3MmZiOTY0YjM3ZjNjNzBhOWNl
ZTE0M2JiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCkBAIC0xMDU1NSw3ICsxMDU1NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVDYWxsRE9NKE5vZGUqIG5vZGUpCiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUg
YSB3YXkgdG8gY2FsbCBmdW5jdGlvbnMgd2l0aCB0aGUgdmVjdG9yIG9mIHJlZ2lzdGVycy4KICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMDk5Ci0gICAg
dXNpbmcgT3BlcmFuZFZhcmlhbnQgPSBWYXJpYW50PFNwZWN1bGF0ZUNlbGxPcGVyYW5kLCBTcGVj
dWxhdGVJbnQzMk9wZXJhbmQsIFNwZWN1bGF0ZUJvb2xlYW5PcGVyYW5kPjsKKyAgICB1c2luZyBP
cGVyYW5kVmFyaWFudCA9IHN0ZDo6dmFyaWFudDxTcGVjdWxhdGVDZWxsT3BlcmFuZCwgU3BlY3Vs
YXRlSW50MzJPcGVyYW5kLCBTcGVjdWxhdGVCb29sZWFuT3BlcmFuZD47CiAgICAgVmVjdG9yPE9w
ZXJhbmRWYXJpYW50LCBKU0NfRE9NSklUX1NJR05BVFVSRV9NQVhfQVJHVU1FTlRTX0lOQ0xVRElO
R19USElTPiBvcGVyYW5kczsKICAgICBWZWN0b3I8R1BSUmVnLCBKU0NfRE9NSklUX1NJR05BVFVS
RV9NQVhfQVJHVU1FTlRTX0lOQ0xVRElOR19USElTPiByZWdzOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKaW5kZXggZjRmMmY3NGIxZjIyOGQxYzE5
NjQ0ZWZkMDMyOGExYjc5NDFjOTIwMy4uNDc4ZGI2YzJiZjgxNmM0ZTM0NzQ1MDE1NWUwMWRmYzIy
OGVkN2E0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmNwcApAQCAtOTI4LDcgKzkyOCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0Q29udmVy
dFZhbHVlVG9Cb29sZWFuKFZNJiB2bSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlCiAgICAgZG9u
ZS5saW5rKHRoaXMpOwogfQogCi1Bc3NlbWJseUhlbHBlcnM6Okp1bXBMaXN0IEFzc2VtYmx5SGVs
cGVyczo6YnJhbmNoSWZWYWx1ZShWTSYgdm0sIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2Ny
YXRjaCwgR1BSUmVnIHNjcmF0Y2hJZlNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwg
RlBSUmVnIHZhbHVlQXNGUFIsIEZQUlJlZyB0ZW1wRlBSLCBib29sIHNob3VsZENoZWNrTWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCwgVmFyaWFudDxKU0dsb2JhbE9iamVjdCosIEdQUlJlZz4gZ2xvYmFs
T2JqZWN0LCBib29sIGludmVydCkKK0Fzc2VtYmx5SGVscGVyczo6SnVtcExpc3QgQXNzZW1ibHlI
ZWxwZXJzOjpicmFuY2hJZlZhbHVlKFZNJiB2bSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBz
Y3JhdGNoLCBHUFJSZWcgc2NyYXRjaElmU2hvdWxkQ2hlY2tNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
LCBGUFJSZWcgdmFsdWVBc0ZQUiwgRlBSUmVnIHRlbXBGUFIsIGJvb2wgc2hvdWxkQ2hlY2tNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkLCBzdGQ6OnZhcmlhbnQ8SlNHbG9iYWxPYmplY3QqLCBHUFJSZWc+
IGdsb2JhbE9iamVjdCwgYm9vbCBpbnZlcnQpCiB7CiAgICAgLy8gSW1wbGVtZW50cyB0aGUgZm9s
bG93aW5nIGNvbnRyb2wgZmxvdyBzdHJ1Y3R1cmU6CiAgICAgLy8gaWYgKHZhbHVlIGlzIGNlbGwp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDlh
NDc5ZjY3MGI2ZDZlZDkxZDY4OTk4YjlmOTNiZjEwNmRlN2ZhMGEuLjdmMjRhMWVhMThhZWU5ZDA1
MjIwODg2NzNjNjMyMGQzYjNmYjdiYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaApAQCAtMTgwMiwxMiArMTgwMiwxMiBAQCBwdWJsaWM6CiAgICAgICAg
IHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEFkZHJlc3MocmVzdWx0R1BSLCBKU09i
amVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpKTsKICAgICB9CiAKLSAgICBKdW1wTGlzdCBicmFuY2hJ
ZlZhbHVlKFZNJiwgSlNWYWx1ZVJlZ3MsIEdQUlJlZyBzY3JhdGNoLCBHUFJSZWcgc2NyYXRjaElm
U2hvdWxkQ2hlY2tNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCBGUFJSZWcsIEZQUlJlZywgYm9vbCBz
aG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIFZhcmlhbnQ8SlNHbG9iYWxPYmplY3Qq
LCBHUFJSZWc+LCBib29sIG5lZ2F0ZVJlc3VsdCk7Ci0gICAgSnVtcExpc3QgYnJhbmNoSWZUcnV0
aHkoVk0mIHZtLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIEdQUlJlZyBzY3Jh
dGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIEZQUlJlZyBzY3JhdGNoRlBS
MCwgRlBSUmVnIHNjcmF0Y2hGUFIxLCBib29sIHNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCwgVmFyaWFudDxKU0dsb2JhbE9iamVjdCosIEdQUlJlZz4gZ2xvYmFsT2JqZWN0KQorICAg
IEp1bXBMaXN0IGJyYW5jaElmVmFsdWUoVk0mLCBKU1ZhbHVlUmVncywgR1BSUmVnIHNjcmF0Y2gs
IEdQUlJlZyBzY3JhdGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIEZQUlJl
ZywgRlBSUmVnLCBib29sIHNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgc3RkOjp2
YXJpYW50PEpTR2xvYmFsT2JqZWN0KiwgR1BSUmVnPiwgYm9vbCBuZWdhdGVSZXN1bHQpOworICAg
IEp1bXBMaXN0IGJyYW5jaElmVHJ1dGh5KFZNJiB2bSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJl
ZyBzY3JhdGNoLCBHUFJSZWcgc2NyYXRjaElmU2hvdWxkQ2hlY2tNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkLCBGUFJSZWcgc2NyYXRjaEZQUjAsIEZQUlJlZyBzY3JhdGNoRlBSMSwgYm9vbCBzaG91bGRD
aGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHN0ZDo6dmFyaWFudDxKU0dsb2JhbE9iamVjdCos
IEdQUlJlZz4gZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGJyYW5jaElmVmFs
dWUodm0sIHZhbHVlLCBzY3JhdGNoLCBzY3JhdGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNV
bmRlZmluZWQsIHNjcmF0Y2hGUFIwLCBzY3JhdGNoRlBSMSwgc2hvdWxkQ2hlY2tNYXNxdWVyYWRl
c0FzVW5kZWZpbmVkLCBnbG9iYWxPYmplY3QsIGZhbHNlKTsKICAgICB9Ci0gICAgSnVtcExpc3Qg
YnJhbmNoSWZGYWxzZXkoVk0mIHZtLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gs
IEdQUlJlZyBzY3JhdGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIEZQUlJl
ZyBzY3JhdGNoRlBSMCwgRlBSUmVnIHNjcmF0Y2hGUFIxLCBib29sIHNob3VsZENoZWNrTWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCwgVmFyaWFudDxKU0dsb2JhbE9iamVjdCosIEdQUlJlZz4gZ2xvYmFs
T2JqZWN0KQorICAgIEp1bXBMaXN0IGJyYW5jaElmRmFsc2V5KFZNJiB2bSwgSlNWYWx1ZVJlZ3Mg
dmFsdWUsIEdQUlJlZyBzY3JhdGNoLCBHUFJSZWcgc2NyYXRjaElmU2hvdWxkQ2hlY2tNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkLCBGUFJSZWcgc2NyYXRjaEZQUjAsIEZQUlJlZyBzY3JhdGNoRlBSMSwg
Ym9vbCBzaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHN0ZDo6dmFyaWFudDxKU0ds
b2JhbE9iamVjdCosIEdQUlJlZz4gZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgcmV0dXJu
IGJyYW5jaElmVmFsdWUodm0sIHZhbHVlLCBzY3JhdGNoLCBzY3JhdGNoSWZTaG91bGRDaGVja01h
c3F1ZXJhZGVzQXNVbmRlZmluZWQsIHNjcmF0Y2hGUFIwLCBzY3JhdGNoRlBSMSwgc2hvdWxkQ2hl
Y2tNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCBnbG9iYWxPYmplY3QsIHRydWUpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU25pcHBldFJlZy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9TbmlwcGV0UmVnLmgKaW5kZXggMjRhMGMwZmZkODg0M2YzODdj
ZWM1N2EyZDQ0M2RjMDBlMDY1M2E3Yy4uODI4Yjk3YWMxMTExNmRlODAwMmE1MDdjMTA0ZmIzMWI5
MTQ5NGRlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TbmlwcGV0UmVn
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TbmlwcGV0UmVnLmgKQEAgLTg2LDcg
Kzg2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBWYXJpYW50PEdQUlJlZywg
RlBSUmVnLCBKU1ZhbHVlUmVncz4gbV92YXJpYW50OworICAgIHN0ZDo6dmFyaWFudDxHUFJSZWcs
IEZQUlJlZywgSlNWYWx1ZVJlZ3M+IG1fdmFyaWFudDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKaW5kZXggMzUwZThmOTViOGVkZGE2MjBkZDRlYWNkN2UxMmI1OTMyZDgxZjFhZi4uOTkxNzc5
Njk4ZTEyM2NlOWYwNzdkNGZmMGM1MGE5MGY4YmNmOGY0MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
QEAgLTIwOSw5ICsyMDksOSBAQCBzdGF0aWMgdm9pZCBjaGVja0V4Y2VwdGlvbihHbG9iYWxPYmpl
Y3QqLCBib29sIGlzTGFzdEZpbGUsIGJvb2wgaGFzRXhjZXB0aW9uLCBKUwogY2xhc3MgTWVzc2Fn
ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZXNzYWdlPiB7CiBwdWJsaWM6CiAjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PEFycmF5QnVm
ZmVyQ29udGVudHMsIFJlZjxXYXNtOjpNZW1vcnlIYW5kbGU+PjsKKyAgICB1c2luZyBDb250ZW50
ID0gc3RkOjp2YXJpYW50PEFycmF5QnVmZmVyQ29udGVudHMsIFJlZjxXYXNtOjpNZW1vcnlIYW5k
bGU+PjsKICNlbHNlCi0gICAgdXNpbmcgQ29udGVudCA9IFZhcmlhbnQ8QXJyYXlCdWZmZXJDb250
ZW50cz47CisgICAgdXNpbmcgQ29udGVudCA9IHN0ZDo6dmFyaWFudDxBcnJheUJ1ZmZlckNvbnRl
bnRzPjsKICNlbmRpZgogICAgIE1lc3NhZ2UoQ29udGVudCYmLCBpbnQzMl90KTsKICAgICB+TWVz
c2FnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCmluZGV4IGUwZTc2YjdiZmQz
MGQxNTRhY2ZlNmI5YWQyY2RjMjJkMjdiNGJhMmMuLjMwOWRkNGIyYzU3ZDEwOWYyZWE0ZWUwYmJk
YzdhNjhlN2E4NDEyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
TGV4ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKQEAgLTE4
MCw3ICsxODAsNyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3Ry
aW5ncz4gQUxXQVlTX0lOTElORSBTdHJpbmdQYXJzZVJlc3VsdCBwYXJzZUNvbXBsZXhFc2NhcGUo
Ym9vbCBzdHJpY3RNb2RlKTsKICAgICBBTFdBWVNfSU5MSU5FIFN0cmluZ1BhcnNlUmVzdWx0IHBh
cnNlVGVtcGxhdGVMaXRlcmFsKEpTVG9rZW5EYXRhKiwgUmF3U3RyaW5nc0J1aWxkTW9kZSk7CiAg
ICAgCi0gICAgdXNpbmcgTnVtYmVyUGFyc2VSZXN1bHQgPSBWYXJpYW50PGRvdWJsZSwgY29uc3Qg
SWRlbnRpZmllcio+OworICAgIHVzaW5nIE51bWJlclBhcnNlUmVzdWx0ID0gc3RkOjp2YXJpYW50
PGRvdWJsZSwgY29uc3QgSWRlbnRpZmllcio+OwogICAgIEFMV0FZU19JTkxJTkUgc3RkOjpvcHRp
b25hbDxOdW1iZXJQYXJzZVJlc3VsdD4gcGFyc2VIZXgoKTsKICAgICBBTFdBWVNfSU5MSU5FIHN0
ZDo6b3B0aW9uYWw8TnVtYmVyUGFyc2VSZXN1bHQ+IHBhcnNlQmluYXJ5KCk7CiAgICAgQUxXQVlT
X0lOTElORSBzdGQ6Om9wdGlvbmFsPE51bWJlclBhcnNlUmVzdWx0PiBwYXJzZU9jdGFsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1l
bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5o
CmluZGV4IDI5Njg5MDcwMjVlNWEzNzg3Y2E3NGRjOTBlY2VmNWY4ZDc4YzEwNGYuLmI0NDdlMzcy
MzY5NzZkMWRkZTZlMjVhYWIyZTUyY2UxZTg3YmFhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oCkBAIC0zNDMsNyArMzQzLDcg
QEAgY2xhc3MgQ29tcGFjdFREWkVudmlyb25tZW50IHsKIAogICAgIHVzaW5nIENvbXBhY3QgPSBW
ZWN0b3I8UGFja2VkUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPj47CiAgICAgdXNpbmcgSW5mbGF0
ZWQgPSBURFpFbnZpcm9ubWVudDsKLSAgICB1c2luZyBWYXJpYWJsZXMgPSBWYXJpYW50PENvbXBh
Y3QsIEluZmxhdGVkPjsKKyAgICB1c2luZyBWYXJpYWJsZXMgPSBzdGQ6OnZhcmlhbnQ8Q29tcGFj
dCwgSW5mbGF0ZWQ+OwogCiBwdWJsaWM6CiAgICAgQ29tcGFjdFREWkVudmlyb25tZW50KGNvbnN0
IFREWkVudmlyb25tZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9CeXRlY29kZUNhY2hlRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0J5dGVjb2RlQ2FjaGVFcnJvci5oCmluZGV4IDQyMjYxZDQ3NzI4OWJmYzAyMDliYzdjNDcxMzU0
MWFiN2JiNTRjZGEuLjBlOTMyYzg4NTFjNjk5NGIyMWRlNzc3N2I1NDZhODZjZTM2MmZjM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJv
ci5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJp
bmcgbWVzc2FnZSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFZhcmlhbnQ8UGFyc2VyRXJyb3Is
IFN0YW5kYXJkRXJyb3IsIFdyaXRlRXJyb3I+IG1fZXJyb3I7CisgICAgc3RkOjp2YXJpYW50PFBh
cnNlckVycm9yLCBTdGFuZGFyZEVycm9yLCBXcml0ZUVycm9yPiBtX2Vycm9yOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9DYWNoZVBheWxvYWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVQ
YXlsb2FkLmNwcAppbmRleCAyN2QyYjdiNzQxYTdkZjVmYTY3ODlkNzJlODIyMWRmNDg4M2I3NTc2
Li45MmI4MGEzMThmZjY1MzZjNzIyZGM1ZTkyYjVjMGE5YzU5MTdhNmI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5jcHAKQEAgLTQ5LDcgKzQ5LDcg
QEAgQ2FjaGVQYXlsb2FkOjpDYWNoZVBheWxvYWQoQ2FjaGVQYXlsb2FkJiYgb3RoZXIpCiAgICAg
b3RoZXIubV9kYXRhID0gc3RkOjpwYWlyIHsgbnVsbHB0ciwgMCB9OwogfQogCi1DYWNoZVBheWxv
YWQ6OkNhY2hlUGF5bG9hZChWYXJpYW50PEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhLCBzdGQ6
OnBhaXI8TWFsbG9jUHRyPHVpbnQ4X3QsIFZNTWFsbG9jPiwgc2l6ZV90Pj4mJiBkYXRhKQorQ2Fj
aGVQYXlsb2FkOjpDYWNoZVBheWxvYWQoc3RkOjp2YXJpYW50PEZpbGVTeXN0ZW06Ok1hcHBlZEZp
bGVEYXRhLCBzdGQ6OnBhaXI8TWFsbG9jUHRyPHVpbnQ4X3QsIFZNTWFsbG9jPiwgc2l6ZV90Pj4m
JiBkYXRhKQogICAgIDogbV9kYXRhKFdURk1vdmUoZGF0YSkpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5oCmluZGV4IGJlZjhkNzA2NTIyYWY2YWUw
MjQ5ZTg2NWZlMzAzOTQ2MWU2MDk2ZmMuLmI4NDdhNmY1NzI2YmNhYTU2Y2VjYmQ5ZDc2OWM1NWQ0
MDQ0NDNmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hl
UGF5bG9hZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9h
ZC5oCkBAIC00Niw5ICs0Niw5IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBzaXpl
X3Qgc2l6ZSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIENhY2hlUGF5bG9hZChWYXJpYW50PEZp
bGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhLCBzdGQ6OnBhaXI8TWFsbG9jUHRyPHVpbnQ4X3QsIFZN
TWFsbG9jPiwgc2l6ZV90Pj4mJik7CisgICAgQ2FjaGVQYXlsb2FkKHN0ZDo6dmFyaWFudDxGaWxl
U3lzdGVtOjpNYXBwZWRGaWxlRGF0YSwgc3RkOjpwYWlyPE1hbGxvY1B0cjx1aW50OF90LCBWTU1h
bGxvYz4sIHNpemVfdD4+JiYpOwogCi0gICAgVmFyaWFudDxGaWxlU3lzdGVtOjpNYXBwZWRGaWxl
RGF0YSwgc3RkOjpwYWlyPE1hbGxvY1B0cjx1aW50OF90LCBWTU1hbGxvYz4sIHNpemVfdD4+IG1f
ZGF0YTsKKyAgICBzdGQ6OnZhcmlhbnQ8RmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEsIHN0ZDo6
cGFpcjxNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+LCBzaXplX3Q+PiBtX2RhdGE7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NhY2hlVXBkYXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNo
ZVVwZGF0ZS5oCmluZGV4IDJjODgyODM3MzJlODdhNTM4NTU5M2E5YmI3MDU0NDE1ODdhMDMyNmUu
LmM5OWJiMzBmNTVjMTlmYmQyYjdiODI1OGI1ZTQ5N2Q3ZTdiZmE3NDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlVXBkYXRlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVVcGRhdGUuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJs
aWM6CiAgICAgY29uc3QgRnVuY3Rpb25VcGRhdGUmIGFzRnVuY3Rpb24oKSBjb25zdDsKIAogcHJp
dmF0ZToKLSAgICBWYXJpYW50PEdsb2JhbFVwZGF0ZSwgRnVuY3Rpb25VcGRhdGU+IG1fdXBkYXRl
OworICAgIHN0ZDo6dmFyaWFudDxHbG9iYWxVcGRhdGUsIEZ1bmN0aW9uVXBkYXRlPiBtX3VwZGF0
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSVNPODYwMS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JU084NjAxLmNwcAppbmRleCBlNzJiZjcyNzdiMjJmMzc2NTI5NjRlZjQ0MzY2MTBlOTYzNDMx
ZDljLi41OWIxYzdlZjViMzkzZDJkYTQ5ZTQyNjY5OTQ0MDM2Njc2OGI5YTUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIHN0
ZDo6b3B0aW9uYWw8aW50NjRfdD4gcGFyc2VUaW1lWm9uZU51bWVyaWNVVENPZmZzZXQoU3RyaW5n
VmlldyBzdHJpbmcpCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Ci1zdGF0
aWMgc3RkOjpvcHRpb25hbDxWYXJpYW50PFZlY3RvcjxMQ2hhcj4sIGludDY0X3Q+PiBwYXJzZVRp
bWVab25lQnJhY2tldGVkQW5ub3RhdGlvbihTdHJpbmdQYXJzaW5nQnVmZmVyPENoYXJhY3RlclR5
cGU+JiBidWZmZXIpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8VmVjdG9yPExD
aGFyPiwgaW50NjRfdD4+IHBhcnNlVGltZVpvbmVCcmFja2V0ZWRBbm5vdGF0aW9uKFN0cmluZ1Bh
cnNpbmdCdWZmZXI8Q2hhcmFjdGVyVHlwZT4mIGJ1ZmZlcikKIHsKICAgICAvLyBodHRwczovL3Rj
MzkuZXMvcHJvcG9zYWwtdGVtcG9yYWwvI3Byb2QtVGltZVpvbmVCcmFja2V0ZWRBbm5vdGF0aW9u
CiAgICAgLy8gVGltZVpvbmVCcmFja2V0ZWRBbm5vdGF0aW9uIDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0lTTzg2MDEuaAppbmRleCBlOGZlMjgyMWVmODY3YjI5NjQ4YTJjNDIwYjQzMTA2
YWYzNDE5Y2RjLi5jNzQyNGFlOTMxZWZlMWI1MGRjMGFjZDIyYmYyMWI5OTcwOTU2YTZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5oCkBAIC0xNDYsMTQgKzE0NiwxNCBA
QCBwcml2YXRlOgogICAgIHVpbnQ4X3QgbV9kYXkgeyAxIH07CiB9OwogCi11c2luZyBUaW1lWm9u
ZSA9IFZhcmlhbnQ8VGltZVpvbmVJRCwgaW50NjRfdD47Cit1c2luZyBUaW1lWm9uZSA9IHN0ZDo6
dmFyaWFudDxUaW1lWm9uZUlELCBpbnQ2NF90PjsKIAogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bv
c2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwtcGFyc2V0ZW1wb3JhbHRpbWV6b25lc3RyaW5nCiAv
LyBSZWNvcmQgeyBbW1pdXSwgW1tPZmZzZXRTdHJpbmddXSwgW1tOYW1lXV0gfQogc3RydWN0IFRp
bWVab25lUmVjb3JkIHsKICAgICBib29sIG1feiB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25h
bDxpbnQ2NF90PiBtX29mZnNldDsKLSAgICBWYXJpYW50PFZlY3RvcjxMQ2hhcj4sIGludDY0X3Q+
IG1fbmFtZU9yT2Zmc2V0OworICAgIHN0ZDo6dmFyaWFudDxWZWN0b3I8TENoYXI+LCBpbnQ2NF90
PiBtX25hbWVPck9mZnNldDsKIH07CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1w
b3JhbC8jc3VwLWlzdmFsaWR0aW1lem9uZW5hbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCmluZGV4IGI5MzhmZDU3YTVhMmU0ZjhjMmM0
ZWM4ZDMwNmQwMmIwM2Q0NDg4ZTIuLjcwNDlhYjQ4MjY4YWVmYWMxN2JmMTk2ZDRmMTUyNjFmNWM1
YmI1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2Vu
ZXJhdG9yLmNwcApAQCAtODAsOCArODAsOCBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIG1f
dHJ5RGVwdGg7CiAgICAgfTsKIAotICAgIHN0cnVjdCBDb250cm9sVHlwZSA6IHB1YmxpYyBWYXJp
YW50PENvbnRyb2xMb29wLCBDb250cm9sVG9wTGV2ZWwsIENvbnRyb2xCbG9jaywgQ29udHJvbElm
LCBDb250cm9sVHJ5LCBDb250cm9sQ2F0Y2g+IHsKLSAgICAgICAgdXNpbmcgQmFzZSA9IFZhcmlh
bnQ8Q29udHJvbExvb3AsIENvbnRyb2xUb3BMZXZlbCwgQ29udHJvbEJsb2NrLCBDb250cm9sSWYs
IENvbnRyb2xUcnksIENvbnRyb2xDYXRjaD47CisgICAgc3RydWN0IENvbnRyb2xUeXBlIDogcHVi
bGljIHN0ZDo6dmFyaWFudDxDb250cm9sTG9vcCwgQ29udHJvbFRvcExldmVsLCBDb250cm9sQmxv
Y2ssIENvbnRyb2xJZiwgQ29udHJvbFRyeSwgQ29udHJvbENhdGNoPiB7CisgICAgICAgIHVzaW5n
IEJhc2UgPSBzdGQ6OnZhcmlhbnQ8Q29udHJvbExvb3AsIENvbnRyb2xUb3BMZXZlbCwgQ29udHJv
bEJsb2NrLCBDb250cm9sSWYsIENvbnRyb2xUcnksIENvbnRyb2xDYXRjaD47CiAKICAgICAgICAg
Q29udHJvbFR5cGUoKQogICAgICAgICAgICAgOiBCYXNlKENvbnRyb2xCbG9jayB7IH0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MaWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNldC5oIGIv
U291cmNlL1dURi93dGYvTGlrZWx5RGVuc2VVbnNpZ25lZEludGVnZXJTZXQuaAppbmRleCA3NDQy
YTQzMWEzODlkYWEyZDIwZjA1MjY3Y2Q5MTRlYzBlMmVhNmJhLi4xMzk4MmU1MDVkNzA5YTlkNzJm
NjcxODFlNjFkMjJjOGYwMWViMTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MaWtlbHlE
ZW5zZVVuc2lnbmVkSW50ZWdlclNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xpa2VseURlbnNl
VW5zaWduZWRJbnRlZ2VyU2V0LmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAK
IERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKExpa2VseURlbnNlVW5zaWdu
ZWRJbnRlZ2VyU2V0KTsKIAotLy8gVGhpcyBpcyBlZmZlY3RpdmVseSBhIFZhcmlhbnQ8SGFzaFNl
dCwgUGFpcjxCaXRWZWN0b3IsIEluZGV4VHlwZT4+CisvLyBUaGlzIGlzIGVmZmVjdGl2ZWx5IGEg
c3RkOjp2YXJpYW50PEhhc2hTZXQsIFBhaXI8Qml0VmVjdG9yLCBJbmRleFR5cGU+PgogLy8gSWYg
aXQgaXMgaW4gQml0VmVjdG9yIG1vZGUsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSBtaW5pbXVtIHZh
bHVlIGluIHRoZSBzZXQsIGFuZCBoYXMgdGhlIGJpdFZlY3RvciBzaGlmdGVkIGJ5IHRoZSBzYW1l
IGFtb3VudC4KIC8vIFNvIGZvciBleGFtcGxlIHs0MDAwLCA0MDAyLCA0MDAzfSB3b3VsZCBiZSBy
ZXByZXNlbnRlZCBhcyB0aGUgYml0VmVjdG9yIDExMDEgd2l0aCBhIG1fbWluIG9mIDQwMDAuCiAv
LyBJdCBzaGlmdHMgYmV0d2VlbiB0aGUgdHdvIG1vZGVzIHdoZW5ldmVyIHRoYXQgd291bGQgYXQg
bGVhc3QgaGFsdmUgaXRzIG1lbW9yeSB1c2FnZS4gU28gaXQgd2lsbCBuZXZlciB1c2UgbW9yZSB0
aGFuIHR3aWNlIHRoZSBvcHRpbWFsIGFtb3VudCBvZiBtZW1vcnksIGFuZCB5ZXQgc2hvdWxkIG5v
dCBwaW5nLXBvbmcgYmV0d2VlbiB0aGUgdHdvIG1vZGVzIHRvbyBvZnRlbi4KQEAgLTIxOSw3ICsy
MTksNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdURjo6
VmFyaWFudDxCaXRWZWN0b3I6Oml0ZXJhdG9yLCB0eXBlbmFtZSBTZXQ6Oml0ZXJhdG9yPiBtX3Vu
ZGVybHlpbmc7CisgICAgICAgIHN0ZDo6dmFyaWFudDxCaXRWZWN0b3I6Oml0ZXJhdG9yLCB0eXBl
bmFtZSBTZXQ6Oml0ZXJhdG9yPiBtX3VuZGVybHlpbmc7CiAgICAgICAgIEluZGV4VHlwZSBtX3No
aWZ0OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NtYWxsU2V0LmggYi9T
b3VyY2UvV1RGL3d0Zi9TbWFsbFNldC5oCmluZGV4IDlkZjE5YmM1ODRkYTBlN2FhM2MzZDM1ODZi
ZTkwMjA1MGE0NjlmMjEuLmMwZTRmZjY1N2M3ZGViMjYzMzkwZGVjYTUzOTk3NzBhODlkNjRhMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1NtYWxsU2V0LmgKKysrIGIvU291cmNlL1dURi93
dGYvU21hbGxTZXQuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogREVDTEFS
RV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoU21hbGxTZXQpOwogCi0vLyBGdW5jdGlv
bmFsbHksIHRoaXMgY2xhc3MgaXMgdmVyeSBzaW1pbGFyIHRvIFZhcmlhbnQ8VmVjdG9yPFQsIFNt
YWxsQXJyYXlTaXplPiwgSGFzaFNldDxUPj4KKy8vIEZ1bmN0aW9uYWxseSwgdGhpcyBjbGFzcyBp
cyB2ZXJ5IHNpbWlsYXIgdG8gc3RkOjp2YXJpYW50PFZlY3RvcjxULCBTbWFsbEFycmF5U2l6ZT4s
IEhhc2hTZXQ8VD4+CiAvLyBJdCBpcyBvcHRpbWl6ZWQgcHJpbWFyaWx5IGZvciBzcGFjZSwgYnV0
IGlzIGFsc28gcXVpdGUgZmFzdAogLy8gSXRzIG1haW4gbGltaXRhdGlvbiBpcyB0aGF0IGl0IGhh
cyBubyB3YXkgdG8gcmVtb3ZlIGVsZW1lbnRzIG9uY2UgdGhleSBoYXZlIGJlZW4gYWRkZWQgdG8g
aXQKIC8vIEFsc28sIGluc3RlYWQgb2YgYmVpbmcgZnVsbHkgcGFyYW1ldGVyaXplZCBieSBhIEhh
c2hUcmFpdCBwYXJhbWV0ZXIsIGl0IGFsd2F5cyB1c2VzIC0xIChhbGwgb25lcykgYXMgaXRzIGVt
cHR5IHZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4
IGMyYzViMjYzODg2NzIzNTY4OTI5NDFmYzZjM2M3NDJjOWQzNjgwYjguLmYyNmYyZDkxMWM5MDgy
MmU4YzM2MzhiYWRmMmI2MjU2MDc3NThmY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuY3BwCkBAIC00Myw3ICs0Myw3IEBAIFRleHRCcmVha0l0ZXJhdG9yQ2FjaGUm
IFRleHRCcmVha0l0ZXJhdG9yQ2FjaGU6OnNpbmdsZXRvbigpCiAKICNpZiAhUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAotc3RhdGljIFZhcmlhbnQ8VGV4dEJyZWFrSXRl
cmF0b3JJQ1UsIFRleHRCcmVha0l0ZXJhdG9yUGxhdGZvcm0+IG1hcE1vZGVUb0JhY2tpbmdJdGVy
YXRvcihTdHJpbmdWaWV3IHN0cmluZywgVGV4dEJyZWFrSXRlcmF0b3I6Ok1vZGUgbW9kZSwgY29u
c3QgQXRvbVN0cmluZyYgbG9jYWxlKQorc3RhdGljIHN0ZDo6dmFyaWFudDxUZXh0QnJlYWtJdGVy
YXRvcklDVSwgVGV4dEJyZWFrSXRlcmF0b3JQbGF0Zm9ybT4gbWFwTW9kZVRvQmFja2luZ0l0ZXJh
dG9yKFN0cmluZ1ZpZXcgc3RyaW5nLCBUZXh0QnJlYWtJdGVyYXRvcjo6TW9kZSBtb2RlLCBjb25z
dCBBdG9tU3RyaW5nJiBsb2NhbGUpCiB7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBU
ZXh0QnJlYWtJdGVyYXRvcjo6TW9kZTo6TGluZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuaAppbmRleCBkMDA2YThmNmRmNTkwOWYyNDhlZmFjNDk2YTYyYjUxOGUzMjMyZWJh
Li4zZjRiMzNmZGE0ZDk1ZWE3NTI2ZTNjMmVhMDgyYzA5ZmYwN2Q0ZjQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIG1fbG9jYWxlOwogICAgIH0KIAotICAgIFZhcmlhbnQ8VGV4dEJyZWFr
SXRlcmF0b3JJQ1UsIFRleHRCcmVha0l0ZXJhdG9yUGxhdGZvcm0+IG1fYmFja2luZzsKKyAgICBz
dGQ6OnZhcmlhbnQ8VGV4dEJyZWFrSXRlcmF0b3JJQ1UsIFRleHRCcmVha0l0ZXJhdG9yUGxhdGZv
cm0+IG1fYmFja2luZzsKICAgICBNb2RlIG1fbW9kZTsKICAgICBBdG9tU3RyaW5nIG1fbG9jYWxl
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvY29jb2EvVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVUNvY29hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvY29jb2EvVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVUNvY29hLmNwcAppbmRleCAyNWQwNmIyYTU5NGQzYzAy
ZDM4YzNmOTliNGZkODE1N2YzMTBhMDUzLi5hODc0NWM5YzU1OWU3Y2ZmNGI1ZTliMTlhOGNjMGE0
ODM2Yzc4YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L2NvY29hL1RleHRCcmVh
a0l0ZXJhdG9ySW50ZXJuYWxJQ1VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9j
b2NvYS9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVQ29jb2EuY3BwCkBAIC0zMSw3ICszMSw3
IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gQnVmZmVyIHNpemVkIHRvIGhvbGQgQVNDSUkgbG9jYWxl
IElEIHN0cmluZ3MgdXAgdG8gMzIgY2hhcmFjdGVycyBsb25nLgogdXNpbmcgTG9jYWxlSURCdWZm
ZXIgPSBzdGQ6OmFycmF5PGNoYXIsIDMzPjsKIAotc3RhdGljIFZhcmlhbnQ8VGV4dEJyZWFrSXRl
cmF0b3JJQ1UsIFRleHRCcmVha0l0ZXJhdG9yUGxhdGZvcm0+IG1hcE1vZGVUb0JhY2tpbmdJdGVy
YXRvcihTdHJpbmdWaWV3IHN0cmluZywgVGV4dEJyZWFrSXRlcmF0b3I6Ok1vZGUgbW9kZSwgY29u
c3QgQXRvbVN0cmluZyYgbG9jYWxlKQorc3RhdGljIHN0ZDo6dmFyaWFudDxUZXh0QnJlYWtJdGVy
YXRvcklDVSwgVGV4dEJyZWFrSXRlcmF0b3JQbGF0Zm9ybT4gbWFwTW9kZVRvQmFja2luZ0l0ZXJh
dG9yKFN0cmluZ1ZpZXcgc3RyaW5nLCBUZXh0QnJlYWtJdGVyYXRvcjo6TW9kZSBtb2RlLCBjb25z
dCBBdG9tU3RyaW5nJiBsb2NhbGUpCiB7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBU
ZXh0QnJlYWtJdGVyYXRvcjo6TW9kZTo6TGluZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1C
aW5kaW5nc0RhdGFTb3VyY2UuaAppbmRleCAwZTFmYTg4ZWVhNDg2ZTM4MDY5MGExN2VhMDdlMjFl
OTEyZGNiNmJhLi5hZTI1MjIxOTQ2MzM2Yjk1YTc2NmY5NTlhNmY5ZDJlMTZlMDg5YjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJ
dGVtQmluZGluZ3NEYXRhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3lu
Yy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5oCkBAIC01Myw3ICs1
Myw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGludm9rZUNvbXBsZXRpb25IYW5kbGVyKCk7CiAK
LSAgICB1c2luZyBCdWZmZXJPclN0cmluZyA9IFZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVm
ZmVyPj47CisgICAgdXNpbmcgQnVmZmVyT3JTdHJpbmcgPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBS
ZWY8U2hhcmVkQnVmZmVyPj47CiAgICAgY2xhc3MgQ2xpcGJvYXJkSXRlbVR5cGVMb2FkZXIgOiBw
dWJsaWMgRmlsZVJlYWRlckxvYWRlckNsaWVudCwgcHVibGljIFJlZkNvdW50ZWQ8Q2xpcGJvYXJk
SXRlbVR5cGVMb2FkZXI+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBSZWY8Q2xpcGJv
YXJkSXRlbVR5cGVMb2FkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHR5cGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuaAppbmRleCA3ZmI0Yjc5NDM5MzA0Y2M5NjUyNDBl
MmNmNThmOWRiZDdmOGVmMWJhLi45NGFkMjEyYTA3MGZjZTI2YWIwYTU5NWFmODJhNTczNmMxMzQ1
OGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5n
aW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5o
CkBAIC01Nyw3ICs1Nyw3IEBAIEV4Y2VwdGlvbiBjb252ZXJ0VG9FeGNlcHRpb25BbmRMb2coU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEVycm9yKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgcXVlcnlD
YWNoZU1hdGNoKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiBjYWNoZWRSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgQ2Fj
aGVRdWVyeU9wdGlvbnMmKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgcXVlcnlDYWNoZU1hdGNoKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgVVJMJiB1cmwsIGJvb2wgaGFzVmFy
eVN0YXIsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiB2YXJ5SGVhZGVycywgY29uc3Qg
Q2FjaGVRdWVyeU9wdGlvbnMmKTsKIAotdXNpbmcgUmVzcG9uc2VCb2R5ID0gVmFyaWFudDxzdGQ6
Om51bGxwdHJfdCwgUmVmPEZvcm1EYXRhPiwgUmVmPFNoYXJlZEJ1ZmZlcj4+OwordXNpbmcgUmVz
cG9uc2VCb2R5ID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Rm9ybURhdGE+LCBS
ZWY8U2hhcmVkQnVmZmVyPj47CiBSZXNwb25zZUJvZHkgaXNvbGF0ZWRSZXNwb25zZUJvZHkoY29u
c3QgUmVzcG9uc2VCb2R5Jik7CiBXRUJDT1JFX0VYUE9SVCBSZXNwb25zZUJvZHkgY29weVJlc3Bv
bnNlQm9keShjb25zdCBSZXNwb25zZUJvZHkmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5LmgKaW5kZXggNmRjZjU1MThlZmM0NzFjZjFhOWE2YTg3NGRkZmIzYWUzZmQ0
NzJjYi4uMDVhYThlZmVlYjI5MDIxOWE2ZTBkMTM0MjI0NmJiN2RjMWZlOWQyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCkBAIC01Myw3ICs1Myw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgY29uc3VtZUFzU3RyZWFtKEZldGNoQm9keU93bmVyJiwgRmV0Y2hCb2R5
U291cmNlJik7CiAKLSAgICB1c2luZyBJbml0ID0gVmFyaWFudDxSZWZQdHI8QmxvYj4sIFJlZlB0
cjxBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8QXJyYXlCdWZmZXI+LCBSZWZQdHI8RE9NRm9ybURh
dGE+LCBSZWZQdHI8VVJMU2VhcmNoUGFyYW1zPiwgUmVmUHRyPFJlYWRhYmxlU3RyZWFtPiwgU3Ry
aW5nPjsKKyAgICB1c2luZyBJbml0ID0gc3RkOjp2YXJpYW50PFJlZlB0cjxCbG9iPiwgUmVmUHRy
PEFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxBcnJheUJ1ZmZlcj4sIFJlZlB0cjxET01Gb3JtRGF0
YT4sIFJlZlB0cjxVUkxTZWFyY2hQYXJhbXM+LCBSZWZQdHI8UmVhZGFibGVTdHJlYW0+LCBTdHJp
bmc+OwogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxGZXRjaEJvZHk+IGV4dHJhY3QoSW5pdCYmLCBT
dHJpbmcmKTsKICAgICBGZXRjaEJvZHkoKSA9IGRlZmF1bHQ7CiAKQEAgLTY0LDcgKzY0LDcgQEAg
cHVibGljOgogCiAgICAgUmVmUHRyPEZvcm1EYXRhPiBib2R5QXNGb3JtRGF0YSgpIGNvbnN0Owog
Ci0gICAgdXNpbmcgVGFrZW5EYXRhID0gVmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVmPEZvcm1E
YXRhPiwgUmVmPFNoYXJlZEJ1ZmZlcj4+OworICAgIHVzaW5nIFRha2VuRGF0YSA9IHN0ZDo6dmFy
aWFudDxzdGQ6Om51bGxwdHJfdCwgUmVmPEZvcm1EYXRhPiwgUmVmPFNoYXJlZEJ1ZmZlcj4+Owog
ICAgIFRha2VuRGF0YSB0YWtlKCk7CiAKICAgICB2b2lkIHNldEFzRm9ybURhdGEoUmVmPEZvcm1E
YXRhPiYmIGRhdGEpIHsgbV9kYXRhID0gV1RGTW92ZShkYXRhKTsgfQpAQCAtMTE5LDcgKzExOSw3
IEBAIHByaXZhdGU6CiAgICAgY29uc3QgU3RyaW5nJiB0ZXh0Qm9keSgpIGNvbnN0IHsgcmV0dXJu
IFdURjo6Z2V0PFN0cmluZz4obV9kYXRhKTsgfQogICAgIGNvbnN0IFVSTFNlYXJjaFBhcmFtcyYg
dXJsU2VhcmNoUGFyYW1zQm9keSgpIGNvbnN0IHsgcmV0dXJuIFdURjo6Z2V0PFJlZjxjb25zdCBV
UkxTZWFyY2hQYXJhbXM+PihtX2RhdGEpLmdldCgpOyB9CiAKLSAgICB1c2luZyBEYXRhID0gVmFy
aWFudDxzdGQ6Om51bGxwdHJfdCwgUmVmPGNvbnN0IEJsb2I+LCBSZWY8Rm9ybURhdGE+LCBSZWY8
Y29uc3QgQXJyYXlCdWZmZXI+LCBSZWY8Y29uc3QgQXJyYXlCdWZmZXJWaWV3PiwgUmVmPGNvbnN0
IFVSTFNlYXJjaFBhcmFtcz4sIFN0cmluZz47CisgICAgdXNpbmcgRGF0YSA9IHN0ZDo6dmFyaWFu
dDxzdGQ6Om51bGxwdHJfdCwgUmVmPGNvbnN0IEJsb2I+LCBSZWY8Rm9ybURhdGE+LCBSZWY8Y29u
c3QgQXJyYXlCdWZmZXI+LCBSZWY8Y29uc3QgQXJyYXlCdWZmZXJWaWV3PiwgUmVmPGNvbnN0IFVS
TFNlYXJjaFBhcmFtcz4sIFN0cmluZz47CiAgICAgRGF0YSBtX2RhdGEgeyBudWxscHRyIH07CiAK
ICAgICBGZXRjaEJvZHlDb25zdW1lciBtX2NvbnN1bWVyIHsgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5
cGU6Ok5vbmUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hCb2R5T3duZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3du
ZXIuaAppbmRleCA4MDFmMmNmMGU1NDViNzg0YzkzZDk1MWFlM2E1OTJmNmQ2OWQ1MWI4Li45ZTEw
MmNjMTI3NDM3NDc0ZjNmY2MxNjljNzU5NGM1YmVhZTQwNTc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHJp
dmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPEJsb2JMb2FkZXI+IG1fYmxvYkxvYWRlcjsKICAgICBi
b29sIG1faXNCb2R5T3BhcXVlIHsgZmFsc2UgfTsKIAotICAgIFZhcmlhbnQ8c3RkOjpudWxscHRy
X3QsIEV4Y2VwdGlvbiwgUmVzb3VyY2VFcnJvcj4gbV9sb2FkaW5nRXJyb3I7CisgICAgc3RkOjp2
YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBFeGNlcHRpb24sIFJlc291cmNlRXJyb3I+IG1fbG9hZGlu
Z0Vycm9yOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmgKaW5kZXggYzY3ZTExNWM4MjgyNGU3YjJmYWIxNTkw
MmU1NjdiZDBkZDNhODM1My4uMjE5OTFlOTIwZGQ3NzFlYTJmMTFhOTBlZjMwNjk5NTYxMGEwNTE4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5oCkBAIC00
Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICAgICAgUmVzcG9uc2UKICAgICB9OwogCi0gICAgdXNp
bmcgSW5pdCA9IFZhcmlhbnQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+PiwgVmVjdG9yPFdURjo6S2V5
VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4+OworICAgIHVzaW5nIEluaXQgPSBzdGQ6OnZhcmlh
bnQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+PiwgVmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4+OwogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8RmV0Y2hIZWFkZXJzPj4g
Y3JlYXRlKHN0ZDo6b3B0aW9uYWw8SW5pdD4mJik7CiAKICAgICBzdGF0aWMgUmVmPEZldGNoSGVh
ZGVycz4gY3JlYXRlKEd1YXJkIGd1YXJkID0gR3VhcmQ6Ok5vbmUsIEhUVFBIZWFkZXJNYXAmJiBo
ZWFkZXJzID0geyB9KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEZldGNoSGVhZGVycyB7IGd1YXJk
LCBXVEZNb3ZlKGhlYWRlcnMpIH0pOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlcXVlc3QuaAppbmRleCA2ODQ5YjliYWY5MDgxYTliYTk2ODEwZTk5ODE4NDdjYzYyZmRl
ZDU1Li40NWZjYjcwZTNlZTg5MDc5NzBmZTFlNjVmNjhjYjZiYzQ3Y2RmMDhmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKQEAgLTQ0LDcgKzQ0LDcgQEAg
Y2xhc3MgVVJMU2VhcmNoUGFyYW1zOwogY2xhc3MgRmV0Y2hSZXF1ZXN0IGZpbmFsIDogcHVibGlj
IEZldGNoQm9keU93bmVyIHsKIHB1YmxpYzoKICAgICB1c2luZyBJbml0ID0gRmV0Y2hSZXF1ZXN0
SW5pdDsKLSAgICB1c2luZyBJbmZvID0gVmFyaWFudDxSZWZQdHI8RmV0Y2hSZXF1ZXN0PiwgU3Ry
aW5nPjsKKyAgICB1c2luZyBJbmZvID0gc3RkOjp2YXJpYW50PFJlZlB0cjxGZXRjaFJlcXVlc3Q+
LCBTdHJpbmc+OwogCiAgICAgdXNpbmcgQ2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNhY2hlOwogICAg
IHVzaW5nIENyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKaW5kZXggMmZmZTFkMzg0NWNk
YWJlMTI5ODRkMjE0YzYyNzFmZmQ3NDc1MDk0MS4uYTM1ODVjNzMzNjQ4ODdjYTM0OGEyM2YyM2Ji
M2ZkNWRmOTlkMzJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJl
c3BvbnNlLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZmVlZFN0cmVhbSgp
IGZpbmFsOwogICAgIHZvaWQgY2FuY2VsKCkgZmluYWw7CiAKLSAgICB1c2luZyBSZXNwb25zZURh
dGEgPSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Rm9ybURhdGE+LCBSZWY8U2hhcmVkQnVm
ZmVyPj47CisgICAgdXNpbmcgUmVzcG9uc2VEYXRhID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0
cl90LCBSZWY8Rm9ybURhdGE+LCBSZWY8U2hhcmVkQnVmZmVyPj47CiAgICAgUmVzcG9uc2VEYXRh
IGNvbnN1bWVCb2R5KCk7CiAgICAgdm9pZCBzZXRCb2R5RGF0YShSZXNwb25zZURhdGEmJiwgdWlu
dDY0X3QgYm9keVNpemVXaXRoUGFkZGluZyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmgKaW5kZXggNGY2ZDNlMWYzMzQxMDc5MjFkYjU1NDIwZWRlN2Zl
MmE3ZTAwYWE5Ni4uNWZmYmFhYmJlMmQ3YjBiM2NkZjZmOGRiZjFiZjU3OTNlYjE2MjQ5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKQEAgLTUxLDcg
KzUxLDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgfklEQkN1cnNvcigpOwogCi0gICAg
dXNpbmcgU291cmNlID0gVmFyaWFudDxSZWZQdHI8SURCT2JqZWN0U3RvcmU+LCBSZWZQdHI8SURC
SW5kZXg+PjsKKyAgICB1c2luZyBTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPElEQk9iamVj
dFN0b3JlPiwgUmVmUHRyPElEQkluZGV4Pj47CiAKICAgICBjb25zdCBTb3VyY2UmIHNvdXJjZSgp
IGNvbnN0OwogICAgIElEQkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24oKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCmluZGV4IDYxOWU5
Yzk0YTJkMzU5OGJiMmEyODQ3OWZjMDMwNzIwNzgxNzRhMDcuLmE0YWM2Zjc2MTYzODkzNmFhMGVl
ZGE4YmEwN2UxMTRjYThkNTZkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuaApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICBFeGNl
cHRpb25PcjxSZWY8SURCT2JqZWN0U3RvcmU+PiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJp
bmcmIG5hbWUsIE9iamVjdFN0b3JlUGFyYW1ldGVycyYmKTsKIAotICAgIHVzaW5nIFN0cmluZ09y
VmVjdG9yT2ZTdHJpbmdzID0gV1RGOjpWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+Owor
ICAgIHVzaW5nIFN0cmluZ09yVmVjdG9yT2ZTdHJpbmdzID0gc3RkOjp2YXJpYW50PFN0cmluZywg
VmVjdG9yPFN0cmluZz4+OwogICAgIHN0cnVjdCBUcmFuc2FjdGlvbk9wdGlvbnMgewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPElEQlRyYW5zYWN0aW9uRHVyYWJpbGl0eT4gZHVyYWJpbGl0eTsKICAg
ICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaAppbmRleCAzZmU3
ZWQzOGNjYjcyM2M3NGY1ZTVkYWI3ZTY5Nzg2NzlhOGE2Nzk4Li5mNTNhYjI0ZWZlNzcwYzMzNDM1
NjkwMjI4ZmFlNzE3ZTQ2MGNkOWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXkuaApAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSURC
S2V5KGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJik7CiAKICAgICBjb25zdCBJbmRleGVkREI6
OktleVR5cGUgbV90eXBlOwotICAgIFZhcmlhbnQ8VmVjdG9yPFJlZlB0cjxJREJLZXk+PiwgU3Ry
aW5nLCBkb3VibGUsIFRocmVhZFNhZmVEYXRhQnVmZmVyPiBtX3ZhbHVlOworICAgIHN0ZDo6dmFy
aWFudDxWZWN0b3I8UmVmUHRyPElEQktleT4+LCBTdHJpbmcsIGRvdWJsZSwgVGhyZWFkU2FmZURh
dGFCdWZmZXI+IG1fdmFsdWU7CiAKICAgICBjb25zdCBzaXplX3QgbV9zaXplRXN0aW1hdGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuaAppbmRleCBl
ODZjNDYwZTRhNzU2MDE2ZTEzNGYyNzg1ZmZjYWYyZTRhMjkzMzZjLi5lNzYxNzM5ZWFmODgyYTNk
MjhlZDgyNGI0OWQ1NWY0MjkyOWJhOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5RGF0YS5oCkBAIC0xOTMsNyArMTkzLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNOdWxsIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNEZWxldGVkVmFsdWUgeyBmYWxz
ZSB9OwogCi0gICAgVmFyaWFudDxWZWN0b3I8SURCS2V5RGF0YT4sIFN0cmluZywgZG91YmxlLCBU
aHJlYWRTYWZlRGF0YUJ1ZmZlcj4gbV92YWx1ZTsKKyAgICBzdGQ6OnZhcmlhbnQ8VmVjdG9yPElE
QktleURhdGE+LCBTdHJpbmcsIGRvdWJsZSwgVGhyZWFkU2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7
CiB9OwogCiBzdHJ1Y3QgSURCS2V5RGF0YUhhc2ggewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5UGF0aC5oCmluZGV4IGIxYjNkYmJlYjA5ODZiNWY1MGViYmFjN2Vm
MjExYmEyOWYzNDZiZjMuLmMwNTRkY2Q2MjY5YzdkYjU2Y2MzYTk1OGUwYjJlM2IwMzczZGY2YjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmgKQEAg
LTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBJREJLZXlQYXRo
ID0gV1RGOjpWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+OwordXNpbmcgSURCS2V5UGF0
aCA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKIGJvb2wgaXNJREJLZXlQ
YXRoVmFsaWQoY29uc3QgSURCS2V5UGF0aCYpOwogCiBlbnVtIGNsYXNzIElEQktleVBhdGhQYXJz
ZUVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
aAppbmRleCA2YjE5NTA1Mzg0NGIwMWM5ZjJjZDJiNzY1MzVlMjEwY2Y5MGQ5N2U5Li5lMmQwYzg4
ODdlMWRhMGZhY2E0MmYwY2NlMzU2YTJhYzljOWFhYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC03OCwxMiArNzgsMTIgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB+SURCUmVxdWVzdCgpOwogCi0gICAgdXNpbmcgUmVzdWx0ID0gVmFy
aWFudDxSZWZQdHI8SURCQ3Vyc29yPiwgUmVmUHRyPElEQkRhdGFiYXNlPiwgSURCS2V5RGF0YSwg
VmVjdG9yPElEQktleURhdGE+LCBJREJHZXRSZXN1bHQsIElEQkdldEFsbFJlc3VsdCwgdWludDY0
X3QsIE51bGxSZXN1bHRUeXBlPjsKKyAgICB1c2luZyBSZXN1bHQgPSBzdGQ6OnZhcmlhbnQ8UmVm
UHRyPElEQkN1cnNvcj4sIFJlZlB0cjxJREJEYXRhYmFzZT4sIElEQktleURhdGEsIFZlY3RvcjxJ
REJLZXlEYXRhPiwgSURCR2V0UmVzdWx0LCBJREJHZXRBbGxSZXN1bHQsIHVpbnQ2NF90LCBOdWxs
UmVzdWx0VHlwZT47CiAgICAgRXhjZXB0aW9uT3I8UmVzdWx0PiByZXN1bHQoKSBjb25zdDsKICAg
ICBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0JiByZXN1bHRXcmFwcGVyKCkgeyByZXR1cm4gbV9yZXN1
bHRXcmFwcGVyOyB9CiAgICAgSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgY3Vyc29yV3JhcHBlcigp
IHsgcmV0dXJuIG1fY3Vyc29yV3JhcHBlcjsgfQogCi0gICAgdXNpbmcgU291cmNlID0gVmFyaWFu
dDxSZWZQdHI8SURCT2JqZWN0U3RvcmU+LCBSZWZQdHI8SURCSW5kZXg+LCBSZWZQdHI8SURCQ3Vy
c29yPj47CisgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50PFJlZlB0cjxJREJPYmplY3RT
dG9yZT4sIFJlZlB0cjxJREJJbmRleD4sIFJlZlB0cjxJREJDdXJzb3I+PjsKICAgICBjb25zdCBz
dGQ6Om9wdGlvbmFsPFNvdXJjZT4mIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9
CiAKICAgICBFeGNlcHRpb25PcjxET01FeGNlcHRpb24qPiBlcnJvcigpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5jcHAKaW5kZXggN2E1ZTQ4NDZjNDAwMjIwMDdjZjg0NDQ3NDdmZWZiZWJmYTllMjRm
ZS4uMjg2YjE4ZGEzZGE5YjM2NTVhZTE5MjBlZjI4NTczZjk0ZThlZmU2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9s
c0hvc3QuY3BwCkBAIC01MDUsNyArNTA1LDcgQEAgYm9vbCBNZWRpYUNvbnRyb2xzSG9zdDo6c2hv
d01lZGlhQ29udHJvbHNDb250ZXh0TWVudShIVE1MRWxlbWVudCYgdGFyZ2V0LCBTdHJpbmcKICAg
ICAgICAgeDJfMCwKICAgICB9OwogCi0gICAgdXNpbmcgTWVudURhdGEgPSBWYXJpYW50PAorICAg
IHVzaW5nIE1lbnVEYXRhID0gc3RkOjp2YXJpYW50PAogI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKICAgICAgICAgUGljdHVyZUluUGljdHVyZVRhZywKICNlbmRpZiAvLyBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCmluZGV4IGU0NjM5YTdj
NGM5YWU2NWY5NTU0YjAyOWUzZWExMjJjNzFmNDEwZDYuLjNiN2Y3YjE2ZTcwZGIzMDk1ODA3MzBl
NWViMjc4YzJiNmRmNmNmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCkBAIC02Miw3ICs2Miw3IEBAIHB1
YmxpYzoKICAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFjaz4+IHNvcnRlZFRyYWNrTGlzdEZvck1l
bnUoVGV4dFRyYWNrTGlzdCYpOwogICAgIFZlY3RvcjxSZWZQdHI8QXVkaW9UcmFjaz4+IHNvcnRl
ZFRyYWNrTGlzdEZvck1lbnUoQXVkaW9UcmFja0xpc3QmKTsKIAotICAgIHVzaW5nIFRleHRPckF1
ZGlvVHJhY2sgPSBXVEY6OlZhcmlhbnQ8UmVmUHRyPFRleHRUcmFjaz4sIFJlZlB0cjxBdWRpb1Ry
YWNrPj47CisgICAgdXNpbmcgVGV4dE9yQXVkaW9UcmFjayA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8
VGV4dFRyYWNrPiwgUmVmUHRyPEF1ZGlvVHJhY2s+PjsKICAgICBTdHJpbmcgZGlzcGxheU5hbWVG
b3JUcmFjayhjb25zdCBzdGQ6Om9wdGlvbmFsPFRleHRPckF1ZGlvVHJhY2s+Jik7CiAKICAgICBz
dGF0aWMgVGV4dFRyYWNrJiBjYXB0aW9uTWVudU9mZkl0ZW0oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA2Y2Q0MmM2
NDA2MjQzYzc2MmNlNzhhYzUyYjA0ZWJlYmY1MGM2YjBkLi4zODg2ZGM1NzIyYzc1ZTRkNjU0ZWZj
MDM0MGZjNTRiNDE0YWNjYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC04OSw3ICs4OSw3IEBAIERvY3VtZW50KiBN
ZWRpYURldmljZXM6OmRvY3VtZW50KCkgY29uc3QKICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1l
bnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKLXN0YXRpYyBNZWRpYUNvbnN0cmFp
bnRzIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3QgVmFyaWFudDxib29sLCBNZWRpYVRyYWNr
Q29uc3RyYWludHM+JiBjb25zdHJhaW50cykKK3N0YXRpYyBNZWRpYUNvbnN0cmFpbnRzIGNyZWF0
ZU1lZGlhQ29uc3RyYWludHMoY29uc3Qgc3RkOjp2YXJpYW50PGJvb2wsIE1lZGlhVHJhY2tDb25z
dHJhaW50cz4mIGNvbnN0cmFpbnRzKQogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGNvbnN0
cmFpbnRzLAogICAgICAgICBbJl0gKGJvb2wgaXNWYWxpZCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKaW5kZXggMDBmMTBhMjdhY2Fi
MjFiZGI1Y2I5YzJhMTQ1YTg3NjE0M2UxMTU5NS4uZTE4ZDU0ZDQwNmMzNTczNWM2NDliYjdhOTdl
OGVjYmM3MzQ2NzY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRGV2aWNlcy5oCkBAIC03NSwxNCArNzUsMTQgQEAgcHVibGljOgogICAgIH07CiAK
ICAgICBzdHJ1Y3QgU3RyZWFtQ29uc3RyYWludHMgewotICAgICAgICBWYXJpYW50PGJvb2wsIE1l
ZGlhVHJhY2tDb25zdHJhaW50cz4gdmlkZW87Ci0gICAgICAgIFZhcmlhbnQ8Ym9vbCwgTWVkaWFU
cmFja0NvbnN0cmFpbnRzPiBhdWRpbzsKKyAgICAgICAgc3RkOjp2YXJpYW50PGJvb2wsIE1lZGlh
VHJhY2tDb25zdHJhaW50cz4gdmlkZW87CisgICAgICAgIHN0ZDo6dmFyaWFudDxib29sLCBNZWRp
YVRyYWNrQ29uc3RyYWludHM+IGF1ZGlvOwogICAgIH07CiAgICAgdm9pZCBnZXRVc2VyTWVkaWEo
Y29uc3QgU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpOwogCiAgICAgc3RydWN0IERpc3Bs
YXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzIHsKLSAgICAgICAgVmFyaWFudDxib29sLCBNZWRpYVRy
YWNrQ29uc3RyYWludHM+IHZpZGVvOwotICAgICAgICBWYXJpYW50PGJvb2wsIE1lZGlhVHJhY2tD
b25zdHJhaW50cz4gYXVkaW87CisgICAgICAgIHN0ZDo6dmFyaWFudDxib29sLCBNZWRpYVRyYWNr
Q29uc3RyYWludHM+IHZpZGVvOworICAgICAgICBzdGQ6OnZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFj
a0NvbnN0cmFpbnRzPiBhdWRpbzsKICAgICB9OwogICAgIHZvaWQgZ2V0RGlzcGxheU1lZGlhKGNv
bnN0IERpc3BsYXlNZWRpYVN0cmVhbUNvbnN0cmFpbnRzJiwgUHJvbWlzZSYmKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3Ry
YWludHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0Nv
bnN0cmFpbnRzLmgKaW5kZXggNzMxNDI4NWVjZjI5ZDIyYTVkZjEwMDQwY2NjN2NhODYzNjJhYmQ0
ZC4uMWRjZTFjM2Q4ZGFiZmY4NGJjNmRmZmRkZDk0MzY1ZDk4M2UzMDkxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25z
dHJhaW50cy5oCkBAIC00Miw4ICs0Miw4IEBAIHN0cnVjdCBDb25zdHJhaW5Cb29sZWFuUGFyYW1l
dGVycyB7CiB9OwogCiBzdHJ1Y3QgQ29uc3RyYWluRE9NU3RyaW5nUGFyYW1ldGVycyB7Ci0gICAg
c3RkOjpvcHRpb25hbDxWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+PiBleGFjdDsKLSAg
ICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4+IGlkZWFsOwor
ICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+PiBl
eGFjdDsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJp
bmc+Pj4gaWRlYWw7CiB9OwogCiBzdHJ1Y3QgQ29uc3RyYWluRG91YmxlUmFuZ2UgOiBEb3VibGVS
YW5nZSB7CkBAIC01NiwxMCArNTYsMTAgQEAgc3RydWN0IENvbnN0cmFpbkxvbmdSYW5nZSA6IExv
bmdSYW5nZSB7CiAgICAgc3RkOjpvcHRpb25hbDxpbnQ+IGlkZWFsOwogfTsKIAotdXNpbmcgQ29u
c3RyYWluQm9vbGVhbiA9IFZhcmlhbnQ8Ym9vbCwgQ29uc3RyYWluQm9vbGVhblBhcmFtZXRlcnM+
OwotdXNpbmcgQ29uc3RyYWluRE9NU3RyaW5nID0gVmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJp
bmc+LCBDb25zdHJhaW5ET01TdHJpbmdQYXJhbWV0ZXJzPjsKLXVzaW5nIENvbnN0cmFpbkRvdWJs
ZSA9IFZhcmlhbnQ8ZG91YmxlLCBDb25zdHJhaW5Eb3VibGVSYW5nZT47Ci11c2luZyBDb25zdHJh
aW5Mb25nID0gVmFyaWFudDxpbnQsIENvbnN0cmFpbkxvbmdSYW5nZT47Cit1c2luZyBDb25zdHJh
aW5Cb29sZWFuID0gc3RkOjp2YXJpYW50PGJvb2wsIENvbnN0cmFpbkJvb2xlYW5QYXJhbWV0ZXJz
PjsKK3VzaW5nIENvbnN0cmFpbkRPTVN0cmluZyA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3Rv
cjxTdHJpbmc+LCBDb25zdHJhaW5ET01TdHJpbmdQYXJhbWV0ZXJzPjsKK3VzaW5nIENvbnN0cmFp
bkRvdWJsZSA9IHN0ZDo6dmFyaWFudDxkb3VibGUsIENvbnN0cmFpbkRvdWJsZVJhbmdlPjsKK3Vz
aW5nIENvbnN0cmFpbkxvbmcgPSBzdGQ6OnZhcmlhbnQ8aW50LCBDb25zdHJhaW5Mb25nUmFuZ2U+
OwogCiBzdHJ1Y3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXQgewogICAgIHN0ZDo6b3B0aW9uYWw8
Q29uc3RyYWluTG9uZz4gd2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENJY2VTZXJ2ZXIuaAppbmRleCBiMGIxNzk4ZWE3ZjdhOWJhYzgzMWFkMzM3NjI1
NGI1OWQ3Mzc3NjJmLi5kYjIyY2VlNWQ1YWM0YmNiNjMxNTM5MmMyMTJiZTZiZDMzNGFlYjQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVy
LmgKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFJUQ0lj
ZVNlcnZlciB7Ci0gICAgVmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PiB1cmxzOworICAg
IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PiB1cmxzOwogICAgIFN0cmluZyBj
cmVkZW50aWFsOwogICAgIFN0cmluZyB1c2VybmFtZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggM2Yx
MWU0YzExMTEwMzhkNmU4N2IxZGI1NTYyZDU0OTU3YWM2Y2UwZS4uYTU2OTY2MzM3ZmE4ODE2ZjMy
ZTEyZGZhMDc2ZGExYjkxYTk3NzIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApAQCAtMTA1LDcgKzEwNSw3IEBA
IHB1YmxpYzoKICAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGV4cGlyZXM7CiAgICAgfTsK
IAotICAgIHVzaW5nIEFsZ29yaXRobUlkZW50aWZpZXIgPSBWYXJpYW50PEpTQzo6U3Ryb25nPEpT
Qzo6SlNPYmplY3Q+LCBTdHJpbmc+OworICAgIHVzaW5nIEFsZ29yaXRobUlkZW50aWZpZXIgPSBz
dGQ6OnZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4sIFN0cmluZz47CiAgICAgc3Rh
dGljIHZvaWQgZ2VuZXJhdGVDZXJ0aWZpY2F0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgQWxnb3Jp
dGhtSWRlbnRpZmllciYmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFJUQ0NlcnRp
ZmljYXRlPj4mJik7CiAKICAgICAvLyA0LjMuMiBSVENQZWVyQ29ubmVjdGlvbiBJbnRlcmZhY2UK
QEAgLTEyMiw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKiBj
dXJyZW50UmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRSZW1vdGVE
ZXNjcmlwdGlvbi5nZXQoKTsgfQogICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiogcGVuZGluZ1Jl
bW90ZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRp
b24uZ2V0KCk7IH0KIAotICAgIHVzaW5nIENhbmRpZGF0ZSA9IHN0ZDo6b3B0aW9uYWw8VmFyaWFu
dDxSVENJY2VDYW5kaWRhdGVJbml0LCBSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPj4+OworICAgIHVz
aW5nIENhbmRpZGF0ZSA9IHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFJUQ0ljZUNhbmRpZGF0
ZUluaXQsIFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+Pj47CiAgICAgdm9pZCBhZGRJY2VDYW5kaWRh
dGUoQ2FuZGlkYXRlJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCiAgICAgUlRDU2lnbmFs
aW5nU3RhdGUgc2lnbmFsaW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3NpZ25hbGluZ1N0YXRl
OyB9CkBAIC0xNTEsNyArMTUxLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxSVENS
dHBTZW5kZXI+PiBhZGRUcmFjayhSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiwgY29uc3QgVmVjdG9y
PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8TWVkaWFTdHJlYW0+PiYpOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHJlbW92ZVRyYWNrKFJUQ1J0cFNlbmRlciYpOwogCi0gICAgdXNpbmcgQWRkVHJhbnNj
ZWl2ZXJUcmFja09yS2luZCA9IFZhcmlhbnQ8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+LCBTdHJp
bmc+OworICAgIHVzaW5nIEFkZFRyYW5zY2VpdmVyVHJhY2tPcktpbmQgPSBzdGQ6OnZhcmlhbnQ8
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+LCBTdHJpbmc+OwogICAgIEV4Y2VwdGlvbk9yPFJlZjxS
VENSdHBUcmFuc2NlaXZlcj4+IGFkZFRyYW5zY2VpdmVyKEFkZFRyYW5zY2VpdmVyVHJhY2tPcktp
bmQmJiwgY29uc3QgUlRDUnRwVHJhbnNjZWl2ZXJJbml0Jik7CiAKICAgICAvLyA2LjEgUGVlci10
by1wZWVyIGRhdGEgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFRyYW5zZm9ybS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBUcmFuc2Zvcm0uaAppbmRleCAxYTc5NThiNTA3ODIyYTQxOWQ5NGE3OWEzNGZj
MDIxNDY5N2ZmYmZjLi5jMjQ5ZjA0YWU2MWZiZTU2NjVjYmE0ZTU4Mjg2NGY2MGEwMDQzNGM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5z
Zm9ybS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNmb3JtLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgUlRDUnRwU2VuZGVyOwogY2xhc3MgUlRD
UnRwVHJhbnNmb3JtICB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgdXNpbmcgSW50ZXJuYWwgPSBWYXJpYW50PFJlZlB0cjxSVENSdHBTRnJhbWVUcmFuc2Zvcm0+
LCBSZWZQdHI8UlRDUnRwU2NyaXB0VHJhbnNmb3JtPj47CisgICAgdXNpbmcgSW50ZXJuYWwgPSBz
dGQ6OnZhcmlhbnQ8UmVmUHRyPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4sIFJlZlB0cjxSVENSdHBT
Y3JpcHRUcmFuc2Zvcm0+PjsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJUQ1J0cFRyYW5z
Zm9ybT4gZnJvbShzdGQ6Om9wdGlvbmFsPEludGVybmFsPiYmKTsKIAogICAgIGV4cGxpY2l0IFJU
Q1J0cFRyYW5zZm9ybShJbnRlcm5hbCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
RGF0YUNoYW5uZWxIYW5kbGVyLmgKaW5kZXggYTZjOGNkMDAzODUzOWFjMTE0NzQwNjczMmM4Nzk4
ZDBkMDhmNTJmMy4uZjA5ZmZhNzg5MjkyOTUwZTAzY2I3NWIzMjlmNTU5MGZkMmVkNTRhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgKQEAgLTc5
LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgUlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZTsK
ICAgICAgICAgc3RkOjpvcHRpb25hbDx3ZWJydGM6OlJUQ0Vycm9yPiBlcnJvcjsKICAgICB9Owot
ICAgIHVzaW5nIE1lc3NhZ2UgPSBWYXJpYW50PFN0YXRlQ2hhbmdlLCBTdHJpbmcsIFJlZjxTaGFy
ZWRCdWZmZXI+PjsKKyAgICB1c2luZyBNZXNzYWdlID0gc3RkOjp2YXJpYW50PFN0YXRlQ2hhbmdl
LCBTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PjsKICAgICB1c2luZyBQZW5kaW5nTWVzc2FnZXMg
PSBWZWN0b3I8TWVzc2FnZT47CiAgICAgdm9pZCBzdG9yZU1lc3NhZ2UoUGVuZGluZ01lc3NhZ2Vz
JiwgY29uc3Qgd2VicnRjOjpEYXRhQnVmZmVyJik7CiAgICAgdm9pZCBwcm9jZXNzTWVzc2FnZShj
b25zdCB3ZWJydGM6OkRhdGFCdWZmZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFNlbmRlckJhY2tlbmQuaAppbmRleCBlZWEyY2MwNDI3OTM4MTFkN2M1YjNhYmI5NTZmOTFjMzYw
NTZjNzhlLi4wOTYyNTg1MTE2ZTE5OGJhNTVjZmMzNzAxNjlkNmI3ZWRmNmFmNzc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBTZW5kZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZC5oCkBAIC00Nyw3ICs0Nyw3
IEBAIGNsYXNzIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDsKIGNsYXNzIExpYldlYlJU
Q1J0cFNlbmRlckJhY2tlbmQgZmluYWwgOiBwdWJsaWMgUlRDUnRwU2VuZGVyQmFja2VuZCwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ+IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICB1c2luZyBTb3VyY2UgPSBWYXJpYW50
PHN0ZDo6bnVsbHB0cl90LCBSZWY8UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlPiwgUmVmPFJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZT4+OworICAgIHVzaW5nIFNvdXJjZSA9IHN0ZDo6dmFy
aWFudDxzdGQ6Om51bGxwdHJfdCwgUmVmPFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZT4sIFJl
ZjxSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+PjsKICAgICBMaWJXZWJSVENSdHBTZW5kZXJC
YWNrZW5kKExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZCYsIHJ0Yzo6c2NvcGVkX3JlZnB0
cjx3ZWJydGM6OlJ0cFNlbmRlckludGVyZmFjZT4mJiwgU291cmNlJiYpOwogICAgIExpYldlYlJU
Q1J0cFNlbmRlckJhY2tlbmQoTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlPiYmKTsKICAgICB+TGliV2Vi
UlRDUnRwU2VuZGVyQmFja2VuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50LmgKaW5k
ZXggNjJhYzE1MWU1YzBmNDNhZTcxZGM5YzZjMDRkNTA2YzJhZGM4ZjQ5MS4uYTQxMzQyZGViYmRj
MWM5YWZmYjZlZTk2NDM0OTcwYzkxZGFmY2ZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRNZXRob2RDaGFuZ2VF
dmVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB1c2luZyBNZXRo
b2REZXRhaWxzRnVuY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmpl
Y3Q+KEpTQzo6SlNHbG9iYWxPYmplY3QmKT47Ci0gICAgdXNpbmcgTWV0aG9kRGV0YWlsc1R5cGUg
PSBWYXJpYW50PEpTVmFsdWVJbldyYXBwZWRPYmplY3QsIE1ldGhvZERldGFpbHNGdW5jdGlvbj47
CisgICAgdXNpbmcgTWV0aG9kRGV0YWlsc1R5cGUgPSBzdGQ6OnZhcmlhbnQ8SlNWYWx1ZUluV3Jh
cHBlZE9iamVjdCwgTWV0aG9kRGV0YWlsc0Z1bmN0aW9uPjsKIAogICAgIGNvbnN0IFN0cmluZyYg
bWV0aG9kTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0aG9kTmFtZTsgfQogICAgIGNvbnN0IE1l
dGhvZERldGFpbHNUeXBlJiBtZXRob2REZXRhaWxzKCkgY29uc3QgeyByZXR1cm4gbV9tZXRob2RE
ZXRhaWxzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRSZXF1ZXN0LmgKaW5kZXggNzg5NTU4ZGU0OWI5ZjhmMmQ1ZGFmNjY4ZmZjYzE5
YTE3NWNmMWVkMC4uN2EwMDNhYzk0OTNhMjRmMzcxNWFjYjMyNDg2ZjQ1NTA4OTFmMDMxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVu
dFJlcXVlc3QuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiByZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmKTsKICAgICB2b2lkIGNhbmNlbCgp
OwogCi0gICAgdXNpbmcgTWV0aG9kSWRlbnRpZmllciA9IFZhcmlhbnQ8U3RyaW5nLCBVUkw+Owor
ICAgIHVzaW5nIE1ldGhvZElkZW50aWZpZXIgPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBVUkw+Owog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGF5bWVudFJlcXVlc3Q+OjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDxQYXltZW50UmVxdWVzdD46OmRlcmVmOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hFdmVudEluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcHVzaC1hcGkvUHVzaEV2ZW50SW5pdC5oCmluZGV4IDEwZWE0ZGYyNDM2Njk3ZjYyZDgx
ZmZkNjVhMWFjZDgzMzVmMzBhNWQuLjAyZDFhZTA5YmFkMjJmZTRiMGMzYmU5NTI3OThlMGUwMjFm
ZTE1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaEV2
ZW50SW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaEV2ZW50
SW5pdC5oCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcg
UHVzaE1lc3NhZ2VEYXRhSW5pdCA9IFZhcmlhbnQ8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3
PiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+LCBTdHJpbmc+OwordXNpbmcgUHVzaE1lc3NhZ2VE
YXRhSW5pdCA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQ
dHI8SlNDOjpBcnJheUJ1ZmZlcj4sIFN0cmluZz47CiAKIHN0cnVjdCBQdXNoRXZlbnRJbml0IDog
RXh0ZW5kYWJsZUV2ZW50SW5pdCB7CiAgICAgc3RkOjpvcHRpb25hbDxQdXNoTWVzc2FnZURhdGFJ
bml0PiBkYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9Q
dXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVz
aC1hcGkvUHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0LmgKaW5kZXggODBjOGE2OGNjNTAwZTgy
MDIwZDYxN2QwNTRmNmFlYzY1YTJkNWJiMy4uNzlkOGQwYzU4YmMyNjBkNjBmNTVkOTg3MzUyMzM3
YWE5NjU0OWU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9Q
dXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdC5oCkBAIC0zNSw3ICszNSw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBQdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0lu
aXQgewotICAgIHVzaW5nIEFwcGxpY2F0aW9uU2VydmVyS2V5ID0gVmFyaWFudDxSZWZQdHI8SlND
OjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4sIFN0cmluZz47Cisg
ICAgdXNpbmcgQXBwbGljYXRpb25TZXJ2ZXJLZXkgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEpTQzo6
QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+LCBTdHJpbmc+OwogICAg
IGJvb2wgdXNlclZpc2libGVPbmx5IHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPEFwcGxp
Y2F0aW9uU2VydmVyS2V5PiBhcHBsaWNhdGlvblNlcnZlcktleTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApp
bmRleCAxZTI4MTE2ZTgyZjY5NGQ0ZGU1OTNmNDBlNGJkMWM3ZjEyNTQ4MWUzLi5iYTI4Y2I5MTUw
NDBlM2MyZTlmYWY1OWYzNmNkZDM3ODVjMTdlYTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKQEAgLTY0LDcg
KzY0LDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOwogCiBw
cml2YXRlOgotICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PHN0ZDo6bW9ub3N0YXRlLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj47
CisgICAgdXNpbmcgQ29udGVudCA9IHN0ZDo6dmFyaWFudDxzdGQ6Om1vbm9zdGF0ZSwgU3BlZWNo
UmVjb2duaXRpb25FcnJvciwgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+Owog
ICAgIFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlKFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSwgQ29udGVudCk7CiAKICAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIG1fY2xpZW50SWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0T3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRPcHRpb25zLmgKaW5kZXggZjU2YTQ3NTU5NzgxNDA1
NGExNmRmMTBlYmMyNGJhZjc3ZDQwYWVkNy4uNWI5YWVjYzhlZDcwNzIwNDY4NzE1ZmZmZjc1OTMz
ZjQwY2NmNDQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHRPcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHRPcHRpb25zLmgKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IEF1ZGlvQ29udGV4dE9wdGlvbnMgewotICAgIFZhcmlhbnQ8QXVkaW9D
b250ZXh0TGF0ZW5jeUNhdGVnb3J5LCBkb3VibGU+IGxhdGVuY3lIaW50IHsgQXVkaW9Db250ZXh0
TGF0ZW5jeUNhdGVnb3J5OjpJbnRlcmFjdGl2ZSB9OworICAgIHN0ZDo6dmFyaWFudDxBdWRpb0Nv
bnRleHRMYXRlbmN5Q2F0ZWdvcnksIGRvdWJsZT4gbGF0ZW5jeUhpbnQgeyBBdWRpb0NvbnRleHRM
YXRlbmN5Q2F0ZWdvcnk6OkludGVyYWN0aXZlIH07CiAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4g
c2FtcGxlUmF0ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZS5oCmluZGV4IGQ4MmI4NDBhNzk5ZTJjZWUwMDRlNmRkNDgwYWU2MTc5OGM2OTAwOGYuLjA1
NDgwM2E1MzE5YzM5NTEzOTJlMmViMzUwYTdhNzhjNGVjNTdiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaApAQCAtMjMxLDcgKzIzMSw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHVsbFN0YXR1cygpIHsgfQogCiBwcml2YXRl
OgotICAgIHVzaW5nIFdlYWtPclN0cm9uZ0NvbnRleHQgPSBWYXJpYW50PFJlZjxCYXNlQXVkaW9D
b250ZXh0PiwgV2Vha1B0cjxCYXNlQXVkaW9Db250ZXh0Pj47CisgICAgdXNpbmcgV2Vha09yU3Ry
b25nQ29udGV4dCA9IHN0ZDo6dmFyaWFudDxSZWY8QmFzZUF1ZGlvQ29udGV4dD4sIFdlYWtQdHI8
QmFzZUF1ZGlvQ29udGV4dD4+OwogICAgIHN0YXRpYyBXZWFrT3JTdHJvbmdDb250ZXh0IHRvV2Vh
a09yU3Ryb25nQ29udGV4dChCYXNlQXVkaW9Db250ZXh0JiwgTm9kZVR5cGUpOwogCiAgICAgLy8g
RXZlbnRUYXJnZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJXZWJHTExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xM
YXllci5oCmluZGV4IGMyZmNhNWRiNWE4Nzg0YTc5MGUwMWU0ZDIzYWI3YWUzN2M4MmU3MzguLjM2
OTA4MzdhMGMyY2I4OTUyZmY0M2RlOWExNjczNzEzOTc2OWM4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaApAQCAtNTgsNyArNTgsNyBAQCBj
bGFzcyBXZWJYUldlYkdMTGF5ZXIgOiBwdWJsaWMgV2ViWFJMYXllciwgcHJpdmF0ZSBDYW52YXNP
YnNlcnZlciB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUldlYkdMTGF5ZXIpOwog
cHVibGljOgogCi0gICAgdXNpbmcgV2ViWFJSZW5kZXJpbmdDb250ZXh0ID0gV1RGOjpWYXJpYW50
PAorICAgIHVzaW5nIFdlYlhSUmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6dmFyaWFudDwKICAgICAg
ICAgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4KICNpZiBFTkFCTEUoV0VCR0wyKQogICAg
ICAgICAsIFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBmNmEzZjYyMzBjYmQ5OTA1Yzg5Mzky
NWZhZWY4MjI2MTM3MzlhMWZiLi4yYzU0OWY4Nzc4OTY4NmVjOGQzYmM2YjRhZmJjNzVmNjA4NmJk
YmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApA
QCAtMTc2LDcgKzE3Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGFjaFdyYXBwZXIoQVhDb3Jl
T2JqZWN0KiwgQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlKTsKICNlbmRpZgogcHJpdmF0ZToK
LSAgICB1c2luZyBET01PYmplY3RWYXJpYW50ID0gVmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVu
ZGVyT2JqZWN0KiwgTm9kZSosIFdpZGdldCo+OworICAgIHVzaW5nIERPTU9iamVjdFZhcmlhbnQg
PSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlbmRlck9iamVjdCosIE5vZGUqLCBXaWRn
ZXQqPjsKICAgICB2b2lkIGNhY2hlQW5kSW5pdGlhbGl6ZVdyYXBwZXIoQWNjZXNzaWJpbGl0eU9i
amVjdCosIERPTU9iamVjdFZhcmlhbnQgPSBudWxscHRyKTsKICAgICB2b2lkIGF0dGFjaFdyYXBw
ZXIoQVhDb3JlT2JqZWN0Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggYjY1NGIyZmM2
OTFmN2FmYTMyMzVhZTAyMGI2Yjc5YTE2ZDI5YjJkMy4uN2U3YjgzNGM4YjQyNGY1YWM0NDU1NDI2
Y2U3ZjU5ODFkMTRlZGFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTYyNiw3ICs2MjYs
NyBAQCBlbnVtIGNsYXNzIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXkgewogICAgIFZpc2l0ZWRMaW5r
LAogfTsKIAotdXNpbmcgQVhFZGl0aW5nU3R5bGVWYWx1ZVZhcmlhbnQgPSBWYXJpYW50PFN0cmlu
ZywgYm9vbCwgaW50PjsKK3VzaW5nIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJpYW50ID0gc3RkOjp2
YXJpYW50PFN0cmluZywgYm9vbCwgaW50PjsKIAogc3RydWN0IEFjY2Vzc2liaWxpdHlTZWFyY2hD
cml0ZXJpYSB7CiAgICAgQVhDb3JlT2JqZWN0KiBhbmNob3JPYmplY3QgeyBudWxscHRyIH07CkBA
IC0xMTIwLDcgKzExMjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFyaWFSb2xlSGFz
UHJlc2VudGF0aW9uYWxDaGlsZHJlbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaW5o
ZXJpdHNQcmVzZW50YXRpb25hbFJvbGUoKSBjb25zdCA9IDA7CiAKLSAgICB1c2luZyBBWFZhbHVl
ID0gVmFyaWFudDxib29sLCB1bnNpZ25lZCwgZmxvYXQsIFN0cmluZywgQWNjZXNzaWJpbGl0eUJ1
dHRvblN0YXRlLCBBWENvcmVPYmplY3QqPjsKKyAgICB1c2luZyBBWFZhbHVlID0gc3RkOjp2YXJp
YW50PGJvb2wsIHVuc2lnbmVkLCBmbG9hdCwgU3RyaW5nLCBBY2Nlc3NpYmlsaXR5QnV0dG9uU3Rh
dGUsIEFYQ29yZU9iamVjdCo+OwogICAgIHZpcnR1YWwgQVhWYWx1ZSB2YWx1ZSgpID0gMDsKIAog
ICAgIC8vIEFjY2Vzc2liaWxpdHkgVGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXggZDRiOWI1
NjlkMzc1NDJlODRlOGEwZGVmZjY4ZDBiZmRhY2M2NTc2YS4uNjE1NjQ1YTE2NzVkOGU4MmRlYmI2
YjM0MTllMDRkZDZlMDU4ODI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0zMTYsNyArMzE2
LDcgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAgICBXZWJBcmVh
LAogfTsKIAotdXNpbmcgQVhQcm9wZXJ0eVZhbHVlVmFyaWFudCA9IFZhcmlhbnQ8c3RkOjpudWxs
cHRyX3QsIFN0cmluZywgYm9vbCwgaW50LCB1bnNpZ25lZCwgZG91YmxlLCBmbG9hdCwgdWludDY0
X3QsIENvbG9yLCBVUkwsIExheW91dFJlY3QsIEZsb2F0UmVjdCwgQVhJRCwgSW50UG9pbnQsIE9w
dGlvblNldDxTcGVha0FzPiwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4sIFZlY3RvcjxB
Y2Nlc3NpYmlsaXR5VGV4dD4sIFZlY3RvcjxBWElEPiwgVmVjdG9yPHN0ZDo6cGFpcjxBWElELCBB
WElEPj4sIFZlY3RvcjxTdHJpbmc+LCBQYXRoPjsKK3VzaW5nIEFYUHJvcGVydHlWYWx1ZVZhcmlh
bnQgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFN0cmluZywgYm9vbCwgaW50LCB1bnNp
Z25lZCwgZG91YmxlLCBmbG9hdCwgdWludDY0X3QsIENvbG9yLCBVUkwsIExheW91dFJlY3QsIEZs
b2F0UmVjdCwgQVhJRCwgSW50UG9pbnQsIE9wdGlvblNldDxTcGVha0FzPiwgc3RkOjpwYWlyPHVu
c2lnbmVkLCB1bnNpZ25lZD4sIFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4sIFZlY3RvcjxBWElE
PiwgVmVjdG9yPHN0ZDo6cGFpcjxBWElELCBBWElEPj4sIFZlY3RvcjxTdHJpbmc+LCBQYXRoPjsK
IHVzaW5nIEFYUHJvcGVydHlNYXAgPSBIYXNoTWFwPEFYUHJvcGVydHlOYW1lLCBBWFByb3BlcnR5
VmFsdWVWYXJpYW50LCBXVEY6OkludEhhc2g8QVhQcm9wZXJ0eU5hbWU+LCBXVEY6OlN0cm9uZ0Vu
dW1IYXNoVHJhaXRzPEFYUHJvcGVydHlOYW1lPj47CiAKIHN0cnVjdCBBWFByb3BlcnR5Q2hhbmdl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaCBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaAppbmRleCBmNWFkZjRjN2I4
Nzc2OGU3M2QyMWExNzMwMWQxZTM0ZjRlODJmMzkwLi5iMTY3Y2I2OGViNGNkOGE1OWVhNjZiZGFl
MTMwZmVlOWE4YjIzZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZm
ZWN0VGltaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5o
CkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBFZmZlY3RU
aW1pbmcgewotICAgIFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uIHsgImF1dG8iIH07
CisgICAgc3RkOjp2YXJpYW50PGRvdWJsZSwgU3RyaW5nPiBkdXJhdGlvbiB7ICJhdXRvIiB9Owog
ICAgIGRvdWJsZSBkZWxheSB7IDAgfTsKICAgICBkb3VibGUgZW5kRGVsYXkgeyAwIH07CiAgICAg
ZG91YmxlIGl0ZXJhdGlvblN0YXJ0IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggY2Q3MGU5YzA0OGZmNzQ5OGI0MjhjYTY3MTQ5ODJhY2Y0
NTEyODM1OC4uZjZjZjU5ZGQ2YTQ5YzQ3NzFjNGYxMjkzYjI1MzUxYmM2NmJiYjA1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC01MDcsNyArNTA3
LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx2b2lkPiBwcm9jZXNzUHJvcGVydHlJbmRl
eGVkS2V5ZnJhbWVzKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB7IH07CiB9CiAKLUV4Y2Vw
dGlvbk9yPFJlZjxLZXlmcmFtZUVmZmVjdD4+IEtleWZyYW1lRWZmZWN0OjpjcmVhdGUoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEVsZW1lbnQqIHRhcmdldCwgU3Ryb25nPEpT
T2JqZWN0PiYmIGtleWZyYW1lcywgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgS2V5ZnJh
bWVFZmZlY3RPcHRpb25zPj4mJiBvcHRpb25zKQorRXhjZXB0aW9uT3I8UmVmPEtleWZyYW1lRWZm
ZWN0Pj4gS2V5ZnJhbWVFZmZlY3Q6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRWxlbWVudCogdGFyZ2V0LCBTdHJvbmc8SlNPYmplY3Q+JiYga2V5ZnJhbWVzLCBz
dGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxkb3VibGUsIEtleWZyYW1lRWZmZWN0T3B0aW9ucz4+
JiYgb3B0aW9ucykKIHsKICAgICBhdXRvIGtleWZyYW1lRWZmZWN0ID0gYWRvcHRSZWYoKm5ldyBL
ZXlmcmFtZUVmZmVjdCh0YXJnZXQsIFBzZXVkb0lkOjpOb25lKSk7CiAKQEAgLTUxNSw3ICs1MTUs
NyBAQCBFeGNlcHRpb25PcjxSZWY8S2V5ZnJhbWVFZmZlY3Q+PiBLZXlmcmFtZUVmZmVjdDo6Y3Jl
YXRlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsRwogICAgICAgICBPcHRpb25hbEVmZmVjdFRpbWlu
ZyB0aW1pbmc7CiAgICAgICAgIGF1dG8gb3B0aW9uc1ZhbHVlID0gb3B0aW9ucy52YWx1ZSgpOwog
ICAgICAgICBpZiAoc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxkb3VibGU+KG9wdGlvbnNWYWx1ZSkp
IHsKLSAgICAgICAgICAgIFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uID0gV1RGOjpn
ZXQ8ZG91YmxlPihvcHRpb25zVmFsdWUpOworICAgICAgICAgICAgc3RkOjp2YXJpYW50PGRvdWJs
ZSwgU3RyaW5nPiBkdXJhdGlvbiA9IFdURjo6Z2V0PGRvdWJsZT4ob3B0aW9uc1ZhbHVlKTsKICAg
ICAgICAgICAgIHRpbWluZy5kdXJhdGlvbiA9IGR1cmF0aW9uOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgYXV0byBrZXlmcmFtZUVmZmVjdE9wdGlvbnMgPSBXVEY6OmdldDxLZXlmcmFt
ZUVmZmVjdE9wdGlvbnM+KG9wdGlvbnNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5oCmluZGV4IGVjMDI4YTFkM2FmNjhjZDI2ODE1YTBlYjJiMmZjNzE1ODgy
MzRkMjEuLmY3ODE1Mzk5NTI0N2FhMTk1NDU2ZWZiNGI0MTkzZGM0NjY1NDM3Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC00OSw3ICs0OSw3IEBAIGNs
YXNzIEZpbHRlck9wZXJhdGlvbnM7CiBjbGFzcyBLZXlmcmFtZUVmZmVjdCA6IHB1YmxpYyBBbmlt
YXRpb25FZmZlY3QKICAgICAsIHB1YmxpYyBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEtleWZyYW1lRWZmZWN0Pj4gY3JlYXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QmLCBFbGVtZW50KiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVj
dD4mJiwgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgS2V5ZnJhbWVFZmZlY3RPcHRpb25z
Pj4mJik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxLZXlmcmFtZUVmZmVjdD4+IGNyZWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgRWxlbWVudCosIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmpl
Y3Q+JiYsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgS2V5ZnJhbWVFZmZlY3RP
cHRpb25zPj4mJik7CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxLZXlmcmFtZUVmZmVjdD4+
IGNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVmPEtleWZyYW1lRWZmZWN0PiYmKTsKICAg
ICBzdGF0aWMgUmVmPEtleWZyYW1lRWZmZWN0PiBjcmVhdGUoY29uc3QgRWxlbWVudCYsIFBzZXVk
b0lkKTsKICAgICB+S2V5ZnJhbWVFZmZlY3QoKSB7IH0KQEAgLTU3LDkgKzU3LDkgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNLZXlmcmFtZUVmZmVjdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIHN0cnVjdCBCYXNlUHJvcGVydHlJbmRleGVkS2V5ZnJhbWUgewotICAgICAgICBW
YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBWZWN0b3I8c3RkOjpvcHRpb25hbDxkb3VibGU+PiwgZG91
YmxlPiBvZmZzZXQgPSBWZWN0b3I8c3RkOjpvcHRpb25hbDxkb3VibGU+PigpOwotICAgICAgICBW
YXJpYW50PFZlY3RvcjxTdHJpbmc+LCBTdHJpbmc+IGVhc2luZyA9IFZlY3RvcjxTdHJpbmc+KCk7
Ci0gICAgICAgIFZhcmlhbnQ8VmVjdG9yPENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0bz4sIENvbXBv
c2l0ZU9wZXJhdGlvbk9yQXV0bz4gY29tcG9zaXRlID0gVmVjdG9yPENvbXBvc2l0ZU9wZXJhdGlv
bk9yQXV0bz4oKTsKKyAgICAgICAgc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBWZWN0b3I8
c3RkOjpvcHRpb25hbDxkb3VibGU+PiwgZG91YmxlPiBvZmZzZXQgPSBWZWN0b3I8c3RkOjpvcHRp
b25hbDxkb3VibGU+PigpOworICAgICAgICBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFN0cmluZz4sIFN0
cmluZz4gZWFzaW5nID0gVmVjdG9yPFN0cmluZz4oKTsKKyAgICAgICAgc3RkOjp2YXJpYW50PFZl
Y3RvcjxDb21wb3NpdGVPcGVyYXRpb25PckF1dG8+LCBDb21wb3NpdGVPcGVyYXRpb25PckF1dG8+
IGNvbXBvc2l0ZSA9IFZlY3RvcjxDb21wb3NpdGVPcGVyYXRpb25PckF1dG8+KCk7CiAgICAgfTsK
IAogICAgIHN0cnVjdCBCYXNlS2V5ZnJhbWUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL09wdGlvbmFsRWZmZWN0VGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vT3B0aW9uYWxFZmZlY3RUaW1pbmcuaAppbmRleCBmMzFlOTIzMmRiMDVjM2E2ZTc4Yzc1ODk2
ZWU4YWY2Y2YyNWEwNTM5Li42YzllZmFhOWQwM2FlYWIzZmI1NzRlYzZkMGJiNDQ2ZmNkOGM2ZmU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vT3B0aW9uYWxFZmZlY3RUaW1p
bmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vT3B0aW9uYWxFZmZlY3RUaW1pbmcu
aApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgT3B0aW9u
YWxFZmZlY3RUaW1pbmcgewotICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIFN0cmlu
Zz4+IGR1cmF0aW9uOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgU3Ry
aW5nPj4gZHVyYXRpb247CiAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGl0ZXJhdGlvbnM7IC8v
IFRoaXMgdmFsdWUgY2Fubm90IGJlIGEgTWFya2FibGVEb3VibGUgc2luY2Ugd2UgbmVlZCB0byBj
aGVjayBmb3IgYSBOYU4gdmFsdWUuCiAgICAgTWFya2FibGVEb3VibGUgZGVsYXk7CiAgICAgTWFy
a2FibGVEb3VibGUgZW5kRGVsYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9JRExUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaAppbmRleCBj
OGI3NTdjOWZjNmE1MjRmZjE2Y2Y2MGNjNjZlZTkwYWEwYWM1MDQwLi41OWE1MzQxY2RhMGQ5NDhi
OWM4ZjM1NmMxYzU5OGU1ZmI2NmUxMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9JRExUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgK
QEAgLTIzNiwxMSArMjM2LDExIEBAIHN0cnVjdCBJRExFcnJvciA6IElETFVuc3VwcG9ydGVkVHlw
ZSB7IH07CiBzdHJ1Y3QgSURMRE9NRXhjZXB0aW9uIDogSURMVW5zdXBwb3J0ZWRUeXBlIHsgfTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHM+Ci1zdHJ1Y3QgSURMVW5pb24gOiBJRExUeXBlPFZh
cmlhbnQ8dHlwZW5hbWUgVHM6OkltcGxlbWVudGF0aW9uVHlwZS4uLj4+IHsKK3N0cnVjdCBJRExV
bmlvbiA6IElETFR5cGU8c3RkOjp2YXJpYW50PHR5cGVuYW1lIFRzOjpJbXBsZW1lbnRhdGlvblR5
cGUuLi4+PiB7CiAgICAgdXNpbmcgVHlwZUxpc3QgPSBicmlnYW5kOjpsaXN0PFRzLi4uPjsKIAot
ICAgIHVzaW5nIFBhcmFtZXRlclR5cGUgPSBjb25zdCBWYXJpYW50PHR5cGVuYW1lIFRzOjpJbXBs
ZW1lbnRhdGlvblR5cGUuLi4+JjsKLSAgICB1c2luZyBOdWxsYWJsZVBhcmFtZXRlclR5cGUgPSBj
b25zdCBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8dHlwZW5hbWUgVHM6OkltcGxlbWVudGF0aW9uVHlw
ZS4uLj4+JjsKKyAgICB1c2luZyBQYXJhbWV0ZXJUeXBlID0gY29uc3Qgc3RkOjp2YXJpYW50PHR5
cGVuYW1lIFRzOjpJbXBsZW1lbnRhdGlvblR5cGUuLi4+JjsKKyAgICB1c2luZyBOdWxsYWJsZVBh
cmFtZXRlclR5cGUgPSBjb25zdCBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDx0eXBlbmFtZSBU
czo6SW1wbGVtZW50YXRpb25UeXBlLi4uPj4mOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IElETEJ1ZmZlclNvdXJjZSA6IElETFdyYXBwZXI8VD4geyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQnVmZmVyU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9CdWZmZXJTb3VyY2UuaAppbmRleCBiMmYxYzYzNWZiZjc3ZDQ0Y2Q2MjIy
YzA0NDEwOGMxMzUxNWZiNDFkLi5mODEwNThjOWE1NDhkZGQyMmEzZWMxNzk0ZDVmNmFlNzcxNGI4
NGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9CdWZmZXJTb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9CdWZmZXJTb3VyY2UuaApAQCAtMzQs
NyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJ1ZmZlclNvdXJjZSB7CiBw
dWJsaWM6Ci0gICAgdXNpbmcgVmFyaWFudFR5cGUgPSBXVEY6OlZhcmlhbnQ8UmVmUHRyPEpTQzo6
QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+PjsKKyAgICB1c2luZyBW
YXJpYW50VHlwZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBS
ZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+OwogCiAgICAgQnVmZmVyU291cmNlKCkgeyB9CiAgICAg
QnVmZmVyU291cmNlKFZhcmlhbnRUeXBlJiYgdmFyaWFudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVmFsdWVJbldyYXBwZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVmFsdWVJbldyYXBwZWRPYmplY3QuaAppbmRleCBlNGNjZGJhNjJk
ODQ4M2E3NDBjYTdhMDQzZDJiYWVjOWNjNTE2YWRhLi45OTU2MjlhMTUzNzdlZTA5NjhlMDJlZjdi
NjhhMjhiNGNhMDk1MmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gd2UgZ2V0IG51bGwgcmF0aGVyIHRoYW4gYSBkYW5nbGluZyBwb2ludGVyIHRvIGEgZGVsZXRl
ZCBvYmplY3QuCiAgICAgdXNpbmcgV2VhayA9IEpTQzo6V2VhazxKU0M6OkpTQ2VsbD47CiAgICAg
Ly8gRklYTUU6IFdvdWxkIHN0b3JpbmcgYSBzZXBhcmF0ZSBKU1ZhbHVlIGFsb25nc2lkZSBhIFdl
YWsgYmUgYmV0dGVyIHRoYW4gdXNpbmcgYSBWYXJpYW50PwotICAgIHVzaW5nIFZhbHVlID0gVmFy
aWFudDxKU0M6OkpTVmFsdWUsIFdlYWs+OworICAgIHVzaW5nIFZhbHVlID0gc3RkOjp2YXJpYW50
PEpTQzo6SlNWYWx1ZSwgV2Vhaz47CiAgICAgc3RhdGljIFZhbHVlIG1ha2VWYWx1ZShKU0M6OkpT
VmFsdWUpOwogICAgIFZhbHVlIG1fdmFsdWU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0
b0FsZ29yaXRobS5oCmluZGV4IGEyZTczYWQ1NWRlYjU4MDhjOWFjNzcyNTcyYWE2YjBiODk1NGZk
YTguLjJlZDRmMjE5ZWY1NjMyNDU4MDJmNzllNTg1YTIxYTA2MTlkZTRkNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgKQEAgLTQ1LDggKzQ1LDggQEAgY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyczsKIGNsYXNzIENyeXB0b0tleTsKIGNsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CiAKLXVzaW5nIEtleURhdGEgPSBWYXJpYW50PFZlY3Rvcjx1aW50OF90
PiwgSnNvbldlYktleT47Ci11c2luZyBLZXlPcktleVBhaXIgPSBWYXJpYW50PFJlZlB0cjxDcnlw
dG9LZXk+LCBDcnlwdG9LZXlQYWlyPjsKK3VzaW5nIEtleURhdGEgPSBzdGQ6OnZhcmlhbnQ8VmVj
dG9yPHVpbnQ4X3Q+LCBKc29uV2ViS2V5PjsKK3VzaW5nIEtleU9yS2V5UGFpciA9IHN0ZDo6dmFy
aWFudDxSZWZQdHI8Q3J5cHRvS2V5PiwgQ3J5cHRvS2V5UGFpcj47CiAKIGNsYXNzIENyeXB0b0Fs
Z29yaXRobSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDcnlwdG9BbGdvcml0aG0+IHsK
IHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXkuaCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXkuaAppbmRleCAwZWJjNTcyMDQ0ZjkyZjA5
OWJhMDVjMzQyZTlkZTcxMTYyODExMTA2Li45MzIzZTRjYjUyYjcyMDU5YzkyNWY2YTBlYjc4N2Vi
NTRmZTVlYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5oCkBAIC01Niw3ICs1Niw3IEBA
IGVudW0gY2xhc3MgQ3J5cHRvS2V5Q2xhc3MgewogY2xhc3MgQ3J5cHRvS2V5IDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPENyeXB0b0tleT4gewogcHVibGljOgogICAgIHVzaW5nIFR5cGUg
PSBDcnlwdG9LZXlUeXBlOwotICAgIHVzaW5nIEtleUFsZ29yaXRobSA9IFZhcmlhbnQ8Q3J5cHRv
S2V5QWxnb3JpdGhtLCBDcnlwdG9BZXNLZXlBbGdvcml0aG0sIENyeXB0b0VjS2V5QWxnb3JpdGht
LCBDcnlwdG9IbWFjS2V5QWxnb3JpdGhtLCBDcnlwdG9Sc2FIYXNoZWRLZXlBbGdvcml0aG0sIENy
eXB0b1JzYUtleUFsZ29yaXRobT47CisgICAgdXNpbmcgS2V5QWxnb3JpdGhtID0gc3RkOjp2YXJp
YW50PENyeXB0b0tleUFsZ29yaXRobSwgQ3J5cHRvQWVzS2V5QWxnb3JpdGhtLCBDcnlwdG9FY0tl
eUFsZ29yaXRobSwgQ3J5cHRvSG1hY0tleUFsZ29yaXRobSwgQ3J5cHRvUnNhSGFzaGVkS2V5QWxn
b3JpdGhtLCBDcnlwdG9Sc2FLZXlBbGdvcml0aG0+OwogCiAgICAgQ3J5cHRvS2V5KENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIsIFR5cGUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
Qml0bWFwKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9LZXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0
bGVDcnlwdG8uaAppbmRleCA1MzY1MTIzYjdhODNjYjliM2Q4Zjk0YjgwMjMxNmJkNmQwNDUwMjdh
Li43ZDkyZGFiNmJkMDgwODQxOTk1ZGQyMjAxMjhiMzBlNTU2MmNkYWJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL1N1YnRsZUNyeXB0by5oCkBAIC02MCw4ICs2MCw4IEBAIHB1YmxpYzoKIAogICAgIHVz
aW5nIEtleUZvcm1hdCA9IENyeXB0b0tleUZvcm1hdDsKIAotICAgIHVzaW5nIEFsZ29yaXRobUlk
ZW50aWZpZXIgPSBWYXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBTdHJpbmc+Owot
ICAgIHVzaW5nIEtleURhdGFWYXJpYW50ID0gVmFyaWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
clZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4sIEpzb25XZWJLZXk+OworICAgIHVzaW5n
IEFsZ29yaXRobUlkZW50aWZpZXIgPSBzdGQ6OnZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09i
amVjdD4sIFN0cmluZz47CisgICAgdXNpbmcgS2V5RGF0YVZhcmlhbnQgPSBzdGQ6OnZhcmlhbnQ8
UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+LCBK
c29uV2ViS2V5PjsKIAogICAgIHZvaWQgZW5jcnlwdChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgQWxn
b3JpdGhtSWRlbnRpZmllciYmLCBDcnlwdG9LZXkmLCBCdWZmZXJTb3VyY2UmJiBkYXRhLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKTsKICAgICB2b2lkIGRlY3J5cHQoSlNDOjpKU0dsb2JhbE9iamVj
dCYsIEFsZ29yaXRobUlkZW50aWZpZXImJiwgQ3J5cHRvS2V5JiwgQnVmZmVyU291cmNlJiYgZGF0
YSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1FY2RzYVBhcmFtcy5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtRWNkc2FQYXJhbXMuaAppbmRl
eCA3MjYzNjk3NjEzOTIzYTdmNTY5ZTVkYTg5NzA4M2YxNzdiZDAxYWNmLi44NGYzMmZjYzliMThm
Y2U1MWJkN2FhODQ0MzY2NTM3ZDE2NTBkNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1FY2RzYVBhcmFtcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zLmgK
QEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3J5cHRvQWxnb3Jp
dGhtRWNkc2FQYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7
CiBwdWJsaWM6CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIG1lcmdpbmcgaGFzaCBhbmQgaGFzaElk
ZW50aWZpZXIuCi0gICAgVmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3RyaW5n
PiBoYXNoOworICAgIHN0ZDo6dmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3Ry
aW5nPiBoYXNoOwogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaElkZW50aWZpZXI7
CiAKICAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDbGFz
czo6RWNkc2FQYXJhbXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJh
bWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMuaAppbmRleCA5MmFiM2U2MDQ0
ZGNkZjVhYjdjMGQzOTkwNDhlZGYzN2Y4NjEzNzFjLi45NjE4ODYzOTEwYzY2OTM5YmNhNTZjYzFk
MWRjYzNhNTJiNmU1MDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1Ia2RmUGFyYW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSGtkZlBhcmFtcy5oCkBAIC0zOCw3ICszOCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMg
ZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7CiBwdWJsaWM6CiAgICAg
Ly8gRklYTUU6IENvbnNpZGVyIG1lcmdpbmcgaGFzaCBhbmQgaGFzaElkZW50aWZpZXIuCi0gICAg
VmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3RyaW5nPiBoYXNoOworICAgIHN0
ZDo6dmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3RyaW5nPiBoYXNoOwogICAg
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaElkZW50aWZpZXI7CiAgICAgQnVmZmVyU291
cmNlIHNhbHQ7CiAgICAgQnVmZmVyU291cmNlIGluZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFy
YW1zLmgKaW5kZXggOWQxMDljMGY4NGI2Y2M4Y2RlZmNiMzZhMDVhZjNlNjcyYTc4ZTFhZC4uNGRl
OTNkOTc4YzU4Njk0NDUzZTE0ZTFhNTk3NDI5NTgxNzlkMzRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUht
YWNLZXlQYXJhbXMuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMgewogcHVibGljOgogICAgIC8vIEZJWE1FOiBDb25zaWRlciBtZXJnaW5n
IGhhc2ggYW5kIGhhc2hJZGVudGlmaWVyLgotICAgIFZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpK
U09iamVjdD4sIFN0cmluZz4gaGFzaDsKKyAgICBzdGQ6OnZhcmlhbnQ8SlNDOjpTdHJvbmc8SlND
OjpKU09iamVjdD4sIFN0cmluZz4gaGFzaDsKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGhhc2hJZGVudGlmaWVyOwogICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBsZW5ndGg7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRo
bVBia2RmMlBhcmFtcy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRv
QWxnb3JpdGhtUGJrZGYyUGFyYW1zLmgKaW5kZXggNGE3OWM3YzMxMmQ4NTg2YzY4MWZjMzc5MjU0
ODBkNzMyMzhjNTBmZC4uMmFmZjE4MmM0MmY5YWZlY2JhZjBkNDg1MzkxZGNhOTVkY2VjMWM0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3Jp
dGhtUGJrZGYyUGFyYW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtUGJrZGYyUGFyYW1zLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgog
ICAgIEJ1ZmZlclNvdXJjZSBzYWx0OwogICAgIHVuc2lnbmVkIGxvbmcgaXRlcmF0aW9uczsKICAg
ICAvLyBGSVhNRTogQ29uc2lkZXIgbWVyZ2luZyBoYXNoIGFuZCBoYXNoSWRlbnRpZmllci4KLSAg
ICBWYXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBTdHJpbmc+IGhhc2g7CisgICAg
c3RkOjp2YXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBTdHJpbmc+IGhhc2g7CiAg
ICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoSWRlbnRpZmllcjsKIAogICAgIGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgc2FsdFZlY3RvcigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FIYXNoZWRJbXBvcnRQ
YXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRo
bVJzYUhhc2hlZEltcG9ydFBhcmFtcy5oCmluZGV4IGVlMDQ0OTMxMzQ2YmYxNjA3ZjFlNmZjOTM5
NDFhZmE5ZTI3ODA5MWMuLjRlZDVmZjQ5ZjVmY2EzZmQ1YjBiOGVmNGVjMmUzMWRkZWU1YzM3MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29y
aXRobVJzYUhhc2hlZEltcG9ydFBhcmFtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9w
YXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUhhc2hlZEltcG9ydFBhcmFtcy5oCkBAIC0zNyw3
ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJzYUhh
c2hlZEltcG9ydFBhcmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
IHsKIHB1YmxpYzoKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgbWVyZ2luZyBoYXNoIGFuZCBoYXNo
SWRlbnRpZmllci4KLSAgICBWYXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBTdHJp
bmc+IGhhc2g7CisgICAgc3RkOjp2YXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBT
dHJpbmc+IGhhc2g7CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoSWRlbnRpZmll
cjsKIAogICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENs
YXNzOjpSc2FIYXNoZWRJbXBvcnRQYXJhbXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUhhc2hlZEtleUdlblBhcmFtcy5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhSGFz
aGVkS2V5R2VuUGFyYW1zLmgKaW5kZXggYWU1YjJjMjViZGJlMDc1YmFiMmEzNjgzYjlhZDVmN2U5
OWEwMWRiZi4uZmQzY2FkMDM3YTIzYmEzNGIwY2FiNTNhOTA1YmI2YjdmMTE0ZDA1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNh
SGFzaGVkS2V5R2VuUGFyYW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmgKQEAgLTM3LDcgKzM3LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkS2V5
R2VuUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcyB7
CiBwdWJsaWM6CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIG1lcmdpbmcgaGFzaCBhbmQgaGFzaElk
ZW50aWZpZXIuCi0gICAgVmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3RyaW5n
PiBoYXNoOworICAgIHN0ZDo6dmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3Ry
aW5nPiBoYXNoOwogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaElkZW50aWZpZXI7
CiAKICAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDbGFz
czo6UnNhSGFzaGVkS2V5R2VuUGFyYW1zOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3Rv
bVByb3BlcnR5VmFsdWUuaAppbmRleCAzNDM4MmEwMDJjN2U1YTljOWU2Mjc3NGVmZjk1OTNiNjcz
NTVhMjBiLi4zOGM3OWMyZGFlOGQxYmRkNDQyOGJiZWQzMjlmOGYzOGVlZjM1NDFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmgKQEAgLTM4LDcgKzM4LDcg
QEAgY2xhc3MgQ1NTUGFyc2VyVG9rZW47CiAKIGNsYXNzIENTU0N1c3RvbVByb3BlcnR5VmFsdWUg
ZmluYWwgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHVzaW5nIFZhcmlhbnRWYWx1
ZSA9IFZhcmlhbnQ8c3RkOjptb25vc3RhdGUsIFJlZjxDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVl
PiwgQ1NTVmFsdWVJRCwgUmVmPENTU1ZhcmlhYmxlRGF0YT4sIExlbmd0aCwgUmVmPFN0eWxlSW1h
Z2U+PjsKKyAgICB1c2luZyBWYXJpYW50VmFsdWUgPSBzdGQ6OnZhcmlhbnQ8c3RkOjptb25vc3Rh
dGUsIFJlZjxDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVlPiwgQ1NTVmFsdWVJRCwgUmVmPENTU1Zh
cmlhYmxlRGF0YT4sIExlbmd0aCwgUmVmPFN0eWxlSW1hZ2U+PjsKIAogICAgIHN0YXRpYyBSZWY8
Q1NTQ3VzdG9tUHJvcGVydHlWYWx1ZT4gY3JlYXRlRW1wdHkoY29uc3QgQXRvbVN0cmluZyYgbmFt
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXguY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5jcHAKaW5kZXggNzg4MjNkYzEyYWIzZTFmMjQ2MTVh
MjVkNjQ5YTEzNmYzYmQ4YmQ4Ny4uOWM1OGUwZDE3MDM0ZTIyZTM1YmYwYzZlZDI4NWYxZGE5NmMz
ODQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogLy8gaHR0cHM6Ly9kcmFmdHMuZnh0Zi5vcmcvZ2VvbWV0cnkvI2Rv
bS1kb21tYXRyaXhyZWFkb25seS1kb21tYXRyaXhyZWFkb25seQotRXhjZXB0aW9uT3I8UmVmPERP
TU1hdHJpeD4+IERPTU1hdHJpeDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxTdHJpbmcsIFZlY3Rvcjxk
b3VibGU+Pj4mJiBpbml0KQorRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IERPTU1hdHJpeDo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN0
ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9yPGRvdWJsZT4+PiYmIGluaXQp
CiB7CiAgICAgaWYgKCFpbml0KQogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01NYXRy
aXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5oCmluZGV4IGQ3NTY4NDA1ODhiMDFiMDk5NTExZjQ2NTU1
ZGMwYTRiMWUxODBjNDQuLmMyMzhhNjcxNThlODMzNTZhOGU0OGZmMTc0OTdiYTUyZWE3YWI5YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXguaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NTWF0cml4LmgKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKIAogY2xhc3MgRE9NTWF0cml4IDogcHVibGljIERPTU1hdHJpeFJlYWRP
bmx5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjpvcHRpb25hbDxWYXJpYW50PFN0cmlu
ZywgVmVjdG9yPGRvdWJsZT4+PiYmKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPERPTU1h
dHJpeD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjpvcHRpb25hbDxzdGQ6
OnZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8ZG91YmxlPj4+JiYpOwogCiAgICAgc3RhdGljIFJlZjxE
T01NYXRyaXg+IGNyZWF0ZShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBJczJE
IGlzMkQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJl
YWRPbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKaW5k
ZXggYzhjNWJkNDkzZGNhNWNlOGM3NjMwNWY0ZDI4NGEzMmFkMzJmMTc1MC4uOGIwY2VmNTU1NWYz
MjI3Y2QzYWZjYTM2ODA2NGVkMmEyOGEwZmZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0
cml4UmVhZE9ubHkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChET01NYXRyaXhSZWFkT25seSk7CiAKIC8vIGh0dHBz
Oi8vZHJhZnRzLmZ4dGYub3JnL2dlb21ldHJ5LyNkb20tZG9tbWF0cml4cmVhZG9ubHktZG9tbWF0
cml4cmVhZG9ubHkKLUV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXhSZWFkT25seT4+IERPTU1hdHJp
eFJlYWRPbmx5OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgc3RkOjpvcHRpb25hbDxWYXJpYW50PFN0cmluZywgVmVjdG9yPGRvdWJsZT4+PiYm
IGluaXQpCitFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4UmVhZE9ubHk+PiBET01NYXRyaXhSZWFk
T25seTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9yPGRvdWJsZT4+PiYm
IGluaXQpCiB7CiAgICAgaWYgKCFpbml0KQogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
T01NYXRyaXhSZWFkT25seSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0
cml4UmVhZE9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5oCmlu
ZGV4IGIyNzQxYjBkMWFkYjdkNGFiMDRhNGYxZTc3MTc1MDA0MmQwY2FiMjcuLjZhM2MxNzkxMDY2
ZTc5OTdjNzMzMjc2MzUwMDc3N2I0NGE5MTM1MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9ET01NYXRyaXhSZWFkT25seS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRy
aXhSZWFkT25seS5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBET01Qb2ludEluaXQ7CiBjbGFz
cyBET01NYXRyaXhSZWFkT25seSA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZD
b3VudGVkPERPTU1hdHJpeFJlYWRPbmx5PiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChE
T01NYXRyaXhSZWFkT25seSk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxE
T01NYXRyaXhSZWFkT25seT4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjpv
cHRpb25hbDxWYXJpYW50PFN0cmluZywgVmVjdG9yPGRvdWJsZT4+PiYmKTsKKyAgICBzdGF0aWMg
RXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeFJlYWRPbmx5Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3Rvcjxkb3Vi
bGU+Pj4mJik7CiAKICAgICBlbnVtIGNsYXNzIElzMkQgeyBObywgWWVzIH07CiAgICAgc3RhdGlj
IFJlZjxET01NYXRyaXhSZWFkT25seT4gY3JlYXRlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtYXRyaXgsIElzMkQgaXMyRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
RmFjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmgKaW5kZXggOTc3ZjNhOTlhYzRh
MTc2YzA2NjMwZTdjN2QwYWFkZDk1MDFiNWQ1OS4uYTcyMDA5ZmQ1MTFmMWEwYWE2NWUyNzA5NWY2
OWMxYjQ2Y2ZmNGQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVi
bGljOgogICAgICAgICBTdHJpbmcgZGlzcGxheTsKICAgICB9OwogICAgIAotICAgIHVzaW5nIFNv
dXJjZSA9IFZhcmlhbnQ8U3RyaW5nLCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4sIFJlZlB0cjxK
U0M6OkFycmF5QnVmZmVyVmlldz4+OworICAgIHVzaW5nIFNvdXJjZSA9IHN0ZDo6dmFyaWFudDxT
dHJpbmcsIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJW
aWV3Pj47CiAgICAgc3RhdGljIFJlZjxGb250RmFjZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBjb25zdCBTdHJpbmcmIGZhbWlseSwgU291cmNlJiYsIGNvbnN0IERlc2NyaXB0b3Jz
Jik7CiAgICAgc3RhdGljIFJlZjxGb250RmFjZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBDU1NGb250RmFjZSYpOwogICAgIHZpcnR1YWwgfkZvbnRGYWNlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlLmgKaW5kZXggMWUyYTE3ZTlkNGQ0YzVlZGI4Y2Q4ODMwNTYyNzk3ZjA3ZDhjODY3Mi4u
ZWE2MDMxOTNjNjA4MTc1ZTQxMzc5MDk3MDNkYzFhNDIyMDU4OTQzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGUuaApAQCAtMzA5LDcgKzMwOSw3IEBAIHByaXZhdGU6CiAgICAgU3R5bGVSdWxlTGF5ZXIo
Q2FzY2FkZUxheWVyTmFtZSYmLCBzdGQ6OnVuaXF1ZV9wdHI8RGVmZXJyZWRTdHlsZUdyb3VwUnVs
ZUxpc3Q+JiYpOwogICAgIFN0eWxlUnVsZUxheWVyKGNvbnN0IFN0eWxlUnVsZUxheWVyJik7CiAK
LSAgICBWYXJpYW50PENhc2NhZGVMYXllck5hbWUsIFZlY3RvcjxDYXNjYWRlTGF5ZXJOYW1lPj4g
bV9uYW1lVmFyaWFudDsKKyAgICBzdGQ6OnZhcmlhbnQ8Q2FzY2FkZUxheWVyTmFtZSwgVmVjdG9y
PENhc2NhZGVMYXllck5hbWU+PiBtX25hbWVWYXJpYW50OwogfTsKIAogLy8gVGhpcyBpcyBvbmx5
IHVzZWQgYnkgdGhlIENTUyBwYXJzZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuaAppbmRleCA4NTFhNGZlYWNjYjFlYWU4MTI0
ZTYwN2ViNDAzNTA4ZTIzMmQ3NWUzLi5iY2ExMjZmYmFkNDJlY2RiNDYzYTQyMGMzNjA1NDg3ZDIz
MDVjMDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VySGVscGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzLmgKQEAgLTc0LDcgKzc0LDcgQEAgc3RydWN0IExlbmd0aFJhdyB7CiAg
ICAgZG91YmxlIHZhbHVlOwogfTsKIAotdXNpbmcgTGVuZ3RoT3JQZXJjZW50UmF3ID0gVmFyaWFu
dDxMZW5ndGhSYXcsIGRvdWJsZT47Cit1c2luZyBMZW5ndGhPclBlcmNlbnRSYXcgPSBzdGQ6OnZh
cmlhbnQ8TGVuZ3RoUmF3LCBkb3VibGU+OwogCiBzdGQ6Om9wdGlvbmFsPGludD4gY29uc3VtZUlu
dGVnZXJSYXcoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIGRvdWJsZSBtaW5pbXVtVmFsdWUgPSAtc3Rk
OjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgoKSk7CiBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IGNvbnN1bWVJbnRlZ2VyKENTU1BhcnNlclRva2VuUmFuZ2UmLCBkb3VibGUgbWluaW11bVZh
bHVlID0gLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCkpOwpAQCAtMTU1LDEwICsx
NTUsMTAgQEAgc3RydWN0IEZvbnRTdHlsZVJhdyB7CiAgICAgQ1NTVmFsdWVJRCBzdHlsZTsKICAg
ICBzdGQ6Om9wdGlvbmFsPEFuZ2xlUmF3PiBhbmdsZTsKIH07Ci11c2luZyBGb250V2VpZ2h0UmF3
ID0gVmFyaWFudDxDU1NWYWx1ZUlELCBkb3VibGU+OwotdXNpbmcgRm9udFNpemVSYXcgPSBWYXJp
YW50PENTU1ZhbHVlSUQsIENTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6TGVuZ3RoT3JQZXJjZW50
UmF3PjsKLXVzaW5nIExpbmVIZWlnaHRSYXcgPSBWYXJpYW50PENTU1ZhbHVlSUQsIGRvdWJsZSwg
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpMZW5ndGhPclBlcmNlbnRSYXc+OwotdXNpbmcgRm9u
dEZhbWlseVJhdyA9IFZhcmlhbnQ8Q1NTVmFsdWVJRCwgU3RyaW5nPjsKK3VzaW5nIEZvbnRXZWln
aHRSYXcgPSBzdGQ6OnZhcmlhbnQ8Q1NTVmFsdWVJRCwgZG91YmxlPjsKK3VzaW5nIEZvbnRTaXpl
UmF3ID0gc3RkOjp2YXJpYW50PENTU1ZhbHVlSUQsIENTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6
TGVuZ3RoT3JQZXJjZW50UmF3PjsKK3VzaW5nIExpbmVIZWlnaHRSYXcgPSBzdGQ6OnZhcmlhbnQ8
Q1NTVmFsdWVJRCwgZG91YmxlLCBDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6Okxlbmd0aE9yUGVy
Y2VudFJhdz47Cit1c2luZyBGb250RmFtaWx5UmF3ID0gc3RkOjp2YXJpYW50PENTU1ZhbHVlSUQs
IFN0cmluZz47CiAKIHN0cnVjdCBGb250UmF3IHsKICAgICBzdGQ6Om9wdGlvbmFsPEZvbnRTdHls
ZVJhdz4gc3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NO
dW1lcmljVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1
ZS5oCmluZGV4IGJmZGRlNjU2YzAxMTE0NDFhODM1MzkyYTI4MDYxYjJmZjA2OGVkNWMuLjhlYWM1
N2UxZmRlZjJhZmEwNjRmZjczMWIxMWYxMzkxYjI4ZmYwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oCkBAIC00Miw3ICs0Miw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIENTU051bWVyaWNWYWx1ZSA6IHB1
YmxpYyBDU1NTdHlsZVZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKENTU051bWVy
aWNWYWx1ZSk7CiBwdWJsaWM6Ci0gICAgdXNpbmcgQ1NTTnVtYmVyaXNoID0gVmFyaWFudDxkb3Vi
bGUsIFJlZlB0cjxDU1NOdW1lcmljVmFsdWU+PjsKKyAgICB1c2luZyBDU1NOdW1iZXJpc2ggPSBz
dGQ6OnZhcmlhbnQ8ZG91YmxlLCBSZWZQdHI8Q1NTTnVtZXJpY1ZhbHVlPj47CiAKICAgICBSZWY8
Q1NTTnVtZXJpY1ZhbHVlPiBhZGQoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CiAgICAgUmVmPENT
U051bWVyaWNWYWx1ZT4gc3ViKFZlY3RvcjxDU1NOdW1iZXJpc2g+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5wYXJzZWRWYWx1ZS5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTVW5wYXJzZWRWYWx1ZS5oCmluZGV4IDEzMDBhOTk2MTRjOTY2
NTUzMjNhZmE0NjM4MGYwNDM5Y2I4ZDU4YmMuLmUyNGM5YTVlMjM1MDgyODVkMDRiNDIxNDNlNzRk
ODZhMTZhYTU2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1Vu
cGFyc2VkVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbnBhcnNl
ZFZhbHVlLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8
dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogY2xhc3MgQ1NTT01WYXJpYWJsZVJlZmVyZW5j
ZVZhbHVlOwogY2xhc3MgQ1NTUGFyc2VyVG9rZW5SYW5nZTsKLXVzaW5nIENTU1VucGFyc2VkU2Vn
bWVudCA9IFZhcmlhbnQ8U3RyaW5nLCBSZWZQdHI8Q1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVl
Pj47Cit1c2luZyBDU1NVbnBhcnNlZFNlZ21lbnQgPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBSZWZQ
dHI8Q1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlPj47CiAKIGNsYXNzIENTU1VucGFyc2VkVmFs
dWUgZmluYWwgOiBwdWJsaWMgQ1NTU3R5bGVWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChDU1NVbnBhcnNlZFZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYTIyNTRkMTU4
ZTQzOTZhYTkxN2IyNTZiNzYwMjQxZGYwMGY2NmQ3Yi4uMzMyOTQ2MmEwOTZlYzBkY2JlMWY1NWVj
MzBkODkyMGY2MTk4N2NmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTMxOSw3ICszMTksNyBA
QCBlbnVtIGNsYXNzIEN1c3RvbUVsZW1lbnROYW1lVmFsaWRhdGlvblN0YXR1cyB7CiAgICAgQ29u
ZmxpY3RzV2l0aFN0YW5kYXJkRWxlbWVudE5hbWUKIH07CiAKLXVzaW5nIFJlbmRlcmluZ0NvbnRl
eHQgPSBWYXJpYW50PAordXNpbmcgUmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6dmFyaWFudDwKICNp
ZiBFTkFCTEUoV0VCR0wpCiAgICAgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4sCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgKaW5kZXggM2FmY2E2YTI1YmM2Y2U5ZmQz
MTNhZDlhYjI2OTI0NmIwZDk0NmQyNS4uZjhkYzQzZGNiMTIzZDE1M2I0MjA0ZWM5ZmRlNTdlMmFl
MzY0MTdkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgKQEAgLTk2LDcgKzk2LDcg
QEAgcHVibGljOgogICAgIH07CiAjZW5kaWYKIAotICAgIHVzaW5nIERhdGEgPSBWYXJpYW50PAor
ICAgIHVzaW5nIERhdGEgPSBzdGQ6OnZhcmlhbnQ8CiAgICAgICAgIFN0cmluZwogICAgICAgICAs
IERpY3RhdGlvbkRhdGEgLy8gRGljdGF0aW9uQWx0ZXJuYXRpdmVzCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBmMmFkYjY2NWE1NDI1Y2E4ZmNlOTVi
Njg4ZGFiMjQwZGM4Nzg3MDlmLi4yNjRlYzViZGJmZmIwNzcyYTJmZDEyYzk2ZDcxNWM5NmUzMmJj
YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC05MDYsNyArOTA2LDcgQEAgaW5saW5lIFNj
cm9sbEFsaWdubWVudCB0b1Njcm9sbEFsaWdubWVudEZvckJsb2NrRGlyZWN0aW9uKHN0ZDo6b3B0
aW9uYWw8U2Nyb2xsTG8KICAgICB9CiB9CiAKLXZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXco
c3RkOjpvcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXJn
KQordm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlldyhzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFu
dDxib29sLCBTY3JvbGxJbnRvVmlld09wdGlvbnM+PiYmIGFyZykKIHsKICAgICBkb2N1bWVudCgp
LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC00NjIxLDEzICs0
NjIxLDEzIEBAIEVsZW1lbnQqIEVsZW1lbnQ6OmZpbmRBbmNob3JFbGVtZW50Rm9yTGluayhTdHJp
bmcmIG91dEFuY2hvck5hbWUpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUV4Y2VwdGlvbk9y
PFJlZjxXZWJBbmltYXRpb24+PiBFbGVtZW50OjphbmltYXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYga2V5ZnJh
bWVzLCBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlv
bnM+PiYmIG9wdGlvbnMpCitFeGNlcHRpb25PcjxSZWY8V2ViQW5pbWF0aW9uPj4gRWxlbWVudDo6
YW5pbWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlN0
cm9uZzxKU0M6OkpTT2JqZWN0PiYmIGtleWZyYW1lcywgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlh
bnQ8ZG91YmxlLCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnM+PiYmIG9wdGlvbnMpCiB7CiAgICAg
U3RyaW5nIGlkID0gIiI7Ci0gICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgS2V5ZnJh
bWVFZmZlY3RPcHRpb25zPj4ga2V5ZnJhbWVFZmZlY3RPcHRpb25zOworICAgIHN0ZDo6b3B0aW9u
YWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgS2V5ZnJhbWVFZmZlY3RPcHRpb25zPj4ga2V5ZnJhbWVF
ZmZlY3RPcHRpb25zOwogICAgIGlmIChvcHRpb25zKSB7CiAgICAgICAgIGF1dG8gb3B0aW9uc1Zh
bHVlID0gb3B0aW9ucy52YWx1ZSgpOwotICAgICAgICBWYXJpYW50PGRvdWJsZSwgS2V5ZnJhbWVF
ZmZlY3RPcHRpb25zPiBrZXlmcmFtZUVmZmVjdE9wdGlvbnNWYXJpYW50OworICAgICAgICBzdGQ6
OnZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUVmZmVjdE9wdGlvbnM+IGtleWZyYW1lRWZmZWN0T3B0
aW9uc1ZhcmlhbnQ7CiAgICAgICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPGRvdWJsZT4o
b3B0aW9uc1ZhbHVlKSkKICAgICAgICAgICAgIGtleWZyYW1lRWZmZWN0T3B0aW9uc1ZhcmlhbnQg
PSBXVEY6OmdldDxkb3VibGU+KG9wdGlvbnNWYWx1ZSk7CiAgICAgICAgIGVsc2UgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKaW5kZXggNTBjZTdjYjlkM2VjMDY2ZGZjMDA5MTcxOTFhYzU4NGM1YzBjMWFiMS4u
MGM4NjIyOWY2NGRjNTYyMmI0MzJiZWUzOGEwMjNhYjc1YTUyNjY0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCkBAIC0xNjQsNyArMTY0LDcgQEAgcHVibGljOgogICAgIGlubGluZSB1bnNpZ25lZCBmaW5k
QXR0cmlidXRlSW5kZXhCeU5hbWUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0OwogICAgIGlu
bGluZSB1bnNpZ25lZCBmaW5kQXR0cmlidXRlSW5kZXhCeU5hbWUoY29uc3QgQXRvbVN0cmluZyYs
IGJvb2wgc2hvdWxkSWdub3JlQXR0cmlidXRlQ2FzZSkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNjcm9sbEludG9WaWV3KHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxib29sLCBTY3Jv
bGxJbnRvVmlld09wdGlvbnM+PiYmIGFyZyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3Jv
bGxJbnRvVmlldyhzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmll
d09wdGlvbnM+PiYmIGFyZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxJbnRvVmll
dyhib29sIGFsaWduVG9Ub3AgPSB0cnVlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5lZWRlZCA9IHRydWUpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2Nyb2xsSW50b1ZpZXdJZk5vdFZpc2libGUoYm9vbCBjZW50ZXJJZk5v
dFZpc2libGUgPSB0cnVlKTsKQEAgLTYzNCw3ICs2MzQsNyBAQCBwdWJsaWM6CiAKICAgICBFbGVt
ZW50KiBmaW5kQW5jaG9yRWxlbWVudEZvckxpbmsoU3RyaW5nJiBvdXRBbmNob3JOYW1lKTsKIAot
ICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QmLCBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYmLCBzdGQ6Om9wdGlvbmFsPFZhcmlh
bnQ8ZG91YmxlLCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnM+PiYmKTsKKyAgICBFeGNlcHRpb25P
cjxSZWY8V2ViQW5pbWF0aW9uPj4gYW5pbWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpT
dHJvbmc8SlNDOjpKU09iamVjdD4mJiwgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8ZG91Ymxl
LCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnM+PiYmKTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkFu
aW1hdGlvbj4+IGdldEFuaW1hdGlvbnMoc3RkOjpvcHRpb25hbDxHZXRBbmltYXRpb25zT3B0aW9u
cz4pOwogCiAgICAgRWxlbWVudElkZW50aWZpZXIgY3JlYXRlRWxlbWVudElkZW50aWZpZXIoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKaW5kZXggNjg2NmFmMTY1ZWMwNzliOWQwMzViZjMwNmRk
NTg3NjY5ZDI0YjU5Mi4uM2U4NzY5NDc3MTAwNjY4NDdkZjExZWY1NTVkOWUwZDBkMzlkYjZiNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKQEAgLTY4LDkgKzY4LDkgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBpc05vZGUoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNQYXltZW50UmVxdWVzdCgpIGNvbnN0OwogCi0gICAgdXNp
bmcgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnNPckJvb2xlYW4gPSBWYXJpYW50PEFkZEV2ZW50TGlz
dGVuZXJPcHRpb25zLCBib29sPjsKKyAgICB1c2luZyBBZGRFdmVudExpc3RlbmVyT3B0aW9uc09y
Qm9vbGVhbiA9IHN0ZDo6dmFyaWFudDxBZGRFdmVudExpc3RlbmVyT3B0aW9ucywgYm9vbD47CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRFdmVudExpc3RlbmVyRm9yQmluZGluZ3MoY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiwgQWRkRXZlbnRM
aXN0ZW5lck9wdGlvbnNPckJvb2xlYW4mJik7Ci0gICAgdXNpbmcgRXZlbnRMaXN0ZW5lck9wdGlv
bnNPckJvb2xlYW4gPSBWYXJpYW50PEV2ZW50TGlzdGVuZXJPcHRpb25zLCBib29sPjsKKyAgICB1
c2luZyBFdmVudExpc3RlbmVyT3B0aW9uc09yQm9vbGVhbiA9IHN0ZDo6dmFyaWFudDxFdmVudExp
c3RlbmVyT3B0aW9ucywgYm9vbD47CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVFdmVu
dExpc3RlbmVyRm9yQmluZGluZ3MoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8
RXZlbnRMaXN0ZW5lcj4mJiwgRXZlbnRMaXN0ZW5lck9wdGlvbnNPckJvb2xlYW4mJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8Ym9vbD4gZGlzcGF0Y2hFdmVudEZvckJpbmRpbmdz
KEV2ZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaAppbmRleCAwYTkzNDBkNzJhZWYz
YmY3ZGY2OWMyZjUxYjUwM2ZlMjI2YWQ2OWYwLi5hYjViZjM1MWIwZDlkM2NmY2MzOTJmNjdhNmNl
N2VmODQxYjFhYWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCkBAIC00MCw5ICs0MCw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEJsb2I7CiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCi11c2luZyBNZXNzYWdlRXZlbnRTb3VyY2UgPSBWYXJpYW50PFJlZlB0cjxXaW5k
b3dQcm94eT4sIFJlZlB0cjxNZXNzYWdlUG9ydD4sIFJlZlB0cjxTZXJ2aWNlV29ya2VyPj47Cit1
c2luZyBNZXNzYWdlRXZlbnRTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5
PiwgUmVmUHRyPE1lc3NhZ2VQb3J0PiwgUmVmUHRyPFNlcnZpY2VXb3JrZXI+PjsKICNlbHNlCi11
c2luZyBNZXNzYWdlRXZlbnRTb3VyY2UgPSBWYXJpYW50PFJlZlB0cjxXaW5kb3dQcm94eT4sIFJl
ZlB0cjxNZXNzYWdlUG9ydD4+OwordXNpbmcgTWVzc2FnZUV2ZW50U291cmNlID0gc3RkOjp2YXJp
YW50PFJlZlB0cjxXaW5kb3dQcm94eT4sIFJlZlB0cjxNZXNzYWdlUG9ydD4+OwogI2VuZGlmCiAK
IGNsYXNzIE1lc3NhZ2VFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CkBAIC03Myw3ICs3Myw3
IEBAIHB1YmxpYzoKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPE1lc3NhZ2VFdmVudFNvdXJjZT4m
IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CiAgICAgY29uc3QgVmVjdG9yPFJl
ZlB0cjxNZXNzYWdlUG9ydD4+JiBwb3J0cygpIGNvbnN0IHsgcmV0dXJuIG1fcG9ydHM7IH0KIAot
ICAgIHVzaW5nIERhdGFUeXBlID0gVmFyaWFudDxKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LCBSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgU3RyaW5nLCBSZWY8QmxvYj4sIFJlZjxBcnJheUJ1ZmZl
cj4+OworICAgIHVzaW5nIERhdGFUeXBlID0gc3RkOjp2YXJpYW50PEpTVmFsdWVJbldyYXBwZWRP
YmplY3QsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBTdHJpbmcsIFJlZjxCbG9iPiwgUmVm
PEFycmF5QnVmZmVyPj47CiAgICAgY29uc3QgRGF0YVR5cGUmIGRhdGEoKSBjb25zdCB7IHJldHVy
biBtX2RhdGE7IH0KIAogICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIGNhY2hlZERhdGEoKSB7
IHJldHVybiBtX2NhY2hlZERhdGE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGJkYjg0MjcwNTM5ZTEzMTY2
MTQxNjllMGM3ZjA2NjkyNzcyNDZiYTYuLjFmMzFiOWVhMTFjYmU1ZGEyNTdkOWM5ODkwZDQzYjZm
NTAxZDQxOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNjcsNyArNjcsNyBAQCBjbGFzcyBTVkdRdWFsaWZp
ZWROYW1lOwogY2xhc3MgU2hhZG93Um9vdDsKIGNsYXNzIFRvdWNoRXZlbnQ7CiAKLXVzaW5nIE5v
ZGVPclN0cmluZyA9IFZhcmlhbnQ8UmVmUHRyPE5vZGU+LCBTdHJpbmc+OwordXNpbmcgTm9kZU9y
U3RyaW5nID0gc3RkOjp2YXJpYW50PFJlZlB0cjxOb2RlPiwgU3RyaW5nPjsKIAogY2xhc3MgTm9k
ZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChOb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyLmgKaW5kZXggZjU1MDAzNTZiNjBjZGJjYWQyOWRkM2JmNzI1OGUzYWIyOTJjMDYzMi4uMjUw
MjZhZGU3YzQzMDU5MjBkNzk5MDU1OWMwN2U1NzY0YjY3ZmQzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgKQEAgLTEyNSw3ICsx
MjUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0Rpc21pc3NlZEJ5RWRpdGluZyB7IH07CiAg
ICAgQWx0ZXJuYXRpdmVUZXh0VHlwZSBtX3R5cGU7CiAgICAgU3RyaW5nIG1fb3JpZ2luYWxUZXh0
OwotICAgIFZhcmlhbnQ8QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudCwgRGljdGF0aW9uQ29udGV4
dD4gbV9kZXRhaWxzOworICAgIHN0ZDo6dmFyaWFudDxBdXRvY29ycmVjdGlvblJlcGxhY2VtZW50
LCBEaWN0YXRpb25Db250ZXh0PiBtX2RldGFpbHM7CiAKICAgICBTdHJpbmcgbV9vcmlnaW5hbFN0
cmluZ0Zvckxhc3REZWxldGVkQXV0b2NvcnJlY3Rpb247CiAgICAgUG9zaXRpb24gbV9wb3NpdGlv
bkZvckxhc3REZWxldGVkQXV0b2NvcnJlY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1RleHRDaGVja2luZ0hlbHBlci5jcHAKaW5kZXggZWIwYzc2OTYwM2Y0ZGRlMTRhYTY1MDdhNTEz
ZWYyOWFjNmE4YjAwOS4uYTNiYzk2OWZiZTcyYTdiODBiZGQ2ZmI2OTNhNjhlMTBjZDMzZmYwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAt
Mjg1LDcgKzI4NSw3IEBAIGF1dG8gVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNzcGVs
bGVkV29yZCgpIGNvbnN0IC0+IE1pc3NwZWxsZWRXb3JkCiAgICAgcmV0dXJuIGZpbmRNaXNzcGVs
bGVkV29yZHMoT3BlcmF0aW9uOjpGaW5kRmlyc3QpLmZpcnN0OwogfQogCi1hdXRvIFRleHRDaGVj
a2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlzc3BlbGxlZFdvcmRPclVuZ3JhbW1hdGljYWxQaHJhc2Uo
Ym9vbCBjaGVja0dyYW1tYXIpIGNvbnN0IC0+IFZhcmlhbnQ8TWlzc3BlbGxlZFdvcmQsIFVuZ3Jh
bW1hdGljYWxQaHJhc2U+CithdXRvIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlzc3Bl
bGxlZFdvcmRPclVuZ3JhbW1hdGljYWxQaHJhc2UoYm9vbCBjaGVja0dyYW1tYXIpIGNvbnN0IC0+
IHN0ZDo6dmFyaWFudDxNaXNzcGVsbGVkV29yZCwgVW5ncmFtbWF0aWNhbFBocmFzZT4KIHsKICAg
ICBpZiAoIXVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTI5Myw3ICsyOTMsNyBAQCBhdXRvIFRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlz
c3BlbGxlZFdvcmRPclVuZ3JhbW1hdGljYWxQaHJhc2UoYm9vbCBjaGVjawogICAgIGlmIChwbGF0
Zm9ybURyaXZlblRleHRDaGVja2VyRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgVmFyaWFudDxNaXNzcGVsbGVkV29yZCwgVW5ncmFtbWF0aWNhbFBocmFzZT4gZmlyc3RGb3Vu
ZEl0ZW07CisgICAgc3RkOjp2YXJpYW50PE1pc3NwZWxsZWRXb3JkLCBVbmdyYW1tYXRpY2FsUGhy
YXNlPiBmaXJzdEZvdW5kSXRlbTsKICAgICBHcmFtbWFyRGV0YWlsIGdyYW1tYXJEZXRhaWw7CiAK
ICAgICBTdHJpbmcgbWlzc3BlbGxlZFdvcmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
Q2hlY2tpbmdIZWxwZXIuaAppbmRleCA4MmNkOTYxMzU5OWZmNGU1MmQzMjJjNmJmNTg0MjY4ZmEz
NTY5NWNkLi5mNTdlNDc1NzFjMWI2MTZlMDBkNWVhYTkwOWVlYjQxNTExM2RjM2RkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmgKQEAgLTk0LDcgKzk0LDcg
QEAgcHVibGljOgogCiAgICAgTWlzc3BlbGxlZFdvcmQgZmluZEZpcnN0TWlzc3BlbGxlZFdvcmQo
KSBjb25zdDsKICAgICBVbmdyYW1tYXRpY2FsUGhyYXNlIGZpbmRGaXJzdFVuZ3JhbW1hdGljYWxQ
aHJhc2UoKSBjb25zdDsKLSAgICBWYXJpYW50PE1pc3NwZWxsZWRXb3JkLCBVbmdyYW1tYXRpY2Fs
UGhyYXNlPiBmaW5kRmlyc3RNaXNzcGVsbGVkV29yZE9yVW5ncmFtbWF0aWNhbFBocmFzZShib29s
IGNoZWNrR3JhbW1hcikgY29uc3Q7CisgICAgc3RkOjp2YXJpYW50PE1pc3NwZWxsZWRXb3JkLCBV
bmdyYW1tYXRpY2FsUGhyYXNlPiBmaW5kRmlyc3RNaXNzcGVsbGVkV29yZE9yVW5ncmFtbWF0aWNh
bFBocmFzZShib29sIGNoZWNrR3JhbW1hcikgY29uc3Q7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNp
bXBsZVJhbmdlPiBtYXJrQWxsTWlzc3BlbGxlZFdvcmRzKCkgY29uc3Q7IC8vIFJldHVybnMgdGhl
IHJhbmdlIG9mIHRoZSBmaXJzdCBtaXNzcGVsbGVkIHdvcmQuCiAgICAgdm9pZCBtYXJrQWxsVW5n
cmFtbWF0aWNhbFBocmFzZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaAppbmRleCAwNjU5OTNmZDUxMDljNDM4N2Fj
MTllM2I4OTA0YmFlYzRlYThlZDc0Li4wZDk3NWIzNjg5NjI5NzM2MTExNmY4NDcwOWEzMjE4NTM2
ZTM4OWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0
aW9uQ29udHJvbGxlci5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgICAgICB9Owog
CiAgICAgICAgIFR5cGUgdHlwZTsKLSAgICAgICAgV1RGOjpWYXJpYW50PEVsZW1lbnRSdWxlLCBB
dHRyaWJ1dGVSdWxlLCBDbGFzc1J1bGU+IHJ1bGU7CisgICAgICAgIHN0ZDo6dmFyaWFudDxFbGVt
ZW50UnVsZSwgQXR0cmlidXRlUnVsZSwgQ2xhc3NSdWxlPiBydWxlOwogCiAgICAgICAgIGJvb2wg
bWF0Y2goY29uc3QgRWxlbWVudCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCmluZGV4IDRl
ZDg2YTNlZjg3YTgyMjVlOWJhZDA2ODU5NGFiZDdmMzlkOWNiMDguLjI2OGYyYzZkNGFlOTE0YWVh
NDNmNDRmNzgyMTI0YmQzYjE4ZTM5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvQmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCkBAIC01Nyw3ICs1
Nyw3IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4
Y2VwdGlvbk9yOwogCi11c2luZyBCbG9iUGFydFZhcmlhbnQgPSBWYXJpYW50PFJlZlB0cjxKU0M6
OkFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgUmVmUHRyPEJsb2I+
LCBTdHJpbmc+OwordXNpbmcgQmxvYlBhcnRWYXJpYW50ID0gc3RkOjp2YXJpYW50PFJlZlB0cjxK
U0M6OkFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgUmVmUHRyPEJs
b2I+LCBTdHJpbmc+OwogCiBjbGFzcyBCbG9iIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVi
bGljIFVSTFJlZ2lzdHJhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxCbG9iPiwgcHVibGljIEFjdGl2
ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9FWFBPUlQoQmxvYiwgV0VC
Q09SRV9FWFBPUlQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggOTQ0
MTgyYjdhNjNiMzQwNmIzNDkwOTBjMTIyZTEzY2FmYzU0OWMyMC4uMjQzZDMyMzEyZmI3NGUyMzQ1
ZGM3OTAzYjA5NWMxZTcwNDZhNWRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlUmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIu
Y3BwCkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBGaWxlUmVhZGVyOjpmaXJlRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSkKICAgICBkaXNwYXRjaEV2ZW50KFByb2dyZXNzRXZlbnQ6OmNyZWF0
ZSh0eXBlLCB0cnVlLCBtX2xvYWRlciA/IG1fbG9hZGVyLT5ieXRlc0xvYWRlZCgpIDogMCwgbV9s
b2FkZXIgPyBtX2xvYWRlci0+dG90YWxCeXRlcygpIDogMCkpOwogfQogCi1zdGQ6Om9wdGlvbmFs
PFZhcmlhbnQ8U3RyaW5nLCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+PiBGaWxlUmVhZGVyOjpy
ZXN1bHQoKSBjb25zdAorc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBSZWZQdHI8
SlNDOjpBcnJheUJ1ZmZlcj4+PiBGaWxlUmVhZGVyOjpyZXN1bHQoKSBjb25zdAogewogICAgIGlm
ICghbV9sb2FkZXIgfHwgbV9lcnJvciB8fCBtX3N0YXRlICE9IERPTkUpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVS
ZWFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCmluZGV4IGQ5ZjI4
ZGIzYzhlNDhkZmMxNjI1OTQ2MWM0YmI4YjJlMmIwOGZhYTcuLjlkOGI2MGM5OWU5ZTJmYzFlZjY1
NjY3Yzk2NTBhMTliNTNkNThlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCkBA
IC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICBSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAgRE9NRXhjZXB0aW9uKiBlcnJvcigpIHsgcmV0dXJu
IG1fZXJyb3IuZ2V0KCk7IH0KICAgICBGaWxlUmVhZGVyTG9hZGVyOjpSZWFkVHlwZSByZWFkVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZFR5cGU7IH0KLSAgICBzdGQ6Om9wdGlvbmFsPFZhcmlh
bnQ8U3RyaW5nLCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+PiByZXN1bHQoKSBjb25zdDsKKyAg
ICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxTdHJpbmcsIFJlZlB0cjxKU0M6OkFycmF5QnVm
ZmVyPj4+IHJlc3VsdCgpIGNvbnN0OwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwogICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtT
ZW5kUXVldWUuaAppbmRleCA5MTE0ZmUyMTZhMjQ3MWQ0NTAyNzRiZGUwM2Y4MDE2ODBmMWVlNzA1
Li5lYWZiMDY3MGMxNDZjNWFkNTVkMjg2NTNiY2Y5ZWFjM2M2MmYxYTc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc01lc3NhZ2VzKCk7CiAKLSAgICB1c2luZyBNZXNz
YWdlID0gVmFyaWFudDxDU3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPiwgVW5pcXVlUmVmPEJsb2JM
b2FkZXI+PjsKKyAgICB1c2luZyBNZXNzYWdlID0gc3RkOjp2YXJpYW50PENTdHJpbmcsIFJlZjxT
aGFyZWRCdWZmZXI+LCBVbmlxdWVSZWY8QmxvYkxvYWRlcj4+OwogICAgIERlcXVlPE1lc3NhZ2U+
IG1fcXVldWU7CiAKICAgICBXcml0ZVN0cmluZyBtX3dyaXRlU3RyaW5nOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
T01Gb3JtRGF0YS5oCmluZGV4IGVmYjQ5YmJlNmNjZmJiOTJhZWQxMTEwNzdlMWU3YzE0NzNiY2Y0
NjIuLjMzN2UyMDBiMmIwMzQ3ZjliNmI0OGRhMGExNmI2MzVjYmJlZDY2MmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NRm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RPTUZvcm1EYXRhLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgSFRNTEZvcm1FbGVtZW50
OwogCiBjbGFzcyBET01Gb3JtRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUZvcm1EYXRhPiB7
CiBwdWJsaWM6Ci0gICAgdXNpbmcgRm9ybURhdGFFbnRyeVZhbHVlID0gVmFyaWFudDxSZWZQdHI8
RmlsZT4sIFN0cmluZz47CisgICAgdXNpbmcgRm9ybURhdGFFbnRyeVZhbHVlID0gc3RkOjp2YXJp
YW50PFJlZlB0cjxGaWxlPiwgU3RyaW5nPjsKIAogICAgIHN0cnVjdCBJdGVtIHsKICAgICAgICAg
U3RyaW5nIG5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24uY3BwCmlu
ZGV4IDc3OWIxODI0NzIxMjYyNzdhNzQ1NGNhMDBkNWIzNzMzOGU5MmUyMTguLjIxMzc0MmViOGEx
Nzk2Y2VhNzA1MDYwMmM4ZTgwNzZkNDI5NjAzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFsbENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFsbENvbGxlY3Rpb24uY3BwCkBAIC00NywyOCArNDcsMjggQEAgaW5saW5lIEhUTUxBbGxDb2xs
ZWN0aW9uOjpIVE1MQWxsQ29sbGVjdGlvbihEb2N1bWVudCYgZG9jdW1lbnQsIENvbGxlY3Rpb25U
eXBlIHQKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW5m
cmFzdHJ1Y3R1cmUuaHRtbCNkb20taHRtbGFsbGNvbGxlY3Rpb24taXRlbQotc3RkOjpvcHRpb25h
bDxWYXJpYW50PFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4sIFJlZlB0cjxFbGVtZW50Pj4+IEhUTUxB
bGxDb2xsZWN0aW9uOjpuYW1lZE9ySW5kZXhlZEl0ZW1Pckl0ZW1zKGNvbnN0IEF0b21TdHJpbmcm
IG5hbWVPckluZGV4KSBjb25zdAorc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhU
TUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+Pj4gSFRNTEFsbENvbGxlY3Rpb246Om5hbWVk
T3JJbmRleGVkSXRlbU9ySXRlbXMoY29uc3QgQXRvbVN0cmluZyYgbmFtZU9ySW5kZXgpIGNvbnN0
CiB7CiAgICAgaWYgKG5hbWVPckluZGV4LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCiAgICAgaWYgKGF1dG8gaW5kZXggPSBKU0M6OnBhcnNlSW5kZXgoKm5hbWVPcklu
ZGV4LmltcGwoKSkpCi0gICAgICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxIVE1MQ29sbGVjdGlv
bj4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQdHI8RWxlbWVudD4geyBpdGVtKGluZGV4LnZhbHVl
KCkpIH0gfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6dmFyaWFudDxSZWZQdHI8SFRNTENvbGxlY3Rp
b24+LCBSZWZQdHI8RWxlbWVudD4+IHsgUmVmUHRyPEVsZW1lbnQ+IHsgaXRlbShpbmRleC52YWx1
ZSgpKSB9IH07CiAKICAgICByZXR1cm4gbmFtZWRJdGVtT3JJdGVtcyhuYW1lT3JJbmRleCk7CiB9
CiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2luZnJhc3RydWN0
dXJlLmh0bWwjY29uY2VwdC1nZXQtYWxsLW5hbWVkCi1zdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVm
UHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+Pj4gSFRNTEFsbENvbGxlY3Rpb246
Om5hbWVkSXRlbU9ySXRlbXMoY29uc3QgQXRvbVN0cmluZyYgbmFtZSkgY29uc3QKK3N0ZDo6b3B0
aW9uYWw8c3RkOjp2YXJpYW50PFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4sIFJlZlB0cjxFbGVtZW50
Pj4+IEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZEl0ZW1Pckl0ZW1zKGNvbnN0IEF0b21TdHJpbmcm
IG5hbWUpIGNvbnN0CiB7CiAgICAgYXV0byBuYW1lZEl0ZW1zID0gdGhpcy0+bmFtZWRJdGVtcyhu
YW1lKTsKIAogICAgIGlmIChuYW1lZEl0ZW1zLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPT0gMSkKLSAgICAgICAgcmV0
dXJuIFZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+PiB7IFJl
ZlB0cjxFbGVtZW50PiB7IFdURk1vdmUobmFtZWRJdGVtc1swXSkgfSB9OworICAgICAgICByZXR1
cm4gc3RkOjp2YXJpYW50PFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4sIFJlZlB0cjxFbGVtZW50Pj4g
eyBSZWZQdHI8RWxlbWVudD4geyBXVEZNb3ZlKG5hbWVkSXRlbXNbMF0pIH0gfTsKIAotICAgIHJl
dHVybiBWYXJpYW50PFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4sIFJlZlB0cjxFbGVtZW50Pj4geyBS
ZWZQdHI8SFRNTENvbGxlY3Rpb24+IHsgZG93bmNhc3Q8RG9jdW1lbnQ+KG93bmVyTm9kZSgpKS5h
bGxGaWx0ZXJlZEJ5TmFtZShuYW1lKSB9IH07CisgICAgcmV0dXJuIHN0ZDo6dmFyaWFudDxSZWZQ
dHI8SFRNTENvbGxlY3Rpb24+LCBSZWZQdHI8RWxlbWVudD4+IHsgUmVmUHRyPEhUTUxDb2xsZWN0
aW9uPiB7IGRvd25jYXN0PERvY3VtZW50Pihvd25lck5vZGUoKSkuYWxsRmlsdGVyZWRCeU5hbWUo
bmFtZSkgfSB9OwogfQogCiBIVE1MQWxsTmFtZWRTdWJDb2xsZWN0aW9uOjp+SFRNTEFsbE5hbWVk
U3ViQ29sbGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxD
b2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmgKaW5k
ZXggNmU4NjAxZjVlOWFjMDAwZTk3YjM5ZTJmMzA4MGE3YWFlNWM1OTExNS4uZTQ0MTQwMzZjNDNl
MzhjYjY4ODRlZTIxNzQ5Zjc1NzU4YjNmNjk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFs
bENvbGxlY3Rpb24uaApAQCAtMzMsOCArMzMsOCBAQCBjbGFzcyBIVE1MQWxsQ29sbGVjdGlvbiBm
aW5hbCA6IHB1YmxpYyBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24gewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8SFRNTEFsbENvbGxlY3Rpb24+IGNyZWF0ZShEb2N1bWVudCYsIENvbGxlY3Rpb25U
eXBlKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8SFRNTENvbGxlY3Rpb24+
LCBSZWZQdHI8RWxlbWVudD4+PiBuYW1lZE9ySW5kZXhlZEl0ZW1Pckl0ZW1zKGNvbnN0IEF0b21T
dHJpbmcmIG5hbWVPckluZGV4KSBjb25zdDsKLSAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVm
UHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+Pj4gbmFtZWRJdGVtT3JJdGVtcyhj
b25zdCBBdG9tU3RyaW5nJikgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8
UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+Pj4gbmFtZWRPckluZGV4ZWRJ
dGVtT3JJdGVtcyhjb25zdCBBdG9tU3RyaW5nJiBuYW1lT3JJbmRleCkgY29uc3Q7CisgICAgc3Rk
OjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVs
ZW1lbnQ+Pj4gbmFtZWRJdGVtT3JJdGVtcyhjb25zdCBBdG9tU3RyaW5nJikgY29uc3Q7CiAKIHBy
aXZhdGU6CiAgICAgSFRNTEFsbENvbGxlY3Rpb24oRG9jdW1lbnQmLCBDb2xsZWN0aW9uVHlwZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKaW5kZXggNDE2MzMwY2I2NDA3NTAyNjFi
ZmE2NDU3NzQzNGFkMmIxY2Y3ZGNkMy4uMzliOGYyY2E0ZWQyYjcxYzNkYzcwNzcyMTU1NTE3N2Mw
YjA4YjNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcApAQCAtMTIwLDcgKzEy
MCw3IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gSFRNTERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQog
fQogCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9kb20uaHRtbCNk
b20tZG9jdW1lbnQtbmFtZWRpdGVtCi1zdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPFdpbmRv
d1Byb3h5PiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+Pj4gSFRNTERv
Y3VtZW50OjpuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYgbmFtZSkKK3N0ZDo6b3B0aW9uYWw8
c3RkOjp2YXJpYW50PFJlZlB0cjxXaW5kb3dQcm94eT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRy
PEhUTUxDb2xsZWN0aW9uPj4+IEhUTUxEb2N1bWVudDo6bmFtZWRJdGVtKGNvbnN0IEF0b21TdHJp
bmcmIG5hbWUpCiB7CiAgICAgaWYgKG5hbWUuaXNOdWxsKCkgfHwgIWhhc0RvY3VtZW50TmFtZWRJ
dGVtKCpuYW1lLmltcGwoKSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC0xMjgs
MTYgKzEyOCwxNiBAQCBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5Piwg
UmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3RpbwogICAgIGlmIChVTkxJS0VMWShk
b2N1bWVudE5hbWVkSXRlbUNvbnRhaW5zTXVsdGlwbGVFbGVtZW50cygqbmFtZS5pbXBsKCkpKSkg
ewogICAgICAgICBhdXRvIGNvbGxlY3Rpb24gPSBkb2N1bWVudE5hbWVkSXRlbXMobmFtZSk7CiAg
ICAgICAgIEFTU0VSVChjb2xsZWN0aW9uLT5sZW5ndGgoKSA+IDEpOwotICAgICAgICByZXR1cm4g
VmFyaWFudDxSZWZQdHI8V2luZG93UHJveHk+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1M
Q29sbGVjdGlvbj4+IHsgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiB7IFdURk1vdmUoY29sbGVjdGlv
bikgfSB9OworICAgICAgICByZXR1cm4gc3RkOjp2YXJpYW50PFJlZlB0cjxXaW5kb3dQcm94eT4s
IFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4geyBSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IHsgV1RGTW92ZShjb2xsZWN0aW9uKSB9IH07CiAgICAgfQogCiAgICAgYXV0byYg
ZWxlbWVudCA9ICpkb2N1bWVudE5hbWVkSXRlbSgqbmFtZS5pbXBsKCkpOwogICAgIGlmIChVTkxJ
S0VMWShpczxIVE1MSUZyYW1lRWxlbWVudD4oZWxlbWVudCkpKSB7CiAgICAgICAgIGlmIChSZWZQ
dHIgZG9tV2luZG93ID0gZG93bmNhc3Q8SFRNTElGcmFtZUVsZW1lbnQ+KGVsZW1lbnQpLmNvbnRl
bnRXaW5kb3coKSkKLSAgICAgICAgICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxXaW5kb3dQcm94
eT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4geyBXVEZNb3ZlKGRv
bVdpbmRvdykgfTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFdpbmRv
d1Byb3h5PiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+PiB7IFdURk1v
dmUoZG9tV2luZG93KSB9OwogICAgIH0KIAotICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxXaW5k
b3dQcm94eT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4geyBSZWZQ
dHI8RWxlbWVudD4geyAmZWxlbWVudCB9IH07CisgICAgcmV0dXJuIHN0ZDo6dmFyaWFudDxSZWZQ
dHI8V2luZG93UHJveHk+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+
IHsgUmVmUHRyPEVsZW1lbnQ+IHsgJmVsZW1lbnQgfSB9OwogfQogCiBWZWN0b3I8QXRvbVN0cmlu
Zz4gSFRNTERvY3VtZW50OjpzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEb2N1bWVudC5oCmluZGV4IGUzNTNhYmRiZmExZDUyZTU4ODcyN2IyODU2YTk2NWNh
NzQ1NmMyMDcuLjhmNTM1MmYwNDVhZjM4OWRlN2NhZjU0MDI1YTk1MDlkZWEzNTE3OWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgaW50IHdpZHRoKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgaW50IGhlaWdo
dCgpOwogICAgIAotICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8V2luZG93UHJveHk+
LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+PiBuYW1lZEl0ZW0oY29u
c3QgQXRvbVN0cmluZyYpOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFJlZlB0cjxX
aW5kb3dQcm94eT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4+IG5h
bWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgVmVjdG9yPEF0b21TdHJpbmc+IHN1cHBv
cnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdDsKIAogICAgIEVsZW1lbnQqIGRvY3VtZW50TmFtZWRJ
dGVtKGNvbnN0IEF0b21TdHJpbmdJbXBsJiBuYW1lKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50
TmFtZWRJdGVtLmdldEVsZW1lbnRCeURvY3VtZW50TmFtZWRJdGVtKG5hbWUsICp0aGlzKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNw
cAppbmRleCBlMzVkYjAwOTUyZTE2ZDZmYjM1OWMzM2JiMWQ2YTMzZjc5NmQ5ZTg3Li5kNjhkZTBj
MmYyNGM4MzcxMjM2NmQ4ZTcwNDIyNGRhNzQ0NWY3Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcApAQCAtNTQsMTYgKzU0LDE2
IEBAIFJlZjxIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbj4gSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb246OmNyZWF0ZShDb250YWluZXJOb2RlCiAKIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9u
Ojp+SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24oKSA9IGRlZmF1bHQ7CiAKLXN0ZDo6b3B0aW9u
YWw8VmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50Pj4+IEhUTUxG
b3JtQ29udHJvbHNDb2xsZWN0aW9uOjpuYW1lZEl0ZW1Pckl0ZW1zKGNvbnN0IFN0cmluZyYgbmFt
ZSkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0
PiwgUmVmUHRyPEVsZW1lbnQ+Pj4gSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246Om5hbWVkSXRl
bU9ySXRlbXMoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAogewogICAgIGF1dG8gbmFtZWRJdGVt
cyA9IHRoaXMtPm5hbWVkSXRlbXMobmFtZSk7CiAKICAgICBpZiAobmFtZWRJdGVtcy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKG5hbWVkSXRlbXMuc2l6
ZSgpID09IDEpCi0gICAgICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0Piwg
UmVmUHRyPEVsZW1lbnQ+PiB7IFJlZlB0cjxFbGVtZW50PiB7IFdURk1vdmUobmFtZWRJdGVtc1sw
XSkgfSB9OworICAgICAgICByZXR1cm4gc3RkOjp2YXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0
PiwgUmVmUHRyPEVsZW1lbnQ+PiB7IFJlZlB0cjxFbGVtZW50PiB7IFdURk1vdmUobmFtZWRJdGVt
c1swXSkgfSB9OwogCi0gICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxpc3Q+LCBS
ZWZQdHI8RWxlbWVudD4+IHsgUmVmUHRyPFJhZGlvTm9kZUxpc3Q+IHsgb3duZXJOb2RlKCkucmFk
aW9Ob2RlTGlzdChuYW1lKSB9IH07CisgICAgcmV0dXJuIHN0ZDo6dmFyaWFudDxSZWZQdHI8UmFk
aW9Ob2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQdHI8UmFkaW9Ob2RlTGlzdD4geyBv
d25lck5vZGUoKS5yYWRpb05vZGVMaXN0KG5hbWUpIH0gfTsKIH0KIAogc3RhdGljIHVuc2lnbmVk
IGZpbmRGb3JtQXNzb2NpYXRlZEVsZW1lbnQoY29uc3QgVmVjdG9yPFdlYWtQdHI8SFRNTEVsZW1l
bnQ+PiYgZWxlbWVudHMsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmgKaW5kZXggYjViODk5NzI5M2E5
MGJlMGIzMWNiZDc2ODNiYmIxMmQyNTU3ZDgwMC4uYWQ5ZGVhMTY1MWUzYjYyOTVmOTY0MDk1YmMz
ZmJlYTgzNjUxYmUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xzQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sc0NvbGxlY3Rpb24uaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24oKTsKIAogICAgIEhUTUxFbGVtZW50KiBpdGVtKHVu
c2lnbmVkIG9mZnNldCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgc3RkOjpvcHRpb25hbDxWYXJpYW50
PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+Pj4gbmFtZWRJdGVtT3JJdGVt
cyhjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxS
ZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50Pj4+IG5hbWVkSXRlbU9ySXRlbXMo
Y29uc3QgU3RyaW5nJikgY29uc3Q7CiAKICAgICBIVE1MRm9ybUVsZW1lbnQmIG93bmVyTm9kZSgp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggYWFk
ODBhN2EwOGUzOWQ3MmIyMzBjNjgzNTZlYjEyNjE2ZDgwMzgyZC4uZDU3YmM1Zjk0OTc1OWViZmNj
MDAwYTcyYjE3OTczOGZmZTFiMDJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmNwcApAQCAtMTc0LDE2ICsxNzQsMTYgQEAgSFRNTEVsZW1lbnQqIEhUTUxGb3JtRWxlbWVu
dDo6aXRlbSh1bnNpZ25lZCBpbmRleCkKICAgICByZXR1cm4gZWxlbWVudHMoKS0+aXRlbShpbmRl
eCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJl
ZlB0cjxFbGVtZW50Pj4+IEhUTUxGb3JtRWxlbWVudDo6bmFtZWRJdGVtKGNvbnN0IEF0b21TdHJp
bmcmIG5hbWUpCitzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlz
dD4sIFJlZlB0cjxFbGVtZW50Pj4+IEhUTUxGb3JtRWxlbWVudDo6bmFtZWRJdGVtKGNvbnN0IEF0
b21TdHJpbmcmIG5hbWUpCiB7CiAgICAgYXV0byBuYW1lZEl0ZW1zID0gbmFtZWRFbGVtZW50cyhu
YW1lKTsKIAogICAgIGlmIChuYW1lZEl0ZW1zLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPT0gMSkKLSAgICAgICAgcmV0
dXJuIFZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxpc3Q+LCBSZWZQdHI8RWxlbWVudD4+IHsgUmVm
UHRyPEVsZW1lbnQ+IHsgV1RGTW92ZShuYW1lZEl0ZW1zWzBdKSB9IH07CisgICAgICAgIHJldHVy
biBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxpc3Q+LCBSZWZQdHI8RWxlbWVudD4+IHsg
UmVmUHRyPEVsZW1lbnQ+IHsgV1RGTW92ZShuYW1lZEl0ZW1zWzBdKSB9IH07CiAKLSAgICByZXR1
cm4gVmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQ
dHI8UmFkaW9Ob2RlTGlzdD4geyByYWRpb05vZGVMaXN0KG5hbWUpIH0gfTsKKyAgICByZXR1cm4g
c3RkOjp2YXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+PiB7IFJl
ZlB0cjxSYWRpb05vZGVMaXN0PiB7IHJhZGlvTm9kZUxpc3QobmFtZSkgfSB9OwogfQogCiBWZWN0
b3I8QXRvbVN0cmluZz4gSFRNTEZvcm1FbGVtZW50OjpzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IDNhZGNkYmU1M2Yy
YmFmYjZhMmViODMzZmQ4ZjFmYjVkYmU0ZjU4OWMuLjJkYTBiOWQzYjIwNTc3ODRhNDk4NTlhNjhk
MTdmZDZiMjA0NjE1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBsZW5n
dGgoKSBjb25zdDsKICAgICBIVE1MRWxlbWVudCogaXRlbSh1bnNpZ25lZCBpbmRleCk7Ci0gICAg
c3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1l
bnQ+Pj4gbmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0
ZDo6dmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50Pj4+IG5hbWVk
SXRlbShjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgVmVjdG9yPEF0b21TdHJpbmc+IHN1cHBvcnRl
ZFByb3BlcnR5TmFtZXMoKSBjb25zdDsKIAogICAgIFN0cmluZyBlbmN0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9hdHRyaWJ1dGVzLmVuY29kaW5nVHlwZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCmluZGV4IDFkZjY3NmFmM2QxOTRhZWIxOWFlZTA0NjcxNzY2MTBiM2Jh
NWExZjUuLjE0NWJjYjU1NGYyOTQ2NDM0ZjQwZWUwZWRkZWJlNTFlYTBhMWNkMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMTUsNyArMTE1LDcgQEAgY2xhc3Mg
UmVtb3RlUGxheWJhY2s7CiB1c2luZyBDdWVJbnRlcnZhbCA9IFBPREludGVydmFsPE1lZGlhVGlt
ZSwgVGV4dFRyYWNrQ3VlKj47CiB1c2luZyBDdWVMaXN0ID0gVmVjdG9yPEN1ZUludGVydmFsPjsK
IAotdXNpbmcgTWVkaWFQcm92aWRlciA9IHN0ZDo6b3B0aW9uYWw8VmFyaWFudDwKK3VzaW5nIE1l
ZGlhUHJvdmlkZXIgPSBzdGQ6Om9wdGlvbmFsIDwgc3RkOjp2YXJpYW50IDwKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4sCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oCmluZGV4IDVhMzFmYzRkYjUyZjMx
ZmNkZmEwOTc5ZDUxNWVkNjM2ZDk0ZWU0OWMuLmFiN2VjMTkxOGI2YmUxYWFlNGMyY2YzZGY5Nzgy
MjlkNmZkYWZmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaApAQCAtNDQsOCArNDQsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0SXRlbSh1bnNpZ25lZCBpbmRleCwgSFRNTE9wdGlvbkVsZW1lbnQqKTsKICAgICAKLSAg
ICB1c2luZyBPcHRpb25Pck9wdEdyb3VwRWxlbWVudCA9IFZhcmlhbnQ8UmVmUHRyPEhUTUxPcHRp
b25FbGVtZW50PiwgUmVmUHRyPEhUTUxPcHRHcm91cEVsZW1lbnQ+PjsKLSAgICB1c2luZyBIVE1M
RWxlbWVudE9ySW50ID0gVmFyaWFudDxSZWZQdHI8SFRNTEVsZW1lbnQ+LCBpbnQ+OworICAgIHVz
aW5nIE9wdGlvbk9yT3B0R3JvdXBFbGVtZW50ID0gc3RkOjp2YXJpYW50PFJlZlB0cjxIVE1MT3B0
aW9uRWxlbWVudD4sIFJlZlB0cjxIVE1MT3B0R3JvdXBFbGVtZW50Pj47CisgICAgdXNpbmcgSFRN
TEVsZW1lbnRPckludCA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8SFRNTEVsZW1lbnQ+LCBpbnQ+Owog
ICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IGFkZChjb25zdCBPcHRpb25Pck9w
dEdyb3VwRWxlbWVudCYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8SFRNTEVsZW1lbnRPckludD4mIGJl
Zm9yZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmUoaW50IGluZGV4KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDI1NGNjMGQ2OTIzYjUzMDk1
Nzk4YTdkNjhlZTI4NGVjMDE3MmEzOGYuLmFjMGFhOTNlODUyODY4OGU1MWE3OGM0Yjk5NTVlYjRi
NDEzNTYxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTUy
LDggKzUyLDggQEAgcHVibGljOgogCiAgICAgYm9vbCB1c2VzTWVudUxpc3QoKSBjb25zdDsKIAot
ICAgIHVzaW5nIE9wdGlvbk9yT3B0R3JvdXBFbGVtZW50ID0gVmFyaWFudDxSZWZQdHI8SFRNTE9w
dGlvbkVsZW1lbnQ+LCBSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVudD4+OwotICAgIHVzaW5nIEhU
TUxFbGVtZW50T3JJbnQgPSBWYXJpYW50PFJlZlB0cjxIVE1MRWxlbWVudD4sIGludD47CisgICAg
dXNpbmcgT3B0aW9uT3JPcHRHcm91cEVsZW1lbnQgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxP
cHRpb25FbGVtZW50PiwgUmVmUHRyPEhUTUxPcHRHcm91cEVsZW1lbnQ+PjsKKyAgICB1c2luZyBI
VE1MRWxlbWVudE9ySW50ID0gc3RkOjp2YXJpYW50PFJlZlB0cjxIVE1MRWxlbWVudD4sIGludD47
CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gYWRkKGNvbnN0IE9wdGlvbk9y
T3B0R3JvdXBFbGVtZW50JiwgY29uc3Qgc3RkOjpvcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiYg
YmVmb3JlKTsKIAogICAgIHVzaW5nIE5vZGU6OnJlbW92ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRt
YXAuaAppbmRleCA4ZDc4MTg2YzBhYTg0NTc1YzcxYjkyZmExOGExYzBmOWEyNTgwYjQ5Li4xNGU4
Y2YyZTgwMjdlZTVkZTNmYTA3MWNkZWRhYTUzYjM0ZjE5OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUJpdG1hcC5oCkBAIC02MCw3ICs2MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNs
YXNzIERPTVByb21pc2VEZWZlcnJlZDsKIGNsYXNzIEltYWdlQml0bWFwIGZpbmFsIDogcHVibGlj
IFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8SW1hZ2VCaXRtYXA+IHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKEltYWdlQml0bWFwKTsKIHB1YmxpYzoKLSAgICB1c2luZyBT
b3VyY2UgPSBWYXJpYW50PAorICAgIHVzaW5nIFNvdXJjZSA9IHN0ZDo6dmFyaWFudDwKICAgICAg
ICAgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+LAogI2lmIEVOQUJMRShWSURFTykKICAgICAgICAg
UmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9PZmZzY3JlZW5DYW52YXMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFz
LmgKaW5kZXggNjE3YWQwYzEwYTI1OTMzMThhYzM2NmQ1OGQwMjFiNDAxZjAyMjAzZi4uMzU3NTg2
ZTc5NjkxZGMyNjAyYmFkZWU2NzI3NzBmODAxYzE3YmExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09m
ZnNjcmVlbkNhbnZhcy5oCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOwogCi11c2luZyBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0ID0gVmFyaWFu
dDwKK3VzaW5nIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6OnZhcmlhbnQ8CiAjaWYg
RU5BQkxFKFdFQkdMKQogICAgIFJlZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+LAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTFNlYXJjaFBhcmFtcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1VSTFNlYXJjaFBhcmFtcy5jcHAKaW5kZXggZjU0ZjQxZTE5Y2Y3
YTdlNGQ1NTQwYzY0NjY2MmY4ZWM1ZmJkM2QzNy4uNjYzYjgzYzQ1ODY0OTgxMWEwNDg0YmMwOGU3
YTU0M2UwMDliYjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQ
YXJhbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmNwcApA
QCAtNDEsNyArNDEsNyBAQCBVUkxTZWFyY2hQYXJhbXM6OlVSTFNlYXJjaFBhcmFtcyhjb25zdCBW
ZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PgogewogfQogCi1FeGNlcHRp
b25PcjxSZWY8VVJMU2VhcmNoUGFyYW1zPj4gVVJMU2VhcmNoUGFyYW1zOjpjcmVhdGUoVmFyaWFu
dDxWZWN0b3I8VmVjdG9yPFN0cmluZz4+LCBWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5n
LCBTdHJpbmc+PiwgU3RyaW5nPiYmIHZhcmlhbnQpCitFeGNlcHRpb25PcjxSZWY8VVJMU2VhcmNo
UGFyYW1zPj4gVVJMU2VhcmNoUGFyYW1zOjpjcmVhdGUoc3RkOjp2YXJpYW50PFZlY3RvcjxWZWN0
b3I8U3RyaW5nPj4sIFZlY3RvcjxXVEY6OktleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+LCBT
dHJpbmc+JiYgdmFyaWFudCkKIHsKICAgICBhdXRvIHZpc2l0b3IgPSBXVEY6Om1ha2VWaXNpdG9y
KFsmXShjb25zdCBWZWN0b3I8VmVjdG9yPFN0cmluZz4+JiB2ZWN0b3IpIC0+IEV4Y2VwdGlvbk9y
PFJlZjxVUkxTZWFyY2hQYXJhbXM+PiB7CiAgICAgICAgIFZlY3RvcjxXVEY6OktleVZhbHVlUGFp
cjxTdHJpbmcsIFN0cmluZz4+IHBhaXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9VUkxTZWFyY2hQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1z
LmgKaW5kZXggZGFhOTIyMzBmNzA1ODJjYjc3ZWE4NmJkNDc5YjVhZTYxZDYyYzU2NS4uODg1ZTY0
ZjhkNGQxODRkZGVjN2Q2MTI2MmI4YWM2NTdmNjdiZDE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VS
TFNlYXJjaFBhcmFtcy5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIERPTVVSTDsKIAogY2xhc3Mg
VVJMU2VhcmNoUGFyYW1zIDogcHVibGljIFJlZkNvdW50ZWQ8VVJMU2VhcmNoUGFyYW1zPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxVUkxTZWFyY2hQYXJhbXM+PiBjcmVh
dGUoVmFyaWFudDxWZWN0b3I8VmVjdG9yPFN0cmluZz4+LCBWZWN0b3I8V1RGOjpLZXlWYWx1ZVBh
aXI8U3RyaW5nLCBTdHJpbmc+PiwgU3RyaW5nPiYmKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8
UmVmPFVSTFNlYXJjaFBhcmFtcz4+IGNyZWF0ZShzdGQ6OnZhcmlhbnQ8VmVjdG9yPFZlY3RvcjxT
dHJpbmc+PiwgVmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4sIFN0cmlu
Zz4mJik7CiAgICAgc3RhdGljIFJlZjxVUkxTZWFyY2hQYXJhbXM+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHN0cmluZywgRE9NVVJMKiBhc3NvY2lhdGVkVVJMKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVVJMU2VhcmNoUGFyYW1zKHN0cmluZywgYXNzb2NpYXRlZFVSTCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oCmluZGV4IGExNDMxMzg5OTQ0YTI0OGNkZmEyN2IwZjBhMjE5ODU4OTIy
NTU5M2YuLmIwYjJiOTI2MWYzZDYwMjk2MDcxN2VkNWRhODQwZTJlNWYyYjMwZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlLmgKQEAgLTY1LDcgKzY1LDcgQEAgY2xhc3MgVGV4dE1ldHJpY3M7CiAKIHN0cnVj
dCBET01NYXRyaXgyREluaXQ7CiAKLXVzaW5nIENhbnZhc0ltYWdlU291cmNlID0gVmFyaWFudDxS
ZWZQdHI8SFRNTEltYWdlRWxlbWVudD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4sIFJlZlB0
cjxJbWFnZUJpdG1hcD4KK3VzaW5nIENhbnZhc0ltYWdlU291cmNlID0gc3RkOjp2YXJpYW50PFJl
ZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiwgUmVmUHRy
PEltYWdlQml0bWFwPgogI2lmIEVOQUJMRShDU1NfVFlQRURfT00pCiAgICAgLCBSZWZQdHI8Q1NT
U3R5bGVJbWFnZVZhbHVlPgogI2VuZGlmCkBAIC0xODIsNyArMTgyLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZHJhd0ltYWdlRnJvbVJlY3QoSFRNTEltYWdlRWxlbWVudCYsIGZsb2F0IHN4ID0gMCwg
ZmxvYXQgc3kgPSAwLCBmbG9hdCBzdyA9IDAsIGZsb2F0IHNoID0gMCwgZmxvYXQgZHggPSAwLCBm
bG9hdCBkeSA9IDAsIGZsb2F0IGR3ID0gMCwgZmxvYXQgZGggPSAwLCBjb25zdCBTdHJpbmcmIGNv
bXBvc2l0ZU9wZXJhdGlvbiA9IGVtcHR5U3RyaW5nKCkpOwogICAgIHZvaWQgY2xlYXJDYW52YXMo
KTsKIAotICAgIHVzaW5nIFN0eWxlVmFyaWFudCA9IFZhcmlhbnQ8U3RyaW5nLCBSZWZQdHI8Q2Fu
dmFzR3JhZGllbnQ+LCBSZWZQdHI8Q2FudmFzUGF0dGVybj4+OworICAgIHVzaW5nIFN0eWxlVmFy
aWFudCA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFJlZlB0cjxDYW52YXNHcmFkaWVudD4sIFJlZlB0
cjxDYW52YXNQYXR0ZXJuPj47CiAgICAgU3R5bGVWYXJpYW50IHN0cm9rZVN0eWxlKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRTdHJva2VTdHlsZShTdHlsZVZhcmlhbnQmJik7CiAgICAgU3R5bGVWYXJp
YW50IGZpbGxTdHlsZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0
eWxlLmgKaW5kZXggYTU0MDI4MGUyOGQ2ZGQxMDc2MWQzOWEzZTQ4NjU4ODg4Mzk3ODY5Ni4uMDM1
MTc5MGFkZGVmMGFlNDQzN2ExZWVkNzZmYmIxNDU2YWJhZmFkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAKICAg
ICBDYW52YXNTdHlsZShDdXJyZW50Q29sb3IpOwogCi0gICAgVmFyaWFudDxJbnZhbGlkLCBDb2xv
ciwgUmVmUHRyPENhbnZhc0dyYWRpZW50PiwgUmVmUHRyPENhbnZhc1BhdHRlcm4+LCBDdXJyZW50
Q29sb3I+IG1fc3R5bGU7CisgICAgc3RkOjp2YXJpYW50PEludmFsaWQsIENvbG9yLCBSZWZQdHI8
Q2FudmFzR3JhZGllbnQ+LCBSZWZQdHI8Q2FudmFzUGF0dGVybj4sIEN1cnJlbnRDb2xvcj4gbV9z
dHlsZTsKIH07CiAKIGJvb2wgaXNDdXJyZW50Q29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xv
clN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJS
ZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmgKaW5kZXggYTlmZjBmYjQxMWJmOGUxMzk0Yjk5OTIwMmE4Mzg1MzlmZjY5
ODFiYy4uMjdmOGIzMjhhMzMzMjAzYzRjMTFhYjIzZTk4ODU4MGMxMWUxMjc4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApA
QCAtNzgsOSArNzgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXhTdG9yYWdlM0QoR0NHTGVudW0g
dGFyZ2V0LCBHQ0dMc2l6ZWkgbGV2ZWxzLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTHNp
emVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMc2l6ZWkgZGVwdGgpOwogCiAjaWYgRU5B
QkxFKFZJREVPKQotICAgIHVzaW5nIFRleEltYWdlU291cmNlID0gV1RGOjpWYXJpYW50PFJlZlB0
cjxJbWFnZUJpdG1hcD4sIFJlZlB0cjxJbWFnZURhdGE+LCBSZWZQdHI8SFRNTEltYWdlRWxlbWVu
dD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4sIFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50Pj47
CisgICAgdXNpbmcgVGV4SW1hZ2VTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEltYWdlQml0
bWFwPiwgUmVmUHRyPEltYWdlRGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVmUHRy
PEhUTUxDYW52YXNFbGVtZW50PiwgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+PjsKICNlbHNlCi0g
ICAgdXNpbmcgVGV4SW1hZ2VTb3VyY2UgPSBXVEY6OlZhcmlhbnQ8UmVmUHRyPEltYWdlQml0bWFw
PiwgUmVmUHRyPEltYWdlRGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50Pj47CisgICAgdXNpbmcgVGV4SW1hZ2VTb3VyY2UgPSBzdGQ6OnZhcmlh
bnQ8UmVmUHRyPEltYWdlQml0bWFwPiwgUmVmUHRyPEltYWdlRGF0YT4sIFJlZlB0cjxIVE1MSW1h
Z2VFbGVtZW50PiwgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50Pj47CiAjZW5kaWYKIAogICAgIC8v
IE11c3Qgb3ZlcnJpZGUgdGhlIFdlYkdMIDEuMCBzaWduYXR1cmVzIHRvIGFkZCBleHRyYSB2YWxp
ZGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnku
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmgKaW5kZXggNDRjMDBlMzgx
ZWJkZjg1N2FmYWIzZDM3ZjQ3NGRhNWUxYjRhODA4Yi4uMGY4ODBkYWE2YTU4YjYxODhmZTc5MWQ3
ZTMyODAzMTUxYmUzMWQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xBbnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCkBA
IC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s7CiBjbGFzcyBXZWJH
TFZlcnRleEFycmF5T2JqZWN0OwogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKIAot
dXNpbmcgV2ViR0xBbnkgPSBWYXJpYW50PAordXNpbmcgV2ViR0xBbnkgPSBzdGQ6OnZhcmlhbnQ8
CiAgICAgc3RkOjpudWxscHRyX3QsCiAgICAgYm9vbCwKICAgICBpbnQsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE11bHRpRHJhdy5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xNdWx0aURyYXcuaAppbmRleCA2ZTJjYmQ4MGE1M2JiZWNjY2Uw
ZmE1NTM3MDdiYWM1ZDllMjA5ZWQ5Li42NTkyOWY1MWNhYjhiZjg5MjdiN2M5MGJlOTZjMThlNDgz
MTgxZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE11bHRp
RHJhdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTXVsdGlEcmF3LmgK
QEAgLTM3LDcgKzM3LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHlwZWRBcnJh
eSwgY2xhc3MgRGF0YVR5cGU+CiAgICAgY2xhc3MgVHlwZWRMaXN0IHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIHVzaW5nIExpc3RUeXBlT3B0aW9ucyA9IFZhcmlhbnQ8UmVmUHRyPFR5cGVkQXJyYXk+
LCBWZWN0b3I8RGF0YVR5cGU+PjsKKyAgICAgICAgdXNpbmcgTGlzdFR5cGVPcHRpb25zID0gc3Rk
Ojp2YXJpYW50PFJlZlB0cjxUeXBlZEFycmF5PiwgVmVjdG9yPERhdGFUeXBlPj47CiAKICAgICAg
ICAgVHlwZWRMaXN0KExpc3RUeXBlT3B0aW9ucyYmIHZhcmlhbnQpCiAgICAgICAgICAgICA6IG1f
dmFyaWFudChXVEZNb3ZlKHZhcmlhbnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDgzNDc1MTlkYTkyMThl
Zjc1MmQ2MWJhYmUyYWIyYWRhZjU3OTI1YTEuLmI3MTcwZDJiZDcxZjExMTc1ODg2ZjExMzdkMTFl
MjIyYjQzMjUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTEyNCw5ICsxMjQsOSBAQCBjbGFzcyBIVE1M
VmlkZW9FbGVtZW50OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoT0ZGU0NSRUVOX0NBTlZBUykKLXVz
aW5nIFdlYkdMQ2FudmFzID0gV1RGOjpWYXJpYW50PFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4s
IFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+PjsKK3VzaW5nIFdlYkdMQ2FudmFzID0gc3RkOjp2YXJp
YW50PFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4sIFJlZlB0cjxPZmZzY3JlZW5DYW52YXM+PjsK
ICNlbHNlCi11c2luZyBXZWJHTENhbnZhcyA9IFdURjo6VmFyaWFudDxSZWZQdHI8SFRNTENhbnZh
c0VsZW1lbnQ+PjsKK3VzaW5nIFdlYkdMQ2FudmFzID0gc3RkOjp2YXJpYW50PFJlZlB0cjxIVE1M
Q2FudmFzRWxlbWVudD4+OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAt
MTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGJsZW5kRnVuYyhHQ0dMZW51bSBzZmFj
dG9yLCBHQ0dMZW51bSBkZmFjdG9yKTsKICAgICB2b2lkIGJsZW5kRnVuY1NlcGFyYXRlKEdDR0xl
bnVtIHNyY1JHQiwgR0NHTGVudW0gZHN0UkdCLCBHQ0dMZW51bSBzcmNBbHBoYSwgR0NHTGVudW0g
ZHN0QWxwaGEpOwogCi0gICAgdXNpbmcgQnVmZmVyRGF0YVNvdXJjZSA9IFdURjo6VmFyaWFudDxS
ZWZQdHI8QXJyYXlCdWZmZXI+LCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3Pj47CisgICAgdXNpbmcg
QnVmZmVyRGF0YVNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8QXJyYXlCdWZmZXI+LCBSZWZQ
dHI8QXJyYXlCdWZmZXJWaWV3Pj47CiAgICAgdm9pZCBidWZmZXJEYXRhKEdDR0xlbnVtIHRhcmdl
dCwgbG9uZyBsb25nIHNpemUsIEdDR0xlbnVtIHVzYWdlKTsKICAgICB2b2lkIGJ1ZmZlckRhdGEo
R0NHTGVudW0gdGFyZ2V0LCBzdGQ6Om9wdGlvbmFsPEJ1ZmZlckRhdGFTb3VyY2U+JiYsIEdDR0xl
bnVtIHVzYWdlKTsKICAgICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0NHTGVudW0gdGFyZ2V0LCBsb25n
IGxvbmcgb2Zmc2V0LCBCdWZmZXJEYXRhU291cmNlJiYpOwpAQCAtMjgwLDkgKzI4MCw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdGV4SW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xp
bnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsZm9ybWF0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xz
aXplaSBoZWlnaHQsIEdDR0xpbnQgYm9yZGVyLCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5
cGUsIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+JiYpOwogCiAjaWYgRU5BQkxFKFZJREVPKQotICAg
IHVzaW5nIFRleEltYWdlU291cmNlID0gV1RGOjpWYXJpYW50PFJlZlB0cjxJbWFnZUJpdG1hcD4s
IFJlZlB0cjxJbWFnZURhdGE+LCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4sIFJlZlB0cjxIVE1M
Q2FudmFzRWxlbWVudD4sIFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50Pj47CisgICAgdXNpbmcgVGV4
SW1hZ2VTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEltYWdlQml0bWFwPiwgUmVmUHRyPElt
YWdlRGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVmUHRyPEhUTUxDYW52YXNFbGVt
ZW50PiwgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+PjsKICNlbHNlCi0gICAgdXNpbmcgVGV4SW1h
Z2VTb3VyY2UgPSBXVEY6OlZhcmlhbnQ8UmVmUHRyPEltYWdlQml0bWFwPiwgUmVmUHRyPEltYWdl
RGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50
Pj47CisgICAgdXNpbmcgVGV4SW1hZ2VTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEltYWdl
Qml0bWFwPiwgUmVmUHRyPEltYWdlRGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVm
UHRyPEhUTUxDYW52YXNFbGVtZW50Pj47CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgRXhjZXB0aW9u
T3I8dm9pZD4gdGV4SW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xl
bnVtIGludGVybmFsZm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIHN0ZDo6
b3B0aW9uYWw8VGV4SW1hZ2VTb3VyY2U+KTsKQEAgLTI5Nyw3ICsyOTcsNyBAQCBwdWJsaWM6CiAg
ICAgdGVtcGxhdGUgPGNsYXNzIFR5cGVkQXJyYXksIGNsYXNzIERhdGFUeXBlPgogICAgIGNsYXNz
IFR5cGVkTGlzdCB7CiAgICAgcHVibGljOgotICAgICAgICB1c2luZyBWYXJpYW50VHlwZSA9IFZh
cmlhbnQ8UmVmUHRyPFR5cGVkQXJyYXk+LCBWZWN0b3I8RGF0YVR5cGU+PjsKKyAgICAgICAgdXNp
bmcgVmFyaWFudFR5cGUgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFR5cGVkQXJyYXk+LCBWZWN0b3I8
RGF0YVR5cGU+PjsKIAogICAgICAgICBUeXBlZExpc3QoVmFyaWFudFR5cGUmJiB2YXJpYW50KQog
ICAgICAgICAgICAgOiBtX3ZhcmlhbnQoV1RGTW92ZSh2YXJpYW50KSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UcmFja0V2ZW50LmgKaW5kZXggZjdjZTA3NDFkMTY5Y2JmMGNkYjhmZTE0OGQ1ZTFm
Y2U2ZGQ3OGRhYS4uZDA2OWUyMjk2Mjk2Mjg1Njc2NzJiYmZiYmEzZjc2NDNjNjk5YjBhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0V2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0V2ZW50LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmFja0V2ZW50KHR5cGUsIGNhbkJ1
YmJsZSwgY2FuY2VsYWJsZSwgV1RGTW92ZSh0cmFjaykpKTsKICAgICB9CiAKLSAgICB1c2luZyBU
cmFja0V2ZW50VHJhY2sgPSBWYXJpYW50PFJlZlB0cjxWaWRlb1RyYWNrPiwgUmVmUHRyPEF1ZGlv
VHJhY2s+LCBSZWZQdHI8VGV4dFRyYWNrPj47CisgICAgdXNpbmcgVHJhY2tFdmVudFRyYWNrID0g
c3RkOjp2YXJpYW50PFJlZlB0cjxWaWRlb1RyYWNrPiwgUmVmUHRyPEF1ZGlvVHJhY2s+LCBSZWZQ
dHI8VGV4dFRyYWNrPj47CiAKICAgICBzdHJ1Y3QgSW5pdCA6IHB1YmxpYyBFdmVudEluaXQgewog
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFRyYWNrRXZlbnRUcmFjaz4gdHJhY2s7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuaAppbmRleCBjZWU4NGQwNTNlNDMwNTM2YmQ0YTQ0NDg2ZmQxOTMyNTli
OTMyMmZlLi43NDk2YzIyOTFlYzBjOWRhYWFjNTYyMGY1MjlkMjI2MTUyZDhiZjVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgflZUVEN1ZSgpOwogCiAgICAgZW51bSBBdXRvS2V5d29yZCB7IEF1dG8gfTsKLSAgICB1
c2luZyBMaW5lQW5kUG9zaXRpb25TZXR0aW5nID0gVmFyaWFudDxkb3VibGUsIEF1dG9LZXl3b3Jk
PjsKKyAgICB1c2luZyBMaW5lQW5kUG9zaXRpb25TZXR0aW5nID0gc3RkOjp2YXJpYW50PGRvdWJs
ZSwgQXV0b0tleXdvcmQ+OwogCiAgICAgdm9pZCBzZXRUcmFjayhUZXh0VHJhY2sqKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5oCmluZGV4IDI4ODFmMWEwNGY4
NjhkOWQxZTkzYTM5MGRlOTY2MWVlMDZlZjVjZGMuLjI0ZDdlMDE4M2U4YWE2MDM0MDRkYzhjMjgz
NzUwMDE2M2JlZDdjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2Fu
dmFzLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhcHBlbmRBY3Rp
b25TbmFwc2hvdElmTmVlZGVkKCk7CiAKLSAgICB1c2luZyBEdXBsaWNhdGVEYXRhVmFyaWFudCA9
IFZhcmlhbnQ8CisgICAgdXNpbmcgRHVwbGljYXRlRGF0YVZhcmlhbnQgPSBzdGQ6OnZhcmlhbnQ8
CiAgICAgICAgIFJlZlB0cjxDYW52YXNHcmFkaWVudD4sCiAgICAgICAgIFJlZlB0cjxDYW52YXNQ
YXR0ZXJuPiwKICAgICAgICAgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiwKQEAgLTEzOCw3ICsx
MzgsNyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1faWRlbnRpZmllcjsKIAotICAgIFZhcmlh
bnQ8CisgICAgc3RkOjp2YXJpYW50PAogICAgICAgICBzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPENh
bnZhc1JlbmRlcmluZ0NvbnRleHQ+LAogICAgICAgICBzdGQ6Om1vbm9zdGF0ZQogICAgID4gbV9j
b250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNo
YWRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQ
cm9ncmFtLmgKaW5kZXggOGRkOTgyYWQyMGM3N2MwNGExZWI4ZDRhYjhhZTRiNGExYWNlYTQ4MC4u
OGZkYWEzYTg5ZGZjNWNmZWJmMTIzN2Q0YzIyMjUxODdkODI1Mzk1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclByb2dyYW0uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCkBAIC03Myw3ICs3
Myw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1faWRlbnRpZmllcjsKICAgICBJbnNwZWN0b3JD
YW52YXMmIG1fY2FudmFzOwogCi0gICAgVmFyaWFudDwKKyAgICBzdGQ6OnZhcmlhbnQ8CiAjaWYg
RU5BQkxFKFdFQkdMKQogICAgICAgICBzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPFdlYkdMUHJvZ3Jh
bT4sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9JbmxpbmVJdGVyYXRvckJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0lubGluZUl0ZXJhdG9yQm94LmgKaW5kZXggZTA2ZGU4MjUyNGNhNjRiYmY1NzA5MWViYjg0MDdk
Y2NlZWZiYzgyMi4uOWM0NzEwYmJhN2ViYjM5MzA1N2NmMDdhNDE4NTk1ZDU4NDJmYzQwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9y
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJh
dG9yQm94LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RydWN0IEVuZEl0ZXJhdG9yIHsgfTsKIAogY2xh
c3MgQm94IHsKIHB1YmxpYzoKLSAgICB1c2luZyBQYXRoVmFyaWFudCA9IFZhcmlhbnQ8CisgICAg
dXNpbmcgUGF0aFZhcmlhbnQgPSBzdGQ6OnZhcmlhbnQ8CiAjaWYgRU5BQkxFKExBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpCiAgICAgICAgIEJveE1vZGVyblBhdGgsCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUu
aAppbmRleCAwNjJmMzMzYWEwM2JmZTdmMTlkYmYxZjA4MDAxMzNkZjk5OWY2ZWUxLi5mOGEyYjFi
NDI2NzhkOWM0ZGFlOTlhYjRlZmQ0NDQ5ZmY4NjA0OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oCkBAIC00MSw3
ICs0MSw3IEBAIHN0cnVjdCBFbmRMaW5lSXRlcmF0b3IgeyB9OwogCiBjbGFzcyBMaW5lIHsKIHB1
YmxpYzoKLSAgICB1c2luZyBQYXRoVmFyaWFudCA9IFZhcmlhbnQ8CisgICAgdXNpbmcgUGF0aFZh
cmlhbnQgPSBzdGQ6OnZhcmlhbnQ8CiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCiAgICAgICAgIExpbmVJdGVyYXRvck1vZGVyblBhdGgsCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAppbmRleCBkY2VmMGFkZWE3M2Iw
ZTk5MDQ1OGZhZGMyYzc1MjMwY2ZkYWZiOWRiLi5iNzU4OTFmZDQ5NTBmYzYzYzY3NGVmMDJmYWQ1
NjQyNjljNDA1MTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50Rmln
dXJlcywgU2hvdWxkU2FtcGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZSkgPSAwOwogCi0gICAgdXNpbmcgVmFsdWVQ
YXlsb2FkID0gVmFyaWFudDxTdHJpbmcsIHVpbnQ2NF90LCBpbnQ2NF90LCBib29sLCBkb3VibGU+
OworICAgIHVzaW5nIFZhbHVlUGF5bG9hZCA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIHVpbnQ2NF90
LCBpbnQ2NF90LCBib29sLCBkb3VibGU+OwogICAgIHVzaW5nIFZhbHVlRGljdGlvbmFyeSA9IEhh
c2hNYXA8U3RyaW5nLCBWYWx1ZVBheWxvYWQ+OwogCiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFZhbHVlRGljdGlvbmFyeSYsIFNob3VsZFNh
bXBsZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25P
YnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCmlu
ZGV4IDBiYzQxZmE5YjAwNGY5ZDFmMjZiZGYzMWE2M2M3ZDQxZjVlNzFmMmQuLjNlMWIyMDZiNWNk
ZjgzMTJlNzQzN2EzZmYwNGU5NDFmZDliN2Q5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0lu
dGVyc2VjdGlvbk9ic2VydmVyLmgKQEAgLTY3LDkgKzY3LDkgQEAgc3RydWN0IEludGVyc2VjdGlv
bk9ic2VydmVyRGF0YSB7CiBjbGFzcyBJbnRlcnNlY3Rpb25PYnNlcnZlciA6IHB1YmxpYyBSZWZD
b3VudGVkPEludGVyc2VjdGlvbk9ic2VydmVyPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEludGVy
c2VjdGlvbk9ic2VydmVyPiB7CiBwdWJsaWM6CiAgICAgc3RydWN0IEluaXQgewotICAgICAgICBz
dGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8RG9jdW1lbnQ+Pj4g
cm9vdDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPEVsZW1lbnQ+
LCBSZWZQdHI8RG9jdW1lbnQ+Pj4gcm9vdDsKICAgICAgICAgU3RyaW5nIHJvb3RNYXJnaW47Ci0g
ICAgICAgIFZhcmlhbnQ8ZG91YmxlLCBWZWN0b3I8ZG91YmxlPj4gdGhyZXNob2xkOworICAgICAg
ICBzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBWZWN0b3I8ZG91YmxlPj4gdGhyZXNob2xkOwogICAgIH07
CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEludGVyc2VjdGlvbk9ic2VydmVyPj4gY3Jl
YXRlKERvY3VtZW50JiwgUmVmPEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+JiYsIEluaXQm
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IGI1M2Y2OGU2MzBlMzIyZTk3NDRhNGJmYmM5MDdiOWVlYWUy
ZTUwM2MuLjY4MzcxNWEwZWJmMGM0ZjliYjk0MjNlZDI3OTc2ODcyZTBiYzYzMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC00NDAsNyArNDQwLDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhpcyBjYW4gcmV0
dXJuIG51bGxvcHQgaWYgdGhyb3R0bGluZyByZWFzb25zIHJlc3VsdCBpbiBhIGZyZXF1ZW5jeSBs
ZXNzIHRoYW4gb25lLCBpbiB3aGljaCBjYXNlCiAgICAgLy8gcHJlZmVycmVkUmVuZGVyaW5nVXBk
YXRlSW50ZXJ2YWwgcHJvdmlkZXMgdGhlIGZyZXF1ZW5jeS4KLSAgICAvLyBGSVhNRTogSGF2ZSBh
IHNpbmdsZSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBWYXJpYW50PD4uCisgICAgLy8gRklYTUU6
IEhhdmUgYSBzaW5nbGUgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc3RkOjp2YXJpYW50PD4uCiAg
ICAgc3RkOjpvcHRpb25hbDxGcmFtZXNQZXJTZWNvbmQ+IHByZWZlcnJlZFJlbmRlcmluZ1VwZGF0
ZUZyYW1lc1BlclNlY29uZCgpIGNvbnN0OwogICAgIFNlY29uZHMgcHJlZmVycmVkUmVuZGVyaW5n
VXBkYXRlSW50ZXJ2YWwoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCmluZGV4
IGM1MjA2OWZiMzljMjkwMGVmYTI1MzlkMDBiODVmYmQ0NDlkZjhlZWIuLjQyOTQ0ZjQxYTkwMDQ3
MTVkMTBmYzgwYWVlMjE5NWI0OTUwMDk1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgK
QEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJmb3JtYW5j
ZU1hcms+PiBtYXJrKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25zdCBTdHJpbmcmIG1hcmtOYW1l
LCBzdGQ6Om9wdGlvbmFsPFBlcmZvcm1hbmNlTWFya09wdGlvbnM+JiYpOwogICAgIHZvaWQgY2xl
YXJNYXJrcyhjb25zdCBTdHJpbmcmIG1hcmtOYW1lKTsKIAotICAgIHVzaW5nIFN0YXJ0T3JNZWFz
dXJlT3B0aW9ucyA9IFZhcmlhbnQ8U3RyaW5nLCBQZXJmb3JtYW5jZU1lYXN1cmVPcHRpb25zPjsK
KyAgICB1c2luZyBTdGFydE9yTWVhc3VyZU9wdGlvbnMgPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBQ
ZXJmb3JtYW5jZU1lYXN1cmVPcHRpb25zPjsKICAgICBFeGNlcHRpb25PcjxSZWY8UGVyZm9ybWFu
Y2VNZWFzdXJlPj4gbWVhc3VyZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgU3RyaW5nJiBt
ZWFzdXJlTmFtZSwgc3RkOjpvcHRpb25hbDxTdGFydE9yTWVhc3VyZU9wdGlvbnM+JiYsIGNvbnN0
IFN0cmluZyYgZW5kTWFyayk7CiAgICAgdm9pZCBjbGVhck1lYXN1cmVzKGNvbnN0IFN0cmluZyYg
bWVhc3VyZU5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlTWVhc3VyZU9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNZWFz
dXJlT3B0aW9ucy5oCmluZGV4IGIzNjc1YjBlMDgzYmU1MDE2NWQ5ZThlYTUyNzU0MzNhYWMxMzI5
MDMuLmFkOTA3ZTBjMzRiY2Y5ZjVjZTNhNDM1NTQxYzk0YzViOWQ0YzU4MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNZWFzdXJlT3B0aW9ucy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNZWFzdXJlT3B0aW9ucy5oCkBAIC0zMyw5ICsz
Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFBlcmZvcm1hbmNlTWVhc3VyZU9w
dGlvbnMgewogICAgIEpTQzo6SlNWYWx1ZSBkZXRhaWw7Ci0gICAgc3RkOjpvcHRpb25hbDxWYXJp
YW50PFN0cmluZywgZG91YmxlPj4gc3RhcnQ7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlh
bnQ8U3RyaW5nLCBkb3VibGU+PiBzdGFydDsKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZHVy
YXRpb247Ci0gICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PFN0cmluZywgZG91YmxlPj4gZW5kOwor
ICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgZG91YmxlPj4gZW5kOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1p
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCmlu
ZGV4IGQxYmNjZmE1OTJiYzUyNTIzZWViZDZmMGEwMzUyZGQwZjMxNGViNDEuLmM2YWYwZDk4MjAx
ZjE2YzY0NWRlYjY3ZjkxMjQ4YjUwOTZiYWQwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIFBlcmZv
cm1hbmNlVXNlclRpbWluZzo6Y2xlYXJNYXJrcyhjb25zdCBTdHJpbmcmIG1hcmtOYW1lKQogICAg
IGNsZWFyUGVyZm9ybWFuY2VFbnRyaWVzKG1fbWFya3NNYXAsIG1hcmtOYW1lKTsKIH0KIAotRXhj
ZXB0aW9uT3I8ZG91YmxlPiBQZXJmb3JtYW5jZVVzZXJUaW1pbmc6OmNvbnZlcnRNYXJrVG9UaW1l
c3RhbXAoY29uc3QgVmFyaWFudDxTdHJpbmcsIGRvdWJsZT4mIG1hcmspIGNvbnN0CitFeGNlcHRp
b25Pcjxkb3VibGU+IFBlcmZvcm1hbmNlVXNlclRpbWluZzo6Y29udmVydE1hcmtUb1RpbWVzdGFt
cChjb25zdCBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+JiBtYXJrKSBjb25zdAogewogICAg
IHJldHVybiBXVEY6OnN3aXRjaE9uKG1hcmssIFsmXShhdXRvJiB2YWx1ZSkgewogICAgICAgICBy
ZXR1cm4gY29udmVydE1hcmtUb1RpbWVzdGFtcCh2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuaAppbmRleCA1YmYyZWNlYWZlN2E3OWU3NTUyZDVlZWFm
MTZhMWIyNjc3MzA3ZWZjLi45ZThiNmQ0YzhjOTNhYjg4ZGM3NWQ0OGY5NDFhMDJjMDlhMjM0MTU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmgKQEAgLTQ5
LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJmb3JtYW5jZU1hcms+
PiBtYXJrKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25zdCBTdHJpbmcmIG1hcmtOYW1lLCBzdGQ6
Om9wdGlvbmFsPFBlcmZvcm1hbmNlTWFya09wdGlvbnM+JiYpOwogICAgIHZvaWQgY2xlYXJNYXJr
cyhjb25zdCBTdHJpbmcmIG1hcmtOYW1lKTsKIAotICAgIHVzaW5nIFN0YXJ0T3JNZWFzdXJlT3B0
aW9ucyA9IFZhcmlhbnQ8U3RyaW5nLCBQZXJmb3JtYW5jZU1lYXN1cmVPcHRpb25zPjsKKyAgICB1
c2luZyBTdGFydE9yTWVhc3VyZU9wdGlvbnMgPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBQZXJmb3Jt
YW5jZU1lYXN1cmVPcHRpb25zPjsKICAgICBFeGNlcHRpb25PcjxSZWY8UGVyZm9ybWFuY2VNZWFz
dXJlPj4gbWVhc3VyZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgU3RyaW5nJiBtZWFzdXJl
TmFtZSwgc3RkOjpvcHRpb25hbDxTdGFydE9yTWVhc3VyZU9wdGlvbnM+JiYsIGNvbnN0IFN0cmlu
ZyYgZW5kTWFyayk7CiAgICAgdm9pZCBjbGVhck1lYXN1cmVzKGNvbnN0IFN0cmluZyYgbWVhc3Vy
ZU5hbWUpOwogCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc1Jl
c3RyaWN0ZWRNYXJrTmFtZShjb25zdCBTdHJpbmcmIG1hcmtOYW1lKTsKIAogcHJpdmF0ZToKLSAg
ICBFeGNlcHRpb25Pcjxkb3VibGU+IGNvbnZlcnRNYXJrVG9UaW1lc3RhbXAoY29uc3QgVmFyaWFu
dDxTdHJpbmcsIGRvdWJsZT4mKSBjb25zdDsKKyAgICBFeGNlcHRpb25Pcjxkb3VibGU+IGNvbnZl
cnRNYXJrVG9UaW1lc3RhbXAoY29uc3Qgc3RkOjp2YXJpYW50PFN0cmluZywgZG91YmxlPiYpIGNv
bnN0OwogICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4gY29udmVydE1hcmtUb1RpbWVzdGFtcChjb25z
dCBTdHJpbmcmIG1hcmtOYW1lKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjxkb3VibGU+IGNvbnZl
cnRNYXJrVG9UaW1lc3RhbXAoZG91YmxlKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggNTAwOTI2MjU5
YTY3MzlmYWI4OGU3OTY2MTczMzNhMWM4NGZkMTlhNy4uMzRkOWVjM2ViN2YzNGVjNDlhZWU4YTkw
MTNlN2ViNzM5YWEyYTA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAg
ICAvLyBTaG91bGQgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBnaXZlbiBmcmFtZSB2aWV3IGhhcyBi
ZWVuIGxhaWQgb3V0LgogICAgIHZpcnR1YWwgdm9pZCBmcmFtZVZpZXdMYXlvdXRVcGRhdGVkKEZy
YW1lVmlldyYpIHsgfQogCi0gICAgdXNpbmcgTGF5b3V0Vmlld3BvcnRPcmlnaW5Pck92ZXJyaWRl
UmVjdCA9IFdURjo6VmFyaWFudDxzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+LCBzdGQ6Om9wdGlv
bmFsPEZsb2F0UmVjdD4+OworICAgIHVzaW5nIExheW91dFZpZXdwb3J0T3JpZ2luT3JPdmVycmlk
ZVJlY3QgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpvcHRpb25hbDxGbG9hdFBvaW50Piwgc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+PjsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb25jaWxlU2Nyb2xsaW5nU3Rh
dGUoRnJhbWVWaWV3JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IExheW91dFZpZXdwb3J0T3Jp
Z2luT3JPdmVycmlkZVJlY3QmLCBTY3JvbGxUeXBlLCBWaWV3cG9ydFJlY3RTdGFiaWxpdHksIFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pIHsgfQogCiAgICAgLy8gU2hvdWxkIGJlIGNhbGxl
ZCB3aGVuZXZlciB0aGUgc2V0IG9mIGZpeGVkIG9iamVjdHMgY2hhbmdlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmNwcAppbmRleCA1MzZmZmY5
YTNhOTljYjA2NmEwNGM5YjhhNzRkYmQ2YjgxYjhmMTYyLi5kM2U4MDQ5NWZmNzAzOThkZWJlMDIz
MjNmMzZiMGFhZWNmYThjNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFz
dGVib2FyZEN1c3RvbURhdGEuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIFZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPj4gY29weVBs
YXRmb3JtRGF0YShjb25zdCBWYXJpYW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+JiBvdGhl
cikKK3N0YXRpYyBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPj4gY29weVBs
YXRmb3JtRGF0YShjb25zdCBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPj4m
IG90aGVyKQogewogICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFN0cmluZz4ob3RoZXIp
KQogICAgICAgICByZXR1cm4geyBXVEY6OmdldDxTdHJpbmc+KG90aGVyKSB9OwpAQCAtMjY1LDcg
KzI2NSw3IEBAIHZvaWQgUGFzdGVib2FyZEN1c3RvbURhdGE6OmZvckVhY2hDdXN0b21TdHJpbmco
RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIHR5cGUsCiAgICAgfQogfQogCi12b2lkIFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpmb3JFYWNoUGxhdGZvcm1TdHJpbmdPckJ1ZmZlcihGdW5jdGlvbjx2
b2lkKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVmFyaWFudDxTdHJpbmcsIFJlZjxTaGFyZWRC
dWZmZXI+PiYgZGF0YSk+JiYgZnVuY3Rpb24pIGNvbnN0Cit2b2lkIFBhc3RlYm9hcmRDdXN0b21E
YXRhOjpmb3JFYWNoUGxhdGZvcm1TdHJpbmdPckJ1ZmZlcihGdW5jdGlvbjx2b2lkKGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3Qgc3RkOjp2YXJpYW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+
JiBkYXRhKT4mJiBmdW5jdGlvbikgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9k
YXRhKSB7CiAgICAgICAgIGF1dG8mIGRhdGEgPSBlbnRyeS5wbGF0Zm9ybURhdGE7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaAppbmRleCA0MmY5MmQ0
MGJiZTZkMGJkNTM3MDljYTAwYjIwMmY5MWNhYmI1NDA3Li5hZmFiZjYyOTQxZGE3ZTZjZWNmYTY1
ZjBiYjRiMzU3ZGFlNDcyMTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmRDdXN0b21EYXRhLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgICAgIFN0
cmluZyB0eXBlOwogICAgICAgICBTdHJpbmcgY3VzdG9tRGF0YTsKLSAgICAgICAgVmFyaWFudDxT
dHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PiBwbGF0Zm9ybURhdGE7CisgICAgICAgIHN0ZDo6dmFy
aWFudDxTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PiBwbGF0Zm9ybURhdGE7CiAgICAgfTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIFBhc3RlYm9hcmRDdXN0b21EYXRhKCk7CkBAIC04Myw3ICs4Myw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZm9yRWFjaFR5cGUoRnVuY3Rpb248dm9pZChjb25zdCBT
dHJpbmcmKT4mJikgY29uc3Q7CiAgICAgdm9pZCBmb3JFYWNoUGxhdGZvcm1TdHJpbmcoRnVuY3Rp
b248dm9pZChjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk+JiYpIGNvbnN0
OwotICAgIHZvaWQgZm9yRWFjaFBsYXRmb3JtU3RyaW5nT3JCdWZmZXIoRnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVy
Pj4mIGRhdGEpPiYmKSBjb25zdDsKKyAgICB2b2lkIGZvckVhY2hQbGF0Zm9ybVN0cmluZ09yQnVm
ZmVyKEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBzdGQ6OnZhcmlhbnQ8
U3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPj4mIGRhdGEpPiYmKSBjb25zdDsKICAgICB2b2lkIGZv
ckVhY2hDdXN0b21TdHJpbmcoRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgZGF0YSk+JiYpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNEYXRhKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCmluZGV4IGE3M2JiOTk1MGY1NWFmNTll
MTE5NjBkNGJlM2JhNWQwOGU0YmNhNzIuLjcyY2U4ZjM2NWNlNWQzZjVjM2VmNzEyMjE1NmI2YmZm
YjYwZTViMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCkBAIC0xODIs
NyArMTgyLDcgQEAgcHVibGljOgogICAgICAgICBEYXRhU2VnbWVudChQcm92aWRlciYmIHByb3Zp
ZGVyKQogICAgICAgICAgICAgOiBtX2ltbXV0YWJsZURhdGEoV1RGTW92ZShwcm92aWRlcikpIHsg
fQogCi0gICAgICAgIFZhcmlhbnQ8VmVjdG9yPHVpbnQ4X3Q+LAorICAgICAgICBzdGQ6OnZhcmlh
bnQ8VmVjdG9yPHVpbnQ4X3Q+LAogI2lmIFVTRShDRikKICAgICAgICAgICAgIFJldGFpblB0cjxD
RkRhdGFSZWY+LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgKaW5kZXggMmJhNTg1YzljMDU2NzExMWQ3NTcw
OWQ4OTdjZDdjYjk4MDM2MzI0MC4uNDhjY2U5ZDc3NTlhMjAwNDQ2NGU0N2U0ODU2NWZjOTg5ZmZm
YzA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U3RyZWFtRGVzY3JpcHRpb24uaApAQCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgUGxhdGZvcm1EZXNj
cmlwdGlvbiB7CiAgICAgICAgIENBQXVkaW9TdHJlYW1CYXNpY1R5cGUsCiAgICAgICAgIEdTdHJl
YW1lckF1ZGlvU3RyZWFtRGVzY3JpcHRpb24sCiAgICAgfSB0eXBlOwotICAgIFZhcmlhbnQ8c3Rk
OjpudWxscHRyX3QsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+IGRlc2NyaXB0
aW9uOworICAgIHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgY29uc3QgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uKj4gZGVzY3JpcHRpb247CiB9OwogCiBjbGFzcyBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5oCmluZGV4IDU2ODE1MjgxNzJhMmIxNGM3MDU5NmZkMDBhYWJjMjcwNzk1YTVj
ZWQuLmE1ODRiNmNkMjY2YjA5ODA5MDI1NGQ3ZGNiZGRiZjYwZDkzMzFmYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaApAQCAtNDYs
NyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVBsYXllcjsKIAogdXNp
bmcgS2V5SURUeXBlID0gVmVjdG9yPHVpbnQ4X3Q+OwotdXNpbmcgS2V5SGFuZGxlVmFsdWVWYXJp
YW50ID0gVmFyaWFudDwKK3VzaW5nIEtleUhhbmRsZVZhbHVlVmFyaWFudCA9IHN0ZDo6dmFyaWFu
dDwKICAgICBWZWN0b3I8dWludDhfdD4KICNpZiBFTkFCTEUoVEhVTkRFUikKICAgICAsIEJveFB0
cjxPcGVuQ0RNU2Vzc2lvbj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0RlY29kaW5nT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRGVjb2RpbmdPcHRpb25zLmgKaW5kZXggY2EwNjVjMzYyMWU2YzZkMmU1MTUwNTk4ODg2YTEx
MDIzYWUxNTQxMi4uNDRmMDAyMTMwMzkwMGNjODczODhjZjFmMDRkNWU0NmY4YjVmZGE5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGVjb2RpbmdPcHRpb25z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGVjb2RpbmdPcHRpb25z
LmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBwcml2YXRlOgogICAgIC8vIC0gQXN5bmNocm9ub3VzICsg
YW55U2l6ZTogRGVjb2RpbmdNb2RlOjpBc3luY2hyb25vdXMKICAgICAvLyAtIEFzeW5jaHJvbm91
cyArIGludHJpbnNpY1NpemU6IGFuIGVtcHR5IHN0ZDo6b3B0aW9uYWw8SW50U2l6ZT4+CiAgICAg
Ly8gLSBBc3luY2hyb25vdXMgKyBzaXplRm9yRHJhd2luZzogYSBub25lIGVtcHR5IHN0ZDo6b3B0
aW9uYWw8SW50U2l6ZT4+Ci0gICAgdXNpbmcgRGVjb2RpbmdNb2RlT3JTaXplID0gVmFyaWFudDxE
ZWNvZGluZ01vZGUsIHN0ZDo6b3B0aW9uYWw8SW50U2l6ZT4+OworICAgIHVzaW5nIERlY29kaW5n
TW9kZU9yU2l6ZSA9IHN0ZDo6dmFyaWFudDxEZWNvZGluZ01vZGUsIHN0ZDo6b3B0aW9uYWw8SW50
U2l6ZT4+OwogICAgIERlY29kaW5nTW9kZU9yU2l6ZSBtX2RlY29kaW5nTW9kZU9yU2l6ZTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlRGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YXNjYWRlRGVzY3JpcHRpb24uaAppbmRleCBlY2VlYzBjM2Q4MTllMjA0ODE1NzU1MmY4MDVlZWNh
ZDc3MDBjNWRjLi44ODI0MjEwMWQ0ZjQ0NzMzN2I0ODMyNDUyOTllNGYyYWQ3MWVmYTQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2Ny
aXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGVEZXNjcmlwdGlvbi5oCkBAIC00Myw3ICs0Myw3IEBAIHR5cGVkZWYgRm9udEZhbWlseVNwZWNp
ZmljYXRpb25Db3JlVGV4dCBGb250RmFtaWx5UGxhdGZvcm1TcGVjaWZpY2F0aW9uOwogdHlwZWRl
ZiBGb250RmFtaWx5U3BlY2lmaWNhdGlvbk51bGwgRm9udEZhbWlseVBsYXRmb3JtU3BlY2lmaWNh
dGlvbjsKICNlbmRpZgogCi10eXBlZGVmIFZhcmlhbnQ8QXRvbVN0cmluZywgRm9udEZhbWlseVBs
YXRmb3JtU3BlY2lmaWNhdGlvbj4gRm9udEZhbWlseVNwZWNpZmljYXRpb247Cit0eXBlZGVmIHN0
ZDo6dmFyaWFudDxBdG9tU3RyaW5nLCBGb250RmFtaWx5UGxhdGZvcm1TcGVjaWZpY2F0aW9uPiBG
b250RmFtaWx5U3BlY2lmaWNhdGlvbjsKIAogY2xhc3MgRm9udENhc2NhZGVEZXNjcmlwdGlvbiA6
IHB1YmxpYyBGb250RGVzY3JpcHRpb24gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKaW5kZXggNWE5MmNlMTA2YmNhNzhlYWQzOTdjYmY0MjMy
NzFmMWEwOWYxMjY0Zi4uODQwMmE3MDU5NTdmZWFmMWJhODNhOTViMTMyOWFiZjQyMmI2NTNjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCkBAIC0xMDAs
NyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxDb25pY0RhdGE+IGRlY29kZShEZWNvZGVyJik7CiAgICAgfTsK
IAotICAgIHVzaW5nIERhdGEgPSBWYXJpYW50PExpbmVhckRhdGEsIFJhZGlhbERhdGEsIENvbmlj
RGF0YT47CisgICAgdXNpbmcgRGF0YSA9IHN0ZDo6dmFyaWFudDxMaW5lYXJEYXRhLCBSYWRpYWxE
YXRhLCBDb25pY0RhdGE+OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxHcmFkaWVu
dD4gY3JlYXRlKERhdGEmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0lubGluZVBhdGhEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbmxpbmVQYXRoRGF0YS5oCmluZGV4IDAzMmJiYTg5YzAxYzk4YzMzOWI0YTc1YzFlYTU4
YTk0YjRjZGUwY2EuLjkyODg2ZDVmOGVhNmY3ZjRmODU3Y2M1MjRkMDIwNGQ4YWJlYmI1YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lubGluZVBhdGhEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5saW5lUGF0aERhdGEu
aApAQCAtMjAyLDcgKzIwMiw3IEBAIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0ZDo6b3B0aW9u
YWw8QmV6aWVyQ3VydmVEYXRhPiBCZXppZXJDdXJ2ZURhdGE6OmRlY29kZShECiAgICAgcmV0dXJu
IGRhdGE7CiB9CiAKLXVzaW5nIElubGluZVBhdGhEYXRhID0gVmFyaWFudDxzdGQ6Om1vbm9zdGF0
ZSwgTW92ZURhdGEsIExpbmVEYXRhLCBBcmNEYXRhLCBRdWFkQ3VydmVEYXRhLCBCZXppZXJDdXJ2
ZURhdGE+OwordXNpbmcgSW5saW5lUGF0aERhdGEgPSBzdGQ6OnZhcmlhbnQ8c3RkOjptb25vc3Rh
dGUsIE1vdmVEYXRhLCBMaW5lRGF0YSwgQXJjRGF0YSwgUXVhZEN1cnZlRGF0YSwgQmV6aWVyQ3Vy
dmVEYXRhPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlci5o
CmluZGV4IGRlMjgyODk1MzI4YzZlYWUwNTljNDZiZTkzMDcyMzIzMDExMTcxNDUuLmZkNmQxYjA3
MWY4NmQ0MWQwMmYwMDFiYzM3YzY4YWE5MWNlODdlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlci5o
CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgc2l6ZV90IHJlYWQoc2l6ZV90IHBv
c2l0aW9uLCBzaXplX3QsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uKSBjb25zdDsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFZhcmlhbnQ8CisgICAgICAgIHN0ZDo6dmFyaWFudDwKICNpZiBIQVZFKE1U
X1BMVUdJTl9GT1JNQVRfUkVBREVSKQogICAgICAgICAgICAgUmV0YWluUHRyPE1UUGx1Z2luQnl0
ZVNvdXJjZVJlZj4sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaAppbmRleCA2
OGExMjAwMGUyNGU2OThkZjBhYzk0OTA1YTcxNzZlMGNiMTBmMWMzLi5mZTgwMGY1NWFmYWMwNzZm
ZTg0ZWJlNzkyNWYyY2Y2NDA0YmY4OTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5o
CkBAIC0yODgsNyArMjg4LDcgQEAgcHJpdmF0ZToKICAgICBVbmlxdWVSZWY8U2VnbWVudFJlYWRl
cj4gbV9yZWFkZXI7CiAKICAgICBWZWN0b3I8VW5pcXVlUmVmPFRyYWNrRGF0YT4+IG1fdHJhY2tz
OwotICAgIHVzaW5nIEJsb2NrVmFyaWFudCA9IFZhcmlhbnQ8d2VibTo6QmxvY2ssIHdlYm06OlNp
bXBsZUJsb2NrPjsKKyAgICB1c2luZyBCbG9ja1ZhcmlhbnQgPSBzdGQ6OnZhcmlhbnQ8d2VibTo6
QmxvY2ssIHdlYm06OlNpbXBsZUJsb2NrPjsKICAgICBzdGQ6Om9wdGlvbmFsPEJsb2NrVmFyaWFu
dD4gbV9jdXJyZW50QmxvY2s7CiAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbV9yZXdpbmRU
b1Bvc2l0aW9uOwogICAgIGZsb2F0IG1fbWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24geyAyIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZXNvdXJjZUhlYXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlc291cmNlSGVhcC5oCmluZGV4IDQzNjY0
OWEyN2JmNDhmMjFjMGU5Y2VhYzljZGFlMDRmOGFmYWYyMGYuLjUxNWNkMTU4NDUzMmFkOTViOTky
OGYxY2Y2NDM1NDM2MTUyODM4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlc291cmNlSGVhcC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
c291cmNlSGVhcC5oCkBAIC0xNDIsNyArMTQyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CiAKLSAgICB1c2luZyBSZXNvdXJjZSA9IFZhcmlhbnQ8UmVmUHRyPElt
YWdlQnVmZmVyPiwgUmVmUHRyPE5hdGl2ZUltYWdlPiwgUmVmUHRyPEZvbnQ+PjsKKyAgICB1c2lu
ZyBSZXNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8SW1hZ2VCdWZmZXI+LCBSZWZQdHI8TmF0
aXZlSW1hZ2U+LCBSZWZQdHI8Rm9udD4+OwogICAgIEhhc2hNYXA8UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLCBSZXNvdXJjZT4gbV9yZXNvdXJjZXM7CiAgICAgdW5zaWduZWQgbV9pbWFnZUJ1
ZmZlckNvdW50IHsgMCB9OwogICAgIHVuc2lnbmVkIG1fbmF0aXZlSW1hZ2VDb3VudCB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKaW5kZXggOGQyMGVjMTEyMWIxZjU4NzZm
NmJhMDBiNWMzNjIxZDBjZGFiMzFmMy4uZjkzZTc4MzhiOWM0NzczOTJmYjczOGExNGI4ZDUxNGE3
ODZlYTEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgKQEAgLTUyLDcgKzUy
LDcgQEAgY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKIAogY2xhc3MgRGlzcGxheUNhcHR1
cmVTb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6
Ci0gICAgdXNpbmcgRGlzcGxheUZyYW1lVHlwZSA9IFdURjo6VmFyaWFudDxSZWZQdHI8TmF0aXZl
SW1hZ2U+LCBSZXRhaW5QdHI8SU9TdXJmYWNlUmVmPj47CisgICAgdXNpbmcgRGlzcGxheUZyYW1l
VHlwZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8TmF0aXZlSW1hZ2U+LCBSZXRhaW5QdHI8SU9TdXJm
YWNlUmVmPj47CiAKICAgICBjbGFzcyBDYXB0dXJlciA6IHB1YmxpYyBMb2dnZXJIZWxwZXIgewog
ICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tNZWRpYURldmljZS5oCmluZGV4IDQyNDA2OTI4ZWU5NWRiMDY1OGVkYmRh
ZjgyNzdjNzZhNzcwNDRlOWIuLjE0MWEyMGFkOTM1MTNkOGE0NmY5MDVmODNhZGVmNjZjZjczMzlm
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRGV2
aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFEZXZpY2Uu
aApAQCAtMjU5LDcgKzI1OSw3IEBAIHN0cnVjdCBNb2NrTWVkaWFEZXZpY2UgewogCiAgICAgU3Ry
aW5nIHBlcnNpc3RlbnRJZDsKICAgICBTdHJpbmcgbGFiZWw7Ci0gICAgVmFyaWFudDxNb2NrTWlj
cm9waG9uZVByb3BlcnRpZXMsIE1vY2tTcGVha2VyUHJvcGVydGllcywgTW9ja0NhbWVyYVByb3Bl
cnRpZXMsIE1vY2tEaXNwbGF5UHJvcGVydGllcz4gcHJvcGVydGllczsKKyAgICBzdGQ6OnZhcmlh
bnQ8TW9ja01pY3JvcGhvbmVQcm9wZXJ0aWVzLCBNb2NrU3BlYWtlclByb3BlcnRpZXMsIE1vY2tD
YW1lcmFQcm9wZXJ0aWVzLCBNb2NrRGlzcGxheVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0ROUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ETlMu
aAppbmRleCAzNDNmNmU3Y2RiMTUyZmE3N2ZmNDg5MmQ1NWU2ZTNlYjhhMzdiMTA1Li5mNGMwYmRk
YzdiMGJmMTdmODMwNzg1NGQ1YzIwZjljMGNhMDE0M2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvRE5TLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IHN0cnVj
dCBpbjZfYWRkciYgaXB2NkFkZHJlc3MoKSBjb25zdCB7IHJldHVybiBXVEY6OmdldDxzdHJ1Y3Qg
aW42X2FkZHI+KG1fYWRkcmVzcyk7IH0KIAogcHJpdmF0ZToKLSAgICBWYXJpYW50PHN0cnVjdCBp
bl9hZGRyLCBzdHJ1Y3QgaW42X2FkZHI+IG1fYWRkcmVzczsKKyAgICBzdGQ6OnZhcmlhbnQ8c3Ry
dWN0IGluX2FkZHIsIHN0cnVjdCBpbjZfYWRkcj4gbV9hZGRyZXNzOwogfTsKIAogZW51bSBjbGFz
cyBETlNFcnJvciB7IFVua25vd24sIENhbm5vdFJlc29sdmUsIENhbmNlbGxlZCB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCmluZGV4IGZlZWIxOTRkM2Y2MDk2
NDUxMDExNzMyMmFlYmVlODBlYzkwMjM2Y2MuLjliMWMxMmFjYThkNTM3ODU5ODkwMjExZDJlMmYw
MWUyNWIxM2JiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Rm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRh
LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgVGV4dEVuY29kaW5nOwogc3RydWN0IEZvcm1EYXRh
RWxlbWVudCB7CiAgICAgc3RydWN0IEVuY29kZWRGaWxlRGF0YTsKICAgICBzdHJ1Y3QgRW5jb2Rl
ZEJsb2JEYXRhOwotICAgIHVzaW5nIERhdGEgPSBWYXJpYW50PFZlY3Rvcjx1aW50OF90PiwgRW5j
b2RlZEZpbGVEYXRhLCBFbmNvZGVkQmxvYkRhdGE+OworICAgIHVzaW5nIERhdGEgPSBzdGQ6OnZh
cmlhbnQ8VmVjdG9yPHVpbnQ4X3Q+LCBFbmNvZGVkRmlsZURhdGEsIEVuY29kZWRCbG9iRGF0YT47
CiAKICAgICBGb3JtRGF0YUVsZW1lbnQoKSA9IGRlZmF1bHQ7CiAgICAgZXhwbGljaXQgRm9ybURh
dGFFbGVtZW50KERhdGEmJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMVmFsdWUu
aAppbmRleCBkMGNhMDNjYTc3YzdmZWNmODEyODlkOTlmNmY1YTY4ZTNhMjAxOTA5Li5jMDY2ODY4
NTg1Zjk1NjY2MWQ5YzZiZDQyYTM4NThiODFkMmUzOTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMVmFsdWUuaApAQCAtMzMsNiArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXVzaW5nIFNRTFZhbHVlID0gVmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgU3RyaW5nLCBkb3Vi
bGU+OwordXNpbmcgU1FMVmFsdWUgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFN0cmlu
ZywgZG91YmxlPjsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hy
L1BsYXRmb3JtWFIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaApp
bmRleCA3ZDI1ODJkOGM2MDdmNjExN2EyOTNjYjc4MzZiMjhhMGQ1NDI4M2YxLi41ZTA2MmVjN2M4
ZjdlNGI5MmZjNDlmZWZiMzFjOTA1OGQxNTQ1YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
eHIvUGxhdGZvcm1YUi5oCkBAIC0xNTIsNyArMTUyLDcgQEAgcHVibGljOgogICAgICAgICBzdGF0
aWMgY29uc3RleHByIHNpemVfdCBwcm9qZWN0aW9uTWF0cml4U2l6ZSA9IDE2OwogICAgICAgICB0
eXBlZGVmIHN0ZDo6YXJyYXk8ZmxvYXQsIHByb2plY3Rpb25NYXRyaXhTaXplPiBQcm9qZWN0aW9u
TWF0cml4OwogCi0gICAgICAgIHVzaW5nIFByb2plY3Rpb24gPSBWYXJpYW50PEZvdiwgUHJvamVj
dGlvbk1hdHJpeCwgc3RkOjpudWxscHRyX3Q+OworICAgICAgICB1c2luZyBQcm9qZWN0aW9uID0g
c3RkOjp2YXJpYW50PEZvdiwgUHJvamVjdGlvbk1hdHJpeCwgc3RkOjpudWxscHRyX3Q+OwogCiAg
ICAgICAgIHN0cnVjdCBWaWV3IHsKICAgICAgICAgICAgIFBvc2Ugb2Zmc2V0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCmluZGV4IDRkZjRjNGI0ZWI4ZjIyM2Q2
Y2YwYjZmZGVmY2EwZjg4NTVjODk1NzMuLjY5YTkzN2YxMWNhZDhlNmI0MjFkNTc1NWFiMzFhMWQ4
ODIxNGU4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgK
QEAgLTU4Myw3ICs1ODMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRl
ckJsb2NrRmxvd1JhcmVEYXRhPiBtX3JhcmVCbG9ja0Zsb3dEYXRhOwogCiBwcml2YXRlOgotICAg
IFZhcmlhbnQ8CisgICAgc3RkOjp2YXJpYW50PAogICAgICAgICBzdGQ6Om1vbm9zdGF0ZSwKICNp
ZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0PiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1R5cGVDb252ZXJzaW9ucy5oCmluZGV4IDE4MGQ2OTNlYTlkM2I1MzEyZDJhNWE0MTE3NjY4MmE0
YjhhMWRiNTEuLmQzY2QwYmRmMzIyYmQ2NmQzMWI4M2JkMDljMTVkMTQzZWRkMmExODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9UeXBlQ29udmVyc2lvbnMuaApAQCAtNDgsNyArNDgsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFN0cmluZyBzdHJpbmdWYWx1ZTsKICAgICAgICAgU3RyaW5nIHRyZWF0
TnVsbEFzRW1wdHlTdHJpbmdWYWx1ZTsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gc2VxdWVuY2VW
YWx1ZTsKLSAgICAgICAgVmFyaWFudDxSZWZQdHI8Tm9kZT4sIFZlY3RvcjxTdHJpbmc+LCBPdGhl
ckRpY3Rpb25hcnk+IHVuaW9uVmFsdWU7CisgICAgICAgIHN0ZDo6dmFyaWFudDxSZWZQdHI8Tm9k
ZT4sIFZlY3RvcjxTdHJpbmc+LCBPdGhlckRpY3Rpb25hcnk+IHVuaW9uVmFsdWU7CiAgICAgICAg
IGludCBjbGFtcExvbmdWYWx1ZTsKICAgICAgICAgaW50IGVuZm9yY2VSYW5nZUxvbmdWYWx1ZTsK
ICAgICB9OwpAQCAtMTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8V1RG
OjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4+JiB0ZXN0U2VxdWVuY2VSZWNv
cmQoKSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlUmVjb3JkOyB9CiAgICAgdm9pZCBzZXRUZXN0
U2VxdWVuY2VSZWNvcmQoY29uc3QgVmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgVmVj
dG9yPFN0cmluZz4+PiYgdmFsdWUpIHsgbV9zZXF1ZW5jZVJlY29yZCA9IHZhbHVlOyB9CiAKLSAg
ICB1c2luZyBUZXN0VW5pb24gPSBWYXJpYW50PFN0cmluZywgaW50LCBib29sLCBSZWZQdHI8Tm9k
ZT4sIFZlY3RvcjxpbnQ+PjsKKyAgICB1c2luZyBUZXN0VW5pb24gPSBzdGQ6OnZhcmlhbnQ8U3Ry
aW5nLCBpbnQsIGJvb2wsIFJlZlB0cjxOb2RlPiwgVmVjdG9yPGludD4+OwogICAgIGNvbnN0IFRl
c3RVbmlvbiYgdGVzdFVuaW9uKCkgY29uc3QgeyByZXR1cm4gbV91bmlvbjsgfQogICAgIHZvaWQg
c2V0VGVzdFVuaW9uKFRlc3RVbmlvbiYmIHZhbHVlKSB7IG1fdW5pb24gPSB2YWx1ZTsgfQogCkBA
IC0xMzQsMTUgKzEzNCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXN0RGljdGlvbmFyeShE
aWN0aW9uYXJ5JiYgZGljdGlvbmFyeSkgeyBtX3Rlc3REaWN0aW9uYXJ5ID0gZGljdGlvbmFyeTsg
fQogICAgIAogCi0gICAgdXNpbmcgVGVzdENsYW1wVW5pb24gPSBWYXJpYW50PFN0cmluZywgaW50
LCBWZWN0b3I8aW50Pj47CisgICAgdXNpbmcgVGVzdENsYW1wVW5pb24gPSBzdGQ6OnZhcmlhbnQ8
U3RyaW5nLCBpbnQsIFZlY3RvcjxpbnQ+PjsKICAgICBjb25zdCBUZXN0Q2xhbXBVbmlvbiYgdGVz
dENsYW1wVW5pb24oKSBjb25zdCB7IHJldHVybiBtX2NsYW1wVW5pb247IH0KICAgICB2b2lkIHNl
dFRlc3RDbGFtcFVuaW9uKGNvbnN0IFRlc3RDbGFtcFVuaW9uJiB2YWx1ZSkgeyBtX2NsYW1wVW5p
b24gPSB2YWx1ZTsgfQogCi0gICAgdXNpbmcgVGVzdEVuZm9yY2VSYW5nZVVuaW9uID0gVmFyaWFu
dDxTdHJpbmcsIGludCwgVmVjdG9yPGludD4+OworICAgIHVzaW5nIFRlc3RFbmZvcmNlUmFuZ2VV
bmlvbiA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIGludCwgVmVjdG9yPGludD4+OwogICAgIGNvbnN0
IFRlc3RFbmZvcmNlUmFuZ2VVbmlvbiYgdGVzdEVuZm9yY2VSYW5nZVVuaW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9lbmZvcmNlUmFuZ2VVbmlvbjsgfQogICAgIHZvaWQgc2V0VGVzdEVuZm9yY2VSYW5n
ZVVuaW9uKGNvbnN0IFRlc3RFbmZvcmNlUmFuZ2VVbmlvbiYgdmFsdWUpIHsgbV9lbmZvcmNlUmFu
Z2VVbmlvbiA9IHZhbHVlOyB9CiAKLSAgICB1c2luZyBUZXN0VHJlYXROdWxsQXNFbXB0eVN0cmlu
Z1VuaW9uID0gVmFyaWFudDxTdHJpbmcsIGludCwgVmVjdG9yPFN0cmluZz4+OworICAgIHVzaW5n
IFRlc3RUcmVhdE51bGxBc0VtcHR5U3RyaW5nVW5pb24gPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBp
bnQsIFZlY3RvcjxTdHJpbmc+PjsKICAgICBjb25zdCBUZXN0VHJlYXROdWxsQXNFbXB0eVN0cmlu
Z1VuaW9uJiB0ZXN0VHJlYXROdWxsQXNFbXB0eVN0cmluZ1VuaW9uKCkgY29uc3QgeyByZXR1cm4g
bV90cmVhdE51bGxBc0VtcHR5U3RyaW5nVW5pb247IH0KICAgICB2b2lkIHNldFRlc3RUcmVhdE51
bGxBc0VtcHR5U3RyaW5nVW5pb24oY29uc3QgVGVzdFRyZWF0TnVsbEFzRW1wdHlTdHJpbmdVbmlv
biYgdmFsdWUpIHsgbV90cmVhdE51bGxBc0VtcHR5U3RyaW5nVW5pb24gPSB2YWx1ZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5jcHAKaW5kZXggZWU2Yzk4ZjE5YzFkODBm
Y2U2OTY4NGE4ZDViNzI2YzBiYTg1NDBmZC4uNTE1MWEwYzIyMTM4Y2VjMDcxZmViYzY4ODIzYTJh
YjIwZDI5N2ZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3Jr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmNwcApAQCAt
MzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChTaGFyZWRXb3JrZXIpOwogCi1TaGFyZWRXb3JrZXI6OlNoYXJlZFdvcmtlcihTdHJp
bmcmJiwgc3RkOjpvcHRpb25hbDxWYXJpYW50PFN0cmluZywgV29ya2VyT3B0aW9ucz4+JiYpCitT
aGFyZWRXb3JrZXI6OlNoYXJlZFdvcmtlcihTdHJpbmcmJiwgc3RkOjpvcHRpb25hbDxzdGQ6OnZh
cmlhbnQ8U3RyaW5nLCBXb3JrZXJPcHRpb25zPj4mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvU2hhcmVkV29ya2VyLmgKaW5kZXggMzY2YzI3OWY1ZGZhYjk1MTk4M2Y1YzFkYTgzNjMyMTI1
OTQwY2I2My4uMDkwNzFmN2NiZjg0NWJmMTE2MWZmZTFlYWU1N2JjYzVhMmIxOTY3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5oCkBAIC0zNSwxMSArMzUsMTEgQEAgY2xhc3Mg
TWVzc2FnZVBvcnQ7CiBjbGFzcyBTaGFyZWRXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RX
b3JrZXIgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU2hhcmVkV29ya2VyKTsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFNoYXJlZFdvcmtlcj4gY3JlYXRlKFN0cmluZyYmIHNjcmlwdFVS
TCwgc3RkOjpvcHRpb25hbDxWYXJpYW50PFN0cmluZywgV29ya2VyT3B0aW9ucz4+JiYgb3B0aW9u
cykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRXb3JrZXIoV1RGTW92ZShzY3JpcHRVUkwp
LCBXVEZNb3ZlKG9wdGlvbnMpKSk7IH0KKyAgICBzdGF0aWMgUmVmPFNoYXJlZFdvcmtlcj4gY3Jl
YXRlKFN0cmluZyYmIHNjcmlwdFVSTCwgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8U3RyaW5n
LCBXb3JrZXJPcHRpb25zPj4mJiBvcHRpb25zKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJl
ZFdvcmtlcihXVEZNb3ZlKHNjcmlwdFVSTCksIFdURk1vdmUob3B0aW9ucykpKTsgfQogCiAgICAg
TWVzc2FnZVBvcnQqIHBvcnQoKSBjb25zdDsKIHByaXZhdGU6Ci0gICAgU2hhcmVkV29ya2VyKFN0
cmluZyYmLCBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBXb3JrZXJPcHRpb25zPj4mJik7
CisgICAgU2hhcmVkV29ya2VyKFN0cmluZyYmLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxT
dHJpbmcsIFdvcmtlck9wdGlvbnM+PiYmKTsKIAogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2
ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgK
aW5kZXggZjY3NDUyNDQ1NDg2YjNhZGFjNjZkNTEyMzUxZDVkNzJkZjg4Y2RkYS4uNzFlMTc0NmVm
YjhkM2U4Y2RiYzZlN2M4MmE0NTE4MjQ3M2U2MDAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIGNsYXNzIE1lc3NhZ2VQb3J0OwogY2xhc3MgU2VydmljZVdvcmtlcjsKIGNsYXNz
IFNlcnZpY2VXb3JrZXJDbGllbnQ7CiAKLXVzaW5nIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3Vy
Y2UgPSBWYXJpYW50PFJlZlB0cjxTZXJ2aWNlV29ya2VyQ2xpZW50PiwgUmVmUHRyPFNlcnZpY2VX
b3JrZXI+LCBSZWZQdHI8TWVzc2FnZVBvcnQ+PjsKK3VzaW5nIEV4dGVuZGFibGVNZXNzYWdlRXZl
bnRTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+LCBSZWZQ
dHI8U2VydmljZVdvcmtlcj4sIFJlZlB0cjxNZXNzYWdlUG9ydD4+OwogCiBjbGFzcyBFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50IGZpbmFsIDogcHVibGljIEV4dGVuZGFibGVFdmVudCB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaAppbmRleCA2
MjJkZTMzMGQ5Y2Y0NjkzZjE4NTc2ODhjNWJjMWIzNWIyYThkMmRlLi5jMTIzNjAxMjY3OTJhNjAy
ZDJiMjJhMWIzYWYwYmI5M2ZmMGI5YmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oCkBAIC03NSwxMCArNzUsMTAgQEAgdXNp
bmcgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZp
ZXI8U1dTZXJ2ZXJUb0NvbnRleHQKIHVzaW5nIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXJU
eXBlID0gUHJvY2Vzc0lkZW50aWZpZXJUeXBlOwogdXNpbmcgU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5
cGU+OwogCi11c2luZyBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciA9IFZhcmlhbnQ8RG9jdW1l
bnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcj47Cit1c2luZyBEb2N1bWVudE9y
V29ya2VySWRlbnRpZmllciA9IHN0ZDo6dmFyaWFudDxEb2N1bWVudElkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyPjsKIAotdXNpbmcgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSA9
IFZhcmlhbnQ8U2VydmljZVdvcmtlckRhdGEsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPjsKLXVz
aW5nIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgPSBWYXJpYW50PFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj47Cit1c2luZyBTZXJ2
aWNlV29ya2VyT3JDbGllbnREYXRhID0gc3RkOjp2YXJpYW50PFNlcnZpY2VXb3JrZXJEYXRhLCBT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT47Cit1c2luZyBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVu
dGlmaWVyID0gc3RkOjp2YXJpYW50PFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcj47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCA4ZjZlODkyNjBkZWMxNjc1ZWRmY2VmNTg0YjAz
MGQ4NmM3NjY4ODM4Li4zNWQ1NDU4NmQwMTM0ODA4NDZmYmFkZmVjZGZjMzFmMTBmMWM3MzVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6
CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsg
fQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsgfQogCi0gICAgdXNpbmcgU2VuZFR5cGVzID0gVmFyaWFudDxSZWZQdHI8RG9jdW1l
bnQ+LCBSZWZQdHI8QmxvYj4sIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxK
U0M6OkFycmF5QnVmZmVyPiwgUmVmUHRyPERPTUZvcm1EYXRhPiwgU3RyaW5nLCBSZWZQdHI8VVJM
U2VhcmNoUGFyYW1zPj47CisgICAgdXNpbmcgU2VuZFR5cGVzID0gc3RkOjp2YXJpYW50PFJlZlB0
cjxEb2N1bWVudD4sIFJlZlB0cjxCbG9iPiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3Piwg
UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+LCBSZWZQdHI8RE9NRm9ybURhdGE+LCBTdHJpbmcsIFJl
ZlB0cjxVUkxTZWFyY2hQYXJhbXM+PjsKIAogICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyBy
ZXR1cm4gbV91cmw7IH0KICAgICBTdHJpbmcgc3RhdHVzVGV4dCgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKaW5kZXggMDRj
ZDAyNTMwMmZjYTI4ZjY2NTE4YmU4NjhiODAyZjJjNmVkZWI0Zi4uYzBiZjAxM2MzM2E2M2E0ODk2
ODFkZWFlOGJmYTdjY2YwMTIxOWU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlOwogICAgIH07
CiAKLSAgICB1c2luZyBSZXF1ZXN0T3JSZWRpcmVjdGlvblRyaXBsZXRPckVycm9yID0gVmFyaWFu
dDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFJlZGlyZWN0aW9uVHJpcGxldCwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcj47CisgICAgdXNpbmcgUmVxdWVzdE9yUmVkaXJlY3Rpb25UcmlwbGV0T3JF
cnJvciA9IHN0ZDo6dmFyaWFudDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFJlZGlyZWN0aW9u
VHJpcGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj47CiAgICAgdXNpbmcgVmFsaWRhdGlvbkhh
bmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcXVlc3RPclJlZGlyZWN0aW9uVHJpcGxl
dE9yRXJyb3ImJik+OwogICAgIHZvaWQgY2hlY2soV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudCosIFZhbGlkYXRpb25IYW5kbGVy
JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlRGF0YS5oCmluZGV4IDljNDRhOThiMjg2ODcyZTg4Mjg1OTc1MTcwYTIwNjE1MDFj
ZmUxY2EuLmMwY2M0NDk0NzQ5NjE2ZTJmOGRmMGNjNTYxOTgwZGRmMzYxMTEwM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRGF0
YS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICNpZiBVU0UoR0xJQikKICAgICBEYXRhKEdS
ZWZQdHI8R0J5dGVzPiYmLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmQgPSBGaWxl
U3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKICNlbGlmIFVTRShDVVJMKQotICAg
IERhdGEoVmFyaWFudDxWZWN0b3I8dWludDhfdD4sIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRh
PiYmKTsKKyAgICBEYXRhKHN0ZDo6dmFyaWFudDxWZWN0b3I8dWludDhfdD4sIEZpbGVTeXN0ZW06
Ok1hcHBlZEZpbGVEYXRhPiYmKTsKICNlbmRpZgogICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CiAg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fc2l6ZTsgfQpAQCAtMTAxLDcgKzEw
MSw3IEBAIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZmls
ZURlc2NyaXB0b3IgeyBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07CiAj
ZW5kaWYKICNpZiBVU0UoQ1VSTCkKLSAgICBCb3g8VmFyaWFudDxWZWN0b3I8dWludDhfdD4sIEZp
bGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhPj4gbV9idWZmZXI7CisgICAgQm94PHN0ZDo6dmFyaWFu
dDxWZWN0b3I8dWludDhfdD4sIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhPj4gbV9idWZmZXI7
CiAjZW5kaWYKICAgICBtdXRhYmxlIGNvbnN0IHVpbnQ4X3QqIG1fZGF0YSB7IG51bGxwdHIgfTsK
ICAgICBzaXplX3QgbV9zaXplIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Fy
Z3VtZW50Q29kZXJzLmgKaW5kZXggMWI3ZTIyZmZiNTQ2M2M5MjZhNzZlYTUyN2ViY2Y1YWRhZGRj
MjBhYy4uNGEyZjg5NDE5ZjI3MGJkMGNhMjRkNjliMTkyNmEyODcxZjgyNmJkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC03MzAsNyArNzMwLDcg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgRXJyb3JUeXBlPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxFeHBl
Y3RlZDx2b2lkLCBFcnJvclR5cGU+PiB7CiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1l
Li4uIFR5cGVzPgogc3RydWN0IFZhcmlhbnRDb2RlciB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RW5jb2Rlcj4KLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
V1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjp2YXJpYW50PFR5cGVzLi4u
PiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7
CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHN0ZDo6Z2V0PGluZGV4Pih2YXJpYW50KTsKQEAgLTc0
MCwxMCArNzQwLDEwIEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewogICAgIH0KICAgICAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6
VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQor
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkgPT0gaW5k
ZXgpIHsKLSAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgc3RkOjp2YXJpYW50X2Fs
dGVybmF0aXZlPGluZGV4LCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+Pjo6dHlwZT4gb3B0aW9uYWw7
CisgICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIHN0ZDo6dmFyaWFudF9hbHRlcm5h
dGl2ZTxpbmRleCwgc3RkOjp2YXJpYW50PFR5cGVzLi4uPj46OnR5cGU+IG9wdGlvbmFsOwogICAg
ICAgICAgICAgZGVjb2RlciA+PiBvcHRpb25hbDsKICAgICAgICAgICAgIGlmICghb3B0aW9uYWwp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAgLTc1NiwxNyArNzU2LDE3
IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+CiBz
dHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5cGVzLi4uPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RW5jb2Rlcj4KLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
V1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjp2YXJpYW50PFR5cGVzLi4u
PiYgdmFyaWFudCwgdW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoaSwg
IWkpOwogICAgICAgICBlbmNvZGVyIDw8IHN0ZDo6Z2V0PDA+KHZhcmlhbnQpOwogICAgIH0KICAg
ICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNp
Z25lZCBpKQorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxUeXBlcy4uLj4+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNT
RVJUX1VOVVNFRChpLCAhaSk7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgc3RkOjp2
YXJpYW50X2FsdGVybmF0aXZlPDAsIFdURjo6VmFyaWFudDxUeXBlcy4uLj4+Ojp0eXBlPiBvcHRp
b25hbDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBzdGQ6OnZhcmlhbnRfYWx0ZXJu
YXRpdmU8MCwgc3RkOjp2YXJpYW50PFR5cGVzLi4uPj46OnR5cGU+IG9wdGlvbmFsOwogICAgICAg
ICBkZWNvZGVyID4+IG9wdGlvbmFsOwogICAgICAgICBpZiAoIW9wdGlvbmFsKQogICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAgLTc3NCw5ICs3NzQsOSBAQCBzdHJ1Y3QgVmFyaWFu
dENvZGVyPDAsIFR5cGVzLi4uPiB7CiAgICAgfQogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUuLi4g
VHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKK3Rl
bXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnZhcmlh
bnQ8VHlwZXMuLi4+PiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLSAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVz
Li4uPiYgdmFyaWFudCkKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3Qgc3RkOjp2YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCkKICAgICB7CiAgICAgICAgIHVu
c2lnbmVkIGkgPSB2YXJpYW50LmluZGV4KCk7CiAgICAgICAgIGVuY29kZXIgPDwgaTsKQEAgLTc4
NCw3ICs3ODQsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gewogICAgIH0KICAgICAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFu
dDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPHN0ZDo6dmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ICAgIHsKICAgICAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gaTsKICAgICAgICAgZGVjb2Rl
ciA+PiBpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0YWNobWVu
dC5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oCmluZGV4IDlkNmU5
YTVlNzc1MTJmYjFkNWNhYzkyOTE4YWEwNmYxYmVlZGZjNzguLjI3NmE3YzczNjYyOWNiZWIxZmQw
ZmVmYWI5NTljMmZmZmE0YTE4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0F0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9BdHRhY2ht
ZW50LmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogCiAgICAgdXNpbmcgU29ja2V0RGVzY3Jp
cHRvciA9IGludDsKICAgICB1c2luZyBDdXN0b21Xcml0ZXJGdW5jID0gV1RGOjpGdW5jdGlvbjx2
b2lkKFNvY2tldERlc2NyaXB0b3IpPjsKLSAgICB1c2luZyBDdXN0b21Xcml0ZXIgPSBWYXJpYW50
PEN1c3RvbVdyaXRlckZ1bmMsIFNvY2tldERlc2NyaXB0b3I+OworICAgIHVzaW5nIEN1c3RvbVdy
aXRlciA9IHN0ZDo6dmFyaWFudDxDdXN0b21Xcml0ZXJGdW5jLCBTb2NrZXREZXNjcmlwdG9yPjsK
ICAgICBBdHRhY2htZW50KEN1c3RvbVdyaXRlciYmKTsKICNlbGlmIE9TKERBUldJTikKICAgICBB
dHRhY2htZW50KG1hY2hfcG9ydF9uYW1lX3QsIG1hY2hfbXNnX3R5cGVfbmFtZV90IGRpc3Bvc2l0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNl
aXZlUXVldWVNYXAuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZl
UXVldWVNYXAuaAppbmRleCBhMjQwZmYzNWM4ZWM3OTIwZjA1ZWZiY2QyNzI1YzA3YWI3Y2NlNDE5
Li42YzJjMTk0ZTI0ZmVlNTQ4NWQ1MTY5MTc5ZDU3NTJjZDFlY2ZiMTliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmgKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVRdWV1ZU1hcC5oCkBAIC01
MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIE1lc3NhZ2VSZWNlaXZlUXVldWUqIGdldChjb25z
dCBEZWNvZGVyJikgY29uc3Q7CiBwcml2YXRlOgotICAgIHVzaW5nIFN0b3JlVHlwZSA9IFZhcmlh
bnQ8TWVzc2FnZVJlY2VpdmVRdWV1ZSosIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjZWl2ZVF1
ZXVlPj47CisgICAgdXNpbmcgU3RvcmVUeXBlID0gc3RkOjp2YXJpYW50PE1lc3NhZ2VSZWNlaXZl
UXVldWUqLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVJlY2VpdmVRdWV1ZT4+OwogICAgIHZvaWQg
YWRkSW1wbChTdG9yZVR5cGUmJiwgUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklE
KTsKICAgICB1c2luZyBRdWV1ZU1hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPHVpbnQ4X3QsIHVpbnQ2
NF90PiwgU3RvcmVUeXBlPjsKICAgICBRdWV1ZU1hcCBtX3F1ZXVlczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
U2Vzc2lvblN0YXRlLmgKaW5kZXggZWU2ZGY0OGI5OWI5MmYxZDA2YmVhMDg4YzQwZTdkZTg4ZTIy
NGVmYi4uYTMyYjJkNTUxYWEzNmRmOTQ4ZWQ5YjcwNDEwZjhjMDNmZDhhY2ZlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKQEAgLTU1LDcgKzU1LDcgQEAgc3RydWN0IEhUVFBCb2R5
IHsKICAgICAgICAgICAgIEJsb2IsCiAgICAgICAgIH07CiAKLSAgICAgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGJlIGEgVmFyaWFudC4gSXQncyBhbHNvIHVuY2xlYXIgd2h5IHdlIGRvbid0IGp1
c3QgdXNlIEZvcm1EYXRhRWxlbWVudCBoZXJlLgorICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgYmUgYSBzdGQ6OnZhcmlhbnQuIEl0J3MgYWxzbyB1bmNsZWFyIHdoeSB3ZSBkb24ndCBqdXN0
IHVzZSBGb3JtRGF0YUVsZW1lbnQgaGVyZS4KICAgICAgICAgVHlwZSB0eXBlID0gVHlwZTo6RGF0
YTsKIAogICAgICAgICAvLyBEYXRhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAppbmRleCAyMDhmMWI2MTE3Yjg3OTBjYTQzNTE0YmFhNDE0NWQwNmMyNjJh
ZjBlLi5kMDQ4ZWFlMWMwYTAxNzdjMzg0MzQxMjMyZjkyNTUzYjIwYTk5ZGFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTc3LDcgKzE3Nyw3
IEBAIHN0cnVjdCBWZWxvY2l0eURhdGE7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogc3Ry
dWN0IFdpbmRvd0ZlYXR1cmVzOwogCi11c2luZyBJREJLZXlQYXRoID0gVmFyaWFudDxTdHJpbmcs
IFZlY3RvcjxTdHJpbmc+PjsKK3VzaW5nIElEQktleVBhdGggPSBzdGQ6OnZhcmlhbnQ8U3RyaW5n
LCBWZWN0b3I8U3RyaW5nPj47CiAKICNpZiBQTEFURk9STShDT0NPQSkKIHN0cnVjdCBLZXlwcmVz
c0NvbW1hbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
c1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKaW5k
ZXggNGEzZDhmMmE0ZTRjZjBjNzgxZTk3MjJmNzc5N2RmMzYxMDZjODFjOC4uOTcxZjU5NzE3NzFi
NGU5OWNmZDgxNjE4YTVhMDIzM2RmZGQyNTFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzU3RvcmUuaApAQCAtNjQsNyArNjQsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSB7CiAgICAgc3RhdGljIHZvaWQgb3ZlcnJpZGVCb29sVmFsdWVGb3JLZXkoY29uc3Qg
U3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRlc3RSdW5u
ZXJPdmVycmlkZXMoKTsKIAotICAgIHVzaW5nIFZhbHVlID0gVmFyaWFudDxTdHJpbmcsIGJvb2ws
IHVpbnQzMl90LCBkb3VibGU+OworICAgIHVzaW5nIFZhbHVlID0gc3RkOjp2YXJpYW50PFN0cmlu
ZywgYm9vbCwgdWludDMyX3QsIGRvdWJsZT47CiAKICAgICB1c2luZyBWYWx1ZU1hcCA9IE1lbW9y
eUNvbXBhY3RSb2Jpbkhvb2RIYXNoTWFwPFN0cmluZywgVmFsdWU+OwogICAgIFZhbHVlTWFwIG1f
dmFsdWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVk
aWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuaAppbmRleCA1YjE3MDUzYjhiYjZjMGZm
ZTNiZDFhMzkwMThlMmEyODg4MTU0ZDQwLi4wZjYwMWI5OGQ0YzM5NmI3ZDdjYmNhYTk4YmEzZmNk
YWVlYmNlZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3Jt
YXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVDdXJzb3IuaApAQCAtNTIsNyArNTIsNyBA
QCBjbGFzcyBNZWRpYVNhbXBsZUN1cnNvciA6IHB1YmxpYyBDb3JlTWVkaWFXcmFwcGVkPE1lZGlh
U2FtcGxlQ3Vyc29yPiwgVGhyZWFkU2FmZQogcHVibGljOgogICAgIHVzaW5nIERlY29kZU9yZGVy
SXRlcmF0b3IgPSBXZWJDb3JlOjpEZWNvZGVPcmRlclNhbXBsZU1hcDo6aXRlcmF0b3I7CiAgICAg
dXNpbmcgUHJlc2VudGF0aW9uT3JkZXJJdGVyYXRvciA9IFdlYkNvcmU6OlByZXNlbnRhdGlvbk9y
ZGVyU2FtcGxlTWFwOjppdGVyYXRvcjsKLSAgICB1c2luZyBMb2NhdG9yID0gVmFyaWFudDxNZWRp
YVRpbWUsIERlY29kZU9yZGVySXRlcmF0b3IsIFByZXNlbnRhdGlvbk9yZGVySXRlcmF0b3I+Owor
ICAgIHVzaW5nIExvY2F0b3IgPSBzdGQ6OnZhcmlhbnQ8TWVkaWFUaW1lLCBEZWNvZGVPcmRlckl0
ZXJhdG9yLCBQcmVzZW50YXRpb25PcmRlckl0ZXJhdG9yPjsKIAogICAgIHN0cnVjdCBUaW1pbmcg
ewogICAgICAgICBNZWRpYVRpbWUgZGVjb2RlVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oCmluZGV4IDgyYzFi
Zjg5NDFjZDdhYmE2NTU4M2IxM2RmM2Q1YTM1YzZlYzJhZmIuLjExNjgyMTQ3MGFiNTY5MTg1M2Qx
ODkwZTcwOGJjZDg2OWFmZDY4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaApAQCAtNTUsNyArNTUsNyBAQCBj
bGFzcyBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OwogCiBjbGFzcyBXZWJBdXRoZW50aWNh
dGlvblBhbmVsIGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpXZWJBdXRo
ZW50aWNhdGlvblBhbmVsPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWw+IHsKIHB1YmxpYzoKLSAgICB1c2luZyBSZXNwb25zZSA9IFZhcmlhbnQ8UmVmPFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+OworICAg
IHVzaW5nIFJlc3BvbnNlID0gc3RkOjp2YXJpYW50PFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9y
UmVzcG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPjsKICAgICB1c2luZyBDYWxsYmFjayA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzcG9uc2UmJik+OwogCiAgICAgV2ViQXV0aGVudGlj
YXRpb25QYW5lbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tNb2NrTWVkaWFEZXZpY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tN
b2NrTWVkaWFEZXZpY2UuY3BwCmluZGV4IDUyYWUzOTY4MGE0NDc5ODIyY2FhNzEyNjNlZDVjMzBj
NjJkNjk4NTMuLjYwNjMwZGY3ODdmNTMyNDg0MmZkMzk2MDVkM2UzMzEzYWJjODI0ZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2aWNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmljZS5j
cHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXS0FkZE1vY2tNZWRpYURldmljZShXS0NvbnRleHRS
ZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgcGVyc2lzdGVudElkLCBXS1N0cmkKIHsKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgIFN0cmluZyB0eXBlU3RyaW5nID0gV2ViS2l0Ojp0b0ltcGwo
dHlwZSktPnN0cmluZygpOwotICAgIFZhcmlhbnQ8V2ViQ29yZTo6TW9ja01pY3JvcGhvbmVQcm9w
ZXJ0aWVzLCBXZWJDb3JlOjpNb2NrU3BlYWtlclByb3BlcnRpZXMsIFdlYkNvcmU6Ok1vY2tDYW1l
cmFQcm9wZXJ0aWVzLCBXZWJDb3JlOjpNb2NrRGlzcGxheVByb3BlcnRpZXM+IHByb3BlcnRpZXM7
CisgICAgc3RkOjp2YXJpYW50PFdlYkNvcmU6Ok1vY2tNaWNyb3Bob25lUHJvcGVydGllcywgV2Vi
Q29yZTo6TW9ja1NwZWFrZXJQcm9wZXJ0aWVzLCBXZWJDb3JlOjpNb2NrQ2FtZXJhUHJvcGVydGll
cywgV2ViQ29yZTo6TW9ja0Rpc3BsYXlQcm9wZXJ0aWVzPiBwcm9wZXJ0aWVzOwogICAgIGlmICh0
eXBlU3RyaW5nID09ICJjYW1lcmEiKQogICAgICAgICBwcm9wZXJ0aWVzID0gV2ViQ29yZTo6TW9j
a0NhbWVyYVByb3BlcnRpZXMgeyB9OwogICAgIGVsc2UgaWYgKHR5cGVTdHJpbmcgPT0gInNjcmVl
biIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCBiMzI1MzlkYWU2ZmI3ODM0MDdmNmJjMWMzZDZmYzE3YmNiMGFjZjljLi4wNTYwNTRjYmM5
ZWM5OWU5M2QyZmVmY2I0ZGUzOTgxYWY5ZmNlMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTE0NjUsNyArMTQ2NSw3IEBAIGlubGlu
ZSBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gdG9GaW5kT3B0aW9ucyhXS0ZpbmRDb25m
aWd1cmF0aW9uICpjb25maWd1CiAKICNwcmFnbWEgbWFyayAtIG1hY09TL2lPUyBpbnRlcm5hbAog
Ci0tICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZzooY29uc3QgV2ViS2l0OjpTYWZlQnJv
d3NpbmdXYXJuaW5nJil3YXJuaW5nIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpY29t
cGxldGlvbkhhbmRsZXIKKy0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nOihjb25zdCBX
ZWJLaXQ6OlNhZmVCcm93c2luZ1dhcm5pbmcmKXdhcm5pbmcgY29tcGxldGlvbkhhbmRsZXI6KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2YXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVM
b2FkLCBVUkw+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgX3NhZmVCcm93c2luZ1dh
cm5pbmcgPSBhZG9wdE5TKFtbV0tTYWZlQnJvd3NpbmdXYXJuaW5nIGFsbG9jXSBpbml0V2l0aEZy
YW1lOnNlbGYuYm91bmRzIHNhZmVCcm93c2luZ1dhcm5pbmc6d2FybmluZyBjb21wbGV0aW9uSGFu
ZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+KHNlbGYpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0byYmIHJlc3VsdCkgbXV0
YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7CkBAIC0y
NzQ1LDcgKzI3NDUsNyBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0QW5kQWRkSGlnaGxpZ2h0KFZlY3Rv
cjxSZWY8V2ViS2l0OjpTaGFyZWRNZW1vcnk+PiYgYnVmZmVycywgTgogewogICAgIFRIUk9XX0lG
X1NVU1BFTkRFRDsKICAgICBhdXRvIHNhZmVCcm93c2luZ1dhcm5pbmcgPSBXZWJLaXQ6OlNhZmVC
cm93c2luZ1dhcm5pbmc6OmNyZWF0ZSh1cmwsIHRpdGxlLCB3YXJuaW5nLCBkZXRhaWxzKTsKLSAg
ICBhdXRvIHdyYXBwZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxl
dGlvbkhhbmRsZXIpXSAoVmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYm
IHZhcmlhbnQpIHsKKyAgICBhdXRvIHdyYXBwZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoc3RkOjp2YXJpYW50PFdlYktpdDo6Q29udGlu
dWVVbnNhZmVMb2FkLCBVUkw+JiYgdmFyaWFudCkgewogICAgICAgICBzd2l0Y2hPbih2YXJpYW50
LCBbJl0gKFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkIGNvbnRpbnVlVW5zYWZlTG9hZCkgewog
ICAgICAgICAgICAgc3dpdGNoIChjb250aW51ZVVuc2FmZUxvYWQpIHsKICAgICAgICAgICAgIGNh
c2UgV2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQ6OlllczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggYjkxOWRk
OTc4ZmQ2YjQ1ZTIyODA5NGYxOWE3NDdlMDhlN2ZjOTQ4OS4uODIxNjhkOTg3OTQ4ODhkN2JmNTlj
ZjI1ODJlZmYzYWIxNmFjNDc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTI3Miw3ICsyNzIsNyBAQCBjbGFz
cyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAKIC0gKHZvaWQpX2ludGVybmFsRG9BZnRlck5leHRQ
cmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIHdpdGhvdXRXYWl0
aW5nRm9yUGFpbnRpbmc6KEJPT0wpd2l0aG91dFdhaXRpbmdGb3JQYWludGluZyB3aXRob3V0V2Fp
dGluZ0ZvckFuaW1hdGVkUmVzaXplOihCT09MKXdpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNp
emU7CiAKLS0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nOihjb25zdCBXZWJLaXQ6OlNh
ZmVCcm93c2luZ1dhcm5pbmcmKXdhcm5pbmcgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4m
Jiljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nOihj
b25zdCBXZWJLaXQ6OlNhZmVCcm93c2luZ1dhcm5pbmcmKXdhcm5pbmcgY29tcGxldGlvbkhhbmRs
ZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2YXJpYW50PFdlYktpdDo6Q29udGludWVV
bnNhZmVMb2FkLCBVUkw+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfY2xlYXJT
YWZlQnJvd3NpbmdXYXJuaW5nOwogLSAodm9pZClfY2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZG
b3JNYWluRnJhbWVOYXZpZ2F0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4
IDAzODYzMmM5MGEwNGI1YjFmMzhjMGMzZTUxMWQ5YjdhZjMzZDdmZjEuLjlmZTEzZGI5ZWZkNDNk
YzhhNTZlMDE5NzBiOTE4OWUzNDA4YTdiZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
CkBAIC01MzYsNyArNTM2LDcgQEAgc3RhdGljIFJldGFpblB0cjxfV0tBdXRoZW50aWNhdG9yQXR0
ZXN0YXRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb24KICNpZiBFTkFCTEUo
V0VCX0FVVEhOKQogICAgIGF1dG8gY2xpZW50RGF0YUpTT04gPSBwcm9kdWNlQ2xpZW50RGF0YUpz
b24oX1dLV2ViQXV0aGVudGljYXRpb25UeXBlQ3JlYXRlLCBjaGFsbGVuZ2UsIG9yaWdpbik7CiAg
ICAgYXV0byBoYXNoID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSlNPTi5n
ZXQoKSk7Ci0gICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGhhbmRs
ZXIpLCBjbGllbnREYXRhSlNPTiA9IFdURk1vdmUoY2xpZW50RGF0YUpTT04pXSAoVmFyaWFudDxS
ZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YT4mJiByZXN1bHQpIG11dGFibGUgeworICAgIGF1dG8gY2FsbGJhY2sgPSBbaGFuZGxlciA9IG1h
a2VCbG9ja1B0cihoYW5kbGVyKSwgY2xpZW50RGF0YUpTT04gPSBXVEZNb3ZlKGNsaWVudERhdGFK
U09OKV0gKHN0ZDo6dmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBXVEY6
OnN3aXRjaE9uKHJlc3VsdCwgWyZdKGNvbnN0IFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVz
cG9uc2U+JiByZXNwb25zZSkgewogICAgICAgICAgICAgaGFuZGxlcih3a0F1dGhlbnRpY2F0b3JB
dHRlc3RhdGlvblJlc3BvbnNlKHJlc3BvbnNlLT5kYXRhKCksIGNsaWVudERhdGFKU09OLmdldCgp
LCByZXNwb25zZS0+YXR0YWNobWVudCgpKS5nZXQoKSwgbmlsKTsKICAgICAgICAgfSwgWyZdKGNv
bnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikgewpAQCAtNTg2LDcgKzU4Niw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiB3
a0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKICAgICBh
dXRvIGNsaWVudERhdGFKU09OID0gcHJvZHVjZUNsaWVudERhdGFKc29uKF9XS1dlYkF1dGhlbnRp
Y2F0aW9uVHlwZUdldCwgY2hhbGxlbmdlLCBvcmlnaW4pOwogICAgIGF1dG8gaGFzaCA9IHByb2R1
Y2VDbGllbnREYXRhSnNvbkhhc2goY2xpZW50RGF0YUpTT04uZ2V0KCkpOwotICAgIGF1dG8gY2Fs
bGJhY2sgPSBbaGFuZGxlciA9IG1ha2VCbG9ja1B0cihoYW5kbGVyKSwgY2xpZW50RGF0YUpTT04g
PSBXVEZNb3ZlKGNsaWVudERhdGFKU09OKV0gKFZhcmlhbnQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRp
Y2F0b3JSZXNwb25zZT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYgcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICBhdXRvIGNhbGxiYWNrID0gW2hhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFuZGxlciks
IGNsaWVudERhdGFKU09OID0gV1RGTW92ZShjbGllbnREYXRhSlNPTildIChzdGQ6OnZhcmlhbnQ8
UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRh
dGE+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgV1RGOjpzd2l0Y2hPbihyZXN1bHQsIFsm
XShjb25zdCBSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiYgcmVzcG9uc2UpIHsK
ICAgICAgICAgICAgIGhhbmRsZXIod2tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UocmVz
cG9uc2UtPmRhdGEoKSwgY2xpZW50RGF0YUpTT04uZ2V0KCksIHJlc3BvbnNlLT5hdHRhY2htZW50
KCkpLmdldCgpLCBuaWwpOwogICAgICAgICB9LCBbJl0oY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YSYgZXhjZXB0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAppbmRleCAzYWEyNWZk
MDY3OTc4MTYyMmYxMDY2NWM3NDdiY2Q3YzVmM2QxYjhkLi42ZWJlNzZhNWQyNDc2MzVmYjllNDNl
NzExMTE3MzFhNmNhY2Y5Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKQEAgLTEzNiw3
ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZVRvdWNoSW50
ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgVG91Y2hJbnRlcmFjdGlvbiwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIGxvY2F0aW9uSW5WaWV3LCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGR1cmF0aW9u
LCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJikgPSAwOwogI2VuZGlmCiAjaWYgRU5BQkxF
KFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCi0gICAgICAgIHZpcnR1YWwgdm9pZCBz
aW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFj
dGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1dG9tYXRpb25Db21w
bGV0aW9uSGFuZGxlciYmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZUtleWJv
YXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgc3RkOjp2
YXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxl
ciYmKSA9IDA7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9O
UykKICAgICAgICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlV2hlZWxJbnRlcmFjdGlvbihXZWJQYWdl
UHJveHkmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb25JblZpZXcsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGRlbHRhLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCAwNjE3OGRiMGI5MGU4ODdmZjgxNTI0OGRiZjQx
ZWJmZDc4MDBjNzkwLi44N2Y0NDNmYTI4NTEyNTY1OWM3NjllYzY2OWE5OTQzODJiNWY1YTEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMTY2MCw3ICsxNjYwLDcgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6c2ltdWxhdGVUb3VjaEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFn
ZSwgVG91Y2hJbnQKICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9O
UykKIAogI2lmIEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQotdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgS2V5Ym9hcmRJbnRlcmFjdGlvbiBpbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50
PFZpcnR1YWxLZXksIENoYXJLZXk+JiYga2V5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdl
YlBhZ2VQcm94eSYgcGFnZSwgS2V5Ym9hcmRJbnRlcmFjdGlvbiBpbnRlcmFjdGlvbiwgc3RkOjp2
YXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYga2V5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIC8vIEJyaWRnZSB0aGUgZmx1c2hlZCBjYWxsYmFjayB0byBvdXIgY29tbWFu
ZCdzIGNvbXBsZXRpb24gaGFuZGxlci4KICAgICBhdXRvIGtleWJvYXJkRXZlbnRzRmx1c2hlZENh
bGxiYWNrID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KHN0ZDo6b3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4gZXJyb3IpIG11dGFibGUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5oCmluZGV4IDFjNzI4MWNhYjAwMzk4Y2VjYjg0ZTVlMjZhMDQ5Yzk4OGQ2
NjcwZTUuLmY3NWRjYWQ1ZTM1ODU0OTM3ZWMwYmNkZTdkMmQ0NzI4ZmIwYjYyMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaW11bGF0
ZVRvdWNoSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgVG91Y2hJbnRlcmFjdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGxvY2F0aW9uSW5WaWV3LCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+
IGR1cmF0aW9uLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CiAjZW5kaWYKICNpZiBF
TkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKLSAgICB2b2lkIHNpbXVsYXRl
S2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBX
VEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNvbXBsZXRpb25I
YW5kbGVyJiYpOworICAgIHZvaWQgc2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQ
cm94eSYsIEtleWJvYXJkSW50ZXJhY3Rpb24sIHN0ZDo6dmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFy
S2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CiAjZW5kaWYKICNpZiBFTkFC
TEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9OUykKICAgICB2b2lkIHNpbXVsYXRlV2hlZWxJ
bnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRp
b25JblZpZXcsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGRlbHRhLCBBdXRvbWF0aW9uQ29tcGxl
dGlvbkhhbmRsZXImJik7CkBAIC0yNjIsNyArMjYyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogI2lm
IEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIC8vIFNpbXVsYXRl
cyBhIHNpbmdsZSB2aXJ0dWFsIG9yIGNoYXIga2V5IGJlaW5nIHByZXNzZWQvcmVsZWFzZWQsIHN1
Y2ggYXMgJ2EnLCBDb250cm9sLCBGLWtleXMsIE51bXBhZCBrZXlzLCBldGMuIGFzIGFsbG93ZWQg
YnkgdGhlIHByb3RvY29sLgotICAgIHZvaWQgcGxhdGZvcm1TaW11bGF0ZUtleWJvYXJkSW50ZXJh
Y3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZp
cnR1YWxLZXksIENoYXJLZXk+JiYpOworICAgIHZvaWQgcGxhdGZvcm1TaW11bGF0ZUtleWJvYXJk
SW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgc3RkOjp2YXJp
YW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYpOwogICAgIC8vIFNpbXVsYXRlcyBrZXkgcHJlc3Nl
cyB0byBwcm9kdWNlIHRoZSBjb2RlcG9pbnRzIGluIGEgc3RyaW5nLiBPbmUgb3IgbW9yZSBjb2Rl
IHBvaW50cyBhcmUgZGVsaXZlcmVkIGF0b21pY2FsbHkgYXQgZ3JhcGhlbWUgY2x1c3RlciBib3Vu
ZGFyaWVzLgogICAgIHZvaWQgcGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdlYlBhZ2VQcm94
eSYsIGNvbnN0IFN0cmluZyYpOwogI2VuZGlmIC8vIEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRf
SU5URVJBQ1RJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9pb3MvV2ViQXV0b21hdGlvblNlc3Npb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5tbQppbmRleCA2ZjUy
NWRhMGJhMjU1YzJiMTUzMzYwMzM5ZmI1MDJhZGU1MmIzZGJkLi41NWNjM2ZhMzlhOTZhMGEwMmVl
ZTQyOTdkNWI4OTc1YjY2MDczOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5t
bQpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZW5kU3ludGhl
c2l6ZWRFdmVudHNUb1BhZ2UoV2ViUGFnZVByb3h5JiBwYWdlLCBOU0FycgogI3ByYWdtYSBtYXJr
IENvbW1hbmRzIGZvciBQbGF0Zm9ybTogJ2lPUycKIAogI2lmIEVOQUJMRShXRUJEUklWRVJfS0VZ
Qk9BUkRfSU5URVJBQ1RJT05TKQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1T
aW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBLZXlib2FyZElu
dGVyYWN0aW9uIGludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4m
JiBrZXkpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5Ym9h
cmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEtleWJvYXJkSW50ZXJhY3Rpb24gaW50
ZXJhY3Rpb24sIHN0ZDo6dmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmIGtleSkKIHsKICAg
ICAvLyBUaGUgbW9kaWZpZXJzIGNoYW5nZWQgYnkgdGhlIHZpcnR1YWwga2V5IHdoZW4gaXQgaXMg
cHJlc3NlZCBvciByZWxlYXNlZC4KICAgICBXZWJFdmVudEZsYWdzIGNoYW5nZWRNb2RpZmllcnMg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMv
V2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQppbmRleCA1ZmNkODFkMTRmZjI2
YzFmNGRhYzc2NTg3ZDhiYjc1YjQ0NzY1ZTdkLi41N2FkZDRhNGFjNDEyY2JmZGRjMTdmMWVhNzAy
MzNlZjQ4Nzg3ZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQpAQCAtNjI1
LDcgKzYyNSw3IEBAIHN0YXRpYyBOU0V2ZW50TW9kaWZpZXJGbGFncyBldmVudE1vZGlmaWVyRmxh
Z3NGb3JWaXJ0dWFsS2V5KFZpcnR1YWxLZXkga2V5KQogICAgIH0KIH0KIAotdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFn
ZVByb3h5JiBwYWdlLCBLZXlib2FyZEludGVyYWN0aW9uIGludGVyYWN0aW9uLCBXVEY6OlZhcmlh
bnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiBrZXkpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
OjpwbGF0Zm9ybVNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2Us
IEtleWJvYXJkSW50ZXJhY3Rpb24gaW50ZXJhY3Rpb24sIHN0ZDo6dmFyaWFudDxWaXJ0dWFsS2V5
LCBDaGFyS2V5PiYmIGtleSkKIHsKICAgICAvLyBGSVhNRTogdGhpcyBmdW5jdGlvbiBhbmQgdGhl
IEF1dG9tYXRpb24gcHJvdG9jb2wgZW51bSBzaG91bGQgcHJvYmFibHkgYWRvcHQga2V5IG5hbWVz
CiAgICAgLy8gZnJvbSBXM0MgVUlFdmVudHMgc3RhbmRhcmQuIEZvciBtb3JlIGRldGFpbHM6IGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby91aWV2ZW50cy1jb2RlLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1N1YkZyYW1lU09BdXRob3JpemF0
aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0
aW9uL1N1YkZyYW1lU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oCmluZGV4IGI1NzdjYmRmOGUwNzhm
NGZiNGY4NzM0ZDdiZmQ2MDhkMjAzODgwNjMuLjI0NDc5YjQ2ODI2ZjdhMTYyNmYwZTU4MTc2NDc0
NmQzMzBlM2ExYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NP
QXV0aG9yaXphdGlvbi9TdWJGcmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU3ViRnJhbWVTT0F1dGhv
cml6YXRpb25TZXNzaW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIH5TdWJGcmFt
ZVNPQXV0aG9yaXphdGlvblNlc3Npb24oKTsKIAogcHJpdmF0ZToKLSAgICB1c2luZyBTdXBwbGVt
ZW50ID0gVmFyaWFudDxWZWN0b3I8dWludDhfdD4sIFN0cmluZz47CisgICAgdXNpbmcgU3VwcGxl
bWVudCA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8dWludDhfdD4sIFN0cmluZz47CiAKICAgICBTdWJG
cmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb24oU09BdXRob3JpemF0aW9uICosIFJlZjxBUEk6Ok5h
dmlnYXRpb25BY3Rpb24+JiYsIFdlYlBhZ2VQcm94eSYsIENhbGxiYWNrJiYsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dLU2FmZUJyb3dzaW5nV2FybmluZy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgKaW5kZXggNDMxODljMGEzYTFlOTU5NzgwY2FiMTJh
ZTI2YzhiNzdlZDUzNzA3OS4uMzcxZDRlMDYwNGNmMjliODlhOTkzMTE4NGQ5NTgzYmYzOWJlMzky
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tTYWZlQnJvd3Np
bmdXYXJuaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tTYWZlQnJv
d3NpbmdXYXJuaW5nLmgKQEAgLTY4LDcgKzY4LDcgQEAgdXNpbmcgUmVjdFR5cGUgPSBDR1JlY3Q7
CiAjZW5kaWYKIHsKIEBwYWNrYWdlCi0gICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50
PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiBfY29tcGxldGlvbkhhbmRsZXI7
CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZhcmlhbnQ8V2ViS2l0OjpDb250aW51
ZVVuc2FmZUxvYWQsIFVSTD4mJik+IF9jb21wbGV0aW9uSGFuZGxlcjsKICAgICBSZWZQdHI8Y29u
c3QgV2ViS2l0OjpTYWZlQnJvd3NpbmdXYXJuaW5nPiBfd2FybmluZzsKICAgICBXZWFrT2JqQ1B0
cjxXS1NhZmVCcm93c2luZ1RleHRWaWV3PiBfZGV0YWlsczsKICAgICBXZWFrT2JqQ1B0cjxXS1Nh
ZmVCcm93c2luZ0JveD4gX2JveDsKQEAgLTc3LDcgKzc3LDcgQEAgdXNpbmcgUmVjdFR5cGUgPSBD
R1JlY3Q7CiAjZW5kaWYKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KFJlY3RU
eXBlKWZyYW1lIHNhZmVCcm93c2luZ1dhcm5pbmc6KGNvbnN0IFdlYktpdDo6U2FmZUJyb3dzaW5n
V2FybmluZyYpd2FybmluZyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKWNvbXBsZXRp
b25IYW5kbGVyOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KFJlY3RUeXBlKWZyYW1l
IHNhZmVCcm93c2luZ1dhcm5pbmc6KGNvbnN0IFdlYktpdDo6U2FmZUJyb3dzaW5nV2FybmluZyYp
d2FybmluZyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZh
cmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpY29tcGxldGlvbkhh
bmRsZXI7CiAKIC0gKEJPT0wpZm9yTWFpbkZyYW1lTmF2aWdhdGlvbjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tTYWZlQnJvd3NpbmdXYXJuaW5nLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tTYWZlQnJvd3NpbmdXYXJuaW5nLm1tCmlu
ZGV4IDNjMDc3NzRiZDkxNGJiOTUwZTIwNTg4NGQ3Mjk0N2E1MDc2NmQ4NDUuLjYyMGRjZmI3ZDc0
YjIwYTczNGMwYTVhZDI4YjkxYzYyNzM2NWQyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dLU2FmZUJyb3dzaW5nV2FybmluZy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NhZmVCcm93c2luZ1dhcm5pbmcubW0KQEAgLTI5MCwxMyAr
MjkwLDEzIEBAIHN0YXRpYyBSZXRhaW5QdHI8Vmlld1R5cGU+IG1ha2VMYWJlbChOU0F0dHJpYnV0
ZWRTdHJpbmcgKmF0dHJpYnV0ZWRTdHJpbmcpCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1NhZmVCcm93
c2luZ1dhcm5pbmcKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KFJlY3RUeXBlKWZy
YW1lIHNhZmVCcm93c2luZ1dhcm5pbmc6KGNvbnN0IFdlYktpdDo6U2FmZUJyb3dzaW5nV2Fybmlu
ZyYpd2FybmluZyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJp
YW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKWNvbXBsZXRpb25IYW5k
bGVyCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooUmVjdFR5cGUpZnJhbWUgc2FmZUJy
b3dzaW5nV2FybmluZzooY29uc3QgV2ViS2l0OjpTYWZlQnJvd3NpbmdXYXJuaW5nJil3YXJuaW5n
IGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFudDxX
ZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiljb21wbGV0aW9uSGFuZGxlcgog
ewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZV0pKSB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkOjpZZXMpOwog
ICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KLSAgICBfY29tcGxldGlvbkhhbmRsZXIgPSBbd2Vh
a1NlbGYgPSBXZWFrT2JqQ1B0cjxXS1NhZmVCcm93c2luZ1dhcm5pbmc+KHNlbGYpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoVmFyaWFudDxXZWJLaXQ6
OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgX2NvbXBs
ZXRpb25IYW5kbGVyID0gW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tTYWZlQnJvd3NpbmdXYXJu
aW5nPihzZWxmKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKHN0ZDo6dmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmIHJlc3Vs
dCkgbXV0YWJsZSB7CiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKICAgICAgICAgaWYgKGF1dG8gc3Ry
b25nU2VsZiA9IHdlYWtTZWxmLmdldCgpKQogICAgICAgICAgICAgW3N0cm9uZ1NlbGYuZ2V0KCkt
Pl9wcmV2aW91c0ZpcnN0UmVzcG9uZGVyIGJlY29tZUZpcnN0UmVzcG9uZGVyXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDI2MmQ1NmZkOTc2ZmIz
YjQ3YjcyNWI4ZWJkNjZkYTYzNDJkNjg0YTUuLjU5MGI4N2MxYzVjMmMwOWFjZThiOWYxNzEwZGI5
Mzc4NDJiMTU2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaApAQCAtMjYyLDcgKzI2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdTY2FsZShD
R0Zsb2F0KTsKICAgICBDR0Zsb2F0IHZpZXdTY2FsZSgpIGNvbnN0OwogCi0gICAgdm9pZCBzaG93
U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWYXJpYW50PENvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJik7Cisg
ICAgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZhcmlhbnQ8Q29udGludWVVbnNhZmVMb2Fk
LCBVUkw+JiYpPiYmKTsKICAgICB2b2lkIGNsZWFyU2FmZUJyb3dzaW5nV2FybmluZygpOwogICAg
IHZvaWQgY2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXgg
NDE5MWVjOGIyMjQ5OWQwODcxYzEzMjM4NTZlODA0ZDJlYzM1ZmI0NC4uY2I4MjM2OWFlMWFlNzlm
YWJjMTE3YjM0NjY2NmIzN2JiNWJmOTM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE3NTYsNyArMTc1Niw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgICAg
IFt3ZWJWaWV3LndpbmRvdyBzZWxlY3RLZXlWaWV3UHJlY2VkaW5nVmlldzp3ZWJWaWV3XTsKIH0K
IAotdm9pZCBXZWJWaWV3SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJy
b3dzaW5nV2FybmluZyYgd2FybmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PENv
bnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5p
bmcmIHdhcm5pbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2YXJpYW50PENvbnRpbnVl
VW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1f
dmlldykKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKENvbnRpbnVlVW5zYWZlTG9h
ZDo6WWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA3YzlkZmM1MTE2
NmMyODlkMDU3ZGY2NGQxODA5MDJjMzMzNjQ3NTRmLi5iNjZhN2YzOGNkNmYzYjMzN2YyMDUzNTZh
Y2RhNDQ4MTAwYzNmY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0y
ODIsNyArMjgyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRl
bnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFudDxDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoQ29udGludWVVbnNhZmVMb2Fk
OjpZZXMpOyB9CisgICAgdmlydHVhbCB2b2lkIHNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0
IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFu
dDxDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29t
cGxldGlvbkhhbmRsZXIoQ29udGludWVVbnNhZmVMb2FkOjpZZXMpOyB9CiAgICAgdmlydHVhbCB2
b2lkIGNsZWFyU2FmZUJyb3dzaW5nV2FybmluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVh
clNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmlnYXRpb24oKSB7IH0KICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaAppbmRleCA2OWE3YzU1
NTI1MTdlYzU0YTU2NGVjNGQxY2M0ZGZhM2RjMjkyOGUwLi4zN2EyZDg3YmRhOTk0YWE0NjA5MDAy
ZWQ0NDBmZWRmYjNjNTM0YzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm9jZXNzVGhyb3R0bGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlci5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEJhY2tncm91
bmRBY3Rpdml0eSA9IEFjdGl2aXR5PEFjdGl2aXR5VHlwZTo6QmFja2dyb3VuZD47CiAgICAgVW5p
cXVlUmVmPEJhY2tncm91bmRBY3Rpdml0eT4gYmFja2dyb3VuZEFjdGl2aXR5KEFTQ0lJTGl0ZXJh
bCBuYW1lKTsKIAotICAgIHVzaW5nIEFjdGl2aXR5VmFyaWFudCA9IFZhcmlhbnQ8c3RkOjpudWxs
cHRyX3QsIFVuaXF1ZVJlZjxCYWNrZ3JvdW5kQWN0aXZpdHk+LCBVbmlxdWVSZWY8Rm9yZWdyb3Vu
ZEFjdGl2aXR5Pj47CisgICAgdXNpbmcgQWN0aXZpdHlWYXJpYW50ID0gc3RkOjp2YXJpYW50PHN0
ZDo6bnVsbHB0cl90LCBVbmlxdWVSZWY8QmFja2dyb3VuZEFjdGl2aXR5PiwgVW5pcXVlUmVmPEZv
cmVncm91bmRBY3Rpdml0eT4+OwogICAgIHN0YXRpYyBib29sIGlzVmFsaWRCYWNrZ3JvdW5kQWN0
aXZpdHkoY29uc3QgQWN0aXZpdHlWYXJpYW50Jik7CiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZEZv
cmVncm91bmRBY3Rpdml0eShjb25zdCBBY3Rpdml0eVZhcmlhbnQmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ci5oCmluZGV4IDYwOTk1NTg4ODc4ODFjMjBkYjNhNTZiYjhhOTQ5YzIxZWE2MjVmYTEuLjJlNzEw
YWEyZTdiZTJmN2M0YWFlMTBlNDAzZDk4MjE0M2UwYWI1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0
b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxBdXRoZW50aWNhdG9yPiwgcHVibGljIENhbk1ha2VXZWFr
UHRyPEF1dGhlbnRpY2F0b3I+IHsKIHB1YmxpYzoKLSAgICB1c2luZyBSZXNwb25kID0gVmFyaWFu
dDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YT47CisgICAgdXNpbmcgUmVzcG9uZCA9IHN0ZDo6dmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0
aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT47CiAKICAgICBjbGFz
cyBPYnNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxPYnNlcnZlcj4gewogICAgIHB1Ymxp
YzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA5ZmFhMDNiOWFhMGEw
ODdmODI1Y2ZiNjczODUwZWZmMGNjODY2MzgyLi4zNzcxMTYxYTI5NTZiZTRjODg3ZDAxY2E1NjFh
ZjZiODhiNzU4ZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCkBAIC0x
NDcsMTQgKzE0NywxNCBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzR29vZ2xlTGVnYWN5QXBwSWRTdXBw
b3J0RXh0ZW5zaW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8QXV0aGVudAogICAgIHRyYW5zcG9ydHMu
cmVtb3ZlKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKIH0KIAotc3RhdGljIFN0
cmluZyBnZXRScElkKGNvbnN0IFZhcmlhbnQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucywgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYgb3B0aW9ucykKK3N0YXRp
YyBTdHJpbmcgZ2V0UnBJZChjb25zdCBzdGQ6OnZhcmlhbnQ8UHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucywgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYgb3B0aW9u
cykKIHsKICAgICBpZiAoc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zPihvcHRpb25zKSkKICAgICAgICAgcmV0dXJuIFdURjo6Z2V0PFB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpLnJwLmlkOwogICAgIHJldHVy
biBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KG9wdGlvbnMpLnJw
SWQ7CiB9CiAKLXN0YXRpYyBTdHJpbmcgZ2V0VXNlck5hbWUoY29uc3QgVmFyaWFudDxQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnM+JiBvcHRpb25zKQorc3RhdGljIFN0cmluZyBnZXRVc2VyTmFtZShjb25zdCBzdGQ6OnZh
cmlhbnQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zPiYgb3B0aW9ucykKIHsKICAgICBpZiAoc3RkOjpob2xkc19hbHRl
cm5hdGl2ZTxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihvcHRpb25zKSkKICAg
ICAgICAgcmV0dXJuIFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+
KG9wdGlvbnMpLnVzZXIubmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCmluZGV4
IDRkYjFkOWI1ZWVlMWVhNmZjNDNjZWM0NjQ3YTVhNTc4MjcxZDAyOTYuLmY3MWUyZmRkZTU1MWUx
YzM4ZGFiMTBlMzMzYjI3YzRhYjc1YTExNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFn
ZXIuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBBdXRoZW50aWNhdG9yTWFuYWdlciA6IHB1Ymxp
YyBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXIsIHB1YgogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1dGhlbnRpY2F0
b3JNYW5hZ2VyKTsKIHB1YmxpYzoKLSAgICB1c2luZyBSZXNwb25kID0gVmFyaWFudDxSZWY8V2Vi
Q29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT47Cisg
ICAgdXNpbmcgUmVzcG9uZCA9IHN0ZDo6dmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRv
clJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT47CiAgICAgdXNpbmcgQ2FsbGJhY2sg
PSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc3BvbmQmJik+OwogICAgIHVzaW5nIFRyYW5zcG9y
dFNldCA9IEhhc2hTZXQ8V2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCwgV1RGOjpJbnRI
YXNoPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+LCBXVEY6OlN0cm9uZ0VudW1IYXNo
VHJhaXRzPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+PjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRp
b25SZXF1ZXN0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmNwcAppbmRleCBmY2Q4MGUxOTE5ZDcy
YjBhMGM1NmIwOTE1MTk0YmFhOTM1MTBkZTQ5Li4wNzdlYzZhZTMyMDQ1MTYyNWUxYjcyYTBjMTUw
ZGRjMzgxMzZiMDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVl
c3REYXRhLmNwcApAQCAtMzMsMTQgKzMzLDE0IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCi1DbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlwZShj
b25zdCBWYXJpYW50PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4mIG9wdGlvbnMpCitDbGllbnREYXRhVHlwZSBnZXRD
bGllbnREYXRhVHlwZShjb25zdCBzdGQ6OnZhcmlhbnQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucywgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYgb3B0aW9ucykK
IHsKICAgICBpZiAoc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zPihvcHRpb25zKSkKICAgICAgICAgcmV0dXJuIENsaWVudERhdGFUeXBlOjpD
cmVhdGU7CiAgICAgcmV0dXJuIENsaWVudERhdGFUeXBlOjpHZXQ7CiB9CiAKLVVzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudCBnZXRVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQoY29uc3QgVmFy
aWFudDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnM+JiBvcHRpb25zKQorVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
IGdldFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudChjb25zdCBzdGQ6OnZhcmlhbnQ8UHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zPiYgb3B0aW9ucykKIHsKICAgICBpZiAoc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihvcHRpb25zKSkgewogICAgICAgICBpZiAo
YXV0byBhdXRoZW50aWNhdG9yU2VsZWN0aW9uID0gV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucz4ob3B0aW9ucykuYXV0aGVudGljYXRvclNlbGVjdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0aW9uUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAppbmRleCA0YzNiYmFhYWY4
ZmM5NDhlZDA1NmViOGE3NmRjOWNmMWNlOGE0NjkwLi4wYWNkZmY1OWEwYTczOTNhZjVhZjViZDFj
MjdlOWYwNDUwNTgwNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1
ZXN0RGF0YS5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogc3RydWN0
IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEgewogICAgIFZlY3Rvcjx1aW50OF90PiBoYXNo
OwotICAgIFZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cywgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiBvcHRpb25zOwor
ICAgIHN0ZDo6dmFyaWFudDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IG9wdGlvbnM7
CiAKICAgICAvLyBGSVhNRTxyZGFyOi8vcHJvYmxlbS83MTUwOTg0OD46IFJlbW92ZSB0aGUgZm9s
bG93aW5nIGRlcHJlY2F0ZWQgZmllbGRzLgogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBwYWdl
OwpAQCAtNTgsOCArNTgsOCBAQCBzdHJ1Y3QgV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSB7
CiAgICAgV2Vha1B0cjxBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw+IHdlYWtQYW5lbDsKIH07
CiAKLVdlYkNvcmU6OkNsaWVudERhdGFUeXBlIGdldENsaWVudERhdGFUeXBlKGNvbnN0IFZhcmlh
bnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYpOwotV2ViQ29yZTo6VXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50IGdldFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudChjb25zdCBW
YXJpYW50PFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFdlYkNv
cmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4mKTsKK1dlYkNvcmU6OkNsaWVu
dERhdGFUeXBlIGdldENsaWVudERhdGFUeXBlKGNvbnN0IHN0ZDo6dmFyaWFudDxXZWJDb3JlOjpQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnM+Jik7CitXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQgZ2V0VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50KGNvbnN0IHN0ZDo6dmFyaWFudDxX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eS5jcHAKaW5kZXggMWNhMGRlMDRlMDFjYWEwMzQ3YzU1MjkxNDkxZWViZDI0N2Q0N2RiNC4uYjU1
YTMxODUxY2IzNTM3MGM4ZWVlNjViMmY3MWJhZDk2NTVhMzExOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcApAQCAtNjcsNyArNjcs
NyBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24o
RnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYQogCiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEm
JiBkYXRhLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewotICAgIGF1dG8g
Y2FsbGJhY2sgPSBbaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcildIChWYXJpYW50PFJlZjxBdXRo
ZW50aWNhdG9yUmVzcG9uc2U+LCBFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKV0gKHN0ZDo6dmFy
aWFudDxSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiwgRXhjZXB0aW9uRGF0YT4mJiByZXN1bHQp
IG11dGFibGUgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBX
VEY6OnN3aXRjaE9uKHJlc3VsdCwgWyZdKGNvbnN0IFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+
JiByZXNwb25zZSkgewogICAgICAgICAgICAgaGFuZGxlcihyZXNwb25zZS0+ZGF0YSgpLCByZXNw
b25zZS0+YXR0YWNobWVudCgpLCB7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggNThhYjU4NWVlYjBhNDM2N2Y4MmYyNmI1NWIzOTY1YzljODc0YWY2MS4u
YmUzMDYxNGExYWJkMDk3NGZkYjIzYmNkY2RkMTI0YzcxZjRhMWEwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNTQyLDcgKzM1NDIsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9u
IHBvbGljeUFjdGlvbiwgQQogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2
ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG5h
dmlnYXRpb24sIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMs
IFZhcmlhbnQ8UmVmPEFQSTo6TmF2aWdhdGlvblJlc3BvbnNlPiwgUmVmPEFQSTo6TmF2aWdhdGlv
bkFjdGlvbj4+JiYgbmF2aWdhdGlvbkFjdGlvbk9yUmVzcG9uc2UsIFJlZjxQb2xpY3lEZWNpc2lv
blNlbmRlcj4mJiBzZW5kZXIsIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzIHdp
bGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQ
b2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmln
YXRpb24sIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMsIHN0
ZDo6dmFyaWFudDxSZWY8QVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0
aW9uQWN0aW9uPj4mJiBuYXZpZ2F0aW9uQWN0aW9uT3JSZXNwb25zZSwgUmVmPFBvbGljeURlY2lz
aW9uU2VuZGVyPiYmIHNlbmRlciwgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU+IHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3Mg
d2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcykKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9j
ZXNzKCkpIHsKICAgICAgICAgc2VuZGVyLT5zZW5kKFBvbGljeURlY2lzaW9uIHsgc2VuZGVyLT5p
ZGVudGlmaWVyKCksIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgUG9saWN5QWN0aW9u
OjpJZ25vcmUsIDAsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmNjI2MzIwNGEyMmZmOTVkMzQ4ZGE1MWQxZjYz
NjJhODlmNjIzNWRkLi4wNGJmYTc1ZGI0ZjJhYjIwYjBlOTg4Y2VhNTE5MzhjZjBhY2ZjMDkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTIyMSw3ICsxMjIxLDcg
QEAgcHVibGljOgogCiAgICAgY2xhc3MgUG9saWN5RGVjaXNpb25TZW5kZXI7CiAgICAgZW51bSBj
bGFzcyBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzIDogYm9vbCB7IE5vLCBZZXMgfTsKLSAg
ICB2b2lkIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6
Ok5hdmlnYXRpb24qLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIFZhcmlhbnQ8UmVm
PEFQSTo6TmF2aWdhdGlvblJlc3BvbnNlPiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4+JiYs
IFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJiwgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+ID0geyB9LCBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENv
bnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm8pOworICAgIHZvaWQgcmVjZWl2ZWRQb2xpY3lEZWNp
c2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiosIFJlZlB0cjxBUEk6
OldlYnNpdGVQb2xpY2llcz4mJiwgc3RkOjp2YXJpYW50PFJlZjxBUEk6Ok5hdmlnYXRpb25SZXNw
b25zZT4sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+PiYmLCBSZWY8UG9saWN5RGVjaXNpb25T
ZW5kZXI+JiYsIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiA9IHsgfSwg
V2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nl
c3M6Ok5vKTsKICAgICB2b2lkIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFdlYkNv
cmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFj
dGlvbj4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94eSYsIFJl
ZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYm
KTsKIAogICAgIHZvaWQgYmFja0ZvcndhcmRSZW1vdmVkSXRlbShjb25zdCBXZWJDb3JlOjpCYWNr
Rm9yd2FyZEl0ZW1JZGVudGlmaWVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGVjMzBlN2JkYmRhMDA1ZjFmZDBiZDgzOTg3ZGFk
MjcxMjlkMmJiMWMuLmE0ODY0MTQ0YjJkN2Y5ZmUzNWZmODdlNmM0ZjQ0ODI5MTE2ODNlNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBA
IC0xNDcsNyArMTQ3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9uKSBvdmVycmlkZTsKICAgICB2
b2lkIHNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIHNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5p
bmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2Fm
ZUxvYWQsIFVSTD4mJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2hvd1NhZmVCcm93c2luZ1dh
cm5pbmcoY29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjp2YXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGNsZWFyU2FmZUJyb3dzaW5nV2FybmluZygpIG92ZXJyaWRlOwogICAg
IHZvaWQgY2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKCkg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQppbmRleCA3YTM5YWNhOTljMThkMzU5NmQ2NWI4YmQwYTVlMmQzNGE5OTFlMDgw
Li5lMzYzNjM0ZmFjYmVhZThlOGE3YWY0NmZhNGY1YjE4NzdiMTlhZDZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC01MDgsNyAr
NTA4LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6bWFrZVZpZXdCbGFuayhib29sIG1ha2VCbGFu
aykKICAgICBbbV9jb250ZW50VmlldyBsYXllcl0ub3BhY2l0eSA9IG1ha2VCbGFuayA/IDAgOiAx
OwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25z
dCBTYWZlQnJvd3NpbmdXYXJuaW5nJiB3YXJuaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZh
cmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25z
dCBTYWZlQnJvd3NpbmdXYXJuaW5nJiB3YXJuaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6dmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byB3ZWJWaWV3ID0gbV93ZWJWaWV3LmdldCgpKQog
ICAgICAgICBbd2ViVmlldyBfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6d2FybmluZyBjb21wbGV0
aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IGUyNjEyN2NiZjE3NmZl
YmFkZDQ2NTc1YjYxNDk4MWRhN2ExOTk0MmYuLmQzN2MyOGZlYjFhNTdlZGZiNGE4ZjRkODk4MzQy
ZDE5NmM3YTg4MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0
U2VjdXJlSW5wdXRTdGF0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgbm90aWZ5SW5wdXRDb250ZXh0
QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIHZvaWQgc2VsZWN0aW9u
RGlkQ2hhbmdlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhj
b25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50
PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZl
TG9hZCwgVVJMPiYmKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhclNhZmVCcm93c2luZ1dh
cm5pbmcoKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9y
TWFpbkZyYW1lTmF2aWdhdGlvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzU2FmZUJyb3dzaW5n
V2FybmluZygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDhmZWEzNWMxMGIyNDZkMDk3OTk5ZmE3NzQx
YjM2MTdiMmQ3ODQzZjEuLmE4NTU3NTMwZjBjNjVlM2E0ZjlmYzJlMGU2MmE1MjZhNTc4NDk0ZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
bW0KQEAgLTU0Miw3ICs1NDIsNyBAQCBSZWY8VmFsaWRhdGlvbkJ1YmJsZT4gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgU3RyaW5nJiBtZXNzYQogICAgIHJldHVy
biBWYWxpZGF0aW9uQnViYmxlOjpjcmVhdGUobV92aWV3LCBtZXNzYWdlLCBzZXR0aW5ncyk7CiB9
CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNh
ZmVCcm93c2luZ1dhcm5pbmcmIHdhcm5pbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFu
dDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNh
ZmVCcm93c2luZ1dhcm5pbmcmIHdhcm5pbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2
YXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGlmICghbV9pbXBsKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoQ29udGludWVVbnNhZmVMb2FkOjpZZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggNWY0NDU1ZTk2ZTYzZDViNzgzNmI5NWZjNjc3Y2I5ZmFkZGEyNzNiNy4uNzll
N2Y0NDE3YWExY2MzNDE4OTAxNjg0NDI1ZGY3YzlkMzdmMmE3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpnZXRBc3NlcnRpb24oVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgUHVibGlj
CiAKIHZvaWQgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYW5kbGVSZXF1ZXN0KFdl
YkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmJiBkYXRhLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRs
ZXImJiBoYW5kbGVyKQogewotICAgIGF1dG8gY2FsbGJhY2sgPSBbaGFuZGxlciA9IFdURk1vdmUo
aGFuZGxlcildIChWYXJpYW50PFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBFeGNlcHRpb25E
YXRhPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0g
V1RGTW92ZShoYW5kbGVyKV0gKHN0ZDo6dmFyaWFudDxSZWY8QXV0aGVudGljYXRvclJlc3BvbnNl
PiwgRXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogICAgICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwgWyZdKGNvbnN0
IFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiByZXNwb25zZSkgewogICAgICAgICAgICAgaGFu
ZGxlcihyZXNwb25zZS0+ZGF0YSgpLCByZXNwb25zZS0+YXR0YWNobWVudCgpLCB7IH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgKaW5kZXggNjE4NDNkODkyY2YyZjZiMDQwZGYxMTBi
Mzk0NWNmMDIxODI5ZWFlMi4uMjdjYWIwNzRhZjE1NzY5NDQyZDU1ZjBiMDU1NDQxYWJjNGU0NzFl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oCkBAIC0zNCw3ICszNCw3IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi11c2luZyBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgPSBW
YXJpYW50PAordXNpbmcgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlID0gc3RkOjp2YXJpYW50PAog
ICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlCiAjaWYgUExBVEZPUk0oQ09DT0EpIC8vIEZJWE1F
OiBUaGlzIGlzIHJlYWxseSBhYm91dCBJT1N1cmZhY2UuCiAgICAgLCBNYWNoU2VuZFJpZ2h0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKaW5kZXggYmU0M2MwZmRkYjVlMTYyNzFh
ZWE4ZTVjYzIwMmRjN2UxMWEyNjljNi4uYjM0N2NhZDJhYjVmNTcxYjFhMGUyMDcyMDgwNDM2N2Q3
NzAxODYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaApAQCAtODIsNyAr
ODIsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8QmxvYkxvYWRlcj4gbV9ibG9iTG9h
ZGVyOwogICAgIGJvb2wgbV9uZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JDb250aW51ZURpZFJlY2VpdmVSZXNwb25z
ZU1lc3NhZ2UgeyBmYWxzZSB9OwotICAgIFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+LCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+LCBVbmlxdWVSZWY8V2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcj4+IG1fcmVzcG9uc2VEYXRhOworICAgIHN0ZDo6dmFyaWFudDxz
dGQ6Om51bGxwdHJfdCwgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIFJlZjxXZWJDb3JlOjpG
b3JtRGF0YT4sIFVuaXF1ZVJlZjxXZWJDb3JlOjpSZXNvdXJjZUVycm9yPj4gbV9yZXNwb25zZURh
dGE7CiAgICAgYm9vbCBtX2RpZEZpbmlzaCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaAppbmRleCA2YTI4YWU5N2Y4
NjFmNGY1YmNiMWM5MzRhYmYwMjg5ZmIwYTAwYjQ4Li45ZDVkYjFiNWU0MzQxMjkyNGJkYWRmOWM4
OGQ2NzI4MGM1NjQyYWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRTdGFydChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIHsgbV9wcm9wZXJ0aWVzLmJlZ2luVGlt
ZSA9IGJlZ2luVGltZTsgfQogCiAKLSAgICB1c2luZyBLZXlmcmFtZVZhbHVlID0gVmFyaWFudDxm
bG9hdCwgV2ViQ29yZTo6Q29sb3IsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCwgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXgsIFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24+PjsKKyAg
ICB1c2luZyBLZXlmcmFtZVZhbHVlID0gc3RkOjp2YXJpYW50PGZsb2F0LCBXZWJDb3JlOjpDb2xv
ciwgV2ViQ29yZTo6RmxvYXRQb2ludDNELCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCwg
UmVmUHRyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbj4+OwogCiAgICAgc3RydWN0IFByb3BlcnRp
ZXMgewogICAgICAgICBQcm9wZXJ0aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0RPTS9ET01IVE1MU2VsZWN0RWxlbWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0RPTS9ET01IVE1MU2VsZWN0RWxlbWVudC5tbQppbmRleCA3N2M1MDRjODdlN2FlZWNlOWVm
MWQ3NTJiYmE4NjIwMWUxZGRhNmVmLi44MzcwYWUyMDExMGFiNDE5ZjQ2NjBmZmJmOWM3Zjg2NjRh
NTE0ZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTFNl
bGVjdEVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUhUTUxT
ZWxlY3RFbGVtZW50Lm1tCkBAIC0xODUsNyArMTg1LDcgQEAKICAgICAgICAgcmFpc2VUeXBlRXJy
b3JFeGNlcHRpb24oKTsKIAogICAgIGF1dG8mIGNvcmVFbGVtZW50ID0gKmNvcmUoZWxlbWVudCk7
Ci0gICAgVmFyaWFudDxSZWZQdHI8V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+LCBSZWZQdHI8
V2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudD4+IHZhcmlhbnRFbGVtZW50OworICAgIHN0ZDo6
dmFyaWFudDxSZWZQdHI8V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+LCBSZWZQdHI8V2ViQ29y
ZTo6SFRNTE9wdEdyb3VwRWxlbWVudD4+IHZhcmlhbnRFbGVtZW50OwogICAgIGlmIChpczxXZWJD
b3JlOjpIVE1MT3B0aW9uRWxlbWVudD4oY29yZUVsZW1lbnQpKQogICAgICAgICB2YXJpYW50RWxl
bWVudCA9ICZkb3duY2FzdDxXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudD4oY29yZUVsZW1lbnQp
OwogICAgIGVsc2UgaWYgKGlzPFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ+KGNvcmVFbGVt
ZW50KSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441006</attachid>
            <date>2021-10-12 15:52:29 -0700</date>
            <delta_ts>2021-10-12 16:01:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231629-20211012165228.patch</filename>
            <type>text/plain</type>
            <size>179959</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDIxLTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgVXNlIHN0ZDo6dmFyaWFudCBpbnN0ZWFkIG9mIFdURjo6VmFyaWFudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9T
dHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50Lmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUNhbGxET00pOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmVmFsdWUpOgorICAgICAgICAqIGppdC9Bc3Nl
bWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZlRy
dXRoeSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZGYWxzZXkpOgor
ICAgICAgICAqIGppdC9TbmlwcGV0UmVnLmg6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAg
KiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKiBwYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5o
OgorICAgICAgICAqIHJ1bnRpbWUvQnl0ZWNvZGVDYWNoZUVycm9yLmg6CisgICAgICAgICogcnVu
dGltZS9DYWNoZVBheWxvYWQuY3BwOgorICAgICAgICAoSlNDOjpDYWNoZVBheWxvYWQ6OkNhY2hl
UGF5bG9hZCk6CisgICAgICAgICogcnVudGltZS9DYWNoZVBheWxvYWQuaDoKKyAgICAgICAgKiBy
dW50aW1lL0NhY2hlVXBkYXRlLmg6CisgICAgICAgICogcnVudGltZS9JU084NjAxLmNwcDoKKyAg
ICAgICAgKEpTQzo6SVNPODYwMTo6cGFyc2VUaW1lWm9uZUJyYWNrZXRlZEFubm90YXRpb24pOgor
ICAgICAgICAqIHJ1bnRpbWUvSVNPODYwMS5oOgorICAgICAgICAqIHdhc20vV2FzbUxMSW50R2Vu
ZXJhdG9yLmNwcDoKKwogMjAyMS0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEJlZ2luIG1pZ3JhdGlvbiBmcm9tIFdURjo6VmFyaWFu
dCB0byBzdGQ6OnZhcmlhbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAyODQw
MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjA5LDkgKzIwOSw5IEBAIHN0YXRpYyB2b2lkIGNoZWNrRXhjZXB0aW9uKEdsb2JhbE9iamVjdCoK
IGNsYXNzIE1lc3NhZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TWVzc2FnZT4gewog
cHVibGljOgogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICB1c2luZyBDb250ZW50ID0gVmFy
aWFudDxBcnJheUJ1ZmZlckNvbnRlbnRzLCBSZWY8V2FzbTo6TWVtb3J5SGFuZGxlPj47CisgICAg
dXNpbmcgQ29udGVudCA9IHN0ZDo6dmFyaWFudDxBcnJheUJ1ZmZlckNvbnRlbnRzLCBSZWY8V2Fz
bTo6TWVtb3J5SGFuZGxlPj47CiAjZWxzZQotICAgIHVzaW5nIENvbnRlbnQgPSBWYXJpYW50PEFy
cmF5QnVmZmVyQ29udGVudHM+OworICAgIHVzaW5nIENvbnRlbnQgPSBzdGQ6OnZhcmlhbnQ8QXJy
YXlCdWZmZXJDb250ZW50cz47CiAjZW5kaWYKICAgICBNZXNzYWdlKENvbnRlbnQmJiwgaW50MzJf
dCk7CiAgICAgfk1lc3NhZ2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQu
aAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0
cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODksNyAr
ODksNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KICAgICAKLSAgICB1c2luZyBOb2RlID0gVmFy
aWFudDxTdHJ1Y3R1cmVUcmFuc2l0aW9uU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCwg
QWRhcHRpdmVWYWx1ZVN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQ+OworICAgIHVzaW5n
IE5vZGUgPSBzdGQ6OnZhcmlhbnQ8U3RydWN0dXJlVHJhbnNpdGlvblN0cnVjdHVyZVN0dWJDbGVh
cmluZ1dhdGNocG9pbnQsIEFkYXB0aXZlVmFsdWVTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBv
aW50PjsKIAogICAgIE5vZGUmIGFkZFdhdGNocG9pbnQoY29uc3QgT2JqZWN0UHJvcGVydHlDb25k
aXRpb24mIGtleSk7CiAgICAgCkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICBTdHJ1
Y3R1cmVTdHViSW5mbyogbV9zdHViSW5mbzsKICAgICAvLyBGSVhNRTogdXNlIGxlc3MgbWVtb3J5
IGZvciB0aGUgZW50cmllcyBpbiB0aGlzIEJhZzoKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMzgwCi0gICAgQmFnPFdURjo6VmFyaWFudDxTdHJ1Y3R1
cmVUcmFuc2l0aW9uU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCwgQWRhcHRpdmVWYWx1
ZVN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQ+PiBtX3dhdGNocG9pbnRzOworICAgIEJh
ZzxzdGQ6OnZhcmlhbnQ8U3RydWN0dXJlVHJhbnNpdGlvblN0cnVjdHVyZVN0dWJDbGVhcmluZ1dh
dGNocG9pbnQsIEFkYXB0aXZlVmFsdWVTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50Pj4g
bV93YXRjaHBvaW50czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDI4
NDAwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDU1NSw3ICsxMDU1NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVDYWxsRE9NKE5vZGUKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGF2ZSBh
IHdheSB0byBjYWxsIGZ1bmN0aW9ucyB3aXRoIHRoZSB2ZWN0b3Igb2YgcmVnaXN0ZXJzLgogICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMwOTkKLSAgICB1
c2luZyBPcGVyYW5kVmFyaWFudCA9IFZhcmlhbnQ8U3BlY3VsYXRlQ2VsbE9wZXJhbmQsIFNwZWN1
bGF0ZUludDMyT3BlcmFuZCwgU3BlY3VsYXRlQm9vbGVhbk9wZXJhbmQ+OworICAgIHVzaW5nIE9w
ZXJhbmRWYXJpYW50ID0gc3RkOjp2YXJpYW50PFNwZWN1bGF0ZUNlbGxPcGVyYW5kLCBTcGVjdWxh
dGVJbnQzMk9wZXJhbmQsIFNwZWN1bGF0ZUJvb2xlYW5PcGVyYW5kPjsKICAgICBWZWN0b3I8T3Bl
cmFuZFZhcmlhbnQsIEpTQ19ET01KSVRfU0lHTkFUVVJFX01BWF9BUkdVTUVOVFNfSU5DTFVESU5H
X1RISVM+IG9wZXJhbmRzOwogICAgIFZlY3RvcjxHUFJSZWcsIEpTQ19ET01KSVRfU0lHTkFUVVJF
X01BWF9BUkdVTUVOVFNfSU5DTFVESU5HX1RISVM+IHJlZ3M7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAJKHJldmlzaW9uIDI4NDAwMikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTI4LDcgKzkyOCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0Q29u
dmVydFZhbHVlVG8KICAgICBkb25lLmxpbmsodGhpcyk7CiB9CiAKLUFzc2VtYmx5SGVscGVyczo6
SnVtcExpc3QgQXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZlZhbHVlKFZNJiB2bSwgSlNWYWx1ZVJl
Z3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNoLCBHUFJSZWcgc2NyYXRjaElmU2hvdWxkQ2hlY2tNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkLCBGUFJSZWcgdmFsdWVBc0ZQUiwgRlBSUmVnIHRlbXBGUFIsIGJv
b2wgc2hvdWxkQ2hlY2tNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCBWYXJpYW50PEpTR2xvYmFsT2Jq
ZWN0KiwgR1BSUmVnPiBnbG9iYWxPYmplY3QsIGJvb2wgaW52ZXJ0KQorQXNzZW1ibHlIZWxwZXJz
OjpKdW1wTGlzdCBBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmVmFsdWUoVk0mIHZtLCBKU1ZhbHVl
UmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIEdQUlJlZyBzY3JhdGNoSWZTaG91bGRDaGVja01h
c3F1ZXJhZGVzQXNVbmRlZmluZWQsIEZQUlJlZyB2YWx1ZUFzRlBSLCBGUFJSZWcgdGVtcEZQUiwg
Ym9vbCBzaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHN0ZDo6dmFyaWFudDxKU0ds
b2JhbE9iamVjdCosIEdQUlJlZz4gZ2xvYmFsT2JqZWN0LCBib29sIGludmVydCkKIHsKICAgICAv
LyBJbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgY29udHJvbCBmbG93IHN0cnVjdHVyZToKICAgICAv
LyBpZiAodmFsdWUgaXMgY2VsbCkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0Fzc2VtYmx5SGVscGVycy5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODAyLDEyICsx
ODAyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRy
KSwgQWRkcmVzcyhyZXN1bHRHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSkpOwogICAg
IH0KIAotICAgIEp1bXBMaXN0IGJyYW5jaElmVmFsdWUoVk0mLCBKU1ZhbHVlUmVncywgR1BSUmVn
IHNjcmF0Y2gsIEdQUlJlZyBzY3JhdGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQsIEZQUlJlZywgRlBSUmVnLCBib29sIHNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCwgVmFyaWFudDxKU0dsb2JhbE9iamVjdCosIEdQUlJlZz4sIGJvb2wgbmVnYXRlUmVzdWx0KTsK
LSAgICBKdW1wTGlzdCBicmFuY2hJZlRydXRoeShWTSYgdm0sIEpTVmFsdWVSZWdzIHZhbHVlLCBH
UFJSZWcgc2NyYXRjaCwgR1BSUmVnIHNjcmF0Y2hJZlNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCwgRlBSUmVnIHNjcmF0Y2hGUFIwLCBGUFJSZWcgc2NyYXRjaEZQUjEsIGJvb2wgc2hv
dWxkQ2hlY2tNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCBWYXJpYW50PEpTR2xvYmFsT2JqZWN0Kiwg
R1BSUmVnPiBnbG9iYWxPYmplY3QpCisgICAgSnVtcExpc3QgYnJhbmNoSWZWYWx1ZShWTSYsIEpT
VmFsdWVSZWdzLCBHUFJSZWcgc2NyYXRjaCwgR1BSUmVnIHNjcmF0Y2hJZlNob3VsZENoZWNrTWFz
cXVlcmFkZXNBc1VuZGVmaW5lZCwgRlBSUmVnLCBGUFJSZWcsIGJvb2wgc2hvdWxkQ2hlY2tNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkLCBzdGQ6OnZhcmlhbnQ8SlNHbG9iYWxPYmplY3QqLCBHUFJSZWc+
LCBib29sIG5lZ2F0ZVJlc3VsdCk7CisgICAgSnVtcExpc3QgYnJhbmNoSWZUcnV0aHkoVk0mIHZt
LCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIEdQUlJlZyBzY3JhdGNoSWZTaG91
bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIEZQUlJlZyBzY3JhdGNoRlBSMCwgRlBSUmVn
IHNjcmF0Y2hGUFIxLCBib29sIHNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgc3Rk
Ojp2YXJpYW50PEpTR2xvYmFsT2JqZWN0KiwgR1BSUmVnPiBnbG9iYWxPYmplY3QpCiAgICAgewog
ICAgICAgICByZXR1cm4gYnJhbmNoSWZWYWx1ZSh2bSwgdmFsdWUsIHNjcmF0Y2gsIHNjcmF0Y2hJ
ZlNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgc2NyYXRjaEZQUjAsIHNjcmF0Y2hG
UFIxLCBzaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIGdsb2JhbE9iamVjdCwgZmFs
c2UpOwogICAgIH0KLSAgICBKdW1wTGlzdCBicmFuY2hJZkZhbHNleShWTSYgdm0sIEpTVmFsdWVS
ZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgR1BSUmVnIHNjcmF0Y2hJZlNob3VsZENoZWNrTWFz
cXVlcmFkZXNBc1VuZGVmaW5lZCwgRlBSUmVnIHNjcmF0Y2hGUFIwLCBGUFJSZWcgc2NyYXRjaEZQ
UjEsIGJvb2wgc2hvdWxkQ2hlY2tNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCBWYXJpYW50PEpTR2xv
YmFsT2JqZWN0KiwgR1BSUmVnPiBnbG9iYWxPYmplY3QpCisgICAgSnVtcExpc3QgYnJhbmNoSWZG
YWxzZXkoVk0mIHZtLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIEdQUlJlZyBz
Y3JhdGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIEZQUlJlZyBzY3JhdGNo
RlBSMCwgRlBSUmVnIHNjcmF0Y2hGUFIxLCBib29sIHNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCwgc3RkOjp2YXJpYW50PEpTR2xvYmFsT2JqZWN0KiwgR1BSUmVnPiBnbG9iYWxPYmpl
Y3QpCiAgICAgewogICAgICAgICByZXR1cm4gYnJhbmNoSWZWYWx1ZSh2bSwgdmFsdWUsIHNjcmF0
Y2gsIHNjcmF0Y2hJZlNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgc2NyYXRjaEZQ
UjAsIHNjcmF0Y2hGUFIxLCBzaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIGdsb2Jh
bE9iamVjdCwgdHJ1ZSk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9T
bmlwcGV0UmVnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Tbmlw
cGV0UmVnLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
U25pcHBldFJlZy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgVmFyaWFudDxHUFJSZWcsIEZQUlJlZywgSlNWYWx1ZVJlZ3M+
IG1fdmFyaWFudDsKKyAgICBzdGQ6OnZhcmlhbnQ8R1BSUmVnLCBGUFJSZWcsIEpTVmFsdWVSZWdz
PiBtX3ZhcmlhbnQ7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0xleGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhl
ci5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xl
eGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MCw3ICsxODAsNyBAQCBwcml2YXRlOgogICAgIHRl
bXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gQUxXQVlTX0lOTElORSBTdHJpbmdQYXJz
ZVJlc3VsdCBwYXJzZUNvbXBsZXhFc2NhcGUoYm9vbCBzdHJpY3RNb2RlKTsKICAgICBBTFdBWVNf
SU5MSU5FIFN0cmluZ1BhcnNlUmVzdWx0IHBhcnNlVGVtcGxhdGVMaXRlcmFsKEpTVG9rZW5EYXRh
KiwgUmF3U3RyaW5nc0J1aWxkTW9kZSk7CiAgICAgCi0gICAgdXNpbmcgTnVtYmVyUGFyc2VSZXN1
bHQgPSBWYXJpYW50PGRvdWJsZSwgY29uc3QgSWRlbnRpZmllcio+OworICAgIHVzaW5nIE51bWJl
clBhcnNlUmVzdWx0ID0gc3RkOjp2YXJpYW50PGRvdWJsZSwgY29uc3QgSWRlbnRpZmllcio+Owog
ICAgIEFMV0FZU19JTkxJTkUgc3RkOjpvcHRpb25hbDxOdW1iZXJQYXJzZVJlc3VsdD4gcGFyc2VI
ZXgoKTsKICAgICBBTFdBWVNfSU5MSU5FIHN0ZDo6b3B0aW9uYWw8TnVtYmVyUGFyc2VSZXN1bHQ+
IHBhcnNlQmluYXJ5KCk7CiAgICAgQUxXQVlTX0lOTElORSBzdGQ6Om9wdGlvbmFsPE51bWJlclBh
cnNlUmVzdWx0PiBwYXJzZU9jdGFsKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaAkocmV2aXNpb24gMjg0MDAyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0Myw3ICszNDMsNyBAQCBjbGFzcyBDb21wYWN0VERaRW52aXJvbm1lbnQg
ewogCiAgICAgdXNpbmcgQ29tcGFjdCA9IFZlY3RvcjxQYWNrZWRSZWZQdHI8VW5pcXVlZFN0cmlu
Z0ltcGw+PjsKICAgICB1c2luZyBJbmZsYXRlZCA9IFREWkVudmlyb25tZW50OwotICAgIHVzaW5n
IFZhcmlhYmxlcyA9IFZhcmlhbnQ8Q29tcGFjdCwgSW5mbGF0ZWQ+OworICAgIHVzaW5nIFZhcmlh
YmxlcyA9IHN0ZDo6dmFyaWFudDxDb21wYWN0LCBJbmZsYXRlZD47CiAKIHB1YmxpYzoKICAgICBD
b21wYWN0VERaRW52aXJvbm1lbnQoY29uc3QgVERaRW52aXJvbm1lbnQmKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5oCShy
ZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CeXRlY29k
ZUNhY2hlRXJyb3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdDsKIAogcHJpdmF0ZToK
LSAgICBWYXJpYW50PFBhcnNlckVycm9yLCBTdGFuZGFyZEVycm9yLCBXcml0ZUVycm9yPiBtX2Vy
cm9yOworICAgIHN0ZDo6dmFyaWFudDxQYXJzZXJFcnJvciwgU3RhbmRhcmRFcnJvciwgV3JpdGVF
cnJvcj4gbV9lcnJvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVQYXlsb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuY3BwCShyZXZpc2lvbiAyODQw
MDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVBheWxvYWQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIENhY2hlUGF5bG9hZDo6Q2FjaGVQYXlsb2Fk
KENhY2hlUGF5bG9hZCYKICAgICBvdGhlci5tX2RhdGEgPSBzdGQ6OnBhaXIgeyBudWxscHRyLCAw
IH07CiB9CiAKLUNhY2hlUGF5bG9hZDo6Q2FjaGVQYXlsb2FkKFZhcmlhbnQ8RmlsZVN5c3RlbTo6
TWFwcGVkRmlsZURhdGEsIHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+LCBz
aXplX3Q+PiYmIGRhdGEpCitDYWNoZVBheWxvYWQ6OkNhY2hlUGF5bG9hZChzdGQ6OnZhcmlhbnQ8
RmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEsIHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhfdCwg
Vk1NYWxsb2M+LCBzaXplX3Q+PiYmIGRhdGEpCiAgICAgOiBtX2RhdGEoV1RGTW92ZShkYXRhKSkK
IHsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9h
ZC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
YWNoZVBheWxvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsOSBAQCBwdWJsaWM6CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IHNpemUoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAg
ICBDYWNoZVBheWxvYWQoVmFyaWFudDxGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSwgc3RkOjpw
YWlyPE1hbGxvY1B0cjx1aW50OF90LCBWTU1hbGxvYz4sIHNpemVfdD4+JiYpOworICAgIENhY2hl
UGF5bG9hZChzdGQ6OnZhcmlhbnQ8RmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEsIHN0ZDo6cGFp
cjxNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+LCBzaXplX3Q+PiYmKTsKIAotICAgIFZhcmlh
bnQ8RmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEsIHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhf
dCwgVk1NYWxsb2M+LCBzaXplX3Q+PiBtX2RhdGE7CisgICAgc3RkOjp2YXJpYW50PEZpbGVTeXN0
ZW06Ok1hcHBlZEZpbGVEYXRhLCBzdGQ6OnBhaXI8TWFsbG9jUHRyPHVpbnQ4X3QsIFZNTWFsbG9j
Piwgc2l6ZV90Pj4gbV9kYXRhOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVVwZGF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlVXBkYXRlLmgJKHJldmlzaW9uIDI4NDAw
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlVXBkYXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIGNvbnN0IEZ1bmN0aW9uVXBk
YXRlJiBhc0Z1bmN0aW9uKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgVmFyaWFudDxHbG9iYWxV
cGRhdGUsIEZ1bmN0aW9uVXBkYXRlPiBtX3VwZGF0ZTsKKyAgICBzdGQ6OnZhcmlhbnQ8R2xvYmFs
VXBkYXRlLCBGdW5jdGlvblVwZGF0ZT4gbV91cGRhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuY3BwCShyZXZp
c2lvbiAyODQwMDIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDMwLDcgKzQzMCw3IEBAIHN0ZDo6b3B0aW9uYWw8aW50NjRf
dD4gcGFyc2VUaW1lWm9uZU51bWUKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlw
ZT4KLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8VmVjdG9yPExDaGFyPiwgaW50NjRfdD4+
IHBhcnNlVGltZVpvbmVCcmFja2V0ZWRBbm5vdGF0aW9uKFN0cmluZ1BhcnNpbmdCdWZmZXI8Q2hh
cmFjdGVyVHlwZT4mIGJ1ZmZlcikKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxW
ZWN0b3I8TENoYXI+LCBpbnQ2NF90Pj4gcGFyc2VUaW1lWm9uZUJyYWNrZXRlZEFubm90YXRpb24o
U3RyaW5nUGFyc2luZ0J1ZmZlcjxDaGFyYWN0ZXJUeXBlPiYgYnVmZmVyKQogewogICAgIC8vIGh0
dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jcHJvZC1UaW1lWm9uZUJyYWNrZXRlZEFu
bm90YXRpb24KICAgICAvLyBUaW1lWm9uZUJyYWNrZXRlZEFubm90YXRpb24gOgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuaAkocmV2aXNpb24gMjg0MDAyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDYsMTQgKzE0NiwxNCBAQCBwcml2YXRlOgogICAgIHVpbnQ4X3QgbV9kYXkgeyAxIH07CiB9
OwogCi11c2luZyBUaW1lWm9uZSA9IFZhcmlhbnQ8VGltZVpvbmVJRCwgaW50NjRfdD47Cit1c2lu
ZyBUaW1lWm9uZSA9IHN0ZDo6dmFyaWFudDxUaW1lWm9uZUlELCBpbnQ2NF90PjsKIAogLy8gaHR0
cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXRlbXBvcmFsLyNzZWMtdGVtcG9yYWwtcGFyc2V0ZW1wb3Jh
bHRpbWV6b25lc3RyaW5nCiAvLyBSZWNvcmQgeyBbW1pdXSwgW1tPZmZzZXRTdHJpbmddXSwgW1tO
YW1lXV0gfQogc3RydWN0IFRpbWVab25lUmVjb3JkIHsKICAgICBib29sIG1feiB7IGZhbHNlIH07
CiAgICAgc3RkOjpvcHRpb25hbDxpbnQ2NF90PiBtX29mZnNldDsKLSAgICBWYXJpYW50PFZlY3Rv
cjxMQ2hhcj4sIGludDY0X3Q+IG1fbmFtZU9yT2Zmc2V0OworICAgIHN0ZDo6dmFyaWFudDxWZWN0
b3I8TENoYXI+LCBpbnQ2NF90PiBtX25hbWVPck9mZnNldDsKIH07CiAKIC8vIGh0dHBzOi8vdGMz
OS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jc3VwLWlzdmFsaWR0aW1lem9uZW5hbWUKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAko
cmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50
R2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsOCArODAsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIHVuc2lnbmVkIG1fdHJ5RGVwdGg7CiAgICAgfTsKIAotICAgIHN0cnVjdCBDb250cm9s
VHlwZSA6IHB1YmxpYyBWYXJpYW50PENvbnRyb2xMb29wLCBDb250cm9sVG9wTGV2ZWwsIENvbnRy
b2xCbG9jaywgQ29udHJvbElmLCBDb250cm9sVHJ5LCBDb250cm9sQ2F0Y2g+IHsKLSAgICAgICAg
dXNpbmcgQmFzZSA9IFZhcmlhbnQ8Q29udHJvbExvb3AsIENvbnRyb2xUb3BMZXZlbCwgQ29udHJv
bEJsb2NrLCBDb250cm9sSWYsIENvbnRyb2xUcnksIENvbnRyb2xDYXRjaD47CisgICAgc3RydWN0
IENvbnRyb2xUeXBlIDogcHVibGljIHN0ZDo6dmFyaWFudDxDb250cm9sTG9vcCwgQ29udHJvbFRv
cExldmVsLCBDb250cm9sQmxvY2ssIENvbnRyb2xJZiwgQ29udHJvbFRyeSwgQ29udHJvbENhdGNo
PiB7CisgICAgICAgIHVzaW5nIEJhc2UgPSBzdGQ6OnZhcmlhbnQ8Q29udHJvbExvb3AsIENvbnRy
b2xUb3BMZXZlbCwgQ29udHJvbEJsb2NrLCBDb250cm9sSWYsIENvbnRyb2xUcnksIENvbnRyb2xD
YXRjaD47CiAKICAgICAgICAgQ29udHJvbFR5cGUoKQogICAgICAgICAgICAgOiBCYXNlKENvbnRy
b2xCbG9jayB7IH0pCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dURi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xMiAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBzdGQ6
OnZhcmlhbnQgaW5zdGVhZCBvZiBXVEY6OlZhcmlhbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTYyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0xpa2VseURlbnNlVW5zaWduZWRJbnRlZ2Vy
U2V0Lmg6CisgICAgICAgICogd3RmL1NtYWxsU2V0Lmg6CisgICAgICAgICogd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAoV1RGOjptYXBNb2RlVG9CYWNraW5nSXRlcmF0
b3IpOgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6CisgICAgICAgICog
d3RmL3RleHQvY29jb2EvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVUNvY29hLmNwcDoKKyAg
ICAgICAgKFdURjo6bWFwTW9kZVRvQmFja2luZ0l0ZXJhdG9yKToKKwogMjAyMS0xMC0xMiAgUm9z
cyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBXaW5DYWlybyBidWlsZCBmaXggZm9yIHIyODM5NDMuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9M
aWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL0xpa2VseURlbnNlVW5zaWduZWRJbnRlZ2VyU2V0LmgJKHJldmlzaW9uIDI4NDAwMikKKysr
IFNvdXJjZS9XVEYvd3RmL0xpa2VseURlbnNlVW5zaWduZWRJbnRlZ2VyU2V0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAKIERFQ0xBUkVfQUxMT0NB
VE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKExpa2VseURlbnNlVW5zaWduZWRJbnRlZ2VyU2V0KTsK
IAotLy8gVGhpcyBpcyBlZmZlY3RpdmVseSBhIFZhcmlhbnQ8SGFzaFNldCwgUGFpcjxCaXRWZWN0
b3IsIEluZGV4VHlwZT4+CisvLyBUaGlzIGlzIGVmZmVjdGl2ZWx5IGEgc3RkOjp2YXJpYW50PEhh
c2hTZXQsIFBhaXI8Qml0VmVjdG9yLCBJbmRleFR5cGU+PgogLy8gSWYgaXQgaXMgaW4gQml0VmVj
dG9yIG1vZGUsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSBtaW5pbXVtIHZhbHVlIGluIHRoZSBzZXQs
IGFuZCBoYXMgdGhlIGJpdFZlY3RvciBzaGlmdGVkIGJ5IHRoZSBzYW1lIGFtb3VudC4KIC8vIFNv
IGZvciBleGFtcGxlIHs0MDAwLCA0MDAyLCA0MDAzfSB3b3VsZCBiZSByZXByZXNlbnRlZCBhcyB0
aGUgYml0VmVjdG9yIDExMDEgd2l0aCBhIG1fbWluIG9mIDQwMDAuCiAvLyBJdCBzaGlmdHMgYmV0
d2VlbiB0aGUgdHdvIG1vZGVzIHdoZW5ldmVyIHRoYXQgd291bGQgYXQgbGVhc3QgaGFsdmUgaXRz
IG1lbW9yeSB1c2FnZS4gU28gaXQgd2lsbCBuZXZlciB1c2UgbW9yZSB0aGFuIHR3aWNlIHRoZSBv
cHRpbWFsIGFtb3VudCBvZiBtZW1vcnksIGFuZCB5ZXQgc2hvdWxkIG5vdCBwaW5nLXBvbmcgYmV0
d2VlbiB0aGUgdHdvIG1vZGVzIHRvbyBvZnRlbi4KQEAgLTIxOSw3ICsyMTksNyBAQCBwdWJsaWM6
CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdURjo6VmFyaWFudDxCaXRWZWN0
b3I6Oml0ZXJhdG9yLCB0eXBlbmFtZSBTZXQ6Oml0ZXJhdG9yPiBtX3VuZGVybHlpbmc7CisgICAg
ICAgIHN0ZDo6dmFyaWFudDxCaXRWZWN0b3I6Oml0ZXJhdG9yLCB0eXBlbmFtZSBTZXQ6Oml0ZXJh
dG9yPiBtX3VuZGVybHlpbmc7CiAgICAgICAgIEluZGV4VHlwZSBtX3NoaWZ0OwogICAgIH07CiAK
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL1NtYWxsU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvU21hbGxTZXQuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dURi93dGYvU21h
bGxTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV1RGIHsK
IAogREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoU21hbGxTZXQpOwogCi0v
LyBGdW5jdGlvbmFsbHksIHRoaXMgY2xhc3MgaXMgdmVyeSBzaW1pbGFyIHRvIFZhcmlhbnQ8VmVj
dG9yPFQsIFNtYWxsQXJyYXlTaXplPiwgSGFzaFNldDxUPj4KKy8vIEZ1bmN0aW9uYWxseSwgdGhp
cyBjbGFzcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gc3RkOjp2YXJpYW50PFZlY3RvcjxULCBTbWFsbEFy
cmF5U2l6ZT4sIEhhc2hTZXQ8VD4+CiAvLyBJdCBpcyBvcHRpbWl6ZWQgcHJpbWFyaWx5IGZvciBz
cGFjZSwgYnV0IGlzIGFsc28gcXVpdGUgZmFzdAogLy8gSXRzIG1haW4gbGltaXRhdGlvbiBpcyB0
aGF0IGl0IGhhcyBubyB3YXkgdG8gcmVtb3ZlIGVsZW1lbnRzIG9uY2UgdGhleSBoYXZlIGJlZW4g
YWRkZWQgdG8gaXQKIC8vIEFsc28sIGluc3RlYWQgb2YgYmVpbmcgZnVsbHkgcGFyYW1ldGVyaXpl
ZCBieSBhIEhhc2hUcmFpdCBwYXJhbWV0ZXIsIGl0IGFsd2F5cyB1c2VzIC0xIChhbGwgb25lcykg
YXMgaXRzIGVtcHR5IHZhbHVlCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dURi93dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgVGV4dEJy
ZWFrSXRlcmF0b3JDYWNoZSYgVGV4dEJyZWFrSXRlcmF0bwogCiAjaWYgIVBMQVRGT1JNKE1BQykg
JiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAKLXN0YXRpYyBWYXJpYW50PFRleHRCcmVha0l0ZXJh
dG9ySUNVLCBUZXh0QnJlYWtJdGVyYXRvclBsYXRmb3JtPiBtYXBNb2RlVG9CYWNraW5nSXRlcmF0
b3IoU3RyaW5nVmlldyBzdHJpbmcsIFRleHRCcmVha0l0ZXJhdG9yOjpNb2RlIG1vZGUsIGNvbnN0
IEF0b21TdHJpbmcmIGxvY2FsZSkKK3N0YXRpYyBzdGQ6OnZhcmlhbnQ8VGV4dEJyZWFrSXRlcmF0
b3JJQ1UsIFRleHRCcmVha0l0ZXJhdG9yUGxhdGZvcm0+IG1hcE1vZGVUb0JhY2tpbmdJdGVyYXRv
cihTdHJpbmdWaWV3IHN0cmluZywgVGV4dEJyZWFrSXRlcmF0b3I6Ok1vZGUgbW9kZSwgY29uc3Qg
QXRvbVN0cmluZyYgbG9jYWxlKQogewogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgVGV4
dEJyZWFrSXRlcmF0b3I6Ok1vZGU6OkxpbmU6CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1Rl
eHRCcmVha0l0ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0
L1RleHRCcmVha0l0ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw3ICsxMDIsNyBAQCBw
cml2YXRlOgogICAgICAgICByZXR1cm4gbV9sb2NhbGU7CiAgICAgfQogCi0gICAgVmFyaWFudDxU
ZXh0QnJlYWtJdGVyYXRvcklDVSwgVGV4dEJyZWFrSXRlcmF0b3JQbGF0Zm9ybT4gbV9iYWNraW5n
OworICAgIHN0ZDo6dmFyaWFudDxUZXh0QnJlYWtJdGVyYXRvcklDVSwgVGV4dEJyZWFrSXRlcmF0
b3JQbGF0Zm9ybT4gbV9iYWNraW5nOwogICAgIE1vZGUgbV9tb2RlOwogICAgIEF0b21TdHJpbmcg
bV9sb2NhbGU7CiB9OwpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9jb2NvYS9UZXh0QnJlYWtJ
dGVyYXRvckludGVybmFsSUNVQ29jb2EuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L3RleHQvY29jb2EvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVUNvY29hLmNwcAkocmV2aXNp
b24gMjg0MDAyKQorKysgU291cmNlL1dURi93dGYvdGV4dC9jb2NvYS9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVQ29jb2EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIG5h
bWVzcGFjZSBXVEYgewogLy8gQnVmZmVyIHNpemVkIHRvIGhvbGQgQVNDSUkgbG9jYWxlIElEIHN0
cmluZ3MgdXAgdG8gMzIgY2hhcmFjdGVycyBsb25nLgogdXNpbmcgTG9jYWxlSURCdWZmZXIgPSBz
dGQ6OmFycmF5PGNoYXIsIDMzPjsKIAotc3RhdGljIFZhcmlhbnQ8VGV4dEJyZWFrSXRlcmF0b3JJ
Q1UsIFRleHRCcmVha0l0ZXJhdG9yUGxhdGZvcm0+IG1hcE1vZGVUb0JhY2tpbmdJdGVyYXRvcihT
dHJpbmdWaWV3IHN0cmluZywgVGV4dEJyZWFrSXRlcmF0b3I6Ok1vZGUgbW9kZSwgY29uc3QgQXRv
bVN0cmluZyYgbG9jYWxlKQorc3RhdGljIHN0ZDo6dmFyaWFudDxUZXh0QnJlYWtJdGVyYXRvcklD
VSwgVGV4dEJyZWFrSXRlcmF0b3JQbGF0Zm9ybT4gbWFwTW9kZVRvQmFja2luZ0l0ZXJhdG9yKFN0
cmluZ1ZpZXcgc3RyaW5nLCBUZXh0QnJlYWtJdGVyYXRvcjo6TW9kZSBtb2RlLCBjb25zdCBBdG9t
U3RyaW5nJiBsb2NhbGUpCiB7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBUZXh0QnJl
YWtJdGVyYXRvcjo6TW9kZTo6TGluZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NDAwMikK
KysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2
NiBAQAorMjAyMS0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIFVzZSBzdGQ6OnZhcmlhbnQgaW5zdGVhZCBvZiBXVEY6OlZhcmlhbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTYyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2ZldGNoL0ZldGNoQm9keS5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3du
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5oOgorICAgICAgICAq
IE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmg6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlEYXRhLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5oOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU1lZGlhQ29uc3RyYWludHMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRy
YWNrQ29uc3RyYWludHMuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVNl
cnZlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
aDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybS5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVs
SGFuZGxlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1J0cFNlbmRlckJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0
L1BheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5oOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hF
dmVudEluaXQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25P
cHRpb25zSW5pdC5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
VXBkYXRlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRPcHRpb25z
Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdEludGVyZmFjZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmg6CisgICAgICAgICogYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oOgorICAg
ICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpL
ZXlmcmFtZUVmZmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3QuaDoKKyAgICAgICAgKiBhbmltYXRpb24vT3B0aW9uYWxFZmZlY3RUaW1pbmcuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9JRExUeXBlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0J1ZmZlclNv
dXJjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVmFsdWVJbldyYXBwZWRPYmplY3QuaDoK
KyAgICAgICAgKiBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmg6CisgICAgICAgICogY3J5cHRvL0Ny
eXB0b0tleS5oOgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uaDoKKyAgICAgICAgKiBj
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1FY2RzYVBhcmFtcy5oOgorICAgICAgICAq
IGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMuaDoKKyAgICAgICAg
KiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmg6CisgICAg
ICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUGJrZGYyUGFyYW1zLmg6Cisg
ICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkSW1wb3J0
UGFyYW1zLmg6CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNh
SGFzaGVkS2V5R2VuUGFyYW1zLmg6CisgICAgICAgICogY3NzL0NTU0N1c3RvbVByb3BlcnR5VmFs
dWUuaDoKKyAgICAgICAgKiBjc3MvRE9NTWF0cml4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TU1hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKiBjc3MvRE9NTWF0cml4Lmg6CisgICAgICAgICog
Y3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1hdHJpeFJl
YWRPbmx5OjpjcmVhdGUpOgorICAgICAgICAqIGNzcy9ET01NYXRyaXhSZWFkT25seS5oOgorICAg
ICAgICAqIGNzcy9Gb250RmFjZS5oOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuaDoKKyAgICAg
ICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oOgorICAgICAgICAqIGNz
cy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1Vu
cGFyc2VkVmFsdWUuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20v
RG9jdW1lbnRNYXJrZXIuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjphbmltYXRlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9F
dmVudFRhcmdldC5oOgorICAgICAgICAqIGRvbS9NZXNzYWdlRXZlbnQuaDoKKyAgICAgICAgKiBk
b20vTm9kZS5oOgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5o
OgorICAgICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6ZmluZEZpcnN0TWlzc3BlbGxlZFdvcmRPclVuZ3Jh
bW1hdGljYWxQaHJhc2UgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5nSGVs
cGVyLmg6CisgICAgICAgICogZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oOgor
ICAgICAgICAqIGZpbGVhcGkvQmxvYi5oOgorICAgICAgICAqIGZpbGVhcGkvRmlsZVJlYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyOjpyZXN1bHQgY29uc3QpOgorICAgICAg
ICAqIGZpbGVhcGkvRmlsZVJlYWRlci5oOgorICAgICAgICAqIGZpbGVhcGkvTmV0d29ya1NlbmRR
dWV1ZS5oOgorICAgICAgICAqIGh0bWwvRE9NRm9ybURhdGEuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxBbGxDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbGxDb2xsZWN0aW9u
OjpuYW1lZE9ySW5kZXhlZEl0ZW1Pckl0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxBbGxDb2xsZWN0aW9uOjpuYW1lZEl0ZW1Pckl0ZW1zIGNvbnN0KToKKyAgICAgICAgKiBodG1s
L0hUTUxBbGxDb2xsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpuYW1lZEl0ZW0pOgorICAgICAgICAqIGh0
bWwvSFRNTERvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6
bmFtZWRJdGVtT3JJdGVtcyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xz
Q29sbGVjdGlvbi5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6bmFtZWRJdGVtKToKKyAgICAgICAgKiBodG1s
L0hUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSW1hZ2VCaXRtYXAuaDoKKyAgICAg
ICAgKiBodG1sL09mZnNjcmVlbkNhbnZhcy5oOgorICAgICAgICAqIGh0bWwvVVJMU2VhcmNoUGFy
YW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTFNlYXJjaFBhcmFtczo6Y3JlYXRlKToKKyAg
ICAgICAgKiBodG1sL1VSTFNlYXJjaFBhcmFtcy5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNTdHlsZS5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQu
aDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEFueS5oOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMTXVsdGlEcmF3Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5oOgorICAgICAgICAqIGh0bWwvdHJhY2svVHJhY2tFdmVudC5oOgorICAg
ICAgICAqIGh0bWwvdHJhY2svVlRUQ3VlLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNhbnZhcy5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmg6
CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94Lmg6CisgICAg
ICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oOgorICAgICAgICAq
IHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL0ludGVyc2Vj
dGlvbk9ic2VydmVyLmg6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9Q
ZXJmb3JtYW5jZS5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VNZWFzdXJlT3B0aW9ucy5o
OgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBlcmZvcm1hbmNlVXNlclRpbWluZzo6Y29udmVydE1hcmtUb1RpbWVzdGFtcCBjb25z
dCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuaDoKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L1Bhc3RlYm9hcmRDdXN0b21EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlQbGF0Zm9y
bURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmZvckVhY2hQ
bGF0Zm9ybVN0cmluZ09yQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJv
YXJkQ3VzdG9tRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0RlY29kaW5nT3B0aW9ucy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlRGVzY3JpcHRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lubGluZVBhdGhEYXRhLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2Vi
TS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlc291cmNlSGVhcC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNw
bGF5Q2FwdHVyZVNvdXJjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja01lZGlh
RGV2aWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ETlMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTFZh
bHVlLmg6CisgICAgICAgICogcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaDoKKyAgICAgICAgKiB0ZXN0aW5nL1R5cGVDb252ZXJz
aW9ucy5oOgorICAgICAgICAqIHdvcmtlcnMvU2hhcmVkV29ya2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXJlZFdvcmtlcjo6U2hhcmVkV29ya2VyKToKKyAgICAgICAgKiB3b3JrZXJzL1No
YXJlZFdvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5o
OgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorCiAyMDIxLTEwLTEyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGJ1aWxk
IHdpdGggZGlmZmVyZW50bHkgdW5pZmllZCBzb3VjZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlw
Ym9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0Rh
dGFTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBpbnZva2VDb21wbGV0aW9uSGFuZGxlcigpOwogCi0gICAgdXNpbmcgQnVmZmVyT3JT
dHJpbmcgPSBWYXJpYW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+OworICAgIHVzaW5nIEJ1
ZmZlck9yU3RyaW5nID0gc3RkOjp2YXJpYW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+Owog
ICAgIGNsYXNzIENsaXBib2FyZEl0ZW1UeXBlTG9hZGVyIDogcHVibGljIEZpbGVSZWFkZXJMb2Fk
ZXJDbGllbnQsIHB1YmxpYyBSZWZDb3VudGVkPENsaXBib2FyZEl0ZW1UeXBlTG9hZGVyPiB7CiAg
ICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUmVmPENsaXBib2FyZEl0ZW1UeXBlTG9hZGVyPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNh
Y2hlRW5naW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9E
T01DYWNoZUVuZ2luZS5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcg
QEAgRXhjZXB0aW9uIGNvbnZlcnRUb0V4Y2VwdGlvbkFuZExvZyhTY3JpcAogV0VCQ09SRV9FWFBP
UlQgYm9vbCBxdWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIGNhY2hlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBxdWVy
eUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBVUkwmIHVy
bCwgYm9vbCBoYXNWYXJ5U3RhciwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIHZhcnlI
ZWFkZXJzLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYpOwogCi11c2luZyBSZXNwb25zZUJvZHkg
PSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Rm9ybURhdGE+LCBSZWY8U2hhcmVkQnVmZmVy
Pj47Cit1c2luZyBSZXNwb25zZUJvZHkgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJl
ZjxGb3JtRGF0YT4sIFJlZjxTaGFyZWRCdWZmZXI+PjsKIFJlc3BvbnNlQm9keSBpc29sYXRlZFJl
c3BvbnNlQm9keShjb25zdCBSZXNwb25zZUJvZHkmKTsKIFdFQkNPUkVfRVhQT1JUIFJlc3BvbnNl
Qm9keSBjb3B5UmVzcG9uc2VCb2R5KGNvbnN0IFJlc3BvbnNlQm9keSYpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmgJKHJldmlzaW9uIDI4NDAwMikKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb25zdW1lQXNTdHJlYW0oRmV0
Y2hCb2R5T3duZXImLCBGZXRjaEJvZHlTb3VyY2UmKTsKIAotICAgIHVzaW5nIEluaXQgPSBWYXJp
YW50PFJlZlB0cjxCbG9iPiwgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxBcnJheUJ1
ZmZlcj4sIFJlZlB0cjxET01Gb3JtRGF0YT4sIFJlZlB0cjxVUkxTZWFyY2hQYXJhbXM+LCBSZWZQ
dHI8UmVhZGFibGVTdHJlYW0+LCBTdHJpbmc+OworICAgIHVzaW5nIEluaXQgPSBzdGQ6OnZhcmlh
bnQ8UmVmUHRyPEJsb2I+LCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEFycmF5QnVm
ZmVyPiwgUmVmUHRyPERPTUZvcm1EYXRhPiwgUmVmUHRyPFVSTFNlYXJjaFBhcmFtcz4sIFJlZlB0
cjxSZWFkYWJsZVN0cmVhbT4sIFN0cmluZz47CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPEZldGNo
Qm9keT4gZXh0cmFjdChJbml0JiYsIFN0cmluZyYpOwogICAgIEZldGNoQm9keSgpID0gZGVmYXVs
dDsKIApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8Rm9ybURhdGE+IGJv
ZHlBc0Zvcm1EYXRhKCkgY29uc3Q7CiAKLSAgICB1c2luZyBUYWtlbkRhdGEgPSBWYXJpYW50PHN0
ZDo6bnVsbHB0cl90LCBSZWY8Rm9ybURhdGE+LCBSZWY8U2hhcmVkQnVmZmVyPj47CisgICAgdXNp
bmcgVGFrZW5EYXRhID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Rm9ybURhdGE+
LCBSZWY8U2hhcmVkQnVmZmVyPj47CiAgICAgVGFrZW5EYXRhIHRha2UoKTsKIAogICAgIHZvaWQg
c2V0QXNGb3JtRGF0YShSZWY8Rm9ybURhdGE+JiYgZGF0YSkgeyBtX2RhdGEgPSBXVEZNb3ZlKGRh
dGEpOyB9CkBAIC0xMTksNyArMTE5LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBTdHJpbmcmIHRl
eHRCb2R5KCkgY29uc3QgeyByZXR1cm4gV1RGOjpnZXQ8U3RyaW5nPihtX2RhdGEpOyB9CiAgICAg
Y29uc3QgVVJMU2VhcmNoUGFyYW1zJiB1cmxTZWFyY2hQYXJhbXNCb2R5KCkgY29uc3QgeyByZXR1
cm4gV1RGOjpnZXQ8UmVmPGNvbnN0IFVSTFNlYXJjaFBhcmFtcz4+KG1fZGF0YSkuZ2V0KCk7IH0K
IAotICAgIHVzaW5nIERhdGEgPSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Y29uc3QgQmxv
Yj4sIFJlZjxGb3JtRGF0YT4sIFJlZjxjb25zdCBBcnJheUJ1ZmZlcj4sIFJlZjxjb25zdCBBcnJh
eUJ1ZmZlclZpZXc+LCBSZWY8Y29uc3QgVVJMU2VhcmNoUGFyYW1zPiwgU3RyaW5nPjsKKyAgICB1
c2luZyBEYXRhID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Y29uc3QgQmxvYj4s
IFJlZjxGb3JtRGF0YT4sIFJlZjxjb25zdCBBcnJheUJ1ZmZlcj4sIFJlZjxjb25zdCBBcnJheUJ1
ZmZlclZpZXc+LCBSZWY8Y29uc3QgVVJMU2VhcmNoUGFyYW1zPiwgU3RyaW5nPjsKICAgICBEYXRh
IG1fZGF0YSB7IG51bGxwdHIgfTsKIAogICAgIEZldGNoQm9keUNvbnN1bWVyIG1fY29uc3VtZXIg
eyBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6Tm9uZSB9OwpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaAkocmV2aXNpb24gMjg0MDAyKQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzEsNyArMTMxLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPEJsb2JM
b2FkZXI+IG1fYmxvYkxvYWRlcjsKICAgICBib29sIG1faXNCb2R5T3BhcXVlIHsgZmFsc2UgfTsK
IAotICAgIFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIEV4Y2VwdGlvbiwgUmVzb3VyY2VFcnJvcj4g
bV9sb2FkaW5nRXJyb3I7CisgICAgc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBFeGNlcHRp
b24sIFJlc291cmNlRXJyb3I+IG1fbG9hZGluZ0Vycm9yOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVy
cy5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAg
ICAgICAgUmVzcG9uc2UKICAgICB9OwogCi0gICAgdXNpbmcgSW5pdCA9IFZhcmlhbnQ8VmVjdG9y
PFZlY3RvcjxTdHJpbmc+PiwgVmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4+OworICAgIHVzaW5nIEluaXQgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+
PiwgVmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4+OwogICAgIHN0YXRp
YyBFeGNlcHRpb25PcjxSZWY8RmV0Y2hIZWFkZXJzPj4gY3JlYXRlKHN0ZDo6b3B0aW9uYWw8SW5p
dD4mJik7CiAKICAgICBzdGF0aWMgUmVmPEZldGNoSGVhZGVycz4gY3JlYXRlKEd1YXJkIGd1YXJk
ID0gR3VhcmQ6Ok5vbmUsIEhUVFBIZWFkZXJNYXAmJiBoZWFkZXJzID0geyB9KSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IEZldGNoSGVhZGVycyB7IGd1YXJkLCBXVEZNb3ZlKGhlYWRlcnMpIH0pOyB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgJKHJl
dmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1
ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgVVJMU2VhcmNoUGFy
YW1zOwogY2xhc3MgRmV0Y2hSZXF1ZXN0IGZpbmFsIDogcHVibGljIEZldGNoQm9keU93bmVyIHsK
IHB1YmxpYzoKICAgICB1c2luZyBJbml0ID0gRmV0Y2hSZXF1ZXN0SW5pdDsKLSAgICB1c2luZyBJ
bmZvID0gVmFyaWFudDxSZWZQdHI8RmV0Y2hSZXF1ZXN0PiwgU3RyaW5nPjsKKyAgICB1c2luZyBJ
bmZvID0gc3RkOjp2YXJpYW50PFJlZlB0cjxGZXRjaFJlcXVlc3Q+LCBTdHJpbmc+OwogCiAgICAg
dXNpbmcgQ2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNhY2hlOwogICAgIHVzaW5nIENyZWRlbnRpYWxz
ID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAt
ODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmZWVkU3RyZWFtKCkgZmluYWw7CiAgICAg
dm9pZCBjYW5jZWwoKSBmaW5hbDsKIAotICAgIHVzaW5nIFJlc3BvbnNlRGF0YSA9IFZhcmlhbnQ8
c3RkOjpudWxscHRyX3QsIFJlZjxGb3JtRGF0YT4sIFJlZjxTaGFyZWRCdWZmZXI+PjsKKyAgICB1
c2luZyBSZXNwb25zZURhdGEgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxGb3Jt
RGF0YT4sIFJlZjxTaGFyZWRCdWZmZXI+PjsKICAgICBSZXNwb25zZURhdGEgY29uc3VtZUJvZHko
KTsKICAgICB2b2lkIHNldEJvZHlEYXRhKFJlc3BvbnNlRGF0YSYmLCB1aW50NjRfdCBib2R5U2l6
ZVdpdGhQYWRkaW5nKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBA
IHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIH5JREJDdXJzb3IoKTsKIAotICAgIHVzaW5nIFNv
dXJjZSA9IFZhcmlhbnQ8UmVmUHRyPElEQk9iamVjdFN0b3JlPiwgUmVmUHRyPElEQkluZGV4Pj47
CisgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50PFJlZlB0cjxJREJPYmplY3RTdG9yZT4s
IFJlZlB0cjxJREJJbmRleD4+OwogCiAgICAgY29uc3QgU291cmNlJiBzb3VyY2UoKSBjb25zdDsK
ICAgICBJREJDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uKCkgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgJKHJldmlzaW9uIDI4
NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9u
T3I8UmVmPElEQk9iamVjdFN0b3JlPj4gY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBu
YW1lLCBPYmplY3RTdG9yZVBhcmFtZXRlcnMmJik7CiAKLSAgICB1c2luZyBTdHJpbmdPclZlY3Rv
ck9mU3RyaW5ncyA9IFdURjo6VmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsKKyAgICB1
c2luZyBTdHJpbmdPclZlY3Rvck9mU3RyaW5ncyA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3Rv
cjxTdHJpbmc+PjsKICAgICBzdHJ1Y3QgVHJhbnNhY3Rpb25PcHRpb25zIHsKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxJREJUcmFuc2FjdGlvbkR1cmFiaWxpdHk+IGR1cmFiaWxpdHk7CiAgICAgfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oCShyZXZpc2lv
biAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaAko
d29ya2luZyBjb3B5KQpAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
SURCS2V5KGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJik7CiAKICAgICBjb25zdCBJbmRleGVk
REI6OktleVR5cGUgbV90eXBlOwotICAgIFZhcmlhbnQ8VmVjdG9yPFJlZlB0cjxJREJLZXk+Piwg
U3RyaW5nLCBkb3VibGUsIFRocmVhZFNhZmVEYXRhQnVmZmVyPiBtX3ZhbHVlOworICAgIHN0ZDo6
dmFyaWFudDxWZWN0b3I8UmVmUHRyPElEQktleT4+LCBTdHJpbmcsIGRvdWJsZSwgVGhyZWFkU2Fm
ZURhdGFCdWZmZXI+IG1fdmFsdWU7CiAKICAgICBjb25zdCBzaXplX3QgbV9zaXplRXN0aW1hdGU7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRh
LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDcgKzE5Myw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2lzTnVsbCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzRGVsZXRlZFZhbHVl
IHsgZmFsc2UgfTsKIAotICAgIFZhcmlhbnQ8VmVjdG9yPElEQktleURhdGE+LCBTdHJpbmcsIGRv
dWJsZSwgVGhyZWFkU2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7CisgICAgc3RkOjp2YXJpYW50PFZl
Y3RvcjxJREJLZXlEYXRhPiwgU3RyaW5nLCBkb3VibGUsIFRocmVhZFNhZmVEYXRhQnVmZmVyPiBt
X3ZhbHVlOwogfTsKIAogc3RydWN0IElEQktleURhdGFIYXNoIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmgJKHJldmlzaW9uIDI4NDAwMikK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5n
IElEQktleVBhdGggPSBXVEY6OlZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj47Cit1c2lu
ZyBJREJLZXlQYXRoID0gc3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+OwogYm9v
bCBpc0lEQktleVBhdGhWYWxpZChjb25zdCBJREJLZXlQYXRoJik7CiAKIGVudW0gY2xhc3MgSURC
S2V5UGF0aFBhcnNlRXJyb3IgewpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCwxMiAr
NzgsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+SURCUmVxdWVzdCgpOwogCi0gICAgdXNp
bmcgUmVzdWx0ID0gVmFyaWFudDxSZWZQdHI8SURCQ3Vyc29yPiwgUmVmUHRyPElEQkRhdGFiYXNl
PiwgSURCS2V5RGF0YSwgVmVjdG9yPElEQktleURhdGE+LCBJREJHZXRSZXN1bHQsIElEQkdldEFs
bFJlc3VsdCwgdWludDY0X3QsIE51bGxSZXN1bHRUeXBlPjsKKyAgICB1c2luZyBSZXN1bHQgPSBz
dGQ6OnZhcmlhbnQ8UmVmUHRyPElEQkN1cnNvcj4sIFJlZlB0cjxJREJEYXRhYmFzZT4sIElEQktl
eURhdGEsIFZlY3RvcjxJREJLZXlEYXRhPiwgSURCR2V0UmVzdWx0LCBJREJHZXRBbGxSZXN1bHQs
IHVpbnQ2NF90LCBOdWxsUmVzdWx0VHlwZT47CiAgICAgRXhjZXB0aW9uT3I8UmVzdWx0PiByZXN1
bHQoKSBjb25zdDsKICAgICBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0JiByZXN1bHRXcmFwcGVyKCkg
eyByZXR1cm4gbV9yZXN1bHRXcmFwcGVyOyB9CiAgICAgSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYg
Y3Vyc29yV3JhcHBlcigpIHsgcmV0dXJuIG1fY3Vyc29yV3JhcHBlcjsgfQogCi0gICAgdXNpbmcg
U291cmNlID0gVmFyaWFudDxSZWZQdHI8SURCT2JqZWN0U3RvcmU+LCBSZWZQdHI8SURCSW5kZXg+
LCBSZWZQdHI8SURCQ3Vyc29yPj47CisgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50PFJl
ZlB0cjxJREJPYmplY3RTdG9yZT4sIFJlZlB0cjxJREJJbmRleD4sIFJlZlB0cjxJREJDdXJzb3I+
PjsKICAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFNvdXJjZT4mIHNvdXJjZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlOyB9CiAKICAgICBFeGNlcHRpb25PcjxET01FeGNlcHRpb24qPiBlcnJvcigp
IGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCShyZXZpc2lvbiAyODQwMDIpCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MDUsNyArNTA1LDcgQEAgYm9vbCBNZWRpYUNvbnRyb2xzSG9z
dDo6c2hvd01lZGlhQ29udHJvbAogICAgICAgICB4Ml8wLAogICAgIH07CiAKLSAgICB1c2luZyBN
ZW51RGF0YSA9IFZhcmlhbnQ8CisgICAgdXNpbmcgTWVudURhdGEgPSBzdGQ6OnZhcmlhbnQ8CiAj
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgICAgICBQaWN0dXJlSW5QaWN0
dXJlVGFnLAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
NjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2s+PiBzb3J0
ZWRUcmFja0xpc3RGb3JNZW51KFRleHRUcmFja0xpc3QmKTsKICAgICBWZWN0b3I8UmVmUHRyPEF1
ZGlvVHJhY2s+PiBzb3J0ZWRUcmFja0xpc3RGb3JNZW51KEF1ZGlvVHJhY2tMaXN0Jik7CiAKLSAg
ICB1c2luZyBUZXh0T3JBdWRpb1RyYWNrID0gV1RGOjpWYXJpYW50PFJlZlB0cjxUZXh0VHJhY2s+
LCBSZWZQdHI8QXVkaW9UcmFjaz4+OworICAgIHVzaW5nIFRleHRPckF1ZGlvVHJhY2sgPSBzdGQ6
OnZhcmlhbnQ8UmVmUHRyPFRleHRUcmFjaz4sIFJlZlB0cjxBdWRpb1RyYWNrPj47CiAgICAgU3Ry
aW5nIGRpc3BsYXlOYW1lRm9yVHJhY2soY29uc3Qgc3RkOjpvcHRpb25hbDxUZXh0T3JBdWRpb1Ry
YWNrPiYpOwogCiAgICAgc3RhdGljIFRleHRUcmFjayYgY2FwdGlvbk1lbnVPZmZJdGVtKCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZXMuY3BwCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgRG9jdW1lbnQqIE1lZGlhRGV2aWNlczo6ZG9jdW1lbnQoKSBjb25zdAogICAgIHJldHVybiBk
b3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAotc3RhdGlj
IE1lZGlhQ29uc3RyYWludHMgY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdCBWYXJpYW50PGJv
b2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQorc3RhdGljIE1lZGlhQ29u
c3RyYWludHMgY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdCBzdGQ6OnZhcmlhbnQ8Ym9vbCwg
TWVkaWFUcmFja0NvbnN0cmFpbnRzPiYgY29uc3RyYWludHMpCiB7CiAgICAgcmV0dXJuIFdURjo6
c3dpdGNoT24oY29uc3RyYWludHMsCiAgICAgICAgIFsmXSAoYm9vbCBpc1ZhbGlkKSB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDE0ICs3NSwxNCBAQCBwdWJs
aWM6CiAgICAgfTsKIAogICAgIHN0cnVjdCBTdHJlYW1Db25zdHJhaW50cyB7Ci0gICAgICAgIFZh
cmlhbnQ8Ym9vbCwgTWVkaWFUcmFja0NvbnN0cmFpbnRzPiB2aWRlbzsKLSAgICAgICAgVmFyaWFu
dDxib29sLCBNZWRpYVRyYWNrQ29uc3RyYWludHM+IGF1ZGlvOworICAgICAgICBzdGQ6OnZhcmlh
bnQ8Ym9vbCwgTWVkaWFUcmFja0NvbnN0cmFpbnRzPiB2aWRlbzsKKyAgICAgICAgc3RkOjp2YXJp
YW50PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4gYXVkaW87CiAgICAgfTsKICAgICB2b2lk
IGdldFVzZXJNZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJik7CiAKICAg
ICBzdHJ1Y3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3RyYWludHMgewotICAgICAgICBWYXJpYW50
PGJvb2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4gdmlkZW87Ci0gICAgICAgIFZhcmlhbnQ8Ym9v
bCwgTWVkaWFUcmFja0NvbnN0cmFpbnRzPiBhdWRpbzsKKyAgICAgICAgc3RkOjp2YXJpYW50PGJv
b2wsIE1lZGlhVHJhY2tDb25zdHJhaW50cz4gdmlkZW87CisgICAgICAgIHN0ZDo6dmFyaWFudDxi
b29sLCBNZWRpYVRyYWNrQ29uc3RyYWludHM+IGF1ZGlvOwogICAgIH07CiAgICAgdm9pZCBnZXRE
aXNwbGF5TWVkaWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNl
JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJh
Y2tDb25zdHJhaW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDggKzQyLDggQEAgc3RydWN0IENvbnN0cmFpbkJvb2xlYW5Q
YXJhbWV0ZXJzIHsKIH07CiAKIHN0cnVjdCBDb25zdHJhaW5ET01TdHJpbmdQYXJhbWV0ZXJzIHsK
LSAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4+IGV4YWN0
OwotICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4gaWRl
YWw7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5n
Pj4+IGV4YWN0OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9y
PFN0cmluZz4+PiBpZGVhbDsKIH07CiAKIHN0cnVjdCBDb25zdHJhaW5Eb3VibGVSYW5nZSA6IERv
dWJsZVJhbmdlIHsKQEAgLTU2LDEwICs1NiwxMCBAQCBzdHJ1Y3QgQ29uc3RyYWluTG9uZ1Jhbmdl
IDogTG9uZ1JhbmdlIHsKICAgICBzdGQ6Om9wdGlvbmFsPGludD4gaWRlYWw7CiB9OwogCi11c2lu
ZyBDb25zdHJhaW5Cb29sZWFuID0gVmFyaWFudDxib29sLCBDb25zdHJhaW5Cb29sZWFuUGFyYW1l
dGVycz47Ci11c2luZyBDb25zdHJhaW5ET01TdHJpbmcgPSBWYXJpYW50PFN0cmluZywgVmVjdG9y
PFN0cmluZz4sIENvbnN0cmFpbkRPTVN0cmluZ1BhcmFtZXRlcnM+OwotdXNpbmcgQ29uc3RyYWlu
RG91YmxlID0gVmFyaWFudDxkb3VibGUsIENvbnN0cmFpbkRvdWJsZVJhbmdlPjsKLXVzaW5nIENv
bnN0cmFpbkxvbmcgPSBWYXJpYW50PGludCwgQ29uc3RyYWluTG9uZ1JhbmdlPjsKK3VzaW5nIENv
bnN0cmFpbkJvb2xlYW4gPSBzdGQ6OnZhcmlhbnQ8Ym9vbCwgQ29uc3RyYWluQm9vbGVhblBhcmFt
ZXRlcnM+OwordXNpbmcgQ29uc3RyYWluRE9NU3RyaW5nID0gc3RkOjp2YXJpYW50PFN0cmluZywg
VmVjdG9yPFN0cmluZz4sIENvbnN0cmFpbkRPTVN0cmluZ1BhcmFtZXRlcnM+OwordXNpbmcgQ29u
c3RyYWluRG91YmxlID0gc3RkOjp2YXJpYW50PGRvdWJsZSwgQ29uc3RyYWluRG91YmxlUmFuZ2U+
OwordXNpbmcgQ29uc3RyYWluTG9uZyA9IHN0ZDo6dmFyaWFudDxpbnQsIENvbnN0cmFpbkxvbmdS
YW5nZT47CiAKIHN0cnVjdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldCB7CiAgICAgc3RkOjpvcHRp
b25hbDxDb25zdHJhaW5Mb25nPiB3aWR0aDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VTZXJ2ZXIuaAkocmV2aXNpb24gMjg0MDAyKQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VTZXJ2ZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
UlRDSWNlU2VydmVyIHsKLSAgICBWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+IHVybHM7
CisgICAgc3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+IHVybHM7CiAgICAgU3Ry
aW5nIGNyZWRlbnRpYWw7CiAgICAgU3RyaW5nIHVzZXJuYW1lOwogfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDcgKzEwNSw3IEBA
IHB1YmxpYzoKICAgICAgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IGV4cGlyZXM7CiAgICAgfTsK
IAotICAgIHVzaW5nIEFsZ29yaXRobUlkZW50aWZpZXIgPSBWYXJpYW50PEpTQzo6U3Ryb25nPEpT
Qzo6SlNPYmplY3Q+LCBTdHJpbmc+OworICAgIHVzaW5nIEFsZ29yaXRobUlkZW50aWZpZXIgPSBz
dGQ6OnZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4sIFN0cmluZz47CiAgICAgc3Rh
dGljIHZvaWQgZ2VuZXJhdGVDZXJ0aWZpY2F0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgQWxnb3Jp
dGhtSWRlbnRpZmllciYmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFJUQ0NlcnRp
ZmljYXRlPj4mJik7CiAKICAgICAvLyA0LjMuMiBSVENQZWVyQ29ubmVjdGlvbiBJbnRlcmZhY2UK
QEAgLTEyMiw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKiBj
dXJyZW50UmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRSZW1vdGVE
ZXNjcmlwdGlvbi5nZXQoKTsgfQogICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiogcGVuZGluZ1Jl
bW90ZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRp
b24uZ2V0KCk7IH0KIAotICAgIHVzaW5nIENhbmRpZGF0ZSA9IHN0ZDo6b3B0aW9uYWw8VmFyaWFu
dDxSVENJY2VDYW5kaWRhdGVJbml0LCBSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPj4+OworICAgIHVz
aW5nIENhbmRpZGF0ZSA9IHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFJUQ0ljZUNhbmRpZGF0
ZUluaXQsIFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+Pj47CiAgICAgdm9pZCBhZGRJY2VDYW5kaWRh
dGUoQ2FuZGlkYXRlJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCiAgICAgUlRDU2lnbmFs
aW5nU3RhdGUgc2lnbmFsaW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3NpZ25hbGluZ1N0YXRl
OyB9CkBAIC0xNTEsNyArMTUxLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxSVENS
dHBTZW5kZXI+PiBhZGRUcmFjayhSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiwgY29uc3QgVmVjdG9y
PHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8TWVkaWFTdHJlYW0+PiYpOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHJlbW92ZVRyYWNrKFJUQ1J0cFNlbmRlciYpOwogCi0gICAgdXNpbmcgQWRkVHJhbnNj
ZWl2ZXJUcmFja09yS2luZCA9IFZhcmlhbnQ8UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+LCBTdHJp
bmc+OworICAgIHVzaW5nIEFkZFRyYW5zY2VpdmVyVHJhY2tPcktpbmQgPSBzdGQ6OnZhcmlhbnQ8
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+LCBTdHJpbmc+OwogICAgIEV4Y2VwdGlvbk9yPFJlZjxS
VENSdHBUcmFuc2NlaXZlcj4+IGFkZFRyYW5zY2VpdmVyKEFkZFRyYW5zY2VpdmVyVHJhY2tPcktp
bmQmJiwgY29uc3QgUlRDUnRwVHJhbnNjZWl2ZXJJbml0Jik7CiAKICAgICAvLyA2LjEgUGVlci10
by1wZWVyIGRhdGEgQVBJCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFRyYW5zZm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgUlRDUnRwU2VuZGVyOwogY2xhc3MgUlRDUnRw
VHJhbnNmb3JtICB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
dXNpbmcgSW50ZXJuYWwgPSBWYXJpYW50PFJlZlB0cjxSVENSdHBTRnJhbWVUcmFuc2Zvcm0+LCBS
ZWZQdHI8UlRDUnRwU2NyaXB0VHJhbnNmb3JtPj47CisgICAgdXNpbmcgSW50ZXJuYWwgPSBzdGQ6
OnZhcmlhbnQ8UmVmUHRyPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4sIFJlZlB0cjxSVENSdHBTY3Jp
cHRUcmFuc2Zvcm0+PjsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJUQ1J0cFRyYW5zZm9y
bT4gZnJvbShzdGQ6Om9wdGlvbmFsPEludGVybmFsPiYmKTsKIAogICAgIGV4cGxpY2l0IFJUQ1J0
cFRyYW5zZm9ybShJbnRlcm5hbCYmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhh
bmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgICAg
ICBSVENEYXRhQ2hhbm5lbFN0YXRlIHN0YXRlOwogICAgICAgICBzdGQ6Om9wdGlvbmFsPHdlYnJ0
Yzo6UlRDRXJyb3I+IGVycm9yOwogICAgIH07Ci0gICAgdXNpbmcgTWVzc2FnZSA9IFZhcmlhbnQ8
U3RhdGVDaGFuZ2UsIFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+OworICAgIHVzaW5nIE1lc3Nh
Z2UgPSBzdGQ6OnZhcmlhbnQ8U3RhdGVDaGFuZ2UsIFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+
OwogICAgIHVzaW5nIFBlbmRpbmdNZXNzYWdlcyA9IFZlY3RvcjxNZXNzYWdlPjsKICAgICB2b2lk
IHN0b3JlTWVzc2FnZShQZW5kaW5nTWVzc2FnZXMmLCBjb25zdCB3ZWJydGM6OkRhdGFCdWZmZXIm
KTsKICAgICB2b2lkIHByb2Nlc3NNZXNzYWdlKGNvbnN0IHdlYnJ0Yzo6RGF0YUJ1ZmZlciYpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUnRwU2VuZGVyQmFja2VuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaAkocmV2
aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3
ICs0Nyw3IEBAIGNsYXNzIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDsKIGNsYXNzIExp
YldlYlJUQ1J0cFNlbmRlckJhY2tlbmQgZmluYWwgOiBwdWJsaWMgUlRDUnRwU2VuZGVyQmFja2Vu
ZCwgcHVibGljIENhbk1ha2VXZWFrUHRyPExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ+IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICB1c2luZyBTb3VyY2UgPSBW
YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlPiwg
UmVmPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZT4+OworICAgIHVzaW5nIFNvdXJjZSA9IHN0
ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVmPFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZT4sIFJlZjxSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+PjsKICAgICBMaWJXZWJSVENSdHBT
ZW5kZXJCYWNrZW5kKExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZCYsIHJ0Yzo6c2NvcGVk
X3JlZnB0cjx3ZWJydGM6OlJ0cFNlbmRlckludGVyZmFjZT4mJiwgU291cmNlJiYpOwogICAgIExp
YldlYlJUQ1J0cFNlbmRlckJhY2tlbmQoTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwg
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlPiYmKTsKICAgICB+
TGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRNZXRob2RDaGFu
Z2VFdmVudC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB1c2luZyBNZXRob2REZXRhaWxz
RnVuY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+KEpTQzo6
SlNHbG9iYWxPYmplY3QmKT47Ci0gICAgdXNpbmcgTWV0aG9kRGV0YWlsc1R5cGUgPSBWYXJpYW50
PEpTVmFsdWVJbldyYXBwZWRPYmplY3QsIE1ldGhvZERldGFpbHNGdW5jdGlvbj47CisgICAgdXNp
bmcgTWV0aG9kRGV0YWlsc1R5cGUgPSBzdGQ6OnZhcmlhbnQ8SlNWYWx1ZUluV3JhcHBlZE9iamVj
dCwgTWV0aG9kRGV0YWlsc0Z1bmN0aW9uPjsKIAogICAgIGNvbnN0IFN0cmluZyYgbWV0aG9kTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0aG9kTmFtZTsgfQogICAgIGNvbnN0IE1ldGhvZERldGFp
bHNUeXBlJiBtZXRob2REZXRhaWxzKCkgY29uc3QgeyByZXR1cm4gbV9tZXRob2REZXRhaWxzOyB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVz
dC9QYXltZW50UmVxdWVzdC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmV0cnkoUGF5
bWVudFZhbGlkYXRpb25FcnJvcnMmJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKIAotICAgIHVzaW5n
IE1ldGhvZElkZW50aWZpZXIgPSBWYXJpYW50PFN0cmluZywgVVJMPjsKKyAgICB1c2luZyBNZXRo
b2RJZGVudGlmaWVyID0gc3RkOjp2YXJpYW50PFN0cmluZywgVVJMPjsKICAgICB1c2luZyBSZWZD
b3VudGVkPFBheW1lbnRSZXF1ZXN0Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGF5bWVu
dFJlcXVlc3Q+OjpkZXJlZjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFw
aS9QdXNoRXZlbnRJbml0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
dXNoLWFwaS9QdXNoRXZlbnRJbml0LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaEV2ZW50SW5pdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgUHVzaE1lc3NhZ2VE
YXRhSW5pdCA9IFZhcmlhbnQ8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEpT
Qzo6QXJyYXlCdWZmZXI+LCBTdHJpbmc+OwordXNpbmcgUHVzaE1lc3NhZ2VEYXRhSW5pdCA9IHN0
ZDo6dmFyaWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpBcnJh
eUJ1ZmZlcj4sIFN0cmluZz47CiAKIHN0cnVjdCBQdXNoRXZlbnRJbml0IDogRXh0ZW5kYWJsZUV2
ZW50SW5pdCB7CiAgICAgc3RkOjpvcHRpb25hbDxQdXNoTWVzc2FnZURhdGFJbml0PiBkYXRhOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uT3B0
aW9uc0luaXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBp
L1B1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHN0cnVjdCBQdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQgewotICAgIHVzaW5nIEFwcGxpY2F0
aW9uU2VydmVyS2V5ID0gVmFyaWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQ
dHI8SlNDOjpBcnJheUJ1ZmZlcj4sIFN0cmluZz47CisgICAgdXNpbmcgQXBwbGljYXRpb25TZXJ2
ZXJLZXkgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRy
PEpTQzo6QXJyYXlCdWZmZXI+LCBTdHJpbmc+OwogICAgIGJvb2wgdXNlclZpc2libGVPbmx5IHsg
ZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPEFwcGxpY2F0aW9uU2VydmVyS2V5PiBhcHBsaWNh
dGlvblNlcnZlcktleTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dE9wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dE9wdGlvbnMuaAkocmV2aXNpb24gMjg0MDAyKQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRPcHRpb25zLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Ry
dWN0IEF1ZGlvQ29udGV4dE9wdGlvbnMgewotICAgIFZhcmlhbnQ8QXVkaW9Db250ZXh0TGF0ZW5j
eUNhdGVnb3J5LCBkb3VibGU+IGxhdGVuY3lIaW50IHsgQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVn
b3J5OjpJbnRlcmFjdGl2ZSB9OworICAgIHN0ZDo6dmFyaWFudDxBdWRpb0NvbnRleHRMYXRlbmN5
Q2F0ZWdvcnksIGRvdWJsZT4gbGF0ZW5jeUhpbnQgeyBBdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdv
cnk6OkludGVyYWN0aXZlIH07CiAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gc2FtcGxlUmF0ZTsK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUu
aAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjMxLDcgKzIzMSw3IEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHVsbFN0YXR1cygpIHsgfQogCiBwcml2YXRlOgotICAg
IHVzaW5nIFdlYWtPclN0cm9uZ0NvbnRleHQgPSBWYXJpYW50PFJlZjxCYXNlQXVkaW9Db250ZXh0
PiwgV2Vha1B0cjxCYXNlQXVkaW9Db250ZXh0Pj47CisgICAgdXNpbmcgV2Vha09yU3Ryb25nQ29u
dGV4dCA9IHN0ZDo6dmFyaWFudDxSZWY8QmFzZUF1ZGlvQ29udGV4dD4sIFdlYWtQdHI8QmFzZUF1
ZGlvQ29udGV4dD4+OwogICAgIHN0YXRpYyBXZWFrT3JTdHJvbmdDb250ZXh0IHRvV2Vha09yU3Ry
b25nQ29udGV4dChCYXNlQXVkaW9Db250ZXh0JiwgTm9kZVR5cGUpOwogCiAgICAgLy8gRXZlbnRU
YXJnZXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdM
TGF5ZXIuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUldlYkdMTGF5ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBjbGFz
cyBXZWJYUldlYkdMTGF5ZXIgOiBwdWJsaWMgV2ViWFJMYXllCiAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChXZWJYUldlYkdMTGF5ZXIpOwogcHVibGljOgogCi0gICAgdXNpbmcgV2ViWFJSZW5k
ZXJpbmdDb250ZXh0ID0gV1RGOjpWYXJpYW50PAorICAgIHVzaW5nIFdlYlhSUmVuZGVyaW5nQ29u
dGV4dCA9IHN0ZDo6dmFyaWFudDwKICAgICAgICAgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4
dD4KICNpZiBFTkFCTEUoV0VCR0wyKQogICAgICAgICAsIFJlZlB0cjxXZWJHTDJSZW5kZXJpbmdD
b250ZXh0PgpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNyArMTc2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGV0YWNoV3JhcHBlcihBWENvcmVPYmplY3QqLCBBY2Nlc3NpYmlsaXR5RGV0
YWNobWVudFR5cGUpOwogI2VuZGlmCiBwcml2YXRlOgotICAgIHVzaW5nIERPTU9iamVjdFZhcmlh
bnQgPSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZW5kZXJPYmplY3QqLCBOb2RlKiwgV2lkZ2V0
Kj47CisgICAgdXNpbmcgRE9NT2JqZWN0VmFyaWFudCA9IHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxw
dHJfdCwgUmVuZGVyT2JqZWN0KiwgTm9kZSosIFdpZGdldCo+OwogICAgIHZvaWQgY2FjaGVBbmRJ
bml0aWFsaXplV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRE9NT2JqZWN0VmFyaWFudCA9
IG51bGxwdHIpOwogICAgIHZvaWQgYXR0YWNoV3JhcHBlcihBWENvcmVPYmplY3QqKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC02MjYsNyArNjI2LDcgQEAgZW51bSBjbGFzcyBBY2Nlc3NpYmlsaXR5U2VhcmNo
S2V5IHsKICAgICBWaXNpdGVkTGluaywKIH07CiAKLXVzaW5nIEFYRWRpdGluZ1N0eWxlVmFsdWVW
YXJpYW50ID0gVmFyaWFudDxTdHJpbmcsIGJvb2wsIGludD47Cit1c2luZyBBWEVkaXRpbmdTdHls
ZVZhbHVlVmFyaWFudCA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIGJvb2wsIGludD47CiAKIHN0cnVj
dCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgewogICAgIEFYQ29yZU9iamVjdCogYW5jaG9y
T2JqZWN0IHsgbnVsbHB0ciB9OwpAQCAtMTEyMCw3ICsxMTIwLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBhcmlhUm9sZUhhc1ByZXNlbnRhdGlvbmFsQ2hpbGRyZW4oKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBib29sIGluaGVyaXRzUHJlc2VudGF0aW9uYWxSb2xlKCkgY29uc3QgPSAw
OwogCi0gICAgdXNpbmcgQVhWYWx1ZSA9IFZhcmlhbnQ8Ym9vbCwgdW5zaWduZWQsIGZsb2F0LCBT
dHJpbmcsIEFjY2Vzc2liaWxpdHlCdXR0b25TdGF0ZSwgQVhDb3JlT2JqZWN0Kj47CisgICAgdXNp
bmcgQVhWYWx1ZSA9IHN0ZDo6dmFyaWFudDxib29sLCB1bnNpZ25lZCwgZmxvYXQsIFN0cmluZywg
QWNjZXNzaWJpbGl0eUJ1dHRvblN0YXRlLCBBWENvcmVPYmplY3QqPjsKICAgICB2aXJ0dWFsIEFY
VmFsdWUgdmFsdWUoKSA9IDA7CiAKICAgICAvLyBBY2Nlc3NpYmlsaXR5IFRleHQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZFRyZWUuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAkod29ya2luZyBjb3B5KQpA
QCAtMzE2LDcgKzMxNiw3IEBAIGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5hbWUgOiB1aW50MTZfdCB7
CiAgICAgV2ViQXJlYSwKIH07CiAKLXVzaW5nIEFYUHJvcGVydHlWYWx1ZVZhcmlhbnQgPSBWYXJp
YW50PHN0ZDo6bnVsbHB0cl90LCBTdHJpbmcsIGJvb2wsIGludCwgdW5zaWduZWQsIGRvdWJsZSwg
ZmxvYXQsIHVpbnQ2NF90LCBDb2xvciwgVVJMLCBMYXlvdXRSZWN0LCBGbG9hdFJlY3QsIEFYSUQs
IEludFBvaW50LCBPcHRpb25TZXQ8U3BlYWtBcz4sIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWdu
ZWQ+LCBWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+LCBWZWN0b3I8QVhJRD4sIFZlY3RvcjxzdGQ6
OnBhaXI8QVhJRCwgQVhJRD4+LCBWZWN0b3I8U3RyaW5nPiwgUGF0aD47Cit1c2luZyBBWFByb3Bl
cnR5VmFsdWVWYXJpYW50ID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBTdHJpbmcsIGJv
b2wsIGludCwgdW5zaWduZWQsIGRvdWJsZSwgZmxvYXQsIHVpbnQ2NF90LCBDb2xvciwgVVJMLCBM
YXlvdXRSZWN0LCBGbG9hdFJlY3QsIEFYSUQsIEludFBvaW50LCBPcHRpb25TZXQ8U3BlYWtBcz4s
IHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+LCBWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+
LCBWZWN0b3I8QVhJRD4sIFZlY3RvcjxzdGQ6OnBhaXI8QVhJRCwgQVhJRD4+LCBWZWN0b3I8U3Ry
aW5nPiwgUGF0aD47CiB1c2luZyBBWFByb3BlcnR5TWFwID0gSGFzaE1hcDxBWFByb3BlcnR5TmFt
ZSwgQVhQcm9wZXJ0eVZhbHVlVmFyaWFudCwgV1RGOjpJbnRIYXNoPEFYUHJvcGVydHlOYW1lPiwg
V1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxBWFByb3BlcnR5TmFtZT4+OwogCiBzdHJ1Y3QgQVhQ
cm9wZXJ0eUNoYW5nZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGlt
aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWlu
Zy5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0
VGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RydWN0IEVmZmVjdFRpbWluZyB7Ci0gICAgVmFyaWFudDxkb3VibGUsIFN0cmlu
Zz4gZHVyYXRpb24geyAiYXV0byIgfTsKKyAgICBzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+
IGR1cmF0aW9uIHsgImF1dG8iIH07CiAgICAgZG91YmxlIGRlbGF5IHsgMCB9OwogICAgIGRvdWJs
ZSBlbmREZWxheSB7IDAgfTsKICAgICBkb3VibGUgaXRlcmF0aW9uU3RhcnQgeyAwIH07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAJKHJldmlzaW9u
IDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUwNyw3ICs1MDcsNyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlv
bk9yPHZvaWQ+IHByb2Nlc3NQCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotRXhjZXB0aW9uT3I8UmVm
PEtleWZyYW1lRWZmZWN0Pj4gS2V5ZnJhbWVFZmZlY3Q6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgRWxlbWVudCogdGFyZ2V0LCBTdHJvbmc8SlNPYmplY3Q+JiYg
a2V5ZnJhbWVzLCBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUVmZmVjdE9w
dGlvbnM+PiYmIG9wdGlvbnMpCitFeGNlcHRpb25PcjxSZWY8S2V5ZnJhbWVFZmZlY3Q+PiBLZXlm
cmFtZUVmZmVjdDo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bGVtZW50KiB0YXJnZXQsIFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFtZXMsIHN0ZDo6b3B0aW9u
YWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgS2V5ZnJhbWVFZmZlY3RPcHRpb25zPj4mJiBvcHRpb25z
KQogewogICAgIGF1dG8ga2V5ZnJhbWVFZmZlY3QgPSBhZG9wdFJlZigqbmV3IEtleWZyYW1lRWZm
ZWN0KHRhcmdldCwgUHNldWRvSWQ6Ok5vbmUpKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0tleWZyYW1lRWZmZWN0LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0
OSw3IEBAIGNsYXNzIEZpbHRlck9wZXJhdGlvbnM7CiBjbGFzcyBLZXlmcmFtZUVmZmVjdCA6IHB1
YmxpYyBBbmltYXRpb25FZmZlY3QKICAgICAsIHB1YmxpYyBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEtleWZyYW1lRWZmZWN0
Pj4gY3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBFbGVtZW50KiwgSlNDOjpTdHJvbmc8SlND
OjpKU09iamVjdD4mJiwgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwgS2V5ZnJhbWVFZmZl
Y3RPcHRpb25zPj4mJik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxLZXlmcmFtZUVmZmVj
dD4+IGNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgRWxlbWVudCosIEpTQzo6U3Ryb25nPEpT
Qzo6SlNPYmplY3Q+JiYsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgS2V5ZnJh
bWVFZmZlY3RPcHRpb25zPj4mJik7CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxLZXlmcmFt
ZUVmZmVjdD4+IGNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVmPEtleWZyYW1lRWZmZWN0
PiYmKTsKICAgICBzdGF0aWMgUmVmPEtleWZyYW1lRWZmZWN0PiBjcmVhdGUoY29uc3QgRWxlbWVu
dCYsIFBzZXVkb0lkKTsKICAgICB+S2V5ZnJhbWVFZmZlY3QoKSB7IH0KQEAgLTU3LDkgKzU3LDkg
QEAgcHVibGljOgogICAgIGJvb2wgaXNLZXlmcmFtZUVmZmVjdCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KIAogICAgIHN0cnVjdCBCYXNlUHJvcGVydHlJbmRleGVkS2V5ZnJhbWUgewot
ICAgICAgICBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBWZWN0b3I8c3RkOjpvcHRpb25hbDxkb3Vi
bGU+PiwgZG91YmxlPiBvZmZzZXQgPSBWZWN0b3I8c3RkOjpvcHRpb25hbDxkb3VibGU+PigpOwot
ICAgICAgICBWYXJpYW50PFZlY3RvcjxTdHJpbmc+LCBTdHJpbmc+IGVhc2luZyA9IFZlY3RvcjxT
dHJpbmc+KCk7Ci0gICAgICAgIFZhcmlhbnQ8VmVjdG9yPENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0
bz4sIENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0bz4gY29tcG9zaXRlID0gVmVjdG9yPENvbXBvc2l0
ZU9wZXJhdGlvbk9yQXV0bz4oKTsKKyAgICAgICAgc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90
LCBWZWN0b3I8c3RkOjpvcHRpb25hbDxkb3VibGU+PiwgZG91YmxlPiBvZmZzZXQgPSBWZWN0b3I8
c3RkOjpvcHRpb25hbDxkb3VibGU+PigpOworICAgICAgICBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFN0
cmluZz4sIFN0cmluZz4gZWFzaW5nID0gVmVjdG9yPFN0cmluZz4oKTsKKyAgICAgICAgc3RkOjp2
YXJpYW50PFZlY3RvcjxDb21wb3NpdGVPcGVyYXRpb25PckF1dG8+LCBDb21wb3NpdGVPcGVyYXRp
b25PckF1dG8+IGNvbXBvc2l0ZSA9IFZlY3RvcjxDb21wb3NpdGVPcGVyYXRpb25PckF1dG8+KCk7
CiAgICAgfTsKIAogICAgIHN0cnVjdCBCYXNlS2V5ZnJhbWUgewpJbmRleDogU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL09wdGlvbmFsRWZmZWN0VGltaW5nLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL09wdGlvbmFsRWZmZWN0VGltaW5nLmgJKHJldmlzaW9uIDI4NDAw
MikKKysrIFNvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9PcHRpb25hbEVmZmVjdFRpbWluZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0
cnVjdCBPcHRpb25hbEVmZmVjdFRpbWluZyB7Ci0gICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRv
dWJsZSwgU3RyaW5nPj4gZHVyYXRpb247CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8
ZG91YmxlLCBTdHJpbmc+PiBkdXJhdGlvbjsKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gaXRl
cmF0aW9uczsgLy8gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgYSBNYXJrYWJsZURvdWJsZSBzaW5jZSB3
ZSBuZWVkIHRvIGNoZWNrIGZvciBhIE5hTiB2YWx1ZS4KICAgICBNYXJrYWJsZURvdWJsZSBkZWxh
eTsKICAgICBNYXJrYWJsZURvdWJsZSBlbmREZWxheTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL0lETFR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
SURMVHlwZXMuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
SURMVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDExICsyMzYsMTEgQEAgc3RydWN0IElE
TEVycm9yIDogSURMVW5zdXBwb3J0ZWRUeXBlIHsgfQogc3RydWN0IElETERPTUV4Y2VwdGlvbiA6
IElETFVuc3VwcG9ydGVkVHlwZSB7IH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFRzPgotc3Ry
dWN0IElETFVuaW9uIDogSURMVHlwZTxWYXJpYW50PHR5cGVuYW1lIFRzOjpJbXBsZW1lbnRhdGlv
blR5cGUuLi4+PiB7CitzdHJ1Y3QgSURMVW5pb24gOiBJRExUeXBlPHN0ZDo6dmFyaWFudDx0eXBl
bmFtZSBUczo6SW1wbGVtZW50YXRpb25UeXBlLi4uPj4gewogICAgIHVzaW5nIFR5cGVMaXN0ID0g
YnJpZ2FuZDo6bGlzdDxUcy4uLj47CiAKLSAgICB1c2luZyBQYXJhbWV0ZXJUeXBlID0gY29uc3Qg
VmFyaWFudDx0eXBlbmFtZSBUczo6SW1wbGVtZW50YXRpb25UeXBlLi4uPiY7Ci0gICAgdXNpbmcg
TnVsbGFibGVQYXJhbWV0ZXJUeXBlID0gY29uc3Qgc3RkOjpvcHRpb25hbDxWYXJpYW50PHR5cGVu
YW1lIFRzOjpJbXBsZW1lbnRhdGlvblR5cGUuLi4+PiY7CisgICAgdXNpbmcgUGFyYW1ldGVyVHlw
ZSA9IGNvbnN0IHN0ZDo6dmFyaWFudDx0eXBlbmFtZSBUczo6SW1wbGVtZW50YXRpb25UeXBlLi4u
PiY7CisgICAgdXNpbmcgTnVsbGFibGVQYXJhbWV0ZXJUeXBlID0gY29uc3Qgc3RkOjpvcHRpb25h
bDxzdGQ6OnZhcmlhbnQ8dHlwZW5hbWUgVHM6OkltcGxlbWVudGF0aW9uVHlwZS4uLj4+JjsKIH07
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJRExCdWZmZXJTb3VyY2UgOiBJRExXcmFw
cGVyPFQ+IHsgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0J1ZmZlclNvdXJj
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0J1ZmZlclNvdXJj
ZS5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9CdWZm
ZXJTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEJ1ZmZlclNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgdXNpbmcgVmFyaWFu
dFR5cGUgPSBXVEY6OlZhcmlhbnQ8UmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRy
PEpTQzo6QXJyYXlCdWZmZXI+PjsKKyAgICB1c2luZyBWYXJpYW50VHlwZSA9IHN0ZDo6dmFyaWFu
dDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+
OwogCiAgICAgQnVmZmVyU291cmNlKCkgeyB9CiAgICAgQnVmZmVyU291cmNlKFZhcmlhbnRUeXBl
JiYgdmFyaWFudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVmFsdWVJbldy
YXBwZWRPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVmFsdWVJbldyYXBwZWRPYmplY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIC8vIHdlIGdldCBudWxsIHJhdGhlciB0aGFu
IGEgZGFuZ2xpbmcgcG9pbnRlciB0byBhIGRlbGV0ZWQgb2JqZWN0LgogICAgIHVzaW5nIFdlYWsg
PSBKU0M6OldlYWs8SlNDOjpKU0NlbGw+OwogICAgIC8vIEZJWE1FOiBXb3VsZCBzdG9yaW5nIGEg
c2VwYXJhdGUgSlNWYWx1ZSBhbG9uZ3NpZGUgYSBXZWFrIGJlIGJldHRlciB0aGFuIHVzaW5nIGEg
VmFyaWFudD8KLSAgICB1c2luZyBWYWx1ZSA9IFZhcmlhbnQ8SlNDOjpKU1ZhbHVlLCBXZWFrPjsK
KyAgICB1c2luZyBWYWx1ZSA9IHN0ZDo6dmFyaWFudDxKU0M6OkpTVmFsdWUsIFdlYWs+OwogICAg
IHN0YXRpYyBWYWx1ZSBtYWtlVmFsdWUoSlNDOjpKU1ZhbHVlKTsKICAgICBWYWx1ZSBtX3ZhbHVl
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgJKHJldmlz
aW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaAko
d29ya2luZyBjb3B5KQpAQCAtNDUsOCArNDUsOCBAQCBjbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzOwogY2xhc3MgQ3J5cHRvS2V5OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
IAotdXNpbmcgS2V5RGF0YSA9IFZhcmlhbnQ8VmVjdG9yPHVpbnQ4X3Q+LCBKc29uV2ViS2V5PjsK
LXVzaW5nIEtleU9yS2V5UGFpciA9IFZhcmlhbnQ8UmVmUHRyPENyeXB0b0tleT4sIENyeXB0b0tl
eVBhaXI+OwordXNpbmcgS2V5RGF0YSA9IHN0ZDo6dmFyaWFudDxWZWN0b3I8dWludDhfdD4sIEpz
b25XZWJLZXk+OwordXNpbmcgS2V5T3JLZXlQYWlyID0gc3RkOjp2YXJpYW50PFJlZlB0cjxDcnlw
dG9LZXk+LCBDcnlwdG9LZXlQYWlyPjsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPENyeXB0b0FsZ29yaXRobT4gewogcHVibGljOgpJbmRleDog
U291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2NyeXB0by9DcnlwdG9LZXkuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dl
YkNvcmUvY3J5cHRvL0NyeXB0b0tleS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBA
IGVudW0gY2xhc3MgQ3J5cHRvS2V5Q2xhc3MgewogY2xhc3MgQ3J5cHRvS2V5IDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPENyeXB0b0tleT4gewogcHVibGljOgogICAgIHVzaW5nIFR5cGUg
PSBDcnlwdG9LZXlUeXBlOwotICAgIHVzaW5nIEtleUFsZ29yaXRobSA9IFZhcmlhbnQ8Q3J5cHRv
S2V5QWxnb3JpdGhtLCBDcnlwdG9BZXNLZXlBbGdvcml0aG0sIENyeXB0b0VjS2V5QWxnb3JpdGht
LCBDcnlwdG9IbWFjS2V5QWxnb3JpdGhtLCBDcnlwdG9Sc2FIYXNoZWRLZXlBbGdvcml0aG0sIENy
eXB0b1JzYUtleUFsZ29yaXRobT47CisgICAgdXNpbmcgS2V5QWxnb3JpdGhtID0gc3RkOjp2YXJp
YW50PENyeXB0b0tleUFsZ29yaXRobSwgQ3J5cHRvQWVzS2V5QWxnb3JpdGhtLCBDcnlwdG9FY0tl
eUFsZ29yaXRobSwgQ3J5cHRvSG1hY0tleUFsZ29yaXRobSwgQ3J5cHRvUnNhSGFzaGVkS2V5QWxn
b3JpdGhtLCBDcnlwdG9Sc2FLZXlBbGdvcml0aG0+OwogCiAgICAgQ3J5cHRvS2V5KENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIsIFR5cGUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
Qml0bWFwKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9LZXkoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9TdWJ0bGVDcnlwdG8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlw
dG8vU3VidGxlQ3J5cHRvLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9TdWJ0bGVDcnlwdG8uaAkod29ya2luZyBjb3B5KQpAQCAtNjAsOCArNjAsOCBAQCBwdWJs
aWM6CiAKICAgICB1c2luZyBLZXlGb3JtYXQgPSBDcnlwdG9LZXlGb3JtYXQ7CiAKLSAgICB1c2lu
ZyBBbGdvcml0aG1JZGVudGlmaWVyID0gVmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0
PiwgU3RyaW5nPjsKLSAgICB1c2luZyBLZXlEYXRhVmFyaWFudCA9IFZhcmlhbnQ8UmVmUHRyPEpT
Qzo6QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+LCBKc29uV2ViS2V5
PjsKKyAgICB1c2luZyBBbGdvcml0aG1JZGVudGlmaWVyID0gc3RkOjp2YXJpYW50PEpTQzo6U3Ry
b25nPEpTQzo6SlNPYmplY3Q+LCBTdHJpbmc+OworICAgIHVzaW5nIEtleURhdGFWYXJpYW50ID0g
c3RkOjp2YXJpYW50PFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxKU0M6OkFy
cmF5QnVmZmVyPiwgSnNvbldlYktleT47CiAKICAgICB2b2lkIGVuY3J5cHQoSlNDOjpKU0dsb2Jh
bE9iamVjdCYsIEFsZ29yaXRobUlkZW50aWZpZXImJiwgQ3J5cHRvS2V5JiwgQnVmZmVyU291cmNl
JiYgZGF0YSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgdm9pZCBkZWNyeXB0KEpTQzo6
SlNHbG9iYWxPYmplY3QmLCBBbGdvcml0aG1JZGVudGlmaWVyJiYsIENyeXB0b0tleSYsIEJ1ZmZl
clNvdXJjZSYmIGRhdGEsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtRWNkc2FQYXJhbXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1FY2RzYVBhcmFtcy5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1FY2RzYVBhcmFtcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENyeXB0b0FsZ29y
aXRobUVjZHNhUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMg
ewogcHVibGljOgogICAgIC8vIEZJWE1FOiBDb25zaWRlciBtZXJnaW5nIGhhc2ggYW5kIGhhc2hJ
ZGVudGlmaWVyLgotICAgIFZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4sIFN0cmlu
Zz4gaGFzaDsKKyAgICBzdGQ6OnZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4sIFN0
cmluZz4gaGFzaDsKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hJZGVudGlmaWVy
OwogCiAgICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ2xh
c3M6OkVjZHNhUGFyYW1zOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVy
cy9DcnlwdG9BbGdvcml0aG1Ia2RmUGFyYW1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSGtkZlBhcmFtcy5oCShyZXZpc2lv
biAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdv
cml0aG1Ia2RmUGFyYW1zLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSGtkZlBhcmFtcyBmaW5hbCA6IHB1
YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKIHB1YmxpYzoKICAgICAvLyBGSVhNRTog
Q29uc2lkZXIgbWVyZ2luZyBoYXNoIGFuZCBoYXNoSWRlbnRpZmllci4KLSAgICBWYXJpYW50PEpT
Qzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBTdHJpbmc+IGhhc2g7CisgICAgc3RkOjp2YXJpYW50
PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBTdHJpbmc+IGhhc2g7CiAgICAgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBoYXNoSWRlbnRpZmllcjsKICAgICBCdWZmZXJTb3VyY2Ugc2FsdDsK
ICAgICBCdWZmZXJTb3VyY2UgaW5mbzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJh
bWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1z
LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyAr
MzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDcnlwdG9BbGdvcml0aG1IbWFjS2V5
UGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgewogcHVibGlj
OgogICAgIC8vIEZJWE1FOiBDb25zaWRlciBtZXJnaW5nIGhhc2ggYW5kIGhhc2hJZGVudGlmaWVy
LgotICAgIFZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4sIFN0cmluZz4gaGFzaDsK
KyAgICBzdGQ6OnZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4sIFN0cmluZz4gaGFz
aDsKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hJZGVudGlmaWVyOwogICAgIHN0
ZDo6b3B0aW9uYWw8c2l6ZV90PiBsZW5ndGg7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVBia2RmMlBhcmFtcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVBia2RmMlBh
cmFtcy5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1QYmtkZjJQYXJhbXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDAs
NyArNDAsNyBAQCBwdWJsaWM6CiAgICAgQnVmZmVyU291cmNlIHNhbHQ7CiAgICAgdW5zaWduZWQg
bG9uZyBpdGVyYXRpb25zOwogICAgIC8vIEZJWE1FOiBDb25zaWRlciBtZXJnaW5nIGhhc2ggYW5k
IGhhc2hJZGVudGlmaWVyLgotICAgIFZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4s
IFN0cmluZz4gaGFzaDsKKyAgICBzdGQ6OnZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVj
dD4sIFN0cmluZz4gaGFzaDsKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hJZGVu
dGlmaWVyOwogCiAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBzYWx0VmVjdG9yKCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJz
YUhhc2hlZEltcG9ydFBhcmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUhhc2hlZEltcG9ydFBhcmFtcy5oCShyZXZp
c2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9B
bGdvcml0aG1Sc2FIYXNoZWRJbXBvcnRQYXJhbXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyAr
MzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FIYXNo
ZWRJbXBvcnRQYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7
CiBwdWJsaWM6CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIG1lcmdpbmcgaGFzaCBhbmQgaGFzaElk
ZW50aWZpZXIuCi0gICAgVmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3RyaW5n
PiBoYXNoOworICAgIHN0ZDo6dmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3Ry
aW5nPiBoYXNoOwogICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaElkZW50aWZpZXI7
CiAKICAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDbGFz
czo6UnNhSGFzaGVkSW1wb3J0UGFyYW1zOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
cGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FIYXNoZWRLZXlHZW5QYXJhbXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1S
c2FIYXNoZWRLZXlHZW5QYXJhbXMuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkS2V5R2VuUGFyYW1z
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkS2V5R2VuUGFyYW1zIGZpbmFsIDogcHVibGlj
IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcyB7CiBwdWJsaWM6CiAgICAgLy8gRklYTUU6
IENvbnNpZGVyIG1lcmdpbmcgaGFzaCBhbmQgaGFzaElkZW50aWZpZXIuCi0gICAgVmFyaWFudDxK
U0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3RyaW5nPiBoYXNoOworICAgIHN0ZDo6dmFyaWFu
dDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3RyaW5nPiBoYXNoOwogICAgIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgaGFzaElkZW50aWZpZXI7CiAKICAgICBDbGFzcyBwYXJhbWV0ZXJz
Q2xhc3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDbGFzczo6UnNhSGFzaGVkS2V5R2VuUGFyYW1z
OyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4LmNwcAkocmV2aXNpb24gMjg0MDAyKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcg
KzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gaHR0cHM6Ly9kcmFmdHMuZnh0Zi5v
cmcvZ2VvbWV0cnkvI2RvbS1kb21tYXRyaXhyZWFkb25seS1kb21tYXRyaXhyZWFkb25seQotRXhj
ZXB0aW9uT3I8UmVmPERPTU1hdHJpeD4+IERPTU1hdHJpeDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxT
dHJpbmcsIFZlY3Rvcjxkb3VibGU+Pj4mJiBpbml0KQorRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJp
eD4+IERPTU1hdHJpeDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9yPGRv
dWJsZT4+PiYmIGluaXQpCiB7CiAgICAgaWYgKCFpbml0KQogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBET01NYXRyaXgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXguaAkocmV2aXNpb24g
Mjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNz
IERPTU1hdHJpeCA6IHB1YmxpYyBET01NYXRyaXhSZWFkT25seSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxTdHJpbmcsIFZlY3Rvcjxkb3VibGU+Pj4mJik7
CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXg+PiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9y
PGRvdWJsZT4+PiYmKTsKIAogICAgIHN0YXRpYyBSZWY8RE9NTWF0cml4PiBjcmVhdGUoY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgSXMyRCBpczJEKQogICAgIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcAkocmV2aXNpb24gMjg0MDAyKQor
KysgU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoRE9NTWF0cml4UmVhZE9ubHkpOwogCiAvLyBodHRwczovL2RyYWZ0cy5meHRm
Lm9yZy9nZW9tZXRyeS8jZG9tLWRvbW1hdHJpeHJlYWRvbmx5LWRvbW1hdHJpeHJlYWRvbmx5Ci1F
eGNlcHRpb25PcjxSZWY8RE9NTWF0cml4UmVhZE9ubHk+PiBET01NYXRyaXhSZWFkT25seTo6Y3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHN0ZDo6
b3B0aW9uYWw8VmFyaWFudDxTdHJpbmcsIFZlY3Rvcjxkb3VibGU+Pj4mJiBpbml0KQorRXhjZXB0
aW9uT3I8UmVmPERPTU1hdHJpeFJlYWRPbmx5Pj4gRE9NTWF0cml4UmVhZE9ubHk6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGQ6Om9wdGlv
bmFsPHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3Rvcjxkb3VibGU+Pj4mJiBpbml0KQogewogICAg
IGlmICghaW5pdCkKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NTWF0cml4UmVhZE9u
bHkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmgJKHJldmlzaW9u
IDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXhSZWFkT25seS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBET01Qb2ludEluaXQ7CiBjbGFzcyBE
T01NYXRyaXhSZWFkT25seSA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3Vu
dGVkPERPTU1hdHJpeFJlYWRPbmx5PiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChET01N
YXRyaXhSZWFkT25seSk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxET01N
YXRyaXhSZWFkT25seT4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjpvcHRp
b25hbDxWYXJpYW50PFN0cmluZywgVmVjdG9yPGRvdWJsZT4+PiYmKTsKKyAgICBzdGF0aWMgRXhj
ZXB0aW9uT3I8UmVmPERPTU1hdHJpeFJlYWRPbmx5Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3Rvcjxkb3VibGU+
Pj4mJik7CiAKICAgICBlbnVtIGNsYXNzIElzMkQgeyBObywgWWVzIH07CiAgICAgc3RhdGljIFJl
ZjxET01NYXRyaXhSZWFkT25seT4gY3JlYXRlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBt
YXRyaXgsIElzMkQgaXMyRCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5oCShyZXZpc2lvbiAyODQw
MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBkaXNwbGF5OwogICAgIH07CiAg
ICAgCi0gICAgdXNpbmcgU291cmNlID0gVmFyaWFudDxTdHJpbmcsIFJlZlB0cjxKU0M6OkFycmF5
QnVmZmVyPiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3Pj47CisgICAgdXNpbmcgU291cmNl
ID0gc3RkOjp2YXJpYW50PFN0cmluZywgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+LCBSZWZQdHI8
SlNDOjpBcnJheUJ1ZmZlclZpZXc+PjsKICAgICBzdGF0aWMgUmVmPEZvbnRGYWNlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgZmFtaWx5LCBTb3VyY2UmJiwg
Y29uc3QgRGVzY3JpcHRvcnMmKTsKICAgICBzdGF0aWMgUmVmPEZvbnRGYWNlPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIENTU0ZvbnRGYWNlJik7CiAgICAgdmlydHVhbCB+Rm9udEZh
Y2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzA5LDcgKzMw
OSw3IEBAIHByaXZhdGU6CiAgICAgU3R5bGVSdWxlTGF5ZXIoQ2FzY2FkZUxheWVyTmFtZSYmLCBz
dGQ6OnVuaXF1ZV9wdHI8RGVmZXJyZWRTdHlsZUdyb3VwUnVsZUxpc3Q+JiYpOwogICAgIFN0eWxl
UnVsZUxheWVyKGNvbnN0IFN0eWxlUnVsZUxheWVyJik7CiAKLSAgICBWYXJpYW50PENhc2NhZGVM
YXllck5hbWUsIFZlY3RvcjxDYXNjYWRlTGF5ZXJOYW1lPj4gbV9uYW1lVmFyaWFudDsKKyAgICBz
dGQ6OnZhcmlhbnQ8Q2FzY2FkZUxheWVyTmFtZSwgVmVjdG9yPENhc2NhZGVMYXllck5hbWU+PiBt
X25hbWVWYXJpYW50OwogfTsKIAogLy8gVGhpcyBpcyBvbmx5IHVzZWQgYnkgdGhlIENTUyBwYXJz
ZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVs
cGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXJIZWxwZXJzLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTc0
LDcgKzc0LDcgQEAgc3RydWN0IExlbmd0aFJhdyB7CiAgICAgZG91YmxlIHZhbHVlOwogfTsKIAot
dXNpbmcgTGVuZ3RoT3JQZXJjZW50UmF3ID0gVmFyaWFudDxMZW5ndGhSYXcsIGRvdWJsZT47Cit1
c2luZyBMZW5ndGhPclBlcmNlbnRSYXcgPSBzdGQ6OnZhcmlhbnQ8TGVuZ3RoUmF3LCBkb3VibGU+
OwogCiBzdGQ6Om9wdGlvbmFsPGludD4gY29uc3VtZUludGVnZXJSYXcoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYsIGRvdWJsZSBtaW5pbXVtVmFsdWUgPSAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjptYXgoKSk7CiBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVJbnRlZ2VyKENTU1Bh
cnNlclRva2VuUmFuZ2UmLCBkb3VibGUgbWluaW11bVZhbHVlID0gLXN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6bWF4KCkpOwpAQCAtMTU1LDEwICsxNTUsMTAgQEAgc3RydWN0IEZvbnRTdHls
ZVJhdyB7CiAgICAgQ1NTVmFsdWVJRCBzdHlsZTsKICAgICBzdGQ6Om9wdGlvbmFsPEFuZ2xlUmF3
PiBhbmdsZTsKIH07Ci11c2luZyBGb250V2VpZ2h0UmF3ID0gVmFyaWFudDxDU1NWYWx1ZUlELCBk
b3VibGU+OwotdXNpbmcgRm9udFNpemVSYXcgPSBWYXJpYW50PENTU1ZhbHVlSUQsIENTU1Byb3Bl
cnR5UGFyc2VySGVscGVyczo6TGVuZ3RoT3JQZXJjZW50UmF3PjsKLXVzaW5nIExpbmVIZWlnaHRS
YXcgPSBWYXJpYW50PENTU1ZhbHVlSUQsIGRvdWJsZSwgQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
OjpMZW5ndGhPclBlcmNlbnRSYXc+OwotdXNpbmcgRm9udEZhbWlseVJhdyA9IFZhcmlhbnQ8Q1NT
VmFsdWVJRCwgU3RyaW5nPjsKK3VzaW5nIEZvbnRXZWlnaHRSYXcgPSBzdGQ6OnZhcmlhbnQ8Q1NT
VmFsdWVJRCwgZG91YmxlPjsKK3VzaW5nIEZvbnRTaXplUmF3ID0gc3RkOjp2YXJpYW50PENTU1Zh
bHVlSUQsIENTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6TGVuZ3RoT3JQZXJjZW50UmF3PjsKK3Vz
aW5nIExpbmVIZWlnaHRSYXcgPSBzdGQ6OnZhcmlhbnQ8Q1NTVmFsdWVJRCwgZG91YmxlLCBDU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnM6Okxlbmd0aE9yUGVyY2VudFJhdz47Cit1c2luZyBGb250RmFt
aWx5UmF3ID0gc3RkOjp2YXJpYW50PENTU1ZhbHVlSUQsIFN0cmluZz47CiAKIHN0cnVjdCBGb250
UmF3IHsKICAgICBzdGQ6Om9wdGlvbmFsPEZvbnRTdHlsZVJhdz4gc3R5bGU7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuaAkocmV2aXNpb24gMjg0
MDAyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4
Y2VwdGlvbk9yOwogY2xhc3MgQ1NTTnVtZXJpY1ZhbHVlIDogcHVibGljIENTU1N0eWxlVmFsdWUg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NTTnVtZXJpY1ZhbHVlKTsKIHB1YmxpYzoK
LSAgICB1c2luZyBDU1NOdW1iZXJpc2ggPSBWYXJpYW50PGRvdWJsZSwgUmVmUHRyPENTU051bWVy
aWNWYWx1ZT4+OworICAgIHVzaW5nIENTU051bWJlcmlzaCA9IHN0ZDo6dmFyaWFudDxkb3VibGUs
IFJlZlB0cjxDU1NOdW1lcmljVmFsdWU+PjsKIAogICAgIFJlZjxDU1NOdW1lcmljVmFsdWU+IGFk
ZChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBzdWIo
VmVjdG9yPENTU051bWJlcmlzaD4mJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9DU1NVbnBhcnNlZFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vQ1NTVW5wYXJzZWRWYWx1ZS5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IEV4Y2VwdGlvbk9yOwogY2xhc3MgQ1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlOwogY2xhc3Mg
Q1NTUGFyc2VyVG9rZW5SYW5nZTsKLXVzaW5nIENTU1VucGFyc2VkU2VnbWVudCA9IFZhcmlhbnQ8
U3RyaW5nLCBSZWZQdHI8Q1NTT01WYXJpYWJsZVJlZmVyZW5jZVZhbHVlPj47Cit1c2luZyBDU1NV
bnBhcnNlZFNlZ21lbnQgPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBSZWZQdHI8Q1NTT01WYXJpYWJs
ZVJlZmVyZW5jZVZhbHVlPj47CiAKIGNsYXNzIENTU1VucGFyc2VkVmFsdWUgZmluYWwgOiBwdWJs
aWMgQ1NTU3R5bGVWYWx1ZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChDU1NVbnBhcnNl
ZFZhbHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzE5LDcgKzMx
OSw3IEBAIGVudW0gY2xhc3MgQ3VzdG9tRWxlbWVudE5hbWVWYWxpZGF0aW9uU3QKICAgICBDb25m
bGljdHNXaXRoU3RhbmRhcmRFbGVtZW50TmFtZQogfTsKIAotdXNpbmcgUmVuZGVyaW5nQ29udGV4
dCA9IFZhcmlhbnQ8Cit1c2luZyBSZW5kZXJpbmdDb250ZXh0ID0gc3RkOjp2YXJpYW50PAogI2lm
IEVOQUJMRShXRUJHTCkKICAgICBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiwKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgJKHJldmlzaW9uIDI4NDAwMikK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKICAgICB9OwogI2VuZGlmCiAKLSAgICB1c2luZyBEYXRh
ID0gVmFyaWFudDwKKyAgICB1c2luZyBEYXRhID0gc3RkOjp2YXJpYW50PAogICAgICAgICBTdHJp
bmcKICAgICAgICAgLCBEaWN0YXRpb25EYXRhIC8vIERpY3RhdGlvbkFsdGVybmF0aXZlcwogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lv
biAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTkwNiw3ICs5MDYsNyBAQCBpbmxpbmUgU2Nyb2xsQWxpZ25tZW50IHRvU2Nyb2xsQWxp
Z25tZW50CiAgICAgfQogfQogCi12b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KHN0ZDo6b3B0
aW9uYWw8VmFyaWFudDxib29sLCBTY3JvbGxJbnRvVmlld09wdGlvbnM+PiYmIGFyZykKK3ZvaWQg
RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8Ym9vbCwg
U2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4mJiBhcmcpCiB7CiAgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjQsNyArMTY0LDcgQEAgcHVibGljOgogICAgIGlubGluZSB1bnNpZ25l
ZCBmaW5kQXR0cmlidXRlSW5kZXhCeU5hbWUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0Owog
ICAgIGlubGluZSB1bnNpZ25lZCBmaW5kQXR0cmlidXRlSW5kZXhCeU5hbWUoY29uc3QgQXRvbVN0
cmluZyYsIGJvb2wgc2hvdWxkSWdub3JlQXR0cmlidXRlQ2FzZSkgY29uc3Q7CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNjcm9sbEludG9WaWV3KHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxib29s
LCBTY3JvbGxJbnRvVmlld09wdGlvbnM+PiYmIGFyZyk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzY3JvbGxJbnRvVmlldyhzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxib29sLCBTY3JvbGxJ
bnRvVmlld09wdGlvbnM+PiYmIGFyZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxJ
bnRvVmlldyhib29sIGFsaWduVG9Ub3AgPSB0cnVlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNjcm9sbEludG9WaWV3SWZOZWVkZWQoYm9vbCBjZW50ZXJJZk5lZWRlZCA9IHRydWUpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Nyb2xsSW50b1ZpZXdJZk5vdFZpc2libGUoYm9vbCBjZW50
ZXJJZk5vdFZpc2libGUgPSB0cnVlKTsKQEAgLTYzNCw3ICs2MzQsNyBAQCBwdWJsaWM6CiAKICAg
ICBFbGVtZW50KiBmaW5kQW5jaG9yRWxlbWVudEZvckxpbmsoU3RyaW5nJiBvdXRBbmNob3JOYW1l
KTsKIAotICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QmLCBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYmLCBzdGQ6Om9wdGlvbmFs
PFZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnM+PiYmKTsKKyAgICBFeGNl
cHRpb25PcjxSZWY8V2ViQW5pbWF0aW9uPj4gYW5pbWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Jiwg
SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiwgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8
ZG91YmxlLCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnM+PiYmKTsKICAgICBWZWN0b3I8UmVmUHRy
PFdlYkFuaW1hdGlvbj4+IGdldEFuaW1hdGlvbnMoc3RkOjpvcHRpb25hbDxHZXRBbmltYXRpb25z
T3B0aW9ucz4pOwogCiAgICAgRWxlbWVudElkZW50aWZpZXIgY3JlYXRlRWxlbWVudElkZW50aWZp
ZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCShyZXZpc2lvbiAyODQwMDIpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAkod29ya2luZyBjb3B5KQpAQCAtNjgs
OSArNjgsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29sIGlzTm9k
ZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBpc1BheW1lbnRSZXF1
ZXN0KCkgY29uc3Q7CiAKLSAgICB1c2luZyBBZGRFdmVudExpc3RlbmVyT3B0aW9uc09yQm9vbGVh
biA9IFZhcmlhbnQ8QWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMsIGJvb2w+OworICAgIHVzaW5nIEFk
ZEV2ZW50TGlzdGVuZXJPcHRpb25zT3JCb29sZWFuID0gc3RkOjp2YXJpYW50PEFkZEV2ZW50TGlz
dGVuZXJPcHRpb25zLCBib29sPjsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZEV2ZW50TGlz
dGVuZXJGb3JCaW5kaW5ncyhjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFdmVu
dExpc3RlbmVyPiYmLCBBZGRFdmVudExpc3RlbmVyT3B0aW9uc09yQm9vbGVhbiYmKTsKLSAgICB1
c2luZyBFdmVudExpc3RlbmVyT3B0aW9uc09yQm9vbGVhbiA9IFZhcmlhbnQ8RXZlbnRMaXN0ZW5l
ck9wdGlvbnMsIGJvb2w+OworICAgIHVzaW5nIEV2ZW50TGlzdGVuZXJPcHRpb25zT3JCb29sZWFu
ID0gc3RkOjp2YXJpYW50PEV2ZW50TGlzdGVuZXJPcHRpb25zLCBib29sPjsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXJGb3JCaW5kaW5ncyhjb25zdCBBdG9tU3Ry
aW5nJiBldmVudFR5cGUsIFJlZlB0cjxFdmVudExpc3RlbmVyPiYmLCBFdmVudExpc3RlbmVyT3B0
aW9uc09yQm9vbGVhbiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjxib29sPiBk
aXNwYXRjaEV2ZW50Rm9yQmluZGluZ3MoRXZlbnQmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL01lc3NhZ2VFdmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9NZXNz
YWdlRXZlbnQuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL01lc3Nh
Z2VFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIEJsb2I7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi11c2luZyBN
ZXNzYWdlRXZlbnRTb3VyY2UgPSBWYXJpYW50PFJlZlB0cjxXaW5kb3dQcm94eT4sIFJlZlB0cjxN
ZXNzYWdlUG9ydD4sIFJlZlB0cjxTZXJ2aWNlV29ya2VyPj47Cit1c2luZyBNZXNzYWdlRXZlbnRT
b3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5PiwgUmVmUHRyPE1lc3NhZ2VQ
b3J0PiwgUmVmUHRyPFNlcnZpY2VXb3JrZXI+PjsKICNlbHNlCi11c2luZyBNZXNzYWdlRXZlbnRT
b3VyY2UgPSBWYXJpYW50PFJlZlB0cjxXaW5kb3dQcm94eT4sIFJlZlB0cjxNZXNzYWdlUG9ydD4+
OwordXNpbmcgTWVzc2FnZUV2ZW50U291cmNlID0gc3RkOjp2YXJpYW50PFJlZlB0cjxXaW5kb3dQ
cm94eT4sIFJlZlB0cjxNZXNzYWdlUG9ydD4+OwogI2VuZGlmCiAKIGNsYXNzIE1lc3NhZ2VFdmVu
dCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICBj
b25zdCBzdGQ6Om9wdGlvbmFsPE1lc3NhZ2VFdmVudFNvdXJjZT4mIHNvdXJjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlOyB9CiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+
JiBwb3J0cygpIGNvbnN0IHsgcmV0dXJuIG1fcG9ydHM7IH0KIAotICAgIHVzaW5nIERhdGFUeXBl
ID0gVmFyaWFudDxKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LCBSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiwgU3RyaW5nLCBSZWY8QmxvYj4sIFJlZjxBcnJheUJ1ZmZlcj4+OworICAgIHVzaW5nIERh
dGFUeXBlID0gc3RkOjp2YXJpYW50PEpTVmFsdWVJbldyYXBwZWRPYmplY3QsIFJlZjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+LCBTdHJpbmcsIFJlZjxCbG9iPiwgUmVmPEFycmF5QnVmZmVyPj47CiAg
ICAgY29uc3QgRGF0YVR5cGUmIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIAogICAg
IEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIGNhY2hlZERhdGEoKSB7IHJldHVybiBtX2NhY2hlZERh
dGE7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBjbGFzcyBTVkdR
dWFsaWZpZWROYW1lOwogY2xhc3MgU2hhZG93Um9vdDsKIGNsYXNzIFRvdWNoRXZlbnQ7CiAKLXVz
aW5nIE5vZGVPclN0cmluZyA9IFZhcmlhbnQ8UmVmUHRyPE5vZGU+LCBTdHJpbmc+OwordXNpbmcg
Tm9kZU9yU3RyaW5nID0gc3RkOjp2YXJpYW50PFJlZlB0cjxOb2RlPiwgU3RyaW5nPjsKIAogY2xh
c3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChOb2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1
LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRGlzbWlzc2VkQnlFZGl0aW5nIHsg
fTsKICAgICBBbHRlcm5hdGl2ZVRleHRUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9vcmlnaW5h
bFRleHQ7Ci0gICAgVmFyaWFudDxBdXRvY29ycmVjdGlvblJlcGxhY2VtZW50LCBEaWN0YXRpb25D
b250ZXh0PiBtX2RldGFpbHM7CisgICAgc3RkOjp2YXJpYW50PEF1dG9jb3JyZWN0aW9uUmVwbGFj
ZW1lbnQsIERpY3RhdGlvbkNvbnRleHQ+IG1fZGV0YWlsczsKIAogICAgIFN0cmluZyBtX29yaWdp
bmFsU3RyaW5nRm9yTGFzdERlbGV0ZWRBdXRvY29ycmVjdGlvbjsKICAgICBQb3NpdGlvbiBtX3Bv
c2l0aW9uRm9yTGFzdERlbGV0ZWRBdXRvY29ycmVjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAJKHJldmlzaW9uIDI4NDAwMikKKysr
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjg1LDcgKzI4NSw3IEBAIGF1dG8gVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmly
c3RNaXNzcGUKICAgICByZXR1cm4gZmluZE1pc3NwZWxsZWRXb3JkcyhPcGVyYXRpb246OkZpbmRG
aXJzdCkuZmlyc3Q7CiB9CiAKLWF1dG8gVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNz
cGVsbGVkV29yZE9yVW5ncmFtbWF0aWNhbFBocmFzZShib29sIGNoZWNrR3JhbW1hcikgY29uc3Qg
LT4gVmFyaWFudDxNaXNzcGVsbGVkV29yZCwgVW5ncmFtbWF0aWNhbFBocmFzZT4KK2F1dG8gVGV4
dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNzcGVsbGVkV29yZE9yVW5ncmFtbWF0aWNhbFBo
cmFzZShib29sIGNoZWNrR3JhbW1hcikgY29uc3QgLT4gc3RkOjp2YXJpYW50PE1pc3NwZWxsZWRX
b3JkLCBVbmdyYW1tYXRpY2FsUGhyYXNlPgogewogICAgIGlmICghdW5pZmllZFRleHRDaGVja2Vy
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtMjkzLDcgKzI5Myw3IEBAIGF1dG8g
VGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNzcGUKICAgICBpZiAocGxhdGZvcm1Ecml2
ZW5UZXh0Q2hlY2tlckVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIFZhcmlh
bnQ8TWlzc3BlbGxlZFdvcmQsIFVuZ3JhbW1hdGljYWxQaHJhc2U+IGZpcnN0Rm91bmRJdGVtOwor
ICAgIHN0ZDo6dmFyaWFudDxNaXNzcGVsbGVkV29yZCwgVW5ncmFtbWF0aWNhbFBocmFzZT4gZmly
c3RGb3VuZEl0ZW07CiAgICAgR3JhbW1hckRldGFpbCBncmFtbWFyRGV0YWlsOwogCiAgICAgU3Ry
aW5nIG1pc3NwZWxsZWRXb3JkOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hl
Y2tpbmdIZWxwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRD
aGVja2luZ0hlbHBlci5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRDaGVja2luZ0hlbHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBA
IHB1YmxpYzoKIAogICAgIE1pc3NwZWxsZWRXb3JkIGZpbmRGaXJzdE1pc3NwZWxsZWRXb3JkKCkg
Y29uc3Q7CiAgICAgVW5ncmFtbWF0aWNhbFBocmFzZSBmaW5kRmlyc3RVbmdyYW1tYXRpY2FsUGhy
YXNlKCkgY29uc3Q7Ci0gICAgVmFyaWFudDxNaXNzcGVsbGVkV29yZCwgVW5ncmFtbWF0aWNhbFBo
cmFzZT4gZmluZEZpcnN0TWlzc3BlbGxlZFdvcmRPclVuZ3JhbW1hdGljYWxQaHJhc2UoYm9vbCBj
aGVja0dyYW1tYXIpIGNvbnN0OworICAgIHN0ZDo6dmFyaWFudDxNaXNzcGVsbGVkV29yZCwgVW5n
cmFtbWF0aWNhbFBocmFzZT4gZmluZEZpcnN0TWlzc3BlbGxlZFdvcmRPclVuZ3JhbW1hdGljYWxQ
aHJhc2UoYm9vbCBjaGVja0dyYW1tYXIpIGNvbnN0OwogCiAgICAgc3RkOjpvcHRpb25hbDxTaW1w
bGVSYW5nZT4gbWFya0FsbE1pc3NwZWxsZWRXb3JkcygpIGNvbnN0OyAvLyBSZXR1cm5zIHRoZSBy
YW5nZSBvZiB0aGUgZmlyc3QgbWlzc3BlbGxlZCB3b3JkLgogICAgIHZvaWQgbWFya0FsbFVuZ3Jh
bW1hdGljYWxQaHJhc2VzKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oCShyZXZpc2lvbiAyODQwMDIpCisr
KyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAKICAg
ICAgICAgVHlwZSB0eXBlOwotICAgICAgICBXVEY6OlZhcmlhbnQ8RWxlbWVudFJ1bGUsIEF0dHJp
YnV0ZVJ1bGUsIENsYXNzUnVsZT4gcnVsZTsKKyAgICAgICAgc3RkOjp2YXJpYW50PEVsZW1lbnRS
dWxlLCBBdHRyaWJ1dGVSdWxlLCBDbGFzc1J1bGU+IHJ1bGU7CiAKICAgICAgICAgYm9vbCBtYXRj
aChjb25zdCBFbGVtZW50JikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCShyZXZp
c2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaAkod29ya2luZyBj
b3B5KQpAQCAtNTcsNyArNTcsNyBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAotdXNpbmcgQmxvYlBhcnRWYXJpYW50ID0gVmFy
aWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4sIFJlZlB0cjxCbG9iPiwgU3RyaW5nPjsKK3VzaW5nIEJsb2JQYXJ0VmFyaWFudCA9IHN0ZDo6
dmFyaWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1
ZmZlcj4sIFJlZlB0cjxCbG9iPiwgU3RyaW5nPjsKIAogY2xhc3MgQmxvYiA6IHB1YmxpYyBTY3Jp
cHRXcmFwcGFibGUsIHB1YmxpYyBVUkxSZWdpc3RyYWJsZSwgcHVibGljIFJlZkNvdW50ZWQ8Qmxv
Yj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURURf
RVhQT1JUKEJsb2IsIFdFQkNPUkVfRVhQT1JUKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZVJlYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlUmVhZGVyLmNwcAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlUmVhZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQg
RmlsZVJlYWRlcjo6ZmlyZUV2ZW50KGNvbnN0IEF0b21TdHIKICAgICBkaXNwYXRjaEV2ZW50KFBy
b2dyZXNzRXZlbnQ6OmNyZWF0ZSh0eXBlLCB0cnVlLCBtX2xvYWRlciA/IG1fbG9hZGVyLT5ieXRl
c0xvYWRlZCgpIDogMCwgbV9sb2FkZXIgPyBtX2xvYWRlci0+dG90YWxCeXRlcygpIDogMCkpOwog
fQogCi1zdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4+PiBGaWxlUmVhZGVyOjpyZXN1bHQoKSBjb25zdAorc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlh
bnQ8U3RyaW5nLCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+PiBGaWxlUmVhZGVyOjpyZXN1bHQo
KSBjb25zdAogewogICAgIGlmICghbV9sb2FkZXIgfHwgbV9lcnJvciB8fCBtX3N0YXRlICE9IERP
TkUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVSZWFkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXIuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlUmVhZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgog
ICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAg
ICBET01FeGNlcHRpb24qIGVycm9yKCkgeyByZXR1cm4gbV9lcnJvci5nZXQoKTsgfQogICAgIEZp
bGVSZWFkZXJMb2FkZXI6OlJlYWRUeXBlIHJlYWRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFk
VHlwZTsgfQotICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxTdHJpbmcsIFJlZlB0cjxKU0M6OkFy
cmF5QnVmZmVyPj4+IHJlc3VsdCgpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJp
YW50PFN0cmluZywgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+Pj4gcmVzdWx0KCkgY29uc3Q7CiAK
ICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaAkocmV2aXNp
b24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2
b2lkIHByb2Nlc3NNZXNzYWdlcygpOwogCi0gICAgdXNpbmcgTWVzc2FnZSA9IFZhcmlhbnQ8Q1N0
cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4sIFVuaXF1ZVJlZjxCbG9iTG9hZGVyPj47CisgICAgdXNp
bmcgTWVzc2FnZSA9IHN0ZDo6dmFyaWFudDxDU3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPiwgVW5p
cXVlUmVmPEJsb2JMb2FkZXI+PjsKICAgICBEZXF1ZTxNZXNzYWdlPiBtX3F1ZXVlOwogCiAgICAg
V3JpdGVTdHJpbmcgbV93cml0ZVN0cmluZzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvRE9N
Rm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0RPTUZvcm1EYXRh
LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvRE9NRm9ybURhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7
CiAKIGNsYXNzIERPTUZvcm1EYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NRm9ybURhdGE+IHsK
IHB1YmxpYzoKLSAgICB1c2luZyBGb3JtRGF0YUVudHJ5VmFsdWUgPSBWYXJpYW50PFJlZlB0cjxG
aWxlPiwgU3RyaW5nPjsKKyAgICB1c2luZyBGb3JtRGF0YUVudHJ5VmFsdWUgPSBzdGQ6OnZhcmlh
bnQ8UmVmUHRyPEZpbGU+LCBTdHJpbmc+OwogCiAgICAgc3RydWN0IEl0ZW0gewogICAgICAgICBT
dHJpbmcgbmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24u
Y3BwCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xs
ZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsMjggKzQ3LDI4IEBAIGlubGluZSBIVE1M
QWxsQ29sbGVjdGlvbjo6SFRNTEFsbENvbGxlY3QKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW5mcmFzdHJ1Y3R1cmUuaHRtbCNkb20taHRtbGFsbGNvbGxl
Y3Rpb24taXRlbQotc3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4s
IFJlZlB0cjxFbGVtZW50Pj4+IEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZE9ySW5kZXhlZEl0ZW1P
ckl0ZW1zKGNvbnN0IEF0b21TdHJpbmcmIG5hbWVPckluZGV4KSBjb25zdAorc3RkOjpvcHRpb25h
bDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+Pj4g
SFRNTEFsbENvbGxlY3Rpb246Om5hbWVkT3JJbmRleGVkSXRlbU9ySXRlbXMoY29uc3QgQXRvbVN0
cmluZyYgbmFtZU9ySW5kZXgpIGNvbnN0CiB7CiAgICAgaWYgKG5hbWVPckluZGV4LmlzTnVsbCgp
KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgaWYgKGF1dG8gaW5kZXggPSBK
U0M6OnBhcnNlSW5kZXgoKm5hbWVPckluZGV4LmltcGwoKSkpCi0gICAgICAgIHJldHVybiBWYXJp
YW50PFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQdHI8RWxl
bWVudD4geyBpdGVtKGluZGV4LnZhbHVlKCkpIH0gfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6dmFy
aWFudDxSZWZQdHI8SFRNTENvbGxlY3Rpb24+LCBSZWZQdHI8RWxlbWVudD4+IHsgUmVmUHRyPEVs
ZW1lbnQ+IHsgaXRlbShpbmRleC52YWx1ZSgpKSB9IH07CiAKICAgICByZXR1cm4gbmFtZWRJdGVt
T3JJdGVtcyhuYW1lT3JJbmRleCk7CiB9CiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL2luZnJhc3RydWN0dXJlLmh0bWwjY29uY2VwdC1nZXQtYWxsLW5hbWVkCi1z
dGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1l
bnQ+Pj4gSFRNTEFsbENvbGxlY3Rpb246Om5hbWVkSXRlbU9ySXRlbXMoY29uc3QgQXRvbVN0cmlu
ZyYgbmFtZSkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFJlZlB0cjxIVE1MQ29s
bGVjdGlvbj4sIFJlZlB0cjxFbGVtZW50Pj4+IEhUTUxBbGxDb2xsZWN0aW9uOjpuYW1lZEl0ZW1P
ckl0ZW1zKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUpIGNvbnN0CiB7CiAgICAgYXV0byBuYW1lZEl0
ZW1zID0gdGhpcy0+bmFtZWRJdGVtcyhuYW1lKTsKIAogICAgIGlmIChuYW1lZEl0ZW1zLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAobmFtZWRJdGVtcy5z
aXplKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9u
PiwgUmVmUHRyPEVsZW1lbnQ+PiB7IFJlZlB0cjxFbGVtZW50PiB7IFdURk1vdmUobmFtZWRJdGVt
c1swXSkgfSB9OworICAgICAgICByZXR1cm4gc3RkOjp2YXJpYW50PFJlZlB0cjxIVE1MQ29sbGVj
dGlvbj4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQdHI8RWxlbWVudD4geyBXVEZNb3ZlKG5hbWVk
SXRlbXNbMF0pIH0gfTsKIAotICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxIVE1MQ29sbGVjdGlv
bj4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IHsgZG93bmNhc3Q8
RG9jdW1lbnQ+KG93bmVyTm9kZSgpKS5hbGxGaWx0ZXJlZEJ5TmFtZShuYW1lKSB9IH07CisgICAg
cmV0dXJuIHN0ZDo6dmFyaWFudDxSZWZQdHI8SFRNTENvbGxlY3Rpb24+LCBSZWZQdHI8RWxlbWVu
dD4+IHsgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiB7IGRvd25jYXN0PERvY3VtZW50Pihvd25lck5v
ZGUoKSkuYWxsRmlsdGVyZWRCeU5hbWUobmFtZSkgfSB9OwogfQogCiBIVE1MQWxsTmFtZWRTdWJD
b2xsZWN0aW9uOjp+SFRNTEFsbE5hbWVkU3ViQ29sbGVjdGlvbigpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDgg
KzMzLDggQEAgY2xhc3MgSFRNTEFsbENvbGxlY3Rpb24gZmluYWwgOiBwdWJsaWMgQQogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8SFRNTEFsbENvbGxlY3Rpb24+IGNyZWF0ZShEb2N1bWVudCYsIENv
bGxlY3Rpb25UeXBlKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8SFRNTENv
bGxlY3Rpb24+LCBSZWZQdHI8RWxlbWVudD4+PiBuYW1lZE9ySW5kZXhlZEl0ZW1Pckl0ZW1zKGNv
bnN0IEF0b21TdHJpbmcmIG5hbWVPckluZGV4KSBjb25zdDsKLSAgICBzdGQ6Om9wdGlvbmFsPFZh
cmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+Pj4gbmFtZWRJdGVt
T3JJdGVtcyhjb25zdCBBdG9tU3RyaW5nJikgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6
OnZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+Pj4gbmFtZWRP
ckluZGV4ZWRJdGVtT3JJdGVtcyhjb25zdCBBdG9tU3RyaW5nJiBuYW1lT3JJbmRleCkgY29uc3Q7
CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwg
UmVmUHRyPEVsZW1lbnQ+Pj4gbmFtZWRJdGVtT3JJdGVtcyhjb25zdCBBdG9tU3RyaW5nJikgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgSFRNTEFsbENvbGxlY3Rpb24oRG9jdW1lbnQmLCBDb2xsZWN0
aW9uVHlwZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCBSZWY8RG9jdW1lbnRQYXJzZXI+IEhUTUxEb2N1
bWVudDo6Y3JlYXRlCiB9CiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL2RvbS5odG1sI2RvbS1kb2N1bWVudC1uYW1lZGl0ZW0KLXN0ZDo6b3B0aW9uYWw8VmFyaWFu
dDxSZWZQdHI8V2luZG93UHJveHk+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVj
dGlvbj4+PiBIVE1MRG9jdW1lbnQ6Om5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJiBuYW1lKQor
c3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5PiwgUmVmUHRyPEVs
ZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+Pj4gSFRNTERvY3VtZW50OjpuYW1lZEl0ZW0o
Y29uc3QgQXRvbVN0cmluZyYgbmFtZSkKIHsKICAgICBpZiAobmFtZS5pc051bGwoKSB8fCAhaGFz
RG9jdW1lbnROYW1lZEl0ZW0oKm5hbWUuaW1wbCgpKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKQEAgLTEyOCwxNiArMTI4LDE2IEBAIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8
V2luZG93UHJveHkKICAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnROYW1lZEl0ZW1Db250YWluc011
bHRpcGxlRWxlbWVudHMoKm5hbWUuaW1wbCgpKSkpIHsKICAgICAgICAgYXV0byBjb2xsZWN0aW9u
ID0gZG9jdW1lbnROYW1lZEl0ZW1zKG5hbWUpOwogICAgICAgICBBU1NFUlQoY29sbGVjdGlvbi0+
bGVuZ3RoKCkgPiAxKTsKLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5
PiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+PiB7IFJlZlB0cjxIVE1M
Q29sbGVjdGlvbj4geyBXVEZNb3ZlKGNvbGxlY3Rpb24pIH0gfTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6dmFyaWFudDxSZWZQdHI8V2luZG93UHJveHk+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxI
VE1MQ29sbGVjdGlvbj4+IHsgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiB7IFdURk1vdmUoY29sbGVj
dGlvbikgfSB9OwogICAgIH0KIAogICAgIGF1dG8mIGVsZW1lbnQgPSAqZG9jdW1lbnROYW1lZEl0
ZW0oKm5hbWUuaW1wbCgpKTsKICAgICBpZiAoVU5MSUtFTFkoaXM8SFRNTElGcmFtZUVsZW1lbnQ+
KGVsZW1lbnQpKSkgewogICAgICAgICBpZiAoUmVmUHRyIGRvbVdpbmRvdyA9IGRvd25jYXN0PEhU
TUxJRnJhbWVFbGVtZW50PihlbGVtZW50KS5jb250ZW50V2luZG93KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gVmFyaWFudDxSZWZQdHI8V2luZG93UHJveHk+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0
cjxIVE1MQ29sbGVjdGlvbj4+IHsgV1RGTW92ZShkb21XaW5kb3cpIH07CisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjp2YXJpYW50PFJlZlB0cjxXaW5kb3dQcm94eT4sIFJlZlB0cjxFbGVtZW50Piwg
UmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4geyBXVEZNb3ZlKGRvbVdpbmRvdykgfTsKICAgICB9CiAK
LSAgICByZXR1cm4gVmFyaWFudDxSZWZQdHI8V2luZG93UHJveHk+LCBSZWZQdHI8RWxlbWVudD4s
IFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+IHsgUmVmUHRyPEVsZW1lbnQ+IHsgJmVsZW1lbnQgfSB9
OworICAgIHJldHVybiBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5PiwgUmVmUHRyPEVs
ZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+PiB7IFJlZlB0cjxFbGVtZW50PiB7ICZlbGVt
ZW50IH0gfTsKIH0KIAogVmVjdG9yPEF0b21TdHJpbmc+IEhUTUxEb2N1bWVudDo6c3VwcG9ydGVk
UHJvcGVydHlOYW1lcygpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgJ
KHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIGludCB3aWR0aCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIGludCBoZWlnaHQoKTsKICAgICAK
LSAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5PiwgUmVmUHRyPEVs
ZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+Pj4gbmFtZWRJdGVtKGNvbnN0IEF0b21TdHJp
bmcmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxSZWZQdHI8V2luZG93UHJveHk+
LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+PiBuYW1lZEl0ZW0oY29u
c3QgQXRvbVN0cmluZyYpOwogICAgIFZlY3RvcjxBdG9tU3RyaW5nPiBzdXBwb3J0ZWRQcm9wZXJ0
eU5hbWVzKCkgY29uc3Q7CiAKICAgICBFbGVtZW50KiBkb2N1bWVudE5hbWVkSXRlbShjb25zdCBB
dG9tU3RyaW5nSW1wbCYgbmFtZSkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudE5hbWVkSXRlbS5n
ZXRFbGVtZW50QnlEb2N1bWVudE5hbWVkSXRlbShuYW1lLCAqdGhpcyk7IH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwCShy
ZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsMTYgKzU0LDE2IEBAIFJlZjxIVE1M
Rm9ybUNvbnRyb2xzQ29sbGVjdGlvbj4gSFRNTEZvcm0KIAogSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb246On5IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbigpID0gZGVmYXVsdDsKIAotc3RkOjpv
cHRpb25hbDxWYXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+Pj4g
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246Om5hbWVkSXRlbU9ySXRlbXMoY29uc3QgU3RyaW5n
JiBuYW1lKSBjb25zdAorc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9k
ZUxpc3Q+LCBSZWZQdHI8RWxlbWVudD4+PiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6bmFt
ZWRJdGVtT3JJdGVtcyhjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CiB7CiAgICAgYXV0byBuYW1l
ZEl0ZW1zID0gdGhpcy0+bmFtZWRJdGVtcyhuYW1lKTsKIAogICAgIGlmIChuYW1lZEl0ZW1zLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAobmFtZWRJdGVt
cy5zaXplKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxp
c3Q+LCBSZWZQdHI8RWxlbWVudD4+IHsgUmVmUHRyPEVsZW1lbnQ+IHsgV1RGTW92ZShuYW1lZEl0
ZW1zWzBdKSB9IH07CisgICAgICAgIHJldHVybiBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9k
ZUxpc3Q+LCBSZWZQdHI8RWxlbWVudD4+IHsgUmVmUHRyPEVsZW1lbnQ+IHsgV1RGTW92ZShuYW1l
ZEl0ZW1zWzBdKSB9IH07CiAKLSAgICByZXR1cm4gVmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlz
dD4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQdHI8UmFkaW9Ob2RlTGlzdD4geyBvd25lck5vZGUo
KS5yYWRpb05vZGVMaXN0KG5hbWUpIH0gfTsKKyAgICByZXR1cm4gc3RkOjp2YXJpYW50PFJlZlB0
cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+PiB7IFJlZlB0cjxSYWRpb05vZGVMaXN0
PiB7IG93bmVyTm9kZSgpLnJhZGlvTm9kZUxpc3QobmFtZSkgfSB9OwogfQogCiBzdGF0aWMgdW5z
aWduZWQgZmluZEZvcm1Bc3NvY2lhdGVkRWxlbWVudChjb25zdCBWZWN0b3I8V2Vha1B0cjxIVE1M
RWxlbWVudD4+JiBlbGVtZW50cywgY29uc3QgRWxlbWVudCYgZWxlbWVudCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmgJKHJldmlz
aW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24oKTsKIAogICAgIEhUTUxFbGVtZW50KiBp
dGVtKHVuc2lnbmVkIG9mZnNldCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgc3RkOjpvcHRpb25hbDxW
YXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+Pj4gbmFtZWRJdGVt
T3JJdGVtcyhjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFy
aWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50Pj4+IG5hbWVkSXRlbU9y
SXRlbXMoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAKICAgICBIVE1MRm9ybUVsZW1lbnQmIG93bmVy
Tm9kZSgpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NCwxNiArMTc0LDE2IEBAIEhUTUxFbGVtZW50
KiBIVE1MRm9ybUVsZW1lbnQ6Oml0ZW0odW5zaWcKICAgICByZXR1cm4gZWxlbWVudHMoKS0+aXRl
bShpbmRleCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlz
dD4sIFJlZlB0cjxFbGVtZW50Pj4+IEhUTUxGb3JtRWxlbWVudDo6bmFtZWRJdGVtKGNvbnN0IEF0
b21TdHJpbmcmIG5hbWUpCitzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxSZWZQdHI8UmFkaW9O
b2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50Pj4+IEhUTUxGb3JtRWxlbWVudDo6bmFtZWRJdGVtKGNv
bnN0IEF0b21TdHJpbmcmIG5hbWUpCiB7CiAgICAgYXV0byBuYW1lZEl0ZW1zID0gbmFtZWRFbGVt
ZW50cyhuYW1lKTsKIAogICAgIGlmIChuYW1lZEl0ZW1zLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPT0gMSkKLSAgICAg
ICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxpc3Q+LCBSZWZQdHI8RWxlbWVudD4+
IHsgUmVmUHRyPEVsZW1lbnQ+IHsgV1RGTW92ZShuYW1lZEl0ZW1zWzBdKSB9IH07CisgICAgICAg
IHJldHVybiBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxpc3Q+LCBSZWZQdHI8RWxlbWVu
dD4+IHsgUmVmUHRyPEVsZW1lbnQ+IHsgV1RGTW92ZShuYW1lZEl0ZW1zWzBdKSB9IH07CiAKLSAg
ICByZXR1cm4gVmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50Pj4g
eyBSZWZQdHI8UmFkaW9Ob2RlTGlzdD4geyByYWRpb05vZGVMaXN0KG5hbWUpIH0gfTsKKyAgICBy
ZXR1cm4gc3RkOjp2YXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+
PiB7IFJlZlB0cjxSYWRpb05vZGVMaXN0PiB7IHJhZGlvTm9kZUxpc3QobmFtZSkgfSB9OwogfQog
CiBWZWN0b3I8QXRvbVN0cmluZz4gSFRNTEZvcm1FbGVtZW50OjpzdXBwb3J0ZWRQcm9wZXJ0eU5h
bWVzKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAkocmV2
aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VY
UE9SVCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBIVE1MRWxlbWVudCogaXRlbSh1bnNp
Z25lZCBpbmRleCk7Ci0gICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxSYWRpb05vZGVM
aXN0PiwgUmVmUHRyPEVsZW1lbnQ+Pj4gbmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmKTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJlZlB0
cjxFbGVtZW50Pj4+IG5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgVmVjdG9yPEF0
b21TdHJpbmc+IHN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdDsKIAogICAgIFN0cmluZyBl
bmN0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVzLmVuY29kaW5nVHlwZSgpOyB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gMjg0MDAy
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTExNSw3ICsxMTUsNyBAQCBjbGFzcyBSZW1vdGVQbGF5YmFjazsKIHVzaW5nIEN1ZUlu
dGVydmFsID0gUE9ESW50ZXJ2YWw8TWVkaWFUaW1lLCBUZXh0VHJhY2tDdWUqPjsKIHVzaW5nIEN1
ZUxpc3QgPSBWZWN0b3I8Q3VlSW50ZXJ2YWw+OwogCi11c2luZyBNZWRpYVByb3ZpZGVyID0gc3Rk
OjpvcHRpb25hbDxWYXJpYW50PAordXNpbmcgTWVkaWFQcm92aWRlciA9IHN0ZDo6b3B0aW9uYWwg
PCBzdGQ6OnZhcmlhbnQgPAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgUmVmUHRyPE1l
ZGlhU3RyZWFtPiwKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
c0NvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRp
b25zQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw4ICs0NCw4IEBA
IHB1YmxpYzoKICAgICAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRJdGVtKHVuc2lnbmVkIGlu
ZGV4LCBIVE1MT3B0aW9uRWxlbWVudCopOwogICAgIAotICAgIHVzaW5nIE9wdGlvbk9yT3B0R3Jv
dXBFbGVtZW50ID0gVmFyaWFudDxSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+LCBSZWZQdHI8SFRN
TE9wdEdyb3VwRWxlbWVudD4+OwotICAgIHVzaW5nIEhUTUxFbGVtZW50T3JJbnQgPSBWYXJpYW50
PFJlZlB0cjxIVE1MRWxlbWVudD4sIGludD47CisgICAgdXNpbmcgT3B0aW9uT3JPcHRHcm91cEVs
ZW1lbnQgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiwgUmVmUHRyPEhU
TUxPcHRHcm91cEVsZW1lbnQ+PjsKKyAgICB1c2luZyBIVE1MRWxlbWVudE9ySW50ID0gc3RkOjp2
YXJpYW50PFJlZlB0cjxIVE1MRWxlbWVudD4sIGludD47CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhj
ZXB0aW9uT3I8dm9pZD4gYWRkKGNvbnN0IE9wdGlvbk9yT3B0R3JvdXBFbGVtZW50JiwgY29uc3Qg
c3RkOjpvcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiYgYmVmb3JlKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZShpbnQgaW5kZXgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDggKzUyLDggQEAg
cHVibGljOgogCiAgICAgYm9vbCB1c2VzTWVudUxpc3QoKSBjb25zdDsKIAotICAgIHVzaW5nIE9w
dGlvbk9yT3B0R3JvdXBFbGVtZW50ID0gVmFyaWFudDxSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+
LCBSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVudD4+OwotICAgIHVzaW5nIEhUTUxFbGVtZW50T3JJ
bnQgPSBWYXJpYW50PFJlZlB0cjxIVE1MRWxlbWVudD4sIGludD47CisgICAgdXNpbmcgT3B0aW9u
T3JPcHRHcm91cEVsZW1lbnQgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxPcHRpb25FbGVtZW50
PiwgUmVmUHRyPEhUTUxPcHRHcm91cEVsZW1lbnQ+PjsKKyAgICB1c2luZyBIVE1MRWxlbWVudE9y
SW50ID0gc3RkOjp2YXJpYW50PFJlZlB0cjxIVE1MRWxlbWVudD4sIGludD47CiAgICAgV0VCQ09S
RV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gYWRkKGNvbnN0IE9wdGlvbk9yT3B0R3JvdXBFbGVt
ZW50JiwgY29uc3Qgc3RkOjpvcHRpb25hbDxIVE1MRWxlbWVudE9ySW50PiYgYmVmb3JlKTsKIAog
ICAgIHVzaW5nIE5vZGU6OnJlbW92ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VC
aXRtYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmgJ
KHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuaAko
d29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBl
PiBjbGFzcyBET01Qcm9tCiBjbGFzcyBJbWFnZUJpdG1hcCBmaW5hbCA6IHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPEltYWdlQml0bWFwPiB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChJbWFnZUJpdG1hcCk7CiBwdWJsaWM6Ci0gICAgdXNpbmcgU291cmNlID0g
VmFyaWFudDwKKyAgICB1c2luZyBTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8CiAgICAgICAgIFJlZlB0
cjxIVE1MSW1hZ2VFbGVtZW50PiwKICNpZiBFTkFCTEUoVklERU8pCiAgICAgICAgIFJlZlB0cjxI
VE1MVmlkZW9FbGVtZW50PiwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMu
aAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52
YXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OwogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0OwogY2xhc3MgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTsKIAotdXNpbmcgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dCA9IFZh
cmlhbnQ8Cit1c2luZyBPZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0ID0gc3RkOjp2YXJpYW50PAog
I2lmIEVOQUJMRShXRUJHTCkKICAgICBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiwKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmNwcAkocmV2aXNp
b24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIFVSTFNlYXJjaFBhcmFtczo6VVJMU2VhcmNo
UGFyYW1zKGNvbnN0IFYKIHsKIH0KIAotRXhjZXB0aW9uT3I8UmVmPFVSTFNlYXJjaFBhcmFtcz4+
IFVSTFNlYXJjaFBhcmFtczo6Y3JlYXRlKFZhcmlhbnQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+Piwg
VmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4sIFN0cmluZz4mJiB2YXJp
YW50KQorRXhjZXB0aW9uT3I8UmVmPFVSTFNlYXJjaFBhcmFtcz4+IFVSTFNlYXJjaFBhcmFtczo6
Y3JlYXRlKHN0ZDo6dmFyaWFudDxWZWN0b3I8VmVjdG9yPFN0cmluZz4+LCBWZWN0b3I8V1RGOjpL
ZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiwgU3RyaW5nPiYmIHZhcmlhbnQpCiB7CiAgICAg
YXV0byB2aXNpdG9yID0gV1RGOjptYWtlVmlzaXRvcihbJl0oY29uc3QgVmVjdG9yPFZlY3RvcjxT
dHJpbmc+PiYgdmVjdG9yKSAtPiBFeGNlcHRpb25PcjxSZWY8VVJMU2VhcmNoUGFyYW1zPj4gewog
ICAgICAgICBWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiBwYWlyczsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaAkocmV2aXNpb24gMjg0MDAy
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBET01VUkw7CiAKIGNsYXNzIFVSTFNlYXJjaFBhcmFt
cyA6IHB1YmxpYyBSZWZDb3VudGVkPFVSTFNlYXJjaFBhcmFtcz4gewogcHVibGljOgotICAgIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8VVJMU2VhcmNoUGFyYW1zPj4gY3JlYXRlKFZhcmlhbnQ8VmVj
dG9yPFZlY3RvcjxTdHJpbmc+PiwgVmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgU3Ry
aW5nPj4sIFN0cmluZz4mJik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxVUkxTZWFyY2hQ
YXJhbXM+PiBjcmVhdGUoc3RkOjp2YXJpYW50PFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4sIFZlY3Rv
cjxXVEY6OktleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+LCBTdHJpbmc+JiYpOwogICAgIHN0
YXRpYyBSZWY8VVJMU2VhcmNoUGFyYW1zPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIERP
TVVSTCogYXNzb2NpYXRlZFVSTCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFVSTFNlYXJjaFBhcmFtcyhzdHJpbmcsIGFzc29jaWF0ZWRVUkwpKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyAr
NjUsNyBAQCBjbGFzcyBUZXh0TWV0cmljczsKIAogc3RydWN0IERPTU1hdHJpeDJESW5pdDsKIAot
dXNpbmcgQ2FudmFzSW1hZ2VTb3VyY2UgPSBWYXJpYW50PFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50
PiwgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiwgUmVmUHRyPEltYWdlQml0bWFwPgordXNpbmcg
Q2FudmFzSW1hZ2VTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+
LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+LCBSZWZQdHI8SW1hZ2VCaXRtYXA+CiAjaWYgRU5B
QkxFKENTU19UWVBFRF9PTSkKICAgICAsIFJlZlB0cjxDU1NTdHlsZUltYWdlVmFsdWU+CiAjZW5k
aWYKQEAgLTE4Miw3ICsxODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3SW1hZ2VGcm9tUmVj
dChIVE1MSW1hZ2VFbGVtZW50JiwgZmxvYXQgc3ggPSAwLCBmbG9hdCBzeSA9IDAsIGZsb2F0IHN3
ID0gMCwgZmxvYXQgc2ggPSAwLCBmbG9hdCBkeCA9IDAsIGZsb2F0IGR5ID0gMCwgZmxvYXQgZHcg
PSAwLCBmbG9hdCBkaCA9IDAsIGNvbnN0IFN0cmluZyYgY29tcG9zaXRlT3BlcmF0aW9uID0gZW1w
dHlTdHJpbmcoKSk7CiAgICAgdm9pZCBjbGVhckNhbnZhcygpOwogCi0gICAgdXNpbmcgU3R5bGVW
YXJpYW50ID0gVmFyaWFudDxTdHJpbmcsIFJlZlB0cjxDYW52YXNHcmFkaWVudD4sIFJlZlB0cjxD
YW52YXNQYXR0ZXJuPj47CisgICAgdXNpbmcgU3R5bGVWYXJpYW50ID0gc3RkOjp2YXJpYW50PFN0
cmluZywgUmVmUHRyPENhbnZhc0dyYWRpZW50PiwgUmVmUHRyPENhbnZhc1BhdHRlcm4+PjsKICAg
ICBTdHlsZVZhcmlhbnQgc3Ryb2tlU3R5bGUoKSBjb25zdDsKICAgICB2b2lkIHNldFN0cm9rZVN0
eWxlKFN0eWxlVmFyaWFudCYmKTsKICAgICBTdHlsZVZhcmlhbnQgZmlsbFN0eWxlKCkgY29uc3Q7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgJKHJldmlzaW9u
IDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIENhbnZhc1N0eWxl
KEN1cnJlbnRDb2xvcik7CiAKLSAgICBWYXJpYW50PEludmFsaWQsIENvbG9yLCBSZWZQdHI8Q2Fu
dmFzR3JhZGllbnQ+LCBSZWZQdHI8Q2FudmFzUGF0dGVybj4sIEN1cnJlbnRDb2xvcj4gbV9zdHls
ZTsKKyAgICBzdGQ6OnZhcmlhbnQ8SW52YWxpZCwgQ29sb3IsIFJlZlB0cjxDYW52YXNHcmFkaWVu
dD4sIFJlZlB0cjxDYW52YXNQYXR0ZXJuPiwgQ3VycmVudENvbG9yPiBtX3N0eWxlOwogfTsKIAog
Ym9vbCBpc0N1cnJlbnRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsOSArNzgsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCB0ZXhTdG9yYWdlM0QoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMc2l6
ZWkgbGV2ZWxzLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dM
c2l6ZWkgaGVpZ2h0LCBHQ0dMc2l6ZWkgZGVwdGgpOwogCiAjaWYgRU5BQkxFKFZJREVPKQotICAg
IHVzaW5nIFRleEltYWdlU291cmNlID0gV1RGOjpWYXJpYW50PFJlZlB0cjxJbWFnZUJpdG1hcD4s
IFJlZlB0cjxJbWFnZURhdGE+LCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4sIFJlZlB0cjxIVE1M
Q2FudmFzRWxlbWVudD4sIFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50Pj47CisgICAgdXNpbmcgVGV4
SW1hZ2VTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEltYWdlQml0bWFwPiwgUmVmUHRyPElt
YWdlRGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVmUHRyPEhUTUxDYW52YXNFbGVt
ZW50PiwgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+PjsKICNlbHNlCi0gICAgdXNpbmcgVGV4SW1h
Z2VTb3VyY2UgPSBXVEY6OlZhcmlhbnQ8UmVmUHRyPEltYWdlQml0bWFwPiwgUmVmUHRyPEltYWdl
RGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50
Pj47CisgICAgdXNpbmcgVGV4SW1hZ2VTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEltYWdl
Qml0bWFwPiwgUmVmUHRyPEltYWdlRGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVm
UHRyPEhUTUxDYW52YXNFbGVtZW50Pj47CiAjZW5kaWYKIAogICAgIC8vIE11c3Qgb3ZlcnJpZGUg
dGhlIFdlYkdMIDEuMCBzaWduYXR1cmVzIHRvIGFkZCBleHRyYSB2YWxpZGF0aW9uLgpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Nyw3ICs0Nyw3IEBAIGNsYXNzIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s7CiBjbGFzcyBXZWJHTFZl
cnRleEFycmF5T2JqZWN0OwogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKIAotdXNp
bmcgV2ViR0xBbnkgPSBWYXJpYW50PAordXNpbmcgV2ViR0xBbnkgPSBzdGQ6OnZhcmlhbnQ8CiAg
ICAgc3RkOjpudWxscHRyX3QsCiAgICAgYm9vbCwKICAgICBpbnQsCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTE11bHRpRHJhdy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTXVsdGlEcmF3LmgJKHJldmlzaW9uIDI4NDAwMikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTXVsdGlEcmF3LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDcgKzM3LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHlwZWRB
cnJheSwgY2xhc3MgRGF0YVR5cGU+CiAgICAgY2xhc3MgVHlwZWRMaXN0IHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIHVzaW5nIExpc3RUeXBlT3B0aW9ucyA9IFZhcmlhbnQ8UmVmUHRyPFR5cGVkQXJy
YXk+LCBWZWN0b3I8RGF0YVR5cGU+PjsKKyAgICAgICAgdXNpbmcgTGlzdFR5cGVPcHRpb25zID0g
c3RkOjp2YXJpYW50PFJlZlB0cjxUeXBlZEFycmF5PiwgVmVjdG9yPERhdGFUeXBlPj47CiAKICAg
ICAgICAgVHlwZWRMaXN0KExpc3RUeXBlT3B0aW9ucyYmIHZhcmlhbnQpCiAgICAgICAgICAgICA6
IG1fdmFyaWFudChXVEZNb3ZlKHZhcmlhbnQpKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAkocmV2aXNpb24g
Mjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsOSArMTI0LDkgQEAgY2xhc3MgSFRNTFZp
ZGVvRWxlbWVudDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE9GRlNDUkVFTl9DQU5WQVMpCi11c2lu
ZyBXZWJHTENhbnZhcyA9IFdURjo6VmFyaWFudDxSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+LCBS
ZWZQdHI8T2Zmc2NyZWVuQ2FudmFzPj47Cit1c2luZyBXZWJHTENhbnZhcyA9IHN0ZDo6dmFyaWFu
dDxSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+LCBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzPj47CiAj
ZWxzZQotdXNpbmcgV2ViR0xDYW52YXMgPSBXVEY6OlZhcmlhbnQ8UmVmUHRyPEhUTUxDYW52YXNF
bGVtZW50Pj47Cit1c2luZyBXZWJHTENhbnZhcyA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8SFRNTENh
bnZhc0VsZW1lbnQ+PjsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTE1
OCw3ICsxNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBibGVuZEZ1bmMoR0NHTGVudW0gc2ZhY3Rv
ciwgR0NHTGVudW0gZGZhY3Rvcik7CiAgICAgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShHQ0dMZW51
bSBzcmNSR0IsIEdDR0xlbnVtIGRzdFJHQiwgR0NHTGVudW0gc3JjQWxwaGEsIEdDR0xlbnVtIGRz
dEFscGhhKTsKIAotICAgIHVzaW5nIEJ1ZmZlckRhdGFTb3VyY2UgPSBXVEY6OlZhcmlhbnQ8UmVm
UHRyPEFycmF5QnVmZmVyPiwgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4+OworICAgIHVzaW5nIEJ1
ZmZlckRhdGFTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEFycmF5QnVmZmVyPiwgUmVmUHRy
PEFycmF5QnVmZmVyVmlldz4+OwogICAgIHZvaWQgYnVmZmVyRGF0YShHQ0dMZW51bSB0YXJnZXQs
IGxvbmcgbG9uZyBzaXplLCBHQ0dMZW51bSB1c2FnZSk7CiAgICAgdm9pZCBidWZmZXJEYXRhKEdD
R0xlbnVtIHRhcmdldCwgc3RkOjpvcHRpb25hbDxCdWZmZXJEYXRhU291cmNlPiYmLCBHQ0dMZW51
bSB1c2FnZSk7CiAgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDR0xlbnVtIHRhcmdldCwgbG9uZyBs
b25nIG9mZnNldCwgQnVmZmVyRGF0YVNvdXJjZSYmKTsKQEAgLTI4MCw5ICsyODAsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHRleEltYWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50
IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6
ZWkgaGVpZ2h0LCBHQ0dMaW50IGJvcmRlciwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBl
LCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmKTsKIAogI2lmIEVOQUJMRShWSURFTykKLSAgICB1
c2luZyBUZXhJbWFnZVNvdXJjZSA9IFdURjo6VmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBS
ZWZQdHI8SW1hZ2VEYXRhPiwgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+LCBSZWZQdHI8SFRNTENh
bnZhc0VsZW1lbnQ+LCBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4+OworICAgIHVzaW5nIFRleElt
YWdlU291cmNlID0gc3RkOjp2YXJpYW50PFJlZlB0cjxJbWFnZUJpdG1hcD4sIFJlZlB0cjxJbWFn
ZURhdGE+LCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVu
dD4sIFJlZlB0cjxIVE1MVmlkZW9FbGVtZW50Pj47CiAjZWxzZQotICAgIHVzaW5nIFRleEltYWdl
U291cmNlID0gV1RGOjpWYXJpYW50PFJlZlB0cjxJbWFnZUJpdG1hcD4sIFJlZlB0cjxJbWFnZURh
dGE+LCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4sIFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4+
OworICAgIHVzaW5nIFRleEltYWdlU291cmNlID0gc3RkOjp2YXJpYW50PFJlZlB0cjxJbWFnZUJp
dG1hcD4sIFJlZlB0cjxJbWFnZURhdGE+LCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4sIFJlZlB0
cjxIVE1MQ2FudmFzRWxlbWVudD4+OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9y
PHZvaWQ+IHRleEltYWdlMkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBzdGQ6Om9w
dGlvbmFsPFRleEltYWdlU291cmNlPik7CkBAIC0yOTcsNyArMjk3LDcgQEAgcHVibGljOgogICAg
IHRlbXBsYXRlIDxjbGFzcyBUeXBlZEFycmF5LCBjbGFzcyBEYXRhVHlwZT4KICAgICBjbGFzcyBU
eXBlZExpc3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgdXNpbmcgVmFyaWFudFR5cGUgPSBWYXJp
YW50PFJlZlB0cjxUeXBlZEFycmF5PiwgVmVjdG9yPERhdGFUeXBlPj47CisgICAgICAgIHVzaW5n
IFZhcmlhbnRUeXBlID0gc3RkOjp2YXJpYW50PFJlZlB0cjxUeXBlZEFycmF5PiwgVmVjdG9yPERh
dGFUeXBlPj47CiAKICAgICAgICAgVHlwZWRMaXN0KFZhcmlhbnRUeXBlJiYgdmFyaWFudCkKICAg
ICAgICAgICAgIDogbV92YXJpYW50KFdURk1vdmUodmFyaWFudCkpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RyYWNrRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RyYWNrRXZlbnQuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0V2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUcmFja0V2ZW50KHR5
cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgV1RGTW92ZSh0cmFjaykpKTsKICAgICB9CiAKLSAg
ICB1c2luZyBUcmFja0V2ZW50VHJhY2sgPSBWYXJpYW50PFJlZlB0cjxWaWRlb1RyYWNrPiwgUmVm
UHRyPEF1ZGlvVHJhY2s+LCBSZWZQdHI8VGV4dFRyYWNrPj47CisgICAgdXNpbmcgVHJhY2tFdmVu
dFRyYWNrID0gc3RkOjp2YXJpYW50PFJlZlB0cjxWaWRlb1RyYWNrPiwgUmVmUHRyPEF1ZGlvVHJh
Y2s+LCBSZWZQdHI8VGV4dFRyYWNrPj47CiAKICAgICBzdHJ1Y3QgSW5pdCA6IHB1YmxpYyBFdmVu
dEluaXQgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPFRyYWNrRXZlbnRUcmFjaz4gdHJhY2s7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcg
KzgyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflZUVEN1ZSgpOwogCiAgICAgZW51bSBBdXRv
S2V5d29yZCB7IEF1dG8gfTsKLSAgICB1c2luZyBMaW5lQW5kUG9zaXRpb25TZXR0aW5nID0gVmFy
aWFudDxkb3VibGUsIEF1dG9LZXl3b3JkPjsKKyAgICB1c2luZyBMaW5lQW5kUG9zaXRpb25TZXR0
aW5nID0gc3RkOjp2YXJpYW50PGRvdWJsZSwgQXV0b0tleXdvcmQ+OwogCiAgICAgdm9pZCBzZXRU
cmFjayhUZXh0VHJhY2sqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNhbnZhcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDYW52YXMuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNhbnZhcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgYXBwZW5kQWN0aW9uU25hcHNob3RJZk5lZWRlZCgpOwogCi0g
ICAgdXNpbmcgRHVwbGljYXRlRGF0YVZhcmlhbnQgPSBWYXJpYW50PAorICAgIHVzaW5nIER1cGxp
Y2F0ZURhdGFWYXJpYW50ID0gc3RkOjp2YXJpYW50PAogICAgICAgICBSZWZQdHI8Q2FudmFzR3Jh
ZGllbnQ+LAogICAgICAgICBSZWZQdHI8Q2FudmFzUGF0dGVybj4sCiAgICAgICAgIFJlZlB0cjxI
VE1MQ2FudmFzRWxlbWVudD4sCkBAIC0xMzgsNyArMTM4LDcgQEAgcHJpdmF0ZToKIAogICAgIFN0
cmluZyBtX2lkZW50aWZpZXI7CiAKLSAgICBWYXJpYW50PAorICAgIHN0ZDo6dmFyaWFudDwKICAg
ICAgICAgc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxDYW52YXNSZW5kZXJpbmdDb250ZXh0PiwKICAg
ICAgICAgTW9ub3N0YXRlCiAgICAgPiBtX2NvbnRleHQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgJKHJldmlzaW9uIDI4NDAw
MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9p
ZGVudGlmaWVyOwogICAgIEluc3BlY3RvckNhbnZhcyYgbV9jYW52YXM7CiAKLSAgICBWYXJpYW50
PAorICAgIHN0ZDo6dmFyaWFudDwKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgICAgIHN0ZDo6cmVm
ZXJlbmNlX3dyYXBwZXI8V2ViR0xQcm9ncmFtPiwKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94LmgJKHJl
dmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9Jbmxp
bmVJdGVyYXRvckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHN0cnVjdCBF
bmRJdGVyYXRvciB7IH07CiAKIGNsYXNzIEJveCB7CiBwdWJsaWM6Ci0gICAgdXNpbmcgUGF0aFZh
cmlhbnQgPSBWYXJpYW50PAorICAgIHVzaW5nIFBhdGhWYXJpYW50ID0gc3RkOjp2YXJpYW50PAog
I2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogICAgICAgICBCb3hNb2Rlcm5Q
YXRoLAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5s
aW5lSXRlcmF0b3JMaW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0lubGluZUl0ZXJhdG9yTGluZS5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IEVuZExpbmVJdGVyYXRvciB7IH07CiAK
IGNsYXNzIExpbmUgewogcHVibGljOgotICAgIHVzaW5nIFBhdGhWYXJpYW50ID0gVmFyaWFudDwK
KyAgICB1c2luZyBQYXRoVmFyaWFudCA9IHN0ZDo6dmFyaWFudDwKICNpZiBFTkFCTEUoTEFZT1VU
X0ZPUk1BVFRJTkdfQ09OVEVYVCkKICAgICAgICAgTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCwKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVu
c2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgU2hvdWxkU2FtcGxlKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZSkgPSAw
OwogCi0gICAgdXNpbmcgVmFsdWVQYXlsb2FkID0gVmFyaWFudDxTdHJpbmcsIHVpbnQ2NF90LCBp
bnQ2NF90LCBib29sLCBkb3VibGU+OworICAgIHVzaW5nIFZhbHVlUGF5bG9hZCA9IHN0ZDo6dmFy
aWFudDxTdHJpbmcsIHVpbnQ2NF90LCBpbnQ2NF90LCBib29sLCBkb3VibGU+OwogICAgIHVzaW5n
IFZhbHVlRGljdGlvbmFyeSA9IEhhc2hNYXA8U3RyaW5nLCBWYWx1ZVBheWxvYWQ+OwogCiAgICAg
dmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFZhbHVl
RGljdGlvbmFyeSYsIFNob3VsZFNhbXBsZSkgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw5
ICs2Nyw5IEBAIHN0cnVjdCBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEgewogY2xhc3MgSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnRlcnNlY3Rpb25PYnNlcnZlcj4s
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4gewogcHVibGljOgog
ICAgIHN0cnVjdCBJbml0IHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxF
bGVtZW50PiwgUmVmUHRyPERvY3VtZW50Pj4+IHJvb3Q7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjp2YXJpYW50PFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPERvY3VtZW50Pj4+IHJvb3Q7CiAg
ICAgICAgIFN0cmluZyByb290TWFyZ2luOwotICAgICAgICBWYXJpYW50PGRvdWJsZSwgVmVjdG9y
PGRvdWJsZT4+IHRocmVzaG9sZDsKKyAgICAgICAgc3RkOjp2YXJpYW50PGRvdWJsZSwgVmVjdG9y
PGRvdWJsZT4+IHRocmVzaG9sZDsKICAgICB9OwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+IGNyZWF0ZShEb2N1bWVudCYsIFJlZjxJbnRlcnNlY3Rp
b25PYnNlcnZlckNhbGxiYWNrPiYmLCBJbml0JiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJldmlz
aW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NDAsNyArNDQwLDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhpcyBjYW4gcmV0dXJuIG51
bGxvcHQgaWYgdGhyb3R0bGluZyByZWFzb25zIHJlc3VsdCBpbiBhIGZyZXF1ZW5jeSBsZXNzIHRo
YW4gb25lLCBpbiB3aGljaCBjYXNlCiAgICAgLy8gcHJlZmVycmVkUmVuZGVyaW5nVXBkYXRlSW50
ZXJ2YWwgcHJvdmlkZXMgdGhlIGZyZXF1ZW5jeS4KLSAgICAvLyBGSVhNRTogSGF2ZSBhIHNpbmds
ZSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBWYXJpYW50PD4uCisgICAgLy8gRklYTUU6IEhhdmUg
YSBzaW5nbGUgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc3RkOjp2YXJpYW50PD4uCiAgICAgc3Rk
OjpvcHRpb25hbDxGcmFtZXNQZXJTZWNvbmQ+IHByZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZUZyYW1l
c1BlclNlY29uZCgpIGNvbnN0OwogICAgIFNlY29uZHMgcHJlZmVycmVkUmVuZGVyaW5nVXBkYXRl
SW50ZXJ2YWwoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAkocmV2
aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxSZWY8
UGVyZm9ybWFuY2VNYXJrPj4gbWFyayhKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgU3RyaW5n
JiBtYXJrTmFtZSwgc3RkOjpvcHRpb25hbDxQZXJmb3JtYW5jZU1hcmtPcHRpb25zPiYmKTsKICAg
ICB2b2lkIGNsZWFyTWFya3MoY29uc3QgU3RyaW5nJiBtYXJrTmFtZSk7CiAKLSAgICB1c2luZyBT
dGFydE9yTWVhc3VyZU9wdGlvbnMgPSBWYXJpYW50PFN0cmluZywgUGVyZm9ybWFuY2VNZWFzdXJl
T3B0aW9ucz47CisgICAgdXNpbmcgU3RhcnRPck1lYXN1cmVPcHRpb25zID0gc3RkOjp2YXJpYW50
PFN0cmluZywgUGVyZm9ybWFuY2VNZWFzdXJlT3B0aW9ucz47CiAgICAgRXhjZXB0aW9uT3I8UmVm
PFBlcmZvcm1hbmNlTWVhc3VyZT4+IG1lYXN1cmUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIGNvbnN0
IFN0cmluZyYgbWVhc3VyZU5hbWUsIHN0ZDo6b3B0aW9uYWw8U3RhcnRPck1lYXN1cmVPcHRpb25z
PiYmLCBjb25zdCBTdHJpbmcmIGVuZE1hcmspOwogICAgIHZvaWQgY2xlYXJNZWFzdXJlcyhjb25z
dCBTdHJpbmcmIG1lYXN1cmVOYW1lKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZU1lYXN1cmVPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZU1lYXN1cmVPcHRpb25zLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VNZWFzdXJlT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw5ICszMyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFBlcmZvcm1h
bmNlTWVhc3VyZU9wdGlvbnMgewogICAgIEpTQzo6SlNWYWx1ZSBkZXRhaWw7Ci0gICAgc3RkOjpv
cHRpb25hbDxWYXJpYW50PFN0cmluZywgZG91YmxlPj4gc3RhcnQ7CisgICAgc3RkOjpvcHRpb25h
bDxzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBzdGFydDsKICAgICBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gZHVyYXRpb247Ci0gICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PFN0cmluZywgZG91
YmxlPj4gZW5kOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgZG91Ymxl
Pj4gZW5kOwogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVz
ZXJUaW1pbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VVc2VyVGltaW5nLmNwcAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNyArMTI4
LDcgQEAgdm9pZCBQZXJmb3JtYW5jZVVzZXJUaW1pbmc6OmNsZWFyTWFya3MoYwogICAgIGNsZWFy
UGVyZm9ybWFuY2VFbnRyaWVzKG1fbWFya3NNYXAsIG1hcmtOYW1lKTsKIH0KIAotRXhjZXB0aW9u
T3I8ZG91YmxlPiBQZXJmb3JtYW5jZVVzZXJUaW1pbmc6OmNvbnZlcnRNYXJrVG9UaW1lc3RhbXAo
Y29uc3QgVmFyaWFudDxTdHJpbmcsIGRvdWJsZT4mIG1hcmspIGNvbnN0CitFeGNlcHRpb25Pcjxk
b3VibGU+IFBlcmZvcm1hbmNlVXNlclRpbWluZzo6Y29udmVydE1hcmtUb1RpbWVzdGFtcChjb25z
dCBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+JiBtYXJrKSBjb25zdAogewogICAgIHJldHVy
biBXVEY6OnN3aXRjaE9uKG1hcmssIFsmXShhdXRvJiB2YWx1ZSkgewogICAgICAgICByZXR1cm4g
Y29udmVydE1hcmtUb1RpbWVzdGFtcCh2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlVXNlclRpbWluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5
LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJmb3JtYW5jZU1hcms+
PiBtYXJrKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25zdCBTdHJpbmcmIG1hcmtOYW1lLCBzdGQ6
Om9wdGlvbmFsPFBlcmZvcm1hbmNlTWFya09wdGlvbnM+JiYpOwogICAgIHZvaWQgY2xlYXJNYXJr
cyhjb25zdCBTdHJpbmcmIG1hcmtOYW1lKTsKIAotICAgIHVzaW5nIFN0YXJ0T3JNZWFzdXJlT3B0
aW9ucyA9IFZhcmlhbnQ8U3RyaW5nLCBQZXJmb3JtYW5jZU1lYXN1cmVPcHRpb25zPjsKKyAgICB1
c2luZyBTdGFydE9yTWVhc3VyZU9wdGlvbnMgPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBQZXJmb3Jt
YW5jZU1lYXN1cmVPcHRpb25zPjsKICAgICBFeGNlcHRpb25PcjxSZWY8UGVyZm9ybWFuY2VNZWFz
dXJlPj4gbWVhc3VyZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgU3RyaW5nJiBtZWFzdXJl
TmFtZSwgc3RkOjpvcHRpb25hbDxTdGFydE9yTWVhc3VyZU9wdGlvbnM+JiYsIGNvbnN0IFN0cmlu
ZyYgZW5kTWFyayk7CiAgICAgdm9pZCBjbGVhck1lYXN1cmVzKGNvbnN0IFN0cmluZyYgbWVhc3Vy
ZU5hbWUpOwogCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc1Jl
c3RyaWN0ZWRNYXJrTmFtZShjb25zdCBTdHJpbmcmIG1hcmtOYW1lKTsKIAogcHJpdmF0ZToKLSAg
ICBFeGNlcHRpb25Pcjxkb3VibGU+IGNvbnZlcnRNYXJrVG9UaW1lc3RhbXAoY29uc3QgVmFyaWFu
dDxTdHJpbmcsIGRvdWJsZT4mKSBjb25zdDsKKyAgICBFeGNlcHRpb25Pcjxkb3VibGU+IGNvbnZl
cnRNYXJrVG9UaW1lc3RhbXAoY29uc3Qgc3RkOjp2YXJpYW50PFN0cmluZywgZG91YmxlPiYpIGNv
bnN0OwogICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4gY29udmVydE1hcmtUb1RpbWVzdGFtcChjb25z
dCBTdHJpbmcmIG1hcmtOYW1lKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjxkb3VibGU+IGNvbnZl
cnRNYXJrVG9UaW1lc3RhbXAoZG91YmxlKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCShyZXZpc2lv
biAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICAv
LyBTaG91bGQgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBnaXZlbiBmcmFtZSB2aWV3IGhhcyBiZWVu
IGxhaWQgb3V0LgogICAgIHZpcnR1YWwgdm9pZCBmcmFtZVZpZXdMYXlvdXRVcGRhdGVkKEZyYW1l
VmlldyYpIHsgfQogCi0gICAgdXNpbmcgTGF5b3V0Vmlld3BvcnRPcmlnaW5Pck92ZXJyaWRlUmVj
dCA9IFdURjo6VmFyaWFudDxzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+LCBzdGQ6Om9wdGlvbmFs
PEZsb2F0UmVjdD4+OworICAgIHVzaW5nIExheW91dFZpZXdwb3J0T3JpZ2luT3JPdmVycmlkZVJl
Y3QgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpvcHRpb25hbDxGbG9hdFBvaW50Piwgc3RkOjpvcHRpb25h
bDxGbG9hdFJlY3Q+PjsKICAgICB2aXJ0dWFsIHZvaWQgcmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUo
RnJhbWVWaWV3JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IExheW91dFZpZXdwb3J0T3JpZ2lu
T3JPdmVycmlkZVJlY3QmLCBTY3JvbGxUeXBlLCBWaWV3cG9ydFJlY3RTdGFiaWxpdHksIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24pIHsgfQogCiAgICAgLy8gU2hvdWxkIGJlIGNhbGxlZCB3
aGVuZXZlciB0aGUgc2V0IG9mIGZpeGVkIG9iamVjdHMgY2hhbmdlcy4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAJKHJldmlzaW9u
IDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRh
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBWYXJpYW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+IGNvcHlQbGF0
Zm9ybURhdGEoY29uc3QgVmFyaWFudDxTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PiYgb3RoZXIp
CitzdGF0aWMgc3RkOjp2YXJpYW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+IGNvcHlQbGF0
Zm9ybURhdGEoY29uc3Qgc3RkOjp2YXJpYW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+JiBv
dGhlcikKIHsKICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxTdHJpbmc+KG90aGVyKSkK
ICAgICAgICAgcmV0dXJuIHsgV1RGOjpnZXQ8U3RyaW5nPihvdGhlcikgfTsKQEAgLTI2NSw3ICsy
NjUsNyBAQCB2b2lkIFBhc3RlYm9hcmRDdXN0b21EYXRhOjpmb3JFYWNoQ3VzdG9tCiAgICAgfQog
fQogCi12b2lkIFBhc3RlYm9hcmRDdXN0b21EYXRhOjpmb3JFYWNoUGxhdGZvcm1TdHJpbmdPckJ1
ZmZlcihGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVmFyaWFudDxTdHJp
bmcsIFJlZjxTaGFyZWRCdWZmZXI+PiYgZGF0YSk+JiYgZnVuY3Rpb24pIGNvbnN0Cit2b2lkIFBh
c3RlYm9hcmRDdXN0b21EYXRhOjpmb3JFYWNoUGxhdGZvcm1TdHJpbmdPckJ1ZmZlcihGdW5jdGlv
bjx2b2lkKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qgc3RkOjp2YXJpYW50PFN0cmluZywgUmVm
PFNoYXJlZEJ1ZmZlcj4+JiBkYXRhKT4mJiBmdW5jdGlvbikgY29uc3QKIHsKICAgICBmb3IgKGF1
dG8mIGVudHJ5IDogbV9kYXRhKSB7CiAgICAgICAgIGF1dG8mIGRhdGEgPSBlbnRyeS5wbGF0Zm9y
bURhdGE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0
YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0
b21EYXRhLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bh
c3RlYm9hcmRDdXN0b21EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVi
bGljOgogCiAgICAgICAgIFN0cmluZyB0eXBlOwogICAgICAgICBTdHJpbmcgY3VzdG9tRGF0YTsK
LSAgICAgICAgVmFyaWFudDxTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PiBwbGF0Zm9ybURhdGE7
CisgICAgICAgIHN0ZDo6dmFyaWFudDxTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PiBwbGF0Zm9y
bURhdGE7CiAgICAgfTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFBhc3RlYm9hcmRDdXN0b21EYXRh
KCk7CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZm9yRWFjaFR5cGUoRnVu
Y3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4mJikgY29uc3Q7CiAgICAgdm9pZCBmb3JFYWNoUGxh
dGZvcm1TdHJpbmcoRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgZGF0YSk+JiYpIGNvbnN0OwotICAgIHZvaWQgZm9yRWFjaFBsYXRmb3JtU3RyaW5nT3JCdWZm
ZXIoRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFZhcmlhbnQ8U3RyaW5n
LCBSZWY8U2hhcmVkQnVmZmVyPj4mIGRhdGEpPiYmKSBjb25zdDsKKyAgICB2b2lkIGZvckVhY2hQ
bGF0Zm9ybVN0cmluZ09yQnVmZmVyKEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPj4mIGRhdGEpPiYmKSBj
b25zdDsKICAgICB2b2lkIGZvckVhY2hDdXN0b21TdHJpbmcoRnVuY3Rpb248dm9pZChjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk+JiYpIGNvbnN0OwogCiAgICAgYm9vbCBo
YXNEYXRhKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZm
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIu
aAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVm
ZmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw3ICsxODIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IERhdGFTZWdtZW50KFByb3ZpZGVyJiYgcHJvdmlkZXIpCiAgICAgICAgICAgICA6IG1faW1tdXRh
YmxlRGF0YShXVEZNb3ZlKHByb3ZpZGVyKSkgeyB9CiAKLSAgICAgICAgVmFyaWFudDxWZWN0b3I8
dWludDhfdD4sCisgICAgICAgIHN0ZDo6dmFyaWFudDxWZWN0b3I8dWludDhfdD4sCiAjaWYgVVNF
KENGKQogICAgICAgICAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4sCiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcs
NyBAQCBzdHJ1Y3QgUGxhdGZvcm1EZXNjcmlwdGlvbiB7CiAgICAgICAgIENBQXVkaW9TdHJlYW1C
YXNpY1R5cGUsCiAgICAgICAgIEdTdHJlYW1lckF1ZGlvU3RyZWFtRGVzY3JpcHRpb24sCiAgICAg
fSB0eXBlOwotICAgIFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbio+IGRlc2NyaXB0aW9uOworICAgIHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxw
dHJfdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4gZGVzY3JpcHRpb247CiB9
OwogCiBjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaAkocmV2aXNpb24gMjg0
MDAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBNZWRpYVBsYXllcjsKIAogdXNpbmcgS2V5SURUeXBlID0gVmVjdG9yPHVpbnQ4X3Q+Owot
dXNpbmcgS2V5SGFuZGxlVmFsdWVWYXJpYW50ID0gVmFyaWFudDwKK3VzaW5nIEtleUhhbmRsZVZh
bHVlVmFyaWFudCA9IHN0ZDo6dmFyaWFudDwKICAgICBWZWN0b3I8dWludDhfdD4KICNpZiBFTkFC
TEUoVEhVTkRFUikKICAgICAsIEJveFB0cjxPcGVuQ0RNU2Vzc2lvbj4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0RlY29kaW5nT3B0aW9ucy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0RlY29kaW5nT3B0aW9ucy5oCShyZXZp
c2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGlu
Z09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gLSBBc3luY2hyb25vdXMgKyBhbnlTaXplOiBEZWNvZGluZ01vZGU6OkFzeW5jaHJvbm91
cwogICAgIC8vIC0gQXN5bmNocm9ub3VzICsgaW50cmluc2ljU2l6ZTogYW4gZW1wdHkgc3RkOjpv
cHRpb25hbDxJbnRTaXplPj4KICAgICAvLyAtIEFzeW5jaHJvbm91cyArIHNpemVGb3JEcmF3aW5n
OiBhIG5vbmUgZW1wdHkgc3RkOjpvcHRpb25hbDxJbnRTaXplPj4KLSAgICB1c2luZyBEZWNvZGlu
Z01vZGVPclNpemUgPSBWYXJpYW50PERlY29kaW5nTW9kZSwgc3RkOjpvcHRpb25hbDxJbnRTaXpl
Pj47CisgICAgdXNpbmcgRGVjb2RpbmdNb2RlT3JTaXplID0gc3RkOjp2YXJpYW50PERlY29kaW5n
TW9kZSwgc3RkOjpvcHRpb25hbDxJbnRTaXplPj47CiAgICAgRGVjb2RpbmdNb2RlT3JTaXplIG1f
ZGVjb2RpbmdNb2RlT3JTaXplOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlRGVzY3JpcHRpb24uaAkocmV2aXNp
b24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGVEZXNjcmlwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIHR5cGVkZWYg
Rm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dCAKIHR5cGVkZWYgRm9udEZhbWlseVNwZWNp
ZmljYXRpb25OdWxsIEZvbnRGYW1pbHlQbGF0Zm9ybVNwZWNpZmljYXRpb247CiAjZW5kaWYKIAot
dHlwZWRlZiBWYXJpYW50PEF0b21TdHJpbmcsIEZvbnRGYW1pbHlQbGF0Zm9ybVNwZWNpZmljYXRp
b24+IEZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uOwordHlwZWRlZiBzdGQ6OnZhcmlhbnQ8QXRvbVN0
cmluZywgRm9udEZhbWlseVBsYXRmb3JtU3BlY2lmaWNhdGlvbj4gRm9udEZhbWlseVNwZWNpZmlj
YXRpb247CiAKIGNsYXNzIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24gOiBwdWJsaWMgRm9udERlc2Ny
aXB0aW9uIHsKIHB1YmxpYzoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYWRpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBA
IHB1YmxpYzoKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8Q29uaWNEYXRhPiBkZWNvZGUoRGVjb2RlciYpOwogICAgIH07CiAKLSAgICB1c2lu
ZyBEYXRhID0gVmFyaWFudDxMaW5lYXJEYXRhLCBSYWRpYWxEYXRhLCBDb25pY0RhdGE+OworICAg
IHVzaW5nIERhdGEgPSBzdGQ6OnZhcmlhbnQ8TGluZWFyRGF0YSwgUmFkaWFsRGF0YSwgQ29uaWNE
YXRhPjsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8R3JhZGllbnQ+IGNyZWF0ZShE
YXRhJiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9T
b3VyY2VCdWZmZXJQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXIuaAkocmV2aXNpb24gMjg0MDAyKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFy
c2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgICAgICBz
aXplX3QgcmVhZChzaXplX3QgcG9zaXRpb24sIHNpemVfdCwgdWludDhfdCogZGVzdGluYXRpb24p
IGNvbnN0OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgVmFyaWFudDwKKyAgICAgICAgc3RkOjp2
YXJpYW50PAogI2lmIEhBVkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCiAgICAgICAgICAgICBS
ZXRhaW5QdHI8TVRQbHVnaW5CeXRlU291cmNlUmVmPiwKICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJj
ZUJ1ZmZlclBhcnNlcldlYk0uaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yODgsNyArMjg4LDcgQEAgcHJpdmF0ZToKICAgICBVbmlxdWVSZWY8U2VnbWVu
dFJlYWRlcj4gbV9yZWFkZXI7CiAKICAgICBWZWN0b3I8VW5pcXVlUmVmPFRyYWNrRGF0YT4+IG1f
dHJhY2tzOwotICAgIHVzaW5nIEJsb2NrVmFyaWFudCA9IFZhcmlhbnQ8d2VibTo6QmxvY2ssIHdl
Ym06OlNpbXBsZUJsb2NrPjsKKyAgICB1c2luZyBCbG9ja1ZhcmlhbnQgPSBzdGQ6OnZhcmlhbnQ8
d2VibTo6QmxvY2ssIHdlYm06OlNpbXBsZUJsb2NrPjsKICAgICBzdGQ6Om9wdGlvbmFsPEJsb2Nr
VmFyaWFudD4gbV9jdXJyZW50QmxvY2s7CiAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gbV9y
ZXdpbmRUb1Bvc2l0aW9uOwogICAgIGZsb2F0IG1fbWluaW11bUF1ZGlvU2FtcGxlRHVyYXRpb24g
eyAyIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZXNvdXJjZUhlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXNvdXJjZUhlYXAu
aAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVzb3VyY2VIZWFwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE0Miw3ICsxNDIsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
IAotICAgIHVzaW5nIFJlc291cmNlID0gVmFyaWFudDxSZWZQdHI8SW1hZ2VCdWZmZXI+LCBSZWZQ
dHI8TmF0aXZlSW1hZ2U+LCBSZWZQdHI8Rm9udD4+OworICAgIHVzaW5nIFJlc291cmNlID0gc3Rk
Ojp2YXJpYW50PFJlZlB0cjxJbWFnZUJ1ZmZlcj4sIFJlZlB0cjxOYXRpdmVJbWFnZT4sIFJlZlB0
cjxGb250Pj47CiAgICAgSGFzaE1hcDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlc291
cmNlPiBtX3Jlc291cmNlczsKICAgICB1bnNpZ25lZCBtX2ltYWdlQnVmZmVyQ291bnQgeyAwIH07
CiAgICAgdW5zaWduZWQgbV9uYXRpdmVJbWFnZUNvdW50IHsgMCB9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlTWFjLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlU291cmNlTWFjLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1Y7CiAKIGNsYXNzIERpc3BsYXlDYXB0dXJlU291cmNlTWFjIGZpbmFsIDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgotICAgIHVzaW5nIERpc3BsYXlGcmFtZVR5cGUgPSBX
VEY6OlZhcmlhbnQ8UmVmUHRyPE5hdGl2ZUltYWdlPiwgUmV0YWluUHRyPElPU3VyZmFjZVJlZj4+
OworICAgIHVzaW5nIERpc3BsYXlGcmFtZVR5cGUgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPE5hdGl2
ZUltYWdlPiwgUmV0YWluUHRyPElPU3VyZmFjZVJlZj4+OwogCiAgICAgY2xhc3MgQ2FwdHVyZXIg
OiBwdWJsaWMgTG9nZ2VySGVscGVyIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYURldmljZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRGV2aWNl
LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a01lZGlhRGV2aWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw3ICsyNTksNyBAQCBzdHJ1Y3Qg
TW9ja01lZGlhRGV2aWNlIHsKIAogICAgIFN0cmluZyBwZXJzaXN0ZW50SWQ7CiAgICAgU3RyaW5n
IGxhYmVsOwotICAgIFZhcmlhbnQ8TW9ja01pY3JvcGhvbmVQcm9wZXJ0aWVzLCBNb2NrU3BlYWtl
clByb3BlcnRpZXMsIE1vY2tDYW1lcmFQcm9wZXJ0aWVzLCBNb2NrRGlzcGxheVByb3BlcnRpZXM+
IHByb3BlcnRpZXM7CisgICAgc3RkOjp2YXJpYW50PE1vY2tNaWNyb3Bob25lUHJvcGVydGllcywg
TW9ja1NwZWFrZXJQcm9wZXJ0aWVzLCBNb2NrQ2FtZXJhUHJvcGVydGllcywgTW9ja0Rpc3BsYXlQ
cm9wZXJ0aWVzPiBwcm9wZXJ0aWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ETlMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCShyZXZpc2lvbiAyODQwMDIpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0ROUy5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBzdHJ1Y3QgaW42X2FkZHImIGlwdjZB
ZGRyZXNzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpnZXQ8c3RydWN0IGluNl9hZGRyPihtX2FkZHJl
c3MpOyB9CiAKIHByaXZhdGU6Ci0gICAgVmFyaWFudDxzdHJ1Y3QgaW5fYWRkciwgc3RydWN0IGlu
Nl9hZGRyPiBtX2FkZHJlc3M7CisgICAgc3RkOjp2YXJpYW50PHN0cnVjdCBpbl9hZGRyLCBzdHJ1
Y3QgaW42X2FkZHI+IG1fYWRkcmVzczsKIH07CiAKIGVudW0gY2xhc3MgRE5TRXJyb3IgeyBVbmtu
b3duLCBDYW5ub3RSZXNvbHZlLCBDYW5jZWxsZWQgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NyArMzgsNyBAQCBjbGFzcyBUZXh0RW5jb2Rpbmc7CiBzdHJ1Y3QgRm9ybURhdGFFbGVtZW50IHsK
ICAgICBzdHJ1Y3QgRW5jb2RlZEZpbGVEYXRhOwogICAgIHN0cnVjdCBFbmNvZGVkQmxvYkRhdGE7
Ci0gICAgdXNpbmcgRGF0YSA9IFZhcmlhbnQ8VmVjdG9yPHVpbnQ4X3Q+LCBFbmNvZGVkRmlsZURh
dGEsIEVuY29kZWRCbG9iRGF0YT47CisgICAgdXNpbmcgRGF0YSA9IHN0ZDo6dmFyaWFudDxWZWN0
b3I8dWludDhfdD4sIEVuY29kZWRGaWxlRGF0YSwgRW5jb2RlZEJsb2JEYXRhPjsKIAogICAgIEZv
cm1EYXRhRWxlbWVudCgpID0gZGVmYXVsdDsKICAgICBleHBsaWNpdCBGb3JtRGF0YUVsZW1lbnQo
RGF0YSYmIGRhdGEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMVmFsdWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMVmFsdWUuaAko
cmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTFZhbHVl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi11c2luZyBTUUxWYWx1ZSA9IFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFN0cmluZywgZG91
YmxlPjsKK3VzaW5nIFNRTFZhbHVlID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBTdHJp
bmcsIGRvdWJsZT47CiAKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0
Zm9ybVhSLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZv
cm1YUi5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9Q
bGF0Zm9ybVhSLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHByb2plY3Rpb25NYXRyaXhTaXplID0gMTY7
CiAgICAgICAgIHR5cGVkZWYgc3RkOjphcnJheTxmbG9hdCwgcHJvamVjdGlvbk1hdHJpeFNpemU+
IFByb2plY3Rpb25NYXRyaXg7CiAKLSAgICAgICAgdXNpbmcgUHJvamVjdGlvbiA9IFZhcmlhbnQ8
Rm92LCBQcm9qZWN0aW9uTWF0cml4LCBzdGQ6Om51bGxwdHJfdD47CisgICAgICAgIHVzaW5nIFBy
b2plY3Rpb24gPSBzdGQ6OnZhcmlhbnQ8Rm92LCBQcm9qZWN0aW9uTWF0cml4LCBzdGQ6Om51bGxw
dHJfdD47CiAKICAgICAgICAgc3RydWN0IFZpZXcgewogICAgICAgICAgICAgUG9zZSBvZmZzZXQ7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1R5cGVDb252ZXJzaW9ucy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmgJKHJldmlzaW9u
IDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgc3Ry
aW5nVmFsdWU7CiAgICAgICAgIFN0cmluZyB0cmVhdE51bGxBc0VtcHR5U3RyaW5nVmFsdWU7CiAg
ICAgICAgIFZlY3RvcjxTdHJpbmc+IHNlcXVlbmNlVmFsdWU7Ci0gICAgICAgIFZhcmlhbnQ8UmVm
UHRyPE5vZGU+LCBWZWN0b3I8U3RyaW5nPiwgT3RoZXJEaWN0aW9uYXJ5PiB1bmlvblZhbHVlOwor
ICAgICAgICBzdGQ6OnZhcmlhbnQ8UmVmUHRyPE5vZGU+LCBWZWN0b3I8U3RyaW5nPiwgT3RoZXJE
aWN0aW9uYXJ5PiB1bmlvblZhbHVlOwogICAgICAgICBpbnQgY2xhbXBMb25nVmFsdWU7CiAgICAg
ICAgIGludCBlbmZvcmNlUmFuZ2VMb25nVmFsdWU7CiAgICAgfTsKQEAgLTEyNiw3ICsxMjYsNyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgVmVj
dG9yPFN0cmluZz4+PiYgdGVzdFNlcXVlbmNlUmVjb3JkKCkgY29uc3QgeyByZXR1cm4gbV9zZXF1
ZW5jZVJlY29yZDsgfQogICAgIHZvaWQgc2V0VGVzdFNlcXVlbmNlUmVjb3JkKGNvbnN0IFZlY3Rv
cjxXVEY6OktleVZhbHVlUGFpcjxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4mIHZhbHVlKSB7IG1f
c2VxdWVuY2VSZWNvcmQgPSB2YWx1ZTsgfQogCi0gICAgdXNpbmcgVGVzdFVuaW9uID0gVmFyaWFu
dDxTdHJpbmcsIGludCwgYm9vbCwgUmVmUHRyPE5vZGU+LCBWZWN0b3I8aW50Pj47CisgICAgdXNp
bmcgVGVzdFVuaW9uID0gc3RkOjp2YXJpYW50PFN0cmluZywgaW50LCBib29sLCBSZWZQdHI8Tm9k
ZT4sIFZlY3RvcjxpbnQ+PjsKICAgICBjb25zdCBUZXN0VW5pb24mIHRlc3RVbmlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fdW5pb247IH0KICAgICB2b2lkIHNldFRlc3RVbmlvbihUZXN0VW5pb24mJiB2
YWx1ZSkgeyBtX3VuaW9uID0gdmFsdWU7IH0KIApAQCAtMTM0LDE1ICsxMzQsMTUgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0VGVzdERpY3Rpb25hcnkoRGljdGlvbmFyeSYmIGRpY3Rpb25hcnkpIHsg
bV90ZXN0RGljdGlvbmFyeSA9IGRpY3Rpb25hcnk7IH0KICAgICAKIAotICAgIHVzaW5nIFRlc3RD
bGFtcFVuaW9uID0gVmFyaWFudDxTdHJpbmcsIGludCwgVmVjdG9yPGludD4+OworICAgIHVzaW5n
IFRlc3RDbGFtcFVuaW9uID0gc3RkOjp2YXJpYW50PFN0cmluZywgaW50LCBWZWN0b3I8aW50Pj47
CiAgICAgY29uc3QgVGVzdENsYW1wVW5pb24mIHRlc3RDbGFtcFVuaW9uKCkgY29uc3QgeyByZXR1
cm4gbV9jbGFtcFVuaW9uOyB9CiAgICAgdm9pZCBzZXRUZXN0Q2xhbXBVbmlvbihjb25zdCBUZXN0
Q2xhbXBVbmlvbiYgdmFsdWUpIHsgbV9jbGFtcFVuaW9uID0gdmFsdWU7IH0KIAotICAgIHVzaW5n
IFRlc3RFbmZvcmNlUmFuZ2VVbmlvbiA9IFZhcmlhbnQ8U3RyaW5nLCBpbnQsIFZlY3RvcjxpbnQ+
PjsKKyAgICB1c2luZyBUZXN0RW5mb3JjZVJhbmdlVW5pb24gPSBzdGQ6OnZhcmlhbnQ8U3RyaW5n
LCBpbnQsIFZlY3RvcjxpbnQ+PjsKICAgICBjb25zdCBUZXN0RW5mb3JjZVJhbmdlVW5pb24mIHRl
c3RFbmZvcmNlUmFuZ2VVbmlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5mb3JjZVJhbmdlVW5pb247
IH0KICAgICB2b2lkIHNldFRlc3RFbmZvcmNlUmFuZ2VVbmlvbihjb25zdCBUZXN0RW5mb3JjZVJh
bmdlVW5pb24mIHZhbHVlKSB7IG1fZW5mb3JjZVJhbmdlVW5pb24gPSB2YWx1ZTsgfQogCi0gICAg
dXNpbmcgVGVzdFRyZWF0TnVsbEFzRW1wdHlTdHJpbmdVbmlvbiA9IFZhcmlhbnQ8U3RyaW5nLCBp
bnQsIFZlY3RvcjxTdHJpbmc+PjsKKyAgICB1c2luZyBUZXN0VHJlYXROdWxsQXNFbXB0eVN0cmlu
Z1VuaW9uID0gc3RkOjp2YXJpYW50PFN0cmluZywgaW50LCBWZWN0b3I8U3RyaW5nPj47CiAgICAg
Y29uc3QgVGVzdFRyZWF0TnVsbEFzRW1wdHlTdHJpbmdVbmlvbiYgdGVzdFRyZWF0TnVsbEFzRW1w
dHlTdHJpbmdVbmlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHJlYXROdWxsQXNFbXB0eVN0cmluZ1Vu
aW9uOyB9CiAgICAgdm9pZCBzZXRUZXN0VHJlYXROdWxsQXNFbXB0eVN0cmluZ1VuaW9uKGNvbnN0
IFRlc3RUcmVhdE51bGxBc0VtcHR5U3RyaW5nVW5pb24mIHZhbHVlKSB7IG1fdHJlYXROdWxsQXNF
bXB0eVN0cmluZ1VuaW9uID0gdmFsdWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9TaGFyZWRXb3JrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
U2hhcmVkV29ya2VyLmNwcAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvd29y
a2Vycy9TaGFyZWRXb3JrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFNoYXJlZFdv
cmtlcik7CiAKLVNoYXJlZFdvcmtlcjo6U2hhcmVkV29ya2VyKFN0cmluZyYmLCBzdGQ6Om9wdGlv
bmFsPFZhcmlhbnQ8U3RyaW5nLCBXb3JrZXJPcHRpb25zPj4mJikKK1NoYXJlZFdvcmtlcjo6U2hh
cmVkV29ya2VyKFN0cmluZyYmLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxTdHJpbmcsIFdv
cmtlck9wdGlvbnM+PiYmKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1No
YXJlZFdvcmtlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVk
V29ya2VyLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hh
cmVkV29ya2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDExICszNSwxMSBAQCBjbGFzcyBNZXNz
YWdlUG9ydDsKIGNsYXNzIFNoYXJlZFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtl
ciB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTaGFyZWRXb3JrZXIpOwogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8U2hhcmVkV29ya2VyPiBjcmVhdGUoU3RyaW5nJiYgc2NyaXB0VVJMLCBz
dGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBXb3JrZXJPcHRpb25zPj4mJiBvcHRpb25zKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJlZFdvcmtlcihXVEZNb3ZlKHNjcmlwdFVSTCksIFdU
Rk1vdmUob3B0aW9ucykpKTsgfQorICAgIHN0YXRpYyBSZWY8U2hhcmVkV29ya2VyPiBjcmVhdGUo
U3RyaW5nJiYgc2NyaXB0VVJMLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxTdHJpbmcsIFdv
cmtlck9wdGlvbnM+PiYmIG9wdGlvbnMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkV29y
a2VyKFdURk1vdmUoc2NyaXB0VVJMKSwgV1RGTW92ZShvcHRpb25zKSkpOyB9CiAKICAgICBNZXNz
YWdlUG9ydCogcG9ydCgpIGNvbnN0OwogcHJpdmF0ZToKLSAgICBTaGFyZWRXb3JrZXIoU3RyaW5n
JiYsIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxTdHJpbmcsIFdvcmtlck9wdGlvbnM+PiYmKTsKKyAg
ICBTaGFyZWRXb3JrZXIoU3RyaW5nJiYsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmlu
ZywgV29ya2VyT3B0aW9ucz4+JiYpOwogCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRU
YXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWw7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50
LmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAg
Y2xhc3MgTWVzc2FnZVBvcnQ7CiBjbGFzcyBTZXJ2aWNlV29ya2VyOwogY2xhc3MgU2VydmljZVdv
cmtlckNsaWVudDsKIAotdXNpbmcgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZSA9IFZhcmlh
bnQ8UmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+LCBSZWZQdHI8U2VydmljZVdvcmtlcj4sIFJl
ZlB0cjxNZXNzYWdlUG9ydD4+OwordXNpbmcgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZSA9
IHN0ZDo6dmFyaWFudDxSZWZQdHI8U2VydmljZVdvcmtlckNsaWVudD4sIFJlZlB0cjxTZXJ2aWNl
V29ya2VyPiwgUmVmUHRyPE1lc3NhZ2VQb3J0Pj47CiAKIGNsYXNzIEV4dGVuZGFibGVNZXNzYWdl
RXZlbnQgZmluYWwgOiBwdWJsaWMgRXh0ZW5kYWJsZUV2ZW50IHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKEV4dGVuZGFibGVNZXNzYWdlRXZlbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaAkocmV2aXNpb24g
Mjg0MDAyKQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJU
eXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSwxMCArNzUsMTAgQEAgdXNpbmcgU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZgogdXNpbmcgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllclR5cGUgPSBQcm9jZXNzSWRlbnRpZmllclR5cGU7CiB1c2luZyBTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyVHlwZT47CiAKLXVzaW5nIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyID0gVmFyaWFudDxE
b2N1bWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPjsKK3VzaW5nIERvY3Vt
ZW50T3JXb3JrZXJJZGVudGlmaWVyID0gc3RkOjp2YXJpYW50PERvY3VtZW50SWRlbnRpZmllciwg
U2VydmljZVdvcmtlcklkZW50aWZpZXI+OwogCi11c2luZyBTZXJ2aWNlV29ya2VyT3JDbGllbnRE
YXRhID0gVmFyaWFudDxTZXJ2aWNlV29ya2VyRGF0YSwgU2VydmljZVdvcmtlckNsaWVudERhdGE+
OwotdXNpbmcgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciA9IFZhcmlhbnQ8U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPjsKK3VzaW5n
IFNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEgPSBzdGQ6OnZhcmlhbnQ8U2VydmljZVdvcmtlckRh
dGEsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPjsKK3VzaW5nIFNlcnZpY2VXb3JrZXJPckNsaWVu
dElkZW50aWZpZXIgPSBzdGQ6OnZhcmlhbnQ8U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNpb24gMjg0MDAyKQorKysg
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTcy
LDcgKzcyLDcgQEAgcHVibGljOgogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gWE1MSHR0cFJlcXVlc3RFdmVudFRh
cmdldEludGVyZmFjZVR5cGU7IH0KICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAotICAgIHVzaW5nIFNlbmRUeXBlcyA9IFZh
cmlhbnQ8UmVmUHRyPERvY3VtZW50PiwgUmVmUHRyPEJsb2I+LCBSZWZQdHI8SlNDOjpBcnJheUJ1
ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4sIFJlZlB0cjxET01Gb3JtRGF0YT4s
IFN0cmluZywgUmVmUHRyPFVSTFNlYXJjaFBhcmFtcz4+OworICAgIHVzaW5nIFNlbmRUeXBlcyA9
IHN0ZDo6dmFyaWFudDxSZWZQdHI8RG9jdW1lbnQ+LCBSZWZQdHI8QmxvYj4sIFJlZlB0cjxKU0M6
OkFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgUmVmUHRyPERPTUZv
cm1EYXRhPiwgU3RyaW5nLCBSZWZQdHI8VVJMU2VhcmNoUGFyYW1zPj47CiAKICAgICBjb25zdCBV
UkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgU3RyaW5nIHN0YXR1c1RleHQo
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc1IEBACisyMDIxLTEwLTEyICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNl
IHN0ZDo6dmFyaWFudCBpbnN0ZWFkIG9mIFdURjo6VmFyaWFudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVE
YXRhLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmg6CisgICAgICAg
IChJUEM6OlZhcmlhbnRDb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6VmFyaWFudENvZGVy
OjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50Lmg6CisgICAgICAg
ICogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlUXVldWVNYXAuaDoKKyAgICAgICAgKiBTaGFy
ZWQvU2Vzc2lvblN0YXRlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6CisgICAgICAgICog
U2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmljZS5jcHA6CisgICAgICAgIChXS0FkZE1v
Y2tNZWRpYURldmljZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6Y29tcGxl
dGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2hvd1NhZmVCcm93c2luZ1dh
cm5pbmdXaXRoVVJMOnRpdGxlOndhcm5pbmc6ZGV0YWlsc1dpdGhMaW5rczpjb21wbGV0aW9uSGFu
ZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFs
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLm1tOgorICAgICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIG1ha2VDcmVkZW50
aWFsV2l0aENoYWxsZW5nZTpvcmlnaW46b3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAg
ICAgICAgKC1bX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBnZXRBc3NlcnRpb25XaXRoQ2hhbGxl
bmdlOm9yaWdpbjpvcHRpb25zOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbik6
CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9pb3MvV2ViQXV0b21hdGlvblNlc3Npb25J
T1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNp
bXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRp
b24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU3ViRnJhbWVTT0F1dGhv
cml6YXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dLU2FmZUJyb3dz
aW5nV2FybmluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1NhZmVCcm93c2luZ1dh
cm5pbmcubW06CisgICAgICAgICgtW1dLU2FmZUJyb3dzaW5nV2FybmluZyBpbml0V2l0aEZyYW1l
OnNhZmVCcm93c2luZ1dhcm5pbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2hvd1NhZmVCcm93
c2luZ1dhcm5pbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29yZTo6Z2V0UnBJZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvcmU6OmdldFVzZXJOYW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1h
bmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRpb25SZXF1ZXN0RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldENsaWVudERhdGFU
eXBlKToKKyAgICAgICAgKFdlYktpdDo6Z2V0VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25S
ZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpzaG93U2FmZUJyb3dzaW5nV2FybmluZyk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpzaG93U2FmZUJyb3dzaW5nV2FybmluZyk6CisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dl
YkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUuaDoKKwogMjAyMS0xMC0xMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBTYW5kYm94IGNvbXBsZXhpdHkgYW5kIHBlcmZvcm1hbmNl
IGltcHJvdmVtZW50cwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZENoZWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkQ2hlY2tlci5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03
MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZWRpcmVjdFJlc3BvbnNlOwogICAgIH07CiAKLSAgICB1c2luZyBSZXF1ZXN0T3JSZWRpcmVjdGlv
blRyaXBsZXRPckVycm9yID0gVmFyaWFudDxXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QsIFJlZGly
ZWN0aW9uVHJpcGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj47CisgICAgdXNpbmcgUmVxdWVz
dE9yUmVkaXJlY3Rpb25UcmlwbGV0T3JFcnJvciA9IHN0ZDo6dmFyaWFudDxXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QsIFJlZGlyZWN0aW9uVHJpcGxldCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj47
CiAgICAgdXNpbmcgVmFsaWRhdGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
cXVlc3RPclJlZGlyZWN0aW9uVHJpcGxldE9yRXJyb3ImJik+OwogICAgIHZvaWQgY2hlY2soV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeUNs
aWVudCosIFZhbGlkYXRpb25IYW5kbGVyJiYpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGEuaAkocmV2aXNpb24g
Mjg0MDAyKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogI2lmIFVT
RShHTElCKQogICAgIERhdGEoR1JlZlB0cjxHQnl0ZXM+JiYsIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSBmZCA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOwog
I2VsaWYgVVNFKENVUkwpCi0gICAgRGF0YShWYXJpYW50PFZlY3Rvcjx1aW50OF90PiwgRmlsZVN5
c3RlbTo6TWFwcGVkRmlsZURhdGE+JiYpOworICAgIERhdGEoc3RkOjp2YXJpYW50PFZlY3Rvcjx1
aW50OF90PiwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGE+JiYpOwogI2VuZGlmCiAgICAgYm9v
bCBpc051bGwoKSBjb25zdDsKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9z
aXplOyB9CkBAIC0xMDEsNyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICBGaWxlU3lzdGVtOjpQbGF0
Zm9ybUZpbGVIYW5kbGUgbV9maWxlRGVzY3JpcHRvciB7IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUgfTsKICNlbmRpZgogI2lmIFVTRShDVVJMKQotICAgIEJveDxWYXJpYW50
PFZlY3Rvcjx1aW50OF90PiwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGE+PiBtX2J1ZmZlcjsK
KyAgICBCb3g8c3RkOjp2YXJpYW50PFZlY3Rvcjx1aW50OF90PiwgRmlsZVN5c3RlbTo6TWFwcGVk
RmlsZURhdGE+PiBtX2J1ZmZlcjsKICNlbmRpZgogICAgIG11dGFibGUgY29uc3QgdWludDhfdCog
bV9kYXRhIHsgbnVsbHB0ciB9OwogICAgIHNpemVfdCBtX3NpemUgeyAwIH07CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgJKHJldmlzaW9uIDI4NDAw
MikKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTczMCw3ICs3MzAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBFcnJvclR5cGU+
IHN0cnVjdCBBcmd1CiB0ZW1wbGF0ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIFR5cGVzPgog
c3RydWN0IFZhcmlhbnRDb2RlciB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50
PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjp2YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwg
dW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIGlmIChpID09IGluZGV4KSB7CiAgICAgICAgICAg
ICBlbmNvZGVyIDw8IHN0ZDo6Z2V0PGluZGV4Pih2YXJpYW50KTsKQEAgLTc0MCwxMCArNzQwLDEw
IEBAIHN0cnVjdCBWYXJpYW50Q29kZXIgewogICAgIH0KICAgICAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBEZWNvZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFyaWFudDxUeXBl
cy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQorICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKLSAgICAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgc3RkOjp2YXJpYW50X2FsdGVybmF0aXZlPGlu
ZGV4LCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+Pjo6dHlwZT4gb3B0aW9uYWw7CisgICAgICAgICAg
ICBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIHN0ZDo6dmFyaWFudF9hbHRlcm5hdGl2ZTxpbmRleCwg
c3RkOjp2YXJpYW50PFR5cGVzLi4uPj46OnR5cGU+IG9wdGlvbmFsOwogICAgICAgICAgICAgZGVj
b2RlciA+PiBvcHRpb25hbDsKICAgICAgICAgICAgIGlmICghb3B0aW9uYWwpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAgLTc1NiwxNyArNzU2LDE3IEBAIHN0cnVjdCBW
YXJpYW50Q29kZXIgewogdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+CiBzdHJ1Y3QgVmFyaWFu
dENvZGVyPDAsIFR5cGVzLi4uPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50
PFR5cGVzLi4uPiYgdmFyaWFudCwgdW5zaWduZWQgaSkKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjp2YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCwg
dW5zaWduZWQgaSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoaSwgIWkpOwogICAgICAg
ICBlbmNvZGVyIDw8IHN0ZDo6Z2V0PDA+KHZhcmlhbnQpOwogICAgIH0KICAgICAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdURjo6VmFy
aWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQorICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxUeXBlcy4uLj4+IGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChp
LCAhaSk7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgc3RkOjp2YXJpYW50X2FsdGVy
bmF0aXZlPDAsIFdURjo6VmFyaWFudDxUeXBlcy4uLj4+Ojp0eXBlPiBvcHRpb25hbDsKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBzdGQ6OnZhcmlhbnRfYWx0ZXJuYXRpdmU8MCwgc3Rk
Ojp2YXJpYW50PFR5cGVzLi4uPj46OnR5cGU+IG9wdGlvbmFsOwogICAgICAgICBkZWNvZGVyID4+
IG9wdGlvbmFsOwogICAgICAgICBpZiAoIW9wdGlvbmFsKQogICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKQEAgLTc3NCw5ICs3NzQsOSBAQCBzdHJ1Y3QgVmFyaWFudENvZGVyPDAsIFR5
cGVzLi4uPiB7CiAgICAgfQogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdURjo6VmFyaWFudDxUeXBlcy4uLj4+IHsKK3RlbXBsYXRlPHR5cGVu
YW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnZhcmlhbnQ8VHlwZXMuLi4+
PiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KLSAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV1RGOjpWYXJpYW50PFR5cGVzLi4uPiYgdmFyaWFu
dCkKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjp2
YXJpYW50PFR5cGVzLi4uPiYgdmFyaWFudCkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGkgPSB2
YXJpYW50LmluZGV4KCk7CiAgICAgICAgIGVuY29kZXIgPDwgaTsKQEAgLTc4NCw3ICs3ODQsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4gc3RydWN0IEFyZ3VtCiAgICAgfQogICAgIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCiAgICAgewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwogICAg
ICAgICBkZWNvZGVyID4+IGk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9BdHRh
Y2htZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0YWNo
bWVudC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9B
dHRhY2htZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogCiAg
ICAgdXNpbmcgU29ja2V0RGVzY3JpcHRvciA9IGludDsKICAgICB1c2luZyBDdXN0b21Xcml0ZXJG
dW5jID0gV1RGOjpGdW5jdGlvbjx2b2lkKFNvY2tldERlc2NyaXB0b3IpPjsKLSAgICB1c2luZyBD
dXN0b21Xcml0ZXIgPSBWYXJpYW50PEN1c3RvbVdyaXRlckZ1bmMsIFNvY2tldERlc2NyaXB0b3I+
OworICAgIHVzaW5nIEN1c3RvbVdyaXRlciA9IHN0ZDo6dmFyaWFudDxDdXN0b21Xcml0ZXJGdW5j
LCBTb2NrZXREZXNjcmlwdG9yPjsKICAgICBBdHRhY2htZW50KEN1c3RvbVdyaXRlciYmKTsKICNl
bGlmIE9TKERBUldJTikKICAgICBBdHRhY2htZW50KG1hY2hfcG9ydF9uYW1lX3QsIG1hY2hfbXNn
X3R5cGVfbmFtZV90IGRpc3Bvc2l0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL01lc3NhZ2VSZWNlaXZlUXVldWVNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmgJKHJldmlzaW9uIDI4NDAwMikK
KysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlUXVldWVNYXAuaAko
d29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBNZXNzYWdlUmVj
ZWl2ZVF1ZXVlKiBnZXQoY29uc3QgRGVjb2RlciYpIGNvbnN0OwogcHJpdmF0ZToKLSAgICB1c2lu
ZyBTdG9yZVR5cGUgPSBWYXJpYW50PE1lc3NhZ2VSZWNlaXZlUXVldWUqLCBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVJlY2VpdmVRdWV1ZT4+OworICAgIHVzaW5nIFN0b3JlVHlwZSA9IHN0ZDo6dmFy
aWFudDxNZXNzYWdlUmVjZWl2ZVF1ZXVlKiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VSZWNlaXZl
UXVldWU+PjsKICAgICB2b2lkIGFkZEltcGwoU3RvcmVUeXBlJiYsIFJlY2VpdmVyTmFtZSwgdWlu
dDY0X3QgZGVzdGluYXRpb25JRCk7CiAgICAgdXNpbmcgUXVldWVNYXAgPSBIYXNoTWFwPHN0ZDo6
cGFpcjx1aW50OF90LCB1aW50NjRfdD4sIFN0b3JlVHlwZT47CiAgICAgUXVldWVNYXAgbV9xdWV1
ZXM7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuaAkocmV2aXNpb24gMjg0MDAy
KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU1LDcgKzU1LDcgQEAgc3RydWN0IEhUVFBCb2R5IHsKICAgICAgICAgICAgIEJsb2IsCiAg
ICAgICAgIH07CiAKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgVmFyaWFudC4g
SXQncyBhbHNvIHVuY2xlYXIgd2h5IHdlIGRvbid0IGp1c3QgdXNlIEZvcm1EYXRhRWxlbWVudCBo
ZXJlLgorICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYSBzdGQ6OnZhcmlhbnQuIEl0
J3MgYWxzbyB1bmNsZWFyIHdoeSB3ZSBkb24ndCBqdXN0IHVzZSBGb3JtRGF0YUVsZW1lbnQgaGVy
ZS4KICAgICAgICAgVHlwZSB0eXBlID0gVHlwZTo6RGF0YTsKIAogICAgICAgICAvLyBEYXRhLgpJ
bmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgJKHJl
dmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcsNyArMTc3LDcgQEAgc3RydWN0IFZlbG9jaXR5
RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7
CiAKLXVzaW5nIElEQktleVBhdGggPSBWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+Owor
dXNpbmcgSURCS2V5UGF0aCA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+PjsK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQogc3RydWN0IEtleXByZXNzQ29tbWFuZDsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgJKHJldmlzaW9uIDI4NDAw
MikKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZSB7CiAg
ICAgc3RhdGljIHZvaWQgb3ZlcnJpZGVCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXks
IGJvb2wgdmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRlc3RSdW5uZXJPdmVycmlkZXMo
KTsKIAotICAgIHVzaW5nIFZhbHVlID0gVmFyaWFudDxTdHJpbmcsIGJvb2wsIHVpbnQzMl90LCBk
b3VibGU+OworICAgIHVzaW5nIFZhbHVlID0gc3RkOjp2YXJpYW50PFN0cmluZywgYm9vbCwgdWlu
dDMyX3QsIGRvdWJsZT47CiAKICAgICB1c2luZyBWYWx1ZU1hcCA9IE1lbW9yeUNvbXBhY3RSb2Jp
bkhvb2RIYXNoTWFwPFN0cmluZywgVmFsdWU+OwogICAgIFZhbHVlTWFwIG1fdmFsdWVzOwpJbmRl
eDogU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxl
Q3Vyc29yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhU2FtcGxlQ3Vyc29yLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIE1lZGlhU2FtcGxlQ3Vyc29y
IDogcHVibGljIENvcmVNZWQKIHB1YmxpYzoKICAgICB1c2luZyBEZWNvZGVPcmRlckl0ZXJhdG9y
ID0gV2ViQ29yZTo6RGVjb2RlT3JkZXJTYW1wbGVNYXA6Oml0ZXJhdG9yOwogICAgIHVzaW5nIFBy
ZXNlbnRhdGlvbk9yZGVySXRlcmF0b3IgPSBXZWJDb3JlOjpQcmVzZW50YXRpb25PcmRlclNhbXBs
ZU1hcDo6aXRlcmF0b3I7Ci0gICAgdXNpbmcgTG9jYXRvciA9IFZhcmlhbnQ8TWVkaWFUaW1lLCBE
ZWNvZGVPcmRlckl0ZXJhdG9yLCBQcmVzZW50YXRpb25PcmRlckl0ZXJhdG9yPjsKKyAgICB1c2lu
ZyBMb2NhdG9yID0gc3RkOjp2YXJpYW50PE1lZGlhVGltZSwgRGVjb2RlT3JkZXJJdGVyYXRvciwg
UHJlc2VudGF0aW9uT3JkZXJJdGVyYXRvcj47CiAKICAgICBzdHJ1Y3QgVGltaW5nIHsKICAgICAg
ICAgTWVkaWFUaW1lIGRlY29kZVRpbWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4Miw3ICsyODIsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25z
dCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PENv
bnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcihDb250aW51ZVVuc2FmZUxvYWQ6Olllcyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2YXJpYW50PENvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihDb250aW51ZVVuc2Fm
ZUxvYWQ6Olllcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5n
KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFp
bkZyYW1lTmF2aWdhdGlvbigpIHsgfQogICAgIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyAr
MTA1LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEJhY2tncm91bmRBY3Rpdml0eSA9IEFjdGl2aXR5
PEFjdGl2aXR5VHlwZTo6QmFja2dyb3VuZD47CiAgICAgVW5pcXVlUmVmPEJhY2tncm91bmRBY3Rp
dml0eT4gYmFja2dyb3VuZEFjdGl2aXR5KEFTQ0lJTGl0ZXJhbCBuYW1lKTsKIAotICAgIHVzaW5n
IEFjdGl2aXR5VmFyaWFudCA9IFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFVuaXF1ZVJlZjxCYWNr
Z3JvdW5kQWN0aXZpdHk+LCBVbmlxdWVSZWY8Rm9yZWdyb3VuZEFjdGl2aXR5Pj47CisgICAgdXNp
bmcgQWN0aXZpdHlWYXJpYW50ID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBVbmlxdWVS
ZWY8QmFja2dyb3VuZEFjdGl2aXR5PiwgVW5pcXVlUmVmPEZvcmVncm91bmRBY3Rpdml0eT4+Owog
ICAgIHN0YXRpYyBib29sIGlzVmFsaWRCYWNrZ3JvdW5kQWN0aXZpdHkoY29uc3QgQWN0aXZpdHlW
YXJpYW50Jik7CiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZEZvcmVncm91bmRBY3Rpdml0eShjb25z
dCBBY3Rpdml0eVZhcmlhbnQmKTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTQzLDcgKzM1NDMsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9sCiAgICAgfSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rp
b24sIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGlj
aWVzPiYmIHdlYnNpdGVQb2xpY2llcywgVmFyaWFudDxSZWY8QVBJOjpOYXZpZ2F0aW9uUmVzcG9u
c2U+LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPj4mJiBuYXZpZ2F0aW9uQWN0aW9uT3JSZXNw
b25zZSwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmIHNlbmRlciwgc3RkOjpvcHRpb25hbDxT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIFdpbGxDb250
aW51ZUxvYWRJbk5ld1Byb2Nlc3Mgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcykKK3ZvaWQg
V2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24s
IEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVz
PiYmIHdlYnNpdGVQb2xpY2llcywgc3RkOjp2YXJpYW50PFJlZjxBUEk6Ok5hdmlnYXRpb25SZXNw
b25zZT4sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+PiYmIG5hdmlnYXRpb25BY3Rpb25PclJl
c3BvbnNlLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyLCBzdGQ6Om9wdGlvbmFs
PFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgV2lsbENv
bnRpbnVlTG9hZEluTmV3UHJvY2VzcyB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzKQogewog
ICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgewogICAgICAgICBzZW5kZXItPnNlbmQoUG9s
aWN5RGVjaXNpb24geyBzZW5kZXItPmlkZW50aWZpZXIoKSwgaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbigpLCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51
bGxvcHQgfSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2
aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMTksNyArMTIxOSw3IEBAIHB1YmxpYzoKIAogICAgIGNsYXNz
IFBvbGljeURlY2lzaW9uU2VuZGVyOwogICAgIGVudW0gY2xhc3MgV2lsbENvbnRpbnVlTG9hZElu
TmV3UHJvY2VzcyA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgdm9pZCByZWNlaXZlZFBvbGljeURl
Y2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmUHRyPEFQ
STo6V2Vic2l0ZVBvbGljaWVzPiYmLCBWYXJpYW50PFJlZjxBUEk6Ok5hdmlnYXRpb25SZXNwb25z
ZT4sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+PiYmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5k
ZXI+JiYsIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiA9IHsgfSwgV2ls
bENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3M6
Ok5vKTsKKyAgICB2b2lkIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0
aW9uLCBBUEk6Ok5hdmlnYXRpb24qLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIHN0
ZDo6dmFyaWFudDxSZWY8QVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0
aW9uQWN0aW9uPj4mJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmLCBzdGQ6Om9wdGlvbmFs
PFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gPSB7IH0sIFdpbGxDb250aW51ZUxvYWRJbk5ld1By
b2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpObyk7CiAgICAgdm9pZCByZWNl
aXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6
TmF2aWdhdGlvbiosIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYsIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIFdlYkZyYW1lUHJveHkmLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNp
ZXM+JiYsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJik7CiAKICAgICB2b2lkIGJhY2tGb3J3
YXJkUmVtb3ZlZEl0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYp
OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ7CiAK
IGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxP
YmplY3Q6OlR5cGU6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8V2ViQXV0aGVudGljYXRpb25QYW5lbD4gewogcHVibGljOgotICAgIHVzaW5nIFJlc3BvbnNl
ID0gVmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT47CisgICAgdXNpbmcgUmVzcG9uc2UgPSBzdGQ6OnZhcmlhbnQ8UmVmPFdl
YkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Owog
ICAgIHVzaW5nIENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNwb25zZSYmKT47
CiAKICAgICBXZWJBdXRoZW50aWNhdGlvblBhbmVsKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmljZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuY3BwCShyZXZpc2lvbiAy
ODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmlj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBXS0FkZE1vY2tNZWRp
YURldmljZShXS0NvbnRleHRSZWYgYwogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
U3RyaW5nIHR5cGVTdHJpbmcgPSBXZWJLaXQ6OnRvSW1wbCh0eXBlKS0+c3RyaW5nKCk7Ci0gICAg
VmFyaWFudDxXZWJDb3JlOjpNb2NrTWljcm9waG9uZVByb3BlcnRpZXMsIFdlYkNvcmU6Ok1vY2tT
cGVha2VyUHJvcGVydGllcywgV2ViQ29yZTo6TW9ja0NhbWVyYVByb3BlcnRpZXMsIFdlYkNvcmU6
Ok1vY2tEaXNwbGF5UHJvcGVydGllcz4gcHJvcGVydGllczsKKyAgICBzdGQ6OnZhcmlhbnQ8V2Vi
Q29yZTo6TW9ja01pY3JvcGhvbmVQcm9wZXJ0aWVzLCBXZWJDb3JlOjpNb2NrU3BlYWtlclByb3Bl
cnRpZXMsIFdlYkNvcmU6Ok1vY2tDYW1lcmFQcm9wZXJ0aWVzLCBXZWJDb3JlOjpNb2NrRGlzcGxh
eVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CiAgICAgaWYgKHR5cGVTdHJpbmcgPT0gImNhbWVyYSIp
CiAgICAgICAgIHByb3BlcnRpZXMgPSBXZWJDb3JlOjpNb2NrQ2FtZXJhUHJvcGVydGllcyB7IH07
CiAgICAgZWxzZSBpZiAodHlwZVN0cmluZyA9PSAic2NyZWVuIikKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjg0MDAy
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgLSAoTlNQcmludE9wZXJhdGlvbiAqKXBy
aW50T3BlcmF0aW9uV2l0aAogCiAjcHJhZ21hIG1hcmsgLSBtYWNPUy9pT1MgaW50ZXJuYWwKIAot
LSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6KGNvbnN0IFdlYktpdDo6U2FmZUJyb3dz
aW5nV2FybmluZyYpd2FybmluZyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKWNvbXBs
ZXRpb25IYW5kbGVyCistICh2b2lkKV9zaG93U2FmZUJyb3dzaW5nV2FybmluZzooY29uc3QgV2Vi
S2l0OjpTYWZlQnJvd3NpbmdXYXJuaW5nJil3YXJuaW5nIGNvbXBsZXRpb25IYW5kbGVyOihDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9h
ZCwgVVJMPiYmKT4mJiljb21wbGV0aW9uSGFuZGxlcgogewogICAgIF9zYWZlQnJvd3NpbmdXYXJu
aW5nID0gYWRvcHROUyhbW1dLU2FmZUJyb3dzaW5nV2FybmluZyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpzZWxmLmJvdW5kcyBzYWZlQnJvd3NpbmdXYXJuaW5nOndhcm5pbmcgY29tcGxldGlvbkhhbmRs
ZXI6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tXZWJWaWV3PihzZWxmKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8mJiByZXN1bHQpIG11dGFi
bGUgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwpAQCAtMjc0
NSw3ICsyNzQ1LDcgQEAgLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVVJMOgog
ewogICAgIFRIUk9XX0lGX1NVU1BFTkRFRDsKICAgICBhdXRvIHNhZmVCcm93c2luZ1dhcm5pbmcg
PSBXZWJLaXQ6OlNhZmVCcm93c2luZ1dhcm5pbmc6OmNyZWF0ZSh1cmwsIHRpdGxlLCB3YXJuaW5n
LCBkZXRhaWxzKTsKLSAgICBhdXRvIHdyYXBwZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoVmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5z
YWZlTG9hZCwgVVJMPiYmIHZhcmlhbnQpIHsKKyAgICBhdXRvIHdyYXBwZXIgPSBbY29tcGxldGlv
bkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoc3RkOjp2YXJpYW50
PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYgdmFyaWFudCkgewogICAgICAgICBz
d2l0Y2hPbih2YXJpYW50LCBbJl0gKFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkIGNvbnRpbnVl
VW5zYWZlTG9hZCkgewogICAgICAgICAgICAgc3dpdGNoIChjb250aW51ZVVuc2FmZUxvYWQpIHsK
ICAgICAgICAgICAgIGNhc2UgV2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQ6OlllczoKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjcyLDcgKzI3
Miw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsKIAogLSAodm9pZClfaW50ZXJuYWxE
b0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZToodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sg
d2l0aG91dFdhaXRpbmdGb3JQYWludGluZzooQk9PTCl3aXRob3V0V2FpdGluZ0ZvclBhaW50aW5n
IHdpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemU6KEJPT0wpd2l0aG91dFdhaXRpbmdGb3JB
bmltYXRlZFJlc2l6ZTsKIAotLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6KGNvbnN0
IFdlYktpdDo6U2FmZUJyb3dzaW5nV2FybmluZyYpd2FybmluZyBjb21wbGV0aW9uSGFuZGxlcjoo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2Fk
LCBVUkw+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClfc2hvd1NhZmVCcm93c2lu
Z1dhcm5pbmc6KGNvbnN0IFdlYktpdDo6U2FmZUJyb3dzaW5nV2FybmluZyYpd2FybmluZyBjb21w
bGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZhcmlhbnQ8V2ViS2l0
OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2
b2lkKV9jbGVhclNhZmVCcm93c2luZ1dhcm5pbmc7CiAtICh2b2lkKV9jbGVhclNhZmVCcm93c2lu
Z1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmlnYXRpb247CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsLm1tCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTM2LDcgKzUzNiw3IEBAIC0gKHZvaWQpbWFrZUNyZWRlbnRpYWxXaXRoQ2hhbGxlbmdlOihO
U0QKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogICAgIGF1dG8gY2xpZW50RGF0YUpTT04gPSBwcm9k
dWNlQ2xpZW50RGF0YUpzb24oX1dLV2ViQXV0aGVudGljYXRpb25UeXBlQ3JlYXRlLCBjaGFsbGVu
Z2UsIG9yaWdpbik7CiAgICAgYXV0byBoYXNoID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChj
bGllbnREYXRhSlNPTi5nZXQoKSk7Ci0gICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0gbWFr
ZUJsb2NrUHRyKGhhbmRsZXIpLCBjbGllbnREYXRhSlNPTiA9IFdURk1vdmUoY2xpZW50RGF0YUpT
T04pXSAoVmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgeworICAgIGF1dG8gY2FsbGJhY2sg
PSBbaGFuZGxlciA9IG1ha2VCbG9ja1B0cihoYW5kbGVyKSwgY2xpZW50RGF0YUpTT04gPSBXVEZN
b3ZlKGNsaWVudERhdGFKU09OKV0gKHN0ZDo6dmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGlj
YXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUg
ewogICAgICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwgWyZdKGNvbnN0IFJlZjxXZWJDb3JlOjpB
dXRoZW50aWNhdG9yUmVzcG9uc2U+JiByZXNwb25zZSkgewogICAgICAgICAgICAgaGFuZGxlcih3
a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKHJlc3BvbnNlLT5kYXRhKCksIGNsaWVu
dERhdGFKU09OLmdldCgpLCByZXNwb25zZS0+YXR0YWNobWVudCgpKS5nZXQoKSwgbmlsKTsKICAg
ICAgICAgfSwgWyZdKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikgewpA
QCAtNTg2LDcgKzU4Niw3IEBAIC0gKHZvaWQpZ2V0QXNzZXJ0aW9uV2l0aENoYWxsZW5nZTooTlNE
YXQKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogICAgIGF1dG8gY2xpZW50RGF0YUpTT04gPSBwcm9k
dWNlQ2xpZW50RGF0YUpzb24oX1dLV2ViQXV0aGVudGljYXRpb25UeXBlR2V0LCBjaGFsbGVuZ2Us
IG9yaWdpbik7CiAgICAgYXV0byBoYXNoID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChjbGll
bnREYXRhSlNPTi5nZXQoKSk7Ci0gICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0gbWFrZUJs
b2NrUHRyKGhhbmRsZXIpLCBjbGllbnREYXRhSlNPTiA9IFdURk1vdmUoY2xpZW50RGF0YUpTT04p
XSAoVmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgeworICAgIGF1dG8gY2FsbGJhY2sgPSBb
aGFuZGxlciA9IG1ha2VCbG9ja1B0cihoYW5kbGVyKSwgY2xpZW50RGF0YUpTT04gPSBXVEZNb3Zl
KGNsaWVudERhdGFKU09OKV0gKHN0ZDo6dmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRv
clJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwgWyZdKGNvbnN0IFJlZjxXZWJDb3JlOjpBdXRo
ZW50aWNhdG9yUmVzcG9uc2U+JiByZXNwb25zZSkgewogICAgICAgICAgICAgaGFuZGxlcih3a0F1
dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZShyZXNwb25zZS0+ZGF0YSgpLCBjbGllbnREYXRh
SlNPTi5nZXQoKSwgcmVzcG9uc2UtPmF0dGFjaG1lbnQoKSkuZ2V0KCksIG5pbCk7CiAgICAgICAg
IH0sIFsmXShjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJiBleGNlcHRpb24pIHsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRj
aGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9T
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2
b2lkIHNpbXVsYXRlVG91Y2hJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBUb3VjaEludGVyYWN0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbG9jYXRpb25JblZpZXcsIHN0ZDo6b3B0aW9u
YWw8U2Vjb25kcz4gZHVyYXRpb24sIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSA9IDA7
CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJv
eHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktl
eT4mJiwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2Fy
ZEludGVyYWN0aW9uLCBzdGQ6OnZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21h
dGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJEUklW
RVJfV0hFRUxfSU5URVJBQ1RJT05TKQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVXaGVl
bEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsb2Nh
dGlvbkluVmlldywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEsIEF1dG9tYXRpb25Db21w
bGV0aW9uSGFuZGxlciYmKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAkocmV2aXNp
b24gMjg0MDAyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NjAsNyArMTY2MCw3IEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNpbXVsYXRlVG91Y2gKICNlbmRpZiAvLyBFTkFCTEUo
V0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykKIAogI2lmIEVOQUJMRShXRUJEUklWRVJfS0VZ
Qk9BUkRfSU5URVJBQ1RJT05TKQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2ltdWxhdGVL
ZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgS2V5Ym9hcmRJbnRlcmFjdGlv
biBpbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYga2V5LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJv
cj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2lt
dWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgS2V5Ym9hcmRJbnRl
cmFjdGlvbiBpbnRlcmFjdGlvbiwgc3RkOjp2YXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYg
a2V5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8QXV0b21hdGlvbkNvbW1h
bmRFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIC8vIEJyaWRnZSB0aGUgZmx1
c2hlZCBjYWxsYmFjayB0byBvdXIgY29tbWFuZCdzIGNvbXBsZXRpb24gaGFuZGxlci4KICAgICBh
dXRvIGtleWJvYXJkRXZlbnRzRmx1c2hlZENhbGxiYWNrID0gW2NvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKHN0ZDo6b3B0aW9uYWw8QXV0b21hdGlvbkNvbW1h
bmRFcnJvcj4gZXJyb3IpIG11dGFibGUgewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAkocmV2aXNp
b24gMjg0MDAyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2ltdWxhdGVUb3VjaEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIFRvdWNo
SW50ZXJhY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsb2NhdGlvbkluVmlldywgc3Rk
OjpvcHRpb25hbDxTZWNvbmRzPiBkdXJhdGlvbiwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVy
JiYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMp
Ci0gICAgdm9pZCBzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5
Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1
dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJ
bnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBzdGQ6OnZhcmlh
bnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9XSEVFTF9JTlRFUkFDVElPTlMpCiAgICAg
dm9pZCBzaW11bGF0ZVdoZWVsSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGxvY2F0aW9uSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBkZWx0
YSwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHBy
aXZhdGU6CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9O
UykKICAgICAvLyBTaW11bGF0ZXMgYSBzaW5nbGUgdmlydHVhbCBvciBjaGFyIGtleSBiZWluZyBw
cmVzc2VkL3JlbGVhc2VkLCBzdWNoIGFzICdhJywgQ29udHJvbCwgRi1rZXlzLCBOdW1wYWQga2V5
cywgZXRjLiBhcyBhbGxvd2VkIGJ5IHRoZSBwcm90b2NvbC4KLSAgICB2b2lkIHBsYXRmb3JtU2lt
dWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rp
b24sIFdURjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmKTsKKyAgICB2b2lkIHBsYXRm
b3JtU2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50
ZXJhY3Rpb24sIHN0ZDo6dmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmKTsKICAgICAvLyBT
aW11bGF0ZXMga2V5IHByZXNzZXMgdG8gcHJvZHVjZSB0aGUgY29kZXBvaW50cyBpbiBhIHN0cmlu
Zy4gT25lIG9yIG1vcmUgY29kZSBwb2ludHMgYXJlIGRlbGl2ZXJlZCBhdG9taWNhbGx5IGF0IGdy
YXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4KICAgICB2b2lkIHBsYXRmb3JtU2ltdWxhdGVLZXlT
ZXF1ZW5jZShXZWJQYWdlUHJveHkmLCBjb25zdCBTdHJpbmcmKTsKICNlbmRpZiAvLyBFTkFCTEUo
V0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25TZXNzaW9uSU9TLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRp
b25TZXNzaW9uSU9TLm1tCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5tbQkod29ya2luZyBj
b3B5KQpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZW5kU3lu
dGhlc2l6CiAjcHJhZ21hIG1hcmsgQ29tbWFuZHMgZm9yIFBsYXRmb3JtOiAnaU9TJwogCiAjaWYg
RU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCi12b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJv
eHkmIHBhZ2UsIEtleWJvYXJkSW50ZXJhY3Rpb24gaW50ZXJhY3Rpb24sIFdURjo6VmFyaWFudDxW
aXJ0dWFsS2V5LCBDaGFyS2V5PiYmIGtleSkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBs
YXRmb3JtU2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgS2V5
Ym9hcmRJbnRlcmFjdGlvbiBpbnRlcmFjdGlvbiwgc3RkOjp2YXJpYW50PFZpcnR1YWxLZXksIENo
YXJLZXk+JiYga2V5KQogewogICAgIC8vIFRoZSBtb2RpZmllcnMgY2hhbmdlZCBieSB0aGUgdmly
dHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVzc2VkIG9yIHJlbGVhc2VkLgogICAgIFdlYkV2ZW50Rmxh
Z3MgY2hhbmdlZE1vZGlmaWVycyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lv
bk1hYy5tbQkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTYyNSw3ICs2MjUsNyBAQCBzdGF0aWMgTlNFdmVudE1vZGlmaWVyRmxhZ3MgZXZlbnRNb2RpZmll
CiAgICAgfQogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRl
S2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEtleWJvYXJkSW50ZXJhY3Rp
b24gaW50ZXJhY3Rpb24sIFdURjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmIGtleSkK
K3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlib2FyZEludGVy
YWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgS2V5Ym9hcmRJbnRlcmFjdGlvbiBpbnRlcmFjdGlv
biwgc3RkOjp2YXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYga2V5KQogewogICAgIC8vIEZJ
WE1FOiB0aGlzIGZ1bmN0aW9uIGFuZCB0aGUgQXV0b21hdGlvbiBwcm90b2NvbCBlbnVtIHNob3Vs
ZCBwcm9iYWJseSBhZG9wdCBrZXkgbmFtZXMKICAgICAvLyBmcm9tIFczQyBVSUV2ZW50cyBzdGFu
ZGFyZC4gRm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3VpZXZlbnRzLWNv
ZGUvCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NhZmVCcm93c2luZ1dh
cm5pbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1Nh
ZmVCcm93c2luZ1dhcm5pbmcuaAkocmV2aXNpb24gMjg0MDAyKQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY4LDcgKzY4LDcgQEAgdXNpbmcgUmVjdFR5cGUgPSBDR1JlY3Q7CiAjZW5kaWYKIHsKIEBwYWNr
YWdlCi0gICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVV
bnNhZmVMb2FkLCBVUkw+JiYpPiBfY29tcGxldGlvbkhhbmRsZXI7CisgICAgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6OnZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4m
Jik+IF9jb21wbGV0aW9uSGFuZGxlcjsKICAgICBSZWZQdHI8Y29uc3QgV2ViS2l0OjpTYWZlQnJv
d3NpbmdXYXJuaW5nPiBfd2FybmluZzsKICAgICBXZWFrT2JqQ1B0cjxXS1NhZmVCcm93c2luZ1Rl
eHRWaWV3PiBfZGV0YWlsczsKICAgICBXZWFrT2JqQ1B0cjxXS1NhZmVCcm93c2luZ0JveD4gX2Jv
eDsKQEAgLTc3LDcgKzc3LDcgQEAgdXNpbmcgUmVjdFR5cGUgPSBDR1JlY3Q7CiAjZW5kaWYKIH0K
IAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KFJlY3RUeXBlKWZyYW1lIHNhZmVCcm93
c2luZ1dhcm5pbmc6KGNvbnN0IFdlYktpdDo6U2FmZUJyb3dzaW5nV2FybmluZyYpd2FybmluZyBj
b21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktpdDo6
Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyOworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KFJlY3RUeXBlKWZyYW1lIHNhZmVCcm93c2luZ1dhcm5p
bmc6KGNvbnN0IFdlYktpdDo6U2FmZUJyb3dzaW5nV2FybmluZyYpd2FybmluZyBjb21wbGV0aW9u
SGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZhcmlhbnQ8V2ViS2l0OjpDb250
aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAKIC0gKEJPT0wp
Zm9yTWFpbkZyYW1lTmF2aWdhdGlvbjsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV0tTYWZlQnJvd3NpbmdXYXJuaW5nLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dLU2FmZUJyb3dzaW5nV2FybmluZy5tbQkocmV2aXNpb24gMjg0
MDAyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tTYWZlQnJvd3NpbmdXYXJu
aW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsMTMgKzI5MCwxMyBAQCAtIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhBdHRyaWJ1dGVkU3RyaW5nCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1NhZmVCcm93
c2luZ1dhcm5pbmcKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KFJlY3RUeXBlKWZy
YW1lIHNhZmVCcm93c2luZ1dhcm5pbmc6KGNvbnN0IFdlYktpdDo6U2FmZUJyb3dzaW5nV2Fybmlu
ZyYpd2FybmluZyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJp
YW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKWNvbXBsZXRpb25IYW5k
bGVyCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooUmVjdFR5cGUpZnJhbWUgc2FmZUJy
b3dzaW5nV2FybmluZzooY29uc3QgV2ViS2l0OjpTYWZlQnJvd3NpbmdXYXJuaW5nJil3YXJuaW5n
IGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFudDxX
ZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiljb21wbGV0aW9uSGFuZGxlcgog
ewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZV0pKSB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkOjpZZXMpOwog
ICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KLSAgICBfY29tcGxldGlvbkhhbmRsZXIgPSBbd2Vh
a1NlbGYgPSBXZWFrT2JqQ1B0cjxXS1NhZmVCcm93c2luZ1dhcm5pbmc+KHNlbGYpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoVmFyaWFudDxXZWJLaXQ6
OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgX2NvbXBs
ZXRpb25IYW5kbGVyID0gW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tTYWZlQnJvd3NpbmdXYXJu
aW5nPihzZWxmKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKHN0ZDo6dmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmIHJlc3Vs
dCkgbXV0YWJsZSB7CiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKICAgICAgICAgaWYgKGF1dG8gc3Ry
b25nU2VsZiA9IHdlYWtTZWxmLmdldCgpKQogICAgICAgICAgICAgW3N0cm9uZ1NlbGYuZ2V0KCkt
Pl9wcmV2aW91c0ZpcnN0UmVzcG9uZGVyIGJlY29tZUZpcnN0UmVzcG9uZGVyXTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gMjg0
MDAyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkod29y
a2luZyBjb3B5KQpAQCAtMjYyLDcgKzI2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdT
Y2FsZShDR0Zsb2F0KTsKICAgICBDR0Zsb2F0IHZpZXdTY2FsZSgpIGNvbnN0OwogCi0gICAgdm9p
ZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PENvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4m
Jik7CisgICAgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdX
YXJuaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZhcmlhbnQ8Q29udGludWVVbnNh
ZmVMb2FkLCBVUkw+JiYpPiYmKTsKICAgICB2b2lkIGNsZWFyU2FmZUJyb3dzaW5nV2FybmluZygp
OwogICAgIHZvaWQgY2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWluRnJhbWVOYXZpZ2F0
aW9uKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTc1Niw3ICsxNzU2LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6dGFrZUZvY3VzKFdlYkNvcmU6OkZvYwogICAgICAgICBbd2ViVmlldy53
aW5kb3cgc2VsZWN0S2V5Vmlld1ByZWNlZGluZ1ZpZXc6d2ViVmlld107CiB9CiAKLXZvaWQgV2Vi
Vmlld0ltcGw6OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5p
bmcmIHdhcm5pbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFudDxDb250aW51ZVVuc2Fm
ZUxvYWQsIFVSTD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlZpZXdJbXBsOjpz
aG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiB3YXJuaW5n
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFudDxDb250aW51ZVVuc2FmZUxvYWQs
IFVSTD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3ZpZXcpCiAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihDb250aW51ZVVuc2FmZUxvYWQ6Olllcyk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU3ViRnJh
bWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1N1YkZyYW1lU09BdXRob3JpemF0aW9uU2Vz
c2lvbi5oCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9TT0F1dGhvcml6YXRpb24vU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIH5TdWJGcmFtZVNPQXV0aG9y
aXphdGlvblNlc3Npb24oKTsKIAogcHJpdmF0ZToKLSAgICB1c2luZyBTdXBwbGVtZW50ID0gVmFy
aWFudDxWZWN0b3I8dWludDhfdD4sIFN0cmluZz47CisgICAgdXNpbmcgU3VwcGxlbWVudCA9IHN0
ZDo6dmFyaWFudDxWZWN0b3I8dWludDhfdD4sIFN0cmluZz47CiAKICAgICBTdWJGcmFtZVNPQXV0
aG9yaXphdGlvblNlc3Npb24oU09BdXRob3JpemF0aW9uICosIFJlZjxBUEk6Ok5hdmlnYXRpb25B
Y3Rpb24+JiYsIFdlYlBhZ2VQcm94eSYsIENhbGxiYWNrJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgQXV0aGVudGljYXRvciA6IHB1YmxpYyBSZWZDb3VudGVkPEF1dGhlbnRpY2F0b3I+LCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8QXV0aGVudGljYXRvcj4gewogcHVibGljOgotICAgIHVzaW5nIFJl
c3BvbmQgPSBWYXJpYW50PFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhPjsKKyAgICB1c2luZyBSZXNwb25kID0gc3RkOjp2YXJpYW50PFJl
ZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PjsKIAogICAgIGNsYXNzIE9ic2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE9ic2VydmVy
PiB7CiAgICAgcHVibGljOgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCShy
ZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3
IEBAIGNsYXNzIEF1dGhlbnRpY2F0b3JNYW5hZ2VyIDogcHVibGljIEF1dGgKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdXRoZW50aWNhdG9y
TWFuYWdlcik7CiBwdWJsaWM6Ci0gICAgdXNpbmcgUmVzcG9uZCA9IFZhcmlhbnQ8UmVmPFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+OworICAg
IHVzaW5nIFJlc3BvbmQgPSBzdGQ6OnZhcmlhbnQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JS
ZXNwb25zZT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+OwogICAgIHVzaW5nIENhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNwb25kJiYpPjsKICAgICB1c2luZyBUcmFuc3BvcnRT
ZXQgPSBIYXNoU2V0PFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQsIFdURjo6SW50SGFz
aDxXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0PiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRy
YWl0czxXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0Pj47CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVz
dERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgJKHJldmlzaW9uIDI4NDAwMikK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0aW9uUmVxdWVzdERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBjbGFz
cyBXZWJQYWdlUHJveHk7CiAKIHN0cnVjdCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIHsK
ICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKLSAgICBWYXJpYW50PFdlYkNvcmU6OlB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucz4gb3B0aW9uczsKKyAgICBzdGQ6OnZhcmlhbnQ8V2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zPiBvcHRpb25zOwogCiAgICAgLy8gRklYTUU8cmRhcjovL3Byb2JsZW0v
NzE1MDk4NDg+OiBSZW1vdmUgdGhlIGZvbGxvd2luZyBkZXByZWNhdGVkIGZpZWxkcy4KICAgICBX
ZWFrUHRyPFdlYlBhZ2VQcm94eT4gcGFnZTsKQEAgLTU4LDggKzU4LDggQEAgc3RydWN0IFdlYkF1
dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEgewogICAgIFdlYWtQdHI8QVBJOjpXZWJBdXRoZW50aWNh
dGlvblBhbmVsPiB3ZWFrUGFuZWw7CiB9OwogCi1XZWJDb3JlOjpDbGllbnREYXRhVHlwZSBnZXRD
bGllbnREYXRhVHlwZShjb25zdCBWYXJpYW50PFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cz4mKTsKLVdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCBnZXRVc2VyVmVyaWZp
Y2F0aW9uUmVxdWlyZW1lbnQoY29uc3QgVmFyaWFudDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnM+Jik7CitXZWJDb3JlOjpDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlwZShjb25z
dCBzdGQ6OnZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cywgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYpOworV2ViQ29y
ZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IGdldFVzZXJWZXJpZmljYXRpb25SZXF1aXJl
bWVudChjb25zdCBzdGQ6OnZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucywgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYp
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAkocmV2aXNpb24gMjg0MDAyKQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBA
IHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmcKIAogdm9pZCBXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlv
blJlcXVlc3REYXRhJiYgZGF0YSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikK
IHsKLSAgICBhdXRvIGNhbGxiYWNrID0gW2hhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXSAoVmFy
aWFudDxSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiwgRXhjZXB0aW9uRGF0YT4mJiByZXN1bHQp
IG11dGFibGUgeworICAgIGF1dG8gY2FsbGJhY2sgPSBbaGFuZGxlciA9IFdURk1vdmUoaGFuZGxl
cildIChzdGQ6OnZhcmlhbnQ8UmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIEV4Y2VwdGlvbkRh
dGE+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICAgICAgV1RGOjpzd2l0Y2hPbihyZXN1bHQsIFsmXShjb25zdCBSZWY8QXV0aGVudGlj
YXRvclJlc3BvbnNlPiYgcmVzcG9uc2UpIHsKICAgICAgICAgICAgIGhhbmRsZXIocmVzcG9uc2Ut
PmRhdGEoKSwgcmVzcG9uc2UtPmF0dGFjaG1lbnQoKSwgeyB9KTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCShyZXZpc2lvbiAyODQw
MDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVh
clRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxv
YXQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBT
YWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdlYktp
dDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNo
b3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwg
VVJMPiYmKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhclNhZmVCcm93c2luZ1dhcm5pbmco
KSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyU2FmZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZy
YW1lTmF2aWdhdGlvbigpIG92ZXJyaWRlOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCShyZXZpc2lvbiAyODQwMDIpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTUwOCw3ICs1MDgsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjptYWtlVmlld0Js
YW5rKGJvb2wgCiAgICAgW21fY29udGVudFZpZXcgbGF5ZXJdLm9wYWNpdHkgPSBtYWtlQmxhbmsg
PyAwIDogMTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5p
bmcoY29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYgd2FybmluZywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5p
bmcoY29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYgd2FybmluZywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6OnZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8gd2ViVmlldyA9IG1fd2ViVmlldy5n
ZXQoKSkKICAgICAgICAgW3dlYlZpZXcgX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nOndhcm5pbmcg
Y29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgJKHJldmlz
aW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgbm90aWZ5SW5w
dXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIHZvaWQg
c2VsZWN0aW9uRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzaG93U2FmZUJyb3dzaW5n
V2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dh
cm5pbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFudDxXZWJLaXQ6OkNvbnRp
bnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhclNhZmVC
cm93c2luZ1dhcm5pbmcoKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyU2FmZUJyb3dzaW5nV2Fy
bmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdhdGlvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzU2Fm
ZUJyb3dzaW5nV2FybmluZygpIGNvbnN0IG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQkocmV2aXNpb24gMjg0MDAy
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC01NDIsNyArNTQyLDcgQEAgUmVmPFZhbGlkYXRpb25CdWJibGU+IFBh
Z2VDbGllbnRJbXBsOjpjcgogICAgIHJldHVybiBWYWxpZGF0aW9uQnViYmxlOjpjcmVhdGUobV92
aWV3LCBtZXNzYWdlLCBzZXR0aW5ncyk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dT
YWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmIHdhcm5pbmcsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwg
VVJMPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dT
YWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmIHdhcm5pbmcsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2YXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVM
b2FkLCBVUkw+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9pbXBsKQog
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoQ29udGludWVVbnNhZmVMb2FkOjpZZXMp
OwpJbmRleDogU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJv
Y2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyODQwMDIp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgV2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXQKIAogdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmhhbmRsZVJlcXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYm
IGRhdGEsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgYXV0byBj
YWxsYmFjayA9IFtoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKV0gKFZhcmlhbnQ8UmVmPEF1dGhl
bnRpY2F0b3JSZXNwb25zZT4sIEV4Y2VwdGlvbkRhdGE+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICBhdXRvIGNhbGxiYWNrID0gW2hhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXSAoc3RkOjp2YXJp
YW50PFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkg
bXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIFdU
Rjo6c3dpdGNoT24ocmVzdWx0LCBbJl0oY29uc3QgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4m
IHJlc3BvbnNlKSB7CiAgICAgICAgICAgICBoYW5kbGVyKHJlc3BvbnNlLT5kYXRhKCksIHJlc3Bv
bnNlLT5hdHRhY2htZW50KCksIHsgfSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlLmgJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSA9IFZhcmlhbnQ8Cit1c2luZyBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgPSBz
dGQ6OnZhcmlhbnQ8CiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUKICNpZiBQTEFURk9STShD
T0NPQSkgLy8gRklYTUU6IFRoaXMgaXMgcmVhbGx5IGFib3V0IElPU3VyZmFjZS4KICAgICAsIE1h
Y2hTZW5kUmlnaHQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgJKHJl
dmlzaW9uIDI4NDAwMikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIs
NyBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8QmxvYkxvYWRlcj4gbV9ibG9iTG9hZGVy
OwogICAgIGJvb2wgbV9uZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1l
c3NhZ2UgeyBmYWxzZSB9OwotICAgIFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+LCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+LCBVbmlxdWVSZWY8V2ViQ29y
ZTo6UmVzb3VyY2VFcnJvcj4+IG1fcmVzcG9uc2VEYXRhOworICAgIHN0ZDo6dmFyaWFudDxzdGQ6
Om51bGxwdHJfdCwgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIFJlZjxXZWJDb3JlOjpGb3Jt
RGF0YT4sIFVuaXF1ZVJlZjxXZWJDb3JlOjpSZXNvdXJjZUVycm9yPj4gbV9yZXNwb25zZURhdGE7
CiAgICAgYm9vbCBtX2RpZEZpbmlzaCB7IGZhbHNlIH07CiB9OwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlv
blJlbW90ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgJKHJldmlzaW9uIDI4
NDAwMikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw3ICsx
MzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTdGFydChDRlRpbWVJbnRlcnZhbCBiZWdpblRp
bWUpIHsgbV9wcm9wZXJ0aWVzLmJlZ2luVGltZSA9IGJlZ2luVGltZTsgfQogCiAKLSAgICB1c2lu
ZyBLZXlmcmFtZVZhbHVlID0gVmFyaWFudDxmbG9hdCwgV2ViQ29yZTo6Q29sb3IsIFdlYkNvcmU6
OkZsb2F0UG9pbnQzRCwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgsIFJlZlB0cjxXZWJD
b3JlOjpGaWx0ZXJPcGVyYXRpb24+PjsKKyAgICB1c2luZyBLZXlmcmFtZVZhbHVlID0gc3RkOjp2
YXJpYW50PGZsb2F0LCBXZWJDb3JlOjpDb2xvciwgV2ViQ29yZTo6RmxvYXRQb2ludDNELCBXZWJD
b3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCwgUmVmUHRyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlv
bj4+OwogCiAgICAgc3RydWN0IFByb3BlcnRpZXMgewogICAgICAgICBQcm9wZXJ0aWVzKCkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NDAwMikKKysrIFNvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDIxLTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgVXNlIHN0ZDo6dmFyaWFudCBpbnN0ZWFkIG9mIFdURjo6VmFyaWFudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjI5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBET00vRE9N
SFRNTFNlbGVjdEVsZW1lbnQubW06CisgICAgICAgICgtW0RPTUhUTUxTZWxlY3RFbGVtZW50IGFk
ZDpiZWZvcmU6XSk6CisKIDIwMjEtMTAtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBET01UaW1lU3RhbXAgaXMgbm93IEVwb2NoVGltZVN0YW1wCkluZGV4OiBT
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTFNlbGVjdEVsZW1lbnQubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUhUTUxTZWxlY3RFbGVtZW50
Lm1tCShyZXZpc2lvbiAyODQwMDIpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9N
SFRNTFNlbGVjdEVsZW1lbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTE4NSw3ICsxODUsNyBAQCAt
ICh2b2lkKWFkZDooRE9NSFRNTEVsZW1lbnQgKillbGVtZW50IGJlCiAgICAgICAgIHJhaXNlVHlw
ZUVycm9yRXhjZXB0aW9uKCk7CiAKICAgICBhdXRvJiBjb3JlRWxlbWVudCA9ICpjb3JlKGVsZW1l
bnQpOwotICAgIFZhcmlhbnQ8UmVmUHRyPFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50PiwgUmVm
UHRyPFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ+PiB2YXJpYW50RWxlbWVudDsKKyAgICBz
dGQ6OnZhcmlhbnQ8UmVmUHRyPFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50PiwgUmVmUHRyPFdl
YkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ+PiB2YXJpYW50RWxlbWVudDsKICAgICBpZiAoaXM8
V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+KGNvcmVFbGVtZW50KSkKICAgICAgICAgdmFyaWFu
dEVsZW1lbnQgPSAmZG93bmNhc3Q8V2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ+KGNvcmVFbGVt
ZW50KTsKICAgICBlbHNlIGlmIChpczxXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Pihjb3Jl
RWxlbWVudCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441009</attachid>
            <date>2021-10-12 16:01:33 -0700</date>
            <delta_ts>2021-10-12 18:40:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231629-20211012170132.patch</filename>
            <type>text/plain</type>
            <size>200528</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
OWYyNTZhODAyMzBjYmVjNWRkY2JjZWViODhhZDAzNTVkNzI5MjBmLi5jMWMwMGIwZTdjM2VlZjcy
MGY0MjJmNDE2Yzg2NTJmYWVlZTc5ZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMS0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBzdGQ6OnZhcmlhbnQgaW5zdGVhZCBvZiBXVEY6OlZh
cmlhbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTYyOQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICogYnl0
ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVDYWxsRE9NKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNwcDoKKyAg
ICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZlZhbHVlKToKKyAgICAgICAgKiBq
aXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJh
bmNoSWZUcnV0aHkpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRmFs
c2V5KToKKyAgICAgICAgKiBqaXQvU25pcHBldFJlZy5oOgorICAgICAgICAqIGpzYy5jcHA6Cisg
ICAgICAgICogcGFyc2VyL0xleGVyLmg6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxlRW52aXJv
bm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5oOgorICAgICAg
ICAqIHJ1bnRpbWUvQ2FjaGVQYXlsb2FkLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVQYXlsb2Fk
OjpDYWNoZVBheWxvYWQpOgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVQYXlsb2FkLmg6CisgICAg
ICAgICogcnVudGltZS9DYWNoZVVwZGF0ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSVNPODYwMS5j
cHA6CisgICAgICAgIChKU0M6OklTTzg2MDE6OnBhcnNlVGltZVpvbmVCcmFja2V0ZWRBbm5vdGF0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0lTTzg2MDEuaDoKKyAgICAgICAgKiB3YXNtL1dhc21M
TEludEdlbmVyYXRvci5jcHA6CisKIDIwMjEtMTAtMTIgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IHNwZWMtY29ycmVjdG5lc3Mgd2hlbiBpbmxpbmluZyBf
X3Byb3RvX18gaW50cmluc2ljIHVzaW5nIGdldF9ieV9pZF93aXRoX3RoaXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNDFmMzYw
Yjc1NjdlNmFjM2I3YWViNjZkMjlkZmIzN2QyNzA5MGFjNC4uODJjZWFlMzllODhjNTQwYmRkYTVi
YjQxMmE2Zjc3OTEzODVkMTRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xMiAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBz
dGQ6OnZhcmlhbnQgaW5zdGVhZCBvZiBXVEY6OlZhcmlhbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTYyOQorCisgICAgICAgIFJldmlld2VkIGJ5
IENocmlzIER1bWV6LgorCisgICAgICAgICogd3RmL0xpa2VseURlbnNlVW5zaWduZWRJbnRlZ2Vy
U2V0Lmg6CisgICAgICAgICogd3RmL1NtYWxsU2V0Lmg6CisgICAgICAgICogd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAoV1RGOjptYXBNb2RlVG9CYWNraW5nSXRlcmF0
b3IpOgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6CisgICAgICAgICog
d3RmL3RleHQvY29jb2EvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVUNvY29hLmNwcDoKKyAg
ICAgICAgKFdURjo6bWFwTW9kZVRvQmFja2luZ0l0ZXJhdG9yKToKKwogMjAyMS0xMC0xMiAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFN3aXRjaCBXVEY6OmJy
aWRnZV9jYXN0IHRvIHVzZSB0eXBlIHRyYWl0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNjZmM5NTBkNWU2ZTUz
NWU1MTQ1MjYyNjc4ZjlkNTJiYTQzMGE2OGIuLmE0MWM4NmZhMDU2NTI5YWFmMWVhNjQ1MDg0YjI4
YjI1NWY3ZmVjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjYgQEAKKzIwMjEtMTAtMTIgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ug
c3RkOjp2YXJpYW50IGluc3RlYWQgb2YgV1RGOjpWYXJpYW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2MjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBDaHJpcyBEdW1lei4KKworICAgICAgICAqIE1vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBi
b2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RP
TUNhY2hlRW5naW5lLmg6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmg6CisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9GZXRjaEhlYWRlcnMuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVx
dWVzdC5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNIb3N0Ojpz
aG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29u
dHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZWRpYUNvbnN0cmFp
bnRzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmg6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VTZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kLmg6
CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZl
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0Lmg6
CisgICAgICAgICogTW9kdWxlcy9wdXNoLWFwaS9QdXNoRXZlbnRJbml0Lmg6CisgICAgICAgICog
TW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0T3B0aW9ucy5oOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdM
TGF5ZXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgorICAgICAg
ICAqIGFuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJh
bWVFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmNyZWF0ZSk6
CisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0Lmg6CisgICAgICAgICogYW5pbWF0
aW9uL09wdGlvbmFsRWZmZWN0VGltaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvSURMVHlwZXMu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9CdWZmZXJTb3VyY2UuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1ZhbHVlSW5XcmFwcGVkT2JqZWN0Lmg6CisgICAgICAgICogY3J5cHRvL0NyeXB0
b0FsZ29yaXRobS5oOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9LZXkuaDoKKyAgICAgICAgKiBj
cnlwdG8vU3VidGxlQ3J5cHRvLmg6CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRv
QWxnb3JpdGhtRWNkc2FQYXJhbXMuaDoKKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1Ia2RmUGFyYW1zLmg6CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5
cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oOgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobVBia2RmMlBhcmFtcy5oOgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0
ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUhhc2hlZEltcG9ydFBhcmFtcy5oOgorICAgICAgICAqIGNy
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUhhc2hlZEtleUdlblBhcmFtcy5oOgor
ICAgICAgICAqIGNzcy9DU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmg6CisgICAgICAgICogY3NzL0RP
TU1hdHJpeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NYXRyaXg6OmNyZWF0ZSk6CisgICAg
ICAgICogY3NzL0RPTU1hdHJpeC5oOgorICAgICAgICAqIGNzcy9ET01NYXRyaXhSZWFkT25seS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01NYXRyaXhSZWFkT25seTo6Y3JlYXRlKToKKyAgICAg
ICAgKiBjc3MvRE9NTWF0cml4UmVhZE9ubHkuaDoKKyAgICAgICAgKiBjc3MvRm9udEZhY2UuaDoK
KyAgICAgICAgKiBjc3MvU3R5bGVSdWxlLmg6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmg6CisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyLmg6CisgICAg
ICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xs
SW50b1ZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YW5pbWF0ZSk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDoKKyAgICAgICAg
KiBkb20vTWVzc2FnZUV2ZW50Lmg6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Rl
eHRDaGVja2luZ0hlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdIZWxw
ZXI6OmZpbmRGaXJzdE1pc3NwZWxsZWRXb3JkT3JVbmdyYW1tYXRpY2FsUGhyYXNlIGNvbnN0KToK
KyAgICAgICAgKiBlZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5oOgorICAgICAgICAqIGVkaXRp
bmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBmaWxlYXBpL0Jsb2Iu
aDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVJlYWRlcjo6cmVzdWx0IGNvbnN0KToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIu
aDoKKyAgICAgICAgKiBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaDoKKyAgICAgICAgKiBodG1s
L0RPTUZvcm1EYXRhLmg6CisgICAgICAgICogaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQWxsQ29sbGVjdGlvbjo6bmFtZWRPckluZGV4ZWRJdGVtT3JJ
dGVtcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQWxsQ29sbGVjdGlvbjo6bmFtZWRJ
dGVtT3JJdGVtcyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5oOgor
ICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
b2N1bWVudDo6bmFtZWRJdGVtKToKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246Om5hbWVkSXRlbU9ySXRlbXMgY29uc3Qp
OgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaDoKKyAgICAgICAg
KiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVs
ZW1lbnQ6Om5hbWVkSXRlbSk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRp
b25zQ29sbGVjdGlvbi5oOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0ltYWdlQml0bWFwLmg6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52
YXMuaDoKKyAgICAgICAgKiBodG1sL1VSTFNlYXJjaFBhcmFtcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpVUkxTZWFyY2hQYXJhbXM6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9VUkxTZWFyY2hQ
YXJhbXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xBbnkuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTE11bHRpRHJhdy5oOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAg
ICAgKiBodG1sL3RyYWNrL1RyYWNrRXZlbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVEN1
ZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXMuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oOgorICAgICAgICAqIGxheW91dC9pbnRl
Z3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveC5oOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlv
bi9JbmxpbmVJdGVyYXRvckxpbmUuaDoKKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNMb2dnaW5n
Q2xpZW50Lmg6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oOgorICAgICAg
ICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaDoKKyAgICAgICAg
KiBwYWdlL1BlcmZvcm1hbmNlTWVhc3VyZU9wdGlvbnMuaDoKKyAgICAgICAgKiBwYWdlL1BlcmZv
cm1hbmNlVXNlclRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVVzZXJU
aW1pbmc6OmNvbnZlcnRNYXJrVG9UaW1lc3RhbXAgY29uc3QpOgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2VVc2VyVGltaW5nLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpmb3JFYWNoUGxhdGZvcm1TdHJpbmdPckJ1ZmZlciBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb1N0cmVhbURlc2NyaXB0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGluZ09wdGlv
bnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2NyaXB0aW9u
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbmxpbmVQYXRoRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXNvdXJjZUhlYXAuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYURldmljZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvRE5TLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0
YS5oOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxWYWx1ZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL3hyL1BsYXRmb3JtWFIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
Lmg6CisgICAgICAgICogdGVzdGluZy9UeXBlQ29udmVyc2lvbnMuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL1NoYXJlZFdvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXI6OlNo
YXJlZFdvcmtlcik6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXIuaDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaDoKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuaDoKKwogMjAyMS0xMC0xMiAgR2FicmllbCBOYXZhIE1hcmlubyAgPGduYXZhbWFy
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlQgaGl0IGluIHN1cnJvZ2F0ZVBhaXJBd2Fy
ZUluZGV4IGFuZCBzdXJyb2dhdGVQYWlyQXdhcmVTdGFydCBsYW1iZGFzIGZvciB0ZXh0IHdpdGgg
dW5wYWlyZWQgc3Vycm9nYXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0ODFjYTBiODc2Y2Q3ZGI5MmE2YmUyZWFj
YTZmZmNhNGQxYTNmOWY2Li44YTIwMTFjOTZiNjAyZTkzNWY1MjlkMWY4ZTMyNTEzZjEzOGYxMjZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDIxLTEwLTEyICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHN0ZDo6dmFyaWFudCBp
bnN0ZWFkIG9mIFdURjo6VmFyaWFudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXou
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmg6CisgICAgICAgICog
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgIChJUEM6OlZhcmlhbnRDb2Rl
cjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6VmFyaWFudENvZGVyOjpkZWNvZGUpOgorICAgICAg
ICAqIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50Lmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL01l
c3NhZ2VSZWNlaXZlUXVldWVNYXAuaDoKKyAgICAgICAgKiBTaGFyZWQvU2Vzc2lvblN0YXRlLmg6
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
QVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S01vY2tNZWRpYURldmljZS5jcHA6CisgICAgICAgIChXS0FkZE1vY2tNZWRpYURldmljZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmdXaXRoVVJMOnRpdGxl
Ondhcm5pbmc6ZGV0YWlsc1dpdGhMaW5rczpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAo
LVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIG1ha2VDcmVkZW50aWFsV2l0aENoYWxsZW5nZTpv
cmlnaW46b3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbCBnZXRBc3NlcnRpb25XaXRoQ2hhbGxlbmdlOm9yaWdpbjpvcHRpb25z
OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1Np
bXVsYXRlZElucHV0RGlzcGF0Y2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi9pb3MvV2ViQXV0b21hdGlvblNlc3Npb25JT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5Ym9hcmRJbnRl
cmFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRp
b25TZXNzaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
cGxhdGZvcm1TaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dLU2FmZUJyb3dzaW5nV2FybmluZy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1NhZmVCcm93c2luZ1dhcm5pbmcubW06CisgICAgICAg
ICgtW1dLU2FmZUJyb3dzaW5nV2FybmluZyBpbml0V2l0aEZyYW1lOnNhZmVCcm93c2luZ1dhcm5p
bmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnQ6OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vz
c1Rocm90dGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29yZTo6Z2V0UnBJZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvcmU6OmdldFVzZXJOYW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldENsaWVudERhdGFUeXBlKToKKyAgICAgICAgKFdl
YktpdDo6Z2V0VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURl
Y2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpzaG93U2FmZUJyb3dzaW5nV2FybmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzaG93U2FmZUJyb3dzaW5n
V2FybmluZyk6CisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhuQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaDoK
KwogMjAyMS0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlZHVjZSB1c2Ugb2YgV2ViQ29yZSBzdHJ1Y3R1cmVzIGluIGFkYXR0cmli
dXRpb25kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMDAzZjJkMTRiMTQwZjUxNjE1
NmY0NDI1OGFhN2EzZDJkNjA2NmQ4Mi4uYzBjMjU2MWE3OThjZTBlOTQ0NWNkMmQzZjE5ZWFlN2E4
NzdlYmRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIxLTEwLTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgVXNlIHN0ZDo6dmFyaWFudCBpbnN0ZWFkIG9mIFdURjo6VmFyaWFudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjI5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBET00vRE9NSFRNTFNlbGVj
dEVsZW1lbnQubW06CisgICAgICAgICgtW0RPTUhUTUxTZWxlY3RFbGVtZW50IGFkZDpiZWZvcmU6
XSk6CisKIDIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbGxvdyBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFdlYWtQdHIgd2l0aG91dCBtYWtlV2Vh
a1B0cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0
dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAppbmRleCAyNzU0YjMxZWUxNmIz
ODhjZjE3MTU5YTM2NjZlMGJiZTc1MDJjYzdiLi5mY2VjN2QxZWRhMWViMDQzMzA4OWQ2ZWQyYjQx
ZTU4ZDdlNDVhYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmgKQEAgLTg5LDcg
Kzg5LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgdXNpbmcgTm9kZSA9IFZh
cmlhbnQ8U3RydWN0dXJlVHJhbnNpdGlvblN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQs
IEFkYXB0aXZlVmFsdWVTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50PjsKKyAgICB1c2lu
ZyBOb2RlID0gc3RkOjp2YXJpYW50PFN0cnVjdHVyZVRyYW5zaXRpb25TdHJ1Y3R1cmVTdHViQ2xl
YXJpbmdXYXRjaHBvaW50LCBBZGFwdGl2ZVZhbHVlU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hw
b2ludD47CiAKICAgICBOb2RlJiBhZGRXYXRjaHBvaW50KGNvbnN0IE9iamVjdFByb3BlcnR5Q29u
ZGl0aW9uJiBrZXkpOwogICAgIApAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgU3Ry
dWN0dXJlU3R1YkluZm8qIG1fc3R1YkluZm87CiAgICAgLy8gRklYTUU6IHVzZSBsZXNzIG1lbW9y
eSBmb3IgdGhlIGVudHJpZXMgaW4gdGhpcyBCYWc6CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjM4MAotICAgIEJhZzxXVEY6OlZhcmlhbnQ8U3RydWN0
dXJlVHJhbnNpdGlvblN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQsIEFkYXB0aXZlVmFs
dWVTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50Pj4gbV93YXRjaHBvaW50czsKKyAgICBC
YWc8c3RkOjp2YXJpYW50PFN0cnVjdHVyZVRyYW5zaXRpb25TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdX
YXRjaHBvaW50LCBBZGFwdGl2ZVZhbHVlU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludD4+
IG1fd2F0Y2hwb2ludHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggNDc5NjM4NDQ5NDRh
MGI3OWVhMzQ2ODVlZDVlNWVhZDM1OTFhMTA0ZC4uMjVmNmFjYTY3YzQ4ZTcyZmI5NjRiMzdmM2M3
MGE5Y2VlMTQzYmIzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKQEAgLTEwNTU1LDcgKzEwNTU1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUNhbGxET00oTm9kZSogbm9kZSkKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
aGF2ZSBhIHdheSB0byBjYWxsIGZ1bmN0aW9ucyB3aXRoIHRoZSB2ZWN0b3Igb2YgcmVnaXN0ZXJz
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMwOTkK
LSAgICB1c2luZyBPcGVyYW5kVmFyaWFudCA9IFZhcmlhbnQ8U3BlY3VsYXRlQ2VsbE9wZXJhbmQs
IFNwZWN1bGF0ZUludDMyT3BlcmFuZCwgU3BlY3VsYXRlQm9vbGVhbk9wZXJhbmQ+OworICAgIHVz
aW5nIE9wZXJhbmRWYXJpYW50ID0gc3RkOjp2YXJpYW50PFNwZWN1bGF0ZUNlbGxPcGVyYW5kLCBT
cGVjdWxhdGVJbnQzMk9wZXJhbmQsIFNwZWN1bGF0ZUJvb2xlYW5PcGVyYW5kPjsKICAgICBWZWN0
b3I8T3BlcmFuZFZhcmlhbnQsIEpTQ19ET01KSVRfU0lHTkFUVVJFX01BWF9BUkdVTUVOVFNfSU5D
TFVESU5HX1RISVM+IG9wZXJhbmRzOwogICAgIFZlY3RvcjxHUFJSZWcsIEpTQ19ET01KSVRfU0lH
TkFUVVJFX01BWF9BUkdVTUVOVFNfSU5DTFVESU5HX1RISVM+IHJlZ3M7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCAzYzVmM2JkOTBhZTk2
YzcyNDY1ODljODNlNjkzMGE0M2QxMTAwMzlhLi40N2RkZGVjMDIwZDI3MjNiODQ5NmZhY2IwNWQ2
YjViNmY0ZjUwNTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuY3BwCkBAIC04OTgsNyArODk4LDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRD
b252ZXJ0VmFsdWVUb0Jvb2xlYW4oVk0mIHZtLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmUKICAg
ICBkb25lLmxpbmsodGhpcyk7CiB9CiAKLUFzc2VtYmx5SGVscGVyczo6SnVtcExpc3QgQXNzZW1i
bHlIZWxwZXJzOjpicmFuY2hJZlZhbHVlKFZNJiB2bSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJl
ZyBzY3JhdGNoLCBHUFJSZWcgc2NyYXRjaElmU2hvdWxkQ2hlY2tNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkLCBGUFJSZWcgdmFsdWVBc0ZQUiwgRlBSUmVnIHRlbXBGUFIsIGJvb2wgc2hvdWxkQ2hlY2tN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkLCBWYXJpYW50PEpTR2xvYmFsT2JqZWN0KiwgR1BSUmVnPiBn
bG9iYWxPYmplY3QsIGJvb2wgaW52ZXJ0KQorQXNzZW1ibHlIZWxwZXJzOjpKdW1wTGlzdCBBc3Nl
bWJseUhlbHBlcnM6OmJyYW5jaElmVmFsdWUoVk0mIHZtLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BS
UmVnIHNjcmF0Y2gsIEdQUlJlZyBzY3JhdGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQsIEZQUlJlZyB2YWx1ZUFzRlBSLCBGUFJSZWcgdGVtcEZQUiwgYm9vbCBzaG91bGRDaGVj
a01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHN0ZDo6dmFyaWFudDxKU0dsb2JhbE9iamVjdCosIEdQ
UlJlZz4gZ2xvYmFsT2JqZWN0LCBib29sIGludmVydCkKIHsKICAgICAvLyBJbXBsZW1lbnRzIHRo
ZSBmb2xsb3dpbmcgY29udHJvbCBmbG93IHN0cnVjdHVyZToKICAgICAvLyBpZiAodmFsdWUgaXMg
Y2VsbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5k
ZXggYjI4MzhjYmZmZDBmNWI3NGQ0M2MxNTMzM2Q1ZTQxNWUxODBjZDUzMC4uOGZlODljYWI3YzA2
Y2Q2YzhhOTcxZGZjNGVlYmUzYWVlNzFlZGMxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xODAxLDEyICsxODAxLDEyIEBAIHB1YmxpYzoKICAg
ICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgQWRkcmVzcyhyZXN1bHRHUFIs
IEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSkpOwogICAgIH0KIAotICAgIEp1bXBMaXN0IGJy
YW5jaElmVmFsdWUoVk0mLCBKU1ZhbHVlUmVncywgR1BSUmVnIHNjcmF0Y2gsIEdQUlJlZyBzY3Jh
dGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIEZQUlJlZywgRlBSUmVnLCBi
b29sIHNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgVmFyaWFudDxKU0dsb2JhbE9i
amVjdCosIEdQUlJlZz4sIGJvb2wgbmVnYXRlUmVzdWx0KTsKLSAgICBKdW1wTGlzdCBicmFuY2hJ
ZlRydXRoeShWTSYgdm0sIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgR1BSUmVn
IHNjcmF0Y2hJZlNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgRlBSUmVnIHNjcmF0
Y2hGUFIwLCBGUFJSZWcgc2NyYXRjaEZQUjEsIGJvb2wgc2hvdWxkQ2hlY2tNYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkLCBWYXJpYW50PEpTR2xvYmFsT2JqZWN0KiwgR1BSUmVnPiBnbG9iYWxPYmplY3Qp
CisgICAgSnVtcExpc3QgYnJhbmNoSWZWYWx1ZShWTSYsIEpTVmFsdWVSZWdzLCBHUFJSZWcgc2Ny
YXRjaCwgR1BSUmVnIHNjcmF0Y2hJZlNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwg
RlBSUmVnLCBGUFJSZWcsIGJvb2wgc2hvdWxkQ2hlY2tNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCBz
dGQ6OnZhcmlhbnQ8SlNHbG9iYWxPYmplY3QqLCBHUFJSZWc+LCBib29sIG5lZ2F0ZVJlc3VsdCk7
CisgICAgSnVtcExpc3QgYnJhbmNoSWZUcnV0aHkoVk0mIHZtLCBKU1ZhbHVlUmVncyB2YWx1ZSwg
R1BSUmVnIHNjcmF0Y2gsIEdQUlJlZyBzY3JhdGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNV
bmRlZmluZWQsIEZQUlJlZyBzY3JhdGNoRlBSMCwgRlBSUmVnIHNjcmF0Y2hGUFIxLCBib29sIHNo
b3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgc3RkOjp2YXJpYW50PEpTR2xvYmFsT2Jq
ZWN0KiwgR1BSUmVnPiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICByZXR1cm4gYnJhbmNo
SWZWYWx1ZSh2bSwgdmFsdWUsIHNjcmF0Y2gsIHNjcmF0Y2hJZlNob3VsZENoZWNrTWFzcXVlcmFk
ZXNBc1VuZGVmaW5lZCwgc2NyYXRjaEZQUjAsIHNjcmF0Y2hGUFIxLCBzaG91bGRDaGVja01hc3F1
ZXJhZGVzQXNVbmRlZmluZWQsIGdsb2JhbE9iamVjdCwgZmFsc2UpOwogICAgIH0KLSAgICBKdW1w
TGlzdCBicmFuY2hJZkZhbHNleShWTSYgdm0sIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2Ny
YXRjaCwgR1BSUmVnIHNjcmF0Y2hJZlNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwg
RlBSUmVnIHNjcmF0Y2hGUFIwLCBGUFJSZWcgc2NyYXRjaEZQUjEsIGJvb2wgc2hvdWxkQ2hlY2tN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkLCBWYXJpYW50PEpTR2xvYmFsT2JqZWN0KiwgR1BSUmVnPiBn
bG9iYWxPYmplY3QpCisgICAgSnVtcExpc3QgYnJhbmNoSWZGYWxzZXkoVk0mIHZtLCBKU1ZhbHVl
UmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gsIEdQUlJlZyBzY3JhdGNoSWZTaG91bGRDaGVja01h
c3F1ZXJhZGVzQXNVbmRlZmluZWQsIEZQUlJlZyBzY3JhdGNoRlBSMCwgRlBSUmVnIHNjcmF0Y2hG
UFIxLCBib29sIHNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgc3RkOjp2YXJpYW50
PEpTR2xvYmFsT2JqZWN0KiwgR1BSUmVnPiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYnJhbmNoSWZWYWx1ZSh2bSwgdmFsdWUsIHNjcmF0Y2gsIHNjcmF0Y2hJZlNob3VsZENo
ZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgc2NyYXRjaEZQUjAsIHNjcmF0Y2hGUFIxLCBzaG91
bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIGdsb2JhbE9iamVjdCwgdHJ1ZSk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TbmlwcGV0UmVnLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NuaXBwZXRSZWcuaAppbmRleCAyNGEwYzBmZmQ4ODQz
ZjM4N2NlYzU3YTJkNDQzZGMwMGUwNjUzYTdjLi44MjhiOTdhYzExMTE2ZGU4MDAyYTUwN2MxMDRm
YjMxYjkxNDk0ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NuaXBw
ZXRSZWcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NuaXBwZXRSZWcuaApAQCAt
ODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFZhcmlhbnQ8R1BS
UmVnLCBGUFJSZWcsIEpTVmFsdWVSZWdzPiBtX3ZhcmlhbnQ7CisgICAgc3RkOjp2YXJpYW50PEdQ
UlJlZywgRlBSUmVnLCBKU1ZhbHVlUmVncz4gbV92YXJpYW50OwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcAppbmRleCAzNTBlOGY5NWI4ZWRkYTYyMGRkNGVhY2Q3ZTEyYjU5MzJkODFmMWFmLi45
OTE3Nzk2OThlMTIzY2U5ZjA3N2Q0ZmYwYzUwYTkwZjhiY2Y4ZjQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcApAQCAtMjA5LDkgKzIwOSw5IEBAIHN0YXRpYyB2b2lkIGNoZWNrRXhjZXB0aW9uKEdsb2Jh
bE9iamVjdCosIGJvb2wgaXNMYXN0RmlsZSwgYm9vbCBoYXNFeGNlcHRpb24sIEpTCiBjbGFzcyBN
ZXNzYWdlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPE1lc3NhZ2U+IHsKIHB1YmxpYzoK
ICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgdXNpbmcgQ29udGVudCA9IFZhcmlhbnQ8QXJy
YXlCdWZmZXJDb250ZW50cywgUmVmPFdhc206Ok1lbW9yeUhhbmRsZT4+OworICAgIHVzaW5nIENv
bnRlbnQgPSBzdGQ6OnZhcmlhbnQ8QXJyYXlCdWZmZXJDb250ZW50cywgUmVmPFdhc206Ok1lbW9y
eUhhbmRsZT4+OwogI2Vsc2UKLSAgICB1c2luZyBDb250ZW50ID0gVmFyaWFudDxBcnJheUJ1ZmZl
ckNvbnRlbnRzPjsKKyAgICB1c2luZyBDb250ZW50ID0gc3RkOjp2YXJpYW50PEFycmF5QnVmZmVy
Q29udGVudHM+OwogI2VuZGlmCiAgICAgTWVzc2FnZShDb250ZW50JiYsIGludDMyX3QpOwogICAg
IH5NZXNzYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xl
eGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKaW5kZXggZTBlNzZi
N2JmZDMwZDE1NGFjZmU2YjlhZDJjZGMyMmQyN2I0YmEyYy4uMzA5ZGQ0YjJjNTdkMTA5ZjJlYTRl
ZTBiYmRjN2E2OGU3YTg0MTJkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaApA
QCAtMTgwLDcgKzE4MCw3IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPGJvb2wgc2hvdWxkQnVp
bGRTdHJpbmdzPiBBTFdBWVNfSU5MSU5FIFN0cmluZ1BhcnNlUmVzdWx0IHBhcnNlQ29tcGxleEVz
Y2FwZShib29sIHN0cmljdE1vZGUpOwogICAgIEFMV0FZU19JTkxJTkUgU3RyaW5nUGFyc2VSZXN1
bHQgcGFyc2VUZW1wbGF0ZUxpdGVyYWwoSlNUb2tlbkRhdGEqLCBSYXdTdHJpbmdzQnVpbGRNb2Rl
KTsKICAgICAKLSAgICB1c2luZyBOdW1iZXJQYXJzZVJlc3VsdCA9IFZhcmlhbnQ8ZG91YmxlLCBj
b25zdCBJZGVudGlmaWVyKj47CisgICAgdXNpbmcgTnVtYmVyUGFyc2VSZXN1bHQgPSBzdGQ6OnZh
cmlhbnQ8ZG91YmxlLCBjb25zdCBJZGVudGlmaWVyKj47CiAgICAgQUxXQVlTX0lOTElORSBzdGQ6
Om9wdGlvbmFsPE51bWJlclBhcnNlUmVzdWx0PiBwYXJzZUhleCgpOwogICAgIEFMV0FZU19JTkxJ
TkUgc3RkOjpvcHRpb25hbDxOdW1iZXJQYXJzZVJlc3VsdD4gcGFyc2VCaW5hcnkoKTsKICAgICBB
TFdBWVNfSU5MSU5FIHN0ZDo6b3B0aW9uYWw8TnVtYmVyUGFyc2VSZXN1bHQ+IHBhcnNlT2N0YWwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZp
cm9ubWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25t
ZW50LmgKaW5kZXggMjk2ODkwNzAyNWU1YTM3ODdjYTc0ZGM5MGVjZWY1ZjhkNzhjMTA0Zi4uYjQ0
N2UzNzIzNjk3NmQxZGRlNmUyNWFhYjJlNTJjZTFlODdiYWE5OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKQEAgLTM0Myw3ICsz
NDMsNyBAQCBjbGFzcyBDb21wYWN0VERaRW52aXJvbm1lbnQgewogCiAgICAgdXNpbmcgQ29tcGFj
dCA9IFZlY3RvcjxQYWNrZWRSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+PjsKICAgICB1c2luZyBJ
bmZsYXRlZCA9IFREWkVudmlyb25tZW50OwotICAgIHVzaW5nIFZhcmlhYmxlcyA9IFZhcmlhbnQ8
Q29tcGFjdCwgSW5mbGF0ZWQ+OworICAgIHVzaW5nIFZhcmlhYmxlcyA9IHN0ZDo6dmFyaWFudDxD
b21wYWN0LCBJbmZsYXRlZD47CiAKIHB1YmxpYzoKICAgICBDb21wYWN0VERaRW52aXJvbm1lbnQo
Y29uc3QgVERaRW52aXJvbm1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0J5dGVjb2RlQ2FjaGVFcnJvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQnl0ZWNvZGVDYWNoZUVycm9yLmgKaW5kZXggNDIyNjFkNDc3Mjg5YmZjMDIwOWJjN2M0
NzEzNTQxYWI3YmI1NGNkYS4uMGU5MzJjODg1MWM2OTk0YjIxZGU3Nzc3YjU0NmE4NmNlMzYyZmMz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnl0ZWNvZGVDYWNo
ZUVycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnl0ZWNvZGVDYWNo
ZUVycm9yLmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IFN0cmluZyBtZXNzYWdlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgVmFyaWFudDxQYXJzZXJF
cnJvciwgU3RhbmRhcmRFcnJvciwgV3JpdGVFcnJvcj4gbV9lcnJvcjsKKyAgICBzdGQ6OnZhcmlh
bnQ8UGFyc2VyRXJyb3IsIFN0YW5kYXJkRXJyb3IsIFdyaXRlRXJyb3I+IG1fZXJyb3I7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NhY2hlUGF5bG9hZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
YWNoZVBheWxvYWQuY3BwCmluZGV4IDI3ZDJiN2I3NDFhN2RmNWZhNjc4OWQ3MmU4MjIxZGY0ODgz
Yjc1NzYuLjkyYjgwYTMxOGZmNjUzNmM3MjJkYzVlOTJiNWMwYTljNTkxN2E2YjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVQYXlsb2FkLmNwcApAQCAtNDksNyAr
NDksNyBAQCBDYWNoZVBheWxvYWQ6OkNhY2hlUGF5bG9hZChDYWNoZVBheWxvYWQmJiBvdGhlcikK
ICAgICBvdGhlci5tX2RhdGEgPSBzdGQ6OnBhaXIgeyBudWxscHRyLCAwIH07CiB9CiAKLUNhY2hl
UGF5bG9hZDo6Q2FjaGVQYXlsb2FkKFZhcmlhbnQ8RmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEs
IHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+LCBzaXplX3Q+PiYmIGRhdGEp
CitDYWNoZVBheWxvYWQ6OkNhY2hlUGF5bG9hZChzdGQ6OnZhcmlhbnQ8RmlsZVN5c3RlbTo6TWFw
cGVkRmlsZURhdGEsIHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhfdCwgVk1NYWxsb2M+LCBzaXpl
X3Q+PiYmIGRhdGEpCiAgICAgOiBtX2RhdGEoV1RGTW92ZShkYXRhKSkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlUGF5bG9hZC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVQYXlsb2FkLmgKaW5kZXggYmVmOGQ3MDY1MjJh
ZjZhZTAyNDllODY1ZmUzMDM5NDYxZTYwOTZmYy4uYjg0N2E2ZjU3MjZiY2FhNTZjZWNiZDlkNzY5
YzU1ZDQwNDQ0M2Y3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q2FjaGVQYXlsb2FkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVQ
YXlsb2FkLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHNpemVfdCBzaXplKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgQ2FjaGVQYXlsb2FkKFZhcmlh
bnQ8RmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEsIHN0ZDo6cGFpcjxNYWxsb2NQdHI8dWludDhf
dCwgVk1NYWxsb2M+LCBzaXplX3Q+PiYmKTsKKyAgICBDYWNoZVBheWxvYWQoc3RkOjp2YXJpYW50
PEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVEYXRhLCBzdGQ6OnBhaXI8TWFsbG9jUHRyPHVpbnQ4X3Qs
IFZNTWFsbG9jPiwgc2l6ZV90Pj4mJik7CiAKLSAgICBWYXJpYW50PEZpbGVTeXN0ZW06Ok1hcHBl
ZEZpbGVEYXRhLCBzdGQ6OnBhaXI8TWFsbG9jUHRyPHVpbnQ4X3QsIFZNTWFsbG9jPiwgc2l6ZV90
Pj4gbV9kYXRhOworICAgIHN0ZDo6dmFyaWFudDxGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSwg
c3RkOjpwYWlyPE1hbGxvY1B0cjx1aW50OF90LCBWTU1hbGxvYz4sIHNpemVfdD4+IG1fZGF0YTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ2FjaGVVcGRhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NhY2hlVXBkYXRlLmgKaW5kZXggMmM4ODI4MzczMmU4N2E1Mzg1NTkzYTliYjcwNTQ0MTU4N2Ew
MzI2ZS4uYzk5YmIzMGY1NWMxOWZiZDJiN2I4MjU4YjVlNDk3ZDdlN2JmYTc0NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVVcGRhdGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZVVwZGF0ZS5oCkBAIC01Nyw3ICs1Nyw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBGdW5jdGlvblVwZGF0ZSYgYXNGdW5jdGlvbigpIGNvbnN0Owog
CiBwcml2YXRlOgotICAgIFZhcmlhbnQ8R2xvYmFsVXBkYXRlLCBGdW5jdGlvblVwZGF0ZT4gbV91
cGRhdGU7CisgICAgc3RkOjp2YXJpYW50PEdsb2JhbFVwZGF0ZSwgRnVuY3Rpb25VcGRhdGU+IG1f
dXBkYXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0lTTzg2MDEuY3BwCmluZGV4IGU3MmJmNzI3N2IyMmYzNzY1Mjk2NGVmNDQzNjYxMGU5
NjM0MzFkOWMuLjU5YjFjN2VmNWIzOTNkMmRhNDllNDI2Njk5NDQwMzY2NzY4YjlhNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuY3BwCkBAIC00MzAsNyArNDMwLDcg
QEAgc3RkOjpvcHRpb25hbDxpbnQ2NF90PiBwYXJzZVRpbWVab25lTnVtZXJpY1VUQ09mZnNldChT
dHJpbmdWaWV3IHN0cmluZykKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4K
LXN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8VmVjdG9yPExDaGFyPiwgaW50NjRfdD4+IHBh
cnNlVGltZVpvbmVCcmFja2V0ZWRBbm5vdGF0aW9uKFN0cmluZ1BhcnNpbmdCdWZmZXI8Q2hhcmFj
dGVyVHlwZT4mIGJ1ZmZlcikKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxWZWN0
b3I8TENoYXI+LCBpbnQ2NF90Pj4gcGFyc2VUaW1lWm9uZUJyYWNrZXRlZEFubm90YXRpb24oU3Ry
aW5nUGFyc2luZ0J1ZmZlcjxDaGFyYWN0ZXJUeXBlPiYgYnVmZmVyKQogewogICAgIC8vIGh0dHBz
Oi8vdGMzOS5lcy9wcm9wb3NhbC10ZW1wb3JhbC8jcHJvZC1UaW1lWm9uZUJyYWNrZXRlZEFubm90
YXRpb24KICAgICAvLyBUaW1lWm9uZUJyYWNrZXRlZEFubm90YXRpb24gOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSVNPODYwMS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSVNPODYwMS5oCmluZGV4IGU4ZmUyODIxZWY4NjdiMjk2NDhhMmM0MjBi
NDMxMDZhZjM0MTljZGMuLmM3NDI0YWU5MzFlZmUxYjUwZGMwYWNkMjJiZjIxYjk5NzA5NTZhNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lTTzg2MDEuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JU084NjAxLmgKQEAgLTE0NiwxNCArMTQ2
LDE0IEBAIHByaXZhdGU6CiAgICAgdWludDhfdCBtX2RheSB7IDEgfTsKIH07CiAKLXVzaW5nIFRp
bWVab25lID0gVmFyaWFudDxUaW1lWm9uZUlELCBpbnQ2NF90PjsKK3VzaW5nIFRpbWVab25lID0g
c3RkOjp2YXJpYW50PFRpbWVab25lSUQsIGludDY0X3Q+OwogCiAvLyBodHRwczovL3RjMzkuZXMv
cHJvcG9zYWwtdGVtcG9yYWwvI3NlYy10ZW1wb3JhbC1wYXJzZXRlbXBvcmFsdGltZXpvbmVzdHJp
bmcKIC8vIFJlY29yZCB7IFtbWl1dLCBbW09mZnNldFN0cmluZ11dLCBbW05hbWVdXSB9CiBzdHJ1
Y3QgVGltZVpvbmVSZWNvcmQgewogICAgIGJvb2wgbV96IHsgZmFsc2UgfTsKICAgICBzdGQ6Om9w
dGlvbmFsPGludDY0X3Q+IG1fb2Zmc2V0OwotICAgIFZhcmlhbnQ8VmVjdG9yPExDaGFyPiwgaW50
NjRfdD4gbV9uYW1lT3JPZmZzZXQ7CisgICAgc3RkOjp2YXJpYW50PFZlY3RvcjxMQ2hhcj4sIGlu
dDY0X3Q+IG1fbmFtZU9yT2Zmc2V0OwogfTsKIAogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2Fs
LXRlbXBvcmFsLyNzdXAtaXN2YWxpZHRpbWV6b25lbmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggYjkzOGZkNTdhNWEyZTRm
OGMyYzRlYzhkMzA2ZDAyYjAzZDQ0ODhlMi4uNzA0OWFiNDgyNjhhZWZhYzE3YmYxOTZkNGYxNTI2
MWY1YzViYjU5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxM
SW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJ
bnRHZW5lcmF0b3IuY3BwCkBAIC04MCw4ICs4MCw4IEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWdu
ZWQgbV90cnlEZXB0aDsKICAgICB9OwogCi0gICAgc3RydWN0IENvbnRyb2xUeXBlIDogcHVibGlj
IFZhcmlhbnQ8Q29udHJvbExvb3AsIENvbnRyb2xUb3BMZXZlbCwgQ29udHJvbEJsb2NrLCBDb250
cm9sSWYsIENvbnRyb2xUcnksIENvbnRyb2xDYXRjaD4gewotICAgICAgICB1c2luZyBCYXNlID0g
VmFyaWFudDxDb250cm9sTG9vcCwgQ29udHJvbFRvcExldmVsLCBDb250cm9sQmxvY2ssIENvbnRy
b2xJZiwgQ29udHJvbFRyeSwgQ29udHJvbENhdGNoPjsKKyAgICBzdHJ1Y3QgQ29udHJvbFR5cGUg
OiBwdWJsaWMgc3RkOjp2YXJpYW50PENvbnRyb2xMb29wLCBDb250cm9sVG9wTGV2ZWwsIENvbnRy
b2xCbG9jaywgQ29udHJvbElmLCBDb250cm9sVHJ5LCBDb250cm9sQ2F0Y2g+IHsKKyAgICAgICAg
dXNpbmcgQmFzZSA9IHN0ZDo6dmFyaWFudDxDb250cm9sTG9vcCwgQ29udHJvbFRvcExldmVsLCBD
b250cm9sQmxvY2ssIENvbnRyb2xJZiwgQ29udHJvbFRyeSwgQ29udHJvbENhdGNoPjsKIAogICAg
ICAgICBDb250cm9sVHlwZSgpCiAgICAgICAgICAgICA6IEJhc2UoQ29udHJvbEJsb2NrIHsgfSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xpa2VseURlbnNlVW5zaWduZWRJbnRlZ2VyU2V0
LmggYi9Tb3VyY2UvV1RGL3d0Zi9MaWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNldC5oCmluZGV4
IDc0NDJhNDMxYTM4OWRhYTJkMjBmMDUyNjdjZDkxNGVjMGUyZWE2YmEuLjEzOTgyZTUwNWQ3MDlh
OWQ3MmY2NzE4MWU2MWQyMmM4ZjAxZWIxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xp
a2VseURlbnNlVW5zaWduZWRJbnRlZ2VyU2V0LmgKKysrIGIvU291cmNlL1dURi93dGYvTGlrZWx5
RGVuc2VVbnNpZ25lZEludGVnZXJTZXQuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV1RG
IHsKIAogREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoTGlrZWx5RGVuc2VV
bnNpZ25lZEludGVnZXJTZXQpOwogCi0vLyBUaGlzIGlzIGVmZmVjdGl2ZWx5IGEgVmFyaWFudDxI
YXNoU2V0LCBQYWlyPEJpdFZlY3RvciwgSW5kZXhUeXBlPj4KKy8vIFRoaXMgaXMgZWZmZWN0aXZl
bHkgYSBzdGQ6OnZhcmlhbnQ8SGFzaFNldCwgUGFpcjxCaXRWZWN0b3IsIEluZGV4VHlwZT4+CiAv
LyBJZiBpdCBpcyBpbiBCaXRWZWN0b3IgbW9kZSwgaXQga2VlcHMgdHJhY2sgb2YgdGhlIG1pbmlt
dW0gdmFsdWUgaW4gdGhlIHNldCwgYW5kIGhhcyB0aGUgYml0VmVjdG9yIHNoaWZ0ZWQgYnkgdGhl
IHNhbWUgYW1vdW50LgogLy8gU28gZm9yIGV4YW1wbGUgezQwMDAsIDQwMDIsIDQwMDN9IHdvdWxk
IGJlIHJlcHJlc2VudGVkIGFzIHRoZSBiaXRWZWN0b3IgMTEwMSB3aXRoIGEgbV9taW4gb2YgNDAw
MC4KIC8vIEl0IHNoaWZ0cyBiZXR3ZWVuIHRoZSB0d28gbW9kZXMgd2hlbmV2ZXIgdGhhdCB3b3Vs
ZCBhdCBsZWFzdCBoYWx2ZSBpdHMgbWVtb3J5IHVzYWdlLiBTbyBpdCB3aWxsIG5ldmVyIHVzZSBt
b3JlIHRoYW4gdHdpY2UgdGhlIG9wdGltYWwgYW1vdW50IG9mIG1lbW9yeSwgYW5kIHlldCBzaG91
bGQgbm90IHBpbmctcG9uZyBiZXR3ZWVuIHRoZSB0d28gbW9kZXMgdG9vIG9mdGVuLgpAQCAtMjE5
LDcgKzIxOSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
V1RGOjpWYXJpYW50PEJpdFZlY3Rvcjo6aXRlcmF0b3IsIHR5cGVuYW1lIFNldDo6aXRlcmF0b3I+
IG1fdW5kZXJseWluZzsKKyAgICAgICAgc3RkOjp2YXJpYW50PEJpdFZlY3Rvcjo6aXRlcmF0b3Is
IHR5cGVuYW1lIFNldDo6aXRlcmF0b3I+IG1fdW5kZXJseWluZzsKICAgICAgICAgSW5kZXhUeXBl
IG1fc2hpZnQ7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU21hbGxTZXQu
aCBiL1NvdXJjZS9XVEYvd3RmL1NtYWxsU2V0LmgKaW5kZXggOWRmMTliYzU4NGRhMGU3YWEzYzNk
MzU4NmJlOTAyMDUwYTQ2OWYyMS4uYzBlNGZmNjU3YzdkZWIyNjMzOTBkZWNhNTM5OTc3MGE4OWQ2
NGEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU21hbGxTZXQuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9TbWFsbFNldC5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXVEYgewogCiBE
RUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihTbWFsbFNldCk7CiAKLS8vIEZ1
bmN0aW9uYWxseSwgdGhpcyBjbGFzcyBpcyB2ZXJ5IHNpbWlsYXIgdG8gVmFyaWFudDxWZWN0b3I8
VCwgU21hbGxBcnJheVNpemU+LCBIYXNoU2V0PFQ+PgorLy8gRnVuY3Rpb25hbGx5LCB0aGlzIGNs
YXNzIGlzIHZlcnkgc2ltaWxhciB0byBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFQsIFNtYWxsQXJyYXlT
aXplPiwgSGFzaFNldDxUPj4KIC8vIEl0IGlzIG9wdGltaXplZCBwcmltYXJpbHkgZm9yIHNwYWNl
LCBidXQgaXMgYWxzbyBxdWl0ZSBmYXN0CiAvLyBJdHMgbWFpbiBsaW1pdGF0aW9uIGlzIHRoYXQg
aXQgaGFzIG5vIHdheSB0byByZW1vdmUgZWxlbWVudHMgb25jZSB0aGV5IGhhdmUgYmVlbiBhZGRl
ZCB0byBpdAogLy8gQWxzbywgaW5zdGVhZCBvZiBiZWluZyBmdWxseSBwYXJhbWV0ZXJpemVkIGJ5
IGEgSGFzaFRyYWl0IHBhcmFtZXRlciwgaXQgYWx3YXlzIHVzZXMgLTEgKGFsbCBvbmVzKSBhcyBp
dHMgZW1wdHkgdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAK
aW5kZXggYzJjNWIyNjM4ODY3MjM1Njg5Mjk0MWZjNmMzYzc0MmM5ZDM2ODBiOC4uZjI2ZjJkOTEx
YzkwODIyZThjMzYzOGJhZGYyYjYyNTYwNzc1OGZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgVGV4dEJyZWFrSXRlcmF0b3JD
YWNoZSYgVGV4dEJyZWFrSXRlcmF0b3JDYWNoZTo6c2luZ2xldG9uKCkKIAogI2lmICFQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQogCi1zdGF0aWMgVmFyaWFudDxUZXh0QnJl
YWtJdGVyYXRvcklDVSwgVGV4dEJyZWFrSXRlcmF0b3JQbGF0Zm9ybT4gbWFwTW9kZVRvQmFja2lu
Z0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nLCBUZXh0QnJlYWtJdGVyYXRvcjo6TW9kZSBtb2Rl
LCBjb25zdCBBdG9tU3RyaW5nJiBsb2NhbGUpCitzdGF0aWMgc3RkOjp2YXJpYW50PFRleHRCcmVh
a0l0ZXJhdG9ySUNVLCBUZXh0QnJlYWtJdGVyYXRvclBsYXRmb3JtPiBtYXBNb2RlVG9CYWNraW5n
SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcsIFRleHRCcmVha0l0ZXJhdG9yOjpNb2RlIG1vZGUs
IGNvbnN0IEF0b21TdHJpbmcmIGxvY2FsZSkKIHsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBj
YXNlIFRleHRCcmVha0l0ZXJhdG9yOjpNb2RlOjpMaW5lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5oCmluZGV4IGQwMDZhOGY2ZGY1OTA5ZjI0OGVmYWM0OTZhNjJiNTE4ZTMy
MzJlYmEuLjNmNGIzM2ZkYTRkOTVlYTc1MjZlM2MyZWEwODJjMDlmZjA3ZDRmNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwcml2
YXRlOgogICAgICAgICByZXR1cm4gbV9sb2NhbGU7CiAgICAgfQogCi0gICAgVmFyaWFudDxUZXh0
QnJlYWtJdGVyYXRvcklDVSwgVGV4dEJyZWFrSXRlcmF0b3JQbGF0Zm9ybT4gbV9iYWNraW5nOwor
ICAgIHN0ZDo6dmFyaWFudDxUZXh0QnJlYWtJdGVyYXRvcklDVSwgVGV4dEJyZWFrSXRlcmF0b3JQ
bGF0Zm9ybT4gbV9iYWNraW5nOwogICAgIE1vZGUgbV9tb2RlOwogICAgIEF0b21TdHJpbmcgbV9s
b2NhbGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9jb2NvYS9UZXh0QnJl
YWtJdGVyYXRvckludGVybmFsSUNVQ29jb2EuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9jb2Nv
YS9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVQ29jb2EuY3BwCmluZGV4IDI1ZDA2YjJhNTk0
ZDNjMDJkMzhjM2Y5OWI0ZmQ4MTU3ZjMxMGEwNTMuLmE4NzQ1YzljNTU5ZTdjZmY0YjVlOWIxOWE4
Y2MwYTQ4MzZjNzhjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvY29jb2EvVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L2NvY29hL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VDb2NvYS5jcHAKQEAgLTMxLDcg
KzMxLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyBCdWZmZXIgc2l6ZWQgdG8gaG9sZCBBU0NJSSBs
b2NhbGUgSUQgc3RyaW5ncyB1cCB0byAzMiBjaGFyYWN0ZXJzIGxvbmcuCiB1c2luZyBMb2NhbGVJ
REJ1ZmZlciA9IHN0ZDo6YXJyYXk8Y2hhciwgMzM+OwogCi1zdGF0aWMgVmFyaWFudDxUZXh0QnJl
YWtJdGVyYXRvcklDVSwgVGV4dEJyZWFrSXRlcmF0b3JQbGF0Zm9ybT4gbWFwTW9kZVRvQmFja2lu
Z0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nLCBUZXh0QnJlYWtJdGVyYXRvcjo6TW9kZSBtb2Rl
LCBjb25zdCBBdG9tU3RyaW5nJiBsb2NhbGUpCitzdGF0aWMgc3RkOjp2YXJpYW50PFRleHRCcmVh
a0l0ZXJhdG9ySUNVLCBUZXh0QnJlYWtJdGVyYXRvclBsYXRmb3JtPiBtYXBNb2RlVG9CYWNraW5n
SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcsIFRleHRCcmVha0l0ZXJhdG9yOjpNb2RlIG1vZGUs
IGNvbnN0IEF0b21TdHJpbmcmIGxvY2FsZSkKIHsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBj
YXNlIFRleHRCcmVha0l0ZXJhdG9yOjpNb2RlOjpMaW5lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJk
SXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5oCmluZGV4IDBlMWZhODhlZWE0ODZlMzgwNjkwYTE3ZWEw
N2UyMWU5MTJkY2I2YmEuLmFlMjUyMjE5NDYzMzZiOTVhNzY2Zjk1OWE2ZjlkMmUxNmUwODliNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBi
b2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmgKQEAgLTUz
LDcgKzUzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaW52b2tlQ29tcGxldGlvbkhhbmRsZXIo
KTsKIAotICAgIHVzaW5nIEJ1ZmZlck9yU3RyaW5nID0gVmFyaWFudDxTdHJpbmcsIFJlZjxTaGFy
ZWRCdWZmZXI+PjsKKyAgICB1c2luZyBCdWZmZXJPclN0cmluZyA9IHN0ZDo6dmFyaWFudDxTdHJp
bmcsIFJlZjxTaGFyZWRCdWZmZXI+PjsKICAgICBjbGFzcyBDbGlwYm9hcmRJdGVtVHlwZUxvYWRl
ciA6IHB1YmxpYyBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50LCBwdWJsaWMgUmVmQ291bnRlZDxDbGlw
Ym9hcmRJdGVtVHlwZUxvYWRlcj4gewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFJlZjxD
bGlwYm9hcmRJdGVtVHlwZUxvYWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdHlwZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oCmluZGV4IDdmYjRiNzk0MzkzMDRjYzk2
NTI0MGUyY2Y1OGY5ZGJkN2Y4ZWYxYmEuLjk0YWQyMTJhMDcwZmNlMjZhYjBhNTk1YWY4MmE1NzM2
YzEzNDU4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2Fj
aGVFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5n
aW5lLmgKQEAgLTU3LDcgKzU3LDcgQEAgRXhjZXB0aW9uIGNvbnZlcnRUb0V4Y2VwdGlvbkFuZExv
ZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXJyb3IpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBx
dWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIGNhY2hlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBDYWNoZVF1ZXJ5T3B0aW9ucyYpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBxdWVyeUNhY2hlTWF0
Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBVUkwmIHVybCwgYm9vbCBo
YXNWYXJ5U3RhciwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIHZhcnlIZWFkZXJzLCBj
b25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYpOwogCi11c2luZyBSZXNwb25zZUJvZHkgPSBWYXJpYW50
PHN0ZDo6bnVsbHB0cl90LCBSZWY8Rm9ybURhdGE+LCBSZWY8U2hhcmVkQnVmZmVyPj47Cit1c2lu
ZyBSZXNwb25zZUJvZHkgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxGb3JtRGF0
YT4sIFJlZjxTaGFyZWRCdWZmZXI+PjsKIFJlc3BvbnNlQm9keSBpc29sYXRlZFJlc3BvbnNlQm9k
eShjb25zdCBSZXNwb25zZUJvZHkmKTsKIFdFQkNPUkVfRVhQT1JUIFJlc3BvbnNlQm9keSBjb3B5
UmVzcG9uc2VCb2R5KGNvbnN0IFJlc3BvbnNlQm9keSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHkuaAppbmRleCA2ZGNmNTUxOGVmYzQ3MWNmMWE5YTZhODc0ZGRmYjNh
ZTNmZDQ3MmNiLi4wNWFhOGVmZWViMjkwMjE5YTZlMGQxMzQyMjQ2YmI3ZGMxZmU5ZDI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmgKQEAgLTUzLDcgKzUzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBjb25zdW1lQXNTdHJlYW0oRmV0Y2hCb2R5T3duZXImLCBGZXRj
aEJvZHlTb3VyY2UmKTsKIAotICAgIHVzaW5nIEluaXQgPSBWYXJpYW50PFJlZlB0cjxCbG9iPiwg
UmVmUHRyPEFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxBcnJheUJ1ZmZlcj4sIFJlZlB0cjxET01G
b3JtRGF0YT4sIFJlZlB0cjxVUkxTZWFyY2hQYXJhbXM+LCBSZWZQdHI8UmVhZGFibGVTdHJlYW0+
LCBTdHJpbmc+OworICAgIHVzaW5nIEluaXQgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEJsb2I+LCBS
ZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEFycmF5QnVmZmVyPiwgUmVmUHRyPERPTUZv
cm1EYXRhPiwgUmVmUHRyPFVSTFNlYXJjaFBhcmFtcz4sIFJlZlB0cjxSZWFkYWJsZVN0cmVhbT4s
IFN0cmluZz47CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPEZldGNoQm9keT4gZXh0cmFjdChJbml0
JiYsIFN0cmluZyYpOwogICAgIEZldGNoQm9keSgpID0gZGVmYXVsdDsKIApAQCAtNjQsNyArNjQs
NyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8Rm9ybURhdGE+IGJvZHlBc0Zvcm1EYXRhKCkgY29u
c3Q7CiAKLSAgICB1c2luZyBUYWtlbkRhdGEgPSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8
Rm9ybURhdGE+LCBSZWY8U2hhcmVkQnVmZmVyPj47CisgICAgdXNpbmcgVGFrZW5EYXRhID0gc3Rk
Ojp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Rm9ybURhdGE+LCBSZWY8U2hhcmVkQnVmZmVy
Pj47CiAgICAgVGFrZW5EYXRhIHRha2UoKTsKIAogICAgIHZvaWQgc2V0QXNGb3JtRGF0YShSZWY8
Rm9ybURhdGE+JiYgZGF0YSkgeyBtX2RhdGEgPSBXVEZNb3ZlKGRhdGEpOyB9CkBAIC0xMTksNyAr
MTE5LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBTdHJpbmcmIHRleHRCb2R5KCkgY29uc3QgeyBy
ZXR1cm4gV1RGOjpnZXQ8U3RyaW5nPihtX2RhdGEpOyB9CiAgICAgY29uc3QgVVJMU2VhcmNoUGFy
YW1zJiB1cmxTZWFyY2hQYXJhbXNCb2R5KCkgY29uc3QgeyByZXR1cm4gV1RGOjpnZXQ8UmVmPGNv
bnN0IFVSTFNlYXJjaFBhcmFtcz4+KG1fZGF0YSkuZ2V0KCk7IH0KIAotICAgIHVzaW5nIERhdGEg
PSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Y29uc3QgQmxvYj4sIFJlZjxGb3JtRGF0YT4s
IFJlZjxjb25zdCBBcnJheUJ1ZmZlcj4sIFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+LCBSZWY8
Y29uc3QgVVJMU2VhcmNoUGFyYW1zPiwgU3RyaW5nPjsKKyAgICB1c2luZyBEYXRhID0gc3RkOjp2
YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Y29uc3QgQmxvYj4sIFJlZjxGb3JtRGF0YT4sIFJl
Zjxjb25zdCBBcnJheUJ1ZmZlcj4sIFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+LCBSZWY8Y29u
c3QgVVJMU2VhcmNoUGFyYW1zPiwgU3RyaW5nPjsKICAgICBEYXRhIG1fZGF0YSB7IG51bGxwdHIg
fTsKIAogICAgIEZldGNoQm9keUNvbnN1bWVyIG1fY29uc3VtZXIgeyBGZXRjaEJvZHlDb25zdW1l
cjo6VHlwZTo6Tm9uZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHlPd25lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlPd25lci5oCmluZGV4IDgwMWYyY2YwZTU0NWI3ODRjOTNkOTUxYWUzYTU5MmY2ZDY5ZDUxYjgu
LjllMTAyY2MxMjc0Mzc0NzRmM2ZjYzE2OWM3NTk0YzViZWFlNDA1NzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmgKQEAgLTEzMSw3ICsxMzEsNyBA
QCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8QmxvYkxvYWRlcj4gbV9ibG9iTG9hZGVyOwog
ICAgIGJvb2wgbV9pc0JvZHlPcGFxdWUgeyBmYWxzZSB9OwogCi0gICAgVmFyaWFudDxzdGQ6Om51
bGxwdHJfdCwgRXhjZXB0aW9uLCBSZXNvdXJjZUVycm9yPiBtX2xvYWRpbmdFcnJvcjsKKyAgICBz
dGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIEV4Y2VwdGlvbiwgUmVzb3VyY2VFcnJvcj4gbV9s
b2FkaW5nRXJyb3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuaAppbmRleCBjNjdlMTE1YzgyODI0ZTdiMmZh
YjE1OTAyZTU2N2JkMGRkM2E4MzUzLi4yMTk5MWU5MjBkZDc3MWVhMmYxMWE5MGVmMzA2OTk1NjEw
YTA1MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVh
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgICAgICBSZXNwb25zZQogICAgIH07CiAKLSAg
ICB1c2luZyBJbml0ID0gVmFyaWFudDxWZWN0b3I8VmVjdG9yPFN0cmluZz4+LCBWZWN0b3I8V1RG
OjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+Pj47CisgICAgdXNpbmcgSW5pdCA9IHN0ZDo6
dmFyaWFudDxWZWN0b3I8VmVjdG9yPFN0cmluZz4+LCBWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBTdHJpbmc+Pj47CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaEhlYWRl
cnM+PiBjcmVhdGUoc3RkOjpvcHRpb25hbDxJbml0PiYmKTsKIAogICAgIHN0YXRpYyBSZWY8RmV0
Y2hIZWFkZXJzPiBjcmVhdGUoR3VhcmQgZ3VhcmQgPSBHdWFyZDo6Tm9uZSwgSFRUUEhlYWRlck1h
cCYmIGhlYWRlcnMgPSB7IH0pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmV0Y2hIZWFkZXJzIHsg
Z3VhcmQsIFdURk1vdmUoaGVhZGVycykgfSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoUmVxdWVzdC5oCmluZGV4IDY4NDliOWJhZjkwODFhOWJhOTY4MTBlOTk4MTg0N2Nj
NjJmZGVkNTUuLjQ1ZmNiNzBlM2VlODkwNzk3MGZlMWU2NWY2OGNiNmJjNDdjZGYwOGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaApAQCAtNDQsNyArNDQs
NyBAQCBjbGFzcyBVUkxTZWFyY2hQYXJhbXM7CiBjbGFzcyBGZXRjaFJlcXVlc3QgZmluYWwgOiBw
dWJsaWMgRmV0Y2hCb2R5T3duZXIgewogcHVibGljOgogICAgIHVzaW5nIEluaXQgPSBGZXRjaFJl
cXVlc3RJbml0OwotICAgIHVzaW5nIEluZm8gPSBWYXJpYW50PFJlZlB0cjxGZXRjaFJlcXVlc3Q+
LCBTdHJpbmc+OworICAgIHVzaW5nIEluZm8gPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEZldGNoUmVx
dWVzdD4sIFN0cmluZz47CiAKICAgICB1c2luZyBDYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU7
CiAgICAgdXNpbmcgQ3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAppbmRleCAyZmZlMWQz
ODQ1Y2RhYmUxMjk4NGQyMTRjNjI3MWZmZDc0NzUwOTQxLi5hMzU4NWM3MzM2NDg4N2NhMzQ4YTIz
ZjIzYmIzZmQ1ZGY5OWQzMmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoUmVzcG9uc2UuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmZWVkU3Ry
ZWFtKCkgZmluYWw7CiAgICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsKIAotICAgIHVzaW5nIFJlc3Bv
bnNlRGF0YSA9IFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxGb3JtRGF0YT4sIFJlZjxTaGFy
ZWRCdWZmZXI+PjsKKyAgICB1c2luZyBSZXNwb25zZURhdGEgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpu
dWxscHRyX3QsIFJlZjxGb3JtRGF0YT4sIFJlZjxTaGFyZWRCdWZmZXI+PjsKICAgICBSZXNwb25z
ZURhdGEgY29uc3VtZUJvZHkoKTsKICAgICB2b2lkIHNldEJvZHlEYXRhKFJlc3BvbnNlRGF0YSYm
LCB1aW50NjRfdCBib2R5U2l6ZVdpdGhQYWRkaW5nKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAppbmRleCA0ZjZkM2UxZjMzNDEwNzkyMWRiNTU0MjBl
ZGU3ZmUyYTdlMDBhYTk2Li41ZmZiYWFiYmUyZDdiMGIzY2RmNmY4ZGJmMWJmNTc5M2ViMTYyNDkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAt
NTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+SURCQ3Vyc29yKCk7CiAK
LSAgICB1c2luZyBTb3VyY2UgPSBWYXJpYW50PFJlZlB0cjxJREJPYmplY3RTdG9yZT4sIFJlZlB0
cjxJREJJbmRleD4+OworICAgIHVzaW5nIFNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8SURC
T2JqZWN0U3RvcmU+LCBSZWZQdHI8SURCSW5kZXg+PjsKIAogICAgIGNvbnN0IFNvdXJjZSYgc291
cmNlKCkgY29uc3Q7CiAgICAgSURCQ3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXgg
NjE5ZTljOTRhMmQzNTk4YmIyYTI4NDc5ZmMwMzA3MjA3ODE3NGEwNy4uYTRhYzZmNzYxNjM4OTM2
YWEwZWVkYThiYTA3ZTExNGNhOGQ1NmRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAg
IEV4Y2VwdGlvbk9yPFJlZjxJREJPYmplY3RTdG9yZT4+IGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0
IFN0cmluZyYgbmFtZSwgT2JqZWN0U3RvcmVQYXJhbWV0ZXJzJiYpOwogCi0gICAgdXNpbmcgU3Ry
aW5nT3JWZWN0b3JPZlN0cmluZ3MgPSBXVEY6OlZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5n
Pj47CisgICAgdXNpbmcgU3RyaW5nT3JWZWN0b3JPZlN0cmluZ3MgPSBzdGQ6OnZhcmlhbnQ8U3Ry
aW5nLCBWZWN0b3I8U3RyaW5nPj47CiAgICAgc3RydWN0IFRyYW5zYWN0aW9uT3B0aW9ucyB7CiAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8SURCVHJhbnNhY3Rpb25EdXJhYmlsaXR5PiBkdXJhYmlsaXR5
OwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oCmluZGV4
IDNmZTdlZDM4Y2NiNzIzYzc0ZjVlNWRhYjdlNjk3ODY3OWE4YTY3OTguLmY1M2FiMjRlZmU3NzBj
MzM0MzU2OTAyMjhmYWU3MTdlNDYwY2Q5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleS5oCkBAIC0xNjksNyArMTY5LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNp
dCBJREJLZXkoY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImKTsKIAogICAgIGNvbnN0IEluZGV4
ZWREQjo6S2V5VHlwZSBtX3R5cGU7Ci0gICAgVmFyaWFudDxWZWN0b3I8UmVmUHRyPElEQktleT4+
LCBTdHJpbmcsIGRvdWJsZSwgVGhyZWFkU2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7CisgICAgc3Rk
Ojp2YXJpYW50PFZlY3RvcjxSZWZQdHI8SURCS2V5Pj4sIFN0cmluZywgZG91YmxlLCBUaHJlYWRT
YWZlRGF0YUJ1ZmZlcj4gbV92YWx1ZTsKIAogICAgIGNvbnN0IHNpemVfdCBtX3NpemVFc3RpbWF0
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oCmlu
ZGV4IGU4NmM0NjBlNGE3NTYwMTZlMTM0ZjI3ODVmZmNhZjJlNGEyOTMzNmMuLmU3NjE3MzllYWY4
ODJhM2QyOGVkODI0YjQ5ZDU1ZjQyOTI5YmE5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9pc051bGwgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0RlbGV0ZWRWYWx1ZSB7
IGZhbHNlIH07CiAKLSAgICBWYXJpYW50PFZlY3RvcjxJREJLZXlEYXRhPiwgU3RyaW5nLCBkb3Vi
bGUsIFRocmVhZFNhZmVEYXRhQnVmZmVyPiBtX3ZhbHVlOworICAgIHN0ZDo6dmFyaWFudDxWZWN0
b3I8SURCS2V5RGF0YT4sIFN0cmluZywgZG91YmxlLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4gbV92
YWx1ZTsKIH07CiAKIHN0cnVjdCBJREJLZXlEYXRhSGFzaCB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoLmgKaW5kZXggYjFiM2RiYmViMDk4NmI1ZjUwZWJi
YWM3ZWYyMTFiYTI5ZjM0NmJmMy4uYzA1NGRjZDYyNjljN2RiNTZjYzNhOTU4ZTBiMmUzYjAzNzNk
ZjZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGgu
aApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIElEQktl
eVBhdGggPSBXVEY6OlZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj47Cit1c2luZyBJREJL
ZXlQYXRoID0gc3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+OwogYm9vbCBpc0lE
QktleVBhdGhWYWxpZChjb25zdCBJREJLZXlQYXRoJik7CiAKIGVudW0gY2xhc3MgSURCS2V5UGF0
aFBhcnNlRXJyb3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5oCmluZGV4IDZiMTk1MDUzODQ0YjAxYzlmMmNkMmI3NjUzNWUyMTBjZjkwZDk3ZTkuLmUy
ZDBjODg4N2UxZGEwZmFjYTQyZjBjY2UzNTZhMmFjOWM5YWFhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTc4LDEyICs3OCwxMiBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIH5JREJSZXF1ZXN0KCk7CiAKLSAgICB1c2luZyBSZXN1bHQg
PSBWYXJpYW50PFJlZlB0cjxJREJDdXJzb3I+LCBSZWZQdHI8SURCRGF0YWJhc2U+LCBJREJLZXlE
YXRhLCBWZWN0b3I8SURCS2V5RGF0YT4sIElEQkdldFJlc3VsdCwgSURCR2V0QWxsUmVzdWx0LCB1
aW50NjRfdCwgTnVsbFJlc3VsdFR5cGU+OworICAgIHVzaW5nIFJlc3VsdCA9IHN0ZDo6dmFyaWFu
dDxSZWZQdHI8SURCQ3Vyc29yPiwgUmVmUHRyPElEQkRhdGFiYXNlPiwgSURCS2V5RGF0YSwgVmVj
dG9yPElEQktleURhdGE+LCBJREJHZXRSZXN1bHQsIElEQkdldEFsbFJlc3VsdCwgdWludDY0X3Qs
IE51bGxSZXN1bHRUeXBlPjsKICAgICBFeGNlcHRpb25PcjxSZXN1bHQ+IHJlc3VsdCgpIGNvbnN0
OwogICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIHJlc3VsdFdyYXBwZXIoKSB7IHJldHVybiBt
X3Jlc3VsdFdyYXBwZXI7IH0KICAgICBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0JiBjdXJzb3JXcmFw
cGVyKCkgeyByZXR1cm4gbV9jdXJzb3JXcmFwcGVyOyB9CiAKLSAgICB1c2luZyBTb3VyY2UgPSBW
YXJpYW50PFJlZlB0cjxJREJPYmplY3RTdG9yZT4sIFJlZlB0cjxJREJJbmRleD4sIFJlZlB0cjxJ
REJDdXJzb3I+PjsKKyAgICB1c2luZyBTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPElEQk9i
amVjdFN0b3JlPiwgUmVmUHRyPElEQkluZGV4PiwgUmVmUHRyPElEQkN1cnNvcj4+OwogICAgIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8U291cmNlPiYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2U7IH0KIAogICAgIEV4Y2VwdGlvbk9yPERPTUV4Y2VwdGlvbio+IGVycm9yKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250
cm9sc0hvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmNwcAppbmRleCA3YTVlNDg0NmM0MDAyMjAwN2NmODQ0NDc0N2ZlZmJlYmZh
OWUyNGZlLi4yODZiMThkYTNkYTliMzY1NWFlMTkyMGVmMjg1NzNmOTRlOGVmZTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hv
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHAKQEAgLTUwNSw3ICs1MDUsNyBAQCBib29sIE1lZGlhQ29udHJvbHNIb3N0
OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVtZW50JiB0YXJnZXQsIFN0cmlu
ZwogICAgICAgICB4Ml8wLAogICAgIH07CiAKLSAgICB1c2luZyBNZW51RGF0YSA9IFZhcmlhbnQ8
CisgICAgdXNpbmcgTWVudURhdGEgPSBzdGQ6OnZhcmlhbnQ8CiAjaWYgRU5BQkxFKFZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKQogICAgICAgICBQaWN0dXJlSW5QaWN0dXJlVGFnLAogI2VuZGlmIC8v
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgKaW5kZXggZTQ2
MzlhN2M0YzlhZTY1Zjk1NTRiMDI5ZTNlYTEyMmM3MWY0MTBkNi4uM2I3ZjdiMTZlNzBkYjMwOTU4
MDczMGU1ZWIyNzhjMmI2ZGY2Y2ZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgKQEAgLTYyLDcgKzYyLDcg
QEAgcHVibGljOgogICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPj4gc29ydGVkVHJhY2tMaXN0
Rm9yTWVudShUZXh0VHJhY2tMaXN0Jik7CiAgICAgVmVjdG9yPFJlZlB0cjxBdWRpb1RyYWNrPj4g
c29ydGVkVHJhY2tMaXN0Rm9yTWVudShBdWRpb1RyYWNrTGlzdCYpOwogCi0gICAgdXNpbmcgVGV4
dE9yQXVkaW9UcmFjayA9IFdURjo6VmFyaWFudDxSZWZQdHI8VGV4dFRyYWNrPiwgUmVmUHRyPEF1
ZGlvVHJhY2s+PjsKKyAgICB1c2luZyBUZXh0T3JBdWRpb1RyYWNrID0gc3RkOjp2YXJpYW50PFJl
ZlB0cjxUZXh0VHJhY2s+LCBSZWZQdHI8QXVkaW9UcmFjaz4+OwogICAgIFN0cmluZyBkaXNwbGF5
TmFtZUZvclRyYWNrKGNvbnN0IHN0ZDo6b3B0aW9uYWw8VGV4dE9yQXVkaW9UcmFjaz4mKTsKIAog
ICAgIHN0YXRpYyBUZXh0VHJhY2smIGNhcHRpb25NZW51T2ZmSXRlbSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IDZj
ZDQyYzY0MDYyNDNjNzYyY2U3OGFjNTJiMDRlYmViZjUwYzZiMGQuLjM4ODZkYzU3MjJjNzVlNGQ2
NTRlZmMwMzQwZmM1NGI0MTRhY2NhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgRG9jdW1l
bnQqIE1lZGlhRGV2aWNlczo6ZG9jdW1lbnQoKSBjb25zdAogICAgIHJldHVybiBkb3duY2FzdDxE
b2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAotc3RhdGljIE1lZGlhQ29u
c3RyYWludHMgY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdCBWYXJpYW50PGJvb2wsIE1lZGlh
VHJhY2tDb25zdHJhaW50cz4mIGNvbnN0cmFpbnRzKQorc3RhdGljIE1lZGlhQ29uc3RyYWludHMg
Y3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdCBzdGQ6OnZhcmlhbnQ8Ym9vbCwgTWVkaWFUcmFj
a0NvbnN0cmFpbnRzPiYgY29uc3RyYWludHMpCiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
Y29uc3RyYWludHMsCiAgICAgICAgIFsmXSAoYm9vbCBpc1ZhbGlkKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAppbmRleCAwMGYxMGEy
N2FjYWIyMWJkYjVjYjljMmExNDVhODc2MTQzZTExNTk1Li5lMThkNTRkNDA2YzM1NzM1YzY0OWJi
N2E5N2U4ZWNiYzczNDY3NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmgKQEAgLTc1LDE0ICs3NSwxNCBAQCBwdWJsaWM6CiAgICAg
fTsKIAogICAgIHN0cnVjdCBTdHJlYW1Db25zdHJhaW50cyB7Ci0gICAgICAgIFZhcmlhbnQ8Ym9v
bCwgTWVkaWFUcmFja0NvbnN0cmFpbnRzPiB2aWRlbzsKLSAgICAgICAgVmFyaWFudDxib29sLCBN
ZWRpYVRyYWNrQ29uc3RyYWludHM+IGF1ZGlvOworICAgICAgICBzdGQ6OnZhcmlhbnQ8Ym9vbCwg
TWVkaWFUcmFja0NvbnN0cmFpbnRzPiB2aWRlbzsKKyAgICAgICAgc3RkOjp2YXJpYW50PGJvb2ws
IE1lZGlhVHJhY2tDb25zdHJhaW50cz4gYXVkaW87CiAgICAgfTsKICAgICB2b2lkIGdldFVzZXJN
ZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYsIFByb21pc2UmJik7CiAKICAgICBzdHJ1Y3Qg
RGlzcGxheU1lZGlhU3RyZWFtQ29uc3RyYWludHMgewotICAgICAgICBWYXJpYW50PGJvb2wsIE1l
ZGlhVHJhY2tDb25zdHJhaW50cz4gdmlkZW87Ci0gICAgICAgIFZhcmlhbnQ8Ym9vbCwgTWVkaWFU
cmFja0NvbnN0cmFpbnRzPiBhdWRpbzsKKyAgICAgICAgc3RkOjp2YXJpYW50PGJvb2wsIE1lZGlh
VHJhY2tDb25zdHJhaW50cz4gdmlkZW87CisgICAgICAgIHN0ZDo6dmFyaWFudDxib29sLCBNZWRp
YVRyYWNrQ29uc3RyYWludHM+IGF1ZGlvOwogICAgIH07CiAgICAgdm9pZCBnZXREaXNwbGF5TWVk
aWEoY29uc3QgRGlzcGxheU1lZGlhU3RyZWFtQ29uc3RyYWludHMmLCBQcm9taXNlJiYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tD
b25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRy
YWNrQ29uc3RyYWludHMuaAppbmRleCA3MzE0Mjg1ZWNmMjlkMjJhNWRmMTAwNDBjY2M3Y2E4NjM2
MmFiZDRkLi4xZGNlMWMzZDhkYWJmZjg0YmM2ZGZmZGRkOTQzNjVkOTgzZTMwOTFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJh
aW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFj
a0NvbnN0cmFpbnRzLmgKQEAgLTQyLDggKzQyLDggQEAgc3RydWN0IENvbnN0cmFpbkJvb2xlYW5Q
YXJhbWV0ZXJzIHsKIH07CiAKIHN0cnVjdCBDb25zdHJhaW5ET01TdHJpbmdQYXJhbWV0ZXJzIHsK
LSAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4+IGV4YWN0
OwotICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4gaWRl
YWw7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5n
Pj4+IGV4YWN0OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9y
PFN0cmluZz4+PiBpZGVhbDsKIH07CiAKIHN0cnVjdCBDb25zdHJhaW5Eb3VibGVSYW5nZSA6IERv
dWJsZVJhbmdlIHsKQEAgLTU2LDEwICs1NiwxMCBAQCBzdHJ1Y3QgQ29uc3RyYWluTG9uZ1Jhbmdl
IDogTG9uZ1JhbmdlIHsKICAgICBzdGQ6Om9wdGlvbmFsPGludD4gaWRlYWw7CiB9OwogCi11c2lu
ZyBDb25zdHJhaW5Cb29sZWFuID0gVmFyaWFudDxib29sLCBDb25zdHJhaW5Cb29sZWFuUGFyYW1l
dGVycz47Ci11c2luZyBDb25zdHJhaW5ET01TdHJpbmcgPSBWYXJpYW50PFN0cmluZywgVmVjdG9y
PFN0cmluZz4sIENvbnN0cmFpbkRPTVN0cmluZ1BhcmFtZXRlcnM+OwotdXNpbmcgQ29uc3RyYWlu
RG91YmxlID0gVmFyaWFudDxkb3VibGUsIENvbnN0cmFpbkRvdWJsZVJhbmdlPjsKLXVzaW5nIENv
bnN0cmFpbkxvbmcgPSBWYXJpYW50PGludCwgQ29uc3RyYWluTG9uZ1JhbmdlPjsKK3VzaW5nIENv
bnN0cmFpbkJvb2xlYW4gPSBzdGQ6OnZhcmlhbnQ8Ym9vbCwgQ29uc3RyYWluQm9vbGVhblBhcmFt
ZXRlcnM+OwordXNpbmcgQ29uc3RyYWluRE9NU3RyaW5nID0gc3RkOjp2YXJpYW50PFN0cmluZywg
VmVjdG9yPFN0cmluZz4sIENvbnN0cmFpbkRPTVN0cmluZ1BhcmFtZXRlcnM+OwordXNpbmcgQ29u
c3RyYWluRG91YmxlID0gc3RkOjp2YXJpYW50PGRvdWJsZSwgQ29uc3RyYWluRG91YmxlUmFuZ2U+
OwordXNpbmcgQ29uc3RyYWluTG9uZyA9IHN0ZDo6dmFyaWFudDxpbnQsIENvbnN0cmFpbkxvbmdS
YW5nZT47CiAKIHN0cnVjdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldCB7CiAgICAgc3RkOjpvcHRp
b25hbDxDb25zdHJhaW5Mb25nPiB3aWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0ljZVNlcnZlci5oCmluZGV4IGIwYjE3OThlYTdmN2E5YmFjODMxYWQz
Mzc2MjU0YjU5ZDczNzc2MmYuLmRiMjJjZWU1ZDVhYzRiY2I2MzE1MzkyYzIxMmJlNmJkMzM0YWVi
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNl
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VT
ZXJ2ZXIuaApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
UlRDSWNlU2VydmVyIHsKLSAgICBWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+IHVybHM7
CisgICAgc3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+IHVybHM7CiAgICAgU3Ry
aW5nIGNyZWRlbnRpYWw7CiAgICAgU3RyaW5nIHVzZXJuYW1lOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRl
eCAzZjExZTRjMTExMTAzOGQ2ZTg3YjFkYjU1NjJkNTQ5NTdhYzZjZTBlLi5hNTY5NjYzMzdmYTg4
MTZmMzJlMTJkZmEwNzZkYTFiOTFhOTc3MjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC0xMDUsNyArMTA1
LDcgQEAgcHVibGljOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZXhwaXJlczsKICAg
ICB9OwogCi0gICAgdXNpbmcgQWxnb3JpdGhtSWRlbnRpZmllciA9IFZhcmlhbnQ8SlNDOjpTdHJv
bmc8SlNDOjpKU09iamVjdD4sIFN0cmluZz47CisgICAgdXNpbmcgQWxnb3JpdGhtSWRlbnRpZmll
ciA9IHN0ZDo6dmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiwgU3RyaW5nPjsKICAg
ICBzdGF0aWMgdm9pZCBnZW5lcmF0ZUNlcnRpZmljYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBB
bGdvcml0aG1JZGVudGlmaWVyJiYsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8UlRD
Q2VydGlmaWNhdGU+PiYmKTsKIAogICAgIC8vIDQuMy4yIFJUQ1BlZXJDb25uZWN0aW9uIEludGVy
ZmFjZQpAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICBSVENTZXNzaW9uRGVzY3JpcHRp
b24qIGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFJl
bW90ZURlc2NyaXB0aW9uLmdldCgpOyB9CiAgICAgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKiBwZW5k
aW5nUmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX3BlbmRpbmdSZW1vdGVEZXNj
cmlwdGlvbi5nZXQoKTsgfQogCi0gICAgdXNpbmcgQ2FuZGlkYXRlID0gc3RkOjpvcHRpb25hbDxW
YXJpYW50PFJUQ0ljZUNhbmRpZGF0ZUluaXQsIFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+Pj47Cisg
ICAgdXNpbmcgQ2FuZGlkYXRlID0gc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UlRDSWNlQ2Fu
ZGlkYXRlSW5pdCwgUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZT4+PjsKICAgICB2b2lkIGFkZEljZUNh
bmRpZGF0ZShDYW5kaWRhdGUmJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKICAgICBSVENT
aWduYWxpbmdTdGF0ZSBzaWduYWxpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2lnbmFsaW5n
U3RhdGU7IH0KQEAgLTE1MSw3ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVm
PFJUQ1J0cFNlbmRlcj4+IGFkZFRyYWNrKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBjb25zdCBW
ZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxNZWRpYVN0cmVhbT4+Jik7CiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gcmVtb3ZlVHJhY2soUlRDUnRwU2VuZGVyJik7CiAKLSAgICB1c2luZyBBZGRU
cmFuc2NlaXZlclRyYWNrT3JLaW5kID0gVmFyaWFudDxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4s
IFN0cmluZz47CisgICAgdXNpbmcgQWRkVHJhbnNjZWl2ZXJUcmFja09yS2luZCA9IHN0ZDo6dmFy
aWFudDxSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4sIFN0cmluZz47CiAgICAgRXhjZXB0aW9uT3I8
UmVmPFJUQ1J0cFRyYW5zY2VpdmVyPj4gYWRkVHJhbnNjZWl2ZXIoQWRkVHJhbnNjZWl2ZXJUcmFj
a09yS2luZCYmLCBjb25zdCBSVENSdHBUcmFuc2NlaXZlckluaXQmKTsKIAogICAgIC8vIDYuMSBQ
ZWVyLXRvLXBlZXIgZGF0YSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybS5oCmluZGV4IDFhNzk1OGI1MDc4MjJhNDE5ZDk0YTc5
YTM0ZmMwMjE0Njk3ZmZiZmMuLmMyNDlmMDRhZTYxZmJlNTY2NWNiYTRlNTgyODY0ZjYwYTAwNDM0
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
VHJhbnNmb3JtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBUcmFuc2Zvcm0uaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBSVENSdHBTZW5kZXI7CiBjbGFz
cyBSVENSdHBUcmFuc2Zvcm0gIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICB1c2luZyBJbnRlcm5hbCA9IFZhcmlhbnQ8UmVmUHRyPFJUQ1J0cFNGcmFtZVRyYW5z
Zm9ybT4sIFJlZlB0cjxSVENSdHBTY3JpcHRUcmFuc2Zvcm0+PjsKKyAgICB1c2luZyBJbnRlcm5h
bCA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtPiwgUmVmUHRyPFJU
Q1J0cFNjcmlwdFRyYW5zZm9ybT4+OwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UlRDUnRw
VHJhbnNmb3JtPiBmcm9tKHN0ZDo6b3B0aW9uYWw8SW50ZXJuYWw+JiYpOwogCiAgICAgZXhwbGlj
aXQgUlRDUnRwVHJhbnNmb3JtKEludGVybmFsJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0YUNoYW5uZWxIYW5k
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaAppbmRleCBhNmM4Y2QwMDM4NTM5YWMxMTQ3NDA2NzMy
Yzg3OThkMGQwOGY1MmYzLi5mMDlmZmE3ODkyOTI5NTBlMDNjYjc1YjMyOWY1NTkwZmQyZWQ1NGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaApA
QCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgICAgICBSVENEYXRhQ2hhbm5lbFN0YXRlIHN0
YXRlOwogICAgICAgICBzdGQ6Om9wdGlvbmFsPHdlYnJ0Yzo6UlRDRXJyb3I+IGVycm9yOwogICAg
IH07Ci0gICAgdXNpbmcgTWVzc2FnZSA9IFZhcmlhbnQ8U3RhdGVDaGFuZ2UsIFN0cmluZywgUmVm
PFNoYXJlZEJ1ZmZlcj4+OworICAgIHVzaW5nIE1lc3NhZ2UgPSBzdGQ6OnZhcmlhbnQ8U3RhdGVD
aGFuZ2UsIFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+OwogICAgIHVzaW5nIFBlbmRpbmdNZXNz
YWdlcyA9IFZlY3RvcjxNZXNzYWdlPjsKICAgICB2b2lkIHN0b3JlTWVzc2FnZShQZW5kaW5nTWVz
c2FnZXMmLCBjb25zdCB3ZWJydGM6OkRhdGFCdWZmZXImKTsKICAgICB2b2lkIHByb2Nlc3NNZXNz
YWdlKGNvbnN0IHdlYnJ0Yzo6RGF0YUJ1ZmZlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyQmFja2Vu
ZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUnRwU2VuZGVyQmFja2VuZC5oCmluZGV4IGVlYTJjYzA0Mjc5MzgxMWQ3YzViM2FiYjk1NmY5
MWMzNjA1NmM3OGUuLjA5NjI1ODUxMTZlMTk4YmE1NWNmYzM3MDE2OWQ2YjdlZGY2YWY3NzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kLmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgY2xhc3MgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOwogY2xhc3MgTGli
V2ViUlRDUnRwU2VuZGVyQmFja2VuZCBmaW5hbCA6IHB1YmxpYyBSVENSdHBTZW5kZXJCYWNrZW5k
LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZD4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHVzaW5nIFNvdXJjZSA9IFZh
cmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U+LCBS
ZWY8UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlPj47CisgICAgdXNpbmcgU291cmNlID0gc3Rk
Ojp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
PiwgUmVmPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZT4+OwogICAgIExpYldlYlJUQ1J0cFNl
bmRlckJhY2tlbmQoTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwgcnRjOjpzY29wZWRf
cmVmcHRyPHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlPiYmLCBTb3VyY2UmJik7CiAgICAgTGli
V2ViUlRDUnRwU2VuZGVyQmFja2VuZChMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQmLCBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpSdHBTZW5kZXJJbnRlcmZhY2U+JiYpOwogICAgIH5M
aWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQu
aAppbmRleCA2MmFjMTUxZTVjMGY0M2FlNzFkYzljNmMwNGQ1MDZjMmFkYzhmNDkxLi5hNDEzNDJk
ZWJiZGMxYzlhZmZiNmVlOTY0MzQ5NzBjOTFkYWZjZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudE1ldGhvZENo
YW5nZUV2ZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHVzaW5n
IE1ldGhvZERldGFpbHNGdW5jdGlvbiA9IHN0ZDo6ZnVuY3Rpb248SlNDOjpTdHJvbmc8SlNDOjpK
U09iamVjdD4oSlNDOjpKU0dsb2JhbE9iamVjdCYpPjsKLSAgICB1c2luZyBNZXRob2REZXRhaWxz
VHlwZSA9IFZhcmlhbnQ8SlNWYWx1ZUluV3JhcHBlZE9iamVjdCwgTWV0aG9kRGV0YWlsc0Z1bmN0
aW9uPjsKKyAgICB1c2luZyBNZXRob2REZXRhaWxzVHlwZSA9IHN0ZDo6dmFyaWFudDxKU1ZhbHVl
SW5XcmFwcGVkT2JqZWN0LCBNZXRob2REZXRhaWxzRnVuY3Rpb24+OwogCiAgICAgY29uc3QgU3Ry
aW5nJiBtZXRob2ROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tZXRob2ROYW1lOyB9CiAgICAgY29u
c3QgTWV0aG9kRGV0YWlsc1R5cGUmIG1ldGhvZERldGFpbHMoKSBjb25zdCB7IHJldHVybiBtX21l
dGhvZERldGFpbHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaAppbmRleCA3ODk1NThkZTQ5YjlmOGYyZDVkYWY2Njhm
ZmNjMTlhMTc1Y2YxZWQwLi43YTAwM2FjOTQ5M2EyNGYzNzE1YWNiMzI0ODZmNDU1MDg5MWYwMzEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1l
bnRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5oCkBAIC0xMDEsNyArMTAxLDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHJldHJ5KFBheW1lbnRWYWxpZGF0aW9uRXJyb3JzJiYpOwogICAgIHZvaWQgY2Fu
Y2VsKCk7CiAKLSAgICB1c2luZyBNZXRob2RJZGVudGlmaWVyID0gVmFyaWFudDxTdHJpbmcsIFVS
TD47CisgICAgdXNpbmcgTWV0aG9kSWRlbnRpZmllciA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFVS
TD47CiAgICAgdXNpbmcgUmVmQ291bnRlZDxQYXltZW50UmVxdWVzdD46OnJlZjsKICAgICB1c2lu
ZyBSZWZDb3VudGVkPFBheW1lbnRSZXF1ZXN0Pjo6ZGVyZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaEV2ZW50SW5pdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoRXZlbnRJbml0LmgKaW5kZXggMTBlYTRkZjI0MzY2OTdm
NjJkODFmZmQ2NWExYWNkODMzNWYzMGE1ZC4uMDJkMWFlMDliYWQyMmZlNGIwYzNiZTk1Mjc5OGUw
ZTAyMWZlMTVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9Q
dXNoRXZlbnRJbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNo
RXZlbnRJbml0LmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11
c2luZyBQdXNoTWVzc2FnZURhdGFJbml0ID0gVmFyaWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
clZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4sIFN0cmluZz47Cit1c2luZyBQdXNoTWVz
c2FnZURhdGFJbml0ID0gc3RkOjp2YXJpYW50PFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyVmlldz4s
IFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgU3RyaW5nPjsKIAogc3RydWN0IFB1c2hFdmVudElu
aXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKICAgICBzdGQ6Om9wdGlvbmFsPFB1c2hNZXNzYWdl
RGF0YUluaXQ+IGRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gt
YXBpL1B1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uT3B0aW9uc0luaXQuaAppbmRleCA4MGM4YTY4Y2M1
MDBlODIwMjBkNjE3ZDA1NGY2YWVjNjVhMmQ1YmIzLi43OWQ4ZDBjNThiYzI2MGQ2MGY1NWQ5ODcz
NTIzMzdhYTk2NTQ5ZTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gt
YXBpL1B1c2hTdWJzY3JpcHRpb25PcHRpb25zSW5pdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbk9wdGlvbnNJbml0LmgKQEAgLTM1LDcgKzM1
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFB1c2hTdWJzY3JpcHRpb25PcHRp
b25zSW5pdCB7Ci0gICAgdXNpbmcgQXBwbGljYXRpb25TZXJ2ZXJLZXkgPSBWYXJpYW50PFJlZlB0
cjxKU0M6OkFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgU3RyaW5n
PjsKKyAgICB1c2luZyBBcHBsaWNhdGlvblNlcnZlcktleSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8
SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4sIFN0cmluZz47
CiAgICAgYm9vbCB1c2VyVmlzaWJsZU9ubHkgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8
QXBwbGljYXRpb25TZXJ2ZXJLZXk+IGFwcGxpY2F0aW9uU2VydmVyS2V5OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5oCmluZGV4IDFlMjgxMTZlODJmNjk0ZDRkZTU5M2Y0MGU0YmQxYzdmMTI1NDgxZTMuLmJhMjhj
YjkxNTA0MGUzYzJlOWZhZjU5ZjM2Y2RkMzc4NWMxN2VhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaApAQCAt
NjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25VcGRhdGU+IGRlY29kZShEZWNvZGVyJik7
CiAKIHByaXZhdGU6Ci0gICAgdXNpbmcgQ29udGVudCA9IFZhcmlhbnQ8c3RkOjptb25vc3RhdGUs
IFNwZWVjaFJlY29nbml0aW9uRXJyb3IsIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGE+PjsKKyAgICB1c2luZyBDb250ZW50ID0gc3RkOjp2YXJpYW50PHN0ZDo6bW9ub3N0YXRlLCBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yLCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
Pj47CiAgICAgV0VCQ09SRV9FWFBPUlQgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlLCBDb250ZW50KTsKIAogICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgbV9jbGllbnRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dE9wdGlvbnMuaAppbmRleCBmNTZhNDc1NTk3
ODE0MDU0YTE2ZGYxMGViYzI0YmFmNzdkNDBhZWQ3Li41YjlhZWNjOGVkNzA3MjA0Njg3MTVmZmZm
NzU5MzNmNDBjY2Y0NDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dE9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dE9wdGlvbnMuaApAQCAtMzQsNyArMzQsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdHJ1Y3QgQXVkaW9Db250ZXh0T3B0aW9ucyB7Ci0gICAgVmFyaWFudDxB
dWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdvcnksIGRvdWJsZT4gbGF0ZW5jeUhpbnQgeyBBdWRpb0Nv
bnRleHRMYXRlbmN5Q2F0ZWdvcnk6OkludGVyYWN0aXZlIH07CisgICAgc3RkOjp2YXJpYW50PEF1
ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeSwgZG91YmxlPiBsYXRlbmN5SGludCB7IEF1ZGlvQ29u
dGV4dExhdGVuY3lDYXRlZ29yeTo6SW50ZXJhY3RpdmUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiBzYW1wbGVSYXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Ob2RlLmgKaW5kZXggZDgyYjg0MGE3OTllMmNlZTAwNGU2ZGQ0ODBhZTYxNzk4YzY5MDA4
Zi4uMDU0ODAzYTUzMTljMzk1MTM5MmUyZWIzNTBhN2E3OGM0ZWM1N2JlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCkBAIC0yMzEsNyArMjMxLDcgQEAg
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQdWxsU3RhdHVzKCkgeyB9CiAKIHBy
aXZhdGU6Ci0gICAgdXNpbmcgV2Vha09yU3Ryb25nQ29udGV4dCA9IFZhcmlhbnQ8UmVmPEJhc2VB
dWRpb0NvbnRleHQ+LCBXZWFrUHRyPEJhc2VBdWRpb0NvbnRleHQ+PjsKKyAgICB1c2luZyBXZWFr
T3JTdHJvbmdDb250ZXh0ID0gc3RkOjp2YXJpYW50PFJlZjxCYXNlQXVkaW9Db250ZXh0PiwgV2Vh
a1B0cjxCYXNlQXVkaW9Db250ZXh0Pj47CiAgICAgc3RhdGljIFdlYWtPclN0cm9uZ0NvbnRleHQg
dG9XZWFrT3JTdHJvbmdDb250ZXh0KEJhc2VBdWRpb0NvbnRleHQmLCBOb2RlVHlwZSk7CiAKICAg
ICAvLyBFdmVudFRhcmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUldlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJX
ZWJHTExheWVyLmgKaW5kZXggYzJmY2E1ZGI1YTg3ODRhNzkwZTAxZTRkMjNhYjdhZTM3YzgyZTcz
OC4uMzY5MDgzN2EwYzJjYjg5NTJmZjQzZGU5YTE2NzM3MTM5NzY5Yzg1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5oCkBAIC01OCw3ICs1OCw3
IEBAIGNsYXNzIFdlYlhSV2ViR0xMYXllciA6IHB1YmxpYyBXZWJYUkxheWVyLCBwcml2YXRlIENh
bnZhc09ic2VydmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSV2ViR0xMYXll
cik7CiBwdWJsaWM6CiAKLSAgICB1c2luZyBXZWJYUlJlbmRlcmluZ0NvbnRleHQgPSBXVEY6OlZh
cmlhbnQ8CisgICAgdXNpbmcgV2ViWFJSZW5kZXJpbmdDb250ZXh0ID0gc3RkOjp2YXJpYW50PAog
ICAgICAgICBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PgogI2lmIEVOQUJMRShXRUJHTDIp
CiAgICAgICAgICwgUmVmUHRyPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGY2YTNmNjIzMGNiZDk5MDVj
ODkzOTI1ZmFlZjgyMjYxMzczOWExZmIuLjJjNTQ5Zjg3Nzg5Njg2ZWM4ZDNiYzZiNGFmYmM3NWY2
MDg2YmRiYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCkBAIC0xNzYsNyArMTc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGV0YWNoV3JhcHBlcihB
WENvcmVPYmplY3QqLCBBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUpOwogI2VuZGlmCiBwcml2
YXRlOgotICAgIHVzaW5nIERPTU9iamVjdFZhcmlhbnQgPSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90
LCBSZW5kZXJPYmplY3QqLCBOb2RlKiwgV2lkZ2V0Kj47CisgICAgdXNpbmcgRE9NT2JqZWN0VmFy
aWFudCA9IHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVuZGVyT2JqZWN0KiwgTm9kZSos
IFdpZGdldCo+OwogICAgIHZvaWQgY2FjaGVBbmRJbml0aWFsaXplV3JhcHBlcihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgRE9NT2JqZWN0VmFyaWFudCA9IG51bGxwdHIpOwogICAgIHZvaWQgYXR0YWNo
V3JhcHBlcihBWENvcmVPYmplY3QqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCBiNjU0
YjJmYzY5MWY3YWZhMzIzNWFlMDIwYjZiNzlhMTZkMjliMmQzLi43ZTdiODM0YzhiNDI0ZjVhYzQ0
NTU0MjZjZTdmNTk4MWQxNGVkYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtNjI2LDcg
KzYyNiw3IEBAIGVudW0gY2xhc3MgQWNjZXNzaWJpbGl0eVNlYXJjaEtleSB7CiAgICAgVmlzaXRl
ZExpbmssCiB9OwogCi11c2luZyBBWEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudCA9IFZhcmlhbnQ8
U3RyaW5nLCBib29sLCBpbnQ+OwordXNpbmcgQVhFZGl0aW5nU3R5bGVWYWx1ZVZhcmlhbnQgPSBz
dGQ6OnZhcmlhbnQ8U3RyaW5nLCBib29sLCBpbnQ+OwogCiBzdHJ1Y3QgQWNjZXNzaWJpbGl0eVNl
YXJjaENyaXRlcmlhIHsKICAgICBBWENvcmVPYmplY3QqIGFuY2hvck9iamVjdCB7IG51bGxwdHIg
fTsKQEAgLTExMjAsNyArMTEyMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYXJpYVJv
bGVIYXNQcmVzZW50YXRpb25hbENoaWxkcmVuKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBpbmhlcml0c1ByZXNlbnRhdGlvbmFsUm9sZSgpIGNvbnN0ID0gMDsKIAotICAgIHVzaW5nIEFY
VmFsdWUgPSBWYXJpYW50PGJvb2wsIHVuc2lnbmVkLCBmbG9hdCwgU3RyaW5nLCBBY2Nlc3NpYmls
aXR5QnV0dG9uU3RhdGUsIEFYQ29yZU9iamVjdCo+OworICAgIHVzaW5nIEFYVmFsdWUgPSBzdGQ6
OnZhcmlhbnQ8Ym9vbCwgdW5zaWduZWQsIGZsb2F0LCBTdHJpbmcsIEFjY2Vzc2liaWxpdHlCdXR0
b25TdGF0ZSwgQVhDb3JlT2JqZWN0Kj47CiAgICAgdmlydHVhbCBBWFZhbHVlIHZhbHVlKCkgPSAw
OwogCiAgICAgLy8gQWNjZXNzaWJpbGl0eSBUZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCBk
NGI5YjU2OWQzNzU0MmU4NGU4YTBkZWZmNjhkMGJmZGFjYzY1NzZhLi42MTU2NDVhMTY3NWQ4ZTgy
ZGViYjZiMzQxOWUwNGRkNmUwNTg4MjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTMxNiw3
ICszMTYsNyBAQCBlbnVtIGNsYXNzIEFYUHJvcGVydHlOYW1lIDogdWludDE2X3QgewogICAgIFdl
YkFyZWEsCiB9OwogCi11c2luZyBBWFByb3BlcnR5VmFsdWVWYXJpYW50ID0gVmFyaWFudDxzdGQ6
Om51bGxwdHJfdCwgU3RyaW5nLCBib29sLCBpbnQsIHVuc2lnbmVkLCBkb3VibGUsIGZsb2F0LCB1
aW50NjRfdCwgQ29sb3IsIFVSTCwgTGF5b3V0UmVjdCwgRmxvYXRSZWN0LCBBWElELCBJbnRQb2lu
dCwgT3B0aW9uU2V0PFNwZWFrQXM+LCBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiwgVmVj
dG9yPEFjY2Vzc2liaWxpdHlUZXh0PiwgVmVjdG9yPEFYSUQ+LCBWZWN0b3I8c3RkOjpwYWlyPEFY
SUQsIEFYSUQ+PiwgVmVjdG9yPFN0cmluZz4sIFBhdGg+OwordXNpbmcgQVhQcm9wZXJ0eVZhbHVl
VmFyaWFudCA9IHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgU3RyaW5nLCBib29sLCBpbnQs
IHVuc2lnbmVkLCBkb3VibGUsIGZsb2F0LCB1aW50NjRfdCwgQ29sb3IsIFVSTCwgTGF5b3V0UmVj
dCwgRmxvYXRSZWN0LCBBWElELCBJbnRQb2ludCwgT3B0aW9uU2V0PFNwZWFrQXM+LCBzdGQ6OnBh
aXI8dW5zaWduZWQsIHVuc2lnbmVkPiwgVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiwgVmVjdG9y
PEFYSUQ+LCBWZWN0b3I8c3RkOjpwYWlyPEFYSUQsIEFYSUQ+PiwgVmVjdG9yPFN0cmluZz4sIFBh
dGg+OwogdXNpbmcgQVhQcm9wZXJ0eU1hcCA9IEhhc2hNYXA8QVhQcm9wZXJ0eU5hbWUsIEFYUHJv
cGVydHlWYWx1ZVZhcmlhbnQsIFdURjo6SW50SGFzaDxBWFByb3BlcnR5TmFtZT4sIFdURjo6U3Ry
b25nRW51bUhhc2hUcmFpdHM8QVhQcm9wZXJ0eU5hbWU+PjsKIAogc3RydWN0IEFYUHJvcGVydHlD
aGFuZ2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWlu
Zy5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCmluZGV4IGY1YWRm
NGM3Yjg3NzY4ZTczZDIxYTE3MzAxZDFlMzRmNGU4MmYzOTAuLmIxNjdjYjY4ZWI0Y2Q4YTU5ZWE2
NmJkYWUxMzBmZWU5YThiMjNlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9FZmZlY3RUaW1pbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGlt
aW5nLmgKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEVm
ZmVjdFRpbWluZyB7Ci0gICAgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24geyAiYXV0
byIgfTsKKyAgICBzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uIHsgImF1dG8i
IH07CiAgICAgZG91YmxlIGRlbGF5IHsgMCB9OwogICAgIGRvdWJsZSBlbmREZWxheSB7IDAgfTsK
ICAgICBkb3VibGUgaXRlcmF0aW9uU3RhcnQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCBjZDcwZTljMDQ4ZmY3NDk4YjQyOGNhNjcxNDk4
MmFjZjQ1MTI4MzU4Li5mNmNmNTlkZDZhNDljNDc3MWM0ZjEyOTNiMjUzNTFiYzY2YmJiMDVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTUwNyw3
ICs1MDcsNyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHZvaWQ+IHByb2Nlc3NQcm9wZXJ0
eUluZGV4ZWRLZXlmcmFtZXMoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHsgfTsKIH0KIAot
RXhjZXB0aW9uT3I8UmVmPEtleWZyYW1lRWZmZWN0Pj4gS2V5ZnJhbWVFZmZlY3Q6OmNyZWF0ZShK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRWxlbWVudCogdGFyZ2V0LCBTdHJv
bmc8SlNPYmplY3Q+JiYga2V5ZnJhbWVzLCBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8ZG91YmxlLCBL
ZXlmcmFtZUVmZmVjdE9wdGlvbnM+PiYmIG9wdGlvbnMpCitFeGNlcHRpb25PcjxSZWY8S2V5ZnJh
bWVFZmZlY3Q+PiBLZXlmcmFtZUVmZmVjdDo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbGVtZW50KiB0YXJnZXQsIFN0cm9uZzxKU09iamVjdD4mJiBrZXlmcmFt
ZXMsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgS2V5ZnJhbWVFZmZlY3RPcHRp
b25zPj4mJiBvcHRpb25zKQogewogICAgIGF1dG8ga2V5ZnJhbWVFZmZlY3QgPSBhZG9wdFJlZigq
bmV3IEtleWZyYW1lRWZmZWN0KHRhcmdldCwgUHNldWRvSWQ6Ok5vbmUpKTsKIApAQCAtNTE1LDcg
KzUxNSw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxLZXlmcmFtZUVmZmVjdD4+IEtleWZyYW1lRWZmZWN0
OjpjcmVhdGUoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAgICAgIE9wdGlvbmFsRWZmZWN0
VGltaW5nIHRpbWluZzsKICAgICAgICAgYXV0byBvcHRpb25zVmFsdWUgPSBvcHRpb25zLnZhbHVl
KCk7CiAgICAgICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPGRvdWJsZT4ob3B0aW9uc1Zh
bHVlKSkgewotICAgICAgICAgICAgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24gPSBX
VEY6OmdldDxkb3VibGU+KG9wdGlvbnNWYWx1ZSk7CisgICAgICAgICAgICBzdGQ6OnZhcmlhbnQ8
ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uID0gV1RGOjpnZXQ8ZG91YmxlPihvcHRpb25zVmFsdWUp
OwogICAgICAgICAgICAgdGltaW5nLmR1cmF0aW9uID0gZHVyYXRpb247CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBhdXRvIGtleWZyYW1lRWZmZWN0T3B0aW9ucyA9IFdURjo6Z2V0PEtl
eWZyYW1lRWZmZWN0T3B0aW9ucz4ob3B0aW9uc1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmgKaW5kZXggZWMwMjhhMWQzYWY2OGNkMjY4MTVhMGViMmIyZmM3
MTU4ODIzNGQyMS4uZjc4MTUzOTk1MjQ3YWExOTU0NTZlZmI0YjQxOTNkYzQ2NjU0MzdjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKQEAgLTQ5LDcgKzQ5LDcg
QEAgY2xhc3MgRmlsdGVyT3BlcmF0aW9uczsKIGNsYXNzIEtleWZyYW1lRWZmZWN0IDogcHVibGlj
IEFuaW1hdGlvbkVmZmVjdAogICAgICwgcHVibGljIENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8S2V5ZnJhbWVFZmZlY3Q+PiBj
cmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEVsZW1lbnQqLCBKU0M6OlN0cm9uZzxKU0M6OkpT
T2JqZWN0PiYmLCBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUVmZmVjdE9w
dGlvbnM+PiYmKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEtleWZyYW1lRWZmZWN0Pj4g
Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBFbGVtZW50KiwgSlNDOjpTdHJvbmc8SlNDOjpK
U09iamVjdD4mJiwgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUVm
ZmVjdE9wdGlvbnM+PiYmKTsKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEtleWZyYW1lRWZm
ZWN0Pj4gY3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZWY8S2V5ZnJhbWVFZmZlY3Q+JiYp
OwogICAgIHN0YXRpYyBSZWY8S2V5ZnJhbWVFZmZlY3Q+IGNyZWF0ZShjb25zdCBFbGVtZW50Jiwg
UHNldWRvSWQpOwogICAgIH5LZXlmcmFtZUVmZmVjdCgpIHsgfQpAQCAtNTcsOSArNTcsOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0tleWZyYW1lRWZmZWN0KCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgc3RydWN0IEJhc2VQcm9wZXJ0eUluZGV4ZWRLZXlmcmFtZSB7Ci0gICAg
ICAgIFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPGRvdWJsZT4+
LCBkb3VibGU+IG9mZnNldCA9IFZlY3RvcjxzdGQ6Om9wdGlvbmFsPGRvdWJsZT4+KCk7Ci0gICAg
ICAgIFZhcmlhbnQ8VmVjdG9yPFN0cmluZz4sIFN0cmluZz4gZWFzaW5nID0gVmVjdG9yPFN0cmlu
Zz4oKTsKLSAgICAgICAgVmFyaWFudDxWZWN0b3I8Q29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvPiwg
Q29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvPiBjb21wb3NpdGUgPSBWZWN0b3I8Q29tcG9zaXRlT3Bl
cmF0aW9uT3JBdXRvPigpOworICAgICAgICBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFZl
Y3RvcjxzdGQ6Om9wdGlvbmFsPGRvdWJsZT4+LCBkb3VibGU+IG9mZnNldCA9IFZlY3RvcjxzdGQ6
Om9wdGlvbmFsPGRvdWJsZT4+KCk7CisgICAgICAgIHN0ZDo6dmFyaWFudDxWZWN0b3I8U3RyaW5n
PiwgU3RyaW5nPiBlYXNpbmcgPSBWZWN0b3I8U3RyaW5nPigpOworICAgICAgICBzdGQ6OnZhcmlh
bnQ8VmVjdG9yPENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0bz4sIENvbXBvc2l0ZU9wZXJhdGlvbk9y
QXV0bz4gY29tcG9zaXRlID0gVmVjdG9yPENvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0bz4oKTsKICAg
ICB9OwogCiAgICAgc3RydWN0IEJhc2VLZXlmcmFtZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vT3B0aW9uYWxFZmZlY3RUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9PcHRpb25hbEVmZmVjdFRpbWluZy5oCmluZGV4IGYzMWU5MjMyZGIwNWMzYTZlNzhj
NzU4OTZlZThhZjZjZjI1YTA1MzkuLjZjOWVmYWE5ZDAzYWVhYjNmYjU3NGVjNmQwYmI0NDZmY2Q4
YzZmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9PcHRpb25hbEVmZmVj
dFRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9PcHRpb25hbEVmZmVjdFRp
bWluZy5oCkBAIC0zNCw3ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBP
cHRpb25hbEVmZmVjdFRpbWluZyB7Ci0gICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PGRvdWJsZSwg
U3RyaW5nPj4gZHVyYXRpb247CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8ZG91Ymxl
LCBTdHJpbmc+PiBkdXJhdGlvbjsKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gaXRlcmF0aW9u
czsgLy8gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgYSBNYXJrYWJsZURvdWJsZSBzaW5jZSB3ZSBuZWVk
IHRvIGNoZWNrIGZvciBhIE5hTiB2YWx1ZS4KICAgICBNYXJrYWJsZURvdWJsZSBkZWxheTsKICAg
ICBNYXJrYWJsZURvdWJsZSBlbmREZWxheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmlu
ZGV4IGM4Yjc1N2M5ZmM2YTUyNGZmMTZjZjYwY2M2NmVlOTBhYTBhYzUwNDAuLjU5YTUzNDFjZGEw
ZDk0OGI5YzhmMzU2YzFjNTk4ZTVmYjY2ZTEwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlw
ZXMuaApAQCAtMjM2LDExICsyMzYsMTEgQEAgc3RydWN0IElETEVycm9yIDogSURMVW5zdXBwb3J0
ZWRUeXBlIHsgfTsKIHN0cnVjdCBJRExET01FeGNlcHRpb24gOiBJRExVbnN1cHBvcnRlZFR5cGUg
eyB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUcz4KLXN0cnVjdCBJRExVbmlvbiA6IElETFR5
cGU8VmFyaWFudDx0eXBlbmFtZSBUczo6SW1wbGVtZW50YXRpb25UeXBlLi4uPj4geworc3RydWN0
IElETFVuaW9uIDogSURMVHlwZTxzdGQ6OnZhcmlhbnQ8dHlwZW5hbWUgVHM6OkltcGxlbWVudGF0
aW9uVHlwZS4uLj4+IHsKICAgICB1c2luZyBUeXBlTGlzdCA9IGJyaWdhbmQ6Omxpc3Q8VHMuLi4+
OwogCi0gICAgdXNpbmcgUGFyYW1ldGVyVHlwZSA9IGNvbnN0IFZhcmlhbnQ8dHlwZW5hbWUgVHM6
OkltcGxlbWVudGF0aW9uVHlwZS4uLj4mOwotICAgIHVzaW5nIE51bGxhYmxlUGFyYW1ldGVyVHlw
ZSA9IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmFyaWFudDx0eXBlbmFtZSBUczo6SW1wbGVtZW50YXRp
b25UeXBlLi4uPj4mOworICAgIHVzaW5nIFBhcmFtZXRlclR5cGUgPSBjb25zdCBzdGQ6OnZhcmlh
bnQ8dHlwZW5hbWUgVHM6OkltcGxlbWVudGF0aW9uVHlwZS4uLj4mOworICAgIHVzaW5nIE51bGxh
YmxlUGFyYW1ldGVyVHlwZSA9IGNvbnN0IHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PHR5cGVu
YW1lIFRzOjpJbXBsZW1lbnRhdGlvblR5cGUuLi4+PiY7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdHJ1Y3QgSURMQnVmZmVyU291cmNlIDogSURMV3JhcHBlcjxUPiB7IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9CdWZmZXJTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0J1ZmZlclNvdXJjZS5oCmluZGV4IGIyZjFjNjM1ZmJmNzdkNDRj
ZDYyMjJjMDQ0MTA4YzEzNTE1ZmI0MWQuLmY4MTA1OGM5YTU0OGRkZDIyYTNlYzE3OTRkNWY2YWU3
NzE0Yjg0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0J1ZmZlclNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0J1ZmZlclNvdXJjZS5oCkBA
IC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQnVmZmVyU291cmNl
IHsKIHB1YmxpYzoKLSAgICB1c2luZyBWYXJpYW50VHlwZSA9IFdURjo6VmFyaWFudDxSZWZQdHI8
SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4+OworICAgIHVz
aW5nIFZhcmlhbnRUeXBlID0gc3RkOjp2YXJpYW50PFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyVmll
dz4sIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPj47CiAKICAgICBCdWZmZXJTb3VyY2UoKSB7IH0K
ICAgICBCdWZmZXJTb3VyY2UoVmFyaWFudFR5cGUmJiB2YXJpYW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oCmluZGV4IGU0Y2Nk
YmE2MmQ4NDgzYTc0MGNhN2EwNDNkMmJhZWM5Y2M1MTZhZGEuLjk5NTYyOWExNTM3N2VlMDk2OGUw
MmVmN2I2OGEyOGI0Y2EwOTUyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVmFsdWVJbldyYXBwZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1ZhbHVlSW5XcmFwcGVkT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToK
ICAgICAvLyB3ZSBnZXQgbnVsbCByYXRoZXIgdGhhbiBhIGRhbmdsaW5nIHBvaW50ZXIgdG8gYSBk
ZWxldGVkIG9iamVjdC4KICAgICB1c2luZyBXZWFrID0gSlNDOjpXZWFrPEpTQzo6SlNDZWxsPjsK
ICAgICAvLyBGSVhNRTogV291bGQgc3RvcmluZyBhIHNlcGFyYXRlIEpTVmFsdWUgYWxvbmdzaWRl
IGEgV2VhayBiZSBiZXR0ZXIgdGhhbiB1c2luZyBhIFZhcmlhbnQ/Ci0gICAgdXNpbmcgVmFsdWUg
PSBWYXJpYW50PEpTQzo6SlNWYWx1ZSwgV2Vhaz47CisgICAgdXNpbmcgVmFsdWUgPSBzdGQ6OnZh
cmlhbnQ8SlNDOjpKU1ZhbHVlLCBXZWFrPjsKICAgICBzdGF0aWMgVmFsdWUgbWFrZVZhbHVlKEpT
Qzo6SlNWYWx1ZSk7CiAgICAgVmFsdWUgbV92YWx1ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtLmgKaW5kZXggYTJlNzNhZDU1ZGViNTgwOGM5YWM3NzI1NzJhYTZiMGI4
OTU0ZmRhOC4uMmVkNGYyMTllZjU2MzI0NTgwMmY3OWU1ODVhMjFhMDYxOWRlNGQ0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaApAQCAtNDUsOCArNDUsOCBAQCBjbGFz
cyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzOwogY2xhc3MgQ3J5cHRvS2V5OwogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIAotdXNpbmcgS2V5RGF0YSA9IFZhcmlhbnQ8VmVjdG9yPHVp
bnQ4X3Q+LCBKc29uV2ViS2V5PjsKLXVzaW5nIEtleU9yS2V5UGFpciA9IFZhcmlhbnQ8UmVmUHRy
PENyeXB0b0tleT4sIENyeXB0b0tleVBhaXI+OwordXNpbmcgS2V5RGF0YSA9IHN0ZDo6dmFyaWFu
dDxWZWN0b3I8dWludDhfdD4sIEpzb25XZWJLZXk+OwordXNpbmcgS2V5T3JLZXlQYWlyID0gc3Rk
Ojp2YXJpYW50PFJlZlB0cjxDcnlwdG9LZXk+LCBDcnlwdG9LZXlQYWlyPjsKIAogY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENyeXB0b0FsZ29yaXRo
bT4gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tl
eS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5oCmluZGV4IDBlYmM1NzIwNDRm
OTJmMDk5YmEwNWMzNDJlOWRlNzExNjI4MTExMDYuLjkzMjNlNGNiNTJiNzIwNTljOTI1ZjZhMGVi
Nzg3ZWI1NGZlNWVhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9L
ZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5LmgKQEAgLTU2LDcgKzU2
LDcgQEAgZW51bSBjbGFzcyBDcnlwdG9LZXlDbGFzcyB7CiBjbGFzcyBDcnlwdG9LZXkgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q3J5cHRvS2V5PiB7CiBwdWJsaWM6CiAgICAgdXNpbmcg
VHlwZSA9IENyeXB0b0tleVR5cGU7Ci0gICAgdXNpbmcgS2V5QWxnb3JpdGhtID0gVmFyaWFudDxD
cnlwdG9LZXlBbGdvcml0aG0sIENyeXB0b0Flc0tleUFsZ29yaXRobSwgQ3J5cHRvRWNLZXlBbGdv
cml0aG0sIENyeXB0b0htYWNLZXlBbGdvcml0aG0sIENyeXB0b1JzYUhhc2hlZEtleUFsZ29yaXRo
bSwgQ3J5cHRvUnNhS2V5QWxnb3JpdGhtPjsKKyAgICB1c2luZyBLZXlBbGdvcml0aG0gPSBzdGQ6
OnZhcmlhbnQ8Q3J5cHRvS2V5QWxnb3JpdGhtLCBDcnlwdG9BZXNLZXlBbGdvcml0aG0sIENyeXB0
b0VjS2V5QWxnb3JpdGhtLCBDcnlwdG9IbWFjS2V5QWxnb3JpdGhtLCBDcnlwdG9Sc2FIYXNoZWRL
ZXlBbGdvcml0aG0sIENyeXB0b1JzYUtleUFsZ29yaXRobT47CiAKICAgICBDcnlwdG9LZXkoQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgVHlwZSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5
VXNhZ2VCaXRtYXApOwogICAgIHZpcnR1YWwgfkNyeXB0b0tleSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L1N1YnRsZUNyeXB0by5oCmluZGV4IDUzNjUxMjNiN2E4M2NiOWIzZDhmOTRiODAyMzE2YmQ2ZDA0
NTAyN2EuLjdkOTJkYWI2YmQwODA4NDE5OTVkZDIyMDEyOGIzMGU1NTYyY2RhYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmgKQEAgLTYwLDggKzYwLDggQEAgcHVibGljOgogCiAg
ICAgdXNpbmcgS2V5Rm9ybWF0ID0gQ3J5cHRvS2V5Rm9ybWF0OwogCi0gICAgdXNpbmcgQWxnb3Jp
dGhtSWRlbnRpZmllciA9IFZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4sIFN0cmlu
Zz47Ci0gICAgdXNpbmcgS2V5RGF0YVZhcmlhbnQgPSBWYXJpYW50PFJlZlB0cjxKU0M6OkFycmF5
QnVmZmVyVmlldz4sIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgSnNvbldlYktleT47CisgICAg
dXNpbmcgQWxnb3JpdGhtSWRlbnRpZmllciA9IHN0ZDo6dmFyaWFudDxKU0M6OlN0cm9uZzxKU0M6
OkpTT2JqZWN0PiwgU3RyaW5nPjsKKyAgICB1c2luZyBLZXlEYXRhVmFyaWFudCA9IHN0ZDo6dmFy
aWFudDxSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+LCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4sIEpzb25XZWJLZXk+OwogCiAgICAgdm9pZCBlbmNyeXB0KEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBBbGdvcml0aG1JZGVudGlmaWVyJiYsIENyeXB0b0tleSYsIEJ1ZmZlclNvdXJjZSYmIGRhdGEs
IFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogICAgIHZvaWQgZGVjcnlwdChKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgQWxnb3JpdGhtSWRlbnRpZmllciYmLCBDcnlwdG9LZXkmLCBCdWZmZXJTb3VyY2Um
JiBkYXRhLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1FY2RzYVBhcmFtcy5o
CmluZGV4IDcyNjM2OTc2MTM5MjNhN2Y1NjllNWRhODk3MDgzZjE3N2JkMDFhY2YuLjg0ZjMyZmNj
OWIxOGZjZTUxYmQ3YWE4NDQzNjY1MzdkMTY1MGQ0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtRWNkc2FQYXJh
bXMuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDcnlwdG9B
bGdvcml0aG1FY2RzYVBhcmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzIHsKIHB1YmxpYzoKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgbWVyZ2luZyBoYXNoIGFuZCBo
YXNoSWRlbnRpZmllci4KLSAgICBWYXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBT
dHJpbmc+IGhhc2g7CisgICAgc3RkOjp2YXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+
LCBTdHJpbmc+IGhhc2g7CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoSWRlbnRp
ZmllcjsKIAogICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IENsYXNzOjpFY2RzYVBhcmFtczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSGtkZlBhcmFtcy5oIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSGtkZlBhcmFtcy5oCmluZGV4IDkyYWIz
ZTYwNDRkY2RmNWFiN2MwZDM5OTA0OGVkZjM3Zjg2MTM3MWMuLjk2MTg4NjM5MTBjNjY5MzliY2E1
NmNjMWQxZGNjM2E1MmI2ZTUwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9w
YXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhrZGZQYXJhbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Ia2RmUGFyYW1zLmgKQEAgLTM4LDcg
KzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSGtkZlBh
cmFtcyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKIHB1YmxpYzoK
ICAgICAvLyBGSVhNRTogQ29uc2lkZXIgbWVyZ2luZyBoYXNoIGFuZCBoYXNoSWRlbnRpZmllci4K
LSAgICBWYXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBTdHJpbmc+IGhhc2g7Cisg
ICAgc3RkOjp2YXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBTdHJpbmc+IGhhc2g7
CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoSWRlbnRpZmllcjsKICAgICBCdWZm
ZXJTb3VyY2Ugc2FsdDsKICAgICBCdWZmZXJTb3VyY2UgaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNL
ZXlQYXJhbXMuaAppbmRleCA5ZDEwOWMwZjg0YjZjYzhjZGVmY2IzNmEwNWFmM2U2NzJhNzhlMWFk
Li40ZGU5M2Q5NzhjNTg2OTQ0NTNlMTRlMWE1OTc0Mjk1ODE3OWQzNGQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFy
YW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3Jp
dGhtSG1hY0tleVBhcmFtcy5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyB7CiBwdWJsaWM6CiAgICAgLy8gRklYTUU6IENvbnNpZGVyIG1l
cmdpbmcgaGFzaCBhbmQgaGFzaElkZW50aWZpZXIuCi0gICAgVmFyaWFudDxKU0M6OlN0cm9uZzxK
U0M6OkpTT2JqZWN0PiwgU3RyaW5nPiBoYXNoOworICAgIHN0ZDo6dmFyaWFudDxKU0M6OlN0cm9u
ZzxKU0M6OkpTT2JqZWN0PiwgU3RyaW5nPiBoYXNoOwogICAgIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgaGFzaElkZW50aWZpZXI7CiAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGxlbmd0aDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUGJrZGYyUGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9D
cnlwdG9BbGdvcml0aG1QYmtkZjJQYXJhbXMuaAppbmRleCA0YTc5YzdjMzEyZDg1ODZjNjgxZmMz
NzkyNTQ4MGQ3MzIzOGM1MGZkLi4yYWZmMTgyYzQyZjlhZmVjYmFmMGQ0ODUzOTFkY2E5NWRjZWMx
YzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9B
bGdvcml0aG1QYmtkZjJQYXJhbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1QYmtkZjJQYXJhbXMuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJs
aWM6CiAgICAgQnVmZmVyU291cmNlIHNhbHQ7CiAgICAgdW5zaWduZWQgbG9uZyBpdGVyYXRpb25z
OwogICAgIC8vIEZJWE1FOiBDb25zaWRlciBtZXJnaW5nIGhhc2ggYW5kIGhhc2hJZGVudGlmaWVy
LgotICAgIFZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4sIFN0cmluZz4gaGFzaDsK
KyAgICBzdGQ6OnZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4sIFN0cmluZz4gaGFz
aDsKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hJZGVudGlmaWVyOwogCiAgICAg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBzYWx0VmVjdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUhhc2hlZElt
cG9ydFBhcmFtcy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmgKaW5kZXggZWUwNDQ5MzEzNDZiZjE2MDdmMWU2
ZmM5Mzk0MWFmYTllMjc4MDkxYy4uNGVkNWZmNDlmNWZjYTNmZDViMGI4ZWY0ZWMyZTMxZGRlZTVj
MzcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRv
QWxnb3JpdGhtUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmgKQEAg
LTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3J5cHRvQWxnb3JpdGht
UnNhSGFzaGVkSW1wb3J0UGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMgewogcHVibGljOgogICAgIC8vIEZJWE1FOiBDb25zaWRlciBtZXJnaW5nIGhhc2ggYW5k
IGhhc2hJZGVudGlmaWVyLgotICAgIFZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4s
IFN0cmluZz4gaGFzaDsKKyAgICBzdGQ6OnZhcmlhbnQ8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVj
dD4sIFN0cmluZz4gaGFzaDsKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hJZGVu
dGlmaWVyOwogCiAgICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gQ2xhc3M6OlJzYUhhc2hlZEltcG9ydFBhcmFtczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkS2V5R2VuUGFy
YW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1S
c2FIYXNoZWRLZXlHZW5QYXJhbXMuaAppbmRleCBhZTViMmMyNWJkYmUwNzViYWIyYTM2ODNiOWFk
NWY3ZTk5YTAxZGJmLi5mZDNjYWQwMzdhMjNiYTM0YjBjYWI1M2E5MDViYjZiN2YxMTRkMDU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1Sc2FIYXNoZWRLZXlHZW5QYXJhbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFy
YW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FIYXNoZWRLZXlHZW5QYXJhbXMuaApAQCAtMzcsNyAr
MzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FIYXNo
ZWRLZXlHZW5QYXJhbXMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFy
YW1zIHsKIHB1YmxpYzoKICAgICAvLyBGSVhNRTogQ29uc2lkZXIgbWVyZ2luZyBoYXNoIGFuZCBo
YXNoSWRlbnRpZmllci4KLSAgICBWYXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+LCBT
dHJpbmc+IGhhc2g7CisgICAgc3RkOjp2YXJpYW50PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+
LCBTdHJpbmc+IGhhc2g7CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoSWRlbnRp
ZmllcjsKIAogICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IENsYXNzOjpSc2FIYXNoZWRLZXlHZW5QYXJhbXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q3VzdG9tUHJvcGVydHlWYWx1ZS5oCmluZGV4IDM0MzgyYTAwMmM3ZTVhOWM5ZTYyNzc0ZWZmOTU5
M2I2NzM1NWEyMGIuLjM4Yzc5YzJkYWU4ZDFiZGQ0NDI4YmJlZDMyOWY4ZjM4ZWVmMzU0MWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXN0b21Qcm9wZXJ0eVZhbHVlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1c3RvbVByb3BlcnR5VmFsdWUuaApAQCAtMzgsNyAr
MzgsNyBAQCBjbGFzcyBDU1NQYXJzZXJUb2tlbjsKIAogY2xhc3MgQ1NTQ3VzdG9tUHJvcGVydHlW
YWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6Ci0gICAgdXNpbmcgVmFyaWFu
dFZhbHVlID0gVmFyaWFudDxzdGQ6Om1vbm9zdGF0ZSwgUmVmPENTU1ZhcmlhYmxlUmVmZXJlbmNl
VmFsdWU+LCBDU1NWYWx1ZUlELCBSZWY8Q1NTVmFyaWFibGVEYXRhPiwgTGVuZ3RoLCBSZWY8U3R5
bGVJbWFnZT4+OworICAgIHVzaW5nIFZhcmlhbnRWYWx1ZSA9IHN0ZDo6dmFyaWFudDxzdGQ6Om1v
bm9zdGF0ZSwgUmVmPENTU1ZhcmlhYmxlUmVmZXJlbmNlVmFsdWU+LCBDU1NWYWx1ZUlELCBSZWY8
Q1NTVmFyaWFibGVEYXRhPiwgTGVuZ3RoLCBSZWY8U3R5bGVJbWFnZT4+OwogCiAgICAgc3RhdGlj
IFJlZjxDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlPiBjcmVhdGVFbXB0eShjb25zdCBBdG9tU3RyaW5n
JiBuYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4LmNwcAppbmRleCA3ODgyM2RjMTJhYjNlMWYy
NDYxNWEyNWQ2NDlhMTM2ZjNiZDhiZDg3Li45YzU4ZTBkMTcwMzRlMjJlMzViZjBjNmVkMjg1ZjFk
YTk2YzM4NDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4LmNwcApAQCAtMzQsNyArMzQsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBodHRwczovL2RyYWZ0cy5meHRmLm9yZy9nZW9tZXRy
eS8jZG9tLWRvbW1hdHJpeHJlYWRvbmx5LWRvbW1hdHJpeHJlYWRvbmx5Ci1FeGNlcHRpb25PcjxS
ZWY8RE9NTWF0cml4Pj4gRE9NTWF0cml4OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RkOjpvcHRpb25hbDxWYXJpYW50PFN0cmluZywgVmVj
dG9yPGRvdWJsZT4+PiYmIGluaXQpCitFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4Pj4gRE9NTWF0
cml4OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8ZG91YmxlPj4+JiYg
aW5pdCkKIHsKICAgICBpZiAoIWluaXQpCiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERP
TU1hdHJpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4LmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4LmgKaW5kZXggZDc1Njg0MDU4OGIwMWIwOTk1MTFm
NDY1NTVkYzBhNGIxZTE4MGM0NC4uYzIzOGE2NzE1OGU4MzM1NmE4ZTQ4ZmYxNzQ5N2JhNTJlYTdh
YjliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXguaApAQCAtMzMsNyArMzMsNyBAQCBjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBET01NYXRyaXggOiBwdWJsaWMgRE9NTWF0cml4
UmVhZE9ubHkgewogcHVibGljOgotICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4
Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8
U3RyaW5nLCBWZWN0b3I8ZG91YmxlPj4+JiYpOworICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8
RE9NTWF0cml4Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFs
PHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZlY3Rvcjxkb3VibGU+Pj4mJik7CiAKICAgICBzdGF0aWMg
UmVmPERPTU1hdHJpeD4gY3JlYXRlKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgs
IElzMkQgaXMyRCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0
cml4UmVhZE9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmNw
cAppbmRleCBjOGM1YmQ0OTNkY2E1Y2U4Yzc2MzA1ZjRkMjg0YTMyYWQzMmYxNzUwLi44YjBjZWY1
NTU1ZjMyMjdjZDNhZmNhMzY4MDY0ZWQyYTI4YTBmZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRE9NTWF0cml4UmVhZE9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
T01NYXRyaXhSZWFkT25seS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERPTU1hdHJpeFJlYWRPbmx5KTsKIAogLy8g
aHR0cHM6Ly9kcmFmdHMuZnh0Zi5vcmcvZ2VvbWV0cnkvI2RvbS1kb21tYXRyaXhyZWFkb25seS1k
b21tYXRyaXhyZWFkb25seQotRXhjZXB0aW9uT3I8UmVmPERPTU1hdHJpeFJlYWRPbmx5Pj4gRE9N
TWF0cml4UmVhZE9ubHk6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8ZG91Ymxl
Pj4+JiYgaW5pdCkKK0V4Y2VwdGlvbk9yPFJlZjxET01NYXRyaXhSZWFkT25seT4+IERPTU1hdHJp
eFJlYWRPbmx5OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8ZG91Ymxl
Pj4+JiYgaW5pdCkKIHsKICAgICBpZiAoIWluaXQpCiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERPTU1hdHJpeFJlYWRPbmx5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
T01NYXRyaXhSZWFkT25seS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5
LmgKaW5kZXggYjI3NDFiMGQxYWRiN2Q0YWIwNGE0ZjFlNzcxNzUwMDQyZDBjYWIyNy4uNmEzYzE3
OTEwNjZlNzk5N2M3MzMyNzYzNTAwNzc3YjQ0YTkxMzUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0RPTU1hdHJpeFJlYWRPbmx5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RP
TU1hdHJpeFJlYWRPbmx5LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IERPTVBvaW50SW5pdDsK
IGNsYXNzIERPTU1hdHJpeFJlYWRPbmx5IDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGlj
IFJlZkNvdW50ZWQ8RE9NTWF0cml4UmVhZE9ubHk+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKERPTU1hdHJpeFJlYWRPbmx5KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8
UmVmPERPTU1hdHJpeFJlYWRPbmx5Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBz
dGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8ZG91YmxlPj4+JiYpOworICAgIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8RE9NTWF0cml4UmVhZE9ubHk+PiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgVmVjdG9y
PGRvdWJsZT4+PiYmKTsKIAogICAgIGVudW0gY2xhc3MgSXMyRCB7IE5vLCBZZXMgfTsKICAgICBz
dGF0aWMgUmVmPERPTU1hdHJpeFJlYWRPbmx5PiBjcmVhdGUoY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCwgSXMyRCBpczJEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaAppbmRleCA5NzdmM2E5
OWFjNGExNzZjMDY2MzBlN2M3ZDBhYWRkOTUwMWI1ZDU5Li5hNzIwMDlmZDUxMWYxYTBhYTY1ZTI3
MDk1ZjY5YzFiNDZjZmY0ZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuaApAQCAtNTMsNyArNTMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBkaXNwbGF5OwogICAgIH07CiAgICAgCi0gICAgdXNp
bmcgU291cmNlID0gVmFyaWFudDxTdHJpbmcsIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgUmVm
UHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3Pj47CisgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJp
YW50PFN0cmluZywgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+LCBSZWZQdHI8SlNDOjpBcnJheUJ1
ZmZlclZpZXc+PjsKICAgICBzdGF0aWMgUmVmPEZvbnRGYWNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgZmFtaWx5LCBTb3VyY2UmJiwgY29uc3QgRGVzY3Jp
cHRvcnMmKTsKICAgICBzdGF0aWMgUmVmPEZvbnRGYWNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIENTU0ZvbnRGYWNlJik7CiAgICAgdmlydHVhbCB+Rm9udEZhY2UoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJ1bGUuaAppbmRleCAxZTJhMTdlOWQ0ZDRjNWVkYjhjZDg4MzA1NjI3OTdmMDdkOGM4
NjcyLi5lYTYwMzE5M2M2MDgxNzVlNDEzNzkwOTcwM2RjMWE0MjIwNTg5NDM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUnVsZS5oCkBAIC0zMDksNyArMzA5LDcgQEAgcHJpdmF0ZToKICAgICBTdHlsZVJ1bGVM
YXllcihDYXNjYWRlTGF5ZXJOYW1lJiYsIHN0ZDo6dW5pcXVlX3B0cjxEZWZlcnJlZFN0eWxlR3Jv
dXBSdWxlTGlzdD4mJik7CiAgICAgU3R5bGVSdWxlTGF5ZXIoY29uc3QgU3R5bGVSdWxlTGF5ZXIm
KTsKIAotICAgIFZhcmlhbnQ8Q2FzY2FkZUxheWVyTmFtZSwgVmVjdG9yPENhc2NhZGVMYXllck5h
bWU+PiBtX25hbWVWYXJpYW50OworICAgIHN0ZDo6dmFyaWFudDxDYXNjYWRlTGF5ZXJOYW1lLCBW
ZWN0b3I8Q2FzY2FkZUxheWVyTmFtZT4+IG1fbmFtZVZhcmlhbnQ7CiB9OwogCiAvLyBUaGlzIGlz
IG9ubHkgdXNlZCBieSB0aGUgQ1NTIHBhcnNlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oCmluZGV4IDg1MWE0ZmVhY2NiMWVh
ZTgxMjRlNjA3ZWI0MDM1MDhlMjMyZDc1ZTMuLmJjYTEyNmZiYWQ0MmVjZGI0NjNhNDIwYzM2MDU0
ODdkMjMwNWMwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnMuaApAQCAtNzQsNyArNzQsNyBAQCBzdHJ1Y3QgTGVuZ3RoUmF3
IHsKICAgICBkb3VibGUgdmFsdWU7CiB9OwogCi11c2luZyBMZW5ndGhPclBlcmNlbnRSYXcgPSBW
YXJpYW50PExlbmd0aFJhdywgZG91YmxlPjsKK3VzaW5nIExlbmd0aE9yUGVyY2VudFJhdyA9IHN0
ZDo6dmFyaWFudDxMZW5ndGhSYXcsIGRvdWJsZT47CiAKIHN0ZDo6b3B0aW9uYWw8aW50PiBjb25z
dW1lSW50ZWdlclJhdyhDU1NQYXJzZXJUb2tlblJhbmdlJiwgZG91YmxlIG1pbmltdW1WYWx1ZSA9
IC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgpKTsKIFJlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gY29uc3VtZUludGVnZXIoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIGRvdWJsZSBtaW5p
bXVtVmFsdWUgPSAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgoKSk7CkBAIC0xNTUs
MTAgKzE1NSwxMCBAQCBzdHJ1Y3QgRm9udFN0eWxlUmF3IHsKICAgICBDU1NWYWx1ZUlEIHN0eWxl
OwogICAgIHN0ZDo6b3B0aW9uYWw8QW5nbGVSYXc+IGFuZ2xlOwogfTsKLXVzaW5nIEZvbnRXZWln
aHRSYXcgPSBWYXJpYW50PENTU1ZhbHVlSUQsIGRvdWJsZT47Ci11c2luZyBGb250U2l6ZVJhdyA9
IFZhcmlhbnQ8Q1NTVmFsdWVJRCwgQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpMZW5ndGhPclBl
cmNlbnRSYXc+OwotdXNpbmcgTGluZUhlaWdodFJhdyA9IFZhcmlhbnQ8Q1NTVmFsdWVJRCwgZG91
YmxlLCBDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6Okxlbmd0aE9yUGVyY2VudFJhdz47Ci11c2lu
ZyBGb250RmFtaWx5UmF3ID0gVmFyaWFudDxDU1NWYWx1ZUlELCBTdHJpbmc+OwordXNpbmcgRm9u
dFdlaWdodFJhdyA9IHN0ZDo6dmFyaWFudDxDU1NWYWx1ZUlELCBkb3VibGU+OwordXNpbmcgRm9u
dFNpemVSYXcgPSBzdGQ6OnZhcmlhbnQ8Q1NTVmFsdWVJRCwgQ1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzOjpMZW5ndGhPclBlcmNlbnRSYXc+OwordXNpbmcgTGluZUhlaWdodFJhdyA9IHN0ZDo6dmFy
aWFudDxDU1NWYWx1ZUlELCBkb3VibGUsIENTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6TGVuZ3Ro
T3JQZXJjZW50UmF3PjsKK3VzaW5nIEZvbnRGYW1pbHlSYXcgPSBzdGQ6OnZhcmlhbnQ8Q1NTVmFs
dWVJRCwgU3RyaW5nPjsKIAogc3RydWN0IEZvbnRSYXcgewogICAgIHN0ZDo6b3B0aW9uYWw8Rm9u
dFN0eWxlUmF3PiBzdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L0NTU051bWVyaWNWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y1ZhbHVlLmgKaW5kZXggYmZkZGU2NTZjMDExMTQ0MWE4MzUzOTJhMjgwNjFiMmZmMDY4ZWQ1Yy4u
OGVhYzU3ZTFmZGVmMmFmYTA2NGZmNzMxYjExZjEzOTFiMjhmZjA2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmgKQEAgLTQyLDcgKzQyLDcgQEAgdGVt
cGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogY2xhc3MgQ1NTTnVtZXJpY1ZhbHVl
IDogcHVibGljIENTU1N0eWxlVmFsdWUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQ1NT
TnVtZXJpY1ZhbHVlKTsKIHB1YmxpYzoKLSAgICB1c2luZyBDU1NOdW1iZXJpc2ggPSBWYXJpYW50
PGRvdWJsZSwgUmVmUHRyPENTU051bWVyaWNWYWx1ZT4+OworICAgIHVzaW5nIENTU051bWJlcmlz
aCA9IHN0ZDo6dmFyaWFudDxkb3VibGUsIFJlZlB0cjxDU1NOdW1lcmljVmFsdWU+PjsKIAogICAg
IFJlZjxDU1NOdW1lcmljVmFsdWU+IGFkZChWZWN0b3I8Q1NTTnVtYmVyaXNoPiYmKTsKICAgICBS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPiBzdWIoVmVjdG9yPENTU051bWJlcmlzaD4mJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NVbnBhcnNlZFZhbHVlLmgKaW5kZXggMTMwMGE5OTYx
NGM5NjY1NTMyM2FmYTQ2MzgwZjA0MzljYjhkNThiYy4uZTI0YzlhNWUyMzUwODI4NWQwNGI0MjE0
M2U3NGQ4NmExNmFhNTYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
Q1NTVW5wYXJzZWRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1Vu
cGFyc2VkVmFsdWUuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB0ZW1w
bGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiBjbGFzcyBDU1NPTVZhcmlhYmxlUmVm
ZXJlbmNlVmFsdWU7CiBjbGFzcyBDU1NQYXJzZXJUb2tlblJhbmdlOwotdXNpbmcgQ1NTVW5wYXJz
ZWRTZWdtZW50ID0gVmFyaWFudDxTdHJpbmcsIFJlZlB0cjxDU1NPTVZhcmlhYmxlUmVmZXJlbmNl
VmFsdWU+PjsKK3VzaW5nIENTU1VucGFyc2VkU2VnbWVudCA9IHN0ZDo6dmFyaWFudDxTdHJpbmcs
IFJlZlB0cjxDU1NPTVZhcmlhYmxlUmVmZXJlbmNlVmFsdWU+PjsKIAogY2xhc3MgQ1NTVW5wYXJz
ZWRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NTdHlsZVZhbHVlIHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKENTU1VucGFyc2VkVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBhMjI1
NGQxNThlNDM5NmFhOTE3YjI1NmI3NjAyNDFkZjAwZjY2ZDdiLi4zMzI5NDYyYTA5NmVjMGRjYmUx
ZjU1ZWMzMGQ4OTIwZjYxOTg3Y2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzE5LDcgKzMx
OSw3IEBAIGVudW0gY2xhc3MgQ3VzdG9tRWxlbWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzIHsKICAg
ICBDb25mbGljdHNXaXRoU3RhbmRhcmRFbGVtZW50TmFtZQogfTsKIAotdXNpbmcgUmVuZGVyaW5n
Q29udGV4dCA9IFZhcmlhbnQ8Cit1c2luZyBSZW5kZXJpbmdDb250ZXh0ID0gc3RkOjp2YXJpYW50
PAogI2lmIEVOQUJMRShXRUJHTCkKICAgICBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiwK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAppbmRleCAzYWZjYTZhMjViYzZj
ZTlmZDMxM2FkOWFiMjY5MjQ2YjBkOTQ2ZDI1Li5mOGRjNDNkY2IxMjNkMTUzYjQyMDRlYzlmZGU1
N2UyYWUzNjQxN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaApAQCAtOTYsNyAr
OTYsNyBAQCBwdWJsaWM6CiAgICAgfTsKICNlbmRpZgogCi0gICAgdXNpbmcgRGF0YSA9IFZhcmlh
bnQ8CisgICAgdXNpbmcgRGF0YSA9IHN0ZDo6dmFyaWFudDwKICAgICAgICAgU3RyaW5nCiAgICAg
ICAgICwgRGljdGF0aW9uRGF0YSAvLyBEaWN0YXRpb25BbHRlcm5hdGl2ZXMKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGYyYWRiNjY1YTU0MjVjYThm
Y2U5NWI2ODhkYWIyNDBkYzg3ODcwOWYuLjI2NGVjNWJkYmZmYjA3NzJhMmZkMTJjOTZkNzE1Yzk2
ZTMyYmNhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTkwNiw3ICs5MDYsNyBAQCBpbmxp
bmUgU2Nyb2xsQWxpZ25tZW50IHRvU2Nyb2xsQWxpZ25tZW50Rm9yQmxvY2tEaXJlY3Rpb24oc3Rk
OjpvcHRpb25hbDxTY3JvbGxMbwogICAgIH0KIH0KIAotdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRv
VmlldyhzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8Ym9vbCwgU2Nyb2xsSW50b1ZpZXdPcHRpb25zPj4m
JiBhcmcpCit2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KHN0ZDo6b3B0aW9uYWw8c3RkOjp2
YXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXJnKQogewogICAgIGRvY3Vt
ZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKQEAgLTQ2MjEs
MTMgKzQ2MjEsMTMgQEAgRWxlbWVudCogRWxlbWVudDo6ZmluZEFuY2hvckVsZW1lbnRGb3JMaW5r
KFN0cmluZyYgb3V0QW5jaG9yTmFtZSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRXhjZXB0
aW9uT3I8UmVmPFdlYkFuaW1hdGlvbj4+IEVsZW1lbnQ6OmFuaW1hdGUoSlNDOjpKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiBr
ZXlmcmFtZXMsIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIEtleWZyYW1lQW5pbWF0aW9u
T3B0aW9ucz4+JiYgb3B0aW9ucykKK0V4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBFbGVt
ZW50OjphbmltYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYga2V5ZnJhbWVzLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6
dmFyaWFudDxkb3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYgb3B0aW9ucykKIHsK
ICAgICBTdHJpbmcgaWQgPSAiIjsKLSAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8ZG91YmxlLCBL
ZXlmcmFtZUVmZmVjdE9wdGlvbnM+PiBrZXlmcmFtZUVmZmVjdE9wdGlvbnM7CisgICAgc3RkOjpv
cHRpb25hbDxzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUVmZmVjdE9wdGlvbnM+PiBrZXlm
cmFtZUVmZmVjdE9wdGlvbnM7CiAgICAgaWYgKG9wdGlvbnMpIHsKICAgICAgICAgYXV0byBvcHRp
b25zVmFsdWUgPSBvcHRpb25zLnZhbHVlKCk7Ci0gICAgICAgIFZhcmlhbnQ8ZG91YmxlLCBLZXlm
cmFtZUVmZmVjdE9wdGlvbnM+IGtleWZyYW1lRWZmZWN0T3B0aW9uc1ZhcmlhbnQ7CisgICAgICAg
IHN0ZDo6dmFyaWFudDxkb3VibGUsIEtleWZyYW1lRWZmZWN0T3B0aW9ucz4ga2V5ZnJhbWVFZmZl
Y3RPcHRpb25zVmFyaWFudDsKICAgICAgICAgaWYgKHN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8ZG91
YmxlPihvcHRpb25zVmFsdWUpKQogICAgICAgICAgICAga2V5ZnJhbWVFZmZlY3RPcHRpb25zVmFy
aWFudCA9IFdURjo6Z2V0PGRvdWJsZT4ob3B0aW9uc1ZhbHVlKTsKICAgICAgICAgZWxzZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAppbmRleCA1MGNlN2NiOWQzZWMwNjZkZmMwMDkxNzE5MWFjNTg0YzVjMGMx
YWIxLi4wYzg2MjI5ZjY0ZGM1NjIyYjQzMmJlZTM4YTAyM2FiNzVhNTI2NjRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgaW5saW5lIHVuc2lnbmVk
IGZpbmRBdHRyaWJ1dGVJbmRleEJ5TmFtZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CiAg
ICAgaW5saW5lIHVuc2lnbmVkIGZpbmRBdHRyaWJ1dGVJbmRleEJ5TmFtZShjb25zdCBBdG9tU3Ry
aW5nJiwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKSBjb25zdDsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2Nyb2xsSW50b1ZpZXcoc3RkOjpvcHRpb25hbDxWYXJpYW50PGJvb2ws
IFNjcm9sbEludG9WaWV3T3B0aW9ucz4+JiYgYXJnKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNjcm9sbEludG9WaWV3KHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGJvb2wsIFNjcm9sbElu
dG9WaWV3T3B0aW9ucz4+JiYgYXJnKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbElu
dG9WaWV3KGJvb2wgYWxpZ25Ub1RvcCA9IHRydWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklmTmVlZGVkID0gdHJ1ZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShib29sIGNlbnRl
cklmTm90VmlzaWJsZSA9IHRydWUpOwpAQCAtNjM0LDcgKzYzNCw3IEBAIHB1YmxpYzoKIAogICAg
IEVsZW1lbnQqIGZpbmRBbmNob3JFbGVtZW50Rm9yTGluayhTdHJpbmcmIG91dEFuY2hvck5hbWUp
OwogCi0gICAgRXhjZXB0aW9uT3I8UmVmPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCYsIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYsIHN0ZDo6b3B0aW9uYWw8
VmFyaWFudDxkb3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYpOworICAgIEV4Y2Vw
dGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBK
U0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYmLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxk
b3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYpOwogICAgIFZlY3RvcjxSZWZQdHI8
V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9ucyhzdGQ6Om9wdGlvbmFsPEdldEFuaW1hdGlvbnNP
cHRpb25zPik7CiAKICAgICBFbGVtZW50SWRlbnRpZmllciBjcmVhdGVFbGVtZW50SWRlbnRpZmll
cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCA2ODY2YWYxNjVlYzA3OWI5ZDAzNWJm
MzA2ZGQ1ODc2NjlkMjRiNTkyLi4zZTg3Njk0NzcxMDA2Njg0N2RmMTFlZjU1NWQ5ZTBkMGQzOWRi
NmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtNjgsOSArNjgsOSBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29sIGlzTm9kZSgpIGNvbnN0OwogICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBpc1BheW1lbnRSZXF1ZXN0KCkgY29uc3Q7CiAKLSAg
ICB1c2luZyBBZGRFdmVudExpc3RlbmVyT3B0aW9uc09yQm9vbGVhbiA9IFZhcmlhbnQ8QWRkRXZl
bnRMaXN0ZW5lck9wdGlvbnMsIGJvb2w+OworICAgIHVzaW5nIEFkZEV2ZW50TGlzdGVuZXJPcHRp
b25zT3JCb29sZWFuID0gc3RkOjp2YXJpYW50PEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zLCBib29s
PjsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZEV2ZW50TGlzdGVuZXJGb3JCaW5kaW5ncyhj
b25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFdmVudExpc3RlbmVyPiYmLCBBZGRF
dmVudExpc3RlbmVyT3B0aW9uc09yQm9vbGVhbiYmKTsKLSAgICB1c2luZyBFdmVudExpc3RlbmVy
T3B0aW9uc09yQm9vbGVhbiA9IFZhcmlhbnQ8RXZlbnRMaXN0ZW5lck9wdGlvbnMsIGJvb2w+Owor
ICAgIHVzaW5nIEV2ZW50TGlzdGVuZXJPcHRpb25zT3JCb29sZWFuID0gc3RkOjp2YXJpYW50PEV2
ZW50TGlzdGVuZXJPcHRpb25zLCBib29sPjsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92
ZUV2ZW50TGlzdGVuZXJGb3JCaW5kaW5ncyhjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJl
ZlB0cjxFdmVudExpc3RlbmVyPiYmLCBFdmVudExpc3RlbmVyT3B0aW9uc09yQm9vbGVhbiYmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjxib29sPiBkaXNwYXRjaEV2ZW50Rm9yQmlu
ZGluZ3MoRXZlbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCmluZGV4IDBhOTM0MGQ3
MmFlZjNiZjdkZjY5YzJmNTFiNTAzZmUyMjZhZDY5ZjAuLmFiNWJmMzUxYjBkOWQzY2ZjYzM5MmY2
N2E2Y2U3ZWY4NDFiMWFhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmgKQEAgLTQwLDkg
KzQwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQmxvYjsKIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKLXVzaW5nIE1lc3NhZ2VFdmVudFNvdXJjZSA9IFZhcmlhbnQ8UmVmUHRy
PFdpbmRvd1Byb3h5PiwgUmVmUHRyPE1lc3NhZ2VQb3J0PiwgUmVmUHRyPFNlcnZpY2VXb3JrZXI+
PjsKK3VzaW5nIE1lc3NhZ2VFdmVudFNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8V2luZG93
UHJveHk+LCBSZWZQdHI8TWVzc2FnZVBvcnQ+LCBSZWZQdHI8U2VydmljZVdvcmtlcj4+OwogI2Vs
c2UKLXVzaW5nIE1lc3NhZ2VFdmVudFNvdXJjZSA9IFZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5
PiwgUmVmUHRyPE1lc3NhZ2VQb3J0Pj47Cit1c2luZyBNZXNzYWdlRXZlbnRTb3VyY2UgPSBzdGQ6
OnZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5PiwgUmVmUHRyPE1lc3NhZ2VQb3J0Pj47CiAjZW5k
aWYKIAogY2xhc3MgTWVzc2FnZUV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKQEAgLTczLDcg
KzczLDcgQEAgcHVibGljOgogICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8TWVzc2FnZUV2ZW50U291
cmNlPiYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KICAgICBjb25zdCBWZWN0
b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIHBvcnRzKCkgY29uc3QgeyByZXR1cm4gbV9wb3J0czsg
fQogCi0gICAgdXNpbmcgRGF0YVR5cGUgPSBWYXJpYW50PEpTVmFsdWVJbldyYXBwZWRPYmplY3Qs
IFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBTdHJpbmcsIFJlZjxCbG9iPiwgUmVmPEFycmF5
QnVmZmVyPj47CisgICAgdXNpbmcgRGF0YVR5cGUgPSBzdGQ6OnZhcmlhbnQ8SlNWYWx1ZUluV3Jh
cHBlZE9iamVjdCwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFN0cmluZywgUmVmPEJsb2I+
LCBSZWY8QXJyYXlCdWZmZXI+PjsKICAgICBjb25zdCBEYXRhVHlwZSYgZGF0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YTsgfQogCiAgICAgSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgY2FjaGVkRGF0
YSgpIHsgcmV0dXJuIG1fY2FjaGVkRGF0YTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYmRiODQyNzA1Mzll
MTMxNjYxNDE2OWUwYzdmMDY2OTI3NzI0NmJhNi4uMWYzMWI5ZWExMWNiZTVkYTI1N2Q5Yzk4OTBk
NDNiNmY1MDFkNDE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIFNWR1F1
YWxpZmllZE5hbWU7CiBjbGFzcyBTaGFkb3dSb290OwogY2xhc3MgVG91Y2hFdmVudDsKIAotdXNp
bmcgTm9kZU9yU3RyaW5nID0gVmFyaWFudDxSZWZQdHI8Tm9kZT4sIFN0cmluZz47Cit1c2luZyBO
b2RlT3JTdHJpbmcgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPE5vZGU+LCBTdHJpbmc+OwogCiBjbGFz
cyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRl
eHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENv
bnRyb2xsZXIuaAppbmRleCBmNTUwMDM1NmI2MGNkYmNhZDI5ZGQzYmY3MjU4ZTNhYjI5MmMwNjMy
Li4yNTAyNmFkZTdjNDMwNTkyMGQ3OTkwNTU5YzA3ZTU3NjRiNjdmZDNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaApAQCAtMTI1
LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRGlzbWlzc2VkQnlFZGl0aW5nIHsg
fTsKICAgICBBbHRlcm5hdGl2ZVRleHRUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9vcmlnaW5h
bFRleHQ7Ci0gICAgVmFyaWFudDxBdXRvY29ycmVjdGlvblJlcGxhY2VtZW50LCBEaWN0YXRpb25D
b250ZXh0PiBtX2RldGFpbHM7CisgICAgc3RkOjp2YXJpYW50PEF1dG9jb3JyZWN0aW9uUmVwbGFj
ZW1lbnQsIERpY3RhdGlvbkNvbnRleHQ+IG1fZGV0YWlsczsKIAogICAgIFN0cmluZyBtX29yaWdp
bmFsU3RyaW5nRm9yTGFzdERlbGV0ZWRBdXRvY29ycmVjdGlvbjsKICAgICBQb3NpdGlvbiBtX3Bv
c2l0aW9uRm9yTGFzdERlbGV0ZWRBdXRvY29ycmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAppbmRleCBlYjBjNzY5NjAzZjRkZGUxNGFhNjUw
N2E1MTNlZjI5YWM2YThiMDA5Li5hM2JjOTY5ZmJlNzJhN2I4MGJkZDZmYjY5M2E2OGUxMGNkMzNm
ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
CkBAIC0yODUsNyArMjg1LDcgQEAgYXV0byBUZXh0Q2hlY2tpbmdIZWxwZXI6OmZpbmRGaXJzdE1p
c3NwZWxsZWRXb3JkKCkgY29uc3QgLT4gTWlzc3BlbGxlZFdvcmQKICAgICByZXR1cm4gZmluZE1p
c3NwZWxsZWRXb3JkcyhPcGVyYXRpb246OkZpbmRGaXJzdCkuZmlyc3Q7CiB9CiAKLWF1dG8gVGV4
dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RNaXNzcGVsbGVkV29yZE9yVW5ncmFtbWF0aWNhbFBo
cmFzZShib29sIGNoZWNrR3JhbW1hcikgY29uc3QgLT4gVmFyaWFudDxNaXNzcGVsbGVkV29yZCwg
VW5ncmFtbWF0aWNhbFBocmFzZT4KK2F1dG8gVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmlyc3RN
aXNzcGVsbGVkV29yZE9yVW5ncmFtbWF0aWNhbFBocmFzZShib29sIGNoZWNrR3JhbW1hcikgY29u
c3QgLT4gc3RkOjp2YXJpYW50PE1pc3NwZWxsZWRXb3JkLCBVbmdyYW1tYXRpY2FsUGhyYXNlPgog
ewogICAgIGlmICghdW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtMjkzLDcgKzI5Myw3IEBAIGF1dG8gVGV4dENoZWNraW5nSGVscGVyOjpmaW5kRmly
c3RNaXNzcGVsbGVkV29yZE9yVW5ncmFtbWF0aWNhbFBocmFzZShib29sIGNoZWNrCiAgICAgaWYg
KHBsYXRmb3JtRHJpdmVuVGV4dENoZWNrZXJFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBWYXJpYW50PE1pc3NwZWxsZWRXb3JkLCBVbmdyYW1tYXRpY2FsUGhyYXNlPiBmaXJz
dEZvdW5kSXRlbTsKKyAgICBzdGQ6OnZhcmlhbnQ8TWlzc3BlbGxlZFdvcmQsIFVuZ3JhbW1hdGlj
YWxQaHJhc2U+IGZpcnN0Rm91bmRJdGVtOwogICAgIEdyYW1tYXJEZXRhaWwgZ3JhbW1hckRldGFp
bDsKIAogICAgIFN0cmluZyBtaXNzcGVsbGVkV29yZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1RleHRDaGVja2luZ0hlbHBlci5oCmluZGV4IDgyY2Q5NjEzNTk5ZmY0ZTUyZDMyMmM2YmY1ODQy
NjhmYTM1Njk1Y2QuLmY1N2U0NzU3MWMxYjYxNmUwMGQ1ZWFhOTA5ZWViNDE1MTEzZGMzZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuaApAQCAtOTQsNyAr
OTQsNyBAQCBwdWJsaWM6CiAKICAgICBNaXNzcGVsbGVkV29yZCBmaW5kRmlyc3RNaXNzcGVsbGVk
V29yZCgpIGNvbnN0OwogICAgIFVuZ3JhbW1hdGljYWxQaHJhc2UgZmluZEZpcnN0VW5ncmFtbWF0
aWNhbFBocmFzZSgpIGNvbnN0OwotICAgIFZhcmlhbnQ8TWlzc3BlbGxlZFdvcmQsIFVuZ3JhbW1h
dGljYWxQaHJhc2U+IGZpbmRGaXJzdE1pc3NwZWxsZWRXb3JkT3JVbmdyYW1tYXRpY2FsUGhyYXNl
KGJvb2wgY2hlY2tHcmFtbWFyKSBjb25zdDsKKyAgICBzdGQ6OnZhcmlhbnQ8TWlzc3BlbGxlZFdv
cmQsIFVuZ3JhbW1hdGljYWxQaHJhc2U+IGZpbmRGaXJzdE1pc3NwZWxsZWRXb3JkT3JVbmdyYW1t
YXRpY2FsUGhyYXNlKGJvb2wgY2hlY2tHcmFtbWFyKSBjb25zdDsKIAogICAgIHN0ZDo6b3B0aW9u
YWw8U2ltcGxlUmFuZ2U+IG1hcmtBbGxNaXNzcGVsbGVkV29yZHMoKSBjb25zdDsgLy8gUmV0dXJu
cyB0aGUgcmFuZ2Ugb2YgdGhlIGZpcnN0IG1pc3NwZWxsZWQgd29yZC4KICAgICB2b2lkIG1hcmtB
bGxVbmdyYW1tYXRpY2FsUGhyYXNlcygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oCmluZGV4IDA2NTk5M2ZkNTEwOWM0
Mzg3YWMxOWUzYjg5MDRiYWVjNGVhOGVkNzQuLjBkOTc1YjM2ODk2Mjk3MzYxMTE2Zjg0NzA5YTMy
MTg1MzZlMzg5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlw
dWxhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5p
cHVsYXRpb25Db250cm9sbGVyLmgKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAg
IH07CiAKICAgICAgICAgVHlwZSB0eXBlOwotICAgICAgICBXVEY6OlZhcmlhbnQ8RWxlbWVudFJ1
bGUsIEF0dHJpYnV0ZVJ1bGUsIENsYXNzUnVsZT4gcnVsZTsKKyAgICAgICAgc3RkOjp2YXJpYW50
PEVsZW1lbnRSdWxlLCBBdHRyaWJ1dGVSdWxlLCBDbGFzc1J1bGU+IHJ1bGU7CiAKICAgICAgICAg
Ym9vbCBtYXRjaChjb25zdCBFbGVtZW50JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvQmxvYi5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgKaW5k
ZXggNGVkODZhM2VmODdhODIyNWU5YmFkMDY4NTk0YWJkN2YzOWQ5Y2IwOC4uMjY4ZjJjNmQ0YWU5
MTRhZWE0M2Y0NGY3ODIxMjRiZDNiMThlMzllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9CbG9iLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmgKQEAgLTU3
LDcgKzU3LDcgQEAgY2xhc3MgU2hhcmVkQnVmZmVyOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgRXhjZXB0aW9uT3I7CiAKLXVzaW5nIEJsb2JQYXJ0VmFyaWFudCA9IFZhcmlhbnQ8UmVmUHRy
PEpTQzo6QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+LCBSZWZQdHI8
QmxvYj4sIFN0cmluZz47Cit1c2luZyBCbG9iUGFydFZhcmlhbnQgPSBzdGQ6OnZhcmlhbnQ8UmVm
UHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+LCBSZWZQ
dHI8QmxvYj4sIFN0cmluZz47CiAKIGNsYXNzIEJsb2IgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxl
LCBwdWJsaWMgVVJMUmVnaXN0cmFibGUsIHB1YmxpYyBSZWZDb3VudGVkPEJsb2I+LCBwdWJsaWMg
QWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0VYUE9SVChCbG9i
LCBXRUJDT1JFX0VYUE9SVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAppbmRl
eCA5NDQxODJiN2E2M2IzNDA2YjM0OTA5MGMxMjJlMTNjYWZjNTQ5YzIwLi4yNDNkMzIzMTJmYjc0
ZTIzNDVkYzc5MDNiMDk1YzFlNzA0NmE1ZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJl
YWRlci5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIEZpbGVSZWFkZXI6OmZpcmVFdmVudChj
b25zdCBBdG9tU3RyaW5nJiB0eXBlKQogICAgIGRpc3BhdGNoRXZlbnQoUHJvZ3Jlc3NFdmVudDo6
Y3JlYXRlKHR5cGUsIHRydWUsIG1fbG9hZGVyID8gbV9sb2FkZXItPmJ5dGVzTG9hZGVkKCkgOiAw
LCBtX2xvYWRlciA/IG1fbG9hZGVyLT50b3RhbEJ5dGVzKCkgOiAwKSk7CiB9CiAKLXN0ZDo6b3B0
aW9uYWw8VmFyaWFudDxTdHJpbmcsIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4+IEZpbGVSZWFk
ZXI6OnJlc3VsdCgpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxTdHJpbmcsIFJl
ZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4+IEZpbGVSZWFkZXI6OnJlc3VsdCgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2xvYWRlciB8fCBtX2Vycm9yIHx8IG1fc3RhdGUgIT0gRE9ORSkKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlci5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKaW5kZXgg
ZDlmMjhkYjNjOGU0OGRmYzE2MjU5NDYxYzRiYjhiMmUyYjA4ZmFhNy4uOWQ4YjYwYzk5ZTllMmZj
MWVmNjU2NjdjOTY1MGExOWI1M2Q1OGU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9GaWxlUmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVy
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICBET01FeGNlcHRpb24qIGVycm9yKCkgeyBy
ZXR1cm4gbV9lcnJvci5nZXQoKTsgfQogICAgIEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRUeXBlIHJl
YWRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkVHlwZTsgfQotICAgIHN0ZDo6b3B0aW9uYWw8
VmFyaWFudDxTdHJpbmcsIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPj4+IHJlc3VsdCgpIGNvbnN0
OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFN0cmluZywgUmVmUHRyPEpTQzo6QXJy
YXlCdWZmZXI+Pj4gcmVzdWx0KCkgY29uc3Q7CiAKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7
CiAgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0
d29ya1NlbmRRdWV1ZS5oCmluZGV4IDkxMTRmZTIxNmEyNDcxZDQ1MDI3NGJkZTAzZjgwMTY4MGYx
ZWU3MDUuLmVhZmIwNjcwYzE0NmM1YWQ1NWQyODY1M2JjZjllYWMzYzYyZjFhNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oCkBAIC02Myw3ICs2Myw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzTWVzc2FnZXMoKTsKIAotICAgIHVzaW5n
IE1lc3NhZ2UgPSBWYXJpYW50PENTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+LCBVbmlxdWVSZWY8
QmxvYkxvYWRlcj4+OworICAgIHVzaW5nIE1lc3NhZ2UgPSBzdGQ6OnZhcmlhbnQ8Q1N0cmluZywg
UmVmPFNoYXJlZEJ1ZmZlcj4sIFVuaXF1ZVJlZjxCbG9iTG9hZGVyPj47CiAgICAgRGVxdWU8TWVz
c2FnZT4gbV9xdWV1ZTsKIAogICAgIFdyaXRlU3RyaW5nIG1fd3JpdGVTdHJpbmc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTUZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RPTUZvcm1EYXRhLmgKaW5kZXggZWZiNDliYmU2Y2NmYmI5MmFlZDExMTA3N2UxZTdjMTQ3
M2JjZjQ2Mi4uMzM3ZTIwMGIyYjAzNDdmOWI2YjQ4ZGEwYTE2YjYzNWNiYmVkNjYyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NRm9ybURhdGEuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBIVE1MRm9ybUVs
ZW1lbnQ7CiAKIGNsYXNzIERPTUZvcm1EYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NRm9ybURh
dGE+IHsKIHB1YmxpYzoKLSAgICB1c2luZyBGb3JtRGF0YUVudHJ5VmFsdWUgPSBWYXJpYW50PFJl
ZlB0cjxGaWxlPiwgU3RyaW5nPjsKKyAgICB1c2luZyBGb3JtRGF0YUVudHJ5VmFsdWUgPSBzdGQ6
OnZhcmlhbnQ8UmVmUHRyPEZpbGU+LCBTdHJpbmc+OwogCiAgICAgc3RydWN0IEl0ZW0gewogICAg
ICAgICBTdHJpbmcgbmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFs
bENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5j
cHAKaW5kZXggNzc5YjE4MjQ3MjEyNjI3N2E3NDU0Y2EwMGQ1YjM3MzM4ZTkyZTIxOC4uMjEzNzQy
ZWI4YTE3OTZjZWE3MDUwNjAyYzhlODA3NmQ0Mjk2MDNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQWxsQ29sbGVjdGlvbi5jcHAKQEAgLTQ3LDI4ICs0NywyOCBAQCBpbmxpbmUgSFRNTEFs
bENvbGxlY3Rpb246OkhUTUxBbGxDb2xsZWN0aW9uKERvY3VtZW50JiBkb2N1bWVudCwgQ29sbGVj
dGlvblR5cGUgdAogfQogCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS9pbmZyYXN0cnVjdHVyZS5odG1sI2RvbS1odG1sYWxsY29sbGVjdGlvbi1pdGVtCi1zdGQ6Om9w
dGlvbmFsPFZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+Pj4g
SFRNTEFsbENvbGxlY3Rpb246Om5hbWVkT3JJbmRleGVkSXRlbU9ySXRlbXMoY29uc3QgQXRvbVN0
cmluZyYgbmFtZU9ySW5kZXgpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxSZWZQ
dHI8SFRNTENvbGxlY3Rpb24+LCBSZWZQdHI8RWxlbWVudD4+PiBIVE1MQWxsQ29sbGVjdGlvbjo6
bmFtZWRPckluZGV4ZWRJdGVtT3JJdGVtcyhjb25zdCBBdG9tU3RyaW5nJiBuYW1lT3JJbmRleCkg
Y29uc3QKIHsKICAgICBpZiAobmFtZU9ySW5kZXguaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAKICAgICBpZiAoYXV0byBpbmRleCA9IEpTQzo6cGFyc2VJbmRleCgqbmFt
ZU9ySW5kZXguaW1wbCgpKSkKLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xs
ZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+PiB7IFJlZlB0cjxFbGVtZW50PiB7IGl0ZW0oaW5kZXgu
dmFsdWUoKSkgfSB9OworICAgICAgICByZXR1cm4gc3RkOjp2YXJpYW50PFJlZlB0cjxIVE1MQ29s
bGVjdGlvbj4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQdHI8RWxlbWVudD4geyBpdGVtKGluZGV4
LnZhbHVlKCkpIH0gfTsKIAogICAgIHJldHVybiBuYW1lZEl0ZW1Pckl0ZW1zKG5hbWVPckluZGV4
KTsKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW5mcmFz
dHJ1Y3R1cmUuaHRtbCNjb25jZXB0LWdldC1hbGwtbmFtZWQKLXN0ZDo6b3B0aW9uYWw8VmFyaWFu
dDxSZWZQdHI8SFRNTENvbGxlY3Rpb24+LCBSZWZQdHI8RWxlbWVudD4+PiBIVE1MQWxsQ29sbGVj
dGlvbjo6bmFtZWRJdGVtT3JJdGVtcyhjb25zdCBBdG9tU3RyaW5nJiBuYW1lKSBjb25zdAorc3Rk
OjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVs
ZW1lbnQ+Pj4gSFRNTEFsbENvbGxlY3Rpb246Om5hbWVkSXRlbU9ySXRlbXMoY29uc3QgQXRvbVN0
cmluZyYgbmFtZSkgY29uc3QKIHsKICAgICBhdXRvIG5hbWVkSXRlbXMgPSB0aGlzLT5uYW1lZEl0
ZW1zKG5hbWUpOwogCiAgICAgaWYgKG5hbWVkSXRlbXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIGlmIChuYW1lZEl0ZW1zLnNpemUoKSA9PSAxKQotICAgICAg
ICByZXR1cm4gVmFyaWFudDxSZWZQdHI8SFRNTENvbGxlY3Rpb24+LCBSZWZQdHI8RWxlbWVudD4+
IHsgUmVmUHRyPEVsZW1lbnQ+IHsgV1RGTW92ZShuYW1lZEl0ZW1zWzBdKSB9IH07CisgICAgICAg
IHJldHVybiBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1l
bnQ+PiB7IFJlZlB0cjxFbGVtZW50PiB7IFdURk1vdmUobmFtZWRJdGVtc1swXSkgfSB9OwogCi0g
ICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiwgUmVmUHRyPEVsZW1lbnQ+
PiB7IFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4geyBkb3duY2FzdDxEb2N1bWVudD4ob3duZXJOb2Rl
KCkpLmFsbEZpbHRlcmVkQnlOYW1lKG5hbWUpIH0gfTsKKyAgICByZXR1cm4gc3RkOjp2YXJpYW50
PFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IHsgZG93bmNhc3Q8RG9jdW1lbnQ+KG93bmVyTm9kZSgpKS5hbGxGaWx0ZXJlZEJ5
TmFtZShuYW1lKSB9IH07CiB9CiAKIEhUTUxBbGxOYW1lZFN1YkNvbGxlY3Rpb246On5IVE1MQWxs
TmFtZWRTdWJDb2xsZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFsbENvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24u
aAppbmRleCA2ZTg2MDFmNWU5YWMwMDBlOTdiMzllMmYzMDgwYTdhYWU1YzU5MTE1Li5lNDQxNDAz
NmM0M2UzOGNiNjg4NGVlMjE3NDlmNzU3NThiM2Y2OTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQWxsQ29sbGVjdGlvbi5oCkBAIC0zMyw4ICszMyw4IEBAIGNsYXNzIEhUTUxBbGxDb2xsZWN0
aW9uIGZpbmFsIDogcHVibGljIEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbiB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxIVE1MQWxsQ29sbGVjdGlvbj4gY3JlYXRlKERvY3VtZW50JiwgQ29sbGVj
dGlvblR5cGUpOwogCi0gICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxIVE1MQ29sbGVj
dGlvbj4sIFJlZlB0cjxFbGVtZW50Pj4+IG5hbWVkT3JJbmRleGVkSXRlbU9ySXRlbXMoY29uc3Qg
QXRvbVN0cmluZyYgbmFtZU9ySW5kZXgpIGNvbnN0OwotICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFu
dDxSZWZQdHI8SFRNTENvbGxlY3Rpb24+LCBSZWZQdHI8RWxlbWVudD4+PiBuYW1lZEl0ZW1Pckl0
ZW1zKGNvbnN0IEF0b21TdHJpbmcmKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFy
aWFudDxSZWZQdHI8SFRNTENvbGxlY3Rpb24+LCBSZWZQdHI8RWxlbWVudD4+PiBuYW1lZE9ySW5k
ZXhlZEl0ZW1Pckl0ZW1zKGNvbnN0IEF0b21TdHJpbmcmIG5hbWVPckluZGV4KSBjb25zdDsKKyAg
ICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxSZWZQdHI8SFRNTENvbGxlY3Rpb24+LCBSZWZQ
dHI8RWxlbWVudD4+PiBuYW1lZEl0ZW1Pckl0ZW1zKGNvbnN0IEF0b21TdHJpbmcmKSBjb25zdDsK
IAogcHJpdmF0ZToKICAgICBIVE1MQWxsQ29sbGVjdGlvbihEb2N1bWVudCYsIENvbGxlY3Rpb25U
eXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAppbmRleCA0MTYzMzBjYjY0MDc1
MDI2MWJmYTY0NTc3NDM0YWQyYjFjZjdkY2QzLi4zOWI4ZjJjYTRlZDJiNzFjM2RjNzA3NzIxNTU1
MTc3YzBiMDhiM2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCkBAIC0xMjAs
NyArMTIwLDcgQEAgUmVmPERvY3VtZW50UGFyc2VyPiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZVBhcnNl
cigpCiB9CiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RvbS5o
dG1sI2RvbS1kb2N1bWVudC1uYW1lZGl0ZW0KLXN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8
V2luZG93UHJveHk+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+PiBI
VE1MRG9jdW1lbnQ6Om5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJiBuYW1lKQorc3RkOjpvcHRp
b25hbDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPFdpbmRvd1Byb3h5PiwgUmVmUHRyPEVsZW1lbnQ+LCBS
ZWZQdHI8SFRNTENvbGxlY3Rpb24+Pj4gSFRNTERvY3VtZW50OjpuYW1lZEl0ZW0oY29uc3QgQXRv
bVN0cmluZyYgbmFtZSkKIHsKICAgICBpZiAobmFtZS5pc051bGwoKSB8fCAhaGFzRG9jdW1lbnRO
YW1lZEl0ZW0oKm5hbWUuaW1wbCgpKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAg
LTEyOCwxNiArMTI4LDE2IEBAIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8V2luZG93UHJv
eHk+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVjdGlvCiAgICAgaWYgKFVOTElL
RUxZKGRvY3VtZW50TmFtZWRJdGVtQ29udGFpbnNNdWx0aXBsZUVsZW1lbnRzKCpuYW1lLmltcGwo
KSkpKSB7CiAgICAgICAgIGF1dG8gY29sbGVjdGlvbiA9IGRvY3VtZW50TmFtZWRJdGVtcyhuYW1l
KTsKICAgICAgICAgQVNTRVJUKGNvbGxlY3Rpb24tPmxlbmd0aCgpID4gMSk7Ci0gICAgICAgIHJl
dHVybiBWYXJpYW50PFJlZlB0cjxXaW5kb3dQcm94eT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRy
PEhUTUxDb2xsZWN0aW9uPj4geyBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IHsgV1RGTW92ZShjb2xs
ZWN0aW9uKSB9IH07CisgICAgICAgIHJldHVybiBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFdpbmRvd1By
b3h5PiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+PiB7IFJlZlB0cjxI
VE1MQ29sbGVjdGlvbj4geyBXVEZNb3ZlKGNvbGxlY3Rpb24pIH0gfTsKICAgICB9CiAKICAgICBh
dXRvJiBlbGVtZW50ID0gKmRvY3VtZW50TmFtZWRJdGVtKCpuYW1lLmltcGwoKSk7CiAgICAgaWYg
KFVOTElLRUxZKGlzPEhUTUxJRnJhbWVFbGVtZW50PihlbGVtZW50KSkpIHsKICAgICAgICAgaWYg
KFJlZlB0ciBkb21XaW5kb3cgPSBkb3duY2FzdDxIVE1MSUZyYW1lRWxlbWVudD4oZWxlbWVudCku
Y29udGVudFdpbmRvdygpKQotICAgICAgICAgICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRyPFdpbmRv
d1Byb3h5PiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+PiB7IFdURk1v
dmUoZG9tV2luZG93KSB9OworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6dmFyaWFudDxSZWZQdHI8
V2luZG93UHJveHk+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+IHsg
V1RGTW92ZShkb21XaW5kb3cpIH07CiAgICAgfQogCi0gICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRy
PFdpbmRvd1Byb3h5PiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+PiB7
IFJlZlB0cjxFbGVtZW50PiB7ICZlbGVtZW50IH0gfTsKKyAgICByZXR1cm4gc3RkOjp2YXJpYW50
PFJlZlB0cjxXaW5kb3dQcm94eT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0
aW9uPj4geyBSZWZQdHI8RWxlbWVudD4geyAmZWxlbWVudCB9IH07CiB9CiAKIFZlY3RvcjxBdG9t
U3RyaW5nPiBIVE1MRG9jdW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmgKaW5kZXggZTM1M2FiZGJmYTFkNTJlNTg4NzI3YjI4NTZh
OTY1Y2E3NDU2YzIwNy4uOGY1MzUyZjA0NWFmMzg5ZGU3Y2FmNTQwMjVhOTUwOWRlYTM1MTc5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBpbnQgd2lkdGgoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBpbnQg
aGVpZ2h0KCk7CiAgICAgCi0gICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxXaW5kb3dQ
cm94eT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4+IG5hbWVkSXRl
bShjb25zdCBBdG9tU3RyaW5nJik7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UmVm
UHRyPFdpbmRvd1Byb3h5PiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+
Pj4gbmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICBWZWN0b3I8QXRvbVN0cmluZz4g
c3VwcG9ydGVkUHJvcGVydHlOYW1lcygpIGNvbnN0OwogCiAgICAgRWxlbWVudCogZG9jdW1lbnRO
YW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZ0ltcGwmIG5hbWUpIGNvbnN0IHsgcmV0dXJuIG1fZG9j
dW1lbnROYW1lZEl0ZW0uZ2V0RWxlbWVudEJ5RG9jdW1lbnROYW1lZEl0ZW0obmFtZSwgKnRoaXMp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rp
b24uY3BwCmluZGV4IGUzNWRiMDA5NTJlMTZkNmZiMzU5YzMzYmIxZDZhMzNmNzk2ZDllODcuLmQ2
OGRlMGMyZjI0YzgzNzEyMzY2ZDhlNzA0MjI0ZGE3NDQ1ZjdjOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwCkBAIC01NCwxNiAr
NTQsMTYgQEAgUmVmPEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uPiBIVE1MRm9ybUNvbnRyb2xz
Q29sbGVjdGlvbjo6Y3JlYXRlKENvbnRhaW5lck5vZGUKIAogSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb246On5IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbigpID0gZGVmYXVsdDsKIAotc3RkOjpv
cHRpb25hbDxWYXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+Pj4g
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246Om5hbWVkSXRlbU9ySXRlbXMoY29uc3QgU3RyaW5n
JiBuYW1lKSBjb25zdAorc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9k
ZUxpc3Q+LCBSZWZQdHI8RWxlbWVudD4+PiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6bmFt
ZWRJdGVtT3JJdGVtcyhjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CiB7CiAgICAgYXV0byBuYW1l
ZEl0ZW1zID0gdGhpcy0+bmFtZWRJdGVtcyhuYW1lKTsKIAogICAgIGlmIChuYW1lZEl0ZW1zLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAobmFtZWRJdGVt
cy5zaXplKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxp
c3Q+LCBSZWZQdHI8RWxlbWVudD4+IHsgUmVmUHRyPEVsZW1lbnQ+IHsgV1RGTW92ZShuYW1lZEl0
ZW1zWzBdKSB9IH07CisgICAgICAgIHJldHVybiBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9k
ZUxpc3Q+LCBSZWZQdHI8RWxlbWVudD4+IHsgUmVmUHRyPEVsZW1lbnQ+IHsgV1RGTW92ZShuYW1l
ZEl0ZW1zWzBdKSB9IH07CiAKLSAgICByZXR1cm4gVmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlz
dD4sIFJlZlB0cjxFbGVtZW50Pj4geyBSZWZQdHI8UmFkaW9Ob2RlTGlzdD4geyBvd25lck5vZGUo
KS5yYWRpb05vZGVMaXN0KG5hbWUpIH0gfTsKKyAgICByZXR1cm4gc3RkOjp2YXJpYW50PFJlZlB0
cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+PiB7IFJlZlB0cjxSYWRpb05vZGVMaXN0
PiB7IG93bmVyTm9kZSgpLnJhZGlvTm9kZUxpc3QobmFtZSkgfSB9OwogfQogCiBzdGF0aWMgdW5z
aWduZWQgZmluZEZvcm1Bc3NvY2lhdGVkRWxlbWVudChjb25zdCBWZWN0b3I8V2Vha1B0cjxIVE1M
RWxlbWVudD4+JiBlbGVtZW50cywgY29uc3QgRWxlbWVudCYgZWxlbWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaAppbmRleCBiNWI4OTk3
MjkzYTkwYmUwYjMxY2JkNzY4M2JiYjEyZDI1NTdkODAwLi5hZDlkZWExNjUxZTNiNjI5NWY5NjQw
OTViYzNmYmVhODM2NTFiZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbHNDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xzQ29sbGVjdGlvbi5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbigpOwogCiAgICAgSFRNTEVsZW1lbnQqIGl0
ZW0odW5zaWduZWQgb2Zmc2V0KSBjb25zdCBvdmVycmlkZTsKLSAgICBzdGQ6Om9wdGlvbmFsPFZh
cmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxpc3Q+LCBSZWZQdHI8RWxlbWVudD4+PiBuYW1lZEl0ZW1P
ckl0ZW1zKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJp
YW50PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+Pj4gbmFtZWRJdGVtT3JJ
dGVtcyhjb25zdCBTdHJpbmcmKSBjb25zdDsKIAogICAgIEhUTUxGb3JtRWxlbWVudCYgb3duZXJO
b2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRl
eCBhYWQ4MGE3YTA4ZTM5ZDcyYjIzMGM2ODM1NmViMTI2MTZkODAzODJkLi5kNTdiYzVmOTQ5NzU5
ZWJmY2MwMDBhNzJiMTc5NzM4ZmZlMWIwMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuY3BwCkBAIC0xNzQsMTYgKzE3NCwxNiBAQCBIVE1MRWxlbWVudCogSFRNTEZvcm1F
bGVtZW50OjppdGVtKHVuc2lnbmVkIGluZGV4KQogICAgIHJldHVybiBlbGVtZW50cygpLT5pdGVt
KGluZGV4KTsKIH0KIAotc3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0
PiwgUmVmUHRyPEVsZW1lbnQ+Pj4gSFRNTEZvcm1FbGVtZW50OjpuYW1lZEl0ZW0oY29uc3QgQXRv
bVN0cmluZyYgbmFtZSkKK3N0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFJlZlB0cjxSYWRpb05v
ZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+Pj4gSFRNTEZvcm1FbGVtZW50OjpuYW1lZEl0ZW0oY29u
c3QgQXRvbVN0cmluZyYgbmFtZSkKIHsKICAgICBhdXRvIG5hbWVkSXRlbXMgPSBuYW1lZEVsZW1l
bnRzKG5hbWUpOwogCiAgICAgaWYgKG5hbWVkSXRlbXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogICAgIGlmIChuYW1lZEl0ZW1zLnNpemUoKSA9PSAxKQotICAgICAg
ICByZXR1cm4gVmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50Pj4g
eyBSZWZQdHI8RWxlbWVudD4geyBXVEZNb3ZlKG5hbWVkSXRlbXNbMF0pIH0gfTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6dmFyaWFudDxSZWZQdHI8UmFkaW9Ob2RlTGlzdD4sIFJlZlB0cjxFbGVtZW50
Pj4geyBSZWZQdHI8RWxlbWVudD4geyBXVEZNb3ZlKG5hbWVkSXRlbXNbMF0pIH0gfTsKIAotICAg
IHJldHVybiBWYXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+PiB7
IFJlZlB0cjxSYWRpb05vZGVMaXN0PiB7IHJhZGlvTm9kZUxpc3QobmFtZSkgfSB9OworICAgIHJl
dHVybiBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxpc3Q+LCBSZWZQdHI8RWxlbWVudD4+
IHsgUmVmUHRyPFJhZGlvTm9kZUxpc3Q+IHsgcmFkaW9Ob2RlTGlzdChuYW1lKSB9IH07CiB9CiAK
IFZlY3RvcjxBdG9tU3RyaW5nPiBIVE1MRm9ybUVsZW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFt
ZXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXggM2FkY2Ri
ZTUzZjJiYWZiNmEyZWI4MzNmZDhmMWZiNWRiZTRmNTg5Yy4uMmRhMGI5ZDNiMjA1Nzc4NGE0OTg1
OWE2OGQxN2ZkNmIyMDQ2MTVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5o
CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVk
IGxlbmd0aCgpIGNvbnN0OwogICAgIEhUTUxFbGVtZW50KiBpdGVtKHVuc2lnbmVkIGluZGV4KTsK
LSAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPFJhZGlvTm9kZUxpc3Q+LCBSZWZQdHI8
RWxlbWVudD4+PiBuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYpOworICAgIHN0ZDo6b3B0aW9u
YWw8c3RkOjp2YXJpYW50PFJlZlB0cjxSYWRpb05vZGVMaXN0PiwgUmVmUHRyPEVsZW1lbnQ+Pj4g
bmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICBWZWN0b3I8QXRvbVN0cmluZz4gc3Vw
cG9ydGVkUHJvcGVydHlOYW1lcygpIGNvbnN0OwogCiAgICAgU3RyaW5nIGVuY3R5cGUoKSBjb25z
dCB7IHJldHVybiBtX2F0dHJpYnV0ZXMuZW5jb2RpbmdUeXBlKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggMWRmNjc2YWYzZDE5NGFlYjE5YWVlMDQ2NzE3NjYx
MGIzYmE1YTFmNS4uMTQ1YmNiNTU0ZjI5NDY0MzRmNDBlZTBlZGRlYmU1MWVhMGExY2QyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTExNSw3ICsxMTUsNyBAQCBj
bGFzcyBSZW1vdGVQbGF5YmFjazsKIHVzaW5nIEN1ZUludGVydmFsID0gUE9ESW50ZXJ2YWw8TWVk
aWFUaW1lLCBUZXh0VHJhY2tDdWUqPjsKIHVzaW5nIEN1ZUxpc3QgPSBWZWN0b3I8Q3VlSW50ZXJ2
YWw+OwogCi11c2luZyBNZWRpYVByb3ZpZGVyID0gc3RkOjpvcHRpb25hbDxWYXJpYW50PAordXNp
bmcgTWVkaWFQcm92aWRlciA9IHN0ZDo6b3B0aW9uYWwgPCBzdGQ6OnZhcmlhbnQgPAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiwKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgKaW5kZXggNWEzMWZjNGRi
NTJmMzFmY2RmYTA5NzlkNTE1ZWQ2MzZkOTRlZTQ5Yy4uYWI3ZWMxOTE4YjZiZTFhYWU0YzJjZjNk
Zjk3ODIyOWQ2ZmRhZmZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29s
bGVjdGlvbi5oCkBAIC00NCw4ICs0NCw4IEBAIHB1YmxpYzoKICAgICAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRJdGVtKHVuc2lnbmVkIGluZGV4LCBIVE1MT3B0aW9uRWxlbWVudCopOwogICAg
IAotICAgIHVzaW5nIE9wdGlvbk9yT3B0R3JvdXBFbGVtZW50ID0gVmFyaWFudDxSZWZQdHI8SFRN
TE9wdGlvbkVsZW1lbnQ+LCBSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVudD4+OwotICAgIHVzaW5n
IEhUTUxFbGVtZW50T3JJbnQgPSBWYXJpYW50PFJlZlB0cjxIVE1MRWxlbWVudD4sIGludD47Cisg
ICAgdXNpbmcgT3B0aW9uT3JPcHRHcm91cEVsZW1lbnQgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhU
TUxPcHRpb25FbGVtZW50PiwgUmVmUHRyPEhUTUxPcHRHcm91cEVsZW1lbnQ+PjsKKyAgICB1c2lu
ZyBIVE1MRWxlbWVudE9ySW50ID0gc3RkOjp2YXJpYW50PFJlZlB0cjxIVE1MRWxlbWVudD4sIGlu
dD47CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gYWRkKGNvbnN0IE9wdGlv
bk9yT3B0R3JvdXBFbGVtZW50JiwgY29uc3Qgc3RkOjpvcHRpb25hbDxIVE1MRWxlbWVudE9ySW50
PiYgYmVmb3JlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZShpbnQgaW5kZXgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggMjU0Y2MwZDY5MjNi
NTMwOTU3OThhN2Q2OGVlMjg0ZWMwMTcyYTM4Zi4uYWMwYWE5M2U4NTI4Njg4ZTUxYTc4YzRiOTk1
NWViNGI0MTM1NjEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApA
QCAtNTIsOCArNTIsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHVzZXNNZW51TGlzdCgpIGNvbnN0
OwogCi0gICAgdXNpbmcgT3B0aW9uT3JPcHRHcm91cEVsZW1lbnQgPSBWYXJpYW50PFJlZlB0cjxI
VE1MT3B0aW9uRWxlbWVudD4sIFJlZlB0cjxIVE1MT3B0R3JvdXBFbGVtZW50Pj47Ci0gICAgdXNp
bmcgSFRNTEVsZW1lbnRPckludCA9IFZhcmlhbnQ8UmVmUHRyPEhUTUxFbGVtZW50PiwgaW50PjsK
KyAgICB1c2luZyBPcHRpb25Pck9wdEdyb3VwRWxlbWVudCA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8
SFRNTE9wdGlvbkVsZW1lbnQ+LCBSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVudD4+OworICAgIHVz
aW5nIEhUTUxFbGVtZW50T3JJbnQgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEhUTUxFbGVtZW50Piwg
aW50PjsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBhZGQoY29uc3QgT3B0
aW9uT3JPcHRHcm91cEVsZW1lbnQmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEhUTUxFbGVtZW50T3JJ
bnQ+JiBiZWZvcmUpOwogCiAgICAgdXNpbmcgTm9kZTo6cmVtb3ZlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUJpdG1hcC5oCmluZGV4IDhkNzgxODZjMGFhODQ1NzVjNzFiOTJmYTE4YTFjMGY5YTI1ODBiNDku
LjE0ZThjZjJlODAyN2VlNWRlM2ZhMDcxY2RlZGFhNTNiMzRmMTk5MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlQml0bWFwLmgKQEAgLTYwLDcgKzYwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlw
ZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogY2xhc3MgSW1hZ2VCaXRtYXAgZmluYWwgOiBw
dWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxJbWFnZUJpdG1hcD4gewog
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW1hZ2VCaXRtYXApOwogcHVibGljOgotICAgIHVz
aW5nIFNvdXJjZSA9IFZhcmlhbnQ8CisgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50PAog
ICAgICAgICBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4sCiAjaWYgRU5BQkxFKFZJREVPKQogICAg
ICAgICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5D
YW52YXMuaAppbmRleCA2MTdhZDBjMTBhMjU5MzMxOGFjMzY2ZDU4ZDAyMWI0MDFmMDIyMDNmLi4z
NTc1ODZlNzk2OTFkYzI2MDJiYWRlZTY3Mjc3MGY4MDFjMTdiYTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvT2Zmc2NyZWVuQ2FudmFzLmgKQEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNzIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U7CiAKLXVzaW5nIE9mZnNjcmVlblJlbmRlcmluZ0NvbnRleHQgPSBW
YXJpYW50PAordXNpbmcgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6dmFyaWFudDwK
ICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4sCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmNwcAppbmRleCBmNTRmNDFl
MTljZjdhN2U0ZDU1NDBjNjQ2NjYyZjhlYzVmYmQzZDM3Li42NjNiODNjNDU4NjQ5ODExYTA0ODRi
YzA4ZTdhNTQzZTAwOWJiMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTFNl
YXJjaFBhcmFtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMu
Y3BwCkBAIC00MSw3ICs0MSw3IEBAIFVSTFNlYXJjaFBhcmFtczo6VVJMU2VhcmNoUGFyYW1zKGNv
bnN0IFZlY3RvcjxXVEY6OktleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+CiB7CiB9CiAKLUV4
Y2VwdGlvbk9yPFJlZjxVUkxTZWFyY2hQYXJhbXM+PiBVUkxTZWFyY2hQYXJhbXM6OmNyZWF0ZShW
YXJpYW50PFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4sIFZlY3RvcjxXVEY6OktleVZhbHVlUGFpcjxT
dHJpbmcsIFN0cmluZz4+LCBTdHJpbmc+JiYgdmFyaWFudCkKK0V4Y2VwdGlvbk9yPFJlZjxVUkxT
ZWFyY2hQYXJhbXM+PiBVUkxTZWFyY2hQYXJhbXM6OmNyZWF0ZShzdGQ6OnZhcmlhbnQ8VmVjdG9y
PFZlY3RvcjxTdHJpbmc+PiwgVmVjdG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5n
Pj4sIFN0cmluZz4mJiB2YXJpYW50KQogewogICAgIGF1dG8gdmlzaXRvciA9IFdURjo6bWFrZVZp
c2l0b3IoWyZdKGNvbnN0IFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mIHZlY3RvcikgLT4gRXhjZXB0
aW9uT3I8UmVmPFVSTFNlYXJjaFBhcmFtcz4+IHsKICAgICAgICAgVmVjdG9yPFdURjo6S2V5VmFs
dWVQYWlyPFN0cmluZywgU3RyaW5nPj4gcGFpcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1VSTFNlYXJjaFBhcmFtcy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQ
YXJhbXMuaAppbmRleCBkYWE5MjIzMGY3MDU4MmNiNzdlYTg2YmQ0NzliNWFlNjFkNjJjNTY1Li44
ODVlNjRmOGQ0ZDE4NGRkZWM3ZDYxMjYyYjhhYzY1N2Y2N2JkMTU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1VSTFNlYXJjaFBhcmFtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVVJMU2VhcmNoUGFyYW1zLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgRE9NVVJMOwogCiBj
bGFzcyBVUkxTZWFyY2hQYXJhbXMgOiBwdWJsaWMgUmVmQ291bnRlZDxVUkxTZWFyY2hQYXJhbXM+
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFVSTFNlYXJjaFBhcmFtcz4+
IGNyZWF0ZShWYXJpYW50PFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4sIFZlY3RvcjxXVEY6OktleVZh
bHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+LCBTdHJpbmc+JiYpOworICAgIHN0YXRpYyBFeGNlcHRp
b25PcjxSZWY8VVJMU2VhcmNoUGFyYW1zPj4gY3JlYXRlKHN0ZDo6dmFyaWFudDxWZWN0b3I8VmVj
dG9yPFN0cmluZz4+LCBWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+Piwg
U3RyaW5nPiYmKTsKICAgICBzdGF0aWMgUmVmPFVSTFNlYXJjaFBhcmFtcz4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBET01VUkwqIGFzc29jaWF0ZWRVUkwpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBVUkxTZWFyY2hQYXJhbXMoc3RyaW5nLCBhc3NvY2lhdGVkVVJM
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlLmgKaW5kZXggYTE0MzEzODk5NDRhMjQ4Y2RmYTI3YjBmMGEyMTk4
NTg5MjI1NTkzZi4uYjBiMmI5MjYxZjNkNjAyOTYwNzE3ZWQ1ZGE4NDBlMmU1ZjJiMzBmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuaApAQCAtNjUsNyArNjUsNyBAQCBjbGFzcyBUZXh0TWV0cmljczsKIAog
c3RydWN0IERPTU1hdHJpeDJESW5pdDsKIAotdXNpbmcgQ2FudmFzSW1hZ2VTb3VyY2UgPSBWYXJp
YW50PFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50Piwg
UmVmUHRyPEltYWdlQml0bWFwPgordXNpbmcgQ2FudmFzSW1hZ2VTb3VyY2UgPSBzdGQ6OnZhcmlh
bnQ8UmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+LCBS
ZWZQdHI8SW1hZ2VCaXRtYXA+CiAjaWYgRU5BQkxFKENTU19UWVBFRF9PTSkKICAgICAsIFJlZlB0
cjxDU1NTdHlsZUltYWdlVmFsdWU+CiAjZW5kaWYKQEAgLTE4Miw3ICsxODIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkcmF3SW1hZ2VGcm9tUmVjdChIVE1MSW1hZ2VFbGVtZW50JiwgZmxvYXQgc3gg
PSAwLCBmbG9hdCBzeSA9IDAsIGZsb2F0IHN3ID0gMCwgZmxvYXQgc2ggPSAwLCBmbG9hdCBkeCA9
IDAsIGZsb2F0IGR5ID0gMCwgZmxvYXQgZHcgPSAwLCBmbG9hdCBkaCA9IDAsIGNvbnN0IFN0cmlu
ZyYgY29tcG9zaXRlT3BlcmF0aW9uID0gZW1wdHlTdHJpbmcoKSk7CiAgICAgdm9pZCBjbGVhckNh
bnZhcygpOwogCi0gICAgdXNpbmcgU3R5bGVWYXJpYW50ID0gVmFyaWFudDxTdHJpbmcsIFJlZlB0
cjxDYW52YXNHcmFkaWVudD4sIFJlZlB0cjxDYW52YXNQYXR0ZXJuPj47CisgICAgdXNpbmcgU3R5
bGVWYXJpYW50ID0gc3RkOjp2YXJpYW50PFN0cmluZywgUmVmUHRyPENhbnZhc0dyYWRpZW50Piwg
UmVmUHRyPENhbnZhc1BhdHRlcm4+PjsKICAgICBTdHlsZVZhcmlhbnQgc3Ryb2tlU3R5bGUoKSBj
b25zdDsKICAgICB2b2lkIHNldFN0cm9rZVN0eWxlKFN0eWxlVmFyaWFudCYmKTsKICAgICBTdHls
ZVZhcmlhbnQgZmlsbFN0eWxlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzU3R5bGUuaAppbmRleCBhNTQwMjgwZTI4ZDZkZDEwNzYxZDM5YTNlNDg2NTg4ODgzOTc4Njk2
Li4wMzUxNzkwYWRkZWYwYWU0NDM3YTFlZWQ3NmZiYjE0NTZhYmFmYWRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToK
IAogICAgIENhbnZhc1N0eWxlKEN1cnJlbnRDb2xvcik7CiAKLSAgICBWYXJpYW50PEludmFsaWQs
IENvbG9yLCBSZWZQdHI8Q2FudmFzR3JhZGllbnQ+LCBSZWZQdHI8Q2FudmFzUGF0dGVybj4sIEN1
cnJlbnRDb2xvcj4gbV9zdHlsZTsKKyAgICBzdGQ6OnZhcmlhbnQ8SW52YWxpZCwgQ29sb3IsIFJl
ZlB0cjxDYW52YXNHcmFkaWVudD4sIFJlZlB0cjxDYW52YXNQYXR0ZXJuPiwgQ3VycmVudENvbG9y
PiBtX3N0eWxlOwogfTsKIAogYm9vbCBpc0N1cnJlbnRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcm
IGNvbG9yU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBhOWZmMGZiNDExYmY4ZTEzOTRiOTk5MjAyYTgzODUz
OWZmNjk4MWJjLi4yN2Y4YjMyOGEzMzMyMDNjNGMxMWFiMjNlOTg4NTgwYzExZTEyNzhhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4
dC5oCkBAIC03OCw5ICs3OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHRleFN0b3JhZ2UzRChHQ0dM
ZW51bSB0YXJnZXQsIEdDR0xzaXplaSBsZXZlbHMsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBH
Q0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xzaXplaSBkZXB0aCk7CiAKICNp
ZiBFTkFCTEUoVklERU8pCi0gICAgdXNpbmcgVGV4SW1hZ2VTb3VyY2UgPSBXVEY6OlZhcmlhbnQ8
UmVmUHRyPEltYWdlQml0bWFwPiwgUmVmUHRyPEltYWdlRGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VF
bGVtZW50PiwgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiwgUmVmUHRyPEhUTUxWaWRlb0VsZW1l
bnQ+PjsKKyAgICB1c2luZyBUZXhJbWFnZVNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8SW1h
Z2VCaXRtYXA+LCBSZWZQdHI8SW1hZ2VEYXRhPiwgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+LCBS
ZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+LCBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4+OwogI2Vs
c2UKLSAgICB1c2luZyBUZXhJbWFnZVNvdXJjZSA9IFdURjo6VmFyaWFudDxSZWZQdHI8SW1hZ2VC
aXRtYXA+LCBSZWZQdHI8SW1hZ2VEYXRhPiwgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+LCBSZWZQ
dHI8SFRNTENhbnZhc0VsZW1lbnQ+PjsKKyAgICB1c2luZyBUZXhJbWFnZVNvdXJjZSA9IHN0ZDo6
dmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBSZWZQdHI8SW1hZ2VEYXRhPiwgUmVmUHRyPEhU
TUxJbWFnZUVsZW1lbnQ+LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PjsKICNlbmRpZgogCiAg
ICAgLy8gTXVzdCBvdmVycmlkZSB0aGUgV2ViR0wgMS4wIHNpZ25hdHVyZXMgdG8gYWRkIGV4dHJh
IHZhbGlkYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TEFueS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuaAppbmRleCA0NGMw
MGUzODFlYmRmODU3YWZhYjNkMzdmNDc0ZGE1ZTFiNGE4MDhiLi4wZjg4MGRhYTZhNThiNjE4OGZl
NzkxZDdlMzI4MDMxNTFiZTMxZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEFueS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazsKIGNsYXNz
IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q7CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
OwogCi11c2luZyBXZWJHTEFueSA9IFZhcmlhbnQ8Cit1c2luZyBXZWJHTEFueSA9IHN0ZDo6dmFy
aWFudDwKICAgICBzdGQ6Om51bGxwdHJfdCwKICAgICBib29sLAogICAgIGludCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTXVsdGlEcmF3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE11bHRpRHJhdy5oCmluZGV4IDZlMmNiZDgwYTUzYmJl
Y2NjZTBmYTU1MzcwN2JhYzVkOWUyMDllZDkuLjY1OTI5ZjUxY2FiOGJmODkyN2I3YzkwYmU5NmMx
OGU0ODMxODFkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
TXVsdGlEcmF3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xNdWx0aURy
YXcuaApAQCAtMzcsNyArMzcsNyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBUeXBl
ZEFycmF5LCBjbGFzcyBEYXRhVHlwZT4KICAgICBjbGFzcyBUeXBlZExpc3QgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgdXNpbmcgTGlzdFR5cGVPcHRpb25zID0gVmFyaWFudDxSZWZQdHI8VHlwZWRB
cnJheT4sIFZlY3RvcjxEYXRhVHlwZT4+OworICAgICAgICB1c2luZyBMaXN0VHlwZU9wdGlvbnMg
PSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFR5cGVkQXJyYXk+LCBWZWN0b3I8RGF0YVR5cGU+PjsKIAog
ICAgICAgICBUeXBlZExpc3QoTGlzdFR5cGVPcHRpb25zJiYgdmFyaWFudCkKICAgICAgICAgICAg
IDogbV92YXJpYW50KFdURk1vdmUodmFyaWFudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggODM0NzUxOWRh
OTIxOGVmNzUyZDYxYmFiZTJhYjJhZGFmNTc5MjVhMS4uYjcxNzBkMmJkNzFmMTExNzU4ODZmMTEz
N2QxMWUyMjJiNDMyNTJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtMTI0LDkgKzEyNCw5IEBAIGNsYXNz
IEhUTUxWaWRlb0VsZW1lbnQ7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShPRkZTQ1JFRU5fQ0FOVkFT
KQotdXNpbmcgV2ViR0xDYW52YXMgPSBXVEY6OlZhcmlhbnQ8UmVmUHRyPEhUTUxDYW52YXNFbGVt
ZW50PiwgUmVmUHRyPE9mZnNjcmVlbkNhbnZhcz4+OwordXNpbmcgV2ViR0xDYW52YXMgPSBzdGQ6
OnZhcmlhbnQ8UmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiwgUmVmUHRyPE9mZnNjcmVlbkNhbnZh
cz4+OwogI2Vsc2UKLXVzaW5nIFdlYkdMQ2FudmFzID0gV1RGOjpWYXJpYW50PFJlZlB0cjxIVE1M
Q2FudmFzRWxlbWVudD4+OwordXNpbmcgV2ViR0xDYW52YXMgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRy
PEhUTUxDYW52YXNFbGVtZW50Pj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CkBAIC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgYmxlbmRGdW5jKEdDR0xlbnVt
IHNmYWN0b3IsIEdDR0xlbnVtIGRmYWN0b3IpOwogICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUo
R0NHTGVudW0gc3JjUkdCLCBHQ0dMZW51bSBkc3RSR0IsIEdDR0xlbnVtIHNyY0FscGhhLCBHQ0dM
ZW51bSBkc3RBbHBoYSk7CiAKLSAgICB1c2luZyBCdWZmZXJEYXRhU291cmNlID0gV1RGOjpWYXJp
YW50PFJlZlB0cjxBcnJheUJ1ZmZlcj4sIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+PjsKKyAgICB1
c2luZyBCdWZmZXJEYXRhU291cmNlID0gc3RkOjp2YXJpYW50PFJlZlB0cjxBcnJheUJ1ZmZlcj4s
IFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+PjsKICAgICB2b2lkIGJ1ZmZlckRhdGEoR0NHTGVudW0g
dGFyZ2V0LCBsb25nIGxvbmcgc2l6ZSwgR0NHTGVudW0gdXNhZ2UpOwogICAgIHZvaWQgYnVmZmVy
RGF0YShHQ0dMZW51bSB0YXJnZXQsIHN0ZDo6b3B0aW9uYWw8QnVmZmVyRGF0YVNvdXJjZT4mJiwg
R0NHTGVudW0gdXNhZ2UpOwogICAgIHZvaWQgYnVmZmVyU3ViRGF0YShHQ0dMZW51bSB0YXJnZXQs
IGxvbmcgbG9uZyBvZmZzZXQsIEJ1ZmZlckRhdGFTb3VyY2UmJik7CkBAIC0yODAsOSArMjgwLDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXhJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwg
R0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDR0xzaXplaSB3aWR0aCwg
R0NHTHNpemVpIGhlaWdodCwgR0NHTGludCBib3JkZXIsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVu
dW0gdHlwZSwgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4mJik7CiAKICNpZiBFTkFCTEUoVklERU8p
Ci0gICAgdXNpbmcgVGV4SW1hZ2VTb3VyY2UgPSBXVEY6OlZhcmlhbnQ8UmVmUHRyPEltYWdlQml0
bWFwPiwgUmVmUHRyPEltYWdlRGF0YT4sIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiwgUmVmUHRy
PEhUTUxDYW52YXNFbGVtZW50PiwgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+PjsKKyAgICB1c2lu
ZyBUZXhJbWFnZVNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBSZWZQ
dHI8SW1hZ2VEYXRhPiwgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+LCBSZWZQdHI8SFRNTENhbnZh
c0VsZW1lbnQ+LCBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4+OwogI2Vsc2UKLSAgICB1c2luZyBU
ZXhJbWFnZVNvdXJjZSA9IFdURjo6VmFyaWFudDxSZWZQdHI8SW1hZ2VCaXRtYXA+LCBSZWZQdHI8
SW1hZ2VEYXRhPiwgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+LCBSZWZQdHI8SFRNTENhbnZhc0Vs
ZW1lbnQ+PjsKKyAgICB1c2luZyBUZXhJbWFnZVNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8
SW1hZ2VCaXRtYXA+LCBSZWZQdHI8SW1hZ2VEYXRhPiwgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+
LCBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+PjsKICNlbmRpZgogCiAgICAgdmlydHVhbCBFeGNl
cHRpb25Pcjx2b2lkPiB0ZXhJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwg
R0NHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwg
c3RkOjpvcHRpb25hbDxUZXhJbWFnZVNvdXJjZT4pOwpAQCAtMjk3LDcgKzI5Nyw3IEBAIHB1Ymxp
YzoKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHlwZWRBcnJheSwgY2xhc3MgRGF0YVR5cGU+CiAgICAg
Y2xhc3MgVHlwZWRMaXN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHVzaW5nIFZhcmlhbnRUeXBl
ID0gVmFyaWFudDxSZWZQdHI8VHlwZWRBcnJheT4sIFZlY3RvcjxEYXRhVHlwZT4+OworICAgICAg
ICB1c2luZyBWYXJpYW50VHlwZSA9IHN0ZDo6dmFyaWFudDxSZWZQdHI8VHlwZWRBcnJheT4sIFZl
Y3RvcjxEYXRhVHlwZT4+OwogCiAgICAgICAgIFR5cGVkTGlzdChWYXJpYW50VHlwZSYmIHZhcmlh
bnQpCiAgICAgICAgICAgICA6IG1fdmFyaWFudChXVEZNb3ZlKHZhcmlhbnQpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RyYWNrRXZlbnQuaAppbmRleCBmN2NlMDc0MWQxNjljYmYwY2RiOGZlMTQ4
ZDVlMWZjZTZkZDc4ZGFhLi5kMDY5ZTIyOTYyOTYyODU2NzY3MmJiZmJiYTNmNzY0M2M2OTliMGEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrRXZlbnQuaApAQCAtNDQsNyArNDQsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRyYWNrRXZlbnQodHlwZSwg
Y2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEZNb3ZlKHRyYWNrKSkpOwogICAgIH0KIAotICAgIHVz
aW5nIFRyYWNrRXZlbnRUcmFjayA9IFZhcmlhbnQ8UmVmUHRyPFZpZGVvVHJhY2s+LCBSZWZQdHI8
QXVkaW9UcmFjaz4sIFJlZlB0cjxUZXh0VHJhY2s+PjsKKyAgICB1c2luZyBUcmFja0V2ZW50VHJh
Y2sgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPFZpZGVvVHJhY2s+LCBSZWZQdHI8QXVkaW9UcmFjaz4s
IFJlZlB0cjxUZXh0VHJhY2s+PjsKIAogICAgIHN0cnVjdCBJbml0IDogcHVibGljIEV2ZW50SW5p
dCB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VHJhY2tFdmVudFRyYWNrPiB0cmFjazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZUVEN1ZS5oCmluZGV4IGNlZTg0ZDA1M2U0MzA1MzZiZDRhNDQ0ODZmZDE5
MzI1OWI5MzIyZmUuLjc0OTZjMjI5MWVjMGM5ZGFhYWM1NjIwZjUyOWQyMjYxNTJkOGJmNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuaApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+VlRUQ3VlKCk7CiAKICAgICBlbnVtIEF1dG9LZXl3b3JkIHsgQXV0byB9Owot
ICAgIHVzaW5nIExpbmVBbmRQb3NpdGlvblNldHRpbmcgPSBWYXJpYW50PGRvdWJsZSwgQXV0b0tl
eXdvcmQ+OworICAgIHVzaW5nIExpbmVBbmRQb3NpdGlvblNldHRpbmcgPSBzdGQ6OnZhcmlhbnQ8
ZG91YmxlLCBBdXRvS2V5d29yZD47CiAKICAgICB2b2lkIHNldFRyYWNrKFRleHRUcmFjayopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzLmgKaW5kZXggMjg4MWYx
YTA0Zjg2OGQ5ZDFlOTNhMzkwZGU5NjYxZWUwNmVmNWNkYy4uMjRkN2UwMTgzZThhYTYwMzQwNGRj
OGMyODM3NTAwMTYzYmVkN2M1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNhbnZhcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDYW52YXMuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFwcGVu
ZEFjdGlvblNuYXBzaG90SWZOZWVkZWQoKTsKIAotICAgIHVzaW5nIER1cGxpY2F0ZURhdGFWYXJp
YW50ID0gVmFyaWFudDwKKyAgICB1c2luZyBEdXBsaWNhdGVEYXRhVmFyaWFudCA9IHN0ZDo6dmFy
aWFudDwKICAgICAgICAgUmVmUHRyPENhbnZhc0dyYWRpZW50PiwKICAgICAgICAgUmVmUHRyPENh
bnZhc1BhdHRlcm4+LAogICAgICAgICBSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+LApAQCAtMTM4
LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgbV9pZGVudGlmaWVyOwogCi0gICAg
VmFyaWFudDwKKyAgICBzdGQ6OnZhcmlhbnQ8CiAgICAgICAgIHN0ZDo6cmVmZXJlbmNlX3dyYXBw
ZXI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4sCiAgICAgICAgIHN0ZDo6bW9ub3N0YXRlCiAgICAg
PiBtX2NvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclNo
YWRlclByb2dyYW0uaAppbmRleCA4ZGQ5ODJhZDIwYzc3YzA0YTFlYjhkNGFiOGFlNGI0YTFhY2Vh
NDgwLi44ZmRhYTNhODlkZmM1Y2ZlYmYxMjM3ZDRjMjIyNTE4N2Q4MjUzOTU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmgKQEAgLTcz
LDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9pZGVudGlmaWVyOwogICAgIEluc3Bl
Y3RvckNhbnZhcyYgbV9jYW52YXM7CiAKLSAgICBWYXJpYW50PAorICAgIHN0ZDo6dmFyaWFudDwK
ICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgICAgIHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8V2ViR0xQ
cm9ncmFtPiwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0lubGluZUl0ZXJhdG9yQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vSW5saW5lSXRlcmF0b3JCb3guaAppbmRleCBlMDZkZTgyNTI0Y2E2NGJiZjU3MDkxZWJi
ODQwN2RjY2VlZmJjODIyLi45YzQ3MTBiYmE3ZWJiMzkzMDU3Y2YwN2E0MTg1OTVkNTg0MmZjNDBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRl
cmF0b3JCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5l
SXRlcmF0b3JCb3guaApAQCAtNDcsNyArNDcsNyBAQCBzdHJ1Y3QgRW5kSXRlcmF0b3IgeyB9Owog
CiBjbGFzcyBCb3ggewogcHVibGljOgotICAgIHVzaW5nIFBhdGhWYXJpYW50ID0gVmFyaWFudDwK
KyAgICB1c2luZyBQYXRoVmFyaWFudCA9IHN0ZDo6dmFyaWFudDwKICNpZiBFTkFCTEUoTEFZT1VU
X0ZPUk1BVFRJTkdfQ09OVEVYVCkKICAgICAgICAgQm94TW9kZXJuUGF0aCwKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9y
TGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9y
TGluZS5oCmluZGV4IDA2MmYzMzNhYTAzYmZlN2YxOWRiZjFmMDgwMDEzM2RmOTk5ZjZlZTEuLmY4
YTJiMWI0MjY3OGQ5YzRkYWU5OWFiNGVmZDQ0NDlmZjg2MDQ5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckxpbmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JMaW5lLmgKQEAg
LTQxLDcgKzQxLDcgQEAgc3RydWN0IEVuZExpbmVJdGVyYXRvciB7IH07CiAKIGNsYXNzIExpbmUg
ewogcHVibGljOgotICAgIHVzaW5nIFBhdGhWYXJpYW50ID0gVmFyaWFudDwKKyAgICB1c2luZyBQ
YXRoVmFyaWFudCA9IHN0ZDo6dmFyaWFudDwKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKICAgICAgICAgTGluZUl0ZXJhdG9yTW9kZXJuUGF0aCwKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCmluZGV4IGRjZWYwYWRl
YTczYjBlOTkwNDU4ZmFkYzJjNzUyMzBjZmRhZmI5ZGIuLmI3NTg5MWZkNDk1MGZjNjNjNjc0ZWYw
MmZhZDU2NDI2OWM0MDUxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNh
bnRGaWd1cmVzLCBTaG91bGRTYW1wbGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxlKSA9IDA7CiAKLSAgICB1c2luZyBW
YWx1ZVBheWxvYWQgPSBWYXJpYW50PFN0cmluZywgdWludDY0X3QsIGludDY0X3QsIGJvb2wsIGRv
dWJsZT47CisgICAgdXNpbmcgVmFsdWVQYXlsb2FkID0gc3RkOjp2YXJpYW50PFN0cmluZywgdWlu
dDY0X3QsIGludDY0X3QsIGJvb2wsIGRvdWJsZT47CiAgICAgdXNpbmcgVmFsdWVEaWN0aW9uYXJ5
ID0gSGFzaE1hcDxTdHJpbmcsIFZhbHVlUGF5bG9hZD47CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5KGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgVmFsdWVEaWN0aW9uYXJ5JiwgU2hv
dWxkU2FtcGxlKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2Vj
dGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVy
LmgKaW5kZXggMGJjNDFmYTliMDA0ZjlkMWYyNmJkZjMxYTYzYzdkNDFmNWU3MWYyZC4uM2UxYjIw
NmI1Y2RmODMxMmU3NDM3YTNmZjA0ZTk0MWZkOWI3ZDk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaApAQCAtNjcsOSArNjcsOSBAQCBzdHJ1Y3QgSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJEYXRhIHsKIGNsYXNzIEludGVyc2VjdGlvbk9ic2VydmVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IHsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgSW5pdCB7Ci0gICAg
ICAgIHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxEb2N1bWVu
dD4+PiByb290OworICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxSZWZQdHI8RWxl
bWVudD4sIFJlZlB0cjxEb2N1bWVudD4+PiByb290OwogICAgICAgICBTdHJpbmcgcm9vdE1hcmdp
bjsKLSAgICAgICAgVmFyaWFudDxkb3VibGUsIFZlY3Rvcjxkb3VibGU+PiB0aHJlc2hvbGQ7Cisg
ICAgICAgIHN0ZDo6dmFyaWFudDxkb3VibGUsIFZlY3Rvcjxkb3VibGU+PiB0aHJlc2hvbGQ7CiAg
ICAgfTsKIAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+
PiBjcmVhdGUoRG9jdW1lbnQmLCBSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjaz4mJiwg
SW5pdCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYjUzZjY4ZTYzMGUzMjJlOTc0NGE0YmZiYzkwN2I5
ZWVhZTJlNTAzYy4uNjgzNzE1YTBlYmYwYzRmOWJiOTQyM2VkMjc5NzY4NzJlMGJjNjMwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTQ0MCw3ICs0NDAsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGlzIGNh
biByZXR1cm4gbnVsbG9wdCBpZiB0aHJvdHRsaW5nIHJlYXNvbnMgcmVzdWx0IGluIGEgZnJlcXVl
bmN5IGxlc3MgdGhhbiBvbmUsIGluIHdoaWNoIGNhc2UKICAgICAvLyBwcmVmZXJyZWRSZW5kZXJp
bmdVcGRhdGVJbnRlcnZhbCBwcm92aWRlcyB0aGUgZnJlcXVlbmN5LgotICAgIC8vIEZJWE1FOiBI
YXZlIGEgc2luZ2xlIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFZhcmlhbnQ8Pi4KKyAgICAvLyBG
SVhNRTogSGF2ZSBhIHNpbmdsZSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBzdGQ6OnZhcmlhbnQ8
Pi4KICAgICBzdGQ6Om9wdGlvbmFsPEZyYW1lc1BlclNlY29uZD4gcHJlZmVycmVkUmVuZGVyaW5n
VXBkYXRlRnJhbWVzUGVyU2Vjb25kKCkgY29uc3Q7CiAgICAgU2Vjb25kcyBwcmVmZXJyZWRSZW5k
ZXJpbmdVcGRhdGVJbnRlcnZhbCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgK
aW5kZXggYzUyMDY5ZmIzOWMyOTAwZWZhMjUzOWQwMGI4NWZiZDQ0OWRmOGVlYi4uNDI5NDRmNDFh
OTAwNDcxNWQxMGZjODBhZWUyMTk1YjQ5NTAwOTU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2UuaApAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPFBlcmZv
cm1hbmNlTWFyaz4+IG1hcmsoSlNDOjpKU0dsb2JhbE9iamVjdCYsIGNvbnN0IFN0cmluZyYgbWFy
a05hbWUsIHN0ZDo6b3B0aW9uYWw8UGVyZm9ybWFuY2VNYXJrT3B0aW9ucz4mJik7CiAgICAgdm9p
ZCBjbGVhck1hcmtzKGNvbnN0IFN0cmluZyYgbWFya05hbWUpOwogCi0gICAgdXNpbmcgU3RhcnRP
ck1lYXN1cmVPcHRpb25zID0gVmFyaWFudDxTdHJpbmcsIFBlcmZvcm1hbmNlTWVhc3VyZU9wdGlv
bnM+OworICAgIHVzaW5nIFN0YXJ0T3JNZWFzdXJlT3B0aW9ucyA9IHN0ZDo6dmFyaWFudDxTdHJp
bmcsIFBlcmZvcm1hbmNlTWVhc3VyZU9wdGlvbnM+OwogICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJm
b3JtYW5jZU1lYXN1cmU+PiBtZWFzdXJlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25zdCBTdHJp
bmcmIG1lYXN1cmVOYW1lLCBzdGQ6Om9wdGlvbmFsPFN0YXJ0T3JNZWFzdXJlT3B0aW9ucz4mJiwg
Y29uc3QgU3RyaW5nJiBlbmRNYXJrKTsKICAgICB2b2lkIGNsZWFyTWVhc3VyZXMoY29uc3QgU3Ry
aW5nJiBtZWFzdXJlTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VNZWFzdXJlT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZU1lYXN1cmVPcHRpb25zLmgKaW5kZXggYjM2NzViMGUwODNiZTUwMTY1ZDllOGVhNTI3NTQzM2Fh
YzEzMjkwMy4uYWQ5MDdlMGMzNGJjZjlmNWNlM2E0MzU1NDFjOTRjNWI5ZDRjNTgzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU1lYXN1cmVPcHRpb25zLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU1lYXN1cmVPcHRpb25zLmgKQEAgLTMz
LDkgKzMzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgUGVyZm9ybWFuY2VNZWFz
dXJlT3B0aW9ucyB7CiAgICAgSlNDOjpKU1ZhbHVlIGRldGFpbDsKLSAgICBzdGQ6Om9wdGlvbmFs
PFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBzdGFydDsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
dmFyaWFudDxTdHJpbmcsIGRvdWJsZT4+IHN0YXJ0OwogICAgIHN0ZDo6b3B0aW9uYWw8ZG91Ymxl
PiBkdXJhdGlvbjsKLSAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBl
bmQ7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBlbmQ7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNl
clRpbWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5j
cHAKaW5kZXggZDFiY2NmYTU5MmJjNTI1MjNlZWJkNmYwYTAzNTJkZDBmMzE0ZWI0MS4uYzZhZjBk
OTgyMDFmMTZjNjQ1ZGViNjdmOTEyNDhiNTA5NmJhZDA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQg
UGVyZm9ybWFuY2VVc2VyVGltaW5nOjpjbGVhck1hcmtzKGNvbnN0IFN0cmluZyYgbWFya05hbWUp
CiAgICAgY2xlYXJQZXJmb3JtYW5jZUVudHJpZXMobV9tYXJrc01hcCwgbWFya05hbWUpOwogfQog
Ci1FeGNlcHRpb25Pcjxkb3VibGU+IFBlcmZvcm1hbmNlVXNlclRpbWluZzo6Y29udmVydE1hcmtU
b1RpbWVzdGFtcChjb25zdCBWYXJpYW50PFN0cmluZywgZG91YmxlPiYgbWFyaykgY29uc3QKK0V4
Y2VwdGlvbk9yPGRvdWJsZT4gUGVyZm9ybWFuY2VVc2VyVGltaW5nOjpjb252ZXJ0TWFya1RvVGlt
ZXN0YW1wKGNvbnN0IHN0ZDo6dmFyaWFudDxTdHJpbmcsIGRvdWJsZT4mIG1hcmspIGNvbnN0CiB7
CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obWFyaywgWyZdKGF1dG8mIHZhbHVlKSB7CiAgICAg
ICAgIHJldHVybiBjb252ZXJ0TWFya1RvVGltZXN0YW1wKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5oCmluZGV4IDViZjJlY2VhZmU3YTc5ZTc1NTJk
NWVlYWYxNmExYjI2NzczMDdlZmMuLjllOGI2ZDRjOGM5M2FiODhkYzc1ZDQ4Zjk0MWEwMmMwOWEy
MzQxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGlt
aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuaApA
QCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPFBlcmZvcm1hbmNl
TWFyaz4+IG1hcmsoSlNDOjpKU0dsb2JhbE9iamVjdCYsIGNvbnN0IFN0cmluZyYgbWFya05hbWUs
IHN0ZDo6b3B0aW9uYWw8UGVyZm9ybWFuY2VNYXJrT3B0aW9ucz4mJik7CiAgICAgdm9pZCBjbGVh
ck1hcmtzKGNvbnN0IFN0cmluZyYgbWFya05hbWUpOwogCi0gICAgdXNpbmcgU3RhcnRPck1lYXN1
cmVPcHRpb25zID0gVmFyaWFudDxTdHJpbmcsIFBlcmZvcm1hbmNlTWVhc3VyZU9wdGlvbnM+Owor
ICAgIHVzaW5nIFN0YXJ0T3JNZWFzdXJlT3B0aW9ucyA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFBl
cmZvcm1hbmNlTWVhc3VyZU9wdGlvbnM+OwogICAgIEV4Y2VwdGlvbk9yPFJlZjxQZXJmb3JtYW5j
ZU1lYXN1cmU+PiBtZWFzdXJlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25zdCBTdHJpbmcmIG1l
YXN1cmVOYW1lLCBzdGQ6Om9wdGlvbmFsPFN0YXJ0T3JNZWFzdXJlT3B0aW9ucz4mJiwgY29uc3Qg
U3RyaW5nJiBlbmRNYXJrKTsKICAgICB2b2lkIGNsZWFyTWVhc3VyZXMoY29uc3QgU3RyaW5nJiBt
ZWFzdXJlTmFtZSk7CiAKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29s
IGlzUmVzdHJpY3RlZE1hcmtOYW1lKGNvbnN0IFN0cmluZyYgbWFya05hbWUpOwogCiBwcml2YXRl
OgotICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4gY29udmVydE1hcmtUb1RpbWVzdGFtcChjb25zdCBW
YXJpYW50PFN0cmluZywgZG91YmxlPiYpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4g
Y29udmVydE1hcmtUb1RpbWVzdGFtcChjb25zdCBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+
JikgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8ZG91YmxlPiBjb252ZXJ0TWFya1RvVGltZXN0YW1w
KGNvbnN0IFN0cmluZyYgbWFya05hbWUpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPGRvdWJsZT4g
Y29udmVydE1hcmtUb1RpbWVzdGFtcChkb3VibGUpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA1MDA5
MjYyNTlhNjczOWZhYjg4ZTc5NjYxNzMzM2ExYzg0ZmQxOWE3Li4zNGQ5ZWMzZWI3ZjM0ZWM0OWFl
ZThhOTAxM2U3ZWI3MzlhYTJhMDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGlj
OgogICAgIC8vIFNob3VsZCBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGdpdmVuIGZyYW1lIHZpZXcg
aGFzIGJlZW4gbGFpZCBvdXQuCiAgICAgdmlydHVhbCB2b2lkIGZyYW1lVmlld0xheW91dFVwZGF0
ZWQoRnJhbWVWaWV3JikgeyB9CiAKLSAgICB1c2luZyBMYXlvdXRWaWV3cG9ydE9yaWdpbk9yT3Zl
cnJpZGVSZWN0ID0gV1RGOjpWYXJpYW50PHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4sIHN0ZDo6
b3B0aW9uYWw8RmxvYXRSZWN0Pj47CisgICAgdXNpbmcgTGF5b3V0Vmlld3BvcnRPcmlnaW5Pck92
ZXJyaWRlUmVjdCA9IHN0ZDo6dmFyaWFudDxzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+LCBzdGQ6
Om9wdGlvbmFsPEZsb2F0UmVjdD4+OwogICAgIHZpcnR1YWwgdm9pZCByZWNvbmNpbGVTY3JvbGxp
bmdTdGF0ZShGcmFtZVZpZXcmLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgTGF5b3V0Vmlld3Bv
cnRPcmlnaW5Pck92ZXJyaWRlUmVjdCYsIFNjcm9sbFR5cGUsIFZpZXdwb3J0UmVjdFN0YWJpbGl0
eSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikgeyB9CiAKICAgICAvLyBTaG91bGQgYmUg
Y2FsbGVkIHdoZW5ldmVyIHRoZSBzZXQgb2YgZml4ZWQgb2JqZWN0cyBjaGFuZ2VzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuY3BwCmluZGV4IDUz
NmZmZjlhM2E5OWNiMDY2YTA0YzliOGE3NGRiZDZiODFiOGYxNjIuLmQzZTgwNDk1ZmY3MDM5OGRl
YmUwMjMyM2YzNmIwYWFlY2ZhOGM2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1zdGF0aWMgVmFyaWFudDxTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PiBj
b3B5UGxhdGZvcm1EYXRhKGNvbnN0IFZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVmZmVyPj4m
IG90aGVyKQorc3RhdGljIHN0ZDo6dmFyaWFudDxTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PiBj
b3B5UGxhdGZvcm1EYXRhKGNvbnN0IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFJlZjxTaGFyZWRCdWZm
ZXI+PiYgb3RoZXIpCiB7CiAgICAgaWYgKHN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8U3RyaW5nPihv
dGhlcikpCiAgICAgICAgIHJldHVybiB7IFdURjo6Z2V0PFN0cmluZz4ob3RoZXIpIH07CkBAIC0y
NjUsNyArMjY1LDcgQEAgdm9pZCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Zm9yRWFjaEN1c3RvbVN0
cmluZyhGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYgdHlwZSwKICAgICB9CiB9CiAKLXZvaWQg
UGFzdGVib2FyZEN1c3RvbURhdGE6OmZvckVhY2hQbGF0Zm9ybVN0cmluZ09yQnVmZmVyKEZ1bmN0
aW9uPHZvaWQoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBWYXJpYW50PFN0cmluZywgUmVmPFNo
YXJlZEJ1ZmZlcj4+JiBkYXRhKT4mJiBmdW5jdGlvbikgY29uc3QKK3ZvaWQgUGFzdGVib2FyZEN1
c3RvbURhdGE6OmZvckVhY2hQbGF0Zm9ybVN0cmluZ09yQnVmZmVyKEZ1bmN0aW9uPHZvaWQoY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBSZWY8U2hhcmVkQnVm
ZmVyPj4mIGRhdGEpPiYmIGZ1bmN0aW9uKSBjb25zdAogewogICAgIGZvciAoYXV0byYgZW50cnkg
OiBtX2RhdGEpIHsKICAgICAgICAgYXV0byYgZGF0YSA9IGVudHJ5LnBsYXRmb3JtRGF0YTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCmluZGV4IDQy
ZjkyZDQwYmJlNmQwYmQ1MzcwOWNhMDBiMjAyZjkxY2FiYjU0MDcuLmFmYWJmNjI5NDFkYTdlNmNl
Y2ZhNjVmMGJiNGIzNTdkYWU0NzIxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZEN1c3RvbURhdGEuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICAg
ICAgU3RyaW5nIHR5cGU7CiAgICAgICAgIFN0cmluZyBjdXN0b21EYXRhOwotICAgICAgICBWYXJp
YW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+IHBsYXRmb3JtRGF0YTsKKyAgICAgICAgc3Rk
Ojp2YXJpYW50PFN0cmluZywgUmVmPFNoYXJlZEJ1ZmZlcj4+IHBsYXRmb3JtRGF0YTsKICAgICB9
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUGFzdGVib2FyZEN1c3RvbURhdGEoKTsKQEAgLTgzLDcg
KzgzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBmb3JFYWNoVHlwZShGdW5jdGlvbjx2b2lkKGNv
bnN0IFN0cmluZyYpPiYmKSBjb25zdDsKICAgICB2b2lkIGZvckVhY2hQbGF0Zm9ybVN0cmluZyhG
dW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKT4mJikg
Y29uc3Q7Ci0gICAgdm9pZCBmb3JFYWNoUGxhdGZvcm1TdHJpbmdPckJ1ZmZlcihGdW5jdGlvbjx2
b2lkKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgVmFyaWFudDxTdHJpbmcsIFJlZjxTaGFyZWRC
dWZmZXI+PiYgZGF0YSk+JiYpIGNvbnN0OworICAgIHZvaWQgZm9yRWFjaFBsYXRmb3JtU3RyaW5n
T3JCdWZmZXIoRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IHN0ZDo6dmFy
aWFudDxTdHJpbmcsIFJlZjxTaGFyZWRCdWZmZXI+PiYgZGF0YSk+JiYpIGNvbnN0OwogICAgIHZv
aWQgZm9yRWFjaEN1c3RvbVN0cmluZyhGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBkYXRhKT4mJikgY29uc3Q7CiAKICAgICBib29sIGhhc0RhdGEoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKaW5kZXggYTczYmI5OTUwZjU1
YWY1OWUxMTk2MGQ0YmUzYmE1ZDA4ZTRiY2E3Mi4uNzJjZThmMzY1Y2U1ZDNmNWMzZWY3MTIyMTU2
YjZiZmZiNjBlNWIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVk
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKQEAg
LTE4Miw3ICsxODIsNyBAQCBwdWJsaWM6CiAgICAgICAgIERhdGFTZWdtZW50KFByb3ZpZGVyJiYg
cHJvdmlkZXIpCiAgICAgICAgICAgICA6IG1faW1tdXRhYmxlRGF0YShXVEZNb3ZlKHByb3ZpZGVy
KSkgeyB9CiAKLSAgICAgICAgVmFyaWFudDxWZWN0b3I8dWludDhfdD4sCisgICAgICAgIHN0ZDo6
dmFyaWFudDxWZWN0b3I8dWludDhfdD4sCiAjaWYgVVNFKENGKQogICAgICAgICAgICAgUmV0YWlu
UHRyPENGRGF0YVJlZj4sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAppbmRleCAyYmE1ODVjOWMwNTY3MTEx
ZDc1NzA5ZDg5N2NkN2NiOTgwMzYzMjQwLi40OGNjZTlkNzc1OWEyMDA0NDY0ZTQ3ZTQ4NTY1ZmM5
ODlmZmZjMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b1N0cmVhbURlc2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCkBAIC0zNyw3ICszNyw3IEBAIHN0cnVjdCBQbGF0Zm9y
bURlc2NyaXB0aW9uIHsKICAgICAgICAgQ0FBdWRpb1N0cmVhbUJhc2ljVHlwZSwKICAgICAgICAg
R1N0cmVhbWVyQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiwKICAgICB9IHR5cGU7Ci0gICAgVmFyaWFu
dDxzdGQ6Om51bGxwdHJfdCwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4gZGVz
Y3JpcHRpb247CisgICAgc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qPiBkZXNjcmlwdGlvbjsKIH07CiAKIGNsYXNzIEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL0NETVByb3h5LmgKaW5kZXggNTY4MTUyODE3MmEyYjE0YzcwNTk2ZmQwMGFhYmMyNzA3
OTVhNWNlZC4uYTU4NGI2Y2QyNjZiMDk4MDkwMjU0ZDdkY2JkZGJmNjBkOTMzMWZiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCkBA
IC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1lZGlhUGxheWVyOwog
CiB1c2luZyBLZXlJRFR5cGUgPSBWZWN0b3I8dWludDhfdD47Ci11c2luZyBLZXlIYW5kbGVWYWx1
ZVZhcmlhbnQgPSBWYXJpYW50PAordXNpbmcgS2V5SGFuZGxlVmFsdWVWYXJpYW50ID0gc3RkOjp2
YXJpYW50PAogICAgIFZlY3Rvcjx1aW50OF90PgogI2lmIEVOQUJMRShUSFVOREVSKQogICAgICwg
Qm94UHRyPE9wZW5DRE1TZXNzaW9uPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRGVjb2RpbmdPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9EZWNvZGluZ09wdGlvbnMuaAppbmRleCBjYTA2NWMzNjIxZTZjNmQyZTUxNTA1OTg4
ODZhMTEwMjNhZTE1NDEyLi40NGYwMDIxMzAzOTAwY2M4NzM4OGNmMWYwNGQ1ZTQ2ZjhiNWZkYTkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGluZ09w
dGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EZWNvZGluZ09w
dGlvbnMuaApAQCAtMTQxLDcgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgLy8gLSBBc3luY2hyb25v
dXMgKyBhbnlTaXplOiBEZWNvZGluZ01vZGU6OkFzeW5jaHJvbm91cwogICAgIC8vIC0gQXN5bmNo
cm9ub3VzICsgaW50cmluc2ljU2l6ZTogYW4gZW1wdHkgc3RkOjpvcHRpb25hbDxJbnRTaXplPj4K
ICAgICAvLyAtIEFzeW5jaHJvbm91cyArIHNpemVGb3JEcmF3aW5nOiBhIG5vbmUgZW1wdHkgc3Rk
OjpvcHRpb25hbDxJbnRTaXplPj4KLSAgICB1c2luZyBEZWNvZGluZ01vZGVPclNpemUgPSBWYXJp
YW50PERlY29kaW5nTW9kZSwgc3RkOjpvcHRpb25hbDxJbnRTaXplPj47CisgICAgdXNpbmcgRGVj
b2RpbmdNb2RlT3JTaXplID0gc3RkOjp2YXJpYW50PERlY29kaW5nTW9kZSwgc3RkOjpvcHRpb25h
bDxJbnRTaXplPj47CiAgICAgRGVjb2RpbmdNb2RlT3JTaXplIG1fZGVjb2RpbmdNb2RlT3JTaXpl
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhc2NhZGVEZXNjcmlwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGVEZXNjcmlwdGlvbi5oCmluZGV4IGVjZWVjMGMzZDgxOWUyMDQ4MTU3NTUyZjgw
NWVlY2FkNzcwMGM1ZGMuLjg4MjQyMTAxZDRmNDQ3MzM3YjQ4MzI0NTI5OWU0ZjJhZDcxZWZhNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
RGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FzY2FkZURlc2NyaXB0aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgdHlwZWRlZiBGb250RmFtaWx5
U3BlY2lmaWNhdGlvbkNvcmVUZXh0IEZvbnRGYW1pbHlQbGF0Zm9ybVNwZWNpZmljYXRpb247CiB0
eXBlZGVmIEZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uTnVsbCBGb250RmFtaWx5UGxhdGZvcm1TcGVj
aWZpY2F0aW9uOwogI2VuZGlmCiAKLXR5cGVkZWYgVmFyaWFudDxBdG9tU3RyaW5nLCBGb250RmFt
aWx5UGxhdGZvcm1TcGVjaWZpY2F0aW9uPiBGb250RmFtaWx5U3BlY2lmaWNhdGlvbjsKK3R5cGVk
ZWYgc3RkOjp2YXJpYW50PEF0b21TdHJpbmcsIEZvbnRGYW1pbHlQbGF0Zm9ybVNwZWNpZmljYXRp
b24+IEZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uOwogCiBjbGFzcyBGb250Q2FzY2FkZURlc2NyaXB0
aW9uIDogcHVibGljIEZvbnREZXNjcmlwdGlvbiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaAppbmRleCA1YTkyY2UxMDZiY2E3OGVhZDM5N2Ni
ZjQyMzI3MWYxYTA5ZjEyNjRmLi44NDAyYTcwNTk1N2ZlYWYxYmE4M2E5NWIxMzI5YWJmNDIyYjY1
M2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKQEAg
LTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbmljRGF0YT4gZGVjb2RlKERlY29kZXImKTsKICAg
ICB9OwogCi0gICAgdXNpbmcgRGF0YSA9IFZhcmlhbnQ8TGluZWFyRGF0YSwgUmFkaWFsRGF0YSwg
Q29uaWNEYXRhPjsKKyAgICB1c2luZyBEYXRhID0gc3RkOjp2YXJpYW50PExpbmVhckRhdGEsIFJh
ZGlhbERhdGEsIENvbmljRGF0YT47CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEdy
YWRpZW50PiBjcmVhdGUoRGF0YSYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW5saW5lUGF0aERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0lubGluZVBhdGhEYXRhLmgKaW5kZXggMDMyYmJhODljMDFjOThjMzM5YjRhNzVj
MWVhNThhOTRiNGNkZTBjYS4uOTI4ODZkNWY4ZWE2ZjdmNGY4NTdjYzUyNGQwMjA0ZDhhYmViYjVh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5saW5lUGF0
aERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmxpbmVQYXRo
RGF0YS5oCkBAIC0yMDIsNyArMjAyLDcgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RkOjpv
cHRpb25hbDxCZXppZXJDdXJ2ZURhdGE+IEJlemllckN1cnZlRGF0YTo6ZGVjb2RlKEQKICAgICBy
ZXR1cm4gZGF0YTsKIH0KIAotdXNpbmcgSW5saW5lUGF0aERhdGEgPSBWYXJpYW50PHN0ZDo6bW9u
b3N0YXRlLCBNb3ZlRGF0YSwgTGluZURhdGEsIEFyY0RhdGEsIFF1YWRDdXJ2ZURhdGEsIEJlemll
ckN1cnZlRGF0YT47Cit1c2luZyBJbmxpbmVQYXRoRGF0YSA9IHN0ZDo6dmFyaWFudDxzdGQ6Om1v
bm9zdGF0ZSwgTW92ZURhdGEsIExpbmVEYXRhLCBBcmNEYXRhLCBRdWFkQ3VydmVEYXRhLCBCZXpp
ZXJDdXJ2ZURhdGE+OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFy
c2VyLmgKaW5kZXggZGUyODI4OTUzMjhjNmVhZTA1OWM0NmJlOTMwNzIzMjMwMTExNzE0NS4uZmQ2
ZDFiMDcxZjg2ZDQxZDAyZjAwMWJjMzdjNjhhYTkxY2U4N2U5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFy
c2VyLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgICAgICBzaXplX3QgcmVhZChzaXpl
X3QgcG9zaXRpb24sIHNpemVfdCwgdWludDhfdCogZGVzdGluYXRpb24pIGNvbnN0OwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgVmFyaWFudDwKKyAgICAgICAgc3RkOjp2YXJpYW50PAogI2lmIEhB
VkUoTVRfUExVR0lOX0ZPUk1BVF9SRUFERVIpCiAgICAgICAgICAgICBSZXRhaW5QdHI8TVRQbHVn
aW5CeXRlU291cmNlUmVmPiwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oCmlu
ZGV4IDY4YTEyMDAwZTI0ZTY5OGRmMGFjOTQ5MDVhNzE3NmUwY2IxMGYxYzMuLmZlODAwZjU1YWZh
YzA3NmZlODRlYmU3OTI1ZjJjZjY0MDRiZjg5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmgKQEAgLTI4OCw3ICsyODgsNyBAQCBwcml2YXRlOgogICAgIFVuaXF1ZVJlZjxTZWdtZW50
UmVhZGVyPiBtX3JlYWRlcjsKIAogICAgIFZlY3RvcjxVbmlxdWVSZWY8VHJhY2tEYXRhPj4gbV90
cmFja3M7Ci0gICAgdXNpbmcgQmxvY2tWYXJpYW50ID0gVmFyaWFudDx3ZWJtOjpCbG9jaywgd2Vi
bTo6U2ltcGxlQmxvY2s+OworICAgIHVzaW5nIEJsb2NrVmFyaWFudCA9IHN0ZDo6dmFyaWFudDx3
ZWJtOjpCbG9jaywgd2VibTo6U2ltcGxlQmxvY2s+OwogICAgIHN0ZDo6b3B0aW9uYWw8QmxvY2tW
YXJpYW50PiBtX2N1cnJlbnRCbG9jazsKICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBtX3Jl
d2luZFRvUG9zaXRpb247CiAgICAgZmxvYXQgbV9taW5pbXVtQXVkaW9TYW1wbGVEdXJhdGlvbiB7
IDIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlc291cmNlSGVhcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVzb3VyY2VIZWFwLmgKaW5kZXgg
NjNjNzM0OWQ5ZDBiNWE4YjQ4YzQwZmRkYjZkZTY1Zjg1MTNiZDllNi4uYWZjMWQwZWUzOTI4OWNi
ZjJkZjI0M2M1NjNlNmFiMGIxYTkwYzk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVzb3VyY2VIZWFwLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVzb3VyY2VIZWFwLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0
dXJuIHN0ZDo6Z2V0PFJlZjxUPj4oaXRlcmF0b3ItPnZhbHVlKS5wdHIoKTsKICAgICB9CiAKLSAg
ICB1c2luZyBSZXNvdXJjZSA9IFZhcmlhbnQ8c3RkOjptb25vc3RhdGUsIFJlZjxJbWFnZUJ1ZmZl
cj4sIFJlZjxOYXRpdmVJbWFnZT4sIFJlZjxGb250Pj47CisgICAgdXNpbmcgUmVzb3VyY2UgPSBz
dGQ6OnZhcmlhbnQ8c3RkOjptb25vc3RhdGUsIFJlZjxJbWFnZUJ1ZmZlcj4sIFJlZjxOYXRpdmVJ
bWFnZT4sIFJlZjxGb250Pj47CiAgICAgSGFzaE1hcDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsIFJlc291cmNlPiBtX3Jlc291cmNlczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291
cmNlTWFjLmgKaW5kZXggOGQyMGVjMTEyMWIxZjU4NzZmNmJhMDBiNWMzNjIxZDBjZGFiMzFmMy4u
ZjkzZTc4MzhiOWM0NzczOTJmYjczOGExNGI4ZDUxNGE3ODZlYTEwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNl
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3Bs
YXlDYXB0dXJlU291cmNlTWFjLmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVjsKIAogY2xhc3MgRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMgZmluYWwgOiBwdWJs
aWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgdXNpbmcgRGlzcGxheUZyYW1l
VHlwZSA9IFdURjo6VmFyaWFudDxSZWZQdHI8TmF0aXZlSW1hZ2U+LCBSZXRhaW5QdHI8SU9TdXJm
YWNlUmVmPj47CisgICAgdXNpbmcgRGlzcGxheUZyYW1lVHlwZSA9IHN0ZDo6dmFyaWFudDxSZWZQ
dHI8TmF0aXZlSW1hZ2U+LCBSZXRhaW5QdHI8SU9TdXJmYWNlUmVmPj47CiAKICAgICBjbGFzcyBD
YXB0dXJlciA6IHB1YmxpYyBMb2dnZXJIZWxwZXIgewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01l
ZGlhRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYURldmlj
ZS5oCmluZGV4IDQyNDA2OTI4ZWU5NWRiMDY1OGVkYmRhZjgyNzdjNzZhNzcwNDRlOWIuLjE0MWEy
MGFkOTM1MTNkOGE0NmY5MDVmODNhZGVmNjZjZjczMzlmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFEZXZpY2UuaApAQCAtMjU5LDcgKzI1OSw3IEBAIHN0
cnVjdCBNb2NrTWVkaWFEZXZpY2UgewogCiAgICAgU3RyaW5nIHBlcnNpc3RlbnRJZDsKICAgICBT
dHJpbmcgbGFiZWw7Ci0gICAgVmFyaWFudDxNb2NrTWljcm9waG9uZVByb3BlcnRpZXMsIE1vY2tT
cGVha2VyUHJvcGVydGllcywgTW9ja0NhbWVyYVByb3BlcnRpZXMsIE1vY2tEaXNwbGF5UHJvcGVy
dGllcz4gcHJvcGVydGllczsKKyAgICBzdGQ6OnZhcmlhbnQ8TW9ja01pY3JvcGhvbmVQcm9wZXJ0
aWVzLCBNb2NrU3BlYWtlclByb3BlcnRpZXMsIE1vY2tDYW1lcmFQcm9wZXJ0aWVzLCBNb2NrRGlz
cGxheVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0ROUy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ETlMuaAppbmRleCAzNDNmNmU3Y2RiMTUyZmE3
N2ZmNDg5MmQ1NWU2ZTNlYjhhMzdiMTA1Li5mNGMwYmRkYzdiMGJmMTdmODMwNzg1NGQ1YzIwZjlj
MGNhMDE0M2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RO
Uy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRE5TLmgKQEAgLTU4LDcg
KzU4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciYgaXB2NkFkZHJlc3Mo
KSBjb25zdCB7IHJldHVybiBXVEY6OmdldDxzdHJ1Y3QgaW42X2FkZHI+KG1fYWRkcmVzcyk7IH0K
IAogcHJpdmF0ZToKLSAgICBWYXJpYW50PHN0cnVjdCBpbl9hZGRyLCBzdHJ1Y3QgaW42X2FkZHI+
IG1fYWRkcmVzczsKKyAgICBzdGQ6OnZhcmlhbnQ8c3RydWN0IGluX2FkZHIsIHN0cnVjdCBpbjZf
YWRkcj4gbV9hZGRyZXNzOwogfTsKIAogZW51bSBjbGFzcyBETlNFcnJvciB7IFVua25vd24sIENh
bm5vdFJlc29sdmUsIENhbmNlbGxlZCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Gb3JtRGF0YS5oCmluZGV4IGZlZWIxOTRkM2Y2MDk2NDUxMDExNzMyMmFlYmVlODBlYzkwMjM2
Y2MuLjliMWMxMmFjYThkNTM3ODU5ODkwMjExZDJlMmYwMWUyNWIxM2JiZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xh
c3MgVGV4dEVuY29kaW5nOwogc3RydWN0IEZvcm1EYXRhRWxlbWVudCB7CiAgICAgc3RydWN0IEVu
Y29kZWRGaWxlRGF0YTsKICAgICBzdHJ1Y3QgRW5jb2RlZEJsb2JEYXRhOwotICAgIHVzaW5nIERh
dGEgPSBWYXJpYW50PFZlY3Rvcjx1aW50OF90PiwgRW5jb2RlZEZpbGVEYXRhLCBFbmNvZGVkQmxv
YkRhdGE+OworICAgIHVzaW5nIERhdGEgPSBzdGQ6OnZhcmlhbnQ8VmVjdG9yPHVpbnQ4X3Q+LCBF
bmNvZGVkRmlsZURhdGEsIEVuY29kZWRCbG9iRGF0YT47CiAKICAgICBGb3JtRGF0YUVsZW1lbnQo
KSA9IGRlZmF1bHQ7CiAgICAgZXhwbGljaXQgRm9ybURhdGFFbGVtZW50KERhdGEmJiBkYXRhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTFZhbHVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMVmFsdWUuaAppbmRleCBkMGNhMDNjYTc3YzdmZWNm
ODEyODlkOTlmNmY1YTY4ZTNhMjAxOTA5Li5jMDY2ODY4NTg1Zjk1NjY2MWQ5YzZiZDQyYTM4NThi
ODFkMmUzOTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMVmFs
dWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMVmFsdWUuaApAQCAtMzMs
NiArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIFNRTFZhbHVlID0gVmFy
aWFudDxzdGQ6Om51bGxwdHJfdCwgU3RyaW5nLCBkb3VibGU+OwordXNpbmcgU1FMVmFsdWUgPSBz
dGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFN0cmluZywgZG91YmxlPjsKIAogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaAppbmRleCA3ZDI1ODJkOGM2MDdmNjExN2Ey
OTNjYjc4MzZiMjhhMGQ1NDI4M2YxLi41ZTA2MmVjN2M4ZjdlNGI5MmZjNDlmZWZiMzFjOTA1OGQx
NTQ1YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhS
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oCkBAIC0xNTIs
NyArMTUyLDcgQEAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBwcm9q
ZWN0aW9uTWF0cml4U2l6ZSA9IDE2OwogICAgICAgICB0eXBlZGVmIHN0ZDo6YXJyYXk8ZmxvYXQs
IHByb2plY3Rpb25NYXRyaXhTaXplPiBQcm9qZWN0aW9uTWF0cml4OwogCi0gICAgICAgIHVzaW5n
IFByb2plY3Rpb24gPSBWYXJpYW50PEZvdiwgUHJvamVjdGlvbk1hdHJpeCwgc3RkOjpudWxscHRy
X3Q+OworICAgICAgICB1c2luZyBQcm9qZWN0aW9uID0gc3RkOjp2YXJpYW50PEZvdiwgUHJvamVj
dGlvbk1hdHJpeCwgc3RkOjpudWxscHRyX3Q+OwogCiAgICAgICAgIHN0cnVjdCBWaWV3IHsKICAg
ICAgICAgICAgIFBvc2Ugb2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5oCmluZGV4IDRkZjRjNGI0ZWI4ZjIyM2Q2Y2YwYjZmZGVmY2EwZjg4NTVjODk1NzMu
LjY5YTkzN2YxMWNhZDhlNmI0MjFkNTc1NWFiMzFhMWQ4ODIxNGU4YzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKQEAgLTU4Myw3ICs1ODMsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlckJsb2NrRmxvd1JhcmVEYXRhPiBtX3Jh
cmVCbG9ja0Zsb3dEYXRhOwogCiBwcml2YXRlOgotICAgIFZhcmlhbnQ8CisgICAgc3RkOjp2YXJp
YW50PAogICAgICAgICBzdGQ6Om1vbm9zdGF0ZSwKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJ
TkdfQ09OVEVYVCkKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPExheW91dEludGVncmF0aW9uOjpM
aW5lTGF5b3V0PiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZl
cnNpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1R5cGVDb252ZXJzaW9ucy5oCmluZGV4
IDE4MGQ2OTNlYTlkM2I1MzEyZDJhNWE0MTE3NjY4MmE0YjhhMWRiNTEuLmQzY2QwYmRmMzIyYmQ2
NmQzMWI4M2JkMDljMTVkMTQzZWRkMmExODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvVHlwZUNvbnZlcnNpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9UeXBl
Q29udmVyc2lvbnMuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBz
dHJpbmdWYWx1ZTsKICAgICAgICAgU3RyaW5nIHRyZWF0TnVsbEFzRW1wdHlTdHJpbmdWYWx1ZTsK
ICAgICAgICAgVmVjdG9yPFN0cmluZz4gc2VxdWVuY2VWYWx1ZTsKLSAgICAgICAgVmFyaWFudDxS
ZWZQdHI8Tm9kZT4sIFZlY3RvcjxTdHJpbmc+LCBPdGhlckRpY3Rpb25hcnk+IHVuaW9uVmFsdWU7
CisgICAgICAgIHN0ZDo6dmFyaWFudDxSZWZQdHI8Tm9kZT4sIFZlY3RvcjxTdHJpbmc+LCBPdGhl
ckRpY3Rpb25hcnk+IHVuaW9uVmFsdWU7CiAgICAgICAgIGludCBjbGFtcExvbmdWYWx1ZTsKICAg
ICAgICAgaW50IGVuZm9yY2VSYW5nZUxvbmdWYWx1ZTsKICAgICB9OwpAQCAtMTI2LDcgKzEyNiw3
IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8V1RGOjpLZXlWYWx1ZVBhaXI8U3RyaW5nLCBW
ZWN0b3I8U3RyaW5nPj4+JiB0ZXN0U2VxdWVuY2VSZWNvcmQoKSBjb25zdCB7IHJldHVybiBtX3Nl
cXVlbmNlUmVjb3JkOyB9CiAgICAgdm9pZCBzZXRUZXN0U2VxdWVuY2VSZWNvcmQoY29uc3QgVmVj
dG9yPFdURjo6S2V5VmFsdWVQYWlyPFN0cmluZywgVmVjdG9yPFN0cmluZz4+PiYgdmFsdWUpIHsg
bV9zZXF1ZW5jZVJlY29yZCA9IHZhbHVlOyB9CiAKLSAgICB1c2luZyBUZXN0VW5pb24gPSBWYXJp
YW50PFN0cmluZywgaW50LCBib29sLCBSZWZQdHI8Tm9kZT4sIFZlY3RvcjxpbnQ+PjsKKyAgICB1
c2luZyBUZXN0VW5pb24gPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBpbnQsIGJvb2wsIFJlZlB0cjxO
b2RlPiwgVmVjdG9yPGludD4+OwogICAgIGNvbnN0IFRlc3RVbmlvbiYgdGVzdFVuaW9uKCkgY29u
c3QgeyByZXR1cm4gbV91bmlvbjsgfQogICAgIHZvaWQgc2V0VGVzdFVuaW9uKFRlc3RVbmlvbiYm
IHZhbHVlKSB7IG1fdW5pb24gPSB2YWx1ZTsgfQogCkBAIC0xMzQsMTUgKzEzNCwxNSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRUZXN0RGljdGlvbmFyeShEaWN0aW9uYXJ5JiYgZGljdGlvbmFyeSkg
eyBtX3Rlc3REaWN0aW9uYXJ5ID0gZGljdGlvbmFyeTsgfQogICAgIAogCi0gICAgdXNpbmcgVGVz
dENsYW1wVW5pb24gPSBWYXJpYW50PFN0cmluZywgaW50LCBWZWN0b3I8aW50Pj47CisgICAgdXNp
bmcgVGVzdENsYW1wVW5pb24gPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBpbnQsIFZlY3RvcjxpbnQ+
PjsKICAgICBjb25zdCBUZXN0Q2xhbXBVbmlvbiYgdGVzdENsYW1wVW5pb24oKSBjb25zdCB7IHJl
dHVybiBtX2NsYW1wVW5pb247IH0KICAgICB2b2lkIHNldFRlc3RDbGFtcFVuaW9uKGNvbnN0IFRl
c3RDbGFtcFVuaW9uJiB2YWx1ZSkgeyBtX2NsYW1wVW5pb24gPSB2YWx1ZTsgfQogCi0gICAgdXNp
bmcgVGVzdEVuZm9yY2VSYW5nZVVuaW9uID0gVmFyaWFudDxTdHJpbmcsIGludCwgVmVjdG9yPGlu
dD4+OworICAgIHVzaW5nIFRlc3RFbmZvcmNlUmFuZ2VVbmlvbiA9IHN0ZDo6dmFyaWFudDxTdHJp
bmcsIGludCwgVmVjdG9yPGludD4+OwogICAgIGNvbnN0IFRlc3RFbmZvcmNlUmFuZ2VVbmlvbiYg
dGVzdEVuZm9yY2VSYW5nZVVuaW9uKCkgY29uc3QgeyByZXR1cm4gbV9lbmZvcmNlUmFuZ2VVbmlv
bjsgfQogICAgIHZvaWQgc2V0VGVzdEVuZm9yY2VSYW5nZVVuaW9uKGNvbnN0IFRlc3RFbmZvcmNl
UmFuZ2VVbmlvbiYgdmFsdWUpIHsgbV9lbmZvcmNlUmFuZ2VVbmlvbiA9IHZhbHVlOyB9CiAKLSAg
ICB1c2luZyBUZXN0VHJlYXROdWxsQXNFbXB0eVN0cmluZ1VuaW9uID0gVmFyaWFudDxTdHJpbmcs
IGludCwgVmVjdG9yPFN0cmluZz4+OworICAgIHVzaW5nIFRlc3RUcmVhdE51bGxBc0VtcHR5U3Ry
aW5nVW5pb24gPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBpbnQsIFZlY3RvcjxTdHJpbmc+PjsKICAg
ICBjb25zdCBUZXN0VHJlYXROdWxsQXNFbXB0eVN0cmluZ1VuaW9uJiB0ZXN0VHJlYXROdWxsQXNF
bXB0eVN0cmluZ1VuaW9uKCkgY29uc3QgeyByZXR1cm4gbV90cmVhdE51bGxBc0VtcHR5U3RyaW5n
VW5pb247IH0KICAgICB2b2lkIHNldFRlc3RUcmVhdE51bGxBc0VtcHR5U3RyaW5nVW5pb24oY29u
c3QgVGVzdFRyZWF0TnVsbEFzRW1wdHlTdHJpbmdVbmlvbiYgdmFsdWUpIHsgbV90cmVhdE51bGxB
c0VtcHR5U3RyaW5nVW5pb24gPSB2YWx1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1NoYXJlZFdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJl
ZFdvcmtlci5jcHAKaW5kZXggZWU2Yzk4ZjE5YzFkODBmY2U2OTY4NGE4ZDViNzI2YzBiYTg1NDBm
ZC4uNTE1MWEwYzIyMTM4Y2VjMDcxZmViYzY4ODIzYTJhYjIwZDI5N2ZiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTaGFyZWRXb3JrZXIpOwog
Ci1TaGFyZWRXb3JrZXI6OlNoYXJlZFdvcmtlcihTdHJpbmcmJiwgc3RkOjpvcHRpb25hbDxWYXJp
YW50PFN0cmluZywgV29ya2VyT3B0aW9ucz4+JiYpCitTaGFyZWRXb3JrZXI6OlNoYXJlZFdvcmtl
cihTdHJpbmcmJiwgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBXb3JrZXJPcHRp
b25zPj4mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFy
ZWRXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmgKaW5kZXgg
MzY2YzI3OWY1ZGZhYjk1MTk4M2Y1YzFkYTgzNjMyMTI1OTQwY2I2My4uMDkwNzFmN2NiZjg0NWJm
MTE2MWZmZTFlYWU1N2JjYzVhMmIxOTY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9TaGFyZWRXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdv
cmtlci5oCkBAIC0zNSwxMSArMzUsMTEgQEAgY2xhc3MgTWVzc2FnZVBvcnQ7CiBjbGFzcyBTaGFy
ZWRXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoU2hhcmVkV29ya2VyKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNoYXJl
ZFdvcmtlcj4gY3JlYXRlKFN0cmluZyYmIHNjcmlwdFVSTCwgc3RkOjpvcHRpb25hbDxWYXJpYW50
PFN0cmluZywgV29ya2VyT3B0aW9ucz4+JiYgb3B0aW9ucykgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTaGFyZWRXb3JrZXIoV1RGTW92ZShzY3JpcHRVUkwpLCBXVEZNb3ZlKG9wdGlvbnMpKSk7IH0K
KyAgICBzdGF0aWMgUmVmPFNoYXJlZFdvcmtlcj4gY3JlYXRlKFN0cmluZyYmIHNjcmlwdFVSTCwg
c3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBXb3JrZXJPcHRpb25zPj4mJiBvcHRp
b25zKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJlZFdvcmtlcihXVEZNb3ZlKHNjcmlwdFVS
TCksIFdURk1vdmUob3B0aW9ucykpKTsgfQogCiAgICAgTWVzc2FnZVBvcnQqIHBvcnQoKSBjb25z
dDsKIHByaXZhdGU6Ci0gICAgU2hhcmVkV29ya2VyKFN0cmluZyYmLCBzdGQ6Om9wdGlvbmFsPFZh
cmlhbnQ8U3RyaW5nLCBXb3JrZXJPcHRpb25zPj4mJik7CisgICAgU2hhcmVkV29ya2VyKFN0cmlu
ZyYmLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxTdHJpbmcsIFdvcmtlck9wdGlvbnM+PiYm
KTsKIAogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29u
c3QgZmluYWw7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgKaW5kZXggZjY3NDUyNDQ1NDg2YjNhZGFj
NjZkNTEyMzUxZDVkNzJkZjg4Y2RkYS4uNzFlMTc0NmVmYjhkM2U4Y2RiYzZlN2M4MmE0NTE4MjQ3
M2U2MDAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIE1lc3NhZ2VQ
b3J0OwogY2xhc3MgU2VydmljZVdvcmtlcjsKIGNsYXNzIFNlcnZpY2VXb3JrZXJDbGllbnQ7CiAK
LXVzaW5nIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2UgPSBWYXJpYW50PFJlZlB0cjxTZXJ2
aWNlV29ya2VyQ2xpZW50PiwgUmVmUHRyPFNlcnZpY2VXb3JrZXI+LCBSZWZQdHI8TWVzc2FnZVBv
cnQ+PjsKK3VzaW5nIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2UgPSBzdGQ6OnZhcmlhbnQ8
UmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+LCBSZWZQdHI8U2VydmljZVdvcmtlcj4sIFJlZlB0
cjxNZXNzYWdlUG9ydD4+OwogCiBjbGFzcyBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IGZpbmFsIDog
cHVibGljIEV4dGVuZGFibGVFdmVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaAppbmRleCA2MjJkZTMzMGQ5Y2Y0NjkzZjE4NTc2ODhj
NWJjMWIzNWIyYThkMmRlLi5jMTIzNjAxMjY3OTJhNjAyZDJiMjJhMWIzYWYwYmI5M2ZmMGI5YmE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJUeXBlcy5oCkBAIC03NSwxMCArNzUsMTAgQEAgdXNpbmcgU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U1dTZXJ2ZXJUb0NvbnRleHQKIHVz
aW5nIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXJUeXBlID0gUHJvY2Vzc0lkZW50aWZpZXJU
eXBlOwogdXNpbmcgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZp
ZXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+OwogCi11c2luZyBEb2N1bWVudE9y
V29ya2VySWRlbnRpZmllciA9IFZhcmlhbnQ8RG9jdW1lbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllcj47Cit1c2luZyBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciA9IHN0ZDo6
dmFyaWFudDxEb2N1bWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPjsKIAot
dXNpbmcgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSA9IFZhcmlhbnQ8U2VydmljZVdvcmtlckRh
dGEsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPjsKLXVzaW5nIFNlcnZpY2VXb3JrZXJPckNsaWVu
dElkZW50aWZpZXIgPSBWYXJpYW50PFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcj47Cit1c2luZyBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhID0g
c3RkOjp2YXJpYW50PFNlcnZpY2VXb3JrZXJEYXRhLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT47
Cit1c2luZyBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyID0gc3RkOjp2YXJpYW50PFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj47CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApp
bmRleCA4ZjZlODkyNjBkZWMxNjc1ZWRmY2VmNTg0YjAzMGQ4NmM3NjY4ODM4Li4zNWQ1NDU4NmQw
MTM0ODA4NDZmYmFkZmVjZGZjMzFmMTBmMWM3MzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBYTUxIdHRw
UmVxdWVzdEV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBB
Y3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCi0gICAgdXNpbmcg
U2VuZFR5cGVzID0gVmFyaWFudDxSZWZQdHI8RG9jdW1lbnQ+LCBSZWZQdHI8QmxvYj4sIFJlZlB0
cjxKU0M6OkFycmF5QnVmZmVyVmlldz4sIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiwgUmVmUHRy
PERPTUZvcm1EYXRhPiwgU3RyaW5nLCBSZWZQdHI8VVJMU2VhcmNoUGFyYW1zPj47CisgICAgdXNp
bmcgU2VuZFR5cGVzID0gc3RkOjp2YXJpYW50PFJlZlB0cjxEb2N1bWVudD4sIFJlZlB0cjxCbG9i
PiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3PiwgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+
LCBSZWZQdHI8RE9NRm9ybURhdGE+LCBTdHJpbmcsIFJlZlB0cjxVUkxTZWFyY2hQYXJhbXM+PjsK
IAogICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICBTdHJp
bmcgc3RhdHVzVGV4dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1F1YWxpZmllZFJlc291cmNlSGVhcC5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1F1YWxpZmllZFJlc291cmNlSGVhcC5oCmluZGV4IDM5ZjIzZTA4NzVm
MmQwZWIzODdkOTQxMzViZjc3YWYxMTYyMTM1MTEuLmI1ZjY2NzQxMGFhMWRjNGJkY2VlMWUyMDhm
NThmM2JlNGQyOTQ0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9RdWFsaWZpZWRSZXNvdXJjZUhlYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUXVhbGlmaWVkUmVzb3VyY2VIZWFwLmgKQEAgLTIxMCw3ICsyMTAsNyBAQCBw
cml2YXRlOgogI2VuZGlmCiAgICAgfQogCi0gICAgdXNpbmcgUmVzb3VyY2UgPSBWYXJpYW50PHN0
ZDo6bW9ub3N0YXRlLCBSZWY8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+LCBSZWY8V2ViQ29yZTo6TmF0
aXZlSW1hZ2U+LCBSZWY8V2ViQ29yZTo6Rm9udD4+OworICAgIHVzaW5nIFJlc291cmNlID0gc3Rk
Ojp2YXJpYW50PHN0ZDo6bW9ub3N0YXRlLCBSZWY8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+LCBSZWY8
V2ViQ29yZTo6TmF0aXZlSW1hZ2U+LCBSZWY8V2ViQ29yZTo6Rm9udD4+OwogICAgIEhhc2hNYXA8
UXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZT4gbV9yZXNvdXJj
ZXM7CiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmll
cjsKICAgICB1bnNpZ25lZCBtX2ltYWdlQnVmZmVyQ291bnQgeyAwIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCAwNGNkMDI1
MzAyZmNhMjhmNjY1MThiZTg2OGI4MDJmMmM2ZWRlYjRmLi5jMGJmMDEzYzMzYTYzYTQ4OTY4MWRl
YWU4YmZhN2NjZjAxMjE5ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgICAg
ICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2U7CiAgICAgfTsKIAot
ICAgIHVzaW5nIFJlcXVlc3RPclJlZGlyZWN0aW9uVHJpcGxldE9yRXJyb3IgPSBWYXJpYW50PFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCwgUmVkaXJlY3Rpb25UcmlwbGV0LCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yPjsKKyAgICB1c2luZyBSZXF1ZXN0T3JSZWRpcmVjdGlvblRyaXBsZXRPckVycm9y
ID0gc3RkOjp2YXJpYW50PFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCwgUmVkaXJlY3Rpb25Ucmlw
bGV0LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPjsKICAgICB1c2luZyBWYWxpZGF0aW9uSGFuZGxl
ciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVxdWVzdE9yUmVkaXJlY3Rpb25UcmlwbGV0T3JF
cnJvciYmKT47CiAgICAgdm9pZCBjaGVjayhXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2Vi
Q29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50KiwgVmFsaWRhdGlvbkhhbmRsZXImJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlRGF0YS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVEYXRhLmgKaW5kZXggOWM0NGE5OGIyODY4NzJlODgyODU5NzUxNzBhMjA2MTUwMWNmZTFj
YS4uYzBjYzQ0OTQ3NDk2MTZlMmY4ZGYwY2M1NjE5ODBkZGYzNjExMTAzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhLmgK
QEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogI2lmIFVTRShHTElCKQogICAgIERhdGEoR1JlZlB0
cjxHQnl0ZXM+JiYsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmZCA9IEZpbGVTeXN0
ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOwogI2VsaWYgVVNFKENVUkwpCi0gICAgRGF0
YShWYXJpYW50PFZlY3Rvcjx1aW50OF90PiwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGE+JiYp
OworICAgIERhdGEoc3RkOjp2YXJpYW50PFZlY3Rvcjx1aW50OF90PiwgRmlsZVN5c3RlbTo6TWFw
cGVkRmlsZURhdGE+JiYpOwogI2VuZGlmCiAgICAgYm9vbCBpc051bGwoKSBjb25zdDsKICAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9zaXplOyB9CkBAIC0xMDEsNyArMTAxLDcg
QEAgcHJpdmF0ZToKICAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9maWxlRGVz
Y3JpcHRvciB7IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfTsKICNlbmRp
ZgogI2lmIFVTRShDVVJMKQotICAgIEJveDxWYXJpYW50PFZlY3Rvcjx1aW50OF90PiwgRmlsZVN5
c3RlbTo6TWFwcGVkRmlsZURhdGE+PiBtX2J1ZmZlcjsKKyAgICBCb3g8c3RkOjp2YXJpYW50PFZl
Y3Rvcjx1aW50OF90PiwgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGE+PiBtX2J1ZmZlcjsKICNl
bmRpZgogICAgIG11dGFibGUgY29uc3QgdWludDhfdCogbV9kYXRhIHsgbnVsbHB0ciB9OwogICAg
IHNpemVfdCBtX3NpemUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Bcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1l
bnRDb2RlcnMuaAppbmRleCAxYjdlMjJmZmI1NDYzYzkyNmE3NmVhNTI3ZWJjZjVhZGFkZGMyMGFj
Li40YTJmODk0MTlmMjcwYmQwY2EyNGQ2OWIxOTI2YTI4NzFmODI2YmRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKQEAgLTczMCw3ICs3MzAsNyBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBFcnJvclR5cGU+IHN0cnVjdCBBcmd1bWVudENvZGVyPEV4cGVjdGVk
PHZvaWQsIEVycm9yVHlwZT4+IHsKIHRlbXBsYXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4g
VHlwZXM+CiBzdHJ1Y3QgVmFyaWFudENvZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6
OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1bnNpZ25lZCBpKQorICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKICAg
ICAgICAgICAgIGVuY29kZXIgPDwgc3RkOjpnZXQ8aW5kZXg+KHZhcmlhbnQpOwpAQCAtNzQwLDEw
ICs3NDAsMTAgQEAgc3RydWN0IFZhcmlhbnRDb2RlciB7CiAgICAgfQogICAgIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJp
YW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIGkpCisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBpZiAoaSA9PSBpbmRleCkg
ewotICAgICAgICAgICAgc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBzdGQ6OnZhcmlhbnRfYWx0ZXJu
YXRpdmU8aW5kZXgsIFdURjo6VmFyaWFudDxUeXBlcy4uLj4+Ojp0eXBlPiBvcHRpb25hbDsKKyAg
ICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgc3RkOjp2YXJpYW50X2FsdGVybmF0aXZl
PGluZGV4LCBzdGQ6OnZhcmlhbnQ8VHlwZXMuLi4+Pjo6dHlwZT4gb3B0aW9uYWw7CiAgICAgICAg
ICAgICBkZWNvZGVyID4+IG9wdGlvbmFsOwogICAgICAgICAgICAgaWYgKCFvcHRpb25hbCkKICAg
ICAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtNzU2LDE3ICs3NTYsMTcgQEAg
c3RydWN0IFZhcmlhbnRDb2RlciB7CiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KIHN0cnVj
dCBWYXJpYW50Q29kZXI8MCwgVHlwZXMuLi4+IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPgotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6
OlZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50LCB1bnNpZ25lZCBpKQorICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBzdGQ6OnZhcmlhbnQ8VHlwZXMuLi4+JiB2
YXJpYW50LCB1bnNpZ25lZCBpKQogICAgIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChpLCAhaSk7
CiAgICAgICAgIGVuY29kZXIgPDwgc3RkOjpnZXQ8MD4odmFyaWFudCk7CiAgICAgfQogICAgIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVk
IGkpCisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PFR5cGVzLi4uPj4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIGkpCiAgICAgewogICAgICAgICBBU1NFUlRf
VU5VU0VEKGksICFpKTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBzdGQ6OnZhcmlh
bnRfYWx0ZXJuYXRpdmU8MCwgV1RGOjpWYXJpYW50PFR5cGVzLi4uPj46OnR5cGU+IG9wdGlvbmFs
OworICAgICAgICBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIHN0ZDo6dmFyaWFudF9hbHRlcm5hdGl2
ZTwwLCBzdGQ6OnZhcmlhbnQ8VHlwZXMuLi4+Pjo6dHlwZT4gb3B0aW9uYWw7CiAgICAgICAgIGRl
Y29kZXIgPj4gb3B0aW9uYWw7CiAgICAgICAgIGlmICghb3B0aW9uYWwpCiAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtNzc0LDkgKzc3NCw5IEBAIHN0cnVjdCBWYXJpYW50Q29k
ZXI8MCwgVHlwZXMuLi4+IHsKICAgICB9CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBl
cz4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpWYXJpYW50PFR5cGVzLi4uPj4gewordGVtcGxh
dGU8dHlwZW5hbWUuLi4gVHlwZXM+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6dmFyaWFudDxU
eXBlcy4uLj4+IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+
JiB2YXJpYW50KQorICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBzdGQ6OnZhcmlhbnQ8VHlwZXMuLi4+JiB2YXJpYW50KQogICAgIHsKICAgICAgICAgdW5zaWdu
ZWQgaSA9IHZhcmlhbnQuaW5kZXgoKTsKICAgICAgICAgZW5jb2RlciA8PCBpOwpAQCAtNzg0LDcg
Kzc4NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXVEY6OlZhcmlhbnQ8VHlwZXMuLi4+PiB7CiAgICAgfQogICAgIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERlY29kZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V1RGOjpWYXJpYW50PFR5
cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8c3RkOjp2YXJpYW50PFR5cGVzLi4uPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAg
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBpOwogICAgICAgICBkZWNvZGVyID4+
IGk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9BdHRhY2htZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9BdHRhY2htZW50LmgKaW5kZXggOWQ2ZTlhNWU3
NzUxMmZiMWQ1Y2FjOTI5MThhYTA2ZjFiZWVkZmM3OC4uMjc2YTdjNzM2NjI5Y2JlYjFmZDBmZWZh
Yjk1OWMyZmZmYTRhMTg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
QXR0YWNobWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQu
aApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBTb2NrZXREZXNjcmlwdG9y
ID0gaW50OwogICAgIHVzaW5nIEN1c3RvbVdyaXRlckZ1bmMgPSBXVEY6OkZ1bmN0aW9uPHZvaWQo
U29ja2V0RGVzY3JpcHRvcik+OwotICAgIHVzaW5nIEN1c3RvbVdyaXRlciA9IFZhcmlhbnQ8Q3Vz
dG9tV3JpdGVyRnVuYywgU29ja2V0RGVzY3JpcHRvcj47CisgICAgdXNpbmcgQ3VzdG9tV3JpdGVy
ID0gc3RkOjp2YXJpYW50PEN1c3RvbVdyaXRlckZ1bmMsIFNvY2tldERlc2NyaXB0b3I+OwogICAg
IEF0dGFjaG1lbnQoQ3VzdG9tV3JpdGVyJiYpOwogI2VsaWYgT1MoREFSV0lOKQogICAgIEF0dGFj
aG1lbnQobWFjaF9wb3J0X25hbWVfdCwgbWFjaF9tc2dfdHlwZV9uYW1lX3QgZGlzcG9zaXRpb24p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVR
dWV1ZU1hcC5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVRdWV1
ZU1hcC5oCmluZGV4IGEyNDBmZjM1YzhlYzc5MjBmMDVlZmJjZDI3MjVjMDdhYjdjY2U0MTkuLjZj
MmMxOTRlMjRmZWU1NDg1ZDUxNjkxNzlkNTc1MmNkMWVjZmIxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlUXVldWVNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwLmgKQEAgLTUxLDcg
KzUxLDcgQEAgcHVibGljOgogCiAgICAgTWVzc2FnZVJlY2VpdmVRdWV1ZSogZ2V0KGNvbnN0IERl
Y29kZXImKSBjb25zdDsKIHByaXZhdGU6Ci0gICAgdXNpbmcgU3RvcmVUeXBlID0gVmFyaWFudDxN
ZXNzYWdlUmVjZWl2ZVF1ZXVlKiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VSZWNlaXZlUXVldWU+
PjsKKyAgICB1c2luZyBTdG9yZVR5cGUgPSBzdGQ6OnZhcmlhbnQ8TWVzc2FnZVJlY2VpdmVRdWV1
ZSosIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjZWl2ZVF1ZXVlPj47CiAgICAgdm9pZCBhZGRJ
bXBsKFN0b3JlVHlwZSYmLCBSZWNlaXZlck5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpOwog
ICAgIHVzaW5nIFF1ZXVlTWFwID0gSGFzaE1hcDxzdGQ6OnBhaXI8dWludDhfdCwgdWludDY0X3Q+
LCBTdG9yZVR5cGU+OwogICAgIFF1ZXVlTWFwIG1fcXVldWVzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNz
aW9uU3RhdGUuaAppbmRleCBlZTZkZjQ4Yjk5YjkyZjFkMDZiZWEwODhjNDBlN2RlODhlMjI0ZWZi
Li5hMzJiMmQ1NTFhYTM2ZGY5NDhlZDliNzA0MTBmOGMwM2ZkOGFjZmVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TZXNzaW9uU3RhdGUuaApAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3QgSFRUUEJvZHkgewog
ICAgICAgICAgICAgQmxvYiwKICAgICAgICAgfTsKIAotICAgICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgYSBWYXJpYW50LiBJdCdzIGFsc28gdW5jbGVhciB3aHkgd2UgZG9uJ3QganVzdCB1
c2UgRm9ybURhdGFFbGVtZW50IGhlcmUuCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSBhIHN0ZDo6dmFyaWFudC4gSXQncyBhbHNvIHVuY2xlYXIgd2h5IHdlIGRvbid0IGp1c3QgdXNl
IEZvcm1EYXRhRWxlbWVudCBoZXJlLgogICAgICAgICBUeXBlIHR5cGUgPSBUeXBlOjpEYXRhOwog
CiAgICAgICAgIC8vIERhdGEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDIwOGYxYjYxMTdiODc5MGNhNDM1MTRiYWE0MTQ1ZDA2YzI2MmFmMGUu
LmQwNDhlYWUxYzBhMDE3N2MzODQzNDEyMzJmOTI1NTNiMjBhOTlkYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xNzcsNyArMTc3LDcgQEAg
c3RydWN0IFZlbG9jaXR5RGF0YTsKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3Qg
V2luZG93RmVhdHVyZXM7CiAKLXVzaW5nIElEQktleVBhdGggPSBWYXJpYW50PFN0cmluZywgVmVj
dG9yPFN0cmluZz4+OwordXNpbmcgSURCS2V5UGF0aCA9IHN0ZDo6dmFyaWFudDxTdHJpbmcsIFZl
Y3RvcjxTdHJpbmc+PjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogc3RydWN0IEtleXByZXNzQ29t
bWFuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCA0
YTNkOGYyYTRlNGNmMGM3ODFlOTcyMmY3Nzk3ZGYzNjEwNmM4MWM4Li45NzFmNTk3MTc3MWI0ZTk5
Y2ZkODE2MThhNWEwMjMzZGZkZDI1MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNTdG9yZS5oCkBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0
b3JlIHsKICAgICBzdGF0aWMgdm9pZCBvdmVycmlkZUJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJp
bmcmIGtleSwgYm9vbCB2YWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlVGVzdFJ1bm5lck92
ZXJyaWRlcygpOwogCi0gICAgdXNpbmcgVmFsdWUgPSBWYXJpYW50PFN0cmluZywgYm9vbCwgdWlu
dDMyX3QsIGRvdWJsZT47CisgICAgdXNpbmcgVmFsdWUgPSBzdGQ6OnZhcmlhbnQ8U3RyaW5nLCBi
b29sLCB1aW50MzJfdCwgZG91YmxlPjsKIAogICAgIHVzaW5nIFZhbHVlTWFwID0gTWVtb3J5Q29t
cGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBWYWx1ZT47CiAgICAgVmFsdWVNYXAgbV92YWx1
ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFTYW1wbGVDdXJzb3IuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5oCmluZGV4IDViMTcwNTNiOGJiNmMwZmZlM2Jk
MWEzOTAxOGUyYTI4ODgxNTRkNDAuLjBmNjAxYjk4ZDRjMzk2YjdkN2NiY2FhOThiYTNmY2RhZWVi
Y2VkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJl
YWRlci9NZWRpYVNhbXBsZUN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9N
ZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUN1cnNvci5oCkBAIC01Miw3ICs1Miw3IEBAIGNs
YXNzIE1lZGlhU2FtcGxlQ3Vyc29yIDogcHVibGljIENvcmVNZWRpYVdyYXBwZWQ8TWVkaWFTYW1w
bGVDdXJzb3I+LCBUaHJlYWRTYWZlCiBwdWJsaWM6CiAgICAgdXNpbmcgRGVjb2RlT3JkZXJJdGVy
YXRvciA9IFdlYkNvcmU6OkRlY29kZU9yZGVyU2FtcGxlTWFwOjppdGVyYXRvcjsKICAgICB1c2lu
ZyBQcmVzZW50YXRpb25PcmRlckl0ZXJhdG9yID0gV2ViQ29yZTo6UHJlc2VudGF0aW9uT3JkZXJT
YW1wbGVNYXA6Oml0ZXJhdG9yOwotICAgIHVzaW5nIExvY2F0b3IgPSBWYXJpYW50PE1lZGlhVGlt
ZSwgRGVjb2RlT3JkZXJJdGVyYXRvciwgUHJlc2VudGF0aW9uT3JkZXJJdGVyYXRvcj47CisgICAg
dXNpbmcgTG9jYXRvciA9IHN0ZDo6dmFyaWFudDxNZWRpYVRpbWUsIERlY29kZU9yZGVySXRlcmF0
b3IsIFByZXNlbnRhdGlvbk9yZGVySXRlcmF0b3I+OwogCiAgICAgc3RydWN0IFRpbWluZyB7CiAg
ICAgICAgIE1lZGlhVGltZSBkZWNvZGVUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmgKaW5kZXggODJjMWJmODk0
MWNkN2FiYTY1NTgzYjEzZGYzZDVhMzVjNmVjMmFmYi4uMTE2ODIxNDcwYWI1NjkxODUzZDE4OTBl
NzA4YmNkODY5YWZkNjgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNz
IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ7CiAKIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OldlYkF1dGhlbnRp
Y2F0aW9uUGFuZWw+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViQXV0aGVudGljYXRpb25QYW5l
bD4gewogcHVibGljOgotICAgIHVzaW5nIFJlc3BvbnNlID0gVmFyaWFudDxSZWY8V2ViQ29yZTo6
QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT47CisgICAgdXNp
bmcgUmVzcG9uc2UgPSBzdGQ6OnZhcmlhbnQ8UmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNw
b25zZT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+OwogICAgIHVzaW5nIENhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZXNwb25zZSYmKT47CiAKICAgICBXZWJBdXRoZW50aWNhdGlv
blBhbmVsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01v
Y2tNZWRpYURldmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01vY2tN
ZWRpYURldmljZS5jcHAKaW5kZXggNTJhZTM5NjgwYTQ0Nzk4MjJjYWE3MTI2M2VkNWMzMGM2MmQ2
OTg1My4uNjA2MzBkZjc4N2Y1MzI0ODQyZmQzOTYwNWQzZTMzMTNhYmM4MjRlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2aWNlLmNwcApA
QCAtMzgsNyArMzgsNyBAQCB2b2lkIFdLQWRkTW9ja01lZGlhRGV2aWNlKFdLQ29udGV4dFJlZiBj
b250ZXh0LCBXS1N0cmluZ1JlZiBwZXJzaXN0ZW50SWQsIFdLU3RyaQogewogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgU3RyaW5nIHR5cGVTdHJpbmcgPSBXZWJLaXQ6OnRvSW1wbCh0eXBl
KS0+c3RyaW5nKCk7Ci0gICAgVmFyaWFudDxXZWJDb3JlOjpNb2NrTWljcm9waG9uZVByb3BlcnRp
ZXMsIFdlYkNvcmU6Ok1vY2tTcGVha2VyUHJvcGVydGllcywgV2ViQ29yZTo6TW9ja0NhbWVyYVBy
b3BlcnRpZXMsIFdlYkNvcmU6Ok1vY2tEaXNwbGF5UHJvcGVydGllcz4gcHJvcGVydGllczsKKyAg
ICBzdGQ6OnZhcmlhbnQ8V2ViQ29yZTo6TW9ja01pY3JvcGhvbmVQcm9wZXJ0aWVzLCBXZWJDb3Jl
OjpNb2NrU3BlYWtlclByb3BlcnRpZXMsIFdlYkNvcmU6Ok1vY2tDYW1lcmFQcm9wZXJ0aWVzLCBX
ZWJDb3JlOjpNb2NrRGlzcGxheVByb3BlcnRpZXM+IHByb3BlcnRpZXM7CiAgICAgaWYgKHR5cGVT
dHJpbmcgPT0gImNhbWVyYSIpCiAgICAgICAgIHByb3BlcnRpZXMgPSBXZWJDb3JlOjpNb2NrQ2Ft
ZXJhUHJvcGVydGllcyB7IH07CiAgICAgZWxzZSBpZiAodHlwZVN0cmluZyA9PSAic2NyZWVuIikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4
IGIzMjUzOWRhZTZmYjc4MzQwN2Y2YmMxYzNkNmZjMTdiY2IwYWNmOWMuLjA1NjA1NGNiYzllYzk5
ZTkzZDJmZWZjYjRkZTM5ODFhZjlmY2UyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgaW5saW5lIE9w
dGlvblNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiB0b0ZpbmRPcHRpb25zKFdLRmluZENvbmZpZ3Vy
YXRpb24gKmNvbmZpZ3UKIAogI3ByYWdtYSBtYXJrIC0gbWFjT1MvaU9TIGludGVybmFsCiAKLS0g
KHZvaWQpX3Nob3dTYWZlQnJvd3NpbmdXYXJuaW5nOihjb25zdCBXZWJLaXQ6OlNhZmVCcm93c2lu
Z1dhcm5pbmcmKXdhcm5pbmcgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiljb21wbGV0
aW9uSGFuZGxlcgorLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6KGNvbnN0IFdlYktp
dDo6U2FmZUJyb3dzaW5nV2FybmluZyYpd2FybmluZyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQs
IFVSTD4mJik+JiYpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBfc2FmZUJyb3dzaW5nV2Fybmlu
ZyA9IGFkb3B0TlMoW1tXS1NhZmVCcm93c2luZ1dhcm5pbmcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
c2VsZi5ib3VuZHMgc2FmZUJyb3dzaW5nV2FybmluZzp3YXJuaW5nIGNvbXBsZXRpb25IYW5kbGVy
Olt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLV2ViVmlldz4oc2VsZiksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChhdXRvJiYgcmVzdWx0KSBtdXRhYmxl
IHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKQEAgLTI3NDUs
NyArMjc0NSw3IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRBbmRBZGRIaWdobGlnaHQoVmVjdG9yPFJl
ZjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4+JiBidWZmZXJzLCBOCiB7CiAgICAgVEhST1dfSUZfU1VT
UEVOREVEOwogICAgIGF1dG8gc2FmZUJyb3dzaW5nV2FybmluZyA9IFdlYktpdDo6U2FmZUJyb3dz
aW5nV2FybmluZzo6Y3JlYXRlKHVybCwgdGl0bGUsIHdhcm5pbmcsIGRldGFpbHMpOwotICAgIGF1
dG8gd3JhcHBlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9u
SGFuZGxlcildIChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYgdmFy
aWFudCkgeworICAgIGF1dG8gd3JhcHBlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9j
a1B0cihjb21wbGV0aW9uSGFuZGxlcildIChzdGQ6OnZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVu
c2FmZUxvYWQsIFVSTD4mJiB2YXJpYW50KSB7CiAgICAgICAgIHN3aXRjaE9uKHZhcmlhbnQsIFsm
XSAoV2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQgY29udGludWVVbnNhZmVMb2FkKSB7CiAgICAg
ICAgICAgICBzd2l0Y2ggKGNvbnRpbnVlVW5zYWZlTG9hZCkgewogICAgICAgICAgICAgY2FzZSBX
ZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZDo6WWVzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCBiOTE5ZGQ5Nzhm
ZDZiNDVlMjI4MDk0ZjE5YTc0N2UwOGU3ZmM5NDg5Li44MjE2OGQ5ODc5NDg4OGQ3YmY1OWNmMjU4
MmVmZjNhYjE2YWM0NzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaApAQCAtMjcyLDcgKzI3Miw3IEBAIGNsYXNzIFZp
ZXdHZXN0dXJlQ29udHJvbGxlcjsKIAogLSAodm9pZClfaW50ZXJuYWxEb0FmdGVyTmV4dFByZXNl
bnRhdGlvblVwZGF0ZToodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgd2l0aG91dFdhaXRpbmdG
b3JQYWludGluZzooQk9PTCl3aXRob3V0V2FpdGluZ0ZvclBhaW50aW5nIHdpdGhvdXRXYWl0aW5n
Rm9yQW5pbWF0ZWRSZXNpemU6KEJPT0wpd2l0aG91dFdhaXRpbmdGb3JBbmltYXRlZFJlc2l6ZTsK
IAotLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6KGNvbnN0IFdlYktpdDo6U2FmZUJy
b3dzaW5nV2FybmluZyYpd2FybmluZyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChWYXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKWNv
bXBsZXRpb25IYW5kbGVyOworLSAodm9pZClfc2hvd1NhZmVCcm93c2luZ1dhcm5pbmc6KGNvbnN0
IFdlYktpdDo6U2FmZUJyb3dzaW5nV2FybmluZyYpd2FybmluZyBjb21wbGV0aW9uSGFuZGxlcjoo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2Fm
ZUxvYWQsIFVSTD4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKV9jbGVhclNhZmVC
cm93c2luZ1dhcm5pbmc7CiAtICh2b2lkKV9jbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1h
aW5GcmFtZU5hdmlnYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggMDM4
NjMyYzkwYTA0YjViMWYzOGMwYzNlNTExZDliN2FmMzNkN2ZmMS4uOWZlMTNkYjllZmQ0M2RjOGE1
NmUwMTk3MGI5MTg5ZTM0MDhhN2JmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAg
LTUzNiw3ICs1MzYsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0b3JBdHRlc3Rh
dGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvbgogI2lmIEVOQUJMRShXRUJf
QVVUSE4pCiAgICAgYXV0byBjbGllbnREYXRhSlNPTiA9IHByb2R1Y2VDbGllbnREYXRhSnNvbihf
V0tXZWJBdXRoZW50aWNhdGlvblR5cGVDcmVhdGUsIGNoYWxsZW5nZSwgb3JpZ2luKTsKICAgICBh
dXRvIGhhc2ggPSBwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNsaWVudERhdGFKU09OLmdldCgp
KTsKLSAgICBhdXRvIGNhbGxiYWNrID0gW2hhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFuZGxlciks
IGNsaWVudERhdGFKU09OID0gV1RGTW92ZShjbGllbnREYXRhSlNPTildIChWYXJpYW50PFJlZjxX
ZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYm
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0gbWFrZUJs
b2NrUHRyKGhhbmRsZXIpLCBjbGllbnREYXRhSlNPTiA9IFdURk1vdmUoY2xpZW50RGF0YUpTT04p
XSAoc3RkOjp2YXJpYW50PFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIFdURjo6c3dp
dGNoT24ocmVzdWx0LCBbJl0oY29uc3QgUmVmPFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25z
ZT4mIHJlc3BvbnNlKSB7CiAgICAgICAgICAgICBoYW5kbGVyKHdrQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UocmVzcG9uc2UtPmRhdGEoKSwgY2xpZW50RGF0YUpTT04uZ2V0KCksIHJl
c3BvbnNlLT5hdHRhY2htZW50KCkpLmdldCgpLCBuaWwpOwogICAgICAgICB9LCBbJl0oY29uc3Qg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uKSB7CkBAIC01ODYsNyArNTg2LDcgQEAg
c3RhdGljIFJldGFpblB0cjxfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+IHdrQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3AKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogICAgIGF1dG8g
Y2xpZW50RGF0YUpTT04gPSBwcm9kdWNlQ2xpZW50RGF0YUpzb24oX1dLV2ViQXV0aGVudGljYXRp
b25UeXBlR2V0LCBjaGFsbGVuZ2UsIG9yaWdpbik7CiAgICAgYXV0byBoYXNoID0gcHJvZHVjZUNs
aWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSlNPTi5nZXQoKSk7Ci0gICAgYXV0byBjYWxsYmFj
ayA9IFtoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGhhbmRsZXIpLCBjbGllbnREYXRhSlNPTiA9IFdU
Rk1vdmUoY2xpZW50RGF0YUpTT04pXSAoVmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRv
clJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewor
ICAgIGF1dG8gY2FsbGJhY2sgPSBbaGFuZGxlciA9IG1ha2VCbG9ja1B0cihoYW5kbGVyKSwgY2xp
ZW50RGF0YUpTT04gPSBXVEZNb3ZlKGNsaWVudERhdGFKU09OKV0gKHN0ZDo6dmFyaWFudDxSZWY8
V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4m
JiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwgWyZdKGNv
bnN0IFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiByZXNwb25zZSkgewogICAg
ICAgICAgICAgaGFuZGxlcih3a0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZShyZXNwb25z
ZS0+ZGF0YSgpLCBjbGllbnREYXRhSlNPTi5nZXQoKSwgcmVzcG9uc2UtPmF0dGFjaG1lbnQoKSku
Z2V0KCksIG5pbCk7CiAgICAgICAgIH0sIFsmXShjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
JiBleGNlcHRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCmluZGV4IDNhYTI1ZmQwNjc5
NzgxNjIyZjEwNjY1Yzc0N2JjZDdjNWYzZDFiOGQuLjZlYmU3NmE1ZDI0NzYzNWZiOWU0M2U3MTEx
MTczMWE2Y2FjZjljZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaApAQCAtMTM2LDcgKzEz
Niw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlVG91Y2hJbnRlcmFj
dGlvbihXZWJQYWdlUHJveHkmLCBUb3VjaEludGVyYWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgbG9jYXRpb25JblZpZXcsIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gZHVyYXRpb24sIEF1
dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VC
RFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKLSAgICAgICAgdmlydHVhbCB2b2lkIHNpbXVs
YXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9u
LCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNvbXBsZXRp
b25IYW5kbGVyJiYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJ
bnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBzdGQ6OnZhcmlh
bnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYp
ID0gMDsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVXaGVlbEludGVyYWN0aW9uKFdlYlBhZ2VQcm94
eSYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsb2NhdGlvbkluVmlldywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgZGVsdGEsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDA2MTc4ZGIwYjkwZTg4N2ZmODE1MjQ4ZGJmNDFlYmZk
NzgwMGM3OTAuLjg3ZjQ0M2ZhMjg1MTI1NjU5Yzc2OWVjNjY5YTk5NDM4MmI1ZjVhMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNl
c3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwCkBAIC0xNjYwLDcgKzE2NjAsNyBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpzaW11bGF0ZVRvdWNoSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBU
b3VjaEludAogI2VuZGlmIC8vIEVOQUJMRShXRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKQog
CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCi12b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5
JiBwYWdlLCBLZXlib2FyZEludGVyYWN0aW9uIGludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8Vmly
dHVhbEtleSwgQ2hhcktleT4mJiBrZXksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFn
ZVByb3h5JiBwYWdlLCBLZXlib2FyZEludGVyYWN0aW9uIGludGVyYWN0aW9uLCBzdGQ6OnZhcmlh
bnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiBrZXksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3Rk
OjpvcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgLy8gQnJpZGdlIHRoZSBmbHVzaGVkIGNhbGxiYWNrIHRvIG91ciBjb21tYW5kJ3Mg
Y29tcGxldGlvbiBoYW5kbGVyLgogICAgIGF1dG8ga2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJh
Y2sgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oc3Rk
OjpvcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPiBlcnJvcikgbXV0YWJsZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmgKaW5kZXggMWM3MjgxY2FiMDAzOThjZWNiODRlNWUyNmEwNDljOTg4ZDY2NzBl
NS4uZjc1ZGNhZDVlMzU4NTQ5MzdlYzBiY2RlN2QyZDQ3MjhmYjBiNjIyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNl
c3Npb24uaApAQCAtMTUzLDcgKzE1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNpbXVsYXRlVG91
Y2hJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBUb3VjaEludGVyYWN0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgbG9jYXRpb25JblZpZXcsIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gZHVy
YXRpb24sIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKICNlbmRpZgogI2lmIEVOQUJM
RShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQotICAgIHZvaWQgc2ltdWxhdGVLZXli
b2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rpb24sIFdURjo6
VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRs
ZXImJik7CisgICAgdm9pZCBzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5
JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgc3RkOjp2YXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+
JiYsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKICNlbmRpZgogI2lmIEVOQUJMRShX
RUJEUklWRVJfV0hFRUxfSU5URVJBQ1RJT05TKQogICAgIHZvaWQgc2ltdWxhdGVXaGVlbEludGVy
YWN0aW9uKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBsb2NhdGlvbklu
VmlldywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEsIEF1dG9tYXRpb25Db21wbGV0aW9u
SGFuZGxlciYmKTsKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAjaWYgRU5B
QkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgLy8gU2ltdWxhdGVzIGEg
c2luZ2xlIHZpcnR1YWwgb3IgY2hhciBrZXkgYmVpbmcgcHJlc3NlZC9yZWxlYXNlZCwgc3VjaCBh
cyAnYScsIENvbnRyb2wsIEYta2V5cywgTnVtcGFkIGtleXMsIGV0Yy4gYXMgYWxsb3dlZCBieSB0
aGUgcHJvdG9jb2wuCi0gICAgdm9pZCBwbGF0Zm9ybVNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlv
bihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVh
bEtleSwgQ2hhcktleT4mJik7CisgICAgdm9pZCBwbGF0Zm9ybVNpbXVsYXRlS2V5Ym9hcmRJbnRl
cmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBzdGQ6OnZhcmlhbnQ8
VmlydHVhbEtleSwgQ2hhcktleT4mJik7CiAgICAgLy8gU2ltdWxhdGVzIGtleSBwcmVzc2VzIHRv
IHByb2R1Y2UgdGhlIGNvZGVwb2ludHMgaW4gYSBzdHJpbmcuIE9uZSBvciBtb3JlIGNvZGUgcG9p
bnRzIGFyZSBkZWxpdmVyZWQgYXRvbWljYWxseSBhdCBncmFwaGVtZSBjbHVzdGVyIGJvdW5kYXJp
ZXMuCiAgICAgdm9pZCBwbGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2ViUGFnZVByb3h5Jiwg
Y29uc3QgU3RyaW5nJik7CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRF
UkFDVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L2lvcy9XZWJBdXRvbWF0aW9uU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25TZXNzaW9uSU9TLm1tCmluZGV4IDZmNTI1ZGEw
YmEyNTVjMmIxNTMzNjAzMzlmYjUwMmFkZTUyYjNkYmQuLjU1Y2MzZmEzOWE5NmEwYTAyZWVlNDI5
N2Q1Yjg5NzViNjYwNzM5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25TZXNzaW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vaW9zL1dlYkF1dG9tYXRpb25TZXNzaW9uSU9TLm1tCkBA
IC02OCw3ICs2OCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNlbmRTeW50aGVzaXpl
ZEV2ZW50c1RvUGFnZShXZWJQYWdlUHJveHkmIHBhZ2UsIE5TQXJyCiAjcHJhZ21hIG1hcmsgQ29t
bWFuZHMgZm9yIFBsYXRmb3JtOiAnaU9TJwogCiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FS
RF9JTlRFUkFDVElPTlMpCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVs
YXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEtleWJvYXJkSW50ZXJh
Y3Rpb24gaW50ZXJhY3Rpb24sIFdURjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmIGtl
eSkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlib2FyZElu
dGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgS2V5Ym9hcmRJbnRlcmFjdGlvbiBpbnRlcmFj
dGlvbiwgc3RkOjp2YXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYga2V5KQogewogICAgIC8v
IFRoZSBtb2RpZmllcnMgY2hhbmdlZCBieSB0aGUgdmlydHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVz
c2VkIG9yIHJlbGVhc2VkLgogICAgIFdlYkV2ZW50RmxhZ3MgY2hhbmdlZE1vZGlmaWVycyA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJB
dXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tCmluZGV4IDVmY2Q4MWQxNGZmMjZjMWY0
ZGFjNzY1ODdkOGJiNzViNDQ3NjVlN2QuLjU3YWRkNGE0YWM0MTJjYmZkZGMxN2YxZWE3MDIzM2Vm
NDg3ODdlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
bWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tCkBAIC02MjUsNyAr
NjI1LDcgQEAgc3RhdGljIE5TRXZlbnRNb2RpZmllckZsYWdzIGV2ZW50TW9kaWZpZXJGbGFnc0Zv
clZpcnR1YWxLZXkoVmlydHVhbEtleSBrZXkpCiAgICAgfQogfQogCi12b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJv
eHkmIHBhZ2UsIEtleWJvYXJkSW50ZXJhY3Rpb24gaW50ZXJhY3Rpb24sIFdURjo6VmFyaWFudDxW
aXJ0dWFsS2V5LCBDaGFyS2V5PiYmIGtleSkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBs
YXRmb3JtU2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgS2V5
Ym9hcmRJbnRlcmFjdGlvbiBpbnRlcmFjdGlvbiwgc3RkOjp2YXJpYW50PFZpcnR1YWxLZXksIENo
YXJLZXk+JiYga2V5KQogewogICAgIC8vIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIGFuZCB0aGUgQXV0
b21hdGlvbiBwcm90b2NvbCBlbnVtIHNob3VsZCBwcm9iYWJseSBhZG9wdCBrZXkgbmFtZXMKICAg
ICAvLyBmcm9tIFczQyBVSUV2ZW50cyBzdGFuZGFyZC4gRm9yIG1vcmUgZGV0YWlsczogaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3VpZXZlbnRzLWNvZGUvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU3ViRnJhbWVTT0F1dGhvcml6YXRpb25T
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24v
U3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLmgKaW5kZXggYjU3N2NiZGY4ZTA3OGY0ZmI0
Zjg3MzRkN2JmZDYwOGQyMDM4ODA2My4uMjQ0NzliNDY4MjZmN2ExNjI2ZjBlNTgxNzY0NzQ2ZDMz
MGUzYTFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRo
b3JpemF0aW9uL1N1YkZyYW1lU09BdXRob3JpemF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TdWJGcmFtZVNPQXV0aG9yaXph
dGlvblNlc3Npb24uaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgflN1YkZyYW1lU09B
dXRob3JpemF0aW9uU2Vzc2lvbigpOwogCiBwcml2YXRlOgotICAgIHVzaW5nIFN1cHBsZW1lbnQg
PSBWYXJpYW50PFZlY3Rvcjx1aW50OF90PiwgU3RyaW5nPjsKKyAgICB1c2luZyBTdXBwbGVtZW50
ID0gc3RkOjp2YXJpYW50PFZlY3Rvcjx1aW50OF90PiwgU3RyaW5nPjsKIAogICAgIFN1YkZyYW1l
U09BdXRob3JpemF0aW9uU2Vzc2lvbihTT0F1dGhvcml6YXRpb24gKiwgUmVmPEFQSTo6TmF2aWdh
dGlvbkFjdGlvbj4mJiwgV2ViUGFnZVByb3h5JiwgQ2FsbGJhY2smJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V0tTYWZlQnJvd3NpbmdXYXJuaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
S1NhZmVCcm93c2luZ1dhcm5pbmcuaAppbmRleCA0MzE4OWMwYTNhMWU5NTk3ODBjYWIxMmFlMjZj
OGI3N2VkNTM3MDc5Li4zNzFkNGUwNjA0Y2YyOWI4OWE5OTMxMTg0ZDk1ODNiZjM5YmUzOTJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NhZmVCcm93c2luZ1dh
cm5pbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NhZmVCcm93c2lu
Z1dhcm5pbmcuaApAQCAtNjgsNyArNjgsNyBAQCB1c2luZyBSZWN0VHlwZSA9IENHUmVjdDsKICNl
bmRpZgogewogQHBhY2thZ2UKLSAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZhcmlhbnQ8V2Vi
S2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+IF9jb21wbGV0aW9uSGFuZGxlcjsKKyAg
ICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5z
YWZlTG9hZCwgVVJMPiYmKT4gX2NvbXBsZXRpb25IYW5kbGVyOwogICAgIFJlZlB0cjxjb25zdCBX
ZWJLaXQ6OlNhZmVCcm93c2luZ1dhcm5pbmc+IF93YXJuaW5nOwogICAgIFdlYWtPYmpDUHRyPFdL
U2FmZUJyb3dzaW5nVGV4dFZpZXc+IF9kZXRhaWxzOwogICAgIFdlYWtPYmpDUHRyPFdLU2FmZUJy
b3dzaW5nQm94PiBfYm94OwpAQCAtNzcsNyArNzcsNyBAQCB1c2luZyBSZWN0VHlwZSA9IENHUmVj
dDsKICNlbmRpZgogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooUmVjdFR5cGUp
ZnJhbWUgc2FmZUJyb3dzaW5nV2FybmluZzooY29uc3QgV2ViS2l0OjpTYWZlQnJvd3NpbmdXYXJu
aW5nJil3YXJuaW5nIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZh
cmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpY29tcGxldGlvbkhh
bmRsZXI7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooUmVjdFR5cGUpZnJhbWUgc2Fm
ZUJyb3dzaW5nV2FybmluZzooY29uc3QgV2ViS2l0OjpTYWZlQnJvd3NpbmdXYXJuaW5nJil3YXJu
aW5nIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFu
dDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiljb21wbGV0aW9uSGFuZGxl
cjsKIAogLSAoQk9PTClmb3JNYWluRnJhbWVOYXZpZ2F0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NhZmVCcm93c2luZ1dhcm5pbmcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NhZmVCcm93c2luZ1dhcm5pbmcubW0KaW5kZXgg
M2MwNzc3NGJkOTE0YmI5NTBlMjA1ODg0ZDcyOTQ3YTUwNzY2ZDg0NS4uNjIwZGNmYjdkNzRiMjBh
NzM0YzBhNWFkMjhiOTFjNjI3MzY1ZDIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV0tTYWZlQnJvd3NpbmdXYXJuaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dLU2FmZUJyb3dzaW5nV2FybmluZy5tbQpAQCAtMjkwLDEzICsyOTAs
MTMgQEAgc3RhdGljIFJldGFpblB0cjxWaWV3VHlwZT4gbWFrZUxhYmVsKE5TQXR0cmlidXRlZFN0
cmluZyAqYXR0cmlidXRlZFN0cmluZykKIAogQGltcGxlbWVudGF0aW9uIFdLU2FmZUJyb3dzaW5n
V2FybmluZwogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooUmVjdFR5cGUpZnJhbWUg
c2FmZUJyb3dzaW5nV2FybmluZzooY29uc3QgV2ViS2l0OjpTYWZlQnJvd3NpbmdXYXJuaW5nJil3
YXJuaW5nIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZhcmlhbnQ8
V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpY29tcGxldGlvbkhhbmRsZXIK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihSZWN0VHlwZSlmcmFtZSBzYWZlQnJvd3Np
bmdXYXJuaW5nOihjb25zdCBXZWJLaXQ6OlNhZmVCcm93c2luZ1dhcm5pbmcmKXdhcm5pbmcgY29t
cGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2YXJpYW50PFdlYktp
dDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAg
ICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lXSkpIHsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQ6Olllcyk7CiAgICAg
ICAgIHJldHVybiBuaWw7CiAgICAgfQotICAgIF9jb21wbGV0aW9uSGFuZGxlciA9IFt3ZWFrU2Vs
ZiA9IFdlYWtPYmpDUHRyPFdLU2FmZUJyb3dzaW5nV2FybmluZz4oc2VsZiksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChWYXJpYW50PFdlYktpdDo6Q29u
dGludWVVbnNhZmVMb2FkLCBVUkw+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBfY29tcGxldGlv
bkhhbmRsZXIgPSBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS1NhZmVCcm93c2luZ1dhcm5pbmc+
KHNlbGYpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAo
c3RkOjp2YXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYgcmVzdWx0KSBt
dXRhYmxlIHsKICNpZiBQTEFURk9STShXQVRDSE9TKQogICAgICAgICBpZiAoYXV0byBzdHJvbmdT
ZWxmID0gd2Vha1NlbGYuZ2V0KCkpCiAgICAgICAgICAgICBbc3Ryb25nU2VsZi5nZXQoKS0+X3By
ZXZpb3VzRmlyc3RSZXNwb25kZXIgYmVjb21lRmlyc3RSZXNwb25kZXJdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggMjYyZDU2ZmQ5NzZmYjNiNDdi
NzI1YjhlYmQ2NmRhNjM0MmQ2ODRhNS4uNTkwYjg3YzFjNWMyYzA5YWNlOGI5ZjE3MTBkYjkzNzg0
MmIxNTZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
CkBAIC0yNjIsNyArMjYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld1NjYWxlKENHRmxv
YXQpOwogICAgIENHRmxvYXQgdmlld1NjYWxlKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNob3dTYWZl
QnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZhcmlhbnQ8Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmKTsKKyAgICB2
b2lkIHNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6dmFyaWFudDxDb250aW51ZVVuc2FmZUxvYWQsIFVS
TD4mJik+JiYpOwogICAgIHZvaWQgY2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nKCk7CiAgICAgdm9p
ZCBjbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmlnYXRpb24oKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA0MTkx
ZWM4YjIyNDk5ZDA4NzFjMTMyMzg1NmU4MDRkMmVjMzVmYjQ0Li5jYjgyMzY5YWUxYWU3OWZhYmMx
MTdiMzQ2NjY2YjM3YmI1YmY5Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQpAQCAtMTc1Niw3ICsxNzU2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
dGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICAgICAgW3dl
YlZpZXcud2luZG93IHNlbGVjdEtleVZpZXdQcmVjZWRpbmdWaWV3OndlYlZpZXddOwogfQogCi12
b2lkIFdlYlZpZXdJbXBsOjpzaG93U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3Np
bmdXYXJuaW5nJiB3YXJuaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZhcmlhbnQ8Q29udGlu
dWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJWaWV3
SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYg
d2FybmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZhcmlhbnQ8Q29udGludWVVbnNh
ZmVMb2FkLCBVUkw+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV92aWV3
KQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoQ29udGludWVVbnNhZmVMb2FkOjpZ
ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDdjOWRmYzUxMTY2YzI4
OWQwNTdkZjY0ZDE4MDkwMmMzMzM2NDc1NGYuLmI2NmE3ZjM4Y2Q2ZjNiMzM3ZjIwNTM1NmFjZGE0
NDgxMDBjM2ZjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTI4Miw3
ICsyODIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNp
emUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBzaG93
U2FmZUJyb3dzaW5nV2FybmluZyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWYXJpYW50PENvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihDb250aW51ZVVuc2FmZUxvYWQ6Olll
cyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2Fm
ZUJyb3dzaW5nV2FybmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2YXJpYW50PENv
bnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcihDb250aW51ZVVuc2FmZUxvYWQ6Olllcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyU2Fm
ZUJyb3dzaW5nV2FybmluZ0lmRm9yTWFpbkZyYW1lTmF2aWdhdGlvbigpIHsgfQogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCmluZGV4IDY5YTdjNTU1MjUx
N2VjNTRhNTY0ZWM0ZDFjYzRkZmEzZGMyOTI4ZTAuLjM3YTJkODdiZGE5OTRhYTQ2MDkwMDJlZDQ0
MGZlZGZiM2M1MzRjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0
bGVyLmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQmFja2dyb3VuZEFj
dGl2aXR5ID0gQWN0aXZpdHk8QWN0aXZpdHlUeXBlOjpCYWNrZ3JvdW5kPjsKICAgICBVbmlxdWVS
ZWY8QmFja2dyb3VuZEFjdGl2aXR5PiBiYWNrZ3JvdW5kQWN0aXZpdHkoQVNDSUlMaXRlcmFsIG5h
bWUpOwogCi0gICAgdXNpbmcgQWN0aXZpdHlWYXJpYW50ID0gVmFyaWFudDxzdGQ6Om51bGxwdHJf
dCwgVW5pcXVlUmVmPEJhY2tncm91bmRBY3Rpdml0eT4sIFVuaXF1ZVJlZjxGb3JlZ3JvdW5kQWN0
aXZpdHk+PjsKKyAgICB1c2luZyBBY3Rpdml0eVZhcmlhbnQgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpu
dWxscHRyX3QsIFVuaXF1ZVJlZjxCYWNrZ3JvdW5kQWN0aXZpdHk+LCBVbmlxdWVSZWY8Rm9yZWdy
b3VuZEFjdGl2aXR5Pj47CiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZEJhY2tncm91bmRBY3Rpdml0
eShjb25zdCBBY3Rpdml0eVZhcmlhbnQmKTsKICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkRm9yZWdy
b3VuZEFjdGl2aXR5KGNvbnN0IEFjdGl2aXR5VmFyaWFudCYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgK
aW5kZXggNjA5OTU1ODg4Nzg4MWMyMGRiM2E1NmJiOGE5NDljMjFlYTYyNWZhMS4uMmU3MTBhYTJl
N2JlMmY3YzRhYWUxMGU0MDNkOTgyMTQzZTBhYjU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaApAQCAt
NDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQXV0aGVudGljYXRvciA6
IHB1YmxpYyBSZWZDb3VudGVkPEF1dGhlbnRpY2F0b3I+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
QXV0aGVudGljYXRvcj4gewogcHVibGljOgotICAgIHVzaW5nIFJlc3BvbmQgPSBWYXJpYW50PFJl
ZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PjsKKyAgICB1c2luZyBSZXNwb25kID0gc3RkOjp2YXJpYW50PFJlZjxXZWJDb3JlOjpBdXRoZW50
aWNhdG9yUmVzcG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPjsKIAogICAgIGNsYXNzIE9i
c2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE9ic2VydmVyPiB7CiAgICAgcHVibGljOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDlmYWEwM2I5YWEwYTA4N2Y4
MjVjZmI2NzM4NTBlZmYwY2M4NjYzODIuLjM3NzExNjFhMjk1NmJlNGM4ODdkMDFjYTU2MWFmNmI4
OGI3NThkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTE0Nywx
NCArMTQ3LDE0IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NHb29nbGVMZWdhY3lBcHBJZFN1cHBvcnRF
eHRlbnNpb24oY29uc3Qgc3RkOjpvcHRpb25hbDxBdXRoZW50CiAgICAgdHJhbnNwb3J0cy5yZW1v
dmUoQXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJuYWwpOwogfQogCi1zdGF0aWMgU3RyaW5n
IGdldFJwSWQoY29uc3QgVmFyaWFudDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
LCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+JiBvcHRpb25zKQorc3RhdGljIFN0
cmluZyBnZXRScElkKGNvbnN0IHN0ZDo6dmFyaWFudDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+JiBvcHRpb25zKQog
ewogICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM+KG9wdGlvbnMpKQogICAgICAgICByZXR1cm4gV1RGOjpnZXQ8UHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ob3B0aW9ucykucnAuaWQ7CiAgICAgcmV0dXJuIFdU
Rjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ob3B0aW9ucykucnBJZDsK
IH0KIAotc3RhdGljIFN0cmluZyBnZXRVc2VyTmFtZShjb25zdCBWYXJpYW50PFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cz4mIG9wdGlvbnMpCitzdGF0aWMgU3RyaW5nIGdldFVzZXJOYW1lKGNvbnN0IHN0ZDo6dmFyaWFu
dDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnM+JiBvcHRpb25zKQogewogICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0
aXZlPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpKQogICAgICAg
ICByZXR1cm4gV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ob3B0
aW9ucykudXNlci5uYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggNGRi
MWQ5YjVlZWUxZWE2ZmM0M2NlYzQ2NDdhNWE1NzgyNzFkMDI5Ni4uZjcxZTJmZGRlNTUxZTFjMzhk
YWIxMGUzMzNiMjdjNGFiNzVhMTE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5o
CkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0b3JNYW5hZ2VyIDogcHVibGljIEF1
dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpPYnNlcnZlciwgcHViCiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXV0aGVudGljYXRvck1h
bmFnZXIpOwogcHVibGljOgotICAgIHVzaW5nIFJlc3BvbmQgPSBWYXJpYW50PFJlZjxXZWJDb3Jl
OjpBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPjsKKyAgICB1
c2luZyBSZXNwb25kID0gc3RkOjp2YXJpYW50PFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVz
cG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPjsKICAgICB1c2luZyBDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzcG9uZCYmKT47CiAgICAgdXNpbmcgVHJhbnNwb3J0U2V0
ID0gSGFzaFNldDxXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0LCBXVEY6OkludEhhc2g8
V2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydD4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFp
dHM8V2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydD4+OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJl
cXVlc3REYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuY3BwCmluZGV4IGZjZDgwZTE5MTlkNzJiMGEw
YzU2YjA5MTUxOTRiYWE5MzUxMGRlNDkuLjA3N2VjNmFlMzIwNDUxNjI1ZTFiNzJhMGMxNTBkZGMz
ODEzNmIwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERh
dGEuY3BwCkBAIC0zMywxNCArMzMsMTQgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLUNsaWVudERhdGFUeXBlIGdldENsaWVudERhdGFUeXBlKGNvbnN0
IFZhcmlhbnQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgUHVibGljS2V5Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zPiYgb3B0aW9ucykKK0NsaWVudERhdGFUeXBlIGdldENsaWVu
dERhdGFUeXBlKGNvbnN0IHN0ZDo6dmFyaWFudDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+JiBvcHRpb25zKQogewog
ICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnM+KG9wdGlvbnMpKQogICAgICAgICByZXR1cm4gQ2xpZW50RGF0YVR5cGU6OkNyZWF0
ZTsKICAgICByZXR1cm4gQ2xpZW50RGF0YVR5cGU6OkdldDsKIH0KIAotVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50IGdldFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudChjb25zdCBWYXJpYW50
PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucz4mIG9wdGlvbnMpCitVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgZ2V0
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50KGNvbnN0IHN0ZDo6dmFyaWFudDxQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnM+JiBvcHRpb25zKQogewogICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpKSB7CiAgICAgICAgIGlmIChhdXRv
IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24gPSBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsQ3Jl
YXRpb25PcHRpb25zPihvcHRpb25zKS5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCmluZGV4IDRjM2JiYWFhZjhmYzk0
OGVkMDU2ZWI4YTc2ZGM5Y2YxY2U4YTQ2OTAuLjBhY2RmZjU5YTBhNzM5M2FmNWFmNWJkMWMyN2U5
ZjA0NTA1ODA1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3RE
YXRhLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBzdHJ1Y3QgV2Vi
QXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7Ci0g
ICAgVmFyaWFudDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+IG9wdGlvbnM7CisgICAg
c3RkOjp2YXJpYW50PFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMs
IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4gb3B0aW9uczsKIAog
ICAgIC8vIEZJWE1FPHJkYXI6Ly9wcm9ibGVtLzcxNTA5ODQ4PjogUmVtb3ZlIHRoZSBmb2xsb3dp
bmcgZGVwcmVjYXRlZCBmaWVsZHMuCiAgICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IHBhZ2U7CkBA
IC01OCw4ICs1OCw4IEBAIHN0cnVjdCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAg
ICBXZWFrUHRyPEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbD4gd2Vha1BhbmVsOwogfTsKIAot
V2ViQ29yZTo6Q2xpZW50RGF0YVR5cGUgZ2V0Q2xpZW50RGF0YVR5cGUoY29uc3QgVmFyaWFudDxX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+Jik7Ci1XZWJDb3JlOjpVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQgZ2V0VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50KGNvbnN0IFZhcmlh
bnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYpOworV2ViQ29yZTo6Q2xpZW50RGF0
YVR5cGUgZ2V0Q2xpZW50RGF0YVR5cGUoY29uc3Qgc3RkOjp2YXJpYW50PFdlYkNvcmU6OlB1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucz4mKTsKK1dlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dCBnZXRVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQoY29uc3Qgc3RkOjp2YXJpYW50PFdlYkNv
cmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMsIFdlYkNvcmU6OlB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4mKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNw
cAppbmRleCAxY2EwZGUwNGUwMWNhYTAzNDdjNTUyOTE0OTFlZWJkMjQ3ZDQ3ZGI0Li5iNTVhMzE4
NTFjYjM1MzcwYzhlZWU2NWIyZjcxYmFkOTY1NWEzMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC02Nyw3ICs2Nyw3IEBA
IHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmdldEFzc2VydGlvbihGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJZCwgRnJhCiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OmhhbmRsZVJlcXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRh
dGEsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgYXV0byBjYWxs
YmFjayA9IFtoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKV0gKFZhcmlhbnQ8UmVmPEF1dGhlbnRp
Y2F0b3JSZXNwb25zZT4sIEV4Y2VwdGlvbkRhdGE+JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBh
dXRvIGNhbGxiYWNrID0gW2hhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXSAoc3RkOjp2YXJpYW50
PFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgbXV0
YWJsZSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIFdURjo6
c3dpdGNoT24ocmVzdWx0LCBbJl0oY29uc3QgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mIHJl
c3BvbnNlKSB7CiAgICAgICAgICAgICBoYW5kbGVyKHJlc3BvbnNlLT5kYXRhKCksIHJlc3BvbnNl
LT5hdHRhY2htZW50KCksIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCBjMmJhMjY1ZmY2NzcyMjY2MTY4YzRlNTgzMDA2NzA1MTljM2E3OWQxLi43MmU0
ZWU3MzdhNDExOTg3MTY4NGM0NmE3MzdiOTc4NTVjYWM2MDY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM1NDMsNyArMzU0Myw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCBBCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBv
bGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdh
dGlvbiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcywgVmFy
aWFudDxSZWY8QVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0
aW9uPj4mJiBuYXZpZ2F0aW9uQWN0aW9uT3JSZXNwb25zZSwgUmVmPFBvbGljeURlY2lzaW9uU2Vu
ZGVyPiYmIHNlbmRlciwgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHNh
bmRib3hFeHRlbnNpb25IYW5kbGUsIFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3Mgd2lsbENv
bnRpbnVlTG9hZEluTmV3UHJvY2VzcykKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGlj
eURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlv
biwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcywgc3RkOjp2
YXJpYW50PFJlZjxBUEk6Ok5hdmlnYXRpb25SZXNwb25zZT4sIFJlZjxBUEk6Ok5hdmlnYXRpb25B
Y3Rpb24+PiYmIG5hdmlnYXRpb25BY3Rpb25PclJlc3BvbnNlLCBSZWY8UG9saWN5RGVjaXNpb25T
ZW5kZXI+JiYgc2VuZGVyLCBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4g
c2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyB3aWxs
Q29udGludWVMb2FkSW5OZXdQcm9jZXNzKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkgewogICAgICAgICBzZW5kZXItPnNlbmQoUG9saWN5RGVjaXNpb24geyBzZW5kZXItPmlkZW50
aWZpZXIoKSwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpLCBQb2xpY3lBY3Rpb246Okln
bm9yZSwgMCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGM1ZDU2MzNhYmM4OTI0N2U3YmM0NGVkYTQ2Y2EyNDVj
MDUyODU5NTQuLmFkYWZjMTRiYzk5ZDJlNDM5MTYyMjc5MjczZTk2OTM2NjlkMGU4ZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjE5LDcgKzEyMTksNyBAQCBw
dWJsaWM6CiAKICAgICBjbGFzcyBQb2xpY3lEZWNpc2lvblNlbmRlcjsKICAgICBlbnVtIGNsYXNz
IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgOiBib29sIHsgTm8sIFllcyB9OwotICAgIHZv
aWQgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2
aWdhdGlvbiosIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgVmFyaWFudDxSZWY8QVBJ
OjpOYXZpZ2F0aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPj4mJiwgUmVm
PFBvbGljeURlY2lzaW9uU2VuZGVyPiYmLCBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZT4gPSB7IH0sIFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGlu
dWVMb2FkSW5OZXdQcm9jZXNzOjpObyk7CisgICAgdm9pZCByZWNlaXZlZFBvbGljeURlY2lzaW9u
KFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmUHRyPEFQSTo6V2Vi
c2l0ZVBvbGljaWVzPiYmLCBzdGQ6OnZhcmlhbnQ8UmVmPEFQSTo6TmF2aWdhdGlvblJlc3BvbnNl
PiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4+JiYsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRl
cj4mJiwgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+ID0geyB9LCBXaWxs
Q29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6
Tm8pOwogICAgIHZvaWQgcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6
UG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qLCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9u
PiYmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5JiwgUmVmUHRy
PEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOwog
CiAgICAgdm9pZCBiYWNrRm9yd2FyZFJlbW92ZWRJdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3
YXJkSXRlbUlkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZWMzMGU3YmRiZGEwMDVmMWZkMGJkODM5ODdkYWQyNzEy
OWQyYmIxYy4uYTQ4NjQxNDRiMmQ3ZjlmZTM1ZmY4N2U2YzRmNDQ4MjkxMTY4M2U2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTE0
Nyw3ICsxNDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEaXNtaXNzYWxBbmltYXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQg
c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KSBvdmVycmlkZTsKIAotICAg
IHZvaWQgc2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFudDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9h
ZCwgVVJMPiYmKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93U2FmZUJyb3dzaW5nV2Fybmlu
Zyhjb25zdCBTYWZlQnJvd3NpbmdXYXJuaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
OnZhcmlhbnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgY2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBjbGVhclNhZmVCcm93c2luZ1dhcm5pbmdJZkZvck1haW5GcmFtZU5hdmlnYXRpb24oKSBvdmVy
cmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tCmluZGV4IDdhMzlhY2E5OWMxOGQzNTk2ZDY1YjhiZDBhNWUyZDM0YTk5MWUwODAuLmUz
NjM2MzRmYWNiZWFlOGU4YTdhZjQ2ZmE0ZjViMTg3N2IxOWFkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTUwOCw3ICs1MDgs
NyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjptYWtlVmlld0JsYW5rKGJvb2wgbWFrZUJsYW5rKQog
ICAgIFttX2NvbnRlbnRWaWV3IGxheWVyXS5vcGFjaXR5ID0gbWFrZUJsYW5rID8gMCA6IDE7CiB9
CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNh
ZmVCcm93c2luZ1dhcm5pbmcmIHdhcm5pbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmFyaWFu
dDxXZWJLaXQ6OkNvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0IFNh
ZmVCcm93c2luZ1dhcm5pbmcmIHdhcm5pbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2
YXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGlmIChhdXRvIHdlYlZpZXcgPSBtX3dlYlZpZXcuZ2V0KCkpCiAgICAg
ICAgIFt3ZWJWaWV3IF9zaG93U2FmZUJyb3dzaW5nV2FybmluZzp3YXJuaW5nIGNvbXBsZXRpb25I
YW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggZTI2MTI3Y2JmMTc2ZmViYWRk
NDY1NzViNjE0OTgxZGE3YTE5OTQyZi4uZDM3YzI4ZmViMWE1N2VkZmI0YThmNGQ4OTgzNDJkMTk2
YzdhODgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVzZXRTZWN1
cmVJbnB1dFN0YXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZnlJbnB1dENvbnRleHRBYm91
dERpc2NhcmRlZENvbXBvc2l0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZWxlY3Rpb25EaWRD
aGFuZ2UoKSBvdmVycmlkZTsKLSAgICB2b2lkIHNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0
IFNhZmVCcm93c2luZ1dhcm5pbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZhcmlhbnQ8V2Vi
S2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQg
c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjp2YXJpYW50PFdlYktpdDo6Q29udGludWVVbnNhZmVMb2Fk
LCBVUkw+JiYpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyU2FmZUJyb3dzaW5nV2Fybmlu
ZygpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJTYWZlQnJvd3NpbmdXYXJuaW5nSWZGb3JNYWlu
RnJhbWVOYXZpZ2F0aW9uKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNTYWZlQnJvd3NpbmdXYXJu
aW5nKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggOGZlYTM1YzEwYjI0NmQwOTc5OTlmYTc3NDFiMzYx
N2IyZDc4NDNmMS4uYTg1NTc1MzBmMGM2NWUzYTRmOWZjMmUwZTYyYTUyNmE1Nzg0OTRkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpA
QCAtNTQyLDcgKzU0Miw3IEBAIFJlZjxWYWxpZGF0aW9uQnViYmxlPiBQYWdlQ2xpZW50SW1wbDo6
Y3JlYXRlVmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhCiAgICAgcmV0dXJuIFZh
bGlkYXRpb25CdWJibGU6OmNyZWF0ZShtX3ZpZXcsIG1lc3NhZ2UsIHNldHRpbmdzKTsKIH0KIAot
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJy
b3dzaW5nV2FybmluZyYgd2FybmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWYXJpYW50PFdl
YktpdDo6Q29udGludWVVbnNhZmVMb2FkLCBVUkw+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcoY29uc3QgU2FmZUJy
b3dzaW5nV2FybmluZyYgd2FybmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6OnZhcmlh
bnQ8V2ViS2l0OjpDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKCFtX2ltcGwpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihDb250aW51ZVVuc2FmZUxvYWQ6Olllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAppbmRleCA1ZjQ0NTVlOTZlNjNkNWI3ODM2Yjk1ZmM2NzdjYjlmYWRkYTI3M2I3Li43OWU3ZjQ0
MTdhYTFjYzM0MTg5MDE2ODQ0MjVkZjdjOWQzN2YyYTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmdldEFzc2VydGlvbihWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBQdWJsaWMKIAog
dm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmhhbmRsZVJlcXVlc3QoV2ViQXV0
aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRhdGEsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIpCiB7Ci0gICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0gV1RGTW92ZShoYW5k
bGVyKV0gKFZhcmlhbnQ8UmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIEV4Y2VwdGlvbkRhdGE+
JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBhdXRvIGNhbGxiYWNrID0gW2hhbmRsZXIgPSBXVEZN
b3ZlKGhhbmRsZXIpXSAoc3RkOjp2YXJpYW50PFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBF
eGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CiAgICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LCBbJl0oY29uc3QgUmVm
PEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mIHJlc3BvbnNlKSB7CiAgICAgICAgICAgICBoYW5kbGVy
KHJlc3BvbnNlLT5kYXRhKCksIHJlc3BvbnNlLT5hdHRhY2htZW50KCksIHsgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaAppbmRleCA2MTg0M2Q4OTJjZjJmNmIwNDBkZjExMGIzOTQ1
Y2YwMjE4MjllYWUyLi4yN2NhYjA3NGFmMTU3Njk0NDJkNTVmMGIwNTU0NDFhYmM0ZTQ3MWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyQmFja2VuZEhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLXVzaW5nIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSA9IFZhcmlh
bnQ8Cit1c2luZyBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgPSBzdGQ6OnZhcmlhbnQ8CiAgICAg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUKICNpZiBQTEFURk9STShDT0NPQSkgLy8gRklYTUU6IFRo
aXMgaXMgcmVhbGx5IGFib3V0IElPU3VyZmFjZS4KICAgICAsIE1hY2hTZW5kUmlnaHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAppbmRleCBiZTQzYzBmZGRiNWUxNjI3MWFlYThl
NWNjMjAyZGM3ZTExYTI2OWM2Li5iMzQ3Y2FkMmFiNWY1NzFiMWEwZTIwNzIwODA0MzY3ZDc3MDE4
NjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCkBAIC04Miw3ICs4Miw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxCbG9iTG9hZGVyPiBtX2Jsb2JMb2FkZXI7
CiAgICAgYm9vbCBtX25lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIHsgZmFs
c2UgfTsKICAgICBib29sIG1fd2FpdGluZ0ZvckNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVz
c2FnZSB7IGZhbHNlIH07Ci0gICAgVmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVmPFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcj4sIFJlZjxXZWJDb3JlOjpGb3JtRGF0YT4sIFVuaXF1ZVJlZjxXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yPj4gbV9yZXNwb25zZURhdGE7CisgICAgc3RkOjp2YXJpYW50PHN0ZDo6
bnVsbHB0cl90LCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwgUmVmPFdlYkNvcmU6OkZvcm1E
YXRhPiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291cmNlRXJyb3I+PiBtX3Jlc3BvbnNlRGF0YTsK
ICAgICBib29sIG1fZGlkRmluaXNoIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oCmluZGV4IDZhMjhhZTk3Zjg2MWY0
ZjViY2IxYzkzNGFiZjAyODlmYjBhMDBiNDguLjlkNWRiMWI1ZTQzNDEyOTI0YmRhZGY5Yzg4ZDY3
MjgwYzU2NDJhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUuaApAQCAtMTMwLDcgKzEzMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN0
YXJ0KENGVGltZUludGVydmFsIGJlZ2luVGltZSkgeyBtX3Byb3BlcnRpZXMuYmVnaW5UaW1lID0g
YmVnaW5UaW1lOyB9CiAKIAotICAgIHVzaW5nIEtleWZyYW1lVmFsdWUgPSBWYXJpYW50PGZsb2F0
LCBXZWJDb3JlOjpDb2xvciwgV2ViQ29yZTo6RmxvYXRQb2ludDNELCBXZWJDb3JlOjpUcmFuc2Zv
cm1hdGlvbk1hdHJpeCwgUmVmUHRyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbj4+OworICAgIHVz
aW5nIEtleWZyYW1lVmFsdWUgPSBzdGQ6OnZhcmlhbnQ8ZmxvYXQsIFdlYkNvcmU6OkNvbG9yLCBX
ZWJDb3JlOjpGbG9hdFBvaW50M0QsIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4LCBSZWZQ
dHI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uPj47CiAKICAgICBzdHJ1Y3QgUHJvcGVydGllcyB7
CiAgICAgICAgIFByb3BlcnRpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvRE9NL0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
RE9NL0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1tCmluZGV4IDc3YzUwNGM4N2U3YWVlY2U5ZWYxZDc1
MmJiYTg2MjAxZTFkZGE2ZWYuLjgzNzBhZTIwMTEwYWI0MTlmNDY2MGZmYmY5YzdmODY2NGE1MTRk
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1MU2VsZWN0
RWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTFNlbGVj
dEVsZW1lbnQubW0KQEAgLTE4NSw3ICsxODUsNyBAQAogICAgICAgICByYWlzZVR5cGVFcnJvckV4
Y2VwdGlvbigpOwogCiAgICAgYXV0byYgY29yZUVsZW1lbnQgPSAqY29yZShlbGVtZW50KTsKLSAg
ICBWYXJpYW50PFJlZlB0cjxXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudD4sIFJlZlB0cjxXZWJD
b3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Pj4gdmFyaWFudEVsZW1lbnQ7CisgICAgc3RkOjp2YXJp
YW50PFJlZlB0cjxXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudD4sIFJlZlB0cjxXZWJDb3JlOjpI
VE1MT3B0R3JvdXBFbGVtZW50Pj4gdmFyaWFudEVsZW1lbnQ7CiAgICAgaWYgKGlzPFdlYkNvcmU6
OkhUTUxPcHRpb25FbGVtZW50Pihjb3JlRWxlbWVudCkpCiAgICAgICAgIHZhcmlhbnRFbGVtZW50
ID0gJmRvd25jYXN0PFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Pihjb3JlRWxlbWVudCk7CiAg
ICAgZWxzZSBpZiAoaXM8V2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudD4oY29yZUVsZW1lbnQp
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>