<?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>155859</bug_id>
          
          <creation_ts>2016-03-24 16:40:21 -0700</creation_ts>
          <short_desc>Web Inspector: protocol generator should prefix C++ filenames with the protocol group</short_desc>
          <delta_ts>2022-03-01 02:44:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1177811</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-03-24 16:40:21 -0700</bug_when>
    <thetext>Don&apos;t hardcode &apos;Inspector&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177812</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-24 16:41:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/25349859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177822</commentid>
    <comment_count>2</comment_count>
      <attachid>274868</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-03-24 17:51:19 -0700</bug_when>
    <thetext>Created attachment 274868
WIP - needs build system work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178004</commentid>
    <comment_count>3</comment_count>
      <attachid>274916</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-03-25 10:26:35 -0700</bug_when>
    <thetext>Created attachment 274916
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178006</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-25 10:28:40 -0700</bug_when>
    <thetext>Attachment 274916 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:46:  [CppFrontendDispatcherHeaderGenerator.output_filename] Instance of &apos;CppFrontendDispatcherHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:53:  [CppFrontendDispatcherHeaderGenerator.generate_output] Instance of &apos;CppFrontendDispatcherHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:44:  [CppAlternateBackendDispatcherHeaderGenerator.output_filename] Instance of &apos;CppAlternateBackendDispatcherHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:48:  [CppAlternateBackendDispatcherHeaderGenerator.generate_output] Instance of &apos;CppAlternateBackendDispatcherHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:46:  [CppBackendDispatcherHeaderGenerator.output_filename] Instance of &apos;CppBackendDispatcherHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:53:  [CppBackendDispatcherHeaderGenerator.generate_output] Instance of &apos;CppBackendDispatcherHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py:46:  [CppProtocolTypesHeaderGenerator.output_filename] Instance of &apos;CppProtocolTypesHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py:46:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/cpp_generator.py:51:  [CppGenerator.protocol_name] Instance of &apos;CppGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
Total errors found: 9 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178007</commentid>
    <comment_count>5</comment_count>
      <attachid>274916</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-03-25 10:33:51 -0700</bug_when>
    <thetext>Comment on attachment 274916
Proposed Fix

pragma once
changing some names around
seems ok.  r=me, but wait for ews
Also, this could probably fix the need for my awful hack in http://trac.webkit.org/changeset/198659/trunk/Source/WebKit2/CMakeLists.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178014</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-03-25 10:50:53 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 274916 [details]
&gt; Proposed Fix
&gt; 
&gt; pragma once
&gt; changing some names around
&gt; seems ok.  r=me, but wait for ews
&gt; Also, this could probably fix the need for my awful hack in
&gt; http://trac.webkit.org/changeset/198659/trunk/Source/WebKit2/CMakeLists.txt

If EWS passes, I&apos;ll do a partial revert and land it locally. Otherwise I&apos;ll add the revert to the next EWS patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178031</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-03-25 11:18:51 -0700</bug_when>
    <thetext>Committed r198678: &lt;http://trac.webkit.org/changeset/198678&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274868</attachid>
            <date>2016-03-24 17:51:19 -0700</date>
            <delta_ts>2016-03-25 10:26:32 -0700</delta_ts>
            <desc>WIP - needs build system work</desc>
            <filename>bug-155859-20160324175121.patch</filename>
            <type>text/plain</type>
            <size>19953</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NGZlMjFlNTVhZDI0YjNiYjQ1YWRjMThjNjNhYzBmMTg3MmNhNTc3Li44Zjg2MTkzODdmNGUwYmQ3
Nzc1Njk2MjIzMDQ3OWI0MzAzM2FhNGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxNi0wMy0yNCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm90b2NvbCBnZW5lcmF0b3Igc2hvdWxkIHByZWZpeCBD
KysgZmlsZW5hbWVzIHdpdGggdGhlIHByb3RvY29sIGdyb3VwCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU4NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI1MzQ5ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJhdG9yLnB5OgorICAg
ICAgICAoQ3BwR2VuZXJhdG9yKToKKyAgICAgICAgKENwcEdlbmVyYXRvci5fX2luaXRfXyk6Cisg
ICAgICAgIChDcHBHZW5lcmF0b3IucHJvdG9jb2xfbmFtZSk6CisgICAgICAgICogaW5zcGVjdG9y
L3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYWx0ZXJuYXRlX2JhY2tlbmRfZGlzcGF0Y2hl
cl9oZWFkZXIucHk6CisgICAgICAgIChDcHBBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlckhlYWRl
ckdlbmVyYXRvcik6CisgICAgICAgIChDcHBBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlckhlYWRl
ckdlbmVyYXRvci5fX2luaXRfXyk6CisgICAgICAgIChDcHBBbHRlcm5hdGVCYWNrZW5kRGlzcGF0
Y2hlckhlYWRlckdlbmVyYXRvci5vdXRwdXRfZmlsZW5hbWUpOgorICAgICAgICAoQ3BwQWx0ZXJu
YXRlQmFja2VuZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rp
c3BhdGNoZXJfaGVhZGVyLnB5OgorICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJIZWFkZXJH
ZW5lcmF0b3IpOgorICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3Iu
X19pbml0X18pOgorICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3Iu
b3V0cHV0X2ZpbGVuYW1lKToKKyAgICAgICAgKENwcEJhY2tlbmREaXNwYXRjaGVySGVhZGVyR2Vu
ZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5Ogor
ICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcik6Cisg
ICAgICAgIChDcHBCYWNrZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yLl9faW5p
dF9fKToKKyAgICAgICAgKENwcEJhY2tlbmREaXNwYXRjaGVySW1wbGVtZW50YXRpb25HZW5lcmF0
b3Iub3V0cHV0X2ZpbGVuYW1lKToKKyAgICAgICAgKENwcEJhY2tlbmREaXNwYXRjaGVySW1wbGVt
ZW50YXRpb25HZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9mcm9udGVuZF9kaXNwYXRjaGVyX2hlYWRlci5w
eToKKyAgICAgICAgKENwcEZyb250ZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRvcik6CisgICAg
ICAgIChDcHBGcm9udGVuZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3IuX19pbml0X18pOgorICAg
ICAgICAoQ3BwRnJvbnRlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yLm91dHB1dF9maWxlbmFt
ZSk6CisgICAgICAgIChDcHBGcm9udGVuZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3IuZ2VuZXJh
dGVfb3V0cHV0KToKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRl
X2NwcF9mcm9udGVuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5OgorICAgICAgICAoQ3Bw
RnJvbnRlbmREaXNwYXRjaGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IpOgorICAgICAgICAoQ3Bw
RnJvbnRlbmREaXNwYXRjaGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IuX19pbml0X18pOgorICAg
ICAgICAoQ3BwRnJvbnRlbmREaXNwYXRjaGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3Iub3V0cHV0
X2ZpbGVuYW1lKToKKyAgICAgICAgKENwcEZyb250ZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9u
R2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5OgorICAgICAgICAo
Q3BwUHJvdG9jb2xUeXBlc0hlYWRlckdlbmVyYXRvcik6CisgICAgICAgIChDcHBQcm90b2NvbFR5
cGVzSGVhZGVyR2VuZXJhdG9yLl9faW5pdF9fKToKKyAgICAgICAgKENwcFByb3RvY29sVHlwZXNI
ZWFkZXJHZW5lcmF0b3Iub3V0cHV0X2ZpbGVuYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19pbXBsZW1lbnRhdGlvbi5w
eToKKyAgICAgICAgKENwcFByb3RvY29sVHlwZXNJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcik6Cisg
ICAgICAgIChDcHBQcm90b2NvbFR5cGVzSW1wbGVtZW50YXRpb25HZW5lcmF0b3IuX19pbml0X18p
OgorICAgICAgICAoQ3BwUHJvdG9jb2xUeXBlc0ltcGxlbWVudGF0aW9uR2VuZXJhdG9yLm91dHB1
dF9maWxlbmFtZSk6CisgICAgICAgIChDcHBQcm90b2NvbFR5cGVzSW1wbGVtZW50YXRpb25HZW5l
cmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2Rl
Z2VuL21vZGVscy5weToKKwogMjAxNi0wMy0yNCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFw
cGxlLmNvbT4KIAogICAgICAgICBbRVM2XSBBZGQgUHJveHkgYmFzZWQgdGVzdHMgZm9yIFJlZ0V4
cC5wcm90b3R5cGVbQEBtYXRjaF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5OWEwY2NjMzQzOTEyYzVjODhjNzI4
NWNiZGEwODFkODcxMTVkNmJjLi40Yjc3YjY5Y2EwMzJiYTYzOTk5MjBiM2JjNWI3MTY3MDNlMDg4
M2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDMtMjQgIEJyaWFuIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcHJvdG9jb2wgZ2Vu
ZXJhdG9yIHNob3VsZCBwcmVmaXggQysrIGZpbGVuYW1lcyB3aXRoIHRoZSBwcm90b2NvbCBncm91
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1ODU5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNTM0OTg1OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oOgorCiAyMDE2LTAzLTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IG51bGwgZGVyZWZlcmVuY2luZyBp
biBOZXR3b3JrTG9hZDo6Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9jcHBfZ2VuZXJhdG9yLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2NvZGVnZW4vY3BwX2dlbmVyYXRvci5weQppbmRleCBlZGQzMzBkYTQ4ZDAxYTMy
NTA5NjNmZDAxZGUyYjk4NDEwZDkxMGIwLi5kOGQ2MzM1NmZlY2Q5MmFlMWZiZmRlNTJlOThmZjc1
MzM3Y2M5YmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJhdG9yLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3IucHkKQEAgLTEsNiArMSw2
IEBACiAjIS91c3IvYmluL2VudiBweXRob24KICMKLSMgQ29weXJpZ2h0IChjKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZl
cnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CkBAIC0yOCw3ICsyOCw3IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MucGF0aAogaW1wb3J0
IHJlCiAKLWZyb20gZ2VuZXJhdG9yIGltcG9ydCB1Y2ZpcnN0Citmcm9tIGdlbmVyYXRvciBpbXBv
cnQgdWNmaXJzdCwgR2VuZXJhdG9yCiBmcm9tIG1vZGVscyBpbXBvcnQgUHJpbWl0aXZlVHlwZSwg
T2JqZWN0VHlwZSwgQXJyYXlUeXBlLCBFbnVtVHlwZSwgQWxpYXNlZFR5cGUsIEZyYW1ld29ya3MK
IAogbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2dsb2JhbCcpCkBAIC00MywxMCArNDMsMTIgQEAg
X1BSSU1JVElWRV9UT19DUFBfTkFNRV9NQVAgPSB7CiAgICAgJ2FueSc6ICdJbnNwZWN0b3I6Oklu
c3BlY3RvclZhbHVlJwogfQogCi0jIFRoaXMgY2xhc3MgY29udGFpbnMgZXh0cmEgc3RhdGljIG1l
dGhvZHMgdXNlZCBmb3IgZ2VuZXJhdGlvbiwgYnV0IGRvZXMKLSMgbm90IHBhcnRpY2lwYXRlIGlu
IGFueSBpbmhlcml0YW5jZSBoaWVyYXJjaHkuIEZpbGUgZ2VuZXJhdG9ycyBzaG91bGQKLSMgZXh0
ZW5kIHRoZSBnZW5lcmljICJHZW5lcmF0b3IiIGNsYXNzIGluc3RlYWQuCi1jbGFzcyBDcHBHZW5l
cmF0b3I6CitjbGFzcyBDcHBHZW5lcmF0b3IoR2VuZXJhdG9yKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbW9kZWwsIGlucHV0X2ZpbGVwYXRoKToKKyAgICAgICAgR2VuZXJhdG9yLl9faW5pdF9f
KHNlbGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0aCkKKworICAgIGRlZiBwcm90b2NvbF9uYW1lKHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdwcm90
b2NvbF9ncm91cCcsICcnKQogCiAgICAgIyBNaXNjZWxsYW5lb3VzIHRleHQgbWFuaXB1bGF0aW9u
IHJvdXRpbmVzLgogICAgIEBzdGF0aWNtZXRob2QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9hbHRlcm5hdGVf
YmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9hbHRlcm5hdGVfYmFja2VuZF9kaXNw
YXRjaGVyX2hlYWRlci5weQppbmRleCAzNzVjZTA1Y2E0NGFiNGU0MDk1NTgzNTQ2NzM3MDMzMjJk
NTkxYWI0Li4wN2YyNTdjYmVkNzU4N2UxYTU1NDYyM2QyNWU1ZjdkZTkxMzhlZGFmIDEwMDc1NQot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5l
cmF0ZV9jcHBfYWx0ZXJuYXRlX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3Bw
X2FsdGVybmF0ZV9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5CkBAIC0xLDYgKzEsNiBAQAog
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjCi0jIENvcHlyaWdodCAoYykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoYykgMjAxNCBVbml2ZXJzaXR5
IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAt
MzIsMjEgKzMyLDIwIEBAIGZyb20gc3RyaW5nIGltcG9ydCBUZW1wbGF0ZQogCiBmcm9tIGNwcF9n
ZW5lcmF0b3IgaW1wb3J0IENwcEdlbmVyYXRvcgogZnJvbSBjcHBfZ2VuZXJhdG9yX3RlbXBsYXRl
cyBpbXBvcnQgQ3BwR2VuZXJhdG9yVGVtcGxhdGVzIGFzIENwcFRlbXBsYXRlcwotZnJvbSBnZW5l
cmF0b3IgaW1wb3J0IEdlbmVyYXRvcgogCiBsb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFs
JykKIAogCi1jbGFzcyBDcHBBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRv
cihHZW5lcmF0b3IpOgorY2xhc3MgQ3BwQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJIZWFkZXJH
ZW5lcmF0b3IoQ3BwR2VuZXJhdG9yKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIGlu
cHV0X2ZpbGVwYXRoKToKLSAgICAgICAgR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsLCBp
bnB1dF9maWxlcGF0aCkKKyAgICAgICAgQ3BwR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVs
LCBpbnB1dF9maWxlcGF0aCkKIAogICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6Ci0gICAg
ICAgIHJldHVybiAnSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgnCisgICAg
ICAgIHJldHVybiAnJXNBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCcgJSBzZWxmLnByb3Rv
Y29sX25hbWUoKQogCiAgICAgZGVmIGdlbmVyYXRlX291dHB1dChzZWxmKToKICAgICAgICAgaGVh
ZGVycyA9IFsKLSAgICAgICAgICAgICciSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oIicsCisgICAg
ICAgICAgICAnIiVzUHJvdG9jb2xUeXBlcy5oIicgJSBzZWxmLnByb3RvY29sX25hbWUoKSwKICAg
ICAgICAgICAgICc8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+JywKICAgICAg
ICAgICAgICc8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4nLAog
ICAgICAgICBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRl
X2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5CmluZGV4IDVlYmQ4MmZiZDc2YzkxZGJi
ZDY3ZDk5ZmU3OTAxOTRhODY5ZjJjYjcuLmVjYzNkY2U0OGZmNTU0MzJiMTM4OGRlZTU4MjM5ODg0
YTQ5ZDE2MTQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVy
YXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5CkBAIC0xLDYgKzEsNiBAQAogIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCiAjCi0jIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNp
dHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC0zOCwxOSArMzgsMTkgQEAgZnJvbSBtb2RlbHMgaW1wb3J0IEVudW1UeXBlCiBsb2cgPSBsb2dn
aW5nLmdldExvZ2dlcignZ2xvYmFsJykKIAogCi1jbGFzcyBDcHBCYWNrZW5kRGlzcGF0Y2hlckhl
YWRlckdlbmVyYXRvcihHZW5lcmF0b3IpOgorY2xhc3MgQ3BwQmFja2VuZERpc3BhdGNoZXJIZWFk
ZXJHZW5lcmF0b3IoQ3BwR2VuZXJhdG9yKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWws
IGlucHV0X2ZpbGVwYXRoKToKLSAgICAgICAgR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVs
LCBpbnB1dF9maWxlcGF0aCkKKyAgICAgICAgQ3BwR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1v
ZGVsLCBpbnB1dF9maWxlcGF0aCkKIAogICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6Ci0g
ICAgICAgIHJldHVybiAiSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgiCisgICAgICAgIHJl
dHVybiAiJXNCYWNrZW5kRGlzcGF0Y2hlcnMuaCIgJSBzZWxmLnByb3RvY29sX25hbWUoKQogCiAg
ICAgZGVmIGRvbWFpbnNfdG9fZ2VuZXJhdGUoc2VsZik6CiAgICAgICAgIHJldHVybiBmaWx0ZXIo
bGFtYmRhIGRvbWFpbjogbGVuKGRvbWFpbi5jb21tYW5kcykgPiAwLCBHZW5lcmF0b3IuZG9tYWlu
c190b19nZW5lcmF0ZShzZWxmKSkKIAogICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6CiAg
ICAgICAgIGhlYWRlcnMgPSBbCi0gICAgICAgICAgICAnIkluc3BlY3RvclByb3RvY29sT2JqZWN0
cy5oIicsCisgICAgICAgICAgICAnIiVzUHJvdG9jb2xPYmplY3RzLmgiJyAlIHNlbGYucHJvdG9j
b2xfbmFtZSgpLAogICAgICAgICAgICAgJzxpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIuaD4nLAogICAgICAgICAgICAgJzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9n
ZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2Jh
Y2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQppbmRleCAwYTQ2MTgzNGQ2NWQyNWU1
YzBiNDZlMmNhNGQ5NjZiNDJlZjE0MDkyLi4zOGQ4YWE3ODI3YzZjZDcyNmI5OTVjOTE2YmFjNjcy
NDFmOTQ4NjU0IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0
aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2Rl
Z2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkKQEAg
LTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBweXRob24KICMKLSMgQ29weXJpZ2h0IChjKSAy
MDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChj
KSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQg
KGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTM3LDEyICszNywxMiBAQCBmcm9tIG1vZGVscyBpbXBvcnQgT2Jq
ZWN0VHlwZSwgQXJyYXlUeXBlCiBsb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFsJykKIAog
Ci1jbGFzcyBDcHBCYWNrZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKEdlbmVy
YXRvcik6CitjbGFzcyBDcHBCYWNrZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9y
KENwcEdlbmVyYXRvcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxl
cGF0aCk6Ci0gICAgICAgIEdlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2RlbCwgaW5wdXRfZmls
ZXBhdGgpCisgICAgICAgIENwcEdlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2RlbCwgaW5wdXRf
ZmlsZXBhdGgpCiAKICAgICBkZWYgb3V0cHV0X2ZpbGVuYW1lKHNlbGYpOgotICAgICAgICByZXR1
cm4gIkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAiCisgICAgICAgIHJldHVybiAiJXNC
YWNrZW5kRGlzcGF0Y2hlcnMuY3BwIiAlIHNlbGYucHJvdG9jb2xfbmFtZSgpCiAKICAgICBkZWYg
ZG9tYWluc190b19nZW5lcmF0ZShzZWxmKToKICAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEg
ZG9tYWluOiBsZW4oZG9tYWluLmNvbW1hbmRzKSA+IDAsIEdlbmVyYXRvci5kb21haW5zX3RvX2dl
bmVyYXRlKHNlbGYpKQpAQCAtNTksMTEgKzU5LDExIEBAIGNsYXNzIENwcEJhY2tlbmREaXNwYXRj
aGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IoR2VuZXJhdG9yKToKICAgICAgICAgaWYgc2VsZi5t
b2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdhbHRlcm5hdGVfZGlzcGF0Y2hlcnMnLCBGYWxzZSk6
CiAgICAgICAgICAgICBzZWNvbmRhcnlfaW5jbHVkZXMuYXBwZW5kKCcnKQogICAgICAgICAgICAg
c2Vjb25kYXJ5X2luY2x1ZGVzLmFwcGVuZCgnI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKScpCi0gICAgICAgICAgICBzZWNvbmRhcnlfaW5jbHVkZXMuYXBwZW5kKCcj
aW5jbHVkZSAiSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgiJykKKyAgICAg
ICAgICAgIHNlY29uZGFyeV9pbmNsdWRlcy5hcHBlbmQoJyNpbmNsdWRlICIlc0FsdGVybmF0ZUJh
Y2tlbmREaXNwYXRjaGVycy5oIicgJSBzZWxmLnByb3RvY29sX25hbWUoKSkKICAgICAgICAgICAg
IHNlY29uZGFyeV9pbmNsdWRlcy5hcHBlbmQoJyNlbmRpZicpCiAKICAgICAgICAgaGVhZGVyX2Fy
Z3MgPSB7Ci0gICAgICAgICAgICAncHJpbWFyeUluY2x1ZGUnOiAnIkluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVycy5oIicsCisgICAgICAgICAgICAncHJpbWFyeUluY2x1ZGUnOiAnIiVzQmFja2Vu
ZERpc3BhdGNoZXJzLmgiJyAlIHNlbGYucHJvdG9jb2xfbmFtZSgpLAogICAgICAgICAgICAgJ3Nl
Y29uZGFyeUluY2x1ZGVzJzogJ1xuJy5qb2luKHNlY29uZGFyeV9pbmNsdWRlcyksCiAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3Bw
X2Zyb250ZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5CmluZGV4IDU4YTNjYjkyNTUxN2E1M2IwNTVk
NTAzNzY4Yzg4NzM2ZmE4N2E1YWQuLmYxZTBiYWFmOGVkZGUwOGFmYzNhOGM3NTgzZDhkNzk5OGZi
Y2YxODEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9mcm9udGVuZF9kaXNwYXRjaGVyX2hlYWRlci5weQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0
ZV9jcHBfZnJvbnRlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKQEAgLTEsNiArMSw2IEBACiAjIS91
c3IvYmluL2VudiBweXRob24KICMKLSMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0
eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAg
LTM4LDE5ICszOCwxOSBAQCBmcm9tIG1vZGVscyBpbXBvcnQgRW51bVR5cGUKIGxvZyA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCdnbG9iYWwnKQogCiAKLWNsYXNzIENwcEZyb250ZW5kRGlzcGF0Y2hlckhl
YWRlckdlbmVyYXRvcihHZW5lcmF0b3IpOgorY2xhc3MgQ3BwRnJvbnRlbmREaXNwYXRjaGVySGVh
ZGVyR2VuZXJhdG9yKENwcEdlbmVyYXRvcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1vZGVs
LCBpbnB1dF9maWxlcGF0aCk6Ci0gICAgICAgIEdlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2Rl
bCwgaW5wdXRfZmlsZXBhdGgpCisgICAgICAgIENwcEdlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBt
b2RlbCwgaW5wdXRfZmlsZXBhdGgpCiAKICAgICBkZWYgb3V0cHV0X2ZpbGVuYW1lKHNlbGYpOgot
ICAgICAgICByZXR1cm4gIkluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKKyAgICAgICAg
cmV0dXJuICIlc0Zyb250ZW5kRGlzcGF0Y2hlcnMuaCIgJSBzZWxmLnByb3RvY29sX25hbWUoKQog
CiAgICAgZGVmIGRvbWFpbnNfdG9fZ2VuZXJhdGUoc2VsZik6CiAgICAgICAgIHJldHVybiBmaWx0
ZXIobGFtYmRhIGRvbWFpbjogbGVuKGRvbWFpbi5ldmVudHMpID4gMCwgR2VuZXJhdG9yLmRvbWFp
bnNfdG9fZ2VuZXJhdGUoc2VsZikpCiAKICAgICBkZWYgZ2VuZXJhdGVfb3V0cHV0KHNlbGYpOgog
ICAgICAgICBoZWFkZXJzID0gWwotICAgICAgICAgICAgJyJJbnNwZWN0b3JQcm90b2NvbE9iamVj
dHMuaCInLAorICAgICAgICAgICAgJyIlc1Byb3RvY29sT2JqZWN0cy5oIicgJSBzZWxmLnByb3Rv
Y29sX25hbWUoKSwKICAgICAgICAgICAgICc8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5oPics
CiAgICAgICAgICAgICAnPHd0Zi90ZXh0L1dURlN0cmluZy5oPiddCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2Nw
cF9mcm9udGVuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rp
c3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkKaW5kZXggZWE0NmFhZjI2MThhNzhlNjllOTI2Y2M5
ZDhkYzI4MDc0YjllMmU5Ny4uMWE4MmYyOGY5ZDI3OGQ4YzdlNjAwZGMzY2FmMmM3ZDY4ZDM3ZTA2
ZCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2Vu
ZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkKQEAgLTEsNiAr
MSw2IEBACiAjIS91c3IvYmluL2VudiBweXRob24KICMKLSMgQ29weXJpZ2h0IChjKSAyMDE0LCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKGMpIDIw
MTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKQEAgLTM3LDEyICszNywxMiBAQCBmcm9tIG1vZGVscyBpbXBvcnQgT2JqZWN0VHlw
ZSwgQXJyYXlUeXBlCiBsb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFsJykKIAogCi1jbGFz
cyBDcHBGcm9udGVuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihHZW5lcmF0b3Ip
OgorY2xhc3MgQ3BwRnJvbnRlbmREaXNwYXRjaGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IoQ3Bw
R2VuZXJhdG9yKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIGlucHV0X2ZpbGVwYXRo
KToKLSAgICAgICAgR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0
aCkKKyAgICAgICAgQ3BwR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxl
cGF0aCkKIAogICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAi
SW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAiCisgICAgICAgIHJldHVybiAiJXNGcm9u
dGVuZERpc3BhdGNoZXJzLmNwcCIgJSBzZWxmLnByb3RvY29sX25hbWUoKQogCiAgICAgZGVmIGRv
bWFpbnNfdG9fZ2VuZXJhdGUoc2VsZik6CiAgICAgICAgIHJldHVybiBmaWx0ZXIobGFtYmRhIGRv
bWFpbjogbGVuKGRvbWFpbi5ldmVudHMpID4gMCwgR2VuZXJhdG9yLmRvbWFpbnNfdG9fZ2VuZXJh
dGUoc2VsZikpCkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIENwcEZyb250ZW5kRGlzcGF0Y2hlcklt
cGxlbWVudGF0aW9uR2VuZXJhdG9yKEdlbmVyYXRvcik6CiAgICAgICAgIF0KIAogICAgICAgICBo
ZWFkZXJfYXJncyA9IHsKLSAgICAgICAgICAgICdwcmltYXJ5SW5jbHVkZSc6ICciSW5zcGVjdG9y
RnJvbnRlbmREaXNwYXRjaGVycy5oIicsCisgICAgICAgICAgICAncHJpbWFyeUluY2x1ZGUnOiAn
IiVzRnJvbnRlbmREaXNwYXRjaGVycy5oIicgJSBzZWxmLnByb3RvY29sX25hbWUoKSwKICAgICAg
ICAgICAgICdzZWNvbmRhcnlJbmNsdWRlcyc6ICJcbiIuam9pbihbJyNpbmNsdWRlICVzJyAlIGhl
YWRlciBmb3IgaGVhZGVyIGluIHNlY29uZGFyeV9oZWFkZXJzXSksCiAgICAgICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4v
Z2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBl
c19oZWFkZXIucHkKaW5kZXggNjc1M2UyZGNmODhlYTkyOWZmMWJjMmJmOTBiMTE0OWU3NjA1OTBk
Ni4uNTBmNzU2ZmViNGYwNjBmMzRhYzk0ZjZmNmNhNTc1N2NjYjVjNzNjMSAxMDA3NTUKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVf
Y3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVh
ZGVyLnB5CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjCi0jIENvcHly
aWdodCAoYykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoYykgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHly
aWdodCAoYykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzgsMTIgKzM4LDEyIEBAIGZyb20gbW9kZWxzIGltcG9y
dCBFbnVtVHlwZSwgT2JqZWN0VHlwZSwgUHJpbWl0aXZlVHlwZSwgQWxpYXNlZFR5cGUsIEFycmF5
VHlwZSwKIGxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdnbG9iYWwnKQogCiAKLWNsYXNzIENwcFBy
b3RvY29sVHlwZXNIZWFkZXJHZW5lcmF0b3IoR2VuZXJhdG9yKToKK2NsYXNzIENwcFByb3RvY29s
VHlwZXNIZWFkZXJHZW5lcmF0b3IoQ3BwR2VuZXJhdG9yKToKICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbW9kZWwsIGlucHV0X2ZpbGVwYXRoKToKLSAgICAgICAgR2VuZXJhdG9yLl9faW5pdF9fKHNl
bGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0aCkKKyAgICAgICAgQ3BwR2VuZXJhdG9yLl9faW5pdF9f
KHNlbGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0aCkKIAogICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUo
c2VsZik6Ci0gICAgICAgIHJldHVybiAiSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiCisgICAg
ICAgIHJldHVybiAiJXNQcm90b2NvbE9iamVjdHMuaCIgJSBzZWxmLnByb3RvY29sX25hbWUoKQog
CiAgICAgZGVmIGdlbmVyYXRlX291dHB1dChzZWxmKToKICAgICAgICAgZG9tYWlucyA9IHNlbGYu
ZG9tYWluc190b19nZW5lcmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaW1w
bGVtZW50YXRpb24ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaW1wbGVtZW50YXRpb24ucHkKaW5k
ZXggMmMyNjNiNTA0YmE5NmMyMDU4MDkzODU2NWYzNzE4MTA1MGUzOTM1OC4uNGFhNzhjMTYwNjBm
OGRlMjU2ODA1MjNjM2UyNDM2NGRlNWRhMjNkMCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5
cGVzX2ltcGxlbWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19pbXBsZW1lbnRh
dGlvbi5weQpAQCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhvbgogIwotIyBDb3B5
cmlnaHQgKGMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKGMpIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5
cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM3LDEyICszNywxMiBAQCBmcm9tIG1vZGVscyBpbXBv
cnQgQWxpYXNlZFR5cGUsIEFycmF5VHlwZSwgRW51bVR5cGUsIE9iamVjdFR5cGUKIGxvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKCdnbG9iYWwnKQogCiAKLWNsYXNzIENwcFByb3RvY29sVHlwZXNJbXBs
ZW1lbnRhdGlvbkdlbmVyYXRvcihHZW5lcmF0b3IpOgorY2xhc3MgQ3BwUHJvdG9jb2xUeXBlc0lt
cGxlbWVudGF0aW9uR2VuZXJhdG9yKENwcEdlbmVyYXRvcik6CiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0aCk6Ci0gICAgICAgIEdlbmVyYXRvci5fX2luaXRfXyhz
ZWxmLCBtb2RlbCwgaW5wdXRfZmlsZXBhdGgpCisgICAgICAgIENwcEdlbmVyYXRvci5fX2luaXRf
XyhzZWxmLCBtb2RlbCwgaW5wdXRfZmlsZXBhdGgpCiAKICAgICBkZWYgb3V0cHV0X2ZpbGVuYW1l
KHNlbGYpOgotICAgICAgICByZXR1cm4gIkluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAiCisg
ICAgICAgIHJldHVybiAiJXNQcm90b2NvbE9iamVjdHMuY3BwIiAlIHNlbGYucHJvdG9jb2xfbmFt
ZSgpCiAKICAgICBkZWYgZ2VuZXJhdGVfb3V0cHV0KHNlbGYpOgogICAgICAgICBkb21haW5zID0g
c2VsZi5kb21haW5zX3RvX2dlbmVyYXRlKCkKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgQ3BwUHJv
dG9jb2xUeXBlc0ltcGxlbWVudGF0aW9uR2VuZXJhdG9yKEdlbmVyYXRvcik6CiAgICAgICAgIHNl
Y29uZGFyeV9oZWFkZXJzID0gWyc8d3RmL3RleHQvQ1N0cmluZy5oPiddCiAKICAgICAgICAgaGVh
ZGVyX2FyZ3MgPSB7Ci0gICAgICAgICAgICAncHJpbWFyeUluY2x1ZGUnOiAnIkluc3BlY3RvclBy
b3RvY29sT2JqZWN0cy5oIicsCisgICAgICAgICAgICAncHJpbWFyeUluY2x1ZGUnOiAnIiVzUHJv
dG9jb2xPYmplY3RzLmgiJyAlIHNlbGYucHJvdG9jb2xfbmFtZSgpLAogICAgICAgICAgICAgJ3Nl
Y29uZGFyeUluY2x1ZGVzJzogIlxuIi5qb2luKFsnI2luY2x1ZGUgJXMnICUgaGVhZGVyIGZvciBo
ZWFkZXIgaW4gc2Vjb25kYXJ5X2hlYWRlcnNdKSwKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9tb2RlbHMucHkg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9tb2RlbHMu
cHkKaW5kZXggM2Y0MGJlOGNiYzgxZDdiNjJiOGU5NjM5ZTQxZWZiMmZjYjk3MjdiMC4uY2NiODg4
NjMwYzUzYmZlYjhjYWIyOGVkOWEzMTdiZDE5Yzk0OGFjNSAxMDA3NTUKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vbW9kZWxzLnB5CisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL21vZGVscy5weQpA
QCAtNDIsNiArNDIsNyBAQCBfRlJBTUVXT1JLX0NPTkZJR19NQVAgPSB7CiAgICAgIkdsb2JhbCI6
IHsKICAgICB9LAogICAgICJKYXZhU2NyaXB0Q29yZSI6IHsKKyAgICAgICAgInByb3RvY29sX2dy
b3VwIjogIkluc3BlY3RvciIsCiAgICAgICAgICJleHBvcnRfbWFjcm8iOiAiSlNfRVhQT1JUX1BS
SVZBVEUiLAogICAgICAgICAiYWx0ZXJuYXRlX2Rpc3BhdGNoZXJzIjogVHJ1ZSwKICAgICB9LApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDk0NmQ0MDE4MTE0Mzc0NTRjNzc1M2I5OWY5MmFk
OGNkYWVlYjk5ZjMuLmUwNDQ3ZDc0YTFjYTg3YmVlNzBkNTMyNDUwNDk1ZjU3MTA5NjkwOTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oIgogCiAjaW5jbHVkZSAiQVBJQXV0b21hdGlvblNlc3Npb25DbGll
bnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCIKKyNpbmNsdWRlICJB
dXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uaAppbmRleCAyZmQ4YWE1NDEwZTE5MmVhZDRkNWJhMTNmODNmNzU3YjE5N2Y2
NGM5Li41ZjUyNWZlNzA2ZWMwMWU0MzI3Nzg5Yzk3ZDBjOGE5ZTE2NTkzM2I1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2ViQXV0b21hdGlvblNlc3Np
b25faAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXJzLmgiCisjaW5jbHVkZSAiQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RP
UikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274916</attachid>
            <date>2016-03-25 10:26:35 -0700</date>
            <delta_ts>2022-03-01 02:44:12 -0800</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-155859-20160325102637.patch</filename>
            <type>text/plain</type>
            <size>126501</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTJmZWQ0ZTRkMzliYzI5ZDhlYTA5N2RiZjFlNGQ1OTNiNjcxZmJhLi45NGZiNTZhZmNkNWFlOTE5
