<?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>237182</bug_id>
          
          <creation_ts>2022-02-24 22:16:17 -0800</creation_ts>
          <short_desc>Re-add YouTubePluginReplacement, removed in r285252</short_desc>
          <delta_ts>2025-03-05 05:20:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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=289141</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=232400</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>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mkwst</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845908</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-02-24 22:16:17 -0800</bug_when>
    <thetext>Re-add YouTubePluginReplacement, removed in r285252</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845909</commentid>
    <comment_count>1</comment_count>
      <attachid>453174</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-02-24 22:18:52 -0800</bug_when>
    <thetext>Created attachment 453174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845910</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-02-24 22:18:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/89148022&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846010</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-25 07:29:34 -0800</bug_when>
    <thetext>EWS is all red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846031</commentid>
    <comment_count>4</comment_count>
      <attachid>453220</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-02-25 08:41:54 -0800</bug_when>
    <thetext>Created attachment 453220
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846056</commentid>
    <comment_count>5</comment_count>
      <attachid>453224</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-02-25 09:47:01 -0800</bug_when>
    <thetext>Created attachment 453224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846108</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-25 11:28:09 -0800</bug_when>
    <thetext>Committed r290519 (247802@main): &lt;https://commits.webkit.org/247802@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453224.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453174</attachid>
            <date>2022-02-24 22:18:52 -0800</date>
            <delta_ts>2022-02-25 08:41:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237182-20220224221852.patch</filename>
            <type>text/plain</type>
            <size>54147</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5MDQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAyLTI0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmUtYWRkIFlv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudCwgcmVtb3ZlZCBpbiByMjg1MjUyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxODIKKyAgICAgICAgPHJkYXI6
