<?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>223955</bug_id>
          
          <creation_ts>2021-03-30 14:19:04 -0700</creation_ts>
          <short_desc>[macOS] MediaSessionCoordinator should have join and leave methods</short_desc>
          <delta_ts>2021-03-31 16:11:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</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>1745314</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-30 14:19:04 -0700</bug_when>
    <thetext>MediaSessionCoordinator should have join and leave methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745315</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-30 14:19:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/76021588&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745323</commentid>
    <comment_count>2</comment_count>
      <attachid>424697</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-30 14:26:21 -0700</bug_when>
    <thetext>Created attachment 424697
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745718</commentid>
    <comment_count>3</comment_count>
      <attachid>424798</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-31 12:06:21 -0700</bug_when>
    <thetext>Created attachment 424798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745745</commentid>
    <comment_count>4</comment_count>
      <attachid>424809</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-31 13:04:33 -0700</bug_when>
    <thetext>Created attachment 424809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745758</commentid>
    <comment_count>5</comment_count>
      <attachid>424812</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-03-31 13:37:53 -0700</bug_when>
    <thetext>Created attachment 424812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745848</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-31 16:11:19 -0700</bug_when>
    <thetext>Committed r275314: &lt;https://commits.webkit.org/r275314&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424812.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424697</attachid>
            <date>2021-03-30 14:26:21 -0700</date>
            <delta_ts>2021-03-31 12:06:19 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-223955-20210330142620.patch</filename>
            <type>text/plain</type>
            <size>62047</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhlOGMxNzQyNjZhZjFi
ZjQyM2ZkOTFmMzAyNDRlNGE3NjdhNzBiMC4uNmNhNmM0NmQyOGEyZTM1NjYzMmY4NzA0MjBmNmZl
MTk2MmI3OGYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3Igc2hvdWxkIGhhdmUgam9pbiBhbmQgbGVhdmUgbWV0aG9kcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzOTU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjAyMTU4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGV4aXN0aW5nIHRlc3QgdXBk
YXRlZC4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6am9pbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
bGVhdmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtU
byk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnN0YXRlIGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5p
ZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB0ZXN0
aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToKKyAg
ICAgICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOgorCiAyMDIxLTAz
LTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBHZW5lcmFsaXpl
IENvbG9yQ29tcG9uZW50cyB0byBzdXBwb3J0IGFuIGFyYnJpdHJhcnkgbnVtYmVyIG9mIGNvbXBv
bmVudHMgKHRob3VnaCByZWFsbHkgd2Ugd2lsbCBvbmx5IGV2ZXIgd2FudCAzLCA0LCBvciA1KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAxYzlmZGE2MmE2MDhhYTU4ZThiN2VhMDEwMzY4YThiZTE1ODVkN2I5Li5iOTc0
YzRkNzU1NWQ0YTc2N2ZmNjFmNjZhZDFiMjZhZWM0ODk1M2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMyIEBACisyMDIxLTAzLTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgorCisgICAgICAgIFttYWNPU10gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Igc2hvdWxkIGhhdmUg
am9pbiBhbmQgbGVhdmUgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIzOTU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjAyMTU4OD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlUHJveHkuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5Ojpjb29yZGluYXRvclN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL01l
ZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjb29yZGluYXRv
clN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNyZWF0ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIx
LTAzLTMwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5IHNob3VsZCBoYXZlIGEgQ2xpZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCAxNjli
MjFhMWIwMTFkZTkzODM3NGNmZDVlNzY5MmMyZWYwMzkyZDVmLi4yNTVkYzk5OTBhMjdlMTEyMGVi
YjVkMjAwMmJhYmFiZTdhNjc2MzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4MSw2ICsxODEsNyBAQCAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3Rh
dGUuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IDcxNmE4YzVhNzI3ZTU5OWNjYWI2NjkxODgwMGM3NzY4NjVlZDc3ZmMuLmEzYTkx
ZDk0OGQzOGE3NjMyNjQ4MzJhMjA1MGI5NTVlYzBlN2Y0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMzIyLDYgKzEzMjIsOCBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4u
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29y
ZGluYXRvclN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lv
blBsYXlsaXN0TWl4aW4uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1MThl
ZGYxZmQ2NDU0Mzg4ZjY4ZTc0ZTdhMjIyYjBhNzExMTJjYjU1Li4wNzcxMjliZWUzODM4ODIxOThi
OGUwYWE4MmMxZThiMThkYzE1OTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAg
LTIxNSw2ICsyMTUsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yTWl4aW4uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblJlYWR5U3Rh
dGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRleCA5MTkzNDIzNGZiYzBl
YmVmY2ZjMWYyYzFkYmNmZWVhMDRiMzc3MmIyLi41YjI0N2M5YWEzMDQ1ZTMxYzUyZGU2ZDVhNTQ1
NWQ2ZmY2OTIzMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5oIgogI2lu
Y2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIgpAQCAtNjEsNiArNjIsMjgg
QEAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXYKIAogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6On5N
ZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKIAorRXhjZXB0aW9uT3I8dm9pZD4g
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmpvaW4oKQoreworICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUik7CisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0
ZTo6V2FpdGluZykKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
LCBtYWtlU3RyaW5nKCJVbmFibGUgdG8gam9pbiB3aGVuICdzdGF0ZScgaXMgIiwgY29udmVydEVu
dW1lcmF0aW9uVG9TdHJpbmcobV9zdGF0ZSkpIH07CisKKyAgICBtX3N0YXRlID0gTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5j
b29yZGluYXRvclN0YXRlQ2hhbmdlZChtX3N0YXRlKTsKKyAgICByZXR1cm4geyB9OworfQorCitF
eGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bGVhdmUoKQoreworICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsIG1ha2VTdHJpbmcoIlVuYWJsZSB0byBsZWF2ZSB3aGVuICdzdGF0
ZScgaXMgIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobV9zdGF0ZSkpIH07CisKKyAgICBt
X3N0YXRlID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Q2xvc2VkOworICAgIG1fcHJp
dmF0ZUNvb3JkaW5hdG9yLT5jb29yZGluYXRvclN0YXRlQ2hhbmdlZChtX3N0YXRlKTsKKyAgICBy
ZXR1cm4geyB9OworfQorCiB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91
YmxlIHRpbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgYXV0
byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKQEAgLTcyLDcgKzk1LDEzIEBAIHZvaWQgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYgcHJvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3ByaXZhdGVD
b29yZGluYXRvci0+c2Vla1RvKHRpbWUsIFt0aW1lLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9u
YWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgaWYgKG1fc3RhdGUgIT0g
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAgICAgIEVSUk9SX0xP
RyhpZGVudGlmaWVyLCAiLnN0YXRlIGlzICIsIG1fc3RhdGUpOworICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygiVW5hYmxlIHRv
IHNlZWtUbyB3aGVuICdzdGF0ZScgaXMgIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobV9z
dGF0ZSkpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wcml2YXRlQ29vcmRp
bmF0b3ItPnNlZWtUbyh0aW1lLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBp
ZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlv
bj4mJiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1f
c2Vzc2lvbikgewogICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04NCw5ICsxMTMsNiBAQCB2
b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmIHBybwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNu
J3QgYSByZWdpc3RlcmVkICdzZWVrVG8nIGFjdGlvbiBoYW5kbGVyPwotICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5pbnRlcm5hbFNlZWtUbyh0aW1lKTsKLQogICAgICAgICBwcm9taXNlLnJlc29sdmUo
KTsKICAgICB9KTsKIH0KQEAgLTEwMiw2ICsxMjgsMTIgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAiLnN0
YXRlIGlzICIsIG1fc3RhdGUpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygiVW5hYmxlIHRvIHBsYXkgd2hlbiAnc3RhdGUn
IGlzICIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fc3RhdGUpKSB9KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5KFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAg
ICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CiAgICAgICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKQEAgLTExNCw5ICsx
NDYsNiBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAot
ICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24n
dCBhIHJlZ2lzdGVyZWQgJ3BsYXknIGFjdGlvbiBoYW5kbGVyPwotICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5pbnRlcm5hbFBsYXkoKTsKLQogICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9
KTsKIH0KQEAgLTEzMiw2ICsxNjEsMTIgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
cGF1c2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAorICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3Rh
dGU6OkpvaW5lZCkgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIi5zdGF0ZSBpcyAi
LCBtX3N0YXRlKTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsIG1ha2VTdHJpbmcoIlVuYWJsZSB0byBwYXVzZSB3aGVuICdzdGF0ZScgaXMgIiwg
Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobV9zdGF0ZSkpIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBhdXNlKFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAg
IGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CiAgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKQEAgLTE0NCw5ICsxNzksNiBA
QCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSBy
ZWdpc3RlcmVkICdwYXVzZScgYWN0aW9uIGhhbmRsZXI/Ci0gICAgICAgIHByb3RlY3RlZFRoaXMt
PmludGVybmFsUGF1c2UoKTsKLQogICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsK
IH0KQEAgLTE2Miw3ICsxOTQsMTMgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0
VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVkPHYKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFj
aywgW3RyYWNrLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7CisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAiLnN0YXRl
IGlzICIsIG1fc3RhdGUpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygiVW5hYmxlIHRvIHNldFRyYWNrIHdoZW4gJ3N0YXRl
JyBpcyAiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX3N0YXRlKSkgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+c2V0VHJhY2sodHJh
Y2ssIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikg
bXV0YWJsZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CiAgICAg
ICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsK
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3NCw5ICsyMTIsNiBAQCB2b2lkIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcmIHRyYWNrLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gRklY
TUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVk
ICdzZXRUcmFjaycgYWN0aW9uIGhhbmRsZXI/Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPmludGVy
bmFsU2V0VHJhY2sodHJhY2spOwotCiAgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKaW5kZXggMDY5OWNlOGZmNDM3NzI2ZjM5Y2Yx
NzZmNzQzOTY1ODRiZGY3N2EyZi4uN2Y3ZjJhNTZlODlhNjE5YjhiOGY4MTVkNzRmNGJlYjgyOGQ2
OWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNp
bmNsdWRlICJNZWRpYVNlc3Npb24uaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmgiCiAj
aW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1
ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KQEAgLTQ1LDYgKzQ2LDEyIEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoUmVm
PE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
fk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7CiAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBqb2lu
KCk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gbGVhdmUoKTsKKworICAgIFN0cmluZyBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlQ29vcmRpbmF0b3ItPmlkZW50aWZpZXIoKTsg
fQorICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3N0YXRlOyB9CisKICAgICB2b2lkIHNlZWtUbyhkb3VibGUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKICAgICB2b2lkIHBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwog
ICAgIHZvaWQgcGF1c2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpAQCAtODAsNiArODcs
NyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSB7IHJl
dHVybiAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9CiAKICAgICBXZWFrUHRyPE1lZGlhU2Vz
c2lvbj4gbV9zZXNzaW9uOworICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgbV9zdGF0
ZSB7IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OldhaXRpbmcgfTsKICAgICBSZWY8TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiBtX3ByaXZhdGVDb29yZGluYXRvcjsKICAgICBS
ZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZp
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKaW5kZXggZWMwNWFiODkwZWExODI2ZDBm
ZTcxMzBiNWQzMmI0MmQ3YjQ2MjNkOS4uN2ZjZWI0ZDgzZWQ4Zjg4ZmY4N2JjNjVkZWI1MzdjMTFk
YzhlYTg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbApAQCAtMjksNiArMjksMTMg
QEAKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwK
IF0gaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHsKKworICAgIHVuZGVmaW5lZCBq
b2luKCk7CisgICAgdW5kZWZpbmVkIGxlYXZlKCk7CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nPyBpZGVudGlmaWVyOworCiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNlZWtU
byh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBwbGF5
KCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBhdXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZS5oCmluZGV4IDVhYmRlMTVlYmVhOTI4YjRmNjcxZWFhOGUzNWIyYTVj
N2RjYTc4MGQuLjg4ZWZhYjA1NTEwM2FkNzU0NmUxNTZmOWFmNzM1NTQ0YzY1MGVmODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJFeGNlcHRpb24uaCIKICNpbmNsdWRlICJNZWRpYVBvc2l0aW9uU3RhdGUuaCIK
KyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmgiCiAjaW5jbHVkZSAiTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGUuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTUzLDYgKzU0LDggQEAgY2xhc3Mg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb25Db29y
ZGluYXRvclByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBpZGVudGlm
aWVyKCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3VibGUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9u
PiYmKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpID0gMDsKQEAgLTYxLDYgKzY0LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBPcHRpb25h
bDxNZWRpYVBvc2l0aW9uU3RhdGU+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRl
Q2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBs
YXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JTdGF0ZSkgPSAwOwogCiAgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgV1RGOjpMb2dnZXImLCBj
b25zdCB2b2lkKik7CiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChXZWFrUHRyPE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7fQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MmViZTE2MzY4ZGRj
YjQ5NGUyMjA1M2M2NzdmNjk1ZDliNzUzZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmgK
QEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIDogdWludDhfdCB7CisgICAgV2Fp
dGluZywKKyAgICBKb2luZWQsCisgICAgQ2xvc2VkLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JT
dGF0ZSwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6V2Fp
dGluZywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9p
bmVkLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpDbG9z
ZWQKKyAgICA+OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09P
UkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ0ZDljMWI2MDUyYTk0ZmIzYmEyZWMxMTcwMGVkOTUzYzViYTEwZjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvclN0YXRlLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAg
IENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsCitdIGVudW0gTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZSB7CisgICAgIndhaXRpbmciLAorICAgICJqb2luZWQiLAorICAg
ICJjbG9zZWQiCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNGRkNDYzZTAyM2FkZDZlYzI0YWNkZDE5
OGY5OTFhMGZmZjcxMWUzLi4yYmJmZjNlNzk1MGI2OGZjOGEyYjFkMmRkODBlNmJiZWJlYmEyYjQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMzIzMyw2ICszMjMzLDcgQEAgSlNNZWRpYUtleXNSZXF1aXJl
bWVudC5jcHAKIEpTTWVkaWFMaXN0LmNwcAogSlNNZWRpYU1ldGFkYXRhLmNwcAogSlNNZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAKK0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5jcHAK
IEpTTWVkaWFNZXRhZGF0YUluaXQuY3BwCiBKU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAKIEpTTWVk
aWFRdWVyeUxpc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYTA0MDBjMzcwN2JhNjMxOGQ5ODAwODcxNzlmN2JkZmU4NTA5
OWRkOS4uYTIxNjZkODBmNmE2YjAzMTI2ZjdhNzczZGEwZjQ1MjEwNzllMjUwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE4
LDYgKzIxOCw3IEBACiAJCTA3QjkzRkZDMjNCOTRFQzcwMDM2RjhFQSAvKiBNSU1FVHlwZUNhY2hl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0I5M0ZG
OTIzQjkyQUFBMDAzNkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3QzA0NkM0MUU0MjUwOEIwMDcyMDFFNyAv
KiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzU4MUU0MERDRkQwMDcxQzBFQyAvKiBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwN0MwNDZDQjFFNDI2NDEzMDA3MjAxRTcgLyogQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
Qjg3NTYxRTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwN0MxNDgyRTI2MTJB
MjFGMDA3NzU4MjggLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QkE1ODgyNjEyNkQ2NjAwNzJG
MTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0MxQzBFMjFCRkI2MDAxMDBCRDIyNTYg
LyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0MxQzBFMDFCRkI2MDAxMDBCRDIyNTYgLyogTWVk
aWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi87IH07CiAJCTA3QzFDMEU1MUJGQjYwRUQw
MEJEMjI1NiAvKiBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QzFDMEU0MUJGQjYw
RUQwMEJEMjI1NiAvKiBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0NCOUU3
MjI0OUMzNkIyMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0NCOUU2RjI0OUMy
MjZDMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gKi87IH07CkBA
IC01ODYxLDYgKzU4NjIsOCBAQAogCQkwNzdCNjQxNTFCOTVGNzAzMDAzRTlBRDUgLyogTWVkaWFQ
bGF5YmFja1RhcmdldE1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFQbGF5YmFja1RhcmdldE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc3
QkE1N0MyNjBGRTczODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc3QkE1N0QyNjBGRTczOTAwNzJGMTlGIC8qIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNl
c3Npb25Db29yZGluYXRvclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwNzdCQTU4ODI2MTI2RDY2MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3N0JBNThBMjYxMjZENkIwMDcyRjE5RiAvKiBNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4MzIyODIxODAxM0VE
NzAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4NDYz
NDAxNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJhY2tFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1RyYWNrRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTkzMSw2ICs1OTM0LDEwIEBACiAJCTA3QjcxMTZDMUQ4OTlFNjMwMDlGMEZG
QiAvKiBDYXB0dXJlRGV2aWNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDYXB0dXJlRGV2aWNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0I5M0ZGOTIzQjkyQUFBMDAzNkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNSU1FVHlwZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Qjkz
RkZCMjNCOTJBQUIwMDM2RjhFQSAvKiBNSU1FVHlwZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1JTUVUeXBlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0Mx
NDgyOTI2MTI5NTVDMDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwN0MxNDgyQjI2MTI5NTVEMDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25SZWFk
eVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzE0ODJDMjYxMjk1NUUwMDc3NTgy
OCAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDdDMTQ4MkQyNjEyOTU1RjAwNzc1ODI4IC8qIEpTTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDMUMwRTAxQkZCNjAwMTAw
QkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDMUMwRTExQkZCNjAwMTAwQkQyMjU2IC8qIE1l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI4NDE0LDYgKzI4NDIxLDggQEAKIAkJCQkwNzM2QjczMDI2MDk0QTM3
MDBFMDY5OTQgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwgKi8sCiAJCQkJMDc3
QkE1N0QyNjBGRTczOTAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5j
cHAgKi8sCiAJCQkJMDc3QkE1N0MyNjBGRTczODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZS5oICovLAorCQkJCTA3N0JBNTg4MjYxMjZENjYwMDcyRjE5RiAvKiBNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlLmggKi8sCisJCQkJMDc3QkE1OEEyNjEyNkQ2QjAwNzJG
MTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsICovLAogCQkJCUNERERFQTI5
MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggKi8sCiAJCQkJ
Q0REREVBMjgyNTM4Q0RDQjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaWRs
ICovLAogCQkJCTA3MzZCNzMyMjYwOTU1NTQwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25QbGF5bGlz
dE1peGluLmlkbCAqLywKQEAgLTI4NDQ3LDggKzI4NDU2LDEyIEBACiAJCQkJQ0REREVBNEUyNTM5
MTNCQzAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAogCQkJCTA3
MkRCQzA3MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAq
LywKIAkJCQkwNzJEQkMwNjI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oICovLAorCQkJCTA3QzE0ODJDMjYxMjk1NUUwMDc3NTgyOCAvKiBKU01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yU3RhdGUuY3BwICovLAorCQkJCTA3QzE0ODJEMjYxMjk1NUYwMDc3NTgyOCAv
KiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCAqLywKIAkJCQlDRERERUE0NjI1Mzkx
MUREMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmNwcCAqLywKIAkJCQlD
RERERUE0MjI1MzkxMURDMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmgg
Ki8sCisJCQkJMDdDMTQ4MkIyNjEyOTU1RDAwNzc1ODI4IC8qIEpTTWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZS5jcHAgKi8sCisJCQkJMDdDMTQ4MjkyNjEyOTU1QzAwNzc1ODI4IC8qIEpTTWVkaWFTZXNz
aW9uUmVhZHlTdGF0ZS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBNZWRpYVNlc3Npb247CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzQwMjEsNiArMzQwMzQsNyBAQAogCQkJCTA3N0JB
NTc4MjYwRkFFREIwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzdCQTU3MTI2MEY5Rjc2MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3N0JBNTdFMjYwRkVGMzYwMDcyRjE5RiAv
KiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3
QzE0ODJFMjYxMkEyMUYwMDc3NTgyOCAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTZFQ0FFNTI1QjU4Q0M0MDBCMzREQTUgLyogTWVkaWFTZXNz
aW9uR3JvdXBJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREE5NTkzRjI0MTJCQUUw
MDA5MTBFRUYgLyogTWVkaWFTZXNzaW9uSGVscGVySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTQ0NjBBMjI0MTI5OTQ1MDA4MTRCRTcgLyogTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHAKaW5kZXggMjQyMTQyODE3NGFkOGI0NjMzZjAxNDc0ZDMxYjE5
MDYzMGMzMWQ4Yi4uMjE5ZTk1ZTA2MzIyYzQ3OTIyMjUzZGU0ZWExZDI0Mjk1ZDkxMWY1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmNwcApAQCAtMTA5LDYgKzEwOSwxMiBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZQog
ICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0
KCksICJwbGF5YmFja1N0YXRlQ2hhbmdlZCIpOwogfQogCit2b2lkIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJ
RVIsIHN0YXRlKTsKKyAgICBtX3N0YXRlQ2hhbmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2so
bV9jb250ZXh0LmdldCgpLCAiY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQiKTsKK30KKwogV1RGTG9n
Q2hhbm5lbCYgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsb2dDaGFubmVsKCkgY29uc3QK
IHsKICAgICByZXR1cm4gTG9nTWVkaWE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAppbmRleCBiNGRkY2Y1MWQxYWNiMjFiYTY0
ZTZiMTgyZGQ3NGRkNDM0MGNhYTk0Li43MmU1NTAyMmQwYzdhZjk5YzVhMGJmY2VhMzQ1MzczM2Yw
OGIyYWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJl
ZlB0cjxTdHJpbmdDYWxsYmFjaz4mJik7CiAKKyAgICBTdHJpbmcgaWRlbnRpZmllcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJNb2NrIENvb3JkaW5hdG9yIjsgfQogICAgIHZvaWQgc2Vla1RvKGRv
dWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSBm
aW5hbDsKICAgICB2b2lkIHBsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNl
cHRpb24+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CkBAIC01NSw2ICs1Niw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBPcHRpb25hbDxNZWRp
YVBvc2l0aW9uU3RhdGU+JikgZmluYWw7CiAgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChNZWRp
YVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKICAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2Vk
KE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpIGZpbmFsOworICAgIHZvaWQgY29vcmRpbmF0b3JT
dGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSkgZmluYWw7CiAKICAgICBj
b25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yIjsgfQogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9N
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4ZTMxNmM3ZTBiMDM4ZjIzNTRmMDQ4ODg0NGNmZGJjMzhmNzg1MjE3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLQotI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eQotICAgIDogcHVibGljIENh
bk1ha2VXZWFrUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PgotICAgICwg
cHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+IHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94
eSgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YSYpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBhdXNlKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKSA9IDA7Ci0KLSAgICB2
aXJ0dWFsIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6
TWVkaWFQb3NpdGlvblN0YXRlPiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNo
YW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYWtQdHI8V2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVu
dDsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlUHJveHkoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXZWFrUHRyPFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsg
fQotCi1wcml2YXRlOgotICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JDbGllbnQ+IG1fY2xpZW50OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5UHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyZGRkZWQwYTg5ZjgzNDhiZjdlNmRjMjg4
ZGJjYzMzZmNmNWVjNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oCkBAIC0wLDAgKzEs
NjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25Db29yZGlu
YXRvclByaXZhdGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHlQcml2YXRlCisgICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGU+CisgICAgLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZT4geworcHVibGljOgorICAgIHZpcnR1YWwg
fk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlKCkgPSBkZWZhdWx0OworCisgICAg
dmlydHVhbCBTdHJpbmcgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4
Y2VwdGlvbkRhdGEmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YSYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFRyYWNrKGNvbnN0
IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YSYpPiYmKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlPiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvb3Jk
aW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2Vha1B0cjxXZWJDb3JlOjpNZWRp
YVNlc3Npb25Db29yZGluYXRvckNsaWVudD4gY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9
CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5
UHJpdmF0ZSgpID0gZGVmYXVsdDsKKworICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JDbGllbnQ+IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CisK
K3ByaXZhdGU6CisgICAgV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNs
aWVudD4gbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5LmNwcAppbmRleCBlYzJmZDFmNjA2MDE4YzI5NzVkN2MyNDUwYjI3ODAxOGNk
M2RlYzZlLi4xYWJmNjVhYzAyNDg3ZmNiYTkwZjljZWZhZGU3ZGZmMmY0NzQyYmUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAKLSNpbmNsdWRlICJNZWRpYVNl
c3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHlQcml2YXRlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eS5oIgpAQCAtMzksMTIgKzM5LDEyIEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWZQdHI8UmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Y3Jl
YXRlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlUHJveHk+JiYgcHJpdmF0ZUNvb3JkaW5hdG9yKQorUmVmUHRyPFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgUmVmPE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHlQcml2YXRlPiYmIHByaXZhdGVDb29yZGluYXRvcikKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KHdlYlBh
Z2VQcm94eSwgV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0b3IpKSk7CiB9CiAKLVJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGVQcm94eT4mJiBwcml2YXRlQ29vcmRpbmF0b3IpCitSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KFdlYlBh
Z2VQcm94eSYgd2ViUGFnZVByb3h5LCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVBy
aXZhdGU+JiYgcHJpdmF0ZUNvb3JkaW5hdG9yKQogICAgIDogbV93ZWJQYWdlUHJveHkod2ViUGFn
ZVByb3h5KQogICAgICwgbV9wcml2YXRlQ29vcmRpbmF0b3IoV1RGTW92ZShwcml2YXRlQ29vcmRp
bmF0b3IpKQogICAgICwgbV9sb2dnZXIobV93ZWJQYWdlUHJveHkubG9nZ2VyKCkpCkBAIC0xNDEs
NiArMTQxLDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6c2V0
U2Vzc2lvblRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2tJZCwKICAgICBtX3dlYlBhZ2VQcm94eS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpTZXRTZXNzaW9uVHJhY2sgeyB0cmFja0lkIH0sIGNhbGxiYWNrKTsKIH0KIAordm9pZCBSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRvclN0YXRlQ2hhbmdlZChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIHN0YXRlKQoreworICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUik7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPmNvb3JkaW5h
dG9yU3RhdGVDaGFuZ2VkKHN0YXRlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHkuaAppbmRleCBkNDhlNjJkY2FlY2YwODFmNTUxNTVjODFiZDU0MGJj
MDQzMzUxZDBhLi4xMjBkNDUzNWVhYWJkY2MwMDAyMGIzMGI4NmJlMjQ0ZjJlNDMxNTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKIAotI2luY2x1ZGUgIk1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eVByaXZhdGUuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAt
NDYsMTYgKzQ2LDE5IEBAIGNsYXNzIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkK
ICAgICAsIHB1YmxpYyBXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5JiwgUmVm
PE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiYmKTsKKyAgICBzdGF0aWMgUmVm
PFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkm
LCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGU+JiYpOwogICAgIH5SZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KCk7CiAKLSAgICB2b2lkIHNlZWtUbyhkb3Vi
bGUpOwotICAgIHZvaWQgcGxheSgpOwotICAgIHZvaWQgcGF1c2UoKTsKLSAgICB2b2lkIHNldFRy
YWNrKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOworICAgIHZvaWQgcGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKKworICAgIHVzaW5nIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xp
ZW50Ojp3ZWFrUHRyRmFjdG9yeTsKKyAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0gTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JDbGllbnQ6OldlYWtWYWx1ZVR5cGU7CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkmLCBS
ZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+JiYpOworICAgIGV4cGxpY2l0
IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlPiYmKTsKIAogICAgIHVzaW5nIENvb3Jk
aW5hdGVDb21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YSYpPjsKIApAQCAtNzAsNiArNzMsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlv
blN0YXRlPik7CiAgICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Np
b25SZWFkeVN0YXRlKTsKICAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpOworICAgIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5n
ZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSk7CiAKICAgICAvLyBNZWRp
YVNlc3Npb25Db29yZGluYXRvckNsaWVudAogICAgIHZvaWQgc2Vla1Nlc3Npb25Ub1RpbWUoZG91
YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKQEAgLTc4LDcgKzgy
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPikgZmluYWw7CiAKICAgICBXZWJQYWdlUHJveHkm
IG1fd2ViUGFnZVByb3h5OwotICAgIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQ
cm94eT4gbV9wcml2YXRlQ29vcmRpbmF0b3I7CisgICAgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJveHlQcml2YXRlPiBtX3ByaXZhdGVDb29yZGluYXRvcjsKICAgICBSZWY8Y29uc3QgTG9n
Z2VyPiBtX2xvZ2dlcjsKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
OTZiNjBkMzk4ODExYjdkODI1MmViYThmZTkwZmFjMTMwNmU1ZGJlYS4uNmQ2MzU2ZWFiMzdjY2Zl
N2VkNWM5ZDY3ZGI0MzBiMWRjY2NlMzA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zOSw2ICszOSw4IEBAIG1lc3NhZ2VzIC0+
IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAg
UmVhZHlTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGUgc3RhdGUpOwogCiAgICAgUGxheWJhY2tTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpOworCisgICAgQ29vcmRpbmF0
b3JTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yU3RhdGUgc3RhdGUpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IGRlZTYxNzU4NWFmNGM4OGZjZmRiNWFlNmU2MzBhMGI0MjdkZjAw
YWIuLjc1OGEwZjM1YWE1OTc5MzkwN2E5MTEwNTg3ZTI5ZWNiOTliMWYxZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjk3LDcgKzI5Nyw3IEBACiAjZW5k
aWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQotI2luY2x1ZGUgIk1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgiCisjaW5jbHVkZSAiTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5LmgiCiAjZW5kaWYKIApAQCAtMTAzODMsMTEgKzEwMzgzLDExIEBA
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29y
a0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5zCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNT
SU9OX0NPT1JESU5BVE9SKQotdm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJiBwcml2
YXRlQ29vcmRpbmF0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vha1B0cjxSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YlBhZ2VQcm94eTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHlQcml2YXRlPiYmIHByaXZhdGVDb29yZGluYXRvciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWFrUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIW1fbWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eSk7CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBh
Z2U6OkNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKSwgcHJpdmF0ZUNvb3JkaW5hdG9yID0gV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0
b3IpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29s
IHN1Y2Nlc3MpIG11dGFibGUgeworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UGFnZTo6Q3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IocHJpdmF0ZUNvb3JkaW5hdG9yLT5p
ZGVudGlmaWVyKCkpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByaXZhdGVDb29y
ZGluYXRvciA9IFdURk1vdmUocHJpdmF0ZUNvb3JkaW5hdG9yKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKIAog
ICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFzdWNjZXNzKSB7CiAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcih7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCA4YWZhYTc4YzJjZDI4NGE5NTIyNTBiMzU0OTE1YjY1YjIyNTIyMDE3Li5lYTliMGMxNGExZGM2
ZGE4ODc0NGM2YWYwNjM3ZmU5NDEyNGYxM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMzI5LDcgKzMyOSw3IEBAIGNsYXNzIE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQ7CiBjbGFzcyBOYXRpdmVXZWJNb3VzZUV2ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVu
dDsKIGNsYXNzIFBhZ2VDbGllbnQ7Ci1jbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZh
dGVQcm94eTsKK2NsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlOwogY2xh
c3MgUHJvdmlzaW9uYWxQYWdlUHJveHk7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVIb3N0OwogY2xh
c3MgUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhOwpAQCAtMTg4OCw3ICsx
ODg4LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxNZWRp
YVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWFrUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+KT4mJik7CisgICAg
dm9pZCBjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eVByaXZhdGU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vha1B0cjxSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Pik+JiYpOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDBhNjllMmM2ZWJiMjc5YjYyZjQzZjdlNGQ3MzNlOTM0N2EzNGEwNTAuLjk3
MjM4Njc2YWJkMDBjY2I0ODI4MTZiNDM5YzU3ZTE1Y2I2ZTA2ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM5Myw3ICsyMzkzLDcg
QEAKIAkJMDc0RTc2MDExREY3MDc1RDAwRDMxOEVDIC8qIE1lZGlhRGV2aWNlU2FuZGJveEV4dGVu
c2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VTYW5k
Ym94RXh0ZW5zaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZFODg0RDFB
MTNDQURGMDA1RTkwRkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQVBJQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDc2RTg4NEYxQTEzQ0JDNjAwNUU5MEZDIC8qIEFQSUluamVjdGVkQnVu
ZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSUluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTA3N0JBNTcwMjYwRThGNjMwMDcyRjE5RiAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGVQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25D
b29yZGluYXRvclByaXZhdGVQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzdCQTU3MDI2MEU4RjYzMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5
OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzkyMzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3OTIzMTMyMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTI1NSw3ICsxMTI1NSw3
IEBACiAJCQkJQ0Q0NTcwREQyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkuY3BwICovLAogCQkJCUNENDU3MERCMjQ0NENBNTgwMEEzRENFQiAvKiBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmggKi8sCiAJCQkJQ0Q0NTcwREMyNDQ0
Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2Fn
ZXMuaW4gKi8sCi0JCQkJMDc3QkE1NzAyNjBFOEY2MzAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZVByb3h5LmggKi8sCisJCQkJMDc3QkE1NzAyNjBFOEY2MzAwNzJGMTlG
IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmggKi8sCiAJCQkJMDc5NEI0
QUUyNDQ1MjRCMDAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyLmNwcCAqLywKIAkJCQkwNzk0
QjRBQzI0NDUxQkI5MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXIuaCAqLywKIAkJCQkwNzM2
Qjc1QzI2MEQ0QTRFMDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNz
aW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmlu
ZGV4IDQ5MDQ2YzJkZWNiYjYxMDZlYjhlY2QxZTE3ZDU0MzVjMjY2MDVjYTYuLjdkM2FiMjRjNGEy
YmM4ZGZmMGM2MDEyMDEyMDZmN2U1ZjEyMjU0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC00NSwxMyArNDUsMTQgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJl
ZjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OmNyZWF0ZShXZWJQYWdlJiBwYWdlKQorUmVmPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yPiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKFdlYlBhZ2UmIHBh
Z2UsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihwYWdlKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IocGFnZSwgaWRlbnRpZmllcikp
OwogfQogCi1SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6UmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IoV2ViUGFnZSYgcGFnZSkKK1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihXZWJQYWdlJiBwYWdlLCBjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIpCiAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICAsIG1faWRlbnRpZmllcihp
ZGVudGlmaWVyKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSwgKnRoaXMpOwogfQpAQCAtMTUxLDYgKzE1
MiwxMiBAQCB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRl
Q2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbAogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpQbGF5YmFja1N0YXRlQ2hhbmdl
ZCB7IHN0YXRlIH0sIDApOwogfQogCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Ojpjb29yZGluYXRvclN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklF
Uiwgc3RhdGUpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvclByb3h5OjpDb29yZGluYXRvclN0YXRlQ2hhbmdlZCB7IHN0YXRlIH0sIDApOwor
fQorCiB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrU2Vzc2lvblRvVGlt
ZShkb3VibGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHRp
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9S
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCmluZGV4IDQ1OGJl
NDNjZGFiZDMxN2I0MzM4YTFjOWE4M2U4M2JiOTkxOGZlZTMuLjI1Y2EyZmRmYmE1M2E4N2I0MjNh
ZTg4NzhiODljZjIzYmViMGNmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmgKQEAgLTQ0LDExICs0NCwxMSBAQCBjbGFzcyBXZWJQYWdlOwogY2xhc3MgUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlICwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoV2ViUGFnZSYpOworICAgIHN0YXRpYyBS
ZWY8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShXZWJQYWdlJiwgY29uc3Qg
U3RyaW5nJik7CiAgICAgflJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7CiAKIHByaXZh
dGU6Ci0gICAgZXhwbGljaXQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoV2ViUGFnZSYp
OworICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFdlYlBhZ2UmLCBj
b25zdCBTdHJpbmcmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7
CkBAIC02MCw2ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRTZXNzaW9uVHJhY2soY29u
c3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKICAgICAvLyBN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUgb3ZlcnJpZGVzLgorICAgIFN0cmluZyBpZGVu
dGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgdm9pZCBz
ZWVrVG8oZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4
Y2VwdGlvbj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQg
cGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+
JiYpPiYmKSBmaW5hbDsKQEAgLTY4LDExICs2OSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9z
aXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0
YXRlPiYpIGZpbmFsOwogICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKKyAgICB2b2lkIGNvb3Jk
aW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUp
IGZpbmFsOwogCiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgeyByZXR1cm4g
IlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQogICAgIFdURkxvZ0NoYW5uZWwmIGxv
Z0NoYW5uZWwoKSBjb25zdDsKIAogICAgIFdlYlBhZ2UmIG1fcGFnZTsKKyAgICBTdHJpbmcgbV9p
ZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc5MmQzNGMxMTA4NzU5OTAxMzMx
ZmFiNjk4YTg3MjY0NWIzZWU2MjguLjMxMzEzZmE5YzY5ZjUxMWI0ZjdiZTEzZmVkMTkyOWNjN2Iz
YzllZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC03Mzg3LDcgKzczODcsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlc3RvcmVBcHBIaWdobGlnaHRz
KGNvbnN0IFZlY3RvcjxTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZT4mJiBtZW1vcgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLXZvaWQgV2ViUGFnZTo6Y3Jl
YXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gbV9t
YWluRnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5kb21XaW5kb3coKSkgewpAQCAtNzM5Niw3ICs3Mzk2LDcgQEAgdm9pZCBXZWJQ
YWdlOjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXAKICAgICB9CiAKICAgICBhdXRvJiBzZXNzaW9uID0gTmF2aWdhdG9yTWVk
aWFTZXNzaW9uOjptZWRpYVNlc3Npb24oZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5uYXZpZ2F0b3Io
KSk7Ci0gICAgYXV0byBjb29yZGluYXRvciA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpjcmVhdGUoKnRoaXMpOworICAgIGF1dG8gY29vcmRpbmF0b3IgPSBSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6Y3JlYXRlKCp0aGlzLCBpZGVudGlmaWVyKTsKICAgICBtX3JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0gY29vcmRpbmF0b3IucHRyKCk7CiAgICAgbV9tZWRpYVNl
c3Npb25Db29yZGluYXRvciA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoY29vcmRp
bmF0b3IuZ2V0KCkpOwogICAgIHNlc3Npb24uc2V0Q29vcmRpbmF0b3IobV9tZWRpYVNlc3Npb25D
b29yZGluYXRvci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggYzU0YTYxOGRiNDZhMTJkZTAxYTU4NjM0NmE2NmU5MTdmNzRjYTJkYi4uZTBi
NWVjMWVlNTNmODFhOTI2MWY0NmJhYjY0M2NjZTFlZDc3NjRlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQxMyw3ICsxNDEzLDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLSAgICB2
b2lkIGNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOworICAgIHZvaWQgY3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAogICAg
IHZvaWQgc2V0TGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZChib29sIHdhc0FwcEJvdW5kKSB7IG1f
bGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCA9IHdhc0FwcEJvdW5kOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBj
OGU2NDZhZWRlYmM0YWExMjBhM2FiZTlkYWQ3NjE4MWU0MTlkYTZlLi5lNThmOTY3OTc1YjExYWM2
NTY1NzM5OGNkNDgwMTdkYTQ1MTQxMjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTYzNSw3ICs2MzUsNyBAQCBH
ZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIExhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoKSAt
PiAoYm9vbCB3YXNBcHBCb3VuZCkgQXN5bmMKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NP
T1JESU5BVE9SKQotICAgIENyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgLT4gKGJvb2wg
c3VjY2VzcykgQXN5bmMKKyAgICBDcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihTdHJpbmcg
aWRlbnRpZmllcikgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKICNlbmRpZgogCiAjaWYgRU5BQkxF
KElNQUdFX0VYVFJBQ1RJT04pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMzYWJlOTkzNTcw
NTY5MzgyODg0MjY1NzA5ZWE4ZjVkYzU2ZWZiZmYuLmIwZTdmYTU0N2NmMTRkYzI4OTZkZGQ2YmY3
ZDJlZGIwNDg2YjdmZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OCw2ICs0OCw3IEBA
CiAJCTA0MUExRTM0MjE2RkZEQkMwMDc4OUUwQSAvKiBQdWJsaWNTdWZmaXguY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDQxQTFFMzMyMTZGRkRCQzAw
Nzg5RTBBIC8qIFB1YmxpY1N1ZmZpeC5jcHAgKi87IH07CiAJCTA0REIyMzk2MjM1RTQzRUMwMDMy
OEYxNyAvKiBCdW1wUG9pbnRlckFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNDUxQTVBNjIzNUU0MzhFMDA5REY5NDUgLyogQnVtcFBv
aW50ZXJBbGxvY2F0b3IuY3BwICovOyB9OwogCQkwNzExREY1MjIyNkE5NUZDMDAzREQyRjcgLyog
QVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcxMURGNTEyMjZBOTVGQjAwM0REMkY3IC8qIEFWRm91bmRhdGlv
blNvZnRMaW5rVGVzdC5tbSAqLzsgfTsKKwkJMDcyNTcyQkUyNjEzN0Y3MTAwQkFGRkI0IC8qIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI1NzJCRDI2MTM3RjcxMDBCQUZGQjQgLyogTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JUZXN0LmNwcCAqLzsgfTsKIAkJMDc0OTJCM0IxREY4QjE0QzAwNjMzREUx
IC8qIEVudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ5MkIzQTFERjhBRTJEMDA2MzNERTEgLyogRW51bWVyYXRl
TWVkaWFEZXZpY2VzLmNwcCAqLzsgfTsKIAkJMDc0OTJCM0MxREY4Qjg2NjAwNjMzREUxIC8qIGVu
dW1lcmF0ZU1lZGlhRGV2aWNlcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NDkyQjM5MURGOEFEQTQwMDYzM0RFMSAvKiBlbnVtZXJh
dGVNZWRpYURldmljZXMuaHRtbCAqLzsgfTsKIAkJMDc0OTk0NDIxRUE1MDM0QjAwMERBNDRFIC8q
IGdldFVzZXJNZWRpYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRVc2VyTWVkaWEu
aHRtbCAqLzsgfTsKQEAgLTE3NTMsNiArMTc1NCw3IEBACiAJCTA0MUExRTMzMjE2RkZEQkMwMDc4
OUUwQSAvKiBQdWJsaWNTdWZmaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHVibGljU3VmZml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDQ1
MUE1QTYyMzVFNDM4RTAwOURGOTQ1IC8qIEJ1bXBQb2ludGVyQWxsb2NhdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1bXBQb2ludGVyQWxsb2NhdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcxMURGNTEyMjZBOTVGQjAwM0REMkY3IC8q
IEFWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEFWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDcyNTcyQkQyNjEzN0Y3MTAwQkFGRkI0IC8qIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZWRpYVNlc3Npb25Db29yZGluYXRvclRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzQ2NjQ1NzIyRkY2MkQwMDBFMzQ1MUEgLyogQWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0
UHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0UHJvdG9j
b2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NjY0NTgyMkZGNjMwNTAwRTM0
NTFBIC8qIEFjY2Vzc2liaWxpdHlUZXN0UGx1Z2luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QWNjZXNzaWJpbGl0eVRlc3RQbHVnaW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3NDkyQjM5MURGOEFEQTQwMDYzM0RFMSAvKiBlbnVtZXJhdGVNZWRpYURldmljZXMuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGVudW1lcmF0ZU1lZGlhRGV2aWNlcy5odG1sOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDI2OCw2ICs0MjcwLDcgQEAKIAkJCQkzM0RD
ODkxMDE0MTk1M0EzMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxi
YWNrLmNwcCAqLywKIAkJCQkzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVk
Tm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi8sCiAJCQkJOEFBMjhDMTkxNkQy
RkE3QjAwMkZGNERCIC8qIExvYWRQYWdlT25DcmFzaC5jcHAgKi8sCisJCQkJMDcyNTcyQkQyNjEz
N0Y3MTAwQkFGRkI0IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5jcHAgKi8sCiAJCQkJ
Q0RDOTQ0MkMxRUYxRkMwODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSAq
LywKIAkJCQk3QTU2MjMxMDFBRDVBRjNFMDA5NkI5MjAgLyogTWVudVR5cGVzRm9yTW91c2VFdmVu
dHMuY3BwICovLAogCQkJCTUxQ0I0QUQ3MUIzQTA3OUMwMEMxQjFDNiAvKiBNb2RhbEFsZXJ0c1NQ
SS5jcHAgKi8sCkBAIC01NDg5LDYgKzU0OTIsNyBAQAogCQkJCTA3RUY3NkQ1MjU0MEZDMDYwMDUz
RUQ1MyAvKiBNZWRpYU11dGVkU3RhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREEzMTU5ODFF
RDUzNjUxMDA5RjYwRDMgLyogTWVkaWFQbGF5YmFja1NsZWVwQXNzZXJ0aW9uLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDc5NDc0MEQyNUNBMEJERTAwQzU5N0VCIC8qIE1lZGlhU2Vzc2lvbi5tbSBp
biBTb3VyY2VzICovLAorCQkJCTA3MjU3MkJFMjYxMzdGNzEwMEJBRkZCNCAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvclRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDOTQ0MkUxRUYxRkMw
ODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTUxQkU5RTY2MjM3NjA4OUYwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0VDNTFBNDExQTdFMDA0NDdDNEMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0
aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYTJlNTcw
NTMyMDZhZDg2NmUwNGZkNTkyZDRkZWFlYzM5OWU1ZmJlLi40ZjE2M2FhYmViNjNlZDM1NDYwZmZk
NzgzOGFkMmMzNjc1MjZhNWY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMtMzAgIEVy
aWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBN
ZWRpYVNlc3Npb25Db29yZGluYXRvciBzaG91bGQgaGF2ZSBqb2luIGFuZCBsZWF2ZSBtZXRob2Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM5NTUK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MDIxNTg4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNv
b3JkaW5hdG9yLmh0bWw6CisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3Jk
aW5hdG9yLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMy0zMCAgQ2hyaXMgR2FtYnJlbGwgIDxjZ2Ft
YnJlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFtMYXlvdXRUZXN0c10gQ29udmVydCBodHRwL3Rl
c3RzL2NvbnRlbnRleHRlbnNpb25zIGNvbnZlcnQgUEhQIHRvIFB5dGhvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbAppbmRl
eCA1NzgxMTRhOGI1MzBmNGRkOTljMzExOGQ5YTU3MmZlYjVlNWMxNzRkLi42MmEwMzEyOWE4YmI5
NzVjMWIwOTc1N2MyYjM0MzlkZDhjZTk5NzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbApAQCAtMSwzICsxLDQgQEAK
KzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JFbmFibGVk
PXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KQEAgLTUsNiArNiwx
NiBAQAogICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0PgogCisgICAgbGV0IHdhaXRpbmcgPSB0cnVlOworICAgIGFzeW5jIGZ1bmN0aW9uIHdh
aXRGb3JEZWJ1Z2dlcigpCisgICAgeworICAgICAgICBsZXQgY291bnRlciA9IDA7CisgICAgICAg
IHdoaWxlICh3YWl0aW5nKSB7CisgICAgICAgICAgICBhd2FpdCBzbGVlcEZvcigxMDApOworICAg
ICAgICAgICAgY291bnRlcisrOworICAgICAgICB9CisgICAgfQorCiAgICAgZnVuY3Rpb24gY2hh
bmdlSGFuZGxlcihjaGFuZ2UpCiAgICAgewogICAgICAgICB3aW5kb3cubGF0ZXN0Q2hhbmdlID0g
Y2hhbmdlOwpAQCAtMjcsNiArMzgsOCBAQAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
Cithd2FpdCB3YWl0Rm9yRGVidWdnZXIoKTsKKwogICAgICAgICBjb25zb2xlV3JpdGUoJycpOwog
ICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRoZXJlIHNob3VsZCBiZSBubyBtZWRpYVNlc3Npb24u
Y29vcmRpbmF0b3IgaW5pdGlhbGx5LicpCiAKQEAgLTQ4LDIwICs2MSwxOCBAQAogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGxldCB0ZXN0QWN0aW9uID0gYXN5bmMgKGFj
dGlvbiwgZnVuYywgZm9yY2VGYWlsdXJlKSA9PiB7CisgICAgICAgIGxldCB0ZXN0QWN0aW9uID0g
YXN5bmMgKGFjdGlvbiwgZnVuYywgZXhwZWN0RmFpbHVyZSkgPT4gewogICAgICAgICAgICAgbGF0
ZXN0QWN0aW9uID0gJyc7CiAKICAgICAgICAgICAgIGxldCBzdWNjZWVkZWQ7CiAgICAgICAgICAg
ICB0cnkgewogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgVGVzdCBuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLmNvb3JkaW5hdG9yLiR7YWN0aW9ufSgpYCk7CiAgICAgICAgICAgICAgICAgYXdh
aXQgZnVuYygpOwotICAgICAgICAgICAgICAgIGlmIChmb3JjZUZhaWx1cmUpCisgICAgICAgICAg
ICAgICAgaWYgKGV4cGVjdEZhaWx1cmUpCiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZShgRkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9IHJlc29sdmVkIGJ1dCBzaG91bGQgaGF2ZSByZWpl
Y3RlZGApOwotICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9uJywgYWN0
aW9uKTsKICAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFm
b3JjZUZhaWx1cmUpCisgICAgICAgICAgICAgICAgaWYgKCFleHBlY3RGYWlsdXJlKQogICAgICAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEZBSUw6ICR7ZnVuYy50b1N0cmluZygpfSB0aHJl
dyAke2V4fWApOwotICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9uJywg
JycpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOwpAQCAt
NzMsNiArODQsMjAgQEAKICAgICAgICAgICAgIHsgYWN0aW9uOiAnc2Vla3RvJywgZnVuYyA6ICgp
ID0+IHsgcmV0dXJuIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEw
KSB9LCB9LAogICAgICAgICBdOwogCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAg
IGNvbnNvbGVXcml0ZSgnKiogbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zdGF0ZSBzaG91bGQgYmUg
IndhaXRpbmciIGludGl0aWFsbHknKQorICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5t
ZWRpYVNlc3Npb24uc3RhdGUnLCAnd2FpdGluZycpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgn
Jyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3Ig
bWV0aG9kcyBmYWlsIGFuZCBwcm9taXNlcyByZWplY3QgYmVmb3JlIG1lZGlhU2Vzc2lvbi5qb2lu
KCkgaXMgY2FsbGVkLicpCisgICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKQorICAg
ICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVuYywgdHJ1
ZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcq
KiBKb2luIHRoZSBzZXNzaW9uJykKKyAgICAgICAgcnVuKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LmpvaW4oKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24u
c3RhdGUnLCAnam9pbmVkJyk7CisKICAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKICAgICAgICAg
Y29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIHN1Y2Nl
ZWQsICBwcm9taXNlcyByZXNvbHZlIGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFy
ZSBjYWxsZWQuJykKICAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvckNvbW1hbmRzU2hvdWxkRmFpbChmYWxzZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424798</attachid>
            <date>2021-03-31 12:06:21 -0700</date>
            <delta_ts>2021-03-31 13:04:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223955-20210331120617.patch</filename>
            <type>text/plain</type>
            <size>100463</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhlOGMxNzQyNjZhZjFi
ZjQyM2ZkOTFmMzAyNDRlNGE3NjdhNzBiMC4uYTUxZmYzMWQ0N2ZkY2ZjNTQ4ZTM3YWQwZjc5YWM1
ZDQwMWYwMGY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDIxLTAzLTMxICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3Igc2hvdWxkIGhhdmUgam9pbiBhbmQgbGVhdmUgbWV0aG9kcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzOTU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjAyMTU4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCAnam9pbicgYW5kICdsZWF2ZScg
bWV0aG9kcyB0byBNZWRpYVNlc3Npb25Db29yZGluYXRvciBzbyBhIHBhZ2UgaGFzIHRvIG9wdC1p
bgorICAgICAgICB0byBwYXJ0aWNpcGF0aW5nIGluIGEgY29vcmRpbmF0ZWQgc2Vzc2lvbiwgYW5k
IGNhbiBsZWF2ZSBhdCBhbnkgdGltZS4gRG9uJ3QgaGF2ZSAKKyAgICAgICAgdGhlIGNvb3JkaW5h
dG9yIGF1dG9tYXRpY2FsbHkgY2FsbCBzZXNzaW9uIG1ldGhvZHMgd2hlbiB0aGUgcHJpdmF0ZSBj
b29yZGluYXRvcgorICAgICAgICBmaW5pc2hlcywganVzdCBzaWduYWwgdGhlIHByb21pc2UgYW5k
IGxldCB0aGUgcGFnZSBoYW5kbGUgaXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVk
IG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sLgorCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsOiBGaXggQ29uZGl0
aW9uYWwuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXls
aXN0TWl4aW4uaWRsOiBEaXR0by4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhUG9zaXRpb25TdGF0ZS5oOiBBZGQgbG9nZ2luZyB0ZW1wbGF0ZS4KKyAgICAgICAgKFdURjo6
TG9nQXJndW1lbnQ8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlPjo6dG9TdHJpbmcpOgorCisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKTogU3dpdGNoIGZyb20gYmVnaW5n
IGEgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKKyAgICAgICAgdG8gYW4gQWN0aXZlRE9NT2Jq
ZWN0IHRvIHRoZSB3cmFwcGVyIHdvbid0IGJlIGNvbGxlY3RlZCB3aGlsZSBhbiBldmVudCBkaXNw
YXRjaAorICAgICAgICBpcyBwZW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KTogUHJldmVudCBjb2xsZWN0aW9uIHdo
aWxlCisgICAgICAgIGV2ZW50IGRpc3BhdGNoIGlzIHBlbmRpbmcuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUpOiBJbXByb3ZlIGxvZ2dpbmcuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU6OnRvSlNPTlN0cmluZyBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKworICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpqb2luKTogTmV3LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxlYXZlKTogTmV3LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6IFJlamVjdCB1bmxlc3Mgc3Rh
dGUgaXMgJ2pvaW5lZCcuIERvbid0CisgICAgICAgIGNhbGwgc2Vzc2lvbiBtZXRob2QuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0
YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
cGxheWJhY2tTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKTogRG8gbm90aGluZyB1bmxlc3Mgc3RhdGUgaXMK
KyAgICAgICAgJ2pvaW5lZCcuIEltcHJvdmUgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrU2Vzc2lvblRvVGltZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXlTZXNzaW9uKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2VTZXNzaW9u
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0
U2Vzc2lvblRyYWNrKTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzdGF0ZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsOiBGaXggQ29uZGl0aW9u
YWwuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvclByaXZhdGUuaDogRGVjbGFyZSBuZXcgcmVxdWlyZWQgbWV0aG9kcy4KKworICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaDogRGVm
aW5lIHN0YXRlcy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvclN0YXRlLmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsOiBGaXggQ29uZGl0aW9uYWwuCisKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDogQWRkIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5jcHAuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAg
KiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmpvaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsZWF2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOgorCiAyMDIx
LTAzLTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBHZW5lcmFs
aXplIENvbG9yQ29tcG9uZW50cyB0byBzdXBwb3J0IGFuIGFyYnJpdHJhcnkgbnVtYmVyIG9mIGNv
bXBvbmVudHMgKHRob3VnaCByZWFsbHkgd2Ugd2lsbCBvbmx5IGV2ZXIgd2FudCAzLCA0LCBvciA1
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAxYzlmZGE2MmE2MDhhYTU4ZThiN2VhMDEwMzY4YThiZTE1ODVkN2I5Li5m
NGI0ZTkyNTE0MTQzNGVkYTZjMjgzMzY4ZjIwZTNhNjliNTZjOGQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDU3IEBACisyMDIxLTAzLTMxICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFttYWNPU10gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Igc2hvdWxkIGhh
dmUgam9pbiBhbmQgbGVhdmUgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIzOTU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjAyMTU4
OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcml2YXRlUHJveHkuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5Ojpqb2luKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eTo6bGVhdmUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRvclN0YXRlQ2hhbmdlZCk6CisgICAgICAgICog
VUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
cik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFT
ZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Ojpqb2luKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmxlYXZlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vz
c2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW46CisKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eVByaXZhdGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlh
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmguCisgICAgICAgICogVUlQcm9j
ZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6UmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wMy0zMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eSBzaG91
bGQgaGF2ZSBhIENsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKaW5kZXggMTY5YjIxYTFiMDExZGU5MzgzNzRjZmQ1ZTc2OTJjMmVmMDM5MmQ1
Zi4uMjU1ZGM5OTkwYTI3ZTExMjBlYmI1ZDIwMDJiYWJhYmU3YTY3NjMxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xODEsNiArMTgx
LDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0
aW9uRGV0YWlscy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCiskKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWJh
Y2tTdGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvblBsYXlsaXN0TWl4aW4uaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA3MTZhOGM1YTcyN2U1OTljY2FiNjY5MTg4
MDBjNzc2ODY1ZWQ3N2ZjLi5hM2E5MWQ5NDhkMzhhNzYzMjY0ODMyYTIwNTBiOTU1ZWMwZTdmNDRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dApAQCAtMTMyMiw2ICsxMzIyLDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Iu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNl
c3Npb25Db29yZGluYXRvck1peGluLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggNTE4ZWRmMWZkNjQ1NDM4OGY2OGU3NGU3YTIyMmIwYTcxMTEyY2I1
NS4uMDc3MTI5YmVlMzgzODgyMTk4YjhlMGFhODJjMWU4YjE4ZGMxNTk2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMTUsNiArMjE1LDcgQEAgSlNfQklORElOR19JRExTIDo9
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlv
bkhhbmRsZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0
YXRlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25QbGF5bGlzdE1peGluLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCmluZGV4IGQwNWYyYjBiNjk0
YmM0OGZmYWE3MTM1YTVhZTlmNDBjYTYyZmNkMmQuLjBhNTFjNTY5ZjAxYjdiNTY5ZGM3NjJjYmQ5
ZmExZThjZWY1NmJjNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0zMyw4ICszMyw2IEBACiAgICAgYXR0cmli
dXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhbGJ1bTsKICAg
ICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gYXR0cmlidXRlIEZyb3pl
bkFycmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7Ci0KLSAgICBbQ29uZGl0aW9uYWw9TUVESUFfU0VT
U0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25QbGF5bGlzdF0gYXR0
cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7CiB9OwogCiBNZWRpYU1ldGFkYXRhIGlu
Y2x1ZGVzIE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXls
aXN0TWl4aW4uaWRsCmluZGV4IGNhNzIxNWQ5Nzk1Y2FhODU3NTdjZThhMmY0NTY5ZmYyYWFiNzdl
Y2MuLmUwYTc2NDBiMGQzNDRiYWVjMDM2Njk3NDA2MjRhZjJkNGU4ZGI2ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGFQbGF5bGlz
dE1peGluLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiBbCi0g
ICAgQ29uZGl0aW9uYWw9RU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QsCisgICAgQ29uZGl0
aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwKICAgICBFbmFibGVkQnlTZXR0aW5nPU1lZGlh
U2Vzc2lvblBsYXlsaXN0LAogXSBpbnRlcmZhY2UgbWl4aW4gTWVkaWFNZXRhZGF0YVBsYXlsaXN0
TWl4aW4gewogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdHJhY2tJZGVudGlmaWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9u
U3RhdGUuaAppbmRleCA0NmM4OTIzMjYyZTgzYzRkNGFiY2ViZTgzY2QyODkxZjMwMGU1MWQ4Li4z
ZjVkZTc3MGRlNDIxNmZjNzJkZTQ5Y2YzMGRhYjVhMzgwNTQ2NWIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUu
aApAQCAtMzQsNiArMzQsOCBAQCBzdHJ1Y3QgTWVkaWFQb3NpdGlvblN0YXRlIHsKICAgICBkb3Vi
bGUgcGxheWJhY2tSYXRlID0gMTsKICAgICBkb3VibGUgcG9zaXRpb24gPSAwOwogCisgICAgU3Ry
aW5nIHRvSlNPTlN0cmluZygpIGNvbnN0OworCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+IGRlY29kZShEZWNvZGVyJik7CiB9
OwpAQCAtNjIsNCArNjQsMTQgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIE9wdGlv
bmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gTWVkaWFQb3NpdGlvblN0YXRlOjoKIAogfQogCituYW1l
c3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBMb2dBcmd1bWVudDsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRl
PiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpNZWRpYVBvc2l0
aW9uU3RhdGUmIHN0YXRlKSB7IHJldHVybiBzdGF0ZS50b0pTT05TdHJpbmcoKTsgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV1RGCisKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
Y3BwCmluZGV4IGUwYzViM2EzYWExZWNjYzA4ZWEzMzZlYjc5M2VmZWFhMWE3Y2RhMDQuLmUxZDBh
ZjdjNDI3NmE4Mzg5ODg3OGIzZjM3MjcwYmQ0ZGViNzA1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAi
TmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisj
aW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04
MSw3ICs4Miw3IEBAIFJlZjxNZWRpYVNlc3Npb24+IE1lZGlhU2Vzc2lvbjo6Y3JlYXRlKE5hdmln
YXRvciYgbmF2aWdhdG9yKQogfQogCiBNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbihOYXZpZ2F0
b3ImIG5hdmlnYXRvcikKLSAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKG5hdmlnYXRv
ci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgOiBBY3RpdmVET01PYmplY3QobmF2aWdh
dG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1fbmF2aWdhdG9yKG1ha2VXZWFr
UHRyKG5hdmlnYXRvcikpCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAg
ICAgLCBtX2FzeW5jRXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU6OmNyZWF0
ZSgqdGhpcykpCkBAIC04OSwxMiArOTAsMTggQEAgTWVkaWFTZXNzaW9uOjpNZWRpYVNlc3Npb24o
TmF2aWdhdG9yJiBuYXZpZ2F0b3IpCiB7CiAgICAgbV9sb2dnZXIgPSBtYWtlUmVmUHRyKERvY3Vt
ZW50OjpzaGFyZWRMb2dnZXIoKSk7CiAgICAgbV9sb2dJZGVudGlmaWVyID0gbmV4dExvZ0lkZW50
aWZpZXIoKTsKKyAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIEFMV0FZU19MT0coTE9HSURF
TlRJRklFUik7CiB9CiAKIE1lZGlhU2Vzc2lvbjo6fk1lZGlhU2Vzc2lvbigpID0gZGVmYXVsdDsK
IAorYm9vbCBNZWRpYVNlc3Npb246OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAor
eworICAgIHJldHVybiBtX2FzeW5jRXZlbnRRdWV1ZS0+aGFzUGVuZGluZ0FjdGl2aXR5KCk7Cit9
CisKIHZvaWQgTWVkaWFTZXNzaW9uOjpzZXRNZXRhZGF0YShSZWZQdHI8TWVkaWFNZXRhZGF0YT4m
JiBtZXRhZGF0YSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwpAQCAtMjEyLDcg
KzIxOSwxMCBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6Y2FsbEFjdGlvbkhhbmRsZXIoY29uc3QgTWVk
aWFTZXNzaW9uQWN0aW9uRGV0YWlscyYgYWN0aW9uRGV0YQogCiBFeGNlcHRpb25Pcjx2b2lkPiBN
ZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUoT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRl
PiYmIHN0YXRlKQogewotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgaWYgKHN0
YXRlKQorICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHN0YXRlLnZhbHVlKCkpOwor
ICAgIGVsc2UKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAieyB9Iik7CiAKICAg
ICBpZiAoIXN0YXRlKSB7CiAgICAgICAgIG1fcG9zaXRpb25TdGF0ZSA9IFdURjo6bnVsbG9wdDsK
QEAgLTMxNSw2ICszMjUsMTcgQEAgdm9pZCBNZWRpYVNlc3Npb246Om5vdGlmeVJlYWR5U3RhdGVP
YnNlcnZlcnMoKQogfQogI2VuZGlmCiAKK1N0cmluZyBNZWRpYVBvc2l0aW9uU3RhdGU6OnRvSlNP
TlN0cmluZygpIGNvbnN0Cit7CisgICAgYXV0byBvYmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0
ZSgpOworCisgICAgb2JqZWN0LT5zZXREb3VibGUoImR1cmF0aW9uIl9zLCBkdXJhdGlvbik7Cisg
ICAgb2JqZWN0LT5zZXREb3VibGUoInBsYXliYWNrUmF0ZSJfcywgcGxheWJhY2tSYXRlKTsKKyAg
ICBvYmplY3QtPnNldERvdWJsZSgicG9zaXRpb24iX3MsIHBvc2l0aW9uKTsKKworICAgIHJldHVy
biBvYmplY3QtPnRvSlNPTlN0cmluZygpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uLmgKaW5kZXggYWUxNDM4MzNhYzhhYWZkNDMxYjcxOTRkNzE1NTBmNTY2MGFj
YzAyOC4uZTVkYmU5NjI3ZmMxYzYxOTQ1NTgyNzYzZDBlNzMzNDc4ZDUyNGJjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAg
LTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogCi0jaW5jbHVkZSAi
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVl
LmgiCiAjaW5jbHVkZSAiTWVkaWFQb3NpdGlvblN0YXRlLmgiCkBAIC00OSw3ICs0OSw3IEBAIGNs
YXNzIE1lZGlhTWV0YWRhdGE7CiBjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvcjsKIGNsYXNz
IE5hdmlnYXRvcjsKIAotY2xhc3MgTWVkaWFTZXNzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TWVk
aWFTZXNzaW9uPiAsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciAsIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK2NsYXNzIE1lZGlhU2Vzc2lvbiA6IHB1YmxpYyBS
ZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lvbj4gY3JlYXRlKE5hdmlnYXRvciYp
OwpAQCAtMTI0LDExICsxMjQsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeUFjdGlvbkhh
bmRsZXJPYnNlcnZlcnMoKTsKICAgICB2b2lkIG5vdGlmeVJlYWR5U3RhdGVPYnNlcnZlcnMoKTsK
IAorICAgIC8vIEV2ZW50VGFyZ2V0CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsg
cmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0K
ICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIE1lZGlhU2Vzc2lvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOyB9CiAKLSAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsg
fQotICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorICAgIC8v
IEFjdGl2ZURPTU9iamVjdAorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiAiTWVkaWFTZXNzaW9uIjsgfQorICAgIGJvb2wgdmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IGZpbmFsOwogCiAgICAgV2Vha1B0cjxOYXZpZ2F0b3I+
IG1fbmF2aWdhdG9yOwogICAgIFJlZlB0cjxNZWRpYU1ldGFkYXRhPiBtX21ldGFkYXRhOwpAQCAt
MTQxLDExICsxNDUsMTEgQEAgcHJpdmF0ZToKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZp
ZXI7CiAKICAgICBXZWFrSGFzaFNldDxPYnNlcnZlcj4gbV9vYnNlcnZlcnM7CisgICAgVW5pcXVl
UmVmPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiAKICNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKICAgICBNZWRpYVNlc3Npb25SZWFk
eVN0YXRlIG1fcmVhZHlTdGF0ZSB7IE1lZGlhU2Vzc2lvblJlYWR5U3RhdGU6OkhhdmVOb3RoaW5n
IH07CiAgICAgUmVmUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBtX2Nvb3JkaW5hdG9yOwot
ICAgIFVuaXF1ZVJlZjxNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU+IG1fYXN5bmNFdmVudFF1
ZXVlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9QTEFZTElTVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRs
CmluZGV4IDYxYTg3NDQyNzRiMjIzOGE2Y2VlZTkwMjhlZmM5MjI5YzNiYWVkNjcuLmM5NDY1OTFi
MzgwMDk2Y2JjNDg5Mzg4ZGU4MzA5ZjQ1MDg2NTVmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbApAQCAtMjQsNiArMjQs
NyBAQAogICovCiAKIFsKKyAgICBBY3RpdmVET01PYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9TUVE
SUFfU0VTU0lPTiwKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBFeHBvcnRNYWNybz1XRUJDT1JF
X0VYUE9SVCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRleCA5MTkzNDIzNGZiYzBl
YmVmY2ZjMWYyYzFkYmNmZWVhMDRiMzc3MmIyLi4yMDgxOThiYzM0MDA4ZWE5NDZkMzliMWFhZGM0
Zjg0NGM4NTVhODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5oIgogI2lu
Y2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIgpAQCAtNjEsNiArNjIsNDgg
QEAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXYKIAogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6On5N
ZWRpYVNlc3Npb25Db29yZGluYXRvcigpID0gZGVmYXVsdDsKIAordm9pZCBNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6am9pbihET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQorewor
ICAgIGF1dG8gaWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVu
dGlmaWVyLCBtX3N0YXRlKTsKKworICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yU3RhdGU6OldhaXRpbmcpIHsKKyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICJp
bnZhbGlkIHN0YXRlIik7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCBtYWtlU3RyaW5nKCJVbmFibGUgdG8gam9pbiB3aGVuIHN0YXRlIGlzICIs
IGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fc3RhdGUpKSB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5qb2luKFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAg
IGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CisgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPmxvZ2dlcigpLmVycm9yKHByb3RlY3RlZFRoaXMtPmxvZ0NoYW5uZWwoKSwg
aWRlbnRpZmllciwgImNvb3JkaW5hdG9yLmpvaW4gZmFpbGVkISIpOworICAgICAgICAgICAgcHJv
bWlzZS5yZWplY3QoV1RGTW92ZSgqZXhjZXB0aW9uKSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3N0YXRlID0gTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkOworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3ByaXZh
dGVDb29yZGluYXRvci0+Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZTo6Sm9pbmVkKTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgfSk7
Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsZWF2ZSgp
Cit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBpZiAobV9zdGF0ZSAhPSBN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygiVW5hYmxlIHRvIGxlYXZlIHdo
ZW4gc3RhdGUgaXMgIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobV9zdGF0ZSkpIH07CisK
KyAgICBtX3N0YXRlID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Q2xvc2VkOworICAg
IG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5sZWF2ZSgpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9y
LT5jb29yZGluYXRvclN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpD
bG9zZWQpOworCisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogewogICAgIGF1dG8gaWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CkBAIC03Miw3ICsx
MTUsMTMgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1l
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm8KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZWVrVG8odGltZSwgW3RpbWUsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAg
ICBpZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpIHsK
KyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIsICIuc3RhdGUgaXMgIiwgbV9zdGF0ZSk7Cisg
ICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBtYWtl
U3RyaW5nKCJVbmFibGUgdG8gc2Vla1RvIHdoZW4gc3RhdGUgaXMgIiwgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcobV9zdGF0ZSkpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
bV9wcml2YXRlQ29vcmRpbmF0b3ItPnNlZWtUbyh0aW1lLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoIXBy
b3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgewogICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC04
NCw5ICsxMzMsNiBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91Ymxl
IHRpbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHBybwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWpl
Y3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdzZWVrVG8nIGFjdGlvbiBoYW5kbGVyPwot
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5pbnRlcm5hbFNlZWtUbyh0aW1lKTsKLQogICAgICAgICBw
cm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsKIH0KQEAgLTEwMiw2ICsxNDgsMTIgQEAgdm9pZCBN
ZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1fc3RhdGUgIT0gTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAgICAgIEVSUk9SX0xPRyhp
ZGVudGlmaWVyLCAiLnN0YXRlIGlzICIsIG1fc3RhdGUpOworICAgICAgICBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygiVW5hYmxlIHRvIHBs
YXkgd2hlbiBzdGF0ZSBpcyAiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX3N0YXRlKSkg
fSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+
cGxheShbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24p
IG11dGFibGUgewogICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgewogICAg
ICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7
CkBAIC0xMTQsOSArMTY2LDYgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3Qg
aWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdwbGF5JyBhY3Rpb24gaGFuZGxlcj8KLSAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+aW50ZXJuYWxQbGF5KCk7Ci0KICAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKCk7CiAgICAgfSk7CiB9CkBAIC0xMzIsNiArMTgxLDEyIEBAIHZvaWQgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBhdXNlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Npb25D
b29yZGluYXRvclN0YXRlOjpKb2luZWQpIHsKKyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZpZXIs
ICIuc3RhdGUgaXMgIiwgbV9zdGF0ZSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCBtYWtlU3RyaW5nKCJVbmFibGUgdG8gcGF1c2Ugd2hlbiBz
dGF0ZSBpcyAiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX3N0YXRlKSkgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+cGF1c2UoW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKICAgICAgICAgICAg
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwpAQCAtMTQ0
LDkgKzE5OSw2IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVy
ZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3BhdXNlJyBhY3Rpb24gaGFuZGxlcj8KLSAgICAgICAgcHJv
dGVjdGVkVGhpcy0+aW50ZXJuYWxQYXVzZSgpOwotCiAgICAgICAgIHByb21pc2UucmVzb2x2ZSgp
OwogICAgIH0pOwogfQpAQCAtMTYyLDcgKzIxNCwxMyBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcmIHRyYWNrLCBET01Qcm9taXNlRGVmZXJyZWQ8
dgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnNl
dFRyYWNrKHRyYWNrLCBbdHJhY2ssIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwg
aWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRp
b24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICBpZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpIHsKKyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZp
ZXIsICIuc3RhdGUgaXMgIiwgbV9zdGF0ZSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBtYWtlU3RyaW5nKCJVbmFibGUgdG8gc2V0VHJhY2sg
d2hlbiBzdGF0ZSBpcyAiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX3N0YXRlKSkgfSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+c2V0
VHJhY2sodHJhY2ssIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZp
ZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4
Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9u
KSB7CiAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3NCw5ICsyMzIsNiBAQCB2b2lkIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcmIHRyYWNrLCBET01Q
cm9taXNlRGVmZXJyZWQ8dgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJvbWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSBy
ZWdpc3RlcmVkICdzZXRUcmFjaycgYWN0aW9uIGhhbmRsZXI/Ci0gICAgICAgIHByb3RlY3RlZFRo
aXMtPmludGVybmFsU2V0VHJhY2sodHJhY2spOwotCiAgICAgICAgIHByb21pc2UucmVzb2x2ZSgp
OwogICAgIH0pOwogfQpAQCAtMTkwLDQzICsyNDUsODkgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKICAgICAgICAg
bV9zZXNzaW9uLT5hZGRPYnNlcnZlcigqdGhpcyk7CiB9CiAKLXZvaWQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPE1lZGlhUG9zaXRp
b25TdGF0ZT4mIHN0YXRlKQordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cG9zaXRpb25T
dGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiYgcG9zaXRpb25T
dGF0ZSkKIHsKLSAgICBpZiAoIXN0YXRlKSB7CisgICAgaWYgKHBvc2l0aW9uU3RhdGUpCisgICAg
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgcG9zaXRpb25TdGF0ZS52YWx1ZSgpKTsKKyAg
ICBlbHNlCisgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgInsgfSIpOworCisgICAg
aWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoIXBvc2l0aW9uU3RhdGUpIHsKICAgICAgICAgbV9wcml2
YXRlQ29vcmRpbmF0b3ItPnBvc2l0aW9uU3RhdGVDaGFuZ2VkKHsgfSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+cG9zaXRpb25TdGF0ZUNoYW5n
ZWQoTWVkaWFQb3NpdGlvblN0YXRlIHsgc3RhdGUtPmR1cmF0aW9uLCBzdGF0ZS0+cGxheWJhY2tS
YXRlLCBzdGF0ZS0+cG9zaXRpb24gfSk7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBvc2l0
aW9uU3RhdGVDaGFuZ2VkKE1lZGlhUG9zaXRpb25TdGF0ZSB7IHBvc2l0aW9uU3RhdGUtPmR1cmF0
aW9uLCBwb3NpdGlvblN0YXRlLT5wbGF5YmFja1JhdGUsIHBvc2l0aW9uU3RhdGUtPnBvc2l0aW9u
IH0pOwogfQogCi12b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hh
bmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRlKQordm9pZCBNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSBwbGF5YmFja1N0YXRlKQogewotICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0
YXRlQ2hhbmdlZChzdGF0ZSk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtX3N0YXRl
LCAiLCAiLCBwbGF5YmFja1N0YXRlKTsKKworICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcml2
YXRlQ29vcmRpbmF0b3ItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHBsYXliYWNrU3RhdGUpOwogfQog
Ci12b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVNl
c3Npb25SZWFkeVN0YXRlIHN0YXRlKQordm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVh
ZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSByZWFkeVN0YXRlKQogewotICAg
IG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5yZWFkeVN0YXRlQ2hhbmdlZChzdGF0ZSk7CisgICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSLCBtX3N0YXRlLCAiLCAiLCByZWFkeVN0YXRlKTsKKworICAg
IGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFu
Z2VkKHJlYWR5U3RhdGUpOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVr
U2Vzc2lvblRvVGltZShkb3VibGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIG1f
c3RhdGUsICIsICIsIHRpbWUpOworCisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNvbXBsZXRpb25IYW5kbGVyKGludGVy
bmFsU2Vla1RvKHRpbWUpKTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxh
eVNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIG1fc3RhdGUpOworCisgICAgaWYg
KG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGludGVybmFsUGxheSgpKTsKIH0KIAogdm9pZCBNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6cGF1c2VTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+IGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwg
bV9zdGF0ZSk7CisKKyAgICBpZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlOjpKb2luZWQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaW50ZXJuYWxQYXVzZSgp
KTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0U2Vzc2lvblRyYWNrKGNv
bnN0IFN0cmluZyYgdHJhY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IGNvbXBsZXRp
b25IYW5kbGVyKQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbV9zdGF0ZSwgIiwg
IiwgdHJhY2spOworCisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JT
dGF0ZTo6Sm9pbmVkKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIGNvbXBsZXRpb25IYW5kbGVyKGludGVybmFsU2V0VHJh
Y2sodHJhY2spKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKaW5kZXggMDY5OWNlOGZm
NDM3NzI2ZjM5Y2YxNzZmNzQzOTY1ODRiZGY3N2EyZi4uZmQ0YTg3M2QxYmM5YzJlZWVkYzczYTM4
NDRhNzA1YTZiZWEyMDMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBAIC0yOSw2ICsy
OSw3IEBACiAKICNpbmNsdWRlICJNZWRpYVNlc3Npb24uaCIKICNpbmNsdWRlICJNZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25h
bC5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KQEAgLTQ1LDYgKzQ2LDEyIEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
PiBjcmVhdGUoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgfk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCk7CiAKKyAgICB2b2lkIGpvaW4o
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGxlYXZl
KCk7CisKKyAgICBTdHJpbmcgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZUNv
b3JkaW5hdG9yLT5pZGVudGlmaWVyKCk7IH0KKyAgICBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQorCiAgICAgdm9pZCBzZWVrVG8o
ZG91YmxlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBwbGF5KERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIHBhdXNlKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKQEAgLTgwLDYgKzg3LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogbG9nQ2xhc3NOYW1lKCkgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsg
fQogCiAgICAgV2Vha1B0cjxNZWRpYVNlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlIG1fc3RhdGUgeyBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
OjpXYWl0aW5nIH07CiAgICAgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4gbV9w
cml2YXRlQ29vcmRpbmF0b3I7CiAgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CiAgICAg
Y29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRs
CmluZGV4IGVjMDVhYjg5MGVhMTgyNmQwZmU3MTMwYjVkMzJiNDJkN2I0NjIzZDkuLjIxMTgyNzAz
ZDFiMGQ4NzJmMjM3ZGJhYTAzZGRlNTYxY2ZlNmQ1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvci5pZGwKQEAgLTI5LDYgKzI5LDEzIEBACiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgRXhw
b3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiBdIGludGVyZmFjZSBNZWRpYVNlc3Npb25Db29yZGlu
YXRvciB7CisKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gam9pbigpOworICAgIHVuZGVmaW5lZCBs
ZWF2ZSgpOworCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
U3RhdGUgc3RhdGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gaWRlbnRpZmll
cjsKKwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBzZWVrVG8odW5yZXN0cmljdGVkIGRvdWJsZSB0
aW1lKTsKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gcGxheSgpOwogICAgIFByb21pc2U8dW5kZWZp
bmVkPiBwYXVzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbAppbmRl
eCBjMTQ4ZWM4Zjg5NjI2NWZiNjUxYmZjYjExYWEwMThiMjVhYmRjNzUyLi5mZGRmMDU2MDM0YjEw
NGVmMmMxOGM0NzY5YWZiMWU3OWEwNjMyMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvck1peGluLmlkbApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25h
bD1FTkFCTEVfTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwKKyAgICBDb25kaXRpb25hbD1NRURJ
QV9TRVNTSU9OX0NPT1JESU5BVE9SLAogICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IsCiBdIGludGVyZmFjZSBtaXhpbiBNZWRpYVNlc3Npb25Db29yZGluYXRvck1p
eGluIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I/IGNv
b3JkaW5hdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaAppbmRleCA1
YWJkZTE1ZWJlYTkyOGI0ZjY3MWVhYThlMzViMmE1YzdkY2E3ODBkLi5mODAzMGU3ODcyMDgyZjAy
NzRhN2FmNTg5NjJmZWQ4YzE0MGIwYjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCiAj
aW5jbHVkZSAiTWVkaWFQb3NpdGlvblN0YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCIK
ICNpbmNsdWRlICJNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+CkBAIC01Myw2ICs1NCwxMSBAQCBjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvcgogcHVibGlj
OgogICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSgpID0gZGVmYXVs
dDsKIAorICAgIHZpcnR1YWwgU3RyaW5nIGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgam9pbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlv
bj4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGVhdmUoKSA9IDA7CisKICAgICB2aXJ0
dWFsIHZvaWQgc2Vla1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxF
eGNlcHRpb24+JiYpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBsYXkoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4m
JikgPSAwOwpAQCAtNjEsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBvc2l0
aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4mKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3Rh
dGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNz
aW9uUGxheWJhY2tTdGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb29yZGluYXRvclN0YXRl
Q2hhbmdlZChNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKSA9IDA7CiAKICAgICB2b2lkIHNl
dExvZ2dlcihjb25zdCBXVEY6OkxvZ2dlciYsIGNvbnN0IHZvaWQqKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q2xpZW50KFdlYWtQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IGNsaWVu
dCkgeyBtX2NsaWVudCA9IGNsaWVudDt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODUyZWJlMTYzNjhkZGNiNDk0ZTIyMDUzYzY3N2Y2OTVkOWI3NTNlZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yU3RhdGUgOiB1aW50OF90IHsKKyAgICBXYWl0aW5nLAorICAgIEpvaW5lZCwKKyAgICBDbG9z
ZWQsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yU3RhdGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJD
b3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLAorICAgICAgICBXZWJDb3JlOjpNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpXYWl0aW5nLAorICAgICAgICBXZWJDb3JlOjpNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkNsb3NlZAorICAgID47Cit9OworCit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3Rh
dGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRkOWMxYjYwNTJhOTRmYjNiYTJlYzEx
NzAwZWQ5NTNjNWJhMTBmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9D
T09SRElOQVRPUiwKK10gZW51bSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIHsKKyAgICAi
d2FpdGluZyIsCisgICAgImpvaW5lZCIsCisgICAgImNsb3NlZCIKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1p
eGluLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
blBsYXlsaXN0TWl4aW4uaWRsCmluZGV4IGJlYzRiOTU3YTVkNTFlNmNjNzQxM2Y3OGNkOGViOTRh
MjA5ZjFmMmIuLmQ3NjIyMDcxMjQzYTY5MzA2NDc3NDgyNjcyMGI5OTYzNmU5MjYwMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBs
YXlsaXN0TWl4aW4uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAog
WwotICAgIENvbmRpdGlvbmFsPUVOQUJMRV9NRURJQV9TRVNTSU9OX1BMQVlMSVNULAorICAgIENv
bmRpdGlvbmFsPU1FRElBX1NFU1NJT05fUExBWUxJU1QsCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1N
ZWRpYVNlc3Npb25QbGF5bGlzdCwKIF0gaW50ZXJmYWNlIG1peGluIE1lZGlhU2Vzc2lvblBsYXls
aXN0TWl4aW4gewogICAgIFtTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBh
dHRyaWJ1dGUgRnJvemVuQXJyYXk8TWVkaWFNZXRhZGF0YT4gcGxheWxpc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CmluZGV4IDI0ZGQ0NjNlMDIzYWRkNmVjMjRhY2RkMTk4Zjk5MWEwZmZmNzExZTMuLjJiYmZmM2U3
OTUwYjY4ZmM4YTJiMWQyZGQ4MGU2YmJlYmViYTJiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zMjMz
LDYgKzMyMzMsNyBAQCBKU01lZGlhS2V5c1JlcXVpcmVtZW50LmNwcAogSlNNZWRpYUxpc3QuY3Bw
CiBKU01lZGlhTWV0YWRhdGEuY3BwCiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAorSlNN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmNwcAogSlNNZWRpYU1ldGFkYXRhSW5pdC5jcHAK
IEpTTWVkaWFQb3NpdGlvblN0YXRlLmNwcAogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMDQw
MGMzNzA3YmE2MzE4ZDk4MDA4NzE3OWY3YmRmZTg1MDk5ZGQ5Li5hMjE2NmQ4MGY2YTZiMDMxMjZm
N2E3NzNkYTBmNDUyMTA3OWUyNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTgsNiArMjE4LDcgQEAKIAkJMDdCOTNGRkMy
M0I5NEVDNzAwMzZGOEVBIC8qIE1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QjkzRkY5MjNCOTJBQUEwMDM2RjhFQSAvKiBNSU1F
VHlwZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDdDMDQ2QzQxRTQyNTA4QjAwNzIwMUU3IC8qIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3
NTgxRTQwRENGRDAwNzFDMEVDIC8qIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3QzA0NkNCMUU0MjY0
MTMwMDcyMDFFNyAvKiBBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc1NjFFNDBEQ0U1MDA3MUMwRUMgLyog
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTA3QzE0ODJFMjYxMkEyMUYwMDc3NTgyOCAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzdCQTU4ODI2MTI2RDY2MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29u
c3RyYWludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3QzFDMEUwMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWlu
dHMuaCAqLzsgfTsKIAkJMDdDMUMwRTUxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3Q0I5RTcyMjQ5QzM2QjIwMEE2OTQ4OSAvKiBBVlJv
dXRlUGlja2VyVmlld1RhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3Q0I5RTZGMjQ5QzIyNkMwMEE2OTQ4OSAvKiBBVlJvdXRlUGlj
a2VyVmlld1RhcmdldFBpY2tlci5tbSAqLzsgfTsKQEAgLTU4NjEsNiArNTg2Miw4IEBACiAJCTA3
N0I2NDE1MUI5NUY3MDMwMDNFOUFENSAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzdCQTU3QzI2MEZFNzM4MDA3MkYxOUYgLyog
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzdCQTU3RDI2MEZFNzM5MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3N0JBNTg4MjYxMjZENjYwMDcyRjE5
RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MDc3QkE1OEEyNjEyNkQ2QjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzgzMjI4MjE4MDEzRUQ3MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YVN0cmVhbUF1ZGlvU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4
MzIyODMxODAxM0VEODAwOTk5RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzg0NjM0MDE0NUIxNTFBMDBBNThERjEgLyogSlNU
cmFja0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHJh
Y2tFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTMxLDYgKzU5MzQs
MTAgQEAKIAkJMDdCNzExNkMxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVEZXZpY2VNYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhcHR1cmVEZXZpY2VNYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjkzRkY5MjNCOTJBQUEwMDM2RjhF
QSAvKiBNSU1FVHlwZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1JTUVUeXBlQ2FjaGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCOTNGRkIyM0I5MkFBQjAwMzZGOEVBIC8qIE1J
TUVUeXBlQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTUlNRVR5cGVDYWNoZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzE0ODI5MjYxMjk1NUMwMDc3NTgyOCAvKiBK
U01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVNlc3Npb25S
ZWFkeVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzE0ODJCMjYxMjk1
NUQwMDc3NTgyOCAvKiBKU01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMDdDMTQ4MkMyNjEyOTU1RTAwNzc1ODI4IC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0MxNDgyRDI2MTI5
NTVGMDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwN0MxQzBFMDFCRkI2MDAxMDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBv
cnRlZENvbnN0cmFpbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
VHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0MxQzBFMTFCRkI2MDAxMDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFp
bnRzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3Ry
YWludHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0MxQzBFNDFCRkI2MEVE
MDBCRDIyNTYgLyogUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg0MTQsNiAr
Mjg0MjEsOCBAQAogCQkJCTA3MzZCNzMwMjYwOTRBMzcwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25D
b29yZGluYXRvck1peGluLmlkbCAqLywKIAkJCQkwNzdCQTU3RDI2MEZFNzM5MDA3MkYxOUYgLyog
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmNwcCAqLywKIAkJCQkwNzdCQTU3QzI2MEZF
NzM4MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmggKi8sCisJCQkJ
MDc3QkE1ODgyNjEyNkQ2NjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUu
aCAqLywKKwkJCQkwNzdCQTU4QTI2MTI2RDZCMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZS5pZGwgKi8sCiAJCQkJQ0REREVBMjkyNTM4Q0RDQjAwQTEzMDBDIC8qIE1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGUuaCAqLywKIAkJCQlDRERERUEyODI1MzhDRENCMDBBMTMwMEMg
LyogTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwgKi8sCiAJCQkJMDczNkI3MzIyNjA5NTU1
NDAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsICovLApAQCAtMjg0NDcs
OCArMjg0NTYsMTIgQEAKIAkJCQlDRERERUE0RTI1MzkxM0JDMDBBMTMwMEMgLyogSlNNZWRpYVNl
c3Npb25BY3Rpb25IYW5kbGVyLmggKi8sCiAJCQkJMDcyREJDMDcyNURDNkVEQTAwQTEzNTBFIC8q
IEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwICovLAogCQkJCTA3MkRCQzA2MjVEQzZFREEw
MEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggKi8sCisJCQkJMDdDMTQ4MkMy
NjEyOTU1RTAwNzc1ODI4IC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5jcHAgKi8s
CisJCQkJMDdDMTQ4MkQyNjEyOTU1RjAwNzc1ODI4IC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JTdGF0ZS5oICovLAogCQkJCUNERERFQTQ2MjUzOTExREQwMEExMzAwQyAvKiBKU01lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUuY3BwICovLAogCQkJCUNERERFQTQyMjUzOTExREMwMEExMzAwQyAv
KiBKU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaCAqLywKKwkJCQkwN0MxNDgyQjI2MTI5NTVE
MDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmNwcCAqLywKKwkJCQkwN0MxNDgy
OTI2MTI5NTVDMDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggKi8sCiAJCQkp
OwogCQkJbmFtZSA9IE1lZGlhU2Vzc2lvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0zNDAyMSw2ICszNDAzNCw3IEBACiAJCQkJMDc3QkE1NzgyNjBGQUVEQjAwNzJGMTlGIC8qIE1l
ZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3N0JBNTcxMjYw
RjlGNzYwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc3QkE1N0UyNjBGRUYzNjAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDdDMTQ4MkUyNjEyQTIxRjAwNzc1ODI4IC8q
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNkVD
QUU1MjVCNThDQzQwMEIzNERBNSAvKiBNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEQTk1OTNGMjQxMkJBRTAwMDkxMEVFRiAvKiBNZWRpYVNlc3Npb25I
ZWxwZXJJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDQ2MEEyMjQxMjk5NDUwMDgxNEJFNyAv
KiBNZWRpYVNlc3Npb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAppbmRl
eCAyNDIxNDI4MTc0YWQ4YjQ2MzNmMDE0NzRkMzFiMTkwNjMwYzMxZDhiLi42NTczMzJmN2UyYzA5
OTZkMmJkM2JhMDU2MjJkYmJkOTVkZThkZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCkBAIC01OSw2ICs1OSwx
NyBAQCBPcHRpb25hbDxFeGNlcHRpb24+IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVz
dWx0KCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCit2b2lkIE1vY2tNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6am9pbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PEV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5wb3N0VGFzayhb
dGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0KCkpOworICAgIH0pOworfQor
Cit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bGVhdmUoKQoreworfQorCiB2b2lk
IE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCiB7CiAg
ICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKQEAgLTEwOSw2
ICsxMjAsMTIgQEAgdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3Rh
dGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUKICAgICBtX3N0YXRlQ2hhbmdlTGlz
dGVuZXItPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgpLCAicGxheWJhY2tTdGF0ZUNo
YW5nZWQiKTsKIH0KIAordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5h
dG9yU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3RhdGUpCit7Cisg
ICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBzdGF0ZSk7CisgICAgbV9z
dGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQoKSwgImNv
b3JkaW5hdG9yU3RhdGVDaGFuZ2VkIik7Cit9CisKIFdURkxvZ0NoYW5uZWwmIE1vY2tNZWRpYVNl
c3Npb25Db29yZGluYXRvcjo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIExvZ01l
ZGlhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yLmgKaW5kZXggYjRkZGNmNTFkMWFjYjIxYmE2NGU2YjE4MmRkNzRkZDQzNDBjYWE5
NC4uNDc4MDQ4NzZhMzE4ZjI5MGUyZWVmMjUyNGQ2MTk5NTc4OTQ3MjdmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBA
IC00Nyw2ICs0NywxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmUHRyPFN0cmluZ0NhbGxiYWNr
PiYmKTsKIAorICAgIFN0cmluZyBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk1v
Y2sgQ29vcmRpbmF0b3IiOyB9CisKKyAgICB2b2lkIGpvaW4oQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGxlYXZlKCkgZmlu
YWw7CisKICAgICB2b2lkIHNlZWtUbyhkb3VibGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBwbGF5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBw
YXVzZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZp
bmFsOwpAQCAtNTUsNiArNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNo
YW5nZWQoY29uc3QgT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiYpIGZpbmFsOwogICAgIHZv
aWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgZmluYWw7CiAgICAg
dm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5h
bDsKKyAgICB2b2lkIGNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yU3RhdGUpIGZpbmFsOwogCiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qg
eyByZXR1cm4gIk1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KICAgICBXVEZMb2dDaGFu
bmVsJiBsb2dDaGFubmVsKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJv
eHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUzMTZjN2UwYjAzOGYyMzU0ZjA0
ODg4NDRjZmRiYzM4Zjc4NTIxNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29y
ZGluYXRvclByaXZhdGVQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCi0KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0
ZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2
YXRlUHJveHkKLSAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByaXZhdGVQcm94eT4KLSAgICAsIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZVByb3h5PiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkoKSA9IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgc2Vla1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxheShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBwYXVzZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUcmFjayhjb25z
dCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGEmKT4mJikgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2Vk
KGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0ZT4mKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5
U3RhdGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHNl
dENsaWVudChXZWFrUHRyPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBj
bGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KLQotcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5KCkgPSBkZWZhdWx0OwotCi0gICAg
V2Vha1B0cjxXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudD4gY2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KLQotcHJpdmF0ZToKLSAgICBXZWFrUHRyPFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBtX2NsaWVudDsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJ
TkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MmRkZGVkMGE4OWY4MzQ4YmY3ZTZkYzI4OGRiY2MzM2ZjZjVlYzZlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eVByaXZhdGUuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKKworI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZQorICAgIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlPgorICAg
ICwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGU+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJp
dmF0ZSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgU3RyaW5nIGlkZW50aWZpZXIoKSBjb25z
dCA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2Vla1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2Vw
dGlvbkRhdGEmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXVzZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOworCisgICAgdmlydHVhbCB2
b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9z
aXRpb25TdGF0ZT4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGxh
eWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjb29yZGluYXRvclN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xp
ZW50KFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IGNsaWVu
dCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUoKSA9IGRlZmF1bHQ7CisKKyAgICBXZWFr
UHRyPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX2NsaWVudDsgfQorCitwcml2YXRlOgorICAgIFdlYWtQdHI8V2ViQ29yZTo6
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IG1fY2xpZW50OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggZWMyZmQxZjYw
NjAxOGMyOTc1ZDdjMjQ1MGIyNzgwMThjZDNkZWM2ZS4uNzI3ZmUyZDc2MzFmNGU1ZGU3NDE3ZjYz
MmQxMWM2MzlhNjRiMmUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5j
cHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQogCi0jaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaCIK
KyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKQEAgLTM5LDEyICsz
OSwxMiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
UmVmUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwg
UmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiYmIHByaXZhdGVDb29yZGlu
YXRvcikKK1JlZlB0cjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5PiBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpjcmVhdGUoV2ViUGFnZVByb3h5JiB3ZWJQYWdl
UHJveHksIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZT4mJiBwcml2YXRl
Q29vcmRpbmF0b3IpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eSh3ZWJQYWdlUHJveHksIFdURk1vdmUocHJpdmF0ZUNvb3JkaW5h
dG9yKSkpOwogfQogCi1SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBS
ZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+JiYgcHJpdmF0ZUNvb3JkaW5h
dG9yKQorUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6UmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgUmVmPE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlPiYmIHByaXZhdGVDb29yZGluYXRvcikKICAg
ICA6IG1fd2ViUGFnZVByb3h5KHdlYlBhZ2VQcm94eSkKICAgICAsIG1fcHJpdmF0ZUNvb3JkaW5h
dG9yKFdURk1vdmUocHJpdmF0ZUNvb3JkaW5hdG9yKSkKICAgICAsIG1fbG9nZ2VyKG1fd2ViUGFn
ZVByb3h5LmxvZ2dlcigpKQpAQCAtNTgsNiArNTgsMjMgQEAgUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eTo6flJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoKQogICAg
IG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlEKCkpOwogfQogCit2b2lkIFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHk6OmpvaW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTE9H
SURFTlRJRklFUjsKKyAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIpOworCisgICAgbV9wcml2YXRl
Q29vcmRpbmF0b3ItPmpvaW4oW2lkZW50aWZpZXJdIChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25E
YXRhJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVy
LCAiY29tcGxldGlvbiIpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGV4Y2Vw
dGlvbikpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHk6OmxlYXZlKCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCisgICAg
bV9wcml2YXRlQ29vcmRpbmF0b3ItPmxlYXZlKCk7Cit9CiAKIHZvaWQgUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0ZVNlZWtUbyhkb3VibGUgdGltZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CkBAIC0xNDEsNiArMTU4LDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eTo6c2V0U2Vzc2lvblRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2tJ
ZCwKICAgICBtX3dlYlBhZ2VQcm94eS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpTZXRTZXNzaW9uVHJhY2sgeyB0cmFja0lkIH0sIGNh
bGxiYWNrKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpj
b29yZGluYXRvclN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgbV9wcml2
YXRlQ29vcmRpbmF0b3ItPmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKHN0YXRlKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09S
RElOQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaAppbmRleCBkNDhlNjJk
Y2FlY2YwODFmNTUxNTVjODFiZDU0MGJjMDQzMzUxZDBhLi4wNjhhNWY1NmRkNGRiYjY2NjU1MWE3
ZjYxOTgzYjhlMzU3NGQwMjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5o
CkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRP
UikKIAotI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgiCisj
aW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDYsMTYgKzQ2LDE5IEBAIGNsYXNzIFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkKICAgICAsIHB1YmxpYyBXZWJDb3JlOjpNZWRpYVNlc3Np
b25Db29yZGluYXRvckNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5PiBj
cmVhdGUoV2ViUGFnZVByb3h5JiwgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVBy
b3h5PiYmKTsKKyAgICBzdGF0aWMgUmVmPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmLCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eVByaXZhdGU+JiYpOwogICAgIH5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KCk7
CiAKLSAgICB2b2lkIHNlZWtUbyhkb3VibGUpOwotICAgIHZvaWQgcGxheSgpOwotICAgIHZvaWQg
cGF1c2UoKTsKLSAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2Vl
a1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBw
bGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcGF1c2UoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBzZXRUcmFjayhjb25zdCBT
dHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKworICAgIHVzaW5nIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50Ojp3ZWFrUHRyRmFjdG9yeTsKKyAgICB1c2luZyBX
ZWFrVmFsdWVUeXBlID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ6OldlYWtWYWx1ZVR5
cGU7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
UHJveHk+JiYpOworICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkoV2ViUGFnZVByb3h5JiwgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRl
PiYmKTsKIAogICAgIHVzaW5nIENvb3JkaW5hdGVDb21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPjsKIApAQCAtNjMs
NiArNjYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBSZWNlaXZlcnMuCisg
ICAgdm9pZCBqb2luKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YSYpPiYmKTsKKyAgICB2b2lkIGxlYXZlKCk7CiAgICAgdm9pZCBjb29yZGluYXRlU2Vl
a1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhJik+JiYpOwogICAgIHZvaWQgY29vcmRpbmF0ZVBsYXkoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpOwogICAgIHZvaWQgY29vcmRp
bmF0ZVBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YSYpPiYmKTsKQEAgLTcwLDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvc2l0aW9u
U3RhdGVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0ZT4pOwogICAg
IHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSk7
CiAgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlKTsKKyAgICB2b2lkIGNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUpOwogCiAgICAgLy8gTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JDbGllbnQKICAgICB2b2lkIHNlZWtTZXNzaW9uVG9UaW1lKGRvdWJsZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CkBAIC03OCw3ICs4NCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4pIGZpbmFsOwogCiAgICAgV2ViUGFnZVByb3h5JiBtX3dlYlBhZ2VQcm94
eTsKLSAgICBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+IG1fcHJpdmF0
ZUNvb3JkaW5hdG9yOworICAgIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0
ZT4gbV9wcml2YXRlQ29vcmRpbmF0b3I7CiAgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7
CiAgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDk2YjYwZDM5ODgxMWI3
ZDgyNTJlYmE4ZmU5MGZhYzEzMDZlNWRiZWEuLjg3ZDU2NzUxY2ZiNmFiOTFhMTdiYjFmMjUxY2Fm
MmRmOTc4N2M2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMjYsNiArMjYsMTAgQEAKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKIAorICAgIEpvaW4oKSAt
PiAoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gZXJyb3IpIEFzeW5jCisKKyAgICBM
ZWF2ZSgpCisKICAgICBDb29yZGluYXRlU2Vla1RvKGRvdWJsZSB0aW1lKSAtPiAoT3B0aW9uYWw8
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gZXJyb3IpIEFzeW5jCiAKICAgICBDb29yZGluYXRlUGxh
eSgpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMKQEAg
LTM5LDYgKzQzLDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBSZWFkeVN0YXRlQ2hhbmdlZChlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSk7CiAKICAgICBQbGF5YmFja1N0
YXRlQ2hhbmdlZChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0
ZSBzdGF0ZSk7CisKKyAgICBDb29yZGluYXRvclN0YXRlQ2hhbmdlZChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSk7CiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZGVlNjE3NTg1YWY0
Yzg4ZmNmZGI1YWU2ZTYzMGEwYjQyN2RmMDBhYi4uNzU4YTBmMzVhYTU5NzkzOTA3YTkxMTA1ODdl
MjllY2I5OWIxZjFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0yOTcsNyArMjk3LDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05f
Q09PUkRJTkFUT1IpCi0jaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJv
eHkuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaCIKICNlbmRpZgog
CkBAIC0xMDM4MywxMSArMTAzODMsMTEgQEAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkg
V2ViUGFnZVByb3h5OjpjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1NhbmRib3hFeHRlbnMKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCi12b2lkIFdlYlBhZ2VQ
cm94eTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZVByb3h5PiYmIHByaXZhdGVDb29yZGluYXRvciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWFrUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGU+JiYgcHJp
dmF0ZUNvb3JkaW5hdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYWtQdHI8UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVCghbV9tZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KTsKIAotICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IoKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcml2YXRlQ29vcmRpbmF0b3Ig
PSBXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvcihwcml2YXRlQ29vcmRpbmF0b3ItPmlkZW50aWZpZXIoKSksIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKSwgcHJpdmF0ZUNvb3JkaW5hdG9yID0gV1RGTW92ZShwcml2YXRlQ29vcmRp
bmF0b3IpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShi
b29sIHN1Y2Nlc3MpIG11dGFibGUgewogCiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXN1Y2Nl
c3MpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDhhZmFhNzhjMmNkMjg0YTk1MjI1MGIzNTQ5MTVi
NjViMjI1MjIwMTcuLmVhOWIwYzE0YTFkYzZkYTg4NzQ0YzZhZjA2MzdmZTk0MTI0ZjEzZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMjksNyArMzI5LDcgQEAg
Y2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7
CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OwogY2xhc3MgUGFnZUNsaWVudDsKLWNsYXNzIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5OworY2xhc3MgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eVByaXZhdGU7CiBjbGFzcyBQcm92aXNpb25hbFBhZ2VQcm94eTsKIGNsYXNz
IFJlbW90ZUxheWVyVHJlZUhvc3Q7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJm
b3JtYW5jZURhdGE7CkBAIC0xODg4LDcgKzE4ODgsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQotICAgIHZvaWQgY3JlYXRlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5
PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYWtQdHI8UmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eT4pPiYmKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZT4mJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWFrUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+
KT4mJik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGE2OWUyYzZlYmIyNzliNjJm
NDNmN2U0ZDczM2U5MzQ3YTM0YTA1MC4uOTcyMzg2NzZhYmQwMGNjYjQ4MjgxNmI0MzljNTdlMTVj
YjZlMDZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yMzkzLDcgKzIzOTMsNyBAQAogCQkwNzRFNzYwMTFERjcwNzVEMDBEMzE4RUMg
LyogTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3NkU4ODREMUExM0NBREYwMDVFOTBGQyAvKiBBUElDb250ZXh0TWVu
dUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDb250ZXh0TWVu
dUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZFODg0RjFBMTNDQkM2
MDA1RTkwRkMgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDc3QkE1NzAyNjBF
OEY2MzAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3N0JBNTcwMjYwRThGNjMwMDcyRjE5RiAvKiBNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzkyMzEzMDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3OTIzMTMxMjM5QjNCMEMwMDk1OThFMiAvKiBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMx
MzIyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTExMjU1LDcgKzExMjU1LDcgQEAKIAkJCQlDRDQ1NzBERDI0NDRDQTU4MDBBM0RD
RUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgKi8sCiAJCQkJQ0Q0
NTcwREIyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkuaCAqLywKIAkJCQlDRDQ1NzBEQzI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLywKLQkJCQkwNzdCQTU3MDI2MEU4RjYz
MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaCAqLywKKwkJ
CQkwNzdCQTU3MDI2MEU4RjYzMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eVByaXZhdGUuaCAqLywKIAkJCQkwNzk0QjRBRTI0NDUyNEIwMDAwMUI5QzQgLyogTWVkaWFVc2Fn
ZU1hbmFnZXIuY3BwICovLAogCQkJCTA3OTRCNEFDMjQ0NTFCQjkwMDAxQjlDNCAvKiBNZWRpYVVz
YWdlTWFuYWdlci5oICovLAogCQkJCTA3MzZCNzVDMjYwRDRBNEUwMEUwNjk5NCAvKiBSZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvci5jcHAKaW5kZXggNDkwNDZjMmRlY2JiNjEwNmViOGVjZDFlMTdk
NTQzNWMyNjYwNWNhNi4uMGNjM2Y4MWNmMWY0YTZiNTljNjM2ODdjNmIyMjk3ZWY1ZDJiNDg0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAgLTQ1LDEz
ICs0NSwxNCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
PiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UpCitS
ZWY8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KHBhZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvcihwYWdlLCBpZGVudGlmaWVyKSk7CiB9CiAKLVJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihXZWJQYWdlJiBwYWdlKQorUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KFdlYlBhZ2UmIHBhZ2UsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKICAgICA6IG1fcGFnZShw
YWdlKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UuaWRlbnRpZmllcigp
LCAqdGhpcyk7CiB9CkBAIC02MSw2ICs2MiwyOSBAQCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6flJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5pZGVudGlmaWVy
KCkpOwogfQogCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpqb2luKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxs
YmFjaykKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOworICAg
IG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHk6OkpvaW4geyB9LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7
CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgY2FsbGJhY2soRXhjZXB0
aW9uIHsgZXhjZXB0aW9uLT5jb2RlLCBXVEZNb3ZlKGV4Y2VwdGlvbi0+bWVzc2FnZSkgfSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjYWxsYmFjayh7IH0pOwor
ICAgIH0sIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsZWF2
ZSgpCit7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHk6OkxlYXZlIHsgfSwgMCk7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIEFMV0FZ
U19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7CkBAIC0xNTEsNiArMTc1LDEy
IEBAIHZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFu
Z2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlBsYXliYWNrU3RhdGVDaGFuZ2VkIHsg
c3RhdGUgfSwgMCk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNv
b3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3Rh
dGUgc3RhdGUpCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCBz
dGF0ZSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHk6OkNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkIHsgc3RhdGUgfSwgMCk7Cit9CisK
IHZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9uVG9UaW1lKGRv
dWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUiwgdGltZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVk
aWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKaW5kZXggNDU4YmU0M2Nk
YWJkMzE3YjQzMzhhMWM5YTgzZTgzYmI5OTE4ZmVlMy4uMmE2YjA5Y2IxZjMzY2Y2MDE4NDEyZGUw
MTM3NTU0OTk0N2Y5NzFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01l
ZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaApAQCAtNDQsMTEgKzQ0LDExIEBAIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVNlc3Npb25D
b29yZGluYXRvclByaXZhdGUgLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShXZWJQYWdlJik7CisgICAgc3RhdGljIFJlZjxS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFdlYlBhZ2UmLCBjb25zdCBTdHJp
bmcmKTsKICAgICB+UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihXZWJQYWdlJik7Cisg
ICAgZXhwbGljaXQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoV2ViUGFnZSYsIGNvbnN0
IFN0cmluZyYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKQEAg
LTYwLDYgKzYwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNlc3Npb25UcmFjayhjb25zdCBT
dHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAogICAgIC8vIE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSBvdmVycmlkZXMuCisgICAgU3RyaW5nIGlkZW50aWZp
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICB2b2lkIGpvaW4o
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYm
KSBmaW5hbDsKKyAgICB2b2lkIGxlYXZlKCkgZmluYWw7CiAgICAgdm9pZCBzZWVrVG8oZG91Ymxl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+
JiYpIGZpbmFsOwogICAgIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgcGF1c2UoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmKSBmaW5h
bDsKQEAgLTY4LDExICs3MSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNo
YW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlPiYpIGZpbmFs
OwogICAgIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlT
dGF0ZSkgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlKSBmaW5hbDsKKyAgICB2b2lkIGNvb3JkaW5hdG9yU3RhdGVD
aGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUpIGZpbmFsOwogCiAg
ICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBj
b25zdDsKIAogICAgIFdlYlBhZ2UmIG1fcGFnZTsKKyAgICBTdHJpbmcgbV9pZGVudGlmaWVyOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc5MmQzNGMxMTA4NzU5OTAxMzMxZmFiNjk4YTg3MjY0
NWIzZWU2MjguLjMxMzEzZmE5YzY5ZjUxMWI0ZjdiZTEzZmVkMTkyOWNjN2IzYzllZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03Mzg3LDcg
KzczODcsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlc3RvcmVBcHBIaWdobGlnaHRzKGNvbnN0IFZlY3Rv
cjxTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZT4mJiBtZW1vcgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLXZvaWQgV2ViUGFnZTo6Y3JlYXRlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gbV9tYWluRnJhbWUtPmNv
cmVGcmFtZSgpLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5k
b21XaW5kb3coKSkgewpAQCAtNzM5Niw3ICs3Mzk2LDcgQEAgdm9pZCBXZWJQYWdlOjpjcmVhdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXAKICAgICB9CiAKICAgICBhdXRvJiBzZXNzaW9uID0gTmF2aWdhdG9yTWVkaWFTZXNzaW9uOjpt
ZWRpYVNlc3Npb24oZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5uYXZpZ2F0b3IoKSk7Ci0gICAgYXV0
byBjb29yZGluYXRvciA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoKnRo
aXMpOworICAgIGF1dG8gY29vcmRpbmF0b3IgPSBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6Y3JlYXRlKCp0aGlzLCBpZGVudGlmaWVyKTsKICAgICBtX3JlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yID0gY29vcmRpbmF0b3IucHRyKCk7CiAgICAgbV9tZWRpYVNlc3Npb25Db29yZGlu
YXRvciA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoY29vcmRpbmF0b3IuZ2V0KCkp
OwogICAgIHNlc3Npb24uc2V0Q29vcmRpbmF0b3IobV9tZWRpYVNlc3Npb25Db29yZGluYXRvci5n
ZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
YzU0YTYxOGRiNDZhMTJkZTAxYTU4NjM0NmE2NmU5MTdmNzRjYTJkYi4uZTBiNWVjMWVlNTNmODFh
OTI2MWY0NmJhYjY0M2NjZTFlZDc3NjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQxMyw3ICsxNDEzLDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLSAgICB2b2lkIGNyZWF0ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwor
ICAgIHZvaWQgY3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoY29uc3QgU3RyaW5nJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0TGFz
dE5hdmlnYXRpb25XYXNBcHBCb3VuZChib29sIHdhc0FwcEJvdW5kKSB7IG1fbGFzdE5hdmlnYXRp
b25XYXNBcHBCb3VuZCA9IHdhc0FwcEJvdW5kOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBjOGU2NDZhZWRlYmM0
YWExMjBhM2FiZTlkYWQ3NjE4MWU0MTlkYTZlLi5lNThmOTY3OTc1YjExYWM2NTY1NzM5OGNkNDgw
MTdkYTQ1MTQxMjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTYzNSw3ICs2MzUsNyBAQCBHZW5lcmF0ZVN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZQogICAgIExhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoKSAtPiAoYm9vbCB3YXNB
cHBCb3VuZCkgQXN5bmMKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQot
ICAgIENyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5
bmMKKyAgICBDcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihTdHJpbmcgaWRlbnRpZmllcikg
LT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKICNlbmRpZgogCiAjaWYgRU5BQkxFKElNQUdFX0VYVFJB
Q1RJT04pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMzYWJlOTkzNTcwNTY5MzgyODg0MjY1
NzA5ZWE4ZjVkYzU2ZWZiZmYuLmIwZTdmYTU0N2NmMTRkYzI4OTZkZGQ2YmY3ZDJlZGIwNDg2Yjdm
ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OCw2ICs0OCw3IEBACiAJCTA0MUExRTM0
MjE2RkZEQkMwMDc4OUUwQSAvKiBQdWJsaWNTdWZmaXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDQxQTFFMzMyMTZGRkRCQzAwNzg5RTBBIC8qIFB1
YmxpY1N1ZmZpeC5jcHAgKi87IH07CiAJCTA0REIyMzk2MjM1RTQzRUMwMDMyOEYxNyAvKiBCdW1w
UG9pbnRlckFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNDUxQTVBNjIzNUU0MzhFMDA5REY5NDUgLyogQnVtcFBvaW50ZXJBbGxvY2F0
b3IuY3BwICovOyB9OwogCQkwNzExREY1MjIyNkE5NUZDMDAzREQyRjcgLyogQVZGb3VuZGF0aW9u
U29mdExpbmtUZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcxMURGNTEyMjZBOTVGQjAwM0REMkY3IC8qIEFWRm91bmRhdGlvblNvZnRMaW5rVGVz
dC5tbSAqLzsgfTsKKwkJMDcyNTcyQkUyNjEzN0Y3MTAwQkFGRkI0IC8qIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yVGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzI1NzJCRDI2MTM3RjcxMDBCQUZGQjQgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JUZXN0LmNwcCAqLzsgfTsKIAkJMDc0OTJCM0IxREY4QjE0QzAwNjMzREUxIC8qIEVudW1lcmF0
ZU1lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzQ5MkIzQTFERjhBRTJEMDA2MzNERTEgLyogRW51bWVyYXRlTWVkaWFEZXZpY2Vz
LmNwcCAqLzsgfTsKIAkJMDc0OTJCM0MxREY4Qjg2NjAwNjMzREUxIC8qIGVudW1lcmF0ZU1lZGlh
RGV2aWNlcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3NDkyQjM5MURGOEFEQTQwMDYzM0RFMSAvKiBlbnVtZXJhdGVNZWRpYURldmlj
ZXMuaHRtbCAqLzsgfTsKIAkJMDc0OTk0NDIxRUE1MDM0QjAwMERBNDRFIC8qIGdldFVzZXJNZWRp
YS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRVc2VyTWVkaWEuaHRtbCAqLzsgfTsK
QEAgLTE3NTMsNiArMTc1NCw3IEBACiAJCTA0MUExRTMzMjE2RkZEQkMwMDc4OUUwQSAvKiBQdWJs
aWNTdWZmaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVibGlj
U3VmZml4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDQ1MUE1QTYyMzVFNDM4
RTAwOURGOTQ1IC8qIEJ1bXBQb2ludGVyQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEJ1bXBQb2ludGVyQWxsb2NhdG9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcxMURGNTEyMjZBOTVGQjAwM0REMkY3IC8qIEFWRm91bmRhdGlv
blNvZnRMaW5rVGVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEFWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDcyNTcyQkQyNjEzN0Y3MTAwQkFGRkI0IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNlc3Npb25D
b29yZGluYXRvclRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ2NjQ1
NzIyRkY2MkQwMDBFMzQ1MUEgLyogQWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0UHJvdG9jb2wuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRlc3RTdXBwb3J0UHJvdG9jb2wuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0NjY0NTgyMkZGNjMwNTAwRTM0NTFBIC8qIEFjY2Vz
c2liaWxpdHlUZXN0UGx1Z2luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0
eVRlc3RQbHVnaW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDkyQjM5MURG
OEFEQTQwMDYzM0RFMSAvKiBlbnVtZXJhdGVNZWRpYURldmljZXMuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9IGVudW1lcmF0ZU1lZGlhRGV2aWNlcy5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDI2OCw2ICs0MjcwLDcgQEAKIAkJCQkzM0RDODkxMDE0MTk1M0Ez
MDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcCAqLywK
IAkJCQkzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRp
cmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi8sCiAJCQkJOEFBMjhDMTkxNkQyRkE3QjAwMkZGNERC
IC8qIExvYWRQYWdlT25DcmFzaC5jcHAgKi8sCisJCQkJMDcyNTcyQkQyNjEzN0Y3MTAwQkFGRkI0
IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5jcHAgKi8sCiAJCQkJQ0RDOTQ0MkMxRUYx
RkMwODAwNTlDM0M0IC8qIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSAqLywKIAkJCQk3QTU2
MjMxMDFBRDVBRjNFMDA5NkI5MjAgLyogTWVudVR5cGVzRm9yTW91c2VFdmVudHMuY3BwICovLAog
CQkJCTUxQ0I0QUQ3MUIzQTA3OUMwMEMxQjFDNiAvKiBNb2RhbEFsZXJ0c1NQSS5jcHAgKi8sCkBA
IC01NDg5LDYgKzU0OTIsNyBAQAogCQkJCTA3RUY3NkQ1MjU0MEZDMDYwMDUzRUQ1MyAvKiBNZWRp
YU11dGVkU3RhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREEzMTU5ODFFRDUzNjUxMDA5RjYw
RDMgLyogTWVkaWFQbGF5YmFja1NsZWVwQXNzZXJ0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDc5NDc0MEQyNUNBMEJERTAwQzU5N0VCIC8qIE1lZGlhU2Vzc2lvbi5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTA3MjU3MkJFMjYxMzdGNzEwMEJBRkZCNCAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRv
clRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDOTQ0MkUxRUYxRkMwODAwNTlDM0M0IC8q
IE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxQkU5RTY2
MjM3NjA4OUYwMEI0RTExNyAvKiBNZWRpYVR5cGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NF
N0VDNTFBNDExQTdFMDA0NDdDNEMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VM
b2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYTJlNTcwNTMyMDZhZDg2NmUw
NGZkNTkyZDRkZWFlYzM5OWU1ZmJlLi41Y2MxZDYxYTMwNTNjZGNlOGQ0YzQ1MTRmMGQzM2FhN2Q1
YzdmNzEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDMtMzEgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBNZWRpYVNlc3Npb25D
b29yZGluYXRvciBzaG91bGQgaGF2ZSBqb2luIGFuZCBsZWF2ZSBtZXRob2RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM5NTUKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc2MDIxNTg4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0
b3IuaHRtbDoKKwogMjAyMS0wMy0zMCAgQ2hyaXMgR2FtYnJlbGwgIDxjZ2FtYnJlbGxAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMYXlvdXRUZXN0c10gQ29udmVydCBodHRwL3Rlc3RzL2NvbnRlbnRl
eHRlbnNpb25zIGNvbnZlcnQgUEhQIHRvIFB5dGhvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQK
aW5kZXggOTQwNmY0ODJmNDg5YzcyNmY0NzI4ODBlZTY2NzZmOTI0ZDA1ZTU2NC4uMTI5NGIzYTM0
ZGRjNDQ5YzdlMTQyMmRjYWY3NjU1MjdmNGJlM2NjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQu
dHh0CkBAIC03LDI4ICs3LDEwMCBAQCBSVU4oaW50ZXJuYWxzLnJlZ2lzdGVyTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKGNoYW5nZUhhbmRsZXIpKQogRVZFTlQoY29vcmRpbmF0b3JjaGFuZ2Up
CiBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciAhPSAndW5kZWZp
bmVkJykgT0sKIAorKiogbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zdGF0ZSBz
aG91bGQgYmUgIndhaXRpbmciIGludGl0aWFsbHkKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uLmNvb3JkaW5hdG9yLnN0YXRlID09ICd3YWl0aW5nJykgT0sKKworKiogVGVzdCB0aGF0
IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBmYWlsIGFuZCBwcm9taXNlcyByZWplY3QgYmVmb3Jl
IG1lZGlhU2Vzc2lvbi5qb2luKCkgaXMgY2FsbGVkLgorUlVOKHByb21pc2UgPSBuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVj
dGx5IE9LCisKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRv
ci5wYXVzZSgpKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0bHkgT0sKKworUlVOKHByb21pc2Ug
PSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnNlZWtUbygxMCkpCitQcm9taXNl
IHJlamVjdGVkIGNvcnJlY3RseSBPSworCisqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIGRvZXMg
bm90IG5vdGlmeSBjb29yZGluYXRvciB3aGVuIHN0YXRlcyBjaGFuZ2UgYmVmb3JlIG1lZGlhU2Vz
c2lvbi5qb2luKCkgaXMgY2FsbGVkLgorKiBQb3NpdGlvblN0YXRlCitSVU4obmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsgZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTog
MSwgcG9zaXRpb246IDAgfSkpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworCisq
IFJlYWR5U3RhdGUKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUg
PT0gJ2hhdmVOb3RoaW5nJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3Rh
dGUgPSAnaGF2ZU1ldGFkYXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitF
WFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTWV0YWRh
dGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09
ICdoYXZlTWV0YWRhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0
ZSA9ICdoYXZlQ3VycmVudERhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sK
K0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVDdXJy
ZW50RGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3Rh
dGUgPT0gJ2hhdmVDdXJyZW50RGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5y
ZWFkeVN0YXRlID0gJ2hhdmVGdXR1cmVEYXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0g
JycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdo
YXZlRnV0dXJlRGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJl
YWR5U3RhdGUgPT0gJ2hhdmVGdXR1cmVEYXRhJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUVub3VnaERhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5n
ZSA9PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUg
PT0gJ2hhdmVFbm91Z2hEYXRhJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRp
YVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlTm90aGluZycpCitFWFBFQ1RFRCAobGF0ZXN0Q2hh
bmdlID09ICcnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0
ZSA9PSAnaGF2ZU5vdGhpbmcnKSBPSworCisqIFBsYXliYWNrU3RhdGUKK0VYUEVDVEVEIChuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworUlVOKG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICdwYXVzZWQnKQorRVhQRUNURUQgKGxh
dGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBs
YXliYWNrU3RhdGUgPT0gJ3BhdXNlZCcpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BhdXNlZCcpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ3BsYXlpbmcnKQorRVhQRUNURUQgKGxhdGVzdENoYW5n
ZSA9PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3Rh
dGUgPT0gJ3BsYXlpbmcnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5w
bGF5YmFja1N0YXRlID09ICdwbGF5aW5nJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnBsYXliYWNrU3RhdGUgPSAnbm9uZScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBP
SworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAnbm9u
ZScpIE9LCisKKworCisqKiBzZXNzaW9uLmpvaW4oKSBzaG91bGQgcmVqZWN0IG9uIGZhaWx1cmUK
K1JVTihpbnRlcm5hbHMuc2V0TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91
bGRGYWlsKHRydWUpKQorUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yLmpvaW4oKSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5IE9LCitFWFBFQ1RFRCAo
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zdGF0ZSA9PSAnd2FpdGluZycpIE9L
CitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworCitSVU4oaW50ZXJuYWxzLnNldE1v
Y2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChmYWxzZSkpCitSVU4o
cHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuam9pbigpKQorUHJv
bWlzZSByZXNvbHZlZCBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRp
bmF0b3Iuc3RhdGUgPT0gJ2pvaW5lZCcpIE9LCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdj
b29yZGluYXRvclN0YXRlQ2hhbmdlZCcpIE9LCisKICoqIFRlc3QgdGhhdCB3aGVuIGNvb3JkaW5h
dG9yIG1ldGhvZHMgc3VjY2VlZCwgcHJvbWlzZXMgcmVzb2x2ZSBhbmQgbWVkaWFTZXNzaW9uIGFj
dGlvbiBoYW5kbGVycyBhcmUgY2FsbGVkLgotVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNv
b3JkaW5hdG9yLnBsYXkoKQotQUNUSU9OKHBsYXkpCi1FWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09
ICdwbGF5JykgT0sKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvci5wbGF5KCkpCitQcm9taXNlIHJlc29sdmVkIE9LCiAKLVRlc3QgbmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpCi1BQ1RJT04ocGF1c2UpCi1FWFBFQ1RFRCAobGF0
ZXN0QWN0aW9uID09ICdwYXVzZScpIE9LCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYVNl
c3Npb24uY29vcmRpbmF0b3IucGF1c2UoKSkKK1Byb21pc2UgcmVzb2x2ZWQgT0sKIAotVGVzdCBu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnNlZWt0bygpCi1BQ1RJT04oc2Vla3Rv
KQotRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAnc2Vla3RvJykgT0sKK1JVTihwcm9taXNlID0g
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrVG8oMTApKQorUHJvbWlzZSBy
ZXNvbHZlZCBPSwogCi0qKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIHN1Y2Nl
ZWQsIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUg
bm90IGNhbGxlZC4KLVRlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5
KCkKLUVYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCisqKiBUZXN0IHRoYXQgd2hlbiBj
b29yZGluYXRvciBtZXRob2RzIGZhaWwsIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFTZXNzaW9u
IGFjdGlvbiBoYW5kbGVycyBhcmUgbm90IGNhbGxlZC4KK1JVTihwcm9taXNlID0gbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5KCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJl
Y3RseSBPSwogCi1UZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2Uo
KQotRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAnJykgT0sKK1JVTihwcm9taXNlID0gbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpKQorUHJvbWlzZSByZWplY3RlZCBj
b3JyZWN0bHkgT0sKIAotVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnNl
ZWt0bygpCi1FWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICcnKSBPSworUlVOKHByb21pc2UgPSBu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnNlZWtUbygxMCkpCitQcm9taXNlIHJl
amVjdGVkIGNvcnJlY3RseSBPSwogCiAqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVz
IGNvb3JkaW5hdG9yIHdoZW4gcG9zaXRpb25TdGF0ZSBjaGFuZ2VzLgogUlVOKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24uc2V0UG9zaXRpb25TdGF0ZSh7IGR1cmF0aW9uOiAxLCBwbGF5YmFja1JhdGU6
IDEsIHBvc2l0aW9uOiAwIH0pKQpAQCAtNjMsMTkgKzEzNSw4NiBAQCBFWFBFQ1RFRCAobmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTm90aGluZycpIE9LCiAqKiBUZXN0
IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcGxheWJhY2tTdGF0
ZSBjaGFuZ2VzLgogRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0
ZSA9PSAnbm9uZScpIE9LCiBSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRl
ID0gJ3BhdXNlZCcpCi1FWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdwbGF5YmFja1N0YXRlQ2hh
bmdlZCcpIE9LCiBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRl
ID09ICdwYXVzZWQnKSBPSwogCiBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5
YmFja1N0YXRlID09ICdwYXVzZWQnKSBPSwogUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxh
eWJhY2tTdGF0ZSA9ICdwbGF5aW5nJykKLUVYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3BsYXli
YWNrU3RhdGVDaGFuZ2VkJykgT0sKIEVYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBs
YXliYWNrU3RhdGUgPT0gJ3BsYXlpbmcnKSBPSwogCiBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5aW5nJykgT0sKIFJVTihuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAnbm9uZScpCi1FWFBFQ1RFRCAobGF0ZXN0Q2hhbmdl
ID09ICdwbGF5YmFja1N0YXRlQ2hhbmdlZCcpIE9LCiBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdub25lJykgT0sKIAogCisKKyoqIExlYXZlIHRoZSBz
ZXNzaW9uCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5sZWF2ZSgpKQor
RVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc3RhdGUgPT0gJ2Ns
b3NlZCcpIE9LCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdjb29yZGluYXRvclN0YXRlQ2hh
bmdlZCcpIE9LCisKKyoqIFRlc3QgdGhhdCB3aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgZmFpbCBh
bmQgcHJvbWlzZXMgcmVqZWN0IGFmdGVyIG1lZGlhU2Vzc2lvbi5sZWF2ZSgpIGhhcyBiZWVuIGNh
bGxlZC4KK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5w
bGF5KCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworCitSVU4ocHJvbWlzZSA9IG5h
dmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2UoKSkKK1Byb21pc2UgcmVqZWN0
ZWQgY29ycmVjdGx5IE9LCisKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5j
b29yZGluYXRvci5zZWVrVG8oMTApKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0bHkgT0sKKwor
KiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBkb2VzIG5vdCBub3RpZnkgY29vcmRpbmF0b3Igd2hl
biBzdGF0ZXMgY2hhbmdlIGFmdGVyIG1lZGlhU2Vzc2lvbi5sZWF2ZSgpIGhhcyBiZWVuIGNhbGxl
ZC4KKyogUG9zaXRpb25TdGF0ZQorUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uc2V0UG9zaXRp
b25TdGF0ZSh7IGR1cmF0aW9uOiAxLCBwbGF5YmFja1JhdGU6IDEsIHBvc2l0aW9uOiAwIH0pKQor
RVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKKworKiBSZWFkeVN0YXRlCitFWFBFQ1RF
RCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTm90aGluZycpIE9L
CitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVNZXRhZGF0YScp
CitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZU1ldGFkYXRhJykgT0sKKworRVhQRUNURUQg
KG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZU1ldGFkYXRhJykgT0sK
K1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUN1cnJlbnREYXRh
JykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlQ3VycmVudERhdGEnKSBPSworCitFWFBF
Q1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlQ3VycmVudERh
dGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlRnV0
dXJlRGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworRVhQRUNURUQgKG5h
dmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUZ1dHVyZURhdGEnKSBPSwor
CitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRnV0
dXJlRGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hh
dmVFbm91Z2hEYXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RF
RCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRW5vdWdoRGF0YScp
IE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hh
dmVFbm91Z2hEYXRhJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUg
PSAnaGF2ZU5vdGhpbmcnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVD
VEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykg
T0sKKworKiBQbGF5YmFja1N0YXRlCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5w
bGF5YmFja1N0YXRlID09ICdub25lJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBs
YXliYWNrU3RhdGUgPSAncGF1c2VkJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9L
CitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwYXVz
ZWQnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRl
ID09ICdwYXVzZWQnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0
ZSA9ICdwbGF5aW5nJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RF
RCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5aW5nJykgT0sK
KworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGxh
eWluZycpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ25v
bmUnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSworCisKKworKiogSXQg
c2hvdWxkIG5vdCBiZSBwb3NzaWJsZSB0byBqb2luIG9yIGxlYXZlIGEgY2xvc2VkIHNlc3Npb24K
K1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5qb2luKCkp
CitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworVEVTVChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLmNvb3JkaW5hdG9yLmxlYXZlKCkpIFRIUk9XUyhJbnZhbGlkU3RhdGVFcnJvcjogVW5hYmxl
IHRvIGxlYXZlIHdoZW4gc3RhdGUgaXMgY2xvc2VkKSBPSworCiBFTkQgT0YgVEVTVAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3Iu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5o
dG1sCmluZGV4IDU3ODExNGE4YjUzMGY0ZGQ5OWMzMTE4ZDlhNTcyZmViNWU1YzE3NGQuLjhiODQ3
YTM5ZTcyYTliNDBlZmE3ZGEyMTk3NmE2MGI5OGMwYTViYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCkBAIC0xLDMg
KzEsNCBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBNZWRpYVNlc3Npb25Db29yZGluYXRv
ckVuYWJsZWQ9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpAQCAt
NSw2ICs2LDE2IEBACiAgICAgPHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQ+CiAKKyAgICBsZXQgd2FpdGluZyA9IGZhbHNlOworICAgIGFzeW5jIGZ1
bmN0aW9uIHdhaXRGb3JEZWJ1Z2dlcigpCisgICAgeworICAgICAgICBsZXQgY291bnRlciA9IDA7
CisgICAgICAgIHdoaWxlICh3YWl0aW5nKSB7CisgICAgICAgICAgICBhd2FpdCBzbGVlcEZvcigx
MDApOworICAgICAgICAgICAgY291bnRlcisrOworICAgICAgICB9CisgICAgfQorCiAgICAgZnVu
Y3Rpb24gY2hhbmdlSGFuZGxlcihjaGFuZ2UpCiAgICAgewogICAgICAgICB3aW5kb3cubGF0ZXN0
Q2hhbmdlID0gY2hhbmdlOwpAQCAtMjAsMTIgKzMxLDE2IEBACiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBjaGFuZ2VQcm9taXNlID0gbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB7Ci0gICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmFkZEV2ZW50
TGlzdGVuZXIoJ2Nvb3JkaW5hdG9yY2hhbmdlJywgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKGBFVkVOVCgke2V2ZW50LnR5cGV9KWApOwotICAgICAgICAgICAgICAg
IHJlc29sdmUoKTsKKyAgICAgICAgbGV0IGNoYW5nZVByb21pc2UgPSAoKSA9PiB7CisgICAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICAgICAgbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5hZGRFdmVudExpc3RlbmVyKCdjb29yZGluYXRvcmNoYW5nZScs
IChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7
ZXZlbnQudHlwZX0pYCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIGF3YWl0IHdhaXRGb3JEZWJ1Z2dlcigpOwogCiAgICAgICAgIGNvbnNvbGVXcml0ZSgn
Jyk7CiAgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGhlcmUgc2hvdWxkIGJlIG5vIG1lZGlhU2Vz
c2lvbi5jb29yZGluYXRvciBpbml0aWFsbHkuJykKQEAgLTM3LDcgKzUyLDcgQEAKIAogICAgICAg
ICBydW4oJ2ludGVybmFscy5yZWdpc3Rlck1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcihjaGFu
Z2VIYW5kbGVyKScpOwogCi0gICAgICAgIGF3YWl0IGNoYW5nZVByb21pc2U7CisgICAgICAgIGF3
YWl0IGNoYW5nZVByb21pc2UoKTsKICAgICAgICAgCiAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvcicsIHVuZGVmaW5lZCwgJyE9Jyk7CiAKQEAg
LTQ4LDM4ICs2MywxMTMgQEAKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAotICAgICAg
ICBsZXQgdGVzdEFjdGlvbiA9IGFzeW5jIChhY3Rpb24sIGZ1bmMsIGZvcmNlRmFpbHVyZSkgPT4g
eworICAgICAgICBsZXQgdGVzdEFjdGlvbiA9IGFzeW5jIChhY3Rpb24sIGZ1bmMsIGV4cGVjdEZh
aWx1cmUpID0+IHsKICAgICAgICAgICAgIGxhdGVzdEFjdGlvbiA9ICcnOwogCi0gICAgICAgICAg
ICBsZXQgc3VjY2VlZGVkOworICAgICAgICAgICAgcnVuKGBwcm9taXNlID0gJHtmdW5jLnRvU3Ry
aW5nKCl9YCk7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZShgVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLiR7YWN0aW9ufSgpYCk7
Ci0gICAgICAgICAgICAgICAgYXdhaXQgZnVuYygpOwotICAgICAgICAgICAgICAgIGlmIChmb3Jj
ZUZhaWx1cmUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkFJTDogJHtmdW5j
LnRvU3RyaW5nKCl9IHJlc29sdmVkIGJ1dCBzaG91bGQgaGF2ZSByZWplY3RlZGApOwotICAgICAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0QWN0aW9uJywgYWN0aW9uKTsKLSAgICAgICAg
ICAgIH0gY2F0Y2ggKGV4KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFmb3JjZUZhaWx1cmUpCi0g
ICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9
IHRocmV3ICR7ZXh9YCk7Ci0gICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RBY3Rp
b24nLCAnJyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGV4cGVjdEZhaWx1
cmUpCisgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNob3VsZFJlamVjdChwcm9taXNlKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNob3VsZFJlc29s
dmUocHJvbWlzZSk7CisgICAgICAgICAgICB9IGNhdGNoKGV4KSB7fQogCiAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoJycpOwogICAgICAgICB9OwogCisgICAgICAgIGxldCB0ZXN0UmVhZHlTdGF0
ZXMgPSBhc3luYyAodGVzdENhbGxiYWNrKSA9PiB7CisgICAgICAgICAgICBsZXQgcHJldmlvdXNT
dGF0ZSA9ICdoYXZlTm90aGluZyc7CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnJlYWR5U3RhdGUgPSAnaGF2ZU5vdGhpbmcnOworICAgICAgICAgICAgZm9yIChsZXQgc3RhdGUg
b2YgWydoYXZlTWV0YWRhdGEnLCAnaGF2ZUN1cnJlbnREYXRhJywgJ2hhdmVGdXR1cmVEYXRhJywg
J2hhdmVFbm91Z2hEYXRhJywgJ2hhdmVOb3RoaW5nJ10pIHsKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZScsIHByZXZpb3VzU3Rh
dGUpOworCisgICAgICAgICAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAgICAgICAgICAg
ICAgcnVuKGBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnJHtzdGF0ZX0nYCk7
CisKKyAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0Q2FsbGJhY2soKQorCisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBzdGF0
ZSk7CisgICAgICAgICAgICAgICAgcHJldmlvdXNTdGF0ZSA9IHN0YXRlOworICAgICAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICAg
ICAgbGV0IHRlc3RQbGF5YmFja1N0YXRlcyA9IGFzeW5jICh0ZXN0Q2FsbGJhY2spID0+IHsKKyAg
ICAgICAgICAgIGxldCBwcmV2aW91c1N0YXRlID0gJ25vbmUnOworICAgICAgICAgICAgbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ25vbmUnOworICAgICAgICAgICAgZm9y
IChsZXQgc3RhdGUgb2YgWydwYXVzZWQnLCAncGxheWluZycsICdub25lJ10pIHsKKworICAgICAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0
YXRlJywgcHJldmlvdXNTdGF0ZSk7CisKKyAgICAgICAgICAgICAgICBsYXRlc3RDaGFuZ2UgPSAn
JzsKKyAgICAgICAgICAgICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tT
dGF0ZSA9ICcke3N0YXRlfSdgKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RDYWxsYmFj
aygpCisKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Np
b24ucGxheWJhY2tTdGF0ZScsIHN0YXRlKTsKKyAgICAgICAgICAgICAgICBwcmV2aW91c1N0YXRl
ID0gc3RhdGU7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgICAg
IH07CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIGxldCBhY3Rpb25zID0gWyAKLSAgICAg
ICAgICAgIHsgYWN0aW9uOiAncGxheScsIGZ1bmMgOiAoKSA9PiB7IHJldHVybiBuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKSB9LCB9LAotICAgICAgICAgICAgeyBhY3Rp
b246ICdwYXVzZScsIGZ1bmMgOiAoKSA9PiB7IHJldHVybiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LmNvb3JkaW5hdG9yLnBhdXNlKCkgfSwgfSwKLSAgICAgICAgICAgIHsgYWN0aW9uOiAnc2Vla3Rv
JywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0
b3Iuc2Vla1RvKDEwKSB9LCB9LAorICAgICAgICAgICAgeyBhY3Rpb246ICdwbGF5JywgZnVuYyA6
ICduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKScgfSwKKyAgICAgICAg
ICAgIHsgYWN0aW9uOiAncGF1c2UnLCBmdW5jIDogJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29v
cmRpbmF0b3IucGF1c2UoKScgfSwKKyAgICAgICAgICAgIHsgYWN0aW9uOiAnc2Vla3RvJywgZnVu
YyA6ICduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnNlZWtUbygxMCknIH0sCiAg
ICAgICAgIF07CiAKKyAgICAgICAgLy8gQmVmb3JlIGpvaW5pbmcKKyAgICAgICAgY29uc29sZVdy
aXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LmNvb3JkaW5hdG9yLnN0YXRlIHNob3VsZCBiZSAid2FpdGluZyIgaW50aXRpYWxseScpCisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zdGF0
ZScsICd3YWl0aW5nJyk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29u
c29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIGZhaWwgYW5k
IHByb21pc2VzIHJlamVjdCBiZWZvcmUgbWVkaWFTZXNzaW9uLmpvaW4oKSBpcyBjYWxsZWQuJykK
KyAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpCisgICAgICAgICAgICBhd2FpdCB0
ZXN0QWN0aW9uKGFjdGlvbi5hY3Rpb24sIGFjdGlvbi5mdW5jLCB0cnVlKTsKKworICAgICAgICBj
b25zb2xlV3JpdGUoYCoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gZG9lcyBub3Qgbm90aWZ5IGNv
b3JkaW5hdG9yIHdoZW4gc3RhdGVzIGNoYW5nZSBiZWZvcmUgbWVkaWFTZXNzaW9uLmpvaW4oKSBp
cyBjYWxsZWQuYCkKKyAgICAgICAgY29uc29sZVdyaXRlKCcqIFBvc2l0aW9uU3RhdGUnKTsKKyAg
ICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAgICAgIHJ1bignbmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5zZXRQb3NpdGlvblN0YXRlKHsgZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9z
aXRpb246IDAgfSknKTsKKyAgICAgICAgYXdhaXQgc2xlZXBGb3IoMjApOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ2xhdGVzdENoYW5nZScsICcnKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICBjb25zb2xlV3JpdGUoJyogUmVhZHlTdGF0ZScpOworICAgICAgICBhd2FpdCB0
ZXN0UmVhZHlTdGF0ZXMoYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgc2xlZXBGb3Io
MjApOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RDaGFuZ2UnLCAnJyk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiBQbGF5YmFja1N0YXRlJyk7CisgICAg
ICAgIGF3YWl0IHRlc3RQbGF5YmFja1N0YXRlcyhhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBh
d2FpdCBzbGVlcEZvcigyMCk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2xhdGVzdENoYW5n
ZScsICcnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCc8YnI+Jyk7Cisg
ICAgICAgIGNvbnNvbGVXcml0ZSgnKiogc2Vzc2lvbi5qb2luKCkgc2hvdWxkIHJlamVjdCBvbiBm
YWlsdXJlJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldE1vY2tNZWRpYVNlc3Npb25Db29y
ZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbCh0cnVlKScpOworICAgICAgICBydW4oJ3Byb21pc2Ug
PSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLmpvaW4oKScpOworICAgICAgICBh
d2FpdCBzaG91bGRSZWplY3QocHJvbWlzZSkudGhlbigoKSA9PiB7IH0pLmNhdGNoKCgpID0+IHsg
fSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvci5zdGF0ZScsICd3YWl0aW5nJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0Q2hh
bmdlJywgJycpOworCiAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7Ci0gICAgICAgIGNvbnNvbGVX
cml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCAgcHJv
bWlzZXMgcmVzb2x2ZSBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgY2FsbGVk
LicpCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
ckNvbW1hbmRzU2hvdWxkRmFpbChmYWxzZSknKTsKKyAgICAgICAgcnVuKCdwcm9taXNlID0gbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5qb2luKCknKTsKKyAgICAgICAgYXdhaXQg
c2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVuKCgpID0+IHsgfSkuY2F0Y2goKCkgPT4geyB9KTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9y
LnN0YXRlJywgJ2pvaW5lZCcpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2xhdGVzdENoYW5nZScs
ICdjb29yZGluYXRvclN0YXRlQ2hhbmdlZCcpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0
aG9kcyBzdWNjZWVkLCBwcm9taXNlcyByZXNvbHZlIGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhh
bmRsZXJzIGFyZSBjYWxsZWQuJykKICAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tNZWRpYVNlc3Np
b25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChmYWxzZSk7CiAgICAgICAgIGZvciAobGV0
IGFjdGlvbiBvZiBhY3Rpb25zKQogICAgICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24u
YWN0aW9uLCBhY3Rpb24uZnVuYywgZmFsc2UpOwogCi0gICAgICAgIGNvbnNvbGVXcml0ZSgnKiog
VGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCAgcHJvbWlzZXMgcmVq
ZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBub3QgY2FsbGVkLicpCisg
ICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9k
cyBmYWlsLCBwcm9taXNlcyByZWplY3QgYW5kIG1lZGlhU2Vzc2lvbiBhY3Rpb24gaGFuZGxlcnMg
YXJlIG5vdCBjYWxsZWQuJykKICAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbCh0cnVlKTsKICAgICAgICAgZm9yIChsZXQgYWN0
aW9uIG9mIGFjdGlvbnMpCiAgICAgICAgICAgICBhd2FpdCB0ZXN0QWN0aW9uKGFjdGlvbi5hY3Rp
b24sIGFjdGlvbi5mdW5jLCB0cnVlKTsKQEAgLTg5LDM2ICsxNzksNTggQEAKICAgICAgICAgYXdh
aXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3Bvc2l0aW9uU3RhdGVD
aGFuZ2VkJywgJz09JywgMTAwKTsKIAogICAgICAgICBjb25zb2xlV3JpdGUoJycpOwotICAgICAg
ICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRp
bmF0b3Igd2hlbiByZWFkeVN0YXRlIGNoYW5nZXMuJykKLSAgICAgICAgbGV0IHByZXZpb3VzU3Rh
dGUgPSAnaGF2ZU5vdGhpbmcnOwotICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBbJ2hhdmVNZXRh
ZGF0YScsICdoYXZlQ3VycmVudERhdGEnLCAnaGF2ZUZ1dHVyZURhdGEnLCAnaGF2ZUVub3VnaERh
dGEnLCAnaGF2ZU5vdGhpbmcnXSkgewotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBwcmV2aW91c1N0YXRlKTsKLQotICAgICAgICAg
ICAgbGF0ZXN0Q2hhbmdlID0gJyc7Ci0gICAgICAgICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucmVhZHlTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcq
KiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcmVhZHlT
dGF0ZSBjaGFuZ2VzLicpOworICAgICAgICBhd2FpdCB0ZXN0UmVhZHlTdGF0ZXMoYXN5bmMgKCkg
PT4geyBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncmVhZHlT
dGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOyB9KQogCi0gICAgICAgICAgICBhd2FpdCB0ZXN0RXhw
ZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncmVhZHlTdGF0ZUNoYW5nZWQnLCAnPT0n
LCAxMDApOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24g
bm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5YmFja1N0YXRlIGNoYW5nZXMuJykKKyAgICAg
ICAgYXdhaXQgdGVzdFBsYXliYWNrU3RhdGVzKGFzeW5jICgpID0+IHsgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3BsYXliYWNrU3RhdGVDaGFuZ2VkJywgJz09JywgMTAw
KTsgfSk7CiAKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5yZWFkeVN0YXRlJywgc3RhdGUpOwotICAgICAgICAgICAgcHJldmlvdXNTdGF0ZSA9IHN0YXRl
OwotICAgICAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKLSAgICAgICAgfTsKKyAgICAgICAgLy8g
QWZ0ZXIgbGVhdmluZworICAgICAgICBjb25zb2xlV3JpdGUoJzxicj4nKTsKKyAgICAgICAgY29u
c29sZVdyaXRlKCcqKiBMZWF2ZSB0aGUgc2Vzc2lvbicpCisgICAgICAgIHJ1bignbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5sZWF2ZSgpJyk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zdGF0ZScsICdjbG9zZWQnKTsK
KyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ2Nv
b3JkaW5hdG9yU3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKKyAgICAgICAgbGF0ZXN0Q2hhbmdl
ID0gJyc7CiAKLSAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9u
IG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcGxheWJhY2tTdGF0ZSBjaGFuZ2VzLicpCi0gICAg
ICAgIHByZXZpb3VzU3RhdGUgPSAnbm9uZSc7Ci0gICAgICAgIGZvciAobGV0IHN0YXRlIG9mIFsn
cGF1c2VkJywgJ3BsYXlpbmcnLCAnbm9uZSddKSB7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0
aG9kcyBmYWlsIGFuZCBwcm9taXNlcyByZWplY3QgYWZ0ZXIgbWVkaWFTZXNzaW9uLmxlYXZlKCkg
aGFzIGJlZW4gY2FsbGVkLicpCisgICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKQor
ICAgICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVuYywg
dHJ1ZSk7CiAKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5wbGF5YmFja1N0YXRlJywgcHJldmlvdXNTdGF0ZSk7CisgICAgICAgIGNvbnNvbGVXcml0ZShg
KiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBkb2VzIG5vdCBub3RpZnkgY29vcmRpbmF0b3Igd2hl
biBzdGF0ZXMgY2hhbmdlIGFmdGVyIG1lZGlhU2Vzc2lvbi5sZWF2ZSgpIGhhcyBiZWVuIGNhbGxl
ZC5gKQorICAgICAgICBjb25zb2xlV3JpdGUoJyogUG9zaXRpb25TdGF0ZScpOworICAgICAgICBs
YXRlc3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgcnVuKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNl
dFBvc2l0aW9uU3RhdGUoeyBkdXJhdGlvbjogMSwgcGxheWJhY2tSYXRlOiAxLCBwb3NpdGlvbjog
MCB9KScpOworICAgICAgICBhd2FpdCBzbGVlcEZvcigyMCk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnbGF0ZXN0Q2hhbmdlJywgJycpOwogCi0gICAgICAgICAgICBsYXRlc3RDaGFuZ2UgPSAnJzsK
LSAgICAgICAgICAgIHJ1bihgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0g
JyR7c3RhdGV9J2ApOworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xl
V3JpdGUoJyogUmVhZHlTdGF0ZScpOworICAgICAgICBhd2FpdCB0ZXN0UmVhZHlTdGF0ZXMoYXN5
bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgc2xlZXBGb3IoMjApOworICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCdsYXRlc3RDaGFuZ2UnLCAnJyk7CisgICAgICAgIH0pOwogCi0gICAgICAg
ICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncGxheWJh
Y2tTdGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOworICAgICAgICBjb25zb2xlV3JpdGUoJyogUGxh
eWJhY2tTdGF0ZScpOworICAgICAgICBhd2FpdCB0ZXN0UGxheWJhY2tTdGF0ZXMoYXN5bmMgKCkg
PT4geworICAgICAgICAgICAgYXdhaXQgc2xlZXBGb3IoMjApOworICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCdsYXRlc3RDaGFuZ2UnLCAnJyk7CisgICAgICAgIH0pOwogCi0gICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHN0YXRl
KTsKLSAgICAgICAgICAgIHByZXZpb3VzU3RhdGUgPSBzdGF0ZTsKLSAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgnJyk7Ci0gICAgICAgIH07CisgICAgICAgIGNvbnNvbGVXcml0ZSgnPGJyPicpOwor
ICAgICAgICBjb25zb2xlV3JpdGUoJyoqIEl0IHNob3VsZCBub3QgYmUgcG9zc2libGUgdG8gam9p
biBvciBsZWF2ZSBhIGNsb3NlZCBzZXNzaW9uJyk7CisgICAgICAgIHJ1bigncHJvbWlzZSA9IG5h
dmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuam9pbigpJyk7CisgICAgICAgIGF3YWl0
IHNob3VsZFJlamVjdChwcm9taXNlKS50aGVuKCgpID0+IHsgfSkuY2F0Y2goKCkgPT4geyB9KTsK
KyAgICAgICAgCisgICAgICAgIGxldCBleGNlcHRpb247CisgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLmxlYXZlKCk7CisgICAgICAg
IH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICBleGNlcHRpb24gPSBleDsKKyAgICAgICAgfQor
ICAgICAgICBsZXQgZXhwZWN0ZWQgPSAnSW52YWxpZFN0YXRlRXJyb3I6IFVuYWJsZSB0byBsZWF2
ZSB3aGVuIHN0YXRlIGlzIGNsb3NlZCc7CisgICAgICAgIGxvZ1Jlc3VsdChleGNlcHRpb24udG9T
dHJpbmcoKSA9PSBleHBlY3RlZCwgYFRFU1QobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvci5sZWF2ZSgpKSBUSFJPV1MoJHtleHBlY3RlZH0pYCk7CiAKICAgICAgICAgY29uc29sZVdy
aXRlKCcnKTsKICAgICAgICAgZW5kVGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424809</attachid>
            <date>2021-03-31 13:04:33 -0700</date>
            <delta_ts>2021-03-31 13:50:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223955-20210331130428.patch</filename>
            <type>text/plain</type>
            <size>96386</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI2YTNiM2EyZWEzNzc2
ODhlYTRmOTgwZTliYzJjZjkzNTZjOTBkZS4uMmRkNTE4MmI4NTM4MGNmYzg3NzIzNjc3ZjBkNTIx
ZjUxZjM1Yzg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDIxLTAzLTMxICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3Igc2hvdWxkIGhhdmUgam9pbiBhbmQgbGVhdmUgbWV0aG9kcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzOTU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjAyMTU4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCAnam9pbicgYW5kICdsZWF2ZScg
bWV0aG9kcyB0byBNZWRpYVNlc3Npb25Db29yZGluYXRvciBzbyBhIHBhZ2UgaGFzIHRvIG9wdC1p
bgorICAgICAgICB0byBwYXJ0aWNpcGF0aW5nIGluIGEgY29vcmRpbmF0ZWQgc2Vzc2lvbiwgYW5k
IGNhbiBsZWF2ZSBhdCBhbnkgdGltZS4gRG9uJ3QgaGF2ZSAKKyAgICAgICAgdGhlIGNvb3JkaW5h
dG9yIGF1dG9tYXRpY2FsbHkgY2FsbCBzZXNzaW9uIG1ldGhvZHMgd2hlbiB0aGUgcHJpdmF0ZSBj
b29yZGluYXRvcgorICAgICAgICBmaW5pc2hlcywganVzdCBzaWduYWwgdGhlIHByb21pc2UgYW5k
IGxldCB0aGUgcGFnZSBoYW5kbGUgaXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVk
IG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sLgorCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsOiBGaXggQ29uZGl0
aW9uYWwuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXls
aXN0TWl4aW4uaWRsOiBEaXR0by4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhUG9zaXRpb25TdGF0ZS5oOiBBZGQgbG9nZ2luZyB0ZW1wbGF0ZS4KKyAgICAgICAgKFdURjo6
TG9nQXJndW1lbnQ8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlPjo6dG9TdHJpbmcpOgorCisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKTogU3dpdGNoIGZyb20gYmVnaW5n
IGEgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKKyAgICAgICAgdG8gYW4gQWN0aXZlRE9NT2Jq
ZWN0IHRvIHRoZSB3cmFwcGVyIHdvbid0IGJlIGNvbGxlY3RlZCB3aGlsZSBhbiBldmVudCBkaXNw
YXRjaAorICAgICAgICBpcyBwZW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KTogUHJldmVudCBjb2xsZWN0aW9uIHdo
aWxlCisgICAgICAgIGV2ZW50IGRpc3BhdGNoIGlzIHBlbmRpbmcuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb246OnNldFBvc2l0aW9uU3RhdGUpOiBJbXByb3ZlIGxvZ2dpbmcuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU6OnRvSlNPTlN0cmluZyBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbDoKKworICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpqb2luKTogTmV3LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxlYXZlKTogTmV3LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyk6IFJlamVjdCB1bmxlc3Mgc3Rh
dGUgaXMgJ2pvaW5lZCcuIERvbid0CisgICAgICAgIGNhbGwgc2Vzc2lvbiBtZXRob2QuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2spOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0
YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
cGxheWJhY2tTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKTogRG8gbm90aGluZyB1bmxlc3Mgc3RhdGUgaXMK
KyAgICAgICAgJ2pvaW5lZCcuIEltcHJvdmUgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrU2Vzc2lvblRvVGltZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXlTZXNzaW9uKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2VTZXNzaW9u
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0
U2Vzc2lvblRyYWNrKTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpzdGF0ZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsOiBGaXggQ29uZGl0aW9u
YWwuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvclByaXZhdGUuaDogRGVjbGFyZSBuZXcgcmVxdWlyZWQgbWV0aG9kcy4KKworICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaDogRGVm
aW5lIHN0YXRlcy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvclN0YXRlLmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsOiBGaXggQ29uZGl0aW9uYWwuCisKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDogQWRkIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5jcHAuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAg
KiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmpvaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsZWF2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKiB0ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oOgorCiAyMDIx
LTAzLTMxICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBs
b2dnaW5nIGluIEluZGV4ZWREQiB0byBoZWxwIGRlYnVnIGZsYWt5IHF1b3RhIHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDFmZGUyOWIxZTU0YjI5MDA2OGNiNGZmNGNjYzE0YjFhN2MyYjVkNGIuLjViN2VhOWQz
ZjA3MWZjZjY0NzE0MmRmOGZhN2FlMTI0ZTNjMDk5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcg
QEAKKzIwMjEtMDMtMzEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW21hY09TXSBNZWRpYVNlc3Npb25Db29yZGluYXRvciBzaG91bGQgaGF2ZSBqb2lu
IGFuZCBsZWF2ZSBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjM5NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MDIxNTg4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGVQcm94eS5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHk6OmpvaW4pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5OjpsZWF2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHk6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24v
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmpvaW4p
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bGVhdmUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y29vcmRp
bmF0b3JTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJp
dmF0ZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTWVk
aWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5Ojpjb29yZGluYXRvclN0YXRlQ2hhbmdlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVk
aWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpjb29yZGluYXRvclN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRp
YVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNy
ZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCiAyMDIxLTAzLTMxICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBsb2dnaW5nIGluIEluZGV4ZWREQiB0byBoZWxwIGRlYnVnIGZsYWt5IHF1
b3RhIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCAxNjliMjFhMWIwMTFkZTkzODM3NGNmZDVlNzY5MmMyZWYwMzkyZDVmLi4yNTVk
Yzk5OTBhMjdlMTEyMGViYjVkMjAwMmJhYmFiZTdhNjc2MzE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE4MSw2ICsxODEsNyBAQCAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25BY3Rpb25EZXRh
aWxzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
QWN0aW9uSGFuZGxlci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKKyQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5YmFja1N0YXRl
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxh
eWxpc3RNaXhpbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvblJlYWR5U3RhdGUuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDcxNmE4YzVhNzI3ZTU5OWNjYWI2NjkxODgwMGM3NzY4
NjVlZDc3ZmMuLmEzYTkxZDk0OGQzOGE3NjMyNjQ4MzJhMjA1MGI5NTVlYzBlN2Y0NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0x
MzIyLDYgKzEzMjIsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yTWl4aW4uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCA1MThlZGYxZmQ2NDU0Mzg4ZjY4ZTc0ZTdhMjIyYjBhNzExMTJjYjU1Li4wNzcx
MjliZWUzODM4ODIxOThiOGUwYWE4MmMxZThiMThkYzE1OTZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTIxNSw2ICsyMTUsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxl
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXls
aXN0TWl4aW4uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlh
U2Vzc2lvblJlYWR5U3RhdGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5pZGwKaW5kZXggZDA1ZjJiMGI2OTRiYzQ4ZmZh
YTcxMzVhNWFlOWY0MGNhNjJmY2QyZC4uMGE1MWM1NjlmMDFiN2I1NjlkYzc2MmNiZDlmYTFlOGNl
ZjU2YmM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFNZXRhZGF0YS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YS5pZGwKQEAgLTMzLDggKzMzLDYgQEAKICAgICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGFydGlzdDsKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsYnVtOwogICAgIFtTZXR0
ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8
TWVkaWFJbWFnZT4gYXJ0d29yazsKLQotICAgIFtDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BM
QVlMSVNULCBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0XSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHRyYWNrSWRlbnRpZmllcjsKIH07CiAKIE1lZGlhTWV0YWRhdGEgaW5jbHVkZXMg
TWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhp
bi5pZGwKaW5kZXggY2E3MjE1ZDk3OTVjYWE4NTc1N2NlOGEyZjQ1NjlmZjJhYWI3N2VjYy4uZTBh
NzY0MGIwZDM0NGJhZWMwMzY2OTc0MDYyNGFmMmQ0ZThkYjZmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRh
dGFQbGF5bGlzdE1peGluLmlkbApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25k
aXRpb25hbD1FTkFCTEVfTUVESUFfU0VTU0lPTl9QTEFZTElTVCwKKyAgICBDb25kaXRpb25hbD1N
RURJQV9TRVNTSU9OX1BMQVlMSVNULAogICAgIEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9u
UGxheWxpc3QsCiBdIGludGVyZmFjZSBtaXhpbiBNZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbiB7
CiAgICAgYXR0cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUG9zaXRpb25TdGF0ZS5o
CmluZGV4IDQ2Yzg5MjMyNjJlODNjNGQ0YWJjZWJlODNjZDI4OTFmMzAwZTUxZDguLjNmNWRlNzcw
ZGU0MjE2ZmM3MmRlNDljZjMwZGFiNWEzODA1NDY1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUG9zaXRpb25TdGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUG9zaXRpb25TdGF0ZS5oCkBAIC0z
NCw2ICszNCw4IEBAIHN0cnVjdCBNZWRpYVBvc2l0aW9uU3RhdGUgewogICAgIGRvdWJsZSBwbGF5
YmFja1JhdGUgPSAxOwogICAgIGRvdWJsZSBwb3NpdGlvbiA9IDA7CiAKKyAgICBTdHJpbmcgdG9K
U09OU3RyaW5nKCkgY29uc3Q7CisKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIH07CkBAIC02
Miw0ICs2NCwxNCBAQCB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBpbmxpbmUgT3B0aW9uYWw8TWVk
aWFQb3NpdGlvblN0YXRlPiBNZWRpYVBvc2l0aW9uU3RhdGU6OgogCiB9CiAKK25hbWVzcGFjZSBX
VEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50OworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+IHsKKyAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0
ZSYgc3RhdGUpIHsgcmV0dXJuIHN0YXRlLnRvSlNPTlN0cmluZygpOyB9Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKKwogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKaW5k
ZXggZTBjNWIzYTNhYTFlY2NjMDhlYTMzNmViNzkzZWZlYWExYTdjZGEwNC4uZTFkMGFmN2M0Mjc2
YTgzODk4ODc4YjNmMzcyNzBiZDRkZWI3MDU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJOYXZpZ2F0
b3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRl
IDx3dGYvSlNPTlZhbHVlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgxLDcgKzgy
LDcgQEAgUmVmPE1lZGlhU2Vzc2lvbj4gTWVkaWFTZXNzaW9uOjpjcmVhdGUoTmF2aWdhdG9yJiBu
YXZpZ2F0b3IpCiB9CiAKIE1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKE5hdmlnYXRvciYgbmF2
aWdhdG9yKQotICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIobmF2aWdhdG9yLnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChuYXZpZ2F0b3Iuc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICwgbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2
aWdhdG9yKSkKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKICAgICAsIG1f
YXN5bmNFdmVudFF1ZXVlKE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlz
KSkKQEAgLTg5LDEyICs5MCwxOCBAQCBNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbihOYXZpZ2F0
b3ImIG5hdmlnYXRvcikKIHsKICAgICBtX2xvZ2dlciA9IG1ha2VSZWZQdHIoRG9jdW1lbnQ6OnNo
YXJlZExvZ2dlcigpKTsKICAgICBtX2xvZ0lkZW50aWZpZXIgPSBuZXh0TG9nSWRlbnRpZmllcigp
OworICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
KTsKIH0KIAogTWVkaWFTZXNzaW9uOjp+TWVkaWFTZXNzaW9uKCkgPSBkZWZhdWx0OwogCitib29s
IE1lZGlhU2Vzc2lvbjo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fYXN5bmNFdmVudFF1ZXVlLT5oYXNQZW5kaW5nQWN0aXZpdHkoKTsKK30KKwogdm9p
ZCBNZWRpYVNlc3Npb246OnNldE1ldGFkYXRhKFJlZlB0cjxNZWRpYU1ldGFkYXRhPiYmIG1ldGFk
YXRhKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CkBAIC0yMTIsNyArMjE5LDEw
IEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpjYWxsQWN0aW9uSGFuZGxlcihjb25zdCBNZWRpYVNlc3Np
b25BY3Rpb25EZXRhaWxzJiBhY3Rpb25EZXRhCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU2Vz
c2lvbjo6c2V0UG9zaXRpb25TdGF0ZShPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiYgc3Rh
dGUpCiB7Ci0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBpZiAoc3RhdGUpCisg
ICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc3RhdGUudmFsdWUoKSk7CisgICAgZWxz
ZQorICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJ7IH0iKTsKIAogICAgIGlmICgh
c3RhdGUpIHsKICAgICAgICAgbV9wb3NpdGlvblN0YXRlID0gV1RGOjpudWxsb3B0OwpAQCAtMzE1
LDYgKzMyNSwxNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6bm90aWZ5UmVhZHlTdGF0ZU9ic2VydmVy
cygpCiB9CiAjZW5kaWYKIAorU3RyaW5nIE1lZGlhUG9zaXRpb25TdGF0ZTo6dG9KU09OU3RyaW5n
KCkgY29uc3QKK3sKKyAgICBhdXRvIG9iamVjdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisK
KyAgICBvYmplY3QtPnNldERvdWJsZSgiZHVyYXRpb24iX3MsIGR1cmF0aW9uKTsKKyAgICBvYmpl
Y3QtPnNldERvdWJsZSgicGxheWJhY2tSYXRlIl9zLCBwbGF5YmFja1JhdGUpOworICAgIG9iamVj
dC0+c2V0RG91YmxlKCJwb3NpdGlvbiJfcywgcG9zaXRpb24pOworCisgICAgcmV0dXJuIG9iamVj
dC0+dG9KU09OU3RyaW5nKCk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNT
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaAppbmRleCBhZTE0MzgzM2FjOGFhZmQ0MzFiNzE5NGQ3MTU1MGY1NjYwYWNjMDI4Li5l
NWRiZTk2MjdmYzFjNjE5NDU1ODI3NjNkMGU3MzM0NzhkNTI0YmNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaApAQCAtMjcsNyAr
MjcsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKLSNpbmNsdWRlICJDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKICNp
bmNsdWRlICJNZWRpYVBvc2l0aW9uU3RhdGUuaCIKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgTWVk
aWFNZXRhZGF0YTsKIGNsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOwogY2xhc3MgTmF2aWdh
dG9yOwogCi1jbGFzcyBNZWRpYVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Np
b24+ICwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyICwgcHVibGljIEV2ZW50VGFy
Z2V0V2l0aElubGluZURhdGEgeworY2xhc3MgTWVkaWFTZXNzaW9uIDogcHVibGljIFJlZkNvdW50
ZWQ8TWVkaWFTZXNzaW9uPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFy
Z2V0V2l0aElubGluZURhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8TWVkaWFTZXNzaW9uPiBjcmVhdGUoTmF2aWdhdG9yJik7CkBAIC0x
MjQsMTEgKzEyNCwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5QWN0aW9uSGFuZGxlck9i
c2VydmVycygpOwogICAgIHZvaWQgbm90aWZ5UmVhZHlTdGF0ZU9ic2VydmVycygpOwogCisgICAg
Ly8gRXZlbnRUYXJnZXQKKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsg
fQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogICAgIEV2
ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gTWVkaWFTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KIAotICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9Ci0gICAg
dm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisgICAgLy8gQWN0aXZl
RE9NT2JqZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJNZWRpYVNlc3Npb24iOyB9CisgICAgYm9vbCB2aXJ0dWFsSGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CiAKICAgICBXZWFrUHRyPE5hdmlnYXRvcj4gbV9uYXZp
Z2F0b3I7CiAgICAgUmVmUHRyPE1lZGlhTWV0YWRhdGE+IG1fbWV0YWRhdGE7CkBAIC0xNDEsMTEg
KzE0NSwxMSBAQCBwcml2YXRlOgogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKIAog
ICAgIFdlYWtIYXNoU2V0PE9ic2VydmVyPiBtX29ic2VydmVyczsKKyAgICBVbmlxdWVSZWY8TWFp
blRocmVhZEdlbmVyaWNFdmVudFF1ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKIAogI2lmIEVOQUJM
RShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQogICAgIE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUg
bV9yZWFkeVN0YXRlIHsgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgfTsKICAg
ICBSZWZQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IG1fY29vcmRpbmF0b3I7Ci0gICAgVW5p
cXVlUmVmPE1haW5UaHJlYWRHZW5lcmljRXZlbnRRdWV1ZT4gbV9hc3luY0V2ZW50UXVldWU7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX1BMQVlMSVNUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5pZGwKaW5kZXgg
NjFhODc0NDI3NGIyMjM4YTZjZWVlOTAyOGVmYzkyMjljM2JhZWQ2Ny4uYzk0NjU5MWIzODAwOTZj
YmM0ODkzODhkZTgzMDlmNDUwODY1NWY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaWRsCkBAIC0yNCw2ICsyNCw3IEBACiAg
Ki8KIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1NRURJQV9TRVNT
SU9OLAogICAgIEV4cG9zZWQ9V2luZG93LAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JU
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IDkxOTM0MjM0ZmJjMGViZWZjZmMx
ZjJjMWRiY2ZlZWEwNGIzNzcyYjIuLjIwODE5OGJjMzQwMDhlYTk0NmQzOWIxYWFkYzRmODQ0Yzg1
NWE4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
IAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKKyNpbmNsdWRlICJKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAi
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmgiCkBAIC02MSw2ICs2Miw0OCBAQCBNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdgogCiBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6fk1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKCkgPSBkZWZhdWx0OwogCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpqb2luKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgYXV0
byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKKyAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIs
IG1fc3RhdGUpOworCisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JT
dGF0ZTo6V2FpdGluZykgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgImludmFsaWQg
c3RhdGUiKTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsIG1ha2VTdHJpbmcoIlVuYWJsZSB0byBqb2luIHdoZW4gc3RhdGUgaXMgIiwgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcobV9zdGF0ZSkpIH0pOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPmpvaW4oW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChP
cHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFw
cm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+bG9nZ2VyKCkuZXJyb3IocHJvdGVjdGVkVGhpcy0+bG9nQ2hhbm5lbCgpLCBpZGVudGlm
aWVyLCAiY29vcmRpbmF0b3Iuam9pbiBmYWlsZWQhIik7CisgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChXVEZNb3ZlKCpleGNlcHRpb24pKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fc3RhdGUgPSBNZWRpYVNlc3Npb25Db29yZGlu
YXRvclN0YXRlOjpKb2luZWQ7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJpdmF0ZUNvb3Jk
aW5hdG9yLT5jb29yZGluYXRvclN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlOjpKb2luZWQpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKKyAgICB9KTsKK30KKwor
RXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxlYXZlKCkKK3sKKyAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCBtYWtlU3RyaW5nKCJVbmFibGUgdG8gbGVhdmUgd2hlbiBzdGF0
ZSBpcyAiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX3N0YXRlKSkgfTsKKworICAgIG1f
c3RhdGUgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpDbG9zZWQ7CisgICAgbV9wcml2
YXRlQ29vcmRpbmF0b3ItPmxlYXZlKCk7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPmNvb3Jk
aW5hdG9yU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkNsb3NlZCk7
CisKKyAgICByZXR1cm4geyB9OworfQorCiB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpz
ZWVrVG8oZG91YmxlIHRpbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7
CiAgICAgYXV0byBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKQEAgLTcyLDcgKzExNSwxMyBA
QCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmIHBybwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9wcml2YXRlQ29vcmRpbmF0b3ItPnNlZWtUbyh0aW1lLCBbdGltZSwgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgIGlmICht
X3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCkgeworICAgICAg
ICBFUlJPUl9MT0coaWRlbnRpZmllciwgIi5zdGF0ZSBpcyAiLCBtX3N0YXRlKTsKKyAgICAgICAg
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsIG1ha2VTdHJpbmco
IlVuYWJsZSB0byBzZWVrVG8gd2hlbiBzdGF0ZSBpcyAiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyhtX3N0YXRlKSkgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3ByaXZh
dGVDb29yZGluYXRvci0+c2Vla1RvKHRpbWUsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigq
dGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8
RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVk
VGhpcy0+bV9zZXNzaW9uKSB7CiAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTg0LDkgKzEz
Myw2IEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0
aGVyZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3NlZWtUbycgYWN0aW9uIGhhbmRsZXI/Ci0gICAgICAg
IHByb3RlY3RlZFRoaXMtPmludGVybmFsU2Vla1RvKHRpbWUpOwotCiAgICAgICAgIHByb21pc2Uu
cmVzb2x2ZSgpOwogICAgIH0pOwogfQpAQCAtMTAyLDYgKzE0OCwxMiBAQCB2b2lkIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpwbGF5KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpIHsKKyAgICAgICAgRVJST1JfTE9HKGlkZW50aWZp
ZXIsICIuc3RhdGUgaXMgIiwgbV9zdGF0ZSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBtYWtlU3RyaW5nKCJVbmFibGUgdG8gcGxheSB3aGVu
IHN0YXRlIGlzICIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fc3RhdGUpKSB9KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5KFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNzaW9uKSB7CiAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKQEAgLTEx
NCw5ICsxNjYsNiBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5KERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVy
ZSBpc24ndCBhIHJlZ2lzdGVyZWQgJ3BsYXknIGFjdGlvbiBoYW5kbGVyPwotICAgICAgICBwcm90
ZWN0ZWRUaGlzLT5pbnRlcm5hbFBsYXkoKTsKLQogICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsK
ICAgICB9KTsKIH0KQEAgLTEzMiw2ICsxODEsMTIgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6cGF1c2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yU3RhdGU6OkpvaW5lZCkgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIi5zdGF0
ZSBpcyAiLCBtX3N0YXRlKTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsIG1ha2VTdHJpbmcoIlVuYWJsZSB0byBwYXVzZSB3aGVuIHN0YXRlIGlz
ICIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fc3RhdGUpKSB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wYXVzZShbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewogICAg
ICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgewogICAgICAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CkBAIC0xNDQsOSArMTk5
LDYgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0
IGEgcmVnaXN0ZXJlZCAncGF1c2UnIGFjdGlvbiBoYW5kbGVyPwotICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5pbnRlcm5hbFBhdXNlKCk7Ci0KICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAg
fSk7CiB9CkBAIC0xNjIsNyArMjE0LDEzIEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnNldFRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2ssIERPTVByb21pc2VEZWZlcnJlZDx2CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+c2V0VHJhY2so
dHJhY2ssIFt0cmFjaywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlm
aWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBl
eGNlcHRpb24pIG11dGFibGUgeworICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yU3RhdGU6OkpvaW5lZCkgeworICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIi5z
dGF0ZSBpcyAiLCBtX3N0YXRlKTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsIG1ha2VTdHJpbmcoIlVuYWJsZSB0byBzZXRUcmFjayB3aGVuIHN0
YXRlIGlzICIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fc3RhdGUpKSB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0
cmFjaywgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9u
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKICAg
ICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0p
OwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTc0LDkgKzIzMiw2IEBAIHZvaWQgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnNldFRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2ssIERPTVByb21pc2VE
ZWZlcnJlZDx2CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICAvLyBG
SVhNRTogc2hvdWxkIHRoZSBwcm9taXNlIHJlamVjdCBpZiB0aGVyZSBpc24ndCBhIHJlZ2lzdGVy
ZWQgJ3NldFRyYWNrJyBhY3Rpb24gaGFuZGxlcj8KLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+aW50
ZXJuYWxTZXRUcmFjayh0cmFjayk7Ci0KICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAg
fSk7CiB9CkBAIC0xOTAsNDMgKzI0NSw4OSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpzZXRNZWRpYVNlc3Npb24oTWVkaWFTZXNzaW9uKiBzZXNzaW9uKQogICAgICAgICBtX3Nlc3Np
b24tPmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6cG9zaXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRl
PiYgc3RhdGUpCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hh
bmdlZChjb25zdCBPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiBwb3NpdGlvblN0YXRlKQog
ewotICAgIGlmICghc3RhdGUpIHsKKyAgICBpZiAocG9zaXRpb25TdGF0ZSkKKyAgICAgICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSLCBwb3NpdGlvblN0YXRlLnZhbHVlKCkpOworICAgIGVsc2UK
KyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAieyB9Iik7CisKKyAgICBpZiAobV9z
dGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghcG9zaXRpb25TdGF0ZSkgewogICAgICAgICBtX3ByaXZhdGVDb29y
ZGluYXRvci0+cG9zaXRpb25TdGF0ZUNoYW5nZWQoeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZChNZWRp
YVBvc2l0aW9uU3RhdGUgeyBzdGF0ZS0+ZHVyYXRpb24sIHN0YXRlLT5wbGF5YmFja1JhdGUsIHN0
YXRlLT5wb3NpdGlvbiB9KTsKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+cG9zaXRpb25TdGF0
ZUNoYW5nZWQoTWVkaWFQb3NpdGlvblN0YXRlIHsgcG9zaXRpb25TdGF0ZS0+ZHVyYXRpb24sIHBv
c2l0aW9uU3RhdGUtPnBsYXliYWNrUmF0ZSwgcG9zaXRpb25TdGF0ZS0+cG9zaXRpb24gfSk7CiB9
CiAKLXZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKE1l
ZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHBsYXli
YWNrU3RhdGUpCiB7Ci0gICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnBsYXliYWNrU3RhdGVDaGFu
Z2VkKHN0YXRlKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIG1fc3RhdGUsICIsICIs
IHBsYXliYWNrU3RhdGUpOworCisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZTo6Sm9pbmVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ByaXZhdGVDb29y
ZGluYXRvci0+cGxheWJhY2tTdGF0ZUNoYW5nZWQocGxheWJhY2tTdGF0ZSk7CiB9CiAKLXZvaWQg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJl
YWR5U3RhdGUgc3RhdGUpCit2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZWFkeVN0YXRl
Q2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHJlYWR5U3RhdGUpCiB7Ci0gICAgbV9wcml2
YXRlQ29vcmRpbmF0b3ItPnJlYWR5U3RhdGVDaGFuZ2VkKHN0YXRlKTsKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsIG1fc3RhdGUsICIsICIsIHJlYWR5U3RhdGUpOworCisgICAgaWYgKG1f
c3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+cmVhZHlTdGF0ZUNoYW5nZWQocmVh
ZHlTdGF0ZSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNzaW9u
VG9UaW1lKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbV9zdGF0ZSwg
IiwgIiwgdGltZSk7CisKKyAgICBpZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlOjpKb2luZWQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaW50ZXJuYWxTZWVr
VG8odGltZSkpOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5U2Vzc2lv
bihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewor
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbV9zdGF0ZSk7CisKKyAgICBpZiAobV9zdGF0
ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgY29t
cGxldGlvbkhhbmRsZXIoaW50ZXJuYWxQbGF5KCkpOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwYXVzZVNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4gY29t
cGxldGlvbkhhbmRsZXIpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtX3N0YXRl
KTsKKworICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6Okpv
aW5lZCkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBjb21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbFBhdXNlKCkpOwogfQog
CiB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRTZXNzaW9uVHJhY2soY29uc3QgU3Ry
aW5nJiB0cmFjaywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4gY29tcGxldGlvbkhhbmRs
ZXIpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtX3N0YXRlLCAiLCAiLCB0cmFj
ayk7CisKKyAgICBpZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpK
b2luZWQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaW50ZXJuYWxTZXRUcmFjayh0cmFj
aykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAppbmRleCAwNjk5Y2U4ZmY0Mzc3MjZm
MzljZjE3NmY3NDM5NjU4NGJkZjc3YTJmLi5mZDRhODczZDFiYzljMmVlZWRjNzNhMzg0NGE3MDVh
NmJlYTIwMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUu
aCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAj
aW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgpAQCAtNDUsNiArNDYsMTIgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0
ZShSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiYmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKTsKIAorICAgIHZvaWQgam9pbihET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gbGVhdmUoKTsKKwor
ICAgIFN0cmluZyBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlQ29vcmRpbmF0
b3ItPmlkZW50aWZpZXIoKTsgfQorICAgIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CisKICAgICB2b2lkIHNlZWtUbyhkb3VibGUs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIHBsYXkoRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgcGF1c2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOwpAQCAtODAsNiArODcsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBs
b2dDbGFzc05hbWUoKSB7IHJldHVybiAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IiOyB9CiAKICAg
ICBXZWFrUHRyPE1lZGlhU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yU3RhdGUgbV9zdGF0ZSB7IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OldhaXRp
bmcgfTsKICAgICBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlPiBtX3ByaXZhdGVD
b29yZGluYXRvcjsKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBjb25zdCB2
b2lkKiBtX2xvZ0lkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKaW5kZXgg
ZWMwNWFiODkwZWExODI2ZDBmZTcxMzBiNWQzMmI0MmQ3YjQ2MjNkOS4uMjExODI3MDNkMWIwZDg3
MmYyMzdkYmFhMDNkZGU1NjFjZmU2ZDVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlk
bApAQCAtMjksNiArMjksMTMgQEAKICAgICBFeHBvc2VkPVdpbmRvdywKICAgICBFeHBvcnRNYWNy
bz1XRUJDT1JFX0VYUE9SVCwKIF0gaW50ZXJmYWNlIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIHsK
KworICAgIFByb21pc2U8dW5kZWZpbmVkPiBqb2luKCk7CisgICAgdW5kZWZpbmVkIGxlYXZlKCk7
CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBz
dGF0ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBpZGVudGlmaWVyOworCiAg
ICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNlZWtUbyh1bnJlc3RyaWN0ZWQgZG91YmxlIHRpbWUpOwog
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBwbGF5KCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBh
dXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCmluZGV4IGMxNDhl
YzhmODk2MjY1ZmI2NTFiZmNiMTFhYTAxOGIyNWFiZGM3NTIuLmZkZGYwNTYwMzRiMTA0ZWYyYzE4
YzQ3NjlhZmIxZTc5YTA2MzIyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4
aW4uaWRsCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogWwotICAgIENvbmRpdGlvbmFsPUVOQUJM
RV9NRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SLAorICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJ
T05fQ09PUkRJTkFUT1IsCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYVNlc3Npb25Db29yZGlu
YXRvciwKIF0gaW50ZXJmYWNlIG1peGluIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4gewog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVNlc3Npb25Db29yZGluYXRvcj8gY29vcmRpbmF0
b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oCmluZGV4IDVhYmRlMTVl
YmVhOTI4YjRmNjcxZWFhOGUzNWIyYTVjN2RjYTc4MGQuLmY4MDMwZTc4NzIwODJmMDI3NGE3YWY1
ODk2MmZlZDhjMTQwYjBiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0
ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJFeGNlcHRpb24uaCIKICNpbmNsdWRl
ICJNZWRpYVBvc2l0aW9uU3RhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oIgogI2luY2x1
ZGUgIk1lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4K
QEAgLTUzLDYgKzU0LDExIEBAIGNsYXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZSA6
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yCiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlKCkgPSBkZWZhdWx0OwogCisg
ICAgdmlydHVhbCBTdHJpbmcgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwg
dm9pZCBqb2luKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsZWF2ZSgpID0gMDsKKwogICAgIHZpcnR1YWwgdm9p
ZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlv
bj4mJik+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGF1
c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSA9IDA7
CkBAIC02MSw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25TdGF0
ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8TWVkaWFQb3NpdGlvblN0YXRlPiYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5
YmFja1N0YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvb3JkaW5hdG9yU3RhdGVDaGFuZ2Vk
KE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUpID0gMDsKIAogICAgIHZvaWQgc2V0TG9nZ2Vy
KGNvbnN0IFdURjo6TG9nZ2VyJiwgY29uc3Qgdm9pZCopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRD
bGllbnQoV2Vha1B0cjxNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudD4gY2xpZW50KSB7IG1f
Y2xpZW50ID0gY2xpZW50O30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NTJlYmUxNjM2OGRkY2I0OTRlMjIwNTNjNjc3ZjY5NWQ5Yjc1M2VmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0
ZSA6IHVpbnQ4X3QgeworICAgIFdhaXRpbmcsCisgICAgSm9pbmVkLAorICAgIENsb3NlZCwKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yU3RhdGU6OldhaXRpbmcsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZTo6Q2xvc2VkCisgICAgPjsKK307CisKK30KKworI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGlu
YXRvclN0YXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGQ5YzFiNjA1MmE5NGZiM2JhMmVjMTE3MDBlZDk1
M2M1YmExMGY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5pZGwKQEAgLTAsMCArMSwzMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SLAorXSBlbnVtIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgeworICAgICJ3YWl0aW5n
IiwKKyAgICAiam9pbmVkIiwKKyAgICAiY2xvc2VkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxp
c3RNaXhpbi5pZGwKaW5kZXggYmVjNGI5NTdhNWQ1MWU2Y2M3NDEzZjc4Y2Q4ZWI5NGEyMDlmMWYy
Yi4uZDc2MjIwNzEyNDNhNjkzMDY0Nzc0ODI2NzIwYjk5NjM2ZTkyNjAxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RN
aXhpbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiBbCi0gICAg
Q29uZGl0aW9uYWw9RU5BQkxFX01FRElBX1NFU1NJT05fUExBWUxJU1QsCisgICAgQ29uZGl0aW9u
YWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwKICAgICBFbmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vz
c2lvblBsYXlsaXN0LAogXSBpbnRlcmZhY2UgbWl4aW4gTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhp
biB7CiAgICAgW1NldHRlckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIGF0dHJpYnV0
ZSBGcm96ZW5BcnJheTxNZWRpYU1ldGFkYXRhPiBwbGF5bGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
M2UwMTc1M2I2ZTNiNzI0Y2ZkODczMjY3ODg2NTc5MjVkNzUxNDE1Zi4uMTkxZjBkNzZmOTIzYjM2
YzA3ODY1NjViODhlYjE5MGE4MmQ4ZmUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTMyMzQsNiArMzIz
NCw3IEBAIEpTTWVkaWFLZXlzUmVxdWlyZW1lbnQuY3BwCiBKU01lZGlhTGlzdC5jcHAKIEpTTWVk
aWFNZXRhZGF0YS5jcHAKIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCitKU01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yU3RhdGUuY3BwCiBKU01lZGlhTWV0YWRhdGFJbml0LmNwcAogSlNNZWRp
YVBvc2l0aW9uU3RhdGUuY3BwCiBKU01lZGlhUXVlcnlMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM5NzFmMzBjMDc5
OWU3NDk1ODlhOTAwNWFlODQyODg3OGYyYmRjYjAuLjE2ZWU0NjhjNjdkNzcxNWQyYjVlYTVjM2Vj
MjM5ZTRjODY5Y2IxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTIxOCw2ICsyMTgsNyBAQAogCQkwN0I5M0ZGQzIzQjk0RUM3
MDAzNkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDdCOTNGRjkyM0I5MkFBQTAwMzZGOEVBIC8qIE1JTUVUeXBlQ2Fj
aGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
N0MwNDZDNDFFNDI1MDhCMDA3MjAxRTcgLyogQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc1ODFFNDBE
Q0ZEMDA3MUMwRUMgLyogQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDdDMDQ2Q0IxRTQyNjQxMzAwNzIw
MUU3IC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzU2MUU0MERDRTUwMDcxQzBFQyAvKiBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMDdDMTQ4MkUyNjEyQTIxRjAwNzc1ODI4IC8qIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3N0JBNTg4MjYxMjZENjYwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDMUMw
RTAxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oICov
OyB9OwogCQkwN0MxQzBFNTFCRkI2MEVEMDBCRDIyNTYgLyogUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwN0MxQzBFNDFCRkI2MEVEMDBCRDIyNTYgLyogUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMDdDQjlFNzIyNDlDMzZCMjAwQTY5NDg5IC8qIEFWUm91dGVQaWNr
ZXJWaWV3VGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDdDQjlFNkYyNDlDMjI2QzAwQTY5NDg5IC8qIEFWUm91dGVQaWNrZXJWaWV3
VGFyZ2V0UGlja2VyLm1tICovOyB9OwpAQCAtNTg2Miw2ICs1ODYzLDggQEAKIAkJMDc3QjY0MTUx
Qjk1RjcwMzAwM0U5QUQ1IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3N0JBNTdDMjYwRkU3MzgwMDcyRjE5RiAvKiBNZWRpYVNl
c3Npb25Db29yZGluYXRvclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3N0JBNTdE
MjYwRkU3MzkwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc3QkE1ODgyNjEyNkQ2NjAwNzJGMTlGIC8qIE1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzdCQTU4
QTI2MTI2RDZCMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3ODMyMjgyMTgwMTNFRDcwMDk5OUUwQyAvKiBNZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzgzMjI4MzE4
MDEzRUQ4MDA5OTlFMEMgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbUF1ZGlvU291cmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3ODQ2MzQwMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUcmFja0V2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU5MzIsNiArNTkzNSwxMCBAQAog
CQkwN0I3MTE2QzFEODk5RTYzMDA5RjBGRkIgLyogQ2FwdHVyZURldmljZU1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FwdHVyZURldmljZU1hbmFnZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCOTNGRjkyM0I5MkFBQTAwMzZGOEVBIC8qIE1J
TUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTUlNRVR5cGVDYWNoZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwN0I5M0ZGQjIzQjkyQUFCMDAzNkY4RUEgLyogTUlNRVR5cGVD
YWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNSU1FVHlwZUNhY2hlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdDMTQ4MjkyNjEyOTU1QzAwNzc1ODI4IC8qIEpTTWVkaWFT
ZXNzaW9uUmVhZHlTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU2Vzc2lvblJlYWR5U3Rh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdDMTQ4MkIyNjEyOTU1RDAwNzc1
ODI4IC8qIEpTTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwN0MxNDgyQzI2MTI5NTVFMDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzE0ODJEMjYxMjk1NUYwMDc3
NTgyOCAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3QzFDMEUwMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29u
c3RyYWludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUcmFja1N1
cHBvcnRlZENvbnN0cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QzFD
MEUxMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QzFDMEU0MUJGQjYwRUQwMEJEMjI1
NiAvKiBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0
cmFpbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODQxOSw2ICsyODQyNiw4
IEBACiAJCQkJMDczNkI3MzAyNjA5NEEzNzAwRTA2OTk0IC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yTWl4aW4uaWRsICovLAogCQkJCTA3N0JBNTdEMjYwRkU3MzkwMDcyRjE5RiAvKiBNZWRpYVNl
c3Npb25Db29yZGluYXRvclByaXZhdGUuY3BwICovLAogCQkJCTA3N0JBNTdDMjYwRkU3MzgwMDcy
RjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCAqLywKKwkJCQkwNzdCQTU4
ODI2MTI2RDY2MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oICovLAor
CQkJCTA3N0JBNThBMjYxMjZENkIwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0
YXRlLmlkbCAqLywKIAkJCQlDRERERUEyOTI1MzhDRENCMDBBMTMwMEMgLyogTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZS5oICovLAogCQkJCUNERERFQTI4MjUzOENEQ0IwMEExMzAwQyAvKiBNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbCAqLywKIAkJCQkwNzM2QjczMjI2MDk1NTU0MDBFMDY5
OTQgLyogTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgKi8sCkBAIC0yODQ1Miw4ICsyODQ2
MSwxMiBAQAogCQkJCUNERERFQTRFMjUzOTEzQkMwMEExMzAwQyAvKiBKU01lZGlhU2Vzc2lvbkFj
dGlvbkhhbmRsZXIuaCAqLywKIAkJCQkwNzJEQkMwNzI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRp
YVNlc3Npb25Db29yZGluYXRvci5jcHAgKi8sCiAJCQkJMDcyREJDMDYyNURDNkVEQTAwQTEzNTBF
IC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaCAqLywKKwkJCQkwN0MxNDgyQzI2MTI5NTVF
MDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmNwcCAqLywKKwkJCQkw
N0MxNDgyRDI2MTI5NTVGMDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
LmggKi8sCiAJCQkJQ0REREVBNDYyNTM5MTFERDAwQTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uUGxh
eWJhY2tTdGF0ZS5jcHAgKi8sCiAJCQkJQ0REREVBNDIyNTM5MTFEQzAwQTEzMDBDIC8qIEpTTWVk
aWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5oICovLAorCQkJCTA3QzE0ODJCMjYxMjk1NUQwMDc3NTgy
OCAvKiBKU01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuY3BwICovLAorCQkJCTA3QzE0ODI5MjYxMjk1
NUMwMDc3NTgyOCAvKiBKU01lZGlhU2Vzc2lvblJlYWR5U3RhdGUuaCAqLywKIAkJCSk7CiAJCQlu
YW1lID0gTWVkaWFTZXNzaW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM0MDI2
LDYgKzM0MDM5LDcgQEAKIAkJCQkwNzdCQTU3ODI2MEZBRURCMDA3MkYxOUYgLyogTWVkaWFTZXNz
aW9uQWN0aW9uSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QkE1NzEyNjBGOUY3NjAw
NzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
NzdCQTU3RTI2MEZFRjM2MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwN0MxNDgyRTI2MTJBMjFGMDA3NzU4MjggLyogTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RUNBRTUyNUI1
OENDNDAwQjM0REE1IC8qIE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RBOTU5M0YyNDEyQkFFMDAwOTEwRUVGIC8qIE1lZGlhU2Vzc2lvbkhlbHBlcklP
Uy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NDYwQTIyNDEyOTk0NTAwODE0QkU3IC8qIE1lZGlh
U2Vzc2lvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IDI0MjE0
MjgxNzRhZDhiNDYzM2YwMTQ3NGQzMWIxOTA2MzBjMzFkOGIuLjY1NzMzMmY3ZTJjMDk5NmQyYmQz
YmEwNTYyMmRiYmQ5NWRlOGRmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAgLTU5LDYgKzU5LDE3IEBAIE9w
dGlvbmFsPEV4Y2VwdGlvbj4gTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpyZXN1bHQoKSBj
b25zdAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKK3ZvaWQgTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpqb2luKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0
aW9uPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11
dGFibGUgeworICAgICAgICBjYWxsYmFjayhyZXN1bHQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQg
TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpsZWF2ZSgpCit7Cit9CisKIHZvaWQgTW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBBTFdB
WVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHRpbWUpOwpAQCAtMTA5LDYgKzEyMCwx
MiBAQCB2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5n
ZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZQogICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+
c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQuZ2V0KCksICJwbGF5YmFja1N0YXRlQ2hhbmdlZCIp
OwogfQogCit2b2lkIE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0b3JTdGF0
ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdB
WVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsKKyAgICBtX3N0YXRlQ2hh
bmdlTGlzdGVuZXItPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LmdldCgpLCAiY29vcmRpbmF0
b3JTdGF0ZUNoYW5nZWQiKTsKK30KKwogV1RGTG9nQ2hhbm5lbCYgTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKICAgICByZXR1cm4gTG9nTWVkaWE7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGlu
YXRvci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaAppbmRleCBiNGRkY2Y1MWQxYWNiMjFiYTY0ZTZiMTgyZGQ3NGRkNDM0MGNhYTk0Li40Nzgw
NDg3NmEzMThmMjkwZTJlZWYyNTI0ZDYxOTk1Nzg5NDcyN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTQ3LDYg
KzQ3LDExIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYpOwog
CisgICAgU3RyaW5nIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTW9jayBDb29y
ZGluYXRvciI7IH0KKworICAgIHZvaWQgam9pbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgbGVhdmUoKSBmaW5hbDsKKwog
ICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxF
eGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBsYXkoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBhdXNlKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CkBA
IC01NSw2ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChj
b25zdCBPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JikgZmluYWw7CiAgICAgdm9pZCByZWFk
eVN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBmaW5hbDsKICAgICB2b2lkIHBs
YXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpIGZpbmFsOworICAg
IHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0
ZSkgZmluYWw7CiAKICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVy
biAiTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yIjsgfQogICAgIFdURkxvZ0NoYW5uZWwmIGxv
Z0NoYW5uZWwoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTMxNmM3ZTBiMDM4ZjIzNTRmMDQ4ODg0NGNm
ZGJjMzhmNzg1MjE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJpdmF0ZVByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
LQotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1jbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94
eQotICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZVByb3h5PgotICAgICwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlUHJveHk+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb25Db29y
ZGluYXRvclByaXZhdGVQcm94eSgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBzZWVr
VG8oZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGEmKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwbGF5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YSYpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmlu
ZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYp
PiYmKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcG9zaXRpb25TdGF0ZUNoYW5nZWQoY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlPiYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRp
YVNlc3Npb25QbGF5YmFja1N0YXRlKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50
KFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IGNsaWVudCkg
eyBtX2NsaWVudCA9IGNsaWVudDsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXZWFrUHRy
PFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQotCi1wcml2YXRlOgotICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IG1fY2xpZW50OwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHlQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9N
ZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyZGRkZWQw
YTg5ZjgzNDhiZjdlNmRjMjg4ZGJjYzMzZmNmNWVjNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJp
dmF0ZS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQorCisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlCisgICAgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGU+CisgICAgLCBwdWJs
aWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZT4geworcHVi
bGljOgorICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlKCkg
PSBkZWZhdWx0OworCisgICAgdmlydHVhbCBTdHJpbmcgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YSYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcG9z
aXRpb25TdGF0ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0
YXRlPiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0
YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yU3RhdGUpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2Vh
a1B0cjxXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudD4gY2xpZW50KSB7IG1f
Y2xpZW50ID0gY2xpZW50OyB9CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5UHJpdmF0ZSgpID0gZGVmYXVsdDsKKworICAgIFdlYWtQdHI8V2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQ+IGNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvckNsaWVudD4gbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcAppbmRleCBlYzJmZDFmNjA2MDE4YzI5
NzVkN2MyNDUwYjI3ODAxOGNkM2RlYzZlLi43MjdmZTJkNzYzMWY0ZTVkZTc0MTdmNjMyZDExYzYz
OWE2NGIyZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcApAQCAt
MjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAK
LSNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oIgorI2luY2x1
ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgpAQCAtMzksMTIgKzM5LDEyIEBA
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWZQdHI8
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eTo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBSZWY8TWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+JiYgcHJpdmF0ZUNvb3JkaW5hdG9yKQor
UmVmUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwg
UmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlPiYmIHByaXZhdGVDb29yZGlu
YXRvcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5KHdlYlBhZ2VQcm94eSwgV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0b3IpKSk7
CiB9CiAKLVJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OlJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHksIFJlZjxNZWRp
YVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJiBwcml2YXRlQ29vcmRpbmF0b3IpCitS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBSZWY8TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eVByaXZhdGU+JiYgcHJpdmF0ZUNvb3JkaW5hdG9yKQogICAgIDogbV93
ZWJQYWdlUHJveHkod2ViUGFnZVByb3h5KQogICAgICwgbV9wcml2YXRlQ29vcmRpbmF0b3IoV1RG
TW92ZShwcml2YXRlQ29vcmRpbmF0b3IpKQogICAgICwgbV9sb2dnZXIobV93ZWJQYWdlUHJveHku
bG9nZ2VyKCkpCkBAIC01OCw2ICs1OCwyMyBAQCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5Ojp+UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSgpCiAgICAgbV93ZWJQ
YWdlUHJveHkucHJvY2VzcygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dl
YlBhZ2VQcm94eS53ZWJQYWdlSUQoKSk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eTo6am9pbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGEmKT4mJikKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElG
SUVSOworICAgIEFMV0FZU19MT0coaWRlbnRpZmllcik7CisKKyAgICBtX3ByaXZhdGVDb29yZGlu
YXRvci0+am9pbihbaWRlbnRpZmllcl0gKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmJiBl
eGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBBTFdBWVNfTE9HKGlkZW50aWZpZXIsICJjb21w
bGV0aW9uIik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6
bGVhdmUoKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKKyAgICBtX3ByaXZh
dGVDb29yZGluYXRvci0+bGVhdmUoKTsKK30KIAogdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5Ojpjb29yZGluYXRlU2Vla1RvKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKQEAgLTE0MSw2ICsxNTgsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5OjpzZXRTZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiB0cmFja0lkLAogICAg
IG1fd2ViUGFnZVByb3h5LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OlNldFNlc3Npb25UcmFjayB7IHRyYWNrSWQgfSwgY2FsbGJhY2sp
OwogfQogCit2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5h
dG9yU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3Rh
dGUpCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKyAgICBtX3ByaXZhdGVDb29y
ZGluYXRvci0+Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoc3RhdGUpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEv
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IGU5ZWZhZGM5NzMwYjY2
NzY4MTQzMDlhNzQ4YWRiZjk4OTM4NGM4YTAuLjA2OGE1ZjU2ZGQ0ZGJiNjY2NTUxYTdmNjE5ODNi
OGUzNTc0ZDAyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1Jl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmgKQEAgLTI3
LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQogCi0j
aW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaCIKKyNpbmNsdWRl
ICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CkBAIC00NiwxOSArNDYsMTkgQEAgY2xhc3MgUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eQogICAgICwgcHVibGljIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+IGNyZWF0ZShX
ZWJQYWdlUHJveHkmLCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+JiYp
OworICAgIHN0YXRpYyBSZWY8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eT4gY3Jl
YXRlKFdlYlBhZ2VQcm94eSYsIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0
ZT4mJik7CiAgICAgflJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoKTsKIAotICAg
IHZvaWQgc2Vla1RvKGRvdWJsZSk7Ci0gICAgdm9pZCBwbGF5KCk7Ci0gICAgdm9pZCBwYXVzZSgp
OwotICAgIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzZWVrVG8oZG91
YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHBsYXkoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBwYXVzZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNldFRyYWNrKGNvbnN0IFN0cmluZyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAgICAgdXNpbmcgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JDbGllbnQ6OndlYWtQdHJGYWN0b3J5OwogICAgIHVzaW5nIFdlYWtWYWx1
ZVR5cGUgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudDo6V2Vha1ZhbHVlVHlwZTsKIAog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5
KFdlYlBhZ2VQcm94eSYsIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4m
Jik7CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eShXZWJQ
YWdlUHJveHkmLCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGU+JiYpOwog
CiAgICAgdXNpbmcgQ29vcmRpbmF0ZUNvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+OwogCkBAIC02Niw2ICs2Niw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIC8vIFJlY2VpdmVycy4KKyAgICB2b2lk
IGpvaW4oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
Jik+JiYpOworICAgIHZvaWQgbGVhdmUoKTsKICAgICB2b2lkIGNvb3JkaW5hdGVTZWVrVG8oZG91
YmxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEm
KT4mJik7CiAgICAgdm9pZCBjb29yZGluYXRlUGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJik7CiAgICAgdm9pZCBjb29yZGluYXRlUGF1
c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+
JiYpOwpAQCAtNzMsNiArNzUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zaXRpb25TdGF0ZUNo
YW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQb3NpdGlvblN0YXRlPik7CiAgICAgdm9pZCBy
ZWFkeVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlKTsKICAgICB2
b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3Rh
dGUpOworICAgIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZSk7CiAKICAgICAvLyBNZWRpYVNlc3Npb25Db29yZGluYXRvckNs
aWVudAogICAgIHZvaWQgc2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKQEAgLTgxLDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPikgZmluYWw7CiAKICAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFnZVByb3h5OwotICAg
IFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4gbV9wcml2YXRlQ29vcmRp
bmF0b3I7CisgICAgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlPiBtX3By
aXZhdGVDb29yZGluYXRvcjsKICAgICBSZWY8Y29uc3QgTG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBj
b25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOTZiNjBkMzk4ODExYjdkODI1MmVi
YThmZTkwZmFjMTMwNmU1ZGJlYS4uODdkNTY3NTFjZmI2YWI5MWExN2JiMWYyNTFjYWYyZGY5Nzg3
YzY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0yNiw2ICsyNiwxMCBAQAogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5IE5vdFJlZkNvdW50ZWQgewogCisgICAgSm9pbigpIC0+IChPcHRp
b25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMKKworICAgIExlYXZlKCkK
KwogICAgIENvb3JkaW5hdGVTZWVrVG8oZG91YmxlIHRpbWUpIC0+IChPcHRpb25hbDxXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhPiBlcnJvcikgQXN5bmMKIAogICAgIENvb3JkaW5hdGVQbGF5KCkgLT4g
KE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKSBBc3luYwpAQCAtMzksNiAr
NDMsOCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5IE5v
dFJlZkNvdW50ZWQgewogICAgIFJlYWR5U3RhdGVDaGFuZ2VkKGVudW06dWludDhfdCBXZWJDb3Jl
OjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlIHN0YXRlKTsKIAogICAgIFBsYXliYWNrU3RhdGVDaGFu
Z2VkKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlIHN0YXRl
KTsKKworICAgIENvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKGVudW06dWludDhfdCBXZWJDb3JlOjpN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIHN0YXRlKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkZWU2MTc1ODVhZjRjODhmY2Zk
YjVhZTZlNjMwYTBiNDI3ZGYwMGFiLi43NThhMGYzNWFhNTk3OTM5MDdhOTExMDU4N2UyOWVjYjk5
YjFmMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI5
Nyw3ICsyOTcsNyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElO
QVRPUikKLSNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oIgor
I2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oIgogI2VuZGlmCiAKQEAgLTEw
MzgzLDExICsxMDM4MywxMSBAQCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBXZWJQYWdl
UHJveHk6OmNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJveEV4dGVucwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLXZvaWQgV2ViUGFnZVByb3h5Ojpj
cmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cml2YXRlUHJveHk+JiYgcHJpdmF0ZUNvb3JkaW5hdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYWtQdHI8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eT4pPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZT4mJiBwcml2YXRlQ29v
cmRpbmF0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vha1B0cjxSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJU
KCFtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkpOwogCi0gICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpLCBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByaXZhdGVDb29yZGluYXRvciA9IFdURk1v
dmUocHJpdmF0ZUNvb3JkaW5hdG9yKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKHBy
aXZhdGVDb29yZGluYXRvci0+aWRlbnRpZmllcigpKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCBwcml2YXRlQ29vcmRpbmF0b3IgPSBXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvciks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgc3Vj
Y2VzcykgbXV0YWJsZSB7CiAKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhc3VjY2Vzcykgewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggOGFmYWE3OGMyY2QyODRhOTUyMjUwYjM1NDkxNWI2NWIyMjUy
MjAxNy4uZWE5YjBjMTRhMWRjNmRhODg3NDRjNmFmMDYzN2ZlOTQxMjRmMTNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMyOSw3ICszMjksNyBAQCBjbGFzcyBO
YXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIGNsYXNz
IE5hdGl2ZVdlYldoZWVsRXZlbnQ7CiBjbGFzcyBQYWdlQ2xpZW50OwotY2xhc3MgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk7CitjbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5UHJpdmF0ZTsKIGNsYXNzIFByb3Zpc2lvbmFsUGFnZVByb3h5OwogY2xhc3MgUmVtb3Rl
TGF5ZXJUcmVlSG9zdDsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNl
RGF0YTsKQEAgLTE4ODgsNyArMTg4OCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+JiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vha1B0cjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5Pik+JiYpOworICAgIHZvaWQgY3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVm
PE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlPiYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYWtQdHI8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eT4pPiYmKTsK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhYjNmNzMyOWVjMTRiZDllNjRjMjlmODJj
YjE2MWI2MWIzN2JlZTYyLi5jMmE1ZjUwOTYwNjI3MWY0MzMxN2JhNWJmODI2YjJhZmVhY2UxZDky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTIzOTQsNyArMjM5NCw3IEBACiAJCTA3NEU3NjAxMURGNzA3NUQwMEQzMThFQyAvKiBNZWRp
YURldmljZVNhbmRib3hFeHRlbnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDc2RTg4NEQxQTEzQ0FERjAwNUU5MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUNvbnRleHRNZW51Q2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NkU4ODRGMUExM0NCQzYwMDVFOTBG
QyAvKiBBUElJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBUElJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzdCQTU3MDI2MEU4RjYzMDA3
MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDc3QkE1NzAyNjBFOEY2MzAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHlQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
OTIzMTMwMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzEzMjIzOUIz
QjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTEyNjAsNyArMTEyNjAsNyBAQAogCQkJCUNENDU3MEREMjQ0NENBNTgwMEEzRENFQiAvKiBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcCAqLywKIAkJCQlDRDQ1NzBEQjI0
NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oICov
LAogCQkJCUNENDU3MERDMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluICovLAotCQkJCTA3N0JBNTcwMjYwRThGNjMwMDcyRjE5
RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5oICovLAorCQkJCTA3N0JB
NTcwMjYwRThGNjMwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0
ZS5oICovLAogCQkJCTA3OTRCNEFFMjQ0NTI0QjAwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdl
ci5jcHAgKi8sCiAJCQkJMDc5NEI0QUMyNDQ1MUJCOTAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5h
Z2VyLmggKi8sCiAJCQkJMDczNkI3NUMyNjBENEE0RTAwRTA2OTk0IC8qIFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmNwcAppbmRleCA0OTA0NmMyZGVjYmI2MTA2ZWI4ZWNkMWUxN2Q1NDM1YzI2
NjA1Y2E2Li4wY2MzZjgxY2YxZjRhNmI1OWM2MzY4N2M2YjIyOTdlZjVkMmI0ODQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFT
ZXNzaW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcApAQCAtNDUsMTMgKzQ1LDE0
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1SZWY8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IFJlbW90
ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSkKK1JlZjxSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvcj4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmNyZWF0ZShXZWJQYWdlJiBwYWdlLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IocGFnZSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KHBhZ2UsIGlkZW50aWZpZXIpKTsKIH0KIAotUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFdlYlBhZ2UmIHBhZ2UpCitSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoV2ViUGFn
ZSYgcGFnZSwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQogICAgIDogbV9wYWdlKHBhZ2UpCisg
ICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5pZGVudGlmaWVyKCksICp0aGlz
KTsKIH0KQEAgLTYxLDYgKzYyLDI5IEBAIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9
CiAKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmpvaW4oQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmIGNhbGxiYWNrKQor
eworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklFUik7CisgICAgbV9wYWdl
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eTo6Sm9pbiB7IH0sIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcykgeworICAgICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBl
eGNlcHRpb24tPmNvZGUsIFdURk1vdmUoZXhjZXB0aW9uLT5tZXNzYWdlKSB9KTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgfSwg
MCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxlYXZlKCkKK3sK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eTo6TGVhdmUgeyB9LCAwKTsKK30KKwogdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgQUxXQVlTX0xPR19J
Rl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKQEAgLTE1MSw2ICsxNzUsMTIgQEAgdm9p
ZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uUGwKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6UGxheWJhY2tTdGF0ZUNoYW5nZWQgeyBzdGF0ZSB9
LCAwKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y29vcmRpbmF0
b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0
ZSkKK3sKKyAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHN0YXRlKTsK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eTo6Q29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQgeyBzdGF0ZSB9LCAwKTsKK30KKwogdm9pZCBS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlIHRp
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Np
b24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaAppbmRleCA0NThiZTQzY2RhYmQzMTdi
NDMzOGExYzlhODNlODNiYjk5MThmZWUzLi4yYTZiMDljYjFmMzNjZjYwMTg0MTJkZTAxMzc1NTQ5
OTQ3Zjk3MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNz
aW9uL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCkBA
IC00NCwxMSArNDQsMTEgQEAgY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJpdmF0ZSAsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvcj4gY3JlYXRlKFdlYlBhZ2UmKTsKKyAgICBzdGF0aWMgUmVmPFJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoV2ViUGFnZSYsIGNvbnN0IFN0cmluZyYpOwog
ICAgIH5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpOwogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFdlYlBhZ2UmKTsKKyAgICBleHBs
aWNpdCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihXZWJQYWdlJiwgY29uc3QgU3RyaW5n
Jik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwpAQCAtNjAsNiAr
NjAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2Vzc2lvblRyYWNrKGNvbnN0IFN0cmluZyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAgICAgLy8gTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcml2YXRlIG92ZXJyaWRlcy4KKyAgICBTdHJpbmcgaWRlbnRpZmllcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIHZvaWQgam9pbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYpIGZpbmFs
OworICAgIHZvaWQgbGVhdmUoKSBmaW5hbDsKICAgICB2b2lkIHNlZWtUbyhkb3VibGUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJikgZmlu
YWw7CiAgICAgdm9pZCBwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29y
ZTo6RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBwYXVzZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOwpAQCAt
NjgsMTEgKzcxLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChj
b25zdCBPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+JikgZmluYWw7CiAgICAg
dm9pZCByZWFkeVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSBm
aW5hbDsKICAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGUpIGZpbmFsOworICAgIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSkgZmluYWw7CiAKICAgICBjb25z
dCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiAiUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IiOyB9CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0Owog
CiAgICAgV2ViUGFnZSYgbV9wYWdlOworICAgIFN0cmluZyBtX2lkZW50aWZpZXI7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggNzkyZDM0YzExMDg3NTk5MDEzMzFmYWI2OThhODcyNjQ1YjNlZTYy
OC4uMzEzMTNmYTljNjlmNTExYjRmN2JlMTNmZWQxOTI5Y2M3YjNjOWVlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTczODcsNyArNzM4Nyw3
IEBAIHZvaWQgV2ViUGFnZTo6cmVzdG9yZUFwcEhpZ2hsaWdodHMoY29uc3QgVmVjdG9yPFNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlPiYmIG1lbW9yCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OX0NPT1JESU5BVE9SKQotdm9pZCBXZWJQYWdlOjpjcmVhdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJQYWdlOjpjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBtX21haW5GcmFtZS0+Y29yZUZyYW1l
KCktPmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmRvbVdpbmRv
dygpKSB7CkBAIC03Mzk2LDcgKzczOTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmNyZWF0ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcAogICAg
IH0KIAogICAgIGF1dG8mIHNlc3Npb24gPSBOYXZpZ2F0b3JNZWRpYVNlc3Npb246Om1lZGlhU2Vz
c2lvbihkb2N1bWVudC0+ZG9tV2luZG93KCktPm5hdmlnYXRvcigpKTsKLSAgICBhdXRvIGNvb3Jk
aW5hdG9yID0gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZSgqdGhpcyk7Cisg
ICAgYXV0byBjb29yZGluYXRvciA9IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVh
dGUoKnRoaXMsIGlkZW50aWZpZXIpOwogICAgIG1fcmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IgPSBjb29yZGluYXRvci5wdHIoKTsKICAgICBtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yID0g
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShjb29yZGluYXRvci5nZXQoKSk7CiAgICAg
c2Vzc2lvbi5zZXRDb29yZGluYXRvcihtX21lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmdldCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjNTRhNjE4
ZGI0NmExMmRlMDFhNTg2MzQ2YTY2ZTkxN2Y3NGNhMmRiLi5lMGI1ZWMxZWU1M2Y4MWE5MjYxZjQ2
YmFiNjQzY2NlMWVkNzc2NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xNDEzLDcgKzE0MTMsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQotICAgIHZvaWQgY3JlYXRlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9p
ZCBjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRMYXN0TmF2aWdh
dGlvbldhc0FwcEJvdW5kKGJvb2wgd2FzQXBwQm91bmQpIHsgbV9sYXN0TmF2aWdhdGlvbldhc0Fw
cEJvdW5kID0gd2FzQXBwQm91bmQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGM4ZTY0NmFlZGViYzRhYTEyMGEz
YWJlOWRhZDc2MTgxZTQxOWRhNmUuLmU1OGY5Njc5NzViMTFhYzY1NjU3Mzk4Y2Q0ODAxN2RhNDUx
NDEyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtNjM1LDcgKzYzNSw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRp
dGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlCiAgICAgTGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCgpIC0+IChib29sIHdhc0FwcEJvdW5k
KSBBc3luYwogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCi0gICAgQ3Jl
YXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYworICAg
IENyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFN0cmluZyBpZGVudGlmaWVyKSAtPiAoYm9v
bCBzdWNjZXNzKSBBc3luYwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMjZiOWYxMGFiMjNjZDk1Nzg0ZmM4YzY0OGNhZjc5YmQ5MWEwNmU2Li42OGEyOWFi
OWQyYjlmZGM0Y2FmNjQ5OTIxMDU0M2I3NjQ2Y2YxNDAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMjEtMDMtMzEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW21hY09TXSBNZWRpYVNlc3Npb25Db29yZGluYXRvciBzaG91bGQgaGF2ZSBqb2luIGFu
ZCBsZWF2ZSBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjM5NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MDIxNTg4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvbWVkaWEt
c2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9t
ZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbDoKKwogMjAyMS0wMy0zMSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW4gY2FzZSBXZWJSVEMgVlRC
IGRlY29kZXIgcmV0dXJucyBhIG51bGwgZnJhbWUsIG1hcmsgdGhlIGRlY29kZXIgYXMgZmFpbGlu
ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3Jk
aW5hdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9j
ay1jb29yZGluYXRvci1leHBlY3RlZC50eHQKaW5kZXggOTQwNmY0ODJmNDg5YzcyNmY0NzI4ODBl
ZTY2NzZmOTI0ZDA1ZTU2NC4uMTI5NGIzYTM0ZGRjNDQ5YzdlMTQyMmRjYWY3NjU1MjdmNGJlM2Nj
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3Jk
aW5hdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zZXNzaW9u
L21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0CkBAIC03LDI4ICs3LDEwMCBAQCBSVU4oaW50
ZXJuYWxzLnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKGNoYW5nZUhhbmRsZXIp
KQogRVZFTlQoY29vcmRpbmF0b3JjaGFuZ2UpCiBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5jb29yZGluYXRvciAhPSAndW5kZWZpbmVkJykgT0sKIAorKiogbmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5jb29yZGluYXRvci5zdGF0ZSBzaG91bGQgYmUgIndhaXRpbmciIGludGl0aWFsbHkK
K0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnN0YXRlID09ICd3
YWl0aW5nJykgT0sKKworKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBmYWls
IGFuZCBwcm9taXNlcyByZWplY3QgYmVmb3JlIG1lZGlhU2Vzc2lvbi5qb2luKCkgaXMgY2FsbGVk
LgorUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXko
KSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5IE9LCisKK1JVTihwcm9taXNlID0gbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpKQorUHJvbWlzZSByZWplY3RlZCBj
b3JyZWN0bHkgT0sKKworUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yLnNlZWtUbygxMCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworCisqKiBU
ZXN0IHRoYXQgbWVkaWFTZXNzaW9uIGRvZXMgbm90IG5vdGlmeSBjb29yZGluYXRvciB3aGVuIHN0
YXRlcyBjaGFuZ2UgYmVmb3JlIG1lZGlhU2Vzc2lvbi5qb2luKCkgaXMgY2FsbGVkLgorKiBQb3Np
dGlvblN0YXRlCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsg
ZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSkpCitFWFBFQ1RFRCAo
bGF0ZXN0Q2hhbmdlID09ICcnKSBPSworCisqIFJlYWR5U3RhdGUKK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sKK1JVTihuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZU1ldGFkYXRhJykKK0VYUEVDVEVE
IChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5yZWFkeVN0YXRlID09ICdoYXZlTWV0YWRhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTWV0YWRhdGEnKSBPSworUlVOKG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlQ3VycmVudERhdGEnKQorRVhQRUNU
RUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVDdXJyZW50RGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVDdXJyZW50RGF0YScpIE9LCitS
VU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVGdXR1cmVEYXRhJykK
K0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRnV0dXJlRGF0YScpIE9LCisKK0VYUEVDVEVE
IChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVGdXR1cmVEYXRhJykg
T0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUVub3VnaERh
dGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVFbm91Z2hEYXRhJykgT0sKKworRVhQ
RUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVub3VnaERh
dGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlTm90
aGluZycpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworRVhQRUNURUQgKG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZU5vdGhpbmcnKSBPSworCisqIFBs
YXliYWNrU3RhdGUKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3Rh
dGUgPT0gJ25vbmUnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0
ZSA9ICdwYXVzZWQnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVE
IChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BhdXNlZCcpIE9LCisK
K0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BhdXNl
ZCcpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ3BsYXlp
bmcnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BsYXlpbmcnKSBPSworCitFWFBFQ1RF
RCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5aW5nJykgT0sK
K1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAnbm9uZScpCitFWFBF
Q1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucGxheWJhY2tTdGF0ZSA9PSAnbm9uZScpIE9LCisKKworCisqKiBzZXNzaW9uLmpvaW4o
KSBzaG91bGQgcmVqZWN0IG9uIGZhaWx1cmUKK1JVTihpbnRlcm5hbHMuc2V0TW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKHRydWUpKQorUlVOKHByb21pc2UgPSBu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLmpvaW4oKSkKK1Byb21pc2UgcmVqZWN0
ZWQgY29ycmVjdGx5IE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvci5zdGF0ZSA9PSAnd2FpdGluZycpIE9LCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcn
KSBPSworCitSVU4oaW50ZXJuYWxzLnNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1h
bmRzU2hvdWxkRmFpbChmYWxzZSkpCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYVNlc3Np
b24uY29vcmRpbmF0b3Iuam9pbigpKQorUHJvbWlzZSByZXNvbHZlZCBPSworRVhQRUNURUQgKG5h
dmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc3RhdGUgPT0gJ2pvaW5lZCcpIE9LCitF
WFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdjb29yZGluYXRvclN0YXRlQ2hhbmdlZCcpIE9LCisK
ICoqIFRlc3QgdGhhdCB3aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwgcHJvbWlzZXMg
cmVzb2x2ZSBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgY2FsbGVkLgotVGVz
dCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKQotQUNUSU9OKHBsYXkp
Ci1FWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdwbGF5JykgT0sKK1JVTihwcm9taXNlID0gbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5KCkpCitQcm9taXNlIHJlc29sdmVk
IE9LCiAKLVRlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpCi1B
Q1RJT04ocGF1c2UpCi1FWFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdwYXVzZScpIE9LCitSVU4o
cHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2UoKSkKK1By
b21pc2UgcmVzb2x2ZWQgT0sKIAotVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5h
dG9yLnNlZWt0bygpCi1BQ1RJT04oc2Vla3RvKQotRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAn
c2Vla3RvJykgT0sKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvci5zZWVrVG8oMTApKQorUHJvbWlzZSByZXNvbHZlZCBPSwogCi0qKiBUZXN0IHRoYXQgd2hl
biBjb29yZGluYXRvciBtZXRob2RzIHN1Y2NlZWQsIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFT
ZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgbm90IGNhbGxlZC4KLVRlc3QgbmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5KCkKLUVYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0g
JycpIE9LCisqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIGZhaWwsIHByb21p
c2VzIHJlamVjdCBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUgbm90IGNhbGxl
ZC4KK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5
KCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSwogCi1UZXN0IG5hdmlnYXRvci5tZWRp
YVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2UoKQotRVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAn
JykgT0sKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5w
YXVzZSgpKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0bHkgT0sKIAotVGVzdCBuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnNlZWt0bygpCi1FWFBFQ1RFRCAobGF0ZXN0QWN0aW9u
ID09ICcnKSBPSworUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5h
dG9yLnNlZWtUbygxMCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSwogCiAqKiBUZXN0
IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcG9zaXRpb25TdGF0
ZSBjaGFuZ2VzLgogUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24uc2V0UG9zaXRpb25TdGF0ZSh7
IGR1cmF0aW9uOiAxLCBwbGF5YmFja1JhdGU6IDEsIHBvc2l0aW9uOiAwIH0pKQpAQCAtNjMsMTkg
KzEzNSw4NiBAQCBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09
ICdoYXZlTm90aGluZycpIE9LCiAqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNv
b3JkaW5hdG9yIHdoZW4gcGxheWJhY2tTdGF0ZSBjaGFuZ2VzLgogRVhQRUNURUQgKG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAnbm9uZScpIE9LCiBSVU4obmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ3BhdXNlZCcpCi1FWFBFQ1RFRCAobGF0ZXN0
Q2hhbmdlID09ICdwbGF5YmFja1N0YXRlQ2hhbmdlZCcpIE9LCiBFWFBFQ1RFRCAobmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwYXVzZWQnKSBPSwogCiBFWFBFQ1RFRCAo
bmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwYXVzZWQnKSBPSwogUlVO
KG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICdwbGF5aW5nJykKLUVYUEVD
VEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3BsYXliYWNrU3RhdGVDaGFuZ2VkJykgT0sKIEVYUEVDVEVE
IChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BsYXlpbmcnKSBPSwog
CiBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5
aW5nJykgT0sKIFJVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAnbm9u
ZScpCi1FWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICdwbGF5YmFja1N0YXRlQ2hhbmdlZCcpIE9L
CiBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdub25l
JykgT0sKIAogCisKKyoqIExlYXZlIHRoZSBzZXNzaW9uCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5jb29yZGluYXRvci5sZWF2ZSgpKQorRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24uY29vcmRpbmF0b3Iuc3RhdGUgPT0gJ2Nsb3NlZCcpIE9LCitFWFBFQ1RFRCAobGF0ZXN0Q2hh
bmdlID09ICdjb29yZGluYXRvclN0YXRlQ2hhbmdlZCcpIE9LCisKKyoqIFRlc3QgdGhhdCB3aGVu
IGNvb3JkaW5hdG9yIG1ldGhvZHMgZmFpbCBhbmQgcHJvbWlzZXMgcmVqZWN0IGFmdGVyIG1lZGlh
U2Vzc2lvbi5sZWF2ZSgpIGhhcyBiZWVuIGNhbGxlZC4KK1JVTihwcm9taXNlID0gbmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wbGF5KCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJl
Y3RseSBPSworCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0
b3IucGF1c2UoKSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5IE9LCisKK1JVTihwcm9taXNl
ID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zZWVrVG8oMTApKQorUHJvbWlz
ZSByZWplY3RlZCBjb3JyZWN0bHkgT0sKKworKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBkb2Vz
IG5vdCBub3RpZnkgY29vcmRpbmF0b3Igd2hlbiBzdGF0ZXMgY2hhbmdlIGFmdGVyIG1lZGlhU2Vz
c2lvbi5sZWF2ZSgpIGhhcyBiZWVuIGNhbGxlZC4KKyogUG9zaXRpb25TdGF0ZQorUlVOKG5hdmln
YXRvci5tZWRpYVNlc3Npb24uc2V0UG9zaXRpb25TdGF0ZSh7IGR1cmF0aW9uOiAxLCBwbGF5YmFj
a1JhdGU6IDEsIHBvc2l0aW9uOiAwIH0pKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykg
T0sKKworKiBSZWFkeVN0YXRlCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFk
eVN0YXRlID09ICdoYXZlTm90aGluZycpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5y
ZWFkeVN0YXRlID0gJ2hhdmVNZXRhZGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcn
KSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2
ZU1ldGFkYXRhJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlT
dGF0ZSA9PSAnaGF2ZU1ldGFkYXRhJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJl
YWR5U3RhdGUgPSAnaGF2ZUN1cnJlbnREYXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0g
JycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdo
YXZlQ3VycmVudERhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5y
ZWFkeVN0YXRlID09ICdoYXZlQ3VycmVudERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlRnV0dXJlRGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hh
bmdlID09ICcnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0
ZSA9PSAnaGF2ZUZ1dHVyZURhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRnV0dXJlRGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVFbm91Z2hEYXRhJykKK0VYUEVDVEVEIChsYXRl
c3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFk
eVN0YXRlID09ICdoYXZlRW5vdWdoRGF0YScpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVFbm91Z2hEYXRhJykgT0sKK1JVTihuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZU5vdGhpbmcnKQorRVhQRUNURUQgKGxh
dGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJl
YWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sKKworKiBQbGF5YmFja1N0YXRlCitFWFBFQ1RF
RCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdub25lJykgT0sKK1JV
TihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAncGF1c2VkJykKK0VYUEVD
VEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5wbGF5YmFja1N0YXRlID09ICdwYXVzZWQnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwYXVzZWQnKSBPSworUlVOKG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICdwbGF5aW5nJykKK0VYUEVDVEVEIChsYXRl
c3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5
YmFja1N0YXRlID09ICdwbGF5aW5nJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucGxheWJhY2tTdGF0ZSA9PSAncGxheWluZycpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ25vbmUnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9
PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUg
PT0gJ25vbmUnKSBPSworCisKKworKiogSXQgc2hvdWxkIG5vdCBiZSBwb3NzaWJsZSB0byBqb2lu
IG9yIGxlYXZlIGEgY2xvc2VkIHNlc3Npb24KK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5jb29yZGluYXRvci5qb2luKCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBP
SworVEVTVChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLmxlYXZlKCkpIFRIUk9X
UyhJbnZhbGlkU3RhdGVFcnJvcjogVW5hYmxlIHRvIGxlYXZlIHdoZW4gc3RhdGUgaXMgY2xvc2Vk
KSBPSworCiBFTkQgT0YgVEVTVAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRp
YS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3IuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlh
LXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1sCmluZGV4IDU3ODExNGE4YjUzMGY0ZGQ5OWMz
MTE4ZDlhNTcyZmViNWU1YzE3NGQuLjhiODQ3YTM5ZTcyYTliNDBlZmE3ZGEyMTk3NmE2MGI5OGMw
YTViYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1j
b29yZGluYXRvci5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9j
ay1jb29yZGluYXRvci5odG1sCkBAIC0xLDMgKzEsNCBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBNZWRpYVNlc3Npb25Db29yZGluYXRvckVuYWJsZWQ9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpAQCAtNSw2ICs2LDE2IEBACiAgICAgPHNjcmlwdCBzcmM9
Ii4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQ+CiAKKyAgICBsZXQgd2Fp
dGluZyA9IGZhbHNlOworICAgIGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JEZWJ1Z2dlcigpCisgICAg
eworICAgICAgICBsZXQgY291bnRlciA9IDA7CisgICAgICAgIHdoaWxlICh3YWl0aW5nKSB7Cisg
ICAgICAgICAgICBhd2FpdCBzbGVlcEZvcigxMDApOworICAgICAgICAgICAgY291bnRlcisrOwor
ICAgICAgICB9CisgICAgfQorCiAgICAgZnVuY3Rpb24gY2hhbmdlSGFuZGxlcihjaGFuZ2UpCiAg
ICAgewogICAgICAgICB3aW5kb3cubGF0ZXN0Q2hhbmdlID0gY2hhbmdlOwpAQCAtMjAsMTIgKzMx
LDE2IEBACiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBj
aGFuZ2VQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICAgICAgICBuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2Nvb3JkaW5hdG9yY2hhbmdlJywg
KGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBFVkVOVCgke2V2ZW50
LnR5cGV9KWApOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgbGV0IGNoYW5n
ZVByb21pc2UgPSAoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CisgICAgICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5hZGRFdmVudExp
c3RlbmVyKCdjb29yZGluYXRvcmNoYW5nZScsIChldmVudCkgPT4geworICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQudHlwZX0pYCk7CisgICAgICAgICAgICAg
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGF3YWl0IHdhaXRGb3JEZWJ1Z2dlcigp
OwogCiAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CiAgICAgICAgIGNvbnNvbGVXcml0ZSgnKiog
VGhlcmUgc2hvdWxkIGJlIG5vIG1lZGlhU2Vzc2lvbi5jb29yZGluYXRvciBpbml0aWFsbHkuJykK
QEAgLTM3LDcgKzUyLDcgQEAKIAogICAgICAgICBydW4oJ2ludGVybmFscy5yZWdpc3Rlck1vY2tN
ZWRpYVNlc3Npb25Db29yZGluYXRvcihjaGFuZ2VIYW5kbGVyKScpOwogCi0gICAgICAgIGF3YWl0
IGNoYW5nZVByb21pc2U7CisgICAgICAgIGF3YWl0IGNoYW5nZVByb21pc2UoKTsKICAgICAgICAg
CiAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRv
cicsIHVuZGVmaW5lZCwgJyE9Jyk7CiAKQEAgLTQ4LDM4ICs2MywxMTMgQEAKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKIAotICAgICAgICBsZXQgdGVzdEFjdGlvbiA9IGFzeW5jIChhY3Rp
b24sIGZ1bmMsIGZvcmNlRmFpbHVyZSkgPT4geworICAgICAgICBsZXQgdGVzdEFjdGlvbiA9IGFz
eW5jIChhY3Rpb24sIGZ1bmMsIGV4cGVjdEZhaWx1cmUpID0+IHsKICAgICAgICAgICAgIGxhdGVz
dEFjdGlvbiA9ICcnOwogCi0gICAgICAgICAgICBsZXQgc3VjY2VlZGVkOworICAgICAgICAgICAg
cnVuKGBwcm9taXNlID0gJHtmdW5jLnRvU3RyaW5nKCl9YCk7CiAgICAgICAgICAgICB0cnkgewot
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LmNvb3JkaW5hdG9yLiR7YWN0aW9ufSgpYCk7Ci0gICAgICAgICAgICAgICAgYXdhaXQgZnVuYygp
OwotICAgICAgICAgICAgICAgIGlmIChmb3JjZUZhaWx1cmUpCi0gICAgICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZShgRkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9IHJlc29sdmVkIGJ1dCBzaG91
bGQgaGF2ZSByZWplY3RlZGApOwotICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0
QWN0aW9uJywgYWN0aW9uKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFmb3JjZUZhaWx1cmUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZShgRkFJTDogJHtmdW5jLnRvU3RyaW5nKCl9IHRocmV3ICR7ZXh9YCk7Ci0gICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RBY3Rpb24nLCAnJyk7Ci0gICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgaWYgKGV4cGVjdEZhaWx1cmUpCisgICAgICAgICAgICAgICAgICAgIGF3YWl0
IHNob3VsZFJlamVjdChwcm9taXNlKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlzZSk7CisgICAgICAgICAgICB9IGNh
dGNoKGV4KSB7fQogCiAgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOwogICAgICAgICB9Owog
CisgICAgICAgIGxldCB0ZXN0UmVhZHlTdGF0ZXMgPSBhc3luYyAodGVzdENhbGxiYWNrKSA9PiB7
CisgICAgICAgICAgICBsZXQgcHJldmlvdXNTdGF0ZSA9ICdoYXZlTm90aGluZyc7CisgICAgICAg
ICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZU5vdGhpbmcnOwor
ICAgICAgICAgICAgZm9yIChsZXQgc3RhdGUgb2YgWydoYXZlTWV0YWRhdGEnLCAnaGF2ZUN1cnJl
bnREYXRhJywgJ2hhdmVGdXR1cmVEYXRhJywgJ2hhdmVFbm91Z2hEYXRhJywgJ2hhdmVOb3RoaW5n
J10pIHsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Np
b24ucmVhZHlTdGF0ZScsIHByZXZpb3VzU3RhdGUpOworCisgICAgICAgICAgICAgICAgbGF0ZXN0
Q2hhbmdlID0gJyc7CisgICAgICAgICAgICAgICAgcnVuKGBuYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnJlYWR5U3RhdGUgPSAnJHtzdGF0ZX0nYCk7CisKKyAgICAgICAgICAgICAgICBhd2FpdCB0ZXN0
Q2FsbGJhY2soKQorCisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgcHJldmlvdXNT
dGF0ZSA9IHN0YXRlOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAg
ICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgbGV0IHRlc3RQbGF5YmFja1N0YXRlcyA9IGFz
eW5jICh0ZXN0Q2FsbGJhY2spID0+IHsKKyAgICAgICAgICAgIGxldCBwcmV2aW91c1N0YXRlID0g
J25vbmUnOworICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRl
ID0gJ25vbmUnOworICAgICAgICAgICAgZm9yIChsZXQgc3RhdGUgb2YgWydwYXVzZWQnLCAncGxh
eWluZycsICdub25lJ10pIHsKKworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlJywgcHJldmlvdXNTdGF0ZSk7CisKKyAgICAg
ICAgICAgICAgICBsYXRlc3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgICAgICAgICBydW4oYG5hdmln
YXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKworICAgICAg
ICAgICAgICAgIGF3YWl0IHRlc3RDYWxsYmFjaygpCisKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZScsIHN0YXRlKTsKKyAg
ICAgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gc3RhdGU7CisgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCcnKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgCiAgICAg
ICAgIGxldCBhY3Rpb25zID0gWyAKLSAgICAgICAgICAgIHsgYWN0aW9uOiAncGxheScsIGZ1bmMg
OiAoKSA9PiB7IHJldHVybiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXko
KSB9LCB9LAotICAgICAgICAgICAgeyBhY3Rpb246ICdwYXVzZScsIGZ1bmMgOiAoKSA9PiB7IHJl
dHVybiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBhdXNlKCkgfSwgfSwKLSAg
ICAgICAgICAgIHsgYWN0aW9uOiAnc2Vla3RvJywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmln
YXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKSB9LCB9LAorICAgICAgICAg
ICAgeyBhY3Rpb246ICdwbGF5JywgZnVuYyA6ICduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yLnBsYXkoKScgfSwKKyAgICAgICAgICAgIHsgYWN0aW9uOiAncGF1c2UnLCBmdW5jIDog
J25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGF1c2UoKScgfSwKKyAgICAgICAg
ICAgIHsgYWN0aW9uOiAnc2Vla3RvJywgZnVuYyA6ICduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNv
b3JkaW5hdG9yLnNlZWtUbygxMCknIH0sCiAgICAgICAgIF07CiAKKyAgICAgICAgLy8gQmVmb3Jl
IGpvaW5pbmcKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRl
KCcqKiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnN0YXRlIHNob3VsZCBiZSAi
d2FpdGluZyIgaW50aXRpYWxseScpCisgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zdGF0ZScsICd3YWl0aW5nJyk7CisKKyAgICAgICAgY29u
c29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hlbiBj
b29yZGluYXRvciBtZXRob2RzIGZhaWwgYW5kIHByb21pc2VzIHJlamVjdCBiZWZvcmUgbWVkaWFT
ZXNzaW9uLmpvaW4oKSBpcyBjYWxsZWQuJykKKyAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9mIGFj
dGlvbnMpCisgICAgICAgICAgICBhd2FpdCB0ZXN0QWN0aW9uKGFjdGlvbi5hY3Rpb24sIGFjdGlv
bi5mdW5jLCB0cnVlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoYCoqIFRlc3QgdGhhdCBtZWRp
YVNlc3Npb24gZG9lcyBub3Qgbm90aWZ5IGNvb3JkaW5hdG9yIHdoZW4gc3RhdGVzIGNoYW5nZSBi
ZWZvcmUgbWVkaWFTZXNzaW9uLmpvaW4oKSBpcyBjYWxsZWQuYCkKKyAgICAgICAgY29uc29sZVdy
aXRlKCcqIFBvc2l0aW9uU3RhdGUnKTsKKyAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CisgICAg
ICAgIHJ1bignbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsgZHVyYXRp
b246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSknKTsKKyAgICAgICAgYXdhaXQg
c2xlZXBGb3IoMjApOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2xhdGVzdENoYW5nZScsICcnKTsK
KworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyogUmVh
ZHlTdGF0ZScpOworICAgICAgICBhd2FpdCB0ZXN0UmVhZHlTdGF0ZXMoYXN5bmMgKCkgPT4gewor
ICAgICAgICAgICAgYXdhaXQgc2xlZXBGb3IoMjApOworICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCdsYXRlc3RDaGFuZ2UnLCAnJyk7CisgICAgICAgIH0pOworCisgICAgICAgIGNvbnNvbGVXcml0
ZSgnKiBQbGF5YmFja1N0YXRlJyk7CisgICAgICAgIGF3YWl0IHRlc3RQbGF5YmFja1N0YXRlcyhh
c3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBzbGVlcEZvcigyMCk7CisgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ2xhdGVzdENoYW5nZScsICcnKTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgY29uc29sZVdyaXRlKCc8YnI+Jyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogc2Vzc2lv
bi5qb2luKCkgc2hvdWxkIHJlamVjdCBvbiBmYWlsdXJlJyk7CisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbCh0cnVl
KScpOworICAgICAgICBydW4oJ3Byb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yLmpvaW4oKScpOworICAgICAgICBhd2FpdCBzaG91bGRSZWplY3QocHJvbWlzZSkudGhl
bigoKSA9PiB7IH0pLmNhdGNoKCgpID0+IHsgfSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zdGF0ZScsICd3YWl0aW5nJyk7CisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0Q2hhbmdlJywgJycpOworCiAgICAgICAgIGNvbnNvbGVX
cml0ZSgnJyk7Ci0gICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRp
bmF0b3IgbWV0aG9kcyBzdWNjZWVkLCAgcHJvbWlzZXMgcmVzb2x2ZSBhbmQgbWVkaWFTZXNzaW9u
IGFjdGlvbiBoYW5kbGVycyBhcmUgY2FsbGVkLicpCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNl
dE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbChmYWxzZSknKTsK
KyAgICAgICAgcnVuKCdwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRv
ci5qb2luKCknKTsKKyAgICAgICAgYXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVuKCgp
ID0+IHsgfSkuY2F0Y2goKCkgPT4geyB9KTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnN0YXRlJywgJ2pvaW5lZCcpOworICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ2xhdGVzdENoYW5nZScsICdjb29yZGluYXRvclN0YXRlQ2hhbmdlZCcpOwor
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVz
dCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBzdWNjZWVkLCBwcm9taXNlcyByZXNvbHZl
IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQuJykKICAgICAgICAg
aW50ZXJuYWxzLnNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFp
bChmYWxzZSk7CiAgICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKQogICAgICAgICAg
ICAgYXdhaXQgdGVzdEFjdGlvbihhY3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVuYywgZmFsc2UpOwog
Ci0gICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0
aG9kcyBzdWNjZWVkLCAgcHJvbWlzZXMgcmVqZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhh
bmRsZXJzIGFyZSBub3QgY2FsbGVkLicpCisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0
aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBmYWlsLCBwcm9taXNlcyByZWplY3QgYW5kIG1l
ZGlhU2Vzc2lvbiBhY3Rpb24gaGFuZGxlcnMgYXJlIG5vdCBjYWxsZWQuJykKICAgICAgICAgaW50
ZXJuYWxzLnNldE1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvckNvbW1hbmRzU2hvdWxkRmFpbCh0
cnVlKTsKICAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpCiAgICAgICAgICAgICBh
d2FpdCB0ZXN0QWN0aW9uKGFjdGlvbi5hY3Rpb24sIGFjdGlvbi5mdW5jLCB0cnVlKTsKQEAgLTg5
LDM2ICsxNzksNTggQEAKICAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0
ZXN0Q2hhbmdlJywgJ3Bvc2l0aW9uU3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsKIAogICAgICAg
ICBjb25zb2xlV3JpdGUoJycpOwotICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBt
ZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiByZWFkeVN0YXRlIGNoYW5nZXMu
JykKLSAgICAgICAgbGV0IHByZXZpb3VzU3RhdGUgPSAnaGF2ZU5vdGhpbmcnOwotICAgICAgICBm
b3IgKGxldCBzdGF0ZSBvZiBbJ2hhdmVNZXRhZGF0YScsICdoYXZlQ3VycmVudERhdGEnLCAnaGF2
ZUZ1dHVyZURhdGEnLCAnaGF2ZUVub3VnaERhdGEnLCAnaGF2ZU5vdGhpbmcnXSkgewotICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUnLCBw
cmV2aW91c1N0YXRlKTsKLQotICAgICAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7Ci0gICAgICAg
ICAgICBydW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICcke3N0YXRlfSdg
KTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlm
aWVzIGNvb3JkaW5hdG9yIHdoZW4gcmVhZHlTdGF0ZSBjaGFuZ2VzLicpOworICAgICAgICBhd2Fp
dCB0ZXN0UmVhZHlTdGF0ZXMoYXN5bmMgKCkgPT4geyBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCdsYXRlc3RDaGFuZ2UnLCAncmVhZHlTdGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOyB9KQog
Ci0gICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2Un
LCAncmVhZHlTdGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOworICAgICAgICBjb25zb2xlV3JpdGUo
JyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5
YmFja1N0YXRlIGNoYW5nZXMuJykKKyAgICAgICAgYXdhaXQgdGVzdFBsYXliYWNrU3RhdGVzKGFz
eW5jICgpID0+IHsgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ3BsYXli
YWNrU3RhdGVDaGFuZ2VkJywgJz09JywgMTAwKTsgfSk7CiAKLSAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlJywgc3RhdGUpOwotICAgICAg
ICAgICAgcHJldmlvdXNTdGF0ZSA9IHN0YXRlOwotICAgICAgICAgICAgY29uc29sZVdyaXRlKCcn
KTsKLSAgICAgICAgfTsKKyAgICAgICAgLy8gQWZ0ZXIgbGVhdmluZworICAgICAgICBjb25zb2xl
V3JpdGUoJzxicj4nKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCcqKiBMZWF2ZSB0aGUgc2Vzc2lv
bicpCisgICAgICAgIHJ1bignbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5sZWF2
ZSgpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29y
ZGluYXRvci5zdGF0ZScsICdjbG9zZWQnKTsKKyAgICAgICAgYXdhaXQgdGVzdEV4cGVjdGVkRXZl
bnR1YWxseSgnbGF0ZXN0Q2hhbmdlJywgJ2Nvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkJywgJz09Jywg
MTAwKTsKKyAgICAgICAgbGF0ZXN0Q2hhbmdlID0gJyc7CiAKLSAgICAgICAgY29uc29sZVdyaXRl
KCcqKiBUZXN0IHRoYXQgbWVkaWFTZXNzaW9uIG5vdGlmaWVzIGNvb3JkaW5hdG9yIHdoZW4gcGxh
eWJhY2tTdGF0ZSBjaGFuZ2VzLicpCi0gICAgICAgIHByZXZpb3VzU3RhdGUgPSAnbm9uZSc7Ci0g
ICAgICAgIGZvciAobGV0IHN0YXRlIG9mIFsncGF1c2VkJywgJ3BsYXlpbmcnLCAnbm9uZSddKSB7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVz
dCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBmYWlsIGFuZCBwcm9taXNlcyByZWplY3Qg
YWZ0ZXIgbWVkaWFTZXNzaW9uLmxlYXZlKCkgaGFzIGJlZW4gY2FsbGVkLicpCisgICAgICAgIGZv
ciAobGV0IGFjdGlvbiBvZiBhY3Rpb25zKQorICAgICAgICAgICAgYXdhaXQgdGVzdEFjdGlvbihh
Y3Rpb24uYWN0aW9uLCBhY3Rpb24uZnVuYywgdHJ1ZSk7CiAKLSAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlJywgcHJldmlvdXNTdGF0
ZSk7CisgICAgICAgIGNvbnNvbGVXcml0ZShgKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBkb2Vz
IG5vdCBub3RpZnkgY29vcmRpbmF0b3Igd2hlbiBzdGF0ZXMgY2hhbmdlIGFmdGVyIG1lZGlhU2Vz
c2lvbi5sZWF2ZSgpIGhhcyBiZWVuIGNhbGxlZC5gKQorICAgICAgICBjb25zb2xlV3JpdGUoJyog
UG9zaXRpb25TdGF0ZScpOworICAgICAgICBsYXRlc3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgcnVu
KCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnNldFBvc2l0aW9uU3RhdGUoeyBkdXJhdGlvbjogMSwg
cGxheWJhY2tSYXRlOiAxLCBwb3NpdGlvbjogMCB9KScpOworICAgICAgICBhd2FpdCBzbGVlcEZv
cigyMCk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0Q2hhbmdlJywgJycpOwogCi0gICAg
ICAgICAgICBsYXRlc3RDaGFuZ2UgPSAnJzsKLSAgICAgICAgICAgIHJ1bihgbmF2aWdhdG9yLm1l
ZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJyR7c3RhdGV9J2ApOworICAgICAgICBjb25zb2xl
V3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyogUmVhZHlTdGF0ZScpOworICAgICAg
ICBhd2FpdCB0ZXN0UmVhZHlTdGF0ZXMoYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQg
c2xlZXBGb3IoMjApOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RDaGFuZ2UnLCAn
Jyk7CisgICAgICAgIH0pOwogCi0gICAgICAgICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCdsYXRlc3RDaGFuZ2UnLCAncGxheWJhY2tTdGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOwor
ICAgICAgICBjb25zb2xlV3JpdGUoJyogUGxheWJhY2tTdGF0ZScpOworICAgICAgICBhd2FpdCB0
ZXN0UGxheWJhY2tTdGF0ZXMoYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgc2xlZXBG
b3IoMjApOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RDaGFuZ2UnLCAnJyk7Cisg
ICAgICAgIH0pOwogCi0gICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNl
c3Npb24ucGxheWJhY2tTdGF0ZScsIHN0YXRlKTsKLSAgICAgICAgICAgIHByZXZpb3VzU3RhdGUg
PSBzdGF0ZTsKLSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7Ci0gICAgICAgIH07CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnPGJyPicpOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIEl0IHNo
b3VsZCBub3QgYmUgcG9zc2libGUgdG8gam9pbiBvciBsZWF2ZSBhIGNsb3NlZCBzZXNzaW9uJyk7
CisgICAgICAgIHJ1bigncHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0
b3Iuam9pbigpJyk7CisgICAgICAgIGF3YWl0IHNob3VsZFJlamVjdChwcm9taXNlKS50aGVuKCgp
ID0+IHsgfSkuY2F0Y2goKCkgPT4geyB9KTsKKyAgICAgICAgCisgICAgICAgIGxldCBleGNlcHRp
b247CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNv
b3JkaW5hdG9yLmxlYXZlKCk7CisgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICBl
eGNlcHRpb24gPSBleDsKKyAgICAgICAgfQorICAgICAgICBsZXQgZXhwZWN0ZWQgPSAnSW52YWxp
ZFN0YXRlRXJyb3I6IFVuYWJsZSB0byBsZWF2ZSB3aGVuIHN0YXRlIGlzIGNsb3NlZCc7CisgICAg
ICAgIGxvZ1Jlc3VsdChleGNlcHRpb24udG9TdHJpbmcoKSA9PSBleHBlY3RlZCwgYFRFU1QobmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5sZWF2ZSgpKSBUSFJPV1MoJHtleHBlY3Rl
ZH0pYCk7CiAKICAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKICAgICAgICAgZW5kVGVzdCgpOwo=
</data>
<flag name="commit-queue"
          id="444575"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424812</attachid>
            <date>2021-03-31 13:37:53 -0700</date>
            <delta_ts>2021-03-31 16:11:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223955-20210331133748.patch</filename>
            <type>text/plain</type>
            <size>97039</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI2YTNiM2EyZWEzNzc2
ODhlYTRmOTgwZTliYzJjZjkzNTZjOTBkZS4uM2Y0NzVjMjc1ZTEyOTA3YWQ2Y2QwOTY1MTE3YTUy
NWY2ZTlkZjY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDIxLTAzLTMxICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3Igc2hvdWxkIGhhdmUgam9pbiBhbmQgbGVhdmUgbWV0aG9kcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzOTU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjAyMTU4OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCAnam9pbicgYW5kICdsZWF2ZScg
bWV0aG9kcyB0byBNZWRpYVNlc3Npb25Db29yZGluYXRvciBzbyBhIHBhZ2UgaGFzIHRvIG9wdC1p
bgorICAgICAgICB0byBwYXJ0aWNpcGF0aW5nIGluIGEgY29vcmRpbmF0ZWQgc2Vzc2lvbiBhbmQg
Y2FuIGxlYXZlIGF0IGFueSB0aW1lLiBEb24ndCBoYXZlIAorICAgICAgICB0aGUgY29vcmRpbmF0
b3IgYXV0b21hdGljYWxseSBjYWxsIHNlc3Npb24gbWV0aG9kcyB3aGVuIHRoZSBwcml2YXRlIGNv
b3JkaW5hdG9yCisgICAgICAgIGZpbmlzaGVzLCBqdXN0IHNpZ25hbCB0aGUgcHJvbWlzZSBhbmQg
bGV0IHRoZSBwYWdlIGhhbmRsZSBpdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQg
bWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFNZXRhZGF0YS5pZGw6IEZpeCBDb25kaXRpb25hbC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGw6IERpdHRvLgorCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmg6IEFkZCBsb2dnaW5n
IHRlbXBsYXRlLgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVBvc2l0
aW9uU3RhdGU+Ojp0b1N0cmluZyk6CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpNZWRpYVNl
c3Npb24pOiBTd2l0Y2ggZnJvbSBiZWdpbmcgYSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgor
ICAgICAgICB0byBhbiBBY3RpdmVET01PYmplY3QgdG8gdGhlIHdyYXBwZXIgd29uJ3QgYmUgY29s
bGVjdGVkIHdoaWxlIGFuIGV2ZW50IGRpc3BhdGNoCisgICAgICAgIGlzIHBlbmRpbmcuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29u
c3QpOiBQcmV2ZW50IGNvbGxlY3Rpb24gd2hpbGUKKyAgICAgICAgZXZlbnQgZGlzcGF0Y2ggaXMg
cGVuZGluZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6c2V0UG9zaXRpb25TdGF0
ZSk6IEltcHJvdmUgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUG9zaXRpb25TdGF0
ZTo6dG9KU09OU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b24uaWRsOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmpvaW4pOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
bGVhdmUpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
c2Vla1RvKTogUmVqZWN0IHVubGVzcyBzdGF0ZSBpcyAnam9pbmVkJy4gRG9uJ3QKKyAgICAgICAg
Y2FsbCBzZXNzaW9uIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpwbGF5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6cGF1c2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpzZXRUcmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlTdGF0ZUNoYW5nZWQpOiBE
byBub3RoaW5nIHVubGVzcyBzdGF0ZSBpcworICAgICAgICAnam9pbmVkJy4gSW1wcm92ZSBsb2dn
aW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtTZXNz
aW9uVG9UaW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6cGxheVNlc3Npb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpwYXVzZVNlc3Npb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRTZXNzaW9uVHJhY2spOiBEaXR0by4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5oOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnN0YXRlIGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5p
ZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JNaXhpbi5pZGw6IEZpeCBDb25kaXRpb25hbC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oOiBEZWNsYXJlIG5ldyByZXF1
aXJlZCBtZXRob2RzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZS5oOiBEZWZpbmUgc3RhdGVzLgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsOgorCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGw6IEZp
eCBDb25kaXRpb25hbC4KKworICAgICAgICAqIFNvdXJjZXMudHh0OiBBZGQgSlNNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlLmNwcC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKworICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6am9pbik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OmxlYXZlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIHRlc3RpbmcvTW9ja01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmg6CisKIDIwMjEtMDMtMzEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGxvZ2dpbmcgaW4gSW5kZXhlZERCIHRvIGhlbHAgZGVi
dWcgZmxha3kgcXVvdGEgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZkZTI5YjFlNTRiMjkwMDY4Y2I0ZmY0
Y2NjMTRiMWE3YzJiNWQ0Yi4uNWI3ZWE5ZDNmMDcxZmNmNjQ3MTQyZGY4ZmE3YWUxMjRlM2MwOTli
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAyMS0wMy0zMSAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yIHNob3VsZCBoYXZlIGpvaW4gYW5kIGxlYXZlIG1ldGhvZHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzk1NQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzYwMjE1ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQ
cm94eVByaXZhdGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlh
L01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5LmguCisgICAgICAgICogVUlQcm9j
ZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6am9pbik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmxlYXZlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0b3JTdGF0ZUNo
YW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6UmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcjo6am9pbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpsZWF2ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yOjpjb29yZGluYXRvclN0YXRlQ2hhbmdlZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eS5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eTo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5h
dG9yU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9SZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjEtMDMtMzEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGxvZ2dpbmcgaW4gSW5kZXhl
ZERCIHRvIGhlbHAgZGVidWcgZmxha3kgcXVvdGEgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggM2IxYWNhMjMzMzUxZjEwYWI1MDE0YjQwOTI0Yzk1NzA2ZDU3YTgxNi4uNTk3Y2MwNDBkYzE0
OTkyNmY0ZWMwYmE0ODE2ZjNmZGZkM2Y0Yjk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMz
OSw2ICszMzksNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsCiAgICAgTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKKyAgICBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmlkbAogICAgIE1vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaWRsCiAgICAgTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwKICAgICBNb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMTY5YjIxYTFiMDExZGU5Mzgz
NzRjZmQ1ZTc2OTJjMmVmMDM5MmQ1Zi4uMjU1ZGM5OTkwYTI3ZTExMjBlYmI1ZDIwMDJiYWJhYmU3
YTY3NjMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CkBAIC0xODEsNiArMTgxLDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFTZXNzaW9uQWN0aW9uRGV0YWlscy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
TWl4aW4uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvblBsYXlsaXN0TWl4aW4uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA3MTZh
OGM1YTcyN2U1OTljY2FiNjY5MTg4MDBjNzc2ODY1ZWQ3N2ZjLi5hM2E5MWQ5NDhkMzhhNzYzMjY0
ODMyYTIwNTBiOTU1ZWMwZTdmNDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTMyMiw2ICsxMzIyLDggQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25Db29yZGlu
YXRvck1peGluLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU2Vz
c2lvblBsYXliYWNrU3RhdGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNTE4ZWRmMWZkNjQ1NDM4OGY2
OGU3NGU3YTIyMmIwYTcxMTEyY2I1NS4uMDc3MTI5YmVlMzgzODgyMTk4YjhlMGFhODJjMWU4YjE4
ZGMxNTk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMTUsNiArMjE1LDcg
QEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhU2Vzc2lvbkFjdGlvbkhhbmRsZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvck1peGluLmlk
bCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29y
ZGluYXRvclN0YXRlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25SZWFkeVN0YXRlLmlkbCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRh
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEu
aWRsCmluZGV4IGQwNWYyYjBiNjk0YmM0OGZmYWE3MTM1YTVhZTlmNDBjYTYyZmNkMmQuLjBhNTFj
NTY5ZjAxYjdiNTY5ZGM3NjJjYmQ5ZmExZThjZWY1NmJjNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhTWV0YWRhdGEuaWRsCkBAIC0zMyw4
ICszMyw2IEBACiAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhcnRpc3Q7CiAgICAgYXR0cmlidXRl
IERPTVN0cmluZyBhbGJ1bTsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhSW1hZ2U+IGFydHdvcms7Ci0KLSAgICBb
Q29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwgRW5hYmxlZEJ5U2V0dGluZz1NZWRp
YVNlc3Npb25QbGF5bGlzdF0gYXR0cmlidXRlIERPTVN0cmluZyB0cmFja0lkZW50aWZpZXI7CiB9
OwogCiBNZWRpYU1ldGFkYXRhIGluY2x1ZGVzIE1lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFNZXRh
ZGF0YVBsYXlsaXN0TWl4aW4uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4uaWRsCmluZGV4IGNhNzIxNWQ5Nzk1Y2FhODU3
NTdjZThhMmY0NTY5ZmYyYWFiNzdlY2MuLmUwYTc2NDBiMGQzNDRiYWVjMDM2Njk3NDA2MjRhZjJk
NGU4ZGI2ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhTWV0YWRhdGFQbGF5bGlzdE1peGluLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhUGxheWxpc3RNaXhpbi5pZGwKQEAgLTI0LDcg
KzI0LDcgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9RU5BQkxFX01FRElBX1NFU1NJT05f
UExBWUxJU1QsCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9QTEFZTElTVCwKICAgICBF
bmFibGVkQnlTZXR0aW5nPU1lZGlhU2Vzc2lvblBsYXlsaXN0LAogXSBpbnRlcmZhY2UgbWl4aW4g
TWVkaWFNZXRhZGF0YVBsYXlsaXN0TWl4aW4gewogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdHJh
Y2tJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNl
c3Npb24vTWVkaWFQb3NpdGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVBvc2l0aW9uU3RhdGUuaAppbmRleCA0NmM4OTIzMjYyZTgzYzRkNGFiY2Vi
ZTgzY2QyODkxZjMwMGU1MWQ4Li4zZjVkZTc3MGRlNDIxNmZjNzJkZTQ5Y2YzMGRhYjVhMzgwNTQ2
NWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVBvc2l0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9NZWRpYVBvc2l0aW9uU3RhdGUuaApAQCAtMzQsNiArMzQsOCBAQCBzdHJ1Y3QgTWVkaWFQb3Np
dGlvblN0YXRlIHsKICAgICBkb3VibGUgcGxheWJhY2tSYXRlID0gMTsKICAgICBkb3VibGUgcG9z
aXRpb24gPSAwOwogCisgICAgU3RyaW5nIHRvSlNPTlN0cmluZygpIGNvbnN0OworCiAgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+
IGRlY29kZShEZWNvZGVyJik7CiB9OwpAQCAtNjIsNCArNjQsMTQgQEAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gaW5saW5lIE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0ZT4gTWVkaWFQb3NpdGlv
blN0YXRlOjoKIAogfQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6TWVkaWFQb3NpdGlvblN0YXRlPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25z
dCBXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGUmIHN0YXRlKSB7IHJldHVybiBzdGF0ZS50b0pT
T05TdHJpbmcoKTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKICNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IGUwYzViM2EzYWExZWNjYzA4ZWEzMzZlYjc5
M2VmZWFhMWE3Y2RhMDQuLjBlNjJkZGIzMGQzMGE1YmU5YzZlNzMwOTRiMzNiYjM2YTA3MjIwMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFT
ZXNzaW9uLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC04MSwyMCArODIsMjQgQEAgUmVmPE1lZGlhU2Vzc2lvbj4gTWVk
aWFTZXNzaW9uOjpjcmVhdGUoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCiB9CiAKIE1lZGlhU2Vzc2lv
bjo6TWVkaWFTZXNzaW9uKE5hdmlnYXRvciYgbmF2aWdhdG9yKQotICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIobmF2aWdhdG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICA6
IEFjdGl2ZURPTU9iamVjdChuYXZpZ2F0b3Iuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAg
ICwgbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkKLSNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKICAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKE1haW5UaHJlYWRH
ZW5lcmljRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKLSNlbmRpZgogewogICAgIG1fbG9nZ2Vy
ID0gbWFrZVJlZlB0cihEb2N1bWVudDo6c2hhcmVkTG9nZ2VyKCkpOwogICAgIG1fbG9nSWRlbnRp
ZmllciA9IG5leHRMb2dJZGVudGlmaWVyKCk7CisgICAgc3VzcGVuZElmTmVlZGVkKCk7CiAKICAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogfQogCiBNZWRpYVNlc3Npb246On5NZWRpYVNl
c3Npb24oKSA9IGRlZmF1bHQ7CiAKK2Jvb2wgTWVkaWFTZXNzaW9uOjp2aXJ0dWFsSGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hc3luY0V2ZW50UXVldWUtPmhhc1Bl
bmRpbmdBY3Rpdml0eSgpOworfQorCiB2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0TWV0YWRhdGEoUmVm
UHRyPE1lZGlhTWV0YWRhdGE+JiYgbWV0YWRhdGEpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSKTsKQEAgLTIxMiw3ICsyMTcsMTAgQEAgdm9pZCBNZWRpYVNlc3Npb246OmNhbGxBY3Rp
b25IYW5kbGVyKGNvbnN0IE1lZGlhU2Vzc2lvbkFjdGlvbkRldGFpbHMmIGFjdGlvbkRldGEKIAog
RXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTZXNzaW9uOjpzZXRQb3NpdGlvblN0YXRlKE9wdGlvbmFs
PE1lZGlhUG9zaXRpb25TdGF0ZT4mJiBzdGF0ZSkKIHsKLSAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworICAgIGlmIChzdGF0ZSkKKyAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCBzdGF0ZS52YWx1ZSgpKTsKKyAgICBlbHNlCisgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUiwgInsgfSIpOwogCiAgICAgaWYgKCFzdGF0ZSkgewogICAgICAgICBtX3Bvc2l0aW9uU3Rh
dGUgPSBXVEY6Om51bGxvcHQ7CkBAIC0zMTUsNiArMzIzLDE3IEBAIHZvaWQgTWVkaWFTZXNzaW9u
Ojpub3RpZnlSZWFkeVN0YXRlT2JzZXJ2ZXJzKCkKIH0KICNlbmRpZgogCitTdHJpbmcgTWVkaWFQ
b3NpdGlvblN0YXRlOjp0b0pTT05TdHJpbmcoKSBjb25zdAoreworICAgIGF1dG8gb2JqZWN0ID0g
SlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKworICAgIG9iamVjdC0+c2V0RG91YmxlKCJkdXJhdGlv
biJfcywgZHVyYXRpb24pOworICAgIG9iamVjdC0+c2V0RG91YmxlKCJwbGF5YmFja1JhdGUiX3Ms
IHBsYXliYWNrUmF0ZSk7CisgICAgb2JqZWN0LT5zZXREb3VibGUoInBvc2l0aW9uIl9zLCBwb3Np
dGlvbik7CisKKyAgICByZXR1cm4gb2JqZWN0LT50b0pTT05TdHJpbmcoKTsKK30KKwogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCmluZGV4IGFlMTQzODMzYWM4YWFmZDQz
MWI3MTk0ZDcxNTUwZjU2NjBhY2MwMjguLmU1ZGJlOTYyN2ZjMWM2MTk0NTU4Mjc2M2QwZTczMzQ3
OGQ1MjRiY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9u
L01lZGlhU2Vzc2lvbi5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTikKIAotI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRl
ICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lZGlhUG9zaXRpb25TdGF0ZS5oIgpA
QCAtNDksNyArNDksNyBAQCBjbGFzcyBNZWRpYU1ldGFkYXRhOwogY2xhc3MgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I7CiBjbGFzcyBOYXZpZ2F0b3I7CiAKLWNsYXNzIE1lZGlhU2Vzc2lvbiA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbj4gLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIgLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBNZWRp
YVNlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNlc3Npb24+LCBwdWJsaWMgQWN0aXZl
RE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVNlc3Npb24+
IGNyZWF0ZShOYXZpZ2F0b3ImKTsKQEAgLTEyNCwxMSArMTI0LDE1IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBub3RpZnlBY3Rpb25IYW5kbGVyT2JzZXJ2ZXJzKCk7CiAgICAgdm9pZCBub3RpZnlSZWFk
eVN0YXRlT2JzZXJ2ZXJzKCk7CiAKKyAgICAvLyBFdmVudFRhcmdldAorICAgIHZvaWQgcmVmRXZl
bnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkg
ZmluYWwgeyBkZXJlZigpOyB9CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJ
bnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVNlc3Npb25FdmVudFRhcmdldElu
dGVyZmFjZVR5cGU7IH0KICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCi0gICAgdm9pZCByZWZFdmVudFRhcmdl
dCgpIGZpbmFsIHsgcmVmKCk7IH0KLSAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7
IGRlcmVmKCk7IH0KKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbiI7IH0K
KyAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKIAogICAg
IFdlYWtQdHI8TmF2aWdhdG9yPiBtX25hdmlnYXRvcjsKICAgICBSZWZQdHI8TWVkaWFNZXRhZGF0
YT4gbV9tZXRhZGF0YTsKQEAgLTE0MSwxMSArMTQ1LDExIEBAIHByaXZhdGU6CiAgICAgY29uc3Qg
dm9pZCogbV9sb2dJZGVudGlmaWVyOwogCiAgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2Jz
ZXJ2ZXJzOworICAgIFVuaXF1ZVJlZjxNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVldWU+IG1fYXN5
bmNFdmVudFF1ZXVlOwogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiAg
ICAgTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBNZWRpYVNlc3Npb25SZWFk
eVN0YXRlOjpIYXZlTm90aGluZyB9OwogICAgIFJlZlB0cjxNZWRpYVNlc3Npb25Db29yZGluYXRv
cj4gbV9jb29yZGluYXRvcjsKLSAgICBVbmlxdWVSZWY8TWFpblRocmVhZEdlbmVyaWNFdmVudFF1
ZXVlPiBtX2FzeW5jRXZlbnRRdWV1ZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T05fUExBWUxJU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uLmlkbAppbmRleCA2MWE4NzQ0Mjc0YjIyMzhhNmNlZWU5MDI4ZWZjOTIy
OWMzYmFlZDY3Li5jOTQ2NTkxYjM4MDA5NmNiYzQ4OTM4OGRlODMwOWY0NTA4NjU1ZjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCisgICAgQWN0aXZlRE9NT2JqZWN0LAog
ICAgIENvbmRpdGlvbmFsPU1FRElBX1NFU1NJT04sCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAg
RXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAK
aW5kZXggOTE5MzQyMzRmYmMwZWJlZmNmYzFmMmMxZGJjZmVlYTA0YjM3NzJiMi4uMjA4MTk4YmMz
NDAwOGVhOTQ2ZDM5YjFhYWRjNGY4NDRjODU1YTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb24uaCIK
ICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJN
ZWRpYVNlc3Npb24uaCIKICNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUu
aCIKQEAgLTYxLDYgKzYyLDQ4IEBAIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpNZWRpYVNlc3Np
b25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2CiAKIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjp+TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKSA9IGRlZmF1bHQ7CiAK
K3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmpvaW4oRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOwor
ICAgIEFMV0FZU19MT0coaWRlbnRpZmllciwgbV9zdGF0ZSk7CisKKyAgICBpZiAobV9zdGF0ZSAh
PSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpXYWl0aW5nKSB7CisgICAgICAgIEVSUk9S
X0xPRyhpZGVudGlmaWVyLCAiaW52YWxpZCBzdGF0ZSIpOworICAgICAgICBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygiVW5hYmxlIHRvIGpv
aW4gd2hlbiBzdGF0ZSBpcyAiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX3N0YXRlKSkg
fSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+
am9pbihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24p
IG11dGFibGUgeworICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fc2Vzc2lvbikgeworICAg
ICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXhjZXB0aW9u
KSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5sb2dnZXIoKS5lcnJvcihwcm90ZWN0ZWRU
aGlzLT5sb2dDaGFubmVsKCksIGlkZW50aWZpZXIsICJjb29yZGluYXRvci5qb2luIGZhaWxlZCEi
KTsKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoKmV4Y2VwdGlvbikpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9z
dGF0ZSA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZDsKKyAgICAgICAgcHJv
dGVjdGVkVGhpcy0+bV9wcml2YXRlQ29vcmRpbmF0b3ItPmNvb3JkaW5hdG9yU3RhdGVDaGFuZ2Vk
KE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCk7CisgICAgICAgIHByb21pc2Uu
cmVzb2x2ZSgpOworICAgIH0pOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6bGVhdmUoKQoreworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Cisg
ICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsIG1ha2VTdHJpbmco
IlVuYWJsZSB0byBsZWF2ZSB3aGVuIHN0YXRlIGlzICIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKG1fc3RhdGUpKSB9OworCisgICAgbV9zdGF0ZSA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
U3RhdGU6OkNsb3NlZDsKKyAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+bGVhdmUoKTsKKyAgICBt
X3ByaXZhdGVDb29yZGluYXRvci0+Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JTdGF0ZTo6Q2xvc2VkKTsKKworICAgIHJldHVybiB7IH07Cit9CisKIHZvaWQg
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBMT0dJREVO
VElGSUVSOwpAQCAtNzIsNyArMTE1LDEzIEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnNlZWtUbyhkb3VibGUgdGltZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+c2Vla1RvKHRp
bWUsIFt0aW1lLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2Vw
dGlvbikgbXV0YWJsZSB7CisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAgICAgIEVSUk9SX0xPRyhpZGVudGlmaWVyLCAiLnN0YXRl
IGlzICIsIG1fc3RhdGUpOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygiVW5hYmxlIHRvIHNlZWtUbyB3aGVuIHN0YXRlIGlz
ICIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fc3RhdGUpKSB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5zZWVrVG8odGltZSwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlzKSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3Nlc3Npb24pIHsKICAgICAgICAgICAg
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtODQsOSArMTMzLDYgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGlu
YXRvcjo6c2Vla1RvKGRvdWJsZSB0aW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm8K
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIC8vIEZJWE1FOiBzaG91
bGQgdGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2Vla1Rv
JyBhY3Rpb24gaGFuZGxlcj8KLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+aW50ZXJuYWxTZWVrVG8o
dGltZSk7Ci0KICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgfSk7CiB9CkBAIC0xMDIs
NiArMTQ4LDEyIEBAIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXkoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCkgewor
ICAgICAgICBFUlJPUl9MT0coaWRlbnRpZmllciwgIi5zdGF0ZSBpcyAiLCBtX3N0YXRlKTsKKyAg
ICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsIG1ha2VT
dHJpbmcoIlVuYWJsZSB0byBwbGF5IHdoZW4gc3RhdGUgaXMgIiwgY29udmVydEVudW1lcmF0aW9u
VG9TdHJpbmcobV9zdGF0ZSkpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9w
cml2YXRlQ29vcmRpbmF0b3ItPnBsYXkoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKCp0aGlz
KSwgaWRlbnRpZmllciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChPcHRpb25hbDxFeGNl
cHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlz
LT5tX3Nlc3Npb24pIHsKICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH0pOwpAQCAtMTE0LDkgKzE2Niw2IEBAIHZvaWQgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3I6OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIC8vIEZJWE1FOiBzaG91bGQg
dGhlIHByb21pc2UgcmVqZWN0IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAncGxheScgYWN0
aW9uIGhhbmRsZXI/Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPmludGVybmFsUGxheSgpOwotCiAg
ICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwogICAgIH0pOwogfQpAQCAtMTMyLDYgKzE4MSwxMiBA
QCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1fc3Rh
dGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAgICAgIEVS
Uk9SX0xPRyhpZGVudGlmaWVyLCAiLnN0YXRlIGlzICIsIG1fc3RhdGUpOworICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygiVW5h
YmxlIHRvIHBhdXNlIHdoZW4gc3RhdGUgaXMgIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
bV9zdGF0ZSkpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9wcml2YXRlQ29v
cmRpbmF0b3ItPnBhdXNlKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIGlkZW50
aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYm
IGV4Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcy0+bV9zZXNz
aW9uKSB7CiAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9KTsKQEAgLTE0NCw5ICsxOTksNiBAQCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yOjpwYXVzZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB0aGUgcHJv
bWlzZSByZWplY3QgaWYgdGhlcmUgaXNuJ3QgYSByZWdpc3RlcmVkICdwYXVzZScgYWN0aW9uIGhh
bmRsZXI/Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPmludGVybmFsUGF1c2UoKTsKLQogICAgICAg
ICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsKIH0KQEAgLTE2Miw3ICsyMTQsMTMgQEAgdm9p
ZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5nJiB0cmFjaywg
RE9NUHJvbWlzZURlZmVycmVkPHYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJp
dmF0ZUNvb3JkaW5hdG9yLT5zZXRUcmFjayh0cmFjaywgW3RyYWNrLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZlB0cigqdGhpcyksIGlkZW50aWZpZXIsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XSAoT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgaWYgKG1f
c3RhdGUgIT0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAgICAg
IEVSUk9SX0xPRyhpZGVudGlmaWVyLCAiLnN0YXRlIGlzICIsIG1fc3RhdGUpOworICAgICAgICBw
cm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgbWFrZVN0cmluZygi
VW5hYmxlIHRvIHNldFRyYWNrIHdoZW4gc3RhdGUgaXMgIiwgY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcobV9zdGF0ZSkpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wcml2
YXRlQ29vcmRpbmF0b3ItPnNldFRyYWNrKHRyYWNrLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQ
dHIoKnRoaXMpLCBpZGVudGlmaWVyLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKE9wdGlv
bmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoIXByb3Rl
Y3RlZFRoaXMtPm1fc2Vzc2lvbikgewogICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzQs
OSArMjMyLDYgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3Qg
U3RyaW5nJiB0cmFjaywgRE9NUHJvbWlzZURlZmVycmVkPHYKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhlIHByb21pc2UgcmVqZWN0
IGlmIHRoZXJlIGlzbid0IGEgcmVnaXN0ZXJlZCAnc2V0VHJhY2snIGFjdGlvbiBoYW5kbGVyPwot
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5pbnRlcm5hbFNldFRyYWNrKHRyYWNrKTsKLQogICAgICAg
ICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsKIH0KQEAgLTE5MCw0MyArMjQ1LDg5IEBAIHZv
aWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNldE1lZGlhU2Vzc2lvbihNZWRpYVNlc3Npb24q
IHNlc3Npb24pCiAgICAgICAgIG1fc2Vzc2lvbi0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogfQogCi12
b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBP
cHRpb25hbDxNZWRpYVBvc2l0aW9uU3RhdGU+JiBzdGF0ZSkKK3ZvaWQgTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3I6OnBvc2l0aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPE1lZGlhUG9zaXRp
b25TdGF0ZT4mIHBvc2l0aW9uU3RhdGUpCiB7Ci0gICAgaWYgKCFzdGF0ZSkgeworICAgIGlmIChw
b3NpdGlvblN0YXRlKQorICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHBvc2l0aW9u
U3RhdGUudmFsdWUoKSk7CisgICAgZWxzZQorICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsICJ7IH0iKTsKKworICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
U3RhdGU6OkpvaW5lZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFwb3NpdGlvblN0YXRl
KSB7CiAgICAgICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZCh7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wcml2YXRlQ29vcmRpbmF0b3It
PnBvc2l0aW9uU3RhdGVDaGFuZ2VkKE1lZGlhUG9zaXRpb25TdGF0ZSB7IHN0YXRlLT5kdXJhdGlv
biwgc3RhdGUtPnBsYXliYWNrUmF0ZSwgc3RhdGUtPnBvc2l0aW9uIH0pOworICAgIG1fcHJpdmF0
ZUNvb3JkaW5hdG9yLT5wb3NpdGlvblN0YXRlQ2hhbmdlZChNZWRpYVBvc2l0aW9uU3RhdGUgeyBw
b3NpdGlvblN0YXRlLT5kdXJhdGlvbiwgcG9zaXRpb25TdGF0ZS0+cGxheWJhY2tSYXRlLCBwb3Np
dGlvblN0YXRlLT5wb3NpdGlvbiB9KTsKIH0KIAotdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRv
cjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSBzdGF0ZSkK
K3ZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGUgcGxheWJhY2tTdGF0ZSkKIHsKLSAgICBtX3ByaXZhdGVDb29y
ZGluYXRvci0+cGxheWJhY2tTdGF0ZUNoYW5nZWQoc3RhdGUpOworICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgbV9zdGF0ZSwgIiwgIiwgcGxheWJhY2tTdGF0ZSk7CisKKyAgICBpZiAobV9z
dGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpKb2luZWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChw
bGF5YmFja1N0YXRlKTsKIH0KIAotdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cmVhZHlT
dGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZSBzdGF0ZSkKK3ZvaWQgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5U3RhdGUg
cmVhZHlTdGF0ZSkKIHsKLSAgICBtX3ByaXZhdGVDb29yZGluYXRvci0+cmVhZHlTdGF0ZUNoYW5n
ZWQoc3RhdGUpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbV9zdGF0ZSwgIiwgIiwg
cmVhZHlTdGF0ZSk7CisKKyAgICBpZiAobV9zdGF0ZSAhPSBNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlOjpKb2luZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZUNvb3JkaW5h
dG9yLT5yZWFkeVN0YXRlQ2hhbmdlZChyZWFkeVN0YXRlKTsKIH0KIAogdm9pZCBNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6c2Vla1Nlc3Npb25Ub1RpbWUoZG91YmxlIHRpbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSLCBtX3N0YXRlLCAiLCAiLCB0aW1lKTsKKworICAgIGlmIChtX3N0YXRl
ICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCkgeworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBjb21w
bGV0aW9uSGFuZGxlcihpbnRlcm5hbFNlZWtUbyh0aW1lKSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnBsYXlTZXNzaW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBt
X3N0YXRlKTsKKworICAgIGlmIChtX3N0YXRlICE9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3Rh
dGU6OkpvaW5lZCkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBjb21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbFBsYXkoKSk7
CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnBhdXNlU2Vzc2lvbihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIsIG1fc3RhdGUpOworCisgICAgaWYgKG1fc3RhdGUgIT0gTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNvbXBsZXRpb25IYW5k
bGVyKGludGVybmFsUGF1c2UoKSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6
OnNldFNlc3Npb25UcmFjayhjb25zdCBTdHJpbmcmIHRyYWNrLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIG1fc3RhdGUsICIsICIsIHRyYWNrKTsKKworICAgIGlmIChtX3N0YXRlICE9IE1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGU6OkpvaW5lZCkgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihpbnRlcm5hbFNldFRyYWNrKHRyYWNrKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oCmluZGV4IDA2OTljZThmZjQzNzcyNmYzOWNmMTc2Zjc0Mzk2NTg0YmRmNzdhMmYuLmZkNGE4
NzNkMWJjOWMyZWVlZGM3M2EzODQ0YTcwNWE2YmVhMjAzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC00
NSw2ICs0NiwxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRp
YVNlc3Npb25Db29yZGluYXRvcj4gY3JlYXRlKFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGU+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5NZWRpYVNlc3Npb25Db29yZGluYXRvcigp
OwogCisgICAgdm9pZCBqb2luKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICBFeGNl
cHRpb25Pcjx2b2lkPiBsZWF2ZSgpOworCisgICAgU3RyaW5nIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX3ByaXZhdGVDb29yZGluYXRvci0+aWRlbnRpZmllcigpOyB9CisgICAgTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0K
KwogICAgIHZvaWQgc2Vla1RvKGRvdWJsZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwog
ICAgIHZvaWQgcGxheShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBwYXVz
ZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC04MCw2ICs4Nyw3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIHsgcmV0dXJuICJNZWRpYVNl
c3Npb25Db29yZGluYXRvciI7IH0KIAogICAgIFdlYWtQdHI8TWVkaWFTZXNzaW9uPiBtX3Nlc3Np
b247CisgICAgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBtX3N0YXRlIHsgTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZTo6V2FpdGluZyB9OwogICAgIFJlZjxNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByaXZhdGU+IG1fcHJpdmF0ZUNvb3JkaW5hdG9yOwogICAgIFJlZjxjb25zdCBMb2dn
ZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yLmlkbAppbmRleCBlYzA1YWI4OTBlYTE4MjZkMGZlNzEzMGI1ZDMyYjQy
ZDdiNDYyM2Q5Li4yMTE4MjcwM2QxYjBkODcyZjIzN2RiYWEwM2RkZTU2MWNmZTZkNWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25D
b29yZGluYXRvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuaWRsCkBAIC0yOSw2ICsyOSwxMyBAQAogICAgIEV4cG9z
ZWQ9V2luZG93LAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAogXSBpbnRlcmZhY2Ug
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgeworCisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGpvaW4o
KTsKKyAgICB1bmRlZmluZWQgbGVhdmUoKTsKKworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRp
YVNlc3Npb25Db29yZGluYXRvclN0YXRlIHN0YXRlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmc/IGlkZW50aWZpZXI7CisKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2Vla1RvKHVu
cmVzdHJpY3RlZCBkb3VibGUgdGltZSk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBsYXkoKTsK
ICAgICBQcm9taXNlPHVuZGVmaW5lZD4gcGF1c2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yTWl4aW4uaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JNaXhpbi5pZGwKaW5kZXggYzE0OGVjOGY4OTYyNjVmYjY1MWJmY2IxMWFhMDE4YjI1YWJk
Yzc1Mi4uZmRkZjA1NjAzNGIxMDRlZjJjMThjNDc2OWFmYjFlNzlhMDYzMjJhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JNaXhpbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwog
CiBbCi0gICAgQ29uZGl0aW9uYWw9RU5BQkxFX01FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsCisg
ICAgQ29uZGl0aW9uYWw9TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUiwKICAgICBFbmFibGVkQnlT
ZXR0aW5nPU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLAogXSBpbnRlcmZhY2UgbWl4aW4gTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JNaXhpbiB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yPyBjb29yZGluYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlLmgKaW5kZXggNWFiZGUxNWViZWE5MjhiNGY2NzFlYWE4ZTM1YjJhNWM3ZGNhNzgw
ZC4uZjgwMzBlNzg3MjA4MmYwMjc0YTdhZjU4OTYyZmVkOGMxNDBiMGIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1
ZGUgIkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUG9zaXRpb25TdGF0ZS5oIgorI2luY2x1
ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCIKICNpbmNsdWRlICJNZWRpYVNlc3Np
b25QbGF5YmFja1N0YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTMsNiArNTQsMTEgQEAgY2xhc3MgTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBpZGVudGlmaWVyKCkg
Y29uc3QgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGpvaW4oQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxlYXZl
KCkgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3VibGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPEV4Y2VwdGlvbj4mJik+JiYpID0gMDsKQEAgLTYxLDYgKzY3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBPcHRpb25hbDxNZWRpYVBv
c2l0aW9uU3RhdGU+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChN
ZWRpYVNlc3Npb25SZWFkeVN0YXRlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3Rh
dGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSkg
PSAwOwogCiAgICAgdm9pZCBzZXRMb2dnZXIoY29uc3QgV1RGOjpMb2dnZXImLCBjb25zdCB2b2lk
Kik7CiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChXZWFrUHRyPE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yQ2xpZW50PiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7fQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MmViZTE2MzY4ZGRjYjQ5NGUyMjA1
M2M2NzdmNjk1ZDliNzUzZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmgKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT05fQ09PUkRJTkFUT1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlIDogdWludDhfdCB7CisgICAgV2FpdGluZywKKyAg
ICBKb2luZWQsCisgICAgQ2xvc2VkLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZh
bHVlczwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSwKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6V2FpdGluZywKKyAg
ICAgICAgV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6Sm9pbmVkLAorICAg
ICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlOjpDbG9zZWQKKyAgICA+
OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25Db29yZGluYXRvclN0YXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ZDlj
MWI2MDUyYTk0ZmIzYmEyZWMxMTcwMGVkOTUzYzViYTEwZjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlv
bmFsPU1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IsCitdIGVudW0gTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JTdGF0ZSB7CisgICAgIndhaXRpbmciLAorICAgICJqb2luZWQiLAorICAgICJjbG9zZWQi
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVk
aWFTZXNzaW9uUGxheWxpc3RNaXhpbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbAppbmRleCBiZWM0Yjk1N2E1ZDUx
ZTZjYzc0MTNmNzhjZDhlYjk0YTIwOWYxZjJiLi5kNzYyMjA3MTI0M2E2OTMwNjQ3NzQ4MjY3MjBi
OTk2MzZlOTI2MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25QbGF5bGlzdE1peGluLmlkbApAQCAtMjQs
NyArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1FTkFCTEVfTUVESUFfU0VTU0lP
Tl9QTEFZTElTVCwKKyAgICBDb25kaXRpb25hbD1NRURJQV9TRVNTSU9OX1BMQVlMSVNULAogICAg
IEVuYWJsZWRCeVNldHRpbmc9TWVkaWFTZXNzaW9uUGxheWxpc3QsCiBdIGludGVyZmFjZSBtaXhp
biBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGluIHsKICAgICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gYXR0cmlidXRlIEZyb3plbkFycmF5PE1lZGlhTWV0YWRhdGE+IHBs
YXlsaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAzZTAxNzUzYjZlM2I3MjRjZmQ4NzMyNjc4ODY1Nzky
NWQ3NTE0MTVmLi4xOTFmMGQ3NmY5MjNiMzZjMDc4NjU2NWI4OGViMTkwYTgyZDhmZTI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtMzIzNCw2ICszMjM0LDcgQEAgSlNNZWRpYUtleXNSZXF1aXJlbWVudC5j
cHAKIEpTTWVkaWFMaXN0LmNwcAogSlNNZWRpYU1ldGFkYXRhLmNwcAogSlNNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAKK0pTTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5jcHAKIEpTTWVk
aWFNZXRhZGF0YUluaXQuY3BwCiBKU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAKIEpTTWVkaWFRdWVy
eUxpc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMzk3MWYzMGMwNzk5ZTc0OTU4OWE5MDA1YWU4NDI4ODc4ZjJiZGNiMC4u
MTZlZTQ2OGM2N2Q3NzE1ZDJiNWVhNWMzZWMyMzllNGM4NjljYjE2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE4LDYgKzIx
OCw3IEBACiAJCTA3QjkzRkZDMjNCOTRFQzcwMDM2RjhFQSAvKiBNSU1FVHlwZUNhY2hlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0I5M0ZGOTIzQjky
QUFBMDAzNkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3QzA0NkM0MUU0MjUwOEIwMDcyMDFFNyAvKiBDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3M0I4NzU4MUU0MERDRkQwMDcxQzBFQyAvKiBDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwN0MwNDZDQjFFNDI2NDEzMDA3MjAxRTcgLyogQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NTYx
RTQwRENFNTAwNzFDMEVDIC8qIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwN0MxNDgyRTI2MTJBMjFGMDA3
NzU4MjggLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3QkE1ODgyNjEyNkQ2NjAwNzJGMTlGIC8q
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0MxQzBFMjFCRkI2MDAxMDBCRDIyNTYgLyogTWVk
aWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwN0MxQzBFMDFCRkI2MDAxMDBCRDIyNTYgLyogTWVkaWFUcmFj
a1N1cHBvcnRlZENvbnN0cmFpbnRzLmggKi87IH07CiAJCTA3QzFDMEU1MUJGQjYwRUQwMEJEMjI1
NiAvKiBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QzFDMEU0MUJGQjYwRUQwMEJE
MjI1NiAvKiBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0NCOUU3MjI0OUMz
NkIyMDBBNjk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0NCOUU2RjI0OUMyMjZDMDBB
Njk0ODkgLyogQVZSb3V0ZVBpY2tlclZpZXdUYXJnZXRQaWNrZXIubW0gKi87IH07CkBAIC01ODYy
LDYgKzU4NjMsOCBAQAogCQkwNzdCNjQxNTFCOTVGNzAzMDAzRTlBRDUgLyogTWVkaWFQbGF5YmFj
a1RhcmdldE1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5
YmFja1RhcmdldE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc3QkE1N0My
NjBGRTczODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDc3QkE1N0QyNjBGRTczOTAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJpdmF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNlc3Npb25D
b29yZGluYXRvclByaXZhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzdC
QTU4ODI2MTI2RDY2MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3N0JBNThBMjYxMjZENkIwMDcyRjE5RiAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4MzIyODIxODAxM0VENzAwOTk5
RTBDIC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3ODMyMjgzMTgwMTNFRDgwMDk5OUUwQyAvKiBNZWRpYVN0cmVhbUF1
ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc4NDYzNDAxNDVC
MTUxQTAwQTU4REYxIC8qIEpTVHJhY2tFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1RyYWNrRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTkzMiw2ICs1OTM1LDEwIEBACiAJCTA3QjcxMTZDMUQ4OTlFNjMwMDlGMEZGQiAvKiBD
YXB0dXJlRGV2aWNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YXB0dXJlRGV2aWNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0I5
M0ZGOTIzQjkyQUFBMDAzNkY4RUEgLyogTUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
SU1FVHlwZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjkzRkZCMjNC
OTJBQUIwMDM2RjhFQSAvKiBNSU1FVHlwZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1J
TUVUeXBlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0MxNDgyOTI2
MTI5NTVDMDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwN0MxNDgyQjI2MTI5NTVEMDA3NzU4MjggLyogSlNNZWRpYVNlc3Npb25SZWFkeVN0YXRl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QzE0ODJDMjYxMjk1NUUwMDc3NTgyOCAvKiBK
U01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDdDMTQ4MkQyNjEyOTU1RjAwNzc1ODI4IC8qIEpTTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDMUMwRTAxQkZCNjAwMTAwQkQyMjU2
IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdDMUMwRTExQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJh
Y2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFU
cmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDdDMUMwRTQxQkZCNjBFRDAwQkQyMjU2IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI4NDE5LDYgKzI4NDI2LDggQEAKIAkJCQkwNzM2QjczMDI2MDk0QTM3MDBFMDY5
OTQgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JNaXhpbi5pZGwgKi8sCiAJCQkJMDc3QkE1N0Qy
NjBGRTczOTAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5jcHAgKi8s
CiAJCQkJMDc3QkE1N0MyNjBGRTczODAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJpdmF0ZS5oICovLAorCQkJCTA3N0JBNTg4MjYxMjZENjYwMDcyRjE5RiAvKiBNZWRpYVNlc3Np
b25Db29yZGluYXRvclN0YXRlLmggKi8sCisJCQkJMDc3QkE1OEEyNjEyNkQ2QjAwNzJGMTlGIC8q
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaWRsICovLAogCQkJCUNERERFQTI5MjUzOENE
Q0IwMEExMzAwQyAvKiBNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggKi8sCiAJCQkJQ0REREVB
MjgyNTM4Q0RDQjAwQTEzMDBDIC8qIE1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuaWRsICovLAog
CQkJCTA3MzZCNzMyMjYwOTU1NTQwMEUwNjk5NCAvKiBNZWRpYVNlc3Npb25QbGF5bGlzdE1peGlu
LmlkbCAqLywKQEAgLTI4NDUyLDggKzI4NDYxLDEyIEBACiAJCQkJQ0REREVBNEUyNTM5MTNCQzAw
QTEzMDBDIC8qIEpTTWVkaWFTZXNzaW9uQWN0aW9uSGFuZGxlci5oICovLAogCQkJCTA3MkRCQzA3
MjVEQzZFREEwMEExMzUwRSAvKiBKU01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCAqLywKIAkJ
CQkwNzJEQkMwNjI1REM2RURBMDBBMTM1MEUgLyogSlNNZWRpYVNlc3Npb25Db29yZGluYXRvci5o
ICovLAorCQkJCTA3QzE0ODJDMjYxMjk1NUUwMDc3NTgyOCAvKiBKU01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yU3RhdGUuY3BwICovLAorCQkJCTA3QzE0ODJEMjYxMjk1NUYwMDc3NTgyOCAvKiBKU01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUuaCAqLywKIAkJCQlDRERERUE0NjI1MzkxMUREMDBB
MTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmNwcCAqLywKIAkJCQlDRERERUE0
MjI1MzkxMURDMDBBMTMwMEMgLyogSlNNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlLmggKi8sCisJ
CQkJMDdDMTQ4MkIyNjEyOTU1RDAwNzc1ODI4IC8qIEpTTWVkaWFTZXNzaW9uUmVhZHlTdGF0ZS5j
cHAgKi8sCisJCQkJMDdDMTQ4MjkyNjEyOTU1QzAwNzc1ODI4IC8qIEpTTWVkaWFTZXNzaW9uUmVh
ZHlTdGF0ZS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBNZWRpYVNlc3Npb247CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtMzQwMjYsNiArMzQwMzksNyBAQAogCQkJCTA3N0JBNTc4MjYw
RkFFREIwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzdCQTU3MTI2MEY5Rjc2MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3N0JBNTdFMjYwRkVGMzYwMDcyRjE5RiAvKiBNZWRp
YVNlc3Npb25Db29yZGluYXRvclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3QzE0ODJF
MjYxMkEyMUYwMDc3NTgyOCAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTZFQ0FFNTI1QjU4Q0M0MDBCMzREQTUgLyogTWVkaWFTZXNzaW9uR3Jv
dXBJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREE5NTkzRjI0MTJCQUUwMDA5MTBF
RUYgLyogTWVkaWFTZXNzaW9uSGVscGVySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0NjBB
MjI0MTI5OTQ1MDA4MTRCRTcgLyogTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tNZWRpYVNlc3Npb25D
b29yZGluYXRvci5jcHAKaW5kZXggMjQyMTQyODE3NGFkOGI0NjMzZjAxNDc0ZDMxYjE5MDYzMGMz
MWQ4Yi4uNjU3MzMyZjdlMmMwOTk2ZDJiZDNiYTA1NjIyZGJiZDk1ZGU4ZGY1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
LmNwcApAQCAtNTksNiArNTksMTcgQEAgT3B0aW9uYWw8RXhjZXB0aW9uPiBNb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OnJlc3VsdCgpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IH0KIAordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmpvaW4oQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIG1f
Y29udGV4dC0+cG9zdFRhc2soW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKHJlc3Vs
dCgpKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Omxl
YXZlKCkKK3sKK30KKwogdm9pZCBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OnNlZWtUbyhk
b3VibGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYp
PiYmIGNhbGxiYWNrKQogewogICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklF
UiwgdGltZSk7CkBAIC0xMDksNiArMTIwLDEyIEBAIHZvaWQgTW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25QbGF5YmFja1N0YXRlCiAg
ICAgbV9zdGF0ZUNoYW5nZUxpc3RlbmVyLT5zY2hlZHVsZUNhbGxiYWNrKG1fY29udGV4dC5nZXQo
KSwgInBsYXliYWNrU3RhdGVDaGFuZ2VkIik7CiB9CiAKK3ZvaWQgTW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpjb29yZGluYXRvclN0YXRlQ2hhbmdlZChNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lCTEUoTE9HSURFTlRJRklF
Uiwgc3RhdGUpOworICAgIG1fc3RhdGVDaGFuZ2VMaXN0ZW5lci0+c2NoZWR1bGVDYWxsYmFjayht
X2NvbnRleHQuZ2V0KCksICJjb29yZGluYXRvclN0YXRlQ2hhbmdlZCIpOworfQorCiBXVEZMb2dD
aGFubmVsJiBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmxvZ0NoYW5uZWwoKSBjb25zdAog
ewogICAgIHJldHVybiBMb2dNZWRpYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tNZWRpYVNlc3Npb25Db29yZGluYXRvci5oCmluZGV4IGI0ZGRjZjUxZDFhY2IyMWJhNjRl
NmIxODJkZDc0ZGQ0MzQwY2FhOTQuLjQ3ODA0ODc2YTMxOGYyOTBlMmVlZjI1MjRkNjE5OTU3ODk0
NzI3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja01lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IuaApAQCAtNDcsNiArNDcsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJl
ZlB0cjxTdHJpbmdDYWxsYmFjaz4mJik7CiAKKyAgICBTdHJpbmcgaWRlbnRpZmllcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJNb2NrIENvb3JkaW5hdG9yIjsgfQorCisgICAgdm9pZCBqb2luKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7Cisg
ICAgdm9pZCBsZWF2ZSgpIGZpbmFsOworCiAgICAgdm9pZCBzZWVrVG8oZG91YmxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpIGZpbmFsOwogICAgIHZv
aWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYp
IGZpbmFsOwogICAgIHZvaWQgcGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxF
eGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKQEAgLTU1LDYgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPE1lZGlhUG9zaXRpb25TdGF0
ZT4mKSBmaW5hbDsKICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhU2Vzc2lvblJlYWR5
U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFTZXNzaW9u
UGxheWJhY2tTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBjb29yZGluYXRvclN0YXRlQ2hhbmdlZChN
ZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKSBmaW5hbDsKIAogICAgIGNvbnN0IGNoYXIqIGxv
Z0NsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ii
OyB9CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2
YXRlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhl
MzE2YzdlMGIwMzhmMjM1NGYwNDg4ODQ0Y2ZkYmMzOGY3ODUyMTcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHkuaAorKysgL2Rldi9udWxsCkBA
IC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQotCi0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Np
b25Db29yZGluYXRvclByaXZhdGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5Ci0gICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlUHJveHk+Ci0gICAgLCBwdWJsaWMgUmVmQ291
bnRlZDxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4gewotcHVibGljOgotICAg
IHZpcnR1YWwgfk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5KCkgPSBkZWZhdWx0
OwotCi0gICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3VibGUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHBsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25E
YXRhJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBw
b3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9u
U3RhdGU+JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBsYXliYWNr
U3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUpID0gMDsKLQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVNlc3Npb25D
b29yZGluYXRvckNsaWVudD4gY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9Ci0KLXByb3Rl
Y3RlZDoKLSAgICBleHBsaWNpdCBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eSgp
ID0gZGVmYXVsdDsKLQotICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JDbGllbnQ+IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0KLXByaXZhdGU6
Ci0gICAgV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudD4gbV9j
bGllbnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTWVkaWEvTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2
YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjJkZGRlZDBhODlmODM0OGJmN2U2ZGMyODhkYmNjMzNmY2Y1ZWM2
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFU
T1IpCisKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZS5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVBy
aXZhdGUKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5UHJpdmF0ZT4KKyAgICAsIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHlQcml2YXRlPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eVByaXZhdGUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBpZGVudGlmaWVyKCkgY29uc3QgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHNlZWtUbyhkb3Vi
bGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYp
PiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
Jik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhY2soY29uc3QgU3RyaW5nJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJik+JiYpID0g
MDsKKworICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpNZWRpYVBvc2l0aW9uU3RhdGU+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZWFkeVN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25SZWFkeVN0YXRlKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
blBsYXliYWNrU3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29vcmRpbmF0b3JTdGF0ZUNo
YW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSkgPSAwOworCisgICAg
dmlydHVhbCB2b2lkIHNldENsaWVudChXZWFrUHRyPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yQ2xpZW50PiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKworcHJvdGVjdGVk
OgorICAgIGV4cGxpY2l0IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlKCkgPSBk
ZWZhdWx0OworCisgICAgV2Vha1B0cjxXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvckNs
aWVudD4gY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworcHJpdmF0ZToKKyAg
ICBXZWFrUHRyPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50PiBtX2NsaWVu
dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHku
Y3BwCmluZGV4IGVjMmZkMWY2MDYwMThjMjk3NWQ3YzI0NTBiMjc4MDE4Y2QzZGVjNmUuLjcyN2Zl
MmQ3NjMxZjRlNWRlNzQxN2Y2MzJkMTFjNjM5YTY0YjJlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTl9DT09SRElOQVRPUikKIAotI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yUHJpdmF0ZVByb3h5LmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eVByaXZhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5LmgiCkBAIC0zOSwxMiArMzksMTIgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLVJlZlB0cjxSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5PiBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpjcmVhdGUoV2ViUGFnZVBy
b3h5JiB3ZWJQYWdlUHJveHksIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94
eT4mJiBwcml2YXRlQ29vcmRpbmF0b3IpCitSZWZQdHI8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eT4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Y3JlYXRlKFdl
YlBhZ2VQcm94eSYgd2ViUGFnZVByb3h5LCBSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eVByaXZhdGU+JiYgcHJpdmF0ZUNvb3JkaW5hdG9yKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkod2ViUGFnZVByb3h5LCBXVEZN
b3ZlKHByaXZhdGVDb29yZGluYXRvcikpKTsKIH0KIAotUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3JQcm94eTo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eShXZWJQYWdlUHJv
eHkmIHdlYlBhZ2VQcm94eSwgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5
PiYmIHByaXZhdGVDb29yZGluYXRvcikKK1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHk6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5JiB3ZWJQ
YWdlUHJveHksIFJlZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5UHJpdmF0ZT4mJiBwcml2
YXRlQ29vcmRpbmF0b3IpCiAgICAgOiBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkpCiAgICAg
LCBtX3ByaXZhdGVDb29yZGluYXRvcihXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvcikpCiAgICAg
LCBtX2xvZ2dlcihtX3dlYlBhZ2VQcm94eS5sb2dnZXIoKSkKQEAgLTU4LDYgKzU4LDIzIEBAIFJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6On5SZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5KCkKICAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkucmVtb3ZlTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpKTsKIH0KIAor
dm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Ojpqb2luKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKQoreworICAgIGF1
dG8gaWRlbnRpZmllciA9IExPR0lERU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhpZGVudGlmaWVy
KTsKKworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5qb2luKFtpZGVudGlmaWVyXSAoY29uc3Qg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAgIEFM
V0FZU19MT0coaWRlbnRpZmllciwgImNvbXBsZXRpb24iKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvclByb3h5OjpsZWF2ZSgpCit7CisgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSKTsKKworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5sZWF2ZSgpOworfQogCiB2
b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OmNvb3JkaW5hdGVTZWVrVG8o
ZG91YmxlIHRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewpAQCAtMTQxLDYgKzE1OCwxMiBAQCB2
b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OnNldFNlc3Npb25UcmFjayhj
b25zdCBTdHJpbmcmIHRyYWNrSWQsCiAgICAgbV93ZWJQYWdlUHJveHkuc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6U2V0U2Vzc2lvblRy
YWNrIHsgdHJhY2tJZCB9LCBjYWxsYmFjayk7CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eTo6Y29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZSBzdGF0ZSkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworICAgIG1fcHJpdmF0ZUNvb3JkaW5hdG9yLT5jb29yZGluYXRvclN0YXRlQ2hhbmdl
ZChzdGF0ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
b3h5LmgKaW5kZXggZTllZmFkYzk3MzBiNjY3NjgxNDMwOWE3NDhhZGJmOTg5Mzg0YzhhMC4uMDY4
YTVmNTZkZDRkYmI2NjY1NTFhN2Y2MTk4M2I4ZTM1NzRkMDI1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJveHkuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT05fQ09PUkRJTkFUT1IpCiAKLSNpbmNsdWRlICJNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGVQcm94eS5oIgorI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ2LDE5ICs0NiwxOSBA
QCBjbGFzcyBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5CiAgICAgLCBwdWJsaWMg
V2ViQ29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDbGllbnQgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSYsIFJlZjxNZWRpYVNlc3Npb25D
b29yZGluYXRvclByaXZhdGVQcm94eT4mJik7CisgICAgc3RhdGljIFJlZjxSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5JiwgUmVmPE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlPiYmKTsKICAgICB+UmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eSgpOwogCi0gICAgdm9pZCBzZWVrVG8oZG91YmxlKTsKLSAgICB2b2lk
IHBsYXkoKTsKLSAgICB2b2lkIHBhdXNlKCk7Ci0gICAgdm9pZCBzZXRUcmFjayhjb25zdCBTdHJp
bmcmKTsKKyAgICB2b2lkIHNlZWtUbyhkb3VibGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOworICAgIHZvaWQgcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
KyAgICB2b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZv
aWQgc2V0VHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAKICAgICB1c2luZyBNZWRpYVNlc3Npb25Db29yZGluYXRvckNsaWVudDo6d2Vha1B0ckZh
Y3Rvcnk7CiAgICAgdXNpbmcgV2Vha1ZhbHVlVHlwZSA9IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
Q2xpZW50OjpXZWFrVmFsdWVUeXBlOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPE1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yUHJpdmF0ZVByb3h5PiYmKTsKKyAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5UHJpdmF0ZT4mJik7CiAKICAgICB1c2luZyBDb29yZGluYXRlQ29tcGxldGlv
bkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGEmKT47CiAKQEAgLTY2LDYgKzY2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAg
ICAgLy8gUmVjZWl2ZXJzLgorICAgIHZvaWQgam9pbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJik7CisgICAgdm9pZCBsZWF2ZSgpOwogICAg
IHZvaWQgY29vcmRpbmF0ZVNlZWtUbyhkb3VibGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYmKTsKICAgICB2b2lkIGNvb3JkaW5hdGVQbGF5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPiYm
KTsKICAgICB2b2lkIGNvb3JkaW5hdGVQYXVzZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT4mJik7CkBAIC03Myw2ICs3NSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBwb3NpdGlvblN0YXRlQ2hhbmdlZChPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBv
c2l0aW9uU3RhdGU+KTsKICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvblJlYWR5U3RhdGUpOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSk7CisgICAgdm9pZCBjb29yZGluYXRvclN0YXRl
Q2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRvclN0YXRlKTsKIAogICAgIC8v
IE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ2xpZW50CiAgICAgdm9pZCBzZWVrU2Vzc2lvblRvVGlt
ZShkb3VibGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwpAQCAtODEs
NyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2Vzc2lvblRyYWNrKGNvbnN0IFN0cmlu
ZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+KSBmaW5hbDsKIAogICAgIFdlYlBhZ2VQ
cm94eSYgbV93ZWJQYWdlUHJveHk7Ci0gICAgUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZVByb3h5PiBtX3ByaXZhdGVDb29yZGluYXRvcjsKKyAgICBSZWY8TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eVByaXZhdGU+IG1fcHJpdmF0ZUNvb3JkaW5hdG9yOwogICAgIFJlZjxjb25z
dCBMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCA5NmI2MGQzOTg4MTFiN2Q4MjUyZWJhOGZlOTBmYWMxMzA2ZTVkYmVhLi44N2Q1Njc1MWNm
YjZhYjkxYTE3YmIxZjI1MWNhZjJkZjk3ODdjNjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDEwIEBACiAKIG1l
c3NhZ2VzIC0+IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291bnRl
ZCB7CiAKKyAgICBKb2luKCkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVy
cm9yKSBBc3luYworCisgICAgTGVhdmUoKQorCiAgICAgQ29vcmRpbmF0ZVNlZWtUbyhkb3VibGUg
dGltZSkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IGVycm9yKSBBc3luYwog
CiAgICAgQ29vcmRpbmF0ZVBsYXkoKSAtPiAoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0
YT4gZXJyb3IpIEFzeW5jCkBAIC0zOSw2ICs0Myw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgUmVhZHlTdGF0ZUNo
YW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUgc3RhdGUp
OwogCiAgICAgUGxheWJhY2tTdGF0ZUNoYW5nZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvblBsYXliYWNrU3RhdGUgc3RhdGUpOworCisgICAgQ29vcmRpbmF0b3JTdGF0ZUNoYW5n
ZWQoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yU3RhdGUgc3Rh
dGUpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGRlZTYxNzU4NWFmNGM4OGZjZmRiNWFlNmU2MzBhMGI0MjdkZjAwYWIuLjc1OGEwZjM1
YWE1OTc5MzkwN2E5MTEwNTg3ZTI5ZWNiOTliMWYxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjk3LDcgKzI5Nyw3IEBACiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9SKQotI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJpdmF0ZVByb3h5LmgiCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3JQcm94eVByaXZhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
clByb3h5LmgiCiAjZW5kaWYKIApAQCAtMTAzODMsMTEgKzEwMzgzLDExIEBAIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5IFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNT
YW5kYm94RXh0ZW5zCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQotdm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJl
ZjxNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eT4mJiBwcml2YXRlQ29vcmRpbmF0
b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vha1B0cjxSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByb3h5Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6
Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHlQcml2YXRlPiYmIHByaXZhdGVDb29yZGluYXRvciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWFrUHRyPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIW1fbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94
eSk7CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwg
cHJpdmF0ZUNvb3JkaW5hdG9yID0gV1RGTW92ZShwcml2YXRlQ29vcmRpbmF0b3IpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHN1Y2Nlc3MpIG11
dGFibGUgeworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IocHJpdmF0ZUNvb3JkaW5hdG9yLT5pZGVudGlmaWVyKCkp
LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByaXZhdGVDb29yZGluYXRvciA9IFdU
Rk1vdmUocHJpdmF0ZUNvb3JkaW5hdG9yKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKIAogICAgICAgICBpZiAo
IXdlYWtUaGlzIHx8ICFzdWNjZXNzKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7
IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4YWZhYTc4YzJj
ZDI4NGE5NTIyNTBiMzU0OTE1YjY1YjIyNTIyMDE3Li5lYTliMGMxNGExZGM2ZGE4ODc0NGM2YWYw
NjM3ZmU5NDEyNGYxM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMzI5LDcgKzMyOSw3IEBAIGNsYXNzIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBO
YXRpdmVXZWJNb3VzZUV2ZW50OwogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKIGNsYXNzIFBh
Z2VDbGllbnQ7Ci1jbGFzcyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGVQcm94eTsKK2Ns
YXNzIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlOwogY2xhc3MgUHJvdmlzaW9u
YWxQYWdlUHJveHk7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVIb3N0OwogY2xhc3MgUmVtb3RlTGF5
ZXJUcmVlU2Nyb2xsaW5nUGVyZm9ybWFuY2VEYXRhOwpAQCAtMTg4OCw3ICsxODg4LDcgQEAgcHVi
bGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKLSAg
ICB2b2lkIGNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxNZWRpYVNlc3Npb25Db29y
ZGluYXRvclByaXZhdGVQcm94eT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWFrUHRyPFJl
bW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk+KT4mJik7CisgICAgdm9pZCBjcmVhdGVN
ZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVBy
aXZhdGU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vha1B0cjxSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvclByb3h5Pik+JiYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGFiM2Y3MzI5ZWMxNGJkOWU2NGMyOWY4MmNiMTYxYjYxYjM3YmVlNjIuLmMyYTVmNTA5NjA2Mjcx
ZjQzMzE3YmE1YmY4MjZiMmFmZWFjZTFkOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM5NCw3ICsyMzk0LDcgQEAKIAkJMDc0RTc2
MDExREY3MDc1RDAwRDMxOEVDIC8qIE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9u
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZFODg0RDFBMTNDQURGMDA1RTkw
RkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVBJQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc2RTg4NEYxQTEzQ0JDNjAwNUU5MEZDIC8qIEFQSUluamVjdGVkQnVuZGxlUGFnZUNvbnRl
eHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUluamVj
dGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTA3N0JBNTcwMjYwRThGNjMwMDcyRjE5RiAvKiBNZWRpYVNlc3Npb25Db29yZGluYXRv
clByaXZhdGVQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25Db29yZGluYXRvclBy
aXZhdGVQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzdCQTU3MDI2MEU4
RjYzMDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eVByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzEzMTIz
OUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3OTIzMTMyMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTI2MCw3ICsxMTI2MCw3IEBACiAJCQkJQ0Q0
NTcwREQyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkuY3BwICovLAogCQkJCUNENDU3MERCMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmggKi8sCiAJCQkJQ0Q0NTcwREMyNDQ0Q0E1ODAwQTNEQ0VC
IC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4gKi8sCi0J
CQkJMDc3QkE1NzAyNjBFOEY2MzAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJp
dmF0ZVByb3h5LmggKi8sCisJCQkJMDc3QkE1NzAyNjBFOEY2MzAwNzJGMTlGIC8qIE1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yUHJveHlQcml2YXRlLmggKi8sCiAJCQkJMDc5NEI0QUUyNDQ1MjRCMDAw
MDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyLmNwcCAqLywKIAkJCQkwNzk0QjRBQzI0NDUxQkI5
MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXIuaCAqLywKIAkJCQkwNzM2Qjc1QzI2MEQ0QTRF
MDBFMDY5OTQgLyogUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eS5jcHAgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRp
YVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IDQ5MDQ2YzJk
ZWNiYjYxMDZlYjhlY2QxZTE3ZDU0MzVjMjY2MDVjYTYuLjBjYzNmODFjZjFmNGE2YjU5YzYzNjg3
YzZiMjI5N2VmNWQyYjQ4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9N
ZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IuY3BwCkBAIC00NSwxMyArNDUsMTQgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcj4gUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0
ZShXZWJQYWdlJiBwYWdlKQorUmVmPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UsIGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcihwYWdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVt
b3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IocGFnZSwgaWRlbnRpZmllcikpOwogfQogCi1SZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Io
V2ViUGFnZSYgcGFnZSkKK1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpSZW1vdGVNZWRp
YVNlc3Npb25Db29yZGluYXRvcihXZWJQYWdlJiBwYWdlLCBjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIpCiAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQog
ewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9wYWdlLmlkZW50aWZpZXIoKSwgKnRoaXMpOwogfQpAQCAtNjEsNiArNjIsMjkgQEAgUmVtb3Rl
TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I6On5SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigp
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6am9pbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OkV4
Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCit7CisgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShM
T0dJREVOVElGSUVSKTsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpKb2luIHsgfSwgW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBl
eGNlcHRpb24pIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAg
ICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChleGNlcHRpb24pIHsKKyAgICAgICAg
ICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IGV4Y2VwdGlvbi0+Y29kZSwgV1RGTW92ZShleGNlcHRp
b24tPm1lc3NhZ2UpIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgY2FsbGJhY2soeyB9KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVNlc3Np
b25Db29yZGluYXRvcjo6bGVhdmUoKQoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpMZWF2ZSB7IH0sIDApOworfQorCiB2b2lk
IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxs
YmFjaykKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIHRpbWUp
OwpAQCAtMTUxLDYgKzE3NSwxMiBAQCB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
OjpwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25QbAogICAgIG1fcGFn
ZS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpQbGF5
YmFja1N0YXRlQ2hhbmdlZCB7IHN0YXRlIH0sIDApOwogfQogCit2b2lkIFJlbW90ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yOjpjb29yZGluYXRvclN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNl
c3Npb25Db29yZGluYXRvclN0YXRlIHN0YXRlKQoreworICAgIEFMV0FZU19MT0dfSUZfUE9TU0lC
TEUoTE9HSURFTlRJRklFUiwgc3RhdGUpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5OjpDb29yZGluYXRvclN0YXRlQ2hhbmdlZCB7
IHN0YXRlIH0sIDApOworfQorCiB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpz
ZWVrU2Vzc2lvblRvVGltZShkb3VibGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExP
R0lERU5USUZJRVIsIHRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL01lZGlhU2Vzc2lvbi9SZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
ci5oCmluZGV4IDQ1OGJlNDNjZGFiZDMxN2I0MzM4YTFjOWE4M2U4M2JiOTkxOGZlZTMuLjJhNmIw
OWNiMWYzM2NmNjAxODQxMmRlMDEzNzU1NDk5NDdmOTcxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmgKQEAgLTQ0LDExICs0NCwxMSBAQCBjbGFzcyBXZWJQYWdl
OwogY2xhc3MgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgZmluYWwgOiBwdWJsaWMgV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlICwgcHVibGljIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yPiBjcmVhdGUoV2ViUGFnZSYp
OworICAgIHN0YXRpYyBSZWY8UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3I+IGNyZWF0ZShX
ZWJQYWdlJiwgY29uc3QgU3RyaW5nJik7CiAgICAgflJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3IoV2ViUGFnZSYpOworICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yKFdlYlBhZ2UmLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgZmluYWw7CkBAIC02MCw2ICs2MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRT
ZXNzaW9uVHJhY2soY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAKICAgICAvLyBNZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGUgb3ZlcnJpZGVzLgor
ICAgIFN0cmluZyBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CisgICAgdm9pZCBqb2luKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29y
ZTo6RXhjZXB0aW9uPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBsZWF2ZSgpIGZpbmFsOwogICAg
IHZvaWQgc2Vla1RvKGRvdWJsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJD
b3JlOjpFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHBsYXkoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIHBhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6RXhj
ZXB0aW9uPiYmKT4mJikgZmluYWw7CkBAIC02OCwxMSArNzEsMTMgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBvc2l0aW9uU3RhdGVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUG9z
aXRpb25TdGF0ZT4mKSBmaW5hbDsKICAgICB2b2lkIHJlYWR5U3RhdGVDaGFuZ2VkKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvblJlYWR5U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNo
YW5nZWQoV2ViQ29yZTo6TWVkaWFTZXNzaW9uUGxheWJhY2tTdGF0ZSkgZmluYWw7CisgICAgdm9p
ZCBjb29yZGluYXRvclN0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29yZGluYXRv
clN0YXRlKSBmaW5hbDsKIAogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IHsg
cmV0dXJuICJSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvciI7IH0KICAgICBXVEZMb2dDaGFu
bmVsJiBsb2dDaGFubmVsKCkgY29uc3Q7CiAKICAgICBXZWJQYWdlJiBtX3BhZ2U7CisgICAgU3Ry
aW5nIG1faWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3OTJkMzRjMTEwODc1
OTkwMTMzMWZhYjY5OGE4NzI2NDViM2VlNjI4Li4zMTMxM2ZhOWM2OWY1MTFiNGY3YmUxM2ZlZDE5
MjljYzdiM2M5ZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtNzM4Nyw3ICs3Mzg3LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXN0b3JlQXBwSGln
aGxpZ2h0cyhjb25zdCBWZWN0b3I8U2hhcmVkTWVtb3J5OjpJUENIYW5kbGU+JiYgbWVtb3IKICNl
bmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCi12b2lkIFdlYlBh
Z2U6OmNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OmNyZWF0ZU1lZGlhU2Vz
c2lvbkNvb3JkaW5hdG9yKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBkb2N1bWVu
dCA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3Vt
ZW50IHx8ICFkb2N1bWVudC0+ZG9tV2luZG93KCkpIHsKQEAgLTczOTYsNyArNzM5Niw3IEBAIHZv
aWQgV2ViUGFnZTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wCiAgICAgfQogCiAgICAgYXV0byYgc2Vzc2lvbiA9IE5hdmln
YXRvck1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uKGRvY3VtZW50LT5kb21XaW5kb3coKS0+bmF2
aWdhdG9yKCkpOwotICAgIGF1dG8gY29vcmRpbmF0b3IgPSBSZW1vdGVNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6Y3JlYXRlKCp0aGlzKTsKKyAgICBhdXRvIGNvb3JkaW5hdG9yID0gUmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3I6OmNyZWF0ZSgqdGhpcywgaWRlbnRpZmllcik7CiAgICAgbV9y
ZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvciA9IGNvb3JkaW5hdG9yLnB0cigpOwogICAgIG1f
bWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IgPSBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6Y3JlYXRl
KGNvb3JkaW5hdG9yLmdldCgpKTsKICAgICBzZXNzaW9uLnNldENvb3JkaW5hdG9yKG1fbWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3IuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IGM1NGE2MThkYjQ2YTEyZGUwMWE1ODYzNDZhNjZlOTE3Zjc0Y2Ey
ZGIuLmUwYjVlYzFlZTUzZjgxYTkyNjFmNDZiYWI2NDNjY2UxZWQ3NzY0ZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0MTMsNyArMTQxMyw3IEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1Ip
Ci0gICAgdm9pZCBjcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlm
CiAKICAgICB2b2lkIHNldExhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoYm9vbCB3YXNBcHBCb3Vu
ZCkgeyBtX2xhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQgPSB3YXNBcHBCb3VuZDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggYzhlNjQ2YWVkZWJjNGFhMTIwYTNhYmU5ZGFkNzYxODFlNDE5ZGE2ZS4uZTU4Zjk2Nzk3
NWIxMWFjNjU2NTczOThjZDQ4MDE3ZGE0NTE0MTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02MzUsNyArNjM1
LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBMYXN0TmF2aWdhdGlvbldhc0FwcEJv
dW5kKCkgLT4gKGJvb2wgd2FzQXBwQm91bmQpIEFzeW5jCiAKICNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTl9DT09SRElOQVRPUikKLSAgICBDcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcigpIC0+
IChib29sIHN1Y2Nlc3MpIEFzeW5jCisgICAgQ3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Io
U3RyaW5nIGlkZW50aWZpZXIpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEyNmI5ZjEwYWIyM2NkOTU3ODRmYzhj
NjQ4Y2FmNzliZDkxYTA2ZTYuLjY4YTI5YWI5ZDJiOWZkYzRjYWY2NDk5MjEwNTQzYjc2NDZjZjE0
MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0zMSAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yIHNob3VsZCBoYXZlIGpvaW4gYW5kIGxlYXZlIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzk1NQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzYwMjE1ODg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIG1lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5o
dG1sOgorCiAyMDIxLTAzLTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbiBjYXNlIFdlYlJUQyBWVEIgZGVjb2RlciByZXR1cm5zIGEgbnVsbCBmcmFtZSwg
bWFyayB0aGUgZGVjb2RlciBhcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLWV4cGVjdGVkLnR4dAppbmRl
eCA5NDA2ZjQ4MmY0ODljNzI2ZjQ3Mjg4MGVlNjY3NmY5MjRkMDVlNTY0Li4xMjk0YjNhMzRkZGM0
NDljN2UxNDIyZGNhZjc2NTUyN2Y0YmUzY2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zZXNzaW9uL21vY2stY29vcmRpbmF0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci1leHBlY3RlZC50eHQK
QEAgLTcsMjggKzcsMTAwIEBAIFJVTihpbnRlcm5hbHMucmVnaXN0ZXJNb2NrTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3IoY2hhbmdlSGFuZGxlcikpCiBFVkVOVChjb29yZGluYXRvcmNoYW5nZSkKIEVY
UEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yICE9ICd1bmRlZmluZWQn
KSBPSwogCisqKiBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnN0YXRlIHNob3Vs
ZCBiZSAid2FpdGluZyIgaW50aXRpYWxseQorRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24uY29vcmRpbmF0b3Iuc3RhdGUgPT0gJ3dhaXRpbmcnKSBPSworCisqKiBUZXN0IHRoYXQgd2hl
biBjb29yZGluYXRvciBtZXRob2RzIGZhaWwgYW5kIHByb21pc2VzIHJlamVjdCBiZWZvcmUgbWVk
aWFTZXNzaW9uLmpvaW4oKSBpcyBjYWxsZWQuCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRp
YVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0bHkg
T0sKKworUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBh
dXNlKCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworCitSVU4ocHJvbWlzZSA9IG5h
dmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKSkKK1Byb21pc2UgcmVq
ZWN0ZWQgY29ycmVjdGx5IE9LCisKKyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gZG9lcyBub3Qg
bm90aWZ5IGNvb3JkaW5hdG9yIHdoZW4gc3RhdGVzIGNoYW5nZSBiZWZvcmUgbWVkaWFTZXNzaW9u
LmpvaW4oKSBpcyBjYWxsZWQuCisqIFBvc2l0aW9uU3RhdGUKK1JVTihuYXZpZ2F0b3IubWVkaWFT
ZXNzaW9uLnNldFBvc2l0aW9uU3RhdGUoeyBkdXJhdGlvbjogMSwgcGxheWJhY2tSYXRlOiAxLCBw
b3NpdGlvbjogMCB9KSkKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCisKKyogUmVh
ZHlTdGF0ZQorRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAn
aGF2ZU5vdGhpbmcnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9
ICdoYXZlTWV0YWRhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVD
VEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVNZXRhZGF0YScp
IE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hh
dmVNZXRhZGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0g
J2hhdmVDdXJyZW50RGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworRVhQ
RUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUN1cnJlbnRE
YXRhJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9
PSAnaGF2ZUN1cnJlbnREYXRhJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5
U3RhdGUgPSAnaGF2ZUZ1dHVyZURhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykg
T0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVG
dXR1cmVEYXRhJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlT
dGF0ZSA9PSAnaGF2ZUZ1dHVyZURhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
cmVhZHlTdGF0ZSA9ICdoYXZlRW5vdWdoRGF0YScpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09
ICcnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAn
aGF2ZUVub3VnaERhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5y
ZWFkeVN0YXRlID09ICdoYXZlRW5vdWdoRGF0YScpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vz
c2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVOb3RoaW5nJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2Ug
PT0gJycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09
ICdoYXZlTm90aGluZycpIE9LCisKKyogUGxheWJhY2tTdGF0ZQorRVhQRUNURUQgKG5hdmlnYXRv
ci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAnbm9uZScpIE9LCitSVU4obmF2aWdhdG9y
Lm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0gJ3BhdXNlZCcpCitFWFBFQ1RFRCAobGF0ZXN0
Q2hhbmdlID09ICcnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJh
Y2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKKworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Np
b24ucGxheWJhY2tTdGF0ZSA9PSAncGF1c2VkJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnBsYXliYWNrU3RhdGUgPSAncGxheWluZycpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09
ICcnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9
PSAncGxheWluZycpIE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXli
YWNrU3RhdGUgPT0gJ3BsYXlpbmcnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxh
eWJhY2tTdGF0ZSA9ICdub25lJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitF
WFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdub25lJykg
T0sKKworCisKKyoqIHNlc3Npb24uam9pbigpIHNob3VsZCByZWplY3Qgb24gZmFpbHVyZQorUlVO
KGludGVybmFscy5zZXRNb2NrTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JDb21tYW5kc1Nob3VsZEZh
aWwodHJ1ZSkpCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0
b3Iuam9pbigpKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0bHkgT0sKK0VYUEVDVEVEIChuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnN0YXRlID09ICd3YWl0aW5nJykgT0sKK0VY
UEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCisKK1JVTihpbnRlcm5hbHMuc2V0TW9ja01l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKGZhbHNlKSkKK1JVTihwcm9t
aXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5qb2luKCkpCitQcm9taXNl
IHJlc29sdmVkIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRv
ci5zdGF0ZSA9PSAnam9pbmVkJykgT0sKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ2Nvb3Jk
aW5hdG9yU3RhdGVDaGFuZ2VkJykgT0sKKwogKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3Ig
bWV0aG9kcyBzdWNjZWVkLCBwcm9taXNlcyByZXNvbHZlIGFuZCBtZWRpYVNlc3Npb24gYWN0aW9u
IGhhbmRsZXJzIGFyZSBjYWxsZWQuCi1UZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRp
bmF0b3IucGxheSgpCi1BQ1RJT04ocGxheSkKLUVYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJ3Bs
YXknKSBPSworUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9y
LnBsYXkoKSkKK1Byb21pc2UgcmVzb2x2ZWQgT0sKIAotVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLmNvb3JkaW5hdG9yLnBhdXNlKCkKLUFDVElPTihwYXVzZSkKLUVYUEVDVEVEIChsYXRlc3RB
Y3Rpb24gPT0gJ3BhdXNlJykgT0sKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5jb29yZGluYXRvci5wYXVzZSgpKQorUHJvbWlzZSByZXNvbHZlZCBPSwogCi1UZXN0IG5hdmln
YXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla3RvKCkKLUFDVElPTihzZWVrdG8pCi1F
WFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICdzZWVrdG8nKSBPSworUlVOKHByb21pc2UgPSBuYXZp
Z2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnNlZWtUbygxMCkpCitQcm9taXNlIHJlc29s
dmVkIE9LCiAKLSoqIFRlc3QgdGhhdCB3aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgc3VjY2VlZCwg
cHJvbWlzZXMgcmVqZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBub3Qg
Y2FsbGVkLgotVGVzdCBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKQot
RVhQRUNURUQgKGxhdGVzdEFjdGlvbiA9PSAnJykgT0sKKyoqIFRlc3QgdGhhdCB3aGVuIGNvb3Jk
aW5hdG9yIG1ldGhvZHMgZmFpbCwgcHJvbWlzZXMgcmVqZWN0IGFuZCBtZWRpYVNlc3Npb24gYWN0
aW9uIGhhbmRsZXJzIGFyZSBub3QgY2FsbGVkLgorUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXkoKSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5
IE9LCiAKLVRlc3QgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpCi1F
WFBFQ1RFRCAobGF0ZXN0QWN0aW9uID09ICcnKSBPSworUlVOKHByb21pc2UgPSBuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBhdXNlKCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJl
Y3RseSBPSwogCi1UZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla3Rv
KCkKLUVYUEVDVEVEIChsYXRlc3RBY3Rpb24gPT0gJycpIE9LCitSVU4ocHJvbWlzZSA9IG5hdmln
YXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKSkKK1Byb21pc2UgcmVqZWN0
ZWQgY29ycmVjdGx5IE9LCiAKICoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29v
cmRpbmF0b3Igd2hlbiBwb3NpdGlvblN0YXRlIGNoYW5nZXMuCiBSVU4obmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5zZXRQb3NpdGlvblN0YXRlKHsgZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwg
cG9zaXRpb246IDAgfSkpCkBAIC02MywxOSArMTM1LDg2IEBAIEVYUEVDVEVEIChuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sKICoqIFRlc3QgdGhh
dCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5YmFja1N0YXRlIGNo
YW5nZXMuCiBFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09
ICdub25lJykgT0sKIFJVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAn
cGF1c2VkJykKLUVYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ3BsYXliYWNrU3RhdGVDaGFuZ2Vk
JykgT0sKIEVYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0g
J3BhdXNlZCcpIE9LCiAKIEVYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNr
U3RhdGUgPT0gJ3BhdXNlZCcpIE9LCiBSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFj
a1N0YXRlID0gJ3BsYXlpbmcnKQotRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAncGxheWJhY2tT
dGF0ZUNoYW5nZWQnKSBPSwogRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJh
Y2tTdGF0ZSA9PSAncGxheWluZycpIE9LCiAKIEVYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BsYXlpbmcnKSBPSwogUlVOKG5hdmlnYXRvci5tZWRpYVNl
c3Npb24ucGxheWJhY2tTdGF0ZSA9ICdub25lJykKLUVYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0g
J3BsYXliYWNrU3RhdGVDaGFuZ2VkJykgT0sKIEVYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNz
aW9uLnBsYXliYWNrU3RhdGUgPT0gJ25vbmUnKSBPSwogCiAKKworKiogTGVhdmUgdGhlIHNlc3Np
b24KK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLmxlYXZlKCkpCitFWFBF
Q1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5zdGF0ZSA9PSAnY2xvc2Vk
JykgT0sKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJ2Nvb3JkaW5hdG9yU3RhdGVDaGFuZ2Vk
JykgT0sKKworKiogVGVzdCB0aGF0IHdoZW4gY29vcmRpbmF0b3IgbWV0aG9kcyBmYWlsIGFuZCBw
cm9taXNlcyByZWplY3QgYWZ0ZXIgbWVkaWFTZXNzaW9uLmxlYXZlKCkgaGFzIGJlZW4gY2FsbGVk
LgorUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnBsYXko
KSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5IE9LCisKK1JVTihwcm9taXNlID0gbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5wYXVzZSgpKQorUHJvbWlzZSByZWplY3RlZCBj
b3JyZWN0bHkgT0sKKworUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3Jk
aW5hdG9yLnNlZWtUbygxMCkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworCisqKiBU
ZXN0IHRoYXQgbWVkaWFTZXNzaW9uIGRvZXMgbm90IG5vdGlmeSBjb29yZGluYXRvciB3aGVuIHN0
YXRlcyBjaGFuZ2UgYWZ0ZXIgbWVkaWFTZXNzaW9uLmxlYXZlKCkgaGFzIGJlZW4gY2FsbGVkLgor
KiBQb3NpdGlvblN0YXRlCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5zZXRQb3NpdGlvblN0
YXRlKHsgZHVyYXRpb246IDEsIHBsYXliYWNrUmF0ZTogMSwgcG9zaXRpb246IDAgfSkpCitFWFBF
Q1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworCisqIFJlYWR5U3RhdGUKK0VYUEVDVEVEIChu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVOb3RoaW5nJykgT0sKK1JV
TihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZU1ldGFkYXRhJykKK0VY
UEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlh
U2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTWV0YWRhdGEnKSBPSworCitFWFBFQ1RFRCAobmF2
aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlTWV0YWRhdGEnKSBPSworUlVO
KG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdoYXZlQ3VycmVudERhdGEnKQor
RVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVDdXJyZW50RGF0YScpIE9LCisKK0VYUEVDVEVE
IChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVDdXJyZW50RGF0YScp
IE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID0gJ2hhdmVGdXR1cmVE
YXRhJykKK0VYUEVDVEVEIChsYXRlc3RDaGFuZ2UgPT0gJycpIE9LCitFWFBFQ1RFRCAobmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlID09ICdoYXZlRnV0dXJlRGF0YScpIE9LCisKK0VY
UEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVGdXR1cmVE
YXRhJykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPSAnaGF2ZUVu
b3VnaERhdGEnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVEIChu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJlYWR5U3RhdGUgPT0gJ2hhdmVFbm91Z2hEYXRhJykgT0sK
KworRVhQRUNURUQgKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZUVu
b3VnaERhdGEnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICdo
YXZlTm90aGluZycpCitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworRVhQRUNURUQg
KG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9PSAnaGF2ZU5vdGhpbmcnKSBPSwor
CisqIFBsYXliYWNrU3RhdGUKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXli
YWNrU3RhdGUgPT0gJ25vbmUnKSBPSworUlVOKG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucGxheWJh
Y2tTdGF0ZSA9ICdwYXVzZWQnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VY
UEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BhdXNlZCcp
IE9LCisKK0VYUEVDVEVEIChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0g
J3BhdXNlZCcpIE9LCitSVU4obmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID0g
J3BsYXlpbmcnKQorRVhQRUNURUQgKGxhdGVzdENoYW5nZSA9PSAnJykgT0sKK0VYUEVDVEVEIChu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPT0gJ3BsYXlpbmcnKSBPSworCitF
WFBFQ1RFRCAobmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlID09ICdwbGF5aW5n
JykgT0sKK1JVTihuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAnbm9uZScp
CitFWFBFQ1RFRCAobGF0ZXN0Q2hhbmdlID09ICcnKSBPSworRVhQRUNURUQgKG5hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucGxheWJhY2tTdGF0ZSA9PSAnbm9uZScpIE9LCisKKworCisqKiBJdCBzaG91
bGQgbm90IGJlIHBvc3NpYmxlIHRvIGpvaW4gb3IgbGVhdmUgYSBjbG9zZWQgc2Vzc2lvbgorUlVO
KHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLmpvaW4oKSkKK1By
b21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5IE9LCitURVNUKG5hdmlnYXRvci5tZWRpYVNlc3Npb24u
Y29vcmRpbmF0b3IubGVhdmUoKSkgVEhST1dTKEludmFsaWRTdGF0ZUVycm9yOiBVbmFibGUgdG8g
bGVhdmUgd2hlbiBzdGF0ZSBpcyBjbG9zZWQpIE9LCisKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNlc3Npb24vbW9jay1jb29yZGluYXRvci5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwK
aW5kZXggNTc4MTE0YThiNTMwZjRkZDk5YzMxMThkOWE1NzJmZWI1ZTVjMTc0ZC4uOGI4NDdhMzll
NzJhOWI0MGVmYTdkYTIxOTc2YTYwYjk4YzBhNWJiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtc2Vzc2lvbi9tb2NrLWNvb3JkaW5hdG9yLmh0bWwKQEAgLTEsMyArMSw0
IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRW5h
YmxlZD10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CkBAIC01LDYg
KzYsMTYgQEAKICAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdD4KIAorICAgIGxldCB3YWl0aW5nID0gZmFsc2U7CisgICAgYXN5bmMgZnVuY3Rp
b24gd2FpdEZvckRlYnVnZ2VyKCkKKyAgICB7CisgICAgICAgIGxldCBjb3VudGVyID0gMDsKKyAg
ICAgICAgd2hpbGUgKHdhaXRpbmcpIHsKKyAgICAgICAgICAgIGF3YWl0IHNsZWVwRm9yKDEwMCk7
CisgICAgICAgICAgICBjb3VudGVyKys7CisgICAgICAgIH0KKyAgICB9CisKICAgICBmdW5jdGlv
biBjaGFuZ2VIYW5kbGVyKGNoYW5nZSkKICAgICB7CiAgICAgICAgIHdpbmRvdy5sYXRlc3RDaGFu
Z2UgPSBjaGFuZ2U7CkBAIC0yMCwxMiArMzEsMTYgQEAKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIGNvbnN0IGNoYW5nZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKLSAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uYWRkRXZlbnRMaXN0
ZW5lcignY29vcmRpbmF0b3JjaGFuZ2UnLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQudHlwZX0pYCk7Ci0gICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICBsZXQgY2hhbmdlUHJvbWlzZSA9ICgpID0+IHsKKyAgICAgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgICAgICBuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2Nvb3JkaW5hdG9yY2hhbmdlJywgKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRVZFTlQoJHtldmVu
dC50eXBlfSlgKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAg
ICAgYXdhaXQgd2FpdEZvckRlYnVnZ2VyKCk7CiAKICAgICAgICAgY29uc29sZVdyaXRlKCcnKTsK
ICAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUaGVyZSBzaG91bGQgYmUgbm8gbWVkaWFTZXNzaW9u
LmNvb3JkaW5hdG9yIGluaXRpYWxseS4nKQpAQCAtMzcsNyArNTIsNyBAQAogCiAgICAgICAgIHJ1
bignaW50ZXJuYWxzLnJlZ2lzdGVyTW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKGNoYW5nZUhh
bmRsZXIpJyk7CiAKLSAgICAgICAgYXdhaXQgY2hhbmdlUHJvbWlzZTsKKyAgICAgICAgYXdhaXQg
Y2hhbmdlUHJvbWlzZSgpOwogICAgICAgICAKICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yJywgdW5kZWZpbmVkLCAnIT0nKTsKIApAQCAtNDgs
MzggKzYzLDExMyBAQAogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCi0gICAgICAgIGxl
dCB0ZXN0QWN0aW9uID0gYXN5bmMgKGFjdGlvbiwgZnVuYywgZm9yY2VGYWlsdXJlKSA9PiB7Cisg
ICAgICAgIGxldCB0ZXN0QWN0aW9uID0gYXN5bmMgKGFjdGlvbiwgZnVuYywgZXhwZWN0RmFpbHVy
ZSkgPT4gewogICAgICAgICAgICAgbGF0ZXN0QWN0aW9uID0gJyc7CiAKLSAgICAgICAgICAgIGxl
dCBzdWNjZWVkZWQ7CisgICAgICAgICAgICBydW4oYHByb21pc2UgPSAke2Z1bmMudG9TdHJpbmco
KX1gKTsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBU
ZXN0IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IuJHthY3Rpb259KClgKTsKLSAg
ICAgICAgICAgICAgICBhd2FpdCBmdW5jKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGZvcmNlRmFp
bHVyZSkKLSAgICAgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBGQUlMOiAke2Z1bmMudG9T
dHJpbmcoKX0gcmVzb2x2ZWQgYnV0IHNob3VsZCBoYXZlIHJlamVjdGVkYCk7Ci0gICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RBY3Rpb24nLCBhY3Rpb24pOwotICAgICAgICAgICAg
fSBjYXRjaCAoZXgpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWZvcmNlRmFpbHVyZSkKLSAgICAg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKGBGQUlMOiAke2Z1bmMudG9TdHJpbmcoKX0gdGhy
ZXcgJHtleH1gKTsKLSAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2xhdGVzdEFjdGlvbics
ICcnKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZXhwZWN0RmFpbHVyZSkK
KyAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2hvdWxkUmVqZWN0KHByb21pc2UpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2hvdWxkUmVzb2x2ZShw
cm9taXNlKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZXgpIHt9CiAKICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgnJyk7CiAgICAgICAgIH07CiAKKyAgICAgICAgbGV0IHRlc3RSZWFkeVN0YXRlcyA9
IGFzeW5jICh0ZXN0Q2FsbGJhY2spID0+IHsKKyAgICAgICAgICAgIGxldCBwcmV2aW91c1N0YXRl
ID0gJ2hhdmVOb3RoaW5nJzsKKyAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVh
ZHlTdGF0ZSA9ICdoYXZlTm90aGluZyc7CisgICAgICAgICAgICBmb3IgKGxldCBzdGF0ZSBvZiBb
J2hhdmVNZXRhZGF0YScsICdoYXZlQ3VycmVudERhdGEnLCAnaGF2ZUZ1dHVyZURhdGEnLCAnaGF2
ZUVub3VnaERhdGEnLCAnaGF2ZU5vdGhpbmcnXSkgeworICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5yZWFkeVN0YXRlJywgcHJldmlvdXNTdGF0ZSk7
CisKKyAgICAgICAgICAgICAgICBsYXRlc3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgICAgICAgICBy
dW4oYG5hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZSA9ICcke3N0YXRlfSdgKTsKKwor
ICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RDYWxsYmFjaygpCisKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24ucmVhZHlTdGF0ZScsIHN0YXRlKTsK
KyAgICAgICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gc3RhdGU7CisgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgICAgICBs
ZXQgdGVzdFBsYXliYWNrU3RhdGVzID0gYXN5bmMgKHRlc3RDYWxsYmFjaykgPT4geworICAgICAg
ICAgICAgbGV0IHByZXZpb3VzU3RhdGUgPSAnbm9uZSc7CisgICAgICAgICAgICBuYXZpZ2F0b3Iu
bWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAnbm9uZSc7CisgICAgICAgICAgICBmb3IgKGxl
dCBzdGF0ZSBvZiBbJ3BhdXNlZCcsICdwbGF5aW5nJywgJ25vbmUnXSkgeworCisgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUn
LCBwcmV2aW91c1N0YXRlKTsKKworICAgICAgICAgICAgICAgIGxhdGVzdENoYW5nZSA9ICcnOwor
ICAgICAgICAgICAgICAgIHJ1bihgbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRl
ID0gJyR7c3RhdGV9J2ApOworCisgICAgICAgICAgICAgICAgYXdhaXQgdGVzdENhbGxiYWNrKCkK
KworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5w
bGF5YmFja1N0YXRlJywgc3RhdGUpOworICAgICAgICAgICAgICAgIHByZXZpb3VzU3RhdGUgPSBz
dGF0ZTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICAgICAgfTsK
KyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgbGV0IGFjdGlvbnMgPSBbIAotICAgICAgICAg
ICAgeyBhY3Rpb246ICdwbGF5JywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRvci5tZWRp
YVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpIH0sIH0sCi0gICAgICAgICAgICB7IGFjdGlvbjog
J3BhdXNlJywgZnVuYyA6ICgpID0+IHsgcmV0dXJuIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29v
cmRpbmF0b3IucGF1c2UoKSB9LCB9LAotICAgICAgICAgICAgeyBhY3Rpb246ICdzZWVrdG8nLCBm
dW5jIDogKCkgPT4geyByZXR1cm4gbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5z
ZWVrVG8oMTApIH0sIH0sCisgICAgICAgICAgICB7IGFjdGlvbjogJ3BsYXknLCBmdW5jIDogJ25h
dmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IucGxheSgpJyB9LAorICAgICAgICAgICAg
eyBhY3Rpb246ICdwYXVzZScsIGZ1bmMgOiAnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5jb29yZGlu
YXRvci5wYXVzZSgpJyB9LAorICAgICAgICAgICAgeyBhY3Rpb246ICdzZWVrdG8nLCBmdW5jIDog
J25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc2Vla1RvKDEwKScgfSwKICAgICAg
ICAgXTsKIAorICAgICAgICAvLyBCZWZvcmUgam9pbmluZworICAgICAgICBjb25zb2xlV3JpdGUo
JycpOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29v
cmRpbmF0b3Iuc3RhdGUgc2hvdWxkIGJlICJ3YWl0aW5nIiBpbnRpdGlhbGx5JykKKyAgICAgICAg
dGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnN0YXRlJywg
J3dhaXRpbmcnKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xl
V3JpdGUoJyoqIFRlc3QgdGhhdCB3aGVuIGNvb3JkaW5hdG9yIG1ldGhvZHMgZmFpbCBhbmQgcHJv
bWlzZXMgcmVqZWN0IGJlZm9yZSBtZWRpYVNlc3Npb24uam9pbigpIGlzIGNhbGxlZC4nKQorICAg
ICAgICBmb3IgKGxldCBhY3Rpb24gb2YgYWN0aW9ucykKKyAgICAgICAgICAgIGF3YWl0IHRlc3RB
Y3Rpb24oYWN0aW9uLmFjdGlvbiwgYWN0aW9uLmZ1bmMsIHRydWUpOworCisgICAgICAgIGNvbnNv
bGVXcml0ZShgKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBkb2VzIG5vdCBub3RpZnkgY29vcmRp
bmF0b3Igd2hlbiBzdGF0ZXMgY2hhbmdlIGJlZm9yZSBtZWRpYVNlc3Npb24uam9pbigpIGlzIGNh
bGxlZC5gKQorICAgICAgICBjb25zb2xlV3JpdGUoJyogUG9zaXRpb25TdGF0ZScpOworICAgICAg
ICBsYXRlc3RDaGFuZ2UgPSAnJzsKKyAgICAgICAgcnVuKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9u
LnNldFBvc2l0aW9uU3RhdGUoeyBkdXJhdGlvbjogMSwgcGxheWJhY2tSYXRlOiAxLCBwb3NpdGlv
bjogMCB9KScpOworICAgICAgICBhd2FpdCBzbGVlcEZvcigyMCk7CisgICAgICAgIHRlc3RFeHBl
Y3RlZCgnbGF0ZXN0Q2hhbmdlJywgJycpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7Cisg
ICAgICAgIGNvbnNvbGVXcml0ZSgnKiBSZWFkeVN0YXRlJyk7CisgICAgICAgIGF3YWl0IHRlc3RS
ZWFkeVN0YXRlcyhhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBzbGVlcEZvcigyMCk7
CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2xhdGVzdENoYW5nZScsICcnKTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcqIFBsYXliYWNrU3RhdGUnKTsKKyAgICAgICAg
YXdhaXQgdGVzdFBsYXliYWNrU3RhdGVzKGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGF3YWl0
IHNsZWVwRm9yKDIwKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0Q2hhbmdlJywg
JycpOworICAgICAgICB9KTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJzxicj4nKTsKKyAgICAg
ICAgY29uc29sZVdyaXRlKCcqKiBzZXNzaW9uLmpvaW4oKSBzaG91bGQgcmVqZWN0IG9uIGZhaWx1
cmUnKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yQ29tbWFuZHNTaG91bGRGYWlsKHRydWUpJyk7CisgICAgICAgIHJ1bigncHJvbWlzZSA9IG5h
dmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuam9pbigpJyk7CisgICAgICAgIGF3YWl0
IHNob3VsZFJlamVjdChwcm9taXNlKS50aGVuKCgpID0+IHsgfSkuY2F0Y2goKCkgPT4geyB9KTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9y
LnN0YXRlJywgJ3dhaXRpbmcnKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdsYXRlc3RDaGFuZ2Un
LCAnJyk7CisKICAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKLSAgICAgICAgY29uc29sZVdyaXRl
KCcqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIHN1Y2NlZWQsICBwcm9taXNl
cyByZXNvbHZlIGFuZCBtZWRpYVNlc3Npb24gYWN0aW9uIGhhbmRsZXJzIGFyZSBjYWxsZWQuJykK
KyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TW9ja01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yQ29t
bWFuZHNTaG91bGRGYWlsKGZhbHNlKScpOworICAgICAgICBydW4oJ3Byb21pc2UgPSBuYXZpZ2F0
b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLmpvaW4oKScpOworICAgICAgICBhd2FpdCBzaG91
bGRSZXNvbHZlKHByb21pc2UpLnRoZW4oKCkgPT4geyB9KS5jYXRjaCgoKSA9PiB7IH0pOworICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3Iuc3Rh
dGUnLCAnam9pbmVkJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnbGF0ZXN0Q2hhbmdlJywgJ2Nv
b3JkaW5hdG9yU3RhdGVDaGFuZ2VkJyk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAg
ICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2Rz
IHN1Y2NlZWQsIHByb21pc2VzIHJlc29sdmUgYW5kIG1lZGlhU2Vzc2lvbiBhY3Rpb24gaGFuZGxl
cnMgYXJlIGNhbGxlZC4nKQogICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja01lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKGZhbHNlKTsKICAgICAgICAgZm9yIChsZXQgYWN0
aW9uIG9mIGFjdGlvbnMpCiAgICAgICAgICAgICBhd2FpdCB0ZXN0QWN0aW9uKGFjdGlvbi5hY3Rp
b24sIGFjdGlvbi5mdW5jLCBmYWxzZSk7CiAKLSAgICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0
IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIHN1Y2NlZWQsICBwcm9taXNlcyByZWplY3Qg
YW5kIG1lZGlhU2Vzc2lvbiBhY3Rpb24gaGFuZGxlcnMgYXJlIG5vdCBjYWxsZWQuJykKKyAgICAg
ICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2RzIGZh
aWwsIHByb21pc2VzIHJlamVjdCBhbmQgbWVkaWFTZXNzaW9uIGFjdGlvbiBoYW5kbGVycyBhcmUg
bm90IGNhbGxlZC4nKQogICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja01lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yQ29tbWFuZHNTaG91bGRGYWlsKHRydWUpOwogICAgICAgICBmb3IgKGxldCBhY3Rpb24g
b2YgYWN0aW9ucykKICAgICAgICAgICAgIGF3YWl0IHRlc3RBY3Rpb24oYWN0aW9uLmFjdGlvbiwg
YWN0aW9uLmZ1bmMsIHRydWUpOwpAQCAtODksMzYgKzE3OSw1OCBAQAogICAgICAgICBhd2FpdCB0
ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAncG9zaXRpb25TdGF0ZUNoYW5n
ZWQnLCAnPT0nLCAxMDApOwogCiAgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7Ci0gICAgICAgIGNv
bnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3RpZmllcyBjb29yZGluYXRv
ciB3aGVuIHJlYWR5U3RhdGUgY2hhbmdlcy4nKQotICAgICAgICBsZXQgcHJldmlvdXNTdGF0ZSA9
ICdoYXZlTm90aGluZyc7Ci0gICAgICAgIGZvciAobGV0IHN0YXRlIG9mIFsnaGF2ZU1ldGFkYXRh
JywgJ2hhdmVDdXJyZW50RGF0YScsICdoYXZlRnV0dXJlRGF0YScsICdoYXZlRW5vdWdoRGF0YScs
ICdoYXZlTm90aGluZyddKSB7Ci0gICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ25hdmlnYXRvci5t
ZWRpYVNlc3Npb24ucmVhZHlTdGF0ZScsIHByZXZpb3VzU3RhdGUpOwotCi0gICAgICAgICAgICBs
YXRlc3RDaGFuZ2UgPSAnJzsKLSAgICAgICAgICAgIHJ1bihgbmF2aWdhdG9yLm1lZGlhU2Vzc2lv
bi5yZWFkeVN0YXRlID0gJyR7c3RhdGV9J2ApOworICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRl
c3QgdGhhdCBtZWRpYVNlc3Npb24gbm90aWZpZXMgY29vcmRpbmF0b3Igd2hlbiByZWFkeVN0YXRl
IGNoYW5nZXMuJyk7CisgICAgICAgIGF3YWl0IHRlc3RSZWFkeVN0YXRlcyhhc3luYyAoKSA9PiB7
IGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2xhdGVzdENoYW5nZScsICdyZWFkeVN0YXRl
Q2hhbmdlZCcsICc9PScsIDEwMCk7IH0pCiAKLSAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3Rl
ZEV2ZW50dWFsbHkoJ2xhdGVzdENoYW5nZScsICdyZWFkeVN0YXRlQ2hhbmdlZCcsICc9PScsIDEw
MCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiogVGVzdCB0aGF0IG1lZGlhU2Vzc2lvbiBub3Rp
ZmllcyBjb29yZGluYXRvciB3aGVuIHBsYXliYWNrU3RhdGUgY2hhbmdlcy4nKQorICAgICAgICBh
d2FpdCB0ZXN0UGxheWJhY2tTdGF0ZXMoYXN5bmMgKCkgPT4geyB0ZXN0RXhwZWN0ZWRFdmVudHVh
bGx5KCdsYXRlc3RDaGFuZ2UnLCAncGxheWJhY2tTdGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOyB9
KTsKIAotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnJl
YWR5U3RhdGUnLCBzdGF0ZSk7Ci0gICAgICAgICAgICBwcmV2aW91c1N0YXRlID0gc3RhdGU7Ci0g
ICAgICAgICAgICBjb25zb2xlV3JpdGUoJycpOwotICAgICAgICB9OworICAgICAgICAvLyBBZnRl
ciBsZWF2aW5nCisgICAgICAgIGNvbnNvbGVXcml0ZSgnPGJyPicpOworICAgICAgICBjb25zb2xl
V3JpdGUoJyoqIExlYXZlIHRoZSBzZXNzaW9uJykKKyAgICAgICAgcnVuKCduYXZpZ2F0b3IubWVk
aWFTZXNzaW9uLmNvb3JkaW5hdG9yLmxlYXZlKCknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdu
YXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9yLnN0YXRlJywgJ2Nsb3NlZCcpOworICAg
ICAgICBhd2FpdCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdsYXRlc3RDaGFuZ2UnLCAnY29vcmRp
bmF0b3JTdGF0ZUNoYW5nZWQnLCAnPT0nLCAxMDApOworICAgICAgICBsYXRlc3RDaGFuZ2UgPSAn
JzsKIAotICAgICAgICBjb25zb2xlV3JpdGUoJyoqIFRlc3QgdGhhdCBtZWRpYVNlc3Npb24gbm90
aWZpZXMgY29vcmRpbmF0b3Igd2hlbiBwbGF5YmFja1N0YXRlIGNoYW5nZXMuJykKLSAgICAgICAg
cHJldmlvdXNTdGF0ZSA9ICdub25lJzsKLSAgICAgICAgZm9yIChsZXQgc3RhdGUgb2YgWydwYXVz
ZWQnLCAncGxheWluZycsICdub25lJ10pIHsKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAg
ICAgICAgY29uc29sZVdyaXRlKCcqKiBUZXN0IHRoYXQgd2hlbiBjb29yZGluYXRvciBtZXRob2Rz
IGZhaWwgYW5kIHByb21pc2VzIHJlamVjdCBhZnRlciBtZWRpYVNlc3Npb24ubGVhdmUoKSBoYXMg
YmVlbiBjYWxsZWQuJykKKyAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvbnMpCisgICAg
ICAgICAgICBhd2FpdCB0ZXN0QWN0aW9uKGFjdGlvbi5hY3Rpb24sIGFjdGlvbi5mdW5jLCB0cnVl
KTsKIAotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCduYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBs
YXliYWNrU3RhdGUnLCBwcmV2aW91c1N0YXRlKTsKKyAgICAgICAgY29uc29sZVdyaXRlKGAqKiBU
ZXN0IHRoYXQgbWVkaWFTZXNzaW9uIGRvZXMgbm90IG5vdGlmeSBjb29yZGluYXRvciB3aGVuIHN0
YXRlcyBjaGFuZ2UgYWZ0ZXIgbWVkaWFTZXNzaW9uLmxlYXZlKCkgaGFzIGJlZW4gY2FsbGVkLmAp
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiBQb3NpdGlvblN0YXRlJyk7CisgICAgICAgIGxhdGVz
dENoYW5nZSA9ICcnOworICAgICAgICBydW4oJ25hdmlnYXRvci5tZWRpYVNlc3Npb24uc2V0UG9z
aXRpb25TdGF0ZSh7IGR1cmF0aW9uOiAxLCBwbGF5YmFja1JhdGU6IDEsIHBvc2l0aW9uOiAwIH0p
Jyk7CisgICAgICAgIGF3YWl0IHNsZWVwRm9yKDIwKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCds
YXRlc3RDaGFuZ2UnLCAnJyk7CiAKLSAgICAgICAgICAgIGxhdGVzdENoYW5nZSA9ICcnOwotICAg
ICAgICAgICAgcnVuKGBuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLnBsYXliYWNrU3RhdGUgPSAnJHtz
dGF0ZX0nYCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0
ZSgnKiBSZWFkeVN0YXRlJyk7CisgICAgICAgIGF3YWl0IHRlc3RSZWFkeVN0YXRlcyhhc3luYyAo
KSA9PiB7CisgICAgICAgICAgICBhd2FpdCBzbGVlcEZvcigyMCk7CisgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ2xhdGVzdENoYW5nZScsICcnKTsKKyAgICAgICAgfSk7CiAKLSAgICAgICAgICAg
IGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2xhdGVzdENoYW5nZScsICdwbGF5YmFja1N0
YXRlQ2hhbmdlZCcsICc9PScsIDEwMCk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnKiBQbGF5YmFj
a1N0YXRlJyk7CisgICAgICAgIGF3YWl0IHRlc3RQbGF5YmFja1N0YXRlcyhhc3luYyAoKSA9PiB7
CisgICAgICAgICAgICBhd2FpdCBzbGVlcEZvcigyMCk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ2xhdGVzdENoYW5nZScsICcnKTsKKyAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgnbmF2aWdhdG9yLm1lZGlhU2Vzc2lvbi5wbGF5YmFja1N0YXRlJywgc3RhdGUpOwot
ICAgICAgICAgICAgcHJldmlvdXNTdGF0ZSA9IHN0YXRlOwotICAgICAgICAgICAgY29uc29sZVdy
aXRlKCcnKTsKLSAgICAgICAgfTsKKyAgICAgICAgY29uc29sZVdyaXRlKCc8YnI+Jyk7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnKiogSXQgc2hvdWxkIG5vdCBiZSBwb3NzaWJsZSB0byBqb2luIG9y
IGxlYXZlIGEgY2xvc2VkIHNlc3Npb24nKTsKKyAgICAgICAgcnVuKCdwcm9taXNlID0gbmF2aWdh
dG9yLm1lZGlhU2Vzc2lvbi5jb29yZGluYXRvci5qb2luKCknKTsKKyAgICAgICAgYXdhaXQgc2hv
dWxkUmVqZWN0KHByb21pc2UpLnRoZW4oKCkgPT4geyB9KS5jYXRjaCgoKSA9PiB7IH0pOworICAg
ICAgICAKKyAgICAgICAgbGV0IGV4Y2VwdGlvbjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
IG5hdmlnYXRvci5tZWRpYVNlc3Npb24uY29vcmRpbmF0b3IubGVhdmUoKTsKKyAgICAgICAgfSBj
YXRjaCAoZXgpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGV4OworICAgICAgICB9CisgICAg
ICAgIGxldCBleHBlY3RlZCA9ICdJbnZhbGlkU3RhdGVFcnJvcjogVW5hYmxlIHRvIGxlYXZlIHdo
ZW4gc3RhdGUgaXMgY2xvc2VkJzsKKyAgICAgICAgbG9nUmVzdWx0KGV4Y2VwdGlvbi50b1N0cmlu
ZygpID09IGV4cGVjdGVkLCBgVEVTVChuYXZpZ2F0b3IubWVkaWFTZXNzaW9uLmNvb3JkaW5hdG9y
LmxlYXZlKCkpIFRIUk9XUygke2V4cGVjdGVkfSlgKTsKIAogICAgICAgICBjb25zb2xlV3JpdGUo
JycpOwogICAgICAgICBlbmRUZXN0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>