OTU5ZDJlZDMwNWYyNjRlMDg3YjhlNjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MiBAQAorMjAxNi0wMy0yNSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm90b2NvbCBnZW5lcmF0b3Igc2hvdWxkIHByZWZpeCBD
KysgZmlsZW5hbWVzIHdpdGggdGhlIHByb3RvY29sIGdyb3VwCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU4NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI1MzQ5ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIExpa2UgZm9yIGdlbmVyYXRlZCBPYmplY3RpdmUtQyBmaWxlcywgd2Ugc2hvdWxkIHVz
ZSB0aGUgJ3Byb3RvY29sIGdyb3VwJyBuYW1lCisgICAgICAgIGFzIHRoZSBwcmVmaXggZm9yIGdl
bmVyYXRlZCBDKysgZmlsZXMgc28gdGhhdCBoZWFkZXJzIGZyb20gZGlmZmVyZW50IHByb3RvY29s
CisgICAgICAgIGdyb3VwcyBoYXZlIHVuYW1iaWd1b3VzIG5hbWVzLgorCisgICAgICAgICogaW5z
cGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJhdG9yLnB5OgorICAgICAgICAoQ3BwR2Vu
ZXJhdG9yKToKKyAgICAgICAgKENwcEdlbmVyYXRvci5fX2luaXRfXyk6CisgICAgICAgIChDcHBH
ZW5lcmF0b3IucHJvdG9jb2xfbmFtZSk6CisgICAgICAgIE1ha2UgYWxsIEMrKyBjb2RlIGdlbmVy
YXRvcnMgZXh0ZW5kIHRoZSBDcHBHZW5lcmF0b3IgcHl0aG9uIGNsYXNzIGFuZCB1c2UgdGhlCisg
ICAgICAgIHByb3RvY29sX25hbWUoKSBpbnN0YW5jZSBtZXRob2QuIFRoaXMgbWF0Y2hlcyBhIHJl
Y2VudCBjaGFuZ2UgdG8gdGhlIE9iakMgZ2VuZXJhdG9yLgorCisgICAgICAgICogaW5zcGVjdG9y
L3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weToKKyAgICAgICAgKENw
cEdlbmVyYXRvclRlbXBsYXRlcyk6CisgICAgICAgIERyaXZlLWJ5IGNsZWFudXAgdG8gdXNlICNw
cmFnbWEgb25jZSBpbnN0ZWFkIG9mIGhlYWRlciBndWFyZHMuCisKKyAgICAgICAgKiBpbnNwZWN0
b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9hbHRlcm5hdGVfYmFja2VuZF9kaXNwYXRj
aGVyX2hlYWRlci5weToKKyAgICAgICAgKENwcEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVySGVh
ZGVyR2VuZXJhdG9yKToKKyAgICAgICAgKENwcEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVySGVh
ZGVyR2VuZXJhdG9yLl9faW5pdF9fKToKKyAgICAgICAgKENwcEFsdGVybmF0ZUJhY2tlbmREaXNw
YXRjaGVySGVhZGVyR2VuZXJhdG9yLm91dHB1dF9maWxlbmFtZSk6CisgICAgICAgIChDcHBBbHRl
cm5hdGVCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRvci5nZW5lcmF0ZV9vdXRwdXQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRf
ZGlzcGF0Y2hlcl9oZWFkZXIucHk6CisgICAgICAgIChDcHBCYWNrZW5kRGlzcGF0Y2hlckhlYWRl
ckdlbmVyYXRvcik6CisgICAgICAgIChDcHBCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRv
ci5fX2luaXRfXyk6CisgICAgICAgIChDcHBCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRv
ci5vdXRwdXRfZmlsZW5hbWUpOgorICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJIZWFkZXJH
ZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9j
b2RlZ2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHk6
CisgICAgICAgIChDcHBCYWNrZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKToK
KyAgICAgICAgKENwcEJhY2tlbmREaXNwYXRjaGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IuX19p
bml0X18pOgorICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVy
YXRvci5vdXRwdXRfZmlsZW5hbWUpOgorICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJJbXBs
ZW1lbnRhdGlvbkdlbmVyYXRvci5nZW5lcmF0ZV9vdXRwdXQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaGVhZGVy
LnB5OgorICAgICAgICAoQ3BwRnJvbnRlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yKToKKyAg
ICAgICAgKENwcEZyb250ZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRvci5fX2luaXRfXyk6Cisg
ICAgICAgIChDcHBGcm9udGVuZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3Iub3V0cHV0X2ZpbGVu
YW1lKToKKyAgICAgICAgKENwcEZyb250ZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRvci5nZW5l
cmF0ZV9vdXRwdXQpOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJh
dGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHk6CisgICAgICAgIChD
cHBGcm9udGVuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcik6CisgICAgICAgIChD
cHBGcm9udGVuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvci5fX2luaXRfXyk6Cisg
ICAgICAgIChDcHBGcm9udGVuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvci5vdXRw
dXRfZmlsZW5hbWUpOgorICAgICAgICAoQ3BwRnJvbnRlbmREaXNwYXRjaGVySW1wbGVtZW50YXRp
b25HZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19oZWFkZXIucHk6CisgICAgICAg
IChDcHBQcm90b2NvbFR5cGVzSGVhZGVyR2VuZXJhdG9yKToKKyAgICAgICAgKENwcFByb3RvY29s
VHlwZXNIZWFkZXJHZW5lcmF0b3IuX19pbml0X18pOgorICAgICAgICAoQ3BwUHJvdG9jb2xUeXBl
c0hlYWRlckdlbmVyYXRvci5vdXRwdXRfZmlsZW5hbWUpOgorICAgICAgICAoQ3BwUHJvdG9jb2xU
eXBlc0hlYWRlckdlbmVyYXRvci5nZW5lcmF0ZV9vdXRwdXQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0
aW9uLnB5OgorICAgICAgICAoQ3BwUHJvdG9jb2xUeXBlc0ltcGxlbWVudGF0aW9uR2VuZXJhdG9y
KToKKyAgICAgICAgKENwcFByb3RvY29sVHlwZXNJbXBsZW1lbnRhdGlvbkdlbmVyYXRvci5fX2lu
aXRfXyk6CisgICAgICAgIChDcHBQcm90b2NvbFR5cGVzSW1wbGVtZW50YXRpb25HZW5lcmF0b3Iu
b3V0cHV0X2ZpbGVuYW1lKToKKyAgICAgICAgKENwcFByb3RvY29sVHlwZXNJbXBsZW1lbnRhdGlv
bkdlbmVyYXRvci5nZW5lcmF0ZV9vdXRwdXQpOgorICAgICAgICBVc2UgdGhlIHByb3RvY29sX25h
bWUoKSBpbnN0YW5jZSBtZXRob2QgdG8gY29tcHV0ZSBnZW5lcmF0ZWQgcHJvdG9jb2wgZmlsZSBu
YW1lcy4KKworICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vbW9kZWxzLnB5Ogor
ICAgICAgICBFeHBsaWNpdGx5IHNldCB0aGUgJ3Byb3RvY29sX2dyb3VwJyBmb3IgdGhlIEluc3Bl
Y3RvciBwcm90b2NvbC4KKworICAgICAgICBSZWJhc2VsaW5lIGdlbmVyYXRvciB0ZXN0IHJlc3Vs
dHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9jb21tYW5k
cy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlvbmFsLWNhbGwtcmV0dXJu
LXBhcmFtZXRlcnMuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFuZC1zaXplcy5qc29uLXJlc3Vs
dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9lbnVtLXZhbHVl
cy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3Rl
ZC9ldmVudHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0OgorICAgICAgICAq
IGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1m
ZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9zYW1lLXR5cGUtaWQtZGlmZmVyZW50LWRvbWFpbi5qc29uLXJlc3VsdDoK
KyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9zaGFkb3dlZC1vcHRp
b25hbC10eXBlLXNldHRlcnMuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1hbGlhc2VkLXByaW1pdGl2ZS10eXBl
Lmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVk
L3R5cGUtZGVjbGFyYXRpb24tYXJyYXktdHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNw
ZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWVudW0tdHlwZS5q
c29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90
eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMu
anNvbi1yZXN1bHQ6CisKIDIwMTYtMDMtMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggTWFjIENNYWtlIGJ1aWxkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDE0OTA1MzI0ZWVkNjgzMDgwOWM3NGIyODYzMjM2NjRhZGFmZGZkZjIuLmE5MGM2Y2E0NzIw
NGUzNTE5MTRmNTZmN2I2ZTZjOWY3OWZkNjVhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxNi0wMy0yNSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBwcm90b2NvbCBnZW5lcmF0b3Igc2hvdWxkIHByZWZpeCBDKysgZmlsZW5h
bWVzIHdpdGggdGhlIHByb3RvY29sIGdyb3VwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU4NTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1MzQ5
ODU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
anVzdCBoZWFkZXIgaW5jbHVkZSBhbmQgYnVpbGQgc3lzdGVtIHBhdGhzLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAg
KiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMDMtMjUgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUg
dW51c2VkIGxhbWJkYSBjYXB0dXJlIGFmdGVyIHIxOTY5ODQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJhdG9yLnB5
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vY3BwX2dl
bmVyYXRvci5weQppbmRleCBlZGQzMzBkYTQ4ZDAxYTMyNTA5NjNmZDAxZGUyYjk4NDEwZDkxMGIw
Li5kOGQ2MzM1NmZlY2Q5MmFlMWZiZmRlNTJlOThmZjc1MzM3Y2M5YmM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJh
dG9yLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2Rl
Z2VuL2NwcF9nZW5lcmF0b3IucHkKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBweXRo
b24KICMKLSMgQ29weXJpZ2h0IChjKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yOCw3ICsyOCw3IEBAIGltcG9y
dCBsb2dnaW5nCiBpbXBvcnQgb3MucGF0aAogaW1wb3J0IHJlCiAKLWZyb20gZ2VuZXJhdG9yIGlt
cG9ydCB1Y2ZpcnN0Citmcm9tIGdlbmVyYXRvciBpbXBvcnQgdWNmaXJzdCwgR2VuZXJhdG9yCiBm
cm9tIG1vZGVscyBpbXBvcnQgUHJpbWl0aXZlVHlwZSwgT2JqZWN0VHlwZSwgQXJyYXlUeXBlLCBF
bnVtVHlwZSwgQWxpYXNlZFR5cGUsIEZyYW1ld29ya3MKIAogbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoJ2dsb2JhbCcpCkBAIC00MywxMCArNDMsMTIgQEAgX1BSSU1JVElWRV9UT19DUFBfTkFNRV9N
QVAgPSB7CiAgICAgJ2FueSc6ICdJbnNwZWN0b3I6Okluc3BlY3RvclZhbHVlJwogfQogCi0jIFRo
aXMgY2xhc3MgY29udGFpbnMgZXh0cmEgc3RhdGljIG1ldGhvZHMgdXNlZCBmb3IgZ2VuZXJhdGlv
biwgYnV0IGRvZXMKLSMgbm90IHBhcnRpY2lwYXRlIGluIGFueSBpbmhlcml0YW5jZSBoaWVyYXJj
aHkuIEZpbGUgZ2VuZXJhdG9ycyBzaG91bGQKLSMgZXh0ZW5kIHRoZSBnZW5lcmljICJHZW5lcmF0
b3IiIGNsYXNzIGluc3RlYWQuCi1jbGFzcyBDcHBHZW5lcmF0b3I6CitjbGFzcyBDcHBHZW5lcmF0
b3IoR2VuZXJhdG9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIGlucHV0X2ZpbGVw
YXRoKToKKyAgICAgICAgR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxl
cGF0aCkKKworICAgIGRlZiBwcm90b2NvbF9uYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdwcm90b2NvbF9ncm91cCcsICcnKQogCiAgICAg
IyBNaXNjZWxsYW5lb3VzIHRleHQgbWFuaXB1bGF0aW9uIHJvdXRpbmVzLgogICAgIEBzdGF0aWNt
ZXRob2QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vY3BwX2dlbmVyYXRvcl90ZW1wbGF0ZXMucHkK
aW5kZXggYmUyZTk3OWZiYmU4OThlZTNlMmEzYjdkNDY2OWMzNzljOGIyNWMzZi4uYjI1MjNmZmUy
NTY1NTI0NTU1OTM3ZjYzODM5YTkyN2Q0YzA3YmEyMiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vY3BwX2dlbmVyYXRvcl90ZW1wbGF0
ZXMucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVn
ZW4vY3BwX2dlbmVyYXRvcl90ZW1wbGF0ZXMucHkKQEAgLTMwLDggKzMwLDcgQEAKIGNsYXNzIENw
cEdlbmVyYXRvclRlbXBsYXRlczoKIAogICAgIEhlYWRlclByZWx1ZGUgPSAoCi0gICAgIiIiI2lm
bmRlZiAke2hlYWRlckd1YXJkU3RyaW5nfQotI2RlZmluZSAke2hlYWRlckd1YXJkU3RyaW5nfQor
ICAgICIiIiNwcmFnbWEgb25jZQogCiAke2luY2x1ZGVzfQogCkBAIC00MCw5ICszOSw3IEBAIG5h
bWVzcGFjZSBJbnNwZWN0b3IgewogJHt0eXBlZGVmc30iIiIpCiAKICAgICBIZWFkZXJQb3N0bHVk
ZSA9ICgKLSAgICAiIiJ9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKLQotI2VuZGlmIC8vICFkZWZp
bmVkKCR7aGVhZGVyR3VhcmRTdHJpbmd9KSIiIikKKyAgICAiIiJ9IC8vIG5hbWVzcGFjZSBJbnNw
ZWN0b3IiIiIpCiAKICAgICBJbXBsZW1lbnRhdGlvblByZWx1ZGUgPSAoCiAgICAgIiIiI2luY2x1
ZGUgImNvbmZpZy5oIgpAQCAtNTcsOCArNTQsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsiIiIp
CiAiIiIpCiAKICAgICBBbHRlcm5hdGVEaXNwYXRjaGVyc0hlYWRlclByZWx1ZGUgPSAoCi0gICAg
IiIiI2lmbmRlZiAke2hlYWRlckd1YXJkU3RyaW5nfQotI2RlZmluZSAke2hlYWRlckd1YXJkU3Ry
aW5nfQorICAgICIiIiNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5B
VEVfRElTUEFUQ0hFUlMpCiAKQEAgLTc4LDkgKzc0LDcgQEAgcHJpdmF0ZToKICAgICBBbHRlcm5h
dGVEaXNwYXRjaGVyc0hlYWRlclBvc3RsdWRlID0gKAogICAgICIiIn0gLy8gbmFtZXNwYWNlIElu
c3BlY3RvcgogCi0jZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hF
UlMpCi0KLSNlbmRpZiAvLyAhZGVmaW5lZCgke2hlYWRlckd1YXJkU3RyaW5nfSkiIiIpCisjZW5k
aWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpIiIiKQogCiAgICAg
QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJIZWFkZXJEb21haW5IYW5kbGVySW50ZXJmYWNlRGVj
bGFyYXRpb24gPSAoCiAgICAgIiIiY2xhc3MgQWx0ZXJuYXRlJHtkb21haW5OYW1lfUJhY2tlbmRE
aXNwYXRjaGVyIDogcHVibGljIEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVyIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVy
YXRlX2NwcF9hbHRlcm5hdGVfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9hbHRl
cm5hdGVfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weQppbmRleCAzNzVjZTA1Y2E0NGFiNGU0
MDk1NTgzNTQ2NzM3MDMzMjJkNTkxYWI0Li4yOTc1NjE1ZTZiMDNiNTVhMTk4NGY4ZDEzMTUyZDY5
NTUzODM2NjdiIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYWx0ZXJuYXRlX2JhY2tlbmRfZGlzcGF0Y2hlcl9o
ZWFkZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vZ2VuZXJhdGVfY3BwX2FsdGVybmF0ZV9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5
CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjCi0jIENvcHlyaWdodCAo
YykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykg
MjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAo
YykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtMzIsMjcgKzMyLDI1IEBAIGZyb20gc3RyaW5nIGltcG9ydCBUZW1w
bGF0ZQogCiBmcm9tIGNwcF9nZW5lcmF0b3IgaW1wb3J0IENwcEdlbmVyYXRvcgogZnJvbSBjcHBf
Z2VuZXJhdG9yX3RlbXBsYXRlcyBpbXBvcnQgQ3BwR2VuZXJhdG9yVGVtcGxhdGVzIGFzIENwcFRl
bXBsYXRlcwotZnJvbSBnZW5lcmF0b3IgaW1wb3J0IEdlbmVyYXRvcgogCiBsb2cgPSBsb2dnaW5n
LmdldExvZ2dlcignZ2xvYmFsJykKIAogCi1jbGFzcyBDcHBBbHRlcm5hdGVCYWNrZW5kRGlzcGF0
Y2hlckhlYWRlckdlbmVyYXRvcihHZW5lcmF0b3IpOgorY2xhc3MgQ3BwQWx0ZXJuYXRlQmFja2Vu
ZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3IoQ3BwR2VuZXJhdG9yKToKICAgICBkZWYgX19pbml0
X18oc2VsZiwgbW9kZWwsIGlucHV0X2ZpbGVwYXRoKToKLSAgICAgICAgR2VuZXJhdG9yLl9faW5p
dF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0aCkKKyAgICAgICAgQ3BwR2VuZXJhdG9yLl9f
aW5pdF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0aCkKIAogICAgIGRlZiBvdXRwdXRfZmls
ZW5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERp
c3BhdGNoZXJzLmgnCisgICAgICAgIHJldHVybiAnJXNBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hl
cnMuaCcgJSBzZWxmLnByb3RvY29sX25hbWUoKQogCiAgICAgZGVmIGdlbmVyYXRlX291dHB1dChz
ZWxmKToKICAgICAgICAgaGVhZGVycyA9IFsKLSAgICAgICAgICAgICciSW5zcGVjdG9yUHJvdG9j
b2xUeXBlcy5oIicsCisgICAgICAgICAgICAnIiVzUHJvdG9jb2xUeXBlcy5oIicgJSBzZWxmLnBy
b3RvY29sX25hbWUoKSwKICAgICAgICAgICAgICc8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Um91dGVyLmg+JywKICAgICAgICAgICAgICc8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIuaD4nLAogICAgICAgICBdCiAKICAgICAgICAgaGVhZGVyX2FyZ3MgPSB7Ci0g
ICAgICAgICAgICAnaGVhZGVyR3VhcmRTdHJpbmcnOiByZS5zdWIoJ1xXKycsICdfJywgc2VsZi5v
dXRwdXRfZmlsZW5hbWUoKSksCiAgICAgICAgICAgICAnaW5jbHVkZXMnOiAnXG4nLmpvaW4oWycj
aW5jbHVkZSAnICsgaGVhZGVyIGZvciBoZWFkZXIgaW4gaGVhZGVyc10pLAogICAgICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2Rl
Z2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tl
bmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKaW5kZXggNWViZDgyZmJkNzZjOTFkYmJkNjdkOTlmZTc5
MDE5NGE4NjlmMmNiNy4uODUwM2Y2YmI2ZGZhNGI3NDA0Nzg4YmE3MmNhOWNmYTFhMjNkMmI3NSAx
MDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVn
ZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2Jh
Y2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2Vu
diBweXRob24KICMKLSMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNo
aW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM4LDI2ICsz
OCwyNSBAQCBmcm9tIG1vZGVscyBpbXBvcnQgRW51bVR5cGUKIGxvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKCdnbG9iYWwnKQogCiAKLWNsYXNzIENwcEJhY2tlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJh
dG9yKEdlbmVyYXRvcik6CitjbGFzcyBDcHBCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRv
cihDcHBHZW5lcmF0b3IpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2RlbCwgaW5wdXRfZmls
ZXBhdGgpOgotICAgICAgICBHZW5lcmF0b3IuX19pbml0X18oc2VsZiwgbW9kZWwsIGlucHV0X2Zp
bGVwYXRoKQorICAgICAgICBDcHBHZW5lcmF0b3IuX19pbml0X18oc2VsZiwgbW9kZWwsIGlucHV0
X2ZpbGVwYXRoKQogCiAgICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKLSAgICAgICAgcmV0
dXJuICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKKyAgICAgICAgcmV0dXJuICIlc0Jh
Y2tlbmREaXNwYXRjaGVycy5oIiAlIHNlbGYucHJvdG9jb2xfbmFtZSgpCiAKICAgICBkZWYgZG9t
YWluc190b19nZW5lcmF0ZShzZWxmKToKICAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEgZG9t
YWluOiBsZW4oZG9tYWluLmNvbW1hbmRzKSA+IDAsIEdlbmVyYXRvci5kb21haW5zX3RvX2dlbmVy
YXRlKHNlbGYpKQogCiAgICAgZGVmIGdlbmVyYXRlX291dHB1dChzZWxmKToKICAgICAgICAgaGVh
ZGVycyA9IFsKLSAgICAgICAgICAgICciSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiJywKKyAg
ICAgICAgICAgICciJXNQcm90b2NvbE9iamVjdHMuaCInICUgc2VsZi5wcm90b2NvbF9uYW1lKCks
CiAgICAgICAgICAgICAnPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPics
CiAgICAgICAgICAgICAnPHd0Zi90ZXh0L1dURlN0cmluZy5oPiddCiAKICAgICAgICAgdHlwZWRl
ZnMgPSBbKCdTdHJpbmcnLCAnRXJyb3JTdHJpbmcnKV0KIAogICAgICAgICBoZWFkZXJfYXJncyA9
IHsKLSAgICAgICAgICAgICdoZWFkZXJHdWFyZFN0cmluZyc6IHJlLnN1YignXFcrJywgJ18nLCBz
ZWxmLm91dHB1dF9maWxlbmFtZSgpKSwKICAgICAgICAgICAgICdpbmNsdWRlcyc6ICdcbicuam9p
bihbJyNpbmNsdWRlICcgKyBoZWFkZXIgZm9yIGhlYWRlciBpbiBoZWFkZXJzXSksCiAgICAgICAg
ICAgICAndHlwZWRlZnMnOiAnXG4nLmpvaW4oWyd0eXBlZGVmICVzICVzOycgJSB0eXBlZGVmIGZv
ciB0eXBlZGVmIGluIHR5cGVkZWZzXSksCiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9iYWNr
ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVy
X2ltcGxlbWVudGF0aW9uLnB5CmluZGV4IDBhNDYxODM0ZDY1ZDI1ZTVjMGI0NmUyY2E0ZDk2NmI0
MmVmMTQwOTIuLjM4ZDhhYTc4MjdjNmNkNzI2Yjk5NWM5MTZiYWM2NzI0MWY5NDg2NTQgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dl
bmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3Bw
X2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQpAQCAtMSw2ICsxLDYgQEAKICMh
L3Vzci9iaW4vZW52IHB5dGhvbgogIwotIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoYykgMjAxNCBVbml2ZXJz
aXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMzcsMTIgKzM3LDEyIEBAIGZyb20gbW9kZWxzIGltcG9ydCBPYmplY3RUeXBlLCBBcnJheVR5
cGUKIGxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdnbG9iYWwnKQogCiAKLWNsYXNzIENwcEJhY2tl
bmREaXNwYXRjaGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IoR2VuZXJhdG9yKToKK2NsYXNzIENw
cEJhY2tlbmREaXNwYXRjaGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IoQ3BwR2VuZXJhdG9yKToK
ICAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIGlucHV0X2ZpbGVwYXRoKToKLSAgICAgICAg
R2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0aCkKKyAgICAgICAg
Q3BwR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0aCkKIAogICAg
IGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAiSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXJzLmNwcCIKKyAgICAgICAgcmV0dXJuICIlc0JhY2tlbmREaXNwYXRjaGVy
cy5jcHAiICUgc2VsZi5wcm90b2NvbF9uYW1lKCkKIAogICAgIGRlZiBkb21haW5zX3RvX2dlbmVy
YXRlKHNlbGYpOgogICAgICAgICByZXR1cm4gZmlsdGVyKGxhbWJkYSBkb21haW46IGxlbihkb21h
aW4uY29tbWFuZHMpID4gMCwgR2VuZXJhdG9yLmRvbWFpbnNfdG9fZ2VuZXJhdGUoc2VsZikpCkBA
IC01OSwxMSArNTksMTEgQEAgY2xhc3MgQ3BwQmFja2VuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlv
bkdlbmVyYXRvcihHZW5lcmF0b3IpOgogICAgICAgICBpZiBzZWxmLm1vZGVsKCkuZnJhbWV3b3Jr
LnNldHRpbmcoJ2FsdGVybmF0ZV9kaXNwYXRjaGVycycsIEZhbHNlKToKICAgICAgICAgICAgIHNl
Y29uZGFyeV9pbmNsdWRlcy5hcHBlbmQoJycpCiAgICAgICAgICAgICBzZWNvbmRhcnlfaW5jbHVk
ZXMuYXBwZW5kKCcjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpJykK
LSAgICAgICAgICAgIHNlY29uZGFyeV9pbmNsdWRlcy5hcHBlbmQoJyNpbmNsdWRlICJJbnNwZWN0
b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCInKQorICAgICAgICAgICAgc2Vjb25kYXJ5
X2luY2x1ZGVzLmFwcGVuZCgnI2luY2x1ZGUgIiVzQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJz
LmgiJyAlIHNlbGYucHJvdG9jb2xfbmFtZSgpKQogICAgICAgICAgICAgc2Vjb25kYXJ5X2luY2x1
ZGVzLmFwcGVuZCgnI2VuZGlmJykKIAogICAgICAgICBoZWFkZXJfYXJncyA9IHsKLSAgICAgICAg
ICAgICdwcmltYXJ5SW5jbHVkZSc6ICciSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgiJywK
KyAgICAgICAgICAgICdwcmltYXJ5SW5jbHVkZSc6ICciJXNCYWNrZW5kRGlzcGF0Y2hlcnMuaCIn
ICUgc2VsZi5wcm90b2NvbF9uYW1lKCksCiAgICAgICAgICAgICAnc2Vjb25kYXJ5SW5jbHVkZXMn
OiAnXG4nLmpvaW4oc2Vjb25kYXJ5X2luY2x1ZGVzKSwKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0
ZV9jcHBfZnJvbnRlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfZnJvbnRlbmRfZGlzcGF0
Y2hlcl9oZWFkZXIucHkKaW5kZXggNThhM2NiOTI1NTE3YTUzYjA1NWQ1MDM3NjhjODg3MzZmYTg3
YTVhZC4uZjU5Yjk4NGVkNzJmYjc0YTYzMDJlMGU1YmFiY2I5MjZiZmUyZTkwOCAxMDA3NTUKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJh
dGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9mcm9udGVuZF9k
aXNwYXRjaGVyX2hlYWRlci5weQpAQCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhv
bgogIwotIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoYykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzgsMjQgKzM4LDIzIEBA
IGZyb20gbW9kZWxzIGltcG9ydCBFbnVtVHlwZQogbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2ds
b2JhbCcpCiAKIAotY2xhc3MgQ3BwRnJvbnRlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yKEdl
bmVyYXRvcik6CitjbGFzcyBDcHBGcm9udGVuZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3IoQ3Bw
R2VuZXJhdG9yKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIGlucHV0X2ZpbGVwYXRo
KToKLSAgICAgICAgR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxlcGF0
aCkKKyAgICAgICAgQ3BwR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsLCBpbnB1dF9maWxl
cGF0aCkKIAogICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAi
SW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oIgorICAgICAgICByZXR1cm4gIiVzRnJvbnRl
bmREaXNwYXRjaGVycy5oIiAlIHNlbGYucHJvdG9jb2xfbmFtZSgpCiAKICAgICBkZWYgZG9tYWlu
c190b19nZW5lcmF0ZShzZWxmKToKICAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEgZG9tYWlu
OiBsZW4oZG9tYWluLmV2ZW50cykgPiAwLCBHZW5lcmF0b3IuZG9tYWluc190b19nZW5lcmF0ZShz
ZWxmKSkKIAogICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6CiAgICAgICAgIGhlYWRlcnMg
PSBbCi0gICAgICAgICAgICAnIkluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIicsCisgICAgICAg
ICAgICAnIiVzUHJvdG9jb2xPYmplY3RzLmgiJyAlIHNlbGYucHJvdG9jb2xfbmFtZSgpLAogICAg
ICAgICAgICAgJzxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+JywKICAgICAgICAgICAgICc8
d3RmL3RleHQvV1RGU3RyaW5nLmg+J10KIAogICAgICAgICBoZWFkZXJfYXJncyA9IHsKLSAgICAg
ICAgICAgICdoZWFkZXJHdWFyZFN0cmluZyc6IHJlLnN1YignXFcrJywgJ18nLCBzZWxmLm91dHB1
dF9maWxlbmFtZSgpKSwKICAgICAgICAgICAgICdpbmNsdWRlcyc6ICdcbicuam9pbihbJyNpbmNs
dWRlICcgKyBoZWFkZXIgZm9yIGhlYWRlciBpbiBoZWFkZXJzXSksCiAgICAgICAgICAgICAndHlw
ZWRlZnMnOiAnY2xhc3MgRnJvbnRlbmRSb3V0ZXI7JywKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVf
Y3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfZnJvbnRlbmRf
ZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQppbmRleCBlYTQ2YWFmMjYxOGE3OGU2OWU5MjZj
YzlkOGRjMjgwNzRiOWUyZTk3Li4xYTgyZjI4ZjlkMjc4ZDhjN2U2MDBkYzNjYWYyYzdkNjhkMzdl
MDZkIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfZnJvbnRlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5w
eQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9n
ZW5lcmF0ZV9jcHBfZnJvbnRlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQpAQCAtMSw2
ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhvbgogIwotIyBDb3B5cmlnaHQgKGMpIDIwMTQs
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIw
MTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoYykg
MjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dApAQCAtMzcsMTIgKzM3LDEyIEBAIGZyb20gbW9kZWxzIGltcG9ydCBPYmplY3RU
eXBlLCBBcnJheVR5cGUKIGxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdnbG9iYWwnKQogCiAKLWNs
YXNzIENwcEZyb250ZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKEdlbmVyYXRv
cik6CitjbGFzcyBDcHBGcm9udGVuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihD
cHBHZW5lcmF0b3IpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2RlbCwgaW5wdXRfZmlsZXBh
dGgpOgotICAgICAgICBHZW5lcmF0b3IuX19pbml0X18oc2VsZiwgbW9kZWwsIGlucHV0X2ZpbGVw
YXRoKQorICAgICAgICBDcHBHZW5lcmF0b3IuX19pbml0X18oc2VsZiwgbW9kZWwsIGlucHV0X2Zp
bGVwYXRoKQogCiAgICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJu
ICJJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmNwcCIKKyAgICAgICAgcmV0dXJuICIlc0Zy
b250ZW5kRGlzcGF0Y2hlcnMuY3BwIiAlIHNlbGYucHJvdG9jb2xfbmFtZSgpCiAKICAgICBkZWYg
ZG9tYWluc190b19nZW5lcmF0ZShzZWxmKToKICAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEg
ZG9tYWluOiBsZW4oZG9tYWluLmV2ZW50cykgPiAwLCBHZW5lcmF0b3IuZG9tYWluc190b19nZW5l
cmF0ZShzZWxmKSkKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgQ3BwRnJvbnRlbmREaXNwYXRjaGVy
SW1wbGVtZW50YXRpb25HZW5lcmF0b3IoR2VuZXJhdG9yKToKICAgICAgICAgXQogCiAgICAgICAg
IGhlYWRlcl9hcmdzID0gewotICAgICAgICAgICAgJ3ByaW1hcnlJbmNsdWRlJzogJyJJbnNwZWN0
b3JGcm9udGVuZERpc3BhdGNoZXJzLmgiJywKKyAgICAgICAgICAgICdwcmltYXJ5SW5jbHVkZSc6
ICciJXNGcm9udGVuZERpc3BhdGNoZXJzLmgiJyAlIHNlbGYucHJvdG9jb2xfbmFtZSgpLAogICAg
ICAgICAgICAgJ3NlY29uZGFyeUluY2x1ZGVzJzogIlxuIi5qb2luKFsnI2luY2x1ZGUgJXMnICUg
aGVhZGVyIGZvciBoZWFkZXIgaW4gc2Vjb25kYXJ5X2hlYWRlcnNdKSwKICAgICAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdl
bi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5
cGVzX2hlYWRlci5weQppbmRleCA2NzUzZTJkY2Y4OGVhOTI5ZmYxYmMyYmY5MGIxMTQ5ZTc2MDU5
MGQ2Li5iNWIzOTQ4ZDJjOWQ2OTVmMjQ5ZmVjZDdmMDRmNTJkZjQ0YzZlNDA1IDEwMDc1NQotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0
ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19o
ZWFkZXIucHkKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBweXRob24KICMKLSMgQ29w
eXJpZ2h0IChjKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChjKSAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29w
eXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zOCwxMiArMzgsMTIgQEAgZnJvbSBtb2RlbHMgaW1w
b3J0IEVudW1UeXBlLCBPYmplY3RUeXBlLCBQcmltaXRpdmVUeXBlLCBBbGlhc2VkVHlwZSwgQXJy
YXlUeXBlLAogbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2dsb2JhbCcpCiAKIAotY2xhc3MgQ3Bw
UHJvdG9jb2xUeXBlc0hlYWRlckdlbmVyYXRvcihHZW5lcmF0b3IpOgorY2xhc3MgQ3BwUHJvdG9j
b2xUeXBlc0hlYWRlckdlbmVyYXRvcihDcHBHZW5lcmF0b3IpOgogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBtb2RlbCwgaW5wdXRfZmlsZXBhdGgpOgotICAgICAgICBHZW5lcmF0b3IuX19pbml0X18o
c2VsZiwgbW9kZWwsIGlucHV0X2ZpbGVwYXRoKQorICAgICAgICBDcHBHZW5lcmF0b3IuX19pbml0
X18oc2VsZiwgbW9kZWwsIGlucHV0X2ZpbGVwYXRoKQogCiAgICAgZGVmIG91dHB1dF9maWxlbmFt
ZShzZWxmKToKLSAgICAgICAgcmV0dXJuICJJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCIKKyAg
ICAgICAgcmV0dXJuICIlc1Byb3RvY29sT2JqZWN0cy5oIiAlIHNlbGYucHJvdG9jb2xfbmFtZSgp
CiAKICAgICBkZWYgZ2VuZXJhdGVfb3V0cHV0KHNlbGYpOgogICAgICAgICBkb21haW5zID0gc2Vs
Zi5kb21haW5zX3RvX2dlbmVyYXRlKCkKQEAgLTU3LDcgKzU3LDYgQEAgY2xhc3MgQ3BwUHJvdG9j
b2xUeXBlc0hlYWRlckdlbmVyYXRvcihHZW5lcmF0b3IpOgogICAgICAgICBleHBvcnRfbWFjcm8g
PSBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ2V4cG9ydF9tYWNybycsIE5vbmUpCiAK
ICAgICAgICAgaGVhZGVyX2FyZ3MgPSB7Ci0gICAgICAgICAgICAnaGVhZGVyR3VhcmRTdHJpbmcn
OiByZS5zdWIoJ1xXKycsICdfJywgc2VsZi5vdXRwdXRfZmlsZW5hbWUoKSksCiAgICAgICAgICAg
ICAnaW5jbHVkZXMnOiAnXG4nLmpvaW4oWycjaW5jbHVkZSAnICsgaGVhZGVyIGZvciBoZWFkZXIg
aW4gc29ydGVkKGhlYWRlcnMpXSksCiAgICAgICAgICAgICAndHlwZWRlZnMnOiAnJywKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2NvZGVnZW4vZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVf
Y3BwX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5CmluZGV4IDJjMjYzYjUwNGJhOTZj
MjA1ODA5Mzg1NjVmMzcxODEwNTBlMzkzNTguLjRhYTc4YzE2MDYwZjhkZTI1NjgwNTIzYzNlMjQz
NjRkZTVkYTIzZDAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19pbXBsZW1lbnRhdGlv
bi5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdl
bi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaW1wbGVtZW50YXRpb24ucHkKQEAgLTEsNiAr
MSw2IEBACiAjIS91c3IvYmluL2VudiBweXRob24KICMKLSMgQ29weXJpZ2h0IChjKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChjKSAyMDE0IFVu
aXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC0zNywxMiArMzcsMTIgQEAgZnJvbSBtb2RlbHMgaW1wb3J0IEFsaWFzZWRUeXBlLCBB
cnJheVR5cGUsIEVudW1UeXBlLCBPYmplY3RUeXBlCiBsb2cgPSBsb2dnaW5nLmdldExvZ2dlcign
Z2xvYmFsJykKIAogCi1jbGFzcyBDcHBQcm90b2NvbFR5cGVzSW1wbGVtZW50YXRpb25HZW5lcmF0
b3IoR2VuZXJhdG9yKToKK2NsYXNzIENwcFByb3RvY29sVHlwZXNJbXBsZW1lbnRhdGlvbkdlbmVy
YXRvcihDcHBHZW5lcmF0b3IpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2RlbCwgaW5wdXRf
ZmlsZXBhdGgpOgotICAgICAgICBHZW5lcmF0b3IuX19pbml0X18oc2VsZiwgbW9kZWwsIGlucHV0
X2ZpbGVwYXRoKQorICAgICAgICBDcHBHZW5lcmF0b3IuX19pbml0X18oc2VsZiwgbW9kZWwsIGlu
cHV0X2ZpbGVwYXRoKQogCiAgICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKLSAgICAgICAg
cmV0dXJuICJJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwIgorICAgICAgICByZXR1cm4gIiVz
UHJvdG9jb2xPYmplY3RzLmNwcCIgJSBzZWxmLnByb3RvY29sX25hbWUoKQogCiAgICAgZGVmIGdl
bmVyYXRlX291dHB1dChzZWxmKToKICAgICAgICAgZG9tYWlucyA9IHNlbGYuZG9tYWluc190b19n
ZW5lcmF0ZSgpCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIENwcFByb3RvY29sVHlwZXNJbXBsZW1l
bnRhdGlvbkdlbmVyYXRvcihHZW5lcmF0b3IpOgogICAgICAgICBzZWNvbmRhcnlfaGVhZGVycyA9
IFsnPHd0Zi90ZXh0L0NTdHJpbmcuaD4nXQogCiAgICAgICAgIGhlYWRlcl9hcmdzID0gewotICAg
ICAgICAgICAgJ3ByaW1hcnlJbmNsdWRlJzogJyJJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCIn
LAorICAgICAgICAgICAgJ3ByaW1hcnlJbmNsdWRlJzogJyIlc1Byb3RvY29sT2JqZWN0cy5oIicg
JSBzZWxmLnByb3RvY29sX25hbWUoKSwKICAgICAgICAgICAgICdzZWNvbmRhcnlJbmNsdWRlcyc6
ICJcbiIuam9pbihbJyNpbmNsdWRlICVzJyAlIGhlYWRlciBmb3IgaGVhZGVyIGluIHNlY29uZGFy
eV9oZWFkZXJzXSksCiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vbW9kZWxzLnB5IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vbW9kZWxzLnB5CmluZGV4IDNmNDBiZThj
YmM4MWQ3YjYyYjhlOTYzOWU0MWVmYjJmY2I5NzI3YjAuLmNjYjg4ODYzMGM1M2JmZWI4Y2FiMjhl
ZDlhMzE3YmQxOWM5NDhhYzUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL21vZGVscy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9tb2RlbHMucHkKQEAgLTQyLDYgKzQyLDcgQEAg
X0ZSQU1FV09SS19DT05GSUdfTUFQID0gewogICAgICJHbG9iYWwiOiB7CiAgICAgfSwKICAgICAi
SmF2YVNjcmlwdENvcmUiOiB7CisgICAgICAgICJwcm90b2NvbF9ncm91cCI6ICJJbnNwZWN0b3Ii
LAogICAgICAgICAiZXhwb3J0X21hY3JvIjogIkpTX0VYUE9SVF9QUklWQVRFIiwKICAgICAgICAg
ImFsdGVybmF0ZV9kaXNwYXRjaGVycyI6IFRydWUsCiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9jb21tYW5k
cy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0
dHJpYnV0ZS5qc29uLXJlc3VsdAppbmRleCA1YjNiZTA0ZGQ0YzZlYmMzY2JjYTU0OTY3ZWZjZTNk
MzIyYmZhNmRjLi45MzQ0MmYyYTRjODY5YjFiMTQ5M2FhNzNjYWNkNjUwMmEzNzA2ZWNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhw
ZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2NvbW1h
bmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0CkBAIC0zOSw3ICszOSw3IEBAIElu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJEYXRhYmFzZS5leGVjdXRlU1FMQXN5bmMi
LCBbeyJuYW1lIjogImRhdGFiYXNlCiBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2YXRlRG9tYWluKCJE
YXRhYmFzZSIpOwogIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKIAot
IyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCisj
IyMgQmVnaW4gRmlsZTogVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpA
QCAtNzAsMTIgKzcwLDExIEBAIEluc3BlY3RvckJhY2tlbmQuYWN0aXZhdGVEb21haW4oIkRhdGFi
YXNlIik7CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2Vu
ZXJhdGVkIGZyb20gY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbgogLy8gYnkgdGhl
IHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRl
LWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvckFsdGVy
bmF0ZUJhY2tlbmREaXNwYXRjaGVyc19oCi0jZGVmaW5lIEluc3BlY3RvckFsdGVybmF0ZUJhY2tl
bmREaXNwYXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxU
RVJOQVRFX0RJU1BBVENIRVJTKQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5o
IgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbFR5cGVzLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIuaD4KIApAQCAtMTAyLDExICsxMDEsOSBAQCBwdWJsaWM6CiB9
IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfQUxU
RVJOQVRFX0RJU1BBVENIRVJTKQorIyMjIEVuZCBGaWxlOiBUZXN0QWx0ZXJuYXRlQmFja2VuZERp
c3BhdGNoZXJzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckFsdGVybmF0ZUJhY2tl
bmREaXNwYXRjaGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5k
RGlzcGF0Y2hlcnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXJzLmgKKyMjIyBCZWdpbiBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBA
IC0xMzcsMTAgKzEzNCw5IEBAIHB1YmxpYzoKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQg
aXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBjb21tYW5kcy13aXRoLWFzeW5jLWF0dHJp
YnV0ZS5qc29uCiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKLSNp
Zm5kZWYgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzX2gKLSNkZWZpbmUgSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXJzX2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJv
dG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1
ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0yMDAsMTEgKzE5Niw5IEBAIHByaXZhdGU6CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKKyMjIyBFbmQgRmlsZTogVGVzdEJhY2tlbmREaXNw
YXRjaGVycy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cnNfaCkKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgKLQotIyMj
IEJlZ2luIEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBCZWdpbiBG
aWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmNwcAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTIzNiw3ICsyMzAsNyBA
QCBwcml2YXRlOgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJz
LmgiCisjaW5jbHVkZSAiVGVzdEJhY2tlbmREaXNwYXRjaGVycy5oIgogCiAjaW5jbHVkZSA8aW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0lu
c3BlY3RvclZhbHVlcy5oPgpAQCAtMjQ0LDcgKzIzOCw3IEBAIHByaXZhdGU6CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElT
UEFUQ0hFUlMpCi0jaW5jbHVkZSAiSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJz
LmgiCisjaW5jbHVkZSAiVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oIgogI2VuZGlm
CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtNDkyLDkgKzQ4Niw5IEBAIHZvaWQgRGF0YWJh
c2VCYWNrZW5kRGlzcGF0Y2hlcjo6ZXhlY3V0ZVNRTEFzeW5jKGxvbmcgcmVxdWVzdElkLCBSZWZQ
dHI8SW5zcGVjdG9yCiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6
IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdEJhY2tl
bmREaXNwYXRjaGVycy5jcHAKIAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlz
cGF0Y2hlcnMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCkBAIC01MjUsMTAgKzUxOSw5IEBAIHZvaWQgRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlcjo6
ZXhlY3V0ZVNRTEFzeW5jKGxvbmcgcmVxdWVzdElkLCBSZWZQdHI8SW5zcGVjdG9yCiAvLyBETyBO
T1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gY29t
bWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90
b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnNf
aAotI2RlZmluZSBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gKKyNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFBy
b3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTM3LDExICs1MzAsOSBAQCBu
YW1lc3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIEZyb250ZW5kUm91dGVyOwogCiB9IC8vIG5hbWVz
cGFjZSBJbnNwZWN0b3IKKyMjIyBFbmQgRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaAog
Ci0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVyc19oKQotIyMj
IEVuZCBGaWxlOiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2luIEZp
bGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCisjIyMgQmVnaW4gRmlsZTogVGVz
dEZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNTczLDcgKzU2NCw3IEBAIGNsYXNz
IEZyb250ZW5kUm91dGVyOwogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5w
eQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmREaXNw
YXRjaGVycy5oIgorI2luY2x1ZGUgIlRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgiCiAKICNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KQEAgLTU4Miw5ICs1NzMsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogfSAvLyBu
YW1lc3BhY2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNw
YXRjaGVycy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCiAK
LSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaAorIyMjIEJlZ2luIEZp
bGU6IFRlc3RQcm90b2NvbE9iamVjdHMuaAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTYxNSw4ICs2MDYsNyBAQCBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21h
dGljYWxseSBnZW5lcmF0ZWQgZnJvbSBjb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29u
CiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKLSNpZm5kZWYgSW5z
cGVjdG9yUHJvdG9jb2xPYmplY3RzX2gKLSNkZWZpbmUgSW5zcGVjdG9yUHJvdG9jb2xPYmplY3Rz
X2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclByb3RvY29s
VHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtNzI5LDExICs3MTksOSBA
QCBwdWJsaWM6CiB9IC8vIG5hbWVzcGFjZSBQcm90b2NvbAogCiB9IC8vIG5hbWVzcGFjZSBJbnNw
ZWN0b3IKKyMjIyBFbmQgRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5oCiAKLSNlbmRpZiAvLyAh
ZGVmaW5lZChJbnNwZWN0b3JQcm90b2NvbE9iamVjdHNfaCkKLSMjIyBFbmQgRmlsZTogSW5zcGVj
dG9yUHJvdG9jb2xPYmplY3RzLmgKLQotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvclByb3RvY29s
T2JqZWN0cy5jcHAKKyMjIyBCZWdpbiBGaWxlOiBUZXN0UHJvdG9jb2xPYmplY3RzLmNwcAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KQEAgLTc2NSw3ICs3NTMsNyBAQCBwdWJsaWM6CiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3Rv
Y29sLWJpbmRpbmdzLnB5CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnNwZWN0
b3JQcm90b2NvbE9iamVjdHMuaCIKKyNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3RzLmgiCiAK
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTc5Myw3ICs3ODEsNyBAQCBTdHJp
bmcgZ2V0RW51bUNvbnN0YW50VmFsdWUoaW50IGNvZGUpIHsKIAogfSAvLyBuYW1lc3BhY2UgSW5z
cGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcAorIyMj
IEVuZCBGaWxlOiBUZXN0UHJvdG9jb2xPYmplY3RzLmNwcAogCiAjIyMgQmVnaW4gRmlsZTogVGVz
dFByb3RvY29sQmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0
aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2NvbW1hbmRzLXdp
dGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3VsdAppbmRleCA5Njhj
Y2VkZjczNWIwYTgzZjEyZDQ0ZWZmNjBlMWQwMTUxMDE3NzViLi5mOTc0Zjc3ZWE3OTI5MGNmODNh
MjRmMzViMjcxMTVlNjQ1N2RlM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1j
YWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlv
bmFsLWNhbGwtcmV0dXJuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAgLTM2LDcgKzM2LDcgQEAg
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkRhdGFiYXNlLmV4ZWN1dGVOb09wdGlv
bmFsUGFyYW1ldGVycyIsIFt7Im5hbWUKIEluc3BlY3RvckJhY2tlbmQuYWN0aXZhdGVEb21haW4o
IkRhdGFiYXNlIik7CiAjIyMgRW5kIEZpbGU6IEluc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwog
Ci0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgK
KyMjIyBCZWdpbiBGaWxlOiBUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CkBAIC02NywxMiArNjcsMTEgQEAgSW5zcGVjdG9yQmFja2VuZC5hY3RpdmF0ZURvbWFpbigiRGF0
YWJhc2UiKTsKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBn
ZW5lcmF0ZWQgZnJvbSBjb21tYW5kcy13aXRoLW9wdGlvbmFsLWNhbGwtcmV0dXJuLXBhcmFtZXRl
cnMuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZu
ZGVmIEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVyc19oCi0jZGVmaW5lIEluc3Bl
Y3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVO
QUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQogCi0jaW5jbHVkZSAiSW5zcGVj
dG9yUHJvdG9jb2xUeXBlcy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbFR5cGVzLmgiCiAjaW5j
bHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KIApAQCAtOTcsMTEgKzk2
LDkgQEAgcHVibGljOgogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKICNlbmRpZiAvLyBFTkFC
TEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKKyMjIyBFbmQgRmlsZTogVGVzdEFs
dGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0
b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnNfaCkKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9y
QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVycy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdEJhY2tlbmREaXNwYXRj
aGVycy5oCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgpAQCAtMTMyLDEwICsxMjksOSBAQCBwdWJsaWM6CiAvLyBETyBOT1QgRURJ
VCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gY29tbWFuZHMt
d2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24KIC8vIGJ5IHRoZSBzY3Jp
cHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNw
ZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnNfaAorI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCIKKyNpbmNsdWRl
ICJUZXN0UHJvdG9jb2xPYmplY3RzLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAg
LTE4MSwxMSArMTc3LDkgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3Rv
cgorIyMjIEVuZCBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgKIAotI2VuZGlmIC8vICFk
ZWZpbmVkKEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXJzLmNwcAorIyMjIEJlZ2luIEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hl
cnMuY3BwCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgpAQCAtMjE3LDcgKzIxMSw3IEBAIHByaXZhdGU6CiAvLyBieSB0aGUgc2Ny
aXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5z
cGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0QmFja2Vu
ZERpc3BhdGNoZXJzLmgiCiAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CkBAIC0yMjUs
NyArMjE5LDcgQEAgcHJpdmF0ZToKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKLSNpbmNsdWRlICJJbnNw
ZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0QWx0ZXJu
YXRlQmFja2VuZERpc3BhdGNoZXJzLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7
CkBAIC0zOTMsOSArMzg3LDkgQEAgdm9pZCBEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyOjpleGVj
dXRlTm9PcHRpb25hbFBhcmFtZXRlcnMobG9uZyByZXF1ZXN0SWQsIFJlZlAKIAogfSAvLyBuYW1l
c3BhY2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXJzLmNwcAorIyMjIEVuZCBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmNwcAogCi0jIyMg
QmVnaW4gRmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oCisjIyMgQmVnaW4gRmls
ZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTQyNiwxMCArNDIwLDkgQEAg
dm9pZCBEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyOjpleGVjdXRlTm9PcHRpb25hbFBhcmFtZXRl
cnMobG9uZyByZXF1ZXN0SWQsIFJlZlAKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMg
YXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBjb21tYW5kcy13aXRoLW9wdGlvbmFsLWNhbGwt
cmV0dXJuLXBhcmFtZXRlcnMuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5k
aW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmlu
ZSBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2Jq
ZWN0cy5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDM4LDExICs0MzEsOSBAQCBuYW1lc3BhY2Ug
SW5zcGVjdG9yIHsKIGNsYXNzIEZyb250ZW5kUm91dGVyOwogCiB9IC8vIG5hbWVzcGFjZSBJbnNw
ZWN0b3IKKyMjIyBFbmQgRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaAogCi0jZW5kaWYg
Ly8gIWRlZmluZWQoSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVyc19oKQotIyMjIEVuZCBGaWxl
OiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2luIEZpbGU6IEluc3Bl
Y3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCisjIyMgQmVnaW4gRmlsZTogVGVzdEZyb250ZW5k
RGlzcGF0Y2hlcnMuY3BwCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNDc0LDcgKzQ2NSw3IEBAIGNsYXNzIEZyb250ZW5k
Um91dGVyOwogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5o
IgorI2luY2x1ZGUgIlRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgiCiAKICNpbmNsdWRlICJJbnNw
ZWN0b3JGcm9udGVuZFJvdXRlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAg
LTQ4Myw5ICs0NzQsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogfSAvLyBuYW1lc3BhY2Ug
SW5zcGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5j
cHAKKyMjIyBFbmQgRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCiAKLSMjIyBCZWdp
biBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RQ
cm90b2NvbE9iamVjdHMuaAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTUxNiw4ICs1MDcsNyBAQCBuYW1lc3BhY2UgSW5z
cGVjdG9yIHsKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBn
ZW5lcmF0ZWQgZnJvbSBjb21tYW5kcy13aXRoLW9wdGlvbmFsLWNhbGwtcmV0dXJuLXBhcmFtZXRl
cnMuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZu
ZGVmIEluc3BlY3RvclByb3RvY29sT2JqZWN0c19oCi0jZGVmaW5lIEluc3BlY3RvclByb3RvY29s
T2JqZWN0c19oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQ
cm90b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTYzMCwxMSAr
NjIwLDkgQEAgcHVibGljOgogfSAvLyBuYW1lc3BhY2UgUHJvdG9jb2wKIAogfSAvLyBuYW1lc3Bh
Y2UgSW5zcGVjdG9yCisjIyMgRW5kIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuaAogCi0jZW5k
aWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzX2gpCi0jIyMgRW5kIEZpbGU6
IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JQ
cm90b2NvbE9iamVjdHMuY3BwCisjIyMgQmVnaW4gRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5j
cHAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCkBAIC02NjYsNyArNjU0LDcgQEAgcHVibGljOgogLy8gYnkgdGhlIHNjcmlwdDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rv
ci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
SW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0
cy5oIgogCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC02OTQsNyArNjgyLDcg
QEAgU3RyaW5nIGdldEVudW1Db25zdGFudFZhbHVlKGludCBjb2RlKSB7CiAKIH0gLy8gbmFtZXNw
YWNlIEluc3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5j
cHAKKyMjIyBFbmQgRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5jcHAKIAogIyMjIEJlZ2luIEZp
bGU6IFRlc3RQcm90b2NvbEJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2RvbWFp
bnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZh
cnlpbmctY29tbWFuZC1zaXplcy5qc29uLXJlc3VsdAppbmRleCAyNDM0YmRhZTc5MWM5Y2E0MzQy
ZmU3YmNhNmNjYjgzY2ZjODZiYjUwLi5lNTJhYTM2ZDQ2OTIwNzlhZjBlMzA0MzRlOWYzY2ZjNzVm
NGQwNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFuZC1zaXplcy5qc29u
LXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFuZC1zaXplcy5qc29uLXJlc3Vs
dApAQCAtNDQsNyArNDQsNyBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiTmV0
d29yazMubG9hZFJlc291cmNlNyIsIFtdLCBbXSk7CiBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2YXRl
RG9tYWluKCJOZXR3b3JrMyIpOwogIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kQ29tbWFu
ZHMuanMKIAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRj
aGVycy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5o
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgpAQCAtNzUsMTIgKzc1LDExIEBAIEluc3BlY3RvckJhY2tlbmQuYWN0aXZhdGVEb21h
aW4oIk5ldHdvcmszIik7CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRp
Y2FsbHkgZ2VuZXJhdGVkIGZyb20gZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFuZC1zaXplcy5q
c29uCiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKLSNpZm5kZWYg
SW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzX2gKLSNkZWZpbmUgSW5zcGVjdG9y
QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCiAKLSNpbmNsdWRlICJJbnNwZWN0b3JQ
cm90b2NvbFR5cGVzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sVHlwZXMuaCIKICNpbmNsdWRl
IDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgogCkBAIC0xMTUsMTEgKzExNCw5
IEBAIHB1YmxpYzoKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCiAjZW5kaWYgLy8gRU5BQkxF
KElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCisjIyMgRW5kIEZpbGU6IFRlc3RBbHRl
cm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9y
QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckFs
dGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcnMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hl
cnMuaAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KQEAgLTE1MCwxMCArMTQ3LDkgQEAgcHVibGljOgogLy8gRE8gTk9UIEVESVQg
VEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGRvbWFpbnMtd2l0
aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2Nv
bC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyc19oCi0j
ZGVmaW5lIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIkluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2Nv
bE9iamVjdHMuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMjI3LDExICsyMjMs
OSBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCisjIyMgRW5kIEZp
bGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXJzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVycy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cnMuY3BwCisjIyMgQmVnaW4gRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVycy5jcHAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CkBAIC0yNjMsNyArMjU3LDcgQEAgcHJpdmF0ZToKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9j
b2wtYmluZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVycy5oIgorI2luY2x1ZGUgIlRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMu
aCIKIAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2lu
Y2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KQEAgLTI3MSw3ICsyNjUsNyBAQCBw
cml2YXRlOgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShJTlNQ
RUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2luY2x1ZGUgIkluc3BlY3RvckFsdGVybmF0
ZUJhY2tlbmREaXNwYXRjaGVycy5oIgorI2luY2x1ZGUgIlRlc3RBbHRlcm5hdGVCYWNrZW5kRGlz
cGF0Y2hlcnMuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTUwNyw5ICs1
MDEsOSBAQCB2b2lkIE5ldHdvcmszQmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTcobG9u
ZyByZXF1ZXN0SWQsIFJlZlB0cjxJbnNwZWN0b3JPYgogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0
b3IKIAotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuY3BwCisjIyMg
RW5kIEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuY3BwCiAKLSMjIyBCZWdpbiBGaWxlOiBJ
bnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmgKKyMjIyBCZWdpbiBGaWxlOiBUZXN0RnJvbnRl
bmREaXNwYXRjaGVycy5oCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNTQwLDEwICs1MzQsOSBAQCB2b2lkIE5ldHdvcmsz
QmFja2VuZERpc3BhdGNoZXI6OmxvYWRSZXNvdXJjZTcobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxJ
bnNwZWN0b3JPYgogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5
IGdlbmVyYXRlZCBmcm9tIGRvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbgog
Ly8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3Bl
Y3RvckZyb250ZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JGcm9udGVuZERpc3Bh
dGNoZXJzX2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xPYmpl
Y3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgPGluc3Bl
Y3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IApAQCAtNTUyLDExICs1NDUsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIEZyb250
ZW5kUm91dGVyOwogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKKyMjIyBFbmQgRmlsZTogVGVz
dEZyb250ZW5kRGlzcGF0Y2hlcnMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yRnJv
bnRlbmREaXNwYXRjaGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JGcm9udGVuZERpc3Bh
dGNoZXJzLmgKLQotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMu
Y3BwCisjIyMgQmVnaW4gRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpA
QCAtNTg4LDcgKzU3OSw3IEBAIGNsYXNzIEZyb250ZW5kUm91dGVyOwogLy8gYnkgdGhlIHNjcmlw
dDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3Bl
Y3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oIgorI2luY2x1ZGUgIlRlc3RGcm9udGVu
ZERpc3BhdGNoZXJzLmgiCiAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTU5Nyw5ICs1ODgsOSBAQCBuYW1lc3Bh
Y2UgSW5zcGVjdG9yIHsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQgRmls
ZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdEZy
b250ZW5kRGlzcGF0Y2hlcnMuY3BwCiAKLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JQcm90b2Nv
bE9iamVjdHMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuaAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
QEAgLTYzMCw4ICs2MjEsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIC8vIERPIE5PVCBFRElU
IFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBkb21haW5zLXdp
dGgtdmFyeWluZy1jb21tYW5kLXNpemVzLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9j
b2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHNfaAotI2Rl
ZmluZSBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHNfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
IDxpbnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CkBAIC02NjMsMTEgKzY1Myw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFN0cmlu
ZyBnZXRFbnVtQ29uc3RhbnRWYWx1ZShUIGVudW1WYWx1ZSkKIH0gLy8gbmFtZXNwYWNlIFByb3Rv
Y29sCiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0UHJvdG9j
b2xPYmplY3RzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvclByb3RvY29sT2JqZWN0
c19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaAotCi0jIyMgQmVn
aW4gRmlsZTogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcAorIyMjIEJlZ2luIEZpbGU6IFRl
c3RQcm90b2NvbE9iamVjdHMuY3BwCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNjk5LDcgKzY4Nyw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IFN0cmluZyBnZXRFbnVtQ29uc3RhbnRWYWx1ZShUIGVudW1WYWx1ZSkKIC8v
IGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9n
ZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1ZGUgIlRl
c3RQcm90b2NvbE9iamVjdHMuaCIKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApA
QCAtNzIwLDcgKzcwOCw3IEBAIFN0cmluZyBnZXRFbnVtQ29uc3RhbnRWYWx1ZShpbnQgY29kZSkg
ewogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JQ
cm90b2NvbE9iamVjdHMuY3BwCisjIyMgRW5kIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuY3Bw
CiAKICMjIyBCZWdpbiBGaWxlOiBUZXN0UHJvdG9jb2xCYWNrZW5kRGlzcGF0Y2hlcnMuaAogLyoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9leHBlY3RlZC9lbnVtLXZhbHVlcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9lbnVtLXZhbHVlcy5qc29uLXJlc3Vs
dAppbmRleCAxMmNkNzgzNWYwZDVhYjA3NDI5OGI3NGRlMmY4ZjQ0ZDYxYjlhZGYwLi40YzFkNGE3
NmUyNDVlMDg0YTE3ZjNiMmQ4YTg4Y2YxYWQ0ZGY3NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZW51bS12YWx1ZXMu
anNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2V4cGVjdGVkL2VudW0tdmFsdWVzLmpzb24tcmVzdWx0CkBAIC00Myw3ICs0Myw3IEBA
IEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFdmVudCgiRXZlbnREb21haW4uZXZlbnRXaXRoRW51
bVBhcmFtZXRlciIsIFsicGFyYW1ldGVyCiBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2YXRlRG9tYWlu
KCJFdmVudERvbWFpbiIpOwogIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMu
anMKIAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVy
cy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgpAQCAtNzQsMTIgKzc0LDExIEBAIEluc3BlY3RvckJhY2tlbmQuYWN0aXZhdGVEb21haW4o
IkV2ZW50RG9tYWluIik7CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRp
Y2FsbHkgZ2VuZXJhdGVkIGZyb20gZW51bS12YWx1ZXMuanNvbgogLy8gYnkgdGhlIHNjcmlwdDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rv
ci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvckFsdGVybmF0ZUJhY2tl
bmREaXNwYXRjaGVyc19oCi0jZGVmaW5lIEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRj
aGVyc19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJ
U1BBVENIRVJTKQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oIgorI2luY2x1
ZGUgIlRlc3RQcm90b2NvbFR5cGVzLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIuaD4KIApAQCAtMTAzLDExICsxMDIsOSBAQCBwdWJsaWM6CiB9IC8vIG5hbWVz
cGFjZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJ
U1BBVENIRVJTKQorIyMjIEVuZCBGaWxlOiBUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJz
LmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRj
aGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hl
cnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgKKyMj
IyBCZWdpbiBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xMzgsMTAg
KzEzNSw5IEBAIHB1YmxpYzoKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21h
dGljYWxseSBnZW5lcmF0ZWQgZnJvbSBlbnVtLXZhbHVlcy5qc29uCiAvLyBieSB0aGUgc2NyaXB0
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVj
dG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKLSNpZm5kZWYgSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXJzX2gKLSNkZWZpbmUgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzX2gKKyNwcmFnbWEg
b25jZQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAi
VGVzdFByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0x
ODUsMTEgKzE4MSw5IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IK
KyMjIyBFbmQgRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAvLyAhZGVm
aW5lZChJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnNfaCkKLSMjIyBFbmQgRmlsZTogSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVycy5jcHAKKyMjIyBCZWdpbiBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJz
LmNwcAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KQEAgLTIyMSw3ICsyMTUsNyBAQCBwcml2YXRlOgogLy8gYnkgdGhlIHNjcmlw
dDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3Bl
Y3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgiCisjaW5jbHVkZSAiVGVzdEJhY2tlbmRE
aXNwYXRjaGVycy5oIgogCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91
dGVyLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5oPgpAQCAtMjI5LDcg
KzIyMyw3IEBAIHByaXZhdGU6CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCi0jaW5jbHVkZSAiSW5zcGVj
dG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgiCisjaW5jbHVkZSAiVGVzdEFsdGVybmF0
ZUJhY2tlbmREaXNwYXRjaGVycy5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpA
QCAtMjg2LDkgKzI4MCw5IEBAIHZvaWQgQ29tbWFuZERvbWFpbkJhY2tlbmREaXNwYXRjaGVyOjpj
b21tYW5kV2l0aEVudW1SZXR1cm5WYWx1ZShsb25nIHJlcXVlc3RJZCwKIAogfSAvLyBuYW1lc3Bh
Y2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJz
LmNwcAorIyMjIEVuZCBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmNwcAogCi0jIyMgQmVn
aW4gRmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oCisjIyMgQmVnaW4gRmlsZTog
VGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTMxOSwxMCArMzEzLDkgQEAgdm9p
ZCBDb21tYW5kRG9tYWluQmFja2VuZERpc3BhdGNoZXI6OmNvbW1hbmRXaXRoRW51bVJldHVyblZh
bHVlKGxvbmcgcmVxdWVzdElkLAogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRv
bWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGVudW0tdmFsdWVzLmpzb24KIC8vIGJ5IHRoZSBzY3Jp
cHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNw
ZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JGcm9udGVuZERp
c3BhdGNoZXJzX2gKLSNkZWZpbmUgSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVyc19oCisjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1
ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
VmFsdWVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTM0NSwxMSAr
MzM4LDkgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgorIyMjIEVu
ZCBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJ
bnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckZy
b250ZW5kRGlzcGF0Y2hlcnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yRnJvbnRlbmRE
aXNwYXRjaGVycy5jcHAKKyMjIyBCZWdpbiBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5j
cHAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCkBAIC0zODEsNyArMzcyLDcgQEAgcHJpdmF0ZToKIC8vIGJ5IHRoZSBzY3JpcHQ6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0
b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
Ikluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0RnJvbnRlbmRE
aXNwYXRjaGVycy5oIgogCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC00MDEsOSArMzkyLDkgQEAgdm9pZCBFdmVu
dERvbWFpbkZyb250ZW5kRGlzcGF0Y2hlcjo6ZXZlbnRXaXRoRW51bVBhcmFtZXRlcihQYXJhbWV0
ZXIgcGFyYW1ldGVyKQogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAotIyMjIEVuZCBGaWxl
OiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmNwcAorIyMjIEVuZCBGaWxlOiBUZXN0RnJv
bnRlbmREaXNwYXRjaGVycy5jcHAKIAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvclByb3RvY29s
T2JqZWN0cy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5oCiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpA
QCAtNDM0LDggKzQyNSw3IEBAIHZvaWQgRXZlbnREb21haW5Gcm9udGVuZERpc3BhdGNoZXI6OmV2
ZW50V2l0aEVudW1QYXJhbWV0ZXIoUGFyYW1ldGVyIHBhcmFtZXRlcikKIC8vIERPIE5PVCBFRElU
IFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBlbnVtLXZhbHVl
cy5qc29uCiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKLSNpZm5k
ZWYgSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzX2gKLSNkZWZpbmUgSW5zcGVjdG9yUHJvdG9jb2xP
YmplY3RzX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclBy
b3RvY29sVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtNDc3LDExICs0
NjcsOSBAQCBlbnVtIGNsYXNzIFR5cGVEb21haW5FbnVtIHsKIH0gLy8gbmFtZXNwYWNlIFByb3Rv
Y29sCiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0UHJvdG9j
b2xPYmplY3RzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvclByb3RvY29sT2JqZWN0
c19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaAotCi0jIyMgQmVn
aW4gRmlsZTogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcAorIyMjIEJlZ2luIEZpbGU6IFRl
c3RQcm90b2NvbE9iamVjdHMuY3BwCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNTEzLDcgKzUwMSw3IEBAIGVudW0gY2xh
c3MgVHlwZURvbWFpbkVudW0gewogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5n
cy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xP
YmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgogCiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC01NDMsNyArNTMxLDcgQEAgU3RyaW5nIGdldEVudW1D
b25zdGFudFZhbHVlKGludCBjb2RlKSB7CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCi0j
IyMgRW5kIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAKKyMjIyBFbmQgRmlsZTog
VGVzdFByb3RvY29sT2JqZWN0cy5jcHAKIAogIyMjIEJlZ2luIEZpbGU6IFRlc3RQcm90b2NvbEJh
Y2tlbmREaXNwYXRjaGVycy5oCiAvKgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2V2ZW50cy13aXRoLW9wdGlvbmFsLXBh
cmFtZXRlcnMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvdGVzdHMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgtb3B0aW9uYWwtcGFyYW1ldGVycy5qc29u
LXJlc3VsdAppbmRleCAwOTk2Y2UwNDY3NzA5ZGEyMzFiZWVkODgyMjU0ZWUzZWNiNzFiNjVlLi43
YjY0ZmM2MWUzMDkxMWY0YWRhYjAwOGI4ZThhMjViNjVkYzM1MzI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZXZlbnRz
LXdpdGgtb3B0aW9uYWwtcGFyYW1ldGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgtb3B0
aW9uYWwtcGFyYW1ldGVycy5qc29uLXJlc3VsdApAQCAtMzYsNyArMzYsNyBAQCBJbnNwZWN0b3JC
YWNrZW5kLnJlZ2lzdGVyRXZlbnQoIkRhdGFiYXNlLmRpZEV4ZWN1dGVOb09wdGlvbmFsUGFyYW1l
dGVycyIsIFsiY29sdQogSW5zcGVjdG9yQmFja2VuZC5hY3RpdmF0ZURvbWFpbigiRGF0YWJhc2Ui
KTsKICMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCiAKLSMjIyBCZWdp
biBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaAorIyMjIEJlZ2lu
IEZpbGU6IFRlc3RBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTY3LDEy
ICs2NywxMSBAQCBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2YXRlRG9tYWluKCJEYXRhYmFzZSIpOwog
Ly8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBm
cm9tIGV2ZW50cy13aXRoLW9wdGlvbmFsLXBhcmFtZXRlcnMuanNvbgogLy8gYnkgdGhlIHNjcmlw
dDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3Bl
Y3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvckFsdGVybmF0ZUJh
Y2tlbmREaXNwYXRjaGVyc19oCi0jZGVmaW5lIEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNw
YXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oIgorI2lu
Y2x1ZGUgIlRlc3RQcm90b2NvbFR5cGVzLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXIuaD4KIApAQCAtOTIsMTEgKzkxLDkgQEAgcHJpdmF0ZToKIH0gLy8gbmFt
ZXNwYWNlIEluc3BlY3RvcgogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVf
RElTUEFUQ0hFUlMpCisjIyMgRW5kIEZpbGU6IFRlc3RBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hl
cnMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3Bh
dGNoZXJzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRj
aGVycy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaAor
IyMjIEJlZ2luIEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTEyNywx
MCArMTI0LDkgQEAgcHJpdmF0ZToKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0
b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBldmVudHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJz
Lmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRl
ZiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlcnNfaAorI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJJbnNwZWN0b3JQcm90b2Nv
bE9iamVjdHMuaCIKKyNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3RzLmgiCiAjaW5jbHVkZSA8
aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE0MSwxMSArMTM3LDkgQEAgdHlwZWRlZiBTdHJpbmcgRXJy
b3JTdHJpbmc7CiAKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCisjIyMgRW5kIEZpbGU6IFRl
c3RCYWNrZW5kRGlzcGF0Y2hlcnMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXJzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVycy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuY3Bw
CisjIyMgQmVnaW4gRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVycy5jcHAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0x
NzcsNyArMTcxLDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAvLyBieSB0aGUgc2Ny
aXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5z
cGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0QmFja2Vu
ZERpc3BhdGNoZXJzLmgiCiAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CkBAIC0xODUs
NyArMTc5LDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hF
UlMpCi0jaW5jbHVkZSAiSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgiCisj
aW5jbHVkZSAiVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oIgogI2VuZGlmCiAKIG5h
bWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMTk0LDkgKzE4OCw5IEBAIG5hbWVzcGFjZSBJbnNwZWN0
b3IgewogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAotIyMjIEVuZCBGaWxlOiBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcnMuY3BwCisjIyMgRW5kIEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0
Y2hlcnMuY3BwCiAKLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJz
LmgKKyMjIyBCZWdpbiBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oCiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAt
MjI3LDEwICsyMjEsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIC8vIERPIE5PVCBFRElUIFRI
SVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBldmVudHMtd2l0aC1v
cHRpb25hbC1wYXJhbWV0ZXJzLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmlu
ZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gKLSNkZWZp
bmUgSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIkluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9i
amVjdHMuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTI0OCwxMSArMjQxLDkgQEAgcHJpdmF0ZToK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0RnJvbnRl
bmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JGcm9udGVuZERp
c3BhdGNoZXJzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMu
aAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAKKyMj
IyBCZWdpbiBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5jcHAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yODQs
NyArMjc1LDcgQEAgcHJpdmF0ZToKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGlu
Z3MucHkKIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5k
RGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CkBAIC0zNDAsOSArMzMxLDkgQEAgdm9pZCBEYXRhYmFzZUZyb250ZW5kRGlzcGF0
Y2hlcjo6ZGlkRXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzKFJlZlB0cjxJbnNwZWN0b3IKIAog
fSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yRnJvbnRl
bmREaXNwYXRjaGVycy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMu
Y3BwCiAKLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaAorIyMjIEJl
Z2luIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuaAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTM3Myw4ICszNjQsNyBA
QCB2b2lkIERhdGFiYXNlRnJvbnRlbmREaXNwYXRjaGVyOjpkaWRFeGVjdXRlTm9PcHRpb25hbFBh
cmFtZXRlcnMoUmVmUHRyPEluc3BlY3RvcgogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBp
cyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGV2ZW50cy13aXRoLW9wdGlvbmFsLXBhcmFt
ZXRlcnMuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0j
aWZuZGVmIEluc3BlY3RvclByb3RvY29sT2JqZWN0c19oCi0jZGVmaW5lIEluc3BlY3RvclByb3Rv
Y29sT2JqZWN0c19oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0
b3JQcm90b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTQ4MSwx
MSArNDcxLDkgQEAgcHVibGljOgogfSAvLyBuYW1lc3BhY2UgUHJvdG9jb2wKIAogfSAvLyBuYW1l
c3BhY2UgSW5zcGVjdG9yCisjIyMgRW5kIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuaAogCi0j
ZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzX2gpCi0jIyMgRW5kIEZp
bGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0
b3JQcm90b2NvbE9iamVjdHMuY3BwCisjIyMgQmVnaW4gRmlsZTogVGVzdFByb3RvY29sT2JqZWN0
cy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCkBAIC01MTcsNyArNTA1LDcgQEAgcHVibGljOgogLy8gYnkgdGhlIHNjcmlw
dDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3Bl
Y3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2Jq
ZWN0cy5oIgogCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC01MzgsNyArNTI2
LDcgQEAgU3RyaW5nIGdldEVudW1Db25zdGFudFZhbHVlKGludCBjb2RlKSB7CiAKIH0gLy8gbmFt
ZXNwYWNlIEluc3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0
cy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5jcHAKIAogIyMjIEJlZ2lu
IEZpbGU6IFRlc3RQcm90b2NvbEJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dl
bmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1k
b21haW5zLXdpdGgtZmVhdHVyZS1ndWFyZHMuanNvbi1yZXN1bHQKaW5kZXggZTFhYTZlNzg1ZGUw
ODk4ODE1MjY5YjhkYTlhOGZhYTMwZDVlZjJkMC4uMzY4Y2U3MGFjOTc2MzcyZTQxNmYwODBhNDRi
OGVkZmVmZDVhMDgyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1
YXJkcy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRz
Lmpzb24tcmVzdWx0CkBAIC0zOSw3ICszOSw3IEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJF
dmVudCgiTmV0d29yazMucmVzb3VyY2VMb2FkZWQiLCBbXSk7CiBJbnNwZWN0b3JCYWNrZW5kLmFj
dGl2YXRlRG9tYWluKCJOZXR3b3JrMyIpOwogIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5k
Q29tbWFuZHMuanMKIAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmRE
aXNwYXRjaGVycy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRj
aGVycy5oCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgpAQCAtNzAsMTIgKzcwLDExIEBAIEluc3BlY3RvckJhY2tlbmQuYWN0aXZh
dGVEb21haW4oIk5ldHdvcmszIik7CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1
dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUt
Z3VhcmRzLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAot
I2lmbmRlZiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmluZSBJ
bnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnNfaAorI3ByYWdtYSBvbmNlCiAKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKIAotI2luY2x1ZGUgIklu
c3BlY3RvclByb3RvY29sVHlwZXMuaCIKKyNpbmNsdWRlICJUZXN0UHJvdG9jb2xUeXBlcy5oIgog
I2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CiAKQEAgLTEwMSwx
MSArMTAwLDkgQEAgcHVibGljOgogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKICNlbmRpZiAv
LyBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKKyMjIyBFbmQgRmlsZTog
VGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJ
bnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnNfaCkKLSMjIyBFbmQgRmlsZTogSW5z
cGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2luIEZpbGU6IElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdEJhY2tlbmRE
aXNwYXRjaGVycy5oCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTM2LDEwICsxMzMsOSBAQCBwdWJsaWM6CiAvLyBETyBO
T1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gZ2Vu
ZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0
b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnNfaAorI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCIKKyNpbmNsdWRlICJU
ZXN0UHJvdG9jb2xPYmplY3RzLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE4
MiwxMSArMTc4LDkgQEAgcHJpdmF0ZToKICNlbmRpZiAvLyBQTEFURk9STShXRUJfQ09NTUFORFMp
CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0QmFja2VuZERp
c3BhdGNoZXJzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaAotCi0j
IyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmNwcAorIyMjIEJlZ2lu
IEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuY3BwCiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMjE4LDcgKzIxMiw3
IEBAIHByaXZhdGU6CiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAK
ICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cnMuaCIKKyNpbmNsdWRlICJUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgiCiAKICNpbmNsdWRlIDxp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3Iv
SW5zcGVjdG9yVmFsdWVzLmg+CkBAIC0yMjYsNyArMjIwLDcgQEAgcHJpdmF0ZToKICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9E
SVNQQVRDSEVSUykKLSNpbmNsdWRlICJJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hl
cnMuaCIKKyNpbmNsdWRlICJUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgiCiAjZW5k
aWYKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0yODMsOSArMjc3LDkgQEAgdm9pZCBOZXR3
b3JrMUJhY2tlbmREaXNwYXRjaGVyOjpsb2FkUmVzb3VyY2UobG9uZyByZXF1ZXN0SWQsIFJlZlB0
cjxJbnNwZWN0b3JPYmoKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQgRmls
ZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmNwcAorIyMjIEVuZCBGaWxlOiBUZXN0QmFj
a2VuZERpc3BhdGNoZXJzLmNwcAogCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yRnJvbnRlbmRE
aXNwYXRjaGVycy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KQEAgLTMxNiwxMCArMzEwLDkgQEAgdm9pZCBOZXR3b3JrMUJhY2tlbmREaXNwYXRjaGVy
Ojpsb2FkUmVzb3VyY2UobG9uZyByZXF1ZXN0SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmoKIC8vIERP
IE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBn
ZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVhdHVyZS1ndWFyZHMuanNvbgogLy8gYnkgdGhlIHNjcmlw
dDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3Bl
Y3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvckZyb250ZW5kRGlz
cGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gKKyNwcmFn
bWEgb25jZQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVk
ZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JW
YWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzM4LDExICsz
MzEsOSBAQCBwcml2YXRlOgogI2VuZGlmIC8vIFBMQVRGT1JNKFdFQl9FVkVOVFMpCiAKIH0gLy8g
bmFtZXNwYWNlIEluc3BlY3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVy
cy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gp
Ci0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaAotCi0jIyMgQmVn
aW4gRmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBCZWdpbiBGaWxl
OiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0zNzQsNyArMzY1LDcgQEAg
cHJpdmF0ZToKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMu
aCIKKyNpbmNsdWRlICJUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCiAjaW5jbHVkZSAiSW5z
cGVjdG9yRnJvbnRlbmRSb3V0ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBA
IC0zOTMsOSArMzg0LDkgQEAgdm9pZCBOZXR3b3JrM0Zyb250ZW5kRGlzcGF0Y2hlcjo6cmVzb3Vy
Y2VMb2FkZWQoKQogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAotIyMjIEVuZCBGaWxlOiBJ
bnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmNwcAorIyMjIEVuZCBGaWxlOiBUZXN0RnJvbnRl
bmREaXNwYXRjaGVycy5jcHAKIAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2Jq
ZWN0cy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5oCiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAt
NDI2LDggKzQxNyw3IEBAIHZvaWQgTmV0d29yazNGcm9udGVuZERpc3BhdGNoZXI6OnJlc291cmNl
TG9hZGVkKCkKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBn
ZW5lcmF0ZWQgZnJvbSBnZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVhdHVyZS1ndWFyZHMuanNvbgog
Ly8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3Bl
Y3RvclByb3RvY29sT2JqZWN0c19oCi0jZGVmaW5lIEluc3BlY3RvclByb3RvY29sT2JqZWN0c19o
CisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQcm90b2NvbFR5
cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTUzMCwxMSArNTIwLDkgQEAg
cHVibGljOgogfSAvLyBuYW1lc3BhY2UgUHJvdG9jb2wKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVj
dG9yCisjIyMgRW5kIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuaAogCi0jZW5kaWYgLy8gIWRl
ZmluZWQoSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3Rv
clByb3RvY29sT2JqZWN0cy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9i
amVjdHMuY3BwCisjIyMgQmVnaW4gRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5jcHAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CkBAIC01NjYsNyArNTU0LDcgQEAgcHVibGljOgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2Nv
bC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9y
UHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgogCiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC01ODcsNyArNTc1LDcgQEAgU3RyaW5n
IGdldEVudW1Db25zdGFudFZhbHVlKGludCBjb2RlKSB7CiAKIH0gLy8gbmFtZXNwYWNlIEluc3Bl
Y3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAKKyMjIyBF
bmQgRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5jcHAKIAogIyMjIEJlZ2luIEZpbGU6IFRlc3RQ
cm90b2NvbEJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3NhbWUtdHlwZS1pZC1k
aWZmZXJlbnQtZG9tYWluLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3NhbWUtdHlwZS1pZC1kaWZmZXJlbnQtZG9tYWlu
Lmpzb24tcmVzdWx0CmluZGV4IDE2MDliYWMzN2M3ODYwMGI2NjBiNWI1ZWU0MjJjZWZkMDZhMGNh
ZTguLjk1M2MxYWEyN2RmMGM2OGVjYzc1M2E4YjlkMDZjYWYwYjkyN2RiMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9z
YW1lLXR5cGUtaWQtZGlmZmVyZW50LWRvbWFpbi5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvc2FtZS10eXBlLWlk
LWRpZmZlcmVudC1kb21haW4uanNvbi1yZXN1bHQKQEAgLTMwLDcgKzMwLDcgQEAKIC8vIGJ5IHRo
ZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0
ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKICMjIyBFbmQgRmlsZTogSW5zcGVjdG9y
QmFja2VuZENvbW1hbmRzLmpzCiAKLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVC
YWNrZW5kRGlzcGF0Y2hlcnMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RBbHRlcm5hdGVCYWNrZW5k
RGlzcGF0Y2hlcnMuaAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTYxLDEyICs2MSwxMSBAQAogLy8gRE8gTk9UIEVESVQg
VEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHNhbWUtdHlwZS1p
ZC1kaWZmZXJlbnQtZG9tYWluLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmlu
ZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnNf
aAotI2RlZmluZSBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnNfaAorI3ByYWdt
YSBvbmNlCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKIAot
I2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sVHlwZXMuaCIKKyNpbmNsdWRlICJUZXN0UHJvdG9j
b2xUeXBlcy5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+
CiAKQEAgLTg2LDExICs4NSw5IEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IK
IAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQorIyMj
IEVuZCBGaWxlOiBUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKIAotI2VuZGlmIC8v
ICFkZWZpbmVkKEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVyc19oKQotIyMjIEVu
ZCBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaAotCi0jIyMgQmVn
aW4gRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgKKyMjIyBCZWdpbiBGaWxlOiBU
ZXN0QmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xMjEsMTAgKzExOCw5IEBAIHByaXZh
dGU6CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGZyb20gc2FtZS10eXBlLWlkLWRpZmZlcmVudC1kb21haW4uanNvbgogLy8gYnkgdGhlIHNj
cmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWlu
c3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyc19oCi0jZGVmaW5lIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyc19oCisjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1
ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtMTM1LDExICsxMzEsOSBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogCiB9IC8v
IG5hbWVzcGFjZSBJbnNwZWN0b3IKKyMjIyBFbmQgRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVy
cy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnNfaCkK
LSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2lu
IEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBCZWdpbiBGaWxlOiBU
ZXN0QmFja2VuZERpc3BhdGNoZXJzLmNwcAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTE3MSw3ICsxNjUsNyBAQCB0eXBl
ZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmlu
ZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVycy5oIgorI2luY2x1ZGUgIlRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAog
I2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUg
PGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KQEAgLTE3OSw3ICsxNzMsNyBAQCB0eXBlZGVm
IFN0cmluZyBFcnJvclN0cmluZzsKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKLSNpbmNsdWRlICJJbnNw
ZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0QWx0ZXJu
YXRlQmFja2VuZERpc3BhdGNoZXJzLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7
CkBAIC0xODgsOSArMTgyLDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIH0gLy8gbmFtZXNw
YWNlIEluc3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
cy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVycy5jcHAKIAotIyMjIEJl
Z2luIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaAorIyMjIEJlZ2luIEZpbGU6
IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yMjEsMTAgKzIxNSw5IEBAIG5h
bWVzcGFjZSBJbnNwZWN0b3IgewogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRv
bWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHNhbWUtdHlwZS1pZC1kaWZmZXJlbnQtZG9tYWluLmpz
b24KIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJ
bnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gKLSNkZWZpbmUgSW5zcGVjdG9yRnJvbnRlbmRE
aXNwYXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29s
T2JqZWN0cy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKICNpbmNsdWRlIDxp
bnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKQEAgLTIzMywxMSArMjI2LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFzcyBG
cm9udGVuZFJvdXRlcjsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCisjIyMgRW5kIEZpbGU6
IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3Rv
ckZyb250ZW5kRGlzcGF0Y2hlcnNfaCkKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yRnJvbnRlbmRE
aXNwYXRjaGVycy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNo
ZXJzLmNwcAorIyMjIEJlZ2luIEZpbGU6IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmNwcAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KQEAgLTI2OSw3ICsyNjAsNyBAQCBjbGFzcyBGcm9udGVuZFJvdXRlcjsKIC8vIGJ5IHRoZSBz
Y3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1p
bnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0RnJv
bnRlbmREaXNwYXRjaGVycy5oIgogCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yNzgsOSArMjY5LDkgQEAgbmFt
ZXNwYWNlIEluc3BlY3RvciB7CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCi0jIyMgRW5k
IEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCisjIyMgRW5kIEZpbGU6IFRl
c3RGcm9udGVuZERpc3BhdGNoZXJzLmNwcAogCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yUHJv
dG9jb2xPYmplY3RzLmgKKyMjIyBCZWdpbiBGaWxlOiBUZXN0UHJvdG9jb2xPYmplY3RzLmgKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCkBAIC0zMTEsOCArMzAyLDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAvLyBETyBOT1Qg
RURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gc2FtZS10
eXBlLWlkLWRpZmZlcmVudC1kb21haW4uanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2Nv
bC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvclByb3RvY29sT2JqZWN0c19oCi0jZGVm
aW5lIEluc3BlY3RvclByb3RvY29sT2JqZWN0c19oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
PGluc3BlY3Rvci9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KQEAgLTM0OSwxMSArMzM5LDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gU3RyaW5n
IGdldEVudW1Db25zdGFudFZhbHVlKFQgZW51bVZhbHVlKQogfSAvLyBuYW1lc3BhY2UgUHJvdG9j
b2wKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCisjIyMgRW5kIEZpbGU6IFRlc3RQcm90b2Nv
bE9iamVjdHMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yUHJvdG9jb2xPYmplY3Rz
X2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oCi0KLSMjIyBCZWdp
biBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwCisjIyMgQmVnaW4gRmlsZTogVGVz
dFByb3RvY29sT2JqZWN0cy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0zODUsNyArMzczLDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gU3RyaW5nIGdldEVudW1Db25zdGFudFZhbHVlKFQgZW51bVZhbHVlKQogLy8g
YnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dl
bmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiVGVz
dFByb3RvY29sT2JqZWN0cy5oIgogCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBA
IC00MDYsNyArMzk0LDcgQEAgU3RyaW5nIGdldEVudW1Db25zdGFudFZhbHVlKGludCBjb2RlKSB7
CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvclBy
b3RvY29sT2JqZWN0cy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5jcHAK
IAogIyMjIEJlZ2luIEZpbGU6IFRlc3RQcm90b2NvbEJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2V4cGVjdGVkL3NoYWRvd2VkLW9wdGlvbmFsLXR5cGUtc2V0dGVycy5qc29uLXJlc3VsdCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9zaGFk
b3dlZC1vcHRpb25hbC10eXBlLXNldHRlcnMuanNvbi1yZXN1bHQKaW5kZXggZDczOWNjM2NlNjQx
MmFhYjBkYmViODQ0MWVmN2VkYTY5YmI3OTEzMi4uODZiM2Q3ZGU1NzA4Yjg0ZmZhNjYyZjZmMzQx
MDUyMWNiNjhlMjM0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3NoYWRvd2VkLW9wdGlvbmFsLXR5cGUtc2V0dGVycy5q
c29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvc2hhZG93ZWQtb3B0aW9uYWwtdHlwZS1zZXR0ZXJzLmpzb24tcmVzdWx0
CkBAIC0zMCw3ICszMCw3IEBACiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdz
LnB5CiAjIyMgRW5kIEZpbGU6IEluc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwogCi0jIyMgQmVn
aW4gRmlsZTogSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKKyMjIyBCZWdp
biBGaWxlOiBUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC02MSwx
MiArNjEsMTEgQEAKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxs
eSBnZW5lcmF0ZWQgZnJvbSBzaGFkb3dlZC1vcHRpb25hbC10eXBlLXNldHRlcnMuanNvbgogLy8g
YnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dl
bmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3Rv
ckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVyc19oCi0jZGVmaW5lIEluc3BlY3RvckFsdGVybmF0
ZUJhY2tlbmREaXNwYXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShJTlNQRUNU
T1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xU
eXBlcy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbFR5cGVzLmgiCiAjaW5jbHVkZSA8aW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KIApAQCAtODYsMTEgKzg1LDkgQEAgcHJpdmF0
ZToKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RP
Ul9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCisjIyMgRW5kIEZpbGU6IFRlc3RBbHRlcm5hdGVCYWNr
ZW5kRGlzcGF0Y2hlcnMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yQWx0ZXJuYXRl
QmFja2VuZERpc3BhdGNoZXJzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckFsdGVybmF0ZUJh
Y2tlbmREaXNwYXRjaGVycy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcnMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KQEAgLTEyMSwxMCArMTE4LDkgQEAgcHJpdmF0ZToKIC8vIERPIE5PVCBFRElUIFRISVMgRklM
RS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBzaGFkb3dlZC1vcHRpb25hbC10
eXBlLXNldHRlcnMuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5w
eQogCi0jaWZuZGVmIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyc19oCi0jZGVmaW5lIEluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkluc3Bl
Y3RvclByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIK
ICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTM1LDExICsxMzEsOSBAQCB0eXBlZGVm
IFN0cmluZyBFcnJvclN0cmluZzsKIAogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKKyMjIyBF
bmQgRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnNfaCkKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVycy5jcHAKKyMjIyBCZWdpbiBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmNwcAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KQEAgLTE3MSw3ICsxNjUsNyBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIC8v
IGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9n
ZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oIgorI2luY2x1ZGUg
IlRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMu
aD4KQEAgLTE3OSw3ICsxNzMsNyBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUykKLSNpbmNsdWRlICJJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0
Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgiCiAj
ZW5kaWYKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0xODgsOSArMTgyLDkgQEAgbmFtZXNw
YWNlIEluc3BlY3RvciB7CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCi0jIyMgRW5kIEZp
bGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdEJh
Y2tlbmREaXNwYXRjaGVycy5jcHAKIAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckZyb250ZW5k
RGlzcGF0Y2hlcnMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCkBAIC0yMjEsMTAgKzIxNSw5IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogLy8gRE8g
Tk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHNo
YWRvd2VkLW9wdGlvbmFsLXR5cGUtc2V0dGVycy5qc29uCiAvLyBieSB0aGUgc2NyaXB0OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXBy
b3RvY29sLWJpbmRpbmdzLnB5CiAKLSNpZm5kZWYgSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVy
c19oCi0jZGVmaW5lIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnNfaAorI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCIKKyNpbmNsdWRlICJUZXN0
UHJvdG9jb2xPYmplY3RzLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0yMzMsMTEgKzIyNiw5IEBA
IG5hbWVzcGFjZSBJbnNwZWN0b3IgewogY2xhc3MgRnJvbnRlbmRSb3V0ZXI7CiAKIH0gLy8gbmFt
ZXNwYWNlIEluc3BlY3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5o
CiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gpCi0j
IyMgRW5kIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaAotCi0jIyMgQmVnaW4g
RmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBCZWdpbiBGaWxlOiBU
ZXN0RnJvbnRlbmREaXNwYXRjaGVycy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yNjksNyArMjYwLDcgQEAgY2xh
c3MgRnJvbnRlbmRSb3V0ZXI7CiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdz
LnB5CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZERp
c3BhdGNoZXJzLmgiCisjaW5jbHVkZSAiVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKIAogI2lu
Y2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgpAQCAtMjc4LDkgKzI2OSw5IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiB9IC8v
IG5hbWVzcGFjZSBJbnNwZWN0b3IKIAotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JGcm9udGVuZERp
c3BhdGNoZXJzLmNwcAorIyMjIEVuZCBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5jcHAK
IAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oCisjIyMgQmVnaW4g
RmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5oCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMzExLDggKzMwMiw3IEBAIG5h
bWVzcGFjZSBJbnNwZWN0b3IgewogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRv
bWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHNoYWRvd2VkLW9wdGlvbmFsLXR5cGUtc2V0dGVycy5q
c29uCiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKLSNpZm5kZWYg
SW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzX2gKLSNkZWZpbmUgSW5zcGVjdG9yUHJvdG9jb2xPYmpl
Y3RzX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclByb3Rv
Y29sVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtNDE5LDExICs0MDks
OSBAQCBwdWJsaWM6CiB9IC8vIG5hbWVzcGFjZSBQcm90b2NvbAogCiB9IC8vIG5hbWVzcGFjZSBJ
bnNwZWN0b3IKKyMjIyBFbmQgRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5oCiAKLSNlbmRpZiAv
LyAhZGVmaW5lZChJbnNwZWN0b3JQcm90b2NvbE9iamVjdHNfaCkKLSMjIyBFbmQgRmlsZTogSW5z
cGVjdG9yUHJvdG9jb2xPYmplY3RzLmgKLQotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvclByb3Rv
Y29sT2JqZWN0cy5jcHAKKyMjIyBCZWdpbiBGaWxlOiBUZXN0UHJvdG9jb2xPYmplY3RzLmNwcAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KQEAgLTQ1NSw3ICs0NDMsNyBAQCBwdWJsaWM6CiAvLyBieSB0aGUgc2NyaXB0OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXBy
b3RvY29sLWJpbmRpbmdzLnB5CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnNw
ZWN0b3JQcm90b2NvbE9iamVjdHMuaCIKKyNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3RzLmgi
CiAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTQ3OSw3ICs0NjcsNyBAQCBT
dHJpbmcgZ2V0RW51bUNvbnN0YW50VmFsdWUoaW50IGNvZGUpIHsKIAogfSAvLyBuYW1lc3BhY2Ug
SW5zcGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcAor
IyMjIEVuZCBGaWxlOiBUZXN0UHJvdG9jb2xPYmplY3RzLmNwcAogCiAjIyMgQmVnaW4gRmlsZTog
VGVzdFByb3RvY29sQmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1kZWNs
YXJhdGlvbi1hbGlhc2VkLXByaW1pdGl2ZS10eXBlLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRp
b24tYWxpYXNlZC1wcmltaXRpdmUtdHlwZS5qc29uLXJlc3VsdAppbmRleCA1YTI2NjdjNjhmMzEx
ZGYxOTc4YmVlM2NiMjUzZjI1ZTM0Y2QwMWIwLi4wYjk2Yzk2NTY4OTlhOGVhZTlmOWE2YWMwMDM1
MDExYjQ0NjkzMjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1hbGlhc2VkLXByaW1pdGl2
ZS10eXBlLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWFsaWFzZWQtcHJpbWl0aXZl
LXR5cGUuanNvbi1yZXN1bHQKQEAgLTMwLDcgKzMwLDcgQEAKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3It
cHJvdG9jb2wtYmluZGluZ3MucHkKICMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2VuZENvbW1h
bmRzLmpzCiAKLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0
Y2hlcnMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMu
aAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KQEAgLTYxLDEyICs2MSwxMSBAQAogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJ
dCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHR5cGUtZGVjbGFyYXRpb24tYWxpYXNl
ZC1wcmltaXRpdmUtdHlwZS5qc29uCiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRp
bmdzLnB5CiAKLSNpZm5kZWYgSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzX2gK
LSNkZWZpbmUgSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzX2gKKyNwcmFnbWEg
b25jZQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCiAKLSNp
bmNsdWRlICJJbnNwZWN0b3JQcm90b2NvbFR5cGVzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29s
VHlwZXMuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgog
CkBAIC04NiwxMSArODUsOSBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKKyMjIyBF
bmQgRmlsZTogVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAvLyAh
ZGVmaW5lZChJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnNfaCkKLSMjIyBFbmQg
RmlsZTogSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2lu
IEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oCisjIyMgQmVnaW4gRmlsZTogVGVz
dEJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTIxLDEwICsxMTgsOSBAQCBwcml2YXRl
OgogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRl
ZCBmcm9tIHR5cGUtZGVjbGFyYXRpb24tYWxpYXNlZC1wcmltaXRpdmUtdHlwZS5qc29uCiAvLyBi
eSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKLSNpZm5kZWYgSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXJzX2gKLSNkZWZpbmUgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJz
X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgi
CisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9J
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCkBAIC0xMzUsMTEgKzEzMSw5IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwog
CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0QmFja2VuZERp
c3BhdGNoZXJzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaAotCi0j
IyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmNwcAorIyMjIEJlZ2lu
IEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuY3BwCiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTcxLDcgKzE2NSw3
IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogLy8gYnkgdGhlIHNjcmlwdDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90
b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXJzLmgiCisjaW5jbHVkZSAiVGVzdEJhY2tlbmREaXNwYXRjaGVy
cy5oIgogCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAj
aW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5oPgpAQCAtMTc5LDcgKzE3Myw3IEBA
IHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQotI2luY2x1
ZGUgIkluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oIgorI2luY2x1ZGUgIlRl
c3RBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgSW5z
cGVjdG9yIHsKQEAgLTE4OCw5ICsxODIsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogfSAv
LyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXJzLmNwcAorIyMjIEVuZCBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmNwcAog
Ci0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oCisjIyMgQmVn
aW4gRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTIyMSwxMCArMjE1
LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0
IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdHlwZS1kZWNsYXJhdGlvbi1hbGlhc2Vk
LXByaW1pdGl2ZS10eXBlLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGlu
Z3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gKLSNkZWZpbmUg
SW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
Ikluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVj
dHMuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTIzMywxMSArMjI2LDkgQEAgbmFtZXNwYWNlIElu
c3BlY3RvciB7CiBjbGFzcyBGcm9udGVuZFJvdXRlcjsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVj
dG9yCisjIyMgRW5kIEZpbGU6IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgKIAotI2VuZGlmIC8v
ICFkZWZpbmVkKEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnNfaCkKLSMjIyBFbmQgRmlsZTog
SW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0
b3JGcm9udGVuZERpc3BhdGNoZXJzLmNwcAorIyMjIEJlZ2luIEZpbGU6IFRlc3RGcm9udGVuZERp
c3BhdGNoZXJzLmNwcAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTI2OSw3ICsyNjAsNyBAQCBjbGFzcyBGcm9udGVuZFJv
dXRlcjsKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIK
KyNpbmNsdWRlICJUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmRSb3V0ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0y
NzgsOSArMjY5LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIH0gLy8gbmFtZXNwYWNlIElu
c3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3Bw
CisjIyMgRW5kIEZpbGU6IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmNwcAogCi0jIyMgQmVnaW4g
RmlsZTogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgKKyMjIyBCZWdpbiBGaWxlOiBUZXN0UHJv
dG9jb2xPYmplY3RzLmgKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0zMTEsOCArMzAyLDcgQEAgbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2Vu
ZXJhdGVkIGZyb20gdHlwZS1kZWNsYXJhdGlvbi1hbGlhc2VkLXByaW1pdGl2ZS10eXBlLmpzb24K
IC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNw
ZWN0b3JQcm90b2NvbE9iamVjdHNfaAotI2RlZmluZSBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHNf
aAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xU
eXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC0zNDQsMTEgKzMzNCw5IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFN0cmluZyBnZXRFbnVtQ29uc3RhbnRWYWx1ZShUIGVudW1W
YWx1ZSkKIH0gLy8gbmFtZXNwYWNlIFByb3RvY29sCiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3Rv
cgorIyMjIEVuZCBGaWxlOiBUZXN0UHJvdG9jb2xPYmplY3RzLmgKIAotI2VuZGlmIC8vICFkZWZp
bmVkKEluc3BlY3RvclByb3RvY29sT2JqZWN0c19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JQ
cm90b2NvbE9iamVjdHMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yUHJvdG9jb2xPYmpl
Y3RzLmNwcAorIyMjIEJlZ2luIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuY3BwCiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpA
QCAtMzgwLDcgKzM2OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFN0cmluZyBnZXRFbnVtQ29u
c3RhbnRWYWx1ZShUIGVudW1WYWx1ZSkKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmlu
ZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvclByb3Rv
Y29sT2JqZWN0cy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKIAogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtNDAxLDcgKzM4OSw3IEBAIFN0cmluZyBnZXRF
bnVtQ29uc3RhbnRWYWx1ZShpbnQgY29kZSkgewogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IK
IAotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwCisjIyMgRW5kIEZp
bGU6IFRlc3RQcm90b2NvbE9iamVjdHMuY3BwCiAKICMjIyBCZWdpbiBGaWxlOiBUZXN0UHJvdG9j
b2xCYWNrZW5kRGlzcGF0Y2hlcnMuaAogLyoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWFy
cmF5LXR5cGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1hcnJheS10eXBlLmpzb24tcmVz
dWx0CmluZGV4IGRmMmJiMDZkYTA0MmY0YmU0YTQxYzBiMmE5N2Y3YmJiMDc5Y2ZhNzEuLjg1MGQz
OTg0N2JiMWVjNWFjYWFiMmZiZDA3MDU5Mjk2NmNmYTQ1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLWRlY2xh
cmF0aW9uLWFycmF5LXR5cGUuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tYXJyYXkt
dHlwZS5qc29uLXJlc3VsdApAQCAtMzMsNyArMzMsNyBAQAogSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckVudW0oIkRlYnVnZ2VyLlJlYXNvbiIsIHtEaWVkOiAiRGllZCIsIEZhaW50ZWQ6ICJGYWlu
dGVkIiwgSHVuZ3J5OiAiSHVuZ3J5In0pOwogIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5k
Q29tbWFuZHMuanMKIAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmRE
aXNwYXRjaGVycy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRj
aGVycy5oCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgpAQCAtNjQsMTIgKzY0LDExIEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0
ZXJFbnVtKCJEZWJ1Z2dlci5SZWFzb24iLCB7RGllZDogIkRpZWQiLCBGYWludGVkOiAiRmFpbnRl
CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVk
IGZyb20gdHlwZS1kZWNsYXJhdGlvbi1hcnJheS10eXBlLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0
b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNr
ZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0
Y2hlcnNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9E
SVNQQVRDSEVSUykKIAotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sVHlwZXMuaCIKKyNpbmNs
dWRlICJUZXN0UHJvdG9jb2xUeXBlcy5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyLmg+CiAKQEAgLTg5LDExICs4OCw5IEBAIHByaXZhdGU6CiB9IC8vIG5hbWVz
cGFjZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJ
U1BBVENIRVJTKQorIyMjIEVuZCBGaWxlOiBUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJz
LmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRj
aGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hl
cnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgKKyMj
IyBCZWdpbiBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xMjQsMTAg
KzEyMSw5IEBAIHByaXZhdGU6CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdHlwZS1kZWNsYXJhdGlvbi1hcnJheS10eXBlLmpzb24K
IC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcnNfaAorI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJJbnNwZWN0b3JQcm90b2NvbE9iamVj
dHMuaCIKKyNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3RzLmgiCiAjaW5jbHVkZSA8aW5zcGVj
dG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTEzOCwxMSArMTM0LDkgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJp
bmc7CiAKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCisjIyMgRW5kIEZpbGU6IFRlc3RCYWNr
ZW5kRGlzcGF0Y2hlcnMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXJzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5o
Ci0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuY3BwCisjIyMg
QmVnaW4gRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVycy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xNzQsNyAr
MTY4LDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAvLyBieSB0aGUgc2NyaXB0OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9y
LXByb3RvY29sLWJpbmRpbmdzLnB5CiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0QmFja2VuZERpc3Bh
dGNoZXJzLmgiCiAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIu
aD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CkBAIC0xODIsNyArMTc2
LDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCi0j
aW5jbHVkZSAiSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgiCisjaW5jbHVk
ZSAiVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oIgogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBJbnNwZWN0b3IgewpAQCAtMTkxLDkgKzE4NSw5IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3Igewog
CiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlcnMuY3BwCisjIyMgRW5kIEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMu
Y3BwCiAKLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmgKKyMj
IyBCZWdpbiBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oCiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMjI0LDEw
ICsyMTgsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIC8vIERPIE5PVCBFRElUIFRISVMgRklM
RS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSB0eXBlLWRlY2xhcmF0aW9uLWFy
cmF5LXR5cGUuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQog
Ci0jaWZuZGVmIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0
b3JGcm9udGVuZERpc3BhdGNoZXJzX2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSW5zcGVj
dG9yUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgog
I2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIApAQCAtMjM2LDExICsyMjksOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9y
IHsKIGNsYXNzIEZyb250ZW5kUm91dGVyOwogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKKyMj
IyBFbmQgRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaAogCi0jZW5kaWYgLy8gIWRlZmlu
ZWQoSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0
b3JGcm9udGVuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckZyb250
ZW5kRGlzcGF0Y2hlcnMuY3BwCisjIyMgQmVnaW4gRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hl
cnMuY3BwCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgpAQCAtMjcyLDcgKzI2Myw3IEBAIGNsYXNzIEZyb250ZW5kUm91dGVyOwog
Ly8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oIgorI2luY2x1
ZGUgIlRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgiCiAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9u
dGVuZFJvdXRlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTI4MSw5ICsy
NzIsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9y
CiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBF
bmQgRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCiAKLSMjIyBCZWdpbiBGaWxlOiBJ
bnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RQcm90b2NvbE9i
amVjdHMuaAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KQEAgLTMxNCw4ICszMDUsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsK
IC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQg
ZnJvbSB0eXBlLWRlY2xhcmF0aW9uLWFycmF5LXR5cGUuanNvbgogLy8gYnkgdGhlIHNjcmlwdDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rv
ci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvclByb3RvY29sT2JqZWN0
c19oCi0jZGVmaW5lIEluc3BlY3RvclByb3RvY29sT2JqZWN0c19oCisjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTM2OSwxMSArMzU5LDkgQEAgZW51bSBjbGFzcyBSZWFzb24g
ewogfSAvLyBuYW1lc3BhY2UgUHJvdG9jb2wKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCisj
IyMgRW5kIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQo
SW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvclByb3Rv
Y29sT2JqZWN0cy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMu
Y3BwCisjIyMgQmVnaW4gRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5jcHAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC00
MDUsNyArMzkzLDcgQEAgZW51bSBjbGFzcyBSZWFzb24gewogLy8gYnkgdGhlIHNjcmlwdDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1w
cm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5z
cGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5o
IgogCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC00MjksNyArNDE3LDcgQEAg
U3RyaW5nIGdldEVudW1Db25zdGFudFZhbHVlKGludCBjb2RlKSB7CiAKIH0gLy8gbmFtZXNwYWNl
IEluc3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAK
KyMjIyBFbmQgRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5jcHAKIAogIyMjIEJlZ2luIEZpbGU6
IFRlc3RQcm90b2NvbEJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtZGVj
bGFyYXRpb24tZW51bS10eXBlLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tZW51bS10eXBl
Lmpzb24tcmVzdWx0CmluZGV4IDcxN2I0ZDA2MGY2MGMzYTgzZWZmZTNkMzZkMDUyM2IxYTAyNTVi
NWMuLjc2NzFkMzFhMTk4MTlkZTBlNWJlMGNiNzU5YzdlNTE2YTZjNDUxNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90
eXBlLWRlY2xhcmF0aW9uLWVudW0tdHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlv
bi1lbnVtLXR5cGUuanNvbi1yZXN1bHQKQEAgLTM0LDcgKzM0LDcgQEAgSW5zcGVjdG9yQmFja2Vu
ZC5yZWdpc3RlckVudW0oIlJ1bnRpbWUuRmFybUFuaW1hbHMiLCB7UGlnczogIlBpZ3MiLCBDb3dz
OiAiQ293cyIKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJSdW50aW1lLlR3b0xlZ2dl
ZEFuaW1hbHMiLCB7RHVja3M6ICJEdWNrcyIsIEhlbnM6ICJIZW5zIiwgQ3Jvd3M6ICJDcm93cyIs
IEZsYW1pbmdvczogIkZsYW1pbmdvcyJ9KTsKICMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2Vu
ZENvbW1hbmRzLmpzCiAKLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5k
RGlzcGF0Y2hlcnMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RBbHRlcm5hdGVCYWNrZW5kRGlzcGF0
Y2hlcnMuaAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KQEAgLTY1LDEyICs2NSwxMSBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lz
dGVyRW51bSgiUnVudGltZS5Ud29MZWdnZWRBbmltYWxzIiwge0R1Y2tzOiAiRHVja3MiLCBIZW5z
OgogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRl
ZCBmcm9tIHR5cGUtZGVjbGFyYXRpb24tZW51bS10eXBlLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0
b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNr
ZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0
Y2hlcnNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9E
SVNQQVRDSEVSUykKIAotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sVHlwZXMuaCIKKyNpbmNs
dWRlICJUZXN0UHJvdG9jb2xUeXBlcy5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyLmg+CiAKQEAgLTkwLDExICs4OSw5IEBAIHByaXZhdGU6CiB9IC8vIG5hbWVz
cGFjZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJ
U1BBVENIRVJTKQorIyMjIEVuZCBGaWxlOiBUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJz
LmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRj
aGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hl
cnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgKKyMj
IyBCZWdpbiBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xMjUsMTAg
KzEyMiw5IEBAIHByaXZhdGU6CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdHlwZS1kZWNsYXJhdGlvbi1lbnVtLXR5cGUuanNvbgog
Ly8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyc19oCi0jZGVmaW5lIEluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyc19oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sT2JqZWN0
cy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKICNpbmNsdWRlIDxpbnNwZWN0
b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtMTM5LDExICsxMzUsOSBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmlu
ZzsKIAogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKKyMjIyBFbmQgRmlsZTogVGVzdEJhY2tl
bmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcnNfaCkKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgK
LQotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBC
ZWdpbiBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmNwcAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTE3NSw3ICsx
NjksNyBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3It
cHJvdG9jb2wtYmluZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIklu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oIgorI2luY2x1ZGUgIlRlc3RCYWNrZW5kRGlzcGF0
Y2hlcnMuaCIKIAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5o
PgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KQEAgLTE4Myw3ICsxNzcs
NyBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKLSNp
bmNsdWRlICJJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRl
ICJUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNl
IEluc3BlY3RvciB7CkBAIC0xOTIsOSArMTg2LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAK
IH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVycy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVycy5j
cHAKIAotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaAorIyMj
IEJlZ2luIEZpbGU6IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yMjUsMTAg
KzIxOSw5IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxF
LiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHR5cGUtZGVjbGFyYXRpb24tZW51
bS10eXBlLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAot
I2lmbmRlZiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gKLSNkZWZpbmUgSW5zcGVjdG9y
RnJvbnRlbmREaXNwYXRjaGVyc19oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkluc3BlY3Rv
clByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKICNp
bmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTIzNywxMSArMjMwLDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7
CiBjbGFzcyBGcm9udGVuZFJvdXRlcjsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCisjIyMg
RW5kIEZpbGU6IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVk
KEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnNfaCkKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9y
RnJvbnRlbmREaXNwYXRjaGVycy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JGcm9udGVu
ZERpc3BhdGNoZXJzLmNwcAorIyMjIEJlZ2luIEZpbGU6IFRlc3RGcm9udGVuZERpc3BhdGNoZXJz
LmNwcAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KQEAgLTI3Myw3ICsyNjQsNyBAQCBjbGFzcyBGcm9udGVuZFJvdXRlcjsKIC8v
IGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9n
ZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRl
ICJUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRl
bmRSb3V0ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yODIsOSArMjcz
LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3Rvcgog
Ci0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCisjIyMgRW5k
IEZpbGU6IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmNwcAogCi0jIyMgQmVnaW4gRmlsZTogSW5z
cGVjdG9yUHJvdG9jb2xPYmplY3RzLmgKKyMjIyBCZWdpbiBGaWxlOiBUZXN0UHJvdG9jb2xPYmpl
Y3RzLmgKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCkBAIC0zMTUsOCArMzA2LDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAv
LyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZy
b20gdHlwZS1kZWNsYXJhdGlvbi1lbnVtLXR5cGUuanNvbgogLy8gYnkgdGhlIHNjcmlwdDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1w
cm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvclByb3RvY29sT2JqZWN0c19o
Ci0jZGVmaW5lIEluc3BlY3RvclByb3RvY29sT2JqZWN0c19oCisjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KQEAgLTM2NiwxMSArMzU2LDkgQEAgZW51bSBjbGFzcyBUd29MZWdnZWRB
bmltYWxzIHsKIH0gLy8gbmFtZXNwYWNlIFByb3RvY29sCiAKIH0gLy8gbmFtZXNwYWNlIEluc3Bl
Y3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0UHJvdG9jb2xPYmplY3RzLmgKIAotI2VuZGlmIC8vICFk
ZWZpbmVkKEluc3BlY3RvclByb3RvY29sT2JqZWN0c19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0
b3JQcm90b2NvbE9iamVjdHMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yUHJvdG9jb2xP
YmplY3RzLmNwcAorIyMjIEJlZ2luIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuY3BwCiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgpAQCAtNDAyLDcgKzM5MCw3IEBAIGVudW0gY2xhc3MgVHdvTGVnZ2VkQW5pbWFscyB7CiAvLyBi
eSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCIKKyNpbmNsdWRlICJUZXN0
UHJvdG9jb2xPYmplY3RzLmgiCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAg
LTQzMCw3ICs0MTgsNyBAQCBTdHJpbmcgZ2V0RW51bUNvbnN0YW50VmFsdWUoaW50IGNvZGUpIHsK
IAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yUHJv
dG9jb2xPYmplY3RzLmNwcAorIyMjIEVuZCBGaWxlOiBUZXN0UHJvdG9jb2xPYmplY3RzLmNwcAog
CiAjIyMgQmVnaW4gRmlsZTogVGVzdFByb3RvY29sQmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMv
ZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uLXJlc3VsdCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLWRl
Y2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0CmluZGV4IGNmY2MzZDEyNTEwOGYwZDEx
NmY2M2FiMjcxOWY4ODBhMDA1MDM5ZDguLmNjYWE4OWRkOTEzN2ZkMzNlMGNhM2U4YjRmNmM5Y2Yz
OTI5NWNjMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVz
dWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9l
eHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0CkBAIC0zMCw3
ICszMCw3IEBACiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAjIyMg
RW5kIEZpbGU6IEluc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwogCi0jIyMgQmVnaW4gRmlsZTog
SW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKKyMjIyBCZWdpbiBGaWxlOiBU
ZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
MywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC02MSwxMiArNjEsMTEg
QEAKIC8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0
ZWQgZnJvbSB0eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24KIC8vIGJ5IHRoZSBzY3Jp
cHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNw
ZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JBbHRlcm5hdGVC
YWNrZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlz
cGF0Y2hlcnNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFU
RV9ESVNQQVRDSEVSUykKIAotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sVHlwZXMuaCIKKyNp
bmNsdWRlICJUZXN0UHJvdG9jb2xUeXBlcy5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyLmg+CiAKQEAgLTg2LDExICs4NSw5IEBAIHByaXZhdGU6CiB9IC8vIG5h
bWVzcGFjZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRF
X0RJU1BBVENIRVJTKQorIyMjIEVuZCBGaWxlOiBUZXN0QWx0ZXJuYXRlQmFja2VuZERpc3BhdGNo
ZXJzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNw
YXRjaGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0
Y2hlcnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgK
KyMjIyBCZWdpbiBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xMjEs
MTAgKzExOCw5IEBAIHByaXZhdGU6CiAvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1
dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5q
c29uCiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKLSNpZm5kZWYg
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzX2gKLSNkZWZpbmUgSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXJzX2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xP
YmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgPGlu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC0xMzUsMTEgKzEzMSw5IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9y
U3RyaW5nOwogCiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0
QmFja2VuZERpc3BhdGNoZXJzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmNwcAor
IyMjIEJlZ2luIEZpbGU6IFRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuY3BwCiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTcx
LDcgKzE2NSw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogLy8gYnkgdGhlIHNjcmlw
dDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3Bl
Y3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgiCisjaW5jbHVkZSAiVGVzdEJhY2tlbmRE
aXNwYXRjaGVycy5oIgogCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91
dGVyLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5oPgpAQCAtMTc5LDcg
KzE3Myw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJT
KQotI2luY2x1ZGUgIkluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oIgorI2lu
Y2x1ZGUgIlRlc3RBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKICNlbmRpZgogCiBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKQEAgLTE4OCw5ICsxODIsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9y
IHsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQgRmlsZTogSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXJzLmNwcAorIyMjIEVuZCBGaWxlOiBUZXN0QmFja2VuZERpc3BhdGNo
ZXJzLmNwcAogCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5o
CisjIyMgQmVnaW4gRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTIy
MSwxMCArMjE1LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAvLyBETyBOT1QgRURJVCBUSElT
IEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdHlwZS1kZWNsYXJhdGlv
bi1vYmplY3QtdHlwZS5qc29uCiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdz
LnB5CiAKLSNpZm5kZWYgSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVyc19oCi0jZGVmaW5lIElu
c3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnNfaAorI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJJ
bnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCIKKyNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3Rz
LmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0yMzMsMTEgKzIyNiw5IEBAIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewogY2xhc3MgRnJvbnRlbmRSb3V0ZXI7CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3Rv
cgorIyMjIEVuZCBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAvLyAh
ZGVmaW5lZChJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzX2gpCi0jIyMgRW5kIEZpbGU6IElu
c3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSW5zcGVjdG9y
RnJvbnRlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBCZWdpbiBGaWxlOiBUZXN0RnJvbnRlbmREaXNw
YXRjaGVycy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yNjksNyArMjYwLDcgQEAgY2xhc3MgRnJvbnRlbmRSb3V0
ZXI7CiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmgiCisj
aW5jbHVkZSAiVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKIAogI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMjc4
LDkgKzI2OSw5IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiB9IC8vIG5hbWVzcGFjZSBJbnNw
ZWN0b3IKIAotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmNwcAor
IyMjIEVuZCBGaWxlOiBUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5jcHAKIAotIyMjIEJlZ2luIEZp
bGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oCisjIyMgQmVnaW4gRmlsZTogVGVzdFByb3Rv
Y29sT2JqZWN0cy5oCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMzExLDggKzMwMiw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0
b3IgewogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVy
YXRlZCBmcm9tIHR5cGUtZGVjbGFyYXRpb24tb2JqZWN0LXR5cGUuanNvbgogLy8gYnkgdGhlIHNj
cmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWlu
c3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvclByb3RvY29s
T2JqZWN0c19oCi0jZGVmaW5lIEluc3BlY3RvclByb3RvY29sT2JqZWN0c19oCisjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmg+CiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTgwOSwxMSArNzk5LDkgQEAgcHVibGljOgogfSAv
LyBuYW1lc3BhY2UgUHJvdG9jb2wKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCisjIyMgRW5k
IEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVj
dG9yUHJvdG9jb2xPYmplY3RzX2gpCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2Jq
ZWN0cy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwCisj
IyMgQmVnaW4gRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5jcHAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC04NDUsNyAr
ODMzLDcgQEAgcHVibGljOgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5w
eQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xPYmpl
Y3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgogCiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogCkBAIC04NjYsNyArODU0LDcgQEAgU3RyaW5nIGdldEVudW1Db25z
dGFudFZhbHVlKGludCBjb2RlKSB7CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCi0jIyMg
RW5kIEZpbGU6IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAKKyMjIyBFbmQgRmlsZTogVGVz
dFByb3RvY29sT2JqZWN0cy5jcHAKIAogIyMjIEJlZ2luIEZpbGU6IFRlc3RQcm90b2NvbEJhY2tl
bmREaXNwYXRjaGVycy5oCiAvKgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2Fz
dHMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvdHlwZS1yZXF1aXJpbmctcnVudGltZS1jYXN0cy5qc29uLXJlc3VsdApp
bmRleCA0OGEyMDcxNGFlZTU4YjExOWNkNWVjYzQ3NzA3OTFiODhjOTEwNTkzLi45MzI1N2NhYzQ4
ZmRjMjMwOGNjZGJlMzVkZTUyYTQ0ZmM4ZmJmMjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1yZXF1aXJpbmct
cnVudGltZS1jYXN0cy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1yZXF1aXJpbmctcnVudGltZS1jYXN0
cy5qc29uLXJlc3VsdApAQCAtMzQsNyArMzQsNyBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVy
RW51bSgiVGVzdC5VbmNhc3RlZEFuaW1hbHMiLCB7UGlnczogIlBpZ3MiLCBDb3dzOiAiQ293cwog
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckVudW0oIlRlc3QuQ2FzdGVkQW5pbWFscyIsIHtEdWNr
czogIkR1Y2tzIiwgSGVuczogIkhlbnMiLCBDcm93czogIkNyb3dzIiwgRmxhbWluZ29zOiAiRmxh
bWluZ29zIn0pOwogIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKIAot
IyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCisj
IyMgQmVnaW4gRmlsZTogVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpA
QCAtNjUsMTIgKzY1LDExIEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJFbnVtKCJUZXN0LkNh
c3RlZEFuaW1hbHMiLCB7RHVja3M6ICJEdWNrcyIsIEhlbnM6ICJIZW5zCiAvLyBETyBOT1QgRURJ
VCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdHlwZS1yZXF1
aXJpbmctcnVudGltZS1jYXN0cy5qc29uCiAvLyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJp
bmRpbmdzLnB5CiAKLSNpZm5kZWYgSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJz
X2gKLSNkZWZpbmUgSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzX2gKKyNwcmFn
bWEgb25jZQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCiAK
LSNpbmNsdWRlICJJbnNwZWN0b3JQcm90b2NvbFR5cGVzLmgiCisjaW5jbHVkZSAiVGVzdFByb3Rv
Y29sVHlwZXMuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5o
PgogCkBAIC05MCwxMSArODksOSBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9y
CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKKyMj
IyBFbmQgRmlsZTogVGVzdEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oCiAKLSNlbmRpZiAv
LyAhZGVmaW5lZChJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnNfaCkKLSMjIyBF
bmQgRmlsZTogSW5zcGVjdG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJl
Z2luIEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oCisjIyMgQmVnaW4gRmlsZTog
VGVzdEJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTI1LDEwICsxMjIsOSBAQCBwcml2
YXRlOgogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVy
YXRlZCBmcm9tIHR5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMuanNvbgogLy8gYnkgdGhlIHNj
cmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWlu
c3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyc19oCi0jZGVmaW5lIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyc19oCisjcHJh
Z21hIG9uY2UKIAotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1
ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtMTM5LDExICsxMzUsOSBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogCiB9IC8v
IG5hbWVzcGFjZSBJbnNwZWN0b3IKKyMjIyBFbmQgRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVy
cy5oCiAKLSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnNfaCkK
LSMjIyBFbmQgRmlsZTogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgKLQotIyMjIEJlZ2lu
IEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBCZWdpbiBGaWxlOiBU
ZXN0QmFja2VuZERpc3BhdGNoZXJzLmNwcAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTE3NSw3ICsxNjksNyBAQCB0eXBl
ZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmlu
ZGluZ3MucHkKIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVycy5oIgorI2luY2x1ZGUgIlRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAog
I2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUg
PGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KQEAgLTE4Myw3ICsxNzcsNyBAQCB0eXBlZGVm
IFN0cmluZyBFcnJvclN0cmluZzsKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKLSNpbmNsdWRlICJJbnNw
ZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJUZXN0QWx0ZXJu
YXRlQmFja2VuZERpc3BhdGNoZXJzLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7
CkBAIC0xOTIsOSArMTg2LDkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIH0gLy8gbmFtZXNw
YWNlIEluc3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
cy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdEJhY2tlbmREaXNwYXRjaGVycy5jcHAKIAotIyMjIEJl
Z2luIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaAorIyMjIEJlZ2luIEZpbGU6
IFRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yMjUsMTAgKzIxOSw5IEBAIG5h
bWVzcGFjZSBJbnNwZWN0b3IgewogLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRv
bWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHR5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMuanNv
bgogLy8gYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCi0jaWZuZGVmIElu
c3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnNfaAotI2RlZmluZSBJbnNwZWN0b3JGcm9udGVuZERp
c3BhdGNoZXJzX2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSW5zcGVjdG9yUHJvdG9jb2xP
YmplY3RzLmgiCisjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgPGlu
c3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtMjM3LDExICsyMzAsOSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIEZy
b250ZW5kUm91dGVyOwogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKKyMjIyBFbmQgRmlsZTog
VGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaAogCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9y
RnJvbnRlbmREaXNwYXRjaGVyc19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JGcm9udGVuZERp
c3BhdGNoZXJzLmgKLQotIyMjIEJlZ2luIEZpbGU6IEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hl
cnMuY3BwCisjIyMgQmVnaW4gRmlsZTogVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgpAQCAtMjczLDcgKzI2NCw3IEBAIGNsYXNzIEZyb250ZW5kUm91dGVyOwogLy8gYnkgdGhlIHNj
cmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2dlbmVyYXRlLWlu
c3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weQogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oIgorI2luY2x1ZGUgIlRlc3RGcm9u
dGVuZERpc3BhdGNoZXJzLmgiCiAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTI4Miw5ICsyNzMsOSBAQCBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKLSMjIyBFbmQg
RmlsZTogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAKKyMjIyBFbmQgRmlsZTogVGVz
dEZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwCiAKLSMjIyBCZWdpbiBGaWxlOiBJbnNwZWN0b3JQcm90
b2NvbE9iamVjdHMuaAorIyMjIEJlZ2luIEZpbGU6IFRlc3RQcm90b2NvbE9iamVjdHMuaAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KQEAgLTMxNSw4ICszMDYsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIC8vIERPIE5PVCBF
RElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSB0eXBlLXJl
cXVpcmluZy1ydW50aW1lLWNhc3RzLmpzb24KIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wt
YmluZGluZ3MucHkKIAotI2lmbmRlZiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHNfaAotI2RlZmlu
ZSBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHNfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxp
bnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CkBAIC01ODgsMTEgKzU3OCw5IEBAIHN0YXRpYyB2b2lkIGFzc2VydFZhbHVlSGFzRXhw
ZWN0ZWRUeXBlKEluc3BlY3Rvcjo6SW5zcGVjdG9yVmFsdWUqKTsKIH0gLy8gbmFtZXNwYWNlIFBy
b3RvY29sCiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgorIyMjIEVuZCBGaWxlOiBUZXN0UHJv
dG9jb2xPYmplY3RzLmgKIAotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvclByb3RvY29sT2Jq
ZWN0c19oKQotIyMjIEVuZCBGaWxlOiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaAotCi0jIyMg
QmVnaW4gRmlsZTogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcAorIyMjIEJlZ2luIEZpbGU6
IFRlc3RQcm90b2NvbE9iamVjdHMuY3BwCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNjI0LDcgKzYxMiw3IEBAIHN0YXRp
YyB2b2lkIGFzc2VydFZhbHVlSGFzRXhwZWN0ZWRUeXBlKEluc3BlY3Rvcjo6SW5zcGVjdG9yVmFs
dWUqKTsKIC8vIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIgorI2lu
Y2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIApAQCAtNzU3LDcgKzc0NSw3IEBAIHZvaWQgQmluZGluZ1RyYWl0czxJbnNwZWN0b3I6
OlByb3RvY29sOjpUZXN0OjpSZWN1cnNpdmVPYmplY3QyPjo6YXNzZXJ0VmFsdWVIYXNFCiAKIH0g
Ly8gbmFtZXNwYWNlIEluc3BlY3RvcgogCi0jIyMgRW5kIEZpbGU6IEluc3BlY3RvclByb3RvY29s
T2JqZWN0cy5jcHAKKyMjIyBFbmQgRmlsZTogVGVzdFByb3RvY29sT2JqZWN0cy5jcHAKIAogIyMj
IEJlZ2luIEZpbGU6IFRlc3RQcm90b2NvbEJhY2tlbmREaXNwYXRjaGVycy5oCiAvKgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dAppbmRleCBkYzhiZTViOWFjNmJlYmJjZjNkOWM3YzA4NmEyNjNkMTNiYWQ0YTk1
Li4yZjA1N2U5N2FlNDNjMTViMjI0NjNkMDc2ZGMzNmRhOTM2ZDZmMjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dApAQCAtNzg2LDIwICs3ODYsMjAgQEAgc2V0KFdlYktpdDJfQVVUT01BVElPTl9QUk9U
T0NPTF9HRU5FUkFUT1JfSU5QVVRTCiApCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQ
VVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L0luc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVycy5oICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9JbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcnMuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9JbnNwZWN0b3JQcm90
b2NvbE9iamVjdHMuaCAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vSW5zcGVjdG9yUHJv
dG9jb2xPYmplY3RzLmNwcAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJ
Un0vQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJ
VDJfRElSfS9BdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCAke0RFUklWRURfU09VUkNF
U19XRUJLSVQyX0RJUn0vQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oICR7REVSSVZFRF9TT1VS
Q0VTX1dFQktJVDJfRElSfS9BdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcAogICAgIE1BSU5f
REVQRU5ERU5DWSAke1dlYktpdDJfQVVUT01BVElPTl9QUk9UT0NPTF9HRU5FUkFUT1JfSU5QVVRT
fQogICAgIERFUEVORFMgJHtXZWJLaXQyX0FVVE9NQVRJT05fUFJPVE9DT0xfR0VORVJBVE9SX1ND
UklQVFN9CiAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1BST1RPQ09MX0dFTkVS
QVRPUl9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5
IC0tb3V0cHV0RGlyICIke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0iIC0tZnJhbWV3b3Jr
IFdlYktpdCAtLWJhY2tlbmQgJHtXZWJLaXQyX0FVVE9NQVRJT05fUFJPVE9DT0xfR0VORVJBVE9S
X0lOUFVUU30KICAgICBWRVJCQVRJTSkKIAogbGlzdChBUFBFTkQgV2ViS2l0Ml9IRUFERVJTCi0g
ICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L0luc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVycy5oCi0gICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L0luc3BlY3RvclByb3Rv
Y29sT2JqZWN0cy5oCisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L0F1dG9tYXRp
b25CYWNrZW5kRGlzcGF0Y2hlcnMuaAorICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElS
fS9BdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmgKICkKIAogbGlzdChBUFBFTkQgV2ViS2l0Ml9T
T1VSQ0VTCi0gICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L0luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVycy5jcHAKLSAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vSW5z
cGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcAorICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJf
RElSfS9BdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcAorICAgICR7REVSSVZFRF9TT1VS
Q0VTX1dFQktJVDJfRElSfS9BdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcAogKQogCiBXRUJL
SVRfRlJBTUVXT1JLKFdlYktpdDIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAw
ZDU3MjA0Njk3ODMzODgxN2FiODM0OTMyNzQyZjIzODRhZmMwMDMyLi5lNzhjMTlhNTEzY2Q3ZjAx
OGRkYTQyYWIzYjZmODQ4N2E1Zjc5YWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTIxMCw4ICsyMTAsOCBAQCBBVVRPTUFUSU9OX1BST1RPQ09MX0lOUFVUX0ZJTEVTID0gXAog
IwogCiBBVVRPTUFUSU9OX1BST1RPQ09MX09VVFBVVF9GSUxFUyA9IFwKLSAgICBJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcnMuaCBcCi0gICAgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmNw
cCBcCisgICAgQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oIFwKKyAgICBBdXRvbWF0aW9u
QmFja2VuZERpc3BhdGNoZXJzLmNwcCBcCiAjCiAKICMgSlNPTi1SUEMgQmFja2VuZCBEaXNwYXRj
aGVycywgVHlwZSBCdWlsZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDk0NmQ0MDE4
MTE0Mzc0NTRjNzc1M2I5OWY5MmFkOGNkYWVlYjk5ZjMuLmUwNDQ3ZDc0YTFjYTg3YmVlNzBkNTMy
NDUwNDk1ZjU3MTA5NjkwOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTI3LDcgKzI3
LDcgQEAKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgogCiAjaW5jbHVkZSAiQVBJ
QXV0b21hdGlvblNlc3Npb25DbGllbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JQcm90b2NvbE9i
amVjdHMuaCIKKyNpbmNsdWRlICJBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZy
b250ZW5kUm91dGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAppbmRleCAyZmQ4YWE1NDEwZTE5MmVh
ZDRkNWJhMTNmODNmNzU3YjE5N2Y2NGM5Li41ZjUyNWZlNzA2ZWMwMWU0MzI3Nzg5Yzk3ZDBjOGE5
ZTE2NTkzM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZp
bmUgV2ViQXV0b21hdGlvblNlc3Npb25faAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5j
bHVkZSAiSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmgiCisjaW5jbHVkZSAiQXV0b21hdGlv
bkJhY2tlbmREaXNwYXRjaGVycy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKICNpZiBF
TkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0ZTkxZDcwZTI2MjQxZGYxYjI0ZDkwYjE1OWI3
MWEwYjhmMmE2YzMyLi45OWJmNjEwMzcwNDRlZDBjYThiMjIyOGRjNmE3NmEwMDk3NDg2Yjk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMjI3LDEwICsxMjI3LDEwIEBACiAJCTk5NTVBNkVDMUM3OTgwQzIwMEVCNkE5MyAvKiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTk1NUE2RUIxQzc5ODBCQjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNz
aW9uLmggKi87IH07CiAJCTk5NTVBNkVEMUM3OTgwQ0EwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9u
U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OTU1QTZFQTFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uY3BwICov
OyB9OwogCQk5OTU1QTZFRjFDNzk4MTA4MDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RTkxQzc5ODBC
QjAwRUI2QTkzIC8qIEF1dG9tYXRpb24uanNvbiAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQk5OTU1QTZGNDFDNzk4NkRDMDBFQjZBOTMgLyogSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYwMUM3OTg2NjQwMEVCNkE5MyAvKiBJbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlcnMuY3BwICovOyB9OwotCQk5OTU1QTZGNTFDNzk4NkUwMDBFQjZBOTMgLyog
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZGMTFDNzk4NjY0MDBFQjZBOTMgLyogSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXJzLmggKi87IH07Ci0JCTk5NTVBNkY2MUM3OTg2RTMwMEVCNkE5MyAv
KiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RjIxQzc5ODY2NDAwRUI2QTkzIC8qIEluc3BlY3Rv
clByb3RvY29sT2JqZWN0cy5jcHAgKi87IH07Ci0JCTk5NTVBNkY3MUM3OTg2RTUwMEVCNkE5MyAv
KiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBJbnNwZWN0b3JQ
cm90b2NvbE9iamVjdHMuaCAqLzsgfTsKKwkJOTk1NUE2RjQxQzc5ODZEQzAwRUI2QTkzIC8qIEF1
dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RjAxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRp
b25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwICovOyB9OworCQk5OTU1QTZGNTFDNzk4NkUwMDBFQjZB
OTMgLyogQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RjExQzc5ODY2NDAwRUI2QTkzIC8qIEF1
dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuaCAqLzsgfTsKKwkJOTk1NUE2RjYxQzc5ODZFMzAw
RUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RjIxQzc5ODY2NDAwRUI2QTkzIC8q
IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3BwICovOyB9OworCQk5OTU1QTZGNzFDNzk4NkU1
MDBFQjZBOTMgLyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RjMxQzc5ODY2NDAwRUI2QTkzIC8q
IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaCAqLzsgfTsKIAkJOTlDODFENTkxQzIwRTFFNTAw
NUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OUM4MUQ1NjFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlv
bkNsaWVudC5tbSAqLzsgfTsKIAkJOTlDODFENUExQzIwRTdFMjAwNUM0QzgyIC8qIEF1dG9tYXRp
b25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50LmggKi87IH07CiAJ
CTk5QzgxRDVEMUMyMUYzOEIwMDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUM4MUQ1QjFDMjBFODE3
MDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5oICovOyB9OwpAQCAtMzI1MCwxMCArMzI1
MCwxMCBAQAogCQk5OTU1QTZFOTFDNzk4MEJCMDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5qc29uOyBwYXRoID0gQXV0b21hdGlvbi5qc29uOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTU1QTZFQTFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlv
blNlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTU1QTZF
QjFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTk1NUE2RjAxQzc5ODY2NDAwRUI2QTkzIC8qIEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5OTU1QTZGMTFDNzk4NjY0MDBFQjZBOTMgLyogSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTU1QTZGMjFD
Nzk4NjY0MDBFQjZBOTMgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5NTVBNkYzMUM3OTg2NjQwMEVCNkE5MyAv
KiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTk5NTVBNkYwMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3Bh
dGNoZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dG9tYXRp
b25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTU1QTZGMTFDNzk4NjY0MDBFQjZBOTMgLyogQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRvbWF0aW9uQmFja2VuZERpc3Bh
dGNoZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NTVBNkYyMUM3OTg2NjQw
MEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTU1QTZGMzFDNzk4NjY0MDBFQjZBOTMgLyogQXV0
b21hdGlvblByb3RvY29sT2JqZWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9tYXRpb25DbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDODFENTYxQzIwREZCRTAwNUM0QzgyIC8qIEF1dG9tYXRp
b25DbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRv
bWF0aW9uQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUM4MUQ1QjFD
MjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBUElBdXRvbWF0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02Nzk2LDYgKzY3OTYsMTAgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTUx
MkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTUxMkY1OEExMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNh
dGlvbk1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTk5NTVBNkYwMUM3OTg2NjQwMEVCNkE5MyAv
KiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCAqLywKKwkJCQk5OTU1QTZGMTFDNzk4
NjY0MDBFQjZBOTMgLyogQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oICovLAorCQkJCTk5
NTVBNkYyMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCAq
LywKKwkJCQk5OTU1QTZGMzFDNzk4NjY0MDBFQjZBOTMgLyogQXV0b21hdGlvblByb3RvY29sT2Jq
ZWN0cy5oICovLAogCQkJCTUxRkFFQzM2MUIwNjU3MzEwMDA5QzRFNyAvKiBDaGlsZFByb2Nlc3NN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxRkFFQzM3MUIwNjU3MzEwMDA5QzRFNyAvKiBD
aGlsZFByb2Nlc3NNZXNzYWdlcy5oICovLAogCQkJCUUxMTVDNzE1MTkwRjhBMjUwMEVDQzUxNiAv
KiBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5zYiAqLywKQEAgLTY4MTksMTAgKzY4MjMsNiBA
QAogCQkJCTFBNjQyMzA3MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZXMuaCAqLywKIAkJCQkxQUE1NzVGRjE0OTZCN0MwMDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUE1NzYwMDE0OTZCN0MwMDBBNEVFMDYgLyog
RXZlbnREaXNwYXRjaGVyTWVzc2FnZXMuaCAqLywKLQkJCQk5OTU1QTZGMDFDNzk4NjY0MDBFQjZB
OTMgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmNwcCAqLywKLQkJCQk5OTU1QTZGMTFD
Nzk4NjY0MDBFQjZBOTMgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmggKi8sCi0JCQkJ
OTk1NUE2RjIxQzc5ODY2NDAwRUI2QTkzIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAg
Ki8sCi0JCQkJOTk1NUE2RjMxQzc5ODY2NDAwRUI2QTkzIC8qIEluc3BlY3RvclByb3RvY29sT2Jq
ZWN0cy5oICovLAogCQkJCTUxREQ5RjI2MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFERDlGMjcxNjM2
N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAq
LywKIAkJCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTczNDcsNyArNzM0Nyw3IEBACiAJCQkJQkNB
OEM2QTkxMUUzQkE1RjAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4MTQ3QTkxMkY2NENEQTAwN0IyQzMyIC8qIEluamVjdGVk
QnVuZGxlUGFnZVBvbGljeUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBOEM2QjAxMUUz
QzA4NzAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKLQkJCQk5OTU1QTZGNzFDNzk4NkU1MDBFQjZBOTMgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmpl
Y3RzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTU1QTZGNzFDNzk4NkU1MDBFQjZBOTMgLyogQXV0
b21hdGlvblByb3RvY29sT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzM0UwRDExMjQw
OEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMTRERjc3MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNThDREYyQTE4ODc1NDhCMDA4NzE1MzYgLyogSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtNzQxNCw3
ICs3NDE0LDcgQEAKIAkJCQk1MTc5NTU2RTE2Mjg3N0IzMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nl
c3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMjUzRUQxQzkyMkUxRTAwRjlGNjhEIC8q
IFdLUHJldmlld0FjdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxM0ExNjNEMTYzMDg4
RjYwMDVEN0QyMiAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTk5NTVBNkY1MUM3OTg2RTAwMEVCNkE5MyAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NTVBNkY1MUM3OTg2RTAwMEVCNkE5MyAvKiBB
dXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUZEMThC
NjE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMTUyNTUxQjE3MDExODE5MDAzRDdBREIgLyogTmV0d29ya1Jlc291cmNlTG9hZGVy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMjBDQkEwMUJCMUVDRDgwMDg5NUJCMSAv
KiBOZXR3b3JrU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjQwLDcgKzg2NDAsNyBAQAog
CQkJZmlsZXMgPSAoCiAJCQkJMzdBNUUwMTMxOEJCRjkzNzAwMEEwODFFIC8qIF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NzA0RjcxQkUwMUZGNDAwODc0
QUYxIC8qIF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLywKLQkJCQk5
OTU1QTZGNDFDNzk4NkRDMDBFQjZBOTMgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTk5NTVBNkY0MUM3OTg2REMwMEVCNkE5MyAvKiBBdXRvbWF0
aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQTRGRTVCMThE
Q0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3OUE4
NzM5MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUE1NzA0RjExQkUwMTczRjAwODc0QUYxIC8qIFdLRWxlbWVudEluZm8ubW0gaW4gU291
cmNlcyAqLywKQEAgLTkxNDEsNyArOTE0MSw3IEBACiAJCQkJQkM4NTdGQjYxMkI4MzBFNjAwRURF
QjJFIC8qIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4
NTdGODYxMkI4MkQwQjAwRURFQjJFIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDODU3RjdFMTJCODJDRUUwMEVERUIyRSAvKiBXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTk5NTVBNkY2MUM3
OTg2RTMwMEVCNkE5MyAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJOTk1NUE2RjYxQzc5ODZFMzAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9i
amVjdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NjNENkIxMTNERDE5MjAwNTc0QkUyIC8q
IFdlYlBhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzA2QzYwOTUxMjRDMTQ0QjAwMDE2ODJG
IC8qIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODM3
MkRCMjgxQTY3NTYyODAwQzY5N0M1IC8qIFdlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5j
cHAgaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="299318"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>