Ly84OTE0ODAyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9u
ZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbAorICAgICAgICAgICAgICAg
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1
YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIHNlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBs
YWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS5odG1sCisgICAgICAgICAgICAgICBzZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4t
cmVwbGFjZW1lbnQuaHRtbAorCisgICAgICAgIEl0cyByZW1vdmFsIGJyb2tlIHdlYnBhZ2VzIHRo
YXQgd29yayBpbiBDaHJvbWUgYW5kIEZpcmVmb3gsIHNvIGJhY2sgaXQgY29tZXMuCisKKyAgICAg
ICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2luczogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zLgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpwbHVnaW5TY3JpcHRPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RQbHVnaW5JbnRlcmZhY2U6OnZpc2l0Q2hp
bGRyZW5JbXBsKToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRv
d1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0cmFyKToKKyAgICAgICAgKFdlYkNvcmU6
OnBsdWdpblJlcGxhY2VtZW50Rm9yVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0lu
RWxlbWVudDo6cmVxdWVzdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxl
bWVudDo6c2NyaXB0T2JqZWN0Rm9yUGx1Z2luUmVwbGFjZW1lbnQpOgorICAgICAgICAqIGh0bWwv
SFRNTFBsdWdJbkVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50
OjpwbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
U2hhZG93UHNldWRvSWRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1BzZXVkb0lkczo6
d2Via2l0UGx1Z2luUmVwbGFjZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NoYWRvd1Bz
ZXVkb0lkcy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1l
bnQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1i
ZWRTaGFkb3dFbGVtZW50LmNwcC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRT
aGFkb3dFbGVtZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lv
dVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuaC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6
CisKIDIwMjItMDItMjQgIE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KIAog
ICAgICAgICBTaW1wbGlmeSBncmlkIFJUTCBoYW5kbGluZwpJbmRleDogU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CShyZXZpc2lvbiAyOTA0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTgsNiArMjk4LDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSUwogICAgIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbk9ic2VydmVyLmgK
ICAgICBNb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25TdGF0ZS5oCiAKKyAgICBNb2R1bGVz
L3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKKwogICAgIE1vZHVsZXMvcHVzaC1h
cGkvUHVzaENyeXB0by5oCiAgICAgTW9kdWxlcy9wdXNoLWFwaS9QdXNoRGF0YWJhc2UuaAogICAg
IE1vZHVsZXMvcHVzaC1hcGkvUHVzaE1lc3NhZ2VDcnlwdG8uaApJbmRleDogU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CShyZXZpc2lvbiAyOTA0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDcgQEAgTW9kdWxlcy9tb2RlbC1l
bGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TQogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0
L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0QubW0KIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtp
dC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCiBNb2R1bGVzL3B1c2gtYXBpL2NvY29hL1B1c2hDcnlw
dG9Db2NvYS5jcHAKK01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
CiBNb2R1bGVzL3NwZWVjaC9jb2NvYS9TcGVlY2hSZWNvZ25pemVyQ29jb2EubW0KIE1vZHVsZXMv
c3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrLm1tCiBNb2R1bGVzL3NwZWVjaC9j
b2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0KQEAgLTE4MCw2ICsxODEsNyBAQCBl
ZGl0aW5nL21hYy9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW0gCiBlZGl0aW5nL21hYy9UZXh0
VW5kb0luc2VydGlvbk1hcmt1cE1hYy5tbQogZmlsZWFwaS9GaWxlQ29jb2EubW0KIGhpc3Rvcnkv
bWFjL0hpc3RvcnlJdGVtTWFjLm1tCitodG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVt
ZW50LmNwcAogaW5zcGVjdG9yL21hYy9QYWdlRGVidWdnZXJNYWMubW0KIGxvYWRlci9hcmNoaXZl
L2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNo
aXZlTWFjLm1tCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyOTA0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsx
MTIsNyBAQAogCQkwNzI3N0U1NTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNr
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
Mjc3RTQ5MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oICovOyB9
OwogCQkwNzI4ODBEMTIwMTBGMUY2MDA3MUIyNTUgLyogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjg4
MEQwMjAxMEVFRDcwMDcxQjI1NSAvKiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MkE3MDQwMUQ2
RThGNjIwMERGMEFGQyAvKiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzJBNzAzRTFENkU4RjYyMDBERjBB
RkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oICovOyB9OworCQkwNzJBRTFFNTE4M0Mw
NzQxMDAwQTU5ODggLyogUGx1Z2luUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MkFFMURGMTgzQzA3NDEwMDBBNTk4OCAvKiBQbHVn
aW5SZXBsYWNlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTA3Mzc5NERFMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5
NERDMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuaCAqLzsgfTsKIAkJ
MDczNzk0RTYxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RTQxOUVFMkZGMjAw
RTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5oICovOyB9OwogCQkwNzM3OTRFQzE5RUUzNDFF
MDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEVBMTlFRTM0MUUwMEU1QTA0NSAvKiBKU1JUQ0ljZVNl
cnZlci5oICovOyB9OwpAQCAtMjM5Miw2ICsyMzkzLDcgQEAKIAkJN0E0NTAzMzAxOERCNzE3MjAw
Mzc3QjM0IC8qIEJ1ZmZlcmVkTGluZVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0E0NTAzMkUxOERCNzE3MjAwMzc3QjM0IC8qIEJ1ZmZlcmVk
TGluZVJlYWRlci5oICovOyB9OwogCQk3QTU0ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVj
dG9ySGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0E1NDg1N0UxNEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCAqLzsgfTsK
IAkJN0E1NDg4MTcxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1NDg4MTUxNEU0MzJBMTAw
NkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5oICovOyB9OworCQk3QTU1MTVGNTE5MTgzMEEzMDA5
Njg3RDIgLyogWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTU1MTVGMzE5MTgzMEEzMDA5Njg3RDIgLyogWW91
VHViZVBsdWdpblJlcGxhY2VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJN0E1Njk5NzAyMDg2QzYxOTAwMEUwNDMzIC8qIENvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QTU2OTk2RTIwODZDNjE4MDAwRTA0MzMgLyogQ29va2llUmVxdWVzdEhlYWRl
ckZpZWxkUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3QTY3NEJEQzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTY3NEJE
QTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi87IH07CiAJCTdB
OTI5Q0E3MUM1OThBQTkwMDRERjIyNiAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTkyOUNBMjFDNTk4Mzc4
MDA0REYyMjYgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDg5LDYgKzM0OTEsNyBAQAogCQlBNTJC
MzQ4RjFGQTNCREE2MDA4QjYyNDYgLyogU2VydmljZVdvcmtlckRlYnVnZ2FibGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MkIzNDhDMUZBM0JENzkw
MDhCNjI0NiAvKiBTZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1MkIzNDk2MUZBM0UyOTAwMDhCNjI0NiAv
KiBTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MkIzNDkzMUZBM0UyODYwMDhCNjI0NiAvKiBTZXJ2aWNl
V29ya2VySW5zcGVjdG9yUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBNTJCMzQ5RTFGQTQxNzAzMDA4QjYyNDYgLyogV29ya2VyRGVidWdn
ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTUyQjM0OUMxRkE0MTZGODAwOEI2MjQ2IC8qIFdvcmtlckRlYnVnZ2VyUHJveHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNTQxNkZFNjE4ODEw
RUY4MDAwOUZDNUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0MTZGRTQxODgxMEVGODAwMDlGQzVG
IC8qIFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJQTU0QTBDNjIxREI3RjhD
MTAwMTdBOTBCIC8qIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NEEwQzYwMURCN0Y4QjcwMDE3QTkwQiAv
KiBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggKi87IH07CiAJCUE1NEEwQzY2MURCODA1MzYw
MDE3QTkwQiAvKiBXb3JrZXJEZWJ1Z2dlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTU0QTBDNjQxREI4MDUzMjAwMTdBOTBCIC8qIFdvcmtlckRlYnVn
Z2VyLmggKi87IH07CiAJCUE1NEEwQzY4MURCODA3RDkwMDE3QTkwQiAvKiBXb3JrZXJUb1BhZ2VG
cm9udGVuZENoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1NEEwQzY3MURCODA3RDAwMDE3QTkwQiAvKiBXb3JrZXJUb1BhZ2VGcm9udGVuZENo
YW5uZWwuaCAqLzsgfTsKQEAgLTYwNTUsNiArNjA1OCw3IEBACiAJCTA3Mjg4MEQwMjAxMEVFRDcw
MDcxQjI1NSAvKiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzJBNzAzRTFENkU4RjYyMDBERjBBRkMgLyogT3ZlcmNvbnN0
cmFpbmVkRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPdmVy
Y29uc3RyYWluZWRFcnJvckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
MkE3MDNGMUQ2RThGNjIwMERGMEFGQyAvKiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcyQUUxREYxODNDMDc0MTAwMEE1OTg4IC8qIFBs
dWdpblJlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdp
blJlcGxhY2VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkNBODYwMTZD
QjREQzMwMDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyREJDMDMyNURDNkJEMzAwQTEzNTBF
IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTUxMiw2ICsx
MTUxNiw4IEBACiAJCTdBNTQ4NTdFMTRFMDJENTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckhpc3RvcnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E1NDg4MTUxNEU0MzJBMTAwNkFFMDVBIC8q
IERPTVBhdGNoU3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Q
YXRjaFN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E1NDg4MTYxNEU0
MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBET01QYXRjaFN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3QTU1MTVGMzE5MTgzMEEzMDA5Njg3RDIgLyogWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFlvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTU1MTVGNDE5MTgz
MEEzMDA5Njg3RDIgLyogWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBNTY5OTZFMjA4NkM2MTgwMDBFMDQzMyAvKiBD
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERl
ZmVycmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91
cExvYWREZWZlcnJlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBNjc0QkRB
MEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUdyb3VwTG9hZERlZmVycmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMzg0Nyw2ICsxMzg1Myw4IEBACiAJCUE1MkIzNDlDMUZBNDE2
RjgwMDhCNjI0NiAvKiBXb3JrZXJEZWJ1Z2dlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdvcmtlckRlYnVnZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTUyRDg1Q0EyMUIwOTgyRjAwNjFDMUVCIC8qIFNlcnZlclRpbWluZ1BhcnNlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2ZXJUaW1pbmdQYXJzZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNTJEODVDQjIxQjA5ODMwMDA2MUMxRUIgLyogU2VydmVyVGlt
aW5nUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZlclRpbWluZ1BhcnNlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBNTQxNkZFMzE4ODEwRUY4MDAwOUZDNUYgLyogWW91VHVi
ZUVtYmVkU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTU0MTZGRTQxODgxMEVGODAwMDlGQzVGIC8qIFlvdVR1YmVFbWJlZFNoYWRvd0Vs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWW91VHViZUVtYmVkU2hh
ZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTRBMEM1RjFEQjdG
OEI3MDAxN0E5MEIgLyogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU0QTBDNjAxREI3RjhCNzAwMTdBOTBCIC8q
IFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNTRBMEM2MzFEQjgwNTMyMDAxN0E5MEIgLyogV29ya2VyRGVidWdnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VyRGVidWdnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg3NzksNiArMTg3ODcsMTYgQEAKIAkJCXBh
dGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkwNzJBRTFERTE4
M0MwNTEzMDAwQTU5ODggLyogcGx1Z2lucyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMDcyQUUxREYxODNDMDc0MTAwMEE1OTg4IC8qIFBsdWdpblJlcGxh
Y2VtZW50LmggKi8sCisJCQkJN0E1NTE1RjQxOTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVn
aW5SZXBsYWNlbWVudC5jcHAgKi8sCisJCQkJN0E1NTE1RjMxOTE4MzBBMzAwOTY4N0QyIC8qIFlv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oICovLAorCQkJKTsKKwkJCXBhdGggPSBwbHVnaW5zOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMDc2RjBEMDgxMkI4MTkyNzAwQzI2
QUE0IC8qIGF2Zm91bmRhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC0yMTA0Nyw2ICsyMTA2NSw4IEBACiAJCQkJMTQyQjk3QzgxMzEzODk0MzAwOEJF
RjRCIC8qIFRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oICovLAogCQkJCUNFMjEyMTU0MjQwREJE
MzAwMDZFRDQ0MyAvKiBUZXh0UGxhY2Vob2xkZXJFbGVtZW50LmNwcCAqLywKIAkJCQlDRTIxMjE1
MzI0MERCRDMwMDA2RUQ0NDMgLyogVGV4dFBsYWNlaG9sZGVyRWxlbWVudC5oICovLAorCQkJCUE1
NDE2RkUzMTg4MTBFRjgwMDA5RkM1RiAvKiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcCAq
LywKKwkJCQlBNTQxNkZFNDE4ODEwRUY4MDAwOUZDNUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBzaGFkb3c7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtMjYxNDQsNiArMjYxNjQsNyBAQAogCQkJCUExRjc2QjBFMUY0NEMwQ0YwMDE0
QzMxOCAvKiBwYXltZW50cmVxdWVzdCAqLywKIAkJCQk5M0IwQTY0MjI2Q0RDNTc0MDBBQTIxRTQg
LyogcGVybWlzc2lvbnMgKi8sCiAJCQkJMURFRjA2QTIyMzNDMzJEQjAwRUUyMjhEIC8qIHBpY3R1
cmVpbnBpY3R1cmUgKi8sCisJCQkJMDcyQUUxREUxODNDMDUxMzAwMEE1OTg4IC8qIHBsdWdpbnMg
Ki8sCiAJCQkJNDE4RkNCQjgyNzA2RTRCRDAwRjk2RUNBIC8qIHB1c2gtYXBpICovLAogCQkJCUNE
QzMxMkUwMjJGQ0QwQjAwMDEyMDRFQyAvKiByZW1vdGVwbGF5YmFjayAqLywKIAkJCQlBQTJBNUFC
NzE2QTQ4NUE0MDA5NzVBMjUgLyogc3BlZWNoICovLApAQCAtMzY3MDUsNiArMzY3MjYsNyBAQAog
CQkJCUE5QzZFNEY0MEQ3NDVFNDgwMDY0NDJFOSAvKiBQbHVnaW5EYXRhLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NzIwNUFCQzEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBMDhGRUREMUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MkFFMUU1MTgzQzA3NDEwMDBBNTk4OCAvKiBQ
bHVnaW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFFMjE4M0ExNzM1OUZCODAw
NkU2RTREIC8qIFBsdWdJbnNSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBBRkRBQzNE
MTBGNTQ0OEMwMEUxRjNEMiAvKiBQbHVnaW5WaWV3QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNCQjhBQjkxM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLywK
QEAgLTM4MjU2LDYgKzM4Mjc4LDggQEAKIAkJCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyog
WFNMVEV4dGVuc2lvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFF
OUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZD
NTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNTQx
NkZFNjE4ODEwRUY4MDAwOUZDNUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJN0E1NTE1RjUxOTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVnaW5S
ZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENF
IC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAkocmV2aXNpb24gMjkw
NDkzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsMTIgQEAgSlNPYmplY3QqIHBsdWdp
blNjcmlwdE9iamVjdChKU0dsb2JhbE9iagogCiAgICAgLy8gQ2hva2UgcG9pbnQgZm9yIHNjcmlw
dC9wbHVnaW4gaW50ZXJhY3Rpb247IG5vdGlmeSBET01UaW1lciBvZiB0aGUgZXZlbnQuCiAgICAg
RE9NVGltZXI6OnNjcmlwdERpZEludGVyYWN0V2l0aFBsdWdpbihwbHVnaW5FbGVtZW50KTsKKwor
ICAgIC8vIEZpcnN0LCBzZWUgaWYgdGhlIGVsZW1lbnQgaGFzIGEgcGx1Zy1pbiByZXBsYWNlbWVu
dCB3aXRoIGEgc2NyaXB0LgorICAgIGlmIChhdXRvKiBzY3JpcHRPYmplY3QgPSBwbHVnaW5FbGVt
ZW50LnNjcmlwdE9iamVjdEZvclBsdWdpblJlcGxhY2VtZW50KCkpCisgICAgICAgIHJldHVybiBz
Y3JpcHRPYmplY3Q7CiAgICAgCi0gICAgLy8gU2VlIGlmIHdlIGNhbiBhc2sgdGhlIHBsdWctaW4g
dmlldyBmb3IgaXRzIHNjcmlwdCBvYmplY3QuCisgICAgLy8gTmV4dCwgc2VlIGlmIHdlIGNhbiBh
c2sgdGhlIHBsdWctaW4gdmlldyBmb3IgaXRzIHNjcmlwdCBvYmplY3QuCiAgICAgaWYgKGF1dG8q
IHNjcmlwdE9iamVjdCA9IHBsdWdpblNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVn
aW5FbGVtZW50LCBqc0hUTUxFbGVtZW50LT5nbG9iYWxPYmplY3QoKSkpCiAgICAgICAgIHJldHVy
biBzY3JpcHRPYmplY3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyOTA0OTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5
KQpAQCAtNDg5OCw2ICs0ODk4LDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iamVjdCwgaW5mbygpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBC
YXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpO1xuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHRoaXNPYmplY3QtPnZpc2l0QWRkaXRpb25hbENoaWxkcmVu
KHZpc2l0b3IpO1xuIikgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SlNDdXN0
b21NYXJrRnVuY3Rpb259OworICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57UGx1Z2lufSkgeworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgUExB
VEZPUk0oQ09DT0EpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHRo
aXNPYmplY3QtPndyYXBwZWQoKS5wbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdCgpLnZpc2l0
KHZpc2l0b3IpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxu
Iik7CisgICAgICAgIH0KICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0dlbmVyYXRlQWRkT3BhcXVlUm9vdH0pIHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1
ZGVzKCI8d3RmL0dldFB0ci5oPiIpOwogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0dlbmVyYXRlQWRkT3BhcXVlUm9vdH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2lu
SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjkwNDkzKQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbklu
dGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Myw2ICsyNTMsOSBAQCB2b2lkIEpTVGVz
dFBsdWdpbkludGVyZmFjZTo6dmlzaXRDaGlsZHJlCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3RQbHVnaW5JbnRlcmZhY2UqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0
aGlzT2JqZWN0LCB2aXNpdG9yKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB0aGlzT2JqZWN0
LT53cmFwcGVkKCkucGx1Z2luUmVwbGFjZW1lbnRTY3JpcHRPYmplY3QoKS52aXNpdCh2aXNpdG9y
KTsKKyNlbmRpZgogfQogCiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNUZXN0UGx1Z2luSW50ZXJm
YWNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAyOTA0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBl
UmVnaXN0cnkuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgor
I2luY2x1ZGUgIlBsdWdpblJlcGxhY2VtZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2Uu
aCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlckxh
eWVyLmgiCkBAIC00OSw2ICs1MCwxMCBAQAogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MUGx1Z0luRWxlbWVudCk7CkBA
IC0yMjUsOCArMjMwLDExIEBAIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMo
KSAKICAgICByZXR1cm4gIWRvd25jYXN0PFJlbmRlckVtYmVkZGVkT2JqZWN0PigqcmVuZGVyZXIo
KSkuaXNQbHVnaW5VbmF2YWlsYWJsZSgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
SFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0
eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKKyAg
ICBpZiAobV9wbHVnaW5SZXBsYWNlbWVudCAmJiBtX3BsdWdpblJlcGxhY2VtZW50LT53aWxsQ3Jl
YXRlUmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIG1fcGx1Z2luUmVwbGFjZW1lbnQtPmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcigqdGhpcywgV1RGTW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9u
KTsKKwogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJFbWJlZGRlZE9iamVjdD4oKnRo
aXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIApAQCAtMjU0LDEzICsyNjIsMTIyIEBAIHZvaWQgSFRN
TFBsdWdJbkVsZW1lbnQ6OnNldERpc3BsYXlTdGF0ZSgKICAgICAgICAgbV9zd2FwUmVuZGVyZXJU
aW1lci5zdGFydE9uZVNob3QoMF9zKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6ZGlk
QWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JikKK3ZvaWQgSFRNTFBsdWdJbkVsZW1l
bnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgcm9vdCkKIHsKKyAgICBp
ZiAoIW1fcGx1Z2luUmVwbGFjZW1lbnQgfHwgIWRvY3VtZW50KCkucGFnZSgpIHx8IGRpc3BsYXlT
dGF0ZSgpICE9IFByZXBhcmluZ1BsdWdpblJlcGxhY2VtZW50KQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgcm9vdC5zZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UodHJ1ZSk7CisgICAgYXV0byBy
ZXN1bHQgPSBtX3BsdWdpblJlcGxhY2VtZW50LT5pbnN0YWxsUmVwbGFjZW1lbnQocm9vdCk7CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHQuc3VjY2VzcyB8
fCAhcmVzdWx0LnNjcmlwdE9iamVjdCk7CisgICAgbV9wbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9i
amVjdC5zZXRXZWFrbHkocmVzdWx0LnNjcmlwdE9iamVjdCk7CisjZW5kaWYKKworICAgIGlmIChy
ZXN1bHQuc3VjY2VzcykgeworICAgICAgICBzZXREaXNwbGF5U3RhdGUoRGlzcGxheWluZ1BsdWdp
blJlcGxhY2VtZW50KTsKKyAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kUmVuZGVyZXJzRm9yU3Vi
dHJlZSgpOworICAgIH0KIH0KIAotYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6cmVxdWVzdE9iamVj
dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JikKKyNpZiBQTEFURk9STShDT0NPQSkKK3N0YXRpYyB2b2lkIHJl
Z2lzdHJhcihjb25zdCBSZXBsYWNlbWVudFBsdWdpbiYpOworI2VuZGlmCisKK3N0YXRpYyBWZWN0
b3I8UmVwbGFjZW1lbnRQbHVnaW4qPiYgcmVnaXN0ZXJlZFBsdWdpblJlcGxhY2VtZW50cygpCiB7
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8UmVw
bGFjZW1lbnRQbHVnaW4qPj4gcmVnaXN0ZXJlZFJlcGxhY2VtZW50czsKKyAgICBzdGF0aWMgYm9v
bCBlbmdpbmVzUXVlcmllZCA9IGZhbHNlOworICAgIAorICAgIGlmIChlbmdpbmVzUXVlcmllZCkK
KyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyZWRSZXBsYWNlbWVudHM7CisgICAgZW5naW5lc1F1ZXJp
ZWQgPSB0cnVlOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50OjpyZWdpc3RlclBsdWdpblJlcGxhY2VtZW50KHJlZ2lzdHJhcik7CisjZW5kaWYKKyAg
ICAKKyAgICByZXR1cm4gcmVnaXN0ZXJlZFJlcGxhY2VtZW50czsKK30KKworI2lmIFBMQVRGT1JN
KENPQ09BKQorc3RhdGljIHZvaWQgcmVnaXN0cmFyKGNvbnN0IFJlcGxhY2VtZW50UGx1Z2luJiBy
ZXBsYWNlbWVudCkKK3sKKyAgICByZWdpc3RlcmVkUGx1Z2luUmVwbGFjZW1lbnRzKCkuYXBwZW5k
KG5ldyBSZXBsYWNlbWVudFBsdWdpbihyZXBsYWNlbWVudCkpOworfQorI2VuZGlmCisKK3N0YXRp
YyBSZXBsYWNlbWVudFBsdWdpbiogcGx1Z2luUmVwbGFjZW1lbnRGb3JUeXBlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQoreworICAgIFZlY3RvcjxSZXBsYWNlbWVudFBs
dWdpbio+JiByZXBsYWNlbWVudHMgPSByZWdpc3RlcmVkUGx1Z2luUmVwbGFjZW1lbnRzKCk7Cisg
ICAgaWYgKHJlcGxhY2VtZW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgU3RyaW5nIGV4dGVuc2lvbjsKKyAgICBhdXRvIGxhc3RQYXRoQ29tcG9uZW50ID0gdXJs
Lmxhc3RQYXRoQ29tcG9uZW50KCk7CisgICAgc2l6ZV90IGRvdE9mZnNldCA9IGxhc3RQYXRoQ29t
cG9uZW50LnJldmVyc2VGaW5kKCcuJyk7CisgICAgaWYgKGRvdE9mZnNldCAhPSBub3RGb3VuZCkK
KyAgICAgICAgZXh0ZW5zaW9uID0gbGFzdFBhdGhDb21wb25lbnQuc3Vic3RyaW5nKGRvdE9mZnNl
dCArIDEpLnRvU3RyaW5nKCk7CisKKyAgICBTdHJpbmcgdHlwZSA9IG1pbWVUeXBlOworICAgIGlm
ICh0eXBlLmlzRW1wdHkoKSAmJiB1cmwucHJvdG9jb2xJc0RhdGEoKSkKKyAgICAgICAgdHlwZSA9
IG1pbWVUeXBlRnJvbURhdGFVUkwodXJsLnN0cmluZygpKTsKKyAgICAKKyAgICBpZiAodHlwZS5p
c0VtcHR5KCkgJiYgIWV4dGVuc2lvbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9yIChhdXRvKiBy
ZXBsYWNlbWVudCA6IHJlcGxhY2VtZW50cykgeworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50
LT5zdXBwb3J0c0ZpbGVFeHRlbnNpb24oZXh0ZW5zaW9uKSAmJiByZXBsYWNlbWVudC0+c3VwcG9y
dHNVUkwodXJsKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnQ7CisgICAgICAg
IH0KKyAgICB9CisgICAgCisgICAgaWYgKHR5cGUuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChl
eHRlbnNpb24uaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IHR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVu
c2lvbik7CisgICAgfQorCisgICAgaWYgKHR5cGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGZvciAoYXV0byogcmVwbGFjZW1lbnQgOiByZXBsYWNlbWVudHMpIHsK
KyAgICAgICAgaWYgKHJlcGxhY2VtZW50LT5zdXBwb3J0c1R5cGUodHlwZSkgJiYgcmVwbGFjZW1l
bnQtPnN1cHBvcnRzVVJMKHVybCkpCisgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnQ7Cisg
ICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6
OnJlcXVlc3RPYmplY3QoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXJhbVZhbHVlcykKK3sKKyAgICBpZiAobV9wbHVnaW5SZXBsYWNlbWVudCkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBVUkwgY29tcGxldGVkVVJMOworICAgIGlmICghcmVs
YXRpdmVVUkwuaXNFbXB0eSgpKQorICAgICAgICBjb21wbGV0ZWRVUkwgPSBkb2N1bWVudCgpLmNv
bXBsZXRlVVJMKHJlbGF0aXZlVVJMKTsKKworICAgIFJlcGxhY2VtZW50UGx1Z2luKiByZXBsYWNl
bWVudCA9IHBsdWdpblJlcGxhY2VtZW50Rm9yVHlwZShjb21wbGV0ZWRVUkwsIG1pbWVUeXBlKTsK
KyAgICBpZiAoIXJlcGxhY2VtZW50IHx8ICFyZXBsYWNlbWVudC0+aXNFbmFibGVkQnlTZXR0aW5n
cyhkb2N1bWVudCgpLnNldHRpbmdzKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBM
T0coUGx1Z2lucywgIiVwIC0gRm91bmQgcGx1Zy1pbiByZXBsYWNlbWVudCBmb3IgJXMuIiwgdGhp
cywgY29tcGxldGVkVVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgbV9wbHVnaW5S
ZXBsYWNlbWVudCA9IHJlcGxhY2VtZW50LT5jcmVhdGUoKnRoaXMsIHBhcmFtTmFtZXMsIHBhcmFt
VmFsdWVzKTsKKyAgICBzZXREaXNwbGF5U3RhdGUoUHJlcGFyaW5nUGx1Z2luUmVwbGFjZW1lbnQp
OworICAgIHJldHVybiB0cnVlOworfQorCitKU0M6OkpTT2JqZWN0KiBIVE1MUGx1Z0luRWxlbWVu
dDo6c2NyaXB0T2JqZWN0Rm9yUGx1Z2luUmVwbGFjZW1lbnQoKQoreworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZSA9IG1fcGx1Z2luUmVwbGFjZW1lbnRTY3JpcHRP
YmplY3QuZ2V0VmFsdWUoKTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gdmFsdWUuZ2V0T2JqZWN0KCk7CisjZWxzZQorICAgIHJldHVybiBudWxs
cHRyOworI2VuZGlmCiB9CiAKIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6OmlzQmVsb3dTaXplVGhy
ZXNob2xkKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50
LmgJKHJldmlzaW9uIDI5MDQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQCBjbGFzcyBJbnN0YW5jZTsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQbHVnaW5SZXBsYWNlbWVudDsKIGNsYXNz
IFJlbmRlcldpZGdldDsKIGNsYXNzIFdpZGdldDsKIApAQCAtNTgsNiArNTksMTEgQEAgcHVibGlj
OgogICAgIERpc3BsYXlTdGF0ZSBkaXNwbGF5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3Bs
YXlTdGF0ZTsgfQogICAgIHZvaWQgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSk7CiAKKyAg
ICBKU0M6OkpTT2JqZWN0KiBzY3JpcHRPYmplY3RGb3JQbHVnaW5SZXBsYWNlbWVudCgpOworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIHBsdWdpblJlcGxh
Y2VtZW50U2NyaXB0T2JqZWN0KCkgeyByZXR1cm4gbV9wbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9i
amVjdDsgfQorI2VuZGlmCisKICAgICBib29sIGlzQ2FwdHVyaW5nTW91c2VFdmVudHMoKSBjb25z
dCB7IHJldHVybiBtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHM7IH0KICAgICB2b2lkIHNldElzQ2Fw
dHVyaW5nTW91c2VFdmVudHMoYm9vbCBjYXB0dXJpbmcpIHsgbV9pc0NhcHR1cmluZ01vdXNlRXZl
bnRzID0gY2FwdHVyaW5nOyB9CiAKQEAgLTEwOCw2ICsxMTQsMTAgQEAgcHJpdmF0ZToKIAogICAg
IFJlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4gbV9pbnN0YW5jZTsKICAgICBUaW1lciBt
X3N3YXBSZW5kZXJlclRpbWVyOworICAgIFJlZlB0cjxQbHVnaW5SZXBsYWNlbWVudD4gbV9wbHVn
aW5SZXBsYWNlbWVudDsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBKU1ZhbHVlSW5XcmFwcGVk
T2JqZWN0IG1fcGx1Z2luUmVwbGFjZW1lbnRTY3JpcHRPYmplY3Q7CisjZW5kaWYKICAgICBib29s
IG1faXNDYXB0dXJpbmdNb3VzZUV2ZW50cyB7IGZhbHNlIH07CiAgICAgRGlzcGxheVN0YXRlIG1f
ZGlzcGxheVN0YXRlIHsgUGxheWluZyB9OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NoYWRvd1BzZXVkb0lkcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2hhZG93UHNldWRvSWRzLmNwcAkocmV2aXNpb24gMjkwNDkzKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2hhZG93UHNldWRvSWRzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjEzLDYgKzIxMywxMiBAQCBjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRNZXRlckV2ZW5M
ZXNzR29vCiAgICAgcmV0dXJuIHdlYmtpdE1ldGVyRXZlbkxlc3NHb29kVmFsdWU7CiB9CiAKK2Nv
bnN0IEF0b21TdHJpbmcmIHdlYmtpdFBsdWdpblJlcGxhY2VtZW50KCkKK3sKKyAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBsdWdpblJl
cGxhY2VtZW50KCItd2Via2l0LXBsdWdpbi1yZXBsYWNlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKKyAgICByZXR1cm4gd2Via2l0UGx1Z2luUmVwbGFjZW1lbnQ7Cit9
CisKIGNvbnN0IEF0b21TdHJpbmcmIHdlYmtpdFByb2dyZXNzQmFyKCkKIHsKICAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNz
QmFyKCItd2Via2l0LXByb2dyZXNzLWJhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NoYWRvd1BzZXVkb0lkcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NoYWRvd1BzZXVkb0lk
cy5oCShyZXZpc2lvbiAyOTA0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TaGFk
b3dQc2V1ZG9JZHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsOCBAQCBjb25zdCBBdG9t
U3RyaW5nJiB3ZWJraXRNZXRlck9wdGltdW1WYWx1CiBjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRN
ZXRlclN1Ym9wdGltdW1WYWx1ZSgpOwogY29uc3QgQXRvbVN0cmluZyYgd2Via2l0TWV0ZXJFdmVu
TGVzc0dvb2RWYWx1ZSgpOwogCitjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRQbHVnaW5SZXBsYWNl
bWVudCgpOworCiBjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRQcm9ncmVzc0JhcigpOwogY29uc3Qg
QXRvbVN0cmluZyYgd2Via2l0UHJvZ3Jlc3NWYWx1ZSgpOwogY29uc3QgQXRvbVN0cmluZyYgd2Vi
a2l0UHJvZ3Jlc3NJbm5lckVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCShyZXZpc2lv
biAyODUyNTEpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNo
YWRvd0VsZW1lbnQuY3BwOjI4NTI1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lv
dVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJZb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50LmgiCisKKyNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIK
KyNpbmNsdWRlICJTaGFkb3dQc2V1ZG9JZHMuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50KTsKKworUmVmPFlvdVR1YmVFbWJlZFNoYWRv
d0VsZW1lbnQ+IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCit7CisgICAgYXV0byBlbGVtZW50ID0gYWRvcHRSZWYoKm5ldyBZb3VUdWJlRW1iZWRT
aGFkb3dFbGVtZW50KGRvY3VtZW50KSk7CisgICAgZWxlbWVudC0+c2V0UHNldWRvKFNoYWRvd1Bz
ZXVkb0lkczo6d2Via2l0UGx1Z2luUmVwbGFjZW1lbnQoKSk7CisgICAgcmV0dXJuIGVsZW1lbnQ7
Cit9CisKK1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OllvdVR1YmVFbWJlZFNoYWRvd0VsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpk
aXZUYWcsIGRvY3VtZW50KQoreworfQorCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gWW91VHVi
ZUVtYmVkU2hhZG93RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYg
c3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCit7CisgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlckJsb2NrRmxvdz4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKK30KKworfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJl
ZFNoYWRvd0VsZW1lbnQuaAkocmV2aXNpb24gMjg1MjUxKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50Lmg6Mjg1MjUxKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50
IGZpbmFsIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQpOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
WW91VHViZUVtYmVkU2hhZG93RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisKKyAgICBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOworCitwcml2YXRlOgorICAgIFlvdVR1
YmVFbWJlZFNoYWRvd0VsZW1lbnQoRG9jdW1lbnQmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwJKHJldmlzaW9uIDI5MDQ5MykK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAkod29ya2luZyBjb3B5KQpAQCAt
NjE4LDMgKzYxOCwxMCBAQCBXZWJraXRJbWFnZVJlYWR5RXZlbnRFbmFibGVkOgogICBkZWZhdWx0
VmFsdWU6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCisKK1lvdVR1YmVGbGFz
aFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6
CisgICAgV2ViQ29yZToKKyAgICAgIFBMQVRGT1JNKENPQ09BKTogdHJ1ZQorICAgICAgZGVmYXVs
dDogZmFsc2UKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDI5MDQ5MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAyLTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmUtYWRkIFlvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudCwgcmVtb3ZlZCBpbiByMjg1MjUyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzcxODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Z
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwOiBDb3BpZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcC4KKwogMjAyMi0w
Mi0yNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjkwMzcxLgpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDI5MDQ5MykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTMsNiAr
MzkzLDcgQEAKIAkJNUMyOTM2OTYxRDVDMDBFRDAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzI5MzY5NDFENUJGRDE5MDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5odG1sICovOyB9OwogCQk1
QzJDMDFBODI3MzQ4ODM2MDBGODlEMzcgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjc4REU2NEIyMkI4RDYxMTAw
NEUwRTdBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAqLzsgfTsKIAkJNUM0MjU5NDYyMjY2QTY4
QTAwMzlBQTdBIC8qIEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsUGx1Z0luLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0MjU5NDQyMjY2OUU5QjAwMzlB
QTdBIC8qIEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsUGx1Z0luLm1tICovOyB9OworCQk1QzU4MUQz
MjI3QzhBMDFDMDA2QjNCQzQgLyogWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNTgxRDMxMjdDOEEwMUMw
MDZCM0JDNCAvKiBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwICovOyB9OwogCQk1QzZFMjdB
NzIyNEVFQkVBMDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNkUyN0E2MjI0RUVCRUEwMDEyODcz
NiAvKiBVUkxDYW5vbmljYWxpemF0aW9uLm1tICovOyB9OwogCQk1QzcxMDFDNzI1REQ5OEI2MDA2
ODYyMDAgLyogdGVzdF9wcmludC5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3MTAxQzYyNUREOTg4NzAwNjg2MjAwIC8qIHRlc3RfcHJp
bnQucGRmICovOyB9OwogCQk1Qzc1NzE2MTIyMTI0QzUyMDBCOUU1QUMgLyogQnVuZGxlUmV0YWlu
UGFnZVBsdWdJbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDNzU3MTVGMjIxMjQ5QkQwMEI5RTVBQyAvKiBCdW5kbGVSZXRhaW5QYWdlUGx1Z0luLm1t
ICovOyB9OwpAQCAtMjI1OSw2ICsyMjYwLDcgQEAKIAkJNUMzQjFEMjUyMkE3NEVBNDAwQkNGNEQw
IC8qIENvbnRleHRNZW51cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENvbnRleHRNZW51cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0MjU5
NDQyMjY2OUU5QjAwMzlBQTdBIC8qIEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsUGx1Z0luLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmFzaWNQcm9wb3NlZENyZWRl
bnRpYWxQbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNEE4NDk0MUY3
RUVGRDQwMEFDRkM1NCAvKiBDb25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNUM1ODFEMzEyN0M4QTAxQzAwNkIzQkM0IC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBZb3VUdWJlUGx1
Z2luUmVwbGFjZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzVFNjMz
RDFEMEI2Nzk0MDA4NUEwMjUgLyogVW5pcXVlUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVuaXF1ZVJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVDNjlCREQ0MUY4MkE3RUIwMDBGNEY0QiAvKiBKYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlv
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEphdmFTY3JpcHRE
dXJpbmdOYXZpZ2F0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZFMjdB
NjIyNEVFQkVBMDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVSTENhbm9uaWNhbGl6YXRpb24ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zODI4LDYgKzM4MzAsNyBAQAogCQkJCTdBRDNGRThE
MUQ3NUZCOEQwMEIxNjlBNCAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgKi8sCiAJCQkJNTdE
MUQ3NUUyMURDQjdBODAwOTNFODZBIC8qIFUyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QuY3BwICov
LAogCQkJCUUzQTFFNzdFMjFCMjVCMzkwMDhDNjAwNyAvKiBVUkxQYXJzZXJUZXh0RW5jb2Rpbmcu
Y3BwICovLAorCQkJCTVDNTgxRDMxMjdDOEEwMUMwMDZCM0JDNCAvKiBZb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnQuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJDb3JlOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTU5MjcsNiArNTkzMCw3IEBACiAJCQkJRTUyMEEzNkIyNUFGQjc2
QzAwNTI2Q0I5IC8qIFdLV2ViVmlld1RpdGxlYmFyU2VwYXJhdG9yVGVzdHMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3Qzc0QzhGQTIyREZCQTk2MDBEQTJEQUIgLyogV1RGU3RyaW5nVXRpbGl0aWVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMxNEQzMDQ2MjRCNEMzQkEwMDQ4MDM4NyAvKiBYUENF
bmRwb2ludC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTVDNTgxRDMyMjdDOEEwMUMwMDZCM0JDNCAv
KiBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvWW91VHVi
ZVBsdWdpblJlcGxhY2VtZW50LmNwcAkocmV2aXNpb24gMjg1MjUxKQkoZnJvbSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcDoyODUy
NTEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvWW91VHViZVBsdWdpblJl
cGxhY2VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvWW91VHViZVBsdWdpblJl
cGxhY2VtZW50Lmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYv
VVJMLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CisKK2NsYXNzIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudFRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CitwdWJsaWM6CisgICAgdm9pZCBTZXRVcCgpIGZpbmFsIHsKKyAgICAgICAg
V1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOworICAgIH0KK307CisKK3N0YXRpYyBib29sIHRl
c3QoY29uc3QgU3RyaW5nJiBpbnB1dFVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBleHBlY3RlZFVS
TFN0cmluZykKK3sKKyAgICBVUkwgaW5wdXRVUkwoVVJMKCksIGlucHV0VVJMU3RyaW5nKTsKKyAg
ICBTdHJpbmcgYWN0dWFsVVJMU3RyaW5nID0gWW91VHViZVBsdWdpblJlcGxhY2VtZW50Ojp5b3VU
dWJlVVJMRnJvbUFic29sdXRlVVJMKGlucHV0VVJMLCBpbnB1dFVSTFN0cmluZyk7CisgICAgcmV0
dXJuIGFjdHVhbFVSTFN0cmluZy51dGY4KCkgPT0gZXhwZWN0ZWRVUkxTdHJpbmcudXRmOCgpOwor
fQorCitURVNUX0YoWW91VHViZVBsdWdpblJlcGxhY2VtZW50VGVzdCwgWW91VHViZVVSTEZyb21B
YnNvbHV0ZVVSTCkKK3sKKyAgICAvLyBZb3VUdWJlIG5vbi12aWRlbyBVUkwsIG5vdCBleHBlY3Rl
ZCB0byBiZSB0cmFuc2Zvcm1lZC4KKyAgICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRwczovL3d3dy55
b3V0dWJlLmNvbSIsICJodHRwczovL3d3dy55b3V0dWJlLmNvbSIpKTsKKworICAgIC8vIEJhc2lj
IFlvdVR1YmUgdmlkZW8gbGlua3MsIGV4cGVjdGVkIHRvIGJlIHRyYW5zZm9ybWVkLgorICAgIEVY
UEVDVF9UUlVFKHRlc3QoImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3YvZFF3NHc5V2dYY1EiLCAi
aHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1EiKSk7CisgICAgRVhQRUNU
X1RSVUUodGVzdCgiaHR0cDovL3d3dy55b3V0dWJlLmNvbS92L2RRdzR3OVdnWGNRIiwgImh0dHA6
Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1EiKSk7CisgICAgRVhQRUNUX1RSVUUo
dGVzdCgiaHR0cHM6Ly95b3V0dWJlLmNvbS92L2RRdzR3OVdnWGNRIiwgImh0dHBzOi8veW91dHVi
ZS5jb20vZW1iZWQvZFF3NHc5V2dYY1EiKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdCgiaHR0cDov
L3lvdXR1YmUuY29tL3YvZFF3NHc5V2dYY1EiLCAiaHR0cDovL3lvdXR1YmUuY29tL2VtYmVkL2RR
dzR3OVdnWGNRIikpOworCisgICAgLy8gV2l0aCBzdGFydCB0aW1lLCBwcmVzZXJ2ZWQuCisgICAg
RVhQRUNUX1RSVUUodGVzdCgiaHR0cDovL3d3dy55b3V0dWJlLmNvbS92L2RRdzR3OVdnWGNRP3N0
YXJ0PTQiLCAiaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUT9zdGFydD00
IikpOworICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHA6Ly93d3cueW91dHViZS5jb20vdi9kUXc0
dzlXZ1hjUT9zdGFydD00JmZzPTEiLCAiaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9kUXc0
dzlXZ1hjUT9zdGFydD00JmZzPTEiKSk7CisKKyAgICAvLyBXaXRoIGFuIGludmFsaWQgcXVlcnkg
KHNlZSAmIGluc3RlYWQgb2YgPyksIHdlIHByZXNlcnZlIGFuZCBmaXggdGhlIHF1ZXJ5LgorICAg
IEVYUEVDVF9UUlVFKHRlc3QoImh0dHA6Ly93d3cueW91dHViZS5jb20vdi9kUXc0dzlXZ1hjUSZz
dGFydD00IiwgImh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1E/c3RhcnQ9
NCIpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3YvZFF3
NHc5V2dYY1Emc3RhcnQ9NCZmcz0xIiwgImh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3
NHc5V2dYY1E/c3RhcnQ9NCZmcz0xIikpOworCisgICAgLy8gTm9uLUZsYXNoIFVSTCBpcyB1bnRv
dWNoZWQuCisgICAgRVhQRUNUX1RSVUUodGVzdCgiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1i
ZWQvZFF3NHc5V2dYY1EiLCAiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dY
Y1EiKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdCgiaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJl
ZC9kUXc0dzlXZ1hjUSIsICJodHRwOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNR
IikpOworICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHBzOi8veW91dHViZS5jb20vZW1iZWQvZFF3
NHc5V2dYY1EiLCAiaHR0cHM6Ly95b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUSIpKTsKKyAg
ICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRwOi8veW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1Ei
LCAiaHR0cDovL3lvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIikpOworICAgIC8vIEV2ZW4g
d2l0aCBleHRyYSBwYXJhbWV0ZXJzLgorICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHBzOi8vd3d3
LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRP3N0YXJ0PTQiLCAiaHR0cHM6Ly93d3cueW91
dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1E/c3RhcnQ9NCIpKTsKKyAgICBFWFBFQ1RfVFJVRSh0
ZXN0KCJodHRwOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRP2VuYWJsZWpzYXBp
PTEiLCAiaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUT9lbmFibGVqc2Fw
aT0xIikpOworICAgIC8vIEV2ZW4gd2l0aCBhbiBpbnZhbGlkICJxdWVyeSIuCisgICAgRVhQRUNU
X1RSVUUodGVzdCgiaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1Emc3Rh
cnQ9NCIsICJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUSZzdGFydD00
IikpOworCisgICAgLy8gRG9uJ3QgdHJhbnNmb3JtIGFueXRoaW5nIHdpdGggYSBub24gIi92LyIg
cGF0aCBjb21wb25lbnQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBkb21haW4uCisgICAgRVhQ
RUNUX1RSVUUodGVzdCgiaHR0cHM6Ly93d3cueW91dHViZS5jb20vc29tZXRoaW5nL3YvZFF3NHc5
V2dYY1EiLCAiaHR0cHM6Ly93d3cueW91dHViZS5jb20vc29tZXRoaW5nL3YvZFF3NHc5V2dYY1Ei
KSk7CisKKyAgICAvLyBOb24tWW91VHViZSBkb21haW4gd2hvc2UgcGF0aCBsb29rcyBsaWtlIGEg
Rmxhc2ggdmlkZW8gc2hvdWxkbid0IGJlIHRyYW5zZm9ybWVkLgorICAgIEVYUEVDVF9UUlVFKHRl
c3QoImh0dHBzOi8vd3d3Lm5vdHlvdXR1YmUuY29tL3YvZFF3NHc5V2dYY1EiLCAiaHR0cHM6Ly93
d3cubm90eW91dHViZS5jb20vdi9kUXc0dzlXZ1hjUSIpKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1lv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAJKHJldmlzaW9u
IDI4NTI1MSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Zb3VUdWJlUGx1
Z2luUmVwbGFjZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw4IEBAIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogY2xhc3MgWW91VHViZVBsdWdpblJlcGxhY2VtZW50VGVz
dCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoKLSAgICB2b2lkIFNldFVwKCkgZmlu
YWwgeworICAgIHZvaWQgU2V0VXAoKSBmaW5hbAorICAgIHsKICAgICAgICAgV1RGOjppbml0aWFs
aXplTWFpblRocmVhZCgpOwogICAgIH0KIH07CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyOTA0OTMpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAor
MjAyMi0wMi0yNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgor
CisgICAgICAgIFJlLWFkZCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQsIHJlbW92ZWQgaW4gcjI4
NTI1MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
MTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1ub25lLWJsb2Nrcy15
b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91
dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9vYmplY3Qtc3JjLW5vbmUtYmxv
Y2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBz
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1ub25lLWJsb2Nrcy15b3V0
dWJlLXBsdWdpbi1yZXBsYWNlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1ub25lLWJsb2Nrcy15b3V0dWJl
LXBsdWdpbi1yZXBsYWNlbWVudC5odG1sLgorICAgICAgICAqIHNlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWFsbG93cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVu
dC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWFsbG93cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNl
bWVudC1leHBlY3RlZC50eHQuCisgICAgICAgICogc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWw6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9w
bHVnaW5zLXR5cGVzLWFsbG93cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC5odG1sLgorICAg
ICAgICAqIHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nr
cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJs
b2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQuCisgICAgICAgICog
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1
YmUtcGx1Z2luLXJlcGxhY2VtZW50LXdpdGhvdXQtbWltZS10eXBlLWV4cGVjdGVkLnR4dDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdp
bnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LXdpdGhvdXQtbWltZS10
eXBlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtd2l0aG91
dC1taW1lLXR5cGUuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxh
Y2VtZW50LXdpdGhvdXQtbWltZS10eXBlLmh0bWwuCisgICAgICAgICogc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxh
Y2VtZW50Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVu
dC5odG1sLgorCiAyMDIyLTAyLTI0ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nIGFmdGVyIHIyOTA0NTQuCkluZGV4OiBM
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI5MDQ5MykKKysrIExheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTUxNTcsNiArNTE1NywxMCBAQCBmdWxsc2NyZWVu
L2Z1bGwtc2NyZWVuLXBsdWdpbi5odG1sIFsgU2tpCiBpbXBvcnRlZC9ibGluay9odHRwL3Rlc3Rz
L3BsdWdpbnMgWyBTa2lwIF0KIGltcG9ydGVkL2JsaW5rL3BsdWdpbnMgWyBTa2lwIF0KIGpzL2Rv
bS9yZWZsZWN0LXNldC1vbnRvLWRvbS5odG1sIFsgU2tpcCBdCitzZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1ub25lLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNl
bWVudC5odG1sIFsgU2tpcCBdCitzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lu
cy10eXBlcy1hbGxvd3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbCBbIFNraXAgXQor
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1
YmUtcGx1Z2luLXJlcGxhY2VtZW50LXdpdGhvdXQtbWltZS10eXBlLmh0bWwgWyBTa2lwIF0KK3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJl
LXBsdWdpbi1yZXBsYWNlbWVudC5odG1sIFsgU2tpcCBdCiB1c2Vyc2NyaXB0cy91c2VyLXNjcmlw
dC1wbHVnaW4tZG9jdW1lbnQuaHRtbCBbIFNraXAgXQogCiAjIFRoaXMgaXMgbWFya2VkIGFzIHBh
c3Npbmcgb24gV0syLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVz
dEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMjkwNDkzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0yMDIxLDYgKzIwMjEs
OCBAQCB3ZWJraXQub3JnL2IvMjIzNTg2IHdlYmdsL2NvbmZvcm1hbmNlL2V4CiAKIHdlYmtpdC5v
cmcvYi8yMTQ5NTUgZmFzdC9wYXJzZXIveG1sLWNvbG9uLWVudGl0eS5odG1sIFsgRmFpbHVyZSBd
CiAKK3dlYmtpdC5vcmcvYi8yMjM3NTAgWyBEZWJ1ZyBdIHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9wbHVnaW5zLXR5cGVzLWFsbG93cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC5o
dG1sIFsgUGFzcyBDcmFzaCBdCisKIHdlYmtpdC5vcmcvYi8xNTUxOTYgc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3ZpZGVvLXdpdGgtZmlsZS11cmwtYWxsb3dlZC1ieS1tZWRpYS1zcmMt
c3Rhci13aXRoLUFsbG93Q29udGVudFNlY3VyaXR5UG9saWN5U291cmNlU3RhclRvTWF0Y2hBbnlQ
cm90b2NvbC1lbmFibGVkLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzE1NTE5NiBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8td2l0aC1maWxl
LXVybC1hbGxvd2VkLWJ5LW1lZGlhLXNyYy1zdGFyLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1
cmUgXQogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwko
cmV2aXNpb24gMjkwNDkzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTM0NzQsNiArMzQ3NCw3IEBAIGpzL3JlZ3Jlc3MtMTQx
MDk4Lmh0bWwgWyBGYWlsdXJlIF0KIHBhZ2VvdmVybGF5L292ZXJsYXktaW5zdGFsbGF0aW9uLmh0
bWwgWyBGYWlsdXJlIF0KIHBhZ2VvdmVybGF5L292ZXJsYXktbGFyZ2UtZG9jdW1lbnQtc2Nyb2xs
ZWQuaHRtbCBbIEZhaWx1cmUgXQogcGFnZW92ZXJsYXkvb3ZlcmxheS1sYXJnZS1kb2N1bWVudC5o
dG1sIFsgRmFpbHVyZSBdCitzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10
eXBlcy1hbGxvd3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbCBbIEZhaWx1cmUgXQog
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jsb2ItY3Vyc29yLmh0bWwgWyBGYWlsdXJlIF0KIHN0
cmVhbXMvcmVhZGFibGUtYnl0ZS1zdHJlYW0tY29udHJvbGxlci5odG1sIFsgRmFpbHVyZSBdCiBz
dHJlYW1zL3JlYWRhYmxlLWJ5dGUtc3RyZWFtLWNvbnRyb2xsZXItd29ya2VyLmh0bWwgWyBGYWls
dXJlIF0KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9v
YmplY3Qtc3JjLW5vbmUtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvb2JqZWN0LXNyYy1ub25lLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDI4NTI1MSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVn
aW4tcmVwbGFjZW1lbnQtZXhwZWN0ZWQudHh0OjI4NTI1MSkKKysrIExheW91dFRlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9vYmplY3Qtc3JjLW5vbmUtYmxvY2tzLXlvdXR1YmUt
cGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGh0dHBzOi8vd3d3LnlvdXR1
YmUuY29tL3YvVUY4dVI2WjZLTGMgYmVjYXVzZSBpdCBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIG9i
amVjdC1zcmMgZGlyZWN0aXZlIG9mIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KKwpJbmRl
eDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMt
bm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1u
b25lLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC5odG1sCShyZXZpc2lvbiAyODUy
NTEpCShmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9vYmpl
Y3Qtc3JjLW5vbmUtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWw6Mjg1MjUx
KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1z
cmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0ib2JqZWN0
LXNyYyAnbm9uZSciPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
fQorCitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCh0cnVlKTsKKworZnVuY3Rp
b24gZG9uZSgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKK30KKworZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJp
dHlwb2xpY3l2aW9sYXRpb24iLCBkb25lLCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPG9iamVjdCB3aWR0aD0iNDI1IiBoZWlnaHQ9IjM1MCIgY2xhc3NpZD0iY2xzaWQ6ZDI3
Y2RiNmUtYWU2ZC0xMWNmLTk2YjgtNDQ0NTUzNTQwMDAwIgorICAgIGNvZGViYXNlPSJodHRwOi8v
ZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2gu
Y2FiI3ZlcnNpb249NiwwLDQwLDAiPgorICAgIDxlbWJlZCB3aWR0aD0iNDI1IiBoZWlnaHQ9IjM1
MCIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHNyYz0iaHR0cHM6Ly93d3cu
eW91dHViZS5jb20vdi9VRjh1UjZaNktMYyI+Cis8L29iamVjdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5z
LXR5cGVzLWFsbG93cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Bs
dWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjg1MjUxKQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1l
bnQtZXhwZWN0ZWQudHh0OjI4NTI1MSkKKysrIExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWFsbG93cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNl
bWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyIEBACitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvVUY4
dVI2WjZLTGMKKwpJbmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwJKHJl
dmlzaW9uIDI4NTI1MSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0
bWw6Mjg1MjUxKQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9
InBsdWdpbi10eXBlcyBhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCI+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0WW91VHViZUZsYXNoUGx1Z2luUmVw
bGFjZW1lbnRFbmFibGVkKHRydWUpOworCisvLyBXYWl0aW5nIGF0IGxlYXN0IDEwMG1zIHNlZW1z
IHRvIGVuc3VyZSB0aGF0IFlvdVR1YmUgcGx1Z2luIHJlcGxhY2VtZW50IGhhcyBsb2FkZWQuCit3
aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30sIDEwMCk7Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPG9iamVjdCB3aWR0aD0iNDI1IiBoZWlnaHQ9IjM1MCIgY2xhc3Np
ZD0iY2xzaWQ6ZDI3Y2RiNmUtYWU2ZC0xMWNmLTk2YjgtNDQ0NTUzNTQwMDAwIgorICAgIGNvZGVi
YXNlPSJodHRwOi8vZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2Zs
YXNoL3N3Zmxhc2guY2FiI3ZlcnNpb249NiwwLDQwLDAiPgorICAgIDxlbWJlZCB3aWR0aD0iNDI1
IiBoZWlnaHQ9IjM1MCIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHNyYz0i
aHR0cHM6Ly93d3cueW91dHViZS5jb20vdi9VRjh1UjZaNktMYyI+Cis8L29iamVjdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjg1MjUxKQkoZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVn
aW4tcmVwbGFjZW1lbnQtZXhwZWN0ZWQudHh0OjI4NTI1MSkKKysrIExheW91dFRlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBs
dWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
IEBACitDT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9hZCBodHRwczovL3d3dy55b3V0dWJl
LmNvbS92L1VGOHVSNlo2S0xjIGJlY2F1c2UgaXRzIE1JTUUgdHlwZSBkb2VzIG5vdCBhcHBlYXIg
aW4gdGhlIHBsdWdpbi10eXBlcyBkaXJlY3RpdmUgb2YgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9s
aWN5LgorCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
cGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtd2l0aG91dC1t
aW1lLXR5cGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdp
bi1yZXBsYWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI4
NTI1MSkJKGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Bs
dWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LXdpdGhvdXQtbWlt
ZS10eXBlLWV4cGVjdGVkLnR4dDoyODUyNTEpCisrKyBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVw
bGFjZW1lbnQtd2l0aG91dC1taW1lLXR5cGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMiBAQAorQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGxvYWQgaHR0cHM6Ly93
d3cueW91dHViZS5jb20vdi9VRjh1UjZaNktMYyBiZWNhdXNlIGl0cyBNSU1FIHR5cGUgZG9lcyBu
b3QgYXBwZWFyIGluIHRoZSBwbHVnaW4tdHlwZXMgZGlyZWN0aXZlIG9mIHRoZSBDb250ZW50IFNl
Y3VyaXR5IFBvbGljeS4KKwpJbmRleDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50
LXdpdGhvdXQtbWltZS10eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1
Z2luLXJlcGxhY2VtZW50LXdpdGhvdXQtbWltZS10eXBlLmh0bWwJKHJldmlzaW9uIDI4NTI1MSkJ
KGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMt
dHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LXdpdGhvdXQtbWltZS10eXBl
Lmh0bWw6Mjg1MjUxKQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LXdpdGhv
dXQtbWltZS10eXBlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TZWN1
cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InBsdWdpbi10eXBlcyB0ZXh0L2h0bWwiPgorPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAod2luZG93LmludGVybmFs
cykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFlvdVR1YmVGbGFzaFBsdWdpblJl
cGxhY2VtZW50RW5hYmxlZCh0cnVlKTsKKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwor
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2aW9sYXRpb24iLCBkb25l
LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPG9iamVjdCB3aWR0aD0iNDI1
IiBoZWlnaHQ9IjM1MCIgY2xhc3NpZD0iY2xzaWQ6ZDI3Y2RiNmUtYWU2ZC0xMWNmLTk2YjgtNDQ0
NTUzNTQwMDAwIgorICAgIGNvZGViYXNlPSJodHRwOi8vZG93bmxvYWQubWFjcm9tZWRpYS5jb20v
cHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiI3ZlcnNpb249NiwwLDQwLDAiPgor
ICAgIDxlbWJlZCB3aWR0aD0iNDI1IiBoZWlnaHQ9IjM1MCIgc3JjPSJodHRwczovL3d3dy55b3V0
dWJlLmNvbS92L1VGOHVSNlo2S0xjIj4KKzwvb2JqZWN0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlw
ZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMt
YmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwJKHJldmlzaW9uIDI4NTI1MSkJ
KGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMt
dHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWw6Mjg1MjUxKQorKysg
TGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMt
YmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0
cC1lcXVpdj0iQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InBsdWdpbi10eXBlcyB0
ZXh0L2h0bWwiPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCh0cnVlKTsKKworZnVuY3Rpb24g
ZG9uZSgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKK30KKworZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJpdHlw
b2xpY3l2aW9sYXRpb24iLCBkb25lLCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPG9iamVjdCB3aWR0aD0iNDI1IiBoZWlnaHQ9IjM1MCIgY2xhc3NpZD0iY2xzaWQ6ZDI3Y2Ri
NmUtYWU2ZC0xMWNmLTk2YjgtNDQ0NTUzNTQwMDAwIgorICAgIGNvZGViYXNlPSJodHRwOi8vZG93
bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2Fi
I3ZlcnNpb249NiwwLDQwLDAiPgorICAgIDxlbWJlZCB3aWR0aD0iNDI1IiBoZWlnaHQ9IjM1MCIg
dHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHNyYz0iaHR0cHM6Ly93d3cueW91
dHViZS5jb20vdi9VRjh1UjZaNktMYyI+Cis8L29iamVjdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453220</attachid>
            <date>2022-02-25 08:41:54 -0800</date>
            <delta_ts>2022-02-25 10:04:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>attachment.cgi</filename>
            <type>text/plain</type>
            <size>52764</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5MDQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAyLTI0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmUtYWRkIFlv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudCwgcmVtb3ZlZCBpbiByMjg1MjUyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxODIKKyAgICAgICAgPHJkYXI6
Ly84OTE0ODAyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9u
ZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbAorICAgICAgICAgICAgICAg
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1
YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIHNlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBs
YWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS5odG1sCisgICAgICAgICAgICAgICBzZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4t
cmVwbGFjZW1lbnQuaHRtbAorCisgICAgICAgIEl0cyByZW1vdmFsIGJyb2tlIHdlYnBhZ2VzIHRo
YXQgd29yayBpbiBDaHJvbWUgYW5kIEZpcmVmb3gsIHNvIGJhY2sgaXQgY29tZXMuCisKKyAgICAg
ICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2luczogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zLgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpwbHVnaW5TY3JpcHRPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RQbHVnaW5JbnRlcmZhY2U6OnZpc2l0Q2hp
bGRyZW5JbXBsKToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRv
d1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0cmFyKToKKyAgICAgICAgKFdlYkNvcmU6
OnBsdWdpblJlcGxhY2VtZW50Rm9yVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0lu
RWxlbWVudDo6cmVxdWVzdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxl
bWVudDo6c2NyaXB0T2JqZWN0Rm9yUGx1Z2luUmVwbGFjZW1lbnQpOgorICAgICAgICAqIGh0bWwv
SFRNTFBsdWdJbkVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50
OjpwbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
U2hhZG93UHNldWRvSWRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1BzZXVkb0lkczo6
d2Via2l0UGx1Z2luUmVwbGFjZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NoYWRvd1Bz
ZXVkb0lkcy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1l
bnQuY3BwOgorICAgICAgICAqIGh0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisKIDIwMjItMDItMjQgIE1hdHQgV29v
ZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBncmlkIFJU
TCBoYW5kbGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCShyZXZpc2lvbiAyOTA0OTMpCisrKyBT
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yOTgsNiArMjk4
LDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMv
cGVybWlzc2lvbnMvUGVybWlzc2lvbk9ic2VydmVyLmgKICAgICBNb2R1bGVzL3Blcm1pc3Npb25z
L1Blcm1pc3Npb25TdGF0ZS5oCiAKKyAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJl
cGxhY2VtZW50LmgKKwogICAgIE1vZHVsZXMvcHVzaC1hcGkvUHVzaENyeXB0by5oCiAgICAgTW9k
dWxlcy9wdXNoLWFwaS9QdXNoRGF0YWJhc2UuaAogICAgIE1vZHVsZXMvcHVzaC1hcGkvUHVzaE1l
c3NhZ2VDcnlwdG8uaApJbmRleDogU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyOTA0
OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xMDksNiArMTA5LDcgQEAgTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0
TQogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0Qu
bW0KIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1t
CiBNb2R1bGVzL3B1c2gtYXBpL2NvY29hL1B1c2hDcnlwdG9Db2NvYS5jcHAKK01vZHVsZXMvcGx1
Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9jb2NvYS9T
cGVlY2hSZWNvZ25pemVyQ29jb2EubW0KIE1vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJl
Y29nbml6ZXJUYXNrLm1tCiBNb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVy
VGFza01vY2subW0KQEAgLTE4MCw2ICsxODEsNyBAQCBlZGl0aW5nL21hYy9UZXh0QWx0ZXJuYXRp
dmVXaXRoUmFuZ2UubW0gCiBlZGl0aW5nL21hYy9UZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5t
bQogZmlsZWFwaS9GaWxlQ29jb2EubW0KIGhpc3RvcnkvbWFjL0hpc3RvcnlJdGVtTWFjLm1tCito
dG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcAogaW5zcGVjdG9yL21hYy9Q
YWdlRGVidWdnZXJNYWMubW0KIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3Bw
CiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlTWFjLm1tCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyOTA0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsxMTIsNyBAQAogCQkwNzI3N0U1NTE3RDAx
OENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ5MTdEMDE4Q0MwMDE1NTM0RCAv
KiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oICovOyB9OwogCQkwNzI4ODBEMTIwMTBGMUY2MDA3
MUIyNTUgLyogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjg4MEQwMjAxMEVFRDcwMDcxQjI1NSAvKiBS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3MkE3MDQwMUQ2RThGNjIwMERGMEFGQyAvKiBPdmVyY29u
c3RyYWluZWRFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzJBNzAzRTFENkU4RjYyMDBERjBBRkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJy
b3JFdmVudC5oICovOyB9OworCQkwNzJBRTFFNTE4M0MwNzQxMDAwQTU5ODggLyogUGx1Z2luUmVw
bGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3MkFFMURGMTgzQzA3NDEwMDBBNTk4OCAvKiBQbHVnaW5SZXBsYWNlbWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3Mzc5NERFMTlFRTJD
NTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NERDMTlFRTJDNTIwMEU1QTA0NSAvKiBS
VENPZmZlckFuc3dlck9wdGlvbnMuaCAqLzsgfTsKIAkJMDczNzk0RTYxOUVFMkZGMjAwRTVBMDQ1
IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDczNzk0RTQxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJh
dGlvbi5oICovOyB9OwogCQkwNzM3OTRFQzE5RUUzNDFFMDBFNUEwNDUgLyogSlNSVENJY2VTZXJ2
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5
NEVBMTlFRTM0MUUwMEU1QTA0NSAvKiBKU1JUQ0ljZVNlcnZlci5oICovOyB9OwpAQCAtMjM5Miw2
ICsyMzkzLDcgQEAKIAkJN0E0NTAzMzAxOERCNzE3MjAwMzc3QjM0IC8qIEJ1ZmZlcmVkTGluZVJl
YWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E0
NTAzMkUxOERCNzE3MjAwMzc3QjM0IC8qIEJ1ZmZlcmVkTGluZVJlYWRlci5oICovOyB9OwogCQk3
QTU0ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1NDg1N0UxNEUwMkQ1MTAwNkFF
MDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCAqLzsgfTsKIAkJN0E1NDg4MTcxNEU0MzJBMTAwNkFF
MDVBIC8qIERPTVBhdGNoU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0E1NDg4MTUxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9y
dC5oICovOyB9OworCQk3QTU1MTVGNTE5MTgzMEEzMDA5Njg3RDIgLyogWW91VHViZVBsdWdpblJl
cGxhY2VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QTU1MTVGMzE5MTgzMEEzMDA5Njg3RDIgLyogWW91VHViZVBsdWdpblJlcGxhY2VtZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0E1Njk5
NzAyMDg2QzYxOTAwMEUwNDMzIC8qIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTU2OTk2RTIwODZD
NjE4MDAwRTA0MzMgLyogQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QTY3NEJEQzBGOUVCRjRF
MDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmggKi87IH07CiAJCTdBOTI5Q0E3MUM1OThBQTkwMDRERjIyNiAv
KiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QTkyOUNBMjFDNTk4Mzc4MDA0REYyMjYgLyogUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0zNDg5LDYgKzM0OTEsNyBAQAogCQlBNTJCMzQ4RjFGQTNCREE2MDA4QjYyNDYgLyog
U2VydmljZVdvcmtlckRlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1MkIzNDhDMUZBM0JENzkwMDhCNjI0NiAvKiBTZXJ2aWNlV29ya2Vy
RGVidWdnYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE1MkIzNDk2MUZBM0UyOTAwMDhCNjI0NiAvKiBTZXJ2aWNlV29ya2VySW5zcGVjdG9y
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1
MkIzNDkzMUZBM0UyODYwMDhCNjI0NiAvKiBTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNTJCMzQ5
RTFGQTQxNzAzMDA4QjYyNDYgLyogV29ya2VyRGVidWdnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUyQjM0OUMxRkE0MTZGODAwOEI2MjQ2
IC8qIFdvcmtlckRlYnVnZ2VyUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlBNTQxNkZFNjE4ODEwRUY4MDAwOUZDNUYgLyogWW91VHViZUVt
YmVkU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTU0MTZGRTQxODgxMEVGODAwMDlGQzVGIC8qIFlvdVR1YmVFbWJlZFNoYWRvd0Vs
ZW1lbnQuaCAqLzsgfTsKIAkJQTU0QTBDNjIxREI3RjhDMTAwMTdBOTBCIC8qIFdvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1NEEwQzYwMURCN0Y4QjcwMDE3QTkwQiAvKiBXb3JrZXJJbnNwZWN0b3JDb250cm9s
bGVyLmggKi87IH07CiAJCUE1NEEwQzY2MURCODA1MzYwMDE3QTkwQiAvKiBXb3JrZXJEZWJ1Z2dl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0QTBD
NjQxREI4MDUzMjAwMTdBOTBCIC8qIFdvcmtlckRlYnVnZ2VyLmggKi87IH07CiAJCUE1NEEwQzY4
MURCODA3RDkwMDE3QTkwQiAvKiBXb3JrZXJUb1BhZ2VGcm9udGVuZENoYW5uZWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NEEwQzY3MURCODA3RDAw
MDE3QTkwQiAvKiBXb3JrZXJUb1BhZ2VGcm9udGVuZENoYW5uZWwuaCAqLzsgfTsKQEAgLTYwNTUs
NiArNjA1OCw3IEBACiAJCTA3Mjg4MEQwMjAxMEVFRDcwMDcxQjI1NSAvKiBSZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzJB
NzAzRTFENkU4RjYyMDBERjBBRkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkE3MDNGMUQ2RThGNjIwMERGMEFGQyAv
KiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBP
dmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDcyQUUxREYxODNDMDc0MTAwMEE1OTg4IC8qIFBsdWdpblJlcGxhY2VtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblJlcGxhY2VtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkNBODYwMTZDQjREQzMwMDhBRTEzMSAvKiBDYXB0aW9u
VXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcyREJDMDMyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTUxMiw2ICsxMTUxNiw4IEBACiAJCTdBNTQ4NTdFMTRF
MDJENTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3Rvckhpc3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0E1NDg4MTUxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01QYXRjaFN1cHBvcnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E1NDg4MTYxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNo
U3VwcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01QYXRj
aFN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTU1MTVGMzE5MTgz
MEEzMDA5Njg3RDIgLyogWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3QTU1MTVGNDE5MTgzMEEzMDA5Njg3RDIgLyogWW91VHViZVBs
dWdpblJlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdBNTY5OTZFMjA4NkM2MTgwMDBFMDQzMyAvKiBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTY3NEJEOTBG
OUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5OSAvKiBQYWdl
R3JvdXBMb2FkRGVmZXJyZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzg0
Nyw2ICsxMzg1Myw4IEBACiAJCUE1MkIzNDlDMUZBNDE2RjgwMDhCNjI0NiAvKiBXb3JrZXJEZWJ1
Z2dlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlckRlYnVn
Z2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUyRDg1Q0EyMUIwOTgy
RjAwNjFDMUVCIC8qIFNlcnZlclRpbWluZ1BhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
ZXJ2ZXJUaW1pbmdQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTJE
ODVDQjIxQjA5ODMwMDA2MUMxRUIgLyogU2VydmVyVGltaW5nUGFyc2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNlcnZlclRpbWluZ1BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
NTQxNkZFMzE4ODEwRUY4MDAwOUZDNUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBZb3VUdWJlRW1iZWRTaGFkb3dF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTU0MTZGRTQxODgxMEVG
ODAwMDlGQzVGIC8qIFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNTRBMEM1RjFEQjdGOEI3MDAxN0E5MEIgLyogV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTU0QTBDNjAxREI3RjhCNzAwMTdBOTBCIC8qIFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTRBMEM2MzFEQjgwNTMy
MDAxN0E5MEIgLyogV29ya2VyRGVidWdnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV29ya2VyRGVidWdnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTg3NzksNiArMTg3ODcsMTYgQEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQkwNzJBRTFERTE4M0MwNTEzMDAwQTU5ODggLyogcGx1Z2lu
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMDcyQUUx
REYxODNDMDc0MTAwMEE1OTg4IC8qIFBsdWdpblJlcGxhY2VtZW50LmggKi8sCisJCQkJN0E1NTE1
RjQxOTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgKi8sCisJ
CQkJN0E1NTE1RjMxOTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5o
ICovLAorCQkJKTsKKwkJCXBhdGggPSBwbHVnaW5zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJMDc2RjBEMDgxMkI4MTkyNzAwQzI2QUE0IC8qIGF2Zm91bmRhdGlvbiAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTA0Nyw2ICsyMTA2
NSw4IEBACiAJCQkJMTQyQjk3QzgxMzEzODk0MzAwOEJFRjRCIC8qIFRleHRDb250cm9sSW5uZXJF
bGVtZW50cy5oICovLAogCQkJCUNFMjEyMTU0MjQwREJEMzAwMDZFRDQ0MyAvKiBUZXh0UGxhY2Vo
b2xkZXJFbGVtZW50LmNwcCAqLywKIAkJCQlDRTIxMjE1MzI0MERCRDMwMDA2RUQ0NDMgLyogVGV4
dFBsYWNlaG9sZGVyRWxlbWVudC5oICovLAorCQkJCUE1NDE2RkUzMTg4MTBFRjgwMDA5RkM1RiAv
KiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcCAqLywKKwkJCQlBNTQxNkZFNDE4ODEwRUY4
MDAwOUZDNUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBzaGFkb3c7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjYxNDQsNiArMjYx
NjQsNyBAQAogCQkJCUExRjc2QjBFMUY0NEMwQ0YwMDE0QzMxOCAvKiBwYXltZW50cmVxdWVzdCAq
LywKIAkJCQk5M0IwQTY0MjI2Q0RDNTc0MDBBQTIxRTQgLyogcGVybWlzc2lvbnMgKi8sCiAJCQkJ
MURFRjA2QTIyMzNDMzJEQjAwRUUyMjhEIC8qIHBpY3R1cmVpbnBpY3R1cmUgKi8sCisJCQkJMDcy
QUUxREUxODNDMDUxMzAwMEE1OTg4IC8qIHBsdWdpbnMgKi8sCiAJCQkJNDE4RkNCQjgyNzA2RTRC
RDAwRjk2RUNBIC8qIHB1c2gtYXBpICovLAogCQkJCUNEQzMxMkUwMjJGQ0QwQjAwMDEyMDRFQyAv
KiByZW1vdGVwbGF5YmFjayAqLywKIAkJCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUgLyogc3Bl
ZWNoICovLApAQCAtMzY3MDUsNiArMzY3MjYsNyBAQAogCQkJCUE5QzZFNEY0MEQ3NDVFNDgwMDY0
NDJFOSAvKiBQbHVnaW5EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFCQzEyMzkyOTI3
MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMDhGRURE
MUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTA3MkFFMUU1MTgzQzA3NDEwMDBBNTk4OCAvKiBQbHVnaW5SZXBsYWNlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzFFMjE4M0ExNzM1OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNvdXJj
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBBRkRBQzNEMTBGNTQ0OEMwMEUxRjNEMiAvKiBQbHVn
aW5WaWV3QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCQjhBQjkxM0YxQUZCMDAwNzM0REYw
IC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTM4MjU2LDYgKzM4Mjc4LDggQEAK
IAkJCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNv
ZGVTb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNTQxNkZFNjE4ODEwRUY4MDAwOUZDNUYgLyog
WW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0E1NTE1RjUx
OTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9u
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmNwcAkocmV2aXNpb24gMjkwNDkzKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzgsOCArNzgsMTIgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVjdChKU0dsb2JhbE9i
agogCiAgICAgLy8gQ2hva2UgcG9pbnQgZm9yIHNjcmlwdC9wbHVnaW4gaW50ZXJhY3Rpb247IG5v
dGlmeSBET01UaW1lciBvZiB0aGUgZXZlbnQuCiAgICAgRE9NVGltZXI6OnNjcmlwdERpZEludGVy
YWN0V2l0aFBsdWdpbihwbHVnaW5FbGVtZW50KTsKKworICAgIC8vIEZpcnN0LCBzZWUgaWYgdGhl
IGVsZW1lbnQgaGFzIGEgcGx1Zy1pbiByZXBsYWNlbWVudCB3aXRoIGEgc2NyaXB0LgorICAgIGlm
IChhdXRvKiBzY3JpcHRPYmplY3QgPSBwbHVnaW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBsdWdp
blJlcGxhY2VtZW50KCkpCisgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAgICAgCi0gICAg
Ly8gU2VlIGlmIHdlIGNhbiBhc2sgdGhlIHBsdWctaW4gdmlldyBmb3IgaXRzIHNjcmlwdCBvYmpl
Y3QuCisgICAgLy8gTmV4dCwgc2VlIGlmIHdlIGNhbiBhc2sgdGhlIHBsdWctaW4gdmlldyBmb3Ig
aXRzIHNjcmlwdCBvYmplY3QuCiAgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpblNj
cmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVtZW50
LT5nbG9iYWxPYmplY3QoKSkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCShyZXZpc2lvbiAyOTA0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtNDg5OCw2ICs0ODk4LDExIEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTtcbiIpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNP
YmplY3QsIHZpc2l0b3IpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHRo
aXNPYmplY3QtPnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKHZpc2l0b3IpO1xuIikgaWYgJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SlNDdXN0b21NYXJrRnVuY3Rpb259OworICAgICAg
ICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UGx1Z2lufSkgeworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgUExBVEZPUk0oQ09DT0EpXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5wbHVn
aW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdCgpLnZpc2l0KHZpc2l0b3IpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIik7CisgICAgICAgIH0KICAgICAgICAg
aWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0dlbmVyYXRlQWRkT3BhcXVlUm9v
dH0pIHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8d3RmL0dldFB0ci5oPiIpOwog
ICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0dlbmVyYXRlQWRkT3BhcXVlUm9vdH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2lu
SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjkwNDkzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI1Myw2ICsyNTMsOSBAQCB2b2lkIEpTVGVzdFBsdWdpbkludGVyZmFjZTo6dmlzaXRD
aGlsZHJlCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RQbHVnaW5JbnRlcmZh
Y2UqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGlu
Zm8oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkucGx1Z2luUmVwbGFj
ZW1lbnRTY3JpcHRPYmplY3QoKS52aXNpdCh2aXNpdG9yKTsKKyNlbmRpZgogfQogCiBERUZJTkVf
VklTSVRfQ0hJTERSRU4oSlNUZXN0UGx1Z2luSW50ZXJmYWNlKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAyOTA0OTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgorI2luY2x1ZGUgIlBsdWdpblJlcGxhY2Vt
ZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJl
ZGRlZE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCkBAIC00OSw2ICs1MCwxMCBA
QAogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJZb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChIVE1MUGx1Z0luRWxlbWVudCk7CkBAIC0yMjUsOCArMjMwLDExIEBAIGJvb2wg
SFRNTFBsdWdJbkVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSAKICAgICByZXR1cm4gIWRvd25jYXN0
PFJlbmRlckVtYmVkZGVkT2JqZWN0PigqcmVuZGVyZXIoKSkuaXNQbHVnaW5VbmF2YWlsYWJsZSgp
OwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5FbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKKyAgICBpZiAobV9wbHVnaW5SZXBsYWNlbWVu
dCAmJiBtX3BsdWdpblJlcGxhY2VtZW50LT53aWxsQ3JlYXRlUmVuZGVyZXIoKSkKKyAgICAgICAg
cmV0dXJuIG1fcGx1Z2luUmVwbGFjZW1lbnQtPmNyZWF0ZUVsZW1lbnRSZW5kZXJlcigqdGhpcywg
V1RGTW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKKwogICAgIHJldHVybiBjcmVhdGVS
ZW5kZXJlcjxSZW5kZXJFbWJlZGRlZE9iamVjdD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0K
IApAQCAtMjU0LDEzICsyNjIsMTIyIEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OnNldERpc3Bs
YXlTdGF0ZSgKICAgICAgICAgbV9zd2FwUmVuZGVyZXJUaW1lci5zdGFydE9uZVNob3QoMF9zKTsK
IH0KIAotdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChT
aGFkb3dSb290JikKK3ZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRv
d1Jvb3QoU2hhZG93Um9vdCYgcm9vdCkKIHsKKyAgICBpZiAoIW1fcGx1Z2luUmVwbGFjZW1lbnQg
fHwgIWRvY3VtZW50KCkucGFnZSgpIHx8IGRpc3BsYXlTdGF0ZSgpICE9IFByZXBhcmluZ1BsdWdp
blJlcGxhY2VtZW50KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgcm9vdC5zZXRSZXNldFN0
eWxlSW5oZXJpdGFuY2UodHJ1ZSk7CisgICAgYXV0byByZXN1bHQgPSBtX3BsdWdpblJlcGxhY2Vt
ZW50LT5pbnN0YWxsUmVwbGFjZW1lbnQocm9vdCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBSRUxFQVNFX0FTU0VSVChyZXN1bHQuc3VjY2VzcyB8fCAhcmVzdWx0LnNjcmlwdE9iamVjdCk7
CisgICAgbV9wbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdC5zZXRXZWFrbHkocmVzdWx0LnNj
cmlwdE9iamVjdCk7CisjZW5kaWYKKworICAgIGlmIChyZXN1bHQuc3VjY2VzcykgeworICAgICAg
ICBzZXREaXNwbGF5U3RhdGUoRGlzcGxheWluZ1BsdWdpblJlcGxhY2VtZW50KTsKKyAgICAgICAg
aW52YWxpZGF0ZVN0eWxlQW5kUmVuZGVyZXJzRm9yU3VidHJlZSgpOworICAgIH0KIH0KIAotYm9v
bCBIVE1MUGx1Z0luRWxlbWVudDo6cmVxdWVzdE9iamVjdChjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikKKyNp
ZiBQTEFURk9STShDT0NPQSkKK3N0YXRpYyB2b2lkIHJlZ2lzdHJhcihjb25zdCBSZXBsYWNlbWVu
dFBsdWdpbiYpOworI2VuZGlmCisKK3N0YXRpYyBWZWN0b3I8UmVwbGFjZW1lbnRQbHVnaW4qPiYg
cmVnaXN0ZXJlZFBsdWdpblJlcGxhY2VtZW50cygpCiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8UmVwbGFjZW1lbnRQbHVnaW4qPj4gcmVnaXN0
ZXJlZFJlcGxhY2VtZW50czsKKyAgICBzdGF0aWMgYm9vbCBlbmdpbmVzUXVlcmllZCA9IGZhbHNl
OworICAgIAorICAgIGlmIChlbmdpbmVzUXVlcmllZCkKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVy
ZWRSZXBsYWNlbWVudHM7CisgICAgZW5naW5lc1F1ZXJpZWQgPSB0cnVlOworCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpyZWdpc3RlclBsdWdpblJl
cGxhY2VtZW50KHJlZ2lzdHJhcik7CisjZW5kaWYKKyAgICAKKyAgICByZXR1cm4gcmVnaXN0ZXJl
ZFJlcGxhY2VtZW50czsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIHZvaWQgcmVn
aXN0cmFyKGNvbnN0IFJlcGxhY2VtZW50UGx1Z2luJiByZXBsYWNlbWVudCkKK3sKKyAgICByZWdp
c3RlcmVkUGx1Z2luUmVwbGFjZW1lbnRzKCkuYXBwZW5kKG5ldyBSZXBsYWNlbWVudFBsdWdpbihy
ZXBsYWNlbWVudCkpOworfQorI2VuZGlmCisKK3N0YXRpYyBSZXBsYWNlbWVudFBsdWdpbiogcGx1
Z2luUmVwbGFjZW1lbnRGb3JUeXBlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKQoreworICAgIFZlY3RvcjxSZXBsYWNlbWVudFBsdWdpbio+JiByZXBsYWNlbWVudHMgPSBy
ZWdpc3RlcmVkUGx1Z2luUmVwbGFjZW1lbnRzKCk7CisgICAgaWYgKHJlcGxhY2VtZW50cy5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgU3RyaW5nIGV4dGVuc2lvbjsK
KyAgICBhdXRvIGxhc3RQYXRoQ29tcG9uZW50ID0gdXJsLmxhc3RQYXRoQ29tcG9uZW50KCk7Cisg
ICAgc2l6ZV90IGRvdE9mZnNldCA9IGxhc3RQYXRoQ29tcG9uZW50LnJldmVyc2VGaW5kKCcuJyk7
CisgICAgaWYgKGRvdE9mZnNldCAhPSBub3RGb3VuZCkKKyAgICAgICAgZXh0ZW5zaW9uID0gbGFz
dFBhdGhDb21wb25lbnQuc3Vic3RyaW5nKGRvdE9mZnNldCArIDEpLnRvU3RyaW5nKCk7CisKKyAg
ICBTdHJpbmcgdHlwZSA9IG1pbWVUeXBlOworICAgIGlmICh0eXBlLmlzRW1wdHkoKSAmJiB1cmwu
cHJvdG9jb2xJc0RhdGEoKSkKKyAgICAgICAgdHlwZSA9IG1pbWVUeXBlRnJvbURhdGFVUkwodXJs
LnN0cmluZygpKTsKKyAgICAKKyAgICBpZiAodHlwZS5pc0VtcHR5KCkgJiYgIWV4dGVuc2lvbi5p
c0VtcHR5KCkpIHsKKyAgICAgICAgZm9yIChhdXRvKiByZXBsYWNlbWVudCA6IHJlcGxhY2VtZW50
cykgeworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50LT5zdXBwb3J0c0ZpbGVFeHRlbnNpb24o
ZXh0ZW5zaW9uKSAmJiByZXBsYWNlbWVudC0+c3VwcG9ydHNVUkwodXJsKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gcmVwbGFjZW1lbnQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaWYg
KHR5cGUuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChleHRlbnNpb24uaXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5
OjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgfQorCisgICAgaWYg
KHR5cGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGZvciAoYXV0
byogcmVwbGFjZW1lbnQgOiByZXBsYWNlbWVudHMpIHsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
LT5zdXBwb3J0c1R5cGUodHlwZSkgJiYgcmVwbGFjZW1lbnQtPnN1cHBvcnRzVVJMKHVybCkpCisg
ICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnQ7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK2Jvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6OnJlcXVlc3RPYmplY3QoY29uc3QgU3Ry
aW5nJiByZWxhdGl2ZVVSTCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcykKK3sK
KyAgICBpZiAobV9wbHVnaW5SZXBsYWNlbWVudCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICBVUkwgY29tcGxldGVkVVJMOworICAgIGlmICghcmVsYXRpdmVVUkwuaXNFbXB0eSgpKQorICAg
ICAgICBjb21wbGV0ZWRVUkwgPSBkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHJlbGF0aXZlVVJMKTsK
KworICAgIFJlcGxhY2VtZW50UGx1Z2luKiByZXBsYWNlbWVudCA9IHBsdWdpblJlcGxhY2VtZW50
Rm9yVHlwZShjb21wbGV0ZWRVUkwsIG1pbWVUeXBlKTsKKyAgICBpZiAoIXJlcGxhY2VtZW50IHx8
ICFyZXBsYWNlbWVudC0+aXNFbmFibGVkQnlTZXR0aW5ncyhkb2N1bWVudCgpLnNldHRpbmdzKCkp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMT0coUGx1Z2lucywgIiVwIC0gRm91bmQg
cGx1Zy1pbiByZXBsYWNlbWVudCBmb3IgJXMuIiwgdGhpcywgY29tcGxldGVkVVJMLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworCisgICAgbV9wbHVnaW5SZXBsYWNlbWVudCA9IHJlcGxhY2VtZW50
LT5jcmVhdGUoKnRoaXMsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKKyAgICBzZXREaXNwbGF5
U3RhdGUoUHJlcGFyaW5nUGx1Z2luUmVwbGFjZW1lbnQpOworICAgIHJldHVybiB0cnVlOworfQor
CitKU0M6OkpTT2JqZWN0KiBIVE1MUGx1Z0luRWxlbWVudDo6c2NyaXB0T2JqZWN0Rm9yUGx1Z2lu
UmVwbGFjZW1lbnQoKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEpTQzo6SlNWYWx1ZSB2
YWx1ZSA9IG1fcGx1Z2luUmVwbGFjZW1lbnRTY3JpcHRPYmplY3QuZ2V0VmFsdWUoKTsKKyAgICBp
ZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUuZ2V0
T2JqZWN0KCk7CisjZWxzZQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9CiAKIGJvb2wg
SFRNTFBsdWdJbkVsZW1lbnQ6OmlzQmVsb3dTaXplVGhyZXNob2xkKCkgY29uc3QKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgJKHJldmlzaW9uIDI5MDQ5MykKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNiArMzUsNyBAQCBjbGFzcyBJbnN0YW5jZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBQbHVnaW5SZXBsYWNlbWVudDsKIGNsYXNzIFJlbmRlcldpZGdldDsKIGNsYXNzIFdp
ZGdldDsKIApAQCAtNTgsNiArNTksMTEgQEAgcHVibGljOgogICAgIERpc3BsYXlTdGF0ZSBkaXNw
bGF5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQogICAgIHZvaWQgc2V0
RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSk7CiAKKyAgICBKU0M6OkpTT2JqZWN0KiBzY3JpcHRP
YmplY3RGb3JQbHVnaW5SZXBsYWNlbWVudCgpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEpT
VmFsdWVJbldyYXBwZWRPYmplY3QmIHBsdWdpblJlcGxhY2VtZW50U2NyaXB0T2JqZWN0KCkgeyBy
ZXR1cm4gbV9wbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdDsgfQorI2VuZGlmCisKICAgICBi
b29sIGlzQ2FwdHVyaW5nTW91c2VFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzQ2FwdHVyaW5n
TW91c2VFdmVudHM7IH0KICAgICB2b2lkIHNldElzQ2FwdHVyaW5nTW91c2VFdmVudHMoYm9vbCBj
YXB0dXJpbmcpIHsgbV9pc0NhcHR1cmluZ01vdXNlRXZlbnRzID0gY2FwdHVyaW5nOyB9CiAKQEAg
LTEwOCw2ICsxMTQsMTAgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxKU0M6OkJpbmRpbmdzOjpJ
bnN0YW5jZT4gbV9pbnN0YW5jZTsKICAgICBUaW1lciBtX3N3YXBSZW5kZXJlclRpbWVyOworICAg
IFJlZlB0cjxQbHVnaW5SZXBsYWNlbWVudD4gbV9wbHVnaW5SZXBsYWNlbWVudDsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0IG1fcGx1Z2luUmVwbGFjZW1l
bnRTY3JpcHRPYmplY3Q7CisjZW5kaWYKICAgICBib29sIG1faXNDYXB0dXJpbmdNb3VzZUV2ZW50
cyB7IGZhbHNlIH07CiAgICAgRGlzcGxheVN0YXRlIG1fZGlzcGxheVN0YXRlIHsgUGxheWluZyB9
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NoYWRvd1BzZXVkb0lkcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2hhZG93UHNldWRv
SWRzLmNwcAkocmV2aXNpb24gMjkwNDkzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2hhZG93UHNldWRvSWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEzLDYgKzIxMywxMiBAQCBj
b25zdCBBdG9tU3RyaW5nJiB3ZWJraXRNZXRlckV2ZW5MZXNzR29vCiAgICAgcmV0dXJuIHdlYmtp
dE1ldGVyRXZlbkxlc3NHb29kVmFsdWU7CiB9CiAKK2NvbnN0IEF0b21TdHJpbmcmIHdlYmtpdFBs
dWdpblJlcGxhY2VtZW50KCkKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBsdWdpblJlcGxhY2VtZW50KCItd2Via2l0LXBsdWdp
bi1yZXBsYWNlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBy
ZXR1cm4gd2Via2l0UGx1Z2luUmVwbGFjZW1lbnQ7Cit9CisKIGNvbnN0IEF0b21TdHJpbmcmIHdl
YmtpdFByb2dyZXNzQmFyKCkKIHsKICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVk
PGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzQmFyKCItd2Via2l0LXByb2dyZXNzLWJh
ciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NoYWRvd1BzZXVkb0lkcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NoYWRvd1BzZXVkb0lkcy5oCShyZXZpc2lvbiAyOTA0OTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TaGFkb3dQc2V1ZG9JZHMuaAkod29ya2luZyBj
b3B5KQpAQCAtNzcsNiArNzcsOCBAQCBjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRNZXRlck9wdGlt
dW1WYWx1CiBjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRNZXRlclN1Ym9wdGltdW1WYWx1ZSgpOwog
Y29uc3QgQXRvbVN0cmluZyYgd2Via2l0TWV0ZXJFdmVuTGVzc0dvb2RWYWx1ZSgpOwogCitjb25z
dCBBdG9tU3RyaW5nJiB3ZWJraXRQbHVnaW5SZXBsYWNlbWVudCgpOworCiBjb25zdCBBdG9tU3Ry
aW5nJiB3ZWJraXRQcm9ncmVzc0JhcigpOwogY29uc3QgQXRvbVN0cmluZyYgd2Via2l0UHJvZ3Jl
c3NWYWx1ZSgpOwogY29uc3QgQXRvbVN0cmluZyYgd2Via2l0UHJvZ3Jlc3NJbm5lckVsZW1lbnQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0Vs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1
YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyODUyNTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oIgorCisjaW5jbHVkZSAi
UmVuZGVyQmxvY2tGbG93LmgiCisjaW5jbHVkZSAiU2hhZG93UHNldWRvSWRzLmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoWW91VHViZUVtYmVkU2hhZG93RWxlbWVudCk7CisKK1Jl
ZjxZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50PiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIGF1dG8gZWxlbWVudCA9IGFkb3B0UmVm
KCpuZXcgWW91VHViZUVtYmVkU2hhZG93RWxlbWVudChkb2N1bWVudCkpOworICAgIGVsZW1lbnQt
PnNldFBzZXVkbyhTaGFkb3dQc2V1ZG9JZHM6OndlYmtpdFBsdWdpblJlcGxhY2VtZW50KCkpOwor
ICAgIHJldHVybiBlbGVtZW50OworfQorCitZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpZb3VU
dWJlRW1iZWRTaGFkb3dFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxEaXZF
bGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKK3sKK30KKworUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQorewor
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJCbG9ja0Zsb3c+KCp0aGlzLCBXVEZNb3Zl
KHN0eWxlKSk7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1
YmVFbWJlZFNoYWRvd0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmgJKHJldmlzaW9uIDI4NTI1MSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWW91VHViZUVtYmVkU2hhZG93
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50KTsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworCisg
ICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJT
dHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAg
ICBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50KERvY3VtZW50Jik7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCShyZXZpc2lvbiAy
OTA0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwJKHdvcmtpbmcgY29w
eSkKQEAgLTYxOCwzICs2MTgsMTAgQEAgV2Via2l0SW1hZ2VSZWFkeUV2ZW50RW5hYmxlZDoKICAg
ZGVmYXVsdFZhbHVlOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQorCitZb3VU
dWJlRmxhc2hQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVs
dFZhbHVlOgorICAgIFdlYkNvcmU6CisgICAgICBQTEFURk9STShDT0NPQSk6IHRydWUKKyAgICAg
IGRlZmF1bHQ6IGZhbHNlCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyOTA0OTMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMi0yNCAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlLWFkZCBZb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQsIHJlbW92ZWQgaW4gcjI4NTI1MgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcDoKKwogMjAyMi0wMi0yNCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJldmVydGluZyByMjkwMzcxLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDI5MDQ5MykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTMsNiArMzkzLDcgQEAKIAkJ
NUMyOTM2OTYxRDVDMDBFRDAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzI5MzY5NDFENUJG
RDE5MDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5odG1sICovOyB9OwogCQk1QzJDMDFBODI3MzQ4
ODM2MDBGODlEMzcgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjc4REU2NEIyMkI4RDYxMTAwNEUwRTdBIC8qIENy
b3NzVGhyZWFkQ29waWVyLmNwcCAqLzsgfTsKIAkJNUM0MjU5NDYyMjY2QTY4QTAwMzlBQTdBIC8q
IEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0MjU5NDQyMjY2OUU5QjAwMzlBQTdBIC8qIEJhc2lj
UHJvcG9zZWRDcmVkZW50aWFsUGx1Z0luLm1tICovOyB9OworCQk1QzU4MUQzMjI3QzhBMDFDMDA2
QjNCQzQgLyogWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNTgxRDMxMjdDOEEwMUMwMDZCM0JDNCAvKiBZ
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwICovOyB9OwogCQk1QzZFMjdBNzIyNEVFQkVBMDAx
Mjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNkUyN0E2MjI0RUVCRUEwMDEyODczNiAvKiBVUkxDYW5v
bmljYWxpemF0aW9uLm1tICovOyB9OwogCQk1QzcxMDFDNzI1REQ5OEI2MDA2ODYyMDAgLyogdGVz
dF9wcmludC5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUM3MTAxQzYyNUREOTg4NzAwNjg2MjAwIC8qIHRlc3RfcHJpbnQucGRmICovOyB9
OwogCQk1Qzc1NzE2MTIyMTI0QzUyMDBCOUU1QUMgLyogQnVuZGxlUmV0YWluUGFnZVBsdWdJbi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzU3MTVG
MjIxMjQ5QkQwMEI5RTVBQyAvKiBCdW5kbGVSZXRhaW5QYWdlUGx1Z0luLm1tICovOyB9OwpAQCAt
MjI1OSw2ICsyMjYwLDcgQEAKIAkJNUMzQjFEMjUyMkE3NEVBNDAwQkNGNEQwIC8qIENvbnRleHRN
ZW51cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvbnRleHRN
ZW51cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0MjU5NDQyMjY2OUU5QjAw
MzlBQTdBIC8qIEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsUGx1Z0luLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmFzaWNQcm9wb3NlZENyZWRlbnRpYWxQbHVnSW4u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNEE4NDk0MUY3RUVGRDQwMEFDRkM1
NCAvKiBDb25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM1
ODFEMzEyN0M4QTAxQzAwNkIzQkM0IC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBZb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzVFNjMzRDFEMEI2Nzk0MDA4
NUEwMjUgLyogVW5pcXVlUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFVuaXF1ZVJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNjlCREQ0
MUY4MkE3RUIwMDBGNEY0QiAvKiBKYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZFMjdBNjIyNEVFQkVBMDAx
Mjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFVSTENhbm9uaWNhbGl6YXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0zODI4LDYgKzM4MzAsNyBAQAogCQkJCTdBRDNGRThEMUQ3NUZCOEQwMEIx
NjlBNCAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgKi8sCiAJCQkJNTdEMUQ3NUUyMURDQjdB
ODAwOTNFODZBIC8qIFUyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QuY3BwICovLAogCQkJCUUzQTFF
NzdFMjFCMjVCMzkwMDhDNjAwNyAvKiBVUkxQYXJzZXJUZXh0RW5jb2RpbmcuY3BwICovLAorCQkJ
CTVDNTgxRDMxMjdDOEEwMUMwMDZCM0JDNCAvKiBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
ICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJDb3JlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTU5MjcsNiArNTkzMCw3IEBACiAJCQkJRTUyMEEzNkIyNUFGQjc2QzAwNTI2Q0I5IC8q
IFdLV2ViVmlld1RpdGxlYmFyU2VwYXJhdG9yVGVzdHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Qzc0QzhGQTIyREZCQTk2MDBEQTJEQUIgLyogV1RGU3RyaW5nVXRpbGl0aWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUMxNEQzMDQ2MjRCNEMzQkEwMDQ4MDM4NyAvKiBYUENFbmRwb2ludC5tbSBp
biBTb3VyY2VzICovLAorCQkJCTVDNTgxRDMyMjdDOEEwMUMwMDZCM0JDNCAvKiBZb3VUdWJlUGx1
Z2luUmVwbGFjZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmNwcAkocmV2aXNpb24gMjg1MjUxKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oPgorI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBZb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworcHVibGljOgorICAgIHZvaWQg
U2V0VXAoKSBmaW5hbCB7CisgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKKyAg
ICB9Cit9OworCitzdGF0aWMgYm9vbCB0ZXN0KGNvbnN0IFN0cmluZyYgaW5wdXRVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRVUkxTdHJpbmcpCit7CisgICAgVVJMIGlucHV0VVJMKFVS
TCgpLCBpbnB1dFVSTFN0cmluZyk7CisgICAgU3RyaW5nIGFjdHVhbFVSTFN0cmluZyA9IFlvdVR1
YmVQbHVnaW5SZXBsYWNlbWVudDo6eW91VHViZVVSTEZyb21BYnNvbHV0ZVVSTChpbnB1dFVSTCwg
aW5wdXRVUkxTdHJpbmcpOworICAgIHJldHVybiBhY3R1YWxVUkxTdHJpbmcudXRmOCgpID09IGV4
cGVjdGVkVVJMU3RyaW5nLnV0ZjgoKTsKK30KKworVEVTVF9GKFlvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudFRlc3QsIFlvdVR1YmVVUkxGcm9tQWJzb2x1dGVVUkwpCit7CisgICAgLy8gWW91VHViZSBu
b24tdmlkZW8gVVJMLCBub3QgZXhwZWN0ZWQgdG8gYmUgdHJhbnNmb3JtZWQuCisgICAgRVhQRUNU
X1RSVUUodGVzdCgiaHR0cHM6Ly93d3cueW91dHViZS5jb20iLCAiaHR0cHM6Ly93d3cueW91dHVi
ZS5jb20iKSk7CisKKyAgICAvLyBCYXNpYyBZb3VUdWJlIHZpZGVvIGxpbmtzLCBleHBlY3RlZCB0
byBiZSB0cmFuc2Zvcm1lZC4KKyAgICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRwczovL3d3dy55b3V0
dWJlLmNvbS92L2RRdzR3OVdnWGNRIiwgImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RR
dzR3OVdnWGNRIikpOworICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHA6Ly93d3cueW91dHViZS5j
b20vdi9kUXc0dzlXZ1hjUSIsICJodHRwOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdn
WGNRIikpOworICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHBzOi8veW91dHViZS5jb20vdi9kUXc0
dzlXZ1hjUSIsICJodHRwczovL3lvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIikpOworICAg
IEVYUEVDVF9UUlVFKHRlc3QoImh0dHA6Ly95b3V0dWJlLmNvbS92L2RRdzR3OVdnWGNRIiwgImh0
dHA6Ly95b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUSIpKTsKKworICAgIC8vIFdpdGggc3Rh
cnQgdGltZSwgcHJlc2VydmVkLgorICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHA6Ly93d3cueW91
dHViZS5jb20vdi9kUXc0dzlXZ1hjUT9zdGFydD00IiwgImh0dHA6Ly93d3cueW91dHViZS5jb20v
ZW1iZWQvZFF3NHc5V2dYY1E/c3RhcnQ9NCIpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRw
Oi8vd3d3LnlvdXR1YmUuY29tL3YvZFF3NHc5V2dYY1E/c3RhcnQ9NCZmcz0xIiwgImh0dHA6Ly93
d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1E/c3RhcnQ9NCZmcz0xIikpOworCisgICAg
Ly8gV2l0aCBhbiBpbnZhbGlkIHF1ZXJ5IChzZWUgJiBpbnN0ZWFkIG9mID8pLCB3ZSBwcmVzZXJ2
ZSBhbmQgZml4IHRoZSBxdWVyeS4KKyAgICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRwOi8vd3d3Lnlv
dXR1YmUuY29tL3YvZFF3NHc5V2dYY1Emc3RhcnQ9NCIsICJodHRwOi8vd3d3LnlvdXR1YmUuY29t
L2VtYmVkL2RRdzR3OVdnWGNRP3N0YXJ0PTQiKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdCgiaHR0
cDovL3d3dy55b3V0dWJlLmNvbS92L2RRdzR3OVdnWGNRJnN0YXJ0PTQmZnM9MSIsICJodHRwOi8v
d3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRP3N0YXJ0PTQmZnM9MSIpKTsKKworICAg
IC8vIE5vbi1GbGFzaCBVUkwgaXMgdW50b3VjaGVkLgorICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0
dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIiwgImh0dHBzOi8vd3d3Lnlv
dXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIikpOworICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0
dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1EiLCAiaHR0cDovL3d3dy55b3V0
dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUSIpKTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRw
czovL3lvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIiwgImh0dHBzOi8veW91dHViZS5jb20v
ZW1iZWQvZFF3NHc5V2dYY1EiKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdCgiaHR0cDovL3lvdXR1
YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIiwgImh0dHA6Ly95b3V0dWJlLmNvbS9lbWJlZC9kUXc0
dzlXZ1hjUSIpKTsKKyAgICAvLyBFdmVuIHdpdGggZXh0cmEgcGFyYW1ldGVycy4KKyAgICBFWFBF
Q1RfVFJVRSh0ZXN0KCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUT9z
dGFydD00IiwgImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRP3N0YXJ0
PTQiKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdCgiaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJl
ZC9kUXc0dzlXZ1hjUT9lbmFibGVqc2FwaT0xIiwgImh0dHA6Ly93d3cueW91dHViZS5jb20vZW1i
ZWQvZFF3NHc5V2dYY1E/ZW5hYmxlanNhcGk9MSIpKTsKKyAgICAvLyBFdmVuIHdpdGggYW4gaW52
YWxpZCAicXVlcnkiLgorICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHBzOi8vd3d3LnlvdXR1YmUu
Y29tL2VtYmVkL2RRdzR3OVdnWGNRJnN0YXJ0PTQiLCAiaHR0cHM6Ly93d3cueW91dHViZS5jb20v
ZW1iZWQvZFF3NHc5V2dYY1Emc3RhcnQ9NCIpKTsKKworICAgIC8vIERvbid0IHRyYW5zZm9ybSBh
bnl0aGluZyB3aXRoIGEgbm9uICIvdi8iIHBhdGggY29tcG9uZW50IGltbWVkaWF0ZWx5IGZvbGxv
d2luZyB0aGUgZG9tYWluLgorICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHBzOi8vd3d3LnlvdXR1
YmUuY29tL3NvbWV0aGluZy92L2RRdzR3OVdnWGNRIiwgImh0dHBzOi8vd3d3LnlvdXR1YmUuY29t
L3NvbWV0aGluZy92L2RRdzR3OVdnWGNRIikpOworCisgICAgLy8gTm9uLVlvdVR1YmUgZG9tYWlu
IHdob3NlIHBhdGggbG9va3MgbGlrZSBhIEZsYXNoIHZpZGVvIHNob3VsZG4ndCBiZSB0cmFuc2Zv
cm1lZC4KKyAgICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRwczovL3d3dy5ub3R5b3V0dWJlLmNvbS92
L2RRdzR3OVdnWGNRIiwgImh0dHBzOi8vd3d3Lm5vdHlvdXR1YmUuY29tL3YvZFF3NHc5V2dYY1Ei
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCShyZXZpc2lvbiAyODUyNTEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQsNyArMzQsOCBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIGNsYXNzIFlv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudFRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJs
aWM6Ci0gICAgdm9pZCBTZXRVcCgpIGZpbmFsIHsKKyAgICB2b2lkIFNldFVwKCkgZmluYWwKKyAg
ICB7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKICAgICB9CiB9OwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjkwNDkzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDItMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZS1hZGQgWW91VHViZVBsdWdpblJl
cGxhY2VtZW50LCByZW1vdmVkIGluIHIyODUyNTIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L29iamVjdC1zcmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtZXhwZWN0
ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvb2JqZWN0LXNyYy1ub25lLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1l
eHBlY3RlZC50eHQuCisgICAgICAgICogc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29i
amVjdC1zcmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVj
dC1zcmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbC4KKyAgICAg
ICAgKiBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3Mt
eW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxv
d3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHNl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWFsbG93cy15b3V0dWJl
LXBsdWdpbi1yZXBsYWNlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3MteW91dHViZS1wbHVn
aW4tcmVwbGFjZW1lbnQuaHRtbC4KKyAgICAgICAgKiBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtZXhw
ZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9w
bHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC13aXRob3V0LW1p
bWUtdHlwZS1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1y
ZXBsYWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS1leHBlY3RlZC50eHQuCisgICAgICAgICogc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUt
cGx1Z2luLXJlcGxhY2VtZW50LXdpdGhvdXQtbWltZS10eXBlLmh0bWw6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJs
b2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS5odG1sLgor
ICAgICAgICAqIHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJs
b2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3Mt
eW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbC4KKwogMjAyMi0wMi0yNCAgQWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmlu
ZyBhZnRlciByMjkwNDU0LgpJbmRleDogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAyOTA0OTMp
CisrKyBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC01MTU3
LDYgKzUxNTcsMTAgQEAgZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1wbHVnaW4uaHRtbCBbIFNraQog
aW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9wbHVnaW5zIFsgU2tpcCBdCiBpbXBvcnRlZC9ibGlu
ay9wbHVnaW5zIFsgU2tpcCBdCiBqcy9kb20vcmVmbGVjdC1zZXQtb250by1kb20uaHRtbCBbIFNr
aXAgXQorc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9j
a3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbCBbIFNraXAgXQorc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJl
cGxhY2VtZW50Lmh0bWwgWyBTa2lwIF0KK3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9w
bHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC13aXRob3V0LW1p
bWUtdHlwZS5odG1sIFsgU2tpcCBdCitzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1
Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbCBbIFNraXAg
XQogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtcGx1Z2luLWRvY3VtZW50Lmh0bWwgWyBTa2lwIF0K
IAogIyBUaGlzIGlzIG1hcmtlZCBhcyBwYXNzaW5nIG9uIFdLMi4KSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI5MDQ5MykK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2lu
ZyBjb3B5KQpAQCAtMjAyMSw2ICsyMDIxLDggQEAgd2Via2l0Lm9yZy9iLzIyMzU4NiB3ZWJnbC9j
b25mb3JtYW5jZS9leAogCiB3ZWJraXQub3JnL2IvMjE0OTU1IGZhc3QvcGFyc2VyL3htbC1jb2xv
bi1lbnRpdHkuaHRtbCBbIEZhaWx1cmUgXQogCit3ZWJraXQub3JnL2IvMjIzNzUwIFsgRGVidWcg
XSBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3MteW91
dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbCBbIFBhc3MgQ3Jhc2ggXQorCiB3ZWJraXQub3Jn
L2IvMTU1MTk2IHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby13aXRoLWZpbGUt
dXJsLWFsbG93ZWQtYnktbWVkaWEtc3JjLXN0YXItd2l0aC1BbGxvd0NvbnRlbnRTZWN1cml0eVBv
bGljeVNvdXJjZVN0YXJUb01hdGNoQW55UHJvdG9jb2wtZW5hYmxlZC5odG1sIFsgUGFzcyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNTUxOTYgc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3ZpZGVvLXdpdGgtZmlsZS11cmwtYWxsb3dlZC1ieS1tZWRpYS1zcmMtc3Rhci5o
dG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI5MDQ5MykKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0zNDc0LDYg
KzM0NzQsNyBAQCBqcy9yZWdyZXNzLTE0MTA5OC5odG1sIFsgRmFpbHVyZSBdCiBwYWdlb3Zlcmxh
eS9vdmVybGF5LWluc3RhbGxhdGlvbi5odG1sIFsgRmFpbHVyZSBdCiBwYWdlb3ZlcmxheS9vdmVy
bGF5LWxhcmdlLWRvY3VtZW50LXNjcm9sbGVkLmh0bWwgWyBGYWlsdXJlIF0KIHBhZ2VvdmVybGF5
L292ZXJsYXktbGFyZ2UtZG9jdW1lbnQuaHRtbCBbIEZhaWx1cmUgXQorc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxh
Y2VtZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9ibG9iLWN1
cnNvci5odG1sIFsgRmFpbHVyZSBdCiBzdHJlYW1zL3JlYWRhYmxlLWJ5dGUtc3RyZWFtLWNvbnRy
b2xsZXIuaHRtbCBbIEZhaWx1cmUgXQogc3RyZWFtcy9yZWFkYWJsZS1ieXRlLXN0cmVhbS1jb250
cm9sbGVyLXdvcmtlci5odG1sIFsgRmFpbHVyZSBdCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1ub25lLWJsb2Nrcy15b3V0dWJlLXBs
dWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja3MteW91
dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyODUyNTEpCisr
KyBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1u
b25lLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gbG9h
ZCBodHRwczovL3d3dy55b3V0dWJlLmNvbS92L1VGOHVSNlo2S0xjIGJlY2F1c2UgaXQgZG9lcyBu
b3QgYXBwZWFyIGluIHRoZSBvYmplY3Qtc3JjIGRpcmVjdGl2ZSBvZiB0aGUgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kuCisKSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9vYmplY3Qtc3JjLW5vbmUtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQu
aHRtbAkocmV2aXNpb24gMjg1MjUxKQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFj
ZW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBv
bGljeSIgY29udGVudD0ib2JqZWN0LXNyYyAnbm9uZSciPgorPHNjcmlwdD4KK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5h
YmxlZCh0cnVlKTsKKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2aW9sYXRpb24iLCBkb25lLCBmYWxzZSk7Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPG9iamVjdCB3aWR0aD0iNDI1IiBoZWlnaHQ9IjM1
MCIgY2xhc3NpZD0iY2xzaWQ6ZDI3Y2RiNmUtYWU2ZC0xMWNmLTk2YjgtNDQ0NTUzNTQwMDAwIgor
ICAgIGNvZGViYXNlPSJodHRwOi8vZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2
ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiI3ZlcnNpb249NiwwLDQwLDAiPgorICAgIDxlbWJlZCB3
aWR0aD0iNDI1IiBoZWlnaHQ9IjM1MCIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxh
c2giIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vdi9VRjh1UjZaNktMYyI+Cis8L29iamVj
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWFsbG93cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNl
bWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJl
cGxhY2VtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjg1MjUxKQorKysgTGF5b3V0VGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1
YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIgQEAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dy55b3V0
dWJlLmNvbS9lbWJlZC9VRjh1UjZaNktMYworCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3MteW91dHViZS1wbHVnaW4t
cmVwbGFjZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3MteW91dHViZS1wbHVnaW4tcmVw
bGFjZW1lbnQuaHRtbAkocmV2aXNpb24gMjg1MjUxKQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2lu
LXJlcGxhY2VtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TZWN1
cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InBsdWdpbi10eXBlcyBhcHBsaWNhdGlvbi94LXNob2Nrd2F2
ZS1mbGFzaCI+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisK
K2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkKHRydWUpOworCisvLyBXYWl0aW5n
IGF0IGxlYXN0IDEwMG1zIHNlZW1zIHRvIGVuc3VyZSB0aGF0IFlvdVR1YmUgcGx1Z2luIHJlcGxh
Y2VtZW50IGhhcyBsb2FkZWQuCit3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30sIDEwMCk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPG9iamVjdCB3aWR0aD0iNDI1
IiBoZWlnaHQ9IjM1MCIgY2xhc3NpZD0iY2xzaWQ6ZDI3Y2RiNmUtYWU2ZC0xMWNmLTk2YjgtNDQ0
NTUzNTQwMDAwIgorICAgIGNvZGViYXNlPSJodHRwOi8vZG93bmxvYWQubWFjcm9tZWRpYS5jb20v
cHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiI3ZlcnNpb249NiwwLDQwLDAiPgor
ICAgIDxlbWJlZCB3aWR0aD0iNDI1IiBoZWlnaHQ9IjM1MCIgdHlwZT0iYXBwbGljYXRpb24veC1z
aG9ja3dhdmUtZmxhc2giIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vdi9VRjh1UjZaNktM
YyI+Cis8L29iamVjdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBs
dWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1
YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjg1MjUxKQorKysg
TGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMt
YmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGh0
dHBzOi8vd3d3LnlvdXR1YmUuY29tL3YvVUY4dVI2WjZLTGMgYmVjYXVzZSBpdHMgTUlNRSB0eXBl
IGRvZXMgbm90IGFwcGVhciBpbiB0aGUgcGx1Z2luLXR5cGVzIGRpcmVjdGl2ZSBvZiB0aGUgQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kuCisKSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBs
YWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxv
Y2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LXdpdGhvdXQtbWltZS10eXBlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjg1MjUxKQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2Vt
ZW50LXdpdGhvdXQtbWltZS10eXBlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGh0dHBzOi8vd3d3Lnlv
dXR1YmUuY29tL3YvVUY4dVI2WjZLTGMgYmVjYXVzZSBpdHMgTUlNRSB0eXBlIGRvZXMgbm90IGFw
cGVhciBpbiB0aGUgcGx1Z2luLXR5cGVzIGRpcmVjdGl2ZSBvZiB0aGUgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kuCisKSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC13aXRo
b3V0LW1pbWUtdHlwZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1y
ZXBsYWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS5odG1sCShyZXZpc2lvbiAyODUyNTEpCisrKyBM
YXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1i
bG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtd2l0aG91dC1taW1lLXR5cGUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVu
dD0icGx1Z2luLXR5cGVzIHRleHQvaHRtbCI+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkKHRy
dWUpOworCitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCJzZWN1cml0eXBvbGljeXZpb2xhdGlvbiIsIGRvbmUsIGZhbHNlKTsKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8b2JqZWN0IHdpZHRoPSI0MjUiIGhlaWdodD0iMzUwIiBjbGFz
c2lkPSJjbHNpZDpkMjdjZGI2ZS1hZTZkLTExY2YtOTZiOC00NDQ1NTM1NDAwMDAiCisgICAgY29k
ZWJhc2U9Imh0dHA6Ly9kb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMv
Zmxhc2gvc3dmbGFzaC5jYWIjdmVyc2lvbj02LDAsNDAsMCI+CisgICAgPGVtYmVkIHdpZHRoPSI0
MjUiIGhlaWdodD0iMzUwIiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3YvVUY4dVI2WjZL
TGMiPgorPC9vYmplY3Q+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1w
bHVnaW4tcmVwbGFjZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVn
aW4tcmVwbGFjZW1lbnQuaHRtbAkocmV2aXNpb24gMjg1MjUxKQorKysgTGF5b3V0VGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUt
cGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9InBsdWdpbi10eXBlcyB0ZXh0L2h0bWwiPgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFlvdVR1YmVGbGFzaFBs
dWdpblJlcGxhY2VtZW50RW5hYmxlZCh0cnVlKTsKKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30KKworZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VjdXJpdHlwb2xpY3l2aW9sYXRpb24i
LCBkb25lLCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPG9iamVjdCB3aWR0
aD0iNDI1IiBoZWlnaHQ9IjM1MCIgY2xhc3NpZD0iY2xzaWQ6ZDI3Y2RiNmUtYWU2ZC0xMWNmLTk2
YjgtNDQ0NTUzNTQwMDAwIgorICAgIGNvZGViYXNlPSJodHRwOi8vZG93bmxvYWQubWFjcm9tZWRp
YS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiI3ZlcnNpb249NiwwLDQw
LDAiPgorICAgIDxlbWJlZCB3aWR0aD0iNDI1IiBoZWlnaHQ9IjM1MCIgdHlwZT0iYXBwbGljYXRp
b24veC1zaG9ja3dhdmUtZmxhc2giIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vdi9VRjh1
UjZaNktMYyI+Cis8L29iamVjdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="480523"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453224</attachid>
            <date>2022-02-25 09:47:01 -0800</date>
            <delta_ts>2022-02-25 11:28:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237182-20220225094700.patch</filename>
            <type>text/plain</type>
            <size>74308</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5MDUxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAyLTI1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmUtYWRkIFlv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudCwgcmVtb3ZlZCBpbiByMjg1MjUyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxODIKKyAgICAgICAgPHJkYXI6
Ly84OTE0ODAyMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0czogc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9u
ZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbAorICAgICAgICAgICAgICAg
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1
YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIHNlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBs
YWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS5odG1sCisgICAgICAgICAgICAgICBzZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4t
cmVwbGFjZW1lbnQuaHRtbAorCisgICAgICAgIEl0cyByZW1vdmFsIGJyb2tlIHdlYnBhZ2VzIHRo
YXQgd29yayBpbiBDaHJvbWUgYW5kIEZpcmVmb3gsIHNvIGJhY2sgaXQgY29tZXMuCisKKyAgICAg
ICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2luczogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zLgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpwbHVnaW5TY3JpcHRPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RQbHVnaW5JbnRlcmZhY2U6OnZpc2l0Q2hp
bGRyZW5JbXBsKToKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRv
d1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0cmFyKToKKyAgICAgICAgKFdlYkNvcmU6
OnBsdWdpblJlcGxhY2VtZW50Rm9yVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0lu
RWxlbWVudDo6cmVxdWVzdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxl
bWVudDo6c2NyaXB0T2JqZWN0Rm9yUGx1Z2luUmVwbGFjZW1lbnQpOgorICAgICAgICAqIGh0bWwv
SFRNTFBsdWdJbkVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50
OjpwbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
U2hhZG93UHNldWRvSWRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1BzZXVkb0lkczo6
d2Via2l0UGx1Z2luUmVwbGFjZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NoYWRvd1Bz
ZXVkb0lkcy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1l
bnQuY3BwOgorICAgICAgICAqIGh0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQu
aDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisKIDIwMjItMDItMjUgIEFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtUYWJsZXNdIEluY29ycmVjdCB0YWJs
ZSBzaXppbmcgd2hlbiBjb2xncm91cCBjb21lcyBhZnRlciB0Ym9keQpJbmRleDogU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCShyZXZpc2lvbiAyOTA1MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CSh3b3JraW5nIGNvcHkpCkBAIC0yOTgsNiArMjk4LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbk9ic2Vy
dmVyLmgKICAgICBNb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25TdGF0ZS5oCiAKKyAgICBN
b2R1bGVzL3BsdWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAorICAgIE1vZHVsZXMvcGx1Z2lucy9Z
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaAorCiAgICAgTW9kdWxlcy9wdXNoLWFwaS9QdXNoQ3J5
cHRvLmgKICAgICBNb2R1bGVzL3B1c2gtYXBpL1B1c2hEYXRhYmFzZS5oCiAgICAgTW9kdWxlcy9w
dXNoLWFwaS9QdXNoTWVzc2FnZUNyeXB0by5oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQJ
KHJldmlzaW9uIDI5MDUxMykKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEwOSw2ICsxMDksNyBAQCBNb2R1bGVzL21vZGVsLWVsZW1lbnQvc2Nl
bmVraXQvU2NlbmVLaXRNCiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRN
b2RlbExvYWRlclVTRC5tbQogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0
TW9kZWxQbGF5ZXIubW0KIE1vZHVsZXMvcHVzaC1hcGkvY29jb2EvUHVzaENyeXB0b0NvY29hLmNw
cAorTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKIE1vZHVsZXMv
c3BlZWNoL2NvY29hL1NwZWVjaFJlY29nbml6ZXJDb2NvYS5tbQogTW9kdWxlcy9zcGVlY2gvY29j
b2EvV2ViU3BlZWNoUmVjb2duaXplclRhc2subW0KIE1vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNw
ZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbQpAQCAtMTgwLDYgKzE4MSw3IEBAIGVkaXRpbmcvbWFj
L1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbSAKIGVkaXRpbmcvbWFjL1RleHRVbmRvSW5zZXJ0
aW9uTWFya3VwTWFjLm1tCiBmaWxlYXBpL0ZpbGVDb2NvYS5tbQogaGlzdG9yeS9tYWMvSGlzdG9y
eUl0ZW1NYWMubW0KK2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCiBp
bnNwZWN0b3IvbWFjL1BhZ2VEZWJ1Z2dlck1hYy5tbQogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5
V2ViQXJjaGl2ZS5jcHAKIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmVNYWMubW0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9QbHVnaW5SZXBs
YWNlbWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lu
cy9QbHVnaW5SZXBsYWNlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiUmVuZGVyUHRyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
SlNWYWx1ZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWVJbmxpbmVzLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBKU0MgeworY2xh
c3MgSlNPYmplY3Q7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFBsdWdJ
bkVsZW1lbnQ7CitjbGFzcyBSZW5kZXJFbGVtZW50OworY2xhc3MgUmVuZGVyU3R5bGU7CitjbGFz
cyBSZW5kZXJUcmVlUG9zaXRpb247CitjbGFzcyBTZXR0aW5nczsKK2NsYXNzIFNoYWRvd1Jvb3Q7
CisKK2NsYXNzIFBsdWdpblJlcGxhY2VtZW50IDogcHVibGljIFJlZkNvdW50ZWQ8UGx1Z2luUmVw
bGFjZW1lbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QbHVnaW5SZXBsYWNlbWVudCgpID0g
ZGVmYXVsdDsKKworICAgIHN0cnVjdCBJbnN0YWxsUmVzdWx0IHsKKyAgICAgICAgYm9vbCBzdWNj
ZXNzOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBKU0M6OkpTVmFsdWUgc2NyaXB0T2Jq
ZWN0IHsgfTsKKyNlbmRpZgorICAgIH07CisKKyAgICB2aXJ0dWFsIEluc3RhbGxSZXN1bHQgaW5z
dGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QmKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgd2ls
bENyZWF0ZVJlbmRlcmVyKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQm
LCBSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSA9IDA7Cit9OworCit0
eXBlZGVmIFJlZjxQbHVnaW5SZXBsYWNlbWVudD4gKCpDcmVhdGVQbHVnaW5SZXBsYWNlbWVudCko
SFRNTFBsdWdJbkVsZW1lbnQmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKK3R5cGVkZWYgYm9vbCAoKlBsdWdpblJl
cGxhY2VtZW50U3VwcG9ydHNUeXBlKShjb25zdCBTdHJpbmcmKTsKK3R5cGVkZWYgYm9vbCAoKlBs
dWdpblJlcGxhY2VtZW50U3VwcG9ydHNGaWxlRXh0ZW5zaW9uKShjb25zdCBTdHJpbmcmKTsKK3R5
cGVkZWYgYm9vbCAoKlBsdWdpblJlcGxhY2VtZW50U3VwcG9ydHNVUkwpKGNvbnN0IFVSTCYpOwor
dHlwZWRlZiBib29sICgqUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkRm9yU2V0dGluZ3MpKGNvbnN0
IFNldHRpbmdzJik7CisKK2NsYXNzIFJlcGxhY2VtZW50UGx1Z2luIHsKK3B1YmxpYzoKKyAgICBS
ZXBsYWNlbWVudFBsdWdpbihDcmVhdGVQbHVnaW5SZXBsYWNlbWVudCBjb25zdHJ1Y3RvciwgUGx1
Z2luUmVwbGFjZW1lbnRTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlLCBQbHVnaW5SZXBsYWNlbWVu
dFN1cHBvcnRzRmlsZUV4dGVuc2lvbiBzdXBwb3J0c0ZpbGVFeHRlbnNpb24sIFBsdWdpblJlcGxh
Y2VtZW50U3VwcG9ydHNVUkwgc3VwcG9ydHNVUkwsIFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZEZv
clNldHRpbmdzIGlzRW5hYmxlZEJ5U2V0dGluZ3MpCisgICAgICAgIDogbV9jb25zdHJ1Y3Rvcihj
b25zdHJ1Y3RvcikKKyAgICAgICAgLCBtX3N1cHBvcnRzVHlwZShzdXBwb3J0c1R5cGUpCisgICAg
ICAgICwgbV9zdXBwb3J0c0ZpbGVFeHRlbnNpb24oc3VwcG9ydHNGaWxlRXh0ZW5zaW9uKQorICAg
ICAgICAsIG1fc3VwcG9ydHNVUkwoc3VwcG9ydHNVUkwpCisgICAgICAgICwgbV9pc0VuYWJsZWRC
eVNldHRpbmdzKGlzRW5hYmxlZEJ5U2V0dGluZ3MpCisgICAgeworICAgIH0KKworICAgIGV4cGxp
Y2l0IFJlcGxhY2VtZW50UGx1Z2luKGNvbnN0IFJlcGxhY2VtZW50UGx1Z2luJiBvdGhlcikKKyAg
ICAgICAgOiBtX2NvbnN0cnVjdG9yKG90aGVyLm1fY29uc3RydWN0b3IpCisgICAgICAgICwgbV9z
dXBwb3J0c1R5cGUob3RoZXIubV9zdXBwb3J0c1R5cGUpCisgICAgICAgICwgbV9zdXBwb3J0c0Zp
bGVFeHRlbnNpb24ob3RoZXIubV9zdXBwb3J0c0ZpbGVFeHRlbnNpb24pCisgICAgICAgICwgbV9z
dXBwb3J0c1VSTChvdGhlci5tX3N1cHBvcnRzVVJMKQorICAgICAgICAsIG1faXNFbmFibGVkQnlT
ZXR0aW5ncyhvdGhlci5tX2lzRW5hYmxlZEJ5U2V0dGluZ3MpCisgICAgeworICAgIH0KKworICAg
IFJlZjxQbHVnaW5SZXBsYWNlbWVudD4gY3JlYXRlKEhUTUxQbHVnSW5FbGVtZW50JiBlbGVtZW50
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBhcmFtVmFsdWVzKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cnVjdG9yKGVsZW1lbnQsIHBhcmFt
TmFtZXMsIHBhcmFtVmFsdWVzKTsgfQorICAgIGJvb2wgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNUeXBlKG1pbWVUeXBlKTsgfQor
ICAgIGJvb2wgc3VwcG9ydHNGaWxlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKSBj
b25zdCB7IHJldHVybiBtX3N1cHBvcnRzRmlsZUV4dGVuc2lvbihleHRlbnNpb24pOyB9CisgICAg
Ym9vbCBzdXBwb3J0c1VSTChjb25zdCBVUkwmIHVybCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0
c1VSTCh1cmwpOyB9CisgICAgYm9vbCBpc0VuYWJsZWRCeVNldHRpbmdzKGNvbnN0IFNldHRpbmdz
JiBzZXR0aW5ncykgY29uc3QgeyByZXR1cm4gbV9pc0VuYWJsZWRCeVNldHRpbmdzKHNldHRpbmdz
KTsgfTsKKworcHJpdmF0ZToKKyAgICBDcmVhdGVQbHVnaW5SZXBsYWNlbWVudCBtX2NvbnN0cnVj
dG9yOworICAgIFBsdWdpblJlcGxhY2VtZW50U3VwcG9ydHNUeXBlIG1fc3VwcG9ydHNUeXBlOwor
ICAgIFBsdWdpblJlcGxhY2VtZW50U3VwcG9ydHNGaWxlRXh0ZW5zaW9uIG1fc3VwcG9ydHNGaWxl
RXh0ZW5zaW9uOworICAgIFBsdWdpblJlcGxhY2VtZW50U3VwcG9ydHNVUkwgbV9zdXBwb3J0c1VS
TDsKKyAgICBQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWRGb3JTZXR0aW5ncyBtX2lzRW5hYmxlZEJ5
U2V0dGluZ3M7Cit9OworCit0eXBlZGVmIHZvaWQgKCpQbHVnaW5SZXBsYWNlbWVudFJlZ2lzdHJh
cikoY29uc3QgUmVwbGFjZW1lbnRQbHVnaW4mKTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVu
dC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIllvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oIgorCisj
aW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNp
bmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNp
bmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiWW91VHViZUVtYmVkU2hhZG93RWxlbWVu
dC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit2b2lkIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6cmVnaXN0ZXJQbHVnaW5S
ZXBsYWNlbWVudChQbHVnaW5SZXBsYWNlbWVudFJlZ2lzdHJhciByZWdpc3RyYXIpCit7CisgICAg
cmVnaXN0cmFyKFJlcGxhY2VtZW50UGx1Z2luKGNyZWF0ZSwgc3VwcG9ydHNNSU1FVHlwZSwgc3Vw
cG9ydHNGaWxlRXh0ZW5zaW9uLCBzdXBwb3J0c1VSTCwgaXNFbmFibGVkQnlTZXR0aW5ncykpOwor
fQorCitSZWY8UGx1Z2luUmVwbGFjZW1lbnQ+IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6Y3Jl
YXRlKEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW4sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJh
bU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgWW91VHViZVBsdWdpblJlcGxhY2VtZW50KHBsdWdpbiwgcGFyYW1OYW1l
cywgcGFyYW1WYWx1ZXMpKTsKK30KKworYm9vbCBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6OnN1
cHBvcnRzTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3sKKyAgICByZXR1cm4gZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobWltZVR5cGUsICJhcHBsaWNhdGlvbi94LXNob2Nr
d2F2ZS1mbGFzaCIpCisgICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1p
bWVUeXBlLCAiYXBwbGljYXRpb24vZnV0dXJlc3BsYXNoIik7Cit9CisKK2Jvb2wgWW91VHViZVBs
dWdpblJlcGxhY2VtZW50OjpzdXBwb3J0c0ZpbGVFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRl
bnNpb24pCit7CisgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGV4dGVu
c2lvbiwgInNwbCIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGV4dGVuc2lvbiwg
InN3ZiIpOworfQorCitZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6OllvdVR1YmVQbHVnaW5SZXBs
YWNlbWVudChIVE1MUGx1Z0luRWxlbWVudCYgcGx1Z2luLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorICAgIDogbV9w
YXJlbnRFbGVtZW50KHBsdWdpbikKK3sKKyAgICBBU1NFUlQocGFyYW1OYW1lcy5zaXplKCkgPT0g
cGFyYW1WYWx1ZXMuc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtTmFt
ZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fYXR0cmlidXRlcy5hZGQocGFyYW1OYW1lc1tpXSwg
cGFyYW1WYWx1ZXNbaV0pOworfQorCitSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gWW91VHViZVBs
dWdpblJlcGxhY2VtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQm
IHBsdWdpbiwgUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBp
bnNlcnRpb25Qb3NpdGlvbikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHBsdWdpbiwgbV9wYXJlbnRF
bGVtZW50ID09ICZwbHVnaW4pOworCisgICAgaWYgKCFtX2VtYmVkU2hhZG93RWxlbWVudCkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisgICAgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVt
ZW50LT5jcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGTW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0
aW9uKTsKK30KKworYXV0byBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNl
bWVudChTaGFkb3dSb290JiByb290KSAtPiBJbnN0YWxsUmVzdWx0Cit7CisgICAgbV9lbWJlZFNo
YWRvd0VsZW1lbnQgPSBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50OjpjcmVhdGUobV9wYXJlbnRF
bGVtZW50LT5kb2N1bWVudCgpKTsKKworICAgIHJvb3QuYXBwZW5kQ2hpbGQoKm1fZW1iZWRTaGFk
b3dFbGVtZW50KTsKKworICAgIGF1dG8gaWZyYW1lRWxlbWVudCA9IEhUTUxJRnJhbWVFbGVtZW50
OjpjcmVhdGUoSFRNTE5hbWVzOjppZnJhbWVUYWcsIG1fcGFyZW50RWxlbWVudC0+ZG9jdW1lbnQo
KSk7CisgICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygid2lkdGgiKSkKKyAgICAgICAgaWZy
YW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6
OndpZHRoQXR0ciwgQXRvbVN0cmluZygiMTAwJSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7CisKKyAgICBjb25zdCBhdXRvJiBoZWlnaHRWYWx1ZSA9IG1fYXR0cmlidXRlcy5m
aW5kKCJoZWlnaHQiKTsKKyAgICBpZiAoaGVpZ2h0VmFsdWUgIT0gbV9hdHRyaWJ1dGVzLmVuZCgp
KSB7CisgICAgICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnN0eWxl
QXR0ciwgQXRvbVN0cmluZygibWF4LWhlaWdodDogMTAwJSIsIEF0b21TdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKSk7CisgICAgICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpoZWlnaHRBdHRyLCBoZWlnaHRWYWx1ZS0+dmFs
dWUpOworICAgIH0KKworICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oSFRNTE5hbWVzOjpzcmNBdHRyLCB5b3VUdWJlVVJMKG1fYXR0cmlidXRlcy5n
ZXQoInNyYyIpKSk7CisgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihIVE1MTmFtZXM6OmZyYW1lYm9yZGVyQXR0ciwgQXRvbVN0cmluZygiMCIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgCisgICAgLy8gRGlzYWJsZSBm
cmFtZSBmbGF0dGVuaW5nIGZvciB0aGlzIGlmcmFtZS4KKyAgICBpZnJhbWVFbGVtZW50LT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c2Nyb2xsaW5nQXR0ciwg
QXRvbVN0cmluZygibm8iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAg
IG1fZW1iZWRTaGFkb3dFbGVtZW50LT5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKworICAg
IHJldHVybiB7IHRydWUgfTsKK30KKyAgICAKK3N0YXRpYyBVUkwgY3JlYXRlWW91VHViZVVSTChT
dHJpbmdWaWV3IHZpZGVvSUQsIFN0cmluZ1ZpZXcgdGltZUlEKQoreworICAgIEFTU0VSVCghdmlk
ZW9JRC5pc0VtcHR5KCkpOworICAgIEFTU0VSVCh2aWRlb0lEICE9ICIvIik7CisgICAgcmV0dXJu
IFVSTChVUkwoKSwgbWFrZVN0cmluZygieW91dHViZToiLCB2aWRlb0lELCB0aW1lSUQuaXNFbXB0
eSgpID8gIiIgOiAidD0iLCB0aW1lSUQpKTsKK30KKworc3RhdGljIFlvdVR1YmVQbHVnaW5SZXBs
YWNlbWVudDo6S2V5VmFsdWVNYXAgcXVlcnlLZXlzQW5kVmFsdWVzKFN0cmluZ1ZpZXcgcXVlcnlT
dHJpbmcpCit7CisgICAgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpLZXlWYWx1ZU1hcCBxdWVy
eURpY3Rpb25hcnk7CisgICAgCisgICAgc2l6ZV90IHF1ZXJ5TGVuZ3RoID0gcXVlcnlTdHJpbmcu
bGVuZ3RoKCk7CisgICAgaWYgKCFxdWVyeUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHF1ZXJ5RGlj
dGlvbmFyeTsKKyAgICAKKyAgICBzaXplX3QgZXF1YWxTZWFyY2hMb2NhdGlvbiA9IDA7CisgICAg
c2l6ZV90IGVxdWFsU2VhcmNoTGVuZ3RoID0gcXVlcnlMZW5ndGg7CisgICAgCisgICAgd2hpbGUg
KGVxdWFsU2VhcmNoTG9jYXRpb24gPCBxdWVyeUxlbmd0aCAtIDEgJiYgZXF1YWxTZWFyY2hMZW5n
dGgpIHsKKyAgICAgICAgCisgICAgICAgIC8vIFNlYXJjaCBmb3IgIj0iLgorICAgICAgICBzaXpl
X3QgZXF1YWxMb2NhdGlvbiA9IHF1ZXJ5U3RyaW5nLmZpbmQoJz0nLCBlcXVhbFNlYXJjaExvY2F0
aW9uKTsKKyAgICAgICAgaWYgKGVxdWFsTG9jYXRpb24gPT0gbm90Rm91bmQpCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgCisgICAgICAgIHNpemVfdCBpbmRleEFmdGVyRXF1YWwgPSBlcXVh
bExvY2F0aW9uICsgMTsKKyAgICAgICAgaWYgKGluZGV4QWZ0ZXJFcXVhbCA+IHF1ZXJ5TGVuZ3Ro
IC0gMSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgLy8gR2V0IHRoZSBr
ZXkgYmVmb3JlIHRoZSAiPSIuCisgICAgICAgIHNpemVfdCBrZXlMb2NhdGlvbiA9IGVxdWFsU2Vh
cmNoTG9jYXRpb247CisgICAgICAgIHNpemVfdCBrZXlMZW5ndGggPSBlcXVhbExvY2F0aW9uIC0g
ZXF1YWxTZWFyY2hMb2NhdGlvbjsKKyAgICAgICAgCisgICAgICAgIC8vIFNlYWNoIGZvciB0aGUg
YW1wZXJzYW5kLgorICAgICAgICBzaXplX3QgYW1wZXJzYW5kTG9jYXRpb24gPSBxdWVyeVN0cmlu
Zy5maW5kKCcmJywgaW5kZXhBZnRlckVxdWFsKTsKKyAgICAgICAgCisgICAgICAgIC8vIEdldCB0
aGUgdmFsdWUgYWZ0ZXIgdGhlICI9IiwgYmVmb3JlIHRoZSBhbXBlcnNhbmQuCisgICAgICAgIHNp
emVfdCB2YWx1ZUxvY2F0aW9uID0gaW5kZXhBZnRlckVxdWFsOworICAgICAgICBzaXplX3QgdmFs
dWVMZW5ndGg7CisgICAgICAgIGlmIChhbXBlcnNhbmRMb2NhdGlvbiAhPSBub3RGb3VuZCkKKyAg
ICAgICAgICAgIHZhbHVlTGVuZ3RoID0gYW1wZXJzYW5kTG9jYXRpb24gLSBpbmRleEFmdGVyRXF1
YWw7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbHVlTGVuZ3RoID0gcXVlcnlMZW5ndGgg
LSBpbmRleEFmdGVyRXF1YWw7CisgICAgICAgIAorICAgICAgICAvLyBTYXZlIHRoZSBrZXkgYW5k
IHRoZSB2YWx1ZS4KKyAgICAgICAgaWYgKGtleUxlbmd0aCAmJiB2YWx1ZUxlbmd0aCkgeworICAg
ICAgICAgICAgU3RyaW5nIGtleSA9IHF1ZXJ5U3RyaW5nLnN1YnN0cmluZyhrZXlMb2NhdGlvbiwg
a2V5TGVuZ3RoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOworICAgICAgICAgICAgU3RyaW5n
IHZhbHVlID0gcXVlcnlTdHJpbmcuc3Vic3RyaW5nKHZhbHVlTG9jYXRpb24sIHZhbHVlTGVuZ3Ro
KS50b1N0cmluZygpOworICAgICAgICAgICAgdmFsdWUucmVwbGFjZSgnKycsICcgJyk7CisKKyAg
ICAgICAgICAgIGlmICgha2V5LmlzRW1wdHkoKSAmJiAhdmFsdWUuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIHF1ZXJ5RGljdGlvbmFyeS5hZGQoa2V5LCB2YWx1ZSk7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGlmIChhbXBlcnNhbmRMb2NhdGlvbiA9PSBub3RGb3VuZCkKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgLy8gQ29udGludWUgc2VhcmNoaW5nIGFm
dGVyIHRoZSBhbXBlcnNhbmQuCisgICAgICAgIHNpemVfdCBpbmRleEFmdGVyQW1wZXJzYW5kID0g
YW1wZXJzYW5kTG9jYXRpb24gKyAxOworICAgICAgICBlcXVhbFNlYXJjaExvY2F0aW9uID0gaW5k
ZXhBZnRlckFtcGVyc2FuZDsKKyAgICAgICAgZXF1YWxTZWFyY2hMZW5ndGggPSBxdWVyeUxlbmd0
aCAtIGluZGV4QWZ0ZXJBbXBlcnNhbmQ7CisgICAgfQorICAgIAorICAgIHJldHVybiBxdWVyeURp
Y3Rpb25hcnk7Cit9CisgICAgCitzdGF0aWMgYm9vbCBpc1lvdVR1YmVVUkwoY29uc3QgVVJMJiB1
cmwpCit7CisgICAgYXV0byBob3N0TmFtZSA9IHVybC5ob3N0KCk7CisgICAgcmV0dXJuIGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhvc3ROYW1lLCAibS55b3V0dWJlLmNvbSIpCisgICAg
ICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhvc3ROYW1lLCAieW91dHUuYmUi
KQorICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShob3N0TmFtZSwgInd3
dy55b3V0dWJlLmNvbSIpCisgICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KGhvc3ROYW1lLCAieW91dHViZS5jb20iKQorICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShob3N0TmFtZSwgInd3dy55b3V0dWJlLW5vY29va2llLmNvbSIpCisgICAgICAg
IHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhvc3ROYW1lLCAieW91dHViZS1ub2Nv
b2tpZS5jb20iKTsKK30KKworc3RhdGljIGNvbnN0IFN0cmluZyYgdmFsdWVGb3JLZXkoY29uc3Qg
WW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpLZXlWYWx1ZU1hcCYgZGljdGlvbmFyeSwgY29uc3Qg
U3RyaW5nJiBrZXkpCit7CisgICAgY29uc3QgYXV0byYgdmFsdWUgPSBkaWN0aW9uYXJ5LmZpbmQo
a2V5KTsKKyAgICBpZiAodmFsdWUgPT0gZGljdGlvbmFyeS5lbmQoKSkKKyAgICAgICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7CisKKyAgICByZXR1cm4gdmFsdWUtPnZhbHVlOworfQorCitzdGF0aWMg
VVJMIHByb2Nlc3NBbmRDcmVhdGVZb3VUdWJlVVJMKGNvbnN0IFVSTCYgdXJsLCBib29sJiBpc1lv
dVR1YmVTaG9ydGVuZWRVUkwsIFN0cmluZyYgb3V0UGF0aEFmdGVyRmlyc3RBbXBlcnNhbmQpCit7
CisgICAgaWYgKCF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQorICAgICAgICByZXR1cm4g
VVJMKCk7CisKKyAgICAvLyBCYWlsIG91dCBlYXJseSBpZiB3ZSBhcmVuJ3QgZXZlbiBvbiB3d3cu
eW91dHViZS5jb20gb3IgeW91dHViZS5jb20uCisgICAgaWYgKCFpc1lvdVR1YmVVUkwodXJsKSkK
KyAgICAgICAgcmV0dXJuIFVSTCgpOworCisgICAgYXV0byBob3N0TmFtZSA9IHVybC5ob3N0KCk7
CisgICAgYm9vbCBpc1lvdVR1YmVNb2JpbGVXZWJBcHBVUkwgPSBlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShob3N0TmFtZSwgIm0ueW91dHViZS5jb20iKTsKKyAgICBpc1lvdVR1YmVTaG9y
dGVuZWRVUkwgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShob3N0TmFtZSwgInlvdXR1
LmJlIik7CisKKyAgICAvLyBTaG9ydCBVUkwgb2YgdGhlIGZvcm06IGh0dHA6Ly95b3V0dS5iZS92
MWQzMDFECisgICAgaWYgKGlzWW91VHViZVNob3J0ZW5lZFVSTCkgeworICAgICAgICBhdXRvIHZp
ZGVvSUQgPSB1cmwubGFzdFBhdGhDb21wb25lbnQoKTsKKyAgICAgICAgaWYgKHZpZGVvSUQuaXNF
bXB0eSgpIHx8IHZpZGVvSUQgPT0gIi8iKQorICAgICAgICAgICAgcmV0dXJuIFVSTCgpOworICAg
ICAgICByZXR1cm4gY3JlYXRlWW91VHViZVVSTCh2aWRlb0lELCB7IH0pOworICAgIH0KKworICAg
IGF1dG8gcGF0aCA9IHVybC5wYXRoKCk7CisgICAgYXV0byBxdWVyeSA9IHVybC5xdWVyeSgpOwor
ICAgIGF1dG8gZnJhZ21lbnQgPSB1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCk7CisKKyAgICAvLyBP
biB0aGUgWW91VHViZSBtb2JpbGUgd2ViIGFwcCwgdGhlIHBhdGggYW5kIHF1ZXJ5IHN0cmluZyBh
cmUgcHV0IGludG8gdGhlCisgICAgLy8gZnJhZ21lbnQgc28gdGhhdCBvbmUgd2ViIHBhZ2UgaXMg
b25seSBldmVyIGxvYWRlZCAoc2VlIDxyZGFyOi8vcHJvYmxlbS85NTUwNjM5PikuCisgICAgaWYg
KGlzWW91VHViZU1vYmlsZVdlYkFwcFVSTCkgeworICAgICAgICBzaXplX3QgbG9jYXRpb24gPSBm
cmFnbWVudC5maW5kKCc/Jyk7CisgICAgICAgIGlmIChsb2NhdGlvbiA9PSBub3RGb3VuZCkgewor
ICAgICAgICAgICAgcGF0aCA9IGZyYWdtZW50OworICAgICAgICAgICAgcXVlcnkgPSBlbXB0eVN0
cmluZygpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGF0aCA9IGZyYWdtZW50LnN1
YnN0cmluZygwLCBsb2NhdGlvbik7CisgICAgICAgICAgICBxdWVyeSA9IGZyYWdtZW50LnN1YnN0
cmluZyhsb2NhdGlvbiArIDEpOworICAgICAgICB9CisgICAgICAgIGZyYWdtZW50ID0gZW1wdHlT
dHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHBhdGgsICIvd2F0Y2giKSkgeworICAgICAgICBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgY29uc3QgYXV0byYgcXVlcnlEaWN0aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFs
dWVzKHF1ZXJ5KTsKKyAgICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVl
cnlEaWN0aW9uYXJ5LCAidiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIXZpZGVv
SUQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnREaWN0
aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHVybC5mcmFnbWVudElkZW50aWZpZXIoKSk7Cisg
ICAgICAgICAgICAgICAgU3RyaW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50RGljdGlv
bmFyeSwgInQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlWW91VHViZVVSTCh2aWRl
b0lELCB0aW1lSUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICAvLyBNYXkgYmUgYSBuZXctc3R5bGUgbGluayAoc2VlIDxyZGFyOi8vcHJvYmxlbS83NzMzNjky
PikuCisgICAgICAgIGlmIChmcmFnbWVudC5zdGFydHNXaXRoKCchJykpIHsKKyAgICAgICAgICAg
IHF1ZXJ5ID0gZnJhZ21lbnQuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mIHF1
ZXJ5RGljdGlvbmFyeSA9IHF1ZXJ5S2V5c0FuZFZhbHVlcyhxdWVyeSk7CisgICAgICAgICAgICAg
ICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ2Iik7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCF2aWRlb0lELmlzRW1wdHkoKSkg
eworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkocXVlcnlE
aWN0aW9uYXJ5LCAidCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlWW91VHVi
ZVVSTCh2aWRlb0lELCB0aW1lSUQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJ
Q2FzZShwYXRoLCAiL3YvIikgfHwgc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShw
YXRoLCAiL2UvIikpIHsKKyAgICAgICAgU3RyaW5nVmlldyB2aWRlb0lEOworICAgICAgICBTdHJp
bmdWaWV3IHBhdGhBZnRlckZpcnN0QW1wZXJzYW5kOworCisgICAgICAgIGF1dG8gbGFzdFBhdGhD
b21wb25lbnQgPSB1cmwubGFzdFBhdGhDb21wb25lbnQoKTsKKyAgICAgICAgc2l6ZV90IGFtcGVy
c2FuZExvY2F0aW9uID0gbGFzdFBhdGhDb21wb25lbnQuZmluZCgnJicpOworICAgICAgICBpZiAo
YW1wZXJzYW5kTG9jYXRpb24gIT0gbm90Rm91bmQpIHsKKyAgICAgICAgICAgIC8vIFNvbWUgVVJM
cyB3ZSBjYXJlIGFib3V0IHVzZSAmIGluIHBsYWNlIG9mID8gZm9yIHRoZSBmaXJzdCBxdWVyeSBw
YXJhbWV0ZXIuCisgICAgICAgICAgICB2aWRlb0lEID0gbGFzdFBhdGhDb21wb25lbnQuc3Vic3Ry
aW5nKDAsIGFtcGVyc2FuZExvY2F0aW9uKTsKKyAgICAgICAgICAgIHBhdGhBZnRlckZpcnN0QW1w
ZXJzYW5kID0gbGFzdFBhdGhDb21wb25lbnQuc3Vic3RyaW5nKGFtcGVyc2FuZExvY2F0aW9uICsg
MSwgbGFzdFBhdGhDb21wb25lbnQubGVuZ3RoKCkgLSBhbXBlcnNhbmRMb2NhdGlvbik7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgdmlkZW9JRCA9IGxhc3RQYXRoQ29tcG9uZW50OworCisg
ICAgICAgIGlmICghdmlkZW9JRC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIG91dFBhdGhBZnRl
ckZpcnN0QW1wZXJzYW5kID0gcGF0aEFmdGVyRmlyc3RBbXBlcnNhbmQudG9TdHJpbmcoKTsKKyAg
ICAgICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJMKHZpZGVvSUQsIGVtcHR5U3RyaW5nKCkp
OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFVSTCgpOworfQorCitTdHJpbmcgWW91
VHViZVBsdWdpblJlcGxhY2VtZW50Ojp5b3VUdWJlVVJMKGNvbnN0IFN0cmluZyYgc3JjU3RyaW5n
KQoreworICAgIFVSTCBzcmNVUkwgPSBtX3BhcmVudEVsZW1lbnQtPmRvY3VtZW50KCkuY29tcGxl
dGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNyY1N0cmluZykpOworICAg
IHJldHVybiB5b3VUdWJlVVJMRnJvbUFic29sdXRlVVJMKHNyY1VSTCwgc3JjU3RyaW5nKTsKK30K
KworU3RyaW5nIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6eW91VHViZVVSTEZyb21BYnNvbHV0
ZVVSTChjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiBzcmNTdHJpbmcpCit7CisgICAg
Ym9vbCBpc1lvdVR1YmVTaG9ydGVuZWRVUkwgPSBmYWxzZTsKKyAgICBTdHJpbmcgcG9zc2libHlN
YWxmb3JtZWRRdWVyeTsKKyAgICBVUkwgeW91VHViZVVSTCA9IHByb2Nlc3NBbmRDcmVhdGVZb3VU
dWJlVVJMKHNyY1VSTCwgaXNZb3VUdWJlU2hvcnRlbmVkVVJMLCBwb3NzaWJseU1hbGZvcm1lZFF1
ZXJ5KTsKKyAgICBpZiAoc3JjVVJMLmlzRW1wdHkoKSB8fCB5b3VUdWJlVVJMLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIHNyY1N0cmluZzsKKworICAgIC8vIFRyYW5zZm9ybSB0aGUgeW91dHVi
ZVVSTCAoeW91dHViZTpWaWRlb0lEKSB0byBpZnJhbWUgZW1iZWQgdXJsIHdoaWNoIGhhcyB0aGUg
Zm9ybWF0OiBodHRwOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL1ZpZGVvSUQKKyAgICBhdXRvIHNy
Y1BhdGggPSBzcmNVUkwucGF0aCgpOworICAgIGNvbnN0IFN0cmluZyYgdmlkZW9JRCA9IHlvdVR1
YmVVUkwuc3RyaW5nKCkuc3Vic3RyaW5nKHlvdVR1YmVVUkwucHJvdG9jb2woKS5sZW5ndGgoKSAr
IDEpOworICAgIHNpemVfdCBsb2NhdGlvbk9mVmlkZW9JREluUGF0aCA9IHNyY1BhdGguZmluZCh2
aWRlb0lEKTsKKworICAgIHNpemVfdCBsb2NhdGlvbk9mUGF0aEJlZm9yZVZpZGVvSUQgPSBub3RG
b3VuZDsKKyAgICBpZiAobG9jYXRpb25PZlZpZGVvSURJblBhdGggIT0gbm90Rm91bmQpIHsKKyAg
ICAgICAgQVNTRVJUKGxvY2F0aW9uT2ZWaWRlb0lESW5QYXRoKTsKKyAgICAKKyAgICAgICAgLy8g
RnJvbSB0aGUgb3JpZ2luYWwgVVJMLCB3ZSBuZWVkIHRvIGdldCB0aGUgcGFydCBiZWZvcmUgL3Bh
dGgvVmlkZW9JZC4KKyAgICAgICAgbG9jYXRpb25PZlBhdGhCZWZvcmVWaWRlb0lEID0gU3RyaW5n
VmlldyhzcmNTdHJpbmcpLmZpbmQoc3JjUGF0aC5zdWJzdHJpbmcoMCwgbG9jYXRpb25PZlZpZGVv
SURJblBhdGgpKTsKKyAgICB9IGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNl
KHNyY1BhdGgsICIvd2F0Y2giKSkgeworICAgICAgICAvLyBGcm9tIHRoZSBvcmlnaW5hbCBVUkws
IHdlIG5lZWQgdG8gZ2V0IHRoZSBwYXJ0IGJlZm9yZSAvd2F0Y2gvIyF2PVZpZGVvSUQKKyAgICAg
ICAgLy8gRklYTUU6IFNob3VsZG4ndCB0aGlzIGJlIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmU/Cisg
ICAgICAgIGxvY2F0aW9uT2ZQYXRoQmVmb3JlVmlkZW9JRCA9IHNyY1N0cmluZy5maW5kKCIvd2F0
Y2giKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIHNyY1N0cmluZzsKKworICAgIEFTU0VS
VChsb2NhdGlvbk9mUGF0aEJlZm9yZVZpZGVvSUQgIT0gbm90Rm91bmQpOworCisgICAgYXV0byBz
cmNVUkxQcmVmaXggPSBTdHJpbmdWaWV3KHNyY1N0cmluZykuc3Vic3RyaW5nKDAsIGxvY2F0aW9u
T2ZQYXRoQmVmb3JlVmlkZW9JRCk7CisgICAgYXV0byBxdWVyeSA9IHNyY1VSTC5xdWVyeSgpOwor
CisgICAgLy8gSWYgdGhlIFVSTCBoYXMgbm8gcXVlcnksIHVzZSB0aGUgcG9zc2libHkgbWFsZm9y
bWVkIHF1ZXJ5IHdlIGZvdW5kLgorICAgIGlmIChxdWVyeS5pc0VtcHR5KCkpCisgICAgICAgIHF1
ZXJ5ID0gcG9zc2libHlNYWxmb3JtZWRRdWVyeTsKKworICAgIC8vIEFwcGVuZCB0aGUgcXVlcnkg
c3RyaW5nIGlmIGl0IGlzIHZhbGlkLgorICAgIHJldHVybiBtYWtlU3RyaW5nKAorICAgICAgICBp
c1lvdVR1YmVTaG9ydGVuZWRVUkwgPyAiaHR0cDovL3d3dy55b3V0dWJlLmNvbSIgOiBzcmNVUkxQ
cmVmaXgsCisgICAgICAgICIvZW1iZWQvIiwKKyAgICAgICAgdmlkZW9JRCwKKyAgICAgICAgcXVl
cnkuaXNFbXB0eSgpID8gIiIgOiAiPyIsCisgICAgICAgIHF1ZXJ5CisgICAgKTsKK30KKyAgICAK
K2Jvb2wgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpzdXBwb3J0c1VSTChjb25zdCBVUkwmIHVy
bCkKK3sKKyAgICByZXR1cm4gaXNZb3VUdWJlVVJMKHVybCk7Cit9CisKK2Jvb2wgWW91VHViZVBs
dWdpblJlcGxhY2VtZW50Ojppc0VuYWJsZWRCeVNldHRpbmdzKGNvbnN0IFNldHRpbmdzJiBzZXR0
aW5ncykKK3sKKyAgICByZXR1cm4gc2V0dGluZ3MueW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1l
bnRFbmFibGVkKCk7Cit9CisgICAgCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bs
dWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiUGx1Z2luUmVwbGFjZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgWW91VHVi
ZUVtYmVkU2hhZG93RWxlbWVudDsKKworY2xhc3MgWW91VHViZVBsdWdpblJlcGxhY2VtZW50IGZp
bmFsIDogcHVibGljIFBsdWdpblJlcGxhY2VtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9p
ZCByZWdpc3RlclBsdWdpblJlcGxhY2VtZW50KFBsdWdpblJlcGxhY2VtZW50UmVnaXN0cmFyKTsK
KworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gS2V5VmFsdWVNYXA7CisKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIHlvdVR1YmVVUkxGcm9tQWJzb2x1dGVVUkwo
Y29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgc3JjU3RyaW5nKTsKKworcHJpdmF0ZToK
KyAgICBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQoSFRNTFBsdWdJbkVsZW1lbnQmLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFs
dWVzKTsKKyAgICBzdGF0aWMgUmVmPFBsdWdpblJlcGxhY2VtZW50PiBjcmVhdGUoSFRNTFBsdWdJ
bkVsZW1lbnQmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c01JTUVUeXBl
KGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmlsZUV4dGVuc2lvbihj
b25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1VSTChjb25zdCBVUkwmKTsK
KyAgICBzdGF0aWMgYm9vbCBpc0VuYWJsZWRCeVNldHRpbmdzKGNvbnN0IFNldHRpbmdzJik7CisK
KyAgICBJbnN0YWxsUmVzdWx0IGluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290JikgZmluYWw7
CisKKyAgICBTdHJpbmcgeW91VHViZVVSTChjb25zdCBTdHJpbmcmIHJhd1VSTCk7CisKKyAgICBi
b29sIHdpbGxDcmVhdGVSZW5kZXJlcigpIGZpbmFsIHsgcmV0dXJuIG1fZW1iZWRTaGFkb3dFbGVt
ZW50OyB9CisgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihIVE1MUGx1Z0luRWxlbWVudCYsIFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIGZpbmFsOworCisgICAgV2Vha1B0cjxIVE1MUGx1Z0luRWxlbWVudD4gbV9wYXJlbnRF
bGVtZW50OworICAgIFJlZlB0cjxZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50PiBtX2VtYmVkU2hh
ZG93RWxlbWVudDsKKyAgICBLZXlWYWx1ZU1hcCBtX2F0dHJpYnV0ZXM7Cit9OworCit9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAyOTA1MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsxMTIsNyBAQAogCQkwNzI3
N0U1NTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ5MTdEMDE4Q0Mw
MDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oICovOyB9OwogCQkwNzI4ODBEMTIw
MTBGMUY2MDA3MUIyNTUgLyogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjg4MEQwMjAxMEVFRDcwMDcx
QjI1NSAvKiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MkE3MDQwMUQ2RThGNjIwMERGMEFGQyAv
KiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzJBNzAzRTFENkU4RjYyMDBERjBBRkMgLyogT3ZlcmNvbnN0
cmFpbmVkRXJyb3JFdmVudC5oICovOyB9OworCQkwNzJBRTFFNTE4M0MwNzQxMDAwQTU5ODggLyog
UGx1Z2luUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3MkFFMURGMTgzQzA3NDEwMDBBNTk4OCAvKiBQbHVnaW5SZXBsYWNlbWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3Mzc5
NERFMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NERDMTlFRTJDNTIwMEU1
QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuaCAqLzsgfTsKIAkJMDczNzk0RTYxOUVFMkZG
MjAwRTVBMDQ1IC8qIEpTUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RTQxOUVFMkZGMjAwRTVBMDQ1IC8qIEpTUlRD
Q29uZmlndXJhdGlvbi5oICovOyB9OwogCQkwNzM3OTRFQzE5RUUzNDFFMDBFNUEwNDUgLyogSlNS
VENJY2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3Mzc5NEVBMTlFRTM0MUUwMEU1QTA0NSAvKiBKU1JUQ0ljZVNlcnZlci5oICovOyB9OwpA
QCAtMjM5Miw2ICsyMzkzLDcgQEAKIAkJN0E0NTAzMzAxOERCNzE3MjAwMzc3QjM0IC8qIEJ1ZmZl
cmVkTGluZVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0E0NTAzMkUxOERCNzE3MjAwMzc3QjM0IC8qIEJ1ZmZlcmVkTGluZVJlYWRlci5oICov
OyB9OwogCQk3QTU0ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlzdG9yeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1NDg1N0UxNEUw
MkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCAqLzsgfTsKIAkJN0E1NDg4MTcxNEU0
MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E1NDg4MTUxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBh
dGNoU3VwcG9ydC5oICovOyB9OworCQk3QTU1MTVGNTE5MTgzMEEzMDA5Njg3RDIgLyogWW91VHVi
ZVBsdWdpblJlcGxhY2VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QTU1MTVGMzE5MTgzMEEzMDA5Njg3RDIgLyogWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0E1Njk5NzAyMDg2QzYxOTAwMEUwNDMzIC8qIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFBy
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTU2
OTk2RTIwODZDNjE4MDAwRTA0MzMgLyogQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QTY3NEJE
QzBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTY3NEJEQTBGOUVCRjRFMDA2Q0Yw
OTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi87IH07CiAJCTdBOTI5Q0E3MUM1OThBQTkw
MDRERjIyNiAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTkyOUNBMjFDNTk4Mzc4MDA0REYyMjYgLyogUmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0zNDg5LDYgKzM0OTEsNyBAQAogCQlBNTJCMzQ4RjFGQTNCREE2MDA4
QjYyNDYgLyogU2VydmljZVdvcmtlckRlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MkIzNDhDMUZBM0JENzkwMDhCNjI0NiAvKiBTZXJ2
aWNlV29ya2VyRGVidWdnYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUE1MkIzNDk2MUZBM0UyOTAwMDhCNjI0NiAvKiBTZXJ2aWNlV29ya2Vy
SW5zcGVjdG9yUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1MkIzNDkzMUZBM0UyODYwMDhCNjI0NiAvKiBTZXJ2aWNlV29ya2VySW5zcGVjdG9y
UHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNTJCMzQ5RTFGQTQxNzAzMDA4QjYyNDYgLyogV29ya2VyRGVidWdnZXJQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUyQjM0OUMxRkE0MTZG
ODAwOEI2MjQ2IC8qIFdvcmtlckRlYnVnZ2VyUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNTQxNkZFNjE4ODEwRUY4MDAwOUZDNUYgLyog
WW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTU0MTZGRTQxODgxMEVGODAwMDlGQzVGIC8qIFlvdVR1YmVFbWJl
ZFNoYWRvd0VsZW1lbnQuaCAqLzsgfTsKIAkJQTU0QTBDNjIxREI3RjhDMTAwMTdBOTBCIC8qIFdv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1NEEwQzYwMURCN0Y4QjcwMDE3QTkwQiAvKiBXb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmggKi87IH07CiAJCUE1NEEwQzY2MURCODA1MzYwMDE3QTkwQiAvKiBXb3Jr
ZXJEZWJ1Z2dlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTU0QTBDNjQxREI4MDUzMjAwMTdBOTBCIC8qIFdvcmtlckRlYnVnZ2VyLmggKi87IH07CiAJ
CUE1NEEwQzY4MURCODA3RDkwMDE3QTkwQiAvKiBXb3JrZXJUb1BhZ2VGcm9udGVuZENoYW5uZWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NEEwQzY3
MURCODA3RDAwMDE3QTkwQiAvKiBXb3JrZXJUb1BhZ2VGcm9udGVuZENoYW5uZWwuaCAqLzsgfTsK
QEAgLTYwNTUsNiArNjA1OCw3IEBACiAJCTA3Mjg4MEQwMjAxMEVFRDcwMDcxQjI1NSAvKiBSZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzJBNzAzRTFENkU4RjYyMDBERjBBRkMgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPdmVyY29uc3RyYWluZWRFcnJv
ckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkE3MDNGMUQ2RThGNjIw
MERGMEFGQyAvKiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDcyQUUxREYxODNDMDc0MTAwMEE1OTg4IC8qIFBsdWdpblJlcGxhY2VtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblJlcGxhY2VtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MkNBODYwMTZDQjREQzMwMDhBRTEzMSAv
KiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzJEQkJGQjI1REIzOEJDMDBBMTM1MEUgLyogTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcyREJDMDMyNURDNkJEMzAwQTEzNTBFIC8qIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTUxMiw2ICsxMTUxNiw4IEBACiAJCTdB
NTQ4NTdFMTRFMDJENTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckhpc3RvcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0E1NDg4MTUxNEU0MzJBMTAwNkFFMDVBIC8qIERPTVBhdGNoU3VwcG9y
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01QYXRjaFN1cHBvcnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E1NDg4MTYxNEU0MzJBMTAwNkFFMDVBIC8q
IERPTVBhdGNoU3VwcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBET01QYXRjaFN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTU1
MTVGMzE5MTgzMEEzMDA5Njg3RDIgLyogWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTU1MTVGNDE5MTgzMEEzMDA5Njg3RDIgLyog
WW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdBNTY5OTZFMjA4NkM2MTgwMDBFMDQzMyAvKiBDb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QTY3NEJEOTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cExvYWREZWZlcnJlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBNjc0QkRBMEY5RUJGNEUwMDZDRjA5
OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGFnZUdyb3VwTG9hZERlZmVycmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMzg0Nyw2ICsxMzg1Myw4IEBACiAJCUE1MkIzNDlDMUZBNDE2RjgwMDhCNjI0NiAvKiBX
b3JrZXJEZWJ1Z2dlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdv
cmtlckRlYnVnZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUyRDg1
Q0EyMUIwOTgyRjAwNjFDMUVCIC8qIFNlcnZlclRpbWluZ1BhcnNlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTZXJ2ZXJUaW1pbmdQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNTJEODVDQjIxQjA5ODMwMDA2MUMxRUIgLyogU2VydmVyVGltaW5nUGFyc2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNlcnZlclRpbWluZ1BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNTQxNkZFMzE4ODEwRUY4MDAwOUZDNUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBZb3VUdWJlRW1i
ZWRTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTU0MTZG
RTQxODgxMEVGODAwMDlGQzVGIC8qIFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTRBMEM1RjFEQjdGOEI3MDAxN0E5MEIgLyog
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTU0QTBDNjAxREI3RjhCNzAwMTdBOTBCIC8qIFdvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTRBMEM2
MzFEQjgwNTMyMDAxN0E5MEIgLyogV29ya2VyRGVidWdnZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VyRGVidWdnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTg3NzksNiArMTg3ODcsMTYgQEAKIAkJCXBhdGggPSBtYWM7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkwNzJBRTFERTE4M0MwNTEzMDAwQTU5ODgg
LyogcGx1Z2lucyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJ
CQkJMDcyQUUxREYxODNDMDc0MTAwMEE1OTg4IC8qIFBsdWdpblJlcGxhY2VtZW50LmggKi8sCisJ
CQkJN0E1NTE1RjQxOTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5j
cHAgKi8sCisJCQkJN0E1NTE1RjMxOTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVnaW5SZXBs
YWNlbWVudC5oICovLAorCQkJKTsKKwkJCXBhdGggPSBwbHVnaW5zOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMDc2RjBEMDgxMkI4MTkyNzAwQzI2QUE0IC8qIGF2Zm91bmRh
dGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTA0
Nyw2ICsyMTA2NSw4IEBACiAJCQkJMTQyQjk3QzgxMzEzODk0MzAwOEJFRjRCIC8qIFRleHRDb250
cm9sSW5uZXJFbGVtZW50cy5oICovLAogCQkJCUNFMjEyMTU0MjQwREJEMzAwMDZFRDQ0MyAvKiBU
ZXh0UGxhY2Vob2xkZXJFbGVtZW50LmNwcCAqLywKIAkJCQlDRTIxMjE1MzI0MERCRDMwMDA2RUQ0
NDMgLyogVGV4dFBsYWNlaG9sZGVyRWxlbWVudC5oICovLAorCQkJCUE1NDE2RkUzMTg4MTBFRjgw
MDA5RkM1RiAvKiBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmNwcCAqLywKKwkJCQlBNTQxNkZF
NDE4ODEwRUY4MDAwOUZDNUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oICovLAogCQkJ
KTsKIAkJCXBhdGggPSBzaGFkb3c7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjYx
NDQsNiArMjYxNjQsNyBAQAogCQkJCUExRjc2QjBFMUY0NEMwQ0YwMDE0QzMxOCAvKiBwYXltZW50
cmVxdWVzdCAqLywKIAkJCQk5M0IwQTY0MjI2Q0RDNTc0MDBBQTIxRTQgLyogcGVybWlzc2lvbnMg
Ki8sCiAJCQkJMURFRjA2QTIyMzNDMzJEQjAwRUUyMjhEIC8qIHBpY3R1cmVpbnBpY3R1cmUgKi8s
CisJCQkJMDcyQUUxREUxODNDMDUxMzAwMEE1OTg4IC8qIHBsdWdpbnMgKi8sCiAJCQkJNDE4RkNC
QjgyNzA2RTRCRDAwRjk2RUNBIC8qIHB1c2gtYXBpICovLAogCQkJCUNEQzMxMkUwMjJGQ0QwQjAw
MDEyMDRFQyAvKiByZW1vdGVwbGF5YmFjayAqLywKIAkJCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVB
MjUgLyogc3BlZWNoICovLApAQCAtMzY3MDUsNiArMzY3MjYsNyBAQAogCQkJCUE5QzZFNEY0MEQ3
NDVFNDgwMDY0NDJFOSAvKiBQbHVnaW5EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFC
QzEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBMDhGRUREMUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTA3MkFFMUU1MTgzQzA3NDEwMDBBNTk4OCAvKiBQbHVnaW5SZXBsYWNlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFFMjE4M0ExNzM1OUZCODAwNkU2RTREIC8qIFBsdWdJ
bnNSZXNvdXJjZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBBRkRBQzNEMTBGNTQ0OEMwMEUxRjNE
MiAvKiBQbHVnaW5WaWV3QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCQjhBQjkxM0YxQUZC
MDAwNzM0REYwIC8qIFBPREludGVydmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTM4MjU2LDYgKzM4
Mjc4LDggQEAKIAkJCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4dGVuc2lvbnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJv
Y2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyog
WFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNTQxNkZFNjE4ODEwRUY4MDAw
OUZDNUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
N0E1NTE1RjUxOTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAkocmV2aXNpb24gMjkwNTEzKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzgsOCArNzgsMTIgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVjdChK
U0dsb2JhbE9iagogCiAgICAgLy8gQ2hva2UgcG9pbnQgZm9yIHNjcmlwdC9wbHVnaW4gaW50ZXJh
Y3Rpb247IG5vdGlmeSBET01UaW1lciBvZiB0aGUgZXZlbnQuCiAgICAgRE9NVGltZXI6OnNjcmlw
dERpZEludGVyYWN0V2l0aFBsdWdpbihwbHVnaW5FbGVtZW50KTsKKworICAgIC8vIEZpcnN0LCBz
ZWUgaWYgdGhlIGVsZW1lbnQgaGFzIGEgcGx1Zy1pbiByZXBsYWNlbWVudCB3aXRoIGEgc2NyaXB0
LgorICAgIGlmIChhdXRvKiBzY3JpcHRPYmplY3QgPSBwbHVnaW5FbGVtZW50LnNjcmlwdE9iamVj
dEZvclBsdWdpblJlcGxhY2VtZW50KCkpCisgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAg
ICAgCi0gICAgLy8gU2VlIGlmIHdlIGNhbiBhc2sgdGhlIHBsdWctaW4gdmlldyBmb3IgaXRzIHNj
cmlwdCBvYmplY3QuCisgICAgLy8gTmV4dCwgc2VlIGlmIHdlIGNhbiBhc2sgdGhlIHBsdWctaW4g
dmlldyBmb3IgaXRzIHNjcmlwdCBvYmplY3QuCiAgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9
IHBsdWdpblNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hU
TUxFbGVtZW50LT5nbG9iYWxPYmplY3QoKSkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCShyZXZpc2lvbiAyOTA1MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtNDg5OCw2ICs0
ODk4LDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjp2aXNpdENoaWxk
cmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHRoaXNPYmplY3QtPnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKHZpc2l0b3IpO1xuIikg
aWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SlNDdXN0b21NYXJrRnVuY3Rpb259
OworICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UGx1Z2lufSkg
eworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgUExBVEZPUk0oQ09DT0EpXG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5wbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdCgpLnZpc2l0KHZpc2l0b3IpO1xuIik7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIik7CisgICAgICAgIH0K
ICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0dlbmVyYXRlQWRk
T3BhcXVlUm9vdH0pIHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8d3RmL0dldFB0
ci5oPiIpOwogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e0dlbmVyYXRlQWRkT3BhcXVlUm9vdH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0UGx1Z2luSW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjkwNTEzKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1Myw2ICsyNTMsOSBAQCB2b2lkIEpTVGVzdFBsdWdpbkludGVyZmFj
ZTo6dmlzaXRDaGlsZHJlCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RQbHVn
aW5JbnRlcmZhY2UqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmplY3QsIGluZm8oKSk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNp
dG9yKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkucGx1
Z2luUmVwbGFjZW1lbnRTY3JpcHRPYmplY3QoKS52aXNpdCh2aXNpdG9yKTsKKyNlbmRpZgogfQog
CiBERUZJTkVfVklTSVRfQ0hJTERSRU4oSlNUZXN0UGx1Z2luSW50ZXJmYWNlKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAyOTA1MTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgorI2luY2x1ZGUgIlBsdWdp
blJlcGxhY2VtZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJS
ZW5kZXJFbWJlZGRlZE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCkBAIC00OSw2
ICs1MCwxMCBAQAogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJZb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChIVE1MUGx1Z0luRWxlbWVudCk7CkBAIC0yMjUsOCArMjMwLDEx
IEBAIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSAKICAgICByZXR1cm4g
IWRvd25jYXN0PFJlbmRlckVtYmVkZGVkT2JqZWN0PigqcmVuZGVyZXIoKSkuaXNQbHVnaW5VbmF2
YWlsYWJsZSgpOwogfQogCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5k
ZXJUcmVlUG9zaXRpb24mKQorUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5FbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKIHsKKyAgICBpZiAobV9wbHVnaW5S
ZXBsYWNlbWVudCAmJiBtX3BsdWdpblJlcGxhY2VtZW50LT53aWxsQ3JlYXRlUmVuZGVyZXIoKSkK
KyAgICAgICAgcmV0dXJuIG1fcGx1Z2luUmVwbGFjZW1lbnQtPmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cigqdGhpcywgV1RGTW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKKwogICAgIHJldHVy
biBjcmVhdGVSZW5kZXJlcjxSZW5kZXJFbWJlZGRlZE9iamVjdD4oKnRoaXMsIFdURk1vdmUoc3R5
bGUpKTsKIH0KIApAQCAtMjU0LDEzICsyNjIsMTIyIEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6
OnNldERpc3BsYXlTdGF0ZSgKICAgICAgICAgbV9zd2FwUmVuZGVyZXJUaW1lci5zdGFydE9uZVNo
b3QoMF9zKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hh
ZG93Um9vdChTaGFkb3dSb290JikKK3ZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OmRpZEFkZFVzZXJB
Z2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgcm9vdCkKIHsKKyAgICBpZiAoIW1fcGx1Z2luUmVw
bGFjZW1lbnQgfHwgIWRvY3VtZW50KCkucGFnZSgpIHx8IGRpc3BsYXlTdGF0ZSgpICE9IFByZXBh
cmluZ1BsdWdpblJlcGxhY2VtZW50KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgcm9vdC5z
ZXRSZXNldFN0eWxlSW5oZXJpdGFuY2UodHJ1ZSk7CisgICAgYXV0byByZXN1bHQgPSBtX3BsdWdp
blJlcGxhY2VtZW50LT5pbnN0YWxsUmVwbGFjZW1lbnQocm9vdCk7CisKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHQuc3VjY2VzcyB8fCAhcmVzdWx0LnNjcmlw
dE9iamVjdCk7CisgICAgbV9wbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdC5zZXRXZWFrbHko
cmVzdWx0LnNjcmlwdE9iamVjdCk7CisjZW5kaWYKKworICAgIGlmIChyZXN1bHQuc3VjY2Vzcykg
eworICAgICAgICBzZXREaXNwbGF5U3RhdGUoRGlzcGxheWluZ1BsdWdpblJlcGxhY2VtZW50KTsK
KyAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kUmVuZGVyZXJzRm9yU3VidHJlZSgpOworICAgIH0K
IH0KIAotYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6cmVxdWVzdE9iamVjdChjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JikKKyNpZiBQTEFURk9STShDT0NPQSkKK3N0YXRpYyB2b2lkIHJlZ2lzdHJhcihjb25zdCBS
ZXBsYWNlbWVudFBsdWdpbiYpOworI2VuZGlmCisKK3N0YXRpYyBWZWN0b3I8UmVwbGFjZW1lbnRQ
bHVnaW4qPiYgcmVnaXN0ZXJlZFBsdWdpblJlcGxhY2VtZW50cygpCiB7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8UmVwbGFjZW1lbnRQbHVnaW4q
Pj4gcmVnaXN0ZXJlZFJlcGxhY2VtZW50czsKKyAgICBzdGF0aWMgYm9vbCBlbmdpbmVzUXVlcmll
ZCA9IGZhbHNlOworICAgIAorICAgIGlmIChlbmdpbmVzUXVlcmllZCkKKyAgICAgICAgcmV0dXJu
IHJlZ2lzdGVyZWRSZXBsYWNlbWVudHM7CisgICAgZW5naW5lc1F1ZXJpZWQgPSB0cnVlOworCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpyZWdpc3Rl
clBsdWdpblJlcGxhY2VtZW50KHJlZ2lzdHJhcik7CisjZW5kaWYKKyAgICAKKyAgICByZXR1cm4g
cmVnaXN0ZXJlZFJlcGxhY2VtZW50czsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGlj
IHZvaWQgcmVnaXN0cmFyKGNvbnN0IFJlcGxhY2VtZW50UGx1Z2luJiByZXBsYWNlbWVudCkKK3sK
KyAgICByZWdpc3RlcmVkUGx1Z2luUmVwbGFjZW1lbnRzKCkuYXBwZW5kKG5ldyBSZXBsYWNlbWVu
dFBsdWdpbihyZXBsYWNlbWVudCkpOworfQorI2VuZGlmCisKK3N0YXRpYyBSZXBsYWNlbWVudFBs
dWdpbiogcGx1Z2luUmVwbGFjZW1lbnRGb3JUeXBlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKQoreworICAgIFZlY3RvcjxSZXBsYWNlbWVudFBsdWdpbio+JiByZXBsYWNl
bWVudHMgPSByZWdpc3RlcmVkUGx1Z2luUmVwbGFjZW1lbnRzKCk7CisgICAgaWYgKHJlcGxhY2Vt
ZW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgU3RyaW5nIGV4
dGVuc2lvbjsKKyAgICBhdXRvIGxhc3RQYXRoQ29tcG9uZW50ID0gdXJsLmxhc3RQYXRoQ29tcG9u
ZW50KCk7CisgICAgc2l6ZV90IGRvdE9mZnNldCA9IGxhc3RQYXRoQ29tcG9uZW50LnJldmVyc2VG
aW5kKCcuJyk7CisgICAgaWYgKGRvdE9mZnNldCAhPSBub3RGb3VuZCkKKyAgICAgICAgZXh0ZW5z
aW9uID0gbGFzdFBhdGhDb21wb25lbnQuc3Vic3RyaW5nKGRvdE9mZnNldCArIDEpLnRvU3RyaW5n
KCk7CisKKyAgICBTdHJpbmcgdHlwZSA9IG1pbWVUeXBlOworICAgIGlmICh0eXBlLmlzRW1wdHko
KSAmJiB1cmwucHJvdG9jb2xJc0RhdGEoKSkKKyAgICAgICAgdHlwZSA9IG1pbWVUeXBlRnJvbURh
dGFVUkwodXJsLnN0cmluZygpKTsKKyAgICAKKyAgICBpZiAodHlwZS5pc0VtcHR5KCkgJiYgIWV4
dGVuc2lvbi5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9yIChhdXRvKiByZXBsYWNlbWVudCA6IHJl
cGxhY2VtZW50cykgeworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50LT5zdXBwb3J0c0ZpbGVF
eHRlbnNpb24oZXh0ZW5zaW9uKSAmJiByZXBsYWNlbWVudC0+c3VwcG9ydHNVUkwodXJsKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnQ7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgaWYgKHR5cGUuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChleHRlbnNpb24uaXNFbXB0
eSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHR5cGUgPSBNSU1FVHlw
ZVJlZ2lzdHJ5OjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgfQor
CisgICAgaWYgKHR5cGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGZvciAoYXV0byogcmVwbGFjZW1lbnQgOiByZXBsYWNlbWVudHMpIHsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50LT5zdXBwb3J0c1R5cGUodHlwZSkgJiYgcmVwbGFjZW1lbnQtPnN1cHBvcnRzVVJM
KHVybCkpCisgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnQ7CisgICAgfQorCisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6OnJlcXVlc3RPYmplY3Qo
Y29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZh
bHVlcykKK3sKKyAgICBpZiAobV9wbHVnaW5SZXBsYWNlbWVudCkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICBVUkwgY29tcGxldGVkVVJMOworICAgIGlmICghcmVsYXRpdmVVUkwuaXNFbXB0
eSgpKQorICAgICAgICBjb21wbGV0ZWRVUkwgPSBkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHJlbGF0
aXZlVVJMKTsKKworICAgIFJlcGxhY2VtZW50UGx1Z2luKiByZXBsYWNlbWVudCA9IHBsdWdpblJl
cGxhY2VtZW50Rm9yVHlwZShjb21wbGV0ZWRVUkwsIG1pbWVUeXBlKTsKKyAgICBpZiAoIXJlcGxh
Y2VtZW50IHx8ICFyZXBsYWNlbWVudC0+aXNFbmFibGVkQnlTZXR0aW5ncyhkb2N1bWVudCgpLnNl
dHRpbmdzKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMT0coUGx1Z2lucywgIiVw
IC0gRm91bmQgcGx1Zy1pbiByZXBsYWNlbWVudCBmb3IgJXMuIiwgdGhpcywgY29tcGxldGVkVVJM
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgbV9wbHVnaW5SZXBsYWNlbWVudCA9IHJl
cGxhY2VtZW50LT5jcmVhdGUoKnRoaXMsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKKyAgICBz
ZXREaXNwbGF5U3RhdGUoUHJlcGFyaW5nUGx1Z2luUmVwbGFjZW1lbnQpOworICAgIHJldHVybiB0
cnVlOworfQorCitKU0M6OkpTT2JqZWN0KiBIVE1MUGx1Z0luRWxlbWVudDo6c2NyaXB0T2JqZWN0
Rm9yUGx1Z2luUmVwbGFjZW1lbnQoKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEpTQzo6
SlNWYWx1ZSB2YWx1ZSA9IG1fcGx1Z2luUmVwbGFjZW1lbnRTY3JpcHRPYmplY3QuZ2V0VmFsdWUo
KTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
dmFsdWUuZ2V0T2JqZWN0KCk7CisjZWxzZQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9
CiAKIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6OmlzQmVsb3dTaXplVGhyZXNob2xkKCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgJKHJldmlzaW9uIDI5
MDUxMykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQCBjbGFzcyBJbnN0YW5jZTsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBQbHVnaW5SZXBsYWNlbWVudDsKIGNsYXNzIFJlbmRlcldpZGdldDsK
IGNsYXNzIFdpZGdldDsKIApAQCAtNTgsNiArNTksMTEgQEAgcHVibGljOgogICAgIERpc3BsYXlT
dGF0ZSBkaXNwbGF5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQogICAg
IHZvaWQgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSk7CiAKKyAgICBKU0M6OkpTT2JqZWN0
KiBzY3JpcHRPYmplY3RGb3JQbHVnaW5SZXBsYWNlbWVudCgpOworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIHBsdWdpblJlcGxhY2VtZW50U2NyaXB0T2Jq
ZWN0KCkgeyByZXR1cm4gbV9wbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdDsgfQorI2VuZGlm
CisKICAgICBib29sIGlzQ2FwdHVyaW5nTW91c2VFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lz
Q2FwdHVyaW5nTW91c2VFdmVudHM7IH0KICAgICB2b2lkIHNldElzQ2FwdHVyaW5nTW91c2VFdmVu
dHMoYm9vbCBjYXB0dXJpbmcpIHsgbV9pc0NhcHR1cmluZ01vdXNlRXZlbnRzID0gY2FwdHVyaW5n
OyB9CiAKQEAgLTEwOCw2ICsxMTQsMTAgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxKU0M6OkJp
bmRpbmdzOjpJbnN0YW5jZT4gbV9pbnN0YW5jZTsKICAgICBUaW1lciBtX3N3YXBSZW5kZXJlclRp
bWVyOworICAgIFJlZlB0cjxQbHVnaW5SZXBsYWNlbWVudD4gbV9wbHVnaW5SZXBsYWNlbWVudDsK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0IG1fcGx1Z2lu
UmVwbGFjZW1lbnRTY3JpcHRPYmplY3Q7CisjZW5kaWYKICAgICBib29sIG1faXNDYXB0dXJpbmdN
b3VzZUV2ZW50cyB7IGZhbHNlIH07CiAgICAgRGlzcGxheVN0YXRlIG1fZGlzcGxheVN0YXRlIHsg
UGxheWluZyB9OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NoYWRvd1Bz
ZXVkb0lkcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2hh
ZG93UHNldWRvSWRzLmNwcAkocmV2aXNpb24gMjkwNTEzKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU2hhZG93UHNldWRvSWRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEzLDYgKzIx
MywxMiBAQCBjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRNZXRlckV2ZW5MZXNzR29vCiAgICAgcmV0
dXJuIHdlYmtpdE1ldGVyRXZlbkxlc3NHb29kVmFsdWU7CiB9CiAKK2NvbnN0IEF0b21TdHJpbmcm
IHdlYmtpdFBsdWdpblJlcGxhY2VtZW50KCkKK3sKKyAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFBsdWdpblJlcGxhY2VtZW50KCItd2Vi
a2l0LXBsdWdpbi1yZXBsYWNlbWVudCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKKyAgICByZXR1cm4gd2Via2l0UGx1Z2luUmVwbGFjZW1lbnQ7Cit9CisKIGNvbnN0IEF0b21T
dHJpbmcmIHdlYmtpdFByb2dyZXNzQmFyKCkKIHsKICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVy
RGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IHdlYmtpdFByb2dyZXNzQmFyKCItd2Via2l0LXBy
b2dyZXNzLWJhciIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NoYWRvd1BzZXVkb0lkcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NoYWRvd1BzZXVkb0lkcy5oCShyZXZpc2lvbiAy
OTA1MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TaGFkb3dQc2V1ZG9JZHMuaAko
d29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsOCBAQCBjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRN
ZXRlck9wdGltdW1WYWx1CiBjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRNZXRlclN1Ym9wdGltdW1W
YWx1ZSgpOwogY29uc3QgQXRvbVN0cmluZyYgd2Via2l0TWV0ZXJFdmVuTGVzc0dvb2RWYWx1ZSgp
OwogCitjb25zdCBBdG9tU3RyaW5nJiB3ZWJraXRQbHVnaW5SZXBsYWNlbWVudCgpOworCiBjb25z
dCBBdG9tU3RyaW5nJiB3ZWJraXRQcm9ncmVzc0JhcigpOwogY29uc3QgQXRvbVN0cmluZyYgd2Vi
a2l0UHJvZ3Jlc3NWYWx1ZSgpOwogY29uc3QgQXRvbVN0cmluZyYgd2Via2l0UHJvZ3Jlc3NJbm5l
ckVsZW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJl
ZFNoYWRvd0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmgiCisKKyNpbmNs
dWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKKyNpbmNsdWRlICJTaGFkb3dQc2V1ZG9JZHMuaCIKKyNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50KTsK
KworUmVmPFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ+IFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgYXV0byBlbGVtZW50ID0gYWRv
cHRSZWYoKm5ldyBZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50KGRvY3VtZW50KSk7CisgICAgZWxl
bWVudC0+c2V0UHNldWRvKFNoYWRvd1BzZXVkb0lkczo6d2Via2l0UGx1Z2luUmVwbGFjZW1lbnQo
KSk7CisgICAgcmV0dXJuIGVsZW1lbnQ7Cit9CisKK1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQ6
OllvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRN
TERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQoreworfQorCitSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gWW91VHViZUVtYmVkU2hhZG93RWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
Cit7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJsb2NrRmxvdz4oKnRoaXMsIFdU
Rk1vdmUoc3R5bGUpKTsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
WW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFlvdVR1YmVFbWJlZFNoYWRv
d0VsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgeworICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoWW91VHViZUVtYmVkU2hhZG93RWxlbWVudCk7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxZb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKwor
ICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVy
U3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7CisKK3ByaXZhdGU6Cisg
ICAgWW91VHViZUVtYmVkU2hhZG93RWxlbWVudChEb2N1bWVudCYpOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAkocmV2aXNpb24g
MjkwNTEzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCSh3b3JraW5nIGNv
cHkpCkBAIC02MTgsMyArNjE4LDEwIEBAIFdlYmtpdEltYWdlUmVhZHlFdmVudEVuYWJsZWQ6CiAg
IGRlZmF1bHRWYWx1ZToKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKKworWW91
VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1
bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAgUExBVEZPUk0oQ09DT0EpOiB0cnVlCisgICAg
ICBkZWZhdWx0OiBmYWxzZQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjkwNTEzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDItMjUgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZS1hZGQgWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LCByZW1vdmVkIGluIHIyODUyNTIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzE4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHA6CisKIDIwMjItMDItMjQgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtQeXRob24gM10gSW52
b2tlIHZhbGlkYXRlLWNvbW1pdHRlci1saXN0cyB3aXRoIFB5dGhvbiAzCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjkwNTEzKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTM5Myw2ICszOTMsNyBAQAogCQk1QzI5MzY5NjFENUMwMEVEMDBERUFCMUUgLyogQ29va2llTWVz
c2FnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDMjkzNjk0MUQ1QkZEMTkwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwgKi87
IH07CiAJCTVDMkMwMUE4MjczNDg4MzYwMEY4OUQzNyAvKiBDcm9zc1RocmVhZENvcGllci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNzhERTY0QjIy
QjhENjExMDA0RTBFN0EgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovOyB9OwogCQk1QzQyNTk0
NjIyNjZBNjhBMDAzOUFBN0EgLyogQmFzaWNQcm9wb3NlZENyZWRlbnRpYWxQbHVnSW4ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQyNTk0NDIyNjY5
RTlCMDAzOUFBN0EgLyogQmFzaWNQcm9wb3NlZENyZWRlbnRpYWxQbHVnSW4ubW0gKi87IH07CisJ
CTVDNTgxRDMyMjdDOEEwMUMwMDZCM0JDNCAvKiBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM1ODFEMzEy
N0M4QTAxQzAwNkIzQkM0IC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgKi87IH07CiAJ
CTVDNkUyN0E3MjI0RUVCRUEwMDEyODczNiAvKiBVUkxDYW5vbmljYWxpemF0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2RTI3QTYyMjRFRUJF
QTAwMTI4NzM2IC8qIFVSTENhbm9uaWNhbGl6YXRpb24ubW0gKi87IH07CiAJCTVDNzEwMUM3MjVE
RDk4QjYwMDY4NjIwMCAvKiB0ZXN0X3ByaW50LnBkZiBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzcxMDFDNjI1REQ5ODg3MDA2ODYyMDAgLyog
dGVzdF9wcmludC5wZGYgKi87IH07CiAJCTVDNzU3MTYxMjIxMjRDNTIwMEI5RTVBQyAvKiBCdW5k
bGVSZXRhaW5QYWdlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUM3NTcxNUYyMjEyNDlCRDAwQjlFNUFDIC8qIEJ1bmRsZVJldGFpblBhZ2VQ
bHVnSW4ubW0gKi87IH07CkBAIC0yMjU5LDYgKzIyNjAsNyBAQAogCQk1QzNCMUQyNTIyQTc0RUE0
MDBCQ0Y0RDAgLyogQ29udGV4dE1lbnVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQ29udGV4dE1lbnVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1QzQyNTk0NDIyNjY5RTlCMDAzOUFBN0EgLyogQmFzaWNQcm9wb3NlZENyZWRlbnRpYWxQbHVn
SW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCYXNpY1Byb3Bv
c2VkQ3JlZGVudGlhbFBsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0
QTg0OTQxRjdFRUZENDAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1QzU4MUQzMTI3QzhBMDFDMDA2QjNCQzQgLyogWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFlv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDNUU2MzNEMUQwQjY3OTQwMDg1QTAyNSAvKiBVbmlxdWVSZWYuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5pcXVlUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUM2OUJERDQxRjgyQTdFQjAwMEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdO
YXZpZ2F0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSmF2
YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDNkUyN0E2MjI0RUVCRUEwMDEyODczNiAvKiBVUkxDYW5vbmljYWxpemF0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVVJMQ2Fub25pY2FsaXphdGlvbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM4MjgsNiArMzgzMCw3IEBACiAJCQkJ
N0FEM0ZFOEQxRDc1RkI4RDAwQjE2OUE0IC8qIFRyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCAqLywK
IAkJCQk1N0QxRDc1RTIxRENCN0E4MDA5M0U4NkEgLyogVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVz
dC5jcHAgKi8sCiAJCQkJRTNBMUU3N0UyMUIyNUIzOTAwOEM2MDA3IC8qIFVSTFBhcnNlclRleHRF
bmNvZGluZy5jcHAgKi8sCisJCQkJNUM1ODFEMzEyN0M4QTAxQzAwNkIzQkM0IC8qIFlvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkNvcmU7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTkyNyw2ICs1OTMwLDcgQEAKIAkJCQlFNTIwQTM2
QjI1QUZCNzZDMDA1MjZDQjkgLyogV0tXZWJWaWV3VGl0bGViYXJTZXBhcmF0b3JUZXN0cy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDNzRDOEZBMjJERkJBOTYwMERBMkRBQiAvKiBXVEZTdHJpbmdV
dGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzE0RDMwNDYyNEI0QzNCQTAwNDgwMzg3
IC8qIFhQQ0VuZHBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNUM1ODFEMzIyN0M4QTAxQzAw
NkIzQkM0IC8qIFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Zb3VUdWJlUGx1Z2luUmVwbGFj
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuaD4KKyNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY2xhc3Mg
WW91VHViZVBsdWdpblJlcGxhY2VtZW50VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK3B1
YmxpYzoKKyAgICB2b2lkIFNldFVwKCkgZmluYWwKKyAgICB7CisgICAgICAgIFdURjo6aW5pdGlh
bGl6ZU1haW5UaHJlYWQoKTsKKyAgICB9Cit9OworCitzdGF0aWMgYm9vbCB0ZXN0KGNvbnN0IFN0
cmluZyYgaW5wdXRVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRVUkxTdHJpbmcpCit7
CisgICAgVVJMIGlucHV0VVJMKFVSTCgpLCBpbnB1dFVSTFN0cmluZyk7CisgICAgU3RyaW5nIGFj
dHVhbFVSTFN0cmluZyA9IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6eW91VHViZVVSTEZyb21B
YnNvbHV0ZVVSTChpbnB1dFVSTCwgaW5wdXRVUkxTdHJpbmcpOworICAgIHJldHVybiBhY3R1YWxV
UkxTdHJpbmcudXRmOCgpID09IGV4cGVjdGVkVVJMU3RyaW5nLnV0ZjgoKTsKK30KKworVEVTVF9G
KFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudFRlc3QsIFlvdVR1YmVVUkxGcm9tQWJzb2x1dGVVUkwp
Cit7CisgICAgLy8gWW91VHViZSBub24tdmlkZW8gVVJMLCBub3QgZXhwZWN0ZWQgdG8gYmUgdHJh
bnNmb3JtZWQuCisgICAgRVhQRUNUX1RSVUUodGVzdCgiaHR0cHM6Ly93d3cueW91dHViZS5jb20i
LCAiaHR0cHM6Ly93d3cueW91dHViZS5jb20iKSk7CisKKyAgICAvLyBCYXNpYyBZb3VUdWJlIHZp
ZGVvIGxpbmtzLCBleHBlY3RlZCB0byBiZSB0cmFuc2Zvcm1lZC4KKyAgICBFWFBFQ1RfVFJVRSh0
ZXN0KCJodHRwczovL3d3dy55b3V0dWJlLmNvbS92L2RRdzR3OVdnWGNRIiwgImh0dHBzOi8vd3d3
LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIikpOworICAgIEVYUEVDVF9UUlVFKHRlc3Qo
Imh0dHA6Ly93d3cueW91dHViZS5jb20vdi9kUXc0dzlXZ1hjUSIsICJodHRwOi8vd3d3LnlvdXR1
YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIikpOworICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHBz
Oi8veW91dHViZS5jb20vdi9kUXc0dzlXZ1hjUSIsICJodHRwczovL3lvdXR1YmUuY29tL2VtYmVk
L2RRdzR3OVdnWGNRIikpOworICAgIEVYUEVDVF9UUlVFKHRlc3QoImh0dHA6Ly95b3V0dWJlLmNv
bS92L2RRdzR3OVdnWGNRIiwgImh0dHA6Ly95b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUSIp
KTsKKworICAgIC8vIFdpdGggc3RhcnQgdGltZSwgcHJlc2VydmVkLgorICAgIEVYUEVDVF9UUlVF
KHRlc3QoImh0dHA6Ly93d3cueW91dHViZS5jb20vdi9kUXc0dzlXZ1hjUT9zdGFydD00IiwgImh0
dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1E/c3RhcnQ9NCIpKTsKKyAgICBF
WFBFQ1RfVFJVRSh0ZXN0KCJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3YvZFF3NHc5V2dYY1E/c3Rh
cnQ9NCZmcz0xIiwgImh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1E/c3Rh
cnQ9NCZmcz0xIikpOworCisgICAgLy8gV2l0aCBhbiBpbnZhbGlkIHF1ZXJ5IChzZWUgJiBpbnN0
ZWFkIG9mID8pLCB3ZSBwcmVzZXJ2ZSBhbmQgZml4IHRoZSBxdWVyeS4KKyAgICBFWFBFQ1RfVFJV
RSh0ZXN0KCJodHRwOi8vd3d3LnlvdXR1YmUuY29tL3YvZFF3NHc5V2dYY1Emc3RhcnQ9NCIsICJo
dHRwOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRP3N0YXJ0PTQiKSk7CisgICAg
RVhQRUNUX1RSVUUodGVzdCgiaHR0cDovL3d3dy55b3V0dWJlLmNvbS92L2RRdzR3OVdnWGNRJnN0
YXJ0PTQmZnM9MSIsICJodHRwOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRP3N0
YXJ0PTQmZnM9MSIpKTsKKworICAgIC8vIE5vbi1GbGFzaCBVUkwgaXMgdW50b3VjaGVkLgorICAg
IEVYUEVDVF9UUlVFKHRlc3QoImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdn
WGNRIiwgImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIikpOworICAg
IEVYUEVDVF9UUlVFKHRlc3QoImh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dY
Y1EiLCAiaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUSIpKTsKKyAgICBF
WFBFQ1RfVFJVRSh0ZXN0KCJodHRwczovL3lvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIiwg
Imh0dHBzOi8veW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1EiKSk7CisgICAgRVhQRUNUX1RS
VUUodGVzdCgiaHR0cDovL3lvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRIiwgImh0dHA6Ly95
b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUSIpKTsKKyAgICAvLyBFdmVuIHdpdGggZXh0cmEg
cGFyYW1ldGVycy4KKyAgICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRwczovL3d3dy55b3V0dWJlLmNv
bS9lbWJlZC9kUXc0dzlXZ1hjUT9zdGFydD00IiwgImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2Vt
YmVkL2RRdzR3OVdnWGNRP3N0YXJ0PTQiKSk7CisgICAgRVhQRUNUX1RSVUUodGVzdCgiaHR0cDov
L3d3dy55b3V0dWJlLmNvbS9lbWJlZC9kUXc0dzlXZ1hjUT9lbmFibGVqc2FwaT0xIiwgImh0dHA6
Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1E/ZW5hYmxlanNhcGk9MSIpKTsKKyAg
ICAvLyBFdmVuIHdpdGggYW4gaW52YWxpZCAicXVlcnkiLgorICAgIEVYUEVDVF9UUlVFKHRlc3Qo
Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2RRdzR3OVdnWGNRJnN0YXJ0PTQiLCAiaHR0
cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZFF3NHc5V2dYY1Emc3RhcnQ9NCIpKTsKKworICAg
IC8vIERvbid0IHRyYW5zZm9ybSBhbnl0aGluZyB3aXRoIGEgbm9uICIvdi8iIHBhdGggY29tcG9u
ZW50IGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgZG9tYWluLgorICAgIEVYUEVDVF9UUlVFKHRl
c3QoImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3NvbWV0aGluZy92L2RRdzR3OVdnWGNRIiwgImh0
dHBzOi8vd3d3LnlvdXR1YmUuY29tL3NvbWV0aGluZy92L2RRdzR3OVdnWGNRIikpOworCisgICAg
Ly8gTm9uLVlvdVR1YmUgZG9tYWluIHdob3NlIHBhdGggbG9va3MgbGlrZSBhIEZsYXNoIHZpZGVv
IHNob3VsZG4ndCBiZSB0cmFuc2Zvcm1lZC4KKyAgICBFWFBFQ1RfVFJVRSh0ZXN0KCJodHRwczov
L3d3dy5ub3R5b3V0dWJlLmNvbS92L2RRdzR3OVdnWGNRIiwgImh0dHBzOi8vd3d3Lm5vdHlvdXR1
YmUuY29tL3YvZFF3NHc5V2dYY1EiKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI5MDUxMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIyLTAyLTI1ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmUtYWRkIFlvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudCwgcmVtb3ZlZCBpbiByMjg1MjUyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9vYmplY3Qtc3JjLW5vbmUtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50
LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFj
ZW1lbnQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9vYmplY3Qtc3JjLW5vbmUtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0
bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9vYmplY3Qtc3JjLW5vbmUtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwu
CisgICAgICAgICogc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMt
YWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlw
ZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3Mt
eW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYWxsb3dzLXlvdXR1
YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwuCisgICAgICAgICogc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2Vt
ZW50LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxh
Y2VtZW50LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtd2l0
aG91dC1taW1lLXR5cGUtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1w
bHVnaW4tcmVwbGFjZW1lbnQtd2l0aG91dC1taW1lLXR5cGUtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15
b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS5odG1sOiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10
eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtd2l0aG91dC1taW1lLXR5cGUu
aHRtbC4KKyAgICAgICAgKiBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10
eXBlcy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMt
YmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwuCisKIDIwMjItMDItMjUgIEFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtUYWJsZXNdIEluY29ycmVj
dCB0YWJsZSBzaXppbmcgd2hlbiBjb2xncm91cCBjb21lcyBhZnRlciB0Ym9keQpJbmRleDogTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCShyZXZpc2lvbiAyOTA1MTMpCisrKyBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC01MTU3LDYgKzUxNTcsMTAgQEAgZnVsbHNjcmVlbi9m
dWxsLXNjcmVlbi1wbHVnaW4uaHRtbCBbIFNraQogaW1wb3J0ZWQvYmxpbmsvaHR0cC90ZXN0cy9w
bHVnaW5zIFsgU2tpcCBdCiBpbXBvcnRlZC9ibGluay9wbHVnaW5zIFsgU2tpcCBdCiBqcy9kb20v
cmVmbGVjdC1zZXQtb250by1kb20uaHRtbCBbIFNraXAgXQorc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1l
bnQuaHRtbCBbIFNraXAgXQorc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMt
dHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwgWyBTa2lwIF0KK3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJl
LXBsdWdpbi1yZXBsYWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS5odG1sIFsgU2tpcCBdCitzZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1w
bHVnaW4tcmVwbGFjZW1lbnQuaHRtbCBbIFNraXAgXQogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQt
cGx1Z2luLWRvY3VtZW50Lmh0bWwgWyBTa2lwIF0KIAogIyBUaGlzIGlzIG1hcmtlZCBhcyBwYXNz
aW5nIG9uIFdLMi4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RF
eHBlY3RhdGlvbnMJKHJldmlzaW9uIDI5MDUxMykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjAyMSw2ICsyMDIxLDgg
QEAgd2Via2l0Lm9yZy9iLzIyMzU4NiB3ZWJnbC9jb25mb3JtYW5jZS9leAogCiB3ZWJraXQub3Jn
L2IvMjE0OTU1IGZhc3QvcGFyc2VyL3htbC1jb2xvbi1lbnRpdHkuaHRtbCBbIEZhaWx1cmUgXQog
Cit3ZWJraXQub3JnL2IvMjIzNzUwIFsgRGVidWcgXSBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRt
bCBbIFBhc3MgQ3Jhc2ggXQorCiB3ZWJraXQub3JnL2IvMTU1MTk2IHNlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS92aWRlby13aXRoLWZpbGUtdXJsLWFsbG93ZWQtYnktbWVkaWEtc3JjLXN0
YXItd2l0aC1BbGxvd0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZVN0YXJUb01hdGNoQW55UHJv
dG9jb2wtZW5hYmxlZC5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcv
Yi8xNTUxOTYgc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXdpdGgtZmlsZS11
cmwtYWxsb3dlZC1ieS1tZWRpYS1zcmMtc3Rhci5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJl
IF0KIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHJl
dmlzaW9uIDI5MDUxMykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCSh3b3JraW5nIGNvcHkpCkBAIC0zNDc0LDYgKzM0NzQsNyBAQCBqcy9yZWdyZXNzLTE0MTA5
OC5odG1sIFsgRmFpbHVyZSBdCiBwYWdlb3ZlcmxheS9vdmVybGF5LWluc3RhbGxhdGlvbi5odG1s
IFsgRmFpbHVyZSBdCiBwYWdlb3ZlcmxheS9vdmVybGF5LWxhcmdlLWRvY3VtZW50LXNjcm9sbGVk
Lmh0bWwgWyBGYWlsdXJlIF0KIHBhZ2VvdmVybGF5L292ZXJsYXktbGFyZ2UtZG9jdW1lbnQuaHRt
bCBbIEZhaWx1cmUgXQorc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlw
ZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9ibG9iLWN1cnNvci5odG1sIFsgRmFpbHVyZSBdCiBzdHJl
YW1zL3JlYWRhYmxlLWJ5dGUtc3RyZWFtLWNvbnRyb2xsZXIuaHRtbCBbIEZhaWx1cmUgXQogc3Ry
ZWFtcy9yZWFkYWJsZS1ieXRlLXN0cmVhbS1jb250cm9sbGVyLXdvcmtlci5odG1sIFsgRmFpbHVy
ZSBdCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2Jq
ZWN0LXNyYy1ub25lLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtZXhw
ZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9vYmplY3Qtc3JjLW5vbmUtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxh
Y2VtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIgQEAKK0NPTlNP
TEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3YvVUY4
dVI2WjZLTGMgYmVjYXVzZSBpdCBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIG9iamVjdC1zcmMgZGly
ZWN0aXZlIG9mIHRoZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KKwpJbmRleDogTGF5b3V0VGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVjdC1zcmMtbm9uZS1ibG9ja3Mt
eW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNyYy1ub25lLWJsb2Nrcy15
b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9vYmplY3Qtc3JjLW5vbmUtYmxvY2tz
LXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9Im9iamVjdC1zcmMgJ25vbmUnIj4K
KzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRZb3VUdWJlRmxh
c2hQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQodHJ1ZSk7CisKK2Z1bmN0aW9uIGRvbmUoKQorewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Cit9CisKK2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlY3VyaXR5cG9saWN5dmlvbGF0
aW9uIiwgZG9uZSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxvYmplY3Qg
d2lkdGg9IjQyNSIgaGVpZ2h0PSIzNTAiIGNsYXNzaWQ9ImNsc2lkOmQyN2NkYjZlLWFlNmQtMTFj
Zi05NmI4LTQ0NDU1MzU0MDAwMCIKKyAgICBjb2RlYmFzZT0iaHR0cDovL2Rvd25sb2FkLm1hY3Jv
bWVkaWEuY29tL3B1Yi9zaG9ja3dhdmUvY2Ficy9mbGFzaC9zd2ZsYXNoLmNhYiN2ZXJzaW9uPTYs
MCw0MCwwIj4KKyAgICA8ZW1iZWQgd2lkdGg9IjQyNSIgaGVpZ2h0PSIzNTAiIHR5cGU9ImFwcGxp
Y2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3Yv
VUY4dVI2WjZLTGMiPgorPC9vYmplY3Q+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3Mt
eW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWFs
bG93cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMt
dHlwZXMtYWxsb3dzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDIgQEAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9VRjh1UjZaNktMYworCkluZGV4OiBMYXlv
dXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxv
d3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3Mt
eW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRU
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1hbGxvd3Mt
eW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVNlY3VyaXR5LVBvbGljeSIgY29udGVudD0icGx1Z2luLXR5cGVzIGFwcGxpY2F0
aW9uL3gtc2hvY2t3YXZlLWZsYXNoIj4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRZb3VUdWJlRmxhc2hQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQodHJ1ZSk7
CisKKy8vIFdhaXRpbmcgYXQgbGVhc3QgMTAwbXMgc2VlbXMgdG8gZW5zdXJlIHRoYXQgWW91VHVi
ZSBwbHVnaW4gcmVwbGFjZW1lbnQgaGFzIGxvYWRlZC4KK3dpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0
aW9uICgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworfSwgMTAwKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8b2Jq
ZWN0IHdpZHRoPSI0MjUiIGhlaWdodD0iMzUwIiBjbGFzc2lkPSJjbHNpZDpkMjdjZGI2ZS1hZTZk
LTExY2YtOTZiOC00NDQ1NTM1NDAwMDAiCisgICAgY29kZWJhc2U9Imh0dHA6Ly9kb3dubG9hZC5t
YWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFzaC5jYWIjdmVyc2lv
bj02LDAsNDAsMCI+CisgICAgPGVtYmVkIHdpZHRoPSI0MjUiIGhlaWdodD0iMzUwIiB0eXBlPSJh
cHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNv
bS92L1VGOHVSNlo2S0xjIj4KKzwvb2JqZWN0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxv
Y2tzLXlvdXR1YmUtcGx1Z2luLXJlcGxhY2VtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBl
cy1ibG9ja3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQtZXhwZWN0ZWQudHh0CShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVn
aW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQg
dG8gbG9hZCBodHRwczovL3d3dy55b3V0dWJlLmNvbS92L1VGOHVSNlo2S0xjIGJlY2F1c2UgaXRz
IE1JTUUgdHlwZSBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIHBsdWdpbi10eXBlcyBkaXJlY3RpdmUg
b2YgdGhlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LgorCkluZGV4OiBMYXlvdXRUZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2lucy10eXBlcy1ibG9ja3MteW91dHViZS1w
bHVnaW4tcmVwbGFjZW1lbnQtd2l0aG91dC1taW1lLXR5cGUtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5z
LXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC13aXRob3V0LW1pbWUtdHlw
ZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbnMtdHlwZXMtYmxvY2tzLXlvdXR1YmUtcGx1Z2luLXJl
cGxhY2VtZW50LXdpdGhvdXQtbWltZS10eXBlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGh0dHBzOi8v
d3d3LnlvdXR1YmUuY29tL3YvVUY4dVI2WjZLTGMgYmVjYXVzZSBpdHMgTUlNRSB0eXBlIGRvZXMg
bm90IGFwcGVhciBpbiB0aGUgcGx1Z2luLXR5cGVzIGRpcmVjdGl2ZSBvZiB0aGUgQ29udGVudCBT
ZWN1cml0eSBQb2xpY3kuCisKSW5kZXg6IExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVu
dC13aXRob3V0LW1pbWUtdHlwZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBs
dWdpbi1yZXBsYWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS5odG1sCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVz
LWJsb2Nrcy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC13aXRob3V0LW1pbWUtdHlwZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiBjb250
ZW50PSJwbHVnaW4tdHlwZXMgdGV4dC9odG1sIj4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRZb3VUdWJlRmxhc2hQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQo
dHJ1ZSk7CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2RvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoInNlY3VyaXR5cG9saWN5dmlvbGF0aW9uIiwgZG9uZSwgZmFsc2UpOworPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxvYmplY3Qgd2lkdGg9IjQyNSIgaGVpZ2h0PSIzNTAiIGNs
YXNzaWQ9ImNsc2lkOmQyN2NkYjZlLWFlNmQtMTFjZi05NmI4LTQ0NDU1MzU0MDAwMCIKKyAgICBj
b2RlYmFzZT0iaHR0cDovL2Rvd25sb2FkLm1hY3JvbWVkaWEuY29tL3B1Yi9zaG9ja3dhdmUvY2Fi
cy9mbGFzaC9zd2ZsYXNoLmNhYiN2ZXJzaW9uPTYsMCw0MCwwIj4KKyAgICA8ZW1iZWQgd2lkdGg9
IjQyNSIgaGVpZ2h0PSIzNTAiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vdi9VRjh1UjZa
NktMYyI+Cis8L29iamVjdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJl
LXBsdWdpbi1yZXBsYWNlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBs
dWdpbi1yZXBsYWNlbWVudC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5cGVzLWJsb2Nrcy15b3V0dWJlLXBs
dWdpbi1yZXBsYWNlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt
U2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJwbHVnaW4tdHlwZXMgdGV4dC9odG1sIj4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRZb3VUdWJlRmxhc2hQbHVn
aW5SZXBsYWNlbWVudEVuYWJsZWQodHJ1ZSk7CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9
CisKK2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlY3VyaXR5cG9saWN5dmlvbGF0aW9uIiwg
ZG9uZSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxvYmplY3Qgd2lkdGg9
IjQyNSIgaGVpZ2h0PSIzNTAiIGNsYXNzaWQ9ImNsc2lkOmQyN2NkYjZlLWFlNmQtMTFjZi05NmI4
LTQ0NDU1MzU0MDAwMCIKKyAgICBjb2RlYmFzZT0iaHR0cDovL2Rvd25sb2FkLm1hY3JvbWVkaWEu
Y29tL3B1Yi9zaG9ja3dhdmUvY2Ficy9mbGFzaC9zd2ZsYXNoLmNhYiN2ZXJzaW9uPTYsMCw0MCww
Ij4KKyAgICA8ZW1iZWQgd2lkdGg9IjQyNSIgaGVpZ2h0PSIzNTAiIHR5cGU9ImFwcGxpY2F0aW9u
L3gtc2hvY2t3YXZlLWZsYXNoIiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3YvVUY4dVI2
WjZLTGMiPgorPC9vYmplY3Q+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>