<?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>150482</bug_id>
          
          <creation_ts>2015-10-22 17:08:39 -0700</creation_ts>
          <short_desc>For JSC builtins, generate-js-bindings.js should produce separate files per builtin</short_desc>
          <delta_ts>2015-11-22 11:00:49 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=151016</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>150491</dependson>
    
    <dependson>151549</dependson>
          <blocked>150496</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>lforschler</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1135904</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-22 17:08:39 -0700</bug_when>
    <thetext>This will make the generator a lot smaller and reduce incremental build times.

I have a patch in progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136009</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-10-23 03:12:56 -0700</bug_when>
    <thetext>I added some additional tasks in bug 150496.
I will probably not have a lot of time to work on any of these in the next 2 weeks.

To be noted that the equivalent of JSCBuiltins.cpp and JSCBuiltins.h in WebCore is the set of individual XXBuiltins* files plus Source/WebCore/bindings/js/WebCoreJSBuiltins*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136408</commentid>
    <comment_count>2</comment_count>
      <attachid>264013</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-25 11:04:36 -0700</bug_when>
    <thetext>Created attachment 264013
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136447</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-10-25 17:34:44 -0700</bug_when>
    <thetext>With a single JSCBuiltins.cpp/.h, it is not needed to edit xcode project file when adding a new JS built-in file. One just needs to edit CMakeList.txt and DerivedSources.make.
This is straightforward.
Can we keep the authoring as simple as it is now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136461</commentid>
    <comment_count>4</comment_count>
      <attachid>264030</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-25 20:24:07 -0700</bug_when>
    <thetext>Created attachment 264030
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136463</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-25 20:26:37 -0700</bug_when>
    <thetext>Attachment 264030 did not pass style-queue:


ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:106:  blank line at end of file  [pep8/W391] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:44:  [BuiltinsFrameworkMacrosGenerator.output_filename] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:48:  [BuiltinsFrameworkMacrosGenerator.generate_output] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:50:  [BuiltinsFrameworkMacrosGenerator.generate_output] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:54:  [BuiltinsFrameworkMacrosGenerator.generate_output] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;generate_license&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:68:  [BuiltinsFrameworkMacrosGenerator.generate_header_includes] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:74:  [BuiltinsFrameworkMacrosGenerator.generate_section_for_code_iteration_macro] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:81:  [BuiltinsFrameworkMacrosGenerator.generate_section_for_code_iteration_macro] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:92:  [BuiltinsFrameworkMacrosGenerator.generate_section_for_name_iteration_macro] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:97:  [BuiltinsFrameworkMacrosGenerator.generate_section_for_name_iteration_macro] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-js-builtins.py:69:  [generate_bindings_for_builtins_files] Undefined variable &apos;BuiltinsFrameworkMacrosGenerator&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-js-builtins.py:73:  [generate_bindings_for_builtins_files] Undefined variable &apos;BuiltinsObjectHeaderGenerator&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-js-builtins.py:74:  [generate_bindings_for_builtins_files] Undefined variable &apos;BuiltinsObjectImplementationGenerator&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-js-builtins.py:77:  [generate_bindings_for_builtins_files] Undefined variable &apos;BuiltinsObjectWrapperGenerator&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:49:  [BuiltinsObjectImplementationGenerator.macro_prefix] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:53:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:60:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;generate_license&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:65:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;generate_embedded_code_string_section_for_function&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:66:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:68:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:99:  [BuiltinsObjectImplementationGenerator.generate_header_includes] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_wrapper.py:48:  [BuiltinsObjectWrapperGenerator.macro_prefix] Instance of &apos;BuiltinsObjectWrapperGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_wrapper.py:52:  [BuiltinsObjectWrapperGenerator.generate_output] Instance of &apos;BuiltinsObjectWrapperGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_wrapper.py:60:  [BuiltinsObjectWrapperGenerator.generate_output] Instance of &apos;BuiltinsObjectWrapperGenerator&apos; has no &apos;generate_license&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_wrapper.py:94:  [BuiltinsObjectWrapperGenerator.generate_header_includes] Instance of &apos;BuiltinsObjectWrapperGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:48:  [BuiltinsObjectHeaderGenerator.macro_prefix] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:52:  [BuiltinsObjectHeaderGenerator.generate_output] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:59:  [BuiltinsObjectHeaderGenerator.generate_output] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;generate_license&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:88:  [BuiltinsObjectHeaderGenerator.generate_header_includes] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:146:  [BuiltinsObjectHeaderGenerator.generate_section_for_code_table_macro] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
Total errors found: 30 in 37 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>1136532</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-26 09:49:25 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; With a single JSCBuiltins.cpp/.h, it is not needed to edit xcode project
&gt; file when adding a new JS built-in file. One just needs to edit
&gt; CMakeList.txt and DerivedSources.make.
&gt; This is straightforward.
&gt; Can we keep the authoring as simple as it is now?

I don&apos;t think that&apos;s possible, since it generates .cpp files. If it were just headers, then it would be fine, because those are found via VPATH or similar directory-search mechanism. But this isn&apos;t too big of a problem, as it&apos;s the same way for WebCore builtins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137953</commentid>
    <comment_count>7</comment_count>
      <attachid>264414</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-30 13:51:05 -0700</bug_when>
    <thetext>Created attachment 264414
Rebased Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137988</commentid>
    <comment_count>8</comment_count>
      <attachid>264425</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-30 15:00:34 -0700</bug_when>
    <thetext>Created attachment 264425
Proposed Fix (CMake fix)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137989</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-30 15:02:39 -0700</bug_when>
    <thetext>Attachment 264425 did not pass style-queue:


ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:106:  blank line at end of file  [pep8/W391] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:44:  [BuiltinsFrameworkMacrosGenerator.output_filename] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:48:  [BuiltinsFrameworkMacrosGenerator.generate_output] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:50:  [BuiltinsFrameworkMacrosGenerator.generate_output] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:54:  [BuiltinsFrameworkMacrosGenerator.generate_output] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;generate_license&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:68:  [BuiltinsFrameworkMacrosGenerator.generate_header_includes] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:74:  [BuiltinsFrameworkMacrosGenerator.generate_section_for_code_iteration_macro] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:81:  [BuiltinsFrameworkMacrosGenerator.generate_section_for_code_iteration_macro] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:92:  [BuiltinsFrameworkMacrosGenerator.generate_section_for_name_iteration_macro] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:97:  [BuiltinsFrameworkMacrosGenerator.generate_section_for_name_iteration_macro] Instance of &apos;BuiltinsFrameworkMacrosGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-js-builtins.py:69:  [generate_bindings_for_builtins_files] Undefined variable &apos;BuiltinsFrameworkMacrosGenerator&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-js-builtins.py:73:  [generate_bindings_for_builtins_files] Undefined variable &apos;BuiltinsObjectHeaderGenerator&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-js-builtins.py:74:  [generate_bindings_for_builtins_files] Undefined variable &apos;BuiltinsObjectImplementationGenerator&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/Scripts/generate-js-builtins.py:77:  [generate_bindings_for_builtins_files] Undefined variable &apos;BuiltinsObjectWrapperGenerator&apos;  [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/CMakeLists.txt:1268:  No trailing spaces  [whitespace/trailing] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:49:  [BuiltinsObjectImplementationGenerator.macro_prefix] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:53:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:62:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;generate_license&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:64:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;generate_primary_header_includes&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:70:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;generate_embedded_code_string_section_for_function&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:71:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:73:  [BuiltinsObjectImplementationGenerator.generate_output] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_implementation.py:106:  [BuiltinsObjectImplementationGenerator.generate_secondary_header_includes] Instance of &apos;BuiltinsObjectImplementationGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_wrapper.py:48:  [BuiltinsObjectWrapperGenerator.macro_prefix] Instance of &apos;BuiltinsObjectWrapperGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_wrapper.py:52:  [BuiltinsObjectWrapperGenerator.generate_output] Instance of &apos;BuiltinsObjectWrapperGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_wrapper.py:62:  [BuiltinsObjectWrapperGenerator.generate_output] Instance of &apos;BuiltinsObjectWrapperGenerator&apos; has no &apos;generate_license&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_wrapper.py:100:  [BuiltinsObjectWrapperGenerator.generate_secondary_header_includes] Instance of &apos;BuiltinsObjectWrapperGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:48:  [BuiltinsObjectHeaderGenerator.macro_prefix] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:52:  [BuiltinsObjectHeaderGenerator.generate_output] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:61:  [BuiltinsObjectHeaderGenerator.generate_output] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;generate_license&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:94:  [BuiltinsObjectHeaderGenerator.generate_secondary_header_includes] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:152:  [BuiltinsObjectHeaderGenerator.generate_section_for_code_table_macro] Instance of &apos;BuiltinsObjectHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
Total errors found: 32 in 38 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>1138157</commentid>
    <comment_count>10</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-10-31 09:04:50 -0700</bug_when>
    <thetext>Youenn, this is ready for review. It might need another rebase after 150539 lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138174</commentid>
    <comment_count>11</comment_count>
      <attachid>264425</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-10-31 11:07:57 -0700</bug_when>
    <thetext>Comment on attachment 264425
Proposed Fix (CMake fix)

Patch looks good to me, please find a preliminary review for the moment.
To ease the review, I would have made the script filename renaming in a separate patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=264425&amp;action=review

&gt; Source/JavaScriptCore/CMakeLists.txt:1254
&gt; +    OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltinsMacros.cpp

JSCBuiltinsMacros.cpp should be removed.

&gt; Source/JavaScriptCore/CMakeLists.txt:1268
&gt; +    string(REGEX REPLACE &quot;\\.Promise&quot; &quot;Promise&quot; _objectName &quot;${_objectName}&quot;)    

It seems &quot;Constructor&quot;, &quot;.Promise&quot; and &quot;.prototype&quot; all serve the same purpose in different ways.
Should we make the filename consistent and simplify those rules?
I would go with removing &quot;.&quot; followed by uppercase letter, as a preliminary patch maybe?

&gt; Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:6633
&gt; +				0FEC84FF1BDACDAC0080FF74 /* B3ArgumentRegValue.h in Headers */,

These changes seem unrelated with this patch.
I guess this is due to editing the xcodeproj through XCode?

&gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:97
&gt; +        unique_names = list(set([function.function_name for function in self.model().all_functions()]))

I guess @conditional is not supported here.
This might not be worth fixing it but we may still want to add a #FIXME.

&gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:84
&gt; +enum class ConstructAbility : unsigned;

Are these two lines the only changes from the original separate_header.py?

&gt; Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Macros.js-result:44
&gt; +    macro(forEach) \

This test is only based on one js file.
We probably do not test two js files with same names.
Can we add such test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138210</commentid>
    <comment_count>12</comment_count>
      <attachid>264425</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-31 15:01:57 -0700</bug_when>
    <thetext>Comment on attachment 264425
Proposed Fix (CMake fix)

View in context: https://bugs.webkit.org/attachment.cgi?id=264425&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        For JSC builtins, generate-js-bindings.js should produce separate files per builtin

Why? Does it make things build faster?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138282</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-11-01 00:30:33 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 264425 [details]
&gt; Proposed Fix (CMake fix)
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=264425&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:3
&gt; &gt; +        For JSC builtins, generate-js-bindings.js should produce separate files per builtin
&gt; 
&gt; Why? Does it make things build faster?

It should (reduced rebuilding, parallel icecream) but the main reason to me is consistency.

It is more consistent with other generators, like IDL generator.

It allows consistency between WebCore and JSC. This reduces the code generator size and will simplify further developments that are beneficial for both JSC and WebCore.

For instance, handling of @conditional (compiling behind a flag) and @internals (functions that are not public JS API) annotation seems more natural with separate files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138449</commentid>
    <comment_count>14</comment_count>
      <attachid>264425</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-11-01 19:48:06 -0800</bug_when>
    <thetext>Comment on attachment 264425
Proposed Fix (CMake fix)

View in context: https://bugs.webkit.org/attachment.cgi?id=264425&amp;action=review

I will post a new patch soon that doesn&apos;t rename + modify and addresses comments.

&gt;&gt;&gt; Source/JavaScriptCore/ChangeLog:3
&gt;&gt;&gt; +        For JSC builtins, generate-js-bindings.js should produce separate files per builtin
&gt;&gt; 
&gt;&gt; Why? Does it make things build faster?
&gt; 
&gt; It should (reduced rebuilding, parallel icecream) but the main reason to me is consistency.
&gt; 
&gt; It is more consistent with other generators, like IDL generator.
&gt; 
&gt; It allows consistency between WebCore and JSC. This reduces the code generator size and will simplify further developments that are beneficial for both JSC and WebCore.
&gt; 
&gt; For instance, handling of @conditional (compiling behind a flag) and @internals (functions that are not public JS API) annotation seems more natural with separate files.

I agree with Yoenn&apos;s reasons (not sure what icecream is though).

&gt;&gt; Source/JavaScriptCore/CMakeLists.txt:1254
&gt;&gt; +    OUTPUT ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/JSCBuiltinsMacros.cpp
&gt; 
&gt; JSCBuiltinsMacros.cpp should be removed.

Oops, yeah.

&gt;&gt; Source/JavaScriptCore/CMakeLists.txt:1268
&gt;&gt; +    string(REGEX REPLACE &quot;\\.Promise&quot; &quot;Promise&quot; _objectName &quot;${_objectName}&quot;)    
&gt; 
&gt; It seems &quot;Constructor&quot;, &quot;.Promise&quot; and &quot;.prototype&quot; all serve the same purpose in different ways.
&gt; Should we make the filename consistent and simplify those rules?
&gt; I would go with removing &quot;.&quot; followed by uppercase letter, as a preliminary patch maybe?

Maybe Yusuke can say more, but I am actually in favor of the current naming scheme. It matches the filename with the global binding for the builtin.

&gt;&gt; Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:6633
&gt;&gt; +				0FEC84FF1BDACDAC0080FF74 /* B3ArgumentRegValue.h in Headers */,
&gt; 
&gt; These changes seem unrelated with this patch.
&gt; I guess this is due to editing the xcodeproj through XCode?

Yeah, I should just sort this separately. Looks like it hasn&apos;t been done since the B3 changes.

&gt;&gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_framework_macros.py:97
&gt;&gt; +        unique_names = list(set([function.function_name for function in self.model().all_functions()]))
&gt; 
&gt; I guess @conditional is not supported here.
&gt; This might not be worth fixing it but we may still want to add a #FIXME.

I suppose this could consult the containing object and emit a guard if necessary for all uses. I am not sure how #ifdef will interact with X-macros.

&gt;&gt; Source/JavaScriptCore/Scripts/builtins/builtins_generate_object_header.py:84
&gt;&gt; +enum class ConstructAbility : unsigned;
&gt; 
&gt; Are these two lines the only changes from the original separate_header.py?

Yeah. I will split this so the renaming happens separately.

&gt;&gt; Source/JavaScriptCore/Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Macros.js-result:44
&gt;&gt; +    macro(forEach) \
&gt; 
&gt; This test is only based on one js file.
&gt; We probably do not test two js files with same names.
&gt; Can we add such test?

Currently it&apos;s 1:1 input test file and multiple combined file outputs. We could have multiple builtins per file using a special test-only syntax like ### Begin File: XXX.js. But I think this is FIXME territory for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138496</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-11-02 01:51:12 -0800</bug_when>
    <thetext>&gt; &gt; It should (reduced rebuilding, parallel icecream) but the main reason to me is consistency.

http://linux.die.net/man/7/icecream

&gt; &gt; It seems &quot;Constructor&quot;, &quot;.Promise&quot; and &quot;.prototype&quot; all serve the same purpose in different ways.
&gt; &gt; Should we make the filename consistent and simplify those rules?
&gt; &gt; I would go with removing &quot;.&quot; followed by uppercase letter, as a preliminary patch maybe?
&gt; 
&gt; Maybe Yusuke can say more, but I am actually in favor of the current naming
&gt; scheme. It matches the filename with the global binding for the builtin.

We currently have Promise.prototype.js, PromiseConstructor.js and Operations.Promise.js. Operations.Promise.js seems in particular not aligned.

I would tend to use PromisePrototype.js, PromiseConstructor.js and PromiseOperations.js (or PromiseInternals.js, as is done in WebCore).
This would directly match generated PromiseXX.h/.cpp

&gt; &gt; I guess @conditional is not supported here.
&gt; &gt; This might not be worth fixing it but we may still want to add a #FIXME.
&gt; 
&gt; I suppose this could consult the containing object and emit a guard if
&gt; necessary for all uses. I am not sure how #ifdef will interact with X-macros.

Yes, documenting this issue is probably enough.

&gt; &gt; This test is only based on one js file.
&gt; &gt; We probably do not test two js files with same names.
&gt; &gt; Can we add such test?
&gt; 
&gt; Currently it&apos;s 1:1 input test file and multiple combined file outputs. We
&gt; could have multiple builtins per file using a special test-only syntax like
&gt; ### Begin File: XXX.js. But I think this is FIXME territory for now.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138499</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-11-02 02:05:58 -0800</bug_when>
    <thetext>Also, there are some style warnings, should we update python source code or the style checker?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138583</commentid>
    <comment_count>17</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-11-02 09:34:46 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Also, there are some style warnings, should we update python source code or
&gt; the style checker?

Most of the Python ones are unfixable, because the standard Python style checker that check-webkit-style defers to doesn&apos;t understand class inheritance or map literals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144056</commentid>
    <comment_count>18</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-11-22 11:00:22 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; &gt; It should (reduced rebuilding, parallel icecream) but the main reason to me is consistency.
&gt; 
&gt; http://linux.die.net/man/7/icecream
&gt; 
&gt; &gt; &gt; It seems &quot;Constructor&quot;, &quot;.Promise&quot; and &quot;.prototype&quot; all serve the same purpose in different ways.
&gt; &gt; &gt; Should we make the filename consistent and simplify those rules?
&gt; &gt; &gt; I would go with removing &quot;.&quot; followed by uppercase letter, as a preliminary patch maybe?
&gt; &gt; 
&gt; &gt; Maybe Yusuke can say more, but I am actually in favor of the current naming
&gt; &gt; scheme. It matches the filename with the global binding for the builtin.
&gt; 
&gt; We currently have Promise.prototype.js, PromiseConstructor.js and
&gt; Operations.Promise.js. Operations.Promise.js seems in particular not aligned.
&gt; 
&gt; I would tend to use PromisePrototype.js, PromiseConstructor.js and
&gt; PromiseOperations.js (or PromiseInternals.js, as is done in WebCore).
&gt; This would directly match generated PromiseXX.h/.cpp

I filed this bug for the renaming, to avoid making this patch even more confusing.

https://bugs.webkit.org/show_bug.cgi?id=151549</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264013</attachid>
            <date>2015-10-25 11:04:36 -0700</date>
            <delta_ts>2015-10-25 20:24:04 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-150482-20151025110348.patch</filename>
            <type>text/plain</type>
            <size>73314</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NWVhNDdiNDU1NmExM2Q5ZTE0MjJiMjM1YjM2ZTM0MDhjMDg2NjhlLi4zNWQ5ZmViNjJmZDkyZmNi
ZjA5MDc5ZWUxOWYxNWEwMzliYjdlMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxNS0xMC0yNSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBGb3IgSlNDIGJ1aWx0aW5zLCBnZW5lcmF0ZS1qcy1iaW5kaW5ncy5qcyBzaG91bGQg
cHJvZHVjZSBzZXBhcmF0ZSBmaWxlcyBwZXIgYnVpbHRpbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogU2NyaXB0cy9idWlsdGlucy9idWlsdGlucy5weToK
KyAgICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ZyYW1ld29ya19t
YWNyb3MucHk6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0
aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5LgorICAgICAg
ICAoQnVpbHRpbnNGcmFtZXdvcmtNYWNyb3NHZW5lcmF0b3IpOgorICAgICAgICAoQnVpbHRpbnNG
cmFtZXdvcmtNYWNyb3NHZW5lcmF0b3IuX19pbml0X18pOgorICAgICAgICAoQnVpbHRpbnNGcmFt
ZXdvcmtNYWNyb3NHZW5lcmF0b3Iub3V0cHV0X2ZpbGVuYW1lKToKKyAgICAgICAgKEJ1aWx0aW5z
RnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgIChCdWls
dGluc0ZyYW1ld29ya01hY3Jvc0dlbmVyYXRvci5nZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXMpOgor
ICAgICAgICAoQnVpbHRpbnNGcmFtZXdvcmtNYWNyb3NHZW5lcmF0b3IuZ2VuZXJhdGVfc2VjdGlv
bl9mb3JfY29kZV90YWJsZV9tYWNybyk6CisgICAgICAgIChCdWlsdGluc0ZyYW1ld29ya01hY3Jv
c0dlbmVyYXRvci5nZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFjcm8pOgorICAgICAg
ICAqIFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5
OgorICAgICAgICAoQnVpbHRpbnNTZXBhcmF0ZUhlYWRlckdlbmVyYXRvci5nZW5lcmF0ZV9vdXRw
dXQpOgorICAgICAgICAoVk0pOgorICAgICAgICAoQ29uc3RydWN0QWJpbGl0eSk6CisgICAgICAg
IChnZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXMpOgorICAgICAgICAoZ2VuZXJhdGVfc2VjdGlvbl9m
b3JfY29kZV90YWJsZV9tYWNybyk6CisgICAgICAgIChnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2Rl
X25hbWVfbWFjcm8pOgorICAgICAgICAqIFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJh
dGVfc2VwYXJhdGVfaW1wbGVtZW50YXRpb24ucHk6CisgICAgICAgIChCdWlsdGluc1NlcGFyYXRl
SW1wbGVtZW50YXRpb25HZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAgKiBTY3Jp
cHRzL2J1aWx0aW5zL2J1aWx0aW5zX3RlbXBsYXRlcy5weToKKyAgICAgICAgKiBTY3JpcHRzL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zLnB5OgorICAgICAgICAoZ2VuZXJhdGVfYmluZGluZ3NfZm9yX2J1
aWx0aW5zX2ZpbGVzKToKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaDoK
KyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluVXRpbHMuaDoKKyAgICAgICAgKiBjcmVhdGVfaGFz
aF90YWJsZToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlLmNwcDoKKwogMjAxNS0xMC0yNCAg
QnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBUZWFjaCBjcmVhdGVfaGFz
aF90YWJsZSB0byBvbWl0IGJ1aWx0aW5zIG1hY3JvcyB3aGVuIGdlbmVyYXRpbmcgdGFibGVzIGZv
ciBuYXRpdmUtb25seSBvYmplY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggMWM3NGM3MmY4NWY0YWNhMDBmMTc0YWNmMDE0NDQ1ZDdkODI5ZTU0OS4uMTJlZWUxMzNhMTY0
MDdkMjE2ZDBlMTY1MGI5MjA0ODIyMWUzZWUxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTEyNSw3ICsxMTI1LDcgQEAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIENP
TU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9JTlNQRUNUT1JfU0NS
SVBUU19ESVJ9L2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSAtLW91dHB1
dERpciAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IiIC0t
ZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JF
X0RJUn0vQ29tYmluZWREb21haW5zLmpzb24KICAgICBWRVJCQVRJTSkKIAotIyBKU0NCdWlsdGlu
cworIyBKUyBCdWlsdGlucwogCiBzZXQoQlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFMKICAgICAk
e0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGlucy5weQpAQCAtMTEzNCw2ICsxMTM0
LDcgQEAgc2V0KEJVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTCiAgICAgJHtKYXZhU2NyaXB0Q29y
ZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfdGVtcGxhdGVzLnB5CiAgICAgJHtKYXZhU2NyaXB0Q29y
ZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5CiAgICAg
JHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRf
aW1wbGVtZW50YXRpb24ucHkKKyAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWls
dGluc19nZW5lcmF0ZV9mcmFtZXdvcmtfbWFjcm9zLnB5CiAgICAgJHtKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5CiAgICAgJHtK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaW1w
bGVtZW50YXRpb24ucHkKICAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGlu
c19nZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVyLnB5CkBAIC0xMTYyLDI2ICsxMTYzLDMzIEBAIHNl
dChKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTCiAgICAgJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L2J1aWx0aW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3Rvci5qcwogKQogCi1hZGRfY3VzdG9tX2Nv
bW1hbmQoCi0gICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9K
U0NCdWlsdGlucy5jcHAKLSAgICAgICAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09S
RV9ESVJ9L0pTQ0J1aWx0aW5zLmgKLSAgIE1BSU5fREVQRU5ERU5DWSAke0phdmFTY3JpcHRDb3Jl
X1NDUklQVFNfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucy5weQotICAgREVQRU5EUyAke0phdmFT
Y3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVN9ICR7QlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFN9
Ci0gICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBU
U19ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5IC0tZnJhbWV3b3JrIEphdmFTY3JpcHRDb3Jl
IC0tb3V0cHV0LWRpcmVjdG9yeSAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9
IC0tY29tYmluZWQgJHtKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTfQotICAgVkVSQkFU
SU0pCitmb3JlYWNoIChfYnVpbHRpblNvdXJjZSAke0phdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NP
VVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX29iamVjdE5hbWUgJHtfYnVpbHRp
blNvdXJjZX0gTkFNRV9XRSkKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBV
VCAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9LyR7X29iamVjdE5hbWV9QnVp
bHRpbnMuY3BwCisgICAgICAgICAgICAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09S
RV9ESVJ9LyR7X29iamVjdE5hbWV9QnVpbHRpbnMuaAorICAgICAgICBNQUlOX0RFUEVOREVOQ1kg
JHtfYnVpbHRpblNvdXJjZX0KKyAgICAgICAgREVQRU5EUyAke0JVSUxUSU5TX0dFTkVSQVRPUl9T
Q1JJUFRTfQorICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlw
dENvcmVfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5IC0tZnJhbWV3b3JrIEph
dmFTY3JpcHRDb3JlIC0tb3V0cHV0LWRpcmVjdG9yeSAke0RFUklWRURfU09VUkNFU19KQVZBU0NS
SVBUQ09SRV9ESVJ9ICR7X2J1aWx0aW5Tb3VyY2V9CisgICAgICAgIFZFUkJBVElNKQorICAgIGxp
c3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKKyAgICAgICAgJHtERVJJVkVEX1NPVVJD
RVNfSkFWQVNDUklQVENPUkVfRElSfS8ke19vYmplY3ROYW1lfUJ1aWx0aW5zLmNwcAorICAgICkK
KyAgICBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9IRUFERVJTCisgICAgICAgICR7REVSSVZF
RF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vJHtfb2JqZWN0TmFtZX1CdWlsdGlucy5oCisg
ICAgKQorZW5kZm9yZWFjaCAoKQogCiBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9TT1VSQ0VT
CiAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmNwcAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFT
Q1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3Bw
CiAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5z
cGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcAotICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vSlNDQnVpbHRpbnMuY3BwCiApCiAKIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRD
b3JlX0hFQURFUlMKICAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2lu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMuaAogICAgICR7REVSSVZFRF9TT1VS
Q0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kRGlzcGF0
Y2hlcnMuaAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVj
dG9yL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5oCi0gICAgJHtERVJJVkVEX1NPVVJDRVNfSkFW
QVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGlucy5oCiApCiAKIGFkZF9jdXN0b21fY29tbWFuZCgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNTM5Y2I0Yzdi
NjYxMzNhMDJiYjk3MzVmMWM5NjI2YzNjOGVlMTAwZi4uNTY2MjliZTdlNjBmZmNjNmYyMTU3ZjIx
MzFiN2JjMmNmZjA2MmNiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTU1LDcgKzU1LDYgQEAgYWxsIDogXAogICAgIEluamVjdGVkU2NyaXB0U291cmNl
LmggXAogICAgIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCBcCiAgICAgSlNSZXBsYXlJ
bnB1dHMuaCBcCi0gICAgSlNDQnVpbHRpbnMuaCBcCiAgICAgTGV4ZXIubHV0LmggXAogICAgIEtl
eXdvcmRMb29rdXAuaCBcCiAgICAgUmVnRXhwSml0VGFibGVzLmggXApAQCAtNzEsNiArNzAsNyBA
QCBCVUlMVElOU19HRU5FUkFUT1JfU0NSSVBUUyA9IFwKICAgICAkKEphdmFTY3JpcHRDb3JlX1ND
UklQVFNfRElSKS9idWlsdGlucy9idWlsdGluc190ZW1wbGF0ZXMucHkgXAogICAgICQoSmF2YVNj
cmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVk
X2hlYWRlci5weSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMv
YnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkgXAorICAgICQoSmF2
YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ZyYW1l
d29ya19tYWNyb3MucHkgXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0
aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weSBcCiAgICAgJChKYXZhU2Ny
aXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVf
aW1wbGVtZW50YXRpb24ucHkgXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkgXApAQCAtOTksMTUg
Kzk5LDI1IEBAIEphdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVMgPSBcCiAgICAgJChKYXZh
U2NyaXB0Q29yZSkvYnVpbHRpbnMvVHlwZWRBcnJheS5wcm90b3R5cGUuanMgXAogIwogCi0jIFRo
ZSBjb21iaW5lZCBvdXRwdXQgZmlsZSBkZXBlbmRzIG9uIHRoZSBjb250ZW50cyBvZiBidWlsdGlu
cyBhbmQgZ2VuZXJhdG9yIHNjcmlwdHMsIHNvCi0jIGFkZGluZywgbW9kaWZ5aW5nLCBvciByZW1v
dmluZyBidWlsdGlucyBvciBzY3JpcHRzIHdpbGwgdHJpZ2dlciByZWdlbmVyYXRpb24gb2YgZmls
ZXMuCisjIEFkZGluZy9yZW1vdmluZyBzY3JpcHRzIHNob3VsZCB0cmlnZ2VyIHJlZ2VuZXJhdGlv
biwgYnV0IGNoYW5naW5nIHdoaWNoIGJ1aWx0aW5zIGFyZQorIyBnZW5lcmF0ZWQgc2hvdWxkIG5v
dCBhZmZlY3QgdGhlIGdlbmVyYXRlZCBjb2RlIG9mIG90aGVyIGJ1aWx0aW5zLgogCiAuUEhPTlk6
IGZvcmNlCi1KYXZhU2NyaXB0Q29yZV9CVUlMVElOU19ERVBFTkRFTkNJRVNfTElTVCA6ICQoSmF2
YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL1VwZGF0ZUNvbnRlbnRzLnB5IGZvcmNlCi0JJChQWVRI
T04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL1VwZGF0ZUNvbnRlbnRzLnB5ICckKEph
dmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVMpICQoQlVJTFRJTlNfR0VORVJBVE9SX1NDUklQ
VFMpJyAkQAorSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfR0VORVJBVE9SX0RFUEVOREVOQ0lFU19M
SVNUIDogJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvVXBkYXRlQ29udGVudHMucHkgZm9y
Y2UKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvVXBkYXRlQ29udGVu
dHMucHkgJyQoQlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFMpJyAkQAogCi1KU0NCdWlsdGlucy5o
OiAkKEJVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTKSAkKEphdmFTY3JpcHRDb3JlX0JVSUxUSU5T
X1NPVVJDRVMpIEphdmFTY3JpcHRDb3JlX0JVSUxUSU5TX0RFUEVOREVOQ0lFU19MSVNUCi0JJChQ
WVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVyYXRlLWpzLWJ1aWx0aW5z
LnB5IC0tY29tYmluZWQgLS1vdXRwdXQtZGlyZWN0b3J5IC4gLS1mcmFtZXdvcmsgSmF2YVNjcmlw
dENvcmUgJChKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTKQorSmF2YVNjcmlwdENvcmVf
QlVJTFRJTlNfU09VUkNFU19ERVBFTkRFTkNJRVNfTElTVCA6ICQoSmF2YVNjcmlwdENvcmVfU0NS
SVBUU19ESVIpL1VwZGF0ZUNvbnRlbnRzLnB5IGZvcmNlCisJJChQWVRIT04pICQoSmF2YVNjcmlw
dENvcmVfU0NSSVBUU19ESVIpL1VwZGF0ZUNvbnRlbnRzLnB5ICckKEphdmFTY3JpcHRDb3JlX0JV
SUxUSU5TX1NPVVJDRVMpJyAkQAorCislQnVpbHRpbnMuaCA6ICUuanMgJChCVUlMVElOU19HRU5F
UkFUT1JfU0NSSVBUUykgSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfR0VORVJBVE9SX0RFUEVOREVO
Q0lFU19MSVNUCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVy
YXRlLWpzLWJ1aWx0aW5zLnB5IC0tb3V0cHV0LWRpcmVjdG9yeSAuIC0tZnJhbWV3b3JrIEphdmFT
Y3JpcHRDb3JlICQ8CisKKyMgQWRkaW5nL3JlbW92aW5nL21vZGlmeWluZyBzY3JpcHRzIG9yIGdl
bmVyYXRvciBmaWxlcyBzaG91bGQgcmVnZW5lcmF0ZSB0aGUgZnJhbWV3b3JrIG1hY3JvcyBmaWxl
LgorCitKU0NCdWlsdGluc01hY3Jvcy5oOiAkKEJVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTKSAk
KEphdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVMpIEphdmFTY3JpcHRDb3JlX0JVSUxUSU5T
X0dFTkVSQVRPUl9ERVBFTkRFTkNJRVNfTElTVCBKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VS
Q0VTX0RFUEVOREVOQ0lFU19MSVNUCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBU
U19ESVIpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5IC0tbWFjcm9zLW9ubHkgLS1vdXRwdXQtZGly
ZWN0b3J5IC4gLS1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgJChKYXZhU2NyaXB0Q29yZV9CVUlM
VElOU19TT1VSQ0VTKQorCithbGw6ICQobm90ZGlyICQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNf
U09VUkNFUzolLmpzPSVCdWlsdGlucy5oKSkKIAogIyBQZXJmZWN0IGhhc2ggbG9va3VwIHRhYmxl
cyBmb3IgSmF2YVNjcmlwdCBjbGFzc2VzLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDhlZTZjOTlmMDlkMzFiYTNhNmNmMjI1MzY1MWFkMTAwZmE0ZmZjNGQuLjJmMzVlMmNmOTRl
OWU1ZDFlY2JkNmNlYTVjNzAxNGM5YTYyNjEzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMjM2LDYgKzEyMzYsMjQgQEAKIAkJOTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0IC8q
IFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2QjczMTIxQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0l0
ZXJhdG9yUHJvdG90eXBlLmx1dC5oICovOyB9OwogCQk5OTZCNzMyNzFCREEwOEVGMDAzMzFCODQg
LyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMxMzFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sQ29uc3Ry
dWN0b3IubHV0LmggKi87IH07CiAJCTk5NkI3MzI4MUJEQTA4RUYwMDMzMUI4NCAvKiBTeW1ib2xQ
cm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTZCNzMxNDFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICov
OyB9OworCQk5OTk0RTVGRDFCRDlBOTcyMDBGMkQ4MzUgLyogQXJyYXlDb25zdHJ1Y3RvckJ1aWx0
aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5
OTRFNUQ5MUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICov
OyB9OworCQk5OTk0RTVGRTFCRDlBOTcyMDBGMkQ4MzUgLyogQXJyYXlJdGVyYXRvclByb3RvdHlw
ZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5OTRFNURCMUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlQnVp
bHRpbnMuY3BwICovOyB9OworCQk5OTk0RTVGRjFCRDlBOTcyMDBGMkQ4MzUgLyogQXJyYXlQcm90
b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OTk0RTVERDFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlu
cy5jcHAgKi87IH07CisJCTk5OTRFNjAwMUJEOUE5NzIwMEYyRDgzNSAvKiBGdW5jdGlvblByb3Rv
dHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk5OTRFNURGMUJEOUE5MTIwMEYyRDgzNSAvKiBGdW5jdGlvblByb3RvdHlwZUJ1aWx0
aW5zLmNwcCAqLzsgfTsKKwkJOTk5NEU2MDExQkQ5QTk3MjAwRjJEODM1IC8qIEdsb2JhbE9iamVj
dEJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5OTRFNUUxMUJEOUE5MTIwMEYyRDgzNSAvKiBHbG9iYWxPYmplY3RCdWlsdGlucy5jcHAg
Ki87IH07CisJCTk5OTRFNjAyMUJEOUE5NzIwMEYyRDgzNSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3RCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5OTk0RTVFMzFCRDlBOTEyMDBGMkQ4MzUgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuY3BwICovOyB9OworCQk5OTk0RTYwMzFCRDlBOTcyMDBG
MkQ4MzUgLyogSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVFNTFCRDlBOTEyMDBG
MkQ4MzUgLyogSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi87IH07CisJ
CTk5OTRFNjA0MUJEOUE5OEEwMEYyRDgzNSAvKiBJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUU3
MUJEOUE5MTIwMEYyRDgzNSAvKiBJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLzsgfTsK
KwkJOTk5NEU2MDUxQkQ5QTk4QTAwRjJEODM1IC8qIE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5z
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRF
NUU5MUJEOUE5MTIwMEYyRDgzNSAvKiBNb2R1bGVMb2FkZXJPYmplY3RCdWlsdGlucy5jcHAgKi87
IH07CisJCTk5OTRFNjA2MUJEOUE5OEEwMEYyRDgzNSAvKiBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0
aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5
OTRFNUVCMUJEOUE5MTIwMEYyRDgzNSAvKiBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAq
LzsgfTsKKwkJOTk5NEU2MDcxQkQ5QTk4QTAwRjJEODM1IC8qIE9wZXJhdGlvbnNQcm9taXNlQnVp
bHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTk5NEU1RUQxQkQ5QTkxMjAwRjJEODM1IC8qIE9wZXJhdGlvbnNQcm9taXNlQnVpbHRpbnMuY3Bw
ICovOyB9OworCQk5OTk0RTYwODFCRDlBOThBMDBGMkQ4MzUgLyogUHJvbWlzZUNvbnN0cnVjdG9y
QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTk5NEU1RUYxQkQ5QTkxMjAwRjJEODM1IC8qIFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0aW5z
LmNwcCAqLzsgfTsKKwkJOTk5NEU2MDkxQkQ5QTk4QTAwRjJEODM1IC8qIFByb21pc2VQcm90b3R5
cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTk0RTVGMTFCRDlBOTEyMDBGMkQ4MzUgLyogUHJvbWlzZVByb3RvdHlwZUJ1aWx0aW5z
LmNwcCAqLzsgfTsKKwkJOTk5NEU2MEExQkQ5QTk4QTAwRjJEODM1IC8qIFJlZmxlY3RPYmplY3RC
dWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OTk0RTVGMzFCRDlBOTEyMDBGMkQ4MzUgLyogUmVmbGVjdE9iamVjdEJ1aWx0aW5zLmNwcCAq
LzsgfTsKKwkJOTk5NEU2MEIxQkQ5QTk4QTAwRjJEODM1IC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVp
bHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTk5NEU1RjUxQkQ5QTkxMjAwRjJEODM1IC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuY3Bw
ICovOyB9OworCQk5OTk0RTYwQzFCRDlBOThBMDBGMkQ4MzUgLyogU3RyaW5nSXRlcmF0b3JQcm90
b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OTk0RTVGNzFCRDlBOTEyMDBGMkQ4MzUgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5
cGVCdWlsdGlucy5jcHAgKi87IH07CisJCTk5OTRFNjBEMUJEOUE5OEEwMEYyRDgzNSAvKiBUeXBl
ZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVGOTFCRDlBOTEyMDBGMkQ4MzUgLyogVHlwZWRBcnJh
eUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovOyB9OworCQk5OTk0RTYwRTFCRDlBOThBMDBGMkQ4
MzUgLyogVHlwZWRBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUZCMUJEOUE5MTIwMEYyRDgzNSAvKiBU
eXBlZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwICovOyB9OwogCQk5OUNDMEI2MjE4QkU5OTQ2
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0c1RlbXBsYXRlcy5weSBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTQ1QTFFMThBMUIxRTcw
MDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5ICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5Q0MwQjYzMThCRTk5
NTAwMDZDRUJDQyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5IGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMUQxOEExQjFFNzAwMjZEODhG
IC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlEQTAwQTMxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1
aWx0aW5zX2dlbmVyYXRvci5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5REEwMDlBMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0b3Iu
cHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1
NTIsOCArMTU3MCw2IEBACiAJCUE3Q0EzQUVDMTdEQTUxNjgwMDY1MzhBRiAvKiBXZWFrTWFwRGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdDQTNB
RUExN0RBNTE2ODAwNjUzOEFGIC8qIFdlYWtNYXBEYXRhLmggKi87IH07CiAJCUE3RDgwMUE0MTg4
MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEODAxQTExODgwRDY2RTAwMjZDMzlCIC8q
IEJ1aWx0aW5FeGVjdXRhYmxlcy5jcHAgKi87IH07CiAJCUE3RDgwMUE1MTg4MEQ2NkUwMDI2QzM5
QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3RDgwMUEyMTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0
YWJsZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQlBN0Q4MDFBODE4ODBENkE4MDAyNkMzOUIgLyogSlNDQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEODAxQTYxODgwRDZBODAwMjZD
MzlCIC8qIEpTQ0J1aWx0aW5zLmNwcCAqLzsgfTsKLQkJQTdEODAxQTkxODgwRDZBODAwMjZDMzlC
IC8qIEpTQ0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0Q4MDFBNzE4ODBENkE4MDAyNkMzOUIgLyogSlNDQnVpbHRpbnMuaCAqLzsgfTsK
IAkJQTdEODlDRjIxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jhc2ljQmxvY2suY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEODlDRTMxN0EwQjhDQzAw
NzczQUQ4IC8qIERGR0Jhc2ljQmxvY2suY3BwICovOyB9OwogCQlBN0Q4OUNGMzE3QTBCOENDMDA3
NzNBRDggLyogREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEODlDRTQxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Js
b2NrSW5zZXJ0aW9uU2V0LmNwcCAqLzsgfTsKIAkJQTdEODlDRjQxN0EwQjhDQzAwNzczQUQ4IC8q
IERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0Q4OUNFNTE3QTBCOENDMDA3NzNBRDggLyogREZHQmxvY2tJbnNlcnRp
b25TZXQuaCAqLzsgfTsKQEAgLTMxNjQsNiArMzE4MCw0MyBAQAogCQk5OTZCNzMxNDFCRDlGQTJD
MDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTeW1ib2xQcm90b3R5cGUubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5NkI3MzE1MUJEQTA1QUEwMDMzMUI4NCAvKiBBcnJheUNvbnN0cnVjdG9yLmx1dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJheUNvbnN0cnVjdG9yLmx1dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZCNzMxNjFCREEwNUFBMDAzMzFCODQg
LyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTk5NEU1RDkxQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5Q29uc3RydWN0b3JC
dWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcnJheUNv
bnN0cnVjdG9yQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0
RTVEQTFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVEQjFCRDlBOTEyMDBGMkQ4MzUgLyog
QXJyYXlJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNURDMUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJh
eUl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk5OTRFNUREMUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJheVByb3RvdHlwZUJ1
aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFycmF5UHJv
dG90eXBlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVE
RTFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNURGMUJEOUE5MTIwMEYyRDgzNSAvKiBGdW5jdGlv
blByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEZ1bmN0aW9uUHJvdG90eXBlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5OTk0RTVFMDFCRDlBOTEyMDBGMkQ4MzUgLyogRnVuY3Rpb25Qcm90b3R5cGVCdWls
dGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGdW5jdGlvblByb3RvdHlw
ZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUUxMUJEOUE5
MTIwMEYyRDgzNSAvKiBHbG9iYWxPYmplY3RCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHbG9iYWxPYmplY3RCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUUyMUJEOUE5MTIwMEYyRDgzNSAvKiBHbG9iYWxPYmpl
Y3RCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHbG9iYWxPYmpl
Y3RCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFMzFCRDlB
OTEyMDBGMkQ4MzUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0QnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTk0RTVFNDFCRDlBOTEyMDBGMkQ4MzUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
QnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTk5NEU1RTUxQkQ5QTkxMjAwRjJEODM1IC8qIEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9y
QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50ZXJu
YWxQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTk5OTRFNUU2MUJEOUE5MTIwMEYyRDgzNSAvKiBJbnRlcm5hbFByb21pc2VDb25zdHJ1
Y3RvckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGVybmFs
UHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTk5NEU1RTcxQkQ5QTkxMjAwRjJEODM1IC8qIEl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSXRlcmF0b3JQcm90b3R5
cGVCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUU4MUJE
OUE5MTIwMEYyRDgzNSAvKiBJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTkxQkQ5QTkxMjAwRjJEODM1IC8qIE1vZHVs
ZUxvYWRlck9iamVjdEJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTk5NEU1RUExQkQ5QTkxMjAwRjJEODM1IC8qIE1vZHVsZUxvYWRlck9iamVj
dEJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUxvYWRl
ck9iamVjdEJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUVC
MUJEOUE5MTIwMEYyRDgzNSAvKiBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9iamVjdENvbnN0cnVjdG9yQnVpbHRpbnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFQzFCRDlBOTEyMDBGMkQ4
MzUgLyogT2JqZWN0Q29uc3RydWN0b3JCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk5OTRFNUVEMUJEOUE5MTIwMEYyRDgzNSAvKiBPcGVyYXRpb25zUHJvbWlz
ZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9wZXJh
dGlvbnNQcm9taXNlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTk0RTVFRTFCRDlBOTEyMDBGMkQ4MzUgLyogT3BlcmF0aW9uc1Byb21pc2VCdWlsdGlucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcGVyYXRpb25zUHJvbWlzZUJ1aWx0aW5z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUVGMUJEOUE5MTIwMEYyRDgz
NSAvKiBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUYwMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNl
Q29uc3RydWN0b3JCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
cm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5OTk0RTVGMTFCRDlBOTEyMDBGMkQ4MzUgLyogUHJvbWlzZVByb3RvdHlwZUJ1aWx0aW5zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb21pc2VQcm90b3R5cGVC
dWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUYyMUJEOUE5
MTIwMEYyRDgzNSAvKiBQcm9taXNlUHJvdG90eXBlQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHJvbWlzZVByb3RvdHlwZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUYzMUJEOUE5MTIwMEYyRDgzNSAvKiBSZWZsZWN0T2Jq
ZWN0QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVm
bGVjdE9iamVjdEJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5
NEU1RjQxQkQ5QTkxMjAwRjJEODM1IC8qIFJlZmxlY3RPYmplY3RCdWlsdGlucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZsZWN0T2JqZWN0QnVpbHRpbnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RjUxQkQ5QTkxMjAwRjJEODM1IC8qIFN0cmlu
Z0NvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU3RyaW5nQ29uc3RydWN0b3JCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5OTRFNUY2MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdDb25zdHJ1Y3RvckJ1
aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ0NvbnN0cnVj
dG9yQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RjcxQkQ5
QTkxMjAwRjJEODM1IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nSXRlcmF0b3JQcm90b3R5cGVC
dWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUY4MUJEOUE5
MTIwMEYyRDgzNSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RjkxQkQ5QTkxMjAwRjJEODM1
IC8qIFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RkExQkQ5QTkxMjAwRjJEODM1IC8qIFR5
cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk5OTRFNUZCMUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5UHJvdG90
eXBlQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlw
ZWRBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTk5NEU1RkMxQkQ5QTkxMjAwRjJEODM1IC8qIFR5cGVkQXJyYXlQcm90b3R5cGVCdWlsdGlu
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlZEFycmF5UHJvdG90eXBl
QnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU2MEYxQkQ5QUVC
MjAwRjJEODM1IC8qIEpTQ0J1aWx0aW5zTWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTQ0J1aWx0aW5zTWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk5REEwMDk5MUJENTk5MjcwMEY0NTc1QyAvKiBfX2luaXRfXy5weSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IF9faW5pdF9fLnB5OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OURBMDA5QTFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdG9y
LnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gYnVpbHRpbnNfZ2VuZXJh
dG9yLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OURBMDA5QjFCRDU5OTI3MDBG
NDU3NUMgLyogYnVpbHRpbnNfbW9kZWwucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247
IHBhdGggPSBidWlsdGluc19tb2RlbC5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTM0NzgsOCArMzUzMSw2IEBACiAJCUE3RDgwMUEwMTg4MEQ2NkUwMDI2QzM5QiAvKiBBcnJheS5w
cm90b3R5cGUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBBcnJh
eS5wcm90b3R5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDgwMUExMTg4
MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTdEODAxQTIxODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0aW5FeGVj
dXRhYmxlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdWlsdGluRXhlY3V0
YWJsZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdEODAxQTYxODgwRDZBODAw
MjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQ0J1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTdE
ODAxQTcxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQ0J1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3RDg5Q0UzMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Jhc2ljQmxvY2suY3BwOyBwYXRoID0g
ZGZnL0RGR0Jhc2ljQmxvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q4
OUNFNDE3QTBCOENDMDA3NzNBRDggLyogREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwOyBw
YXRoID0gZGZnL0RGR0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTdEODlDRTUxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9uU2V0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0Jsb2NrSW5zZXJ0aW9uU2V0
Lmg7IHBhdGggPSBkZmcvREZHQmxvY2tJbnNlcnRpb25TZXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTM4NjMsOSArMzkxNCw5IEBACiAJCTAzNDc2OERGRkYzOEE1MDQxMURCOUM4
QiAvKiBQcm9kdWN0cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJOTMyRjVCRDkwODIyQTFDNzAwNzM2OTc1IC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29y
ayAqLywKIAkJCQk5MzJGNUJFMTA4MjJBMUM3MDA3MzY5NzUgLyoganNjICovLAogCQkJCTBGRjky
MkNGMTRGNDZCMTMwMDQxQTI0RSAvKiBKU0NMTEludE9mZnNldHNFeHRyYWN0b3IgKi8sCi0JCQkJ
OTMyRjVCRDkwODIyQTFDNzAwNzM2OTc1IC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLywK
IAkJCQkwRkNFRkFCNjE4MDVENjE2MDA0NzJDRTQgLyogbGlibGx2bUZvckpTQy5keWxpYiAqLywK
IAkJCQkxNDEyMTEyMDBBNDg3OTNDMDA0ODAyNTUgLyogbWluaWRvbSAqLywKIAkJCQkxNEJENTlC
RjBBM0U4RjkwMDBCQUY1OUMgLyogdGVzdGFwaSAqLywKQEAgLTQ1MzQsMTMgKzQ1ODUsMjQgQEAK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOTk2QjczMTUxQkRBMDVB
QTAwMzMxQjg0IC8qIEFycmF5Q29uc3RydWN0b3IubHV0LmggKi8sCisJCQkJOTk5NEU1RDkxQkQ5
QTkxMjAwRjJEODM1IC8qIEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5
NEU1REExQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5oICovLAog
CQkJCTk5NkI3MzE2MUJEQTA1QUEwMDMzMUI4NCAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1
dC5oICovLAorCQkJCTk5OTRFNURCMUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJheUl0ZXJhdG9yUHJv
dG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNURDMUJEOUE5MTIwMEYyRDgzNSAvKiBB
cnJheUl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaCAqLywKKwkJCQlCQzE4QzUyMzBFMTZGQzhB
MDBCMzQ0NjAgLyogQXJyYXlQcm90b3R5cGUubHV0LmggKi8sCisJCQkJOTk5NEU1REQxQkQ5QTkx
MjAwRjJEODM1IC8qIEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNURF
MUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmggKi8sCiAJCQkJOTk2
QjczMDcxQkQ5RkEyQzAwMzMxQjg0IC8qIEJvb2xlYW5Qcm90b3R5cGUubHV0LmggKi8sCiAJCQkJ
NjUxNEYyMTcxOEIzRTE2NzAwOThGRjhCIC8qIEJ5dGVjb2Rlcy5oICovLAogCQkJCUE1MzI0Mzk1
MTg1NkE0NzUwMDJFRDY5MiAvKiBDb21iaW5lZERvbWFpbnMuanNvbiAqLywKIAkJCQk5OTZCNzMw
ODFCRDlGQTJDMDAzMzFCODQgLyogRGF0ZUNvbnN0cnVjdG9yLmx1dC5oICovLAogCQkJCUJDRDIw
M0U3MEUxNzE4RjQwMDJDN0U4MiAvKiBEYXRlUHJvdG90eXBlLmx1dC5oICovLAogCQkJCTk5NkI3
MzA5MUJEOUZBMkMwMDMzMUI4NCAvKiBFcnJvclByb3RvdHlwZS5sdXQuaCAqLywKKwkJCQk5OTk0
RTVERjFCRDlBOTEyMDBGMkQ4MzUgLyogRnVuY3Rpb25Qcm90b3R5cGVCdWlsdGlucy5jcHAgKi8s
CisJCQkJOTk5NEU1RTAxQkQ5QTkxMjAwRjJEODM1IC8qIEZ1bmN0aW9uUHJvdG90eXBlQnVpbHRp
bnMuaCAqLywKKwkJCQk5OTk0RTVFMTFCRDlBOTEyMDBGMkQ4MzUgLyogR2xvYmFsT2JqZWN0QnVp
bHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUUyMUJEOUE5MTIwMEYyRDgzNSAvKiBHbG9iYWxPYmpl
Y3RCdWlsdGlucy5oICovLAogCQkJCTY1MTRGMjE4MThCM0UxNjcwMDk4RkY4QiAvKiBJbml0Qnl0
ZWNvZGVzLmFzbSAqLywKIAkJCQlBNTEzRTVDNjE4NUY5NDM2MDA3RTk1QUQgLyogSW5qZWN0ZWRT
Y3JpcHRTb3VyY2UuaCAqLywKIAkJCQlBNUVBNzEwRDE5RjZERjgxMDA5OEY1RUMgLyogSW5zcGVj
dG9yQWx0ZXJuYXRlQmFja2VuZERpc3BhdGNoZXJzLmggKi8sCkBAIC00NTUwLDE2ICs0NjEyLDIx
IEBACiAJCQkJQTUzMjQzODMxODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvckZyb250ZW5kRGlz
cGF0Y2hlcnMuY3BwICovLAogCQkJCUE1MzI0Mzg0MTg1NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0
b3JGcm9udGVuZERpc3BhdGNoZXJzLmggKi8sCiAJCQkJRTMzQjNFMjUxQjdBQkQ3NTAwNDhEQjJF
IC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5sdXQuaCAqLywKKwkJCQk5OTk0RTVF
MzFCRDlBOTEyMDBGMkQ4MzUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRp
bnMuY3BwICovLAorCQkJCTk5OTRFNUU0MUJEOUE5MTIwMEYyRDgzNSAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3RCdWlsdGlucy5oICovLAogCQkJCUE1MzI0Mzg1MTg1NjgzMTcwMDJF
RDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwICovLAogCQkJCUE1MzI0Mzg2MTg1
NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCAqLywKKwkJCQk5OTk0
RTVFNTFCRDlBOTEyMDBGMkQ4MzUgLyogSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlu
cy5jcHAgKi8sCisJCQkJOTk5NEU1RTYxQkQ5QTkxMjAwRjJEODM1IC8qIEludGVybmFsUHJvbWlz
ZUNvbnN0cnVjdG9yQnVpbHRpbnMuaCAqLywKIAkJCQlBMTgxOTNFMTFCNEUwQ0RCMDBGQzEwMjkg
LyogSW50bENvbGxhdG9yQ29uc3RydWN0b3IubHV0LmggKi8sCiAJCQkJQTE4MTkzRTIxQjRFMENE
QjAwRkMxMDI5IC8qIEludGxDb2xsYXRvclByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQlBMTU4N0Q3
MzFCNERDMUM2MDBENjk4NDkgLyogSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IubHV0Lmgg
Ki8sCiAJCQkJQTE1ODdENzQxQjREQzFDNjAwRDY5ODQ5IC8qIEludGxEYXRlVGltZUZvcm1hdFBy
b3RvdHlwZS5sdXQuaCAqLywKIAkJCQlBMTI1ODQ2QzFCNDVBMzYwMDBDQzdGNkMgLyogSW50bE51
bWJlckZvcm1hdENvbnN0cnVjdG9yLmx1dC5oICovLAogCQkJCUExMjU4NDZEMUI0NUEzNjAwMEND
N0Y2QyAvKiBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmx1dC5oICovLAotCQkJCUE3RDgwMUE2
MTg4MEQ2QTgwMDI2QzM5QiAvKiBKU0NCdWlsdGlucy5jcHAgKi8sCi0JCQkJQTdEODAxQTcxODgw
RDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmggKi8sCisJCQkJOTk5NEU1RTcxQkQ5QTkxMjAw
RjJEODM1IC8qIEl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUU4
MUJEOUE5MTIwMEYyRDgzNSAvKiBJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmggKi8sCisJCQkJ
OTk5NEU2MEYxQkQ5QUVCMjAwRjJEODM1IC8qIEpTQ0J1aWx0aW5zTWFjcm9zLmggKi8sCiAJCQkJ
OTk2QjczMEExQkQ5RkEyQzAwMzMxQjg0IC8qIEpTRGF0YVZpZXdQcm90b3R5cGUubHV0LmggKi8s
CiAJCQkJOTk2QjczMEIxQkQ5RkEyQzAwMzMxQjg0IC8qIEpTR2xvYmFsT2JqZWN0Lmx1dC5oICov
LAogCQkJCUUzM0Y1MDg2MUI4NDQ5RUYwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZUNvbnN0
cnVjdG9yLmx1dC5oICovLApAQCAtNDU3MSwxOCArNDYzOCw0MSBAQAogCQkJCUE3QzIyNUNEMTM5
OTg0OUMwMEZGMTY2MiAvKiBLZXl3b3JkTG9va3VwLmggKi8sCiAJCQkJQkMxOEM1MkQwRTE2RkNF
MTAwQjM0NDYwIC8qIExleGVyLmx1dC5oICovLAogCQkJCTk5NkI3MzBDMUJEOUZBMkMwMDMzMUI4
NCAvKiBNb2R1bGVMb2FkZXJPYmplY3QubHV0LmggKi8sCisJCQkJOTk5NEU1RTkxQkQ5QTkxMjAw
RjJEODM1IC8qIE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVF
QTFCRDlBOTEyMDBGMkQ4MzUgLyogTW9kdWxlTG9hZGVyT2JqZWN0QnVpbHRpbnMuaCAqLywKKwkJ
CQlCQzI2ODBFNjBFMTZENTIzMDBBMDZFOTIgLyogTnVtYmVyQ29uc3RydWN0b3IubHV0LmggKi8s
CiAJCQkJQkMyNjgwRTYwRTE2RDUyMzAwQTA2RTkyIC8qIE51bWJlckNvbnN0cnVjdG9yLmx1dC5o
ICovLAogCQkJCTk5NkI3MzBEMUJEOUZBMkMwMDMzMUI4NCAvKiBOdW1iZXJQcm90b3R5cGUubHV0
LmggKi8sCiAJCQkJOTk2QjczMEUxQkQ5RkEyQzAwMzMxQjg0IC8qIE9iamVjdENvbnN0cnVjdG9y
Lmx1dC5oICovLAorCQkJCTk5OTRFNUVCMUJEOUE5MTIwMEYyRDgzNSAvKiBPYmplY3RDb25zdHJ1
Y3RvckJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVFQzFCRDlBOTEyMDBGMkQ4MzUgLyogT2Jq
ZWN0Q29uc3RydWN0b3JCdWlsdGlucy5oICovLAorCQkJCTk5OTRFNUVEMUJEOUE5MTIwMEYyRDgz
NSAvKiBPcGVyYXRpb25zUHJvbWlzZUJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVFRTFCRDlB
OTEyMDBGMkQ4MzUgLyogT3BlcmF0aW9uc1Byb21pc2VCdWlsdGlucy5oICovLAorCQkJCTk5OTRF
NUVGMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8s
CisJCQkJOTk5NEU1RjAxQkQ5QTkxMjAwRjJEODM1IC8qIFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0
aW5zLmggKi8sCisJCQkJOTk5NEU1RjExQkQ5QTkxMjAwRjJEODM1IC8qIFByb21pc2VQcm90b3R5
cGVCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RjIxQkQ5QTkxMjAwRjJEODM1IC8qIFByb21p
c2VQcm90b3R5cGVCdWlsdGlucy5oICovLAogCQkJCTk5NkI3MzBGMUJEOUZBMkMwMDMzMUI4NCAv
KiBSZWZsZWN0T2JqZWN0Lmx1dC5oICovLAorCQkJCTk5OTRFNUYzMUJEOUE5MTIwMEYyRDgzNSAv
KiBSZWZsZWN0T2JqZWN0QnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUY0MUJEOUE5MTIwMEYy
RDgzNSAvKiBSZWZsZWN0T2JqZWN0QnVpbHRpbnMuaCAqLywKIAkJCQlCQ0QyMDJENTBFMTcwNzA4
MDAyQzdFODIgLyogUmVnRXhwQ29uc3RydWN0b3IubHV0LmggKi8sCisJCQkJQkNEMjAyRDUwRTE3
MDcwODAwMkM3RTgyIC8qIFJlZ0V4cENvbnN0cnVjdG9yLmx1dC5oICovLAorCQkJCUE3MThGNjFB
MTE3NTRBMjEwMDI0NjVBNyAvKiBSZWdFeHBKaXRUYWJsZXMuaCAqLywKIAkJCQlBNzE4RjYxQTEx
NzU0QTIxMDAyNDY1QTcgLyogUmVnRXhwSml0VGFibGVzLmggKi8sCiAJCQkJOTk2QjczMTAxQkQ5
RkEyQzAwMzMxQjg0IC8qIFJlZ0V4cFByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQk5OTZCNzMxMTFC
RDlGQTJDMDAzMzFCODQgLyogU3RyaW5nQ29uc3RydWN0b3IubHV0LmggKi8sCisJCQkJOTk5NEU1
RjUxQkQ5QTkxMjAwRjJEODM1IC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovLAor
CQkJCTk5OTRFNUY2MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdDb25zdHJ1Y3RvckJ1aWx0aW5z
LmggKi8sCiAJCQkJOTk2QjczMTIxQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJv
dG90eXBlLmx1dC5oICovLAorCQkJCTk5OTRFNUY3MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdJ
dGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVGODFCRDlBOTEyMDBG
MkQ4MzUgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5oICovLAogCQkJCTk5NkI3
MzEzMUJEOUZBMkMwMDMzMUI4NCAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQk5
OTZCNzMxNDFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICovLAogCQkJ
CTVENTM3MjdEMEUxQzU1RUMwMDIxRTU0OSAvKiBUcmFjaW5nRHRyYWNlLmggKi8sCisJCQkJOTk5
NEU1RjkxQkQ5QTkxMjAwRjJEODM1IC8qIFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNw
cCAqLywKKwkJCQk5OTk0RTVGQTFCRDlBOTEyMDBGMkQ4MzUgLyogVHlwZWRBcnJheUNvbnN0cnVj
dG9yQnVpbHRpbnMuaCAqLywKKwkJCQk5OTk0RTVGQjFCRDlBOTEyMDBGMkQ4MzUgLyogVHlwZWRB
cnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVGQzFCRDlBOTEyMDBGMkQ4
MzUgLyogVHlwZWRBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9
ICJEZXJpdmVkIFNvdXJjZXMiOwogCQkJcGF0aCA9IERlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRD
b3JlOwpAQCAtNjEwNCw4ICs2MTk0LDEwIEBACiAJCQkJMEZGQzk5RDUxODRFRTMxODAwOUMxMEFC
IC8qIEFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTdBOEFGMzcxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyVmlldy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxOEMzRTYwRTE2RjVDRDAwQjM0NDYwIC8qIEFycmF5Q29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovLAorCQkJCTk5NkI3MzE3MUJEQTA2N0YwMDMzMUI4NCAvKiBBcnJheUNvbnN0
cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCN0YzOTUxNUVEOEU0NjAwRjE2N0Iy
IC8qIEFycmF5Q29udmVudGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkRBRUM5MTdGNEVB
MTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5OTZCNzMxODFCREEwNjgwMDAzMzFCODQgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjM5NDU1MTVEMDcwNTcwMDZBNTk3QyAvKiBBcnJheVBy
b2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0U3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBB
cnJheVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCN0YzOTYxNUVEOEU0NjAwRjE2
N0IyIC8qIEFycmF5U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCkBAIC02MTIwLDYgKzYyMTIsNyBA
QAogCQkJCTg2NjczOUQyMTNCRkRFNzEwMDIzRDg3QyAvKiBCaWdJbnRlZ2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjY0QjI3MjFBNzg0QkFGMDA2RTRFNjYgLyogQmluYXJ5U3dpdGNoLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzNFQzBFMTZGNUNEMDBCMzQ0NjAgLyogQm9vbGVhbk9iamVj
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMTkxQkRBMDY4MDAwMzMxQjg0IC8qIEJvb2xl
YW5Qcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRUEwODYyMDE4MkI3QTA0MDBG
NkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODAxQTUxODgwRDY2
RTAwMjZDMzlCIC8qIEJ1aWx0aW5FeGVjdXRhYmxlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc1
RUU5QjIxOEFBQjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5OYW1lcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC02MTgxLDE1ICs2Mjc0LDEyIEBACiAJCQkJMEZEODJFMzkxNDFBQjE0RDAwMTc5Qzk0IC8qIENv
bXBhY3RKSVRDb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0U1QTNBODE3OTc0MzJEMDBF
ODkzQzAgLyogQ29tcGlsYXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0Y0
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk5OTZC
NzMxRDFCREEwOEVGMDAzMzFCODQgLyogSlNHbG9iYWxPYmplY3QubHV0LmggaW4gSGVhZGVycyAq
LywKLQkJCQk5OTZCNzMxRjFCREEwOEVGMDAzMzFCODQgLyogSlNQcm9taXNlUHJvdG90eXBlLmx1
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RkM3NTExOTYxMTBBODAwRTFEMDJEIC8qIENvbXBs
ZXhHZXRTdGF0dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGREIyQ0VBMTc0ODk2QzcwMDdCM0Mx
QiAvKiBDb25jdXJyZW50SklUTG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRjUwRTE2
RjVDRDAwQjM0NDYwIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ0ODM2RTcxMzJE
QTdCRTAwNUJFNzg1IC8qIENvbnNlcnZhdGl2ZVJvb3RzLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTNDRTA4QTE4QkMyMUMzMDBCRURGNzYgLyogQ29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTVGRDAwN0ExODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk5OTZCNzMxOTFCREEwNjgwMDAzMzFCODQgLyogQm9vbGVhblByb3RvdHlw
ZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1M0NFMDg2MThCQzFBNTYwMEJFREY3NiAvKiBD
b25zb2xlUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUZEMDA3NDE4OUIwMzhDMDA2
MzMyMzEgLyogQ29uc29sZVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZDOTlEMTE4NEVD
OEFEMDA5QzEwQUIgLyogQ29uc3RhbnRNb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTYyMTUsMTIg
KzYzMDUsMTIgQEAKIAkJCQkwRjQyNkE0QjE0NjBDRDZFMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2REYxN0I2QjVBQjAwQTdBRTNGIC8qIERhdGFWaWV3
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0QyMDM0QTBFMTcxMzVFMDAyQzdFODIgLyogRGF0ZUNv
bnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxQTFCREEwOEQxMDAzMzFCODQg
LyogRGF0ZUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzNTlDRjMwRkRE
ODlBRDAwMjA2MTgwIC8qIERhdGVDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEx
NjYwMjBFMTk5N0I0MDA4MDY2REQgLyogRGF0ZUluc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNEExNTYzMjEwOTY2MzY1MDA2RkEyNjAgLyogRGF0ZUluc3RhbmNlQ2FjaGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDRDIwMzRDMEUxNzEzNUUwMDJDN0U4MiAvKiBEYXRlUHJvdG90eXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0QyMDNFODBFMTcxOEY0MDAyQzdFODIgLyogRGF0ZVByb3Rv
dHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzFCMUJEQTA4RDEwMDMzMUI4NCAv
KiBFcnJvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0ZBMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBEZWJ1Z2dlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRkIwRTE2
RjVDRDAwQjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2
QUQyQ0I0RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC02NDAzLDcgKzY0OTMsNiBAQAogCQkJCTBGMkJEQzQ5MTUyMjgwOTYwMENEODkx
MCAvKiBERkdWYXJpYWJsZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCREM0QjE1MjI4
MDlEMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZGRkM5NjAxNEVGOTBCRDAwQzcyNTMyIC8qIERGR1ZpcnR1YWxSZWdpc3RlckFsbG9jYXRp
b25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMTgxQkRBMDY4MDAwMzMxQjg0IC8q
IEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM5N0Y0
MjE4MjAyMTE5MDAyQzlCMjYgLyogREZHV2F0Y2hwb2ludENvbGxlY3Rpb25QaGFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEQjJDRTgxNzQ4MzBBMjAwN0IzQzFCIC8qIERGR1dvcmtsaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkUwNTAxODFBQTkwOTExMDBEMzNCMzMgLyogRGlyZWN0QXJn
dW1lbnRzLmggaW4gSGVhZGVycyAqLywKQEAgLTY0MTksNiArNjUwOCw3IEBACiAJCQkJRkVCNThD
MTUxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwMkU5OEQwRTE4M0UzODAwMEY5Mjk3IC8qIEVycm9ySW5zdGFuY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMDJFOTBGMEUxODM5REIwMDBGOTI5NyAvKiBFcnJvclByb3RvdHlwZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMUIxQkRBMDhEMTAwMzMxQjg0IC8qIEVycm9yUHJv
dG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTY5QTA3OTgwRUQxRDNBRTAwRjFGNjgx
IC8qIEV2YWxDb2RlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NDk4MjA0MTg5MUQwQjAw
MDgxRTVCOCAvKiBFdmVudExvb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMUMwRkZEMUIxOTNF
OTgwMEI1M0ZDQSAvKiBFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtNjQ0Miw3ICs2NTMy
LDYgQEAKIAkJCQkwRjQ4NTMyODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3Zl
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBBMTcwNTEzREIwMEJCNzIyQyAvKiBGVExD
YXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTIzMTcwOTYwNjkwMEJCNzIy
QyAvKiBGVExDb21tb25WYWx1ZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzIyMUJEQTA4
RUYwMDMzMUI4NCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRUEwQTBDMTcwNTEzREIwMEJCNzIyQyAvKiBGVExDb21waWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkU5NUY3QTE4QjU2OTQ3MDBCNTMxRkIgLyogRlRMRGF0YVNlY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJBQzkyMkJDMThBMTYxODIwMDNDRTBGQiAvKiBGVExEV0FSRkRlYnVnTGlu
ZUluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtNjQ3Nyw3ICs2NTY2LDYgQEAKIAkJCQkwRkQ4QTMx
QzE3RDUxRjIyMDBDQTJDNDAgLyogRlRMT1NSRW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MjM1QkREMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExPU1JFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjIzNUJERTE3MTc4RTFDMDA2OTBDN0YgLyogRlRMT1NSRXhpdENvbXBpbGF0aW9uSW5mby5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjgxQkRBMDhFRjAwMzMxQjg0IC8qIFN5bWJvbFBy
b3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjM1QkUwMTcxNzhFMUMwMDY5MEM3
RiAvKiBGVExPU1JFeGl0Q29tcGlsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTExMTcw
NTEzREIwMEJCNzIyQyAvKiBGVExPdXRwdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDg1MzJB
MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC02NTE1LDEyICs2NjAzLDEwIEBACiAJCQkJOTk1OUU5MzExQkQxODI3MjAwMUFBNDEzIC8qIGdl
bmVyYXRlLWNvbWJpbmVkLWluc3BlY3Rvci1qc29uLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ3
MDNDQzAxOTI4NDQ5NjAwMTNGQkVBIC8qIGdlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5k
aW5ncy5weSBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEFGMUJENTk5NEUwMEY0NTc1QyAvKiBn
ZW5lcmF0ZS1qcy1idWlsdGlucy5weSBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzFDMUJEQTA4
REQwMDMzMUI4NCAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTVFQTcwRUMxOUY1QjNFQTAwOThGNUVDIC8qIGdlbmVyYXRlX2NwcF9hbHRlcm5hdGVfYmFj
a2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1RUY5QjE0MUEx
RDQzRjYwMDcwMkU5MCAvKiBnZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5w
eSBpbiBIZWFkZXJzICovLAogCQkJCUE1RUY5QjE1MUExRDQzRkEwMDcwMkU5MCAvKiBnZW5lcmF0
ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8s
CiAJCQkJQTVFRjlCMTYxQTFENDQwMDAwNzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9mcm9udGVuZF9k
aXNwYXRjaGVyX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzI1MUJEQTA4RUYw
MDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
RUY5QjE3MUExRDQ0MDMwMDcwMkU5MCAvKiBnZW5lcmF0ZV9jcHBfZnJvbnRlbmRfZGlzcGF0Y2hl
cl9pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1RUY5QjE4MUExRDQ0MDYw
MDcwMkU5MCAvKiBnZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5IGluIEhlYWRl
cnMgKi8sCiAJCQkJQTVFRjlCMTkxQTFENDQwNzAwNzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9wcm90
b2NvbF90eXBlc19pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLApAQCAtNjY2Nyw3ICs2
NzUzLDYgQEAKIAkJCQlCQzE4QzQxQjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxsYmFja09iamVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUMwRTE2RjVDRDAwQjM0NDYwIC8qIEpTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1N0NGNDU5MTlCRjY2
NjIwMDRBQ0JGMiAvKiBKU0NhbGxlZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTdEODAxQTkxODgw
RDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExNjdE
QTBFMTlCQ0M5MDA4MDY2REQgLyogSlNDZWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk3NDk3
MTE2ODdBREU0MDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYxREQ4NEExOEE5NDVCRTAwMjZGM0ZBIC8qIEpTQ0lubGluZXMuaCBpbiBIZWFkZXJzICovLApA
QCAtNjY4NSw2ICs2NzcwLDcgQEAKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlND
VGVzdFJ1bm5lclV0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQzE3QjZCNUFCMDBB
N0FFM0YgLyogSlNEYXRhVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUUxN0I2QjVB
QjAwQTdBRTNGIC8qIEpTRGF0YVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5
NkI3MzFDMUJEQTA4REQwMDMzMUI4NCAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmx1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc4ODAxNDExNDcxQUQ5MjAwNDFCMDE2IC8qIEpTRGF0ZU1hdGguaCBp
biBIZWFkZXJzICovLAogCQkJCUMyQTdGNjg4MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0
aWJsZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkUzODRFRTYxQUREQjdBRDAwNTVERTJD
IC8qIEpTRG9sbGFyVk0uaCBpbiBIZWFkZXJzICovLApAQCAtNjY5NCw3ICs2NzgwLDYgQEAKIAkJ
CQlBN0I0QUNBRjE0ODRDOUNFMDBCMzhBMzYgLyogSlNFeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMkI2NkVGMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0Zsb2F0MzJBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjAxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRmxvYXQ2NEFy
cmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMxRTFCREEwOEVGMDAzMzFCODQgLyogSlNQ
cm9taXNlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxRjBFMTZG
NUNEMDBCMzQ0NjAgLyogSlNGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyMDI4QkEx
Nzk3NjAzRDAwOTgwMjhDIC8qIEpTRnVuY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjJCNjZGMTE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaCBp
biBIZWFkZXJzICovLApAQCAtNjcwNiw2ICs2NzkxLDcgQEAKIAkJCQkwRjJCNjZGNjE3QjZCNUFC
MDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVJbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3OTdFMDdBQTFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhp
Y2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDIxMEUxNkY1Q0QwMEIz
NDQ2MCAvKiBKU0dsb2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMUQxQkRB
MDhFRjAwMzMxQjg0IC8qIEpTR2xvYmFsT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTVGRDAwODYxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNUMzQTFBNjE4QzA0OTAyMDBDOTU5M0EgLyogSlNHbG9iYWxP
YmplY3RDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTk0NTU5MzE4MjQ3NDQ3
MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmggaW4gSGVhZGVycyAqLywKQEAg
LTY3NDcsOCArNjgzMywxMCBAQAogCQkJCTk1MzRBQUZCMEU1QjdBOTYwMEI4QTQ1QiAvKiBKU1By
b2ZpbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MxODRFMUIxN0JFREJEMzAwN0NC
NjNBIC8qIEpTUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MxODRFMjMxN0JFRTI0MDAw
N0NCNjNBIC8qIEpTUHJvbWlzZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZC
NzMxRTFCREEwOEVGMDAzMzFCODQgLyogSlNQcm9taXNlQ29uc3RydWN0b3IubHV0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzAwOENEQjE4NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJy
ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMTg0RTFGMTdCRUUyMkUwMDdDQjYzQSAvKiBKU1By
b21pc2VQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzFGMUJEQTA4RUYwMDMz
MUI4NCAvKiBKU1Byb21pc2VQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTA1
QUJENjE5NjFERjI0MDAzNDE3NTAgLyogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYyNTUzRDIxNjEzNkUxQTAwOUYxN0QwIC8q
IEpTUHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtNjc2OSw3ICs2ODU3LDYgQEAKIAkJCQlCQzE4
QzQyODBFMTZGNUNEMDBCMzQ0NjAgLyogSlNTdHJpbmdSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMThDNDI5MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1N0cmluZ1JlZkNGLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMyNzFCREEwOEVGMDAzMzFCODQgLyogU3ltYm9sQ29u
c3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjkxOUQwRDE1N0VFMEEyMDA0QTRF
N0QgLyogSlNTeW1ib2xUYWJsZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBFQ0E2MDYx
QUZEQkVBMjAwNDQ5NzM5IC8qIEpTVGVtcGxhdGVSZWdpc3RyeUtleS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxOEM0MkEwRTE2RjVDRDAwQjM0NDYwIC8qIEpTVHlwZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC02NzgwLDcgKzY4NjcsNiBAQAogCQkJCURFQTdFMjQ1MUJCQzY3N0YwMEQ3ODQ0MCAvKiBK
U1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTA3RDI5RTBF
ODcxRTVFMDBEN0Q4OTYgLyogSlNUeXBlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3
MDIxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTk5NkI3MzFBMUJEQTA4RDEwMDMzMUI4NCAvKiBEYXRlQ29uc3RydWN0b3IubHV0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjJCNjcwMzE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MzJBcnJheS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MDAxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDhB
cnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MDExN0I2QjVBQjAwQTdBRTNGIC8qIEpT
VWludDhDbGFtcGVkQXJyYXkuaCBpbiBIZWFkZXJzICovLApAQCAtNjc4OCw3ICs2ODc0LDYgQEAK
IAkJCQk4NkUzQzYxQjE2N0JBQkVFMDA2RDc2MEEgLyogSlNWYWx1ZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzE4QzQyQzBFMTZGNUNEMDBCMzQ0NjAgLyogSlNWYWx1ZVJlZi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODZFM0M2MTUxNjdCQUJENzAwNkQ3NjBBIC8qIEpTVmlydHVhbE1h
Y2hpbmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzIxMUJEQTA4RUYwMDMzMUI4NCAvKiBO
dW1iZXJQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkUzQzYxRDE2N0JBQkVF
MDA2RDc2MEEgLyogSlNWaXJ0dWFsTWFjaGluZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3Qjk4RDEzNzFCNjBDRDYyMDAyM0IxQTQgLyogSlNXQVNNTW9kdWxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBN0NBM0FFODE3REE0MUFFMDA2NTM4QUYgLyogSlNXZWFrTWFwLmggaW4gSGVhZGVy
cyAqLywKQEAgLTY3OTksNyArNjg4NCw2IEBACiAJCQkJODZFM0M2MTkxNjdCQUJFRTAwNkQ3NjBB
IC8qIEpTV3JhcHBlck1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MkUwRTE2RjVDRDAw
QjM0NDYwIC8qIEpTV3JhcHBlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGRDhDOTMw
RUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2Qjcz
MjAxQkRBMDhFRjAwMzMxQjg0IC8qIE1vZHVsZUxvYWRlck9iamVjdC5sdXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3MkZGRDY0MTM5OTg1QTgwMEU1MzY1QSAvKiBLZXl3b3JkTG9va3VwLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NjlBMDcyQTBFRDFDRTY5MDBGMUY2ODEgLyogTGFiZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk2MDA5N0E2MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNjb3BlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTY4NjMsNyArNjk0Nyw3IEBACiAJCQkJQzQ3MDNDRDcxOTI4NDRD
QzAwMTNGQkVBIC8qIG1vZGVscy5weSBpbiBIZWFkZXJzICovLAogCQkJCUUzNzk0RTc2MUI3N0VC
OTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM1NUYz
NTMxQjdEQzg1MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJOTk2QjczMjQxQkRBMDhFRjAwMzMxQjg0IC8qIFJlZ0V4cFByb3RvdHlwZS5sdXQuaCBp
biBIZWFkZXJzICovLAorCQkJCTk5NkI3MzIwMUJEQTA4RUYwMDMzMUI4NCAvKiBNb2R1bGVMb2Fk
ZXJPYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAyRTkxMTBFMTgzOURCMDAwRjky
OTcgLyogTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMkU5
MTMwRTE4MzlEQjAwMEY5Mjk3IC8qIE5hdGl2ZUVycm9yUHJvdG90eXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMzNFOEQyMTFCOTAxM0RFMDAzNDZCNTIgLyogTmF0aXZlU3RkRnVuY3Rpb25DZWxs
LmggaW4gSGVhZGVycyAqLywKQEAgLTY4NzQsNiArNjk1OCw3IEBACiAJCQkJQkMxOEM0NDIwRTE2
RjVDRDAwQjM0NDYwIC8qIE51bWJlckNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0NDMwRTE2RjVDRDAwQjM0NDYwIC8qIE51bWJlck9iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxOEM0NDQwRTE2RjVDRDAwQjM0NDYwIC8qIE51bWJlclByb3RvdHlwZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMjExQkRBMDhFRjAwMzMxQjg0IC8qIE51bWJlclByb3Rv
dHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MkQzOTM5MTAzRTQ1NjAwMDdEQ0I1MiAv
KiBOdW1lcmljU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMEMxOUY2REU4MjAw
OThGNUVDIC8qIG9iamNfZ2VuZXJhdG9yLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQzRGNEI2RjYx
QTA1Qzk4NDAwNUNBQjc2IC8qIG9iamNfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weSBpbiBIZWFkZXJz
ICovLApAQCAtNjg4MSw2ICs2OTY2LDcgQEAKIAkJCQk4NkYzRUVCRjE2OENERTkzMDA3N0I5MkEg
LyogT2JqY1J1bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Q0E5NThEMTZBQjUw
RkEwMDkzOEEwNiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0NDUwRTE2RjVDRDAwQjM0NDYwIC8qIE9iamVjdENvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5OTZCNzMyMjFCREEwOEVGMDAzMzFCODQgLyogT2JqZWN0Q29uc3RydWN0
b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQzRTQwQTFCNjE4QjY2MDBDODBFMUUgLyog
T2JqZWN0UHJvcGVydHlDb25kaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDNFNDBDMUI2
MThCNjYwMEM4MEUxRSAvKiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxOEM0NDYwRTE2RjVDRDAwQjM0NDYwIC8qIE9iamVjdFByb3RvdHlwZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC02ODkzLDcgKzY5NzksNiBAQAogCQkJCTBGRTIyOEVEMTQzNkFCMjcw
MDE5NkM0OCAvKiBPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ0QjBFMTZGNUNE
MDBCMzQ0NjAgLyogUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzA1MkMzNTBGQjc5MjE5
MDA0OEZEQzMgLyogUGFyc2VyQXJlbmEuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzIzMUJE
QTA4RUYwMDMzMUI4NCAvKiBSZWZsZWN0T2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDQ0FFNDUxNkQwQ0Y3NDAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzdGMTgyNTE2NDE5MkM3MDA2NDBBNDcgLyogUGFyc2VyTW9kZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1MzAzRDY0MTQ0N0I5RTEwMEQzRjkwNCAvKiBQYXJzZXJUb2tlbnMuaCBpbiBI
ZWFkZXJzICovLApAQCAtNjkzNyw4ICs3MDIyLDggQEAKIAkJCQkxNDdCODQ2MzBFNkRFNkIxMDA0
Nzc1QTQgLyogUHV0UHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY2MEFDMjE2
NzQwRjgzMDAwMjk3NzkgLyogUmVkdWNlV2hpdGVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTMzNjM3QTYxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTk5NkI3MzIzMUJEQTA4RUYwMDMzMUI4NCAvKiBSZWZsZWN0T2JqZWN0Lmx1dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZBN0E4RUMxOEI0MTNDODAwNTIzNzFEIC8qIFJlZy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJOTk2QjczMTcxQkRBMDY3RjAwMzMxQjg0IC8qIEFycmF5Q29uc3RydWN0
b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1QTBFMTZGNUNEMDBCMzQ0NjAgLyog
UmVnRXhwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTcxMkIzRjExQzdCMjI4MDA3QTUzMTUgLyog
UmVnRXhwQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDIwMkMyMEUxNzA2QTcwMDJDN0U4
MiAvKiBSZWdFeHBDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCkBAIC02OTQ2LDYgKzcwMzEs
NyBAQAogCQkJCUExNzEyQjQxMTFDN0IyMzUwMDdBNTMxNSAvKiBSZWdFeHBLZXkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMThDNDVCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdFeHBPYmplY3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRDIwMkM0MEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90
b3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzI0MUJEQTA4RUYwMDMzMUI4NCAvKiBS
ZWdFeHBQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1RDBFMTZGNUNE
MDBCMzQ0NjAgLyogUmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzJCMEVEMUNF
NjkwMEYxRjY4MSAvKiBSZWdpc3RlcklELmggaW4gSGVhZGVycyAqLywKIAkJCQk2MjNBMzdFQzFC
ODdBN0MwMDA3NTQyMDkgLyogUmVnaXN0ZXJNYXAuaCBpbiBIZWFkZXJzICovLApAQCAtNzAwMiw3
ICs3MDg4LDkgQEAKIAkJCQkxNENBOTU4QjE2QUI1MERFMDA5MzhBMDYgLyogU3RhdGljUHJvcGVy
dHlBbmFseXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczMEI2MTIxMjUwMDY4RjAwOUQyNUIx
IC8qIFN0cmljdEV2YWxBY3RpdmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ2NjBF
MTZGNUNEMDBCMzQ0NjAgLyogU3RyaW5nQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTk5NkI3MzI1MUJEQTA4RUYwMDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwRUMwRUM3MUFBMEQ3REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRv
clByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0
IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0NjgwRTE2RjVDRDAwQjM0NDYwIC8qIFN0cmluZ09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0NkEwRTE2RjVDRDAwQjM0NDYwIC8qIFN0cmluZ1Byb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQyRTMxM0IxMzRGRjBBNjAwQUZBREI1IC8qIFN0cm9uZy5oIGluIEhlYWRl
cnMgKi8sCkBAIC03MDIwLDggKzcxMDgsMTAgQEAKIAkJCQlCQzkwNDE0ODBFQjkyNTA5MDBGRTI2
RkEgLyogU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MDVC
NDFBQzFBNkU1MDFFMDA3MTY3NTcgLyogU3ltYm9sLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MDVC
NDFBRTFBNkU1MDFFMDA3MTY3NTcgLyogU3ltYm9sQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCTk5NkI3MzI3MUJEQTA4RUYwMDMzMUI4NCAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTcwNUI0MUIwMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwNUI0MUIyMUE2RTUwMUUwMDcxNjc1NyAvKiBT
eW1ib2xQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzI4MUJEQTA4RUYwMDMz
MUI4NCAvKiBTeW1ib2xQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ2
QjBFMTZGNUNEMDBCMzQ0NjAgLyogU3ltYm9sVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
ODRBMjY0MTFEMTY2MjIwMDU3NzZBQyAvKiBTeW50YXhDaGVja2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MEVDQTYwODFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8sCkBAIC03MDYwLDcgKzcxNTAsNiBAQAogCQkJCUE3QThBRjQwMTdBREI1RjMwMDVB
QjE3NCAvKiBVaW50OENsYW1wZWRBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RjA4Q0Yx
NDZDNzYzMzAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3QjYwMTgyMTYzOUZEMkEwMDM3MkJBMyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJh
dG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNDJFNTExQjc5NkVDRTAw
RjRCRjRCIC8qIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjJFODkyQzE2RDAyOEFEMDA5RTRGRDIgLyogVW51c2VkUG9pbnRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTlEQTAwQjExQkQ1OTk0RTAwRjQ1NzVDIC8qIFVwZGF0ZUNvbnRlbnRzLnB5IGlu
IEhlYWRlcnMgKi8sCkBAIC03NTk5LDkgKzc2ODgsMTIgQEAKIAkJCQkwRkZDOTlENDE4NEVFMzE4
MDA5QzEwQUIgLyogQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3QThBRjM2MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlclZpZXcuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QkYxMDdFQzM3NjAwNDI3QTQ4IC8qIEFycmF5Q29u
c3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk5NEU1RkQxQkQ5QTk3MjAwRjJEODM1
IC8qIEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0JE
QUVDODE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk5OTk0RTVGRTFCRDlBOTcyMDBGMkQ4MzUgLyogQXJyYXlJdGVyYXRvclBy
b3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjM5NDU0MTVEMDcwNTUw
MDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzAx
MDdFQzM3NjAwNDI3QTQ4IC8qIEFycmF5UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTk5OTRFNUZGMUJEOUE5NzIwMEYyRDgzNSAvKiBBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGMjRFNTQwMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhl
bHBlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTI2NzhGOEUxQTAzMTAwOTAwNkEzMDZEIC8q
IEJhc2ljQmxvY2tMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjY0QjI3MTFBNzg0
QkFGMDA2RTRFNjYgLyogQmluYXJ5U3dpdGNoLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzg4MCw2
ICs3OTcyLDcgQEAKIAkJCQk1MkIzMTBGRDE5NzRBRTg3MDA4MDg1N0MgLyogRnVuY3Rpb25IYXNF
eGVjdXRlZENhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFNEJGRjJCMUFENDc2RTcwMDA4
OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlD
QzEwN0VDMzc2MDA0MjdBNDggLyogRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJOTk5NEU2MDAxQkQ5QTk3MjAwRjJEODM1IC8qIEZ1bmN0aW9uUHJvdG90eXBlQnVpbHRp
bnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjJEMkQzOEYxQURGMTAzRjAwMDIwNkMxIC8qIEZ1
bmN0aW9uUmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkFBQ0U2M0MxOENBNUEwMzAw
RUQwMTkxIC8qIEdDQWN0aXZpdHlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjc2
NkQyRjE1QThEQ0UwMDA4RjM2M0UgLyogR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtNzg4Nyw2ICs3OTgwLDcgQEAKIAkJCQkwRjkzMzI5RjE0Q0E3RENBMDA4NUYz
QzYgLyogR2V0QnlJZFN0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjAzMzJDMzE4QjAx
NzYzMDA1Rjk3OUEgLyogR2V0QnlJZFZhcmlhbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQy
ODA4NTUxMDdFQzBFNzAwMTNFN0IyIC8qIEdldHRlclNldHRlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk5OTk0RTYwMTFCRDlBOTcyMDBGMkQ4MzUgLyogR2xvYmFsT2JqZWN0QnVpbHRpbnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyRTMxMzUxMzRGRjBBNjAwQUZBREI1IC8qIEhhbmRsZVNl
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDJFMzEzNzEzNEZGMEE2MDBBRkFEQjUgLyogSGFu
ZGxlU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRCQTdBOTcxM0FBREZGODAwNUI3QzJD
IC8qIEhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03OTIzLDEwICs4MDE3LDEyIEBACiAJCQkJ
OTlGMUE2RkUxQjhFNkQ5NDAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE1MzM5RUM3MUJCMzk5QTkwMDU0RjAwNSAvKiBJbnNwZWN0b3JI
ZWFwQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM1RTAzNUYxQjdBQjQzRTAwNzNBRDJB
IC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5OTk0RTYwMjFCRDlBOTcyMDBGMkQ4MzUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMjQzOEIxODU2ODMzNTAwMkVE
NjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NTBFNEI2MTE4ODA5REQ1MDA2OEE0NkQgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE1OTNDRjgyMTg0MDM3NzEwMEJGQ0UyNyAvKiBJbnNwZWN0b3JWYWx1
ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0YxMDdFQzM3NjAwNDI3QTQ4IC8qIElu
dGVybmFsRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk5NEU2MDMxQkQ5QTk3MjAw
RjJEODM1IC8qIEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTQyOUQ3RDQwRUQyMTI4MjAwQjg5NjE5IC8qIEludGVycHJldGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUExQjlFMjM5MUI0RTBENjcwMEJDN0ZFRCAvKiBJbnRsQ29sbGF0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFCOUUyM0IxQjRFMEQ2NzAwQkM3RkVEIC8qIElu
dGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzk0MSw2ICs4MDM3
LDcgQEAKIAkJCQlERTVBMEEwMDFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3MDExM0Q0QjFBOERCMDkzMDAzODQ4QzQgLyogSXRlcmF0
b3JPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwREMzRTA5MUIyREYyQzcwMDA1
NDI5OSAvKiBJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTk0RTYw
NDFCRDlBOThBMDBGMkQ4MzUgLyogSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNTAzRkExOTE4OEUwRkIwMDAxMTBGMTQgLyogSmF2YVNjcmlwdENhbGxG
cmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI5RDkyRjBFRDIyRDcwMDBCODk2MTkgLyog
SklULmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2QTkwRUQwMEVFN0Q1MUYwMEFCMzUwRCAvKiBK
SVRBcml0aG1ldGljLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNzk3NSw3ICs4MDcyLDYgQEAKIAkJ
CQkxNDQwRjg5MjBBNTA4QjEwMDAwNUYwNjEgLyogSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0QUJERjYwMEE0MzdGRUYwMEVDQ0EwMSAvKiBKU0NhbGxiYWNrT2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1N0NGNDU4MTlCRjY2NjIwMDRBQ0JGMiAvKiBK
U0NhbGxlZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBN0Q4MDFBODE4ODBENkE4MDAyNkMzOUIg
LyogSlNDQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDExMDdFQzM3NjAw
NDI3QTQ4IC8qIEpTQ2VsbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlENjEwN0VDMzc2
MDA0MjdBNDggLyogSlNDSlNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQwRkNFNDBB
NTFFNDZCMDAwNUYwNjEgLyogSlNDbGFzc1JlZi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgwOTcs
NiArODE5Myw3IEBACiAJCQkJMEZCNTQ2N0QxNEY1Q0ZENjAwMkMyOTg5IC8qIE1ldGhvZE9mR2V0
dGluZ0FWYWx1ZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM3OTRFNzUxQjc3RUI5
NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzNTVG
MzUyMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVMb2FkZXJPYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJOTk5NEU2MDUxQkQ5QTk4QTAwRjJEODM1IC8qIE1vZHVsZUxvYWRlck9iamVjdEJ1
aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REUwMTA3RUM3RTcwMDY1MDQ0NiAv
KiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REUx
MTA3RUM3RTcwMDY1MDQ0NiAvKiBOYXRpdmVFcnJvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFMzNFOEQyMDFCOTAxM0RFMDAzNDZCNTIgLyogTmF0aXZlU3RkRnVuY3Rpb25DZWxs
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtODExMCwxMiArODIwNywxNCBAQAogCQkJCTE0NDY5REU0
MTA3RUM3RTcwMDY1MDQ0NiAvKiBOdW1iZXJQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODZGM0VFQkUxNjhDREU5MzAwNzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTUxMDdFQzdFNzAwNjUwNDQ2IC8qIE9iamVjdENvbnN0
cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5OTRFNjA2MUJEOUE5OEEwMEYyRDgzNSAv
KiBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDNF
NDA5MUI2MThCNjYwMEM4MEUxRSAvKiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkQzRTQwQjFCNjE4QjY2MDBDODBFMUUgLyogT2JqZWN0UHJvcGVydHlD
b25kaXRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTYxMDdFQzdFNzAwNjUw
NDQ2IC8qIE9iamVjdFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI0QThGODBF
NTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTY5QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDI4MDg1MDEwN0VDMEQ3MDAxM0U3QjIgLyogT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk5OTk0RTYwNzFCRDlBOThBMDBGMkQ4MzUgLyogT3BlcmF0aW9uc1Byb21pc2VCdWls
dGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUyMjhFRTE0MzZBQjJDMDAxOTZDNDggLyog
T3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFCQzEwN0VDNTREMDA0MkVDMkMg
LyogUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMDUyQzM0MEZCNzkyMTkwMDQ4RkRD
MyAvKiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgxMzgsNiArODIzNyw4IEBA
CiAJCQkJMEZCMTA1OEIxNjc1NDgzMTAwRjhBQjZFIC8qIFByb2ZpbGVyT1NSRXhpdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkIxMDU4RDE2NzU0ODM3MDBGOEFCNkUgLyogUHJvZmlsZXJPU1JF
eGl0U2l0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOTEyQjE2NzcxQzNBMDA5Q0NCMDcg
LyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTk0
RTYwODFCRDlBOThBMDBGMkQ4MzUgLyogUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJOTk5NEU2MDkxQkQ5QTk4QTAwRjJEODM1IC8qIFByb21pc2VQcm90
b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQzRTQwRDFCNjE4QjY2MDBD
ODBFMUUgLyogUHJvcGVydHlDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdGQjYw
QTQxMDNGN0RDMjAwMTdBMjg2IC8qIFByb3BlcnR5RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDQ2OURFODEwN0VDN0U3MDA2NTA0NDYgLyogUHJvcGVydHlTbG90LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtODE0OSw2ICs4MjUwLDcgQEAKIAkJCQkwRjkzQjRBOTE4QjkyQzREMDAx
NzhBM0YgLyogUHV0QnlJZFZhcmlhbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNjBBQzMx
Njc0MEY4ODAwMDI5Nzc5IC8qIFJlZHVjZVdoaXRlc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTMzNjM3QTUxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJOTk5NEU2MEExQkQ5QTk4QTAwRjJEODM1IC8qIFJlZmxlY3RPYmplY3RCdWls
dGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkE3QThFQjE4QjQxM0M4MDA1MjM3MUQgLyog
UmVnLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjgwODQxMTA3RUMwOTMwMDEzRTdCMiAvKiBS
ZWdFeHAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE3MTJCM0IxMUM3QjIxMjAwN0E1MzE1IC8q
IFJlZ0V4cENhY2hlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODE5Nyw3ICs4Mjk5LDkgQEAKIAkJ
CQlBN0MxRUFGMTE3OTg3QUI2MDAyOTlEQjIgLyogU3RhY2tWaXNpdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3MzBCNjEzMTI1MDA2OEYwMDlEMjVCMSAvKiBTdHJpY3RFdmFsQWN0aXZhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFQjEwN0VDN0U3MDA2NTA0NDYgLyogU3Ry
aW5nQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk5NEU2MEIxQkQ5QTk4QTAw
RjJEODM1IC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNzBFQzBFQzYxQUEwRDdEQTAwQjZBQUZBIC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTk5OTRFNjBDMUJEOUE5OEEwMEYyRDgzNSAvKiBTdHJpbmdJ
dGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REVD
MTA3RUM3RTcwMDY1MDQ0NiAvKiBTdHJpbmdPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ0NjlERUQxMDdFQzdFNzAwNjUwNDQ2IC8qIFN0cmluZ1Byb3RvdHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5MzM1RjI0RDEyRTY3NjVCMDAyQjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hl
Y2tlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgyMTksNyArODMyMyw5IEBACiAJCQkJQTczODY1
NTUxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2VuZXJhdG9ycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjJENERFODE5ODMyREFDMDA3RDRCMTkgLyogVG9UaGlzU3RhdHVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGOTUyQUJDMUI0ODdBNzcwMEMzNjdDNSAvKiBUcmFja2VkUmVmZXJlbmNl
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTk0RTYwRDFCRDlBOThBMDBGMkQ4MzUgLyogVHlw
ZWRBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyQjY3
MDcxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTk5OTRFNjBFMUJEOUE5OEEwMEYyRDgzNSAvKiBUeXBlZEFycmF5UHJvdG90eXBl
QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyQjY3MEExN0I2QjVBQjAwQTdBRTNG
IC8qIFR5cGVkQXJyYXlUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyQjMxMEZGMTk3NUI0
MjQwMDgwODU3QyAvKiBUeXBlTG9jYXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkZCNkMzODFBRjQ4RERDMDBEQjFCRjcgLyogVHlwZW9mVHlwZS5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0
aW5zLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnMu
cHkKaW5kZXggYzY3Y2RhZDhhMzBkNzBjY2M0NWExOWQ4M2QyMjRhNjRmM2JlZmY3Mi4uNzVhOTE5
NjJhMGRkNWE2MWM4ZDA3Nzc0NTUxYTQ1MWM1ZGZmYjk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnMucHkKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnMucHkKQEAgLTcsNiArNyw3IEBA
IGZyb20gYnVpbHRpbnNfdGVtcGxhdGVzIGltcG9ydCAqCiBmcm9tIGJ1aWx0aW5zX2dlbmVyYXRv
ciBpbXBvcnQgKgogZnJvbSBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIgaW1wb3J0
ICoKIGZyb20gYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24gaW1wb3J0
ICoKK2Zyb20gYnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3b3JrX21hY3JvcyBpbXBvcnQgKgogZnJv
bSBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIgaW1wb3J0ICoKIGZyb20gYnVpbHRp
bnNfZ2VuZXJhdGVfc2VwYXJhdGVfaW1wbGVtZW50YXRpb24gaW1wb3J0ICoKIGZyb20gYnVpbHRp
bnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBlciBpbXBvcnQgKgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3
b3JrX21hY3Jvcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1
aWx0aW5zX2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWEyOGI0MmIz
OWZhNjUwNzY1MjI3YmY3MGE4NWM3YjRkODUyZjEwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ZyYW1l
d29ya19tYWNyb3MucHkKQEAgLTAsMCArMSwxMDUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgor
IworIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCitpbXBvcnQgc3RyaW5nCitmcm9tIHN0cmlu
ZyBpbXBvcnQgVGVtcGxhdGUKKworZnJvbSBidWlsdGluc19nZW5lcmF0b3IgaW1wb3J0IEJ1aWx0
aW5zR2VuZXJhdG9yCitmcm9tIGJ1aWx0aW5zX3RlbXBsYXRlcyBpbXBvcnQgQnVpbHRpbnNHZW5l
cmF0b3JUZW1wbGF0ZXMgYXMgVGVtcGxhdGVzCisKK2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdn
bG9iYWwnKQorCisKK2NsYXNzIEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yKEJ1aWx0
aW5zR2VuZXJhdG9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwpOgorICAgICAgICBC
dWlsdGluc0dlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2RlbCkKKworICAgIGRlZiBvdXRwdXRf
ZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAiJXNCdWlsdGluc01hY3Jvcy5oIiAlIHNl
bGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbmFtZXNwYWNlJykKKworICAgIGRlZiBnZW5l
cmF0ZV9vdXRwdXQoc2VsZik6CisgICAgICAgIGFyZ3MgPSB7CisgICAgICAgICAgICAnbmFtZXNw
YWNlJzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKSwKKyAgICAg
ICAgICAgICdoZWFkZXJHdWFyZCc6IHNlbGYub3V0cHV0X2ZpbGVuYW1lKCkucmVwbGFjZSgnLics
ICdfJyksCisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3Jr
LnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpLAorICAgICAgICB9CisKKyAgICAgICAgc2VjdGlvbnMg
PSBbXQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNlKCkpCisg
ICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0V2Fybmlu
Zykuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRl
bXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRUb3ApLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAg
IHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX2hlYWRlcl9pbmNsdWRlcygpKQorICAgICAg
ICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZVRvcCkuc3Vic3Rp
dHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlv
bl9mb3JfY29kZV90YWJsZV9tYWNybygpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5n
ZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFjcm8oKSkKKyAgICAgICAgc2VjdGlvbnMu
YXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VCb3R0b20pLnN1YnN0aXR1dGUoYXJn
cykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuSGVhZGVySW5j
bHVkZUd1YXJkQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3MpKQorCisgICAgICAgIHJldHVybiAiXG5c
biIuam9pbihzZWN0aW9ucykKKworICAgIGRlZiBnZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXMoc2Vs
Zik6CisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgZm9yIG9iamVjdCBpbiBzZWxmLm1vZGVs
KCkub2JqZWN0czoKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnI2luY2x1ZGUgIiVzQnVpbHRp
bnMuaCInICUgQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JPYmplY3Qob2JqZWN0KSkK
KworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQorCisgICAgZGVmIGdlbmVyYXRlX3Nl
Y3Rpb25fZm9yX2NvZGVfdGFibGVfbWFjcm8oc2VsZik6CisgICAgICAgIG1hY3JvUHJlZml4ID0g
c2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKQorICAgICAgICBh
cmdzID0geworICAgICAgICAgICAgJ21hY3JvUHJlZml4JzogbWFjcm9QcmVmaXgsCisgICAgICAg
IH0KKworICAgICAgICBsaW5lcyA9IFtdCisgICAgICAgIGxpbmVzLmFwcGVuZCgiI2RlZmluZSAl
KG1hY3JvUHJlZml4KXNfRk9SRUFDSF9CVUlMVElOX0NPREUobWFjcm8pIFxcIiAlIGFyZ3MpCisg
ICAgICAgIGZvciBvYmplY3QgaW4gc2VsZi5tb2RlbCgpLm9iamVjdHM6CisgICAgICAgICAgICBv
YmplY3RfYXJncyA9IHsKKyAgICAgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBtYWNyb1ByZWZp
eCwKKyAgICAgICAgICAgICAgICAnb2JqZWN0TWFjcm8nOiBvYmplY3Qub2JqZWN0X25hbWUucmVw
bGFjZSgnLicsICdfJykudXBwZXIoKSwKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGlu
ZXMuYXBwZW5kKCIgICAgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfJShvYmplY3RNYWNybylzX0JV
SUxUSU5fQ09ERShtYWNybykgXFwiICUgb2JqZWN0X2FyZ3MpCisgICAgICAgIHJldHVybiAnXG4n
LmpvaW4obGluZXMpCisKKyAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9uYW1lX21h
Y3JvKHNlbGYpOgorICAgICAgICBtYWNyb1ByZWZpeCA9IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsu
c2V0dGluZygnbWFjcm9fcHJlZml4JykKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICdt
YWNyb1ByZWZpeCc6IG1hY3JvUHJlZml4LAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBb
XQorICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hf
QlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcXCIgJSBhcmdzKQorICAgICAgICBmb3Igb2Jq
ZWN0IGluIHNlbGYubW9kZWwoKS5vYmplY3RzOgorICAgICAgICAgICAgb2JqZWN0X2FyZ3MgPSB7
CisgICAgICAgICAgICAgICAgJ21hY3JvUHJlZml4JzogbWFjcm9QcmVmaXgsCisgICAgICAgICAg
ICAgICAgJ29iamVjdE1hY3JvJzogb2JqZWN0Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnXycp
LnVwcGVyKCksCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAg
ICUobWFjcm9QcmVmaXgpc19GT1JFQUNIXyUob2JqZWN0TWFjcm8pc19CVUlMVElOX0ZVTkNUSU9O
X05BTUUobWFjcm8pIFxcIiAlIG9iamVjdF9hcmdzKQorICAgICAgICByZXR1cm4gJ1xuJy5qb2lu
KGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRp
bnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVy
LnB5CmluZGV4IDViMWViN2Q2NzFjYTExYzM1OGE1MTk3ZGFkYWRlNzk1MTkwZDAwMzAuLmNjNDdk
YmY5YWQ5M2IxOGZjOTE3NzIyMzQ4YzU2NDIxZDI2OTE2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRl
X2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9i
dWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkKQEAgLTUyLDcgKzUyLDcgQEAgY2xh
c3MgQnVpbHRpbnNTZXBhcmF0ZUhlYWRlckdlbmVyYXRvcihCdWlsdGluc0dlbmVyYXRvcik6CiAg
ICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdu
YW1lc3BhY2UnKSwKICAgICAgICAgICAgICdoZWFkZXJHdWFyZCc6IHNlbGYub3V0cHV0X2ZpbGVu
YW1lKCkucmVwbGFjZSgnLicsICdfJyksCiAgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxm
Lm1hY3JvX3ByZWZpeCgpLAotICAgICAgICAgICAgJ29iamVjdE5hbWUnOiBzZWxmLm9iamVjdC5v
YmplY3RfbmFtZS51cHBlcigpLAorICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogc2VsZi5vYmpl
Y3Qub2JqZWN0X25hbWUucmVwbGFjZSgnLicsICdfJykudXBwZXIoKSwKICAgICAgICAgfQogCiAg
ICAgICAgIHNlY3Rpb25zID0gW10KQEAgLTc0LDExICs3NCwxMyBAQCBjbGFzcyBCdWlsdGluc1Nl
cGFyYXRlSGVhZGVyR2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToKICAgICBkZWYgZ2VuZXJh
dGVfZm9yd2FyZF9kZWNsYXJhdGlvbnMoc2VsZik6CiAgICAgICAgIHJldHVybiAiIiJuYW1lc3Bh
Y2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworZW51bSBjbGFz
cyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9IiIiCiAKICAgICBkZWYgZ2VuZXJhdGVf
aGVhZGVyX2luY2x1ZGVzKHNlbGYpOgogICAgICAgICBoZWFkZXJfaW5jbHVkZXMgPSBbCi0gICAg
ICAgICAgICAoWyJXZWJDb3JlIl0sCisgICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJX
ZWJDb3JlIl0sCiAgICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJidWlsdGlucy9C
dWlsdGluVXRpbHMuaCIpLAogICAgICAgICAgICAgKSwKICAgICAgICAgXQpAQCAtMTQyLDcgKzE0
NCw3IEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lKGNvZGVOYW1lKXND
b25zdHJ1Y3RBYmlsaXR5OyIiIiAlIGZ1bmN0aW9uCiAgICAgZGVmIGdlbmVyYXRlX3NlY3Rpb25f
Zm9yX2NvZGVfdGFibGVfbWFjcm8oc2VsZik6CiAgICAgICAgIGFyZ3MgPSB7CiAgICAgICAgICAg
ICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3By
ZWZpeCcpLAotICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogc2VsZi5vYmplY3Qub2JqZWN0X25h
bWUudXBwZXIoKSwKKyAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9iamVj
dF9uYW1lLnJlcGxhY2UoJy4nLCAnXycpLnVwcGVyKCksCiAgICAgICAgIH0KIAogICAgICAgICBs
aW5lcyA9IFtdCkBAIC0xNTksNyArMTYxLDcgQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0
QWJpbGl0eSBzXyUoY29kZU5hbWUpc0NvbnN0cnVjdEFiaWxpdHk7IiIiICUgZnVuY3Rpb24KICAg
ICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9uYW1lX21hY3JvKHNlbGYpOgogICAgICAg
ICBhcmdzID0gewogICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tYWNyb19wcmVmaXgo
KSwKLSAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnVw
cGVyKCksCisgICAgICAgICAgICAnb2JqZWN0TWFjcm8nOiBzZWxmLm9iamVjdC5vYmplY3RfbmFt
ZS5yZXBsYWNlKCcuJywgJ18nKS51cHBlcigpLAogICAgICAgICB9CiAKICAgICAgICAgbGluZXMg
PSBbXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMv
YnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaW1wbGVtZW50YXRpb24ucHkgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9p
bXBsZW1lbnRhdGlvbi5weQppbmRleCA2YzIyOTA0YjVjZTAyNWQ3ODZlYzkzMzUxMDVlZjliZDVj
ZWQ2NDQ3Li5mZDFkOWQxYjcwOTY4ZmRlZjg5ZTY0NTIyNTMxMWZmMDkxYmQwNGY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5l
cmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRh
dGlvbi5weQpAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBCdWlsdGluc1NlcGFyYXRlSW1wbGVtZW50
YXRpb25HZW5lcmF0b3IoQnVpbHRpbnNHZW5lcmF0b3IpOgogICAgICAgICBhcmdzID0gewogICAg
ICAgICAgICAgJ25hbWVzcGFjZSc6IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbmFt
ZXNwYWNlJyksCiAgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgp
LAotICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogc2VsZi5vYmplY3Qub2JqZWN0X25hbWUudXBw
ZXIoKSwKKyAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1l
LnJlcGxhY2UoJy4nLCAnXycpLnVwcGVyKCksCiAgICAgICAgICAgICAnb2JqZWN0TmFtZUxDJzog
V0tfbGNmaXJzdChzZWxmLm9iamVjdC5vYmplY3RfbmFtZSksCiAgICAgICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfdGVt
cGxhdGVzLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRp
bnNfdGVtcGxhdGVzLnB5CmluZGV4IDI1ZWRmNjU2ZWEyY2VhNGQwZDRmMWY2OTI1ZDM0YThlMTBh
ZjNkODMuLjJjNGE2YmM2OWRkYWYxOTBkNjM1YTA4MzVmOGEyZGMyNzk1YzBjNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX3RlbXBs
YXRlcy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWls
dGluc190ZW1wbGF0ZXMucHkKQEAgLTcwLDYgKzcwLDE2IEBAIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAgICBOYW1lc3BhY2VCb3R0b20gPSAoCiAgICAgIiIifSAvLyBuYW1lc3Bh
Y2UgJHtuYW1lc3BhY2V9IiIiKQogCisgICAgRnJhbWV3b3JrSGVhZGVyQ29tbW9uTWFjcm9zID0g
KAorICAgICIiIiNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVu
Y3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAorICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxl
KiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKKworJHttYWNyb1ByZWZpeH1fRk9SRUFD
SF9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKKyN1bmRlZiBERUNMQVJF
X0JVSUxUSU5fR0VORVJBVE9SCisKKyNkZWZpbmUgJHttYWNyb1ByZWZpeH1fQlVJTFRJTl9FWElT
VFMob2JqZWN0LCBmdW5jKSBkZWZpbmVkICR7bWFjcm9QcmVmaXh9X0JVSUxUSU5fICMjIG9iamVj
dCAjIyBfICMjIGZ1bmMiIiIpCisKKwogICAgIENvbWJpbmVkSGVhZGVyU3RhdGljTWFjcm9zID0g
KAogICAgICIiIiNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVu
Y3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAogICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxl
KiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKQEAgLTgzLDEwICs5MywxMCBAQCAke21h
Y3JvUHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9S
KQogICAgICIiIiNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVu
Y3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAogICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxl
KiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKIAotJHttYWNyb1ByZWZpeH1fRk9SRUFD
SF8ke29iamVjdE5hbWV9X0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQor
JHttYWNyb1ByZWZpeH1fRk9SRUFDSF8ke29iamVjdE1hY3JvfV9CVUlMVElOX0NPREUoREVDTEFS
RV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCiAK
LSNkZWZpbmUgJHttYWNyb1ByZWZpeH1fQlVJTFRJTl8ke29iamVjdE5hbWV9X0VYSVNUUyhvYmpl
Y3QsIGZ1bmMpIGRlZmluZWQgJHttYWNyb1ByZWZpeH1fQlVJTFRJTl8gIyMgb2JqZWN0ICMjIF8g
IyMgZnVuYyIiIikKKyNkZWZpbmUgJHttYWNyb1ByZWZpeH1fQlVJTFRJTl8ke29iamVjdE1hY3Jv
fV9FWElTVFMob2JqZWN0LCBmdW5jKSBkZWZpbmVkICR7bWFjcm9QcmVmaXh9X0JVSUxUSU5fICMj
IG9iamVjdCAjIyBfICMjIGZ1bmMiIiIpCiAKICAgICBDb21iaW5lZEpTQ0ltcGxlbWVudGF0aW9u
U3RhdGljTWFjcm9zID0gKAogICAgICIiIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy9nZW5lcmF0ZS1qcy1idWlsdGlucy5weQppbmRleCAwNzA3MDliNDgwODM4OGU2
NzhmM2RiMjM4MmY0NmEzZDYzMzM5MDZlLi44Y2QyN2I3ZDI4M2Y4MDkwODk0MzhhNTgzYjE0MDk5
MjRlYzNjNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9nZW5l
cmF0ZS1qcy1idWlsdGlucy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9n
ZW5lcmF0ZS1qcy1idWlsdGlucy5weQpAQCAtNDUsNiArNDUsNyBAQCBkZWYgZ2VuZXJhdGVfYmlu
ZGluZ3NfZm9yX2J1aWx0aW5zX2ZpbGVzKGJ1aWx0aW5zX2ZpbGVzPVtdLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfcGF0aD1Ob25lLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXRlbmF0ZV9vdXRwdXQ9RmFsc2Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkX291dHB1
dD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjcm9z
X29ubHk9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy
YW1ld29ya19uYW1lPSIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3JjZV9vdXRwdXQ9RmFsc2UpOgogCkBAIC02OCw2ICs2OSw5IEBAIGRlZiBnZW5lcmF0ZV9i
aW5kaW5nc19mb3JfYnVpbHRpbnNfZmlsZXMoYnVpbHRpbnNfZmlsZXM9W10sCiAgICAgICAgIGxv
Zy5kZWJ1ZygiVXNpbmcgZ2VuZXJhdG9yIHN0eWxlOiBjb21iaW5lZCBmaWxlcyBmb3IgYWxsIGJ1
aWx0aW5zLiIpCiAgICAgICAgIGdlbmVyYXRvcnMuYXBwZW5kKEJ1aWx0aW5zQ29tYmluZWRIZWFk
ZXJHZW5lcmF0b3IobW9kZWwpKQogICAgICAgICBnZW5lcmF0b3JzLmFwcGVuZChCdWlsdGluc0Nv
bWJpbmVkSW1wbGVtZW50YXRpb25HZW5lcmF0b3IobW9kZWwpKQorICAgIGVsaWYgbWFjcm9zX29u
bHk6CisgICAgICAgIGxvZy5kZWJ1ZygiVXNpbmcgZ2VuZXJhdG9yIHN0eWxlOiBjb21iaW5lZCBt
YWNybyBkZWZpbml0aW9ucyBmb3IgYWxsIGJ1aWx0aW5zLiIpCisgICAgICAgIGdlbmVyYXRvcnMu
YXBwZW5kKEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yKG1vZGVsKSkKICAgICBlbHNl
OgogICAgICAgICBsb2cuZGVidWcoIlVzaW5nIGdlbmVyYXRvciBzdHlsZTogc2luZ2xlIGZpbGVz
IGZvciBlYWNoIGJ1aWx0aW4uIikKICAgICAgICAgZm9yIG9iamVjdCBpbiBtb2RlbC5vYmplY3Rz
OgpAQCAtMTE3LDYgKzEyMSw3IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgY2xp
X3BhcnNlci5hZGRfb3B0aW9uKCItLWZyYW1ld29yayIsIHR5cGU9ImNob2ljZSIsIGNob2ljZXM9
YWxsb3dlZF9mcmFtZXdvcmtfbmFtZXMsIGhlbHA9IkRlc3RpbmF0aW9uIGZyYW1ld29yayBmb3Ig
Z2VuZXJhdGVkIGZpbGVzLiIpCiAgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9uKCItLWZvcmNlIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iRm9yY2Ugb3V0cHV0IG9mIGdlbmVyYXRlZCBzY3Jp
cHRzLCBldmVuIGlmIG5vdGhpbmcgY2hhbmdlZC4iKQogICAgIGNsaV9wYXJzZXIuYWRkX29wdGlv
bigiLS1jb21iaW5lZCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IlByb2R1Y2Ugb25lIC5o
Ly5jcHAgZmlsZSBpbnN0ZWFkIG9mIHByb2R1Y2luZyBvbmUgcGVyIGJ1aWx0aW4gb2JqZWN0LiIp
CisgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9uKCItLW1hY3Jvcy1vbmx5IiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwgaGVscD0iUHJvZHVjZSBvbmUgLmggZmlsZSB3aXRoIGl0ZXJhdGlvbiBtYWNyb3Mg
Zm9yIGFsbCBidWlsdGluIG9iamVjdHMgaW4gdGhlIGZyYW1ld29yay4iKQogICAgIGNsaV9wYXJz
ZXIuYWRkX29wdGlvbigiLXYiLCAiLS1kZWJ1ZyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9
IkxvZyBleHRyYSBvdXRwdXQgZm9yIGRlYnVnZ2luZyB0aGUgZ2VuZXJhdG9yIGl0c2VsZi4iKQog
ICAgIGNsaV9wYXJzZXIuYWRkX29wdGlvbigiLXQiLCAiLS10ZXN0IiwgYWN0aW9uPSJzdG9yZV90
cnVlIiwgaGVscD0iRW5hYmxlIHRlc3QgbW9kZS4iKQogCkBAIC0xNDEsNiArMTQ2LDcgQEAgaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICAgICAgJ291dHB1dF9wYXRoJzogYXJnX29wdGlv
bnMub3V0cHV0X2RpcmVjdG9yeSwKICAgICAgICAgJ2ZyYW1ld29ya19uYW1lJzogYXJnX29wdGlv
bnMuZnJhbWV3b3JrLAogICAgICAgICAnY29tYmluZWRfb3V0cHV0JzogYXJnX29wdGlvbnMuY29t
YmluZWQsCisgICAgICAgICdtYWNyb3Nfb25seSc6IGFyZ19vcHRpb25zLm1hY3Jvc19vbmx5LAog
ICAgICAgICAnZm9yY2Vfb3V0cHV0JzogYXJnX29wdGlvbnMuZm9yY2UsCiAgICAgICAgICdjb25j
YXRlbmF0ZV9vdXRwdXQnOiBhcmdfb3B0aW9ucy50ZXN0LAogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaAppbmRleCBlYzhk
NTc3MDRiODdjNTg0YTkzNmRkZTQxN2Q2MjlmODU3YjM2NTcxLi4yZTk0NTUxZTQ5NTFhM2I4MGI3
MTFmMDVhMmE5ODVmZjE4NzI2YWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVm
IEJ1aWx0aW5FeGVjdXRhYmxlc19oCiAjZGVmaW5lIEJ1aWx0aW5FeGVjdXRhYmxlc19oCiAKLSNp
bmNsdWRlICJKU0NCdWlsdGlucy5oIgorI2luY2x1ZGUgIkpTQ0J1aWx0aW5zTWFjcm9zLmgiCiAj
aW5jbHVkZSAiUGFyc2VyTW9kZXMuaCIKICNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCiAjaW5jbHVk
ZSAiV2Vhay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1
aWx0aW5VdGlscy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGls
cy5oCmluZGV4IDA3YzI5YTY1Zjg0NmFlODI1YmY2ZDZiNTU2OGVhZDdiNzhlZjRjMzcuLmYzMmRi
NDg5ZDcxODk4ZGJhNzAwZjM2MGExZWE3NTUwZWY0NjlhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtMzEsNiArMzEsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2Rl
ZmluZSBKU0NfQlVJTFRJTl9FWElTVFMob2JqZWN0LCBmdW5jKSBkZWZpbmVkIEpTQ19CVUlMVElO
XyAjIyBvYmplY3QgIyMgXyAjIyBmdW5jCisKICNkZWZpbmUgSU5JVElBTElaRV9CVUlMVElOX05B
TUVTKG5hbWUpICwgbV8jI25hbWUoSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAjbmFt
ZSkpLCBtXyMjbmFtZSMjUHJpdmF0ZU5hbWUoSlNDOjpJZGVudGlmaWVyOjpmcm9tVWlkKEpTQzo6
UHJpdmF0ZU5hbWUoSlNDOjpQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24sIEFTQ0lJTGl0ZXJhbCgi
UHJpdmF0ZVN5bWJvbC4iICNuYW1lKSkpKQogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fTkFNRVMo
bmFtZSkgY29uc3QgSlNDOjpJZGVudGlmaWVyIG1fIyNuYW1lOyBjb25zdCBKU0M6OklkZW50aWZp
ZXIgbV8jI25hbWUjI1ByaXZhdGVOYW1lOwogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fSURFTlRJ
RklFUl9BQ0NFU1NPUihuYW1lKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Y3JlYXRlX2hhc2hfdGFibGUgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFi
bGUKaW5kZXggODQ0NDFhMzM1M2FlZDE4NDY1Y2M3NDM0NDhiOGMwMmYwNDUyMmI0My4uNTNjZWMy
NjRiZTQ4M2JkYzE5NDg1NmFiNzU2OGMwZDBjODEzNDVjNiAxMDA3NTUKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9jcmVhdGVfaGFzaF90YWJsZQpAQCAtMjU4LDEzICsyNTgsMTggQEAgc3ViIG91dHB1dCgpIHsK
ICAgICBteSAkbmFtZUluZGV4ID0gIiR7bmFtZX1JbmRleCI7CiAgICAgJG5hbWVJbmRleCA9fiBz
LzovXy9nOwogCisgICAgbXkgJGNsYXNzTmFtZSA9IGpzY191Y2ZpcnN0KCRuYW1lKTsKKyAgICAk
Y2xhc3NOYW1lID1+IHMvVGFibGUkLy87CisgICAgJGNsYXNzTmFtZSA9fiBzL1wuLy9nOworCiAg
ICAgcHJpbnQgIlxuIjsKLSAgICBwcmludCAiI2luY2x1ZGUgXCJKU0NCdWlsdGlucy5oXCJcbiIg
aWYgKCRpbmNsdWRlQnVpbHRpbik7CisgICAgcHJpbnQgIiNpbmNsdWRlIFwiJHtjbGFzc05hbWV9
QnVpbHRpbnMuaFwiXG4iIGlmICgkaW5jbHVkZUJ1aWx0aW4pOwogICAgIHByaW50ICIjaW5jbHVk
ZSBcIkxvb2t1cC5oXCJcbiIgaWYgKCRpbmNsdWRlTG9va3VwKTsKICAgICBwcmludCAiXG4iOwog
ICAgIHByaW50ICJuYW1lc3BhY2UgSlNDIHtcbiI7CiAgICAgcHJpbnQgIlxuIjsKICAgICBwcmlu
dCAic3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4ICR7bmFtZUluZGV4fVxbJGNv
bXBhY3RTaXplXF0gPSB7XG4iOworCiAgICAgZm9yIChteSAkaSA9IDA7ICRpIDwgJGNvbXBhY3RT
aXplOyAkaSsrKSB7CiAgICAgICAgIG15ICRUID0gLTE7CiAgICAgICAgIGlmIChkZWZpbmVkKCR0
YWJsZVskaV0pKSB7ICRUID0gJHRhYmxlWyRpXTsgfQpAQCAtMzE1LDEwICszMjAsMTEgQEAgc3Vi
IG91dHB1dCgpIHsKICAgICAgICAgfQogCiAgICAgICAgIGlmICgkdmFsdWVzWyRpXXsidHlwZSJ9
IGVxICJGdW5jdGlvbiIgJiYgJGluY2x1ZGVCdWlsdGluKSAgewotICAgICAgICAgICAgbXkgJHRh
YmxlSGVhZCA9ICRuYW1lOwotICAgICAgICAgICAgJHRhYmxlSGVhZCA9fiBzL1RhYmxlJC8vOwot
ICAgICAgICAgICAgcHJpbnQgIiAjaWYgSlNDX0JVSUxUSU5fRVhJU1RTKCIgLiB1YygkdGFibGVI
ZWFkKSAuICIsICIgLiB1Yygka2V5KSAuIilcbiI7Ci0gICAgICAgICAgICBwcmludCAiICAgeyBc
IiRrZXlcIiwgKCgkYXR0cnNbJGldKSAmIH5GdW5jdGlvbikgfCBCdWlsdGluLCAkaW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9yPigiIC4gJHRhYmxlSGVh
ZCAuIHVjZmlyc3QoJGtleSkgLiAiQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkkc2Vjb25kVmFs
dWUgfSB9LFxuIjsKKyAgICAgICAgICAgICRvYmplY3RNYWNybyA9fiBzL1RhYmxlJC8vOworICAg
ICAgICAgICAgJG9iamVjdE1hY3JvID1+IHMvXC4vXy9nOworICAgICAgICAgICAgbXkgJG9iamVj
dE1hY3JvID0gdWMoJG5hbWUpOworICAgICAgICAgICAgcHJpbnQgIiAjaWYgSlNDX0JVSUxUSU5f
RVhJU1RTKCRvYmplY3RNYWNybywgIiAuIHVjKCRrZXkpIC4iKVxuIjsKKyAgICAgICAgICAgIHBy
aW50ICIgICB7IFwiJGtleVwiLCAoKCRhdHRyc1skaV0pICYgfkZ1bmN0aW9uKSB8IEJ1aWx0aW4s
ICRpbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KCIg
LiAkY2xhc3NOYW1lIC4gdWNmaXJzdCgka2V5KSAuICJDb2RlR2VuZXJhdG9yKSwgKGludHB0cl90
KSRzZWNvbmRWYWx1ZSB9IH0sXG4iOwogICAgICAgICAgICAgcHJpbnQgIiAjZWxzZVxuIgogICAg
ICAgICB9CiAgICAgICAgIHByaW50ICIgICB7IFwiJGtleVwiLCAkYXR0cnNbJGldLCAkaW50cmlu
c2ljLCB7IChpbnRwdHJfdCkiIC4gJGZpcnN0Q2FzdFN0ciAuICIoJGZpcnN0VmFsdWUpLCAoaW50
cHRyX3QpIiAuICRzZWNvbmRDYXN0U3RyIC4gIigkc2Vjb25kVmFsdWUpIH0gfSxcbiI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXgg
MmRiMjU5MjZkMTkwYWJlOTY4YzdmYTI0MTNkZmFmMTczZjg0YjBhYy4uNDdhMWM5YTg5NmJlZTAw
ODQ4MDdlZDM4MWMxNzIzN2NiYjNkOGU0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5UHJvdG90eXBlLmgiCiAKKyNpbmNsdWRlICJBcnJh
eVByb3RvdHlwZUJ1aWx0aW5zLmgiCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkNhY2hlZENhbGwuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKQEAgLTMyLDcgKzMz
LDYgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1
ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVk
ZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUg
IkpTU3RyaW5nSm9pbmVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZS5jcHAKaW5kZXggZWNlZGZhZmYz
ZGZjYTQ2YzM1OTQ4NWQwNTM5YWFmMzg4OWQ1YTk0ZC4uYjA5ZTdmZjUyYzZhM2Q5Y2ViZTcwNzAx
MWEyNjViNDJjZGM4ZDMwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlLmNwcApAQCAtMjcsNyArMjcs
NiBAQAogI2luY2x1ZGUgIkpTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlLmgiCiAKICNpbmNsdWRl
ICJFcnJvci5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3QuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264030</attachid>
            <date>2015-10-25 20:24:07 -0700</date>
            <delta_ts>2015-10-30 13:51:01 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-150482-20151025202318.patch</filename>
            <type>text/plain</type>
            <size>228173</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NWVhNDdiNDU1NmExM2Q5ZTE0MjJiMjM1YjM2ZTM0MDhjMDg2NjhlLi5hZmIyN2I0ZTA0MmQwYzc2
MTg2MjVlY2FkNDMxMDYwN2Q5MzE0YzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NiBAQAorMjAxNS0xMC0yNSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBGb3IgSlNDIGJ1aWx0aW5zLCBnZW5lcmF0ZS1qcy1iaW5kaW5ncy5qcyBzaG91bGQg
cHJvZHVjZSBzZXBhcmF0ZSBmaWxlcyBwZXIgYnVpbHRpbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBmaWxlcyB0aGF0IGdlbmVyYXRl
ZCBKU0NCdWlsdGlucy57Y3BwLGh9LiBNb3N0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IGFscmVhZHkK
KyAgICAgICAgZXhpc3RzIGluIHRoZSBzZXBhcmF0ZSBwZXItb2JqZWN0IFhYWEJ1aWx0aW5zLntj
cHAsaH0gZmlsZXMuIEFkZCBhIG5ldyBnZW5lcmF0b3IgZm9yCisgICAgICAgIGEgZnJhbWV3b3Jr
LXNwZWNpZmljICJhbGwtaW4tb25lIiBoZWFkZXIgZmlsZSB3aGljaCBpcyB1c2VkIHRvIGVudW1l
cmF0ZSBvdmVyIGFsbAorICAgICAgICBidWlsdGlucyBhbmQgdW5pcXVlIG5hbWVzIGZvciBhIGZy
YW1ld29yay4gTW9zdCBidWlsdGlucyBkb24ndCBuZWVkIHRvIGluY2x1ZGUgdGhpcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisK
KyAgICAgICAgVXBkYXRlIGJ1aWxkIGZpbGVzIHNvIHRoYXQgWFhYQnVpbHRpbnMuY3BwL2ggZGVw
ZW5kcyBvbmx5IG9uIGdlbmVyYXRvciBzY3JpcHRzIGFuZAorICAgICAgICBYWFguanMuIFRoZSBh
bGwtaW4tb25lIGhlYWRlciBmaWxlIGRlcGVuZHMgb24gYWxsIGJ1aWx0aW4gSlMgZmlsZXMgYW5k
IHNjcmlwdHMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnMucHk6CisgICAgICAg
ICogU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHk6
IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9j
b21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHk6IEFkZGVkLgorICAg
ICAgICAoQnVpbHRpbnNGcmFtZXdvcmtNYWNyb3NHZW5lcmF0b3IpOgorICAgICAgICAoQnVpbHRp
bnNGcmFtZXdvcmtNYWNyb3NHZW5lcmF0b3IuX19pbml0X18pOgorICAgICAgICAoQnVpbHRpbnNG
cmFtZXdvcmtNYWNyb3NHZW5lcmF0b3Iub3V0cHV0X2ZpbGVuYW1lKToKKyAgICAgICAgKEJ1aWx0
aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgIChC
dWlsdGluc0ZyYW1ld29ya01hY3Jvc0dlbmVyYXRvci5nZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXMp
OgorICAgICAgICAoQnVpbHRpbnNGcmFtZXdvcmtNYWNyb3NHZW5lcmF0b3IuZ2VuZXJhdGVfc2Vj
dGlvbl9mb3JfY29kZV9pdGVyYXRpb25fbWFjcm8pOgorICAgICAgICAoQnVpbHRpbnNGcmFtZXdv
cmtNYWNyb3NHZW5lcmF0b3IuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfbmFtZV9pdGVyYXRpb25fbWFj
cm8pOgorICAgICAgICAqIFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0
X2hlYWRlci5weTogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weS4KKyAgICAgICAgKiBT
Y3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9pbXBsZW1lbnRhdGlvbi5w
eTogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1
aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5LgorICAgICAgICAqIFNj
cmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X3dyYXBwZXIucHk6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19n
ZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVyLnB5LgorICAgICAgICAqIFNjcmlwdHMvYnVpbHRpbnMv
YnVpbHRpbnNfdGVtcGxhdGVzLnB5OgorICAgICAgICAqIFNjcmlwdHMvZ2VuZXJhdGUtanMtYnVp
bHRpbnMucHk6CisgICAgICAgIChnZW5lcmF0ZV9iaW5kaW5nc19mb3JfYnVpbHRpbnNfZmlsZXMp
OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bi5Qcm9taXNlLU1hY3Jvcy5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21i
aW5lZC5qcy4KKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3Jl
LUJ1aWx0aW4ucHJvdG90eXBlLU1hY3Jvcy5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJv
dG90eXBlLUNvbWJpbmVkLmpzLgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2
YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLU1hY3Jvcy5qczogUmVuYW1lZCBmcm9tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3Jl
LUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcy4KKyAgICAgICAgKiBTY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21iaW5l
ZC5qcy1yZXN1bHQ6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9zLmpzLXJlc3VsdDog
QWRkZWQuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90
b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtTWFj
cm9zLmpzLXJlc3VsdDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1
bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMtcmVzdWx0OiBSZW1vdmVkLgorICAg
ICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVp
bHRpbkNvbnN0cnVjdG9yLU1hY3Jvcy5qcy1yZXN1bHQ6IEFkZGVkLgorICAgICAgICAqIFNjcmlw
dHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVj
dG9yLVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLU9wZXJhdGlvbnMuUHJvbWlzZS1Db21iaW5lZC5qcy1y
ZXN1bHQ6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBT
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVp
bHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0Ogor
ICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxDYXNp
bmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhl
Y3V0YWJsZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAg
KEpTQzo6QnVpbHRpbk5hbWVzOjpCdWlsdGluTmFtZXMpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1
aWx0aW5VdGlscy5oOgorICAgICAgICAqIGNyZWF0ZV9oYXNoX3RhYmxlOgorCisgICAgICAgIFRo
ZSBjb2RlIGdlbmVyYXRvciBuZWVkcyB0byBiZSBtb3JlIHNvcGhpc3RpY2F0ZWQgd2hlbiBnZW5l
cmF0aW5nIHRoZSBtYWNybworICAgICAgICBzdWJzdHJpbmcgZm9yIHRoZSBvYmplY3QncyBjbGFz
cyBuYW1lLgorCisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAg
ICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHA6CisgICAgICAgICogcnVudGltZS9JdGVy
YXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNJbnRlcm5hbFBy
b21pc2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgorCiAyMDE1LTEwLTI0ICBCcmlhbiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFRlYWNoIGNyZWF0ZV9oYXNoX3RhYmxl
IHRvIG9taXQgYnVpbHRpbnMgbWFjcm9zIHdoZW4gZ2VuZXJhdGluZyB0YWJsZXMgZm9yIG5hdGl2
ZS1vbmx5IG9iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNTU0YjE0ODJhZTE1YmFmMGE3OWFmMjdmOWI1
NzBhYWZiMTY0ZDYzLi43NWIxZGYyZDhjZGVhNjdlMjAwMzFkZDU0NjViOTYzMTkzZjY1MWU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMTAtMjUgIEJyaWFuIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgRm9yIEpTQyBidWlsdGlucywgZ2VuZXJhdGUtanMtYmlu
ZGluZ3MuanMgc2hvdWxkIHByb2R1Y2Ugc2VwYXJhdGUgZmlsZXMgcGVyIGJ1aWx0aW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDQ4MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSByZWZlcmVu
Y2VzIHRvIGJ1aWx0aW5zIGdlbmVyYXRvciBmaWxlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisKIDIwMTUtMTAtMjUgIEd3YW5n
IFlvb24gSHdhbmcgIDx5b29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1RleE1hcF0gRml4IGEg
bWlzdXNlZCBmbGFnIGZvciBHc3RHTApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDFjNzRjNzJmODVmNGFjYTAwZjE3NGFjZjAxNDQ0NWQ3ZDgyOWU1NDkuLmU2MjhmMmYxNTJj
MjZkNTVjYzA5NDI0NGMxYmZmZTc0ZmUzZmVlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTExMjUsMTggKzExMjUsMTcgQEAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAg
IENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9JTlNQRUNUT1Jf
U0NSSVBUU19ESVJ9L2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSAtLW91
dHB1dERpciAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3Ii
IC0tZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRD
T1JFX0RJUn0vQ29tYmluZWREb21haW5zLmpzb24KICAgICBWRVJCQVRJTSkKIAotIyBKU0NCdWls
dGlucworIyBKUyBCdWlsdGlucwogCiBzZXQoQlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFMKICAg
ICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGlucy5weQogICAgICR7SmF2YVNj
cmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRvci5weQogICAgICR7SmF2YVNj
cmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX21vZGVsLnB5CiAgICAgJHtKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfdGVtcGxhdGVzLnB5Ci0gICAgJHtKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5Ci0g
ICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmlu
ZWRfaW1wbGVtZW50YXRpb24ucHkKLSAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9i
dWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkKLSAgICAke0phdmFTY3JpcHRDb3Jl
X1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5w
eQotICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRlX3Nl
cGFyYXRlX3dyYXBwZXIucHkKKyAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWls
dGluc19nZW5lcmF0ZV9mcmFtZXdvcmtfbWFjcm9zLnB5CisgICAgJHtKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRlci5weQorICAgICR7SmF2
YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9pbXBsZW1l
bnRhdGlvbi5weQorICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dl
bmVyYXRlX29iamVjdF93cmFwcGVyLnB5CiAgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJ
Un0vZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKICAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNf
RElSfS9sYXp5d3JpdGVyLnB5CiApCkBAIC0xMTYzLDI1ICsxMTYyLDQxIEBAIHNldChKYXZhU2Ny
aXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTCiApCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgIE9V
VFBVVCAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0pTQ0J1aWx0aW5zLmNw
cAotICAgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vSlNDQnVp
bHRpbnMuaAotICAgTUFJTl9ERVBFTkRFTkNZICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9
L2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5Ci0gICBERVBFTkRTICR7SmF2YVNjcmlwdENvcmVfQlVJ
TFRJTlNfU09VUkNFU30gJHtCVUlMVElOU19HRU5FUkFUT1JfU0NSSVBUU30KLSAgIENPTU1BTkQg
JHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vZ2VuZXJh
dGUtanMtYnVpbHRpbnMucHkgLS1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLS1vdXRwdXQtZGly
ZWN0b3J5ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0gLS1jb21iaW5lZCAk
e0phdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVN9Ci0gICBWRVJCQVRJTSkKKyAgICBPVVRQ
VVQgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGluc01hY3Jv
cy5jcHAKKyAgICBERVBFTkRTICR7QlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFN9ICR7SmF2YVNj
cmlwdENvcmVfQlVJTFRJTlNfU09VUkNFU30KKyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFC
TEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5
IC0tZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlIC0tbWFjcm9zLW9ubHkgLS1vdXRwdXQtZGlyZWN0
b3J5ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0gJHtKYXZhU2NyaXB0Q29y
ZV9CVUlMVElOU19TT1VSQ0VTfQorICAgIFZFUkJBVElNKQorbGlzdChBUFBFTkQgSmF2YVNjcmlw
dENvcmVfSEVBREVSUworICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0v
SlNDQnVpbHRpbnNNYWNyb3MuaAorKQorCitmb3JlYWNoIChfYnVpbHRpblNvdXJjZSAke0phdmFT
Y3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQo
X29iamVjdE5hbWUgJHtfYnVpbHRpblNvdXJjZX0gTkFNRV9XRSkKKyAgICBhZGRfY3VzdG9tX2Nv
bW1hbmQoCisgICAgICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9E
SVJ9LyR7X29iamVjdE5hbWV9QnVpbHRpbnMuY3BwCisgICAgICAgICAgICAgICAke0RFUklWRURf
U09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9LyR7X29iamVjdE5hbWV9QnVpbHRpbnMuaAorICAg
ICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfYnVpbHRpblNvdXJjZX0KKyAgICAgICAgREVQRU5EUyAk
e0JVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTfQorICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VY
RUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0
aW5zLnB5IC0tZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlIC0tb3V0cHV0LWRpcmVjdG9yeSAke0RF
UklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9ICR7X2J1aWx0aW5Tb3VyY2V9CisgICAg
ICAgIFZFUkJBVElNKQorICAgIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKKyAg
ICAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS8ke19vYmplY3ROYW1l
fUJ1aWx0aW5zLmNwcAorICAgICkKKyAgICBsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9IRUFE
RVJTCisgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vJHtfb2Jq
ZWN0TmFtZX1CdWlsdGlucy5oCisgICAgKQorZW5kZm9yZWFjaCAoKQogCiBsaXN0KEFQUEVORCBK
YXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENP
UkVfRElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmNwcAogICAgICR7
REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kRGlzcGF0Y2hlcnMuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENP
UkVfRElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcAotICAgICR7REVS
SVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vSlNDQnVpbHRpbnMuY3BwCiApCiAKIGxp
c3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0hFQURFUlMKICAgICAke0RFUklWRURfU09VUkNFU19K
QVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcnMu
aAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaAogICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFT
Q1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5oCi0gICAg
JHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGlucy5oCiApCiAK
IGFkZF9jdXN0b21fY29tbWFuZCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNTM5Y2I0YzdiNjYxMzNhMDJiYjk3MzVmMWM5NjI2YzNjOGVlMTAwZi4uNTk1
Y2QyZWI0MmZkNjZiYTkwYTlmMTI5NzQ0Yzk1NTVhZWU4MzI5YiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTU0LDggKzU0LDggQEAgYWxsIDogXAogICAg
IEluaXRCeXRlY29kZXMuYXNtIFwKICAgICBJbmplY3RlZFNjcmlwdFNvdXJjZS5oIFwKICAgICBJ
bnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmggXAorICAgIEpTQ0J1aWx0aW5zTWFjcm9zLmgg
XAogICAgIEpTUmVwbGF5SW5wdXRzLmggXAotICAgIEpTQ0J1aWx0aW5zLmggXAogICAgIExleGVy
Lmx1dC5oIFwKICAgICBLZXl3b3JkTG9va3VwLmggXAogICAgIFJlZ0V4cEppdFRhYmxlcy5oIFwK
QEAgLTY5LDExICs2OSwxMCBAQCBCVUlMVElOU19HRU5FUkFUT1JfU0NSSVBUUyA9IFwKICAgICAk
KEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGlucy9idWlsdGluc19nZW5lcmF0b3Iu
cHkgXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zL2J1aWx0aW5z
X21vZGVsLnB5IFwKICAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGlucy9i
dWlsdGluc190ZW1wbGF0ZXMucHkgXAotICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIp
L2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSBcCi0gICAgJChK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29t
YmluZWRfaW1wbGVtZW50YXRpb24ucHkgXAotICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19E
SVIpL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weSBcCi0gICAg
JChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVf
c2VwYXJhdGVfaW1wbGVtZW50YXRpb24ucHkgXAotICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBU
U19ESVIpL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkgXAor
ICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVy
YXRlX2ZyYW1ld29ya19tYWNyb3MucHkgXAorICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19E
SVIpL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkgXAorICAgICQo
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29i
amVjdF9pbXBsZW1lbnRhdGlvbi5weSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJ
UikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X3dyYXBwZXIucHkgXAogICAgICQo
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5IFwKICAg
ICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9sYXp5d3JpdGVyLnB5IFwKICMKQEAgLTk5
LDE1ICs5OCwyNSBAQCBKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTID0gXAogICAgICQo
SmF2YVNjcmlwdENvcmUpL2J1aWx0aW5zL1R5cGVkQXJyYXkucHJvdG90eXBlLmpzIFwKICMKIAot
IyBUaGUgY29tYmluZWQgb3V0cHV0IGZpbGUgZGVwZW5kcyBvbiB0aGUgY29udGVudHMgb2YgYnVp
bHRpbnMgYW5kIGdlbmVyYXRvciBzY3JpcHRzLCBzbwotIyBhZGRpbmcsIG1vZGlmeWluZywgb3Ig
cmVtb3ZpbmcgYnVpbHRpbnMgb3Igc2NyaXB0cyB3aWxsIHRyaWdnZXIgcmVnZW5lcmF0aW9uIG9m
IGZpbGVzLgorIyBBZGRpbmcvcmVtb3Zpbmcgc2NyaXB0cyBzaG91bGQgdHJpZ2dlciByZWdlbmVy
YXRpb24sIGJ1dCBjaGFuZ2luZyB3aGljaCBidWlsdGlucyBhcmUKKyMgZ2VuZXJhdGVkIHNob3Vs
ZCBub3QgYWZmZWN0IHRoZSBnZW5lcmF0ZWQgY29kZSBvZiBvdGhlciBidWlsdGlucy4KIAogLlBI
T05ZOiBmb3JjZQotSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfREVQRU5ERU5DSUVTX0xJU1QgOiAk
KEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9VcGRhdGVDb250ZW50cy5weSBmb3JjZQotCSQo
UFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9VcGRhdGVDb250ZW50cy5weSAn
JChKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTKSAkKEJVSUxUSU5TX0dFTkVSQVRPUl9T
Q1JJUFRTKScgJEAKK0phdmFTY3JpcHRDb3JlX0JVSUxUSU5TX0dFTkVSQVRPUl9ERVBFTkRFTkNJ
RVNfTElTVCA6ICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL1VwZGF0ZUNvbnRlbnRzLnB5
IGZvcmNlCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL1VwZGF0ZUNv
bnRlbnRzLnB5ICckKEJVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTKScgJEAKIAotSlNDQnVpbHRp
bnMuaDogJChCVUlMVElOU19HRU5FUkFUT1JfU0NSSVBUUykgJChKYXZhU2NyaXB0Q29yZV9CVUlM
VElOU19TT1VSQ0VTKSBKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19ERVBFTkRFTkNJRVNfTElTVAot
CSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9nZW5lcmF0ZS1qcy1idWls
dGlucy5weSAtLWNvbWJpbmVkIC0tb3V0cHV0LWRpcmVjdG9yeSAuIC0tZnJhbWV3b3JrIEphdmFT
Y3JpcHRDb3JlICQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFUykKK0phdmFTY3JpcHRD
b3JlX0JVSUxUSU5TX1NPVVJDRVNfREVQRU5ERU5DSUVTX0xJU1QgOiAkKEphdmFTY3JpcHRDb3Jl
X1NDUklQVFNfRElSKS9VcGRhdGVDb250ZW50cy5weSBmb3JjZQorCSQoUFlUSE9OKSAkKEphdmFT
Y3JpcHRDb3JlX1NDUklQVFNfRElSKS9VcGRhdGVDb250ZW50cy5weSAnJChKYXZhU2NyaXB0Q29y
ZV9CVUlMVElOU19TT1VSQ0VTKScgJEAKKworJUJ1aWx0aW5zLmggOiAlLmpzICQoQlVJTFRJTlNf
R0VORVJBVE9SX1NDUklQVFMpIEphdmFTY3JpcHRDb3JlX0JVSUxUSU5TX0dFTkVSQVRPUl9ERVBF
TkRFTkNJRVNfTElTVAorCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9n
ZW5lcmF0ZS1qcy1idWlsdGlucy5weSAtLW91dHB1dC1kaXJlY3RvcnkgLiAtLWZyYW1ld29yayBK
YXZhU2NyaXB0Q29yZSAkPAorCisjIEFkZGluZy9yZW1vdmluZy9tb2RpZnlpbmcgc2NyaXB0cyBv
ciBnZW5lcmF0b3IgZmlsZXMgc2hvdWxkIHJlZ2VuZXJhdGUgdGhlIGZyYW1ld29yayBtYWNyb3Mg
ZmlsZS4KKworSlNDQnVpbHRpbnNNYWNyb3MuaDogJChCVUlMVElOU19HRU5FUkFUT1JfU0NSSVBU
UykgJChKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTKSBKYXZhU2NyaXB0Q29yZV9CVUlM
VElOU19HRU5FUkFUT1JfREVQRU5ERU5DSUVTX0xJU1QgSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNf
U09VUkNFU19ERVBFTkRFTkNJRVNfTElTVAorCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlX1ND
UklQVFNfRElSKS9nZW5lcmF0ZS1qcy1idWlsdGlucy5weSAtLW1hY3Jvcy1vbmx5IC0tb3V0cHV0
LWRpcmVjdG9yeSAuIC0tZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlICQoSmF2YVNjcmlwdENvcmVf
QlVJTFRJTlNfU09VUkNFUykKKworYWxsOiAkKG5vdGRpciAkKEphdmFTY3JpcHRDb3JlX0JVSUxU
SU5TX1NPVVJDRVM6JS5qcz0lQnVpbHRpbnMuaCkpCiAKICMgUGVyZmVjdCBoYXNoIGxvb2t1cCB0
YWJsZXMgZm9yIEphdmFTY3JpcHQgY2xhc3Nlcy4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA4ZWU2Yzk5ZjA5ZDMxYmEzYTZjZjIyNTM2NTFhZDEwMGZhNGZmYzRkLi5iMGEyOWM0
OWQxMzM0M2JkZTIwZTRmMjBhMGFjNmEwYmQ5YjllNWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTIzNiwxNyArMTIzNiwzMyBAQAogCQk5OTZCNzMyNjFCREEwOEVGMDAzMzFC
ODQgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMxMjFCRDlGQTJDMDAzMzFCODQgLyogU3Ry
aW5nSXRlcmF0b3JQcm90b3R5cGUubHV0LmggKi87IH07CiAJCTk5NkI3MzI3MUJEQTA4RUYwMDMz
MUI4NCAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NkI3MzEzMUJEOUZBMkMwMDMzMUI4NCAvKiBTeW1ib2xD
b25zdHJ1Y3Rvci5sdXQuaCAqLzsgfTsKIAkJOTk2QjczMjgxQkRBMDhFRjAwMzMxQjg0IC8qIFN5
bWJvbFByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5NkI3MzE0MUJEOUZBMkMwMDMzMUI4NCAvKiBTeW1ib2xQcm90b3R5cGUubHV0
LmggKi87IH07CisJCTk5OTRFNUZEMUJEOUE5NzIwMEYyRDgzNSAvKiBBcnJheUNvbnN0cnVjdG9y
QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTk5NEU1RDkxQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5j
cHAgKi87IH07CisJCTk5OTRFNUZFMUJEOUE5NzIwMEYyRDgzNSAvKiBBcnJheUl0ZXJhdG9yUHJv
dG90eXBlQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTk5NEU1REIxQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5
cGVCdWlsdGlucy5jcHAgKi87IH07CisJCTk5OTRFNUZGMUJEOUE5NzIwMEYyRDgzNSAvKiBBcnJh
eVByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5OTRFNUREMUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJheVByb3RvdHlwZUJ1
aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk5NEU2MDAxQkQ5QTk3MjAwRjJEODM1IC8qIEZ1bmN0aW9u
UHJvdG90eXBlQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTk5NEU1REYxQkQ5QTkxMjAwRjJEODM1IC8qIEZ1bmN0aW9uUHJvdG90eXBl
QnVpbHRpbnMuY3BwICovOyB9OworCQk5OTk0RTYwMTFCRDlBOTcyMDBGMkQ4MzUgLyogR2xvYmFs
T2JqZWN0QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTk5NEU1RTExQkQ5QTkxMjAwRjJEODM1IC8qIEdsb2JhbE9iamVjdEJ1aWx0aW5z
LmNwcCAqLzsgfTsKKwkJOTk5NEU2MDIxQkQ5QTk3MjAwRjJEODM1IC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdEJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUUzMUJEOUE5MTIwMEYyRDgzNSAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25PYmplY3RCdWlsdGlucy5jcHAgKi87IH07CisJCTk5OTRFNjAzMUJEOUE5
NzIwMEYyRDgzNSAvKiBJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUU1MUJEOUE5
MTIwMEYyRDgzNSAvKiBJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLzsg
fTsKKwkJOTk5NEU2MDQxQkQ5QTk4QTAwRjJEODM1IC8qIEl0ZXJhdG9yUHJvdG90eXBlQnVpbHRp
bnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5
NEU1RTcxQkQ5QTkxMjAwRjJEODM1IC8qIEl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwICov
OyB9OworCQk5OTk0RTYwNTFCRDlBOThBMDBGMkQ4MzUgLyogTW9kdWxlTG9hZGVyT2JqZWN0QnVp
bHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTk5NEU1RTkxQkQ5QTkxMjAwRjJEODM1IC8qIE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmNw
cCAqLzsgfTsKKwkJOTk5NEU2MDYxQkQ5QTk4QTAwRjJEODM1IC8qIE9iamVjdENvbnN0cnVjdG9y
QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTk5NEU1RUIxQkQ5QTkxMjAwRjJEODM1IC8qIE9iamVjdENvbnN0cnVjdG9yQnVpbHRpbnMu
Y3BwICovOyB9OworCQk5OTk0RTYwNzFCRDlBOThBMDBGMkQ4MzUgLyogT3BlcmF0aW9uc1Byb21p
c2VCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTk0RTVFRDFCRDlBOTEyMDBGMkQ4MzUgLyogT3BlcmF0aW9uc1Byb21pc2VCdWlsdGlu
cy5jcHAgKi87IH07CisJCTk5OTRFNjA4MUJEOUE5OEEwMEYyRDgzNSAvKiBQcm9taXNlQ29uc3Ry
dWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OTk0RTVFRjFCRDlBOTEyMDBGMkQ4MzUgLyogUHJvbWlzZUNvbnN0cnVjdG9yQnVp
bHRpbnMuY3BwICovOyB9OworCQk5OTk0RTYwOTFCRDlBOThBMDBGMkQ4MzUgLyogUHJvbWlzZVBy
b3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5OTRFNUYxMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlUHJvdG90eXBlQnVp
bHRpbnMuY3BwICovOyB9OworCQk5OTk0RTYwQTFCRDlBOThBMDBGMkQ4MzUgLyogUmVmbGVjdE9i
amVjdEJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk5OTRFNUYzMUJEOUE5MTIwMEYyRDgzNSAvKiBSZWZsZWN0T2JqZWN0QnVpbHRpbnMu
Y3BwICovOyB9OworCQk5OTk0RTYwQjFCRDlBOThBMDBGMkQ4MzUgLyogU3RyaW5nQ29uc3RydWN0
b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTk0RTVGNTFCRDlBOTEyMDBGMkQ4MzUgLyogU3RyaW5nQ29uc3RydWN0b3JCdWlsdGlu
cy5jcHAgKi87IH07CisJCTk5OTRFNjBDMUJEOUE5OEEwMEYyRDgzNSAvKiBTdHJpbmdJdGVyYXRv
clByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5OTRFNUY3MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdJdGVyYXRvclBy
b3RvdHlwZUJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk5NEU2MEQxQkQ5QTk4QTAwRjJEODM1IC8q
IFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUY5MUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBl
ZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi87IH07CisJCTk5OTRFNjBFMUJEOUE5OEEw
MEYyRDgzNSAvKiBUeXBlZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5NEU1RkIxQkQ5QTkxMjAwRjJEODM1
IC8qIFR5cGVkQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgKi87IH07CiAJCTk5Q0MwQjYyMThC
RTk5NDYwMDZDRUJDQyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5IGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNDVBMUUxOEEx
QjFFNzAwMjZEODhGIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHNUZW1wbGF0ZXMucHkgKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlDQzBCNjMx
OEJFOTk1MDAwNkNFQkNDIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkgaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU0NUExRDE4QTFCMUU3MDAy
NkQ4OEYgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OURBMDBBMzFCRDU5OTMxMDBGNDU3NUMg
LyogYnVpbHRpbnNfZ2VuZXJhdG9yLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTlEQTAwOUExQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVy
YXRvci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5OURBMDBBNDFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfbW9kZWwucHkgaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDA5QjFCRDU5OTI3MDBG
NDU3NUMgLyogYnVpbHRpbnNfbW9kZWwucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlEQTAwQTUxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5z
X3RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5REEwMDlDMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc190ZW1wbGF0ZXMucHkgKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlEQTAwQTYx
QkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEQTAwOUQxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5z
LnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk5
REEwMEE3MUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFk
ZXIucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURB
MDA5RTFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVy
LnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk5
REEwMEE4MUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBs
ZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5REEwMDlGMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5l
ZF9pbXBsZW1lbnRhdGlvbi5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQk5OURBMDBBOTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJh
dGVfc2VwYXJhdGVfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTlEQTAwQTAxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRl
X3NlcGFyYXRlX2hlYWRlci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQk5OURBMDBBQTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJh
dGVfc2VwYXJhdGVfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDBBMTFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNf
Z2VuZXJhdGVfc2VwYXJhdGVfaW1wbGVtZW50YXRpb24ucHkgKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTlEQTAwQUIxQkQ1OTkzMTAwRjQ1NzVDIC8q
IGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkgaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDBBMjFCRDU5OTI3MDBGNDU3NUMgLyog
YnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBlci5weSAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5OURBMDBBOTFCRDU5OTMxMDBGNDU3NUMg
LyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRlci5weSBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5REEwMEEwMUJENTk5MjcwMEY0NTc1QyAvKiBi
dWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaGVhZGVyLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5REEwMEFBMUJENTk5MzEwMEY0NTc1QyAvKiBi
dWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDBBMTFCRDU5OTI3MDBGNDU3NUMg
LyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5ICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5REEwMEFCMUJENTk5MzEw
MEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5weSBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5REEwMEEyMUJENTk5MjcwMEY0
NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5weSAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OURBMDBBRjFCRDU5OTRFMDBG
NDU3NUMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDBBQzFCRDU5OTNFMDBGNDU3NUMgLyogZ2VuZXJh
dGUtanMtYnVpbHRpbnMucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTlEQTAwQjAxQkQ1OTk0RTAwRjQ1NzVDIC8qIGxhenl3cml0ZXIucHkgaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDBBRDFCRDU5
OTNFMDBGNDU3NUMgLyogbGF6eXdyaXRlci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5OURBMDBCMTFCRDU5OTRFMDBGNDU3NUMgLyogVXBkYXRl
Q29udGVudHMucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OURBMDBBRTFCRDU5OTNFMDBGNDU3NUMgLyogVXBkYXRlQ29udGVudHMucHkgKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyNTUsNiArMTI3MSw3
IEBACiAJCTk5RTQ1QTI2MThBMUIyNTkwMDI2RDg4RiAvKiBFbmNvZGVkVmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTQ1QTIxMThBMUIyNTkw
MDI2RDg4RiAvKiBFbmNvZGVkVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5OUU0NUEyNzE4QTFCMjU5MDAyNkQ4OEYgLyogSW5wdXRDdXJz
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTQ1
QTIyMThBMUIyNTkwMDI2RDg4RiAvKiBJbnB1dEN1cnNvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5RTQ1QTI4MThBMUIyNTkwMDI2RDg4RiAv
KiBOb25kZXRlcm1pbmlzdGljSW5wdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5RTQ1QTIzMThBMUIyNTkwMDI2RDg4RiAvKiBOb25kZXRlcm1pbmlz
dGljSW5wdXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5OUU5ODU5QTFCREQ5RUQ1MDA2Q0REMEUgLyogYnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3
b3JrX21hY3Jvcy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5RTk4NTk5MUJERDlFQ0EwMDZDREQwRSAvKiBidWlsdGluc19nZW5lcmF0ZV9mcmFtZXdv
cmtfbWFjcm9zLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTk5RjFBNkZFMUI4RTZEOTQwMDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVuZFJvdXRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUYx
QTZGQzFCOEU2RDk0MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwICovOyB9
OwogCQk5OUYxQTcwMTFCOThGQkVDMDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RjFBNzAw
MUI5OEZCRUMwMDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlFNzI5NDA3MTkwRjAxQTUw
MDFBOTFCNSAvKiBJbml0aWFsaXplVGhyZWFkaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzg2MzZDMEQ5QkVFQzMwMEQ3NEU3NSAvKiBJbml0
aWFsaXplVGhyZWFkaW5nLmNwcCAqLzsgfTsKQEAgLTE1NTIsOCArMTU2OSw2IEBACiAJCUE3Q0Ez
QUVDMTdEQTUxNjgwMDY1MzhBRiAvKiBXZWFrTWFwRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdDQTNBRUExN0RBNTE2ODAwNjUzOEFGIC8qIFdl
YWtNYXBEYXRhLmggKi87IH07CiAJCUE3RDgwMUE0MTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGlu
RXhlY3V0YWJsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdEODAxQTExODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0aW5FeGVjdXRhYmxlcy5jcHAg
Ki87IH07CiAJCUE3RDgwMUE1MTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDgwMUEy
MTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBN0Q4MDFBODE4ODBENkE4MDAyNkMz
OUIgLyogSlNDQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTdEODAxQTYxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmNwcCAq
LzsgfTsKLQkJQTdEODAxQTkxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q4MDFBNzE4ODBENkE4
MDAyNkMzOUIgLyogSlNDQnVpbHRpbnMuaCAqLzsgfTsKIAkJQTdEODlDRjIxN0EwQjhDQzAwNzcz
QUQ4IC8qIERGR0Jhc2ljQmxvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdEODlDRTMxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jhc2ljQmxvY2su
Y3BwICovOyB9OwogCQlBN0Q4OUNGMzE3QTBCOENDMDA3NzNBRDggLyogREZHQmxvY2tJbnNlcnRp
b25TZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTdEODlDRTQxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcCAqLzsg
fTsKIAkJQTdEODlDRjQxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9uU2V0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q4OUNFNTE3
QTBCOENDMDA3NzNBRDggLyogREZHQmxvY2tJbnNlcnRpb25TZXQuaCAqLzsgfTsKQEAgLTMxNjQs
MTYgKzMxNzksNTEgQEAKIAkJOTk2QjczMTQxQkQ5RkEyQzAwMzMxQjg0IC8qIFN5bWJvbFByb3Rv
dHlwZS5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ltYm9sUHJvdG90
eXBlLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZCNzMxNTFCREEwNUFB
MDAzMzFCODQgLyogQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTk2QjczMTYxQkRBMDVBQTAwMzMxQjg0IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5
cGUubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQ
cm90b3R5cGUubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUQ5MUJE
OUE5MTIwMEYyRDgzNSAvKiBBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1REExQkQ5QTkxMjAwRjJEODM1IC8q
IEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTk5NEU1REIxQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGVC
dWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcnJheUl0
ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5OTk0RTVEQzFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZUJ1aWx0
aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90
b3R5cGVCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVERDFC
RDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1REUxQkQ5QTkxMjAwRjJEODM1IC8qIEFy
cmF5UHJvdG90eXBlQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXJyYXlQcm90b3R5cGVCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTk0RTVERjFCRDlBOTEyMDBGMkQ4MzUgLyogRnVuY3Rpb25Qcm90b3R5cGVCdWlsdGlucy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGdW5jdGlvblByb3RvdHlwZUJ1
aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTAxQkQ5QTkx
MjAwRjJEODM1IC8qIEZ1bmN0aW9uUHJvdG90eXBlQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRnVuY3Rpb25Qcm90b3R5cGVCdWlsdGlucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFMTFCRDlBOTEyMDBGMkQ4MzUgLyogR2xvYmFsT2Jq
ZWN0QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2xv
YmFsT2JqZWN0QnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0
RTVFMjFCRDlBOTEyMDBGMkQ4MzUgLyogR2xvYmFsT2JqZWN0QnVpbHRpbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2xvYmFsT2JqZWN0QnVpbHRpbnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTMxQkQ5QTkxMjAwRjJEODM1IC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdEJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdEJ1aWx0aW5zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTQxQkQ5QTkxMjAwRjJEODM1
IC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdEJ1aWx0aW5zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdEJ1aWx0
aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUU1MUJEOUE5MTIwMEYy
RDgzNSAvKiBJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yQnVp
bHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFNjFCRDlBOTEy
MDBGMkQ4MzUgLyogSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0
aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUU3MUJEOUE5MTIwMEYy
RDgzNSAvKiBJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFODFCRDlBOTEyMDBGMkQ4MzUgLyogSXRlcmF0
b3JQcm90b3R5cGVCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
dGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk5OTRFNUU5MUJEOUE5MTIwMEYyRDgzNSAvKiBNb2R1bGVMb2FkZXJPYmplY3RCdWlsdGlucy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVMb2FkZXJPYmpl
Y3RCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUVBMUJE
OUE5MTIwMEYyRDgzNSAvKiBNb2R1bGVMb2FkZXJPYmplY3RCdWlsdGlucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXJPYmplY3RCdWlsdGlucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFQjFCRDlBOTEyMDBGMkQ4MzUgLyogT2Jq
ZWN0Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTk5NEU1RUMxQkQ5QTkxMjAwRjJEODM1IC8qIE9iamVjdENvbnN0cnVjdG9y
QnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT2JqZWN0Q29uc3Ry
dWN0b3JCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFRDFC
RDlBOTEyMDBGMkQ4MzUgLyogT3BlcmF0aW9uc1Byb21pc2VCdWlsdGlucy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPcGVyYXRpb25zUHJvbWlzZUJ1aWx0aW5zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RUUxQkQ5QTkxMjAwRjJEODM1
IC8qIE9wZXJhdGlvbnNQcm9taXNlQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gT3BlcmF0aW9uc1Byb21pc2VCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5OTk0RTVFRjFCRDlBOTEyMDBGMkQ4MzUgLyogUHJvbWlzZUNvbnN0cnVjdG9y
QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvbWlz
ZUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTk0RTVGMDFCRDlBOTEyMDBGMkQ4MzUgLyogUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRp
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RjExQkQ5QTkxMjAwRjJE
ODM1IC8qIFByb21pc2VQcm90b3R5cGVCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQcm9taXNlUHJvdG90eXBlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVGMjFCRDlBOTEyMDBGMkQ4MzUgLyogUHJvbWlzZVBy
b3RvdHlwZUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb21p
c2VQcm90b3R5cGVCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0
RTVGMzFCRDlBOTEyMDBGMkQ4MzUgLyogUmVmbGVjdE9iamVjdEJ1aWx0aW5zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZmxlY3RPYmplY3RCdWlsdGlucy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUY0MUJEOUE5MTIwMEYyRDgzNSAv
KiBSZWZsZWN0T2JqZWN0QnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVmbGVjdE9iamVjdEJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk5OTRFNUY1MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdDb25zdHJ1Y3RvckJ1aWx0aW5zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0NvbnN0cnVjdG9y
QnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVGNjFCRDlB
OTEyMDBGMkQ4MzUgLyogU3RyaW5nQ29uc3RydWN0b3JCdWlsdGlucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdDb25zdHJ1Y3RvckJ1aWx0aW5zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUY3MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdJ
dGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVGODFCRDlBOTEyMDBGMkQ4MzUgLyogU3RyaW5nSXRl
cmF0b3JQcm90b3R5cGVCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdHJpbmdJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5OTRFNUY5MUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5Q29uc3RydWN0
b3JCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBl
ZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk5OTRFNUZBMUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5Q29uc3RydWN0b3JCdWls
dGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlZEFycmF5Q29uc3Ry
dWN0b3JCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVGQjFC
RDlBOTEyMDBGMkQ4MzUgLyogVHlwZWRBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkQXJyYXlQcm90b3R5cGVCdWlsdGlu
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUZDMUJEOUE5MTIwMEYy
RDgzNSAvKiBUeXBlZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwZWRBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNjBGMUJEOUFFQjIwMEYyRDgzNSAvKiBKU0NCdWlsdGlu
c01hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NCdWlsdGluc01h
Y3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OURBMDA5OTFCRDU5OTI3MDBG
NDU3NUMgLyogX19pbml0X18ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGgg
PSBfX2luaXRfXy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlEQTAwOUExQkQ1
OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRvci5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9IGJ1aWx0aW5zX2dlbmVyYXRvci5weTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTlEQTAwOUIxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX21vZGVs
LnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gYnVpbHRpbnNfbW9kZWwu
cHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5REEwMDlDMUJENTk5MjcwMEY0NTc1
QyAvKiBidWlsdGluc190ZW1wbGF0ZXMucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247
IHBhdGggPSBidWlsdGluc190ZW1wbGF0ZXMucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk5REEwMDlEMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGlucy5weSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGJ1aWx0aW5zLnB5OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk5OURBMDA5RTFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVf
Y29tYmluZWRfaGVhZGVyLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0g
YnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk5OURBMDA5RjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVf
Y29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247
IHBhdGggPSBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTlEQTAwQTAxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1
aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0
LnB5dGhvbjsgcGF0aCA9IGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTlEQTAwQTExQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1
aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaW1wbGVt
ZW50YXRpb24ucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5REEwMEEyMUJENTk5
MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVyLnB5ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJh
dGVfd3JhcHBlci5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlEQTAwQTAxQkQ1
OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBidWlsdGluc19nZW5lcmF0ZV9vYmplY3Rf
aGVhZGVyLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OURBMDBBMTFCRDU5OTI3
MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gYnVpbHRpbnNfZ2VuZXJhdGVfb2Jq
ZWN0X2ltcGxlbWVudGF0aW9uLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OURB
MDBBMjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X3dyYXBwZXIu
cHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBidWlsdGluc19nZW5lcmF0
ZV9vYmplY3Rfd3JhcHBlci5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlEQTAw
QUMxQkQ1OTkzRTAwRjQ1NzVDIC8qIGdlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gImdlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5Ijsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlEQTAwQUQxQkQ1OTkzRTAwRjQ1NzVDIC8qIGxh
enl3cml0ZXIucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBsYXp5d3Jp
dGVyLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OURBMDBBRTFCRDU5OTNFMDBG
NDU3NUMgLyogVXBkYXRlQ29udGVudHMucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247
IHBhdGggPSBVcGRhdGVDb250ZW50cy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMxODQsNiArMzIzNCw3IEBACiAJCTk5RTQ1QTIxMThBMUIyNTkwMDI2RDg4RiAvKiBFbmNvZGVk
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW5jb2RlZFZhbHVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RTQ1QTIyMThBMUIyNTkwMDI2RDg4RiAv
KiBJbnB1dEN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnB1dEN1
cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU0NUEyMzE4QTFCMjU5MDAy
NkQ4OEYgLyogTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5vbmRldGVybWluaXN0aWNJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5OUU5ODU5OTFCREQ5RUNBMDA2Q0REMEUgLyogYnVpbHRpbnNfZ2VuZXJhdGVfZnJh
bWV3b3JrX21hY3Jvcy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGJ1
aWx0aW5zX2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk5RjFBNkZDMUI4RTZEOTQwMDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVuZFJv
dXRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JG
cm9udGVuZFJvdXRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RjFBNzAw
MUI5OEZCRUMwMDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjQ5NTRFODFBNjY0MERCMDAyODE1QTYgLyogUGFyc2Vy
RnVuY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcnNlckZ1bmN0aW9uSW5mby5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQ3OCw4ICszNTI5LDYgQEAKIAkJQTdEODAxQTAx
ODgwRDY2RTAwMjZDMzlCIC8qIEFycmF5LnByb3RvdHlwZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgcGF0aCA9IEFycmF5LnByb3RvdHlwZS5qczsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTdEODAxQTExODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0aW5FeGVjdXRh
Ymxlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdWlsdGluRXhl
Y3V0YWJsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q4MDFBMjE4ODBE
NjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEJ1aWx0aW5FeGVjdXRhYmxlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBN0Q4MDFBNjE4ODBENkE4MDAyNkMzOUIgLyogSlNDQnVpbHRpbnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDQnVpbHRpbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBN0Q4MDFBNzE4ODBENkE4MDAyNkMzOUIgLyogSlNDQnVp
bHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDQnVpbHRpbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdEODlDRTMxN0EwQjhDQzAwNzczQUQ4IC8q
IERGR0Jhc2ljQmxvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
REZHQmFzaWNCbG9jay5jcHA7IHBhdGggPSBkZmcvREZHQmFzaWNCbG9jay5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDg5Q0U0MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCbG9j
a0luc2VydGlvblNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBE
RkdCbG9ja0luc2VydGlvblNldC5jcHA7IHBhdGggPSBkZmcvREZHQmxvY2tJbnNlcnRpb25TZXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q4OUNFNTE3QTBCOENDMDA3NzNB
RDggLyogREZHQmxvY2tJbnNlcnRpb25TZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gREZHQmxvY2tJbnNlcnRpb25TZXQuaDsgcGF0aCA9IGRmZy9ERkdCbG9ja0luc2VydGlv
blNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzg2Myw5ICszOTEyLDkgQEAK
IAkJMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5MzJGNUJFMTA4MjJBMUM3MDA3MzY5NzUg
LyoganNjICovLAogCQkJCTBGRjkyMkNGMTRGNDZCMTMwMDQxQTI0RSAvKiBKU0NMTEludE9mZnNl
dHNFeHRyYWN0b3IgKi8sCiAJCQkJOTMyRjVCRDkwODIyQTFDNzAwNzM2OTc1IC8qIEphdmFTY3Jp
cHRDb3JlLmZyYW1ld29yayAqLywKKwkJCQk5MzJGNUJFMTA4MjJBMUM3MDA3MzY5NzUgLyoganNj
ICovLAogCQkJCTBGQ0VGQUI2MTgwNUQ2MTYwMDQ3MkNFNCAvKiBsaWJsbHZtRm9ySlNDLmR5bGli
ICovLAogCQkJCTE0MTIxMTIwMEE0ODc5M0MwMDQ4MDI1NSAvKiBtaW5pZG9tICovLAogCQkJCTE0
QkQ1OUJGMEEzRThGOTAwMEJBRjU5QyAvKiB0ZXN0YXBpICovLApAQCAtNDUzNCwxMyArNDU4Mywy
MyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk5OTZCNzMxNTFC
REEwNUFBMDAzMzFCODQgLyogQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaCAqLywKKwkJCQk5OTk0RTVE
OTFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLywKKwkJ
CQk5OTk0RTVEQTFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmgg
Ki8sCiAJCQkJOTk2QjczMTYxQkRBMDVBQTAwMzMxQjg0IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5
cGUubHV0LmggKi8sCisJCQkJOTk5NEU1REIxQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5SXRlcmF0
b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1REMxQkQ5QTkxMjAwRjJEODM1
IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5oICovLAorCQkJCTk5OTRFNUREMUJE
OUE5MTIwMEYyRDgzNSAvKiBBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0
RTVERTFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5oICovLAogCQkJ
CTk5NkI3MzA3MUJEOUZBMkMwMDMzMUI4NCAvKiBCb29sZWFuUHJvdG90eXBlLmx1dC5oICovLAog
CQkJCTY1MTRGMjE3MThCM0UxNjcwMDk4RkY4QiAvKiBCeXRlY29kZXMuaCAqLywKIAkJCQlBNTMy
NDM5NTE4NTZBNDc1MDAyRUQ2OTIgLyogQ29tYmluZWREb21haW5zLmpzb24gKi8sCiAJCQkJOTk2
QjczMDgxQkQ5RkEyQzAwMzMxQjg0IC8qIERhdGVDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQlC
Q0QyMDNFNzBFMTcxOEY0MDAyQzdFODIgLyogRGF0ZVByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQk5
OTZCNzMwOTFCRDlGQTJDMDAzMzFCODQgLyogRXJyb3JQcm90b3R5cGUubHV0LmggKi8sCisJCQkJ
OTk5NEU1REYxQkQ5QTkxMjAwRjJEODM1IC8qIEZ1bmN0aW9uUHJvdG90eXBlQnVpbHRpbnMuY3Bw
ICovLAorCQkJCTk5OTRFNUUwMUJEOUE5MTIwMEYyRDgzNSAvKiBGdW5jdGlvblByb3RvdHlwZUJ1
aWx0aW5zLmggKi8sCisJCQkJOTk5NEU1RTExQkQ5QTkxMjAwRjJEODM1IC8qIEdsb2JhbE9iamVj
dEJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVFMjFCRDlBOTEyMDBGMkQ4MzUgLyogR2xvYmFs
T2JqZWN0QnVpbHRpbnMuaCAqLywKIAkJCQk2NTE0RjIxODE4QjNFMTY3MDA5OEZGOEIgLyogSW5p
dEJ5dGVjb2Rlcy5hc20gKi8sCiAJCQkJQTUxM0U1QzYxODVGOTQzNjAwN0U5NUFEIC8qIEluamVj
dGVkU2NyaXB0U291cmNlLmggKi8sCiAJCQkJQTVFQTcxMEQxOUY2REY4MTAwOThGNUVDIC8qIElu
c3BlY3RvckFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVycy5oICovLApAQCAtNDU1MCwxNiArNDYw
OSwyMSBAQAogCQkJCUE1MzI0MzgzMTg1NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVu
ZERpc3BhdGNoZXJzLmNwcCAqLywKIAkJCQlBNTMyNDM4NDE4NTY4MzE3MDAyRUQ2OTIgLyogSW5z
cGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oICovLAogCQkJCUUzM0IzRTI1MUI3QUJENzUwMDQ4
REIyRSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggKi8sCisJCQkJOTk5
NEU1RTMxQkQ5QTkxMjAwRjJEODM1IC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdEJ1
aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVFNDFCRDlBOTEyMDBGMkQ4MzUgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuaCAqLywKIAkJCQlBNTMyNDM4NTE4NTY4MzE3
MDAyRUQ2OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcCAqLywKIAkJCQlBNTMyNDM4
NjE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmggKi8sCisJCQkJ
OTk5NEU1RTUxQkQ5QTkxMjAwRjJEODM1IC8qIEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yQnVp
bHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUU2MUJEOUE5MTIwMEYyRDgzNSAvKiBJbnRlcm5hbFBy
b21pc2VDb25zdHJ1Y3RvckJ1aWx0aW5zLmggKi8sCiAJCQkJQTE4MTkzRTExQjRFMENEQjAwRkMx
MDI5IC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmx1dC5oICovLAogCQkJCUExODE5M0UyMUI0
RTBDREIwMEZDMTAyOSAvKiBJbnRsQ29sbGF0b3JQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJQTE1
ODdENzMxQjREQzFDNjAwRDY5ODQ5IC8qIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmx1
dC5oICovLAogCQkJCUExNTg3RDc0MUI0REMxQzYwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJQTEyNTg0NkMxQjQ1QTM2MDAwQ0M3RjZDIC8qIElu
dGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQlBMTI1ODQ2RDFCNDVBMzYw
MDBDQzdGNkMgLyogSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5sdXQuaCAqLywKLQkJCQlBN0Q4
MDFBNjE4ODBENkE4MDAyNkMzOUIgLyogSlNDQnVpbHRpbnMuY3BwICovLAotCQkJCUE3RDgwMUE3
MTg4MEQ2QTgwMDI2QzM5QiAvKiBKU0NCdWlsdGlucy5oICovLAorCQkJCTk5OTRFNUU3MUJEOUE5
MTIwMEYyRDgzNSAvKiBJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0
RTVFODFCRDlBOTEyMDBGMkQ4MzUgLyogSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5oICovLAor
CQkJCTk5OTRFNjBGMUJEOUFFQjIwMEYyRDgzNSAvKiBKU0NCdWlsdGluc01hY3Jvcy5oICovLAog
CQkJCTk5NkI3MzBBMUJEOUZBMkMwMDMzMUI4NCAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmx1dC5o
ICovLAogCQkJCTk5NkI3MzBCMUJEOUZBMkMwMDMzMUI4NCAvKiBKU0dsb2JhbE9iamVjdC5sdXQu
aCAqLywKIAkJCQlFMzNGNTA4NjFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VD
b25zdHJ1Y3Rvci5sdXQuaCAqLywKQEAgLTQ1NzEsMTggKzQ2MzUsMzggQEAKIAkJCQlBN0MyMjVD
RDEzOTk4NDlDMDBGRjE2NjIgLyogS2V5d29yZExvb2t1cC5oICovLAogCQkJCUJDMThDNTJEMEUx
NkZDRTEwMEIzNDQ2MCAvKiBMZXhlci5sdXQuaCAqLywKIAkJCQk5OTZCNzMwQzFCRDlGQTJDMDAz
MzFCODQgLyogTW9kdWxlTG9hZGVyT2JqZWN0Lmx1dC5oICovLAorCQkJCTk5OTRFNUU5MUJEOUE5
MTIwMEYyRDgzNSAvKiBNb2R1bGVMb2FkZXJPYmplY3RCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5
NEU1RUExQkQ5QTkxMjAwRjJEODM1IC8qIE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmggKi8s
CiAJCQkJQkMyNjgwRTYwRTE2RDUyMzAwQTA2RTkyIC8qIE51bWJlckNvbnN0cnVjdG9yLmx1dC5o
ICovLAogCQkJCTk5NkI3MzBEMUJEOUZBMkMwMDMzMUI4NCAvKiBOdW1iZXJQcm90b3R5cGUubHV0
LmggKi8sCiAJCQkJOTk2QjczMEUxQkQ5RkEyQzAwMzMxQjg0IC8qIE9iamVjdENvbnN0cnVjdG9y
Lmx1dC5oICovLAorCQkJCTk5OTRFNUVCMUJEOUE5MTIwMEYyRDgzNSAvKiBPYmplY3RDb25zdHJ1
Y3RvckJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVFQzFCRDlBOTEyMDBGMkQ4MzUgLyogT2Jq
ZWN0Q29uc3RydWN0b3JCdWlsdGlucy5oICovLAorCQkJCTk5OTRFNUVEMUJEOUE5MTIwMEYyRDgz
NSAvKiBPcGVyYXRpb25zUHJvbWlzZUJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVFRTFCRDlB
OTEyMDBGMkQ4MzUgLyogT3BlcmF0aW9uc1Byb21pc2VCdWlsdGlucy5oICovLAorCQkJCTk5OTRF
NUVGMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8s
CisJCQkJOTk5NEU1RjAxQkQ5QTkxMjAwRjJEODM1IC8qIFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0
aW5zLmggKi8sCisJCQkJOTk5NEU1RjExQkQ5QTkxMjAwRjJEODM1IC8qIFByb21pc2VQcm90b3R5
cGVCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RjIxQkQ5QTkxMjAwRjJEODM1IC8qIFByb21p
c2VQcm90b3R5cGVCdWlsdGlucy5oICovLAogCQkJCTk5NkI3MzBGMUJEOUZBMkMwMDMzMUI4NCAv
KiBSZWZsZWN0T2JqZWN0Lmx1dC5oICovLAorCQkJCTk5OTRFNUYzMUJEOUE5MTIwMEYyRDgzNSAv
KiBSZWZsZWN0T2JqZWN0QnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUY0MUJEOUE5MTIwMEYy
RDgzNSAvKiBSZWZsZWN0T2JqZWN0QnVpbHRpbnMuaCAqLywKIAkJCQlCQ0QyMDJENTBFMTcwNzA4
MDAyQzdFODIgLyogUmVnRXhwQ29uc3RydWN0b3IubHV0LmggKi8sCiAJCQkJQTcxOEY2MUExMTc1
NEEyMTAwMjQ2NUE3IC8qIFJlZ0V4cEppdFRhYmxlcy5oICovLAogCQkJCTk5NkI3MzEwMUJEOUZB
MkMwMDMzMUI4NCAvKiBSZWdFeHBQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJOTk2QjczMTExQkQ5
RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmx1dC5oICovLAorCQkJCTk5OTRFNUY1
MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLywKKwkJ
CQk5OTk0RTVGNjFCRDlBOTEyMDBGMkQ4MzUgLyogU3RyaW5nQ29uc3RydWN0b3JCdWlsdGlucy5o
ICovLAogCQkJCTk5NkI3MzEyMUJEOUZBMkMwMDMzMUI4NCAvKiBTdHJpbmdJdGVyYXRvclByb3Rv
dHlwZS5sdXQuaCAqLywKKwkJCQk5OTk0RTVGNzFCRDlBOTEyMDBGMkQ4MzUgLyogU3RyaW5nSXRl
cmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RjgxQkQ5QTkxMjAwRjJE
ODM1IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaCAqLywKIAkJCQk5OTZCNzMx
MzFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggKi8sCiAJCQkJOTk2
QjczMTQxQkQ5RkEyQzAwMzMxQjg0IC8qIFN5bWJvbFByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQk1
RDUzNzI3RDBFMUM1NUVDMDAyMUU1NDkgLyogVHJhY2luZ0R0cmFjZS5oICovLAorCQkJCTk5OTRF
NUY5MUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAg
Ki8sCisJCQkJOTk5NEU1RkExQkQ5QTkxMjAwRjJEODM1IC8qIFR5cGVkQXJyYXlDb25zdHJ1Y3Rv
ckJ1aWx0aW5zLmggKi8sCisJCQkJOTk5NEU1RkIxQkQ5QTkxMjAwRjJEODM1IC8qIFR5cGVkQXJy
YXlQcm90b3R5cGVCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RkMxQkQ5QTkxMjAwRjJEODM1
IC8qIFR5cGVkQXJyYXlQcm90b3R5cGVCdWlsdGlucy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSAi
RGVyaXZlZCBTb3VyY2VzIjsKIAkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29y
ZTsKQEAgLTU4MTcsMTEgKzU5MDEsMTAgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTk5REEwMDk5
MUJENTk5MjcwMEY0NTc1QyAvKiBfX2luaXRfXy5weSAqLywKIAkJCQk5OURBMDA5RDFCRDU5OTI3
MDBGNDU3NUMgLyogYnVpbHRpbnMucHkgKi8sCi0JCQkJOTlEQTAwOUUxQkQ1OTkyNzAwRjQ1NzVD
IC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSAqLywKLQkJCQk5OURBMDA5
RjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50
YXRpb24ucHkgKi8sCi0JCQkJOTlEQTAwQTAxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dl
bmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weSAqLywKLQkJCQk5OURBMDBBMTFCRDU5OTI3MDBGNDU3
NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaW1wbGVtZW50YXRpb24ucHkgKi8sCi0J
CQkJOTlEQTAwQTIxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRl
X3dyYXBwZXIucHkgKi8sCisJCQkJOTlFOTg1OTkxQkREOUVDQTAwNkNERDBFIC8qIGJ1aWx0aW5z
X2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHkgKi8sCisJCQkJOTlEQTAwQTAxQkQ1OTkyNzAw
RjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkgKi8sCisJCQkJOTlE
QTAwQTExQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9pbXBsZW1l
bnRhdGlvbi5weSAqLywKKwkJCQk5OURBMDBBMjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNf
Z2VuZXJhdGVfb2JqZWN0X3dyYXBwZXIucHkgKi8sCiAJCQkJOTlEQTAwOUExQkQ1OTkyNzAwRjQ1
NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRvci5weSAqLywKIAkJCQk5OURBMDA5QjFCRDU5OTI3MDBG
NDU3NUMgLyogYnVpbHRpbnNfbW9kZWwucHkgKi8sCiAJCQkJOTlEQTAwOUMxQkQ1OTkyNzAwRjQ1
NzVDIC8qIGJ1aWx0aW5zX3RlbXBsYXRlcy5weSAqLywKQEAgLTYxMDQsOCArNjE4NywxMCBAQAog
CQkJCTBGRkM5OUQ1MTg0RUUzMTgwMDlDMTBBQiAvKiBBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNo
cG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QThBRjM3MTdBREI1RjMwMDVBQjE3NCAvKiBB
cnJheUJ1ZmZlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0U2MEUxNkY1Q0QwMEIz
NDQ2MCAvKiBBcnJheUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxNzFC
REEwNjdGMDAzMzFCODQgLyogQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQjdGMzk1MTVFRDhFNDYwMEYxNjdCMiAvKiBBcnJheUNvbnZlbnRpb25zLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBN0JEQUVDOTE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclBy
b3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMTgxQkRBMDY4MDAwMzMxQjg0IC8q
IEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYzOTQ1
NTE1RDA3MDU3MDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzNFNzBFMTZGNUNEMDBCMzQ0NjAgLyogQXJyYXlQcm90b3R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQjdGMzk2MTVFRDhFNDYwMEYxNjdCMiAvKiBBcnJheVN0b3JhZ2UuaCBpbiBIZWFk
ZXJzICovLApAQCAtNjEyMCwxNSArNjIwNSwxNSBAQAogCQkJCTg2NjczOUQyMTNCRkRFNzEwMDIz
RDg3QyAvKiBCaWdJbnRlZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY0QjI3MjFBNzg0QkFG
MDA2RTRFNjYgLyogQmluYXJ5U3dpdGNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNFQzBF
MTZGNUNEMDBCMzQ0NjAgLyogQm9vbGVhbk9iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2
QjczMTkxQkRBMDY4MDAwMzMxQjg0IC8qIEJvb2xlYW5Qcm90b3R5cGUubHV0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRUEwODYyMDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTdEODAxQTUxODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0aW5FeGVjdXRh
Ymxlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc1RUU5QjIxOEFBQjdFMjAwQUFEMDQzIC8qIEJ1
aWx0aW5OYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQTYxQkQ1OTkzMTAwRjQ1NzVD
IC8qIGJ1aWx0aW5zLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJOTlEQTAwQTcxQkQ1OTkzMTAwRjQ1
NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSBpbiBIZWFkZXJzICov
LAotCQkJCTk5REEwMEE4MUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21i
aW5lZF9pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAotCQkJCTk5REEwMEE5MUJENTk5
MzEwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkgaW4gSGVh
ZGVycyAqLywKLQkJCQk5OURBMDBBQTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJh
dGVfc2VwYXJhdGVfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKLQkJCQk5OURBMDBB
QjFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBlci5w
eSBpbiBIZWFkZXJzICovLAorCQkJCTk5RTk4NTlBMUJERDlFRDUwMDZDREQwRSAvKiBidWlsdGlu
c19nZW5lcmF0ZV9mcmFtZXdvcmtfbWFjcm9zLnB5IGluIEhlYWRlcnMgKi8sCisJCQkJOTlEQTAw
QTkxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkg
aW4gSGVhZGVycyAqLywKKwkJCQk5OURBMDBBQTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNf
Z2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCisJCQkJOTlE
QTAwQUIxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF93cmFwcGVy
LnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQTMxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0
aW5zX2dlbmVyYXRvci5weSBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEE0MUJENTk5MzEwMEY0
NTc1QyAvKiBidWlsdGluc19tb2RlbC5weSBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEE1MUJE
NTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc190ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLywKQEAg
LTYxODEsMTUgKzYyNjYsMTIgQEAKIAkJCQkwRkQ4MkUzOTE0MUFCMTREMDAxNzlDOTQgLyogQ29t
cGFjdEpJVENvZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RTVBM0E4MTc5NzQzMkQwMEU4
OTNDMCAvKiBDb21waWxhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRjQw
RTE2RjVDRDAwQjM0NDYwIC8qIENvbXBsZXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3
MzFEMUJEQTA4RUYwMDMzMUI4NCAvKiBKU0dsb2JhbE9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTk5NkI3MzFGMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VQcm90b3R5cGUubHV0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZGQzc1MTE5NjExMEE4MDBFMUQwMkQgLyogQ29tcGxl
eEdldFN0YXR1cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQjJDRUExNzQ4OTZDNzAwN0IzQzFC
IC8qIENvbmN1cnJlbnRKSVRMb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNGNTBFMTZG
NUNEMDBCMzQ0NjAgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDQ4MzZFNzEzMkRB
N0JFMDA1QkU3ODUgLyogQ29uc2VydmF0aXZlUm9vdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
M0NFMDhBMThCQzIxQzMwMEJFREY3NiAvKiBDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNUZEMDA3QTE4OUIwNTEwMDA2MzMyMzEgLyogQ29uc29sZU1lc3NhZ2UuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTk5NkI3MzE5MUJEQTA2ODAwMDMzMUI4NCAvKiBCb29sZWFuUHJvdG90eXBl
Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzQ0UwODYxOEJDMUE1NjAwQkVERjc2IC8qIENv
bnNvbGVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RkQwMDc0MTg5QjAzOEMwMDYz
MzIzMSAvKiBDb25zb2xlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkM5OUQxMTg0RUM4
QUQwMDlDMTBBQiAvKiBDb25zdGFudE1vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtNjIxNSwxMiAr
NjI5NywxMiBAQAogCQkJCTBGNDI2QTRCMTQ2MENENkUwMDEzMUY4RiAvKiBEYXRhRm9ybWF0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZERjE3QjZCNUFCMDBBN0FFM0YgLyogRGF0YVZpZXcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDIwMzRBMEUxNzEzNUUwMDJDN0U4MiAvKiBEYXRlQ29u
c3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzFBMUJEQTA4RDEwMDMzMUI4NCAv
KiBEYXRlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTM1OUNGMzBGREQ4
OUFEMDAyMDYxODAgLyogRGF0ZUNvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTE2
NjAyMEUxOTk3QjQwMDgwNjZERCAvKiBEYXRlSW5zdGFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTE0QTE1NjMyMTA5NjYzNjUwMDZGQTI2MCAvKiBEYXRlSW5zdGFuY2VDYWNoZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNEMjAzNEMwRTE3MTM1RTAwMkM3RTgyIC8qIERhdGVQcm90b3R5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRDIwM0U4MEUxNzE4RjQwMDJDN0U4MiAvKiBEYXRlUHJvdG90
eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMUIxQkRBMDhEMTAwMzMxQjg0IC8q
IEVycm9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRkEwRTE2RjVD
RDAwQjM0NDYwIC8qIERlYnVnZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNGQjBFMTZG
NUNEMDBCMzQ0NjAgLyogRGVidWdnZXJDYWxsRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZB
RDJDQjREMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTY0MDMsNyArNjQ4NSw2IEBACiAJCQkJMEYyQkRDNDkxNTIyODA5NjAwQ0Q4OTEw
IC8qIERGR1ZhcmlhYmxlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzRCMTUyMjgw
OUQwMENEODkxMCAvKiBERkdWYXJpYWJsZUV2ZW50U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkZGQzk2MDE0RUY5MEJEMDBDNzI1MzIgLyogREZHVmlydHVhbFJlZ2lzdGVyQWxsb2NhdGlv
blBoYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMxODFCREEwNjgwMDAzMzFCODQgLyog
QXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzk3RjQy
MTgyMDIxMTkwMDJDOUIyNiAvKiBERkdXYXRjaHBvaW50Q29sbGVjdGlvblBoYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkRCMkNFODE3NDgzMEEyMDA3QjNDMUIgLyogREZHV29ya2xpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRTA1MDE4MUFBOTA5MTEwMEQzM0IzMyAvKiBEaXJlY3RBcmd1
bWVudHMuaCBpbiBIZWFkZXJzICovLApAQCAtNjQxOSw2ICs2NTAwLDcgQEAKIAkJCQlGRUI1OEMx
NTE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzAyRTk4RDBFMTgzRTM4MDAwRjkyOTcgLyogRXJyb3JJbnN0YW5jZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwMkU5MEYwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yUHJvdG90eXBlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxQjFCREEwOEQxMDAzMzFCODQgLyogRXJyb3JQcm90
b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDc5ODBFRDFEM0FFMDBGMUY2ODEg
LyogRXZhbENvZGVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU0OTgyMDQxODkxRDBCMDAw
ODFFNUI4IC8qIEV2ZW50TG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkUxQzBGRkQxQjE5M0U5
ODAwQjUzRkNBIC8qIEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDQyLDcgKzY1MjQs
NiBAQAogCQkJCTBGNDg1MzI4MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVy
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMEExNzA1MTNEQjAwQkI3MjJDIC8qIEZUTENh
cGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMjMxNzA5NjA2OTAwQkI3MjJD
IC8qIEZUTENvbW1vblZhbHVlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjIxQkRBMDhF
RjAwMzMxQjg0IC8qIE9iamVjdENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFQTBBMEMxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTENvbXBpbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTk1RjdBMThCNTY5NDcwMEI1MzFGQiAvKiBGVExEYXRhU2VjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkFDOTIyQkMxOEExNjE4MjAwM0NFMEZCIC8qIEZUTERXQVJGRGVidWdMaW5l
SW5mby5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDc3LDcgKzY1NTgsNiBAQAogCQkJCTBGRDhBMzFD
MTdENTFGMjIwMENBMkM0MCAvKiBGVExPU1JFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
MzVCREQxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTE9TUkV4aXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMjM1QkRFMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMyODFCREEwOEVGMDAzMzFCODQgLyogU3ltYm9sUHJv
dG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMzVCRTAxNzE3OEUxQzAwNjkwQzdG
IC8qIEZUTE9TUkV4aXRDb21waWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMTExNzA1
MTNEQjAwQkI3MjJDIC8qIEZUTE91dHB1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0ODUzMkEx
ODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggaW4gSGVhZGVycyAqLywKQEAg
LTY1MTUsMTIgKzY1OTUsMTAgQEAKIAkJCQk5OTU5RTkzMTFCRDE4MjcyMDAxQUE0MTMgLyogZ2Vu
ZXJhdGUtY29tYmluZWQtaW5zcGVjdG9yLWpzb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDNDcw
M0NDMDE5Mjg0NDk2MDAxM0ZCRUEgLyogZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRp
bmdzLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQUYxQkQ1OTk0RTAwRjQ1NzVDIC8qIGdl
bmVyYXRlLWpzLWJ1aWx0aW5zLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMUMxQkRBMDhE
RDAwMzMxQjg0IC8qIEpTRGF0YVZpZXdQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNUVBNzBFQzE5RjVCM0VBMDA5OEY1RUMgLyogZ2VuZXJhdGVfY3BwX2FsdGVybmF0ZV9iYWNr
ZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFRjlCMTQxQTFE
NDNGNjAwNzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFRjlCMTUxQTFENDNGQTAwNzAyRTkwIC8qIGdlbmVyYXRl
X2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywK
IAkJCQlBNUVGOUIxNjFBMUQ0NDAwMDA3MDJFOTAgLyogZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rp
c3BhdGNoZXJfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjUxQkRBMDhFRjAw
MzMxQjg0IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVF
RjlCMTcxQTFENDQwMzAwNzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9mcm9udGVuZF9kaXNwYXRjaGVy
X2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFRjlCMTgxQTFENDQwNjAw
NzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19oZWFkZXIucHkgaW4gSGVhZGVy
cyAqLywKIAkJCQlBNUVGOUIxOTFBMUQ0NDA3MDA3MDJFOTAgLyogZ2VuZXJhdGVfY3BwX3Byb3Rv
Y29sX3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCkBAIC02NjY3LDcgKzY3
NDUsNiBAQAogCQkJCUJDMThDNDFCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0NhbGxiYWNrT2JqZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxQzBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU3Q0Y0NTkxOUJGNjY2
MjAwNEFDQkYyIC8qIEpTQ2FsbGVlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBN0Q4MDFBOTE4ODBE
NkE4MDAyNkMzOUIgLyogSlNDQnVpbHRpbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTE2N0RB
MEUxOUJDQzkwMDgwNjZERCAvKiBKU0NlbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTc0OTcx
MTY4N0FERTQwMEE0RkY2QSAvKiBKU0NlbGxJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjFERDg0QTE4QTk0NUJFMDAyNkYzRkEgLyogSlNDSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC02Njg1LDYgKzY3NjIsNyBAQAogCQkJCUE3MjAyOEI4MTc5NzYwMUUwMDk4MDI4QyAvKiBKU0NU
ZXN0UnVubmVyVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkVDMTdCNkI1QUIwMEE3
QUUzRiAvKiBKU0RhdGFWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFRTE3QjZCNUFC
MDBBN0FFM0YgLyogSlNEYXRhVmlld1Byb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2
QjczMUMxQkRBMDhERDAwMzMxQjg0IC8qIEpTRGF0YVZpZXdQcm90b3R5cGUubHV0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5Nzg4MDE0MTE0NzFBRDkyMDA0MUIwMTYgLyogSlNEYXRlTWF0aC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzJBN0Y2ODgxNjA0MzJENDAwRjc2Qjk4IC8qIEpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTM4NEVFNjFBRERCN0FEMDA1NURFMkMg
LyogSlNEb2xsYXJWTS5oIGluIEhlYWRlcnMgKi8sCkBAIC02Njk0LDcgKzY3NzIsNiBAQAogCQkJ
CUE3QjRBQ0FGMTQ4NEM5Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEYyQjY2RUYxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRmxvYXQzMkFycmF5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjJCNjZGMDE3QjZCNUFCMDBBN0FFM0YgLyogSlNGbG9hdDY0QXJy
YXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzFFMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1By
b21pc2VDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDFGMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBKU0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzIwMjhCQTE3
OTc2MDNEMDA5ODAyOEMgLyogSlNGdW5jdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMkI2NkYxMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC02NzA2LDYgKzY3ODMsNyBAQAogCQkJCTBGMkI2NkY2MTdCNkI1QUIw
MEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUlubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTc5N0UwN0FBMUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGlj
YWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjEwRTE2RjVDRDAwQjM0
NDYwIC8qIEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxRDFCREEw
OEVGMDAzMzFCODQgLyogSlNHbG9iYWxPYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NUZEMDA4NjE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1QzNBMUE2MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1OTQ1NTkzMTgyNDc0NDcw
MENDMzg0MyAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICovLApAQCAt
Njc0Nyw4ICs2ODI1LDEwIEBACiAJCQkJOTUzNEFBRkIwRTVCN0E5NjAwQjhBNDVCIC8qIEpTUHJv
ZmlsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE4NEUxQjE3QkVEQkQzMDA3Q0I2
M0EgLyogSlNQcm9taXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE4NEUyMzE3QkVFMjQwMDA3
Q0I2M0EgLyogSlNQcm9taXNlQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3
MzFFMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdDMDA4Q0RCMTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJl
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MxODRFMUYxN0JFRTIyRTAwN0NCNjNBIC8qIEpTUHJv
bWlzZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMUYxQkRBMDhFRjAwMzMx
Qjg0IC8qIEpTUHJvbWlzZVByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBMDVB
QkQ2MTk2MURGMjQwMDM0MTc1MCAvKiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUzRUY4ODc1MUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjI1NTNEMjE2MTM2RTFBMDA5RjE3RDAgLyog
SlNQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NzY5LDcgKzY4NDksNiBAQAogCQkJCUJDMThD
NDI4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1N0cmluZ1JlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEM0MjkwRTE2RjVDRDAwQjM0NDYwIC8qIEpTU3RyaW5nUmVmQ0YuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCBp
biBIZWFkZXJzICovLAotCQkJCTk5NkI3MzI3MUJEQTA4RUYwMDMzMUI4NCAvKiBTeW1ib2xDb25z
dHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTE5RDBEMTU3RUUwQTIwMDRBNEU3
RCAvKiBKU1N5bWJvbFRhYmxlT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MEVDQTYwNjFB
RkRCRUEyMDA0NDk3MzkgLyogSlNUZW1wbGF0ZVJlZ2lzdHJ5S2V5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzE4QzQyQTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNUeXBlLmggaW4gSGVhZGVycyAqLywK
QEAgLTY3ODAsNyArNjg1OSw2IEBACiAJCQkJREVBN0UyNDUxQkJDNjc3RjAwRDc4NDQwIC8qIEpT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MDdEMjlFMEU4
NzFFNUUwMEQ3RDg5NiAvKiBKU1R5cGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjcw
MjE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
OTk2QjczMUExQkRBMDhEMTAwMzMxQjg0IC8qIERhdGVDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NzAzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1VpbnQzMkFycmF5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjcwMDE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50OEFy
cmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjcwMTE3QjZCNUFCMDBBN0FFM0YgLyogSlNV
aW50OENsYW1wZWRBcnJheS5oIGluIEhlYWRlcnMgKi8sCkBAIC02Nzg4LDcgKzY4NjYsNiBAQAog
CQkJCTg2RTNDNjFCMTY3QkFCRUUwMDZENzYwQSAvKiBKU1ZhbHVlSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMThDNDJDMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1ZhbHVlUmVmLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NkUzQzYxNTE2N0JBQkQ3MDA2RDc2MEEgLyogSlNWaXJ0dWFsTWFj
aGluZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjExQkRBMDhFRjAwMzMxQjg0IC8qIE51
bWJlclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjFEMTY3QkFCRUUw
MDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdCOThEMTM3MUI2MENENjIwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3Q0EzQUU4MTdEQTQxQUUwMDY1MzhBRiAvKiBKU1dlYWtNYXAuaCBpbiBIZWFkZXJz
ICovLApAQCAtNjc5OSw3ICs2ODc2LDYgQEAKIAkJCQk4NkUzQzYxOTE2N0JBQkVFMDA2RDc2MEEg
LyogSlNXcmFwcGVyTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyRTBFMTZGNUNEMDBC
MzQ0NjAgLyogSlNXcmFwcGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0ZEOEM5MzBF
RUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMy
MDFCREEwOEVGMDAzMzFCODQgLyogTW9kdWxlTG9hZGVyT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTcyRkZENjQxMzk5ODVBODAwRTUzNjVBIC8qIEtleXdvcmRMb29rdXAuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk2OUEwNzJBMEVEMUNFNjkwMEYxRjY4MSAvKiBMYWJlbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTYwMDk3QTYwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUuaCBp
biBIZWFkZXJzICovLApAQCAtNjg2Myw3ICs2OTM5LDcgQEAKIAkJCQlDNDcwM0NENzE5Mjg0NEND
MDAxM0ZCRUEgLyogbW9kZWxzLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJRTM3OTRFNzYxQjc3RUI5
NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzU1RjM1
MzFCN0RDODUzMDBDNTBEQzUgLyogTW9kdWxlTG9hZGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLywK
LQkJCQk5OTZCNzMyNDFCREEwOEVGMDAzMzFCODQgLyogUmVnRXhwUHJvdG90eXBlLmx1dC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMjAxQkRBMDhFRjAwMzMxQjg0IC8qIE1vZHVsZUxvYWRl
ck9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDJFOTExMEUxODM5REIwMDBGOTI5
NyAvKiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAyRTkx
MzBFMTgzOURCMDAwRjkyOTcgLyogTmF0aXZlRXJyb3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUzM0U4RDIxMUI5MDEzREUwMDM0NkI1MiAvKiBOYXRpdmVTdGRGdW5jdGlvbkNlbGwu
aCBpbiBIZWFkZXJzICovLApAQCAtNjg3NCw2ICs2OTUwLDcgQEAKIAkJCQlCQzE4QzQ0MjBFMTZG
NUNEMDBCMzQ0NjAgLyogTnVtYmVyQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzQ0MzBFMTZGNUNEMDBCMzQ0NjAgLyogTnVtYmVyT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQ0NDBFMTZGNUNEMDBCMzQ0NjAgLyogTnVtYmVyUHJvdG90eXBlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5OTZCNzMyMTFCREEwOEVGMDAzMzFCODQgLyogTnVtYmVyUHJvdG90
eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyRDM5MzkxMDNFNDU2MDAwN0RDQjUyIC8q
IE51bWVyaWNTdHJpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwQzE5RjZERTgyMDA5
OEY1RUMgLyogb2JqY19nZW5lcmF0b3IucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDNEY0QjZGNjFB
MDVDOTg0MDA1Q0FCNzYgLyogb2JqY19nZW5lcmF0b3JfdGVtcGxhdGVzLnB5IGluIEhlYWRlcnMg
Ki8sCkBAIC02ODgxLDYgKzY5NTgsNyBAQAogCQkJCTg2RjNFRUJGMTY4Q0RFOTMwMDc3QjkyQSAv
KiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDQTk1OEQxNkFCNTBG
QTAwOTM4QTA2IC8qIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzQ0NTBFMTZGNUNEMDBCMzQ0NjAgLyogT2JqZWN0Q29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk5NkI3MzIyMUJEQTA4RUYwMDMzMUI4NCAvKiBPYmplY3RDb25zdHJ1Y3Rv
ci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDNFNDBBMUI2MThCNjYwMEM4MEUxRSAvKiBP
YmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0MEMxQjYx
OEI2NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQ0NjBFMTZGNUNEMDBCMzQ0NjAgLyogT2JqZWN0UHJvdG90eXBlLmggaW4g
SGVhZGVycyAqLywKQEAgLTY4OTMsNyArNjk3MSw2IEBACiAJCQkJMEZFMjI4RUQxNDM2QUIyNzAw
MTk2QzQ4IC8qIE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDRCMEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMDUyQzM1MEZCNzkyMTkw
MDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjMxQkRB
MDhFRjAwMzMxQjg0IC8qIFJlZmxlY3RPYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkNDQUU0NTE2RDBDRjc0MDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3N0YxODI1MTY0MTkyQzcwMDY0MEE0NyAvKiBQYXJzZXJNb2Rlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjUzMDNENjQxNDQ3QjlFMTAwRDNGOTA0IC8qIFBhcnNlclRva2Vucy5oIGluIEhl
YWRlcnMgKi8sCkBAIC02OTM3LDggKzcwMTQsOCBAQAogCQkJCTE0N0I4NDYzMEU2REU2QjEwMDQ3
NzVBNCAvKiBQdXRQcm9wZXJ0eVNsb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjYwQUMyMTY3
NDBGODMwMDAyOTc3OSAvKiBSZWR1Y2VXaGl0ZXNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MzM2MzdBNjFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTk2QjczMjMxQkRBMDhFRjAwMzMxQjg0IC8qIFJlZmxlY3RPYmplY3QubHV0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkE3QThFQzE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk5OTZCNzMxNzFCREEwNjdGMDAzMzFCODQgLyogQXJyYXlDb25zdHJ1Y3Rv
ci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDVBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBS
ZWdFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNzEyQjNGMTFDN0IyMjgwMDdBNTMxNSAvKiBS
ZWdFeHBDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMjAyQzIwRTE3MDZBNzAwMkM3RTgy
IC8qIFJlZ0V4cENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTY5NDYsNiArNzAyMyw3
IEBACiAJCQkJQTE3MTJCNDExMUM3QjIzNTAwN0E1MzE1IC8qIFJlZ0V4cEtleS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0NUIwRTE2RjVDRDAwQjM0NDYwIC8qIFJlZ0V4cE9iamVjdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNEMjAyQzQwRTE3MDZBNzAwMkM3RTgyIC8qIFJlZ0V4cFByb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMjQxQkRBMDhFRjAwMzMxQjg0IC8qIFJl
Z0V4cFByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDVEMEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBSZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTY5QTA3MkIwRUQxQ0U2
OTAwRjFGNjgxIC8qIFJlZ2lzdGVySUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyM0EzN0VDMUI4
N0E3QzAwMDc1NDIwOSAvKiBSZWdpc3Rlck1hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC03MDAyLDcg
KzcwODAsOSBAQAogCQkJCTE0Q0E5NThCMTZBQjUwREUwMDkzOEEwNiAvKiBTdGF0aWNQcm9wZXJ0
eUFuYWx5emVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzMwQjYxMjEyNTAwNjhGMDA5RDI1QjEg
LyogU3RyaWN0RXZhbEFjdGl2YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDY2MEUx
NkY1Q0QwMEIzNDQ2MCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTk2QjczMjUxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmx1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzBFQzBFQzcxQUEwRDdEQTAwQjZBQUZBIC8qIFN0cmluZ0l0ZXJhdG9y
UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMyNjFCREEwOEVGMDAzMzFCODQg
LyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4
QzQ2ODBFMTZGNUNEMDBCMzQ0NjAgLyogU3RyaW5nT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzQ2QTBFMTZGNUNEMDBCMzQ0NjAgLyogU3RyaW5nUHJvdG90eXBlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxNDJFMzEzQjEzNEZGMEE2MDBBRkFEQjUgLyogU3Ryb25nLmggaW4gSGVhZGVy
cyAqLywKQEAgLTcwMjAsOCArNzEwMCwxMCBAQAogCQkJCUJDOTA0MTQ4MEVCOTI1MDkwMEZFMjZG
QSAvKiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwNUI0
MUFDMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2wuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwNUI0
MUFFMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTk2QjczMjcxQkRBMDhFRjAwMzMxQjg0IC8qIFN5bWJvbENvbnN0cnVjdG9yLmx1dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzA1QjQxQjAxQTZFNTAxRTAwNzE2NzU3IC8qIFN5bWJvbE9i
amVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA1QjQxQjIxQTZFNTAxRTAwNzE2NzU3IC8qIFN5
bWJvbFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMjgxQkRBMDhFRjAwMzMx
Qjg0IC8qIFN5bWJvbFByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDZC
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4
NEEyNjQxMUQxNjYyMjAwNTc3NkFDIC8qIFN5bnRheENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcwRUNBNjA4MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLywKQEAgLTcwNjAsNyArNzE0Miw2IEBACiAJCQkJQTdBOEFGNDAxN0FEQjVGMzAwNUFC
MTc0IC8qIFVpbnQ4Q2xhbXBlZEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVGMDhDRjE0
NkM3NjMzMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTdCNjAxODIxNjM5RkQyQTAwMzcyQkEzIC8qIFVubGlua2VkQ29kZUJsb2NrLmggaW4g
SGVhZGVycyAqLywKLQkJCQk5OTZCNzMyNjFCREEwOEVGMDAzMzFCODQgLyogU3RyaW5nSXRlcmF0
b3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE0MkU1MTFCNzk2RUNFMDBG
NEJGNEIgLyogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMkU4OTJDMTZEMDI4QUQwMDlFNEZEMiAvKiBVbnVzZWRQb2ludGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5OURBMDBCMTFCRDU5OTRFMDBGNDU3NUMgLyogVXBkYXRlQ29udGVudHMucHkgaW4g
SGVhZGVycyAqLywKQEAgLTc1OTksOSArNzY4MCwxMiBAQAogCQkJCTBGRkM5OUQ0MTg0RUUzMTgw
MDlDMTBBQiAvKiBBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTdBOEFGMzYxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyVmlldy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlCRjEwN0VDMzc2MDA0MjdBNDggLyogQXJyYXlDb25z
dHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTk0RTVGRDFCRDlBOTcyMDBGMkQ4MzUg
LyogQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QkRB
RUM4MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTk5OTRFNUZFMUJEOUE5NzIwMEYyRDgzNSAvKiBBcnJheUl0ZXJhdG9yUHJv
dG90eXBlQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2Mzk0NTQxNUQwNzA1NTAw
NkE1OTdDIC8qIEFycmF5UHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDMDEw
N0VDMzc2MDA0MjdBNDggLyogQXJyYXlQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
OTk5NEU1RkYxQkQ5QTk3MjAwRjJEODM1IC8qIEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYyNEU1NDAxN0VBOUY1OTAwQUJCMjE3IC8qIEFzc2VtYmx5SGVs
cGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MjY3OEY4RTFBMDMxMDA5MDA2QTMwNkQgLyog
QmFzaWNCbG9ja0xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjRCMjcxMUE3ODRC
QUYwMDZFNEU2NiAvKiBCaW5hcnlTd2l0Y2guY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03ODgwLDYg
Kzc5NjQsNyBAQAogCQkJCTUyQjMxMEZEMTk3NEFFODcwMDgwODU3QyAvKiBGdW5jdGlvbkhhc0V4
ZWN1dGVkQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU0QkZGMkIxQUQ0NzZFNzAwMDg4
Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUND
MTA3RUMzNzYwMDQyN0E0OCAvKiBGdW5jdGlvblByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk5OTk0RTYwMDFCRDlBOTcyMDBGMkQ4MzUgLyogRnVuY3Rpb25Qcm90b3R5cGVCdWlsdGlu
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkQyRDM4RjFBREYxMDNGMDAwMjA2QzEgLyogRnVu
Y3Rpb25SYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQUFDRTYzQzE4Q0E1QTAzMDBF
RDAxOTEgLyogR0NBY3Rpdml0eUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzY2
RDJGMTVBOERDRTAwMDhGMzYzRSAvKiBHQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC03ODg3LDYgKzc5NzIsNyBAQAogCQkJCTBGOTMzMjlGMTRDQTdEQ0EwMDg1RjND
NiAvKiBHZXRCeUlkU3RhdHVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMDMzMkMzMThCMDE3
NjMwMDVGOTc5QSAvKiBHZXRCeUlkVmFyaWFudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4
MDg1NTEwN0VDMEU3MDAxM0U3QjIgLyogR2V0dGVyU2V0dGVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTk5OTRFNjAxMUJEOUE5NzIwMEYyRDgzNSAvKiBHbG9iYWxPYmplY3RCdWlsdGlucy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNDJFMzEzNTEzNEZGMEE2MDBBRkFEQjUgLyogSGFuZGxlU2V0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MkUzMTM3MTM0RkYwQTYwMEFGQURCNSAvKiBIYW5k
bGVTdGFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEJBN0E5NzEzQUFERkY4MDA1QjdDMkMg
LyogSGVhcC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTc5MjMsMTAgKzgwMDksMTIgQEAKIAkJCQk5
OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTUzMzlFQzcxQkIzOTlBOTAwNTRGMDA1IC8qIEluc3BlY3Rvckhl
YXBBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTk5OTRFNjAyMUJEOUE5NzIwMEYyRDgzNSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3RCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4QjE4NTY4MzM1MDAyRUQ2
OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1
MEU0QjYxMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTU5M0NGODIxODQwMzc3MTAwQkZDRTI3IC8qIEluc3BlY3RvclZhbHVl
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDRjEwN0VDMzc2MDA0MjdBNDggLyogSW50
ZXJuYWxGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTk0RTYwMzFCRDlBOTcyMDBG
MkQ4MzUgLyogSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDI5RDdENDBFRDIxMjgyMDBCODk2MTkgLyogSW50ZXJwcmV0ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTFCOUUyMzkxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUI5RTIzQjFCNEUwRDY3MDBCQzdGRUQgLyogSW50
bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03OTQxLDYgKzgwMjks
NyBAQAogCQkJCURFNUEwQTAwMUJBM0FDM0UwMDNENDQyNCAvKiBJbnRyaW5zaWNFbWl0dGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTcwMTEzRDRCMUE4REIwOTMwMDM4NDhDNCAvKiBJdGVyYXRv
ck9wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzBEQzNFMDkxQjJERjJDNzAwMDU0
Mjk5IC8qIEl0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5OTRFNjA0
MUJEOUE5OEEwMEYyRDgzNSAvKiBJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE1MDNGQTE5MTg4RTBGQjAwMDExMEYxNCAvKiBKYXZhU2NyaXB0Q2FsbEZy
YW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjlEOTJGMEVEMjJENzAwMEI4OTYxOSAvKiBK
SVQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZBOTBFRDAwRUU3RDUxRjAwQUIzNTBEIC8qIEpJ
VEFyaXRobWV0aWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03OTc1LDcgKzgwNjQsNiBAQAogCQkJ
CTE0NDBGODkyMEE1MDhCMTAwMDA1RjA2MSAvKiBKU0NhbGxiYWNrRnVuY3Rpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTRBQkRGNjAwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU3Q0Y0NTgxOUJGNjY2MjAwNEFDQkYyIC8qIEpT
Q2FsbGVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3RDgwMUE4MTg4MEQ2QTgwMDI2QzM5QiAv
KiBKU0NCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlEMTEwN0VDMzc2MDA0
MjdBNDggLyogSlNDZWxsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQ2MTA3RUMzNzYw
MDQyN0E0OCAvKiBKU0NKU1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDBGQ0U0MEE1
MUU0NkIwMDA1RjA2MSAvKiBKU0NsYXNzUmVmLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODA5Nyw2
ICs4MTg1LDcgQEAKIAkJCQkwRkI1NDY3RDE0RjVDRkQ2MDAyQzI5ODkgLyogTWV0aG9kT2ZHZXR0
aW5nQVZhbHVlUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzc5NEU3NTFCNzdFQjk3
MDA1NTQzQUUgLyogTW9kdWxlQW5hbHl6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM1NUYz
NTIxQjdEQzg1MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlck9iamVjdC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk5OTk0RTYwNTFCRDlBOThBMDBGMkQ4MzUgLyogTW9kdWxlTG9hZGVyT2JqZWN0QnVp
bHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTAxMDdFQzdFNzAwNjUwNDQ2IC8q
IE5hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTEx
MDdFQzdFNzAwNjUwNDQ2IC8qIE5hdGl2ZUVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUzM0U4RDIwMUI5MDEzREUwMDM0NkI1MiAvKiBOYXRpdmVTdGRGdW5jdGlvbkNlbGwu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MTEwLDEyICs4MTk5LDE0IEBACiAJCQkJMTQ0NjlERTQx
MDdFQzdFNzAwNjUwNDQ2IC8qIE51bWJlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NkYzRUVCRTE2OENERTkzMDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKIAkJCQkxNDQ2OURFNTEwN0VDN0U3MDA2NTA0NDYgLyogT2JqZWN0Q29uc3Ry
dWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk5NEU2MDYxQkQ5QTk4QTAwRjJEODM1IC8q
IE9iamVjdENvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEM0U0
MDkxQjYxOEI2NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRDNFNDBCMUI2MThCNjYwMEM4MEUxRSAvKiBPYmplY3RQcm9wZXJ0eUNv
bmRpdGlvblNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFNjEwN0VDN0U3MDA2NTA0
NDYgLyogT2JqZWN0UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjRBOEY4MEU1
NTU3NzUwMDMwOTFGMSAvKiBPcGFxdWVKU1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
NjlBMDc5QTBFRDFEM0FFMDBGMUY2ODEgLyogT3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0MjgwODUwMTA3RUMwRDcwMDEzRTdCMiAvKiBPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTk5OTRFNjA3MUJEOUE5OEEwMEYyRDgzNSAvKiBPcGVyYXRpb25zUHJvbWlzZUJ1aWx0
aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTIyOEVFMTQzNkFCMkMwMDE5NkM0OCAvKiBP
cHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0OEYyMUJDMTA3RUM1NEQwMDQyRUMyQyAv
KiBQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMwNTJDMzQwRkI3OTIxOTAwNDhGREMz
IC8qIFBhcnNlckFyZW5hLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODEzOCw2ICs4MjI5LDggQEAK
IAkJCQkwRkIxMDU4QjE2NzU0ODMxMDBGOEFCNkUgLyogUHJvZmlsZXJPU1JFeGl0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGQjEwNThEMTY3NTQ4MzcwMEY4QUI2RSAvKiBQcm9maWxlck9TUkV4
aXRTaXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMTM5MTJCMTY3NzFDM0EwMDlDQ0IwNyAv
KiBQcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5OTRF
NjA4MUJEOUE5OEEwMEYyRDgzNSAvKiBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk5OTk0RTYwOTFCRDlBOThBMDBGMkQ4MzUgLyogUHJvbWlzZVByb3Rv
dHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDNFNDBEMUI2MThCNjYwMEM4
MEUxRSAvKiBQcm9wZXJ0eUNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0ZCNjBB
NDEwM0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0NDY5REU4MTA3RUM3RTcwMDY1MDQ0NiAvKiBQcm9wZXJ0eVNsb3QuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC04MTQ5LDYgKzgyNDIsNyBAQAogCQkJCTBGOTNCNEE5MThCOTJDNEQwMDE3
OEEzRiAvKiBQdXRCeUlkVmFyaWFudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY2MEFDMzE2
NzQwRjg4MDAwMjk3NzkgLyogUmVkdWNlV2hpdGVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFMzM2MzdBNTFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk5OTk0RTYwQTFCRDlBOThBMDBGMkQ4MzUgLyogUmVmbGVjdE9iamVjdEJ1aWx0
aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQTdBOEVCMThCNDEzQzgwMDUyMzcxRCAvKiBS
ZWcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyODA4NDExMDdFQzA5MzAwMTNFN0IyIC8qIFJl
Z0V4cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTcxMkIzQjExQzdCMjEyMDA3QTUzMTUgLyog
UmVnRXhwQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MTk3LDcgKzgyOTEsOSBAQAogCQkJ
CUE3QzFFQUYxMTc5ODdBQjYwMDI5OURCMiAvKiBTdGFja1Zpc2l0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTczMEI2MTMxMjUwMDY4RjAwOUQyNUIxIC8qIFN0cmljdEV2YWxBY3RpdmF0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REVCMTA3RUM3RTcwMDY1MDQ0NiAvKiBTdHJp
bmdDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTk0RTYwQjFCRDlBOThBMDBG
MkQ4MzUgLyogU3RyaW5nQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3MEVDMEVDNjFBQTBEN0RBMDBCNkFBRkEgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTk5NEU2MEMxQkQ5QTk4QTAwRjJEODM1IC8qIFN0cmluZ0l0
ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUMx
MDdFQzdFNzAwNjUwNDQ2IC8qIFN0cmluZ09iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDQ2OURFRDEwN0VDN0U3MDA2NTA0NDYgLyogU3RyaW5nUHJvdG90eXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzMzVGMjREMTJFNjc2NUIwMDJCNTU1MyAvKiBTdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODIxOSw3ICs4MzE1LDkgQEAKIAkJCQlBNzM4NjU1
NTExODY5N0I0MDA1NDAyNzkgLyogVGh1bmtHZW5lcmF0b3JzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMkQ0REU4MTk4MzJEQUMwMDdENEIxOSAvKiBUb1RoaXNTdGF0dXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY5NTJBQkMxQjQ4N0E3NzAwQzM2N0M1IC8qIFRyYWNrZWRSZWZlcmVuY2Vz
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5OTRFNjBEMUJEOUE5OEEwMEYyRDgzNSAvKiBUeXBl
ZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcw
NzE3QjZCNUFCMDBBN0FFM0YgLyogVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJOTk5NEU2MEUxQkQ5QTk4QTAwRjJEODM1IC8qIFR5cGVkQXJyYXlQcm90b3R5cGVC
dWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcwQTE3QjZCNUFCMDBBN0FFM0Yg
LyogVHlwZWRBcnJheVR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJCMzEwRkYxOTc1QjQy
NDAwODA4NTdDIC8qIFR5cGVMb2NhdGlvbkNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RkI2QzM4MUFGNDhEREMwMERCMUJGNyAvKiBUeXBlb2ZUeXBlLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRp
bnMucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGlucy5w
eQppbmRleCBjNjdjZGFkOGEzMGQ3MGNjYzQ1YTE5ZDgzZDIyNGE2NGYzYmVmZjcyLi5mMzIzY2Fi
ZGZmZGM2YjFmZTJhMWZiMjM3NWZlNDYzYTc3OTE5MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGlucy5weQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGlucy5weQpAQCAtNSw4ICs1LDcgQEAg
ZnJvbSBidWlsdGluc19tb2RlbCBpbXBvcnQgKgogZnJvbSBidWlsdGluc190ZW1wbGF0ZXMgaW1w
b3J0ICoKIAogZnJvbSBidWlsdGluc19nZW5lcmF0b3IgaW1wb3J0ICoKLWZyb20gYnVpbHRpbnNf
Z2VuZXJhdGVfY29tYmluZWRfaGVhZGVyIGltcG9ydCAqCi1mcm9tIGJ1aWx0aW5zX2dlbmVyYXRl
X2NvbWJpbmVkX2ltcGxlbWVudGF0aW9uIGltcG9ydCAqCi1mcm9tIGJ1aWx0aW5zX2dlbmVyYXRl
X3NlcGFyYXRlX2hlYWRlciBpbXBvcnQgKgotZnJvbSBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0
ZV9pbXBsZW1lbnRhdGlvbiBpbXBvcnQgKgotZnJvbSBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0
ZV93cmFwcGVyIGltcG9ydCAqCitmcm9tIGJ1aWx0aW5zX2dlbmVyYXRlX2ZyYW1ld29ya19tYWNy
b3MgaW1wb3J0ICoKK2Zyb20gYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRlciBpbXBvcnQg
KgorZnJvbSBidWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaW1wbGVtZW50YXRpb24gaW1wb3J0ICoK
K2Zyb20gYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X3dyYXBwZXIgaW1wb3J0ICoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVy
YXRlX2NvbWJpbmVkX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTA4OWZkZjU5YTJiYWU5NjE1ZTk4YThhNmUyY2MyOTgwNDkzZTYx
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5l
ZF9oZWFkZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNjIgKzAsMCBAQAotIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoYykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hp
bmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0j
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgcmUKLWltcG9ydCBzdHJpbmcK
LWZyb20gc3RyaW5nIGltcG9ydCBUZW1wbGF0ZQotCi1mcm9tIGJ1aWx0aW5zX2dlbmVyYXRvciBp
bXBvcnQgQnVpbHRpbnNHZW5lcmF0b3IKLWZyb20gYnVpbHRpbnNfdGVtcGxhdGVzIGltcG9ydCBC
dWlsdGluc0dlbmVyYXRvclRlbXBsYXRlcyBhcyBUZW1wbGF0ZXMKLQotbG9nID0gbG9nZ2luZy5n
ZXRMb2dnZXIoJ2dsb2JhbCcpCi0KLQotY2xhc3MgQnVpbHRpbnNDb21iaW5lZEhlYWRlckdlbmVy
YXRvcihCdWlsdGluc0dlbmVyYXRvcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1vZGVsKToK
LSAgICAgICAgQnVpbHRpbnNHZW5lcmF0b3IuX19pbml0X18oc2VsZiwgbW9kZWwpCi0KLSAgICBk
ZWYgb3V0cHV0X2ZpbGVuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gIiVzQnVpbHRpbnMuaCIg
JSBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ25hbWVzcGFjZScpCi0KLSAgICBkZWYg
Z2VuZXJhdGVfb3V0cHV0KHNlbGYpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ25h
bWVzcGFjZSc6IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbmFtZXNwYWNlJyksCi0g
ICAgICAgICAgICAnaGVhZGVyR3VhcmQnOiBzZWxmLm91dHB1dF9maWxlbmFtZSgpLnJlcGxhY2Uo
Jy4nLCAnXycpLAotICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tb2RlbCgpLmZyYW1l
d29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwKLSAgICAgICAgfQotCi0gICAgICAgIHNlY3Rp
b25zID0gW10KLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGljZW5zZSgp
KQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90RWRpdFdh
cm5pbmcpLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0
ZShUZW1wbGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkVG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAg
ICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9mb3J3YXJkX2RlY2xhcmF0aW9ucygp
KQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZVRv
cCkuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgZm9yIG9iamVjdCBpbiBzZWxmLm1vZGVsKCku
b2JqZWN0czoKLSAgICAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rp
b25fZm9yX29iamVjdChvYmplY3QpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5l
cmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX3RhYmxlX21hY3JvKCkpCi0gICAgICAgIHNlY3Rpb25zLmFw
cGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybygpKQotICAgICAg
ICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkNvbWJpbmVkSGVhZGVyU3RhdGlj
TWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxh
dGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAg
c2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRCb3R0
b20pLnN1YnN0aXR1dGUoYXJncykpCi0KLSAgICAgICAgcmV0dXJuICJcblxuIi5qb2luKHNlY3Rp
b25zKQotCi0gICAgZGVmIGdlbmVyYXRlX2ZvcndhcmRfZGVjbGFyYXRpb25zKHNlbGYpOgotICAg
ICAgICByZXR1cm4gIiIibmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7
Ci1jbGFzcyBWTTsKLQotZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7Ci19
IiIiCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2JqZWN0KHNlbGYsIG9iamVjdCk6
Ci0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgbGluZXMuYXBwZW5kKCcvKiAlcyAqLycgJSBv
YmplY3Qub2JqZWN0X25hbWUpCi0gICAgICAgIGxpbmVzLmV4dGVuZChzZWxmLmdlbmVyYXRlX2V4
dGVybnNfZm9yX29iamVjdChvYmplY3QpKQotICAgICAgICBsaW5lcy5hcHBlbmQoIiIpCi0gICAg
ICAgIGxpbmVzLmV4dGVuZChzZWxmLmdlbmVyYXRlX21hY3Jvc19mb3Jfb2JqZWN0KG9iamVjdCkp
Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgiIikKLSAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2Vu
ZXJhdGVfZGVmaW5lc19mb3Jfb2JqZWN0KG9iamVjdCkpCi0gICAgICAgIHJldHVybiAnXG4nLmpv
aW4obGluZXMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfZXh0ZXJuc19mb3Jfb2JqZWN0KHNlbGYsIG9i
amVjdCk6Ci0gICAgICAgIGxpbmVzID0gW10KLQotICAgICAgICBmb3IgZnVuY3Rpb24gaW4gb2Jq
ZWN0LmZ1bmN0aW9uczoKLSAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7Ci0gICAgICAgICAg
ICAgICAgJ2NvZGVOYW1lJzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlv
bihmdW5jdGlvbikgKyAnQ29kZScsCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxpbmVz
LmFwcGVuZCgiIiJleHRlcm4gY29uc3QgY2hhciogc18lKGNvZGVOYW1lKXM7Ci1leHRlcm4gY29u
c3QgaW50IHNfJShjb2RlTmFtZSlzTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0
QWJpbGl0eSBzXyUoY29kZU5hbWUpc0NvbnN0cnVjdEFiaWxpdHk7IiIiICUgZnVuY3Rpb25fYXJn
cykKLQotICAgICAgICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBnZW5lcmF0ZV9tYWNyb3NfZm9y
X29iamVjdChzZWxmLCBvYmplY3QpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ21h
Y3JvUHJlZml4Jzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgn
KSwKLSAgICAgICAgICAgICdvYmplY3RNYWNybyc6IG9iamVjdC5vYmplY3RfbmFtZS5yZXBsYWNl
KCcuJywgJycpLnVwcGVyKCksCi0gICAgICAgIH0KLQotICAgICAgICBsaW5lcyA9IFtdCi0gICAg
ICAgIGxpbmVzLmFwcGVuZCgiI2RlZmluZSAlKG1hY3JvUHJlZml4KXNfRk9SRUFDSF8lKG9iamVj
dE1hY3JvKXNfQlVJTFRJTl9EQVRBKG1hY3JvKSBcXCIgJSBhcmdzKQotICAgICAgICBmb3IgZnVu
Y3Rpb24gaW4gb2JqZWN0LmZ1bmN0aW9uczoKLSAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7
Ci0gICAgICAgICAgICAgICAgJ2Z1bmNOYW1lJzogZnVuY3Rpb24uZnVuY3Rpb25fbmFtZSwKLSAg
ICAgICAgICAgICAgICAnbWFuZ2xlZE5hbWUnOiBCdWlsdGluc0dlbmVyYXRvci5tYW5nbGVkTmFt
ZUZvckZ1bmN0aW9uKGZ1bmN0aW9uKSwKLSAgICAgICAgICAgICAgICAncGFyYW1Db3VudCc6IGxl
bihmdW5jdGlvbi5wYXJhbWV0ZXJzKSwKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGlu
ZXMuYXBwZW5kKCIgICAgbWFjcm8oJShmdW5jTmFtZSlzLCAlKG1hbmdsZWROYW1lKXMsICUocGFy
YW1Db3VudClkKSBcXCIgJSBmdW5jdGlvbl9hcmdzKQotICAgICAgICByZXR1cm4gbGluZXMKLQot
ICAgIGRlZiBnZW5lcmF0ZV9kZWZpbmVzX2Zvcl9vYmplY3Qoc2VsZiwgb2JqZWN0KToKLSAgICAg
ICAgbGluZXMgPSBbXQotICAgICAgICBmb3IgZnVuY3Rpb24gaW4gb2JqZWN0LmZ1bmN0aW9uczoK
LSAgICAgICAgICAgIGFyZ3MgPSB7Ci0gICAgICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2Vs
Zi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwKLSAgICAgICAgICAg
ICAgICAnb2JqZWN0TWFjcm8nOiBvYmplY3Qub2JqZWN0X25hbWUucmVwbGFjZSgnLicsICcnKS51
cHBlcigpLAotICAgICAgICAgICAgICAgICdmdW5jdGlvbk1hY3JvJzogZnVuY3Rpb24uZnVuY3Rp
b25fbmFtZS51cHBlcigpLAotICAgICAgICAgICAgfQotICAgICAgICAgICAgbGluZXMuYXBwZW5k
KCIjZGVmaW5lICUobWFjcm9QcmVmaXgpc19CVUlMVElOXyUob2JqZWN0TWFjcm8pc18lKGZ1bmN0
aW9uTWFjcm8pcyAxIiAlIGFyZ3MpCi0KLSAgICAgICAgcmV0dXJuIGxpbmVzCi0KLSAgICBkZWYg
Z2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV90YWJsZV9tYWNybyhzZWxmKToKLSAgICAgICAgYXJn
cyA9IHsKLSAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsu
c2V0dGluZygnbWFjcm9fcHJlZml4JyksCi0gICAgICAgIH0KLQotICAgICAgICBsaW5lcyA9IFtd
Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgiI2RlZmluZSAlKG1hY3JvUHJlZml4KXNfRk9SRUFDSF9C
VUlMVElOX0NPREUobWFjcm8pIFxcIiAlIGFyZ3MpCi0gICAgICAgIGZvciBmdW5jdGlvbiBpbiBz
ZWxmLm1vZGVsKCkuYWxsX2Z1bmN0aW9ucygpOgotICAgICAgICAgICAgZnVuY3Rpb25fYXJncyA9
IHsKLSAgICAgICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1lLAot
ICAgICAgICAgICAgICAgICdjb2RlTmFtZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1l
Rm9yRnVuY3Rpb24oZnVuY3Rpb24pICsgJ0NvZGUnLAotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGNvZGVOYW1lKXMsICUoZnVuY05hbWUpcywg
c18lKGNvZGVOYW1lKXNMZW5ndGgpIFxcIiAlIGZ1bmN0aW9uX2FyZ3MpCi0gICAgICAgIHJldHVy
biAnXG4nLmpvaW4obGluZXMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9u
YW1lX21hY3JvKHNlbGYpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ21hY3JvUHJl
Zml4Jzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwKLSAg
ICAgICAgfQotCi0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVm
aW5lICUobWFjcm9QcmVmaXgpc19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykg
XFwiICUgYXJncykKLSAgICAgICAgdW5pcXVlX25hbWVzID0gbGlzdChzZXQoW2Z1bmN0aW9uLmZ1
bmN0aW9uX25hbWUgZm9yIGZ1bmN0aW9uIGluIHNlbGYubW9kZWwoKS5hbGxfZnVuY3Rpb25zKCld
KSkKLSAgICAgICAgdW5pcXVlX25hbWVzLnNvcnQoKQotICAgICAgICBmb3IgZnVuY3Rpb25fbmFt
ZSBpbiB1bmlxdWVfbmFtZXM6Ci0gICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0gewotICAgICAg
ICAgICAgICAgICdmdW5jTmFtZSc6IGZ1bmN0aW9uX25hbWUsCi0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1hY3JvKCUoZnVuY05hbWUpcykgXFwiICUgZnVu
Y3Rpb25fYXJncykKLSAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRl
X2NvbWJpbmVkX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Njcmlw
dHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyODc4ZDM2MTBiYzNkMTM5N2RjMTE1ODNi
NGQzOWI4MmY0MjZkODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2Vu
ZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5MCAr
MCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IChjKSAyMDE0LCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChjKSAyMDE0
IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9y
dCByZQotaW1wb3J0IHN0cmluZwotZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBsYXRlCi0KLWZyb20g
YnVpbHRpbnNfZ2VuZXJhdG9yIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvcgotZnJvbSBidWlsdGlu
c19tb2RlbCBpbXBvcnQgRnJhbWV3b3JrLCBGcmFtZXdvcmtzCi1mcm9tIGJ1aWx0aW5zX3RlbXBs
YXRlcyBpbXBvcnQgQnVpbHRpbnNHZW5lcmF0b3JUZW1wbGF0ZXMgYXMgVGVtcGxhdGVzCi0KLWxv
ZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdnbG9iYWwnKQotCi0KLWNsYXNzIEJ1aWx0aW5zQ29tYmlu
ZWRJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihCdWlsdGluc0dlbmVyYXRvcik6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIG1vZGVsKToKLSAgICAgICAgQnVpbHRpbnNHZW5lcmF0b3IuX19pbml0X18o
c2VsZiwgbW9kZWwpCi0KLSAgICBkZWYgb3V0cHV0X2ZpbGVuYW1lKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gIiVzQnVpbHRpbnMuY3BwIiAlIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygn
bmFtZXNwYWNlJykKLQotICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6Ci0gICAgICAgIGFy
Z3MgPSB7Ci0gICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5z
ZXR0aW5nKCduYW1lc3BhY2UnKSwKLSAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubW9k
ZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJlZml4JyksCi0gICAgICAgIH0KLQotICAg
ICAgICBzZWN0aW9ucyA9IFtdCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRl
X2xpY2Vuc2UoKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5E
b05vdEVkaXRXYXJuaW5nKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBl
bmQoc2VsZi5nZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXMoKSkKLSAgICAgICAgc2VjdGlvbnMuYXBw
ZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VUb3ApLnN1YnN0aXR1dGUoYXJncykpCi0g
ICAgICAgIGZvciBmdW5jdGlvbiBpbiBzZWxmLm1vZGVsKCkuYWxsX2Z1bmN0aW9ucygpOgotICAg
ICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfZW1iZWRkZWRfY29kZV9zdHJp
bmdfc2VjdGlvbl9mb3JfZnVuY3Rpb24oZnVuY3Rpb24pKQotICAgICAgICBpZiBzZWxmLm1vZGVs
KCkuZnJhbWV3b3JrIGlzIEZyYW1ld29ya3MuSmF2YVNjcmlwdENvcmU6Ci0gICAgICAgICAgICBz
ZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkNvbWJpbmVkSlNDSW1wbGVtZW50YXRp
b25TdGF0aWNNYWNyb3MpLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIGVsaWYgc2VsZi5tb2Rl
bCgpLmZyYW1ld29yayBpcyBGcmFtZXdvcmtzLldlYkNvcmU6Ci0gICAgICAgICAgICBzZWN0aW9u
cy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkNvbWJpbmVkV2ViQ29yZUltcGxlbWVudGF0aW9u
U3RhdGljTWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
VGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLQot
ICAgICAgICByZXR1cm4gIlxuXG4iLmpvaW4oc2VjdGlvbnMpCi0KLSAgICBkZWYgZ2VuZXJhdGVf
aGVhZGVyX2luY2x1ZGVzKHNlbGYpOgotICAgICAgICBoZWFkZXJfaW5jbHVkZXMgPSBbCi0gICAg
ICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSJdLAotICAgICAgICAgICAgICAgICgiSmF2YVNjcmlw
dENvcmUiLCAiYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgiKSwKLSAgICAgICAgICAgICks
Ci0gICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCi0gICAgICAgICAg
ICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0V4ZWN1dGFibGUuaCIpLAotICAgICAg
ICAgICAgKSwKLSAgICAgICAgICAgIChbIkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiXSwKLSAg
ICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgInJ1bnRpbWUvSlNDZWxsSW5saW5lcy5o
IiksCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAg
ICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgiKSwK
LSAgICAgICAgICAgICksCi0gICAgICAgICAgICAoWyJXZWJDb3JlIl0sCi0gICAgICAgICAgICAg
ICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgiKSwKLSAg
ICAgICAgICAgICksCi0gICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0s
Ci0gICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL1ZNLmgiKSwKLSAg
ICAgICAgICAgICksCi0gICAgICAgIF0KLQotICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYu
Z2VuZXJhdGVfaW5jbHVkZXNfZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5l
cmF0ZV9mcmFtZXdvcmtfbWFjcm9zLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
YnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3b3JrX21hY3Jvcy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MDVjMzBhNjUzMmM2NjY5ZGNhM2JiYWY4MGQ4ZDhhZjYyYTZmM2VkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2Vu
ZXJhdGVfZnJhbWV3b3JrX21hY3Jvcy5weQpAQCAtMCwwICsxLDEwNiBAQAorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hp
bmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgcmUKK2ltcG9ydCBzdHJpbmcK
K2Zyb20gc3RyaW5nIGltcG9ydCBUZW1wbGF0ZQorCitmcm9tIGJ1aWx0aW5zX2dlbmVyYXRvciBp
bXBvcnQgQnVpbHRpbnNHZW5lcmF0b3IKK2Zyb20gYnVpbHRpbnNfdGVtcGxhdGVzIGltcG9ydCBC
dWlsdGluc0dlbmVyYXRvclRlbXBsYXRlcyBhcyBUZW1wbGF0ZXMKKworbG9nID0gbG9nZ2luZy5n
ZXRMb2dnZXIoJ2dsb2JhbCcpCisKKworY2xhc3MgQnVpbHRpbnNGcmFtZXdvcmtNYWNyb3NHZW5l
cmF0b3IoQnVpbHRpbnNHZW5lcmF0b3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2RlbCk6
CisgICAgICAgIEJ1aWx0aW5zR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsKQorCisgICAg
ZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuICIlc0J1aWx0aW5zTWFj
cm9zLmgiICUgc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKQorCisg
ICAgZGVmIGdlbmVyYXRlX291dHB1dChzZWxmKToKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAg
ICAgICduYW1lc3BhY2UnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ25hbWVzcGFj
ZScpLAorICAgICAgICAgICAgJ2hlYWRlckd1YXJkJzogc2VsZi5vdXRwdXRfZmlsZW5hbWUoKS5y
ZXBsYWNlKCcuJywgJ18nKSwKKyAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubW9kZWwo
KS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJlZml4JyksCisgICAgICAgIH0KKworICAgICAg
ICBzZWN0aW9ucyA9IFtdCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX2xp
Y2Vuc2UoKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5Eb05v
dEVkaXRXYXJuaW5nKS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
VGVtcGxhdGUoVGVtcGxhdGVzLkhlYWRlckluY2x1ZGVHdWFyZFRvcCkuc3Vic3RpdHV0ZShhcmdz
KSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfaGVhZGVyX2luY2x1ZGVz
KCkpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNl
VG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5l
cmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX2l0ZXJhdGlvbl9tYWNybygpKQorICAgICAgICBzZWN0aW9u
cy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWN0aW9uX2Zvcl9uYW1lX2l0ZXJhdGlvbl9tYWNybygp
KQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJv
dHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRl
KFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCisK
KyAgICAgICAgcmV0dXJuICJcblxuIi5qb2luKHNlY3Rpb25zKQorCisgICAgZGVmIGdlbmVyYXRl
X2hlYWRlcl9pbmNsdWRlcyhzZWxmKToKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBmb3Ig
b2JqZWN0IGluIHNlbGYubW9kZWwoKS5vYmplY3RzOgorICAgICAgICAgICAgbGluZXMuYXBwZW5k
KCcjaW5jbHVkZSAiJXNCdWlsdGlucy5oIicgJSBCdWlsdGluc0dlbmVyYXRvci5tYW5nbGVkTmFt
ZUZvck9iamVjdChvYmplY3QpKQorCisgICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCisK
KyAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9pdGVyYXRpb25fbWFjcm8oc2VsZik6
CisgICAgICAgIG1hY3JvUHJlZml4ID0gc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdt
YWNyb19wcmVmaXgnKQorICAgICAgICBhcmdzID0geworICAgICAgICAgICAgJ21hY3JvUHJlZml4
JzogbWFjcm9QcmVmaXgsCisgICAgICAgIH0KKworICAgICAgICBsaW5lcyA9IFtdCisgICAgICAg
IGxpbmVzLmFwcGVuZCgiI2RlZmluZSAlKG1hY3JvUHJlZml4KXNfRk9SRUFDSF9CVUlMVElOX0NP
REUobWFjcm8pIFxcIiAlIGFyZ3MpCisgICAgICAgIGZvciBvYmplY3QgaW4gc2VsZi5tb2RlbCgp
Lm9iamVjdHM6CisgICAgICAgICAgICBvYmplY3RfYXJncyA9IHsKKyAgICAgICAgICAgICAgICAn
bWFjcm9QcmVmaXgnOiBtYWNyb1ByZWZpeCwKKyAgICAgICAgICAgICAgICAnb2JqZWN0TWFjcm8n
OiBvYmplY3Qub2JqZWN0X25hbWUucmVwbGFjZSgnLicsICdfJykudXBwZXIoKSwKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgJShtYWNyb1ByZWZpeClzX0ZP
UkVBQ0hfJShvYmplY3RNYWNybylzX0JVSUxUSU5fQ09ERShtYWNybykgXFwiICUgb2JqZWN0X2Fy
Z3MpCisgICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCisKKyAgICBkZWYgZ2VuZXJhdGVf
c2VjdGlvbl9mb3JfbmFtZV9pdGVyYXRpb25fbWFjcm8oc2VsZik6CisgICAgICAgIGFyZ3MgPSB7
CisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRp
bmcoJ21hY3JvX3ByZWZpeCcpLAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBbXQorICAg
ICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfVU5JUVVF
X0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFwiICUgYXJncykKKyAgICAgICAgdW5pcXVl
X25hbWVzID0gbGlzdChzZXQoW2Z1bmN0aW9uLmZ1bmN0aW9uX25hbWUgZm9yIGZ1bmN0aW9uIGlu
IHNlbGYubW9kZWwoKS5hbGxfZnVuY3Rpb25zKCldKSkKKyAgICAgICAgdW5pcXVlX25hbWVzLnNv
cnQoKQorICAgICAgICBmb3IgZnVuY3Rpb25fbmFtZSBpbiB1bmlxdWVfbmFtZXM6CisgICAgICAg
ICAgICBmdW5jdGlvbl9hcmdzID0geworICAgICAgICAgICAgICAgICdmdW5jTmFtZSc6IGZ1bmN0
aW9uX25hbWUsCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAg
IG1hY3JvKCUoZnVuY05hbWUpcykgXFwiICUgZnVuY3Rpb25fYXJncykKKyAgICAgICAgcmV0dXJu
ICdcbicuam9pbihsaW5lcykKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRlci5weSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29iamVj
dF9oZWFkZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTExYWRiMzQ2NzEwN2JmYTA1NTJiZmQzNWJkZDczMzcy
M2M0ZTQwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkKQEAgLTAsMCArMSwx
NzcgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQg
VW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitpbXBvcnQgbG9nZ2luZworaW1wb3J0
IHJlCitpbXBvcnQgc3RyaW5nCitmcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKKworZnJvbSBi
dWlsdGluc19nZW5lcmF0b3IgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yCitmcm9tIGJ1aWx0aW5z
X3RlbXBsYXRlcyBpbXBvcnQgQnVpbHRpbnNHZW5lcmF0b3JUZW1wbGF0ZXMgYXMgVGVtcGxhdGVz
CisKK2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdnbG9iYWwnKQorCisKK2NsYXNzIEJ1aWx0aW5z
T2JqZWN0SGVhZGVyR2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbW9kZWwsIG9iamVjdCk6CisgICAgICAgIEJ1aWx0aW5zR2VuZXJhdG9yLl9faW5p
dF9fKHNlbGYsIG1vZGVsKQorICAgICAgICBzZWxmLm9iamVjdCA9IG9iamVjdAorCisgICAgZGVm
IG91dHB1dF9maWxlbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuICIlc0J1aWx0aW5zLmgiICUg
QnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JPYmplY3Qoc2VsZi5vYmplY3QpCisKKyAg
ICBkZWYgbWFjcm9fcHJlZml4KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tb2RlbCgpLmZy
YW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKQorCisgICAgZGVmIGdlbmVyYXRlX291dHB1
dChzZWxmKToKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICduYW1lc3BhY2UnOiBzZWxm
Lm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ25hbWVzcGFjZScpLAorICAgICAgICAgICAgJ2hl
YWRlckd1YXJkJzogc2VsZi5vdXRwdXRfZmlsZW5hbWUoKS5yZXBsYWNlKCcuJywgJ18nKSwKKyAg
ICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubWFjcm9fcHJlZml4KCksCisgICAgICAgICAg
ICAnb2JqZWN0TWFjcm8nOiBzZWxmLm9iamVjdC5vYmplY3RfbmFtZS5yZXBsYWNlKCcuJywgJ18n
KS51cHBlcigpLAorICAgICAgICB9CisKKyAgICAgICAgc2VjdGlvbnMgPSBbXQorICAgICAgICBz
ZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNlKCkpCisgICAgICAgIHNlY3Rpb25z
LmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0V2FybmluZykuc3Vic3RpdHV0ZShh
cmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJ
bmNsdWRlR3VhcmRUb3ApLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVu
ZChzZWxmLmdlbmVyYXRlX2hlYWRlcl9pbmNsdWRlcygpKQorICAgICAgICBzZWN0aW9ucy5hcHBl
bmQoc2VsZi5nZW5lcmF0ZV9mb3J3YXJkX2RlY2xhcmF0aW9ucygpKQorICAgICAgICBzZWN0aW9u
cy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZVRvcCkuc3Vic3RpdHV0ZShhcmdz
KSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2Jq
ZWN0KHNlbGYub2JqZWN0KSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVf
c2VjdGlvbl9mb3JfY29kZV90YWJsZV9tYWNybygpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
c2VsZi5nZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFjcm8oKSkKKyAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5PYmplY3RIZWFkZXJTdGF0aWNNYWNyb3Mp
LnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1w
bGF0ZXMuTmFtZXNwYWNlQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBzZWN0aW9u
cy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkhlYWRlckluY2x1ZGVHdWFyZEJvdHRvbSkuc3Vi
c3RpdHV0ZShhcmdzKSkKKworICAgICAgICByZXR1cm4gIlxuXG4iLmpvaW4oc2VjdGlvbnMpCisK
KyAgICBkZWYgZ2VuZXJhdGVfZm9yd2FyZF9kZWNsYXJhdGlvbnMoc2VsZik6CisgICAgICAgIHJl
dHVybiAiIiJuYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNz
IFZNOworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7Cit9IiIiCisKKyAg
ICBkZWYgZ2VuZXJhdGVfaGVhZGVyX2luY2x1ZGVzKHNlbGYpOgorICAgICAgICBoZWFkZXJfaW5j
bHVkZXMgPSBbCisgICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCisg
ICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJidWlsdGlucy9CdWlsdGluVXRpbHMu
aCIpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgXQorCisgICAgICAgIHJldHVybiAnXG4nLmpv
aW4oc2VsZi5nZW5lcmF0ZV9pbmNsdWRlc19mcm9tX2VudHJpZXMoaGVhZGVyX2luY2x1ZGVzKSkK
KworICAgIGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9vYmplY3Qoc2VsZiwgb2JqZWN0KToKKyAg
ICAgICAgbGluZXMgPSBbXQorICAgICAgICBsaW5lcy5hcHBlbmQoJy8qICVzICovJyAlIG9iamVj
dC5vYmplY3RfbmFtZSkKKyAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2VuZXJhdGVfZXh0ZXJu
c19mb3Jfb2JqZWN0KG9iamVjdCkpCisgICAgICAgIGxpbmVzLmFwcGVuZCgiIikKKyAgICAgICAg
bGluZXMuZXh0ZW5kKHNlbGYuZ2VuZXJhdGVfbWFjcm9zX2Zvcl9vYmplY3Qob2JqZWN0KSkKKyAg
ICAgICAgbGluZXMuYXBwZW5kKCIiKQorICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5nZW5lcmF0
ZV9kZWZpbmVzX2Zvcl9vYmplY3Qob2JqZWN0KSkKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihs
aW5lcykKKworICAgIGRlZiBnZW5lcmF0ZV9leHRlcm5zX2Zvcl9vYmplY3Qoc2VsZiwgb2JqZWN0
KToKKyAgICAgICAgbGluZXMgPSBbXQorCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBvYmplY3Qu
ZnVuY3Rpb25zOgorICAgICAgICAgICAgZnVuY3Rpb25fYXJncyA9IHsKKyAgICAgICAgICAgICAg
ICAnY29kZU5hbWUnOiBCdWlsdGluc0dlbmVyYXRvci5tYW5nbGVkTmFtZUZvckZ1bmN0aW9uKGZ1
bmN0aW9uKSArICdDb2RlJywKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGluZXMuYXBw
ZW5kKCIiImV4dGVybiBjb25zdCBjaGFyKiBzXyUoY29kZU5hbWUpczsKK2V4dGVybiBjb25zdCBp
bnQgc18lKGNvZGVOYW1lKXNMZW5ndGg7CitleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfJShjb2RlTmFtZSlzQ29uc3RydWN0QWJpbGl0eTsiIiIgJSBmdW5jdGlvbl9hcmdzKQor
CisgICAgICAgIHJldHVybiBsaW5lcworCisgICAgZGVmIGdlbmVyYXRlX21hY3Jvc19mb3Jfb2Jq
ZWN0KHNlbGYsIG9iamVjdCk6CisgICAgICAgIGFyZ3MgPSB7CisgICAgICAgICAgICAnbWFjcm9Q
cmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgpLAorICAgICAgICAgICAgJ29iamVjdE1hY3JvJzog
b2JqZWN0Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnXycpLnVwcGVyKCksCisgICAgICAgIH0K
KworICAgICAgICBsaW5lcyA9IFtdCisgICAgICAgIGxpbmVzLmFwcGVuZCgiI2RlZmluZSAlKG1h
Y3JvUHJlZml4KXNfRk9SRUFDSF8lKG9iamVjdE1hY3JvKXNfQlVJTFRJTl9EQVRBKG1hY3JvKSBc
XCIgJSBhcmdzKQorICAgICAgICBmb3IgZnVuY3Rpb24gaW4gb2JqZWN0LmZ1bmN0aW9uczoKKyAg
ICAgICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7CisgICAgICAgICAgICAgICAgJ2Z1bmNOYW1lJzog
ZnVuY3Rpb24uZnVuY3Rpb25fbmFtZSwKKyAgICAgICAgICAgICAgICAnbWFuZ2xlZE5hbWUnOiBC
dWlsdGluc0dlbmVyYXRvci5tYW5nbGVkTmFtZUZvckZ1bmN0aW9uKGZ1bmN0aW9uKSwKKyAgICAg
ICAgICAgICAgICAncGFyYW1Db3VudCc6IGxlbihmdW5jdGlvbi5wYXJhbWV0ZXJzKSwKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgbWFjcm8oJShmdW5jTmFt
ZSlzLCAlKG1hbmdsZWROYW1lKXMsICUocGFyYW1Db3VudClkKSBcXCIgJSBmdW5jdGlvbl9hcmdz
KQorICAgICAgICByZXR1cm4gbGluZXMKKworICAgIGRlZiBnZW5lcmF0ZV9kZWZpbmVzX2Zvcl9v
YmplY3Qoc2VsZiwgb2JqZWN0KToKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBmb3IgZnVu
Y3Rpb24gaW4gb2JqZWN0LmZ1bmN0aW9uczoKKyAgICAgICAgICAgIGFyZ3MgPSB7CisgICAgICAg
ICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tYWNyb19wcmVmaXgoKSwKKyAgICAgICAgICAg
ICAgICAnb2JqZWN0TWFjcm8nOiBvYmplY3Qub2JqZWN0X25hbWUucmVwbGFjZSgnLicsICdfJyku
dXBwZXIoKSwKKyAgICAgICAgICAgICAgICAnZnVuY3Rpb25NYWNybyc6IGZ1bmN0aW9uLmZ1bmN0
aW9uX25hbWUudXBwZXIoKSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxpbmVzLmFwcGVu
ZCgiI2RlZmluZSAlKG1hY3JvUHJlZml4KXNfQlVJTFRJTl8lKG9iamVjdE1hY3JvKXNfJShmdW5j
dGlvbk1hY3JvKXMgMSIgJSBhcmdzKQorCisgICAgICAgIHJldHVybiBsaW5lcworCisgICAgZGVm
IGdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfdGFibGVfbWFjcm8oc2VsZik6CisgICAgICAgIGFy
Z3MgPSB7CisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3Jr
LnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpLAorICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogc2Vs
Zi5vYmplY3Qub2JqZWN0X25hbWUucmVwbGFjZSgnLicsICdfJykudXBwZXIoKSwKKyAgICAgICAg
fQorCisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVmaW5lICUo
bWFjcm9QcmVmaXgpc19GT1JFQUNIXyUob2JqZWN0TWFjcm8pc19CVUlMVElOX0NPREUobWFjcm8p
IFxcIiAlIGFyZ3MpCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBzZWxmLm9iamVjdC5mdW5jdGlv
bnM6CisgICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0geworICAgICAgICAgICAgICAgICdmdW5j
TmFtZSc6IGZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUsCisgICAgICAgICAgICAgICAgJ2NvZGVOYW1l
JzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlvbikgKyAn
Q29kZScsCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1h
Y3JvKCUoY29kZU5hbWUpcywgJShmdW5jTmFtZSlzLCBzXyUoY29kZU5hbWUpc0xlbmd0aCkgXFwi
ICUgZnVuY3Rpb25fYXJncykKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKKworICAg
IGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFjcm8oc2VsZik6CisgICAgICAg
IGFyZ3MgPSB7CisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgp
LAorICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogc2VsZi5vYmplY3Qub2JqZWN0X25hbWUucmVw
bGFjZSgnLicsICdfJykudXBwZXIoKSwKKyAgICAgICAgfQorCisgICAgICAgIGxpbmVzID0gW10K
KyAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVmaW5lICUobWFjcm9QcmVmaXgpc19GT1JFQUNIXyUo
b2JqZWN0TWFjcm8pc19CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFxcIiAlIGFyZ3MpCisg
ICAgICAgIHVuaXF1ZV9uYW1lcyA9IGxpc3Qoc2V0KFtmdW5jdGlvbi5mdW5jdGlvbl9uYW1lIGZv
ciBmdW5jdGlvbiBpbiBzZWxmLm9iamVjdC5mdW5jdGlvbnNdKSkKKyAgICAgICAgdW5pcXVlX25h
bWVzLnNvcnQoKQorICAgICAgICBmb3IgZnVuY3Rpb25fbmFtZSBpbiB1bmlxdWVfbmFtZXM6Cisg
ICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0geworICAgICAgICAgICAgICAgICdmdW5jTmFtZSc6
IGZ1bmN0aW9uX25hbWUsCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFwcGVu
ZCgiICAgIG1hY3JvKCUoZnVuY05hbWUpcykgXFwiICUgZnVuY3Rpb25fYXJncykKKyAgICAgICAg
cmV0dXJuICdcbicuam9pbihsaW5lcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9pbXBsZW1lbnRhdGlv
bi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dl
bmVyYXRlX29iamVjdF9pbXBsZW1lbnRhdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzY1NzFmYjY2Njg1
MTE3OTI2YWE4NzU4YWIwZGUwYWY4OWYwMWFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2lt
cGxlbWVudGF0aW9uLnB5CkBAIC0wLDAgKzEsOTkgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgor
IworIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCitpbXBvcnQgc3RyaW5nCitmcm9tIHN0cmlu
ZyBpbXBvcnQgVGVtcGxhdGUKKworZnJvbSBidWlsdGluc19nZW5lcmF0b3IgaW1wb3J0IEJ1aWx0
aW5zR2VuZXJhdG9yLCBXS19sY2ZpcnN0Citmcm9tIGJ1aWx0aW5zX21vZGVsIGltcG9ydCBGcmFt
ZXdvcmssIEZyYW1ld29ya3MKK2Zyb20gYnVpbHRpbnNfdGVtcGxhdGVzIGltcG9ydCBCdWlsdGlu
c0dlbmVyYXRvclRlbXBsYXRlcyBhcyBUZW1wbGF0ZXMKKworbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoJ2dsb2JhbCcpCisKKworY2xhc3MgQnVpbHRpbnNPYmplY3RJbXBsZW1lbnRhdGlvbkdlbmVy
YXRvcihCdWlsdGluc0dlbmVyYXRvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1vZGVsLCBv
YmplY3QpOgorICAgICAgICBCdWlsdGluc0dlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2RlbCkK
KyAgICAgICAgc2VsZi5vYmplY3QgPSBvYmplY3QKKworICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUo
c2VsZik6CisgICAgICAgIHJldHVybiAiJXNCdWlsdGlucy5jcHAiICUgQnVpbHRpbnNHZW5lcmF0
b3IubWFuZ2xlZE5hbWVGb3JPYmplY3Qoc2VsZi5vYmplY3QpCisKKyAgICBkZWYgbWFjcm9fcHJl
Zml4KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5n
KCdtYWNyb19wcmVmaXgnKQorCisgICAgZGVmIGdlbmVyYXRlX291dHB1dChzZWxmKToKKyAgICAg
ICAgYXJncyA9IHsKKyAgICAgICAgICAgICduYW1lc3BhY2UnOiBzZWxmLm1vZGVsKCkuZnJhbWV3
b3JrLnNldHRpbmcoJ25hbWVzcGFjZScpLAorICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2Vs
Zi5tYWNyb19wcmVmaXgoKSwKKyAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0
Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnXycpLnVwcGVyKCksCisgICAgICAgICAgICAnb2Jq
ZWN0TmFtZUxDJzogV0tfbGNmaXJzdChzZWxmLm9iamVjdC5vYmplY3RfbmFtZSksCisgICAgICAg
IH0KKworICAgICAgICBzZWN0aW9ucyA9IFtdCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxm
LmdlbmVyYXRlX2xpY2Vuc2UoKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRl
bXBsYXRlcy5Eb05vdEVkaXRXYXJuaW5nKS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBzZWN0
aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXMoKSkKKyAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VUb3ApLnN1YnN0aXR1dGUo
YXJncykpCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBzZWxmLm9iamVjdC5mdW5jdGlvbnM6Cisg
ICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9lbWJlZGRlZF9jb2RlX3N0
cmluZ19zZWN0aW9uX2Zvcl9mdW5jdGlvbihmdW5jdGlvbikpCisgICAgICAgIGlmIHNlbGYubW9k
ZWwoKS5mcmFtZXdvcmsgaXMgRnJhbWV3b3Jrcy5KYXZhU2NyaXB0Q29yZToKKyAgICAgICAgICAg
IHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuT2JqZWN0SlNDSW1wbGVtZW50YXRp
b25TdGF0aWNNYWNyb3MpLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIGVsaWYgc2VsZi5tb2Rl
bCgpLmZyYW1ld29yayBpcyBGcmFtZXdvcmtzLldlYkNvcmU6CisgICAgICAgICAgICBzZWN0aW9u
cy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk9iamVjdFdlYkNvcmVJbXBsZW1lbnRhdGlvblN0
YXRpY01hY3Jvcykuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRl
bXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCisKKyAg
ICAgICAgcmV0dXJuICJcblxuIi5qb2luKHNlY3Rpb25zKQorCisgICAgZGVmIGdlbmVyYXRlX2hl
YWRlcl9pbmNsdWRlcyhzZWxmKToKKyAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWworICAgICAg
ICAgICAgKFsiSmF2YVNjcmlwdENvcmUiXSwKKyAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRD
b3JlIiwgImJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oIiksCisgICAgICAgICAgICApLAor
ICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAorICAgICAgICAgICAg
ICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9FeGVjdXRhYmxlLmgiKSwKKyAgICAgICAg
ICAgICksCisgICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCisgICAg
ICAgICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0pTQ2VsbElubGluZXMuaCIp
LAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIChbIldlYkNvcmUiXSwKKyAgICAgICAgICAg
ICAgICAoIkphdmFTY3JpcHRDb3JlIiwgInJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIiksCisg
ICAgICAgICAgICApLAorICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAg
ICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIiksCisgICAg
ICAgICAgICApLAorICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAor
ICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9WTS5oIiksCisgICAg
ICAgICAgICApLAorICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgi
V2ViQ29yZSIsICJiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgiKSwKKyAgICAgICAg
ICAgICksCisgICAgICAgIF0KKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2VuZXJh
dGVfaW5jbHVkZXNfZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9v
YmplY3Rfd3JhcHBlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5z
L2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF93cmFwcGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNDZmNTFj
YmNiNTdkMjFlODZlNjhlMDk5NWRkNzFiMzI5NDFkYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9vYmpl
Y3Rfd3JhcHBlci5weQpAQCAtMCwwICsxLDk0IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMK
KyMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCByZQoraW1wb3J0IHN0cmluZworZnJvbSBzdHJpbmcg
aW1wb3J0IFRlbXBsYXRlCisKK2Zyb20gYnVpbHRpbnNfZ2VuZXJhdG9yIGltcG9ydCBCdWlsdGlu
c0dlbmVyYXRvcgorZnJvbSBidWlsdGluc190ZW1wbGF0ZXMgaW1wb3J0IEJ1aWx0aW5zR2VuZXJh
dG9yVGVtcGxhdGVzIGFzIFRlbXBsYXRlcworCitsb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xv
YmFsJykKKworCitjbGFzcyBCdWlsdGluc09iamVjdFdyYXBwZXJHZW5lcmF0b3IoQnVpbHRpbnNH
ZW5lcmF0b3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2RlbCwgb2JqZWN0KToKKyAgICAg
ICAgQnVpbHRpbnNHZW5lcmF0b3IuX19pbml0X18oc2VsZiwgbW9kZWwpCisgICAgICAgIHNlbGYu
b2JqZWN0ID0gb2JqZWN0CisKKyAgICBkZWYgb3V0cHV0X2ZpbGVuYW1lKHNlbGYpOgorICAgICAg
ICByZXR1cm4gIiVzQnVpbHRpbnNXcmFwcGVyLmgiICUgQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xl
ZE5hbWVGb3JPYmplY3Qoc2VsZi5vYmplY3QpCisKKyAgICBkZWYgbWFjcm9fcHJlZml4KHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19w
cmVmaXgnKQorCisgICAgZGVmIGdlbmVyYXRlX291dHB1dChzZWxmKToKKyAgICAgICAgYXJncyA9
IHsKKyAgICAgICAgICAgICduYW1lc3BhY2UnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRp
bmcoJ25hbWVzcGFjZScpLAorICAgICAgICAgICAgJ2hlYWRlckd1YXJkJzogc2VsZi5vdXRwdXRf
ZmlsZW5hbWUoKS5yZXBsYWNlKCcuJywgJ18nKSwKKyAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6
IHNlbGYubWFjcm9fcHJlZml4KCksCisgICAgICAgICAgICAnb2JqZWN0TmFtZSc6IHNlbGYub2Jq
ZWN0Lm9iamVjdF9uYW1lLAorICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogc2VsZi5vYmplY3Qu
b2JqZWN0X25hbWUudXBwZXIoKSwKKyAgICAgICAgfQorCisgICAgICAgIHNlY3Rpb25zID0gW10K
KyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGljZW5zZSgpKQorICAgICAg
ICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90RWRpdFdhcm5pbmcpLnN1
YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0
ZXMuSGVhZGVySW5jbHVkZUd1YXJkVG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBzZWN0
aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXMoKSkKKyAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VUb3ApLnN1YnN0aXR1dGUo
YXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuT2JqZWN0
V3JhcHBlckhlYWRlckJvaWxlcnBsYXRlKS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBzZWN0
aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0
ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFk
ZXJJbmNsdWRlR3VhcmRCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCisKKyAgICAgICAgcmV0dXJu
ICJcblxuIi5qb2luKHNlY3Rpb25zKQorCisgICAgZGVmIGdlbmVyYXRlX2hlYWRlcl9pbmNsdWRl
cyhzZWxmKToKKyAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWworICAgICAgICAgICAgKFsiV2Vi
Q29yZSJdLAorICAgICAgICAgICAgICAgICgiV2ViQ29yZSIsICIlc0J1aWx0aW5zLmgiICUgc2Vs
Zi5vYmplY3Qub2JqZWN0X25hbWUpLAorICAgICAgICAgICAgKSwKKworICAgICAgICAgICAgKFsi
V2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAiYnl0ZWNvZGUv
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCIpLAorICAgICAgICAgICAgKSwKKworICAgICAg
ICAgICAgKFsiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAi
YnVpbHRpbnMvQnVpbHRpblV0aWxzLmgiKSwKKyAgICAgICAgICAgICksCisKKyAgICAgICAgICAg
IChbIldlYkNvcmUiXSwKKyAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgInJ1bnRp
bWUvSWRlbnRpZmllci5oIiksCisgICAgICAgICAgICApLAorCisgICAgICAgICAgICAoWyJXZWJD
b3JlIl0sCisgICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0pTRnVu
Y3Rpb24uaCIpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgXQorCisgICAgICAgIHJldHVybiAn
XG4nLmpvaW4oc2VsZi5nZW5lcmF0ZV9pbmNsdWRlc19mcm9tX2VudHJpZXMoaGVhZGVyX2luY2x1
ZGVzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5z
L2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWIxZWI3ZDY3MWNhMTFjMzU4YTUxOTdk
YWRhZGU3OTUxOTBkMDAzMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19n
ZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBA
QAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoYykgMjAxNCBVbml2
ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0jIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0jIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgcmUK
LWltcG9ydCBzdHJpbmcKLWZyb20gc3RyaW5nIGltcG9ydCBUZW1wbGF0ZQotCi1mcm9tIGJ1aWx0
aW5zX2dlbmVyYXRvciBpbXBvcnQgQnVpbHRpbnNHZW5lcmF0b3IKLWZyb20gYnVpbHRpbnNfdGVt
cGxhdGVzIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvclRlbXBsYXRlcyBhcyBUZW1wbGF0ZXMKLQot
bG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2dsb2JhbCcpCi0KLQotY2xhc3MgQnVpbHRpbnNTZXBh
cmF0ZUhlYWRlckdlbmVyYXRvcihCdWlsdGluc0dlbmVyYXRvcik6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIG1vZGVsLCBvYmplY3QpOgotICAgICAgICBCdWlsdGluc0dlbmVyYXRvci5fX2luaXRf
XyhzZWxmLCBtb2RlbCkKLSAgICAgICAgc2VsZi5vYmplY3QgPSBvYmplY3QKLQotICAgIGRlZiBv
dXRwdXRfZmlsZW5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAiJXNCdWlsdGlucy5oIiAlIEJ1
aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1lRm9yT2JqZWN0KHNlbGYub2JqZWN0KQotCi0gICAg
ZGVmIG1hY3JvX3ByZWZpeChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwoKS5mcmFt
ZXdvcmsuc2V0dGluZygnbWFjcm9fcHJlZml4JykKLQotICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQo
c2VsZik6Ci0gICAgICAgIGFyZ3MgPSB7Ci0gICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5t
b2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKSwKLSAgICAgICAgICAgICdoZWFk
ZXJHdWFyZCc6IHNlbGYub3V0cHV0X2ZpbGVuYW1lKCkucmVwbGFjZSgnLicsICdfJyksCi0gICAg
ICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgpLAotICAgICAgICAgICAg
J29iamVjdE5hbWUnOiBzZWxmLm9iamVjdC5vYmplY3RfbmFtZS51cHBlcigpLAotICAgICAgICB9
Ci0KLSAgICAgICAgc2VjdGlvbnMgPSBbXQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5n
ZW5lcmF0ZV9saWNlbnNlKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1w
bGF0ZXMuRG9Ob3RFZGl0V2FybmluZykuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgc2VjdGlv
bnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRUb3ApLnN1YnN0
aXR1dGUoYXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX2hlYWRl
cl9pbmNsdWRlcygpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9mb3J3
YXJkX2RlY2xhcmF0aW9ucygpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVt
cGxhdGVzLk5hbWVzcGFjZVRvcCkuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgc2VjdGlvbnMu
YXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2JqZWN0KHNlbGYub2JqZWN0KSkKLSAg
ICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV90YWJs
ZV9tYWNybygpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWN0aW9u
X2Zvcl9jb2RlX25hbWVfbWFjcm8oKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRl
KFRlbXBsYXRlcy5TZXBhcmF0ZUhlYWRlclN0YXRpY01hY3Jvcykuc3Vic3RpdHV0ZShhcmdzKSkK
LSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VCb3R0
b20pLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShU
ZW1wbGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3MpKQotCi0g
ICAgICAgIHJldHVybiAiXG5cbiIuam9pbihzZWN0aW9ucykKLQotICAgIGRlZiBnZW5lcmF0ZV9m
b3J3YXJkX2RlY2xhcmF0aW9ucyhzZWxmKToKLSAgICAgICAgcmV0dXJuICIiIm5hbWVzcGFjZSBK
U0MgewotY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotfSIiIgotCi0gICAgZGVmIGdlbmVyYXRl
X2hlYWRlcl9pbmNsdWRlcyhzZWxmKToKLSAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWwotICAg
ICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUi
LCAiYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgiKSwKLSAgICAgICAgICAgICksCi0gICAgICAgIF0K
LQotICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2VuZXJhdGVfaW5jbHVkZXNfZnJvbV9l
bnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3Jf
b2JqZWN0KHNlbGYsIG9iamVjdCk6Ci0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgbGluZXMu
YXBwZW5kKCcvKiAlcyAqLycgJSBvYmplY3Qub2JqZWN0X25hbWUpCi0gICAgICAgIGxpbmVzLmV4
dGVuZChzZWxmLmdlbmVyYXRlX2V4dGVybnNfZm9yX29iamVjdChvYmplY3QpKQotICAgICAgICBs
aW5lcy5hcHBlbmQoIiIpCi0gICAgICAgIGxpbmVzLmV4dGVuZChzZWxmLmdlbmVyYXRlX21hY3Jv
c19mb3Jfb2JqZWN0KG9iamVjdCkpCi0gICAgICAgIGxpbmVzLmFwcGVuZCgiIikKLSAgICAgICAg
bGluZXMuZXh0ZW5kKHNlbGYuZ2VuZXJhdGVfZGVmaW5lc19mb3Jfb2JqZWN0KG9iamVjdCkpCi0g
ICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfZXh0ZXJu
c19mb3Jfb2JqZWN0KHNlbGYsIG9iamVjdCk6Ci0gICAgICAgIGxpbmVzID0gW10KLQotICAgICAg
ICBmb3IgZnVuY3Rpb24gaW4gb2JqZWN0LmZ1bmN0aW9uczoKLSAgICAgICAgICAgIGZ1bmN0aW9u
X2FyZ3MgPSB7Ci0gICAgICAgICAgICAgICAgJ2NvZGVOYW1lJzogQnVpbHRpbnNHZW5lcmF0b3Iu
bWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlvbikgKyAnQ29kZScsCi0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiIiJleHRlcm4gY29uc3QgY2hhciogc18lKGNv
ZGVOYW1lKXM7Ci1leHRlcm4gY29uc3QgaW50IHNfJShjb2RlTmFtZSlzTGVuZ3RoOwotZXh0ZXJu
IGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzXyUoY29kZU5hbWUpc0NvbnN0cnVjdEFiaWxp
dHk7IiIiICUgZnVuY3Rpb25fYXJncykKLQotICAgICAgICByZXR1cm4gbGluZXMKLQotICAgIGRl
ZiBnZW5lcmF0ZV9tYWNyb3NfZm9yX29iamVjdChzZWxmLCBvYmplY3QpOgotICAgICAgICBhcmdz
ID0gewotICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tYWNyb19wcmVmaXgoKSwKLSAg
ICAgICAgICAgICdvYmplY3RNYWNybyc6IG9iamVjdC5vYmplY3RfbmFtZS5yZXBsYWNlKCcuJywg
J18nKS51cHBlcigpLAotICAgICAgICB9Ci0KLSAgICAgICAgbGluZXMgPSBbXQotICAgICAgICBs
aW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfJShvYmplY3RNYWNy
bylzX0JVSUxUSU5fREFUQShtYWNybykgXFwiICUgYXJncykKLSAgICAgICAgZm9yIGZ1bmN0aW9u
IGluIG9iamVjdC5mdW5jdGlvbnM6Ci0gICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0gewotICAg
ICAgICAgICAgICAgICdmdW5jTmFtZSc6IGZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUsCi0gICAgICAg
ICAgICAgICAgJ21hbmdsZWROYW1lJzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JG
dW5jdGlvbihmdW5jdGlvbiksCi0gICAgICAgICAgICAgICAgJ3BhcmFtQ291bnQnOiBsZW4oZnVu
Y3Rpb24ucGFyYW1ldGVycyksCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxpbmVzLmFw
cGVuZCgiICAgIG1hY3JvKCUoZnVuY05hbWUpcywgJShtYW5nbGVkTmFtZSlzLCAlKHBhcmFtQ291
bnQpZCkgXFwiICUgZnVuY3Rpb25fYXJncykKLSAgICAgICAgcmV0dXJuIGxpbmVzCi0KLSAgICBk
ZWYgZ2VuZXJhdGVfZGVmaW5lc19mb3Jfb2JqZWN0KHNlbGYsIG9iamVjdCk6Ci0gICAgICAgIGxp
bmVzID0gW10KLSAgICAgICAgZm9yIGZ1bmN0aW9uIGluIG9iamVjdC5mdW5jdGlvbnM6Ci0gICAg
ICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubWFj
cm9fcHJlZml4KCksCi0gICAgICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogb2JqZWN0Lm9iamVj
dF9uYW1lLnJlcGxhY2UoJy4nLCAnXycpLnVwcGVyKCksCi0gICAgICAgICAgICAgICAgJ2Z1bmN0
aW9uTWFjcm8nOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1lLnVwcGVyKCksCi0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0JVSUxU
SU5fJShvYmplY3RNYWNybylzXyUoZnVuY3Rpb25NYWNybylzIDEiICUgYXJncykKLQotICAgICAg
ICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX3RhYmxl
X21hY3JvKHNlbGYpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ21hY3JvUHJlZml4
Jzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwKLSAgICAg
ICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnVwcGVyKCksCi0g
ICAgICAgIH0KLQotICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgIGxpbmVzLmFwcGVuZCgiI2Rl
ZmluZSAlKG1hY3JvUHJlZml4KXNfRk9SRUFDSF8lKG9iamVjdE1hY3JvKXNfQlVJTFRJTl9DT0RF
KG1hY3JvKSBcXCIgJSBhcmdzKQotICAgICAgICBmb3IgZnVuY3Rpb24gaW4gc2VsZi5vYmplY3Qu
ZnVuY3Rpb25zOgotICAgICAgICAgICAgZnVuY3Rpb25fYXJncyA9IHsKLSAgICAgICAgICAgICAg
ICAnZnVuY05hbWUnOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1lLAotICAgICAgICAgICAgICAgICdj
b2RlTmFtZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1lRm9yRnVuY3Rpb24oZnVuY3Rp
b24pICsgJ0NvZGUnLAotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQo
IiAgICBtYWNybyglKGNvZGVOYW1lKXMsICUoZnVuY05hbWUpcywgc18lKGNvZGVOYW1lKXNMZW5n
dGgpIFxcIiAlIGZ1bmN0aW9uX2FyZ3MpCi0gICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMp
Ci0KLSAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9uYW1lX21hY3JvKHNlbGYpOgot
ICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tYWNyb19w
cmVmaXgoKSwKLSAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9iamVjdF9u
YW1lLnVwcGVyKCksCi0gICAgICAgIH0KLQotICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgIGxp
bmVzLmFwcGVuZCgiI2RlZmluZSAlKG1hY3JvUHJlZml4KXNfRk9SRUFDSF8lKG9iamVjdE1hY3Jv
KXNfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcXCIgJSBhcmdzKQotICAgICAgICB1bmlx
dWVfbmFtZXMgPSBsaXN0KHNldChbZnVuY3Rpb24uZnVuY3Rpb25fbmFtZSBmb3IgZnVuY3Rpb24g
aW4gc2VsZi5vYmplY3QuZnVuY3Rpb25zXSkpCi0gICAgICAgIHVuaXF1ZV9uYW1lcy5zb3J0KCkK
LSAgICAgICAgZm9yIGZ1bmN0aW9uX25hbWUgaW4gdW5pcXVlX25hbWVzOgotICAgICAgICAgICAg
ZnVuY3Rpb25fYXJncyA9IHsKLSAgICAgICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlvbl9u
YW1lLAotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNy
byglKGZ1bmNOYW1lKXMpIFxcIiAlIGZ1bmN0aW9uX2FyZ3MpCi0gICAgICAgIHJldHVybiAnXG4n
LmpvaW4obGluZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9i
dWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3Nl
cGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
YzIyOTA0YjVjZTAyNWQ3ODZlYzkzMzUxMDVlZjliZDVjZWQ2NDQ3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0j
Ci0jIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jIENvcHlyaWdodCAoYykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoK
LSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0j
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgcmUKLWltcG9ydCBzdHJpbmcKLWZyb20gc3RyaW5n
IGltcG9ydCBUZW1wbGF0ZQotCi1mcm9tIGJ1aWx0aW5zX2dlbmVyYXRvciBpbXBvcnQgQnVpbHRp
bnNHZW5lcmF0b3IsIFdLX2xjZmlyc3QKLWZyb20gYnVpbHRpbnNfbW9kZWwgaW1wb3J0IEZyYW1l
d29yaywgRnJhbWV3b3JrcwotZnJvbSBidWlsdGluc190ZW1wbGF0ZXMgaW1wb3J0IEJ1aWx0aW5z
R2VuZXJhdG9yVGVtcGxhdGVzIGFzIFRlbXBsYXRlcwotCi1sb2cgPSBsb2dnaW5nLmdldExvZ2dl
cignZ2xvYmFsJykKLQotCi1jbGFzcyBCdWlsdGluc1NlcGFyYXRlSW1wbGVtZW50YXRpb25HZW5l
cmF0b3IoQnVpbHRpbnNHZW5lcmF0b3IpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2RlbCwg
b2JqZWN0KToKLSAgICAgICAgQnVpbHRpbnNHZW5lcmF0b3IuX19pbml0X18oc2VsZiwgbW9kZWwp
Ci0gICAgICAgIHNlbGYub2JqZWN0ID0gb2JqZWN0Ci0KLSAgICBkZWYgb3V0cHV0X2ZpbGVuYW1l
KHNlbGYpOgotICAgICAgICByZXR1cm4gIiVzQnVpbHRpbnMuY3BwIiAlIEJ1aWx0aW5zR2VuZXJh
dG9yLm1hbmdsZWROYW1lRm9yT2JqZWN0KHNlbGYub2JqZWN0KQotCi0gICAgZGVmIG1hY3JvX3By
ZWZpeChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGlu
ZygnbWFjcm9fcHJlZml4JykKLQotICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6Ci0gICAg
ICAgIGFyZ3MgPSB7Ci0gICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1l
d29yay5zZXR0aW5nKCduYW1lc3BhY2UnKSwKLSAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNl
bGYubWFjcm9fcHJlZml4KCksCi0gICAgICAgICAgICAnb2JqZWN0TWFjcm8nOiBzZWxmLm9iamVj
dC5vYmplY3RfbmFtZS51cHBlcigpLAotICAgICAgICAgICAgJ29iamVjdE5hbWVMQyc6IFdLX2xj
Zmlyc3Qoc2VsZi5vYmplY3Qub2JqZWN0X25hbWUpLAotICAgICAgICB9Ci0KLSAgICAgICAgc2Vj
dGlvbnMgPSBbXQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNl
KCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0
V2FybmluZykuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYu
Z2VuZXJhdGVfaGVhZGVyX2luY2x1ZGVzKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1w
bGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNlVG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBm
b3IgZnVuY3Rpb24gaW4gc2VsZi5vYmplY3QuZnVuY3Rpb25zOgotICAgICAgICAgICAgc2VjdGlv
bnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfZW1iZWRkZWRfY29kZV9zdHJpbmdfc2VjdGlvbl9mb3Jf
ZnVuY3Rpb24oZnVuY3Rpb24pKQotICAgICAgICBpZiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrIGlz
IEZyYW1ld29ya3MuSmF2YVNjcmlwdENvcmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
VGVtcGxhdGUoVGVtcGxhdGVzLlNlcGFyYXRlSlNDSW1wbGVtZW50YXRpb25TdGF0aWNNYWNyb3Mp
LnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIGVsaWYgc2VsZi5tb2RlbCgpLmZyYW1ld29yayBp
cyBGcmFtZXdvcmtzLldlYkNvcmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxh
dGUoVGVtcGxhdGVzLlNlcGFyYXRlV2ViQ29yZUltcGxlbWVudGF0aW9uU3RhdGljTWFjcm9zKS5z
dWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxh
dGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLQotICAgICAgICByZXR1cm4g
IlxuXG4iLmpvaW4oc2VjdGlvbnMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfaGVhZGVyX2luY2x1ZGVz
KHNlbGYpOgotICAgICAgICBoZWFkZXJfaW5jbHVkZXMgPSBbCi0gICAgICAgICAgICAoWyJKYXZh
U2NyaXB0Q29yZSJdLAotICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAiYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgiKSwKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAo
WyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCi0gICAgICAgICAgICAgICAgKCJKYXZhU2Ny
aXB0Q29yZSIsICJydW50aW1lL0V4ZWN1dGFibGUuaCIpLAotICAgICAgICAgICAgKSwKLSAgICAg
ICAgICAgIChbIkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAgICAo
IkphdmFTY3JpcHRDb3JlIiwgInJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oIiksCi0gICAgICAgICAg
ICApLAotICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgiSmF2YVNj
cmlwdENvcmUiLCAicnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgiKSwKLSAgICAgICAgICAgICks
Ci0gICAgICAgICAgICAoWyJXZWJDb3JlIl0sCi0gICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0
Q29yZSIsICJydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgiKSwKLSAgICAgICAgICAgICksCi0g
ICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCi0gICAgICAgICAgICAg
ICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL1ZNLmgiKSwKLSAgICAgICAgICAgICksCi0g
ICAgICAgICAgICAoWyJXZWJDb3JlIl0sCi0gICAgICAgICAgICAgICAgKCJXZWJDb3JlIiwgImJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCIpLAotICAgICAgICAgICAgKSwKLSAgICAg
ICAgXQotCi0gICAgICAgIHJldHVybiAnXG4nLmpvaW4oc2VsZi5nZW5lcmF0ZV9pbmNsdWRlc19m
cm9tX2VudHJpZXMoaGVhZGVyX2luY2x1ZGVzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBw
ZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19n
ZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkYWE4OGNmNzYyMGNkYTEzNzE4NmI5OTE2NDM3YmM2ZDBiNDgxZDllLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMg
Q29weXJpZ2h0IChjKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQot
aW1wb3J0IGxvZ2dpbmcKLWltcG9ydCByZQotaW1wb3J0IHN0cmluZwotZnJvbSBzdHJpbmcgaW1w
b3J0IFRlbXBsYXRlCi0KLWZyb20gYnVpbHRpbnNfZ2VuZXJhdG9yIGltcG9ydCBCdWlsdGluc0dl
bmVyYXRvcgotZnJvbSBidWlsdGluc190ZW1wbGF0ZXMgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9y
VGVtcGxhdGVzIGFzIFRlbXBsYXRlcwotCi1sb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFs
JykKLQotCi1jbGFzcyBCdWlsdGluc1NlcGFyYXRlV3JhcHBlckdlbmVyYXRvcihCdWlsdGluc0dl
bmVyYXRvcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1vZGVsLCBvYmplY3QpOgotICAgICAg
ICBCdWlsdGluc0dlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2RlbCkKLSAgICAgICAgc2VsZi5v
YmplY3QgPSBvYmplY3QKLQotICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6Ci0gICAgICAg
IHJldHVybiAiJXNCdWlsdGluc1dyYXBwZXIuaCIgJSBCdWlsdGluc0dlbmVyYXRvci5tYW5nbGVk
TmFtZUZvck9iamVjdChzZWxmLm9iamVjdCkKLQotICAgIGRlZiBtYWNyb19wcmVmaXgoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3By
ZWZpeCcpCi0KLSAgICBkZWYgZ2VuZXJhdGVfb3V0cHV0KHNlbGYpOgotICAgICAgICBhcmdzID0g
ewotICAgICAgICAgICAgJ25hbWVzcGFjZSc6IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGlu
ZygnbmFtZXNwYWNlJyksCi0gICAgICAgICAgICAnaGVhZGVyR3VhcmQnOiBzZWxmLm91dHB1dF9m
aWxlbmFtZSgpLnJlcGxhY2UoJy4nLCAnXycpLAotICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzog
c2VsZi5tYWNyb19wcmVmaXgoKSwKLSAgICAgICAgICAgICdvYmplY3ROYW1lJzogc2VsZi5vYmpl
Y3Qub2JqZWN0X25hbWUsCi0gICAgICAgICAgICAnb2JqZWN0TWFjcm8nOiBzZWxmLm9iamVjdC5v
YmplY3RfbmFtZS51cHBlcigpLAotICAgICAgICB9Ci0KLSAgICAgICAgc2VjdGlvbnMgPSBbXQot
ICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNlKCkpCi0gICAgICAg
IHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0V2FybmluZykuc3Vi
c3RpdHV0ZShhcmdzKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRl
cy5IZWFkZXJJbmNsdWRlR3VhcmRUb3ApLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIHNlY3Rp
b25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX2hlYWRlcl9pbmNsdWRlcygpKQotICAgICAgICBzZWN0
aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZVRvcCkuc3Vic3RpdHV0ZShh
cmdzKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5TZXBhcmF0
ZVdyYXBwZXJIZWFkZXJCb2lsZXJwbGF0ZSkuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VCb3R0b20pLnN1YnN0aXR1
dGUoYXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuSGVh
ZGVySW5jbHVkZUd1YXJkQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3MpKQotCi0gICAgICAgIHJldHVy
biAiXG5cbiIuam9pbihzZWN0aW9ucykKLQotICAgIGRlZiBnZW5lcmF0ZV9oZWFkZXJfaW5jbHVk
ZXMoc2VsZik6Ci0gICAgICAgIGhlYWRlcl9pbmNsdWRlcyA9IFsKLSAgICAgICAgICAgIChbIldl
YkNvcmUiXSwKLSAgICAgICAgICAgICAgICAoIldlYkNvcmUiLCAiJXNCdWlsdGlucy5oIiAlIHNl
bGYub2JqZWN0Lm9iamVjdF9uYW1lKSwKLSAgICAgICAgICAgICksCi0KLSAgICAgICAgICAgIChb
IldlYkNvcmUiXSwKLSAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgImJ5dGVjb2Rl
L1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgiKSwKLSAgICAgICAgICAgICksCi0KLSAgICAg
ICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwg
ImJ1aWx0aW5zL0J1aWx0aW5VdGlscy5oIiksCi0gICAgICAgICAgICApLAotCi0gICAgICAgICAg
ICAoWyJXZWJDb3JlIl0sCi0gICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50
aW1lL0lkZW50aWZpZXIuaCIpLAotICAgICAgICAgICAgKSwKLQotICAgICAgICAgICAgKFsiV2Vi
Q29yZSJdLAotICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9KU0Z1
bmN0aW9uLmgiKSwKLSAgICAgICAgICAgICksCi0gICAgICAgIF0KLQotICAgICAgICByZXR1cm4g
J1xuJy5qb2luKHNlbGYuZ2VuZXJhdGVfaW5jbHVkZXNfZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNs
dWRlcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlu
cy9idWlsdGluc190ZW1wbGF0ZXMucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9i
dWlsdGlucy9idWlsdGluc190ZW1wbGF0ZXMucHkKaW5kZXggMjVlZGY2NTZlYTJjZWE0ZDBkNGYx
ZjY5MjVkMzRhOGUxMGFmM2Q4My4uM2VlMDQ1NjYyNDk3YTkyNDYyYWE2NTU2NDVlNzA4NTY0ZmZj
Nzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMv
YnVpbHRpbnNfdGVtcGxhdGVzLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L2J1aWx0aW5zL2J1aWx0aW5zX3RlbXBsYXRlcy5weQpAQCAtNzAsNyArNzAsNyBAQCBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgTmFtZXNwYWNlQm90dG9tID0gKAogICAgICIi
In0gLy8gbmFtZXNwYWNlICR7bmFtZXNwYWNlfSIiIikKIAotICAgIENvbWJpbmVkSGVhZGVyU3Rh
dGljTWFjcm9zID0gKAorICAgIEZyYW1ld29ya0hlYWRlckNvbW1vbk1hY3JvcyA9ICgKICAgICAi
IiIjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFt
ZSwgYXJndW1lbnRDb3VudCkgXFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5h
bWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTc5LDI3ICs3OSwxNiBAQCAke21hY3JvUHJl
Zml4fV9GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAj
ZGVmaW5lICR7bWFjcm9QcmVmaXh9X0JVSUxUSU5fRVhJU1RTKG9iamVjdCwgZnVuYykgZGVmaW5l
ZCAke21hY3JvUHJlZml4fV9CVUlMVElOXyAjIyBvYmplY3QgIyMgXyAjIyBmdW5jIiIiKQogCi0g
ICAgU2VwYXJhdGVIZWFkZXJTdGF0aWNNYWNyb3MgPSAoCisgICAgT2JqZWN0SGVhZGVyU3RhdGlj
TWFjcm9zID0gKAogICAgICIiIiNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2Rl
TmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAogICAgIEpTQzo6RnVuY3Rpb25F
eGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKIAotJHttYWNyb1ByZWZp
eH1fRk9SRUFDSF8ke29iamVjdE5hbWV9X0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VO
RVJBVE9SKQorJHttYWNyb1ByZWZpeH1fRk9SRUFDSF8ke29iamVjdE1hY3JvfV9CVUlMVElOX0NP
REUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VO
RVJBVE9SCiAKLSNkZWZpbmUgJHttYWNyb1ByZWZpeH1fQlVJTFRJTl8ke29iamVjdE5hbWV9X0VY
SVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgJHttYWNyb1ByZWZpeH1fQlVJTFRJTl8gIyMgb2Jq
ZWN0ICMjIF8gIyMgZnVuYyIiIikKKyNkZWZpbmUgJHttYWNyb1ByZWZpeH1fQlVJTFRJTl8ke29i
amVjdE1hY3JvfV9FWElTVFMob2JqZWN0LCBmdW5jKSBkZWZpbmVkICR7bWFjcm9QcmVmaXh9X0JV
SUxUSU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMiIiIpCiAKLSAgICBDb21iaW5lZEpTQ0ltcGxl
bWVudGF0aW9uU3RhdGljTWFjcm9zID0gKAotICAgICIiIgotI2RlZmluZSBERUZJTkVfQlVJTFRJ
Tl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLUpT
Qzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBc
XAote1xcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhl
Y3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1Nv
dXJjZSgpKTsgXAotfQotJHttYWNyb1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOX0NPREUoREVGSU5F
X0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgotIiIi
KQotCi0gICAgU2VwYXJhdGVKU0NJbXBsZW1lbnRhdGlvblN0YXRpY01hY3JvcyA9ICgKKyAgICBP
YmplY3RKU0NJbXBsZW1lbnRhdGlvblN0YXRpY01hY3JvcyA9ICgKICAgICAiIiIKICNkZWZpbmUg
REVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50
Q291bnQpIFxcCiBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihK
U0M6OlZNJiB2bSkgXFwKQEAgLTExMCwxOSArOTksNyBAQCAke21hY3JvUHJlZml4fV9GT1JFQUNI
XyR7b2JqZWN0TWFjcm99X0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAj
dW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCiAiIiIpCiAKLSAgICBDb21iaW5lZFdlYkNv
cmVJbXBsZW1lbnRhdGlvblN0YXRpY01hY3JvcyA9ICgKLSAgICAgICAgIiIiCi0jZGVmaW5lIERF
RklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENv
dW50KSBcXAotSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlND
OjpWTSYgdm0pIFxcCi17XFwKLSAgICBKU1ZNQ2xpZW50RGF0YSogY2xpZW50RGF0YSA9IHN0YXRp
Y19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7IFxcCi0gICAgcmV0dXJuIGNs
aWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS4ke29iamVjdE5hbWVMQ31CdWlsdGlucygpLmNv
ZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlv
bnMoKS4ke29iamVjdE5hbWVMQ31CdWlsdGlucygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFxcCi19
Ci0ke21hY3JvUHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5F
UkFUT1IpCi0jdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCi0iIiIpCi0KLSAgICBTZXBh
cmF0ZVdlYkNvcmVJbXBsZW1lbnRhdGlvblN0YXRpY01hY3JvcyA9ICgKKyAgICBPYmplY3RXZWJD
b3JlSW1wbGVtZW50YXRpb25TdGF0aWNNYWNyb3MgPSAoCiAgICAgICAgICIiIgogI2RlZmluZSBE
RUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRD
b3VudCkgXFwKIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpT
Qzo6Vk0mIHZtKSBcXApAQCAtMTM0LDcgKzExMSw3IEBAICR7bWFjcm9QcmVmaXh9X0ZPUkVBQ0hf
JHtvYmplY3RNYWNyb31fQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1
bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKICIiIikKIAotICAgIFNlcGFyYXRlV3JhcHBl
ckhlYWRlckJvaWxlcnBsYXRlID0gKAorICAgIE9iamVjdFdyYXBwZXJIZWFkZXJCb2lsZXJwbGF0
ZSA9ICgKICAgICAiIiJjbGFzcyAke29iamVjdE5hbWV9QnVpbHRpbnNXcmFwcGVyIDogcHJpdmF0
ZSBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgJHtvYmplY3RO
YW1lfUJ1aWx0aW5zV3JhcHBlcihKU0M6OlZNKiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKaW5kZXggMDcwNzA5YjQ4
MDgzODhlNjc4ZjNkYjIzODJmNDZhM2Q2MzMzOTA2ZS4uODMzMTQ5ZGNlNmQxNzk2NTU1MDRjYzQx
OGUxYzM1NmYzNzMyZDZiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Njcmlw
dHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKQEAgLTQ0LDcgKzQ0LDcgQEAgZnJvbSBidWls
dGlucyBpbXBvcnQgKgogZGVmIGdlbmVyYXRlX2JpbmRpbmdzX2Zvcl9idWlsdGluc19maWxlcyhi
dWlsdGluc19maWxlcz1bXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0X3BhdGg9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uY2F0ZW5hdGVfb3V0cHV0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21iaW5lZF9vdXRwdXQ9RmFsc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hY3Jvc19vbmx5PUZhbHNlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZXdvcmtfbmFtZT0iIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2Vfb3V0cHV0PUZhbHNlKToKIApA
QCAtNjQsMTggKzY0LDE3IEBAIGRlZiBnZW5lcmF0ZV9iaW5kaW5nc19mb3JfYnVpbHRpbnNfZmls
ZXMoYnVpbHRpbnNfZmlsZXM9W10sCiAgICAgICAgICAgICAgICAgZmlsZV9uYW1lID0gb2JqZWN0
X25hbWUgKyAnLmpzJwogICAgICAgICAgICAgbW9kZWwucGFyc2VfYnVpbHRpbnNfZmlsZShmaWxl
X25hbWUsIGZpbGVfdGV4dCkKIAotICAgIGlmIGNvbWJpbmVkX291dHB1dDoKLSAgICAgICAgbG9n
LmRlYnVnKCJVc2luZyBnZW5lcmF0b3Igc3R5bGU6IGNvbWJpbmVkIGZpbGVzIGZvciBhbGwgYnVp
bHRpbnMuIikKLSAgICAgICAgZ2VuZXJhdG9ycy5hcHBlbmQoQnVpbHRpbnNDb21iaW5lZEhlYWRl
ckdlbmVyYXRvcihtb2RlbCkpCi0gICAgICAgIGdlbmVyYXRvcnMuYXBwZW5kKEJ1aWx0aW5zQ29t
YmluZWRJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihtb2RlbCkpCisgICAgaWYgbWFjcm9zX29ubHk6
CisgICAgICAgIGxvZy5kZWJ1ZygiVXNpbmcgZ2VuZXJhdG9yIHN0eWxlOiBjb21iaW5lZCBtYWNy
byBkZWZpbml0aW9ucyBmb3IgYWxsIGJ1aWx0aW5zLiIpCisgICAgICAgIGdlbmVyYXRvcnMuYXBw
ZW5kKEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yKG1vZGVsKSkKICAgICBlbHNlOgog
ICAgICAgICBsb2cuZGVidWcoIlVzaW5nIGdlbmVyYXRvciBzdHlsZTogc2luZ2xlIGZpbGVzIGZv
ciBlYWNoIGJ1aWx0aW4uIikKICAgICAgICAgZm9yIG9iamVjdCBpbiBtb2RlbC5vYmplY3RzOgot
ICAgICAgICAgICAgZ2VuZXJhdG9ycy5hcHBlbmQoQnVpbHRpbnNTZXBhcmF0ZUhlYWRlckdlbmVy
YXRvcihtb2RlbCwgb2JqZWN0KSkKLSAgICAgICAgICAgIGdlbmVyYXRvcnMuYXBwZW5kKEJ1aWx0
aW5zU2VwYXJhdGVJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihtb2RlbCwgb2JqZWN0KSkKKyAgICAg
ICAgICAgIGdlbmVyYXRvcnMuYXBwZW5kKEJ1aWx0aW5zT2JqZWN0SGVhZGVyR2VuZXJhdG9yKG1v
ZGVsLCBvYmplY3QpKQorICAgICAgICAgICAgZ2VuZXJhdG9ycy5hcHBlbmQoQnVpbHRpbnNPYmpl
Y3RJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihtb2RlbCwgb2JqZWN0KSkKIAogICAgICAgICAgICAg
aWYgbW9kZWwuZnJhbWV3b3JrIGlzIEZyYW1ld29ya3MuV2ViQ29yZToKLSAgICAgICAgICAgICAg
ICBnZW5lcmF0b3JzLmFwcGVuZChCdWlsdGluc1NlcGFyYXRlV3JhcHBlckdlbmVyYXRvcihtb2Rl
bCwgb2JqZWN0KSkKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3JzLmFwcGVuZChCdWlsdGluc09i
amVjdFdyYXBwZXJHZW5lcmF0b3IobW9kZWwsIG9iamVjdCkpCiAKICAgICBsb2cuZGVidWcoIiIp
CiAgICAgbG9nLmRlYnVnKCJHZW5lcmF0aW5nIGJpbmRpbmdzIGZvciBidWlsdGlucy4iKQpAQCAt
MTE2LDcgKzExNSw3IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgY2xpX3BhcnNl
ci5hZGRfb3B0aW9uKCItbyIsICItLW91dHB1dC1kaXJlY3RvcnkiLCBoZWxwPSJEaXJlY3Rvcnkg
d2hlcmUgZ2VuZXJhdGVkIGZpbGVzIHNob3VsZCBiZSB3cml0dGVuLiIpCiAgICAgY2xpX3BhcnNl
ci5hZGRfb3B0aW9uKCItLWZyYW1ld29yayIsIHR5cGU9ImNob2ljZSIsIGNob2ljZXM9YWxsb3dl
ZF9mcmFtZXdvcmtfbmFtZXMsIGhlbHA9IkRlc3RpbmF0aW9uIGZyYW1ld29yayBmb3IgZ2VuZXJh
dGVkIGZpbGVzLiIpCiAgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9uKCItLWZvcmNlIiwgYWN0aW9u
PSJzdG9yZV90cnVlIiwgaGVscD0iRm9yY2Ugb3V0cHV0IG9mIGdlbmVyYXRlZCBzY3JpcHRzLCBl
dmVuIGlmIG5vdGhpbmcgY2hhbmdlZC4iKQotICAgIGNsaV9wYXJzZXIuYWRkX29wdGlvbigiLS1j
b21iaW5lZCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IlByb2R1Y2Ugb25lIC5oLy5jcHAg
ZmlsZSBpbnN0ZWFkIG9mIHByb2R1Y2luZyBvbmUgcGVyIGJ1aWx0aW4gb2JqZWN0LiIpCisgICAg
Y2xpX3BhcnNlci5hZGRfb3B0aW9uKCItLW1hY3Jvcy1vbmx5IiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwgaGVscD0iUHJvZHVjZSBvbmUgLmggZmlsZSB3aXRoIGl0ZXJhdGlvbiBtYWNyb3MgZm9yIGFs
bCBidWlsdGluIG9iamVjdHMgaW4gdGhlIGZyYW1ld29yay4iKQogICAgIGNsaV9wYXJzZXIuYWRk
X29wdGlvbigiLXYiLCAiLS1kZWJ1ZyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkxvZyBl
eHRyYSBvdXRwdXQgZm9yIGRlYnVnZ2luZyB0aGUgZ2VuZXJhdG9yIGl0c2VsZi4iKQogICAgIGNs
aV9wYXJzZXIuYWRkX29wdGlvbigiLXQiLCAiLS10ZXN0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwg
aGVscD0iRW5hYmxlIHRlc3QgbW9kZS4iKQogCkBAIC0xNDAsNyArMTM5LDcgQEAgaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKICAgICBvcHRpb25zID0gewogICAgICAgICAnb3V0cHV0X3BhdGgn
OiBhcmdfb3B0aW9ucy5vdXRwdXRfZGlyZWN0b3J5LAogICAgICAgICAnZnJhbWV3b3JrX25hbWUn
OiBhcmdfb3B0aW9ucy5mcmFtZXdvcmssCi0gICAgICAgICdjb21iaW5lZF9vdXRwdXQnOiBhcmdf
b3B0aW9ucy5jb21iaW5lZCwKKyAgICAgICAgJ21hY3Jvc19vbmx5JzogYXJnX29wdGlvbnMubWFj
cm9zX29ubHksCiAgICAgICAgICdmb3JjZV9vdXRwdXQnOiBhcmdfb3B0aW9ucy5mb3JjZSwKICAg
ICAgICAgJ2NvbmNhdGVuYXRlX291dHB1dCc6IGFyZ19vcHRpb25zLnRlc3QsCiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2
YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9t
aXNlLUNvbWJpbmVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDVkODFjZWI5
ZWQ5MDY0MjU4NGZhMGJiNDU4ZGNmMGRiYWRjM2EyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21iaW5lZC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVz
dWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotZnVuY3Rpb24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCBy
ZWFzb24pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgdmFyIHJlYWN0aW9ucyA9IHByb21p
c2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnM7Ci0gICAgcHJvbWlzZS5AcHJvbWlzZVJlc3VsdCA9
IHJlYXNvbjsKLSAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5l
ZDsKLSAgICBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOwotICAg
IHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7Ci0KLSAgICBASW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLnByb21pc2VSZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0
aW9ucyk7Ci0KLSAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24p
OwotfQotCi1mdW5jdGlvbiBmdWxmaWxsUHJvbWlzZShwcm9taXNlLCB2YWx1ZSkKLXsKLSAgICAi
dXNlIHN0cmljdCI7Ci0KLSAgICB2YXIgcmVhY3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZUZ1bGZp
bGxSZWFjdGlvbnM7Ci0gICAgcHJvbWlzZS5AcHJvbWlzZVJlc3VsdCA9IHZhbHVlOwotICAgIHBy
b21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zID0gdW5kZWZpbmVkOwotICAgIHByb21pc2Uu
QHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7Ci0gICAgcHJvbWlzZS5AcHJvbWlz
ZVN0YXRlID0gQHByb21pc2VGdWxmaWxsZWQ7Ci0KLSAgICBASW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLnByb21pc2VGdWxmaWxsZWQocHJvbWlzZSwgdmFsdWUsIHJlYWN0aW9ucyk7Ci0KLSAgICBA
dHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCB2YWx1ZSk7Ci19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9zLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLU1hY3Jv
cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iNDVkODFjZWI5ZWQ5MDY0MjU4NGZhMGJiNDU4ZGNmMGRiYWRjM2Ey
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLU1hY3Jvcy5qcwpAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK2Z1bmN0aW9uIHJlamVjdFByb21pc2UocHJvbWlzZSwgcmVhc29uKQoreworICAgICJ1
c2Ugc3RyaWN0IjsKKworICAgIHZhciByZWFjdGlvbnMgPSBwcm9taXNlLkBwcm9taXNlUmVqZWN0
UmVhY3Rpb25zOworICAgIHByb21pc2UuQHByb21pc2VSZXN1bHQgPSByZWFzb247CisgICAgcHJv
bWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7CisgICAgcHJvbWlzZS5A
cHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKKyAgICBwcm9taXNlLkBwcm9taXNl
U3RhdGUgPSBAcHJvbWlzZVJlamVjdGVkOworCisgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5wcm9taXNlUmVqZWN0ZWQocHJvbWlzZSwgcmVhc29uLCByZWFjdGlvbnMpOworCisgICAgQHRy
aWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTsKK30KKworZnVuY3Rpb24g
ZnVsZmlsbFByb21pc2UocHJvbWlzZSwgdmFsdWUpCit7CisgICAgInVzZSBzdHJpY3QiOworCisg
ICAgdmFyIHJlYWN0aW9ucyA9IHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zOworICAg
IHByb21pc2UuQHByb21pc2VSZXN1bHQgPSB2YWx1ZTsKKyAgICBwcm9taXNlLkBwcm9taXNlRnVs
ZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKKyAgICBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVh
Y3Rpb25zID0gdW5kZWZpbmVkOworICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNl
RnVsZmlsbGVkOworCisgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlRnVsZmls
bGVkKHByb21pc2UsIHZhbHVlLCByZWFjdGlvbnMpOworCisgICAgQHRyaWdnZXJQcm9taXNlUmVh
Y3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90
b3R5cGUtQ29tYmluZWQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ0OGI5ODMyYjY2YTRiZGYwZmUyYzRiZDg3MDEw
ZjYwYWQ3MmRmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDc4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4uCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLQotZnVuY3Rpb24gZXZlcnkoY2FsbGJhY2sgLyosIHRoaXNBcmcgKi8pCi17Ci0g
ICAgInVzZSBzdHJpY3QiOwotCi0gICAgaWYgKHRoaXMgPT09IG51bGwpCi0gICAgICAgIHRocm93
IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhp
c3wgbm90IGJlIG51bGwiKTsKLSAgICAKLSAgICBpZiAodGhpcyA9PT0gdW5kZWZpbmVkKQotICAg
ICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IHJlcXVpcmVz
IHRoYXQgfHRoaXN8IG5vdCBiZSB1bmRlZmluZWQiKTsKLSAgICAKLSAgICB2YXIgYXJyYXkgPSBA
T2JqZWN0KHRoaXMpOwotICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTsK
LQotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgIHRocm93
IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUuZXZlcnkgY2FsbGJhY2sgbXVzdCBiZSBh
IGZ1bmN0aW9uIik7Ci0gICAgCi0gICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4g
MSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDsKLSAgICAKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmICghKGkgaW4gYXJyYXkpKQotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIGlmICghY2FsbGJhY2suQGNhbGwodGhpc0FyZywgYXJyYXlb
aV0sIGksIGFycmF5KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgCi0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2sgLyosIHRoaXNB
cmcgKi8pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgaWYgKHRoaXMgPT09IG51bGwpCi0g
ICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCByZXF1
aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCIpOwotICAgIAotICAgIGlmICh0aGlzID09PSB1
bmRlZmluZWQpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUu
Zm9yRWFjaCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgdW5kZWZpbmVkIik7Ci0gICAgCi0g
ICAgdmFyIGFycmF5ID0gQE9iamVjdCh0aGlzKTsKLSAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3Ro
KGFycmF5Lmxlbmd0aCk7Ci0KLSAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAiZnVuY3Rpb24i
KQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmZvckVhY2gg
Y2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Ci0gICAgCi0gICAgdmFyIHRoaXNBcmcgPSBh
cmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDsKLSAgICAKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChpIGluIGFy
cmF5KQotICAgICAgICAgICAgY2FsbGJhY2suQGNhbGwodGhpc0FyZywgYXJyYXlbaV0sIGksIGFy
cmF5KTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1NYWNyb3Mu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1NYWNyb3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ0OGI5ODMy
YjY2YTRiZGYwZmUyYzRiZDg3MDEwZjYwYWQ3MmRmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1
aWx0aW4ucHJvdG90eXBlLU1hY3Jvcy5qcwpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+Lgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKK2Z1bmN0aW9uIGV2
ZXJ5KGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAg
IGlmICh0aGlzID09PSBudWxsKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXku
cHJvdG90eXBlLmV2ZXJ5IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIik7CisgICAg
CisgICAgaWYgKHRoaXMgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJy
b3IoIkFycmF5LnByb3RvdHlwZS5ldmVyeSByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgdW5k
ZWZpbmVkIik7CisgICAgCisgICAgdmFyIGFycmF5ID0gQE9iamVjdCh0aGlzKTsKKyAgICB2YXIg
bGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7CisKKyAgICBpZiAodHlwZW9mIGNhbGxi
YWNrICE9PSAiZnVuY3Rpb24iKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXku
cHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpOworICAgIAorICAg
IHZhciB0aGlzQXJnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRl
ZmluZWQ7CisgICAgCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAg
ICAgICBpZiAoIShpIGluIGFycmF5KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBp
ZiAoIWNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIGFycmF5W2ldLCBpLCBhcnJheSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHJldHVybiB0cnVlOworfQorCitm
dW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQoreworICAgICJ1c2Ugc3Ry
aWN0IjsKKworICAgIGlmICh0aGlzID09PSBudWxsKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVF
cnJvcigiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJl
IG51bGwiKTsKKyAgICAKKyAgICBpZiAodGhpcyA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJv
dyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggcmVxdWlyZXMgdGhhdCB8
dGhpc3wgbm90IGJlIHVuZGVmaW5lZCIpOworICAgIAorICAgIHZhciBhcnJheSA9IEBPYmplY3Qo
dGhpcyk7CisgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJheS5sZW5ndGgpOworCisgICAg
aWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gImZ1bmN0aW9uIikKKyAgICAgICAgdGhyb3cgbmV3IEBU
eXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5j
dGlvbiIpOworICAgIAorICAgIHZhciB0aGlzQXJnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBh
cmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7CisgICAgCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBs
ZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoaSBpbiBhcnJheSkKKyAgICAgICAgICAgIGNhbGxi
YWNrLkBjYWxsKHRoaXNBcmcsIGFycmF5W2ldLCBpLCBhcnJheSk7CisgICAgfQorfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNj
cmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0
cnVjdG9yLUNvbWJpbmVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZThjMWI0
NDk2Y2M1NDRmNDA3NzM5NTA0MmNmZDI0ZThhMzk0NjYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotZnVuY3Rpb24gb2YoLyogaXRlbXMuLi4gKi8pCi17Ci0g
ICAgInVzZSBzdHJpY3QiOwotCi0gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7Ci0g
ICAgLy8gVE9ETzogTmVlZCBpc0NvbnN0cnVjdG9yKHRoaXMpIGluc3RlYWQgb2YgdHlwZW9mICJm
dW5jdGlvbiIgY2hlY2suCi0gICAgdmFyIGFycmF5ID0gdHlwZW9mIHRoaXMgPT09ICdmdW5jdGlv
bicgPyBuZXcgdGhpcyhsZW5ndGgpIDogbmV3IEBBcnJheShsZW5ndGgpOwotICAgIGZvciAodmFy
IGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spCi0gICAgICAgIEBwdXRCeVZhbERpcmVjdChhcnJheSwg
aywgYXJndW1lbnRzW2tdKTsKLSAgICBhcnJheS5sZW5ndGggPSBsZW5ndGg7Ci0gICAgcmV0dXJu
IGFycmF5OwotfQotCi1mdW5jdGlvbiBmcm9tKGl0ZW1zIC8qLCBtYXBGbiwgdGhpc0FyZyAqLykK
LXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICB2YXIgdGhpc09iaiA9IHRoaXM7Ci0KLSAgICB2
YXIgbWFwRm4gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5l
ZDsKLQotICAgIHZhciB0aGlzQXJnOwotCi0gICAgaWYgKG1hcEZuICE9PSB1bmRlZmluZWQpIHsK
LSAgICAgICAgaWYgKHR5cGVvZiBtYXBGbiAhPT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRo
cm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5mcm9tIHJlcXVpcmVzIHRoYXQgdGhlIHNlY29uZCBh
cmd1bWVudCwgd2hlbiBwcm92aWRlZCwgYmUgYSBmdW5jdGlvbiIpOwotCi0gICAgICAgIGlmIChh
cmd1bWVudHMubGVuZ3RoID4gMikKLSAgICAgICAgICAgIHRoaXNBcmcgPSBhcmd1bWVudHNbMl07
Ci0gICAgfQotCi0gICAgaWYgKGl0ZW1zID09IG51bGwpCi0gICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKCJBcnJheS5mcm9tIHJlcXVpcmVzIGFuIGFycmF5LWxpa2Ugb2JqZWN0IC0gbm90IG51
bGwgb3IgdW5kZWZpbmVkIik7Ci0KLSAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVtc1tAc3lt
Ym9sSXRlcmF0b3JdOwotICAgIGlmIChpdGVyYXRvck1ldGhvZCAhPSBudWxsKSB7Ci0gICAgICAg
IGlmICh0eXBlb2YgaXRlcmF0b3JNZXRob2QgIT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0
aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkuZnJvbSByZXF1aXJlcyB0aGF0IHRoZSBwcm9wZXJ0
eSBvZiB0aGUgZmlyc3QgYXJndW1lbnQsIGl0ZW1zW1N5bWJvbC5pdGVyYXRvcl0sIHdoZW4gZXhp
c3RzLCBiZSBhIGZ1bmN0aW9uIik7Ci0KLSAgICAgICAgLy8gVE9ETzogTmVlZCBpc0NvbnN0cnVj
dG9yKHRoaXNPYmopIGluc3RlYWQgb2YgdHlwZW9mICJmdW5jdGlvbiIgY2hlY2suCi0gICAgICAg
IHZhciByZXN1bHQgPSAodHlwZW9mIHRoaXNPYmogPT09ICJmdW5jdGlvbiIpID8gQE9iamVjdChu
ZXcgdGhpc09iaigpKSA6IFtdOwotCi0gICAgICAgIHZhciBrID0gMDsKLSAgICAgICAgdmFyIGl0
ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuQGNhbGwoaXRlbXMpOwotCi0gICAgICAgIC8vIFNpbmNl
IGZvci1vZiBsb29wIG9uY2UgbW9yZSBsb29rcyB1cCB0aGUgQEBpdGVyYXRvciBwcm9wZXJ0eSBv
ZiBhIGdpdmVuIGl0ZXJhYmxlLAotICAgICAgICAvLyBpdCBjb3VsZCBiZSBvYnNlcnZhYmxlIGlm
IHRoZSB1c2VyIGRlZmluZXMgYSBnZXR0ZXIgZm9yIEBAaXRlcmF0b3IuCi0gICAgICAgIC8vIFRv
IGF2b2lkIHRoaXMgc2l0dWF0aW9uLCB3ZSBkZWZpbmUgYSB3cmFwcGVyIG9iamVjdCB0aGF0IEBA
aXRlcmF0b3IganVzdCByZXR1cm5zIGEgZ2l2ZW4gaXRlcmF0b3IuCi0gICAgICAgIHZhciB3cmFw
cGVyID0gewotICAgICAgICAgICAgW0BzeW1ib2xJdGVyYXRvcl0oKSB7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGl0ZXJhdG9yOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotCi0gICAgICAg
IGZvciAodmFyIHZhbHVlIG9mIHdyYXBwZXIpIHsKLSAgICAgICAgICAgIGlmIChtYXBGbikKLSAg
ICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB0aGlzQXJnID09PSB1bmRl
ZmluZWQgPyBtYXBGbih2YWx1ZSwgaykgOiBtYXBGbi5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaykp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1
bHQsIGssIHZhbHVlKTsKLSAgICAgICAgICAgIGsgKz0gMTsKLSAgICAgICAgfQotCi0gICAgICAg
IHJlc3VsdC5sZW5ndGggPSBrOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAg
IHZhciBhcnJheUxpa2UgPSBAT2JqZWN0KGl0ZW1zKTsKLSAgICB2YXIgYXJyYXlMaWtlTGVuZ3Ro
ID0gQHRvTGVuZ3RoKGFycmF5TGlrZS5sZW5ndGgpOwotCi0gICAgLy8gVE9ETzogTmVlZCBpc0Nv
bnN0cnVjdG9yKHRoaXNPYmopIGluc3RlYWQgb2YgdHlwZW9mICJmdW5jdGlvbiIgY2hlY2suCi0g
ICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gImZ1bmN0aW9uIikgPyBAT2JqZWN0
KG5ldyB0aGlzT2JqKGFycmF5TGlrZUxlbmd0aCkpIDogbmV3IEBBcnJheShhcnJheUxpa2VMZW5n
dGgpOwotCi0gICAgdmFyIGsgPSAwOwotICAgIHdoaWxlIChrIDwgYXJyYXlMaWtlTGVuZ3RoKSB7
Ci0gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5TGlrZVtrXTsKLSAgICAgICAgaWYgKG1hcEZuKQot
ICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdGhpc0FyZyA9PT0gdW5kZWZp
bmVkID8gbWFwRm4odmFsdWUsIGspIDogbWFwRm4uQGNhbGwodGhpc0FyZywgdmFsdWUsIGspKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdmFs
dWUpOwotICAgICAgICBrICs9IDE7Ci0gICAgfQotCi0gICAgcmVzdWx0Lmxlbmd0aCA9IGFycmF5
TGlrZUxlbmd0aDsKLSAgICByZXR1cm4gcmVzdWx0OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bkNvbnN0cnVjdG9yLU1hY3Jvcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1NYWNyb3MuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWU4YzFiNDQ5NmNjNTQ0ZjQwNzczOTUwNDJjZmQyNGU4YTM5NDY2MQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0
aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1NYWNyb3MuanMKQEAgLTAsMCAr
MSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitm
dW5jdGlvbiBvZigvKiBpdGVtcy4uLiAqLykKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICB2
YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsKKyAgICAvLyBUT0RPOiBOZWVkIGlzQ29uc3Ry
dWN0b3IodGhpcykgaW5zdGVhZCBvZiB0eXBlb2YgImZ1bmN0aW9uIiBjaGVjay4KKyAgICB2YXIg
YXJyYXkgPSB0eXBlb2YgdGhpcyA9PT0gJ2Z1bmN0aW9uJyA/IG5ldyB0aGlzKGxlbmd0aCkgOiBu
ZXcgQEFycmF5KGxlbmd0aCk7CisgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraykK
KyAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFycmF5LCBrLCBhcmd1bWVudHNba10pOworICAgIGFy
cmF5Lmxlbmd0aCA9IGxlbmd0aDsKKyAgICByZXR1cm4gYXJyYXk7Cit9CisKK2Z1bmN0aW9uIGZy
b20oaXRlbXMgLyosIG1hcEZuLCB0aGlzQXJnICovKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKwor
ICAgIHZhciB0aGlzT2JqID0gdGhpczsKKworICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50cy5sZW5n
dGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkOworCisgICAgdmFyIHRoaXNBcmc7CisK
KyAgICBpZiAobWFwRm4gIT09IHVuZGVmaW5lZCkgeworICAgICAgICBpZiAodHlwZW9mIG1hcEZu
ICE9PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkFycmF5
LmZyb20gcmVxdWlyZXMgdGhhdCB0aGUgc2Vjb25kIGFyZ3VtZW50LCB3aGVuIHByb3ZpZGVkLCBi
ZSBhIGZ1bmN0aW9uIik7CisKKyAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKQorICAg
ICAgICAgICAgdGhpc0FyZyA9IGFyZ3VtZW50c1syXTsKKyAgICB9CisKKyAgICBpZiAoaXRlbXMg
PT0gbnVsbCkKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkFycmF5LmZyb20gcmVxdWly
ZXMgYW4gYXJyYXktbGlrZSBvYmplY3QgLSBub3QgbnVsbCBvciB1bmRlZmluZWQiKTsKKworICAg
IHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZW1zW0BzeW1ib2xJdGVyYXRvcl07CisgICAgaWYgKGl0
ZXJhdG9yTWV0aG9kICE9IG51bGwpIHsKKyAgICAgICAgaWYgKHR5cGVvZiBpdGVyYXRvck1ldGhv
ZCAhPT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJh
eS5mcm9tIHJlcXVpcmVzIHRoYXQgdGhlIHByb3BlcnR5IG9mIHRoZSBmaXJzdCBhcmd1bWVudCwg
aXRlbXNbU3ltYm9sLml0ZXJhdG9yXSwgd2hlbiBleGlzdHMsIGJlIGEgZnVuY3Rpb24iKTsKKwor
ICAgICAgICAvLyBUT0RPOiBOZWVkIGlzQ29uc3RydWN0b3IodGhpc09iaikgaW5zdGVhZCBvZiB0
eXBlb2YgImZ1bmN0aW9uIiBjaGVjay4KKyAgICAgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhp
c09iaiA9PT0gImZ1bmN0aW9uIikgPyBAT2JqZWN0KG5ldyB0aGlzT2JqKCkpIDogW107CisKKyAg
ICAgICAgdmFyIGsgPSAwOworICAgICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvck1ldGhvZC5A
Y2FsbChpdGVtcyk7CisKKyAgICAgICAgLy8gU2luY2UgZm9yLW9mIGxvb3Agb25jZSBtb3JlIGxv
b2tzIHVwIHRoZSBAQGl0ZXJhdG9yIHByb3BlcnR5IG9mIGEgZ2l2ZW4gaXRlcmFibGUsCisgICAg
ICAgIC8vIGl0IGNvdWxkIGJlIG9ic2VydmFibGUgaWYgdGhlIHVzZXIgZGVmaW5lcyBhIGdldHRl
ciBmb3IgQEBpdGVyYXRvci4KKyAgICAgICAgLy8gVG8gYXZvaWQgdGhpcyBzaXR1YXRpb24sIHdl
IGRlZmluZSBhIHdyYXBwZXIgb2JqZWN0IHRoYXQgQEBpdGVyYXRvciBqdXN0IHJldHVybnMgYSBn
aXZlbiBpdGVyYXRvci4KKyAgICAgICAgdmFyIHdyYXBwZXIgPSB7CisgICAgICAgICAgICBbQHN5
bWJvbEl0ZXJhdG9yXSgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3I7CisgICAg
ICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgZm9yICh2YXIgdmFsdWUgb2Ygd3JhcHBl
cikgeworICAgICAgICAgICAgaWYgKG1hcEZuKQorICAgICAgICAgICAgICAgIEBwdXRCeVZhbERp
cmVjdChyZXN1bHQsIGssIHRoaXNBcmcgPT09IHVuZGVmaW5lZCA/IG1hcEZuKHZhbHVlLCBrKSA6
IG1hcEZuLkBjYWxsKHRoaXNBcmcsIHZhbHVlLCBrKSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdmFsdWUpOworICAgICAgICAg
ICAgayArPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0Lmxlbmd0aCA9IGs7CisgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgdmFyIGFycmF5TGlrZSA9IEBPYmplY3Qo
aXRlbXMpOworICAgIHZhciBhcnJheUxpa2VMZW5ndGggPSBAdG9MZW5ndGgoYXJyYXlMaWtlLmxl
bmd0aCk7CisKKyAgICAvLyBUT0RPOiBOZWVkIGlzQ29uc3RydWN0b3IodGhpc09iaikgaW5zdGVh
ZCBvZiB0eXBlb2YgImZ1bmN0aW9uIiBjaGVjay4KKyAgICB2YXIgcmVzdWx0ID0gKHR5cGVvZiB0
aGlzT2JqID09PSAiZnVuY3Rpb24iKSA/IEBPYmplY3QobmV3IHRoaXNPYmooYXJyYXlMaWtlTGVu
Z3RoKSkgOiBuZXcgQEFycmF5KGFycmF5TGlrZUxlbmd0aCk7CisKKyAgICB2YXIgayA9IDA7Cisg
ICAgd2hpbGUgKGsgPCBhcnJheUxpa2VMZW5ndGgpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gYXJy
YXlMaWtlW2tdOworICAgICAgICBpZiAobWFwRm4pCisgICAgICAgICAgICBAcHV0QnlWYWxEaXJl
Y3QocmVzdWx0LCBrLCB0aGlzQXJnID09PSB1bmRlZmluZWQgPyBtYXBGbih2YWx1ZSwgaykgOiBt
YXBGbi5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaykpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7CisgICAgICAgIGsgKz0gMTsKKyAg
ICB9CisKKyAgICByZXN1bHQubGVuZ3RoID0gYXJyYXlMaWtlTGVuZ3RoOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmlu
ZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJl
c3VsdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzMyYThjODlmNWFhNWQ2Yzk1MjNk
YTBlNjQ4MDExZjViZTk4OGRiZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0
CisrKyAvZGV2L251bGwKQEAgLTEsMTY4ICswLDAgQEAKLSMjIyBCZWdpbiBGaWxlOiBKU0NCdWls
dGlucy5oCi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUu
dGVhQGdtYWlsLmNvbT4uCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKiAKLSAqLwotCi0vLyBETyBOT1QgRURJVCBUSElTIEZJ
TEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gSmF2YVNjcmlwdCBmaWxlcyBm
b3IKLS8vIGJ1aWx0aW5zIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5Ci0KLSNpZm5kZWYgSlNDQnVpbHRpbnNfaAotI2Rl
ZmluZSBKU0NCdWlsdGluc19oCi0KLW5hbWVzcGFjZSBKU0MgewotY2xhc3MgRnVuY3Rpb25FeGVj
dXRhYmxlOwotY2xhc3MgVk07Ci0KLWVudW0gY2xhc3MgQ29uc3RydWN0QWJpbGl0eSA6IHVuc2ln
bmVkOwotfQotCi1uYW1lc3BhY2UgSlNDIHsKLQotLyogQnVpbHRpbi5Qcm9taXNlICovCi1leHRl
cm4gY29uc3QgY2hhciogc19idWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlOwotZXh0ZXJu
IGNvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGg7Ci1leHRl
cm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9t
aXNlQ29kZUNvbnN0cnVjdEFiaWxpdHk7Ci1leHRlcm4gY29uc3QgY2hhciogc19idWlsdGluUHJv
bWlzZUZ1bGZpbGxQcm9taXNlQ29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19idWlsdGluUHJvbWlz
ZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aDsKLWV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFi
aWxpdHkgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHk7
Ci0KLSNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTlBST01JU0VfQlVJTFRJTl9EQVRBKG1hY3Jv
KSBcCi0gICAgbWFjcm8ocmVqZWN0UHJvbWlzZSwgYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNl
LCAyKSBcCi0gICAgbWFjcm8oZnVsZmlsbFByb21pc2UsIGJ1aWx0aW5Qcm9taXNlRnVsZmlsbFBy
b21pc2UsIDIpIFwKLQotI2RlZmluZSBKU0NfQlVJTFRJTl9CVUlMVElOUFJPTUlTRV9SRUpFQ1RQ
Uk9NSVNFIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTlBST01JU0VfRlVMRklMTFBST01J
U0UgMQotCi0jZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1h
Y3JvKGJ1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGUsIHJlamVjdFByb21pc2UsIHNfYnVp
bHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Q
cm9taXNlRnVsZmlsbFByb21pc2VDb2RlLCBmdWxmaWxsUHJvbWlzZSwgc19idWlsdGluUHJvbWlz
ZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aCkgXAotCi0jZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxU
SU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAotICAgIG1hY3JvKGZ1bGZpbGxQcm9taXNlKSBcCi0g
ICAgbWFjcm8ocmVqZWN0UHJvbWlzZSkgXAotCi0jZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9HRU5F
UkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAotICAgIEpTQzo6
RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKLQotSlND
X0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5kZWYg
REVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgotCi0jZGVmaW5lIEpTQ19CVUlMVElOX0VYSVNUUyhv
YmplY3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JVSUxUSU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMK
LQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBKU0NCdWlsdGluc19oCi0KLSMjIyBF
bmQgRmlsZTogSlNDQnVpbHRpbnMuaAotCi0jIyMgQmVnaW4gRmlsZTogSlNDQnVpbHRpbnMuY3Bw
Ci0vKgotICogQ29weXJpZ2h0IChjKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4uCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKiAKLSAqLwotCi0vLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0
IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gSmF2YVNjcmlwdCBmaWxlcyBmb3IKLS8v
IGJ1aWx0aW5zIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zLnB5Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJK
U0NCdWlsdGlucy5oIgotCi0jaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCi0jaW5jbHVk
ZSAiRXhlY3V0YWJsZS5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKLSNpbmNsdWRlICJW
TS5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNf
YnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNv
bnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Qcm9t
aXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGggPSA0MTM7Ci1jb25zdCBjaGFyKiBzX2J1aWx0aW5Q
cm9taXNlUmVqZWN0UHJvbWlzZUNvZGUgPQotICAgICIoZnVuY3Rpb24gKHByb21pc2UsIHJlYXNv
bilcbiIgXAotICAgICJ7XG4iIFwKLSAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAg
IlxuIiBcCi0gICAgIiAgICB2YXIgcmVhY3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJl
YWN0aW9ucztcbiIgXAotICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVJlc3VsdCA9IHJlYXNvbjtc
biIgXAotICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmlu
ZWQ7XG4iIFwKLSAgICAiICAgIHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRl
ZmluZWQ7XG4iIFwKLSAgICAiICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlUmVq
ZWN0ZWQ7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24ucHJvbWlzZVJlamVjdGVkKHByb21pc2UsIHJlYXNvbiwgcmVhY3Rpb25zKTtcbiIgXAotICAg
ICJcbiIgXAotICAgICIgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVh
c29uKTtcbiIgXAotICAgICJ9KVxuIiBcCi07Ci0KLWNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0
eSBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRp
blByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGggPSA0MTI7Ci1jb25zdCBjaGFyKiBzX2J1
aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlID0KLSAgICAiKGZ1bmN0aW9uIChwcm9taXNl
LCB2YWx1ZSlcbiIgXAotICAgICJ7XG4iIFwKLSAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBc
Ci0gICAgIlxuIiBcCi0gICAgIiAgICB2YXIgcmVhY3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZUZ1
bGZpbGxSZWFjdGlvbnM7XG4iIFwKLSAgICAiICAgIHByb21pc2UuQHByb21pc2VSZXN1bHQgPSB2
YWx1ZTtcbiIgXAotICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1
bmRlZmluZWQ7XG4iIFwKLSAgICAiICAgIHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMg
PSB1bmRlZmluZWQ7XG4iIFwKLSAgICAiICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9t
aXNlRnVsZmlsbGVkO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICBASW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLnByb21pc2VGdWxmaWxsZWQocHJvbWlzZSwgdmFsdWUsIHJlYWN0aW9ucyk7XG4i
IFwKLSAgICAiXG4iIFwKLSAgICAiICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlv
bnMsIHZhbHVlKTtcbiIgXAotICAgICJ9KVxuIiBcCi07Ci0KLQotI2RlZmluZSBERUZJTkVfQlVJ
TFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAot
SlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0p
IFwKLXtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhl
Y3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1Nv
dXJjZSgpKTsgfQotSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVS
QVRPUikKLSN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKLQotCi19IC8vIG5hbWVzcGFj
ZSBKU0MKLSMjIyBFbmQgRmlsZTogSlNDQnVpbHRpbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9zLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0
aW4uUHJvbWlzZS1NYWNyb3MuanMtcmVzdWx0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NDNjZWFjOWU2NDBlNjNh
OGQ5ODRlZGZjMTBiNGIyYTAyM2MyNzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1C
dWlsdGluLlByb21pc2UtTWFjcm9zLmpzLXJlc3VsdApAQCAtMCwwICsxLDQ5IEBACisjIyMgQmVn
aW4gRmlsZTogSlNDQnVpbHRpbnNNYWNyb3MuaAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNSBZ
dXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICogCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIAorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogCisgKi8KKwor
Ly8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBm
cm9tIEphdmFTY3JpcHQgZmlsZXMgZm9yCisvLyBidWlsdGlucyBieSB0aGUgc2NyaXB0OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9nZW5lcmF0ZS1qcy1idWlsdGlucy5weQorCisjaWZu
ZGVmIEpTQ0J1aWx0aW5zTWFjcm9zX2gKKyNkZWZpbmUgSlNDQnVpbHRpbnNNYWNyb3NfaAorCisj
aW5jbHVkZSAiQnVpbHRpblByb21pc2VCdWlsdGlucy5oIgorCituYW1lc3BhY2UgSlNDIHsKKwor
I2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUobWFjcm8pIFwKKyAgICBKU0NfRk9SRUFD
SF9CVUlMVElOX1BST01JU0VfQlVJTFRJTl9DT0RFKG1hY3JvKSBcCisKKyNkZWZpbmUgSlNDX0ZP
UkVBQ0hfVU5JUVVFX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAorICAgIG1hY3JvKGZ1
bGZpbGxQcm9taXNlKSBcCisgICAgbWFjcm8ocmVqZWN0UHJvbWlzZSkgXAorCit9IC8vIG5hbWVz
cGFjZSBKU0MKKworI2VuZGlmIC8vIEpTQ0J1aWx0aW5zTWFjcm9zX2gKKworIyMjIEVuZCBGaWxl
OiBKU0NCdWlsdGluc01hY3Jvcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlBy
b21pc2UtU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNl
cGFyYXRlLmpzLXJlc3VsdAppbmRleCAyMjdiYTI0YzVjYzI5ZTVlMjliMWRiOWY1NDYyNWZlMGYy
OTUxODIyLi4zYzZjMjZhYTBlMWQ3ZmU5MGNhMTQ3M2RmNGFiM2FlM2Y4M2Y3OGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJhdGUuanMtcmVzdWx0CisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0ph
dmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTMxLDEw
ICszMSwxMiBAQAogI2lmbmRlZiBCdWlsdGluUHJvbWlzZUJ1aWx0aW5zX2gKICNkZWZpbmUgQnVp
bHRpblByb21pc2VCdWlsdGluc19oCiAKLQorI2luY2x1ZGUgIkJ1aWx0aW5VdGlscy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworZW51
bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFjZSBKU0Mg
ewpAQCAtNTQsMjEgKzU2LDIxIEBAIGV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkg
c19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUNvbnN0cnVjdEFiCiAjZGVmaW5lIEpT
Q19CVUlMVElOX0JVSUxUSU5fUFJPTUlTRV9SRUpFQ1RQUk9NSVNFIDEKICNkZWZpbmUgSlNDX0JV
SUxUSU5fQlVJTFRJTl9QUk9NSVNFX0ZVTEZJTExQUk9NSVNFIDEKIAotI2RlZmluZSBKU0NfRk9S
RUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJTl9DT0RFKG1hY3JvKSBcCisjZGVmaW5lIEpTQ19G
T1JFQUNIX0JVSUxUSU5fUFJPTUlTRV9CVUlMVElOX0NPREUobWFjcm8pIFwKICAgICBtYWNybyhi
dWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlLCByZWplY3RQcm9taXNlLCBzX2J1aWx0aW5Q
cm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGgpIFwKICAgICBtYWNybyhidWlsdGluUHJvbWlz
ZUZ1bGZpbGxQcm9taXNlQ29kZSwgZnVsZmlsbFByb21pc2UsIHNfYnVpbHRpblByb21pc2VGdWxm
aWxsUHJvbWlzZUNvZGVMZW5ndGgpIFwKIAotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBS
T01JU0VfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCisjZGVmaW5lIEpTQ19GT1JFQUNI
X0JVSUxUSU5fUFJPTUlTRV9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKICAgICBtYWNy
byhmdWxmaWxsUHJvbWlzZSkgXAogICAgIG1hY3JvKHJlamVjdFByb21pc2UpIFwKIAogI2RlZmlu
ZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3Vt
ZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVy
YXRvcihKU0M6OlZNJik7CiAKLUpTQ19GT1JFQUNIX0JVSUxUSU4uUFJPTUlTRV9CVUlMVElOX0NP
REUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKK0pTQ19GT1JFQUNIX0JVSUxUSU5fUFJPTUlT
RV9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUNMQVJF
X0JVSUxUSU5fR0VORVJBVE9SCiAKLSNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTi5QUk9NSVNF
X0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JVSUxUSU5fICMjIG9iamVjdCAjIyBf
ICMjIGZ1bmMKKyNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTl9QUk9NSVNFX0VYSVNUUyhvYmpl
Y3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JVSUxUSU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCiAKQEAgLTE1OSw3ICsxNjEsNyBAQCBjb25zdCBjaGFyKiBzX2J1
aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxl
KiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7XAogICAgIHJldHVybiB2bS5i
dWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0u
YnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7IH0KLUpTQ19GT1JFQUNI
X0JVSUxUSU4uUFJPTUlTRV9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQor
SlNDX0ZPUkVBQ0hfQlVJTFRJTl9QUk9NSVNFX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9H
RU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCiAKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
SmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNj
cmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5NGY2N2M1YWMwMWRkYTNkYmY5YjFkOWU3Nzk4MzlmZDc4NjNj
NmI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3Jp
cHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJlc3VsdAorKysgL2Rldi9udWxs
CkBAIC0xLDE5MiArMCwwIEBACi0jIyMgQmVnaW4gRmlsZTogSlNDQnVpbHRpbnMuaAotLyoKLSAq
IENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPi4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMg
YXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgotLy8gYnVp
bHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJh
dGUtanMtYnVpbHRpbnMucHkKLQotI2lmbmRlZiBKU0NCdWlsdGluc19oCi0jZGVmaW5lIEpTQ0J1
aWx0aW5zX2gKLQotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci1j
bGFzcyBWTTsKLQotZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7Ci19Ci0K
LW5hbWVzcGFjZSBKU0MgewotCi0vKiBCdWlsdGluLnByb3RvdHlwZSAqLwotZXh0ZXJuIGNvbnN0
IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19i
dWlsdGluUHJvdG90eXBlRXZlcnlDb2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3Ry
dWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVDb25zdHJ1Y3RBYmlsaXR5Owot
ZXh0ZXJuIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUZvckVhY2hDb2RlOwotZXh0ZXJu
IGNvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUxlbmd0aDsKLWV4dGVybiBj
b25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVD
b25zdHJ1Y3RBYmlsaXR5OwotCi0jZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5QUk9UT1RZUEVf
QlVJTFRJTl9EQVRBKG1hY3JvKSBcCi0gICAgbWFjcm8oZXZlcnksIGJ1aWx0aW5Qcm90b3R5cGVF
dmVyeSwgMSkgXAotICAgIG1hY3JvKGZvckVhY2gsIGJ1aWx0aW5Qcm90b3R5cGVGb3JFYWNoLCAx
KSBcCi0KLSNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTlBST1RPVFlQRV9FVkVSWSAxCi0jZGVm
aW5lIEpTQ19CVUlMVElOX0JVSUxUSU5QUk9UT1RZUEVfRk9SRUFDSCAxCi0KLSNkZWZpbmUgSlND
X0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKG1hY3JvKSBcCi0gICAgbWFjcm8oYnVpbHRpblByb3RvdHlw
ZUV2ZXJ5Q29kZSwgZXZlcnksIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCkgXAot
ICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSwgZm9yRWFjaCwgc19idWlsdGlu
UHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGgpIFwKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlM
VElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKLSAgICBtYWNybyhldmVyeSkgXAotICAgIG1hY3Jv
KGZvckVhY2gpIFwKLQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1l
LCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKLSAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0
YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7Ci0KLUpTQ19GT1JFQUNIX0JVSUxU
SU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIERFQ0xBUkVfQlVJTFRJ
Tl9HRU5FUkFUT1IKLQotI2RlZmluZSBKU0NfQlVJTFRJTl9FWElTVFMob2JqZWN0LCBmdW5jKSBk
ZWZpbmVkIEpTQ19CVUlMVElOXyAjIyBvYmplY3QgIyMgXyAjIyBmdW5jCi0KLX0gLy8gbmFtZXNw
YWNlIEpTQwotCi0jZW5kaWYgLy8gSlNDQnVpbHRpbnNfaAotCi0jIyMgRW5kIEZpbGU6IEpTQ0J1
aWx0aW5zLmgKLQotIyMjIEJlZ2luIEZpbGU6IEpTQ0J1aWx0aW5zLmNwcAotLyoKLSAqIENvcHly
aWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4K
LSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21h
dGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMg
YnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMt
YnVpbHRpbnMucHkKLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5z
LmgiCi0KLSNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKLSNpbmNsdWRlICJFeGVjdXRh
YmxlLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgotI2luY2x1ZGUgIlZNLmgiCi0KLW5h
bWVzcGFjZSBKU0MgewotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJv
dG90eXBlRXZlcnlDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6
Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxl
bmd0aCA9IDc2MjsKLWNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9Ci0g
ICAgIihmdW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCi0gICAgIntcbiIgXAotICAgICIgICAgXCJ1
c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIGlmICh0aGlzID09PSBudWxs
KVxuIiBcCi0gICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5
cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGxcIik7XG4iIFwKLSAgICAi
ICAgIFxuIiBcCi0gICAgIiAgICBpZiAodGhpcyA9PT0gdW5kZWZpbmVkKVxuIiBcCi0gICAgIiAg
ICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZXZlcnkgcmVxdWly
ZXMgdGhhdCB8dGhpc3wgbm90IGJlIHVuZGVmaW5lZFwiKTtcbiIgXAotICAgICIgICAgXG4iIFwK
LSAgICAiICAgIHZhciBhcnJheSA9IEBPYmplY3QodGhpcyk7XG4iIFwKLSAgICAiICAgIHZhciBs
ZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTtcbiIgXAotICAgICJcbiIgXAotICAgICIg
ICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gXCJmdW5jdGlvblwiKVxuIiBcCi0gICAgIiAgICAg
ICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZXZlcnkgY2FsbGJhY2sg
bXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBcCi0gICAgIiAgICBcbiIgXAotICAgICIgICAgdmFy
IHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5l
ZDtcbiIgXAotICAgICIgICAgXG4iIFwKLSAgICAiICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVu
Z3RoOyBpKyspIHtcbiIgXAotICAgICIgICAgICAgIGlmICghKGkgaW4gYXJyYXkpKVxuIiBcCi0g
ICAgIiAgICAgICAgICAgIGNvbnRpbnVlO1xuIiBcCi0gICAgIiAgICAgICAgaWYgKCFjYWxsYmFj
ay5AY2FsbCh0aGlzQXJnLCBhcnJheVtpXSwgaSwgYXJyYXkpKVxuIiBcCi0gICAgIiAgICAgICAg
ICAgIHJldHVybiBmYWxzZTtcbiIgXAotICAgICIgICAgfVxuIiBcCi0gICAgIiAgICBcbiIgXAot
ICAgICIgICAgcmV0dXJuIHRydWU7XG4iIFwKLSAgICAifSlcbiIgXAotOwotCi1jb25zdCBKU0M6
OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVDb25zdHJ1Y3RB
YmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBp
bnQgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGggPSA2OTQ7Ci1jb25zdCBjaGFy
KiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9Ci0gICAgIihmdW5jdGlvbiAoY2FsbGJh
Y2sgKVxuIiBcCi0gICAgIntcbiIgXAotICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAg
ICAiXG4iIFwKLSAgICAiICAgIGlmICh0aGlzID09PSBudWxsKVxuIiBcCi0gICAgIiAgICAgICAg
dGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCByZXF1aXJlcyB0
aGF0IHx0aGlzfCBub3QgYmUgbnVsbFwiKTtcbiIgXAotICAgICIgICAgXG4iIFwKLSAgICAiICAg
IGlmICh0aGlzID09PSB1bmRlZmluZWQpXG4iIFwKLSAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5
cGVFcnJvcihcIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5v
dCBiZSB1bmRlZmluZWRcIik7XG4iIFwKLSAgICAiICAgIFxuIiBcCi0gICAgIiAgICB2YXIgYXJy
YXkgPSBAT2JqZWN0KHRoaXMpO1xuIiBcCi0gICAgIiAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3Ro
KGFycmF5Lmxlbmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIGlmICh0eXBlb2YgY2Fs
bGJhY2sgIT09IFwiZnVuY3Rpb25cIilcbiIgXAotICAgICIgICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0
aW9uXCIpO1xuIiBcCi0gICAgIiAgICBcbiIgXAotICAgICIgICAgdmFyIHRoaXNBcmcgPSBhcmd1
bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiIgXAotICAgICIg
ICAgXG4iIFwKLSAgICAiICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiIg
XAotICAgICIgICAgICAgIGlmIChpIGluIGFycmF5KVxuIiBcCi0gICAgIiAgICAgICAgICAgIGNh
bGxiYWNrLkBjYWxsKHRoaXNBcmcsIGFycmF5W2ldLCBpLCBhcnJheSk7XG4iIFwKLSAgICAiICAg
IH1cbiIgXAotICAgICJ9KVxuIiBcCi07Ci0KLQotI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5F
UkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAotSlNDOjpGdW5j
dGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKLXtcCi0g
ICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgp
LT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsg
fQotSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKLSN1
bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKLQotCi19IC8vIG5hbWVzcGFjZSBKU0MKLSMj
IyBFbmQgRmlsZTogSlNDQnVpbHRpbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWls
dGluLnByb3RvdHlwZS1NYWNyb3MuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90
b3R5cGUtTWFjcm9zLmpzLXJlc3VsdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTdlYzY0YmI2NGI4MzU4NDYxNGIz
N2QzZjg2NTM5ODY1NjE0ODYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bi5wcm90b3R5cGUtTWFjcm9zLmpzLXJlc3VsdApAQCAtMCwwICsxLDUwIEBACisjIyMgQmVnaW4g
RmlsZTogSlNDQnVpbHRpbnNNYWNyb3MuaAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNCwgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUg
WXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqIAorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIAorICovCisK
Ky8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQg
ZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgorLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKKworI2lm
bmRlZiBKU0NCdWlsdGluc01hY3Jvc19oCisjZGVmaW5lIEpTQ0J1aWx0aW5zTWFjcm9zX2gKKwor
I2luY2x1ZGUgIkJ1aWx0aW5Qcm90b3R5cGVCdWlsdGlucy5oIgorCituYW1lc3BhY2UgSlNDIHsK
KworI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUobWFjcm8pIFwKKyAgICBKU0NfRk9S
RUFDSF9CVUlMVElOX1BST1RPVFlQRV9CVUlMVElOX0NPREUobWFjcm8pIFwKKworI2RlZmluZSBK
U0NfRk9SRUFDSF9VTklRVUVfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCisgICAgbWFj
cm8oZXZlcnkpIFwKKyAgICBtYWNybyhmb3JFYWNoKSBcCisKK30gLy8gbmFtZXNwYWNlIEpTQwor
CisjZW5kaWYgLy8gSlNDQnVpbHRpbnNNYWNyb3NfaAorCisjIyMgRW5kIEZpbGU6IEpTQ0J1aWx0
aW5zTWFjcm9zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLVNl
cGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLVNlcGFyYXRl
LmpzLXJlc3VsdAppbmRleCAyOTM4M2Y0ZjdhYWY5MGNjODE0ZDQxMThkZDJjZmNjNGY3ZDg2ZTY5
Li5lYTU0M2RkYzNjOWQzMWJiZmZkN2Q4YjlhYWIwODIxYmIzOTcyMjNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZh
U2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNj
cmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0zMiwxMCAr
MzIsMTIgQEAKICNpZm5kZWYgQnVpbHRpblByb3RvdHlwZUJ1aWx0aW5zX2gKICNkZWZpbmUgQnVp
bHRpblByb3RvdHlwZUJ1aWx0aW5zX2gKIAotCisjaW5jbHVkZSAiQnVpbHRpblV0aWxzLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgVk07Citl
bnVtIGNsYXNzIENvbnN0cnVjdEFiaWxpdHkgOiB1bnNpZ25lZDsKIH0KIAogbmFtZXNwYWNlIEpT
QyB7CkBAIC01NSwyMSArNTcsMjEgQEAgZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0
eSBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUNvbnN0cnVjdEFiaWxpdHkKICNkZWZpbmUg
SlNDX0JVSUxUSU5fQlVJTFRJTl9QUk9UT1RZUEVfRVZFUlkgMQogI2RlZmluZSBKU0NfQlVJTFRJ
Tl9CVUlMVElOX1BST1RPVFlQRV9GT1JFQUNIIDEKIAotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlM
VElOLlBST1RPVFlQRV9CVUlMVElOX0NPREUobWFjcm8pIFwKKyNkZWZpbmUgSlNDX0ZPUkVBQ0hf
QlVJTFRJTl9QUk9UT1RZUEVfQlVJTFRJTl9DT0RFKG1hY3JvKSBcCiAgICAgbWFjcm8oYnVpbHRp
blByb3RvdHlwZUV2ZXJ5Q29kZSwgZXZlcnksIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxl
bmd0aCkgXAogICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSwgZm9yRWFjaCwg
c19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGgpIFwKIAotI2RlZmluZSBKU0NfRk9S
RUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKKyNk
ZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9QUk9UT1RZUEVfQlVJTFRJTl9GVU5DVElPTl9OQU1F
KG1hY3JvKSBcCiAgICAgbWFjcm8oZXZlcnkpIFwKICAgICBtYWNybyhmb3JFYWNoKSBcCiAKICNk
ZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBh
cmd1bWVudENvdW50KSBcCiAgICAgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNH
ZW5lcmF0b3IoSlNDOjpWTSYpOwogCi1KU0NfRk9SRUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlM
VElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKK0pTQ19GT1JFQUNIX0JVSUxUSU5f
UFJPVE9UWVBFX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVm
IERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IKIAotI2RlZmluZSBKU0NfQlVJTFRJTl9CVUlMVElO
LlBST1RPVFlQRV9FWElTVFMob2JqZWN0LCBmdW5jKSBkZWZpbmVkIEpTQ19CVUlMVElOXyAjIyBv
YmplY3QgIyMgXyAjIyBmdW5jCisjZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5fUFJPVE9UWVBF
X0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JVSUxUSU5fICMjIG9iamVjdCAjIyBf
ICMjIGZ1bmMKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKQEAgLTE4Myw3ICsxODUsNyBAQCBjb25z
dCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9CiBKU0M6OkZ1bmN0aW9uRXhl
Y3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAoge1wKICAgICByZXR1
cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmso
dm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9Ci1KU0Nf
Rk9SRUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VO
RVJBVE9SKQorSlNDX0ZPUkVBQ0hfQlVJTFRJTl9QUk9UT1RZUEVfQlVJTFRJTl9DT0RFKERFRklO
RV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMt
cmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhw
ZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpzLXJlc3Vs
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTMzNzEzMzg1ZTE2MjE3MDAwMjhlZTdk
ODFhMjMwMGE3ODIyYWU2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMtcmVzdWx0
CisrKyAvZGV2L251bGwKQEAgLTEsMjI0ICswLDAgQEAKLSMjIyBCZWdpbiBGaWxlOiBKU0NCdWls
dGlucy5oCi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQg
aXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgotLy8g
YnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2Vu
ZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2lmbmRlZiBKU0NCdWlsdGluc19oCi0jZGVmaW5lIEpT
Q0J1aWx0aW5zX2gKLQotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7
Ci1jbGFzcyBWTTsKLQotZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7Ci19
Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0vKiBCdWlsdGluQ29uc3RydWN0b3IgKi8KLWV4dGVybiBj
b25zdCBjaGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZTsKLWV4dGVybiBjb25zdCBpbnQg
c19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlQ29uc3RydWN0QWJpbGl0eTsK
LWV4dGVybiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlOwotZXh0ZXJu
IGNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoOwotZXh0ZXJuIGNv
bnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlQ29u
c3RydWN0QWJpbGl0eTsKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOQ09OU1RSVUNUT1Jf
QlVJTFRJTl9EQVRBKG1hY3JvKSBcCi0gICAgbWFjcm8ob2YsIGJ1aWx0aW5Db25zdHJ1Y3Rvck9m
LCAwKSBcCi0gICAgbWFjcm8oZnJvbSwgYnVpbHRpbkNvbnN0cnVjdG9yRnJvbSwgMSkgXAotCi0j
ZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5DT05TVFJVQ1RPUl9PRiAxCi0jZGVmaW5lIEpTQ19C
VUlMVElOX0JVSUxUSU5DT05TVFJVQ1RPUl9GUk9NIDEKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9C
VUlMVElOX0NPREUobWFjcm8pIFwKLSAgICBtYWNybyhidWlsdGluQ29uc3RydWN0b3JPZkNvZGUs
IG9mLCBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0
aW5Db25zdHJ1Y3RvckZyb21Db2RlLCBmcm9tLCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2Rl
TGVuZ3RoKSBcCi0KLSNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1h
Y3JvKSBcCi0gICAgbWFjcm8oZnJvbSkgXAotICAgIG1hY3JvKG9mKSBcCi0KLSNkZWZpbmUgREVD
TEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENv
dW50KSBcCi0gICAgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3Io
SlNDOjpWTSYpOwotCi1KU0NfRk9SRUFDSF9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dF
TkVSQVRPUikKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCi0KLSNkZWZpbmUgSlND
X0JVSUxUSU5fRVhJU1RTKG9iamVjdCwgZnVuYykgZGVmaW5lZCBKU0NfQlVJTFRJTl8gIyMgb2Jq
ZWN0ICMjIF8gIyMgZnVuYwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIEpTQ0J1
aWx0aW5zX2gKLQotIyMjIEVuZCBGaWxlOiBKU0NCdWlsdGlucy5oCi0KLSMjIyBCZWdpbiBGaWxl
OiBKU0NCdWlsdGlucy5jcHAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICogCi0gKi8KLQotLy8gRE8gTk9UIEVESVQgVEhJ
UyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIEphdmFTY3JpcHQgZmls
ZXMgZm9yCi0vLyBidWlsdGlucyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy9nZW5lcmF0ZS1qcy1idWlsdGlucy5weQotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKLQotI2luY2x1ZGUgIkJ1aWx0aW5FeGVjdXRhYmxlcy5o
IgotI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKLSNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCi0j
aW5jbHVkZSAiVk0uaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNvbnN0IEpTQzo6Q29uc3RydWN0
QWJpbGl0eSBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6
OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5D
b25zdHJ1Y3Rvck9mQ29kZUxlbmd0aCA9IDI5NDsKLWNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0
cnVjdG9yT2ZDb2RlID0KLSAgICAiKGZ1bmN0aW9uICgpXG4iIFwKLSAgICAie1xuIiBcCi0gICAg
IiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgdmFyIGxlbmd0
aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4iIFwKLSAgICAiICAgIC8vXG4iIFwKLSAgICAiICAgIHZh
ciBhcnJheSA9IHR5cGVvZiB0aGlzID09PSAnZnVuY3Rpb24nID8gbmV3IHRoaXMobGVuZ3RoKSA6
IG5ldyBAQXJyYXkobGVuZ3RoKTtcbiIgXAotICAgICIgICAgZm9yICh2YXIgayA9IDA7IGsgPCBs
ZW5ndGg7ICsraylcbiIgXAotICAgICIgICAgICAgIEBwdXRCeVZhbERpcmVjdChhcnJheSwgaywg
YXJndW1lbnRzW2tdKTtcbiIgXAotICAgICIgICAgYXJyYXkubGVuZ3RoID0gbGVuZ3RoO1xuIiBc
Ci0gICAgIiAgICByZXR1cm4gYXJyYXk7XG4iIFwKLSAgICAifSlcbiIgXAotOwotCi1jb25zdCBK
U0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluQ29uc3RydWN0b3JGcm9tQ29kZUNvbnN0cnVj
dEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0
IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoID0gMjA0NjsKLWNvbnN0IGNo
YXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQotICAgICIoZnVuY3Rpb24gKGl0ZW1z
IClcbiIgXAotICAgICJ7XG4iIFwKLSAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAg
IlxuIiBcCi0gICAgIiAgICB2YXIgdGhpc09iaiA9IHRoaXM7XG4iIFwKLSAgICAiXG4iIFwKLSAg
ICAiICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDog
dW5kZWZpbmVkO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICB2YXIgdGhpc0FyZztcbiIgXAot
ICAgICJcbiIgXAotICAgICIgICAgaWYgKG1hcEZuICE9PSB1bmRlZmluZWQpIHtcbiIgXAotICAg
ICIgICAgICAgIGlmICh0eXBlb2YgbWFwRm4gIT09IFwiZnVuY3Rpb25cIilcbiIgXAotICAgICIg
ICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgdGhh
dCB0aGUgc2Vjb25kIGFyZ3VtZW50LCB3aGVuIHByb3ZpZGVkLCBiZSBhIGZ1bmN0aW9uXCIpO1xu
IiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKVxu
IiBcCi0gICAgIiAgICAgICAgICAgIHRoaXNBcmcgPSBhcmd1bWVudHNbMl07XG4iIFwKLSAgICAi
ICAgIH1cbiIgXAotICAgICJcbiIgXAotICAgICIgICAgaWYgKGl0ZW1zID09IG51bGwpXG4iIFwK
LSAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMg
YW4gYXJyYXktbGlrZSBvYmplY3QgLSBub3QgbnVsbCBvciB1bmRlZmluZWRcIik7XG4iIFwKLSAg
ICAiXG4iIFwKLSAgICAiICAgIHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZW1zW0BzeW1ib2xJdGVy
YXRvcl07XG4iIFwKLSAgICAiICAgIGlmIChpdGVyYXRvck1ldGhvZCAhPSBudWxsKSB7XG4iIFwK
LSAgICAiICAgICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yTWV0aG9kICE9PSBcImZ1bmN0aW9uXCIp
XG4iIFwKLSAgICAiICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5mcm9t
IHJlcXVpcmVzIHRoYXQgdGhlIHByb3BlcnR5IG9mIHRoZSBmaXJzdCBhcmd1bWVudCwgaXRlbXNb
U3ltYm9sLml0ZXJhdG9yXSwgd2hlbiBleGlzdHMsIGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKLSAg
ICAiXG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBcCi0gICAgIiAgICAgICAgdmFyIHJlc3VsdCA9
ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNPYmoo
KSkgOiBbXTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgICAgIHZhciBrID0gMDtcbiIgXAot
ICAgICIgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yTWV0aG9kLkBjYWxsKGl0ZW1zKTtc
biIgXAotICAgICJcbiIgXAotICAgICIgICAgICAgIC8vXG4iIFwKLSAgICAiICAgICAgICAvL1xu
IiBcCi0gICAgIiAgICAgICAgLy9cbiIgXAotICAgICIgICAgICAgIHZhciB3cmFwcGVyID0ge1xu
IiBcCi0gICAgIiAgICAgICAgICAgIFtAc3ltYm9sSXRlcmF0b3JdKCkge1xuIiBcCi0gICAgIiAg
ICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3I7XG4iIFwKLSAgICAiICAgICAgICAgICAgfVxu
IiBcCi0gICAgIiAgICAgICAgfTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgICAgIGZvciAo
dmFyIHZhbHVlIG9mIHdyYXBwZXIpIHtcbiIgXAotICAgICIgICAgICAgICAgICBpZiAobWFwRm4p
XG4iIFwKLSAgICAiICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHRo
aXNBcmcgPT09IHVuZGVmaW5lZCA/IG1hcEZuKHZhbHVlLCBrKSA6IG1hcEZuLkBjYWxsKHRoaXNB
cmcsIHZhbHVlLCBrKSk7XG4iIFwKLSAgICAiICAgICAgICAgICAgZWxzZVxuIiBcCi0gICAgIiAg
ICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKLSAg
ICAiICAgICAgICAgICAgayArPSAxO1xuIiBcCi0gICAgIiAgICAgICAgfVxuIiBcCi0gICAgIlxu
IiBcCi0gICAgIiAgICAgICAgcmVzdWx0Lmxlbmd0aCA9IGs7XG4iIFwKLSAgICAiICAgICAgICBy
ZXR1cm4gcmVzdWx0O1xuIiBcCi0gICAgIiAgICB9XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAg
IHZhciBhcnJheUxpa2UgPSBAT2JqZWN0KGl0ZW1zKTtcbiIgXAotICAgICIgICAgdmFyIGFycmF5
TGlrZUxlbmd0aCA9IEB0b0xlbmd0aChhcnJheUxpa2UubGVuZ3RoKTtcbiIgXAotICAgICJcbiIg
XAotICAgICIgICAgLy9cbiIgXAotICAgICIgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09i
aiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNPYmooYXJyYXlMaWtlTGVuZ3Ro
KSkgOiBuZXcgQEFycmF5KGFycmF5TGlrZUxlbmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAi
ICAgIHZhciBrID0gMDtcbiIgXAotICAgICIgICAgd2hpbGUgKGsgPCBhcnJheUxpa2VMZW5ndGgp
IHtcbiIgXAotICAgICIgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5TGlrZVtrXTtcbiIgXAotICAg
ICIgICAgICAgIGlmIChtYXBGbilcbiIgXAotICAgICIgICAgICAgICAgICBAcHV0QnlWYWxEaXJl
Y3QocmVzdWx0LCBrLCB0aGlzQXJnID09PSB1bmRlZmluZWQgPyBtYXBGbih2YWx1ZSwgaykgOiBt
YXBGbi5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaykpO1xuIiBcCi0gICAgIiAgICAgICAgZWxzZVxu
IiBcCi0gICAgIiAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHZhbHVlKTtc
biIgXAotICAgICIgICAgICAgIGsgKz0gMTtcbiIgXAotICAgICIgICAgfVxuIiBcCi0gICAgIlxu
IiBcCi0gICAgIiAgICByZXN1bHQubGVuZ3RoID0gYXJyYXlMaWtlTGVuZ3RoO1xuIiBcCi0gICAg
IiAgICByZXR1cm4gcmVzdWx0O1xuIiBcCi0gICAgIn0pXG4iIFwKLTsKLQotCi0jZGVmaW5lIERF
RklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENv
dW50KSBcCi1KU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6
OlZNJiB2bSkgXAote1wKLSAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVO
YW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2Rl
TmFtZSMjU291cmNlKCkpOyB9Ci1KU0NfRk9SRUFDSF9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxU
SU5fR0VORVJBVE9SKQotI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgotCi0KLX0gLy8g
bmFtZXNwYWNlIEpTQwotIyMjIEVuZCBGaWxlOiBKU0NCdWlsdGlucy5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0ph
dmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1NYWNyb3MuanMtcmVzdWx0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlw
dENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLU1hY3Jvcy5qcy1yZXN1bHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU5
NGViY2EwZjk1YWI5OTg4ZmM3NzUwYTZmZWMwMzY3M2QwNjg4NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0ph
dmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1NYWNyb3MuanMtcmVzdWx0CkBAIC0wLDAg
KzEsNDkgQEAKKyMjIyBCZWdpbiBGaWxlOiBKU0NCdWlsdGluc01hY3Jvcy5oCisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
IAorICovCisKKy8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBn
ZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgorLy8gYnVpbHRpbnMgYnkgdGhlIHNj
cmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMu
cHkKKworI2lmbmRlZiBKU0NCdWlsdGluc01hY3Jvc19oCisjZGVmaW5lIEpTQ0J1aWx0aW5zTWFj
cm9zX2gKKworI2luY2x1ZGUgIkJ1aWx0aW5Db25zdHJ1Y3RvckJ1aWx0aW5zLmgiCisKK25hbWVz
cGFjZSBKU0MgeworCisjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShtYWNybykgXAor
ICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5DT05TVFJVQ1RPUl9CVUlMVElOX0NPREUobWFjcm8pIFwK
KworI2RlZmluZSBKU0NfRk9SRUFDSF9VTklRVUVfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3Jv
KSBcCisgICAgbWFjcm8oZnJvbSkgXAorICAgIG1hY3JvKG9mKSBcCisKK30gLy8gbmFtZXNwYWNl
IEpTQworCisjZW5kaWYgLy8gSlNDQnVpbHRpbnNNYWNyb3NfaAorCisjIyMgRW5kIEZpbGU6IEpT
Q0J1aWx0aW5zTWFjcm9zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1
Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3It
U2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDgyNjZkMDVkNDAwZDVkNzY0YmYyZGQ2N2MyYjg2NWJj
YTU3OWQzYjAuLjAyNTE3N2I3OTBlYWRmYTg4Y2YwM2RmNGNjMzBjYjgyYzEwMmZmNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVj
dGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdApA
QCAtMzEsMTAgKzMxLDEyIEBACiAjaWZuZGVmIEJ1aWx0aW5Db25zdHJ1Y3RvckJ1aWx0aW5zX2gK
ICNkZWZpbmUgQnVpbHRpbkNvbnN0cnVjdG9yQnVpbHRpbnNfaAogCi0KKyNpbmNsdWRlICJCdWls
dGluVXRpbHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7
CitjbGFzcyBWTTsKK2VudW0gY2xhc3MgQ29uc3RydWN0QWJpbGl0eSA6IHVuc2lnbmVkOwogfQog
CiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLU9wZXJhdGlvbnMuUHJv
bWlzZS1Db21iaW5lZC5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1PcGVyYXRpb25zLlByb21pc2Ut
Q29tYmluZWQuanMtcmVzdWx0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTQ1MTEx
MWNhN2Q2NzU1ZmUyNzVhMzk0NGU3NzE2NDFiM2I5ZGY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLU9wZXJhdGlvbnMuUHJvbWlzZS1D
b21iaW5lZC5qcy1yZXN1bHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MTUgKzAsMCBAQAotIyMjIEJl
Z2luIEZpbGU6IEpTQ0J1aWx0aW5zLmgKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtl
IFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAqIAotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERP
IE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBK
YXZhU2NyaXB0IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2lmbmRlZiBK
U0NCdWlsdGluc19oCi0jZGVmaW5lIEpTQ0J1aWx0aW5zX2gKLQotbmFtZXNwYWNlIEpTQyB7Ci1j
bGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBWTTsKLQotZW51bSBjbGFzcyBDb25zdHJ1
Y3RBYmlsaXR5IDogdW5zaWduZWQ7Ci19Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0vKiBPcGVyYXRp
b25zLlByb21pc2UgKi8KLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlSXNQ
cm9taXNlQ29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlz
ZUNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0
aW9uc1Byb21pc2VJc1Byb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBj
aGFyKiBzX29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZVJlYWN0aW9uQ29kZTsKLWV4dGVybiBj
b25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VSZWFjdGlvbkNvZGVMZW5ndGg7
Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VO
ZXdQcm9taXNlUmVhY3Rpb25Db2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFy
KiBzX29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlOwotZXh0ZXJuIGNv
bnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlTGVuZ3Ro
OwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX29wZXJhdGlvbnNQcm9taXNl
TmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBj
aGFyKiBzX29wZXJhdGlvbnNQcm9taXNlVHJpZ2dlclByb21pc2VSZWFjdGlvbnNDb2RlOwotZXh0
ZXJuIGNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlVHJpZ2dlclByb21pc2VSZWFjdGlvbnND
b2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX29wZXJhdGlv
bnNQcm9taXNlVHJpZ2dlclByb21pc2VSZWFjdGlvbnNDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4
dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlUmVqZWN0UHJvbWlzZUNvZGU7Ci1l
eHRlcm4gY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0
aDsKLWV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlz
ZVJlamVjdFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBz
X29wZXJhdGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBz
X29wZXJhdGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VDb2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0
IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX29wZXJhdGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VD
b2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9t
aXNlQ3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zQ29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19vcGVy
YXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGVMZW5ndGg7Ci1leHRlcm4g
Y29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VDcmVhdGVSZXNv
bHZpbmdGdW5jdGlvbnNDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBz
X29wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlYWN0aW9uSm9iQ29kZTsKLWV4dGVybiBjb25zdCBp
bnQgc19vcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZWFjdGlvbkpvYkNvZGVMZW5ndGg7Ci1leHRl
cm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNl
UmVhY3Rpb25Kb2JDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29w
ZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGU7Ci1leHRlcm4gY29u
c3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iQ29kZUxl
bmd0aDsKLWV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJv
bWlzZVByb21pc2VSZXNvbHZlVGhlbmFibGVKb2JDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVy
biBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlSW5pdGlhbGl6ZVByb21pc2VDb2RlOwot
ZXh0ZXJuIGNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlSW5pdGlhbGl6ZVByb21pc2VDb2Rl
TGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX29wZXJhdGlvbnNQ
cm9taXNlSW5pdGlhbGl6ZVByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eTsKLQotI2RlZmluZSBK
U0NfRk9SRUFDSF9PUEVSQVRJT05TUFJPTUlTRV9CVUlMVElOX0RBVEEobWFjcm8pIFwKLSAgICBt
YWNybyhpc1Byb21pc2UsIG9wZXJhdGlvbnNQcm9taXNlSXNQcm9taXNlLCAxKSBcCi0gICAgbWFj
cm8obmV3UHJvbWlzZVJlYWN0aW9uLCBvcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VSZWFjdGlv
biwgMikgXAotICAgIG1hY3JvKG5ld1Byb21pc2VDYXBhYmlsaXR5LCBvcGVyYXRpb25zUHJvbWlz
ZU5ld1Byb21pc2VDYXBhYmlsaXR5LCAxKSBcCi0gICAgbWFjcm8odHJpZ2dlclByb21pc2VSZWFj
dGlvbnMsIG9wZXJhdGlvbnNQcm9taXNlVHJpZ2dlclByb21pc2VSZWFjdGlvbnMsIDIpIFwKLSAg
ICBtYWNybyhyZWplY3RQcm9taXNlLCBvcGVyYXRpb25zUHJvbWlzZVJlamVjdFByb21pc2UsIDIp
IFwKLSAgICBtYWNybyhmdWxmaWxsUHJvbWlzZSwgb3BlcmF0aW9uc1Byb21pc2VGdWxmaWxsUHJv
bWlzZSwgMikgXAotICAgIG1hY3JvKGNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucywgb3BlcmF0aW9u
c1Byb21pc2VDcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMsIDEpIFwKLSAgICBtYWNybyhwcm9taXNl
UmVhY3Rpb25Kb2IsIG9wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlYWN0aW9uSm9iLCAyKSBcCi0g
ICAgbWFjcm8ocHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYiwgb3BlcmF0aW9uc1Byb21pc2VQcm9t
aXNlUmVzb2x2ZVRoZW5hYmxlSm9iLCAzKSBcCi0gICAgbWFjcm8oaW5pdGlhbGl6ZVByb21pc2Us
IG9wZXJhdGlvbnNQcm9taXNlSW5pdGlhbGl6ZVByb21pc2UsIDEpIFwKLQotI2RlZmluZSBKU0Nf
QlVJTFRJTl9PUEVSQVRJT05TUFJPTUlTRV9JU1BST01JU0UgMQotI2RlZmluZSBKU0NfQlVJTFRJ
Tl9PUEVSQVRJT05TUFJPTUlTRV9ORVdQUk9NSVNFUkVBQ1RJT04gMQotI2RlZmluZSBKU0NfQlVJ
TFRJTl9PUEVSQVRJT05TUFJPTUlTRV9ORVdQUk9NSVNFQ0FQQUJJTElUWSAxCi0jZGVmaW5lIEpT
Q19CVUlMVElOX09QRVJBVElPTlNQUk9NSVNFX1RSSUdHRVJQUk9NSVNFUkVBQ1RJT05TIDEKLSNk
ZWZpbmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9OU1BST01JU0VfUkVKRUNUUFJPTUlTRSAxCi0jZGVm
aW5lIEpTQ19CVUlMVElOX09QRVJBVElPTlNQUk9NSVNFX0ZVTEZJTExQUk9NSVNFIDEKLSNkZWZp
bmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9OU1BST01JU0VfQ1JFQVRFUkVTT0xWSU5HRlVOQ1RJT05T
IDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9OU1BST01JU0VfUFJPTUlTRVJFQUNUSU9O
Sk9CIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9OU1BST01JU0VfUFJPTUlTRVJFU09M
VkVUSEVOQUJMRUpPQiAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX09QRVJBVElPTlNQUk9NSVNFX0lO
SVRJQUxJWkVQUk9NSVNFIDEKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUobWFj
cm8pIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlzZUNvZGUsIGlzUHJvbWlz
ZSwgc19vcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlzZUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhv
cGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VSZWFjdGlvbkNvZGUsIG5ld1Byb21pc2VSZWFjdGlv
biwgc19vcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VSZWFjdGlvbkNvZGVMZW5ndGgpIFwKLSAg
ICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VDYXBhYmlsaXR5Q29kZSwgbmV3UHJv
bWlzZUNhcGFiaWxpdHksIHNfb3BlcmF0aW9uc1Byb21pc2VOZXdQcm9taXNlQ2FwYWJpbGl0eUNv
ZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZVRyaWdnZXJQcm9taXNlUmVh
Y3Rpb25zQ29kZSwgdHJpZ2dlclByb21pc2VSZWFjdGlvbnMsIHNfb3BlcmF0aW9uc1Byb21pc2VU
cmlnZ2VyUHJvbWlzZVJlYWN0aW9uc0NvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25z
UHJvbWlzZVJlamVjdFByb21pc2VDb2RlLCByZWplY3RQcm9taXNlLCBzX29wZXJhdGlvbnNQcm9t
aXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlz
ZUZ1bGZpbGxQcm9taXNlQ29kZSwgZnVsZmlsbFByb21pc2UsIHNfb3BlcmF0aW9uc1Byb21pc2VG
dWxmaWxsUHJvbWlzZUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZUNy
ZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGUsIGNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucywgc19v
cGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGVMZW5ndGgpIFwKLSAg
ICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZWFjdGlvbkpvYkNvZGUsIHByb21pc2VS
ZWFjdGlvbkpvYiwgc19vcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZWFjdGlvbkpvYkNvZGVMZW5n
dGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZXNvbHZlVGhlbmFibGVK
b2JDb2RlLCBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iLCBzX29wZXJhdGlvbnNQcm9taXNlUHJv
bWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25z
UHJvbWlzZUluaXRpYWxpemVQcm9taXNlQ29kZSwgaW5pdGlhbGl6ZVByb21pc2UsIHNfb3BlcmF0
aW9uc1Byb21pc2VJbml0aWFsaXplUHJvbWlzZUNvZGVMZW5ndGgpIFwKLQotI2RlZmluZSBKU0Nf
Rk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKLSAgICBtYWNybyhjcmVhdGVS
ZXNvbHZpbmdGdW5jdGlvbnMpIFwKLSAgICBtYWNybyhmdWxmaWxsUHJvbWlzZSkgXAotICAgIG1h
Y3JvKGluaXRpYWxpemVQcm9taXNlKSBcCi0gICAgbWFjcm8oaXNQcm9taXNlKSBcCi0gICAgbWFj
cm8obmV3UHJvbWlzZUNhcGFiaWxpdHkpIFwKLSAgICBtYWNybyhuZXdQcm9taXNlUmVhY3Rpb24p
IFwKLSAgICBtYWNybyhwcm9taXNlUmVhY3Rpb25Kb2IpIFwKLSAgICBtYWNybyhwcm9taXNlUmVz
b2x2ZVRoZW5hYmxlSm9iKSBcCi0gICAgbWFjcm8ocmVqZWN0UHJvbWlzZSkgXAotICAgIG1hY3Jv
KHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKSBcCi0KLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dF
TkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCi0gICAgSlND
OjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwotCi1K
U0NfRk9SRUFDSF9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRl
ZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCi0KLSNkZWZpbmUgSlNDX0JVSUxUSU5fRVhJU1RT
KG9iamVjdCwgZnVuYykgZGVmaW5lZCBKU0NfQlVJTFRJTl8gIyMgb2JqZWN0ICMjIF8gIyMgZnVu
YwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIEpTQ0J1aWx0aW5zX2gKLQotIyMj
IEVuZCBGaWxlOiBKU0NCdWlsdGlucy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBKU0NCdWlsdGlucy5j
cHAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPi4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5PVCBFRElUIFRISVMgRklMRS4g
SXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgot
Ly8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
Z2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkpTQ0J1aWx0aW5zLmgiCi0KLSNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKLSNpbmNs
dWRlICJFeGVjdXRhYmxlLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgotI2luY2x1ZGUg
IlZNLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkg
c19vcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlzZUNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19vcGVyYXRpb25z
UHJvbWlzZUlzUHJvbWlzZUNvZGVMZW5ndGggPSAxNTg7Ci1jb25zdCBjaGFyKiBzX29wZXJhdGlv
bnNQcm9taXNlSXNQcm9taXNlQ29kZSA9Ci0gICAiKGZ1bmN0aW9uIChwcm9taXNlKVxuIiBcCi0g
ICAie1xuIiBcCi0gICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAiXG4iIFwKLSAgICIg
ICAgcmV0dXJuIEBpc09iamVjdChwcm9taXNlKSAmJiAhIXByb21pc2UuQHByb21pc2VTdGF0ZTtc
biIgXAotICAgIn0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3Bl
cmF0aW9uc1Byb21pc2VOZXdQcm9taXNlUmVhY3Rpb25Db2RlQ29uc3RydWN0QWJpbGl0eSA9IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfb3BlcmF0
aW9uc1Byb21pc2VOZXdQcm9taXNlUmVhY3Rpb25Db2RlTGVuZ3RoID0gMjIwOwotY29uc3QgY2hh
ciogc19vcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VSZWFjdGlvbkNvZGUgPQotICAgIihmdW5j
dGlvbiAoY2FwYWJpbGl0eSwgaGFuZGxlcilcbiIgXAotICAgIntcbiIgXAotICAgIiAgICBcInVz
ZSBzdHJpY3RcIjtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHJldHVybiB7XG4iIFwKLSAgICIg
ICAgICAgIEBjYXBhYmlsaXRpZXM6IGNhcGFiaWxpdHksXG4iIFwKLSAgICIgICAgICAgIEBoYW5k
bGVyOiBoYW5kbGVyXG4iIFwKLSAgICIgICAgfTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQotY29u
c3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VOZXdQcm9taXNlQ2Fw
YWJpbGl0eUNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5u
b3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VDYXBh
YmlsaXR5Q29kZUxlbmd0aCA9IDE0Mjc7Ci1jb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNl
TmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlID0KLSAgICIoZnVuY3Rpb24gKGNvbnN0cnVjdG9yKVxu
IiBcCi0gICAie1xuIiBcCi0gICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAiXG4iIFwK
LSAgICIgICAgLy9cbiIgXAotICAgIiAgICBpZiAodHlwZW9mIGNvbnN0cnVjdG9yICE9PSBcImZ1
bmN0aW9uXCIpXG4iIFwKLSAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwicHJvbWlz
ZSBjYXBhYmlsaXR5IHJlcXVpcmVzIGEgY29uc3RydWN0b3IgZnVuY3Rpb25cIik7XG4iIFwKLSAg
ICJcbiIgXAotICAgIiAgICB2YXIgcHJvbWlzZUNhcGFiaWxpdHkgPSB7XG4iIFwKLSAgICIgICAg
ICAgIEBwcm9taXNlOiB1bmRlZmluZWQsXG4iIFwKLSAgICIgICAgICAgIEByZXNvbHZlOiB1bmRl
ZmluZWQsXG4iIFwKLSAgICIgICAgICAgIEByZWplY3Q6IHVuZGVmaW5lZFxuIiBcCi0gICAiICAg
IH07XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICBmdW5jdGlvbiBleGVjdXRvcihyZXNvbHZlLCBy
ZWplY3QpXG4iIFwKLSAgICIgICAge1xuIiBcCi0gICAiICAgICAgICBpZiAocHJvbWlzZUNhcGFi
aWxpdHkuQHJlc29sdmUgIT09IHVuZGVmaW5lZClcbiIgXAotICAgIiAgICAgICAgICAgIHRocm93
IG5ldyBAVHlwZUVycm9yKFwicmVzb2x2ZSBmdW5jdGlvbiBpcyBhbHJlYWR5IHNldFwiKTtcbiIg
XAotICAgIiAgICAgICAgaWYgKHByb21pc2VDYXBhYmlsaXR5LkByZWplY3QgIT09IHVuZGVmaW5l
ZClcbiIgXAotICAgIiAgICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwicmVqZWN0IGZ1
bmN0aW9uIGlzIGFscmVhZHkgc2V0XCIpO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAgIHBy
b21pc2VDYXBhYmlsaXR5LkByZXNvbHZlID0gcmVzb2x2ZTtcbiIgXAotICAgIiAgICAgICAgcHJv
bWlzZUNhcGFiaWxpdHkuQHJlamVjdCA9IHJlamVjdDtcbiIgXAotICAgIiAgICB9XG4iIFwKLSAg
ICJcbiIgXAotICAgIiAgICB2YXIgcHJvbWlzZSA9IG5ldyBjb25zdHJ1Y3RvcihleGVjdXRvcik7
XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICBpZiAodHlwZW9mIHByb21pc2VDYXBhYmlsaXR5LkBy
ZXNvbHZlICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKLSAgICIgICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKFwiZXhlY3V0b3IgZGlkIG5vdCB0YWtlIGEgcmVzb2x2ZSBmdW5jdGlvblwiKTtcbiIg
XAotICAgIlxuIiBcCi0gICAiICAgIGlmICh0eXBlb2YgcHJvbWlzZUNhcGFiaWxpdHkuQHJlamVj
dCAhPT0gXCJmdW5jdGlvblwiKVxuIiBcCi0gICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJv
cihcImV4ZWN1dG9yIGRpZCBub3QgdGFrZSBhIHJlamVjdCBmdW5jdGlvblwiKTtcbiIgXAotICAg
IlxuIiBcCi0gICAiICAgIHByb21pc2VDYXBhYmlsaXR5LkBwcm9taXNlID0gcHJvbWlzZTtcbiIg
XAotICAgIlxuIiBcCi0gICAiICAgIHJldHVybiBwcm9taXNlQ2FwYWJpbGl0eTtcbiIgXAotICAg
In0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1By
b21pc2VUcmlnZ2VyUHJvbWlzZVJlYWN0aW9uc0NvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19vcGVyYXRpb25z
UHJvbWlzZVRyaWdnZXJQcm9taXNlUmVhY3Rpb25zQ29kZUxlbmd0aCA9IDI2OTsKLWNvbnN0IGNo
YXIqIHNfb3BlcmF0aW9uc1Byb21pc2VUcmlnZ2VyUHJvbWlzZVJlYWN0aW9uc0NvZGUgPQotICAg
IihmdW5jdGlvbiAocmVhY3Rpb25zLCBhcmd1bWVudClcbiIgXAotICAgIntcbiIgXAotICAgIiAg
ICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIGZvciAodmFyIGluZGV4
ID0gMCwgbGVuZ3RoID0gcmVhY3Rpb25zLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgp
XG4iIFwKLSAgICIgICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9taXNlUmVhY3Rpb25Kb2IsIFtyZWFj
dGlvbnNbaW5kZXhdLCBhcmd1bWVudF0pO1xuIiBcCi0gICAifSlcbiIgXAotOwotCi1jb25zdCBK
U0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlzZVJlamVjdFByb21pc2VDb2Rl
Q29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0
OwotY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aCA9
IDU0MTsKLWNvbnN0IGNoYXIqIHNfb3BlcmF0aW9uc1Byb21pc2VSZWplY3RQcm9taXNlQ29kZSA9
Ci0gICAiKGZ1bmN0aW9uIChwcm9taXNlLCByZWFzb24pXG4iIFwKLSAgICJ7XG4iIFwKLSAgICIg
ICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICB2YXIgcmVhY3Rpb25z
ID0gcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucztcbiIgXAotICAgIiAgICBwcm9taXNl
LkBwcm9taXNlUmVzdWx0ID0gcmVhc29uO1xuIiBcCi0gICAiICAgIHByb21pc2UuQHByb21pc2VG
dWxmaWxsUmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCi0gICAiICAgIHByb21pc2UuQHByb21p
c2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAgICIgICAgcHJvbWlzZS5AcHJv
bWlzZVN0YXRlID0gQHByb21pc2VSZWplY3RlZDtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIEBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZVJlamVjdGVkKHByb21pc2UsIHJlYXNvbiwg
cmVhY3Rpb25zKTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0
aW9ucyhyZWFjdGlvbnMsIHJlYXNvbik7XG4iIFwKLSAgICJ9KVxuIiBcCi07Ci0KLWNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzX29wZXJhdGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VDb2Rl
Q29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0
OwotY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGgg
PSA1NDA7Ci1jb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VDb2Rl
ID0KLSAgICIoZnVuY3Rpb24gKHByb21pc2UsIHZhbHVlKVxuIiBcCi0gICAie1xuIiBcCi0gICAi
ICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgdmFyIHJlYWN0aW9u
cyA9IHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zO1xuIiBcCi0gICAiICAgIHByb21p
c2UuQHByb21pc2VSZXN1bHQgPSB2YWx1ZTtcbiIgXAotICAgIiAgICBwcm9taXNlLkBwcm9taXNl
RnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAotICAgIiAgICBwcm9taXNlLkBwcm9t
aXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCi0gICAiICAgIHByb21pc2UuQHBy
b21pc2VTdGF0ZSA9IEBwcm9taXNlRnVsZmlsbGVkO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAg
QEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlRnVsZmlsbGVkKHByb21pc2UsIHZhbHVl
LCByZWFjdGlvbnMpO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgQHRyaWdnZXJQcm9taXNlUmVh
Y3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpO1xuIiBcCi0gICAifSlcbiIgXAotOwotCi1jb25zdCBK
U0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1
bmN0aW9uc0NvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5u
b3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmlu
Z0Z1bmN0aW9uc0NvZGVMZW5ndGggPSAxNDY4OwotY29uc3QgY2hhciogc19vcGVyYXRpb25zUHJv
bWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGUgPQotICAgIihmdW5jdGlvbiAocHJvbWlz
ZSlcbiIgXAotICAgIntcbiIgXAotICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgIlxu
IiBcCi0gICAiICAgIHZhciBhbHJlYWR5UmVzb2x2ZWQgPSBmYWxzZTtcbiIgXAotICAgIlxuIiBc
Ci0gICAiICAgIHZhciByZXNvbHZlID0gZnVuY3Rpb24gKHJlc29sdXRpb24pIHtcbiIgXAotICAg
IiAgICAgICAgaWYgKGFscmVhZHlSZXNvbHZlZClcbiIgXAotICAgIiAgICAgICAgICAgIHJldHVy
biB1bmRlZmluZWQ7XG4iIFwKLSAgICIgICAgICAgIGFscmVhZHlSZXNvbHZlZCA9IHRydWU7XG4i
IFwKLSAgICJcbiIgXAotICAgIiAgICAgICAgaWYgKHJlc29sdXRpb24gPT09IHByb21pc2UpXG4i
IFwKLSAgICIgICAgICAgICAgICByZXR1cm4gQHJlamVjdFByb21pc2UocHJvbWlzZSwgbmV3IEBU
eXBlRXJyb3IoXCJSZXNvbHZlIGEgcHJvbWlzZSB3aXRoIGl0c2VsZlwiKSk7XG4iIFwKLSAgICJc
biIgXAotICAgIiAgICAgICAgaWYgKCFAaXNPYmplY3QocmVzb2x1dGlvbikpXG4iIFwKLSAgICIg
ICAgICAgICAgICByZXR1cm4gQGZ1bGZpbGxQcm9taXNlKHByb21pc2UsIHJlc29sdXRpb24pO1xu
IiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAgIHZhciB0aGVuO1xuIiBcCi0gICAiICAgICAgICB0
cnkge1xuIiBcCi0gICAiICAgICAgICAgICAgdGhlbiA9IHJlc29sdXRpb24udGhlbjtcbiIgXAot
ICAgIiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiIgXAotICAgIiAgICAgICAgICAgIHJldHVy
biBAcmVqZWN0UHJvbWlzZShwcm9taXNlLCBlcnJvcik7XG4iIFwKLSAgICIgICAgICAgIH1cbiIg
XAotICAgIlxuIiBcCi0gICAiICAgICAgICBpZiAodHlwZW9mIHRoZW4gIT09ICdmdW5jdGlvbicp
XG4iIFwKLSAgICIgICAgICAgICAgICByZXR1cm4gQGZ1bGZpbGxQcm9taXNlKHByb21pc2UsIHJl
c29sdXRpb24pO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9t
aXNlUmVzb2x2ZVRoZW5hYmxlSm9iLCBbcHJvbWlzZSwgcmVzb2x1dGlvbiwgdGhlbl0pO1xuIiBc
Ci0gICAiXG4iIFwKLSAgICIgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4iIFwKLSAgICIgICAg
fTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHZhciByZWplY3QgPSBmdW5jdGlvbiAocmVhc29u
KSB7XG4iIFwKLSAgICIgICAgICAgIGlmIChhbHJlYWR5UmVzb2x2ZWQpXG4iIFwKLSAgICIgICAg
ICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuIiBcCi0gICAiICAgICAgICBhbHJlYWR5UmVzb2x2
ZWQgPSB0cnVlO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAgIHJldHVybiBAcmVqZWN0UHJv
bWlzZShwcm9taXNlLCByZWFzb24pO1xuIiBcCi0gICAiICAgIH07XG4iIFwKLSAgICJcbiIgXAot
ICAgIiAgICByZXR1cm4ge1xuIiBcCi0gICAiICAgICAgICBAcmVzb2x2ZTogcmVzb2x2ZSxcbiIg
XAotICAgIiAgICAgICAgQHJlamVjdDogcmVqZWN0XG4iIFwKLSAgICIgICAgfTtcbiIgXAotICAg
In0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1By
b21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3Ry
dWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21p
c2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlTGVuZ3RoID0gNDkzOwotY29uc3QgY2hhciogc19vcGVy
YXRpb25zUHJvbWlzZVByb21pc2VSZWFjdGlvbkpvYkNvZGUgPQotICAgIihmdW5jdGlvbiAocmVh
Y3Rpb24sIGFyZ3VtZW50KVxuIiBcCi0gICAie1xuIiBcCi0gICAiICAgIFwidXNlIHN0cmljdFwi
O1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgdmFyIHByb21pc2VDYXBhYmlsaXR5ID0gcmVhY3Rp
b24uQGNhcGFiaWxpdGllcztcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHZhciByZXN1bHQ7XG4i
IFwKLSAgICIgICAgdHJ5IHtcbiIgXAotICAgIiAgICAgICAgcmVzdWx0ID0gcmVhY3Rpb24uQGhh
bmRsZXIuQGNhbGwodW5kZWZpbmVkLCBhcmd1bWVudCk7XG4iIFwKLSAgICIgICAgfSBjYXRjaCAo
ZXJyb3IpIHtcbiIgXAotICAgIiAgICAgICAgcmV0dXJuIHByb21pc2VDYXBhYmlsaXR5LkByZWpl
Y3QuQGNhbGwodW5kZWZpbmVkLCBlcnJvcik7XG4iIFwKLSAgICIgICAgfVxuIiBcCi0gICAiXG4i
IFwKLSAgICIgICAgcmV0dXJuIHByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlLkBjYWxsKHVuZGVm
aW5lZCwgcmVzdWx0KTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iQ29k
ZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVj
dDsKLWNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpv
YkNvZGVMZW5ndGggPSA0NTM7Ci1jb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlUHJvbWlz
ZVJlc29sdmVUaGVuYWJsZUpvYkNvZGUgPQotICAgIihmdW5jdGlvbiAocHJvbWlzZVRvUmVzb2x2
ZSwgdGhlbmFibGUsIHRoZW4pXG4iIFwKLSAgICJ7XG4iIFwKLSAgICIgICAgXCJ1c2Ugc3RyaWN0
XCI7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICB2YXIgcmVzb2x2aW5nRnVuY3Rpb25zID0gQGNy
ZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucyhwcm9taXNlVG9SZXNvbHZlKTtcbiIgXAotICAgIlxuIiBc
Ci0gICAiICAgIHRyeSB7XG4iIFwKLSAgICIgICAgICAgIHJldHVybiB0aGVuLkBjYWxsKHRoZW5h
YmxlLCByZXNvbHZpbmdGdW5jdGlvbnMuQHJlc29sdmUsIHJlc29sdmluZ0Z1bmN0aW9ucy5AcmVq
ZWN0KTtcbiIgXAotICAgIiAgICB9IGNhdGNoIChlcnJvcikge1xuIiBcCi0gICAiICAgICAgICBy
ZXR1cm4gcmVzb2x2aW5nRnVuY3Rpb25zLkByZWplY3QuQGNhbGwodW5kZWZpbmVkLCBlcnJvcik7
XG4iIFwKLSAgICIgICAgfVxuIiBcCi0gICAifSlcbiIgXAotOwotCi1jb25zdCBKU0M6OkNvbnN0
cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlzZUluaXRpYWxpemVQcm9taXNlQ29kZUNvbnN0
cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNv
bnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlSW5pdGlhbGl6ZVByb21pc2VDb2RlTGVuZ3RoID0g
NzMxOwotY29uc3QgY2hhciogc19vcGVyYXRpb25zUHJvbWlzZUluaXRpYWxpemVQcm9taXNlQ29k
ZSA9Ci0gICAiKGZ1bmN0aW9uIChleGVjdXRvcilcbiIgXAotICAgIntcbiIgXAotICAgIiAgICBc
InVzZSBzdHJpY3RcIjtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIGlmICh0eXBlb2YgZXhlY3V0
b3IgIT09ICdmdW5jdGlvbicpXG4iIFwKLSAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9y
KFwiUHJvbWlzZSBjb25zdHJ1Y3RvciB0YWtlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50XCIpO1xuIiBc
Ci0gICAiXG4iIFwKLSAgICIgICAgdGhpcy5AcHJvbWlzZVN0YXRlID0gQHByb21pc2VQZW5kaW5n
O1xuIiBcCi0gICAiICAgIHRoaXMuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zID0gW107XG4iIFwK
LSAgICIgICAgdGhpcy5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IFtdO1xuIiBcCi0gICAiXG4i
IFwKLSAgICIgICAgdmFyIHJlc29sdmluZ0Z1bmN0aW9ucyA9IEBjcmVhdGVSZXNvbHZpbmdGdW5j
dGlvbnModGhpcyk7XG4iIFwKLSAgICIgICAgdHJ5IHtcbiIgXAotICAgIiAgICAgICAgZXhlY3V0
b3IocmVzb2x2aW5nRnVuY3Rpb25zLkByZXNvbHZlLCByZXNvbHZpbmdGdW5jdGlvbnMuQHJlamVj
dCk7XG4iIFwKLSAgICIgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiIgXAotICAgIiAgICAgICAgcmV0
dXJuIHJlc29sdmluZ0Z1bmN0aW9ucy5AcmVqZWN0LkBjYWxsKHVuZGVmaW5lZCwgZXJyb3IpO1xu
IiBcCi0gICAiICAgIH1cbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHJldHVybiB0aGlzO1xuIiBc
Ci0gICAifSlcbiIgXAotOwotCi0KLSNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNv
ZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKLUpTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCi17XAotICAgIHJldHVy
biB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2
bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7IH0KLUpTQ19G
T1JFQUNIX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5kZWYgREVG
SU5FX0JVSUxUSU5fR0VORVJBVE9SCi0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0jIyMgRW5kIEZp
bGU6IEpTQ0J1aWx0aW5zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBh
cmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApp
bmRleCA1NWEyMWQ0NjU2ODY2ZmU4ZjczN2YxODMwN2IxMjYyNGE3NDQ4MmFhLi5lZGJjYzUyZmVj
OWY4NDJkYTIyYjkzNWVlYjNjMDBjMWJmZDk3YjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRC
dWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFy
YXRlLmpzLXJlc3VsdApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmls
aXR5IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNv
cmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJk
ZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDM0OGExY2ZjNDQ4NGFl
ZjNmNzYwZTg3OTQ2NmVmYmFiOTY2ZTUwZjQuLmFmMmI0MTU1NDA2MDJhODczYmZjOGQ3ZDM3YzU4
ZmMzYzYzYjBkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBh
cmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFyYXRl
LmpzLXJlc3VsdApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1
bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5
IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUt
VW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0
aW4tU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDU4ZWUyZGFiYmFjOWMxYTZiNjU5YWIxMzJiMGE2
YzQ3MWU2M2U0NTguLmE1NWZiYWFlY2JjNzYzNmY2ZTFkOWI1NDQ0YTliZmY2Y2NhYTI0NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4
cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2Vi
Q29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMzUsNiArMzUsOCBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZN
OworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1y
ZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDg2OGZj
NmZjNmZiZjg1ZWRkN2I4ZDNjODhlYzZkMjI2NjdlMWU3N2QuLjY0ODUwODZmZjk0MjIxOWExMzc5
ODExNzFhNjA3MzdkNjg4Y2Y2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBh
cmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxDYXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3Vs
dApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhl
Y3V0YWJsZTsKK2NsYXNzIFZNOworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWdu
ZWQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaAppbmRleCBlYzhkNTc3MDRiODdjNTg0
YTkzNmRkZTQxN2Q2MjlmODU3YjM2NTcxLi4yZTk0NTUxZTQ5NTFhM2I4MGI3MTFmMDVhMmE5ODVm
ZjE4NzI2YWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbkV4ZWN1dGFibGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1
aWx0aW5FeGVjdXRhYmxlcy5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEJ1aWx0aW5FeGVj
dXRhYmxlc19oCiAjZGVmaW5lIEJ1aWx0aW5FeGVjdXRhYmxlc19oCiAKLSNpbmNsdWRlICJKU0NC
dWlsdGlucy5oIgorI2luY2x1ZGUgIkpTQ0J1aWx0aW5zTWFjcm9zLmgiCiAjaW5jbHVkZSAiUGFy
c2VyTW9kZXMuaCIKICNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV2Vhay5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDI5
ZDBhMzViZjY1NzZmYmQ1NzFmZGFlMTgxNzFkMDlkNzRjZjFjZTcuLjVhNjY1M2M1MDA1OWZjYjlh
OTIyZDFhMzJmMWEwZTE1Njc0Yzg1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ1aWx0
aW5VdGlscy5oIgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCi0jaW5jbHVkZSAiSlND
QnVpbHRpbnMuaCIKKyNpbmNsdWRlICJKU0NCdWlsdGluc01hY3Jvcy5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApAQCAtNDEsMTQgKzQxLDE0IEBAIGNsYXNzIEJ1aWx0aW5OYW1lcyB7CiBwdWJsaWM6
CiAgICAgQnVpbHRpbk5hbWVzKFZNKiB2bSwgQ29tbW9uSWRlbnRpZmllcnMqIGNvbW1vbklkZW50
aWZpZXJzKQogICAgICAgICA6IG1fZW1wdHlJZGVudGlmaWVyKGNvbW1vbklkZW50aWZpZXJzLT5l
bXB0eUlkZW50aWZpZXIpCi0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFN
RShJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVMpCisgICAgICAgIEpTQ19GT1JFQUNIX1VOSVFVRV9C
VUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9CVUlMVElOX05BTUVTKQogICAgICAgICBK
U0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJ
WkVfQlVJTFRJTl9OQU1FUykKICAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJT
X0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElaRV9CVUlMVElOX1NZTUJPTFMpCiAgICAg
ewotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9Q
UklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKKyAgICAgICAgSlNDX0ZPUkVBQ0hfVU5JUVVFX0JVSUxU
SU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQogICAg
ICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElO
SVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCiAgICAgICAgIEpTQ19DT01NT05fUFJJ
VkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfUFJJVkFU
RV9UT19QVUJMSUNfRU5UUlkpCi0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05f
TkFNRShJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAgICAgICBKU0NfRk9S
RUFDSF9VTklRVUVfQlVJTFRJTl9GVU5DVElPTl9OQU1FKElOSVRJQUxJWkVfUFVCTElDX1RPX1BS
SVZBVEVfRU5UUlkpCiAgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNI
X1BST1BFUlRZX05BTUUoSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKICAgICAg
ICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0wo
SU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKICAgICB9CkBAIC02MSwxMyArNjEs
MTMgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgYXBwZW5kRXh0ZXJuYWxOYW1lKGNvbnN0IElk
ZW50aWZpZXImIHB1YmxpY05hbWUsIGNvbnN0IElkZW50aWZpZXImIHByaXZhdGVOYW1lKTsKIAot
ICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5fSURF
TlRJRklFUl9BQ0NFU1NPUikKKyAgICBKU0NfRk9SRUFDSF9VTklRVUVfQlVJTFRJTl9GVU5DVElP
Tl9OQU1FKERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKQogICAgIEpTQ19DT01N
T05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoREVDTEFSRV9CVUlMVElO
X0lERU5USUZJRVJfQUNDRVNTT1IpCiAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJT
X0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woREVDTEFSRV9CVUlMVElOX1NZTUJPTF9BQ0NFU1NPUikK
IAogcHJpdmF0ZToKICAgICBJZGVudGlmaWVyIG1fZW1wdHlJZGVudGlmaWVyOwotICAgIEpTQ19G
T1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5fTkFNRVMpCisgICAg
SlNDX0ZPUkVBQ0hfVU5JUVVFX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5f
TkFNRVMpCiAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlf
TkFNRShERUNMQVJFX0JVSUxUSU5fTkFNRVMpCiAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5U
SUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woREVDTEFSRV9CVUlMVElOX1NZTUJPTFMpCiAg
ICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4sIGNvbnN0IElkZW50
aWZpZXIqLCBJZGVudGlmaWVyUmVwSGFzaD4gQnVpbHRpbk5hbWVzTWFwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCmluZGV4IDA3YzI5YTY1Zjg0NmFl
ODI1YmY2ZDZiNTU2OGVhZDdiNzhlZjRjMzcuLmRhNDllYWZlYTAwMGQ0MjdkZGQ4NDY3M2I1Y2M1
YmE4MzhjYjA3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluVXRpbHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
blV0aWxzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fu
b24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzEsOCAr
MzEsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNkZWZpbmUgSlNDX0JVSUxUSU5fRVhJU1RT
KG9iamVjdCwgZnVuYykgZGVmaW5lZCBKU0NfQlVJTFRJTl8gIyMgb2JqZWN0ICMjIF8gIyMgZnVu
YworCiAjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUyhuYW1lKSAsIG1fIyNuYW1lKEpT
Qzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgI25hbWUpKSwgbV8jI25hbWUjI1ByaXZhdGVO
YW1lKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVVpZChKU0M6OlByaXZhdGVOYW1lKEpTQzo6UHJpdmF0
ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlByaXZhdGVTeW1ib2wuIiAjbmFtZSkp
KSkKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciBtXyMjbmFtZTsgY29uc3QgSlNDOjpJZGVudGlmaWVyIG1fIyNuYW1lIyNQcml2YXRlTmFt
ZTsKKworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgXAorICAgIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciBtXyMjbmFtZTsgXAorICAgIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMj
bmFtZSMjUHJpdmF0ZU5hbWU7CisgICAgCiAjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9JREVOVElG
SUVSX0FDQ0VTU09SKG5hbWUpIFwKICAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1B1
YmxpY05hbWUoKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZTsgfSBcCiAgICAgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBuYW1lIyNQcml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNQ
cml2YXRlTmFtZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9o
YXNoX3RhYmxlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlCmluZGV4
IDg0NDQxYTMzNTNhZWQxODQ2NWNjNzQzNDQ4YjhjMDJmMDQ1MjJiNDMuLmE2MGM3NjZhYjRkZGYw
ZmJiNzlhMDMzYmZmOWVjMmM4N2Q3YjNhYjUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9jcmVhdGVfaGFzaF90YWJsZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRl
X2hhc2hfdGFibGUKQEAgLTI1OCwxMyArMjU4LDE4IEBAIHN1YiBvdXRwdXQoKSB7CiAgICAgbXkg
JG5hbWVJbmRleCA9ICIke25hbWV9SW5kZXgiOwogICAgICRuYW1lSW5kZXggPX4gcy86L18vZzsK
IAorICAgIG15ICRjbGFzc05hbWUgPSB1Y2ZpcnN0KCRuYW1lKTsKKyAgICAkY2xhc3NOYW1lID1+
IHMvVGFibGUkLy87CisgICAgJGNsYXNzTmFtZSA9fiBzL1wuLy9nOworCiAgICAgcHJpbnQgIlxu
IjsKLSAgICBwcmludCAiI2luY2x1ZGUgXCJKU0NCdWlsdGlucy5oXCJcbiIgaWYgKCRpbmNsdWRl
QnVpbHRpbik7CisgICAgcHJpbnQgIiNpbmNsdWRlIFwiJHtjbGFzc05hbWV9QnVpbHRpbnMuaFwi
XG4iIGlmICgkaW5jbHVkZUJ1aWx0aW4pOwogICAgIHByaW50ICIjaW5jbHVkZSBcIkxvb2t1cC5o
XCJcbiIgaWYgKCRpbmNsdWRlTG9va3VwKTsKICAgICBwcmludCAiXG4iOwogICAgIHByaW50ICJu
YW1lc3BhY2UgSlNDIHtcbiI7CiAgICAgcHJpbnQgIlxuIjsKICAgICBwcmludCAic3RhdGljIGNv
bnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4ICR7bmFtZUluZGV4fVxbJGNvbXBhY3RTaXplXF0g
PSB7XG4iOworCiAgICAgZm9yIChteSAkaSA9IDA7ICRpIDwgJGNvbXBhY3RTaXplOyAkaSsrKSB7
CiAgICAgICAgIG15ICRUID0gLTE7CiAgICAgICAgIGlmIChkZWZpbmVkKCR0YWJsZVskaV0pKSB7
ICRUID0gJHRhYmxlWyRpXTsgfQpAQCAtMzE1LDEwICszMjAsMTMgQEAgc3ViIG91dHB1dCgpIHsK
ICAgICAgICAgfQogCiAgICAgICAgIGlmICgkdmFsdWVzWyRpXXsidHlwZSJ9IGVxICJGdW5jdGlv
biIgJiYgJGluY2x1ZGVCdWlsdGluKSAgewotICAgICAgICAgICAgbXkgJHRhYmxlSGVhZCA9ICRu
YW1lOwotICAgICAgICAgICAgJHRhYmxlSGVhZCA9fiBzL1RhYmxlJC8vOwotICAgICAgICAgICAg
cHJpbnQgIiAjaWYgSlNDX0JVSUxUSU5fRVhJU1RTKCIgLiB1YygkdGFibGVIZWFkKSAuICIsICIg
LiB1Yygka2V5KSAuIilcbiI7Ci0gICAgICAgICAgICBwcmludCAiICAgeyBcIiRrZXlcIiwgKCgk
YXR0cnNbJGldKSAmIH5GdW5jdGlvbikgfCBCdWlsdGluLCAkaW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9yPigiIC4gJHRhYmxlSGVhZCAuIHVjZmlyc3Qo
JGtleSkgLiAiQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkkc2Vjb25kVmFsdWUgfSB9LFxuIjsK
KyAgICAgICAgICAgIG15ICRvYmplY3RNYWNybyA9ICRuYW1lOworICAgICAgICAgICAgJG9iamVj
dE1hY3JvID1+IHMvVGFibGUkLy87CisgICAgICAgICAgICAkb2JqZWN0TWFjcm8gPX4gcy8oUHJv
dG90eXBlfFByb21pc2UpJC9fJHsxfS87CisgICAgICAgICAgICAkb2JqZWN0TWFjcm8gPX4gcy9c
Li9fL2c7CisgICAgICAgICAgICAkb2JqZWN0TWFjcm8gPSB1Yygkb2JqZWN0TWFjcm8pOworICAg
ICAgICAgICAgcHJpbnQgIiAjaWYgSlNDX0JVSUxUSU5fRVhJU1RTKCRvYmplY3RNYWNybywgIiAu
IHVjKCRrZXkpIC4iKVxuIjsKKyAgICAgICAgICAgIHByaW50ICIgICB7IFwiJGtleVwiLCAoKCRh
dHRyc1skaV0pICYgfkZ1bmN0aW9uKSB8IEJ1aWx0aW4sICRpbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KCIgLiBsY2ZpcnN0KCRjbGFzc05hbWUpIC4g
dWNmaXJzdCgka2V5KSAuICJDb2RlR2VuZXJhdG9yKSwgKGludHB0cl90KSRzZWNvbmRWYWx1ZSB9
IH0sXG4iOwogICAgICAgICAgICAgcHJpbnQgIiAjZWxzZVxuIgogICAgICAgICB9CiAgICAgICAg
IHByaW50ICIgICB7IFwiJGtleVwiLCAkYXR0cnNbJGldLCAkaW50cmluc2ljLCB7IChpbnRwdHJf
dCkiIC4gJGZpcnN0Q2FzdFN0ciAuICIoJGZpcnN0VmFsdWUpLCAoaW50cHRyX3QpIiAuICRzZWNv
bmRDYXN0U3RyIC4gIigkc2Vjb25kVmFsdWUpIH0gfSxcbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggMmRiMjU5MjZkMTkwYWJl
OTY4YzdmYTI0MTNkZmFmMTczZjg0YjBhYy4uNDdhMWM5YTg5NmJlZTAwODQ4MDdlZDM4MWMxNzIz
N2NiYjNkOGU0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkFycmF5UHJvdG90eXBlLmgiCiAKKyNpbmNsdWRlICJBcnJheVByb3RvdHlwZUJ1aWx0
aW5zLmgiCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkNhY2hlZENh
bGwuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKQEAgLTMyLDcgKzMzLDYgQEAKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTQXJyYXlJdGVy
YXRvci5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5o
IgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSm9pbmVy
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVu
dGlmaWVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5jcHAKaW5kZXggZDZkNGI3NWEzZDVkNDgwNzljNzVhMTIwMmU0ZDgwOTljMTY3NDkxMy4u
NzE1MmMyOTI3NTE4YmQ4NWJhMmJhNThhZTE4NWM0ZTk4NTFjYjY5NyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcApAQCAtMjMs
NyArMjMsNiBAQAogCiAjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiSWRlbnRp
ZmllcklubGluZXMuaCIKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUgIlByaXZh
dGVOYW1lLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSXRlcmF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSXRlcmF0b3JQcm90b3R5cGUuY3BwCmluZGV4IDNlNGVjOTMwMzcxZmU4ZWY0
ZTAwZDIxZTMwODY3MjEyY2FhODM1ZTguLjExNTc3Mzg2M2ZiYzkwOWFiZDE4YWQ5NjgzYmM4M2E3
MDJjMjQ3MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0l0ZXJh
dG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JdGVy
YXRvclByb3RvdHlwZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJJdGVyYXRvclByb3RvdHlwZS5oIgogCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMu
aCIKKyNpbmNsdWRlICJJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlND
SlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1
bmN0aW9ucy5oCmluZGV4IGIxMzQ5M2I3N2MzZjczYjMwNzcxZWNjOTY4YTE0MjdhNmE2OWNmMjgu
LjBlZWVhNjRlNzk0ZjU5MmQwZDE3YjNjYzhkZDU0ZWJmZTVhYzUzODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlRnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaApAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmll
d0lubGluZXMuaCIKICNpbmNsdWRlICJKU0FycmF5SXRlcmF0b3IuaCIKLSNpbmNsdWRlICJKU0NC
dWlsdGlucy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNG
dW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21p
c2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVy
bmFsUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAppbmRleCA4NjdjZjJkZDAxM2FkMjljYWE0NWQ0NmI1
ZGYwYjg4MjE4ZmY2NDY2Li42NmZhZjk4MWYzMGQ5MjdjMGZmMTc2Y2RjMjY1OWE3ZDRlNjA4Zjc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJv
bWlzZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IuaCIK
IAotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21p
c2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
SW50ZXJuYWxQcm9taXNlUHJvdG90eXBlLmNwcAppbmRleCBlY2VkZmFmZjNkZmNhNDZjMzU5NDg1
ZDA1MzlhYWYzODg5ZDVhOTRkLi5iMDllN2ZmNTJjNmEzZDljZWJlNzA3MDExYTI2NWI0MmNkYzhk
MzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFs
UHJvbWlzZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVk
ZSAiSlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCi0j
aW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgog
I2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IGE5YmExYzU5MjY3MGNlMWY2NTUxMjQ1MmNiYzM4MzBmNzkxMDBhZGYu
LjgxM2U1NzJmYzAxYzY1MzJlMzE5NTk1M2Q5MGJhYWNmZWUxNDY4NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5jcHAK
QEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bi5oIgogI2luY2x1ZGUgIkl0ZXJhdG9yT3BlcmF0aW9ucy5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0
aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NlbGxJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNQcm9taXNlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmNwcAppbmRleCAxZDMyMzM1ZjNk
MDU1ZTA0MDcwN2NkNTE3ODU3MTZiY2RhOTVlYWI0Li4xYTU1NzkxYzQ0ZGY0MjFmMzk1ZmJhMzQ2
YjFjMjNjZjc2NGRkY2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJK
U1Byb21pc2VQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiSlND
QnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpT
Q2VsbElubGluZXMuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggMmIyYzkwOTZmNmVkZmFjYTgxYTQ0ZGM3NjM5Njk4YWY2OGQwZDMz
NC4uMWZlNDU1NTc4MzZlNjU0NTdmNDUyOTJiNzA0OWE1YjI4ZDVjYTY0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3IuY3BwCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI2luY2x1ZGUgIkNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNs
dWRlICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3RvcklubGluZXMuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpT
VHlwZWRBcnJheXMuaCIKKyNpbmNsdWRlICJUeXBlZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcAppbmRleCA1M2RkMDNi
YmI0ZTczZTcwZmRlMWJhZTgzNzZkOTJjY2ZiN2M3Yjc2Li42NTlkOWMwODkxZWViYjYxYjk0ZjAw
ZDU2NDRjMzcyNWE2YjdiZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlBZGFwdG9y
cy5oIgorI2luY2x1ZGUgIlR5cGVkQXJyYXlQcm90b3R5cGVCdWlsdGlucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5OGYzZWE0NGRiZjlhNzUyMjBkYTg4
NGQ4ODUxOGMyZDZlYzc4MjA0Li4yMzMzZmExYTQ3ZjVlOTkxMTdhMmJiOWM2YWVlZTlmYWQ0ZjE2
ZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzYwMiwxMSArMzYwMiw5IEBAIHNldChCVUlM
VElOU19HRU5FUkFUT1JfU0NSSVBUUwogICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9
L2J1aWx0aW5zX2dlbmVyYXRvci5weQogICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9
L2J1aWx0aW5zX21vZGVsLnB5CiAgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVp
bHRpbnNfdGVtcGxhdGVzLnB5Ci0gICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVp
bHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5Ci0gICAgJHtKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkK
LSAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9zZXBh
cmF0ZV9oZWFkZXIucHkKLSAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGlu
c19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weQotICAgICR7SmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkKKyAg
ICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9vYmplY3Rf
aGVhZGVyLnB5CisgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2Vu
ZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5CisgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJ
UFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X3dyYXBwZXIucHkKICAgICAke0phdmFT
Y3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucy5weQogICAgICR7SmF2
YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2xhenl3cml0ZXIucHkKICkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IGIxYzM1OTkwMmQyYjQzYzg3OWFiZTJkODYyNGEzZTAwODUxOWNh
OWQuLmNkZWI4ZTE1ZDQzMWFhNTMzZjNhZjFmMzFiYWYwNjkxOTJhYjg3MTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTI3MywxMSArMTI3Myw5IEBAIEJVSUxUSU5TX0dFTkVS
QVRPUl9TQ1JJUFRTID0gXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0
aW5zX2dlbmVyYXRvci5weSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVp
bHRpbnNfbW9kZWwucHkgXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0
aW5zX3RlbXBsYXRlcy5weSBcCi0gICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVp
bHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5IFwKLSAgICAkKEphdmFTY3JpcHRDb3Jl
X1NDUklQVFNfRElSKS9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlvbi5w
eSBcCi0gICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVf
c2VwYXJhdGVfaGVhZGVyLnB5IFwKLSAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9i
dWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weSBcCi0gICAgJChKYXZh
U2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBl
ci5weSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJh
dGVfb2JqZWN0X2hlYWRlci5weSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikv
YnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5IFwKKyAgICAkKEphdmFT
Y3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5w
eSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRp
bnMucHkgXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2xhenl3cml0ZXIucHkg
XAogIwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDFkMmQ2MDYwY2NjYzNhNjdhYWQyY2NhNzJiZWQ4ZDFmMzJlYWVhMDguLjEwNzk3ZTU0MTE2MjE0
YmZhZmIzMjBhNGMxMjdjYWNjYzM1MmI5ZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0xMC0yNSAgQnJpYW4g
QnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBGb3IgSlNDIGJ1aWx0aW5zLCBnZW5l
cmF0ZS1qcy1iaW5kaW5ncy5qcyBzaG91bGQgcHJvZHVjZSBzZXBhcmF0ZSBmaWxlcyBwZXIgYnVp
bHRpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUw
NDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29u
dmVydCBleGlzdGluZyB0ZXN0cyBmb3IgJ0NvbWJpbmVkJyBtb2RlIGFuZCBtYWtlIHRoZW0gZm9y
ICdNYWNybycgbW9kZSBpbnN0ZWFkLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb2Rl
Z2VuL21haW4ucHk6CisgICAgICAgIChCdWlsdGluc0dlbmVyYXRvclRlc3RzLmdlbmVyYXRlX2Zy
b21fanNfYnVpbHRpbnMpOgorICAgICAgICAoQnVpbHRpbnNHZW5lcmF0b3JUZXN0cy5ydW5fdGVz
dHMpOgorCiAyMDE1LTEwLTI1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgog
CiAgICAgICAgIEFQSSB0ZXN0cyBmYWlsIG9uIEVsIENhcGl0YW4gYWZ0ZXIgcjE5MTU0MwpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb2RlZ2VuL21haW4ucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvZGVnZW4vbWFpbi5weQppbmRleCAwMDM5NmRiOWEzOGJlMGYwN2Jl
MTg2M2I4OGFlZDQxZWRmOTdkOTY5Li44NmRlYmUxOTEzMjkxNTRmODFjMzdhMDcxNzZjOTMzNzYx
N2Q4ZjcyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvZGVnZW4vbWFpbi5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvZGVnZW4vbWFpbi5weQpAQCAtMzgsNyAr
MzgsNyBAQCBjbGFzcyBCdWlsdGluc0dlbmVyYXRvclRlc3RzOgogICAgICAgICBzZWxmLnJlc2V0
X3Jlc3VsdHMgPSByZXNldF9yZXN1bHRzCiAgICAgICAgIHNlbGYuZXhlY3V0aXZlID0gZXhlY3V0
aXZlCiAKLSAgICBkZWYgZ2VuZXJhdGVfZnJvbV9qc19idWlsdGlucyhzZWxmLCBidWlsdGluc19m
aWxlLCBvdXRwdXRfZGlyZWN0b3J5LCBmcmFtZXdvcmtfbmFtZT0iIiwgY29tYmluZWRfb3V0cHV0
cz1GYWxzZSk6CisgICAgZGVmIGdlbmVyYXRlX2Zyb21fanNfYnVpbHRpbnMoc2VsZiwgYnVpbHRp
bnNfZmlsZSwgb3V0cHV0X2RpcmVjdG9yeSwgZnJhbWV3b3JrX25hbWU9IiIsIG1hY3Jvc19vbmx5
PUZhbHNlKToKICAgICAgICAgY21kID0gWydweXRob24nLAogICAgICAgICAgICAgICAgJ0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHknLAogICAgICAgICAgICAg
ICAgJy0tb3V0cHV0LWRpcmVjdG9yeScsIG91dHB1dF9kaXJlY3RvcnksCkBAIC00Niw4ICs0Niw4
IEBAIGNsYXNzIEJ1aWx0aW5zR2VuZXJhdG9yVGVzdHM6CiAgICAgICAgICAgICAgICAnLS1mcmFt
ZXdvcmsnLCBmcmFtZXdvcmtfbmFtZSwKICAgICAgICAgICAgICAgICctLXRlc3QnXQogCi0gICAg
ICAgIGlmIGNvbWJpbmVkX291dHB1dHM6Ci0gICAgICAgICAgICBjbWQuYXBwZW5kKCctLWNvbWJp
bmVkJykKKyAgICAgICAgaWYgbWFjcm9zX29ubHk6CisgICAgICAgICAgICBjbWQuYXBwZW5kKCct
LW1hY3Jvcy1vbmx5JykKIAogICAgICAgICBjbWQuYXBwZW5kKGJ1aWx0aW5zX2ZpbGUpCiAKQEAg
LTEwOSw4ICsxMDksOCBAQCBjbGFzcyBCdWlsdGluc0dlbmVyYXRvclRlc3RzOgogICAgICAgICAg
ICAgICAgIHByaW50ICJJbnZhbGlkIHRlc3QgY2FzZSBuYW1lOiBzaG91bGQgYmUgRnJhbWV3b3Jr
LVRlc3RDYXNlTmFtZS1PdXRwdXRNb2RlLmpzIgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAK
LSAgICAgICAgICAgIGNvbWJpbmVkX291dHB1dHMgPSBvdXRwdXRfbW9kZSA9PSAiQ29tYmluZWQi
Ci0gICAgICAgICAgICBpZiBzZWxmLmdlbmVyYXRlX2Zyb21fanNfYnVpbHRpbnMob3MucGF0aC5q
b2luKGlucHV0X2RpcmVjdG9yeSwgaW5wdXRfZmlsZSksIHdvcmtfZGlyZWN0b3J5LCBmcmFtZXdv
cmtfbmFtZT1mcmFtZXdvcmtfbmFtZSwgY29tYmluZWRfb3V0cHV0cz1jb21iaW5lZF9vdXRwdXRz
KToKKyAgICAgICAgICAgIG1hY3Jvc19vbmx5ID0gb3V0cHV0X21vZGUgPT0gIk1hY3JvcyIKKyAg
ICAgICAgICAgIGlmIHNlbGYuZ2VuZXJhdGVfZnJvbV9qc19idWlsdGlucyhvcy5wYXRoLmpvaW4o
aW5wdXRfZGlyZWN0b3J5LCBpbnB1dF9maWxlKSwgd29ya19kaXJlY3RvcnksIGZyYW1ld29ya19u
YW1lPWZyYW1ld29ya19uYW1lLCBtYWNyb3Nfb25seT1tYWNyb3Nfb25seSk6CiAgICAgICAgICAg
ICAgICAgcGFzc2VkID0gRmFsc2UKIAogICAgICAgICAgICAgaWYgc2VsZi5yZXNldF9yZXN1bHRz
Ogo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264414</attachid>
            <date>2015-10-30 13:51:05 -0700</date>
            <delta_ts>2015-10-30 15:00:30 -0700</delta_ts>
            <desc>Rebased Patch</desc>
            <filename>bug-150482-20151030135012.patch</filename>
            <type>text/plain</type>
            <size>285214</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YTVmNjI5MzMxYzJhYTg0NDA1N2IzOGQwZDhiMDNkZTgxZDBjNWQ5Li40MWQ3NDlhMDkwNDJkZTU5
MjhiYjU3ODY5ZDM0MmE4N2I2MzhjMmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NiBAQAorMjAxNS0xMC0zMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBGb3IgSlNDIGJ1aWx0aW5zLCBnZW5lcmF0ZS1qcy1iaW5kaW5ncy5qcyBzaG91bGQg
cHJvZHVjZSBzZXBhcmF0ZSBmaWxlcyBwZXIgYnVpbHRpbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBmaWxlcyB0aGF0IGdlbmVyYXRl
ZCBKU0NCdWlsdGlucy57Y3BwLGh9LiBNb3N0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IGFscmVhZHkK
KyAgICAgICAgZXhpc3RzIGluIHRoZSBzZXBhcmF0ZSBwZXItb2JqZWN0IFhYWEJ1aWx0aW5zLntj
cHAsaH0gZmlsZXMuIEFkZCBhIG5ldyBnZW5lcmF0b3IgZm9yCisgICAgICAgIGEgZnJhbWV3b3Jr
LXNwZWNpZmljICJhbGwtaW4tb25lIiBoZWFkZXIgZmlsZSB3aGljaCBpcyB1c2VkIHRvIGVudW1l
cmF0ZSBvdmVyIGFsbAorICAgICAgICBidWlsdGlucyBhbmQgdW5pcXVlIG5hbWVzIGZvciBhIGZy
YW1ld29yay4gTW9zdCBidWlsdGlucyBkb24ndCBuZWVkIHRvIGluY2x1ZGUgdGhpcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisK
KyAgICAgICAgVXBkYXRlIGJ1aWxkIGZpbGVzIHNvIHRoYXQgWFhYQnVpbHRpbnMuY3BwL2ggZGVw
ZW5kcyBvbmx5IG9uIGdlbmVyYXRvciBzY3JpcHRzIGFuZAorICAgICAgICBYWFguanMuIFRoZSBh
bGwtaW4tb25lIGhlYWRlciBmaWxlIGRlcGVuZHMgb24gYWxsIGJ1aWx0aW4gSlMgZmlsZXMgYW5k
IHNjcmlwdHMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnMucHk6CisgICAgICAg
ICogU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHk6
IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9j
b21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHk6IEFkZGVkLgorICAg
ICAgICAoQnVpbHRpbnNGcmFtZXdvcmtNYWNyb3NHZW5lcmF0b3IpOgorICAgICAgICAoQnVpbHRp
bnNGcmFtZXdvcmtNYWNyb3NHZW5lcmF0b3IuX19pbml0X18pOgorICAgICAgICAoQnVpbHRpbnNG
cmFtZXdvcmtNYWNyb3NHZW5lcmF0b3Iub3V0cHV0X2ZpbGVuYW1lKToKKyAgICAgICAgKEJ1aWx0
aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgIChC
dWlsdGluc0ZyYW1ld29ya01hY3Jvc0dlbmVyYXRvci5nZW5lcmF0ZV9oZWFkZXJfaW5jbHVkZXMp
OgorICAgICAgICAoQnVpbHRpbnNGcmFtZXdvcmtNYWNyb3NHZW5lcmF0b3IuZ2VuZXJhdGVfc2Vj
dGlvbl9mb3JfY29kZV9pdGVyYXRpb25fbWFjcm8pOgorICAgICAgICAoQnVpbHRpbnNGcmFtZXdv
cmtNYWNyb3NHZW5lcmF0b3IuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfbmFtZV9pdGVyYXRpb25fbWFj
cm8pOgorICAgICAgICAqIFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0
X2hlYWRlci5weTogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weS4KKyAgICAgICAgKiBT
Y3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9pbXBsZW1lbnRhdGlvbi5w
eTogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1
aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5LgorICAgICAgICAqIFNj
cmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X3dyYXBwZXIucHk6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19n
ZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVyLnB5LgorICAgICAgICAqIFNjcmlwdHMvYnVpbHRpbnMv
YnVpbHRpbnNfdGVtcGxhdGVzLnB5OgorICAgICAgICAqIFNjcmlwdHMvZ2VuZXJhdGUtanMtYnVp
bHRpbnMucHk6CisgICAgICAgIChnZW5lcmF0ZV9iaW5kaW5nc19mb3JfYnVpbHRpbnNfZmlsZXMp
OgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bi5Qcm9taXNlLU1hY3Jvcy5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21i
aW5lZC5qcy4KKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3Jl
LUJ1aWx0aW4ucHJvdG90eXBlLU1hY3Jvcy5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJv
dG90eXBlLUNvbWJpbmVkLmpzLgorICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2
YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLU1hY3Jvcy5qczogUmVuYW1lZCBmcm9tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3Jl
LUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcy4KKyAgICAgICAgKiBTY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1Db21iaW5l
ZC5qcy1yZXN1bHQ6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9zLmpzLXJlc3VsdDog
QWRkZWQuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90
b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtTWFj
cm9zLmpzLXJlc3VsdDogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5qcy1yZXN1
bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMtcmVzdWx0OiBSZW1vdmVkLgorICAg
ICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVp
bHRpbkNvbnN0cnVjdG9yLU1hY3Jvcy5qcy1yZXN1bHQ6IEFkZGVkLgorICAgICAgICAqIFNjcmlw
dHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVj
dG9yLVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLU9wZXJhdGlvbnMuUHJvbWlzZS1Db21iaW5lZC5qcy1y
ZXN1bHQ6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBT
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVp
bHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0Ogor
ICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxDYXNp
bmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhl
Y3V0YWJsZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFtZXMuaDoKKyAgICAgICAg
KEpTQzo6QnVpbHRpbk5hbWVzOjpCdWlsdGluTmFtZXMpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1
aWx0aW5VdGlscy5oOgorICAgICAgICAqIGNyZWF0ZV9oYXNoX3RhYmxlOgorCisgICAgICAgIFRo
ZSBjb2RlIGdlbmVyYXRvciBuZWVkcyB0byBiZSBtb3JlIHNvcGhpc3RpY2F0ZWQgd2hlbiBnZW5l
cmF0aW5nIHRoZSBtYWNybworICAgICAgICBzdWJzdHJpbmcgZm9yIHRoZSBvYmplY3QncyBjbGFz
cyBuYW1lLgorCisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAg
ICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHA6CisgICAgICAgICogcnVudGltZS9JdGVy
YXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNJbnRlcm5hbFBy
b21pc2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgorCiAyMDE1LTEwLTI5ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
RG8gbm90IHNob3cgSmF2YVNjcmlwdENvcmUgYnVpbHRpbnMgaW4gaW5zcGVjdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYWE4MDI2OTljMDY3MmUzNDM0ODZmZWQ1MTM5N2I1MmM1ODI5OWM5Zi4uN2Q2NGEzOWY3
YTViOWRiZWFlYjQ2ZTkyZTM4YTE2OWM5OWQ4YmJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTEwLTMwICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAg
IEZvciBKU0MgYnVpbHRpbnMsIGdlbmVyYXRlLWpzLWJpbmRpbmdzLmpzIHNob3VsZCBwcm9kdWNl
IHNlcGFyYXRlIGZpbGVzIHBlciBidWlsdGluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgcmVmZXJlbmNlcyB0byBidWlsdGlucyBnZW5lcmF0
b3IgZmlsZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOgorCiAyMDE1LTEwLTMwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBJREJPYmplY3RTdG9yZS5hZGQoKSBzdXBwb3J0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDhlOWQwZGUxMTU5YTI2M2Vl
ZDhiNjFmYzExMjZlZWM5ZWJlNTVjZWUuLmNjZGE1YWE4MGFkN2FjNzYyYmYyYWUwODVkYWQ2NGY0
NTJkOTZhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExODMsMTgg
KzExODMsMTcgQEAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIENPTU1BTkQgJHtQWVRIT05fRVhF
Q1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L2dlbmVyYXRl
LWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSAtLW91dHB1dERpciAiJHtERVJJVkVEX1NP
VVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IiIC0tZnJhbWV3b3JrIEphdmFTY3Jp
cHRDb3JlICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vQ29tYmluZWREb21h
aW5zLmpzb24KICAgICBWRVJCQVRJTSkKIAotIyBKU0NCdWlsdGlucworIyBKUyBCdWlsdGlucwog
CiBzZXQoQlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFMKICAgICAke0phdmFTY3JpcHRDb3JlX1ND
UklQVFNfRElSfS9idWlsdGlucy5weQogICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9
L2J1aWx0aW5zX2dlbmVyYXRvci5weQogICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9
L2J1aWx0aW5zX21vZGVsLnB5CiAgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVp
bHRpbnNfdGVtcGxhdGVzLnB5Ci0gICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVp
bHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5Ci0gICAgJHtKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkK
LSAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9zZXBh
cmF0ZV9oZWFkZXIucHkKLSAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGlu
c19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weQotICAgICR7SmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkKKyAg
ICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9mcmFtZXdv
cmtfbWFjcm9zLnB5CisgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNf
Z2VuZXJhdGVfb2JqZWN0X2hlYWRlci5weQorICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19E
SVJ9L2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9pbXBsZW1lbnRhdGlvbi5weQorICAgICR7SmF2
YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF93cmFwcGVy
LnB5CiAgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRp
bnMucHkKICAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9sYXp5d3JpdGVyLnB5CiAp
CkBAIC0xMjUyLDI0ICsxMjUxLDQxIEBAIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX1NPVVJD
RVMKICkKIAogYWRkX2N1c3RvbV9jb21tYW5kKAotICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNF
U19KQVZBU0NSSVBUQ09SRV9ESVJ9L0pTQ0J1aWx0aW5zLmNwcCAke0RFUklWRURfU09VUkNFU19K
QVZBU0NSSVBUQ09SRV9ESVJ9L0pTQ0J1aWx0aW5zLmgKLSAgICBNQUlOX0RFUEVOREVOQ1kgJHtK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLSAgICBE
RVBFTkRTICR7SmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFU30gJHtCVUlMVElOU19HRU5F
UkFUT1JfU0NSSVBUU30KLSAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNj
cmlwdENvcmVfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5IC0tZnJhbWV3b3Jr
IEphdmFTY3JpcHRDb3JlIC0tb3V0cHV0LWRpcmVjdG9yeSAke0RFUklWRURfU09VUkNFU19KQVZB
U0NSSVBUQ09SRV9ESVJ9IC0tY29tYmluZWQgJHtKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VS
Q0VTfQorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0pT
Q0J1aWx0aW5zTWFjcm9zLmNwcAorICAgIERFUEVORFMgJHtCVUlMVElOU19HRU5FUkFUT1JfU0NS
SVBUU30gJHtKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTfQorICAgIENPTU1BTkQgJHtQ
WVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUt
anMtYnVpbHRpbnMucHkgLS1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLS1tYWNyb3Mtb25seSAt
LW91dHB1dC1kaXJlY3RvcnkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfSAk
e0phdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVN9CiAgICAgVkVSQkFUSU0pCitsaXN0KEFQ
UEVORCBKYXZhU2NyaXB0Q29yZV9IRUFERVJTCisgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSfS9KU0NCdWlsdGluc01hY3Jvcy5oCispCisKK2ZvcmVhY2ggKF9idWlsdGlu
U291cmNlICR7SmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFU30pCisgICAgZ2V0X2ZpbGVu
YW1lX2NvbXBvbmVudChfb2JqZWN0TmFtZSAke19idWlsdGluU291cmNlfSBOQU1FX1dFKQorICAg
IGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX0pB
VkFTQ1JJUFRDT1JFX0RJUn0vJHtfb2JqZWN0TmFtZX1CdWlsdGlucy5jcHAKKyAgICAgICAgICAg
ICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vJHtfb2JqZWN0TmFtZX1C
dWlsdGlucy5oCisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19idWlsdGluU291cmNlfQorICAg
ICAgICBERVBFTkRTICR7QlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFN9CisgICAgICAgIENPTU1B
TkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vZ2Vu
ZXJhdGUtanMtYnVpbHRpbnMucHkgLS1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLS1vdXRwdXQt
ZGlyZWN0b3J5ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0gJHtfYnVpbHRp
blNvdXJjZX0KKyAgICAgICAgVkVSQkFUSU0pCisgICAgbGlzdChBUFBFTkQgSmF2YVNjcmlwdENv
cmVfU09VUkNFUworICAgICAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9
LyR7X29iamVjdE5hbWV9QnVpbHRpbnMuY3BwCisgICAgKQorICAgIGxpc3QoQVBQRU5EIEphdmFT
Y3JpcHRDb3JlX0hFQURFUlMKKyAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENP
UkVfRElSfS8ke19vYmplY3ROYW1lfUJ1aWx0aW5zLmgKKyAgICApCitlbmRmb3JlYWNoICgpCiAK
IGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNF
U19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
cnMuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAKICAgICAke0RFUklWRURfU09VUkNF
U19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JQcm90b2NvbE9iamVjdHMu
Y3BwCi0gICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGlu
cy5jcHAKICkKIAogbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSEVBREVSUwogICAgICR7REVS
SVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVycy5oCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElS
fS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oCiAgICAgJHtERVJJVkVE
X1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xP
YmplY3RzLmgKLSAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0pTQ0J1
aWx0aW5zLmgKICkKIAogYWRkX2N1c3RvbV9jb21tYW5kKApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxMjNhMTE3NDlmMTgzOGUxNTRmMzYxZWJkZjI0OTQ2
MTNhNDA5N2UyLi5lNDU3NzM2YmFiZTdmOTA5YTQ4Y2M4NDQxNWYzNDkzNjkwY2QzNDUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTUsOCArNTUsOCBA
QCBhbGwgOiBcCiAgICAgSW5pdEJ5dGVjb2Rlcy5hc20gXAogICAgIEluamVjdGVkU2NyaXB0U291
cmNlLmggXAogICAgIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCBcCisgICAgSlNDQnVp
bHRpbnNNYWNyb3MuaCBcCiAgICAgSlNSZXBsYXlJbnB1dHMuaCBcCi0gICAgSlNDQnVpbHRpbnMu
aCBcCiAgICAgTGV4ZXIubHV0LmggXAogICAgIEtleXdvcmRMb29rdXAuaCBcCiAgICAgUmVnRXhw
Sml0VGFibGVzLmggXApAQCAtNzMsMTEgKzczLDEwIEBAIEJVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJ
UFRTID0gXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zL2J1aWx0
aW5zX2dlbmVyYXRvci5weSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVp
bHRpbnMvYnVpbHRpbnNfbW9kZWwucHkgXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19E
SVIpL2J1aWx0aW5zL2J1aWx0aW5zX3RlbXBsYXRlcy5weSBcCi0gICAgJChKYXZhU2NyaXB0Q29y
ZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVy
LnB5IFwKLSAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGlucy9idWlsdGlu
c19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weSBcCi0gICAgJChKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVh
ZGVyLnB5IFwKLSAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGlucy9idWls
dGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weSBcCi0gICAgJChKYXZhU2Ny
aXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVf
d3JhcHBlci5weSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMv
YnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3b3JrX21hY3Jvcy5weSBcCisgICAgJChKYXZhU2NyaXB0
Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRl
ci5weSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRp
bnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5IFwKKyAgICAkKEphdmFTY3JpcHRD
b3JlX1NDUklQVFNfRElSKS9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBl
ci5weSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVp
bHRpbnMucHkgXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2xhenl3cml0ZXIu
cHkgXAogIwpAQCAtMTAzLDE1ICsxMDIsMjUgQEAgSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09V
UkNFUyA9IFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9idWlsdGlucy9UeXBlZEFycmF5LnByb3Rv
dHlwZS5qcyBcCiAjCiAKLSMgVGhlIGNvbWJpbmVkIG91dHB1dCBmaWxlIGRlcGVuZHMgb24gdGhl
IGNvbnRlbnRzIG9mIGJ1aWx0aW5zIGFuZCBnZW5lcmF0b3Igc2NyaXB0cywgc28KLSMgYWRkaW5n
LCBtb2RpZnlpbmcsIG9yIHJlbW92aW5nIGJ1aWx0aW5zIG9yIHNjcmlwdHMgd2lsbCB0cmlnZ2Vy
IHJlZ2VuZXJhdGlvbiBvZiBmaWxlcy4KKyMgQWRkaW5nL3JlbW92aW5nIHNjcmlwdHMgc2hvdWxk
IHRyaWdnZXIgcmVnZW5lcmF0aW9uLCBidXQgY2hhbmdpbmcgd2hpY2ggYnVpbHRpbnMgYXJlCisj
IGdlbmVyYXRlZCBzaG91bGQgbm90IGFmZmVjdCB0aGUgZ2VuZXJhdGVkIGNvZGUgb2Ygb3RoZXIg
YnVpbHRpbnMuCiAKIC5QSE9OWTogZm9yY2UKLUphdmFTY3JpcHRDb3JlX0JVSUxUSU5TX0RFUEVO
REVOQ0lFU19MSVNUIDogJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvVXBkYXRlQ29udGVu
dHMucHkgZm9yY2UKLQkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvVXBk
YXRlQ29udGVudHMucHkgJyQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFUykgJChCVUlM
VElOU19HRU5FUkFUT1JfU0NSSVBUUyknICRACitKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19HRU5F
UkFUT1JfREVQRU5ERU5DSUVTX0xJU1QgOiAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9V
cGRhdGVDb250ZW50cy5weSBmb3JjZQorCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQ
VFNfRElSKS9VcGRhdGVDb250ZW50cy5weSAnJChCVUlMVElOU19HRU5FUkFUT1JfU0NSSVBUUykn
ICRACiAKLUpTQ0J1aWx0aW5zLmg6ICQoQlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFMpICQoSmF2
YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFUykgSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfREVQ
RU5ERU5DSUVTX0xJU1QKLQkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikv
Z2VuZXJhdGUtanMtYnVpbHRpbnMucHkgLS1jb21iaW5lZCAtLW91dHB1dC1kaXJlY3RvcnkgLiAt
LWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAkKEphdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJD
RVMpCitKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTX0RFUEVOREVOQ0lFU19MSVNUIDog
JChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvVXBkYXRlQ29udGVudHMucHkgZm9yY2UKKwkk
KFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvVXBkYXRlQ29udGVudHMucHkg
JyQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFUyknICRACisKKyVCdWlsdGlucy5oIDog
JS5qcyAkKEJVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTKSBKYXZhU2NyaXB0Q29yZV9CVUlMVElO
U19HRU5FUkFUT1JfREVQRU5ERU5DSUVTX0xJU1QKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29y
ZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgLS1vdXRwdXQtZGlyZWN0b3J5
IC4gLS1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgJDwKKworIyBBZGRpbmcvcmVtb3ZpbmcvbW9k
aWZ5aW5nIHNjcmlwdHMgb3IgZ2VuZXJhdG9yIGZpbGVzIHNob3VsZCByZWdlbmVyYXRlIHRoZSBm
cmFtZXdvcmsgbWFjcm9zIGZpbGUuCisKK0pTQ0J1aWx0aW5zTWFjcm9zLmg6ICQoQlVJTFRJTlNf
R0VORVJBVE9SX1NDUklQVFMpICQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFUykgSmF2
YVNjcmlwdENvcmVfQlVJTFRJTlNfR0VORVJBVE9SX0RFUEVOREVOQ0lFU19MSVNUIEphdmFTY3Jp
cHRDb3JlX0JVSUxUSU5TX1NPVVJDRVNfREVQRU5ERU5DSUVTX0xJU1QKKwkkKFBZVEhPTikgJChK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgLS1tYWNy
b3Mtb25seSAtLW91dHB1dC1kaXJlY3RvcnkgLiAtLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAk
KEphdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVMpCisKK2FsbDogJChub3RkaXIgJChKYXZh
U2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTOiUuanM9JUJ1aWx0aW5zLmgpKQogCiAjIFBlcmZl
Y3QgaGFzaCBsb29rdXAgdGFibGVzIGZvciBKYXZhU2NyaXB0IGNsYXNzZXMuCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDcyYWRiMjVjZDIxYTViNTE1MmVmOGIxOWZiODg5ZDJl
Mjc0M2IxMC4uM2U2ZjJkMmE1MzQyZjc4YzAwMDY0NDUyYzFlYjEzYzg4YTM4NmQ1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNjIsMTcgKzEzNjIsMzMgQEAKIAkJOTk2Qjcz
MjYxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2QjczMTIxQkQ5RkEy
QzAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oICovOyB9OwogCQk5OTZC
NzMyNzFCREEwOEVGMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMxMzFCRDlGQTJDMDAz
MzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggKi87IH07CiAJCTk5NkI3MzI4MUJEQTA4
RUYwMDMzMUI4NCAvKiBTeW1ib2xQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMxNDFCRDlGQTJDMDAzMzFCODQgLyogU3lt
Ym9sUHJvdG90eXBlLmx1dC5oICovOyB9OworCQk5OTg3REUzNDFCRTNGRDgyMDBEMjA3NzMgLyog
QXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUQ5MUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJheUNvbnN0
cnVjdG9yQnVpbHRpbnMuY3BwICovOyB9OworCQk5OTg3REUzNTFCRTNGRDgyMDBEMjA3NzMgLyog
QXJyYXlJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNURCMUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJh
eUl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwICovOyB9OworCQk5OTg3REUzNjFCRTNGRDgy
MDBEMjA3NzMgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVERDFCRDlBOTEyMDBGMkQ4MzUgLyog
QXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgKi87IH07CisJCTk5ODdERTM3MUJFM0ZEODIwMEQy
MDc3MyAvKiBGdW5jdGlvblByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNURGMUJEOUE5MTIwMEYyRDgzNSAvKiBG
dW5jdGlvblByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFMzgxQkUzRkQ4MjAw
RDIwNzczIC8qIEdsb2JhbE9iamVjdEJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUUxMUJEOUE5MTIwMEYyRDgzNSAvKiBHbG9i
YWxPYmplY3RCdWlsdGlucy5jcHAgKi87IH07CisJCTk5ODdERTM5MUJFM0ZEODIwMEQyMDc3MyAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RCdWlsdGlucy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVFMzFCRDlBOTEyMDBGMkQ4
MzUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuY3BwICovOyB9Owor
CQk5OTg3REUzQTFCRTNGRDgyMDBEMjA3NzMgLyogSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JC
dWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OTk0RTVFNTFCRDlBOTEyMDBGMkQ4MzUgLyogSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JC
dWlsdGlucy5jcHAgKi87IH07CisJCTk5ODdERTNCMUJFM0ZEODIwMEQyMDc3MyAvKiBJdGVyYXRv
clByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5OTRFNUU3MUJEOUE5MTIwMEYyRDgzNSAvKiBJdGVyYXRvclByb3RvdHlw
ZUJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFM0MxQkUzRkQ4MjAwRDIwNzczIC8qIE1vZHVs
ZUxvYWRlck9iamVjdEJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5OTRFNUU5MUJEOUE5MTIwMEYyRDgzNSAvKiBNb2R1bGVMb2FkZXJP
YmplY3RCdWlsdGlucy5jcHAgKi87IH07CisJCTk5ODdERTNEMUJFM0ZEODIwMEQyMDc3MyAvKiBP
YmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUVCMUJEOUE5MTIwMEYyRDgzNSAvKiBPYmplY3RDb25z
dHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFM0UxQkUzRkQ4MjAwRDIwNzczIC8q
IE9wZXJhdGlvbnNQcm9taXNlQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5NEU1RUQxQkQ5QTkxMjAwRjJEODM1IC8qIE9wZXJhdGlv
bnNQcm9taXNlQnVpbHRpbnMuY3BwICovOyB9OworCQk5OTg3REUzRjFCRTNGRDgyMDBEMjA3NzMg
LyogUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5NEU1RUYxQkQ5QTkxMjAwRjJEODM1IC8qIFByb21p
c2VDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFNDAxQkUzRkQ4MjAwRDIw
NzczIC8qIFByb21pc2VQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVGMTFCRDlBOTEyMDBGMkQ4MzUgLyogUHJv
bWlzZVByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFNDExQkUzRkQ4MjAwRDIw
NzczIC8qIFJlZmxlY3RPYmplY3RCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVGMzFCRDlBOTEyMDBGMkQ4MzUgLyogUmVmbGVj
dE9iamVjdEJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFNDIxQkUzRkQ4MjAwRDIwNzczIC8q
IFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5NEU1RjUxQkQ5QTkxMjAwRjJEODM1IC8qIFN0cmluZ0Nv
bnN0cnVjdG9yQnVpbHRpbnMuY3BwICovOyB9OworCQk5OTg3REU0MzFCRTNGRDgyMDBEMjA3NzMg
LyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVGNzFCRDlBOTEyMDBGMkQ4MzUgLyog
U3RyaW5nSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgKi87IH07CisJCTk5ODdERTQ0MUJF
M0ZEODIwMEQyMDc3MyAvKiBUeXBlZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVGOTFCRDlBOTEy
MDBGMkQ4MzUgLyogVHlwZWRBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovOyB9OworCQk5
OTg3REU0NTFCRTNGRDgyMDBEMjA3NzMgLyogVHlwZWRBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUZC
MUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwICovOyB9
OwogCQk5OUNDMEI2MjE4QkU5OTQ2MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0
c1RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5RTQ1QTFFMThBMUIxRTcwMDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRz
VGVtcGxhdGVzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTk5Q0MwQjYzMThCRTk5NTAwMDZDRUJDQyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5w
dXRzLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlF
NDVBMUQxOEExQjFFNzAwMjZEODhGIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkgKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlEQTAwQTMx
QkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRvci5weSBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5REEwMDlBMUJENTk5MjcwMEY0NTc1QyAv
KiBidWlsdGluc19nZW5lcmF0b3IucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTlEQTAwQTQxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX21v
ZGVsLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlE
QTAwOUIxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX21vZGVsLnB5ICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5REEwMEE1MUJENTk5MzEwMEY0
NTc1QyAvKiBidWlsdGluc190ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDA5QzFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNf
dGVtcGxhdGVzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTk5REEwMEE2MUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGlucy5weSBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5REEwMDlEMUJENTk5MjcwMEY0
NTc1QyAvKiBidWlsdGlucy5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQk5OURBMDBBNzFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJh
dGVfY29tYmluZWRfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTlEQTAwOUUxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRl
X2NvbWJpbmVkX2hlYWRlci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQk5OURBMDBBODFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJh
dGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDA5RjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNf
Z2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkgKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTlEQTAwQTkxQkQ1OTkzMTAwRjQ1NzVDIC8q
IGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weSBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5REEwMEEwMUJENTk5MjcwMEY0NTc1QyAvKiBi
dWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkgKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTlEQTAwQUExQkQ1OTkzMTAwRjQ1NzVDIC8q
IGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEQTAwQTExQkQ1OTkyNzAwRjQ1
NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5ICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk5REEwMEFCMUJE
NTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVyLnB5IGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEQTAwQTIxQkQ1
OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkgKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTlEQTAwQTkx
QkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkgaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDBBMDFCRDU5
OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRlci5weSAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5OURBMDBBQTFCRDU5
OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEQTAwQTEx
QkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9pbXBsZW1lbnRhdGlv
bi5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
OURBMDBBQjFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X3dyYXBw
ZXIucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURB
MDBBMjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X3dyYXBwZXIu
cHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlE
QTAwQUYxQkQ1OTk0RTAwRjQ1NzVDIC8qIGdlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5IGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEQTAwQUMxQkQ1OTkzRTAw
RjQ1NzVDIC8qIGdlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5REEwMEIwMUJENTk5NEUwMEY0NTc1QyAvKiBs
YXp5d3JpdGVyLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTlEQTAwQUQxQkQ1OTkzRTAwRjQ1NzVDIC8qIGxhenl3cml0ZXIucHkgKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlEQTAwQjExQkQ1OTk0RTAw
RjQ1NzVDIC8qIFVwZGF0ZUNvbnRlbnRzLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTlEQTAwQUUxQkQ1OTkzRTAwRjQ1NzVDIC8qIFVwZGF0ZUNvbnRl
bnRzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0xMzgxLDYgKzEzOTcsNyBAQAogCQk5OUU0NUEyNjE4QTFCMjU5MDAyNkQ4OEYgLyogRW5jb2Rl
ZFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OUU0NUEyMTE4QTFCMjU5MDAyNkQ4OEYgLyogRW5jb2RlZFZhbHVlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlFNDVBMjcxOEExQjI1OTAwMjZE
ODhGIC8qIElucHV0Q3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OUU0NUEyMjE4QTFCMjU5MDAyNkQ4OEYgLyogSW5wdXRDdXJzb3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OUU0NUEyODE4
QTFCMjU5MDAyNkQ4OEYgLyogTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU0NUEyMzE4QTFCMjU5MDAyNkQ4OEYg
LyogTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTlFOTg1OUExQkREOUVENTAwNkNERDBFIC8qIGJ1aWx0aW5z
X2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU5ODU5OTFCREQ5RUNBMDA2Q0REMEUgLyogYnVpbHRpbnNf
Z2VuZXJhdGVfZnJhbWV3b3JrX21hY3Jvcy5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5OUYxQTZGRTFCOEU2RDk0MDA0NjNCMjYgLyogSW5zcGVj
dG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTlGMUE2RkMxQjhFNkQ5NDAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5k
Um91dGVyLmNwcCAqLzsgfTsKIAkJOTlGMUE3MDExQjk4RkJFQzAwNDYzQjI2IC8qIEluc3BlY3Rv
ckZyb250ZW5kUm91dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OUYxQTcwMDFCOThGQkVDMDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
RTcyOTQwNzE5MEYwMUE1MDAxQTkxQjUgLyogSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTc4NjM2QzBEOUJFRUMz
MDBENzRFNzUgLyogSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAgKi87IH07CkBAIC0xNjc4LDggKzE2
OTUsNiBAQAogCQlBN0NBM0FFQzE3REE1MTY4MDA2NTM4QUYgLyogV2Vha01hcERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Q0EzQUVBMTdEQTUx
NjgwMDY1MzhBRiAvKiBXZWFrTWFwRGF0YS5oICovOyB9OwogCQlBN0Q4MDFBNDE4ODBENjZFMDAy
NkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDgwMUExMTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGlu
RXhlY3V0YWJsZXMuY3BwICovOyB9OwogCQlBN0Q4MDFBNTE4ODBENjZFMDAyNkMzOUIgLyogQnVp
bHRpbkV4ZWN1dGFibGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0Q4MDFBMjE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTdEODAx
QTgxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDgwMUE2MTg4MEQ2QTgwMDI2QzM5QiAvKiBK
U0NCdWlsdGlucy5jcHAgKi87IH07Ci0JCUE3RDgwMUE5MTg4MEQ2QTgwMDI2QzM5QiAvKiBKU0NC
dWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTdEODAxQTcxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmggKi87IH07CiAJCUE3RDg5
Q0YyMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDg5Q0UzMTdBMEI4Q0MwMDc3M0FEOCAv
KiBERkdCYXNpY0Jsb2NrLmNwcCAqLzsgfTsKIAkJQTdEODlDRjMxN0EwQjhDQzAwNzczQUQ4IC8q
IERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3RDg5Q0U0MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCbG9ja0luc2Vy
dGlvblNldC5jcHAgKi87IH07CiAJCUE3RDg5Q0Y0MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCbG9j
a0luc2VydGlvblNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdEODlDRTUxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9uU2V0Lmgg
Ki87IH07CkBAIC0xOTMzLDcgKzE5NDgsNyBAQAogCQlGRTM5MTM1NDFCNzk0RjZFMDBFREFGNzEg
LyogTGl2ZU9iamVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkUzOTEzNTIxQjc5NEFDOTAwRURBRjcxIC8qIExpdmVPYmplY3RMaXN0LmNw
cCAqLzsgfTsKIAkJRkUzOTEzNTUxQjc5NEY4QTAwRURBRjcxIC8qIExpdmVPYmplY3REYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM5MTM1MTFC
Nzk0QUM5MDBFREFGNzEgLyogTGl2ZU9iamVjdERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTM5MTM1NjFCNzk0RjhGMDBFREFGNzEgLyog
TGl2ZU9iamVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFMzkxMzUzMUI3OTRBQzkwMEVEQUY3MSAvKiBMaXZlT2JqZWN0TGlzdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUZFNDIzODkwMUJF
MThDM0MwMDUxNDczNyAvKiBKSVRTdWJHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0MjM4OEYxQkUxOEMxMjAwNTE0NzM3IC8qIEpJ
VFN1YkdlbmVyYXRvci5jcHAgKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsK
KwkJRkU0MjM4OTAxQkUxOEMzQzAwNTE0NzM3IC8qIEpJVFN1YkdlbmVyYXRvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTQyMzg4RjFCRTE4QzEy
MDA1MTQ3MzcgLyogSklUU3ViR2VuZXJhdG9yLmNwcCAqLzsgfTsKIAkJRkU0QkZGMkIxQUQ0NzZF
NzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNEJGRjI5MUFENDc2RTcwMDA4OEY4NyAvKiBGdW5j
dGlvbk92ZXJyaWRlcy5jcHAgKi87IH07CiAJCUZFNEJGRjJDMUFENDc2RTcwMDA4OEY4NyAvKiBG
dW5jdGlvbk92ZXJyaWRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkU0QkZGMkExQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmgg
Ki87IH07CiAJCUZFNEQ1NUI4MUFFNzE2Q0EwMDUyRTQ1OSAvKiBJdGVyYXRpb25TdGF0dXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNEQ1NUI3MUFF
NzE2Q0EwMDUyRTQ1OSAvKiBJdGVyYXRpb25TdGF0dXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzQyMiwxNiArMzQzNyw1MSBAQAogCQk5OTZC
NzMxNDFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTeW1ib2xQcm90b3R5cGUubHV0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5NkI3MzE1MUJEQTA1QUEwMDMzMUI4NCAvKiBBcnJheUNvbnN0
cnVjdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJheUNvbnN0
cnVjdG9yLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZCNzMxNjFCREEw
NUFBMDAzMzFCODQgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RDkxQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5
Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5OTk0RTVEQTFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlDb25zdHJ1Y3RvckJ1aWx0
aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5Q29uc3RydWN0b3JC
dWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVEQjFCRDlBOTEy
MDBGMkQ4MzUgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGVCdWlsdGlu
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNURDMUJEOUE5MTIwMEYy
RDgzNSAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUREMUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJh
eVByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5OTk0RTVERTFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJheVByb3RvdHlwZUJ1aWx0aW5z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNURGMUJEOUE5MTIwMEYyRDgz
NSAvKiBGdW5jdGlvblByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uUHJvdG90eXBlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFMDFCRDlBOTEyMDBGMkQ4MzUgLyogRnVuY3Rpb25Q
cm90b3R5cGVCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGdW5j
dGlvblByb3RvdHlwZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5
OTRFNUUxMUJEOUE5MTIwMEYyRDgzNSAvKiBHbG9iYWxPYmplY3RCdWlsdGlucy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHbG9iYWxPYmplY3RCdWlsdGlucy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUUyMUJEOUE5MTIwMEYyRDgzNSAv
KiBHbG9iYWxPYmplY3RCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHbG9iYWxPYmplY3RCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
OTk0RTVFMzFCRDlBOTEyMDBGMkQ4MzUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5OTk0RTVFNDFCRDlBOTEyMDBGMkQ4MzUgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0QnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTUxQkQ5QTkxMjAwRjJEODM1IC8qIEludGVybmFsUHJvbWlz
ZUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUU2MUJEOUE5MTIwMEYyRDgzNSAvKiBJbnRlcm5hbFBy
b21pc2VDb25zdHJ1Y3RvckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTcxQkQ5QTkxMjAwRjJEODM1IC8qIEl0ZXJhdG9yUHJvdG90
eXBlQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSXRl
cmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk5OTRFNUU4MUJEOUE5MTIwMEYyRDgzNSAvKiBJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEl0ZXJhdG9yUHJvdG90eXBlQnVpbHRp
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTkxQkQ5QTkxMjAwRjJE
ODM1IC8qIE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RUExQkQ5QTkxMjAwRjJEODM1IC8qIE1vZHVs
ZUxvYWRlck9iamVjdEJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk5OTRFNUVCMUJEOUE5MTIwMEYyRDgzNSAvKiBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9iamVjdENvbnN0cnVj
dG9yQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFQzFC
RDlBOTEyMDBGMkQ4MzUgLyogT2JqZWN0Q29uc3RydWN0b3JCdWlsdGlucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUVEMUJEOUE5MTIwMEYyRDgzNSAvKiBPcGVy
YXRpb25zUHJvbWlzZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE9wZXJhdGlvbnNQcm9taXNlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5OTk0RTVFRTFCRDlBOTEyMDBGMkQ4MzUgLyogT3BlcmF0aW9uc1Byb21pc2VC
dWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcGVyYXRpb25zUHJv
bWlzZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUVGMUJE
OUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUYwMUJEOUE5MTIwMEYyRDgz
NSAvKiBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5OTk0RTVGMTFCRDlBOTEyMDBGMkQ4MzUgLyogUHJvbWlzZVByb3RvdHlw
ZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb21p
c2VQcm90b3R5cGVCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5
OTRFNUYyMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlUHJvdG90eXBlQnVpbHRpbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvbWlzZVByb3RvdHlwZUJ1aWx0aW5zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUYzMUJEOUE5MTIwMEYyRDgzNSAv
KiBSZWZsZWN0T2JqZWN0QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVmbGVjdE9iamVjdEJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTk5NEU1RjQxQkQ5QTkxMjAwRjJEODM1IC8qIFJlZmxlY3RPYmplY3RCdWlsdGlu
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZsZWN0T2JqZWN0QnVpbHRp
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RjUxQkQ5QTkxMjAwRjJE
ODM1IC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nQ29uc3RydWN0b3JCdWlsdGlucy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUY2MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdD
b25zdHJ1Y3RvckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTk5NEU1RjcxQkQ5QTkxMjAwRjJEODM1IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlQnVpbHRp
bnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nSXRlcmF0
b3JQcm90b3R5cGVCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5
OTRFNUY4MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ0l0ZXJhdG9yUHJvdG90
eXBlQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RjkxQkQ5
QTkxMjAwRjJEODM1IC8qIFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0
aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RkExQkQ5QTkxMjAw
RjJEODM1IC8qIFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUZCMUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBl
ZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVHlwZWRBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RkMxQkQ5QTkxMjAwRjJEODM1IC8qIFR5cGVkQXJyYXlQcm90
b3R5cGVCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlZEFy
cmF5UHJvdG90eXBlQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5
NEU2MEYxQkQ5QUVCMjAwRjJEODM1IC8qIEpTQ0J1aWx0aW5zTWFjcm9zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ0J1aWx0aW5zTWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5REEwMDk5MUJENTk5MjcwMEY0NTc1QyAvKiBfX2luaXRfXy5weSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IF9faW5pdF9fLnB5OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OURBMDA5QTFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRp
bnNfZ2VuZXJhdG9yLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gYnVp
bHRpbnNfZ2VuZXJhdG9yLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OURBMDA5
QjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfbW9kZWwucHkgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNj
cmlwdC5weXRob247IHBhdGggPSBidWlsdGluc19tb2RlbC5weTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTlEQTAwOUMxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX3RlbXBsYXRl
cy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGJ1aWx0aW5zX3RlbXBs
YXRlcy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlEQTAwOUQxQkQ1OTkyNzAw
RjQ1NzVDIC8qIGJ1aWx0aW5zLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRo
ID0gYnVpbHRpbnMucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5REEwMDlFMUJE
NTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHkgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBidWlsdGluc19nZW5lcmF0ZV9jb21i
aW5lZF9oZWFkZXIucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5REEwMDlGMUJE
NTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlv
bi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGJ1aWx0aW5zX2dlbmVy
YXRlX2NvbWJpbmVkX2ltcGxlbWVudGF0aW9uLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5OURBMDBBMDFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJh
dGVfaGVhZGVyLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gYnVpbHRp
bnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5OURBMDBBMTFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJh
dGVfaW1wbGVtZW50YXRpb24ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGgg
PSBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTlEQTAwQTIxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5z
X2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRo
b247IHBhdGggPSBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVyLnB5OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5OURBMDBBMDFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRp
bnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRlci5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhv
bjsgcGF0aCA9IGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHk7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk5REEwMEExMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19n
ZW5lcmF0ZV9vYmplY3RfaW1wbGVtZW50YXRpb24ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5w
eXRob247IHBhdGggPSBidWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaW1wbGVtZW50YXRpb24ucHk7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5REEwMEEyMUJENTk5MjcwMEY0NTc1QyAv
KiBidWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9IGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF93cmFwcGVyLnB5OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OURBMDBBQzFCRDU5OTNFMDBGNDU3NUMgLyog
Z2VuZXJhdGUtanMtYnVpbHRpbnMucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBh
dGggPSAiZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5OURBMDBBRDFCRDU5OTNFMDBGNDU3NUMgLyogbGF6eXdyaXRlci5weSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGxhenl3cml0ZXIucHk7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5REEwMEFFMUJENTk5M0UwMEY0NTc1QyAvKiBVcGRhdGVDb250ZW50
cy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IFVwZGF0ZUNvbnRlbnRz
LnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQ0Miw2ICszNDkyLDcgQEAKIAkJ
OTlFNDVBMjExOEExQjI1OTAwMjZEODhGIC8qIEVuY29kZWRWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFbmNvZGVkVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTlFNDVBMjIxOEExQjI1OTAwMjZEODhGIC8qIElucHV0Q3Vyc29yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0Q3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5RTQ1QTIzMThBMUIyNTkwMDI2RDg4RiAvKiBOb25kZXRlcm1pbmlz
dGljSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9uZGV0ZXJtaW5p
c3RpY0lucHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5RTk4NTk5MUJERDlF
Q0EwMDZDREQwRSAvKiBidWlsdGluc19nZW5lcmF0ZV9mcmFtZXdvcmtfbWFjcm9zLnB5ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gYnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3
b3JrX21hY3Jvcy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlGMUE2RkMxQjhF
NkQ5NDAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlGMUE3MDAxQjk4RkJFQzAwNDYzQjI2IC8qIElu
c3BlY3RvckZyb250ZW5kUm91dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluc3BlY3RvckZyb250ZW5kUm91dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCNDk1NEU4MUE2NjQwREIwMDI4MTVBNiAvKiBQYXJzZXJGdW5jdGlvbkluZm8uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGFyc2VyRnVuY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zNzM2LDggKzM3ODcsNiBAQAogCQlBN0Q4MDFBMDE4ODBENjZFMDAyNkMzOUIgLyogQXJy
YXkucHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0g
QXJyYXkucHJvdG90eXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q4MDFB
MTE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1aWx0aW5FeGVjdXRhYmxlcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDgwMUEyMTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGlu
RXhlY3V0YWJsZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnVpbHRpbkV4
ZWN1dGFibGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3RDgwMUE2MTg4MEQ2
QTgwMDI2QzM5QiAvKiBKU0NCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0NCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE3RDgwMUE3MTg4MEQ2QTgwMDI2QzM5QiAvKiBKU0NCdWlsdGlucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0NCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBN0Q4OUNFMzE3QTBCOENDMDA3NzNBRDggLyogREZHQmFzaWNCbG9jay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdCYXNpY0Jsb2NrLmNwcDsgcGF0
aCA9IGRmZy9ERkdCYXNpY0Jsb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTdEODlDRTQxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmNw
cDsgcGF0aCA9IGRmZy9ERkdCbG9ja0luc2VydGlvblNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3RDg5Q0U1MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCbG9ja0luc2VydGlv
blNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCbG9ja0luc2VydGlv
blNldC5oOyBwYXRoID0gZGZnL0RGR0Jsb2NrSW5zZXJ0aW9uU2V0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00MTM3LDggKzQxODYsOCBAQAogCQkJCTBGQ0VGQUI2MTgwNUQ2MTYw
MDQ3MkNFNCAvKiBsaWJsbHZtRm9ySlNDLmR5bGliICovLAogCQkJCTE0MTIxMTIwMEE0ODc5M0Mw
MDQ4MDI1NSAvKiBtaW5pZG9tICovLAogCQkJCTE0QkQ1OUJGMEEzRThGOTAwMEJBRjU5QyAvKiB0
ZXN0YXBpICovLAotCQkJCTY1MTEyMzA1MTQwNDZBNEMwMDJCMTAxRCAvKiB0ZXN0UmVnRXhwICov
LAogCQkJCTBGRUM4NUFEMUJEQjVDRjEwMDgwRkY3NCAvKiB0ZXN0YjMgKi8sCisJCQkJNjUxMTIz
MDUxNDA0NkE0QzAwMkIxMDFEIC8qIHRlc3RSZWdFeHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFBy
b2R1Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ5NDMsMTMgKzQ5OTIsMjMg
QEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOTk2QjczMTUxQkRB
MDVBQTAwMzMxQjg0IC8qIEFycmF5Q29uc3RydWN0b3IubHV0LmggKi8sCisJCQkJOTk5NEU1RDkx
QkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8sCisJCQkJ
OTk5NEU1REExQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5oICov
LAogCQkJCTk5NkI3MzE2MUJEQTA1QUEwMDMzMUI4NCAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBl
Lmx1dC5oICovLAorCQkJCTk5OTRFNURCMUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJheUl0ZXJhdG9y
UHJvdG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNURDMUJEOUE5MTIwMEYyRDgzNSAv
KiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaCAqLywKKwkJCQk5OTk0RTVERDFCRDlB
OTEyMDBGMkQ4MzUgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1
REUxQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5UHJvdG90eXBlQnVpbHRpbnMuaCAqLywKIAkJCQk5
OTZCNzMwNzFCRDlGQTJDMDAzMzFCODQgLyogQm9vbGVhblByb3RvdHlwZS5sdXQuaCAqLywKIAkJ
CQk2NTE0RjIxNzE4QjNFMTY3MDA5OEZGOEIgLyogQnl0ZWNvZGVzLmggKi8sCiAJCQkJQTUzMjQz
OTUxODU2QTQ3NTAwMkVENjkyIC8qIENvbWJpbmVkRG9tYWlucy5qc29uICovLAogCQkJCTk5NkI3
MzA4MUJEOUZBMkMwMDMzMUI4NCAvKiBEYXRlQ29uc3RydWN0b3IubHV0LmggKi8sCiAJCQkJQkNE
MjAzRTcwRTE3MThGNDAwMkM3RTgyIC8qIERhdGVQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJOTk2
QjczMDkxQkQ5RkEyQzAwMzMxQjg0IC8qIEVycm9yUHJvdG90eXBlLmx1dC5oICovLAorCQkJCTk5
OTRFNURGMUJEOUE5MTIwMEYyRDgzNSAvKiBGdW5jdGlvblByb3RvdHlwZUJ1aWx0aW5zLmNwcCAq
LywKKwkJCQk5OTk0RTVFMDFCRDlBOTEyMDBGMkQ4MzUgLyogRnVuY3Rpb25Qcm90b3R5cGVCdWls
dGlucy5oICovLAorCQkJCTk5OTRFNUUxMUJEOUE5MTIwMEYyRDgzNSAvKiBHbG9iYWxPYmplY3RC
dWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RTIxQkQ5QTkxMjAwRjJEODM1IC8qIEdsb2JhbE9i
amVjdEJ1aWx0aW5zLmggKi8sCiAJCQkJNjUxNEYyMTgxOEIzRTE2NzAwOThGRjhCIC8qIEluaXRC
eXRlY29kZXMuYXNtICovLAogCQkJCUE1MTNFNUM2MTg1Rjk0MzYwMDdFOTVBRCAvKiBJbmplY3Rl
ZFNjcmlwdFNvdXJjZS5oICovLAogCQkJCUE1RUE3MTBEMTlGNkRGODEwMDk4RjVFQyAvKiBJbnNw
ZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCAqLywKQEAgLTQ5NTksMTYgKzUwMTgs
MjEgQEAKIAkJCQlBNTMyNDM4MzE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmRE
aXNwYXRjaGVycy5jcHAgKi8sCiAJCQkJQTUzMjQzODQxODU2ODMxNzAwMkVENjkyIC8qIEluc3Bl
Y3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCAqLywKIAkJCQlFMzNCM0UyNTFCN0FCRDc1MDA0OERC
MkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oICovLAorCQkJCTk5OTRF
NUUzMUJEOUE5MTIwMEYyRDgzNSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RCdWls
dGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RTQxQkQ5QTkxMjAwRjJEODM1IC8qIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbk9iamVjdEJ1aWx0aW5zLmggKi8sCiAJCQkJQTUzMjQzODUxODU2ODMxNzAw
MkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAgKi8sCiAJCQkJQTUzMjQzODYx
ODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oICovLAorCQkJCTk5
OTRFNUU1MUJEOUE5MTIwMEYyRDgzNSAvKiBJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0
aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVFNjFCRDlBOTEyMDBGMkQ4MzUgLyogSW50ZXJuYWxQcm9t
aXNlQ29uc3RydWN0b3JCdWlsdGlucy5oICovLAogCQkJCUExODE5M0UxMUI0RTBDREIwMEZDMTAy
OSAvKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQlBMTgxOTNFMjFCNEUw
Q0RCMDBGQzEwMjkgLyogSW50bENvbGxhdG9yUHJvdG90eXBlLmx1dC5oICovLAogCQkJCUExNTg3
RDczMUI0REMxQzYwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5sdXQu
aCAqLywKIAkJCQlBMTU4N0Q3NDFCNERDMUM2MDBENjk4NDkgLyogSW50bERhdGVUaW1lRm9ybWF0
UHJvdG90eXBlLmx1dC5oICovLAogCQkJCUExMjU4NDZDMUI0NUEzNjAwMENDN0Y2QyAvKiBJbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IubHV0LmggKi8sCiAJCQkJQTEyNTg0NkQxQjQ1QTM2MDAw
Q0M3RjZDIC8qIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUubHV0LmggKi8sCi0JCQkJQTdEODAx
QTYxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmNwcCAqLywKLQkJCQlBN0Q4MDFBNzE4
ODBENkE4MDAyNkMzOUIgLyogSlNDQnVpbHRpbnMuaCAqLywKKwkJCQk5OTk0RTVFNzFCRDlBOTEy
MDBGMkQ4MzUgLyogSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1
RTgxQkQ5QTkxMjAwRjJEODM1IC8qIEl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaCAqLywKKwkJ
CQk5OTk0RTYwRjFCRDlBRUIyMDBGMkQ4MzUgLyogSlNDQnVpbHRpbnNNYWNyb3MuaCAqLywKIAkJ
CQk5OTZCNzMwQTFCRDlGQTJDMDAzMzFCODQgLyogSlNEYXRhVmlld1Byb3RvdHlwZS5sdXQuaCAq
LywKIAkJCQk5OTZCNzMwQjFCRDlGQTJDMDAzMzFCODQgLyogSlNHbG9iYWxPYmplY3QubHV0Lmgg
Ki8sCiAJCQkJRTMzRjUwODYxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlQ29u
c3RydWN0b3IubHV0LmggKi8sCkBAIC00OTgwLDE4ICs1MDQ0LDM4IEBACiAJCQkJQTdDMjI1Q0Qx
Mzk5ODQ5QzAwRkYxNjYyIC8qIEtleXdvcmRMb29rdXAuaCAqLywKIAkJCQlCQzE4QzUyRDBFMTZG
Q0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggKi8sCiAJCQkJOTk2QjczMEMxQkQ5RkEyQzAwMzMx
Qjg0IC8qIE1vZHVsZUxvYWRlck9iamVjdC5sdXQuaCAqLywKKwkJCQk5OTk0RTVFOTFCRDlBOTEy
MDBGMkQ4MzUgLyogTW9kdWxlTG9hZGVyT2JqZWN0QnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRF
NUVBMUJEOUE5MTIwMEYyRDgzNSAvKiBNb2R1bGVMb2FkZXJPYmplY3RCdWlsdGlucy5oICovLAog
CQkJCUJDMjY4MEU2MEUxNkQ1MjMwMEEwNkU5MiAvKiBOdW1iZXJDb25zdHJ1Y3Rvci5sdXQuaCAq
LywKIAkJCQk5OTZCNzMwRDFCRDlGQTJDMDAzMzFCODQgLyogTnVtYmVyUHJvdG90eXBlLmx1dC5o
ICovLAogCQkJCTk5NkI3MzBFMUJEOUZBMkMwMDMzMUI4NCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5s
dXQuaCAqLywKKwkJCQk5OTk0RTVFQjFCRDlBOTEyMDBGMkQ4MzUgLyogT2JqZWN0Q29uc3RydWN0
b3JCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RUMxQkQ5QTkxMjAwRjJEODM1IC8qIE9iamVj
dENvbnN0cnVjdG9yQnVpbHRpbnMuaCAqLywKKwkJCQk5OTk0RTVFRDFCRDlBOTEyMDBGMkQ4MzUg
LyogT3BlcmF0aW9uc1Byb21pc2VCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RUUxQkQ5QTkx
MjAwRjJEODM1IC8qIE9wZXJhdGlvbnNQcm9taXNlQnVpbHRpbnMuaCAqLywKKwkJCQk5OTk0RTVF
RjFCRDlBOTEyMDBGMkQ4MzUgLyogUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovLAor
CQkJCTk5OTRFNUYwMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlu
cy5oICovLAorCQkJCTk5OTRFNUYxMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlUHJvdG90eXBl
QnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUYyMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNl
UHJvdG90eXBlQnVpbHRpbnMuaCAqLywKIAkJCQk5OTZCNzMwRjFCRDlGQTJDMDAzMzFCODQgLyog
UmVmbGVjdE9iamVjdC5sdXQuaCAqLywKKwkJCQk5OTk0RTVGMzFCRDlBOTEyMDBGMkQ4MzUgLyog
UmVmbGVjdE9iamVjdEJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVGNDFCRDlBOTEyMDBGMkQ4
MzUgLyogUmVmbGVjdE9iamVjdEJ1aWx0aW5zLmggKi8sCiAJCQkJQkNEMjAyRDUwRTE3MDcwODAw
MkM3RTgyIC8qIFJlZ0V4cENvbnN0cnVjdG9yLmx1dC5oICovLAogCQkJCUE3MThGNjFBMTE3NTRB
MjEwMDI0NjVBNyAvKiBSZWdFeHBKaXRUYWJsZXMuaCAqLywKIAkJCQk5OTZCNzMxMDFCRDlGQTJD
MDAzMzFCODQgLyogUmVnRXhwUHJvdG90eXBlLmx1dC5oICovLAogCQkJCTk5NkI3MzExMUJEOUZB
MkMwMDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCAqLywKKwkJCQk5OTk0RTVGNTFC
RDlBOTEyMDBGMkQ4MzUgLyogU3RyaW5nQ29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8sCisJCQkJ
OTk5NEU1RjYxQkQ5QTkxMjAwRjJEODM1IC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuaCAq
LywKIAkJCQk5OTZCNzMxMjFCRDlGQTJDMDAzMzFCODQgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5
cGUubHV0LmggKi8sCisJCQkJOTk5NEU1RjcxQkQ5QTkxMjAwRjJEODM1IC8qIFN0cmluZ0l0ZXJh
dG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUY4MUJEOUE5MTIwMEYyRDgz
NSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmggKi8sCiAJCQkJOTk2QjczMTMx
QkQ5RkEyQzAwMzMxQjg0IC8qIFN5bWJvbENvbnN0cnVjdG9yLmx1dC5oICovLAogCQkJCTk5NkI3
MzE0MUJEOUZBMkMwMDMzMUI4NCAvKiBTeW1ib2xQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJNUQ1
MzcyN0QwRTFDNTVFQzAwMjFFNTQ5IC8qIFRyYWNpbmdEdHJhY2UuaCAqLywKKwkJCQk5OTk0RTVG
OTFCRDlBOTEyMDBGMkQ4MzUgLyogVHlwZWRBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICov
LAorCQkJCTk5OTRFNUZBMUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5Q29uc3RydWN0b3JC
dWlsdGlucy5oICovLAorCQkJCTk5OTRFNUZCMUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5
UHJvdG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUZDMUJEOUE5MTIwMEYyRDgzNSAv
KiBUeXBlZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gIkRl
cml2ZWQgU291cmNlcyI7CiAJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmU7
CkBAIC02MjI2LDExICs2MzEwLDEwIEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk5OURBMDA5OTFC
RDU5OTI3MDBGNDU3NUMgLyogX19pbml0X18ucHkgKi8sCiAJCQkJOTlEQTAwOUQxQkQ1OTkyNzAw
RjQ1NzVDIC8qIGJ1aWx0aW5zLnB5ICovLAotCQkJCTk5REEwMDlFMUJENTk5MjcwMEY0NTc1QyAv
KiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHkgKi8sCi0JCQkJOTlEQTAwOUYx
QkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2ltcGxlbWVudGF0
aW9uLnB5ICovLAotCQkJCTk5REEwMEEwMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5l
cmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkgKi8sCi0JCQkJOTlEQTAwQTExQkQ1OTkyNzAwRjQ1NzVD
IC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5ICovLAotCQkJ
CTk5REEwMEEyMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV93
cmFwcGVyLnB5ICovLAorCQkJCTk5RTk4NTk5MUJERDlFQ0EwMDZDREQwRSAvKiBidWlsdGluc19n
ZW5lcmF0ZV9mcmFtZXdvcmtfbWFjcm9zLnB5ICovLAorCQkJCTk5REEwMEEwMUJENTk5MjcwMEY0
NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaGVhZGVyLnB5ICovLAorCQkJCTk5REEw
MEExMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaW1wbGVtZW50
YXRpb24ucHkgKi8sCisJCQkJOTlEQTAwQTIxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dl
bmVyYXRlX29iamVjdF93cmFwcGVyLnB5ICovLAogCQkJCTk5REEwMDlBMUJENTk5MjcwMEY0NTc1
QyAvKiBidWlsdGluc19nZW5lcmF0b3IucHkgKi8sCiAJCQkJOTlEQTAwOUIxQkQ1OTkyNzAwRjQ1
NzVDIC8qIGJ1aWx0aW5zX21vZGVsLnB5ICovLAogCQkJCTk5REEwMDlDMUJENTk5MjcwMEY0NTc1
QyAvKiBidWlsdGluc190ZW1wbGF0ZXMucHkgKi8sCkBAIC02NDk4LDcgKzY1ODEsMjcgQEAKIAkJ
CQkwRjFGRTUxQzE5MjJBM0JDMDA2OTg3QzUgLyogQWJvcnRSZWFzb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTg2MDE2MUUzMEYzQTgzQzEwMEY4NDcxMCAvKiBBYnN0cmFjdE1hY3JvQXNzZW1ibGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU1RjBGNTE0RDEwNjNDMDBBQzc2NDkgLyogQWJzdHJh
Y3RQQy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MkExQkRBQ0RBQzAwODBGRjc0IC8qIEIz
UGhhc2VTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1NkUxQkRBQ0RDNzAwODBGRjc0
IC8qIEFpckFsbG9jYXRlU3RhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTcwMUJEQUNE
QzcwMDgwRkY3NCAvKiBBaXJBcmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTcyMUJEQUNE
QzcwMDgwRkY3NCAvKiBBaXJCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODU3
NDFCREFDREM3MDA4MEZGNzQgLyogQWlyQ0NhbGxTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkVDODU3NjFCREFDREM3MDA4MEZGNzQgLyogQWlyQ29kZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZFQzg1NzcxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckZyZXF1ZW50ZWRCbG9jay5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZFQzg1NzkxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckdlbmVyYXRlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODU3QTFCREFDREM3MDA4MEZGNzQgLyogQWlyR2VuZXJh
dGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTdDMUJEQUNEQzcwMDgwRkY3
NCAvKiBBaXJIYW5kbGVDYWxsZWVTYXZlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1N0Ux
QkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc2VydGlvblNldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFQzg1ODAxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRUM4NTgxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJJbnN0SW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFQzg1ODIxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckxpdmVuZXNzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkVDODU4NDFCREFDREM3MDA4MEZGNzQgLyogQWlyUGhhc2VTY29wZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1ODYxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclJlZ2lz
dGVyUHJpb3JpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTg4MUJEQUNEQzcwMDgwRkY3
NCAvKiBBaXJTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODU4QTFCREFDREM3MDA4
MEZGNzQgLyogQWlyU3BpbGxFdmVyeXRoaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODU4
QzFCREFDREM3MDA4MEZGNzQgLyogQWlyU3RhY2tTbG90LmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkVDODU4RTFCREFDREM3MDA4MEZGNzQgLyogQWlyVG1wLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkVDODU4RjFCREFDREM3MDA4MEZGNzQgLyogQWlyVG1wSW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZFQzg1OTExQkRBQ0RDNzAwODBGRjc0IC8qIEFpclZhbGlkYXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNUVBNzBFOTE5RjVCMTAxMDA5OEY1RUMgLyogQWx0ZXJuYXRlRGlzcGF0Y2hh
YmxlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBNDhEMTkxMTc3MjM2NUIwMEM2NUE1RiAv
KiBBUElDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNFNTBFMTZG
NUNEMDBCMzQ0NjAgLyogQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NTE0LDggKzY2MTcs
MTAgQEAKIAkJCQkwRkZDOTlENTE4NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlCdWZmZXJOZXV0ZXJp
bmdXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUYzNzE3QURCNUYzMDA1QUIx
NzQgLyogQXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNFNjBFMTZG
NUNEMDBCMzQ0NjAgLyogQXJyYXlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2
QjczMTcxQkRBMDY3RjAwMzMxQjg0IC8qIEFycmF5Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkI3RjM5NTE1RUQ4RTQ2MDBGMTY3QjIgLyogQXJyYXlDb252ZW50aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCREFFQzkxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRl
cmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzE4MUJEQTA2ODAwMDMz
MUI4NCAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2Mzk0NTUxNUQwNzA1NzAwNkE1OTdDIC8qIEFycmF5UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxOEMzRTcwRTE2RjVDRDAwQjM0NDYwIC8qIEFycmF5UHJvdG90eXBlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkI3RjM5NjE1RUQ4RTQ2MDBGMTY3QjIgLyogQXJyYXlTdG9yYWdlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTY1MjUsMjcgKzY2MzAsNzMgQEAKIAkJCQlBNzg0QTI2MTExRDE2
NjIyMDA1Nzc2QUMgLyogQVNUQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcwRTcx
OUY1QjEwMTAwOThGNUVDIC8qIEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVFQTcwRTgxOUY1QjEwMTAwOThGNUVDIC8qIEF1Z21lbnRhYmxlSW5z
cGVjdG9yQ29udHJvbGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg0RkYxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzQXJndW1lbnRSZWdWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFQzg1MDExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZFQzg1MDIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmFzaWNCbG9ja0lubGluZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRUM4NTAzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxv
Y2tVdGlscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1MDQxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzQmxvY2tXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1MDYxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ2hlY2tTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUwODFC
REFDREFDMDA4MEZGNzQgLyogQjNDaGVja1ZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVD
ODUwQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RUM4NTBDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbW11dGF0aXZpdHkuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRUM4NTBFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0MzJWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZFQzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUxMjFCREFDREFDMDA4MEZGNzQgLyogQjNDb25z
dERvdWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODVCMzFCREVEOTU3MDA4MEZG
NzQgLyogQjNDb25zdFB0clZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUxNDFCREFD
REFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4
NUMxMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVjdHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RUM4NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkVDODUxNzFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRUM4NTE5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUxQTFCREFDREFDMDA4MEZGNzQgLyogQjNHZW5l
cmljRnJlcXVlbnRlZEJsb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODVDMzFCRTE2N0Ew
MDA4MEZGNzQgLyogQjNIZWFwUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTFCMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4TWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUx
QzFCREFDREFDMDA4MEZGNzQgLyogQjNJbmRleFNldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZF
Qzg1QkExQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkVDODVCQjFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUxRTFCREFDREFDMDA4MEZGNzQgLyogQjNMb3dlclRv
QWlyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUyMDFCREFDREFDMDA4MEZGNzQgLyogQjNN
ZW1vcnlWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1MjIxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzT3Bjb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUyNDFCREFDREFDMDA4MEZG
NzQgLyogQjNPcmlnaW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTI2MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1BhdGNocG9pbnRTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUy
ODFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50VmFsdWUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRUM4NTJBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BoYXNlU2NvcGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRUM4NTJDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2NlZHVyZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZFQzg1MkQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1QkQxQkUxNDYyRjAwODBGRjc0IC8qIEIz
UmVkdWNlU3RyZW5ndGguaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTJGMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1N0YWNrbWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUzMTFCREFDREFD
MDA4MEZGNzQgLyogQjNTdGFja21hcFNwZWNpYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4
NTMzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrU2xvdEtpbmQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRUM4NTM1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrU2xvdFZhbHVlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkVDODUzNjFCREFDREFDMDA4MEZGNzQgLyogQjNTdWNjZXNzb3JDb2xs
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUzODFCREFDREFDMDA4MEZGNzQgLyog
QjNTd2l0Y2hDYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUzQTFCREFDREFDMDA4MEZG
NzQgLyogQjNTd2l0Y2hWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1M0MxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1M0UxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzVXBzaWxvblZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODU0
MDFCREFDREFDMDA4MEZGNzQgLyogQjNVc2VDb3VudHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RUM4NTQyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1ZhbGlkYXRlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkVDODU0NDFCREFDREFDMDA4MEZGNzQgLyogQjNWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZFQzg1NDUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVmFsdWVJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkVDODU0NzFCREFDREFDMDA4MEZGNzQgLyogQjNWYWx1ZVJlcC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTI2NzhGOEYxQTAzMTAwOTAwNkEzMDZEIC8qIEJhc2ljQmxvY2tMb2Nh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3QjgzQUMwRTZEQjhDOTAwNDc3NUE0IC8qIEJh
dGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUzNjFC
REFDREFDMDA4MEZGNzQgLyogQjNTdWNjZXNzb3JDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NjY3MzlEMjEzQkZERTcxMDAyM0Q4N0MgLyogQmlnSW50ZWdlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY2NEIyNzIxQTc4NEJBRjAwNkU0RTY2IC8qIEJpbmFyeVN3aXRjaC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZFQzg1OEUxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclRtcC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxOEMzRUMwRTE2RjVDRDAwQjM0NDYwIC8qIEJvb2xlYW5PYmplY3Qu
aCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzE5MUJEQTA2ODAwMDMzMUI4NCAvKiBCb29sZWFu
UHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMTkxQkRBMDY4MDAwMzMx
Qjg0IC8qIEJvb2xlYW5Qcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRUEwODYy
MDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdE
ODAxQTUxODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0aW5FeGVjdXRhYmxlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTc1RUU5QjIxOEFBQjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5OYW1lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTlEQTAwQTYxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zLnB5IGlu
IEhlYWRlcnMgKi8sCi0JCQkJOTlEQTAwQTcxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dl
bmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAotCQkJCTk5REEwMEE4MUJE
NTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlv
bi5weSBpbiBIZWFkZXJzICovLAotCQkJCTk5REEwMEE5MUJENTk5MzEwMEY0NTc1QyAvKiBidWls
dGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKLQkJCQk5OURB
MDBBQTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaW1wbGVt
ZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKLQkJCQk5OURBMDBBQjFCRDU5OTMxMDBGNDU3NUMg
LyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBlci5weSBpbiBIZWFkZXJzICovLAor
CQkJCTk5RTk4NTlBMUJERDlFRDUwMDZDREQwRSAvKiBidWlsdGluc19nZW5lcmF0ZV9mcmFtZXdv
cmtfbWFjcm9zLnB5IGluIEhlYWRlcnMgKi8sCisJCQkJOTlEQTAwQTkxQkQ1OTkzMTAwRjQ1NzVD
IC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKKwkJ
CQk5OURBMDBBQTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2lt
cGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCisJCQkJOTlEQTAwQUIxQkQ1OTkzMTAwRjQ1
NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF93cmFwcGVyLnB5IGluIEhlYWRlcnMgKi8s
CiAJCQkJOTlEQTAwQTMxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRvci5weSBp
biBIZWFkZXJzICovLAogCQkJCTk5REEwMEE0MUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc19t
b2RlbC5weSBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEE1MUJENTk5MzEwMEY0NTc1QyAvKiBi
dWlsdGluc190ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLywKIAkJCQk0MURFQTEzMjFCOUYzMTYz
MDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxMDFC
REFDREFDMDA4MEZGNzQgLyogQjNDb25zdDY0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlF
NzI5NDBCMTkwRjA1MTQwMDFBOTFCNSAvKiBCdW5kbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkI3RjM5NzE1RUQ4RTQ2MDBGMTY3QjIgLyogQnV0dGVyZmx5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkI3RjM5ODE1RUQ4RTQ2MDBGMTY3QjIgLyogQnV0dGVyZmx5SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCkBAIC02NTU2LDcgKzY3MDcsNiBAQAogCQkJCTBGMkREODBCMUFCM0Q4NTgwMEJC
QjhFOCAvKiBCeXRlY29kZUtpbGxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkZDQUUxMzE3QTlD
MjRFMDAzNEM3MzUgLyogQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjY2NkVDMDE4MzU2NkY5MDBEMDE3RjEgLyogQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lz
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MDYxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzQ2hlY2tTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTE0RjIxOTE4QjNFMTY3MDA5
OEZGOEIgLyogQnl0ZWNvZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg4NUUxMTE4NDlBM0JF
MDBGMUUzRkEgLyogQnl0ZWNvZGVVc2VEZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODAyM0VB
MTYxMzgzMkIwMEEwQkE0NSAvKiBCeVZhbEluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtNjU5MCwy
NCArNjc0MCwxNyBAQAogCQkJCTBGMEI4M0E3MTRCQ0Y1MDcwMDg4NUI0RiAvKiBDb2RlVHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzMjQzOTgxODU2QTQ4OTAwMkVENjkyIC8qIENvbWJpbmVk
RG9tYWlucy5qc29uIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRjMwRTE2RjVDRDAwQjM0NDYw
IC8qIENvbW1vbklkZW50aWZpZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODVCQTFCRTE0
NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTVG
MTVGMTRCN0E3M0UwMDVERTM3RCAvKiBDb21tb25TbG93UGF0aHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTY1NTNBMzMyMTdBMUYxRUUwMDhDRjZGMyAvKiBDb21tb25TbG93UGF0aHNFeGNlcHRpb25z
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4MkUzOTE0MUFCMTREMDAxNzlDOTQgLyogQ29tcGFj
dEpJVENvZGVNYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTJDMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM1Byb2NlZHVyZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdFNUEzQTgxNzk3NDMyRDAw
RTg5M0MwIC8qIENvbXBpbGF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNG
NDBFMTZGNUNEMDBCMzQ0NjAgLyogQ29tcGxldGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2
QjczMUQxQkRBMDhFRjAwMzMxQjg0IC8qIEpTR2xvYmFsT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJOTk2QjczMUYxQkRBMDhFRjAwMzMxQjg0IC8qIEpTUHJvbWlzZVByb3RvdHlwZS5s
dXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkZDNzUxMTk2MTEwQTgwMEUxRDAyRCAvKiBDb21w
bGV4R2V0U3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRCMkNFQTE3NDg5NkM3MDA3QjND
MUIgLyogQ29uY3VycmVudEpJVExvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0Y1MEUx
NkY1Q0QwMEIzNDQ2MCAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTg4MUJE
QUNEQzcwMDgwRkY3NCAvKiBBaXJTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDQ4MzZF
NzEzMkRBN0JFMDA1QkU3ODUgLyogQ29uc2VydmF0aXZlUm9vdHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1M0NFMDhBMThCQzIxQzMwMEJFREY3NiAvKiBDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkVDODUwODFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1ZhbHVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNUZEMDA3QTE4OUIwNTEwMDA2MzMyMzEgLyogQ29uc29sZU1lc3Nh
Z2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzE5MUJEQTA2ODAwMDMzMUI4NCAvKiBCb29s
ZWFuUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzQ0UwODYxOEJDMUE1NjAw
QkVERjc2IC8qIENvbnNvbGVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RkQwMDc0
MTg5QjAzOEMwMDYzMzIzMSAvKiBDb25zb2xlVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RkM5OUQxMTg0RUM4QUQwMDlDMTBBQiAvKiBDb25zdGFudE1vZGUuaCBpbiBIZWFkZXJzICovLApA
QCAtNjYyMCw3ICs2NzYzLDYgQEAKIAkJCQlDMkZDOUJEMzE2NjQ0REZCMDA4MTBEMzMgLyogQ29w
aWVkQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkVBQTNGQTE0OUE4MzVFMDBG
Q0UxMTIgLyogQ29waWVkU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyQzhEMDJEMTRBM0M2
RTAwMDU3OEU2NSAvKiBDb3BpZWRTcGFjZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
RUM4NTI0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM09yaWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY3QzExQUQxQkMzODYyQzAwQzc0Q0RCIC8qIENvcHlCYXJyaWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjVBNTJEMDE3QURENzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDMjIzOUQxODE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3IuaCBpbiBIZWFk
ZXJzICovLApAQCAtNjYzMiwxNSArNjc3NCwxNCBAQAogCQkJCTk5NTlFOTJCMUJEMTdGQTQwMDFB
QTQxMyAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKIAkJCQkyQTExMTI0NjE5MkZDRTc5MDA1
RUUxOEQgLyogQ3VzdG9tR2V0dGVyU2V0dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQyNkE0
QjE0NjBDRDZFMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZF
Qzg1MDQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmxvY2tXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQjY2REYxN0I2QjVBQjAwQTdBRTNGIC8qIERhdGFWaWV3LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0QyMDM0QTBFMTcxMzVFMDAyQzdFODIgLyogRGF0ZUNvbnN0cnVjdG9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5OTZCNzMxQTFCREEwOEQxMDAzMzFCODQgLyogRGF0ZUNvbnN0cnVj
dG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzNTlDRjMwRkREODlBRDAwMjA2MTgwIC8q
IERhdGVDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExNjYwMjBFMTk5N0I0MDA4
MDY2REQgLyogRGF0ZUluc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEExNTYzMjEwOTY2
MzY1MDA2RkEyNjAgLyogRGF0ZUluc3RhbmNlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
RDIwMzRDMEUxNzEzNUUwMDJDN0U4MiAvKiBEYXRlUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0QyMDNFODBFMTcxOEY0MDAyQzdFODIgLyogRGF0ZVByb3RvdHlwZS5sdXQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTk5NkI3MzFCMUJEQTA4RDEwMDMzMUI4NCAvKiBFcnJvclByb3RvdHlw
ZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0ZBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBE
ZWJ1Z2dlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRkIwRTE2RjVDRDAwQjM0NDYwIC8q
IERlYnVnZ2VyQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QUQyQ0I0RDE5QjkxNDAx
MDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjUz
LDcgKzY3OTQsNiBAQAogCQkJCUE3MDREOTAzMTdBMEJBQTgwMDZCQTU1NCAvKiBERkdBYnN0cmFj
dEludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzA0RDkwNDE3QTBCQUE4MDA2QkE1
NTQgLyogREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNjIwMTc3MTQzRkNEM0YwMDY4Qjc3QyAvKiBERkdBYnN0cmFjdFZhbHVlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkVDODU3MDFCREFDREM3MDA4MEZGNzQgLyogQWlyQXJnLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkQzRTQwMjFCNjE4QUFGMDBDODBFMUUgLyogREZHQWRhcHRpdmVJbmZlcnJl
ZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE4RDNEMDFC
NTVBNkUwMDAyQzVDOUYgLyogREZHQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjY2RTE2QjE0REYzRjE2MDBCN0IyRTQgLyogREZHQWRqYWNlbmN5TGlz
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjY0LDkgKzY4MDQsNyBAQAogCQkJCTBGMkREODE0MUFC
M0Q4QkUwMEJCQjhFOCAvKiBERkdBcmd1bWVudHNVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNDg1MzIyMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMDVDM0I0MTY4M0NGOTIwMEJBRjQ1QiAvKiBERkdBcnJheWlmeVNsb3dQYXRo
R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxNzFCREFDREFDMDA4MEZGNzQg
LyogQjNGcmVxdWVudGVkQmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjM5NDg1MTVFNDgx
MUIwMDZBNTk3QyAvKiBERkdBcnJheU1vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTc2
MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q5QTI5
NTE3QTBCQzc0MDBFRTI2MTggLyogREZHQXRUYWlsQWJzdHJhY3RTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY2NjZFQzcxODM1NjcyQjAwRDAxN0YxIC8qIERGR0F2YWlsYWJpbGl0eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyQjlDRTMxOUQwQkE3RDAwQjFEMUI1IC8qIERGR0F2YWlsYWJp
bGl0eU1hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC02Njc2LDcgKzY4MTQsNiBAQAogCQkJCUE3RDg5
Q0Y0MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCbG9ja0luc2VydGlvblNldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDM0NDRkMxOUFEQTQxMDAwNkFDNzJBIC8qIERGR0Jsb2NrTWFwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkMzQ0NGRDE5QURBNDEwMDA2QUM3MkEgLyogREZHQmxvY2tNYXBJbmxp
bmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUyRDFCREFDREFDMDA4MEZGNzQgLyogQjNQ
cm9jZWR1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkMzQ0NGRTE5QURBNDEwMDA2
QUM3MkEgLyogREZHQmxvY2tTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQkYxNThEMTlCN0E1
MzEwMDY5NUREMCAvKiBERkdCbG9ja1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzNDRDAwMTlBREE0MTAwMDZBQzcyQSAvKiBERkdCbG9ja1dvcmtsaXN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTY3MTYsMTAgKzY4NTMsOCBAQAogCQkJCTBGNjZFMTZDMTRERjNGMTYwMEI3QjJFNCAv
KiBERkdFZGdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q5QTI5NjE3QTBCQzc0MDBFRTI2MTgg
LyogREZHRWRnZURvbWluYXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc5ODZENTcxN0EwQkIx
RTAwQTk1REQwIC8qIERGR0VkZ2VVc2VzU3RydWN0dXJlLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkVDODU3MjFCREFDREM3MDA4MEZGNzQgLyogQWlyQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY4RjE0MzQxQURGMDkwMTAwRUQ3OTJDIC8qIERGR0Vwb2NoLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkJDMEFFODE0OTZDN0M3MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRUM4NTAzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tV
dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4QTk3NzUxNzk3MzhCODAwOURGNzQ0IC8qIERG
R0ZhaWxlZEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCRkYzQzAxNzk4Njg5NDAw
MDJGNDYyIC8qIERGR0ZpbHRyYXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEE5
Nzc3MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
Njc0OSw3ICs2ODg0LDYgQEAKIAkJCQk2MkYyQUEzODFCMEJFREUzMDA2MTBDN0EgLyogREZHTGF6
eU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDlBMjk4MTdBMEJDNzQwMEVFMjYxOCAvKiBE
RkdMSUNNUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTky
RSAvKiBERkdMaXZlQ2F0Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkVDODU4NjFCREFDREM3MDA4MEZGNzQgLyogQWlyUmVnaXN0ZXJQcmlvcml0eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRkMxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0xpdmVu
ZXNzQW5hbHlzaXNQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMEYxOUIxNkI3MjlGQTAw
NURGOTVCIC8qIERGR0xvbmdMaXZlZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzY3QjVC
NjE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9uUGhhc2UuaCBpbiBI
ZWFkZXJzICovLApAQCAtNjc1OCw3ICs2ODkyLDYgQEAKIAkJCQkwRjJCREM0NTE1MjI4MDFCMDBD
RDg5MTAgLyogREZHTWluaWZpZWRHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyRTg5MkQx
NkQwMkJBRjAwOUU0RkQyIC8qIERGR01pbmlmaWVkSUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkJEQzQ2MTUyMjgwMjAwMENEODkxMCAvKiBERkdNaW5pZmllZE5vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGRUM4NTE0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY4RjE0MzYxQURGMDkwMTAwRUQ3OTJDIC8qIERGR01vdkhpbnRSZW1v
dmFsUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjJDRDVDMUI2MUE0RjgwMDQ5NTVBOCAv
KiBERkdNdWx0aUdldEJ5T2Zmc2V0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDM0NEMDIx
OUFEQTQxMTAwNkFDNzJBIC8qIERGR05haXZlRG9taW5hdG9ycy5oIGluIEhlYWRlcnMgKi8sCkBA
IC02Nzc3LDcgKzY5MTAsNiBAQAogCQkJCTBGQzA5NzZBMTQ2OEE2RjcwMENGMjQ0MiAvKiBERkdP
U1JFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJFQzE3MTc4RTczMDA2OTBDN0YgLyog
REZHT1NSRXhpdEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkI5MjFDMTZEMDJGMTEwMDU1
QTVEQiAvKiBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkVDODUzNTFCREFDREFDMDA4MEZGNzQgLyogQjNTdGFja1Nsb3RWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDMDk3NzExNDY5M0FGNTAwQ0YyNDQyIC8qIERGR09TUkV4aXRDb21waWxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3MDI1QUExNzE0QjBGQzAwMzgyQzBFIC8qIERGR09TUkV4
aXRDb21waWxlckNvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzOTJDOEExQjQ2MTg4NDAw
ODQ0NzI4IC8qIERGR09TUkV4aXRGdXp6LmggaW4gSGVhZGVycyAqLywKQEAgLTY3OTUsOCArNjky
Nyw2IEBACiAJCQkJMEZGQzkyMTYxQjk0RkIzRTAwNzFERDY2IC8qIERGR1Byb3BlcnR5VHlwZUtl
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMTc2NjMxOTZCOEY5RTAwOTEwNTJBIC8qIERGR1B1
cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzQTFCRkExQTlFQ0I3RDAwMERFMDFBIC8q
IERGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU2RTFC
REFDREM3MDA4MEZGNzQgLyogQWlyQWxsb2NhdGVTdGFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZFQzg1MUMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzSW5kZXhTZXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2RUM5REQxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3N0E0MjQzMTdBMEJCRkQwMEE4REI4MSAvKiBERkdTYWZlVG9F
eGVjdXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTY4MjEsNyArNjk1MSw2IEBACiAJCQkJMEZEOEEz
MjgxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRDhBMzJBMTdENTFGNTcwMENBMkM0MCAvKiBERkdUb0ZUTERlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMkMxN0Q1
MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTdFMUJEQUNEQzcwMDgwRkY3NCAvKiBB
aXJJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTcyMTFFMTkzQjlDNTkwMDMx
RjZFRCAvKiBERkdUcmFuc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYzOTQzRjE1Qzc1
RjE5MDA2QTU5N0MgLyogREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZCRTBGNzcxNkMxREIxMjAwODJDNUU4IC8qIERGR1VuaWZpY2F0aW9uUGhhc2UuaCBp
biBIZWFkZXJzICovLApAQCAtNjgzMywxNiArNjk2MiwxMyBAQAogCQkJCTBGNjIwMTc0MTQzRkNE
MzMwMDY4Qjc3QyAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRERCRkI2MTY2NkVFREEwMEM1NUZFRiAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjJCREM0OTE1MjI4MDk2MDBDRDg5MTAgLyogREZHVmFyaWFi
bGVFdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MzgxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzU3dpdGNoQ2FzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkRDNEIxNTIyODA5RDAwQ0Q4
OTEwIC8qIERGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkZD
OTYwMTRFRjkwQkQwMEM3MjUzMiAvKiBERkdWaXJ0dWFsUmVnaXN0ZXJBbGxvY2F0aW9uUGhhc2Uu
aCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzE4MUJEQTA2ODAwMDMzMUI4NCAvKiBBcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGNDIxODIwMjEx
OTAwMkM5QjI2IC8qIERGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGREIyQ0U4MTc0ODMwQTIwMDdCM0MxQiAvKiBERkdXb3JrbGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFMDUwMTgxQUE5MDkxMTAwRDMzQjMzIC8qIERpcmVjdEFyZ3VtZW50cy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFMDUwMTYxQUE5MDkxMTAwRDMzQjMzIC8qIERpcmVjdEFy
Z3VtZW50c09mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3MzExNThFQkQ1NDAwNENC
OUZGIC8qIERpc2Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1QzExQkUxNjdB
MDAwODBGRjc0IC8qIEIzRWZmZWN0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwNDQ3RUUxN0Ew
QkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTgzNjM4
NjE4RDdEMEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTlFNDVBMjQxOEExQjI1OTAwMjZEODhGIC8qIEVtcHR5SW5wdXRDdXJzb3IuaCBp
biBIZWFkZXJzICovLApAQCAtNjg1Myw2ICs2OTc5LDcgQEAKIAkJCQlGRUI1OEMxNTE4N0I4QjE2
MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAy
RTk4RDBFMTgzRTM4MDAwRjkyOTcgLyogRXJyb3JJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMwMkU5MEYwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yUHJvdG90eXBlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5OTZCNzMxQjFCREEwOEQxMDAzMzFCODQgLyogRXJyb3JQcm90b3R5cGUubHV0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDc5ODBFRDFEM0FFMDBGMUY2ODEgLyogRXZhbENv
ZGVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU0OTgyMDQxODkxRDBCMDAwODFFNUI4IC8q
IEV2ZW50TG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkUxQzBGRkQxQjE5M0U5ODAwQjUzRkNB
IC8qIEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC02ODY1LDcgKzY5OTIsNiBAQAogCQkJ
CTBGNTZBMUQzMTUwMDBGMzUwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjNBQzc1NDE4OEU1RUM4MDAzMjAyOUYgLyogRXhpdGluZ0pJVFR5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQjEwNTg2MTY3NTQ4MTIwMEY4QUI2RSAvKiBFeGl0S2luZC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MDExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmFzaWNC
bG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwQjgzQUIxNEJDRjVCQjAwODg1QjRGIC8qIEV4
cHJlc3Npb25SYW5nZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QThBRjM4MTdBREI1RjMw
MDVBQjE3NCAvKiBGbG9hdDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QThBRjM5MTdB
REI1RjMwMDVBQjE3NCAvKiBGbG9hdDY0QXJyYXkuaCBpbiBIZWFkZXJzICovLApAQCAtNjg3Nyw3
ICs3MDAzLDYgQEAKIAkJCQkwRjQ4NTMyODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxl
UmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBBMTcwNTEzREIwMEJCNzIyQyAv
KiBGVExDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTIzMTcwOTYwNjkw
MEJCNzIyQyAvKiBGVExDb21tb25WYWx1ZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzIy
MUJEQTA4RUYwMDMzMUI4NCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUEwQTBDMTcwNTEzREIwMEJCNzIyQyAvKiBGVExDb21waWxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkU5NUY3QTE4QjU2OTQ3MDBCNTMxRkIgLyogRlRMRGF0YVNlY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTJBQzkyMkJDMThBMTYxODIwMDNDRTBGQiAvKiBGVExEV0FSRkRl
YnVnTGluZUluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtNjkxMiw3ICs3MDM3LDYgQEAKIAkJCQkw
RkQ4QTMxQzE3RDUxRjIyMDBDQTJDNDAgLyogRlRMT1NSRW50cnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMjM1QkREMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExPU1JFeGl0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjIzNUJERTE3MTc4RTFDMDA2OTBDN0YgLyogRlRMT1NSRXhpdENvbXBpbGF0aW9u
SW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjgxQkRBMDhFRjAwMzMxQjg0IC8qIFN5
bWJvbFByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjM1QkUwMTcxNzhFMUMw
MDY5MEM3RiAvKiBGVExPU1JFeGl0Q29tcGlsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEw
QTExMTcwNTEzREIwMEJCNzIyQyAvKiBGVExPdXRwdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NDg1MzJBMTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02OTI2LDcgKzcwNTAsNiBAQAogCQkJCTBGRUEwQTIwMTcwOEIwMDcwMEJCNzIyQyAv
KiBGVExUeXBlZFBvaW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkIxQ0M2MTg2MkM0Nzgw
MDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRCMkNDQTE3
M0RBNTIzMDA3QjNDMUIgLyogRlRMVmFsdWVGcm9tQmxvY2suaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRUM4NTc3MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJGcmVxdWVudGVkQmxvY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNUE2Mjg0MTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjAzMzJDNjE4QjUzRkE5MDA1Rjk3OUEgLyogRlRMV2VpZ2h0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjAzMzJDODE4QjU0NkVDMDA1Rjk3OUEgLyogRlRMV2Vp
Z2h0ZWRUYXJnZXQuaCBpbiBIZWFkZXJzICovLApAQCAtNjkzNCwxMCArNzA1Nyw4IEBACiAJCQkJ
MkE4MzYzOEExOEQ3RDBGRTAwMDBFQkNDIC8qIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDA0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBGdW5jdGlvbkNvbnN0
cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYwRjFBMDE2QjcyQTFBMDA1REY5NUIgLyog
RnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1M0ExQkRB
Q0RBQzAwODBGRjc0IC8qIEIzU3dpdGNoVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjMx
MEZCMTk3NEFFNjEwMDgwODU3QyAvKiBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZFNEJGRjJDMUFENDc2RTcwMDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRl
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MkYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3Rh
Y2ttYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDA1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBG
dW5jdGlvblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJEMkQzOTAxQURGMTAzRjAw
MDIwNkMxIC8qIEZ1bmN0aW9uUmFyZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBQUNFNjNE
MThDQTVBMDMwMEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApA
QCAtNjk1MywxMiArNzA3NCwxMCBAQAogCQkJCTk5NTlFOTMxMUJEMTgyNzIwMDFBQTQxMyAvKiBn
ZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUM0
NzAzQ0MwMTkyODQ0OTYwMDEzRkJFQSAvKiBnZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmlu
ZGluZ3MucHkgaW4gSGVhZGVycyAqLywKIAkJCQk5OURBMDBBRjFCRDU5OTRFMDBGNDU3NUMgLyog
Z2VuZXJhdGUtanMtYnVpbHRpbnMucHkgaW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMxQzFCREEw
OEREMDAzMzFCODQgLyogSlNEYXRhVmlld1Byb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1RUE3MEVDMTlGNUIzRUEwMDk4RjVFQyAvKiBnZW5lcmF0ZV9jcHBfYWx0ZXJuYXRlX2Jh
Y2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNUVGOUIxNDFB
MUQ0M0Y2MDA3MDJFOTAgLyogZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIu
cHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNUVGOUIxNTFBMUQ0M0ZBMDA3MDJFOTAgLyogZ2VuZXJh
dGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICov
LAogCQkJCUE1RUY5QjE2MUExRDQ0MDAwMDcwMkU5MCAvKiBnZW5lcmF0ZV9jcHBfZnJvbnRlbmRf
ZGlzcGF0Y2hlcl9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMyNTFCREEwOEVG
MDAzMzFCODQgLyogU3RyaW5nQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NUVGOUIxNzFBMUQ0NDAzMDA3MDJFOTAgLyogZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNo
ZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNUVGOUIxODFBMUQ0NDA2
MDA3MDJFOTAgLyogZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weSBpbiBIZWFk
ZXJzICovLAogCQkJCUE1RUY5QjE5MUExRDQ0MDcwMDcwMkU5MCAvKiBnZW5lcmF0ZV9jcHBfcHJv
dG9jb2xfdHlwZXNfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKQEAgLTY5NzYsNyAr
NzA5NSw2IEBACiAJCQkJQzQ3MDNDRDUxOTI4NDRDQzAwMTNGQkVBIC8qIGdlbmVyYXRvcl90ZW1w
bGF0ZXMucHkgaW4gSGVhZGVycyAqLywKIAkJCQkwRkUwNTAxOTFBQTkwOTExMDBEMzNCMzMgLyog
R2VuZXJpY0FyZ3VtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFMDUwMUExQUE5MDkxMTAw
RDMzQjMzIC8qIEdlbmVyaWNBcmd1bWVudHNJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkVDODUwQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRTA1MDFCMUFBOTA5MTEwMEQzM0IzMyAvKiBHZW5lcmljT2Zmc2V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjJCNjZFMDE3QjZCNUFCMDBBN0FFM0YgLyogR2VuZXJpY1R5cGVkQXJyYXlWaWV3
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFMTE3QjZCNUFCMDBBN0FFM0YgLyogR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC03MDAyLDcgKzcxMjAs
NiBAQAogCQkJCUMyRTUyNkJFMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZFN0JBNjEwMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZpZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNDY4MEQ1MTRCQkQyNEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJl
dHVyblZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUwQzFCREFDREFDMDA4MEZGNzQg
LyogQjNDb21tdXRhdGl2aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQwRjBFMTZGNUNE
MDBCMzQ0NjAgLyogSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYwNkRERUExOERB
NDRBQjAwQTM4M0QwIC8qIElkZW50aWZpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NUZEMDA3NjE4OUIwMzhDMDA2MzMyMzEgLyogSWRlbnRpZmllcnNGYWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKQEAgLTcwNTYsNyArNzE3Myw2IEBACiAJCQkJQTFCOUUyM0MxQjRFMEQ2NzAwQkM3RkVE
IC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTgxOTNF
MzFCNEUwQ0RCMDBGQzEwMjkgLyogSW50bENvbGxhdG9yQ29uc3RydWN0b3IubHV0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMUI5RTIzRTFCNEUwRDY3MDBCQzdGRUQgLyogSW50bENvbGxhdG9yUHJv
dG90eXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxNjFCREFDREFDMDA4MEZGNzQgLyog
QjNGcmVxdWVuY3lDbGFzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE4MTkzRTQxQjRFMENEQjAw
RkMxMDI5IC8qIEludGxDb2xsYXRvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExNTg3RDZFMUI0REMxNDEwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExNTg3RDcwMUI0REMxNDEwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3Jt
YXRDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCkBAIC03MDg3LDcgKzcyMDMsNiBAQAogCQkJ
CTBGMjRFNTREMTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25zLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNzY2RDJDMTVBOENDM0EwMDhGMzYzRSAvKiBKSVRTdHViUm91dGlu
ZVNldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1OTExQkRBQ0RDNzAwODBGRjc0IC8qIEFp
clZhbGlkYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUg
LyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM3MTJFMzE3Q0Q4NzkzMDA4Q0M5
M0MgLyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3NkY1NEEzMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtNzA5OCwxMSArNzIxMyw5IEBACiAJCQkJMEYyQjY2RTUxN0I2QjVBQjAw
QTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyQjY2RTcxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGMkI2NkU5MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVy
Vmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1QjMxQkRFRDk1NzAwODBGRjc0IC8qIEIz
Q29uc3RQdHJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUExN0I2QjVBQjAwQTdB
RTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdC
REFFQ0IxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOEIxNDE4NkQxQjYyNTI3RjAwRkIyMDY4IC8qIEpTQXJyb3dGdW5jdGlvbi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZFQzg1MTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3VibGVW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTgwRTE2RjVDRDAwQjM0NDYwIC8qIEpT
QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwRDE3RDcwRThBRDRBOTAwMENEMTdEIC8qIEpT
QmFzZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RkE5RTkyMTQyQkJCMkUwMDE3NzNC
NyAvKiBKU0JvdW5kRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtNzExMSw3ICs3MjI0LDYg
QEAKIAkJCQlCQzE4QzQxQjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxsYmFja09iamVjdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUMwRTE2RjVDRDAwQjM0NDYwIC8qIEpTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1N0NGNDU5MTlCRjY2NjIwMDRB
Q0JGMiAvKiBKU0NhbGxlZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTdEODAxQTkxODgwRDZBODAw
MjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExNjdEQTBFMTlC
Q0M5MDA4MDY2REQgLyogSlNDZWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk3NDk3MTE2ODdB
REU0MDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxREQ4
NEExOEE5NDVCRTAwMjZGM0ZBIC8qIEpTQ0lubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtNzEx
OSw4ICs3MjMxLDYgQEAKIAkJCQk4NjVBMzBGMTEzNTAwN0UxMDBDREI0OUUgLyogSlNDSlNWYWx1
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDFEMEUxNkY1Q0QwMEIzNDQ2MCAv
KiBKU0NsYXNzUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTNDRTA4ODE4QkMxQTU2MDBCRURG
NzYgLyogSlNDb25zb2xlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxRTFCREFDREFDMDA4
MEZGNzQgLyogQjNMb3dlclRvQWlyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU4RjFCREFD
REM3MDA4MEZGNzQgLyogQWlyVG1wSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFM0M2
MTMxNjdCQUJENzAwNkQ3NjBBIC8qIEpTQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZF
M0M2MTcxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTQ29udGV4dEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNThDMDI0MjE4RTRBNDFBMDAwMzJCQzUgLyogSlNDb250ZXh0UHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC03MTMxLDMwICs3MjQxLDI5IEBACiAJCQkJQTcyMDI4QjgxNzk3NjAx
RTAwOTgwMjhDIC8qIEpTQ1Rlc3RSdW5uZXJVdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QjY2RUMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRGF0YVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMkI2NkVFMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5OTZCNzMxQzFCREEwOEREMDAzMzFCODQgLyogSlNEYXRhVmlld1Byb3Rv
dHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3ODgwMTQxMTQ3MUFEOTIwMDQxQjAxNiAv
KiBKU0RhdGVNYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkE3RjY4ODE2MDQzMkQ0MDBGNzZC
OTggLyogSlNEZXN0cnVjdGlibGVPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMzg0RUU2
MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTM4
NEVFODFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxOEM0MkQwRTE2RjVDRDAwQjM0NDYwIC8qIEpTRW52aXJvbm1lbnRSZWNvcmQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTIwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM01lbW9y
eVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkUzQzYxNDE2N0JBQkQ3MDA2RDc2MEEgLyog
SlNFeHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QjRBQ0FGMTQ4NEM5Q0UwMEIzOEEzNiAv
KiBKU0V4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUYxN0I2QjVBQjAw
QTdBRTNGIC8qIEpTRmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGMDE3
QjZCNUFCMDBBN0FFM0YgLyogSlNGbG9hdDY0QXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5
NkI3MzFFMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VDb25zdHJ1Y3Rvci5sdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDFGMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0Z1bmN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNzIwMjhCQTE3OTc2MDNEMDA5ODAyOEMgLyogSlNGdW5jdGlv
bklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkYxMTdCNkI1QUIwMEE3QUUzRiAv
KiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjIx
N0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGMkI2NkYzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZF
Qzg1NDUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVmFsdWVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjJCNjZGNDE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGNTE3QjZCNUFCMDBBN0FFM0YgLyog
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUz
OTE3RTdCMUI3OTA2RkEwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZUZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjYxN0I2QjVBQjAwQTdBRTNG
IC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlSW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzk3RTA3QUExQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmly
b25tZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxQjFCREFDREFDMDA4MEZGNzQgLyog
QjNJbmRleE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjEwRTE2RjVDRDAwQjM0NDYw
IC8qIEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxRDFCREEwOEVG
MDAzMzFCODQgLyogSlNHbG9iYWxPYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZC
NzMxRDFCREEwOEVGMDAzMzFCODQgLyogSlNHbG9iYWxPYmplY3QubHV0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNUZEMDA4NjE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xl
QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QzNBMUE2MThDMDQ5MDIwMEM5NTkzQSAvKiBK
U0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1OTQ1NTkz
MTgyNDc0NDcwMENDMzg0MyAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBpbiBIZWFkZXJz
ICovLApAQCAtNzE4NCw3ICs3MjkzLDYgQEAKIAkJCQlBNzAwODc0MjE3Q0JFOEVCMDBDM0U2NDMg
LyogSlNNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjk2MTgyRDk5MTQwMDUyMkMyMiAv
KiBKU01hcEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU5RTkyRDFCRDE3RkE0MDAx
QUE0MTMgLyoganNtaW4ucHkgaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU0MjFCREFDREFDMDA4
MEZGNzQgLyogQjNWYWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNEMjM5QzkxQjgyOUMx
QzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUz
MThDQkMxMUI4QUVGNTEwMEEyOTI5RCAvKiBKU01vZHVsZU5hbWVzcGFjZU9iamVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTM5REE0QTcxQjdFOEI3QzAwODRGMzNBIC8qIEpTTW9kdWxlUmVjb3Jk
LmggaW4gSGVhZGVycyAqLywKQEAgLTcxOTcsOCArNzMwNSwxMSBAQAogCQkJCTk1MzRBQUZCMEU1
QjdBOTYwMEI4QTQ1QiAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0MxODRFMUIxN0JFREJEMzAwN0NCNjNBIC8qIEpTUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0MxODRFMjMxN0JFRTI0MDAwN0NCNjNBIC8qIEpTUHJvbWlzZUNvbnN0cnVjdG9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5OTZCNzMxRTFCREEwOEVGMDAzMzFCODQgLyogSlNQcm9taXNlQ29u
c3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzAwOENEQjE4NzEyNEJCMDA5NTVD
MjQgLyogSlNQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMTg0RTFGMTdC
RUUyMkUwMDdDQjYzQSAvKiBKU1Byb21pc2VQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTk5NkI3MzFGMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VQcm90b3R5cGUubHV0LmggaW4g
SGVhZGVycyAqLywKKwkJCQk5OTZCNzMxRjFCREEwOEVGMDAzMzFCODQgLyogSlNQcm9taXNlUHJv
dG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkEwNUFCRDYxOTYxREYyNDAwMzQxNzUw
IC8qIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNFRjg4
NzUxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2MjU1M0QyMTYxMzZFMUEwMDlGMTdEMCAvKiBKU1Byb3h5LmggaW4gSGVhZGVy
cyAqLywKQEAgLTcyMTQsMTMgKzczMjUsMTEgQEAKIAkJCQlBN0MxRUFGMDE3OTg3QUI2MDAyOTlE
QjIgLyogSlNTdGFja0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI3MEUxNkY1
Q0QwMEIzNDQ2MCAvKiBKU1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFODU1MzkxMTFC
OTk2ODAwMUFGNTFFIC8qIEpTU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZF
Qzg1M0UxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVXBzaWxvblZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MEVDMEVDMzFBQTBEN0RBMDBCNkFBRkEgLyogSlNTdHJpbmdJdGVyYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyODBFMTZGNUNEMDBCMzQ0NjAgLyogSlNTdHJp
bmdSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI5MEUxNkY1Q0QwMEIzNDQ2MCAvKiBK
U1N0cmluZ1JlZkNGLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZB
M0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMyNzFC
REEwOEVGMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjkxOUQwRDE1N0VFMEEyMDA0QTRFN0QgLyogSlNTeW1ib2xUYWJsZU9iamVjdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNzBFQ0E2MDYxQUZEQkVBMjAwNDQ5NzM5IC8qIEpTVGVtcGxhdGVS
ZWdpc3RyeUtleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MkEwRTE2RjVDRDAwQjM0NDYw
IC8qIEpTVHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03MjMxLDcgKzczNDAsNiBAQAogCQkJCURF
QTdFMjQ1MUJCQzY3N0YwMEQ3ODQ0MCAvKiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NTA3RDI5RTBFODcxRTVFMDBEN0Q4OTYgLyogSlNUeXBlSW5mby5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MDIxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDE2
QXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzFBMUJEQTA4RDEwMDMzMUI4NCAvKiBE
YXRlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjcwMzE3QjZCNUFC
MDBBN0FFM0YgLyogSlNVaW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MDAx
N0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QjY3MDExN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDhDbGFtcGVkQXJyYXkuaCBpbiBIZWFkZXJz
ICovLApAQCAtNzIzOSwxOSArNzM0NywxNiBAQAogCQkJCTg2RTNDNjFCMTY3QkFCRUUwMDZENzYw
QSAvKiBKU1ZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDJDMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBKU1ZhbHVlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkUzQzYxNTE2
N0JBQkQ3MDA2RDc2MEEgLyogSlNWaXJ0dWFsTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
OTk2QjczMjExQkRBMDhFRjAwMzMxQjg0IC8qIE51bWJlclByb3RvdHlwZS5sdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg2RTNDNjFEMTY3QkFCRUUwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5l
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdCOThEMTM3MUI2MENENjIwMDIzQjFBNCAv
KiBKU1dBU01Nb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Q0EzQUU4MTdEQTQxQUUwMDY1
MzhBRiAvKiBKU1dlYWtNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NDgyRTkzMTE2QTdDQUQw
MDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTc0ODJCOTMxMTY3MTE0NzAwM0IwNzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTcwOUZCODY4MUFFMzM1QzYwMDM5RDA2OSAvKiBKU1dlYWtT
ZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NUJCMUJFMTQ2MkYwMDgwRkY3NCAvKiBCM0lu
c2VydGlvblNldElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NDI1NjYyMTVFREU5OEQw
MDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFM0M2MTkxNjdC
QUJFRTAwNkQ3NjBBIC8qIEpTV3JhcHBlck1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0
MkUwRTE2RjVDRDAwQjM0NDYwIC8qIEpTV3JhcHBlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNGRDhDOTMwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJOTk2QjczMjAxQkRBMDhFRjAwMzMxQjg0IC8qIE1vZHVsZUxvYWRlck9iamVjdC5sdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3MkZGRDY0MTM5OTg1QTgwMEU1MzY1QSAvKiBLZXl3b3Jk
TG9va3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDcyQTBFRDFDRTY5MDBGMUY2ODEgLyog
TGFiZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2MDA5N0E2MEVCQUJCNTgwMDdBNzI5NyAvKiBM
YWJlbFNjb3BlLmggaW4gSGVhZGVycyAqLywKQEAgLTcyNzMsMTEgKzczNzgsOSBAQAogCQkJCTBG
NDY4MEEzMTRCQTdGOEQwMEJGRTI3MiAvKiBMTEludEV4Y2VwdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNDY4MENCMTRCQkIxNzIwMEJGRTI3MiAvKiBMTEludE9mZmxpbmVBc21Db25maWcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZFRDI4N0IyMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9w
Y29kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MTkxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
R2VuZXJhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDY4MEE1MTRCQTdGOEQwMEJGRTI3MiAv
KiBMTEludFNsb3dQYXRocy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwQjgzOUQxNEJDRjQ2NjAw
ODg1QjRGIC8qIExMSW50VGh1bmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNFRkFDRTE4MDVF
NzU1MDA0NzJDRTQgLyogTExWTUFQSS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1OEMxQkRB
Q0RDNzAwODBGRjc0IC8qIEFpclN0YWNrU2xvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRUZB
Q0YxODA1RTc1NTAwNDcyQ0U0IC8qIExMVk1BUElGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3RTVBQjM4MTc5OUU0QjIwMEQyODMzRCAvKiBMTFZNRGlzYXNzZW1ibGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkNFRkFEMzE4MDVFRENDMDA0NzJDRTQgLyogTExWTUhlYWRlcnMuaCBp
biBIZWFkZXJzICovLApAQCAtNzI5MCwxNCArNzM5MywxMiBAQAogCQkJCTg2RDNCMkM2MTAxNTZC
REUwMDI4NjVFNyAvKiBNYWNyb0Fzc2VtYmxlckFSTS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFB
MDA5QzAxODMxQTIyRDAwQ0Y4NzExIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2QUREMTQ2MEZEREVBOTgwMDA2RUVDMiAvKiBNYWNyb0Fzc2VtYmxlckFSTXY3
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUzQzFCREFDREFDMDA4MEZGNzQgLyogQjNUeXBl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjNCMjNFMDBGQzYxMTg5MDA3MDNBQTQgLyogTWFjcm9B
c3NlbWJsZXJDb2RlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkM1NjhFMTExQTIxM0VFMDAw
N0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJNSVBTLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTY4QzYz
NzFCOTBERTA0MDA0MkJDQjMgLyogTWFjcm9Bc3NlbWJsZXJQcmludGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NkFFNjRBOTEzNUU1RTFDMDA5NjMwMTIgLyogTWFjcm9Bc3NlbWJsZXJTSDQuaCBp
biBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU0MEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2Vt
Ymxlclg4Ni5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYwMTYxRTUwRjNBODNDMTAwRjg0NzEwIC8q
IE1hY3JvQXNzZW1ibGVyWDg2XzY0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU4QTFCREFD
REM3MDA4MEZGNzQgLyogQWlyU3BpbGxFdmVyeXRoaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NjAxNjFFNjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3MDA4NzNBMTdDQkU4NTMwMEMzRTY0MyAvKiBNYXBDb25zdHJ1Y3Rv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4NTA3RDcxN0NCQzZGRDAwMTFGNkU3IC8qIE1hcERh
dGEuaCBpbiBIZWFkZXJzICovLApAQCAtNzMxOSwxOSArNzQyMCwxOCBAQAogCQkJCUM0NzAzQ0Q3
MTkyODQ0Q0MwMDEzRkJFQSAvKiBtb2RlbHMucHkgaW4gSGVhZGVycyAqLywKIAkJCQlFMzc5NEU3
NjFCNzdFQjk3MDA1NTQzQUUgLyogTW9kdWxlQW5hbHl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUzNTVGMzUzMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVMb2FkZXJPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTk5NkI3MzI0MUJEQTA4RUYwMDMzMUI4NCAvKiBSZWdFeHBQcm90b3R5cGUu
bHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMyMDFCREEwOEVGMDAzMzFCODQgLyogTW9k
dWxlTG9hZGVyT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMkU5MTEwRTE4MzlE
QjAwMEY5Mjk3IC8qIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMDJFOTEzMEUxODM5REIwMDBGOTI5NyAvKiBOYXRpdmVFcnJvclByb3RvdHlwZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTMzRThEMjExQjkwMTNERTAwMzQ2QjUyIC8qIE5hdGl2ZVN0ZEZ1bmN0
aW9uQ2VsbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MjgxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzUGF0Y2hwb2ludFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZCOTIyMDE2RDAzM0I3
MDA1NUE1REIgLyogTm9kZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0
M0YwRTE2RjVDRDAwQjM0NDYwIC8qIE5vZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUU0NUEy
ODE4QTFCMjU5MDAyNkQ4OEYgLyogTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQ0MTBFMTZGNUNEMDBCMzQ0NjAgLyogTnVtYmVyQ29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMThDNDQyMEUxNkY1Q0QwMEIzNDQ2MCAvKiBOdW1iZXJDb25z
dHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDQzMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBOdW1iZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NUMzMUJFMTY3QTAw
MDgwRkY3NCAvKiBCM0hlYXBSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NDQwRTE2
RjVDRDAwQjM0NDYwIC8qIE51bWJlclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2
QjczMjExQkRBMDhFRjAwMzMxQjg0IC8qIE51bWJlclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0MkQzOTM5MTAzRTQ1NjAwMDdEQ0I1MiAvKiBOdW1lcmljU3RyaW5ncy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMEMxOUY2REU4MjAwOThGNUVDIC8qIG9iamNfZ2VuZXJh
dG9yLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQzRGNEI2RjYxQTA1Qzk4NDAwNUNBQjc2IC8qIG9i
amNfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovLApAQCAtNzMzOSwzOCArNzQz
OSwzMiBAQAogCQkJCTg2RjNFRUJGMTY4Q0RFOTMwMDc3QjkyQSAvKiBPYmpjUnVudGltZUV4dHJh
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDQTk1OEQxNkFCNTBGQTAwOTM4QTA2IC8qIE9iamVj
dEFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ0NTBFMTZGNUNE
MDBCMzQ0NjAgLyogT2JqZWN0Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3
MzIyMUJEQTA4RUYwMDMzMUI4NCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRDNFNDBBMUI2MThCNjYwMEM4MEUxRSAvKiBPYmplY3RQcm9wZXJ0eUNvbmRp
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0MEMxQjYxOEI2NjAwQzgwRTFFIC8qIE9i
amVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ0NjBF
MTZGNUNEMDBCMzQ0NjAgLyogT2JqZWN0UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MTI0QThGNzBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUFEREIxRjYzMThENzdEQkUwMDlCNThBOCAvKiBPcGFxdWVSb290U2V0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5NjlBMDc5QjBFRDFEM0FFMDBGMUY2ODEgLyogT3Bjb2RlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkVDODU3QzFCREFDREM3MDA4MEZGNzQgLyogQWlySGFuZGxlQ2FsbGVl
U2F2ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzJDMTUxRkRFOTEwMENEODkxMCAvKiBP
cGVyYW5kcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwNDQ3RUExN0EwQkQ0NjAwRjU4OThFIC8q
IE9wZXJhbmRzSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NDgwRTE2RjVDRDAw
QjM0NDYwIC8qIE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTIyOEVEMTQzNkFC
MjcwMDE5NkM0OCAvKiBPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ0QjBFMTZG
NUNEMDBCMzQ0NjAgLyogUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzA1MkMzNTBGQjc5
MjE5MDA0OEZEQzMgLyogUGFyc2VyQXJlbmEuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzIz
MUJEQTA4RUYwMDMzMUI4NCAvKiBSZWZsZWN0T2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDQ0FFNDUxNkQwQ0Y3NDAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzdGMTgyNTE2NDE5MkM3MDA2NDBBNDcgLyogUGFyc2VyTW9kZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTY1MzAzRDY0MTQ0N0I5RTEwMEQzRjkwNCAvKiBQYXJzZXJUb2tlbnMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRjlDRTc0MUI5Q0Q2RDAwMDRFRENBNiAvKiBQb2x5bW9ycGhp
Y0FjY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFODM0MTgxQTZFRjk3QjAwRDA0ODQ3IC8q
IFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk4MjA2
MTE2QkZFMzgzMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkVDODU3QTFCREFDREM3MDA4MEZGNzQgLyogQWlyR2VuZXJhdGlvbkNvbnRleHQuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRUM4NUJEMUJFMTQ2MkYwMDgwRkY3NCAvKiBCM1JlZHVjZVN0
cmVuZ3RoLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Njg5MTZCMDE1NUYyODYzMDBDQjJCOUEgLyog
UHJpdmF0ZU5hbWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTIyMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM09wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NTAwRTE2RjVDRDAwQjM0
NDYwIC8qIFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk1Q0Q0NTc3MEUxQzRGREQwMDg1
MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1MTBF
MTZGNUNEMDBCMzQ0NjAgLyogUHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcy
OUE1MTY2QUQzNTEwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkVDODU0NzFCREFDREFDMDA4MEZGNzQgLyogQjNWYWx1ZVJlcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZGNzI5QjkxNjZBRDM2MDAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjEzOTEyQTE2NzcxQzM2MDA5Q0NCMDcgLyogUHJvZmlsZXJC
eXRlY29kZVNlcXVlbmNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxQTFCREFDREFDMDA4
MEZGNzQgLyogQjNHZW5lcmljRnJlcXVlbnRlZEJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkY3MjlCQTE2NkFEMzYwMDAwRjVCQTMgLyogUHJvZmlsZXJDb21waWxhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZGNzI5QkIxNjZBRDM2MDAwMEY1QkEzIC8qIFByb2ZpbGVyQ29tcGlsYXRp
b25LaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY3MjlCQzE2NkFEMzYwMDAwRjVCQTMgLyog
UHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTczOTIsMjAgKzc0
ODYsMTcgQEAKIAkJCQkwRkI3RjM5QzE1RUQ4RTQ2MDBGMTY3QjIgLyogUHJvcGVydHlTdG9yYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1NjBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvdGVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3NEMzM0IxNkFBMkQ5NTAwNjJGMDFEIC8qIFByb3Rv
dHlwZU1hcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1ODQxQkRBQ0RDNzAwODBGRjc0IC8q
IEFpclBoYXNlU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTc4MEEyMThGRTFFOTgwMDFF
NzJEOSAvKiBQdXJlTmFOLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE1Q0QyMzFCQTVGOTg2MDAz
MUZGRDMgLyogUHV0QnlJZEZsYWdzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjkzMzJBNDE0Q0E3
REQ5MDA4NUYzQzYgLyogUHV0QnlJZFN0YXR1cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1
ODAxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTNC
NEFBMThCOTJDNEQwMDE3OEEzRiAvKiBQdXRCeUlkVmFyaWFudC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZFQzg1NzkxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckdlbmVyYXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjBDRDRDMjE1RjFBNjA3MDAzMkYxQzAgLyogUHV0RGlyZWN0SW5kZXhNb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjlGQzhDNTE0RTFCNjA0MDBENTJBRTAgLyogUHV0S2luZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3Qjg0NjMwRTZERTZCMTAwNDc3NUE0IC8qIFB1dFByb3Bl
cnR5U2xvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNjBBQzIxNjc0MEY4MzAwMDI5Nzc5IC8q
IFJlZHVjZVdoaXRlc3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMzYzN0E2MUI2MzIyMDIw
MEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMyMzFC
REEwOEVGMDAzMzFCODQgLyogUmVmbGVjdE9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQTdBOEVDMThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5
NkI3MzE3MUJEQTA2N0YwMDMzMUI4NCAvKiBBcnJheUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0NUEwRTE2RjVDRDAwQjM0NDYwIC8qIFJlZ0V4cC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTE3MTJCM0YxMUM3QjIyODAwN0E1MzE1IC8qIFJlZ0V4cENhY2hlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0QyMDJDMjBFMTcwNkE3MDAyQzdFODIgLyogUmVnRXhwQ29uc3Ry
dWN0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNzQxMywxMyArNzUwNCwxMyBAQAogCQkJCUExNzEy
QjQxMTFDN0IyMzUwMDdBNTMxNSAvKiBSZWdFeHBLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MThDNDVCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdFeHBPYmplY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRDIwMkM0MEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk5NkI3MzI0MUJEQTA4RUYwMDMzMUI4NCAvKiBSZWdFeHBQcm90b3R5cGUu
bHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1RDBFMTZGNUNEMDBCMzQ0NjAgLyogUmVn
aXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzJCMEVEMUNFNjkwMEYxRjY4MSAvKiBS
ZWdpc3RlcklELmggaW4gSGVhZGVycyAqLywKIAkJCQk2MjNBMzdFQzFCODdBN0MwMDA3NTQyMDkg
LyogUmVnaXN0ZXJNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzMxNDEyMTgxNDU1OTEwMDAz
MzIzMiAvKiBSZWdpc3RlclNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU3RDIzRUUxODkxQjU1
NDAwMzFDN0ZBIC8qIFJlZ3VsYXJFeHByZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3
RjM5RDE1RUQ4RTQ2MDBGMTY3QjIgLyogUmVqZWN0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVD
ODUyNjFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50U3BlY2lhbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVCQTE1RTgxODIzNDBCMzAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTVCQTE1RUExODIzNDBCNDAwQTgyRTY5IC8qIFJlbW90ZUluc3Bl
Y3RvckNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCQTE1RjAxODIzNDVBRjAwQTgy
RTY5IC8qIFJlbW90ZUluc3BlY3RvckRlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICovLApAQCAtNzQy
Nyw3ICs3NTE4LDYgQEAKIAkJCQlBNUJBMTVFRDE4MjM0MEI0MDBBODJFNjkgLyogUmVtb3RlSW5z
cGVjdG9yWFBDQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NTExN0VFMjc0
OTAwQUJCMjE3IC8qIFJlcGF0Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCTg2OUVCQ0I3MEU4QzZE
NEEwMDg3MjJDQyAvKiBSZXN1bHRUeXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU0NDFC
REFDREFDMDA4MEZGNzQgLyogQjNWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBCMEE5RDEx
QTlCNjY0NjAwMDEzMDZBIC8qIFJ1bnRpbWVGbGFncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJD
MDYxMUYxQUE1MUUxQzAwQjRBREJBIC8qIFJ1bnRpbWVUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDMjJCMzFCOTE0MDU3N0Q3MDBEQjQ3NUEgLyogU2FtcGxpbmdDb3VudGVyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTc0NTcsNyArNzU0Nyw2IEBACiAJCQkJQTcwOUYyRjAxN0EwQUMwNDAwNTEyRTk4
IC8qIFNsb3dQYXRoQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDQwMDQwRTZBNzQ5NDAw
Nzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NjQwRTE2
RjVDRDAwQjM0NDYwIC8qIFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTBF
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0MzJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEM0NjMwRTE2RjVDRDAwQjM0NDYwIC8qIFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNDlEQzE2QzEyRUYyOTRFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5REMxNkQxMkVGMjk1MzAwMTg0QTFGIC8qIFNvdXJjZVBy
b3ZpZGVyQ2FjaGVJdGVtLmggaW4gSGVhZGVycyAqLywKQEAgLTc0NzIsMTIgKzc1NjEsMTMgQEAK
IAkJCQkxNENBOTU4QjE2QUI1MERFMDA5MzhBMDYgLyogU3RhdGljUHJvcGVydHlBbmFseXplci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTczMEI2MTIxMjUwMDY4RjAwOUQyNUIxIC8qIFN0cmljdEV2
YWxBY3RpdmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ2NjBFMTZGNUNEMDBCMzQ0
NjAgLyogU3RyaW5nQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzI1MUJE
QTA4RUYwMDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcwRUMwRUM3MUFBMEQ3REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmluZ0l0
ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NjgwRTE2RjVD
RDAwQjM0NDYwIC8qIFN0cmluZ09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NkEw
RTE2RjVDRDAwQjM0NDYwIC8qIFN0cmluZ1Byb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTQyRTMxM0IxMzRGRjBBNjAwQUZBREI1IC8qIFN0cm9uZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTQ1NzIyODYxNDM3RTE0MDAwNUZERTI2IC8qIFN0cm9uZ0lubGluZXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGRUM4NTgyMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJMaXZlbmVzcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNERTNBQjgwRTZDODJGNTAwMTQ1M0E3IC8qIFN0cnVjdHVyZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0U0RUU3MDkwRUJCNzk2MzAwNTkzNEFBIC8qIFN0cnVjdHVyZUNoYWlu
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUFBQTMxMjE4QkQ0OUQxMDAzOTRDQzggLyogU3RydWN0
dXJlSURCbG9iLmggaW4gSGVhZGVycyAqLywKQEAgLTc0OTEsOCArNzU4MSwxMCBAQAogCQkJCUJD
OTA0MTQ4MEVCOTI1MDkwMEZFMjZGQSAvKiBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwNUI0MUFDMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2wuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwNUI0MUFFMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xDb25zdHJ1
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMjcxQkRBMDhFRjAwMzMxQjg0IC8qIFN5
bWJvbENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA1QjQxQjAxQTZFNTAx
RTAwNzE2NzU3IC8qIFN5bWJvbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA1QjQxQjIx
QTZFNTAxRTAwNzE2NzU3IC8qIFN5bWJvbFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTk2QjczMjgxQkRBMDhFRjAwMzMxQjg0IC8qIFN5bWJvbFByb3RvdHlwZS5sdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMThDNDZCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBTeW1ib2xUYWJsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTc4NEEyNjQxMUQxNjYyMjAwNTc3NkFDIC8qIFN5bnRheENoZWNr
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwRUNBNjA4MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1w
bGF0ZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTc1MTQsMTIgKzc2MDYsMTAgQEAKIAkJ
CQkwRjJENERFQTE5ODMyREFDMDA3RDRCMTkgLyogVHlwZUxvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MkIzMTEwMTE5NzVCNDY3MDA4MDg1N0MgLyogVHlwZUxvY2F0aW9uQ2FjaGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRkI2QzM5MUFGNDhEREMwMERCMUJGNyAvKiBUeXBlb2ZUeXBl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU0MDFCREFDREFDMDA4MEZGNzQgLyogQjNVc2VD
b3VudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQzk1MkI3MTlBMjg5ODUwMDY5QjM4NiAvKiBU
eXBlUHJvZmlsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkQ0REVDMTk4MzJEQzQwMDdENEIx
OSAvKiBUeXBlUHJvZmlsZXJMb2cuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkQ0REYwMTk4MzJE
RDYwMDdENEIxOSAvKiBUeXBlU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY0Mjc0QjE1OEVC
RTkxMDA0Q0I5RkYgLyogdWRpczg2LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODRGRjFCREFD
REFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJlZ1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkY0Mjc0MTE1OEVCRThEMDA0Q0I5RkYgLyogdWRpczg2X2RlY29kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZGNDI3NDIxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9leHRlcm4uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRjQyNzQ0MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODZfaW5wdXQuaCBp
biBIZWFkZXJzICovLApAQCAtNzUzMyw3ICs3NjIzLDYgQEAKIAkJCQlBN0E4QUY0MDE3QURCNUYz
MDA1QUIxNzQgLyogVWludDhDbGFtcGVkQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUYw
OENGMTQ2Qzc2MzMwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBN0I2MDE4MjE2MzlGRDJBMDAzNzJCQTMgLyogVW5saW5rZWRDb2RlQmxvY2su
aCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzI2MUJEQTA4RUYwMDMzMUI4NCAvKiBTdHJpbmdJ
dGVyYXRvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTQyRTUxMUI3OTZF
Q0UwMEY0QkY0QiAvKiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyRTg5MkMxNkQwMjhBRDAwOUU0RkQyIC8qIFVudXNlZFBvaW50ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk5REEwMEIxMUJENTk5NEUwMEY0NTc1QyAvKiBVcGRhdGVDb250ZW50cy5w
eSBpbiBIZWFkZXJzICovLApAQCAtNzU1NywxMCArNzY0Niw4IEBACiAJCQkJRkVEOTRGMkYxNzFF
M0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjkxOUQyNjE1
ODUzQ0UzMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyRTMx
M0MxMzRGRjBBNjAwQUZBREI1IC8qIFdlYWsuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTAy
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNEU4NEY5RjE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha0Jsb2NrLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNEJGQ0U2OTEwQ0RCMUZDMDAzNjRDQ0UgLyogV2Vha0dDTWFwLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkVDODUzMzFCREFDREFDMDA4MEZGNzQgLyogQjNTdGFja1Nsb3RLaW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBRDg2QTkzRTFBQTREODhEMDAyRkU3N0YgLyogV2Vha0dDTWFw
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRGNzI1NjYxNEVFMjY1RTAwQjE2NTJCIC8q
IFdlYWtIYW5kbGVPd25lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRFODRGQTIxNEVFMUFDQzAw
RDZENUQ0IC8qIFdlYWtJbXBsLmggaW4gSGVhZGVycyAqLywKQEAgLTc1ODIsMTIgKzc2NjksOSBA
QAogCQkJCTk5NTlFOTJFMUJEMTdGQTQwMDFBQTQxMyAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywK
IAkJCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODY3MDRCODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFQzg1MzExQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3RhY2ttYXBTcGVjaWFs
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU3NDFCREFDREM3MDA4MEZGNzQgLyogQWlyQ0Nh
bGxTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NzEyREJBMzM3MDBBOUZFN0Ig
LyogWWFyckpJVC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3MDRCODgxMkRCQTMzNzAwQTlGRTdC
IC8qIFlhcnJQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0QjhBMTJEQkEzMzcwMEE5
RkU3QiAvKiBZYXJyUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1ODExQkRBQ0RD
NzAwODBGRjc0IC8qIEFpckluc3RJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI0
MzEyREI4QTgxMDBBOUZFN0IgLyogWWFyclN5bnRheENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtODA5
Miw5ICs4MTc2LDI1IEBACiAJCQlmaWxlcyA9ICgKIAkJCQkwRkZBNTQ5NzE2Qjg4MzUwMDBCM0E5
ODIgLyogQTY0RE9wY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU1RjBGNDE0RDEwNjM5
MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVDODU2RDFC
REFDREM3MDA4MEZGNzQgLyogQWlyQWxsb2NhdGVTdGFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkVDODU2RjFCREFDREM3MDA4MEZGNzQgLyogQWlyQXJnLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGRUM4NTcxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJCYXNpY0Jsb2NrLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTBGRUM4NTczMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDQ2FsbFNwZWNpYWwu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1NzUxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckNv
ZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1NzgxQkRBQ0RDNzAwODBGRjc0IC8qIEFp
ckdlbmVyYXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTkzMUJEQjFFMTAwMDgwRkY3
NCAvKiBBaXJHZW5lcmF0ZWQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1N0IxQkRBQ0RD
NzAwODBGRjc0IC8qIEFpckhhbmRsZUNhbGxlZVNhdmVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRUM4NTdEMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZFQzg1N0YxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc3QuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMEZFQzg1ODMxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclBoYXNlU2NvcGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1ODUxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclJl
Z2lzdGVyUHJpb3JpdHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1ODcxQkRBQ0RDNzAw
ODBGRjc0IC8qIEFpclNwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1ODkxQkRB
Q0RDNzAwODBGRjc0IC8qIEFpclNwaWxsRXZlcnl0aGluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkVDODU4QjFCREFDREM3MDA4MEZGNzQgLyogQWlyU3RhY2tTbG90LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGRUM4NThEMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJUbXAuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZFQzg1OTAxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclZhbGlkYXRlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTE0N0YzOUJEMTA3RUMzNzYwMDQyN0E0OCAvKiBBcmdMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzQzQkFBMTZCODgyNDkwMDlGOTI3NyAvKiBBUk02NERp
c2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODU3MTFCREFDREM3MDA4MEZG
NzQgLyogQWlyQmFzaWNCbG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkQzQjJDMzEwMTU2
QkRFMDAyODY1RTcgLyogQVJNQXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1QzAy
ODUwMTcxNzk1RTIwMDM1MUUzNSAvKiBBUk12N0Rpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NUMwMjg1QzE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtODEwMiwxMyArODIwMiw1MCBAQAogCQkJCUE3QThBRjM0MTdBREI1RjMw
MDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZDOTlENDE4
NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3QThBRjM2MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlclZp
ZXcuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1M0QxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
VXBzaWxvblZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUJGMTA3RUMzNzYwMDQy
N0E0OCAvKiBBcnJheUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5ODdERTM0
MUJFM0ZEODIwMEQyMDc3MyAvKiBBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTdCREFFQzgxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5SXRlcmF0b3JQcm90
b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MjUxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzUGF0Y2hwb2ludFNwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk4N0RFMzUxQkUz
RkQ4MjAwRDIwNzczIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjYzOTQ1NDE1RDA3MDU1MDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUMwMTA3RUMzNzYwMDQyN0E0OCAvKiBBcnJheVBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTg3REUzNjFCRTNGRDgyMDBEMjA3NzMg
LyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI0RTU0
MDE3RUE5RjU5MDBBQkIyMTcgLyogQXNzZW1ibHlIZWxwZXJzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGRUM4NEZFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0FyZ3VtZW50UmVnVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MDAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmFzaWNCbG9j
ay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVDODUwNTFCREFDREFDMDA4MEZGNzQgLyogQjND
aGVja1NwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MDcxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ2hlY2tWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVDODUwOTFCREFD
REFDMDA4MEZGNzQgLyogQjNDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MEIx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkVDODUwRDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDMyVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZFQzg1MEYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTExMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MTMxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NUM1MUJF
MTZGNUEwMDgwRkY3NCAvKiBCM0VmZmVjdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1
MTUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMEZFQzg1MTgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzR2VuZXJhdGUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZFQzg1QzIxQkUxNjdBMDAwODBGRjc0IC8qIEIzSGVhcFJhbmdlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTBGRUM4NUI5MUJFMTQ2MkYwMDgwRkY3NCAvKiBCM0luc2VydGlv
blNldC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVDODUxRDFCREFDREFDMDA4MEZGNzQgLyog
QjNMb3dlclRvQWlyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTFGMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM01lbW9yeVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTIxMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM09wY29kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVDODUy
MzFCREFDREFDMDA4MEZGNzQgLyogQjNPcmlnaW4uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZF
Qzg1MjUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFNwZWNpYWwuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZFQzg1MjcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTI5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Bo
YXNlU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MkIxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzUHJvY2VkdXJlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NUJDMUJFMTQ2MkYw
MDgwRkY3NCAvKiBCM1JlZHVjZVN0cmVuZ3RoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4
NTJFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrbWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRUM4NTMwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrbWFwU3BlY2lhbC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRkVDODUzMjFCREFDREFDMDA4MEZGNzQgLyogQjNTdGFja1Nsb3RLaW5k
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTM0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0
YWNrU2xvdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTM3MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1N3aXRjaENhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MzkxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzU3dpdGNoVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZF
Qzg1M0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RkVDODUzRDFCREFDREFDMDA4MEZGNzQgLyogQjNVcHNpbG9uVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZFQzg1M0YxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVXNlQ291bnRzLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGRUM4NTQxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1ZhbGlkYXRlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTQzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1ZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTQ2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Zh
bHVlUmVwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyNjc4RjhFMUEwMzEwMDkwMDZBMzA2RCAv
KiBCYXNpY0Jsb2NrTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2NEIyNzExQTc4
NEJBRjAwNkU0RTY2IC8qIEJpbmFyeVN3aXRjaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4
MDg2MzEwN0VDMTFBMDAxM0U3QjIgLyogQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtODEyNiwxMCArODI2Myw4IEBACiAJCQkJMTQyOUQ4REQwRUQyMjA1QjAwQjg5NjE5
IC8qIENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkVDOUJCNjFCN0VCMDdDMDAz
MDNBRDEgLyogQ2FsbEZyYW1lU2h1ZmZsZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjJE
NzU1RDYxQjg0RkI0NjAwMTgwMUZBIC8qIENhbGxGcmFtZVNodWZmbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGRUM4NTEzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2MkQ3NTVENTFCODRGQjQwMDAxODAxRkEgLyogQ2FsbEZyYW1l
U2h1ZmZsZXIzMl82NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkQ3NTVENDFCODRGQjNEMDAx
ODAxRkEgLyogQ2FsbEZyYW1lU2h1ZmZsZXI2NC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVD
ODUzOTFCREFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjBCODNCMDE0QkNGNzE2MDA4ODVCNEYgLyogQ2FsbExpbmtJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGOTMzMjlEMTRDQTdEQzMwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2Mjc2NzMyMzFCNjgwQzFFMDBGRDlGMkUgLyogQ2FsbE1v
ZGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MTQyLDcgKzgyNzcsNiBAQAogCQkJCUE3N0YxODIx
MTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4
Rjk0NDYxNjY3NjRGMTAwRDYxOTcxIC8qIENvZGVPcmlnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODZCNTgyNjcxNEQyNzk2QzAwQTlDMzA2IC8qIENvZGVQcm9maWxlLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGRUM4NTkzMUJEQjFFMTAwMDgwRkY3NCAvKiBBaXJHZW5lcmF0ZWQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODZCNTgyNjkxNEQyNzk3MDAwQTlDMzA2IC8qIENvZGVQcm9maWxp
bmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4Rjk0M0MxNjY3NjMxMzAwRDYxOTcxIC8qIENv
ZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4Rjk0NDIxNjY3
NjMzNTAwRDYxOTcxIC8qIENvZGVUeXBlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODE1MCw3ICs4
Mjg0LDYgQEAKIAkJCQlBNzA5RjJGMjE3QTBBQzJBMDA1MTJFOTggLyogQ29tbW9uU2xvd1BhdGhz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1NTNBMzMxMTdBMUYxRUUwMDhDRjZGMyAvKiBDb21t
b25TbG93UGF0aHNFeGNlcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RTVBM0E3MTc5
NzQzMkQwMEU4OTNDMCAvKiBDb21waWxhdGlvblJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkVDODU4QjFCREFDREM3MDA4MEZGNzQgLyogQWlyU3RhY2tTbG90LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0N0YzOUMyMTA3RUMzNzYwMDQyN0E0OCAvKiBDb21wbGV0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGNkZDNzUwMTk2MTEwQTgwMEUxRDAyRCAvKiBDb21wbGV4R2V0U3Rh
dHVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NkIxNkQ4MTJFQjVCNTkwMDFCRUMxQiAvKiBD
b25zZXJ2YXRpdmVSb290cy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgxNjcsNyArODMwMCw2IEBA
CiAJCQkJMkExMTEyNDUxOTJGQ0U3OTAwNUVFMThEIC8qIEN1c3RvbUdldHRlclNldHRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2MkUzRDVGMDFCOEQwQjczMDBCODY4QkIgLyogRGF0YUZvcm1h
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZERTE3QjZCNUFCMDBBN0FFM0YgLyogRGF0
YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1QkMxQkUxNDYyRjAwODBGRjc0IC8q
IEIzUmVkdWNlU3RyZW5ndGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzMxMDdFQzM3
NjAwNDI3QTQ4IC8qIERhdGVDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdG
MzlDNDEwN0VDMzc2MDA0MjdBNDggLyogRGF0ZUNvbnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTQ3RjM5QzUxMDdFQzM3NjAwNDI3QTQ4IC8qIERhdGVJbnN0YW5jZS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTgxNzksNyArODMxMSw2IEBACiAJCQkJMEZDNzEyREUxN0NEODc3OTAwOEND
OTNDIC8qIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGRTUwNjg2NzFBRTI1RTI4MDAwOURBQjcgLyogRGVmZXJyZWRTb3VyY2VEdW1wLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3N0E0MjNEMTdBMEJCRkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhl
YXAuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1OEQxQkRBQ0RDNzAwODBGRjc0IC8qIEFp
clRtcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU1QzE5NDE3Mjc2RTQ2MDBDRUFCRkQgLyog
REZHQWJzdHJhY3RWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQzRTQwMTFCNjE4QUFG
MDBDODBFMUUgLyogREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMThEM0NGMUI1NUE2RTAwMDJDNUM5RiAvKiBERkdBZGFw
dGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MTg5LDcgKzgz
MjAsNiBAQAogCQkJCTBGNjM5NDg0MTVFNDgxMTgwMDZBNTk3QyAvKiBERkdBcnJheU1vZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEOUEyOTQxN0EwQkM3NDAwRUUyNjE4IC8qIERGR0F0VGFp
bEFic3RyYWN0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2NjZFQzYxODM1NjcyQjAw
RDAxN0YxIC8qIERGR0F2YWlsYWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODU4
NzFCREFDREM3MDA4MEZGNzQgLyogQWlyU3BlY2lhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjJCOUNFMjE5RDBCQTdEMDBCMUQxQjUgLyogREZHQXZhaWxhYmlsaXR5TWFwLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNzE0Q0E0MTZFQTkyRjAwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9w
YWdhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0YyMTdBMEI4Q0MwMDc3
M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODE5OCw3ICs4MzI4
LDYgQEAKIAkJCQk4NkVDOURDNDEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEODJFMjExNDE3MkNFMzAwMTc5Qzk0IC8qIERGR0Nh
cGFiaWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZGQzk1NzE0RUY5MEEwMDBDNzI1
MzIgLyogREZHQ0ZBUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1NDYxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzVmFsdWVSZXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzQjNBMjcx
NTQ0Qzk5NTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY5RDM2OTQxQUU5Q0MzMzAwMEQ0REZCIC8qIERGR0NsZWFuVXBQaGFzZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzdBNDIzRjE3QTBCQkZEMDBBOERCODEgLyogREZHQ2xv
YmJlcml6ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgyMzYsNyArODM2NSw2IEBACiAJCQkJMkE4
ODA2NzgxOTEwN0Q1NTAwQ0IwQkJCIC8qIERGR0Z1bmN0aW9uV2hpdGVsaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg2RUM5REM3MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyogREZHR3JhcGhTYWZl
cG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1NkQxQkRBQ0RDNzAwODBGRjc0IC8q
IEFpckFsbG9jYXRlU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCMTc2NjAxOTZCOEY5
RTAwOTEwNTJBIC8qIERGR0hlYXBMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM4
NDE2ODFCQThDMzIxMDA2MTgzN0QgLyogREZHSW5mZXJyZWRUeXBlQ2hlY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTcwNEQ5MDUxN0EwQkFBODAwNkJBNTU0IC8qIERGR0luUGxhY2VBYnN0cmFj
dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODI3OSwxNyArODQwNywxNCBAQAogCQkJCTBG
QzA5NzcyMTQ2OTNBRjkwMENGMjQ0MiAvKiBERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjcwMjVBOTE3MTRCMEZBMDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBp
bGVyQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMzkyQzg5MUI0NjE4ODQwMDg0NDcy
OCAvKiBERkdPU1JFeGl0RnV6ei5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODU3NTFCREFD
REM3MDA4MEZGNzQgLyogQWlyQ29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVGQzlBQTE2
ODFBM0IzMDA1NjdGNTMgLyogREZHT1NSRXhpdEp1bXBQbGFjZWhvbGRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjIzNUJFRDE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdFByZXBhcmF0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjIzNzk3MUFFNDVDQTcwMEQ0MDJFQSAvKiBE
RkdQaGFudG9tSW5zZXJ0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGRkM5NUIx
NEVGOTBBRDAwQzcyNTMyIC8qIERGR1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4
NTBGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjJCOUNFQTE5RDBCQTdEMDBCMUQxQjUgLyogREZHUGhpQ2hpbGRyZW4uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTc4QTk3N0ExNzk3MzhCODAwOURGNzQ0IC8qIERGR1BsYW4uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZCRTBGNzQxNkMxREIwOTAwODJDNUU4IC8qIERGR1ByZWRpY3Rp
b25JbmplY3Rpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZGQzk1RDE0RUY5MEIz
MDBDNzI1MzIgLyogREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEZFQzg1MzIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3RhY2tTbG90S2luZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjNFMDFBQTE5RDM1M0E1MDBGNjFCN0YgLyogREZHUHJlUG9z
dE51bWJlcmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCOUNFQzE5RDBCQTdEMDBCMUQx
QjUgLyogREZHUHJvbW90ZWRIZWFwTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZC
MTc2NjIxOTZCOEY5RTAwOTEwNTJBIC8qIERGR1B1cmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTgzMDcsOCArODQzMiw2IEBACiAJCQkJMEZDMjBDQjUxODUyRTJDNjAwQzlFOTU0IC8qIERG
R1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4OTNCREIx
OTM2RTIzQzAwMTIxMUY0IC8qIERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY3OTA4NTUxOUEyOTBCMjAwRjYzMTBDIC8qIERGR1N0cnVjdHVyZVJlZ2lz
dHJhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTM0MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1N0YWNrU2xvdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTI5
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BoYXNlU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZDMDk3QTExNDZCMjhDQTAwQ0YyNDQyIC8qIERGR1RodW5rcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkQ4QTMyNzE3RDUxRjU3MDBDQTJDNDAgLyogREZHVGllclVwQ2hlY2tJ
bmplY3Rpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgzMzYsNyArODQ1OSw2IEBACiAJ
CQkJMkE4MzYzODUxOEQ3RDBFRTAwMDBFQkNDIC8qIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTlFNDVBMjUxOEExQjI1OTAwMjZEODhGIC8qIEVuY29kZWRW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDNzEwN0VDMzc2MDA0MjdBNDggLyog
RXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MDkxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUM4MTA3RUMzNzYwMDQyN0E0
OCAvKiBFcnJvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFQjU4QzE0MTg3
QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ3RjM5QzkxMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC04MzgxLDcgKzg1MDMsNiBAQAogCQkJCTBGOEYyQjk1MTcyRTA0QTAwMDdEQkRB
NSAvKiBGVExMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0VGQURGMTgwNzM4QzAwMDQ3
MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBMEEwRjE3MDUx
M0RCMDBCQjcyMkMgLyogRlRMTG93ZXJERkdUb0xMVk0uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEZFQzg1MDAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmFzaWNCbG9jay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjJCOUNGODE5RDBCQUMxMDBCMUQxQjUgLyogRlRMT3BlcmF0aW9ucy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkQ4QTMxQjE3RDUxRjIyMDBDQTJDNDAgLyogRlRMT1NSRW50cnku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyMzVCREMxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTE9T
UkV4aXQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04Mzg5LDcgKzg1MTAsNiBAQAogCQkJCTBGRUEw
QTJBMTcwOTYyOTYwMEJCNzIyQyAvKiBGVExPdXRwdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY0ODUzMjkxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGQ0VGQUFCMTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODU4OTFCREFDREM3MDA4MEZGNzQgLyogQWlyU3Bp
bGxFdmVyeXRoaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjVGMUIxMTgxNjM1RjMwMDUy
MkYzOSAvKiBGVExTbG93UGF0aENhbGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyNUYxQjMx
ODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbEtleS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjlEMzM5QTE4MDNBREI3MDA3M0MyQkMgLyogRlRMU3RhY2tNYXBzLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtODQwMSw5ICs4NTIxLDkgQEAKIAkJCQkxNDdGMzlDQjEwN0VDMzc2MDA0MjdB
NDggLyogRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkYwRjE5
RjE2QjcyQTE3MDA1REY5NUIgLyogRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MkIzMTBGRDE5NzRBRTg3MDA4MDg1N0MgLyogRnVuY3Rpb25IYXNFeGVjdXRl
ZENhY2hlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NUMyMUJFMTY3QTAwMDgwRkY3NCAv
KiBCM0hlYXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTRCRkYyQjFBRDQ3NkU3MDAw
ODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
Q0MxMDdFQzM3NjAwNDI3QTQ4IC8qIEZ1bmN0aW9uUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTk5ODdERTM3MUJFM0ZEODIwMEQyMDc3MyAvKiBGdW5jdGlvblByb3RvdHlwZUJ1aWx0
aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTYyRDJEMzhGMUFERjEwM0YwMDAyMDZDMSAvKiBG
dW5jdGlvblJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJBQUNFNjNDMThDQTVBMDMw
MEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3
NjZEMkYxNUE4RENFMDAwOEYzNjNFIC8qIEdDQXdhcmVKSVRTdHViUm91dGluZS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTg0MTEsNiArODUzMSw3IEBACiAJCQkJMEY5MzMyOUYxNENBN0RDQTAwODVG
M0M2IC8qIEdldEJ5SWRTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwMzMyQzMxOEIw
MTc2MzAwNUY5NzlBIC8qIEdldEJ5SWRWYXJpYW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0
MjgwODU1MTA3RUMwRTcwMDEzRTdCMiAvKiBHZXR0ZXJTZXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJOTk4N0RFMzgxQkUzRkQ4MjAwRDIwNzczIC8qIEdsb2JhbE9iamVjdEJ1aWx0aW5zLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0MkUzMTM1MTM0RkYwQTYwMEFGQURCNSAvKiBIYW5kbGVT
ZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyRTMxMzcxMzRGRjBBNjAwQUZBREI1IC8qIEhh
bmRsZVN0YWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0QkE3QTk3MTNBQURGRjgwMDVCN0My
QyAvKiBIZWFwLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODQyMyw3ICs4NTQ0LDYgQEAKIAkJCQlB
NUZEMDA3NTE4OUIwMzhDMDA2MzMyMzEgLyogSWRlbnRpZmllcnNGYWN0b3J5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUMyNUY4QkNEMTU3NTQ0QTkwMDI0NUI3MSAvKiBJbmNyZW1lbnRhbFN3ZWVw
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxM0UwNEUxNjE2NEExRjAwREM4REU3IC8qIElu
ZGV4aW5nVHlwZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODUyNzFCREFDREFDMDA4MEZG
NzQgLyogQjNQYXRjaHBvaW50VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwQTc1MjIx
Qjk0QkZBOTAwMTEwNjYwIC8qIEluZmVycmVkVHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkZDOTIxMTFCOTRENERGMDA3MURENjYgLyogSW5mZXJyZWRUeXBlVGFibGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZGOEJERUExQUQ0Q0Y3MTAwREZFODg0IC8qIEluZmVycmVkVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC04NDMxLDcgKzg1NTEsNiBAQAogCQkJCTlFQTVDN0EyMTkwRjA4
ODcwMDUwOEVCRSAvKiBJbml0aWFsaXplTExWTU1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
RTcyOTQwODE5MEYwMjFFMDAxQTkxQjUgLyogSW5pdGlhbGl6ZUxMVk1QT1NJWC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5RTcyOTQwNzE5MEYwMUE1MDAxQTkxQjUgLyogSW5pdGlhbGl6ZVRocmVh
ZGluZy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODU3QjFCREFDREM3MDA4MEZGNzQgLyog
QWlySGFuZGxlQ2FsbGVlU2F2ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUxM0U1QjcxODVC
OEJEMzAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1
MTRCMkMyMTg1QTY4NDQwMEYzQzdDQiAvKiBJbmplY3RlZFNjcmlwdEJhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTU4RTM1OTExODYwREVDRjAwMUYyNEZFIC8qIEluamVjdGVkU2NyaXB0SG9z
dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg0NDMsMTcgKzg1NjIsMTggQEAKIAkJCQlBNTkzQ0Y4
NjE4NDAzOENBMDBCRkNFMjcgLyogSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNTkzQ0Y3QzE4NDAzNjAzMDBCRkNFMjcgLyogSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMjQzODcxODU2ODMzNTAwMkVENjky
IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkw
RkVDODUzNzFCREFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hDYXNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1RkQwMDgxMTg5QjE5MUEwMDYzMzIzMSAvKiBJbnNwZWN0b3JDb25zb2xlQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDIzRTUxODkwQ0VCRjAwMzFDN0ZBIC8qIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMjQzODkxODU2ODMz
NTAwMkVENjkyIC8qIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTlGMUE2RkUxQjhFNkQ5NDAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5kUm91
dGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MzM5RUM3MUJCMzk5QTkwMDU0RjAwNSAvKiBJ
bnNwZWN0b3JIZWFwQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM1RTAzNUYxQjdBQjQz
RTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk5OTg3REUzOTFCRTNGRDgyMDBEMjA3NzMgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMjQzOEIxODU2
ODMzNTAwMkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTBFNEI2MTE4ODA5REQ1MDA2OEE0NkQgLyogSW5zcGVjdG9yUnVudGltZUFnZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1OTNDRjgyMTg0MDM3NzEwMEJGQ0UyNyAvKiBJbnNw
ZWN0b3JWYWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0YxMDdFQzM3NjAwNDI3
QTQ4IC8qIEludGVybmFsRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk4N0RFM0Ex
QkUzRkQ4MjAwRDIwNzczIC8qIEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyOUQ3RDQwRUQyMTI4MjAwQjg5NjE5IC8qIEludGVycHJl
dGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQjlFMjM5MUI0RTBENjcwMEJDN0ZFRCAvKiBJ
bnRsQ29sbGF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFCOUUyM0IxQjRFMEQ2NzAwQkM3
RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODQ2
OCw2ICs4NTg4LDcgQEAKIAkJCQlERTVBMEEwMDFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2lj
RW1pdHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MDExM0Q0QjFBOERCMDkzMDAzODQ4QzQg
LyogSXRlcmF0b3JPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwREMzRTA5MUIy
REYyQzcwMDA1NDI5OSAvKiBJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5OTg3REUzQjFCRTNGRDgyMDBEMjA3NzMgLyogSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTAzRkExOTE4OEUwRkIwMDAxMTBGMTQgLyogSmF2YVNj
cmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI5RDkyRjBFRDIyRDcwMDBC
ODk2MTkgLyogSklULmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2QTkwRUQwMEVFN0Q1MUYwMEFC
MzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODQ4NSw2ICs4NjA2
LDcgQEAKIAkJCQlBN0MxRThFNDExMkU3MkVGMDBBMzdGOTggLyogSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjc2NkQyODE1QThDQzFFMDA4RjM2M0UgLyog
SklUU3R1YlJvdXRpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3NjZEMkIxNUE4Q0MzODAw
OEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZFNDIz
ODkwMUJFMThDM0MwMDUxNDczNyAvKiBKSVRTdWJHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkM3MTJFMjE3Q0Q4NzkxMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwNTY2QzQxMDdFQzI1
NTAwNURCQzhEIC8qIEpTQVBJVmFsdWVXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODUw
MCwxNyArODYyMiwxMiBAQAogCQkJCTg2RkE5RTkxMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5k
RnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0MEY4QUYwQTUwOEQyMDAwMDVGMDYx
IC8qIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQwRjg5
MjBBNTA4QjEwMDAwNUYwNjEgLyogSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTBGRUM4NTZGMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJBcmcuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTRBQkRGNjAwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNjU3Q0Y0NTgxOUJGNjY2MjAwNEFDQkYyIC8qIEpTQ2FsbGVl
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3RDgwMUE4MTg4MEQ2QTgwMDI2QzM5QiAvKiBKU0NC
dWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlEMTEwN0VDMzc2MDA0MjdBNDgg
LyogSlNDZWxsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NUM1MUJFMTZGNUEwMDgwRkY3
NCAvKiBCM0VmZmVjdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDYxMDdFQzM3NjAw
NDI3QTQ4IC8qIEpTQ0pTVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0MEZDRTQwQTUx
RTQ2QjAwMDVGMDYxIC8qIEpTQ2xhc3NSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzQ0Uw
ODcxOEJDMUE1NjAwQkVERjc2IC8qIEpTQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkw
RkVDODU5MDFCREFDREM3MDA4MEZGNzQgLyogQWlyVmFsaWRhdGUuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEZFQzg1NzMxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckNDYWxsU3BlY2lhbC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NkUzQzYxNjE2N0JBQkVFMDA2RDc2MEEgLyogSlNDb250ZXh0Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTRCRDVBMzAwQTNFOTFGNjAwQkFGNTlDIC8qIEpTQ29udGV4
dFJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzIwMjhCNjE3OTc2MDFFMDA5ODAyOEMgLyog
SlNDVGVzdFJ1bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODUyMSwxOSArODYzOCwx
NiBAQAogCQkJCUZFMzg0RUU3MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQ3MTA3RUMzNzYwMDQyN0E0OCAvKiBKU0Vu
dmlyb25tZW50UmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MDU2NkQ2MTA3RUMyNzEw
MDVEQkM4RCAvKiBKU0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTFEMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0xvd2VyVG9BaXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzk3
RTA3QTkxQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQyMTA3RUMzNzYwMDQyN0E0OCAvKiBKU0dsb2JhbE9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA4NTE4OUIxQjdFMDA2MzMyMzEgLyog
SlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVDM0Ex
QTUxOEMwNDkwMjAwQzk1OTNBIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkwRkVDODUwRDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDMyVmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5NDU1OTIxODI0NzQ0NzAwQ0MzODQzIC8qIEpT
R2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4
OTFCMDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0RTlEMTdCMTA3RUM0NjkwMDREREEyMSAvKiBKU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTEwMDdDMDE4N0NDM0M2MDBCMzg4Nzkg
LyogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1MEU0QjYzMTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTAzRkEyOTE4OEYxMDU5MDAxMTBGMTQgLyogSlNH
bG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVD
ODUyMzFCREFDREFDMDA4MEZGNzQgLyogQjNPcmlnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTUxM0U1QkYxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE1MTNFNUMxMTg1QkZBQ0MwMDdFOTVBRCAvKiBKU0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzNGNTA4MDFCODQyOUE0
MDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04NTUy
LDcgKzg2NjYsNiBAQAogCQkJCUUzMThDQkMwMUI4QUVGNTEwMEEyOTI5RCAvKiBKU01vZHVsZU5h
bWVzcGFjZU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzlEQTRBNjFCN0U4QjdDMDA4
NEYzM0EgLyogSlNNb2R1bGVSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTMzRThEMUMx
QjkwMTNDMzAwMzQ2QjUyIC8qIEpTTmF0aXZlU3RkRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEZFQzg1MTgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzR2VuZXJhdGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTcyNzAwOTAwREFDNkJCQzAwRTU0OEQ3IC8qIEpTTm90QW5PYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDQxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTT2JqZWN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0ODJCN0U0MEE0MzA3NjAwMDUxN0NGQyAvKiBKU09i
amVjdFJlZi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg1NjYsNyArODY3OSw2IEBACiAJCQkJRTNF
Rjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODYyNTUzRDExNjEzNkRBOTAwOUYxN0QwIC8qIEpTUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTU1MkMzN0YxQUREQjhGRTAwMTM5NzI2IC8qIEpTUmVtb3RlSW5z
cGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTExMUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTkyOEZGM0IxOEFD
NEFFQzAwQjhDRjEyIC8qIEpTUmVwbGF5SW5wdXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0
ODc0QUU1MTVFQkRFNEEwMDJFMzU4NyAvKiBKU1Njb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3QzBDNEFEMTY4MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTg1OTUsNyArODcwNyw2IEBACiAJCQkJNzA5RkI4NjcxQUUzMzVDNjAwMzlEMDY5IC8q
IEpTV2Vha1NldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQyNTY2MTE1RURFOThEMDA2NkE0
OUIgLyogSlNXaXRoU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZFM0M2MTgxNjdCQUJF
RTAwNkQ3NjBBIC8qIEpTV3JhcHBlck1hcC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTE1
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTE0MjgwODcwMTA3RUMxMzQwMDEzRTdCMiAvKiBKU1dyYXBwZXJPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNGRDhDOTIwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkI1NDY3OTE0RjVDNDZCMDAyQzI5ODkgLyogTGF6eU9wZXJh
bmRWYWx1ZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04NjAzLDEyICs4NzE0LDkgQEAK
IAkJCQkxNDhGMjFCMDEwN0VDNTQxMDA0MkVDMkMgLyogTGV4ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZGNDI3NTcxNTkxNEEyMDAwNENCOUZGIC8qIExpbmtCdWZmZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTdFMkVBNkMwRkI0NjBDRjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1N0YxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkUzOTEzNTQxQjc5NEY2RTAwRURBRjcxIC8qIExpdmVP
YmplY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFMjBDRTlEMTVGMDRBOTUwMERGMzQz
MCAvKiBMTEludENMb29wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDY4MEQyMTRCQkQxNjUw
MEJGRTI3MiAvKiBMTEludERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg0RkUxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzQXJndW1lbnRSZWdWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkVDODU0MTFCREFDREFDMDA4MEZGNzQgLyogQjNWYWxpZGF0ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjM4QjAxMTE3Q0YwNzgwMDBCMTQ0RDMgLyogTExJbnRFbnRyeXBvaW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGNDY4MEE4MTRCQTdGQUIwMEJGRTI3MiAvKiBMTEludEV4Y2Vw
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0NjgwQTQxNEJBN0Y4RDAwQkZFMjcyIC8q
IExMSW50U2xvd1BhdGhzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODYxNyw3ICs4NzI1LDYgQEAK
IAkJCQlBN0U1QUIzNzE3OTlFNEIyMDBEMjgzM0QgLyogTExWTURpc2Fzc2VtYmxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDQ2OURERTEwN0VDN0U3MDA2NTA0NDYgLyogTG9va3VwLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGNDY4MENDMTRCQkIxN0EwMEJGRTI3MiAvKiBMb3dMZXZlbElu
dGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTFGMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM01lbW9yeVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0QjcyM0IyMTJEN0RB
NDYwMDNCRDVFRCAvKiBNYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZFQjNFQ0YxNjIzN0Y2QzAwQUI2N0FEIC8qIE1hY3JvQXNzZW1ibGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg2QzU2OEUwMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlckFSTS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTg2MjcsMTIgKzg3MzQsMTAgQEAKIAkJCQlBN0E0QUUwODE3
OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTcwMDg3MzkxN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE3NERFRjkzMTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVyYXRv
clByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODUwNzFCREFDREFDMDA4MEZG
NzQgLyogQjNDaGVja1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3MDA4NzNEMTdDQkU4
RDMwMEMzRTY0MyAvKiBNYXBQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzJCOTE2
QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDJENkYwODEzNTM5QTI4MDBCMDJFODYgLyogTWFya2VkQmxvY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTREMkYzREExMzlGNEJFMjAwNDkxMDMxIC8qIE1hcmtlZFNwYWNlLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTBGRUM4NTQzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1ZhbHVlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0MkQ2RjExMTM1MzlBNDEwMEIwMkU4NiAvKiBNYXJrU3Rh
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM0MEE0ODQxQTkwNTFBRjAwRDczQ0NBIC8qIE1h
dGhDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlEREYxMDdFQzdFNzAwNjUwNDQ2
IC8qIE1hdGhPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04NjQwLDYgKzg3NDUsNyBAQAog
CQkJCTBGQjU0NjdEMTRGNUNGRDYwMDJDMjk4OSAvKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9m
aWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzNzk0RTc1MUI3N0VCOTcwMDU1NDNBRSAvKiBN
b2R1bGVBbmFseXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzU1RjM1MjFCN0RDODUzMDBD
NTBEQzUgLyogTW9kdWxlTG9hZGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5ODdE
RTNDMUJFM0ZEODIwMEQyMDc3MyAvKiBNb2R1bGVMb2FkZXJPYmplY3RCdWlsdGlucy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDQ2OURFMDEwN0VDN0U3MDA2NTA0NDYgLyogTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFMTEwN0VDN0U3MDA2NTA0
NDYgLyogTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTMzRThE
MjAxQjkwMTNERTAwMzQ2QjUyIC8qIE5hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTg2NTMsMTMgKzg3NTksMTQgQEAKIAkJCQkxNDQ2OURFNDEwN0VDN0U3MDA2NTA0
NDYgLyogTnVtYmVyUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RjNFRUJFMTY4
Q0RFOTMwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTE0NDY5REU1MTA3RUM3RTcwMDY1MDQ0NiAvKiBPYmplY3RDb25zdHJ1Y3Rvci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk5OTg3REUzRDFCRTNGRDgyMDBEMjA3NzMgLyogT2JqZWN0Q29uc3Ry
dWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQzRTQwOTFCNjE4QjY2MDBD
ODBFMUUgLyogT2JqZWN0UHJvcGVydHlDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
RkU0MjM4OTAxQkUxOEMzQzAwNTE0NzM3IC8qIEpJVFN1YkdlbmVyYXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkQzRTQwQjFCNjE4QjY2MDBDODBFMUUgLyogT2JqZWN0UHJvcGVydHlDb25k
aXRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTYxMDdFQzdFNzAwNjUwNDQ2
IC8qIE9iamVjdFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI0QThGODBFNTU1
Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTY5
QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDI4MDg1MDEwN0VDMEQ3MDAxM0U3QjIgLyogT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk5OTg3REUzRTFCRTNGRDgyMDBEMjA3NzMgLyogT3BlcmF0aW9uc1Byb21pc2VCdWlsdGlu
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUyMjhFRTE0MzZBQjJDMDAxOTZDNDggLyogT3B0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFCQzEwN0VDNTREMDA0MkVDMkMgLyog
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMDUyQzM0MEZCNzkyMTkwMDQ4RkRDMyAv
KiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg2NzIsMjEgKzg3NzksMTkgQEAK
IAkJCQkwRkY3MjlBRDE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkY3MjlBRTE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJCeXRl
Y29kZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxMzkxMjkxNjc3MUMzMzAwOUNDQjA3IC8q
IFByb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODUw
QjFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tdXRhdGl2aXR5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRjcyOUFGMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckNvbXBpbGF0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRjcyOUIwMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckNv
bXBpbGF0aW9uS2luZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlCMTE2NkFEMzVDMDAw
RjVCQTMgLyogUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRjcyOUIyMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckRhdGFiYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMTkwQ0FDMTg5RDgyRjYwMDBBRTVGMCAvKiBQcm9maWxlckpldHRpc29u
UmVhc29uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTMwMUJEQUNEQUMwMDgwRkY3NCAv
KiBCM1N0YWNrbWFwU3BlY2lhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlCMzE2NkFE
MzVDMDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZG
NzI5QjQxNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVyT3JpZ2luU3RhY2suY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZFQzg1MkUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3RhY2ttYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZCMTA1OEIxNjc1NDgzMTAwRjhBQjZFIC8qIFByb2ZpbGVyT1NS
RXhpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkIxMDU4RDE2NzU0ODM3MDBGOEFCNkUgLyog
UHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOTEyQjE2Nzcx
QzNBMDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk5OTg3REUzRjFCRTNGRDgyMDBEMjA3NzMgLyogUHJvbWlzZUNvbnN0cnVjdG9yQnVp
bHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk4N0RFNDAxQkUzRkQ4MjAwRDIwNzczIC8q
IFByb21pc2VQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQzRTQw
RDFCNjE4QjY2MDBDODBFMUUgLyogUHJvcGVydHlDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEZFQzg1M0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVHlwZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBN0ZCNjBBNDEwM0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlEZXNjcmlwdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REU4MTA3RUM3RTcwMDY1MDQ0NiAvKiBQcm9wZXJ0
eVNsb3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQURFMzlGRkYxNkREMTQ0QjAwMDNDRDRBIC8q
IFByb3BlcnR5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04Njk1LDEyICs4ODAwLDExIEBA
CiAJCQkJMEYxNUNEMjIxQkE1Rjk4NjAwMzFGRkQzIC8qIFB1dEJ5SWRGbGFncy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjkzMzJBMzE0Q0E3REQ3MDA4NUYzQzYgLyogUHV0QnlJZFN0YXR1cy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkzQjRBOTE4QjkyQzREMDAxNzhBM0YgLyogUHV0QnlJ
ZFZhcmlhbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MkIxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzUHJvY2VkdXJlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjYwQUMzMTY3NDBGODgw
MDAyOTc3OSAvKiBSZWR1Y2VXaGl0ZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzMzYz
N0E1MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTk5ODdERTQxMUJFM0ZEODIwMEQyMDc3MyAvKiBSZWZsZWN0T2JqZWN0QnVpbHRpbnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZBN0E4RUIxOEI0MTNDODAwNTIzNzFEIC8qIFJlZy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg0MTEwN0VDMDkzMDAxM0U3QjIgLyogUmVnRXhwLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTc4MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJHZW5l
cmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTcxMkIzQjExQzdCMjEyMDA3QTUzMTUgLyog
UmVnRXhwQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODY0MkM1MTAxNTFDMDZBOTAwNDZE
NEVGIC8qIFJlZ0V4cENhY2hlZFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg0
MjEwN0VDMDkzMDAxM0U3QjIgLyogUmVnRXhwQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC04NzE0LDcgKzg4MTgsNiBAQAogCQkJCUE1QkExNUU5MTgyMzQwQjMwMEE4MkU2OSAvKiBS
ZW1vdGVJbnNwZWN0b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNTk0NTU4RjE4MjQ1RUZEMDBD
QzM4NDMgLyogUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNUJBMTVFQzE4MjM0MEI0MDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZUNv
bm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODUwNTFCREFDREFDMDA4MEZGNzQg
LyogQjNDaGVja1NwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RUUxODIzNDBC
NDAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAq
LywKIAkJCQkwRjI0RTU1MDE3RUUyNzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1Mjc3NzNERTFBQUY4M0FDMDBCREU3RTggLyogUnVudGltZVR5cGUuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC04NzMzLDcgKzg4MzYsNiBAQAogCQkJCUE1NENGMkY5MTg0RUFFREEw
MDIzN0YxOSAvKiBTY3JpcHRPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU0Q0YyRjUx
ODRFQUIyNDAwMjM3RjE5IC8qIFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
Mjk5REE1MTdEMTI4NTgwMDVGNUZGOSAvKiBTZXRDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQkwRkVDODU4NTFCREFDREM3MDA4MEZGNzQgLyogQWlyUmVnaXN0ZXJQcmlvcml0eS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzkwREQ2RDE4MkY0OTk3MDA1ODg4MDcgLyogU2V0SXRl
cmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTlEQTExN0QxMjg0ODAw
NUY1RkY5IC8qIFNldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVFOTg0MzFB
ODkyMjc1MDA3NTRFOTMgLyogU2V0dXBWYXJhcmdzRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC04NzQ4LDE2ICs4ODUwLDE2IEBACiAJCQkJMEZEODJFODYxNDFGM0ZGMTAwMTc5Qzk0IC8qIFNw
ZWN1bGF0ZWRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QzFFQUYxMTc5ODdBQjYwMDI5
OURCMiAvKiBTdGFja1Zpc2l0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTczMEI2MTMxMjUw
MDY4RjAwOUQyNUIxIC8qIFN0cmljdEV2YWxBY3RpdmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTBGRUM4NTIxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM09wY29kZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDQ2OURFQjEwN0VDN0U3MDA2NTA0NDYgLyogU3RyaW5nQ29uc3RydWN0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTk4N0RFNDIxQkUzRkQ4MjAwRDIwNzczIC8qIFN0cmluZ0Nv
bnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzBFQzBFQzYxQUEwRDdE
QTAwQjZBQUZBIC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTk5ODdERTQzMUJFM0ZEODIwMEQyMDc3MyAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZUJ1
aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REVDMTA3RUM3RTcwMDY1MDQ0NiAv
KiBTdHJpbmdPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUQxMDdFQzdFNzAw
NjUwNDQ2IC8qIFN0cmluZ1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzM1RjI0
RDEyRTY3NjVCMDAyQjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0RFM0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdFNEVFNzBGMEVCQjdBNUIwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFp
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQUY3MzgyQzE4QkJCRjkyMDA4QTVBMzcgLyogU3Ry
dWN0dXJlSURUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODVCOTFCRTE0NjJGMDA4
MEZGNzQgLyogQjNJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzJGMEYyRDEx
NkJBRUVFOTAwMTg3QzE5IC8qIFN0cnVjdHVyZVJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGQjQzOEEzMTkyNzBCMUQwMEUxRkJDOSAvKiBTdHJ1Y3R1cmVTZXQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY3NjZEMzgxNUFFNEExQzAwOEYzNjNFIC8qIFN0cnVjdHVyZVN0dWJDbGVh
cmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04NzY2LDcgKzg4NjgsNiBAQAog
CQkJCTcwNUI0MUFEMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3MDVCNDFBRjFBNkU1MDFFMDA3MTY3NTcgLyogU3ltYm9sT2JqZWN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwNUI0MUIxMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1i
b2xQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1M0YxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzVXNlQ291bnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTE5RDI4MTU4NTY3
NzMwMDRBNEU3RCAvKiBTeW1ib2xUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDQTYw
NzFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkMzMTQxMzE4MTQ1NTkxMDAwMzMyMzIgLyogVGVtcFJlZ2lzdGVyU2V0LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtODc3NCw3ICs4ODc1LDkgQEAKIAkJCQlBNzM4NjU1NTExODY5N0I0MDA1
NDAyNzkgLyogVGh1bmtHZW5lcmF0b3JzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkQ0REU4
MTk4MzJEQUMwMDdENEIxOSAvKiBUb1RoaXNTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY5NTJBQkMxQjQ4N0E3NzAwQzM2N0M1IC8qIFRyYWNrZWRSZWZlcmVuY2VzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTk5ODdERTQ0MUJFM0ZEODIwMEQyMDc3MyAvKiBUeXBlZEFycmF5Q29uc3Ry
dWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcwNzE3QjZCNUFCMDBB
N0FFM0YgLyogVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk4
N0RFNDUxQkUzRkQ4MjAwRDIwNzczIC8qIFR5cGVkQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcwQTE3QjZCNUFCMDBBN0FFM0YgLyogVHlwZWRBcnJh
eVR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJCMzEwRkYxOTc1QjQyNDAwODA4NTdDIC8q
IFR5cGVMb2NhdGlvbkNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRkI2QzM4MUFGNDhE
REMwMERCMUJGNyAvKiBUeXBlb2ZUeXBlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODc5NSw3ICs4
ODk4LDYgQEAKIAkJCQkwRjI0RTU1ODE3Rjc0RURCMDBBQkIyMTcgLyogVmFsdWVSZWNvdmVyeS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3OUVFMEJGRjFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFi
bGVFbnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjZDNzM1MDFBQzlGOTlGMDBC
RTE2ODIgLyogVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEZFQzg1ODMxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclBoYXNlU2NvcGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZFMDUwMkMxQUE5MDk1NjAwRDMzQjMzIC8qIFZhck9mZnNldC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjIwQzI1OTFBODAxM0FCMDBEQTMyMjkgLyogVmlydHVhbFJlZ2lzdGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEUzQTU5MERGOTI3OEMwMEQ5MEIzNCAvKiBWTS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTg4MTUsNyArODkxNyw2IEBACiAJCQkJNzA5RkI4NjkxQUUz
MzVDNjAwMzlEMDY5IC8qIFdlYWtTZXRDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vha1NldFByb3RvdHlwZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVm
ZmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTdEMUJEQUNEQzcwMDgwRkY3NCAvKiBB
aXJJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDODE1MEIxNDA0M0MwRTAw
Q0ZBNjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdF
NUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9idWlsdGlucy9idWlsdGlucy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRz
L2J1aWx0aW5zL2J1aWx0aW5zLnB5CmluZGV4IGM2N2NkYWQ4YTMwZDcwY2NjNDVhMTlkODNkMjI0
YTY0ZjNiZWZmNzIuLmYzMjNjYWJkZmZkYzZiMWZlMmExZmIyMzc1ZmU0NjNhNzc5MTkyMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5z
LnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5z
LnB5CkBAIC01LDggKzUsNyBAQCBmcm9tIGJ1aWx0aW5zX21vZGVsIGltcG9ydCAqCiBmcm9tIGJ1
aWx0aW5zX3RlbXBsYXRlcyBpbXBvcnQgKgogCiBmcm9tIGJ1aWx0aW5zX2dlbmVyYXRvciBpbXBv
cnQgKgotZnJvbSBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIgaW1wb3J0ICoKLWZy
b20gYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24gaW1wb3J0ICoKLWZy
b20gYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyIGltcG9ydCAqCi1mcm9tIGJ1aWx0
aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uIGltcG9ydCAqCi1mcm9tIGJ1aWx0
aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIgaW1wb3J0ICoKK2Zyb20gYnVpbHRpbnNfZ2Vu
ZXJhdGVfZnJhbWV3b3JrX21hY3JvcyBpbXBvcnQgKgorZnJvbSBidWlsdGluc19nZW5lcmF0ZV9v
YmplY3RfaGVhZGVyIGltcG9ydCAqCitmcm9tIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9pbXBs
ZW1lbnRhdGlvbiBpbXBvcnQgKgorZnJvbSBidWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBl
ciBpbXBvcnQgKgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVp
bHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVh
ZGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDg5ZmRmNTlhMmJhZTk2MTVl
OThhOGE2ZTJjYzI5ODA0OTNlNjEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0
aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDE2MiAr
MCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IChjKSAyMDE0LCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChjKSAyMDE0
IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9y
dCByZQotaW1wb3J0IHN0cmluZwotZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBsYXRlCi0KLWZyb20g
YnVpbHRpbnNfZ2VuZXJhdG9yIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvcgotZnJvbSBidWlsdGlu
c190ZW1wbGF0ZXMgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yVGVtcGxhdGVzIGFzIFRlbXBsYXRl
cwotCi1sb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFsJykKLQotCi1jbGFzcyBCdWlsdGlu
c0NvbWJpbmVkSGVhZGVyR2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgbW9kZWwpOgotICAgICAgICBCdWlsdGluc0dlbmVyYXRvci5fX2luaXRfXyhz
ZWxmLCBtb2RlbCkKLQotICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6Ci0gICAgICAgIHJl
dHVybiAiJXNCdWlsdGlucy5oIiAlIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbmFt
ZXNwYWNlJykKLQotICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6Ci0gICAgICAgIGFyZ3Mg
PSB7Ci0gICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0
aW5nKCduYW1lc3BhY2UnKSwKLSAgICAgICAgICAgICdoZWFkZXJHdWFyZCc6IHNlbGYub3V0cHV0
X2ZpbGVuYW1lKCkucmVwbGFjZSgnLicsICdfJyksCi0gICAgICAgICAgICAnbWFjcm9QcmVmaXgn
OiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpLAotICAgICAg
ICB9Ci0KLSAgICAgICAgc2VjdGlvbnMgPSBbXQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2Vs
Zi5nZW5lcmF0ZV9saWNlbnNlKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShU
ZW1wbGF0ZXMuRG9Ob3RFZGl0V2FybmluZykuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRUb3ApLnN1
YnN0aXR1dGUoYXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX2Zv
cndhcmRfZGVjbGFyYXRpb25zKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShU
ZW1wbGF0ZXMuTmFtZXNwYWNlVG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBmb3Igb2Jq
ZWN0IGluIHNlbGYubW9kZWwoKS5vYmplY3RzOgotICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5k
KHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2JqZWN0KG9iamVjdCkpCi0gICAgICAgIHNlY3Rp
b25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfdGFibGVfbWFjcm8oKSkK
LSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9u
YW1lX21hY3JvKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMu
Q29tYmluZWRIZWFkZXJTdGF0aWNNYWNyb3MpLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIHNl
Y3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNlQm90dG9tKS5zdWJzdGl0
dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkhl
YWRlckluY2x1ZGVHdWFyZEJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLQotICAgICAgICByZXR1
cm4gIlxuXG4iLmpvaW4oc2VjdGlvbnMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfZm9yd2FyZF9kZWNs
YXJhdGlvbnMoc2VsZik6Ci0gICAgICAgIHJldHVybiAiIiJuYW1lc3BhY2UgSlNDIHsKLWNsYXNz
IEZ1bmN0aW9uRXhlY3V0YWJsZTsKLWNsYXNzIFZNOwotCi1lbnVtIGNsYXNzIENvbnN0cnVjdEFi
aWxpdHkgOiB1bnNpZ25lZDsKLX0iIiIKLQotICAgIGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9v
YmplY3Qoc2VsZiwgb2JqZWN0KToKLSAgICAgICAgbGluZXMgPSBbXQotICAgICAgICBsaW5lcy5h
cHBlbmQoJy8qICVzICovJyAlIG9iamVjdC5vYmplY3RfbmFtZSkKLSAgICAgICAgbGluZXMuZXh0
ZW5kKHNlbGYuZ2VuZXJhdGVfZXh0ZXJuc19mb3Jfb2JqZWN0KG9iamVjdCkpCi0gICAgICAgIGxp
bmVzLmFwcGVuZCgiIikKLSAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2VuZXJhdGVfbWFjcm9z
X2Zvcl9vYmplY3Qob2JqZWN0KSkKLSAgICAgICAgbGluZXMuYXBwZW5kKCIiKQotICAgICAgICBs
aW5lcy5leHRlbmQoc2VsZi5nZW5lcmF0ZV9kZWZpbmVzX2Zvcl9vYmplY3Qob2JqZWN0KSkKLSAg
ICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKLQotICAgIGRlZiBnZW5lcmF0ZV9leHRlcm5z
X2Zvcl9vYmplY3Qoc2VsZiwgb2JqZWN0KToKLSAgICAgICAgbGluZXMgPSBbXQotCi0gICAgICAg
IGZvciBmdW5jdGlvbiBpbiBvYmplY3QuZnVuY3Rpb25zOgotICAgICAgICAgICAgZnVuY3Rpb25f
YXJncyA9IHsKLSAgICAgICAgICAgICAgICAnY29kZU5hbWUnOiBCdWlsdGluc0dlbmVyYXRvci5t
YW5nbGVkTmFtZUZvckZ1bmN0aW9uKGZ1bmN0aW9uKSArICdDb2RlJywKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIiImV4dGVybiBjb25zdCBjaGFyKiBzXyUoY29k
ZU5hbWUpczsKLWV4dGVybiBjb25zdCBpbnQgc18lKGNvZGVOYW1lKXNMZW5ndGg7Ci1leHRlcm4g
Y29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJShjb2RlTmFtZSlzQ29uc3RydWN0QWJpbGl0
eTsiIiIgJSBmdW5jdGlvbl9hcmdzKQotCi0gICAgICAgIHJldHVybiBsaW5lcwotCi0gICAgZGVm
IGdlbmVyYXRlX21hY3Jvc19mb3Jfb2JqZWN0KHNlbGYsIG9iamVjdCk6Ci0gICAgICAgIGFyZ3Mg
PSB7Ci0gICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNl
dHRpbmcoJ21hY3JvX3ByZWZpeCcpLAotICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogb2JqZWN0
Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnJykudXBwZXIoKSwKLSAgICAgICAgfQotCi0gICAg
ICAgIGxpbmVzID0gW10KLSAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVmaW5lICUobWFjcm9QcmVm
aXgpc19GT1JFQUNIXyUob2JqZWN0TWFjcm8pc19CVUlMVElOX0RBVEEobWFjcm8pIFxcIiAlIGFy
Z3MpCi0gICAgICAgIGZvciBmdW5jdGlvbiBpbiBvYmplY3QuZnVuY3Rpb25zOgotICAgICAgICAg
ICAgZnVuY3Rpb25fYXJncyA9IHsKLSAgICAgICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlv
bi5mdW5jdGlvbl9uYW1lLAotICAgICAgICAgICAgICAgICdtYW5nbGVkTmFtZSc6IEJ1aWx0aW5z
R2VuZXJhdG9yLm1hbmdsZWROYW1lRm9yRnVuY3Rpb24oZnVuY3Rpb24pLAotICAgICAgICAgICAg
ICAgICdwYXJhbUNvdW50JzogbGVuKGZ1bmN0aW9uLnBhcmFtZXRlcnMpLAotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGZ1bmNOYW1lKXMsICUo
bWFuZ2xlZE5hbWUpcywgJShwYXJhbUNvdW50KWQpIFxcIiAlIGZ1bmN0aW9uX2FyZ3MpCi0gICAg
ICAgIHJldHVybiBsaW5lcwotCi0gICAgZGVmIGdlbmVyYXRlX2RlZmluZXNfZm9yX29iamVjdChz
ZWxmLCBvYmplY3QpOgotICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgIGZvciBmdW5jdGlvbiBp
biBvYmplY3QuZnVuY3Rpb25zOgotICAgICAgICAgICAgYXJncyA9IHsKLSAgICAgICAgICAgICAg
ICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3By
ZWZpeCcpLAotICAgICAgICAgICAgICAgICdvYmplY3RNYWNybyc6IG9iamVjdC5vYmplY3RfbmFt
ZS5yZXBsYWNlKCcuJywgJycpLnVwcGVyKCksCi0gICAgICAgICAgICAgICAgJ2Z1bmN0aW9uTWFj
cm8nOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1lLnVwcGVyKCksCi0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0JVSUxUSU5fJShv
YmplY3RNYWNybylzXyUoZnVuY3Rpb25NYWNybylzIDEiICUgYXJncykKLQotICAgICAgICByZXR1
cm4gbGluZXMKLQotICAgIGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX3RhYmxlX21hY3Jv
KHNlbGYpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2Vs
Zi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwKLSAgICAgICAgfQot
Ci0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVmaW5lICUobWFj
cm9QcmVmaXgpc19GT1JFQUNIX0JVSUxUSU5fQ09ERShtYWNybykgXFwiICUgYXJncykKLSAgICAg
ICAgZm9yIGZ1bmN0aW9uIGluIHNlbGYubW9kZWwoKS5hbGxfZnVuY3Rpb25zKCk6Ci0gICAgICAg
ICAgICBmdW5jdGlvbl9hcmdzID0gewotICAgICAgICAgICAgICAgICdmdW5jTmFtZSc6IGZ1bmN0
aW9uLmZ1bmN0aW9uX25hbWUsCi0gICAgICAgICAgICAgICAgJ2NvZGVOYW1lJzogQnVpbHRpbnNH
ZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlvbikgKyAnQ29kZScsCi0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1hY3JvKCUoY29kZU5h
bWUpcywgJShmdW5jTmFtZSlzLCBzXyUoY29kZU5hbWUpc0xlbmd0aCkgXFwiICUgZnVuY3Rpb25f
YXJncykKLSAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKLQotICAgIGRlZiBnZW5lcmF0
ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFjcm8oc2VsZik6Ci0gICAgICAgIGFyZ3MgPSB7Ci0g
ICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmco
J21hY3JvX3ByZWZpeCcpLAotICAgICAgICB9Ci0KLSAgICAgICAgbGluZXMgPSBbXQotICAgICAg
ICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfQlVJTFRJTl9G
VU5DVElPTl9OQU1FKG1hY3JvKSBcXCIgJSBhcmdzKQotICAgICAgICB1bmlxdWVfbmFtZXMgPSBs
aXN0KHNldChbZnVuY3Rpb24uZnVuY3Rpb25fbmFtZSBmb3IgZnVuY3Rpb24gaW4gc2VsZi5tb2Rl
bCgpLmFsbF9mdW5jdGlvbnMoKV0pKQotICAgICAgICB1bmlxdWVfbmFtZXMuc29ydCgpCi0gICAg
ICAgIGZvciBmdW5jdGlvbl9uYW1lIGluIHVuaXF1ZV9uYW1lczoKLSAgICAgICAgICAgIGZ1bmN0
aW9uX2FyZ3MgPSB7Ci0gICAgICAgICAgICAgICAgJ2Z1bmNOYW1lJzogZnVuY3Rpb25fbmFtZSwK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgbWFjcm8oJShm
dW5jTmFtZSlzKSBcXCIgJSBmdW5jdGlvbl9hcmdzKQotICAgICAgICByZXR1cm4gJ1xuJy5qb2lu
KGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRp
bnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5l
ZF9pbXBsZW1lbnRhdGlvbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDk0NDM0
YjY0NjhhMTUzZjBmODZjYTg1ZDE3OWZmNmM2ZjNjOGI4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9i
dWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weQorKysg
L2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBD
b3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1p
bXBvcnQgbG9nZ2luZwotaW1wb3J0IHJlCi1pbXBvcnQgc3RyaW5nCi1mcm9tIHN0cmluZyBpbXBv
cnQgVGVtcGxhdGUKLQotZnJvbSBidWlsdGluc19nZW5lcmF0b3IgaW1wb3J0IEJ1aWx0aW5zR2Vu
ZXJhdG9yCi1mcm9tIGJ1aWx0aW5zX21vZGVsIGltcG9ydCBGcmFtZXdvcmssIEZyYW1ld29ya3MK
LWZyb20gYnVpbHRpbnNfdGVtcGxhdGVzIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvclRlbXBsYXRl
cyBhcyBUZW1wbGF0ZXMKLQotbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2dsb2JhbCcpCi0KLQot
Y2xhc3MgQnVpbHRpbnNDb21iaW5lZEltcGxlbWVudGF0aW9uR2VuZXJhdG9yKEJ1aWx0aW5zR2Vu
ZXJhdG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwpOgotICAgICAgICBCdWlsdGlu
c0dlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2RlbCkKLQotICAgIGRlZiBvdXRwdXRfZmlsZW5h
bWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAiJXNCdWlsdGlucy5jcHAiICUgc2VsZi5tb2RlbCgp
LmZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKQotCi0gICAgZGVmIGdlbmVyYXRlX291dHB1
dChzZWxmKToKLSAgICAgICAgYXJncyA9IHsKLSAgICAgICAgICAgICduYW1lc3BhY2UnOiBzZWxm
Lm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ25hbWVzcGFjZScpLAotICAgICAgICAgICAgJ21h
Y3JvUHJlZml4Jzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgn
KSwKLSAgICAgICAgfQotCi0gICAgICAgIHNlY3Rpb25zID0gW10KLSAgICAgICAgc2VjdGlvbnMu
YXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGljZW5zZSgpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
VGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90RWRpdFdhcm5pbmcpLnN1YnN0aXR1dGUoYXJncykpCi0g
ICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3ByaW1hcnlfaGVhZGVyX2luY2x1
ZGVzKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY29uZGFyeV9o
ZWFkZXJfaW5jbHVkZXMoKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBs
YXRlcy5OYW1lc3BhY2VUb3ApLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIGZvciBmdW5jdGlv
biBpbiBzZWxmLm1vZGVsKCkuYWxsX2Z1bmN0aW9ucygpOgotICAgICAgICAgICAgc2VjdGlvbnMu
YXBwZW5kKHNlbGYuZ2VuZXJhdGVfZW1iZWRkZWRfY29kZV9zdHJpbmdfc2VjdGlvbl9mb3JfZnVu
Y3Rpb24oZnVuY3Rpb24pKQotICAgICAgICBpZiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrIGlzIEZy
YW1ld29ya3MuSmF2YVNjcmlwdENvcmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVt
cGxhdGUoVGVtcGxhdGVzLkNvbWJpbmVkSlNDSW1wbGVtZW50YXRpb25TdGF0aWNNYWNyb3MpLnN1
YnN0aXR1dGUoYXJncykpCi0gICAgICAgIGVsaWYgc2VsZi5tb2RlbCgpLmZyYW1ld29yayBpcyBG
cmFtZXdvcmtzLldlYkNvcmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUo
VGVtcGxhdGVzLkNvbWJpbmVkV2ViQ29yZUltcGxlbWVudGF0aW9uU3RhdGljTWFjcm9zKS5zdWJz
dGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVz
Lk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLQotICAgICAgICByZXR1cm4gIlxu
XG4iLmpvaW4oc2VjdGlvbnMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9p
bmNsdWRlcyhzZWxmKToKLSAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWwotICAgICAgICAgICAg
KFsiSmF2YVNjcmlwdENvcmUiXSwKLSAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwg
ImJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oIiksCi0gICAgICAgICAgICApLAotICAgICAg
ICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgi
SmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9FeGVjdXRhYmxlLmgiKSwKLSAgICAgICAgICAgICks
Ci0gICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCi0gICAgICAgICAg
ICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0pTQ2VsbElubGluZXMuaCIpLAotICAg
ICAgICAgICAgKSwKLSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAgICAo
IkphdmFTY3JpcHRDb3JlIiwgInJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIiksCi0gICAgICAg
ICAgICApLAotICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgiSmF2
YVNjcmlwdENvcmUiLCAicnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIiksCi0gICAgICAgICAg
ICApLAotICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAotICAgICAg
ICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9WTS5oIiksCi0gICAgICAgICAg
ICApLAotICAgICAgICBdCi0KLSAgICAgICAgcmV0dXJuICdcbicuam9pbihzZWxmLmdlbmVyYXRl
X2luY2x1ZGVzX2Zyb21fZW50cmllcyhoZWFkZXJfaW5jbHVkZXMpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfZnJh
bWV3b3JrX21hY3Jvcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5z
L2J1aWx0aW5zX2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA1YzMw
YTY1MzJjNjY2OWRjYTNiYmFmODBkOGQ4YWY2MmE2ZjNlZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2Zy
YW1ld29ya19tYWNyb3MucHkKQEAgLTAsMCArMSwxMDYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhv
bgorIworIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCitpbXBvcnQgc3RyaW5nCitmcm9tIHN0
cmluZyBpbXBvcnQgVGVtcGxhdGUKKworZnJvbSBidWlsdGluc19nZW5lcmF0b3IgaW1wb3J0IEJ1
aWx0aW5zR2VuZXJhdG9yCitmcm9tIGJ1aWx0aW5zX3RlbXBsYXRlcyBpbXBvcnQgQnVpbHRpbnNH
ZW5lcmF0b3JUZW1wbGF0ZXMgYXMgVGVtcGxhdGVzCisKK2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KCdnbG9iYWwnKQorCisKK2NsYXNzIEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yKEJ1
aWx0aW5zR2VuZXJhdG9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwpOgorICAgICAg
ICBCdWlsdGluc0dlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2RlbCkKKworICAgIGRlZiBvdXRw
dXRfZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAiJXNCdWlsdGluc01hY3Jvcy5oIiAl
IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbmFtZXNwYWNlJykKKworICAgIGRlZiBn
ZW5lcmF0ZV9vdXRwdXQoc2VsZik6CisgICAgICAgIGFyZ3MgPSB7CisgICAgICAgICAgICAnbmFt
ZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKSwKKyAg
ICAgICAgICAgICdoZWFkZXJHdWFyZCc6IHNlbGYub3V0cHV0X2ZpbGVuYW1lKCkucmVwbGFjZSgn
LicsICdfJyksCisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3
b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpLAorICAgICAgICB9CisKKyAgICAgICAgc2VjdGlv
bnMgPSBbXQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNlKCkp
CisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0V2Fy
bmluZykuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRl
KFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRUb3ApLnN1YnN0aXR1dGUoYXJncykpCisgICAg
ICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX2hlYWRlcl9pbmNsdWRlcygpKQorICAg
ICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZVRvcCkuc3Vi
c3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2Vj
dGlvbl9mb3JfY29kZV9pdGVyYXRpb25fbWFjcm8oKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5k
KHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfbmFtZV9pdGVyYXRpb25fbWFjcm8oKSkKKyAgICAg
ICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VCb3R0b20pLnN1
YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0
ZXMuSGVhZGVySW5jbHVkZUd1YXJkQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3MpKQorCisgICAgICAg
IHJldHVybiAiXG5cbiIuam9pbihzZWN0aW9ucykKKworICAgIGRlZiBnZW5lcmF0ZV9oZWFkZXJf
aW5jbHVkZXMoc2VsZik6CisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgZm9yIG9iamVjdCBp
biBzZWxmLm1vZGVsKCkub2JqZWN0czoKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnI2luY2x1
ZGUgIiVzQnVpbHRpbnMuaCInICUgQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JPYmpl
Y3Qob2JqZWN0KSkKKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQorCisgICAgZGVm
IGdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfaXRlcmF0aW9uX21hY3JvKHNlbGYpOgorICAgICAg
ICBtYWNyb1ByZWZpeCA9IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJl
Zml4JykKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IG1hY3Jv
UHJlZml4LAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBsaW5lcy5h
cHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKG1hY3Jv
KSBcXCIgJSBhcmdzKQorICAgICAgICBmb3Igb2JqZWN0IGluIHNlbGYubW9kZWwoKS5vYmplY3Rz
OgorICAgICAgICAgICAgb2JqZWN0X2FyZ3MgPSB7CisgICAgICAgICAgICAgICAgJ21hY3JvUHJl
Zml4JzogbWFjcm9QcmVmaXgsCisgICAgICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogb2JqZWN0
Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnXycpLnVwcGVyKCksCisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgICUobWFjcm9QcmVmaXgpc19GT1JFQUNIXyUo
b2JqZWN0TWFjcm8pc19CVUlMVElOX0NPREUobWFjcm8pIFxcIiAlIG9iamVjdF9hcmdzKQorICAg
ICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQorCisgICAgZGVmIGdlbmVyYXRlX3NlY3Rpb25f
Zm9yX25hbWVfaXRlcmF0aW9uX21hY3JvKHNlbGYpOgorICAgICAgICBhcmdzID0geworICAgICAg
ICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNy
b19wcmVmaXgnKSwKKyAgICAgICAgfQorCisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgbGlu
ZXMuYXBwZW5kKCIjZGVmaW5lICUobWFjcm9QcmVmaXgpc19GT1JFQUNIX1VOSVFVRV9CVUlMVElO
X0ZVTkNUSU9OX05BTUUobWFjcm8pIFxcIiAlIGFyZ3MpCisgICAgICAgIHVuaXF1ZV9uYW1lcyA9
IGxpc3Qoc2V0KFtmdW5jdGlvbi5mdW5jdGlvbl9uYW1lIGZvciBmdW5jdGlvbiBpbiBzZWxmLm1v
ZGVsKCkuYWxsX2Z1bmN0aW9ucygpXSkpCisgICAgICAgIHVuaXF1ZV9uYW1lcy5zb3J0KCkKKyAg
ICAgICAgZm9yIGZ1bmN0aW9uX25hbWUgaW4gdW5pcXVlX25hbWVzOgorICAgICAgICAgICAgZnVu
Y3Rpb25fYXJncyA9IHsKKyAgICAgICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlvbl9uYW1l
LAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybygl
KGZ1bmNOYW1lKXMpIFxcIiAlIGZ1bmN0aW9uX2FyZ3MpCisgICAgICAgIHJldHVybiAnXG4nLmpv
aW4obGluZXMpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaGVhZGVy
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE4YjlmMWFlODE1Yjc5NTQzM2M1YmNmYzNiMzU0ZjgxNTBkYTViZTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlu
cy9idWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaGVhZGVyLnB5CkBAIC0wLDAgKzEsMTgzIEBACisj
IS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE0IFVuaXZlcnNp
dHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCByZQoraW1w
b3J0IHN0cmluZworZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBsYXRlCisKK2Zyb20gYnVpbHRpbnNf
Z2VuZXJhdG9yIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvcgorZnJvbSBidWlsdGluc190ZW1wbGF0
ZXMgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yVGVtcGxhdGVzIGFzIFRlbXBsYXRlcworCitsb2cg
PSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFsJykKKworCitjbGFzcyBCdWlsdGluc09iamVjdEhl
YWRlckdlbmVyYXRvcihCdWlsdGluc0dlbmVyYXRvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IG1vZGVsLCBvYmplY3QpOgorICAgICAgICBCdWlsdGluc0dlbmVyYXRvci5fX2luaXRfXyhzZWxm
LCBtb2RlbCkKKyAgICAgICAgc2VsZi5vYmplY3QgPSBvYmplY3QKKworICAgIGRlZiBvdXRwdXRf
ZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAiJXNCdWlsdGlucy5oIiAlIEJ1aWx0aW5z
R2VuZXJhdG9yLm1hbmdsZWROYW1lRm9yT2JqZWN0KHNlbGYub2JqZWN0KQorCisgICAgZGVmIG1h
Y3JvX3ByZWZpeChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsu
c2V0dGluZygnbWFjcm9fcHJlZml4JykKKworICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6
CisgICAgICAgIGFyZ3MgPSB7CisgICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgp
LmZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKSwKKyAgICAgICAgICAgICdoZWFkZXJHdWFy
ZCc6IHNlbGYub3V0cHV0X2ZpbGVuYW1lKCkucmVwbGFjZSgnLicsICdfJyksCisgICAgICAgICAg
ICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgpLAorICAgICAgICAgICAgJ29iamVj
dE1hY3JvJzogc2VsZi5vYmplY3Qub2JqZWN0X25hbWUucmVwbGFjZSgnLicsICdfJykudXBwZXIo
KSwKKyAgICAgICAgfQorCisgICAgICAgIGNvbmRpdGlvbmFsX2d1YXJkID0gc2VsZi5vYmplY3Qu
YW5ub3RhdGlvbnMuZ2V0KCdjb25kaXRpb25hbCcpCisKKyAgICAgICAgc2VjdGlvbnMgPSBbXQor
ICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNlKCkpCisgICAgICAg
IHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0V2FybmluZykuc3Vi
c3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRl
cy5IZWFkZXJJbmNsdWRlR3VhcmRUb3ApLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIGlmIGNv
bmRpdGlvbmFsX2d1YXJkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5k
KCIjaWYgJXMiICUgY29uZGl0aW9uYWxfZ3VhcmQpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChz
ZWxmLmdlbmVyYXRlX3NlY29uZGFyeV9oZWFkZXJfaW5jbHVkZXMoKSkKKyAgICAgICAgc2VjdGlv
bnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfZm9yd2FyZF9kZWNsYXJhdGlvbnMoKSkKKyAgICAgICAg
c2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VUb3ApLnN1YnN0aXR1
dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25f
Zm9yX29iamVjdChzZWxmLm9iamVjdCkpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdl
bmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfdGFibGVfbWFjcm8oKSkKKyAgICAgICAgc2VjdGlvbnMu
YXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9uYW1lX21hY3JvKCkpCisgICAg
ICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuT2JqZWN0SGVhZGVyU3RhdGlj
TWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxh
dGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAg
aWYgY29uZGl0aW9uYWxfZ3VhcmQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWN0aW9ucy5h
cHBlbmQoIiNlbmRpZiAvLyAlcyIgJSBjb25kaXRpb25hbF9ndWFyZCkKKyAgICAgICAgc2VjdGlv
bnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRCb3R0b20pLnN1
YnN0aXR1dGUoYXJncykpCisKKyAgICAgICAgcmV0dXJuICJcblxuIi5qb2luKHNlY3Rpb25zKQor
CisgICAgZGVmIGdlbmVyYXRlX2ZvcndhcmRfZGVjbGFyYXRpb25zKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gIiIibmFtZXNwYWNlIEpTQyB7CitjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7CitjbGFz
cyBWTTsKK2VudW0gY2xhc3MgQ29uc3RydWN0QWJpbGl0eSA6IHVuc2lnbmVkOworfSIiIgorCisg
ICAgZGVmIGdlbmVyYXRlX3NlY29uZGFyeV9oZWFkZXJfaW5jbHVkZXMoc2VsZik6CisgICAgICAg
IGhlYWRlcl9pbmNsdWRlcyA9IFsKKyAgICAgICAgICAgIChbIkphdmFTY3JpcHRDb3JlIiwgIldl
YkNvcmUiXSwKKyAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgImJ1aWx0aW5zL0J1
aWx0aW5VdGlscy5oIiksCisgICAgICAgICAgICApLAorICAgICAgICBdCisKKyAgICAgICAgcmV0
dXJuICdcbicuam9pbihzZWxmLmdlbmVyYXRlX2luY2x1ZGVzX2Zyb21fZW50cmllcyhoZWFkZXJf
aW5jbHVkZXMpKQorCisgICAgZGVmIGdlbmVyYXRlX3NlY3Rpb25fZm9yX29iamVjdChzZWxmLCBv
YmplY3QpOgorICAgICAgICBsaW5lcyA9IFtdCisgICAgICAgIGxpbmVzLmFwcGVuZCgnLyogJXMg
Ki8nICUgb2JqZWN0Lm9iamVjdF9uYW1lKQorICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5nZW5l
cmF0ZV9leHRlcm5zX2Zvcl9vYmplY3Qob2JqZWN0KSkKKyAgICAgICAgbGluZXMuYXBwZW5kKCIi
KQorICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5nZW5lcmF0ZV9tYWNyb3NfZm9yX29iamVjdChv
YmplY3QpKQorICAgICAgICBsaW5lcy5hcHBlbmQoIiIpCisgICAgICAgIGxpbmVzLmV4dGVuZChz
ZWxmLmdlbmVyYXRlX2RlZmluZXNfZm9yX29iamVjdChvYmplY3QpKQorICAgICAgICByZXR1cm4g
J1xuJy5qb2luKGxpbmVzKQorCisgICAgZGVmIGdlbmVyYXRlX2V4dGVybnNfZm9yX29iamVjdChz
ZWxmLCBvYmplY3QpOgorICAgICAgICBsaW5lcyA9IFtdCisKKyAgICAgICAgZm9yIGZ1bmN0aW9u
IGluIG9iamVjdC5mdW5jdGlvbnM6CisgICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0geworICAg
ICAgICAgICAgICAgICdjb2RlTmFtZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1lRm9y
RnVuY3Rpb24oZnVuY3Rpb24pICsgJ0NvZGUnLAorICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBsaW5lcy5hcHBlbmQoIiIiZXh0ZXJuIGNvbnN0IGNoYXIqIHNfJShjb2RlTmFtZSlzOworZXh0
ZXJuIGNvbnN0IGludCBzXyUoY29kZU5hbWUpc0xlbmd0aDsKK2V4dGVybiBjb25zdCBKU0M6OkNv
bnN0cnVjdEFiaWxpdHkgc18lKGNvZGVOYW1lKXNDb25zdHJ1Y3RBYmlsaXR5OyIiIiAlIGZ1bmN0
aW9uX2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIGxpbmVzCisKKyAgICBkZWYgZ2VuZXJhdGVfbWFj
cm9zX2Zvcl9vYmplY3Qoc2VsZiwgb2JqZWN0KToKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAg
ICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubWFjcm9fcHJlZml4KCksCisgICAgICAgICAgICAnb2Jq
ZWN0TWFjcm8nOiBvYmplY3Qub2JqZWN0X25hbWUucmVwbGFjZSgnLicsICdfJykudXBwZXIoKSwK
KyAgICAgICAgfQorCisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgbGluZXMuYXBwZW5kKCIj
ZGVmaW5lICUobWFjcm9QcmVmaXgpc19GT1JFQUNIXyUob2JqZWN0TWFjcm8pc19CVUlMVElOX0RB
VEEobWFjcm8pIFxcIiAlIGFyZ3MpCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBvYmplY3QuZnVu
Y3Rpb25zOgorICAgICAgICAgICAgZnVuY3Rpb25fYXJncyA9IHsKKyAgICAgICAgICAgICAgICAn
ZnVuY05hbWUnOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1lLAorICAgICAgICAgICAgICAgICdtYW5n
bGVkTmFtZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1lRm9yRnVuY3Rpb24oZnVuY3Rp
b24pLAorICAgICAgICAgICAgICAgICdwYXJhbUNvdW50JzogbGVuKGZ1bmN0aW9uLnBhcmFtZXRl
cnMpLAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNy
byglKGZ1bmNOYW1lKXMsICUobWFuZ2xlZE5hbWUpcywgJShwYXJhbUNvdW50KWQpIFxcIiAlIGZ1
bmN0aW9uX2FyZ3MpCisgICAgICAgIHJldHVybiBsaW5lcworCisgICAgZGVmIGdlbmVyYXRlX2Rl
ZmluZXNfZm9yX29iamVjdChzZWxmLCBvYmplY3QpOgorICAgICAgICBsaW5lcyA9IFtdCisgICAg
ICAgIGZvciBmdW5jdGlvbiBpbiBvYmplY3QuZnVuY3Rpb25zOgorICAgICAgICAgICAgYXJncyA9
IHsKKyAgICAgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgpLAor
ICAgICAgICAgICAgICAgICdvYmplY3RNYWNybyc6IG9iamVjdC5vYmplY3RfbmFtZS5yZXBsYWNl
KCcuJywgJ18nKS51cHBlcigpLAorICAgICAgICAgICAgICAgICdmdW5jdGlvbk1hY3JvJzogZnVu
Y3Rpb24uZnVuY3Rpb25fbmFtZS51cHBlcigpLAorICAgICAgICAgICAgfQorICAgICAgICAgICAg
bGluZXMuYXBwZW5kKCIjZGVmaW5lICUobWFjcm9QcmVmaXgpc19CVUlMVElOXyUob2JqZWN0TWFj
cm8pc18lKGZ1bmN0aW9uTWFjcm8pcyAxIiAlIGFyZ3MpCisKKyAgICAgICAgcmV0dXJuIGxpbmVz
CisKKyAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV90YWJsZV9tYWNybyhzZWxmKToK
KyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubW9kZWwo
KS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJlZml4JyksCisgICAgICAgICAgICAnb2JqZWN0
TWFjcm8nOiBzZWxmLm9iamVjdC5vYmplY3RfbmFtZS5yZXBsYWNlKCcuJywgJ18nKS51cHBlcigp
LAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBsaW5lcy5hcHBlbmQo
IiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfJShvYmplY3RNYWNybylzX0JVSUxUSU5f
Q09ERShtYWNybykgXFwiICUgYXJncykKKyAgICAgICAgZm9yIGZ1bmN0aW9uIGluIHNlbGYub2Jq
ZWN0LmZ1bmN0aW9uczoKKyAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7CisgICAgICAgICAg
ICAgICAgJ2Z1bmNOYW1lJzogZnVuY3Rpb24uZnVuY3Rpb25fbmFtZSwKKyAgICAgICAgICAgICAg
ICAnY29kZU5hbWUnOiBCdWlsdGluc0dlbmVyYXRvci5tYW5nbGVkTmFtZUZvckZ1bmN0aW9uKGZ1
bmN0aW9uKSArICdDb2RlJywKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGluZXMuYXBw
ZW5kKCIgICAgbWFjcm8oJShjb2RlTmFtZSlzLCAlKGZ1bmNOYW1lKXMsIHNfJShjb2RlTmFtZSlz
TGVuZ3RoKSBcXCIgJSBmdW5jdGlvbl9hcmdzKQorICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxp
bmVzKQorCisgICAgZGVmIGdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybyhzZWxm
KToKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubWFj
cm9fcHJlZml4KCksCisgICAgICAgICAgICAnb2JqZWN0TWFjcm8nOiBzZWxmLm9iamVjdC5vYmpl
Y3RfbmFtZS5yZXBsYWNlKCcuJywgJ18nKS51cHBlcigpLAorICAgICAgICB9CisKKyAgICAgICAg
bGluZXMgPSBbXQorICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClz
X0ZPUkVBQ0hfJShvYmplY3RNYWNybylzX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFwi
ICUgYXJncykKKyAgICAgICAgdW5pcXVlX25hbWVzID0gbGlzdChzZXQoW2Z1bmN0aW9uLmZ1bmN0
aW9uX25hbWUgZm9yIGZ1bmN0aW9uIGluIHNlbGYub2JqZWN0LmZ1bmN0aW9uc10pKQorICAgICAg
ICB1bmlxdWVfbmFtZXMuc29ydCgpCisgICAgICAgIGZvciBmdW5jdGlvbl9uYW1lIGluIHVuaXF1
ZV9uYW1lczoKKyAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7CisgICAgICAgICAgICAgICAg
J2Z1bmNOYW1lJzogZnVuY3Rpb25fbmFtZSwKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
bGluZXMuYXBwZW5kKCIgICAgbWFjcm8oJShmdW5jTmFtZSlzKSBcXCIgJSBmdW5jdGlvbl9hcmdz
KQorICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2lt
cGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMv
YnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZh
YzM2NWQwYjgyZjEwZmIxZTJlNDg1MWI4ODA3MDcxZGVjMmM2YmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0
ZV9vYmplY3RfaW1wbGVtZW50YXRpb24ucHkKQEAgLTAsMCArMSwxMDYgQEAKKyMhL3Vzci9iaW4v
ZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNo
aW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCitpbXBvcnQgc3RyaW5n
Citmcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKKworZnJvbSBidWlsdGluc19nZW5lcmF0b3Ig
aW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yLCBXS19sY2ZpcnN0Citmcm9tIGJ1aWx0aW5zX21vZGVs
IGltcG9ydCBGcmFtZXdvcmssIEZyYW1ld29ya3MKK2Zyb20gYnVpbHRpbnNfdGVtcGxhdGVzIGlt
cG9ydCBCdWlsdGluc0dlbmVyYXRvclRlbXBsYXRlcyBhcyBUZW1wbGF0ZXMKKworbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoJ2dsb2JhbCcpCisKKworY2xhc3MgQnVpbHRpbnNPYmplY3RJbXBsZW1l
bnRhdGlvbkdlbmVyYXRvcihCdWlsdGluc0dlbmVyYXRvcik6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIG1vZGVsLCBvYmplY3QpOgorICAgICAgICBCdWlsdGluc0dlbmVyYXRvci5fX2luaXRfXyhz
ZWxmLCBtb2RlbCkKKyAgICAgICAgc2VsZi5vYmplY3QgPSBvYmplY3QKKworICAgIGRlZiBvdXRw
dXRfZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAiJXNCdWlsdGlucy5jcHAiICUgQnVp
bHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JPYmplY3Qoc2VsZi5vYmplY3QpCisKKyAgICBk
ZWYgbWFjcm9fcHJlZml4KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tb2RlbCgpLmZyYW1l
d29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKQorCisgICAgZGVmIGdlbmVyYXRlX291dHB1dChz
ZWxmKToKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICduYW1lc3BhY2UnOiBzZWxmLm1v
ZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ25hbWVzcGFjZScpLAorICAgICAgICAgICAgJ21hY3Jv
UHJlZml4Jzogc2VsZi5tYWNyb19wcmVmaXgoKSwKKyAgICAgICAgICAgICdvYmplY3RNYWNybyc6
IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnXycpLnVwcGVyKCksCisgICAg
ICAgICAgICAnb2JqZWN0TmFtZUxDJzogV0tfbGNmaXJzdChzZWxmLm9iamVjdC5vYmplY3RfbmFt
ZSksCisgICAgICAgIH0KKworICAgICAgICBjb25kaXRpb25hbF9ndWFyZCA9IHNlbGYub2JqZWN0
LmFubm90YXRpb25zLmdldCgnY29uZGl0aW9uYWwnKQorCisgICAgICAgIHNlY3Rpb25zID0gW10K
KyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGljZW5zZSgpKQorICAgICAg
ICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90RWRpdFdhcm5pbmcpLnN1
YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3By
aW1hcnlfaGVhZGVyX2luY2x1ZGVzKCkpCisgICAgICAgIGlmIGNvbmRpdGlvbmFsX2d1YXJkIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKCIjaWYgJXMiICUgY29uZGl0
aW9uYWxfZ3VhcmQpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY29u
ZGFyeV9oZWFkZXJfaW5jbHVkZXMoKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRl
KFRlbXBsYXRlcy5OYW1lc3BhY2VUb3ApLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIGZvciBm
dW5jdGlvbiBpbiBzZWxmLm9iamVjdC5mdW5jdGlvbnM6CisgICAgICAgICAgICBzZWN0aW9ucy5h
cHBlbmQoc2VsZi5nZW5lcmF0ZV9lbWJlZGRlZF9jb2RlX3N0cmluZ19zZWN0aW9uX2Zvcl9mdW5j
dGlvbihmdW5jdGlvbikpCisgICAgICAgIGlmIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsgaXMgRnJh
bWV3b3Jrcy5KYXZhU2NyaXB0Q29yZToKKyAgICAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1w
bGF0ZShUZW1wbGF0ZXMuT2JqZWN0SlNDSW1wbGVtZW50YXRpb25TdGF0aWNNYWNyb3MpLnN1YnN0
aXR1dGUoYXJncykpCisgICAgICAgIGVsaWYgc2VsZi5tb2RlbCgpLmZyYW1ld29yayBpcyBGcmFt
ZXdvcmtzLldlYkNvcmU6CisgICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVt
cGxhdGVzLk9iamVjdFdlYkNvcmVJbXBsZW1lbnRhdGlvblN0YXRpY01hY3Jvcykuc3Vic3RpdHV0
ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1l
c3BhY2VCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIGlmIGNvbmRpdGlvbmFsX2d1
YXJkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKCIjZW5kaWYgLy8g
JXNcbiIgJSBjb25kaXRpb25hbF9ndWFyZCkKKworICAgICAgICByZXR1cm4gIlxuXG4iLmpvaW4o
c2VjdGlvbnMpCisKKyAgICBkZWYgZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcyhz
ZWxmKToKKyAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWworICAgICAgICAgICAgKFsiSmF2YVNj
cmlwdENvcmUiXSwKKyAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgImJ1aWx0aW5z
L0J1aWx0aW5FeGVjdXRhYmxlcy5oIiksCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKFsi
SmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgiSmF2YVNjcmlw
dENvcmUiLCAicnVudGltZS9FeGVjdXRhYmxlLmgiKSwKKyAgICAgICAgICAgICksCisgICAgICAg
ICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCisgICAgICAgICAgICAgICAgKCJK
YXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0pTQ2VsbElubGluZXMuaCIpLAorICAgICAgICAgICAg
KSwKKyAgICAgICAgICAgIChbIldlYkNvcmUiXSwKKyAgICAgICAgICAgICAgICAoIkphdmFTY3Jp
cHRDb3JlIiwgInJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIiksCisgICAgICAgICAgICApLAor
ICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENv
cmUiLCAicnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIiksCisgICAgICAgICAgICApLAorICAg
ICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAg
ICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9WTS5oIiksCisgICAgICAgICAgICApLAorICAg
ICAgICAgICAgKFsiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgiV2ViQ29yZSIsICJiaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgiKSwKKyAgICAgICAgICAgICksCisgICAgICAg
IF0KKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2VuZXJhdGVfaW5jbHVkZXNfZnJv
bV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5w
eSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVy
YXRlX29iamVjdF93cmFwcGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjYTQwZDRkZjE5NjQ3NGU3NzViZWM1
MDEwZGQ2MGUyMTM1NzkzNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5weQpA
QCAtMCwwICsxLDEwMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAo
YykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoYykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2ltcG9ydCBsb2dn
aW5nCitpbXBvcnQgcmUKK2ltcG9ydCBzdHJpbmcKK2Zyb20gc3RyaW5nIGltcG9ydCBUZW1wbGF0
ZQorCitmcm9tIGJ1aWx0aW5zX2dlbmVyYXRvciBpbXBvcnQgQnVpbHRpbnNHZW5lcmF0b3IKK2Zy
b20gYnVpbHRpbnNfdGVtcGxhdGVzIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvclRlbXBsYXRlcyBh
cyBUZW1wbGF0ZXMKKworbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2dsb2JhbCcpCisKKworY2xh
c3MgQnVpbHRpbnNPYmplY3RXcmFwcGVyR2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIG9iamVjdCk6CisgICAgICAgIEJ1aWx0aW5zR2Vu
ZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsKQorICAgICAgICBzZWxmLm9iamVjdCA9IG9iamVj
dAorCisgICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuICIlc0J1
aWx0aW5zV3JhcHBlci5oIiAlIEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1lRm9yT2JqZWN0
KHNlbGYub2JqZWN0KQorCisgICAgZGVmIG1hY3JvX3ByZWZpeChzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJlZml4JykKKworICAg
IGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6CisgICAgICAgIGFyZ3MgPSB7CisgICAgICAgICAg
ICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2Un
KSwKKyAgICAgICAgICAgICdoZWFkZXJHdWFyZCc6IHNlbGYub3V0cHV0X2ZpbGVuYW1lKCkucmVw
bGFjZSgnLicsICdfJyksCisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3JvX3By
ZWZpeCgpLAorICAgICAgICAgICAgJ29iamVjdE5hbWUnOiBzZWxmLm9iamVjdC5vYmplY3RfbmFt
ZSwKKyAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnVw
cGVyKCksCisgICAgICAgIH0KKworICAgICAgICBjb25kaXRpb25hbF9ndWFyZCA9IHNlbGYub2Jq
ZWN0LmFubm90YXRpb25zLmdldCgnY29uZGl0aW9uYWwnKQorCisgICAgICAgIHNlY3Rpb25zID0g
W10KKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGljZW5zZSgpKQorICAg
ICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90RWRpdFdhcm5pbmcp
LnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1w
bGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkVG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBp
ZiBjb25kaXRpb25hbF9ndWFyZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlY3Rpb25zLmFw
cGVuZCgiI2lmICVzIiAlIGNvbmRpdGlvbmFsX2d1YXJkKQorICAgICAgICBzZWN0aW9ucy5hcHBl
bmQoc2VsZi5nZW5lcmF0ZV9zZWNvbmRhcnlfaGVhZGVyX2luY2x1ZGVzKCkpCisgICAgICAgIHNl
Y3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNlVG9wKS5zdWJzdGl0dXRl
KGFyZ3MpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk9iamVj
dFdyYXBwZXJIZWFkZXJCb2lsZXJwbGF0ZSkuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VCb3R0b20pLnN1YnN0aXR1
dGUoYXJncykpCisgICAgICAgIGlmIGNvbmRpdGlvbmFsX2d1YXJkIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKCIjZW5kaWYgLy8gJXMiICUgY29uZGl0aW9uYWxfZ3Vh
cmQpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuSGVhZGVySW5j
bHVkZUd1YXJkQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3MpKQorCisgICAgICAgIHJldHVybiAiXG5c
biIuam9pbihzZWN0aW9ucykKKworICAgIGRlZiBnZW5lcmF0ZV9zZWNvbmRhcnlfaGVhZGVyX2lu
Y2x1ZGVzKHNlbGYpOgorICAgICAgICBoZWFkZXJfaW5jbHVkZXMgPSBbCisgICAgICAgICAgICAo
WyJXZWJDb3JlIl0sCisgICAgICAgICAgICAgICAgKCJXZWJDb3JlIiwgIiVzQnVpbHRpbnMuaCIg
JSBzZWxmLm9iamVjdC5vYmplY3RfbmFtZSksCisgICAgICAgICAgICApLAorCisgICAgICAgICAg
ICAoWyJXZWJDb3JlIl0sCisgICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIiksCisgICAgICAgICAgICApLAorCisg
ICAgICAgICAgICAoWyJXZWJDb3JlIl0sCisgICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0Q29y
ZSIsICJidWlsdGlucy9CdWlsdGluVXRpbHMuaCIpLAorICAgICAgICAgICAgKSwKKworICAgICAg
ICAgICAgKFsiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAi
cnVudGltZS9JZGVudGlmaWVyLmgiKSwKKyAgICAgICAgICAgICksCisKKyAgICAgICAgICAgIChb
IldlYkNvcmUiXSwKKyAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgInJ1bnRpbWUv
SlNGdW5jdGlvbi5oIiksCisgICAgICAgICAgICApLAorICAgICAgICBdCisKKyAgICAgICAgcmV0
dXJuICdcbicuam9pbihzZWxmLmdlbmVyYXRlX2luY2x1ZGVzX2Zyb21fZW50cmllcyhoZWFkZXJf
aW5jbHVkZXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVp
bHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVh
ZGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODFhOWU1YmFlODkwYmU5ZDRj
YWFmYTQ4Y2U1ZjRiYjUxYzczNzhkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0
aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4MSAr
MCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IChjKSAyMDE0LCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChjKSAyMDE0
IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9y
dCByZQotaW1wb3J0IHN0cmluZwotZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBsYXRlCi0KLWZyb20g
YnVpbHRpbnNfZ2VuZXJhdG9yIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvcgotZnJvbSBidWlsdGlu
c190ZW1wbGF0ZXMgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yVGVtcGxhdGVzIGFzIFRlbXBsYXRl
cwotCi1sb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFsJykKLQotCi1jbGFzcyBCdWlsdGlu
c1NlcGFyYXRlSGVhZGVyR2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgbW9kZWwsIG9iamVjdCk6Ci0gICAgICAgIEJ1aWx0aW5zR2VuZXJhdG9yLl9f
aW5pdF9fKHNlbGYsIG1vZGVsKQotICAgICAgICBzZWxmLm9iamVjdCA9IG9iamVjdAotCi0gICAg
ZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuICIlc0J1aWx0aW5zLmgi
ICUgQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JPYmplY3Qoc2VsZi5vYmplY3QpCi0K
LSAgICBkZWYgbWFjcm9fcHJlZml4KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5tb2RlbCgp
LmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKQotCi0gICAgZGVmIGdlbmVyYXRlX291
dHB1dChzZWxmKToKLSAgICAgICAgYXJncyA9IHsKLSAgICAgICAgICAgICduYW1lc3BhY2UnOiBz
ZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ25hbWVzcGFjZScpLAotICAgICAgICAgICAg
J2hlYWRlckd1YXJkJzogc2VsZi5vdXRwdXRfZmlsZW5hbWUoKS5yZXBsYWNlKCcuJywgJ18nKSwK
LSAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubWFjcm9fcHJlZml4KCksCi0gICAgICAg
ICAgICAnb2JqZWN0TmFtZSc6IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnVwcGVyKCksCi0gICAg
ICAgIH0KLQotICAgICAgICBjb25kaXRpb25hbF9ndWFyZCA9IHNlbGYub2JqZWN0LmFubm90YXRp
b25zLmdldCgnY29uZGl0aW9uYWwnKQotCi0gICAgICAgIHNlY3Rpb25zID0gW10KLSAgICAgICAg
c2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGljZW5zZSgpKQotICAgICAgICBzZWN0aW9u
cy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90RWRpdFdhcm5pbmcpLnN1YnN0aXR1dGUo
YXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuSGVhZGVy
SW5jbHVkZUd1YXJkVG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBpZiBjb25kaXRpb25h
bF9ndWFyZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlY3Rpb25zLmFwcGVuZCgiI2lmICVz
IiAlIGNvbmRpdGlvbmFsX2d1YXJkKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5l
cmF0ZV9zZWNvbmRhcnlfaGVhZGVyX2luY2x1ZGVzKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVu
ZChzZWxmLmdlbmVyYXRlX2ZvcndhcmRfZGVjbGFyYXRpb25zKCkpCi0gICAgICAgIHNlY3Rpb25z
LmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNlVG9wKS5zdWJzdGl0dXRlKGFyZ3Mp
KQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWN0aW9uX2Zvcl9vYmpl
Y3Qoc2VsZi5vYmplY3QpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9z
ZWN0aW9uX2Zvcl9jb2RlX3RhYmxlX21hY3JvKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChz
ZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybygpKQotICAgICAgICBzZWN0
aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLlNlcGFyYXRlSGVhZGVyU3RhdGljTWFjcm9z
KS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVt
cGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgaWYgY29u
ZGl0aW9uYWxfZ3VhcmQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
IiNlbmRpZiAvLyAlcyIgJSBjb25kaXRpb25hbF9ndWFyZCkKLSAgICAgICAgc2VjdGlvbnMuYXBw
ZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRCb3R0b20pLnN1YnN0aXR1
dGUoYXJncykpCi0KLSAgICAgICAgcmV0dXJuICJcblxuIi5qb2luKHNlY3Rpb25zKQotCi0gICAg
ZGVmIGdlbmVyYXRlX2ZvcndhcmRfZGVjbGFyYXRpb25zKHNlbGYpOgotICAgICAgICByZXR1cm4g
IiIibmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci19IiIiCi0KLSAg
ICBkZWYgZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcyhzZWxmKToKLSAgICAgICAg
aGVhZGVyX2luY2x1ZGVzID0gWwotICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAg
ICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAiYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgiKSwKLSAg
ICAgICAgICAgICksCi0gICAgICAgIF0KLQotICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYu
Z2VuZXJhdGVfaW5jbHVkZXNfZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCi0KLSAgICBk
ZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2JqZWN0KHNlbGYsIG9iamVjdCk6Ci0gICAgICAgIGxp
bmVzID0gW10KLSAgICAgICAgbGluZXMuYXBwZW5kKCcvKiAlcyAqLycgJSBvYmplY3Qub2JqZWN0
X25hbWUpCi0gICAgICAgIGxpbmVzLmV4dGVuZChzZWxmLmdlbmVyYXRlX2V4dGVybnNfZm9yX29i
amVjdChvYmplY3QpKQotICAgICAgICBsaW5lcy5hcHBlbmQoIiIpCi0gICAgICAgIGxpbmVzLmV4
dGVuZChzZWxmLmdlbmVyYXRlX21hY3Jvc19mb3Jfb2JqZWN0KG9iamVjdCkpCi0gICAgICAgIGxp
bmVzLmFwcGVuZCgiIikKLSAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2VuZXJhdGVfZGVmaW5l
c19mb3Jfb2JqZWN0KG9iamVjdCkpCi0gICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCi0K
LSAgICBkZWYgZ2VuZXJhdGVfZXh0ZXJuc19mb3Jfb2JqZWN0KHNlbGYsIG9iamVjdCk6Ci0gICAg
ICAgIGxpbmVzID0gW10KLQotICAgICAgICBmb3IgZnVuY3Rpb24gaW4gb2JqZWN0LmZ1bmN0aW9u
czoKLSAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7Ci0gICAgICAgICAgICAgICAgJ2NvZGVO
YW1lJzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlvbikg
KyAnQ29kZScsCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiIiJl
eHRlcm4gY29uc3QgY2hhciogc18lKGNvZGVOYW1lKXM7Ci1leHRlcm4gY29uc3QgaW50IHNfJShj
b2RlTmFtZSlzTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzXyUo
Y29kZU5hbWUpc0NvbnN0cnVjdEFiaWxpdHk7IiIiICUgZnVuY3Rpb25fYXJncykKLQotICAgICAg
ICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBnZW5lcmF0ZV9tYWNyb3NfZm9yX29iamVjdChzZWxm
LCBvYmplY3QpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzog
c2VsZi5tYWNyb19wcmVmaXgoKSwKLSAgICAgICAgICAgICdvYmplY3RNYWNybyc6IG9iamVjdC5v
YmplY3RfbmFtZS5yZXBsYWNlKCcuJywgJ18nKS51cHBlcigpLAotICAgICAgICB9Ci0KLSAgICAg
ICAgbGluZXMgPSBbXQotICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZp
eClzX0ZPUkVBQ0hfJShvYmplY3RNYWNybylzX0JVSUxUSU5fREFUQShtYWNybykgXFwiICUgYXJn
cykKLSAgICAgICAgZm9yIGZ1bmN0aW9uIGluIG9iamVjdC5mdW5jdGlvbnM6Ci0gICAgICAgICAg
ICBmdW5jdGlvbl9hcmdzID0gewotICAgICAgICAgICAgICAgICdmdW5jTmFtZSc6IGZ1bmN0aW9u
LmZ1bmN0aW9uX25hbWUsCi0gICAgICAgICAgICAgICAgJ21hbmdsZWROYW1lJzogQnVpbHRpbnNH
ZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlvbiksCi0gICAgICAgICAgICAg
ICAgJ3BhcmFtQ291bnQnOiBsZW4oZnVuY3Rpb24ucGFyYW1ldGVycyksCi0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1hY3JvKCUoZnVuY05hbWUpcywgJSht
YW5nbGVkTmFtZSlzLCAlKHBhcmFtQ291bnQpZCkgXFwiICUgZnVuY3Rpb25fYXJncykKLSAgICAg
ICAgcmV0dXJuIGxpbmVzCi0KLSAgICBkZWYgZ2VuZXJhdGVfZGVmaW5lc19mb3Jfb2JqZWN0KHNl
bGYsIG9iamVjdCk6Ci0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgZm9yIGZ1bmN0aW9uIGlu
IG9iamVjdC5mdW5jdGlvbnM6Ci0gICAgICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgICAg
ICdtYWNyb1ByZWZpeCc6IHNlbGYubWFjcm9fcHJlZml4KCksCi0gICAgICAgICAgICAgICAgJ29i
amVjdE1hY3JvJzogb2JqZWN0Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnXycpLnVwcGVyKCks
Ci0gICAgICAgICAgICAgICAgJ2Z1bmN0aW9uTWFjcm8nOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1l
LnVwcGVyKCksCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZp
bmUgJShtYWNyb1ByZWZpeClzX0JVSUxUSU5fJShvYmplY3RNYWNybylzXyUoZnVuY3Rpb25NYWNy
bylzIDEiICUgYXJncykKLQotICAgICAgICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBnZW5lcmF0
ZV9zZWN0aW9uX2Zvcl9jb2RlX3RhYmxlX21hY3JvKHNlbGYpOgotICAgICAgICBhcmdzID0gewot
ICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5n
KCdtYWNyb19wcmVmaXgnKSwKLSAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0
Lm9iamVjdF9uYW1lLnVwcGVyKCksCi0gICAgICAgIH0KLQotICAgICAgICBsaW5lcyA9IFtdCi0g
ICAgICAgIGxpbmVzLmFwcGVuZCgiI2RlZmluZSAlKG1hY3JvUHJlZml4KXNfRk9SRUFDSF8lKG9i
amVjdE1hY3JvKXNfQlVJTFRJTl9DT0RFKG1hY3JvKSBcXCIgJSBhcmdzKQotICAgICAgICBmb3Ig
ZnVuY3Rpb24gaW4gc2VsZi5vYmplY3QuZnVuY3Rpb25zOgotICAgICAgICAgICAgZnVuY3Rpb25f
YXJncyA9IHsKLSAgICAgICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlvbi5mdW5jdGlvbl9u
YW1lLAotICAgICAgICAgICAgICAgICdjb2RlTmFtZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmds
ZWROYW1lRm9yRnVuY3Rpb24oZnVuY3Rpb24pICsgJ0NvZGUnLAotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGNvZGVOYW1lKXMsICUoZnVuY05h
bWUpcywgc18lKGNvZGVOYW1lKXNMZW5ndGgpIFxcIiAlIGZ1bmN0aW9uX2FyZ3MpCi0gICAgICAg
IHJldHVybiAnXG4nLmpvaW4obGluZXMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3Jf
Y29kZV9uYW1lX21hY3JvKHNlbGYpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ21h
Y3JvUHJlZml4Jzogc2VsZi5tYWNyb19wcmVmaXgoKSwKLSAgICAgICAgICAgICdvYmplY3RNYWNy
byc6IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnVwcGVyKCksCi0gICAgICAgIH0KLQotICAgICAg
ICBsaW5lcyA9IFtdCi0gICAgICAgIGxpbmVzLmFwcGVuZCgiI2RlZmluZSAlKG1hY3JvUHJlZml4
KXNfRk9SRUFDSF8lKG9iamVjdE1hY3JvKXNfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBc
XCIgJSBhcmdzKQotICAgICAgICB1bmlxdWVfbmFtZXMgPSBsaXN0KHNldChbZnVuY3Rpb24uZnVu
Y3Rpb25fbmFtZSBmb3IgZnVuY3Rpb24gaW4gc2VsZi5vYmplY3QuZnVuY3Rpb25zXSkpCi0gICAg
ICAgIHVuaXF1ZV9uYW1lcy5zb3J0KCkKLSAgICAgICAgZm9yIGZ1bmN0aW9uX25hbWUgaW4gdW5p
cXVlX25hbWVzOgotICAgICAgICAgICAgZnVuY3Rpb25fYXJncyA9IHsKLSAgICAgICAgICAgICAg
ICAnZnVuY05hbWUnOiBmdW5jdGlvbl9uYW1lLAotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGZ1bmNOYW1lKXMpIFxcIiAlIGZ1bmN0aW9uX2Fy
Z3MpCi0gICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0
ZV9pbXBsZW1lbnRhdGlvbi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0
aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDQzOTc1ZGFkZjFiMzdhNjNjMThmZWVmNTVhODU1Mzgy
ZjQxZDk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3Nl
cGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVy
c2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IHJlCi1p
bXBvcnQgc3RyaW5nCi1mcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKLQotZnJvbSBidWlsdGlu
c19nZW5lcmF0b3IgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yLCBXS19sY2ZpcnN0Ci1mcm9tIGJ1
aWx0aW5zX21vZGVsIGltcG9ydCBGcmFtZXdvcmssIEZyYW1ld29ya3MKLWZyb20gYnVpbHRpbnNf
dGVtcGxhdGVzIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvclRlbXBsYXRlcyBhcyBUZW1wbGF0ZXMK
LQotbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2dsb2JhbCcpCi0KLQotY2xhc3MgQnVpbHRpbnNT
ZXBhcmF0ZUltcGxlbWVudGF0aW9uR2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIG9iamVjdCk6Ci0gICAgICAgIEJ1aWx0aW5zR2VuZXJh
dG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsKQotICAgICAgICBzZWxmLm9iamVjdCA9IG9iamVjdAot
Ci0gICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuICIlc0J1aWx0
aW5zLmNwcCIgJSBCdWlsdGluc0dlbmVyYXRvci5tYW5nbGVkTmFtZUZvck9iamVjdChzZWxmLm9i
amVjdCkKLQotICAgIGRlZiBtYWNyb19wcmVmaXgoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxm
Lm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpCi0KLSAgICBkZWYgZ2Vu
ZXJhdGVfb3V0cHV0KHNlbGYpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ25hbWVz
cGFjZSc6IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbmFtZXNwYWNlJyksCi0gICAg
ICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgpLAotICAgICAgICAgICAg
J29iamVjdE1hY3JvJzogc2VsZi5vYmplY3Qub2JqZWN0X25hbWUudXBwZXIoKSwKLSAgICAgICAg
ICAgICdvYmplY3ROYW1lTEMnOiBXS19sY2ZpcnN0KHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lKSwK
LSAgICAgICAgfQotCi0gICAgICAgIGNvbmRpdGlvbmFsX2d1YXJkID0gc2VsZi5vYmplY3QuYW5u
b3RhdGlvbnMuZ2V0KCdjb25kaXRpb25hbCcpCi0KLSAgICAgICAgc2VjdGlvbnMgPSBbXQotICAg
ICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNlKCkpCi0gICAgICAgIHNl
Y3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0V2FybmluZykuc3Vic3Rp
dHV0ZShhcmdzKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfcHJpbWFy
eV9oZWFkZXJfaW5jbHVkZXMoKSkKLSAgICAgICAgaWYgY29uZGl0aW9uYWxfZ3VhcmQgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoIiNpZiAlcyIgJSBjb25kaXRpb25h
bF9ndWFyZCkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2Vjb25kYXJ5
X2hlYWRlcl9pbmNsdWRlcygpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVt
cGxhdGVzLk5hbWVzcGFjZVRvcCkuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgZm9yIGZ1bmN0
aW9uIGluIHNlbGYub2JqZWN0LmZ1bmN0aW9uczoKLSAgICAgICAgICAgIHNlY3Rpb25zLmFwcGVu
ZChzZWxmLmdlbmVyYXRlX2VtYmVkZGVkX2NvZGVfc3RyaW5nX3NlY3Rpb25fZm9yX2Z1bmN0aW9u
KGZ1bmN0aW9uKSkKLSAgICAgICAgaWYgc2VsZi5tb2RlbCgpLmZyYW1ld29yayBpcyBGcmFtZXdv
cmtzLkphdmFTY3JpcHRDb3JlOgotICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRl
KFRlbXBsYXRlcy5TZXBhcmF0ZUpTQ0ltcGxlbWVudGF0aW9uU3RhdGljTWFjcm9zKS5zdWJzdGl0
dXRlKGFyZ3MpKQotICAgICAgICBlbGlmIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsgaXMgRnJhbWV3
b3Jrcy5XZWJDb3JlOgotICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBs
YXRlcy5TZXBhcmF0ZVdlYkNvcmVJbXBsZW1lbnRhdGlvblN0YXRpY01hY3Jvcykuc3Vic3RpdHV0
ZShhcmdzKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1l
c3BhY2VCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIGlmIGNvbmRpdGlvbmFsX2d1
YXJkIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKCIjZW5kaWYgLy8g
JXNcbiIgJSBjb25kaXRpb25hbF9ndWFyZCkKLQotICAgICAgICByZXR1cm4gIlxuXG4iLmpvaW4o
c2VjdGlvbnMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcyhz
ZWxmKToKLSAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWwotICAgICAgICAgICAgKFsiSmF2YVNj
cmlwdENvcmUiXSwKLSAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgImJ1aWx0aW5z
L0J1aWx0aW5FeGVjdXRhYmxlcy5oIiksCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgKFsi
SmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgiSmF2YVNjcmlw
dENvcmUiLCAicnVudGltZS9FeGVjdXRhYmxlLmgiKSwKLSAgICAgICAgICAgICksCi0gICAgICAg
ICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCi0gICAgICAgICAgICAgICAgKCJK
YXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0pTQ2VsbElubGluZXMuaCIpLAotICAgICAgICAgICAg
KSwKLSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAgICAoIkphdmFTY3Jp
cHRDb3JlIiwgInJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIiksCi0gICAgICAgICAgICApLAot
ICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENv
cmUiLCAicnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIiksCi0gICAgICAgICAgICApLAotICAg
ICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAg
ICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9WTS5oIiksCi0gICAgICAgICAgICApLAotICAg
ICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgiV2ViQ29yZSIsICJiaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgiKSwKLSAgICAgICAgICAgICksCi0gICAgICAg
IF0KLQotICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2VuZXJhdGVfaW5jbHVkZXNfZnJv
bV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVy
LnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2Vu
ZXJhdGVfc2VwYXJhdGVfd3JhcHBlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzJiYzMzNjRjMGVmZjBiYjk5N2I2NTRiZDBkOTY5N2ZkZDBjMjEyMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVyLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBD
b3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1p
bXBvcnQgbG9nZ2luZwotaW1wb3J0IHJlCi1pbXBvcnQgc3RyaW5nCi1mcm9tIHN0cmluZyBpbXBv
cnQgVGVtcGxhdGUKLQotZnJvbSBidWlsdGluc19nZW5lcmF0b3IgaW1wb3J0IEJ1aWx0aW5zR2Vu
ZXJhdG9yCi1mcm9tIGJ1aWx0aW5zX3RlbXBsYXRlcyBpbXBvcnQgQnVpbHRpbnNHZW5lcmF0b3JU
ZW1wbGF0ZXMgYXMgVGVtcGxhdGVzCi0KLWxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdnbG9iYWwn
KQotCi0KLWNsYXNzIEJ1aWx0aW5zU2VwYXJhdGVXcmFwcGVyR2VuZXJhdG9yKEJ1aWx0aW5zR2Vu
ZXJhdG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIG9iamVjdCk6Ci0gICAgICAg
IEJ1aWx0aW5zR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsKQotICAgICAgICBzZWxmLm9i
amVjdCA9IG9iamVjdAotCi0gICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKLSAgICAgICAg
cmV0dXJuICIlc0J1aWx0aW5zV3JhcHBlci5oIiAlIEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWRO
YW1lRm9yT2JqZWN0KHNlbGYub2JqZWN0KQotCi0gICAgZGVmIG1hY3JvX3ByZWZpeChzZWxmKToK
LSAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJl
Zml4JykKLQotICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6Ci0gICAgICAgIGFyZ3MgPSB7
Ci0gICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5n
KCduYW1lc3BhY2UnKSwKLSAgICAgICAgICAgICdoZWFkZXJHdWFyZCc6IHNlbGYub3V0cHV0X2Zp
bGVuYW1lKCkucmVwbGFjZSgnLicsICdfJyksCi0gICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBz
ZWxmLm1hY3JvX3ByZWZpeCgpLAotICAgICAgICAgICAgJ29iamVjdE5hbWUnOiBzZWxmLm9iamVj
dC5vYmplY3RfbmFtZSwKLSAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9i
amVjdF9uYW1lLnVwcGVyKCksCi0gICAgICAgIH0KLQotICAgICAgICBjb25kaXRpb25hbF9ndWFy
ZCA9IHNlbGYub2JqZWN0LmFubm90YXRpb25zLmdldCgnY29uZGl0aW9uYWwnKQotCi0gICAgICAg
IHNlY3Rpb25zID0gW10KLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGlj
ZW5zZSgpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90
RWRpdFdhcm5pbmcpLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChU
ZW1wbGF0ZShUZW1wbGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkVG9wKS5zdWJzdGl0dXRlKGFyZ3Mp
KQotICAgICAgICBpZiBjb25kaXRpb25hbF9ndWFyZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IHNlY3Rpb25zLmFwcGVuZCgiI2lmICVzIiAlIGNvbmRpdGlvbmFsX2d1YXJkKQotICAgICAgICBz
ZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWNvbmRhcnlfaGVhZGVyX2luY2x1ZGVzKCkp
Ci0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNlVG9w
KS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVt
cGxhdGVzLlNlcGFyYXRlV3JhcHBlckhlYWRlckJvaWxlcnBsYXRlKS5zdWJzdGl0dXRlKGFyZ3Mp
KQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJv
dHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgaWYgY29uZGl0aW9uYWxfZ3VhcmQgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoIiNlbmRpZiAvLyAlcyIgJSBj
b25kaXRpb25hbF9ndWFyZCkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBs
YXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCi0KLSAgICAg
ICAgcmV0dXJuICJcblxuIi5qb2luKHNlY3Rpb25zKQotCi0gICAgZGVmIGdlbmVyYXRlX3NlY29u
ZGFyeV9oZWFkZXJfaW5jbHVkZXMoc2VsZik6Ci0gICAgICAgIGhlYWRlcl9pbmNsdWRlcyA9IFsK
LSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAgICAoIldlYkNvcmUiLCAi
JXNCdWlsdGlucy5oIiAlIHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lKSwKLSAgICAgICAgICAgICks
Ci0KLSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAgICAoIkphdmFTY3Jp
cHRDb3JlIiwgImJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgiKSwKLSAgICAg
ICAgICAgICksCi0KLSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAgICAo
IkphdmFTY3JpcHRDb3JlIiwgImJ1aWx0aW5zL0J1aWx0aW5VdGlscy5oIiksCi0gICAgICAgICAg
ICApLAotCi0gICAgICAgICAgICAoWyJXZWJDb3JlIl0sCi0gICAgICAgICAgICAgICAgKCJKYXZh
U2NyaXB0Q29yZSIsICJydW50aW1lL0lkZW50aWZpZXIuaCIpLAotICAgICAgICAgICAgKSwKLQot
ICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENv
cmUiLCAicnVudGltZS9KU0Z1bmN0aW9uLmgiKSwKLSAgICAgICAgICAgICksCi0gICAgICAgIF0K
LQotICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2VuZXJhdGVfaW5jbHVkZXNfZnJvbV9l
bnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc190ZW1wbGF0ZXMucHkgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc190ZW1wbGF0ZXMucHkKaW5kZXggMjVl
ZGY2NTZlYTJjZWE0ZDBkNGYxZjY5MjVkMzRhOGUxMGFmM2Q4My4uM2VlMDQ1NjYyNDk3YTkyNDYy
YWE2NTU2NDVlNzA4NTY0ZmZjNzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfdGVtcGxhdGVzLnB5CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX3RlbXBsYXRlcy5weQpAQCAtNzAs
NyArNzAsNyBAQCBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgTmFtZXNwYWNl
Qm90dG9tID0gKAogICAgICIiIn0gLy8gbmFtZXNwYWNlICR7bmFtZXNwYWNlfSIiIikKIAotICAg
IENvbWJpbmVkSGVhZGVyU3RhdGljTWFjcm9zID0gKAorICAgIEZyYW1ld29ya0hlYWRlckNvbW1v
bk1hY3JvcyA9ICgKICAgICAiIiIjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IoY29k
ZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKICAgICBKU0M6OkZ1bmN0aW9u
RXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKQEAgLTc5LDI3ICs3
OSwxNiBAQCAke21hY3JvUHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxU
SU5fR0VORVJBVE9SKQogCiAjZGVmaW5lICR7bWFjcm9QcmVmaXh9X0JVSUxUSU5fRVhJU1RTKG9i
amVjdCwgZnVuYykgZGVmaW5lZCAke21hY3JvUHJlZml4fV9CVUlMVElOXyAjIyBvYmplY3QgIyMg
XyAjIyBmdW5jIiIiKQogCi0gICAgU2VwYXJhdGVIZWFkZXJTdGF0aWNNYWNyb3MgPSAoCisgICAg
T2JqZWN0SGVhZGVyU3RhdGljTWFjcm9zID0gKAogICAgICIiIiNkZWZpbmUgREVDTEFSRV9CVUlM
VElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAog
ICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0m
KTsKIAotJHttYWNyb1ByZWZpeH1fRk9SRUFDSF8ke29iamVjdE5hbWV9X0JVSUxUSU5fQ09ERShE
RUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQorJHttYWNyb1ByZWZpeH1fRk9SRUFDSF8ke29iamVj
dE1hY3JvfV9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBE
RUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCiAKLSNkZWZpbmUgJHttYWNyb1ByZWZpeH1fQlVJTFRJ
Tl8ke29iamVjdE5hbWV9X0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgJHttYWNyb1ByZWZp
eH1fQlVJTFRJTl8gIyMgb2JqZWN0ICMjIF8gIyMgZnVuYyIiIikKKyNkZWZpbmUgJHttYWNyb1By
ZWZpeH1fQlVJTFRJTl8ke29iamVjdE1hY3JvfV9FWElTVFMob2JqZWN0LCBmdW5jKSBkZWZpbmVk
ICR7bWFjcm9QcmVmaXh9X0JVSUxUSU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMiIiIpCiAKLSAg
ICBDb21iaW5lZEpTQ0ltcGxlbWVudGF0aW9uU3RhdGljTWFjcm9zID0gKAotICAgICIiIgotI2Rl
ZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJn
dW1lbnRDb3VudCkgXFwKLUpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJh
dG9yKEpTQzo6Vk0mIHZtKSBcXAote1xcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxl
cygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJs
ZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgXAotfQotJHttYWNyb1ByZWZpeH1fRk9SRUFDSF9C
VUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIERFRklORV9CVUlM
VElOX0dFTkVSQVRPUgotIiIiKQotCi0gICAgU2VwYXJhdGVKU0NJbXBsZW1lbnRhdGlvblN0YXRp
Y01hY3JvcyA9ICgKKyAgICBPYmplY3RKU0NJbXBsZW1lbnRhdGlvblN0YXRpY01hY3JvcyA9ICgK
ICAgICAiIiIKICNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5j
dGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCiBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29k
ZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXFwKQEAgLTExMCwxOSArOTksNyBAQCAke21h
Y3JvUHJlZml4fV9GT1JFQUNIXyR7b2JqZWN0TWFjcm99X0JVSUxUSU5fQ09ERShERUZJTkVfQlVJ
TFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCiAiIiIpCiAK
LSAgICBDb21iaW5lZFdlYkNvcmVJbXBsZW1lbnRhdGlvblN0YXRpY01hY3JvcyA9ICgKLSAgICAg
ICAgIiIiCi0jZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rp
b25OYW1lLCBhcmd1bWVudENvdW50KSBcXAotSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVO
YW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFxcCi17XFwKLSAgICBKU1ZNQ2xpZW50RGF0YSog
Y2xpZW50RGF0YSA9IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7
IFxcCi0gICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS4ke29iamVjdE5h
bWVMQ31CdWlsdGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERh
dGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS4ke29iamVjdE5hbWVMQ31CdWlsdGlucygpLmNvZGVOYW1l
IyNTb3VyY2UoKSk7IFxcCi19Ci0ke21hY3JvUHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fQ09ERShE
RUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9S
Ci0iIiIpCi0KLSAgICBTZXBhcmF0ZVdlYkNvcmVJbXBsZW1lbnRhdGlvblN0YXRpY01hY3JvcyA9
ICgKKyAgICBPYmplY3RXZWJDb3JlSW1wbGVtZW50YXRpb25TdGF0aWNNYWNyb3MgPSAoCiAgICAg
ICAgICIiIgogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0
aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2Rl
TmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXApAQCAtMTM0LDcgKzExMSw3IEBAICR7bWFj
cm9QcmVmaXh9X0ZPUkVBQ0hfJHtvYmplY3RNYWNyb31fQlVJTFRJTl9DT0RFKERFRklORV9CVUlM
VElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKICIiIikKIAot
ICAgIFNlcGFyYXRlV3JhcHBlckhlYWRlckJvaWxlcnBsYXRlID0gKAorICAgIE9iamVjdFdyYXBw
ZXJIZWFkZXJCb2lsZXJwbGF0ZSA9ICgKICAgICAiIiJjbGFzcyAke29iamVjdE5hbWV9QnVpbHRp
bnNXcmFwcGVyIDogcHJpdmF0ZSBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgJHtvYmplY3ROYW1lfUJ1aWx0aW5zV3JhcHBlcihKU0M6OlZNKiB2bSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpzLWJ1aWx0aW5z
LnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMu
cHkKaW5kZXggMDcwNzA5YjQ4MDgzODhlNjc4ZjNkYjIzODJmNDZhM2Q2MzMzOTA2ZS4uODMzMTQ5
ZGNlNmQxNzk2NTU1MDRjYzQxOGUxYzM1NmYzNzMyZDZiMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKQEAgLTQ0LDcg
KzQ0LDcgQEAgZnJvbSBidWlsdGlucyBpbXBvcnQgKgogZGVmIGdlbmVyYXRlX2JpbmRpbmdzX2Zv
cl9idWlsdGluc19maWxlcyhidWlsdGluc19maWxlcz1bXSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X3BhdGg9Tm9uZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uY2F0ZW5hdGVfb3V0cHV0PUZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lZF9vdXRwdXQ9RmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY3Jvc19vbmx5PUZh
bHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZXdvcmtf
bmFtZT0iIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2Vf
b3V0cHV0PUZhbHNlKToKIApAQCAtNjQsMTggKzY0LDE3IEBAIGRlZiBnZW5lcmF0ZV9iaW5kaW5n
c19mb3JfYnVpbHRpbnNfZmlsZXMoYnVpbHRpbnNfZmlsZXM9W10sCiAgICAgICAgICAgICAgICAg
ZmlsZV9uYW1lID0gb2JqZWN0X25hbWUgKyAnLmpzJwogICAgICAgICAgICAgbW9kZWwucGFyc2Vf
YnVpbHRpbnNfZmlsZShmaWxlX25hbWUsIGZpbGVfdGV4dCkKIAotICAgIGlmIGNvbWJpbmVkX291
dHB1dDoKLSAgICAgICAgbG9nLmRlYnVnKCJVc2luZyBnZW5lcmF0b3Igc3R5bGU6IGNvbWJpbmVk
IGZpbGVzIGZvciBhbGwgYnVpbHRpbnMuIikKLSAgICAgICAgZ2VuZXJhdG9ycy5hcHBlbmQoQnVp
bHRpbnNDb21iaW5lZEhlYWRlckdlbmVyYXRvcihtb2RlbCkpCi0gICAgICAgIGdlbmVyYXRvcnMu
YXBwZW5kKEJ1aWx0aW5zQ29tYmluZWRJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihtb2RlbCkpCisg
ICAgaWYgbWFjcm9zX29ubHk6CisgICAgICAgIGxvZy5kZWJ1ZygiVXNpbmcgZ2VuZXJhdG9yIHN0
eWxlOiBjb21iaW5lZCBtYWNybyBkZWZpbml0aW9ucyBmb3IgYWxsIGJ1aWx0aW5zLiIpCisgICAg
ICAgIGdlbmVyYXRvcnMuYXBwZW5kKEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yKG1v
ZGVsKSkKICAgICBlbHNlOgogICAgICAgICBsb2cuZGVidWcoIlVzaW5nIGdlbmVyYXRvciBzdHls
ZTogc2luZ2xlIGZpbGVzIGZvciBlYWNoIGJ1aWx0aW4uIikKICAgICAgICAgZm9yIG9iamVjdCBp
biBtb2RlbC5vYmplY3RzOgotICAgICAgICAgICAgZ2VuZXJhdG9ycy5hcHBlbmQoQnVpbHRpbnNT
ZXBhcmF0ZUhlYWRlckdlbmVyYXRvcihtb2RlbCwgb2JqZWN0KSkKLSAgICAgICAgICAgIGdlbmVy
YXRvcnMuYXBwZW5kKEJ1aWx0aW5zU2VwYXJhdGVJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihtb2Rl
bCwgb2JqZWN0KSkKKyAgICAgICAgICAgIGdlbmVyYXRvcnMuYXBwZW5kKEJ1aWx0aW5zT2JqZWN0
SGVhZGVyR2VuZXJhdG9yKG1vZGVsLCBvYmplY3QpKQorICAgICAgICAgICAgZ2VuZXJhdG9ycy5h
cHBlbmQoQnVpbHRpbnNPYmplY3RJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihtb2RlbCwgb2JqZWN0
KSkKIAogICAgICAgICAgICAgaWYgbW9kZWwuZnJhbWV3b3JrIGlzIEZyYW1ld29ya3MuV2ViQ29y
ZToKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3JzLmFwcGVuZChCdWlsdGluc1NlcGFyYXRlV3Jh
cHBlckdlbmVyYXRvcihtb2RlbCwgb2JqZWN0KSkKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3Jz
LmFwcGVuZChCdWlsdGluc09iamVjdFdyYXBwZXJHZW5lcmF0b3IobW9kZWwsIG9iamVjdCkpCiAK
ICAgICBsb2cuZGVidWcoIiIpCiAgICAgbG9nLmRlYnVnKCJHZW5lcmF0aW5nIGJpbmRpbmdzIGZv
ciBidWlsdGlucy4iKQpAQCAtMTE2LDcgKzExNSw3IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6CiAgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9uKCItbyIsICItLW91dHB1dC1kaXJlY3Rvcnki
LCBoZWxwPSJEaXJlY3Rvcnkgd2hlcmUgZ2VuZXJhdGVkIGZpbGVzIHNob3VsZCBiZSB3cml0dGVu
LiIpCiAgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9uKCItLWZyYW1ld29yayIsIHR5cGU9ImNob2lj
ZSIsIGNob2ljZXM9YWxsb3dlZF9mcmFtZXdvcmtfbmFtZXMsIGhlbHA9IkRlc3RpbmF0aW9uIGZy
YW1ld29yayBmb3IgZ2VuZXJhdGVkIGZpbGVzLiIpCiAgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9u
KCItLWZvcmNlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iRm9yY2Ugb3V0cHV0IG9mIGdl
bmVyYXRlZCBzY3JpcHRzLCBldmVuIGlmIG5vdGhpbmcgY2hhbmdlZC4iKQotICAgIGNsaV9wYXJz
ZXIuYWRkX29wdGlvbigiLS1jb21iaW5lZCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IlBy
b2R1Y2Ugb25lIC5oLy5jcHAgZmlsZSBpbnN0ZWFkIG9mIHByb2R1Y2luZyBvbmUgcGVyIGJ1aWx0
aW4gb2JqZWN0LiIpCisgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9uKCItLW1hY3Jvcy1vbmx5Iiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iUHJvZHVjZSBvbmUgLmggZmlsZSB3aXRoIGl0ZXJh
dGlvbiBtYWNyb3MgZm9yIGFsbCBidWlsdGluIG9iamVjdHMgaW4gdGhlIGZyYW1ld29yay4iKQog
ICAgIGNsaV9wYXJzZXIuYWRkX29wdGlvbigiLXYiLCAiLS1kZWJ1ZyIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsIGhlbHA9IkxvZyBleHRyYSBvdXRwdXQgZm9yIGRlYnVnZ2luZyB0aGUgZ2VuZXJhdG9y
IGl0c2VsZi4iKQogICAgIGNsaV9wYXJzZXIuYWRkX29wdGlvbigiLXQiLCAiLS10ZXN0IiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iRW5hYmxlIHRlc3QgbW9kZS4iKQogCkBAIC0xNDAsNyAr
MTM5LDcgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBvcHRpb25zID0gewogICAg
ICAgICAnb3V0cHV0X3BhdGgnOiBhcmdfb3B0aW9ucy5vdXRwdXRfZGlyZWN0b3J5LAogICAgICAg
ICAnZnJhbWV3b3JrX25hbWUnOiBhcmdfb3B0aW9ucy5mcmFtZXdvcmssCi0gICAgICAgICdjb21i
aW5lZF9vdXRwdXQnOiBhcmdfb3B0aW9ucy5jb21iaW5lZCwKKyAgICAgICAgJ21hY3Jvc19vbmx5
JzogYXJnX29wdGlvbnMubWFjcm9zX29ubHksCiAgICAgICAgICdmb3JjZV9vdXRwdXQnOiBhcmdf
b3B0aW9ucy5mb3JjZSwKICAgICAgICAgJ2NvbmNhdGVuYXRlX291dHB1dCc6IGFyZ19vcHRpb25z
LnRlc3QsCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlw
dENvcmUtQnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNDVkODFjZWI5ZWQ5MDY0MjU4NGZhMGJiNDU4ZGNmMGRiYWRjM2EyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlz
ZS1Db21iaW5lZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotZnVuY3Rpb24gcmVqZWN0
UHJvbWlzZShwcm9taXNlLCByZWFzb24pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgdmFy
IHJlYWN0aW9ucyA9IHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnM7Ci0gICAgcHJvbWlz
ZS5AcHJvbWlzZVJlc3VsdCA9IHJlYXNvbjsKLSAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJl
YWN0aW9ucyA9IHVuZGVmaW5lZDsKLSAgICBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25z
ID0gdW5kZWZpbmVkOwotICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0
ZWQ7Ci0KLSAgICBASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLnByb21pc2VSZWplY3RlZChwcm9t
aXNlLCByZWFzb24sIHJlYWN0aW9ucyk7Ci0KLSAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMo
cmVhY3Rpb25zLCByZWFzb24pOwotfQotCi1mdW5jdGlvbiBmdWxmaWxsUHJvbWlzZShwcm9taXNl
LCB2YWx1ZSkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICB2YXIgcmVhY3Rpb25zID0gcHJv
bWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnM7Ci0gICAgcHJvbWlzZS5AcHJvbWlzZVJlc3Vs
dCA9IHZhbHVlOwotICAgIHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zID0gdW5kZWZp
bmVkOwotICAgIHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7Ci0g
ICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0gQHByb21pc2VGdWxmaWxsZWQ7Ci0KLSAgICBASW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLnByb21pc2VGdWxmaWxsZWQocHJvbWlzZSwgdmFsdWUsIHJl
YWN0aW9ucyk7Ci0KLSAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCB2YWx1
ZSk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9zLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVp
bHRpbi5Qcm9taXNlLU1hY3Jvcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDVkODFjZWI5ZWQ5MDY0MjU4NGZh
MGJiNDU4ZGNmMGRiYWRjM2EyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNl
LU1hY3Jvcy5qcwpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFl1
c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Z1bmN0aW9uIHJlamVjdFByb21pc2UocHJvbWlzZSwg
cmVhc29uKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIHZhciByZWFjdGlvbnMgPSBwcm9t
aXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zOworICAgIHByb21pc2UuQHByb21pc2VSZXN1bHQg
PSByZWFzb247CisgICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmlu
ZWQ7CisgICAgcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKKyAg
ICBwcm9taXNlLkBwcm9taXNlU3RhdGUgPSBAcHJvbWlzZVJlamVjdGVkOworCisgICAgQEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlUmVqZWN0ZWQocHJvbWlzZSwgcmVhc29uLCByZWFj
dGlvbnMpOworCisgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29u
KTsKK30KKworZnVuY3Rpb24gZnVsZmlsbFByb21pc2UocHJvbWlzZSwgdmFsdWUpCit7CisgICAg
InVzZSBzdHJpY3QiOworCisgICAgdmFyIHJlYWN0aW9ucyA9IHByb21pc2UuQHByb21pc2VGdWxm
aWxsUmVhY3Rpb25zOworICAgIHByb21pc2UuQHByb21pc2VSZXN1bHQgPSB2YWx1ZTsKKyAgICBw
cm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKKyAgICBwcm9taXNl
LkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOworICAgIHByb21pc2UuQHByb21p
c2VTdGF0ZSA9IEBwcm9taXNlRnVsZmlsbGVkOworCisgICAgQEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5wcm9taXNlRnVsZmlsbGVkKHByb21pc2UsIHZhbHVlLCByZWFjdGlvbnMpOworCisgICAg
QHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlw
dENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlw
ZS1Db21iaW5lZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ0OGI5ODMyYjY2
YTRiZGYwZmUyYzRiZDg3MDEwZjYwYWQ3MmRmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1
IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLQotZnVuY3Rpb24gZXZlcnkoY2FsbGJhY2sgLyos
IHRoaXNBcmcgKi8pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgaWYgKHRoaXMgPT09IG51
bGwpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUuZXZlcnkg
cmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwiKTsKLSAgICAKLSAgICBpZiAodGhpcyA9
PT0gdW5kZWZpbmVkKQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJvdG90
eXBlLmV2ZXJ5IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSB1bmRlZmluZWQiKTsKLSAgICAK
LSAgICB2YXIgYXJyYXkgPSBAT2JqZWN0KHRoaXMpOwotICAgIHZhciBsZW5ndGggPSBAdG9MZW5n
dGgoYXJyYXkubGVuZ3RoKTsKLQotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICJmdW5jdGlv
biIpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUuZXZlcnkg
Y2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Ci0gICAgCi0gICAgdmFyIHRoaXNBcmcgPSBh
cmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDsKLSAgICAKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmICghKGkgaW4g
YXJyYXkpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICghY2FsbGJhY2suQGNh
bGwodGhpc0FyZywgYXJyYXlbaV0sIGksIGFycmF5KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0aW9uIGZvckVhY2go
Y2FsbGJhY2sgLyosIHRoaXNBcmcgKi8pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgaWYg
KHRoaXMgPT09IG51bGwpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90
b3R5cGUuZm9yRWFjaCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbCIpOwotICAgIAot
ICAgIGlmICh0aGlzID09PSB1bmRlZmluZWQpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9y
KCJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgdW5k
ZWZpbmVkIik7Ci0gICAgCi0gICAgdmFyIGFycmF5ID0gQE9iamVjdCh0aGlzKTsKLSAgICB2YXIg
bGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7Ci0KLSAgICBpZiAodHlwZW9mIGNhbGxi
YWNrICE9PSAiZnVuY3Rpb24iKQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXku
cHJvdG90eXBlLmZvckVhY2ggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Ci0gICAgCi0g
ICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVu
ZGVmaW5lZDsKLSAgICAKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0g
ICAgICAgIGlmIChpIGluIGFycmF5KQotICAgICAgICAgICAgY2FsbGJhY2suQGNhbGwodGhpc0Fy
ZywgYXJyYXlbaV0sIGksIGFycmF5KTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGlu
LnByb3RvdHlwZS1NYWNyb3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1NYWNyb3MuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTQ0OGI5ODMyYjY2YTRiZGYwZmUyYzRiZDg3MDEwZjYwYWQ3MmRmMAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLU1hY3Jvcy5qcwpAQCAtMCwwICsxLDc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisKK2Z1bmN0aW9uIGV2ZXJ5KGNhbGxiYWNrIC8qLCB0aGlzQXJnICovKQoreworICAgICJ1
c2Ugc3RyaWN0IjsKKworICAgIGlmICh0aGlzID09PSBudWxsKQorICAgICAgICB0aHJvdyBuZXcg
QFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5v
dCBiZSBudWxsIik7CisgICAgCisgICAgaWYgKHRoaXMgPT09IHVuZGVmaW5lZCkKKyAgICAgICAg
dGhyb3cgbmV3IEBUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5ldmVyeSByZXF1aXJlcyB0aGF0
IHx0aGlzfCBub3QgYmUgdW5kZWZpbmVkIik7CisgICAgCisgICAgdmFyIGFycmF5ID0gQE9iamVj
dCh0aGlzKTsKKyAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7CisKKyAg
ICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAiZnVuY3Rpb24iKQorICAgICAgICB0aHJvdyBuZXcg
QFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11c3QgYmUgYSBmdW5j
dGlvbiIpOworICAgIAorICAgIHZhciB0aGlzQXJnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBh
cmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7CisgICAgCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBs
ZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoIShpIGluIGFycmF5KSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICBpZiAoIWNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIGFycmF5W2ldLCBp
LCBhcnJheSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHJl
dHVybiB0cnVlOworfQorCitmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrIC8qLCB0aGlzQXJnICov
KQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICh0aGlzID09PSBudWxsKQorICAgICAg
ICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggcmVxdWlyZXMg
dGhhdCB8dGhpc3wgbm90IGJlIG51bGwiKTsKKyAgICAKKyAgICBpZiAodGhpcyA9PT0gdW5kZWZp
bmVkKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmZvckVh
Y2ggcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIHVuZGVmaW5lZCIpOworICAgIAorICAgIHZh
ciBhcnJheSA9IEBPYmplY3QodGhpcyk7CisgICAgdmFyIGxlbmd0aCA9IEB0b0xlbmd0aChhcnJh
eS5sZW5ndGgpOworCisgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gImZ1bmN0aW9uIikKKyAg
ICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIGNhbGxi
YWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpOworICAgIAorICAgIHZhciB0aGlzQXJnID0gYXJndW1l
bnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7CisgICAgCisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoaSBpbiBhcnJheSkK
KyAgICAgICAgICAgIGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIGFycmF5W2ldLCBpLCBhcnJheSk7
CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlw
dENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5ZThjMWI0NDk2Y2M1NDRmNDA3NzM5NTA0MmNmZDI0ZThhMzk0NjYxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25z
dHJ1Y3Rvci1Db21iaW5lZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExMCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotZnVuY3Rpb24gb2YoLyog
aXRlbXMuLi4gKi8pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgdmFyIGxlbmd0aCA9IGFy
Z3VtZW50cy5sZW5ndGg7Ci0gICAgLy8gVE9ETzogTmVlZCBpc0NvbnN0cnVjdG9yKHRoaXMpIGlu
c3RlYWQgb2YgdHlwZW9mICJmdW5jdGlvbiIgY2hlY2suCi0gICAgdmFyIGFycmF5ID0gdHlwZW9m
IHRoaXMgPT09ICdmdW5jdGlvbicgPyBuZXcgdGhpcyhsZW5ndGgpIDogbmV3IEBBcnJheShsZW5n
dGgpOwotICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spCi0gICAgICAgIEBwdXRC
eVZhbERpcmVjdChhcnJheSwgaywgYXJndW1lbnRzW2tdKTsKLSAgICBhcnJheS5sZW5ndGggPSBs
ZW5ndGg7Ci0gICAgcmV0dXJuIGFycmF5OwotfQotCi1mdW5jdGlvbiBmcm9tKGl0ZW1zIC8qLCBt
YXBGbiwgdGhpc0FyZyAqLykKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICB2YXIgdGhpc09i
aiA9IHRoaXM7Ci0KLSAgICB2YXIgbWFwRm4gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3Vt
ZW50c1sxXSA6IHVuZGVmaW5lZDsKLQotICAgIHZhciB0aGlzQXJnOwotCi0gICAgaWYgKG1hcEZu
ICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBtYXBGbiAhPT0gImZ1bmN0aW9u
IikKLSAgICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5mcm9tIHJlcXVpcmVz
IHRoYXQgdGhlIHNlY29uZCBhcmd1bWVudCwgd2hlbiBwcm92aWRlZCwgYmUgYSBmdW5jdGlvbiIp
OwotCi0gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikKLSAgICAgICAgICAgIHRoaXNB
cmcgPSBhcmd1bWVudHNbMl07Ci0gICAgfQotCi0gICAgaWYgKGl0ZW1zID09IG51bGwpCi0gICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5mcm9tIHJlcXVpcmVzIGFuIGFycmF5LWxp
a2Ugb2JqZWN0IC0gbm90IG51bGwgb3IgdW5kZWZpbmVkIik7Ci0KLSAgICB2YXIgaXRlcmF0b3JN
ZXRob2QgPSBpdGVtc1tAc3ltYm9sSXRlcmF0b3JdOwotICAgIGlmIChpdGVyYXRvck1ldGhvZCAh
PSBudWxsKSB7Ci0gICAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JNZXRob2QgIT09ICJmdW5jdGlv
biIpCi0gICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkuZnJvbSByZXF1aXJl
cyB0aGF0IHRoZSBwcm9wZXJ0eSBvZiB0aGUgZmlyc3QgYXJndW1lbnQsIGl0ZW1zW1N5bWJvbC5p
dGVyYXRvcl0sIHdoZW4gZXhpc3RzLCBiZSBhIGZ1bmN0aW9uIik7Ci0KLSAgICAgICAgLy8gVE9E
TzogTmVlZCBpc0NvbnN0cnVjdG9yKHRoaXNPYmopIGluc3RlYWQgb2YgdHlwZW9mICJmdW5jdGlv
biIgY2hlY2suCi0gICAgICAgIHZhciByZXN1bHQgPSAodHlwZW9mIHRoaXNPYmogPT09ICJmdW5j
dGlvbiIpID8gQE9iamVjdChuZXcgdGhpc09iaigpKSA6IFtdOwotCi0gICAgICAgIHZhciBrID0g
MDsKLSAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuQGNhbGwoaXRlbXMpOwot
Ci0gICAgICAgIC8vIFNpbmNlIGZvci1vZiBsb29wIG9uY2UgbW9yZSBsb29rcyB1cCB0aGUgQEBp
dGVyYXRvciBwcm9wZXJ0eSBvZiBhIGdpdmVuIGl0ZXJhYmxlLAotICAgICAgICAvLyBpdCBjb3Vs
ZCBiZSBvYnNlcnZhYmxlIGlmIHRoZSB1c2VyIGRlZmluZXMgYSBnZXR0ZXIgZm9yIEBAaXRlcmF0
b3IuCi0gICAgICAgIC8vIFRvIGF2b2lkIHRoaXMgc2l0dWF0aW9uLCB3ZSBkZWZpbmUgYSB3cmFw
cGVyIG9iamVjdCB0aGF0IEBAaXRlcmF0b3IganVzdCByZXR1cm5zIGEgZ2l2ZW4gaXRlcmF0b3Iu
Ci0gICAgICAgIHZhciB3cmFwcGVyID0gewotICAgICAgICAgICAgW0BzeW1ib2xJdGVyYXRvcl0o
KSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOwotICAgICAgICAgICAgfQotICAg
ICAgICB9OwotCi0gICAgICAgIGZvciAodmFyIHZhbHVlIG9mIHdyYXBwZXIpIHsKLSAgICAgICAg
ICAgIGlmIChtYXBGbikKLSAgICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBr
LCB0aGlzQXJnID09PSB1bmRlZmluZWQgPyBtYXBGbih2YWx1ZSwgaykgOiBtYXBGbi5AY2FsbCh0
aGlzQXJnLCB2YWx1ZSwgaykpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIEBw
dXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHZhbHVlKTsKLSAgICAgICAgICAgIGsgKz0gMTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHJlc3VsdC5sZW5ndGggPSBrOwotICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgIH0KLQotICAgIHZhciBhcnJheUxpa2UgPSBAT2JqZWN0KGl0ZW1zKTsKLSAgICB2
YXIgYXJyYXlMaWtlTGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5TGlrZS5sZW5ndGgpOwotCi0gICAg
Ly8gVE9ETzogTmVlZCBpc0NvbnN0cnVjdG9yKHRoaXNPYmopIGluc3RlYWQgb2YgdHlwZW9mICJm
dW5jdGlvbiIgY2hlY2suCi0gICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gImZ1
bmN0aW9uIikgPyBAT2JqZWN0KG5ldyB0aGlzT2JqKGFycmF5TGlrZUxlbmd0aCkpIDogbmV3IEBB
cnJheShhcnJheUxpa2VMZW5ndGgpOwotCi0gICAgdmFyIGsgPSAwOwotICAgIHdoaWxlIChrIDwg
YXJyYXlMaWtlTGVuZ3RoKSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5TGlrZVtrXTsKLSAg
ICAgICAgaWYgKG1hcEZuKQotICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywg
dGhpc0FyZyA9PT0gdW5kZWZpbmVkID8gbWFwRm4odmFsdWUsIGspIDogbWFwRm4uQGNhbGwodGhp
c0FyZywgdmFsdWUsIGspKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgQHB1dEJ5VmFsRGly
ZWN0KHJlc3VsdCwgaywgdmFsdWUpOwotICAgICAgICBrICs9IDE7Ci0gICAgfQotCi0gICAgcmVz
dWx0Lmxlbmd0aCA9IGFycmF5TGlrZUxlbmd0aDsKLSAgICByZXR1cm4gcmVzdWx0OwotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2
YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLU1hY3Jvcy5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25z
dHJ1Y3Rvci1NYWNyb3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU4YzFiNDQ5NmNjNTQ0ZjQwNzczOTUwNDJj
ZmQyNGU4YTM5NDY2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1N
YWNyb3MuanMKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitmdW5jdGlvbiBvZigvKiBpdGVtcy4uLiAqLykKK3sKKyAgICAidXNl
IHN0cmljdCI7CisKKyAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsKKyAgICAvLyBU
T0RPOiBOZWVkIGlzQ29uc3RydWN0b3IodGhpcykgaW5zdGVhZCBvZiB0eXBlb2YgImZ1bmN0aW9u
IiBjaGVjay4KKyAgICB2YXIgYXJyYXkgPSB0eXBlb2YgdGhpcyA9PT0gJ2Z1bmN0aW9uJyA/IG5l
dyB0aGlzKGxlbmd0aCkgOiBuZXcgQEFycmF5KGxlbmd0aCk7CisgICAgZm9yICh2YXIgayA9IDA7
IGsgPCBsZW5ndGg7ICsraykKKyAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFycmF5LCBrLCBhcmd1
bWVudHNba10pOworICAgIGFycmF5Lmxlbmd0aCA9IGxlbmd0aDsKKyAgICByZXR1cm4gYXJyYXk7
Cit9CisKK2Z1bmN0aW9uIGZyb20oaXRlbXMgLyosIG1hcEZuLCB0aGlzQXJnICovKQoreworICAg
ICJ1c2Ugc3RyaWN0IjsKKworICAgIHZhciB0aGlzT2JqID0gdGhpczsKKworICAgIHZhciBtYXBG
biA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkOworCisg
ICAgdmFyIHRoaXNBcmc7CisKKyAgICBpZiAobWFwRm4gIT09IHVuZGVmaW5lZCkgeworICAgICAg
ICBpZiAodHlwZW9mIG1hcEZuICE9PSAiZnVuY3Rpb24iKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEBUeXBlRXJyb3IoIkFycmF5LmZyb20gcmVxdWlyZXMgdGhhdCB0aGUgc2Vjb25kIGFyZ3VtZW50
LCB3aGVuIHByb3ZpZGVkLCBiZSBhIGZ1bmN0aW9uIik7CisKKyAgICAgICAgaWYgKGFyZ3VtZW50
cy5sZW5ndGggPiAyKQorICAgICAgICAgICAgdGhpc0FyZyA9IGFyZ3VtZW50c1syXTsKKyAgICB9
CisKKyAgICBpZiAoaXRlbXMgPT0gbnVsbCkKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3Io
IkFycmF5LmZyb20gcmVxdWlyZXMgYW4gYXJyYXktbGlrZSBvYmplY3QgLSBub3QgbnVsbCBvciB1
bmRlZmluZWQiKTsKKworICAgIHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZW1zW0BzeW1ib2xJdGVy
YXRvcl07CisgICAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IG51bGwpIHsKKyAgICAgICAgaWYgKHR5
cGVvZiBpdGVyYXRvck1ldGhvZCAhPT0gImZ1bmN0aW9uIikKKyAgICAgICAgICAgIHRocm93IG5l
dyBAVHlwZUVycm9yKCJBcnJheS5mcm9tIHJlcXVpcmVzIHRoYXQgdGhlIHByb3BlcnR5IG9mIHRo
ZSBmaXJzdCBhcmd1bWVudCwgaXRlbXNbU3ltYm9sLml0ZXJhdG9yXSwgd2hlbiBleGlzdHMsIGJl
IGEgZnVuY3Rpb24iKTsKKworICAgICAgICAvLyBUT0RPOiBOZWVkIGlzQ29uc3RydWN0b3IodGhp
c09iaikgaW5zdGVhZCBvZiB0eXBlb2YgImZ1bmN0aW9uIiBjaGVjay4KKyAgICAgICAgdmFyIHJl
c3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gImZ1bmN0aW9uIikgPyBAT2JqZWN0KG5ldyB0aGlz
T2JqKCkpIDogW107CisKKyAgICAgICAgdmFyIGsgPSAwOworICAgICAgICB2YXIgaXRlcmF0b3Ig
PSBpdGVyYXRvck1ldGhvZC5AY2FsbChpdGVtcyk7CisKKyAgICAgICAgLy8gU2luY2UgZm9yLW9m
IGxvb3Agb25jZSBtb3JlIGxvb2tzIHVwIHRoZSBAQGl0ZXJhdG9yIHByb3BlcnR5IG9mIGEgZ2l2
ZW4gaXRlcmFibGUsCisgICAgICAgIC8vIGl0IGNvdWxkIGJlIG9ic2VydmFibGUgaWYgdGhlIHVz
ZXIgZGVmaW5lcyBhIGdldHRlciBmb3IgQEBpdGVyYXRvci4KKyAgICAgICAgLy8gVG8gYXZvaWQg
dGhpcyBzaXR1YXRpb24sIHdlIGRlZmluZSBhIHdyYXBwZXIgb2JqZWN0IHRoYXQgQEBpdGVyYXRv
ciBqdXN0IHJldHVybnMgYSBnaXZlbiBpdGVyYXRvci4KKyAgICAgICAgdmFyIHdyYXBwZXIgPSB7
CisgICAgICAgICAgICBbQHN5bWJvbEl0ZXJhdG9yXSgpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gaXRlcmF0b3I7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgZm9yICh2
YXIgdmFsdWUgb2Ygd3JhcHBlcikgeworICAgICAgICAgICAgaWYgKG1hcEZuKQorICAgICAgICAg
ICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHRoaXNBcmcgPT09IHVuZGVmaW5lZCA/
IG1hcEZuKHZhbHVlLCBrKSA6IG1hcEZuLkBjYWxsKHRoaXNBcmcsIHZhbHVlLCBrKSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywg
dmFsdWUpOworICAgICAgICAgICAgayArPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0
Lmxlbmd0aCA9IGs7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgdmFyIGFy
cmF5TGlrZSA9IEBPYmplY3QoaXRlbXMpOworICAgIHZhciBhcnJheUxpa2VMZW5ndGggPSBAdG9M
ZW5ndGgoYXJyYXlMaWtlLmxlbmd0aCk7CisKKyAgICAvLyBUT0RPOiBOZWVkIGlzQ29uc3RydWN0
b3IodGhpc09iaikgaW5zdGVhZCBvZiB0eXBlb2YgImZ1bmN0aW9uIiBjaGVjay4KKyAgICB2YXIg
cmVzdWx0ID0gKHR5cGVvZiB0aGlzT2JqID09PSAiZnVuY3Rpb24iKSA/IEBPYmplY3QobmV3IHRo
aXNPYmooYXJyYXlMaWtlTGVuZ3RoKSkgOiBuZXcgQEFycmF5KGFycmF5TGlrZUxlbmd0aCk7CisK
KyAgICB2YXIgayA9IDA7CisgICAgd2hpbGUgKGsgPCBhcnJheUxpa2VMZW5ndGgpIHsKKyAgICAg
ICAgdmFyIHZhbHVlID0gYXJyYXlMaWtlW2tdOworICAgICAgICBpZiAobWFwRm4pCisgICAgICAg
ICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB0aGlzQXJnID09PSB1bmRlZmluZWQgPyBt
YXBGbih2YWx1ZSwgaykgOiBtYXBGbi5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaykpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB2YWx1ZSk7Cisg
ICAgICAgIGsgKz0gMTsKKyAgICB9CisKKyAgICByZXN1bHQubGVuZ3RoID0gYXJyYXlMaWtlTGVu
Z3RoOworICAgIHJldHVybiByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWls
dGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9t
aXNlLUNvbWJpbmVkLmpzLXJlc3VsdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzMy
YThjODlmNWFhNWQ2Yzk1MjNkYTBlNjQ4MDExZjViZTk4OGRiZi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2Ut
Q29tYmluZWQuanMtcmVzdWx0CisrKyAvZGV2L251bGwKQEAgLTEsMTY4ICswLDAgQEAKLSMjIyBC
ZWdpbiBGaWxlOiBKU0NCdWlsdGlucy5oCi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE1IFl1c3Vr
ZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKiAKLSAqLwotCi0vLyBE
TyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20g
SmF2YVNjcmlwdCBmaWxlcyBmb3IKLS8vIGJ1aWx0aW5zIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5Ci0KLSNpZm5kZWYg
SlNDQnVpbHRpbnNfaAotI2RlZmluZSBKU0NCdWlsdGluc19oCi0KLW5hbWVzcGFjZSBKU0Mgewot
Y2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3MgVk07Ci0KLWVudW0gY2xhc3MgQ29uc3Ry
dWN0QWJpbGl0eSA6IHVuc2lnbmVkOwotfQotCi1uYW1lc3BhY2UgSlNDIHsKLQotLyogQnVpbHRp
bi5Qcm9taXNlICovCi1leHRlcm4gY29uc3QgY2hhciogc19idWlsdGluUHJvbWlzZVJlamVjdFBy
b21pc2VDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlz
ZUNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRp
blByb21pc2VSZWplY3RQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHk7Ci1leHRlcm4gY29uc3Qg
Y2hhciogc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZTsKLWV4dGVybiBjb25zdCBp
bnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aDsKLWV4dGVybiBjb25z
dCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29k
ZUNvbnN0cnVjdEFiaWxpdHk7Ci0KLSNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTlBST01JU0Vf
QlVJTFRJTl9EQVRBKG1hY3JvKSBcCi0gICAgbWFjcm8ocmVqZWN0UHJvbWlzZSwgYnVpbHRpblBy
b21pc2VSZWplY3RQcm9taXNlLCAyKSBcCi0gICAgbWFjcm8oZnVsZmlsbFByb21pc2UsIGJ1aWx0
aW5Qcm9taXNlRnVsZmlsbFByb21pc2UsIDIpIFwKLQotI2RlZmluZSBKU0NfQlVJTFRJTl9CVUlM
VElOUFJPTUlTRV9SRUpFQ1RQUk9NSVNFIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTlBS
T01JU0VfRlVMRklMTFBST01JU0UgMQotCi0jZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fQ09E
RShtYWNybykgXAotICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGUsIHJl
amVjdFByb21pc2UsIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aCkgXAot
ICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlLCBmdWxmaWxsUHJvbWlz
ZSwgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aCkgXAotCi0jZGVmaW5l
IEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAotICAgIG1hY3JvKGZ1
bGZpbGxQcm9taXNlKSBcCi0gICAgbWFjcm8ocmVqZWN0UHJvbWlzZSkgXAotCi0jZGVmaW5lIERF
Q0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRD
b3VudCkgXAotICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9y
KEpTQzo6Vk0mKTsKLQotSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFQ0xBUkVfQlVJTFRJTl9H
RU5FUkFUT1IpCi0jdW5kZWYgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgotCi0jZGVmaW5lIEpT
Q19CVUlMVElOX0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JVSUxUSU5fICMjIG9i
amVjdCAjIyBfICMjIGZ1bmMKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBKU0NC
dWlsdGluc19oCi0KLSMjIyBFbmQgRmlsZTogSlNDQnVpbHRpbnMuaAotCi0jIyMgQmVnaW4gRmls
ZTogSlNDQnVpbHRpbnMuY3BwCi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE1IFl1c3VrZSBTdXp1
a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKiAKLSAqLwotCi0vLyBETyBOT1Qg
RURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gSmF2YVNj
cmlwdCBmaWxlcyBmb3IKLS8vIGJ1aWx0aW5zIGJ5IHRoZSBzY3JpcHQ6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5Ci0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgotCi0jaW5jbHVkZSAiQnVpbHRpbkV4ZWN1
dGFibGVzLmgiCi0jaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGlu
ZXMuaCIKLSNpbmNsdWRlICJWTS5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY29uc3QgSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUNvbnN0cnVj
dEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0
IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGggPSA0MTM7Ci1jb25z
dCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGUgPQotICAgICIoZnVuY3Rp
b24gKHByb21pc2UsIHJlYXNvbilcbiIgXAotICAgICJ7XG4iIFwKLSAgICAiICAgIFwidXNlIHN0
cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICB2YXIgcmVhY3Rpb25zID0gcHJvbWlz
ZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucztcbiIgXAotICAgICIgICAgcHJvbWlzZS5AcHJvbWlz
ZVJlc3VsdCA9IHJlYXNvbjtcbiIgXAotICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxS
ZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAgICAiICAgIHByb21pc2UuQHByb21pc2VSZWpl
Y3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAgICAiICAgIHByb21pc2UuQHByb21pc2VT
dGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIEBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZVJlamVjdGVkKHByb21pc2UsIHJlYXNvbiwgcmVh
Y3Rpb25zKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rp
b25zKHJlYWN0aW9ucywgcmVhc29uKTtcbiIgXAotICAgICJ9KVxuIiBcCi07Ci0KLWNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlQ29u
c3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0Owot
Y29uc3QgaW50IHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGggPSA0MTI7
Ci1jb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlID0KLSAgICAi
KGZ1bmN0aW9uIChwcm9taXNlLCB2YWx1ZSlcbiIgXAotICAgICJ7XG4iIFwKLSAgICAiICAgIFwi
dXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICB2YXIgcmVhY3Rpb25zID0g
cHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnM7XG4iIFwKLSAgICAiICAgIHByb21pc2Uu
QHByb21pc2VSZXN1bHQgPSB2YWx1ZTtcbiIgXAotICAgICIgICAgcHJvbWlzZS5AcHJvbWlzZUZ1
bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAgICAiICAgIHByb21pc2UuQHByb21p
c2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAgICAiICAgIHByb21pc2UuQHBy
b21pc2VTdGF0ZSA9IEBwcm9taXNlRnVsZmlsbGVkO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAg
ICBASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLnByb21pc2VGdWxmaWxsZWQocHJvbWlzZSwgdmFs
dWUsIHJlYWN0aW9ucyk7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIEB0cmlnZ2VyUHJvbWlz
ZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHZhbHVlKTtcbiIgXAotICAgICJ9KVxuIiBcCi07Ci0KLQot
I2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwg
YXJndW1lbnRDb3VudCkgXAotSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5l
cmF0b3IoSlNDOjpWTSYgdm0pIFwKLXtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxl
cygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJs
ZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQotSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERF
RklORV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IK
LQotCi19IC8vIG5hbWVzcGFjZSBKU0MKLSMjIyBFbmQgRmlsZTogSlNDQnVpbHRpbnMuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9l
eHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9zLmpzLXJlc3VsdCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0ph
dmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1NYWNyb3MuanMtcmVzdWx0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY1NDNjZWFjOWU2NDBlNjNhOGQ5ODRlZGZjMTBiNGIyYTAyM2MyNzUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3Rl
ZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9zLmpzLXJlc3VsdApAQCAtMCww
ICsxLDQ5IEBACisjIyMgQmVnaW4gRmlsZTogSlNDQnVpbHRpbnNNYWNyb3MuaAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+Lgor
ICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICogCisgKi8KKworLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0
aWNhbGx5IGdlbmVyYXRlZCBmcm9tIEphdmFTY3JpcHQgZmlsZXMgZm9yCisvLyBidWlsdGlucyBi
eSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9nZW5lcmF0ZS1qcy1i
dWlsdGlucy5weQorCisjaWZuZGVmIEpTQ0J1aWx0aW5zTWFjcm9zX2gKKyNkZWZpbmUgSlNDQnVp
bHRpbnNNYWNyb3NfaAorCisjaW5jbHVkZSAiQnVpbHRpblByb21pc2VCdWlsdGlucy5oIgorCitu
YW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUobWFjcm8p
IFwKKyAgICBKU0NfRk9SRUFDSF9CVUlMVElOX1BST01JU0VfQlVJTFRJTl9DT0RFKG1hY3JvKSBc
CisKKyNkZWZpbmUgSlNDX0ZPUkVBQ0hfVU5JUVVFX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNy
bykgXAorICAgIG1hY3JvKGZ1bGZpbGxQcm9taXNlKSBcCisgICAgbWFjcm8ocmVqZWN0UHJvbWlz
ZSkgXAorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEpTQ0J1aWx0aW5zTWFjcm9z
X2gKKworIyMjIEVuZCBGaWxlOiBKU0NCdWlsdGluc01hY3Jvcy5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJhdGUuanMtcmVzdWx0IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCAyMjdiYTI0YzVjYzI5ZTVl
MjliMWRiOWY1NDYyNWZlMGYyOTUxODIyLi4zYzZjMjZhYTBlMWQ3ZmU5MGNhMTQ3M2RmNGFiM2Fl
M2Y4M2Y3OGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJh
dGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1TZXBhcmF0ZS5q
cy1yZXN1bHQKQEAgLTMxLDEwICszMSwxMiBAQAogI2lmbmRlZiBCdWlsdGluUHJvbWlzZUJ1aWx0
aW5zX2gKICNkZWZpbmUgQnVpbHRpblByb21pc2VCdWlsdGluc19oCiAKLQorI2luY2x1ZGUgIkJ1
aWx0aW5VdGlscy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJs
ZTsKK2NsYXNzIFZNOworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9
CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNTQsMjEgKzU2LDIxIEBAIGV4dGVybiBjb25zdCBKU0M6
OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUNvbnN0
cnVjdEFiCiAjZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5fUFJPTUlTRV9SRUpFQ1RQUk9NSVNF
IDEKICNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTl9QUk9NSVNFX0ZVTEZJTExQUk9NSVNFIDEK
IAotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJTl9DT0RFKG1hY3Jv
KSBcCisjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fUFJPTUlTRV9CVUlMVElOX0NPREUobWFj
cm8pIFwKICAgICBtYWNybyhidWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VDb2RlLCByZWplY3RQ
cm9taXNlLCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGgpIFwKICAgICBt
YWNybyhidWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZSwgZnVsZmlsbFByb21pc2UsIHNf
YnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGgpIFwKIAotI2RlZmluZSBKU0Nf
Rk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCisj
ZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fUFJPTUlTRV9CVUlMVElOX0ZVTkNUSU9OX05BTUUo
bWFjcm8pIFwKICAgICBtYWNybyhmdWxmaWxsUHJvbWlzZSkgXAogICAgIG1hY3JvKHJlamVjdFBy
b21pc2UpIFwKIAogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBm
dW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJs
ZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKLUpTQ19GT1JFQUNIX0JVSUxUSU4u
UFJPTUlTRV9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKK0pTQ19GT1JF
QUNIX0JVSUxUSU5fUFJPTUlTRV9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRP
UikKICN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCiAKLSNkZWZpbmUgSlNDX0JVSUxU
SU5fQlVJTFRJTi5QUk9NSVNFX0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JVSUxU
SU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMKKyNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTl9Q
Uk9NSVNFX0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JVSUxUSU5fICMjIG9iamVj
dCAjIyBfICMjIGZ1bmMKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKQEAgLTE1OSw3ICsxNjEsNyBA
QCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlID0KIEpTQzo6
RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcCiB7
XAogICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFi
bGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2Uo
KSk7IH0KLUpTQ19GT1JFQUNIX0JVSUxUSU4uUFJPTUlTRV9CVUlMVElOX0NPREUoREVGSU5FX0JV
SUxUSU5fR0VORVJBVE9SKQorSlNDX0ZPUkVBQ0hfQlVJTFRJTl9QUk9NSVNFX0JVSUxUSU5fQ09E
RShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJB
VE9SCiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmlu
ZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMt
cmVzdWx0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGY2N2M1YWMwMWRkYTNkYmY5
YjFkOWU3Nzk4MzlmZDc4NjNjNmI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJl
c3VsdAorKysgL2Rldi9udWxsCkBAIC0xLDE5MiArMCwwIEBACi0jIyMgQmVnaW4gRmlsZTogSlND
QnVpbHRpbnMuaAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1enVraSA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5PVCBFRElU
IFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0
IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2lmbmRlZiBKU0NCdWlsdGlu
c19oCi0jZGVmaW5lIEpTQ0J1aWx0aW5zX2gKLQotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBGdW5j
dGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBWTTsKLQotZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5
IDogdW5zaWduZWQ7Ci19Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0vKiBCdWlsdGluLnByb3RvdHlw
ZSAqLwotZXh0ZXJuIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZTsKLWV4
dGVybiBjb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlTGVuZ3RoOwotZXh0ZXJu
IGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVFdmVyeUNvZGVD
b25zdHJ1Y3RBYmlsaXR5OwotZXh0ZXJuIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUZv
ckVhY2hDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29k
ZUxlbmd0aDsKLWV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJv
dG90eXBlRm9yRWFjaENvZGVDb25zdHJ1Y3RBYmlsaXR5OwotCi0jZGVmaW5lIEpTQ19GT1JFQUNI
X0JVSUxUSU5QUk9UT1RZUEVfQlVJTFRJTl9EQVRBKG1hY3JvKSBcCi0gICAgbWFjcm8oZXZlcnks
IGJ1aWx0aW5Qcm90b3R5cGVFdmVyeSwgMSkgXAotICAgIG1hY3JvKGZvckVhY2gsIGJ1aWx0aW5Q
cm90b3R5cGVGb3JFYWNoLCAxKSBcCi0KLSNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTlBST1RP
VFlQRV9FVkVSWSAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5QUk9UT1RZUEVfRk9SRUFD
SCAxCi0KLSNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKG1hY3JvKSBcCi0gICAgbWFj
cm8oYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSwgZXZlcnksIHNfYnVpbHRpblByb3RvdHlwZUV2
ZXJ5Q29kZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSwg
Zm9yRWFjaCwgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGgpIFwKLQotI2RlZmlu
ZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKLSAgICBtYWNybyhl
dmVyeSkgXAotICAgIG1hY3JvKGZvckVhY2gpIFwKLQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5f
R0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKLSAgICBK
U0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7Ci0K
LUpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQotI3Vu
ZGVmIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IKLQotI2RlZmluZSBKU0NfQlVJTFRJTl9FWElT
VFMob2JqZWN0LCBmdW5jKSBkZWZpbmVkIEpTQ19CVUlMVElOXyAjIyBvYmplY3QgIyMgXyAjIyBm
dW5jCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gSlNDQnVpbHRpbnNfaAotCi0j
IyMgRW5kIEZpbGU6IEpTQ0J1aWx0aW5zLmgKLQotIyMjIEJlZ2luIEZpbGU6IEpTQ0J1aWx0aW5z
LmNwcAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPi4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5PVCBFRElUIFRISVMg
RklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVz
IGZvcgotLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCi0KLSNpbmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIK
LSNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgotI2lu
Y2x1ZGUgIlZNLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFi
aWxpdHkgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6
Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblBy
b3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCA9IDc2MjsKLWNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3Rv
dHlwZUV2ZXJ5Q29kZSA9Ci0gICAgIihmdW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCi0gICAgIntc
biIgXAotICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAg
IGlmICh0aGlzID09PSBudWxsKVxuIiBcCi0gICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJy
b3IoXCJBcnJheS5wcm90b3R5cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51
bGxcIik7XG4iIFwKLSAgICAiICAgIFxuIiBcCi0gICAgIiAgICBpZiAodGhpcyA9PT0gdW5kZWZp
bmVkKVxuIiBcCi0gICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90
b3R5cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIHVuZGVmaW5lZFwiKTtcbiIg
XAotICAgICIgICAgXG4iIFwKLSAgICAiICAgIHZhciBhcnJheSA9IEBPYmplY3QodGhpcyk7XG4i
IFwKLSAgICAiICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTtcbiIgXAot
ICAgICJcbiIgXAotICAgICIgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gXCJmdW5jdGlvblwi
KVxuIiBcCi0gICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5
cGUuZXZlcnkgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBcCi0gICAgIiAgICBc
biIgXAotICAgICIgICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3Vt
ZW50c1sxXSA6IHVuZGVmaW5lZDtcbiIgXAotICAgICIgICAgXG4iIFwKLSAgICAiICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiIgXAotICAgICIgICAgICAgIGlmICghKGkg
aW4gYXJyYXkpKVxuIiBcCi0gICAgIiAgICAgICAgICAgIGNvbnRpbnVlO1xuIiBcCi0gICAgIiAg
ICAgICAgaWYgKCFjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCBhcnJheVtpXSwgaSwgYXJyYXkpKVxu
IiBcCi0gICAgIiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiIgXAotICAgICIgICAgfVxuIiBc
Ci0gICAgIiAgICBcbiIgXAotICAgICIgICAgcmV0dXJuIHRydWU7XG4iIFwKLSAgICAifSlcbiIg
XAotOwotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBlRm9y
RWFjaENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RD
b25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGgg
PSA2OTQ7Ci1jb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9Ci0gICAg
IihmdW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCi0gICAgIntcbiIgXAotICAgICIgICAgXCJ1c2Ug
c3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIGlmICh0aGlzID09PSBudWxsKVxu
IiBcCi0gICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUu
Zm9yRWFjaCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbFwiKTtcbiIgXAotICAgICIg
ICAgXG4iIFwKLSAgICAiICAgIGlmICh0aGlzID09PSB1bmRlZmluZWQpXG4iIFwKLSAgICAiICAg
ICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LnByb3RvdHlwZS5mb3JFYWNoIHJlcXVp
cmVzIHRoYXQgfHRoaXN8IG5vdCBiZSB1bmRlZmluZWRcIik7XG4iIFwKLSAgICAiICAgIFxuIiBc
Ci0gICAgIiAgICB2YXIgYXJyYXkgPSBAT2JqZWN0KHRoaXMpO1xuIiBcCi0gICAgIiAgICB2YXIg
bGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAi
ICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIilcbiIgXAotICAgICIgICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggY2FsbGJh
Y2sgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBcCi0gICAgIiAgICBcbiIgXAotICAgICIgICAg
dmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVm
aW5lZDtcbiIgXAotICAgICIgICAgXG4iIFwKLSAgICAiICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bGVuZ3RoOyBpKyspIHtcbiIgXAotICAgICIgICAgICAgIGlmIChpIGluIGFycmF5KVxuIiBcCi0g
ICAgIiAgICAgICAgICAgIGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIGFycmF5W2ldLCBpLCBhcnJh
eSk7XG4iIFwKLSAgICAiICAgIH1cbiIgXAotICAgICJ9KVxuIiBcCi07Ci0KLQotI2RlZmluZSBE
RUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRD
b3VudCkgXAotSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlND
OjpWTSYgdm0pIFwKLXtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2Rl
TmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29k
ZU5hbWUjI1NvdXJjZSgpKTsgfQotSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFRklORV9CVUlM
VElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKLQotCi19IC8v
IG5hbWVzcGFjZSBKU0MKLSMjIyBFbmQgRmlsZTogSlNDQnVpbHRpbnMuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9K
YXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1NYWNyb3MuanMtcmVzdWx0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlw
dENvcmUtQnVpbHRpbi5wcm90b3R5cGUtTWFjcm9zLmpzLXJlc3VsdApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTdl
YzY0YmI2NGI4MzU4NDYxNGIzN2QzZjg2NTM5ODY1NjE0ODYxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2
YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtTWFjcm9zLmpzLXJlc3VsdApAQCAtMCwwICsx
LDUwIEBACisjIyMgQmVnaW4gRmlsZTogSlNDQnVpbHRpbnNNYWNyb3MuaAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4K
KyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqIAorICovCisKKy8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21h
dGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgorLy8gYnVpbHRpbnMg
YnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMt
YnVpbHRpbnMucHkKKworI2lmbmRlZiBKU0NCdWlsdGluc01hY3Jvc19oCisjZGVmaW5lIEpTQ0J1
aWx0aW5zTWFjcm9zX2gKKworI2luY2x1ZGUgIkJ1aWx0aW5Qcm90b3R5cGVCdWlsdGlucy5oIgor
CituYW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUobWFj
cm8pIFwKKyAgICBKU0NfRk9SRUFDSF9CVUlMVElOX1BST1RPVFlQRV9CVUlMVElOX0NPREUobWFj
cm8pIFwKKworI2RlZmluZSBKU0NfRk9SRUFDSF9VTklRVUVfQlVJTFRJTl9GVU5DVElPTl9OQU1F
KG1hY3JvKSBcCisgICAgbWFjcm8oZXZlcnkpIFwKKyAgICBtYWNybyhmb3JFYWNoKSBcCisKK30g
Ly8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gSlNDQnVpbHRpbnNNYWNyb3NfaAorCisjIyMg
RW5kIEZpbGU6IEpTQ0J1aWx0aW5zTWFjcm9zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1
aWx0aW4ucHJvdG90eXBlLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4u
cHJvdG90eXBlLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCAyOTM4M2Y0ZjdhYWY5MGNjODE0ZDQx
MThkZDJjZmNjNGY3ZDg2ZTY5Li5lYTU0M2RkYzNjOWQzMWJiZmZkN2Q4YjlhYWIwODIxYmIzOTcy
MjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1TZXBhcmF0ZS5q
cy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtU2VwYXJhdGUuanMt
cmVzdWx0CkBAIC0zMiwxMCArMzIsMTIgQEAKICNpZm5kZWYgQnVpbHRpblByb3RvdHlwZUJ1aWx0
aW5zX2gKICNkZWZpbmUgQnVpbHRpblByb3RvdHlwZUJ1aWx0aW5zX2gKIAotCisjaW5jbHVkZSAi
QnVpbHRpblV0aWxzLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRnVuY3Rpb25FeGVjdXRh
YmxlOworY2xhc3MgVk07CitlbnVtIGNsYXNzIENvbnN0cnVjdEFiaWxpdHkgOiB1bnNpZ25lZDsK
IH0KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC01NSwyMSArNTcsMjEgQEAgZXh0ZXJuIGNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZUNvbnN0cnVj
dEFiaWxpdHkKICNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTl9QUk9UT1RZUEVfRVZFUlkgMQog
I2RlZmluZSBKU0NfQlVJTFRJTl9CVUlMVElOX1BST1RPVFlQRV9GT1JFQUNIIDEKIAotI2RlZmlu
ZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlMVElOX0NPREUobWFjcm8pIFwKKyNk
ZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9QUk9UT1RZUEVfQlVJTFRJTl9DT0RFKG1hY3JvKSBc
CiAgICAgbWFjcm8oYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSwgZXZlcnksIHNfYnVpbHRpblBy
b3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCkgXAogICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVGb3JF
YWNoQ29kZSwgZm9yRWFjaCwgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGgpIFwK
IAotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlMVElOX0ZVTkNUSU9O
X05BTUUobWFjcm8pIFwKKyNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9QUk9UT1RZUEVfQlVJ
TFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oZXZlcnkpIFwKICAgICBtYWNy
byhmb3JFYWNoKSBcCiAKICNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFt
ZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiAgICAgSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwogCi1KU0NfRk9SRUFDSF9CVUlM
VElOLlBST1RPVFlQRV9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKK0pT
Q19GT1JFQUNIX0JVSUxUSU5fUFJPVE9UWVBFX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5f
R0VORVJBVE9SKQogI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IKIAotI2RlZmluZSBK
U0NfQlVJTFRJTl9CVUlMVElOLlBST1RPVFlQRV9FWElTVFMob2JqZWN0LCBmdW5jKSBkZWZpbmVk
IEpTQ19CVUlMVElOXyAjIyBvYmplY3QgIyMgXyAjIyBmdW5jCisjZGVmaW5lIEpTQ19CVUlMVElO
X0JVSUxUSU5fUFJPVE9UWVBFX0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JVSUxU
SU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKQEAgLTE4
Myw3ICsxODUsNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNoQ29kZSA9
CiBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2
bSkgXAoge1wKICAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNF
eGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMj
U291cmNlKCkpOyB9Ci1KU0NfRk9SRUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlMVElOX0NPREUo
REVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQorSlNDX0ZPUkVBQ0hfQlVJTFRJTl9QUk9UT1RZUEVf
QlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJ
TFRJTl9HRU5FUkFUT1IKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3Ry
dWN0b3ItQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9y
LUNvbWJpbmVkLmpzLXJlc3VsdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTMzNzEz
Mzg1ZTE2MjE3MDAwMjhlZTdkODFhMjMwMGE3ODIyYWU2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3It
Q29tYmluZWQuanMtcmVzdWx0CisrKyAvZGV2L251bGwKQEAgLTEsMjI0ICswLDAgQEAKLSMjIyBC
ZWdpbiBGaWxlOiBKU0NCdWlsdGlucy5oCi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5PVCBF
RElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2Ny
aXB0IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2lmbmRlZiBKU0NCdWls
dGluc19oCi0jZGVmaW5lIEpTQ0J1aWx0aW5zX2gKLQotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBG
dW5jdGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBWTTsKLQotZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmls
aXR5IDogdW5zaWduZWQ7Ci19Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0vKiBCdWlsdGluQ29uc3Ry
dWN0b3IgKi8KLWV4dGVybiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZTsK
LWV4dGVybiBjb25zdCBpbnQgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVMZW5ndGg7Ci1leHRl
cm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2Rl
Q29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Db25zdHJ1Y3Rv
ckZyb21Db2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2Rl
TGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Db25z
dHJ1Y3RvckZyb21Db2RlQ29uc3RydWN0QWJpbGl0eTsKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9C
VUlMVElOQ09OU1RSVUNUT1JfQlVJTFRJTl9EQVRBKG1hY3JvKSBcCi0gICAgbWFjcm8ob2YsIGJ1
aWx0aW5Db25zdHJ1Y3Rvck9mLCAwKSBcCi0gICAgbWFjcm8oZnJvbSwgYnVpbHRpbkNvbnN0cnVj
dG9yRnJvbSwgMSkgXAotCi0jZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5DT05TVFJVQ1RPUl9P
RiAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5DT05TVFJVQ1RPUl9GUk9NIDEKLQotI2Rl
ZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUobWFjcm8pIFwKLSAgICBtYWNybyhidWlsdGlu
Q29uc3RydWN0b3JPZkNvZGUsIG9mLCBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZUxlbmd0aCkg
XAotICAgIG1hY3JvKGJ1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlLCBmcm9tLCBzX2J1aWx0aW5D
b25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoKSBcCi0KLSNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJ
Tl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCi0gICAgbWFjcm8oZnJvbSkgXAotICAgIG1hY3JvKG9m
KSBcCi0KLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rp
b25OYW1lLCBhcmd1bWVudENvdW50KSBcCi0gICAgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNv
ZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwotCi1KU0NfRk9SRUFDSF9CVUlMVElOX0NPREUo
REVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJB
VE9SCi0KLSNkZWZpbmUgSlNDX0JVSUxUSU5fRVhJU1RTKG9iamVjdCwgZnVuYykgZGVmaW5lZCBK
U0NfQlVJTFRJTl8gIyMgb2JqZWN0ICMjIF8gIyMgZnVuYwotCi19IC8vIG5hbWVzcGFjZSBKU0MK
LQotI2VuZGlmIC8vIEpTQ0J1aWx0aW5zX2gKLQotIyMjIEVuZCBGaWxlOiBKU0NCdWlsdGlucy5o
Ci0KLSMjIyBCZWdpbiBGaWxlOiBKU0NCdWlsdGlucy5jcHAKLS8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIAotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICogCi0gKi8KLQot
Ly8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBm
cm9tIEphdmFTY3JpcHQgZmlsZXMgZm9yCi0vLyBidWlsdGlucyBieSB0aGUgc2NyaXB0OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9nZW5lcmF0ZS1qcy1idWlsdGlucy5weQotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKLQotI2luY2x1ZGUgIkJ1
aWx0aW5FeGVjdXRhYmxlcy5oIgotI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKLSNpbmNsdWRlICJK
U0NlbGxJbmxpbmVzLmgiCi0jaW5jbHVkZSAiVk0uaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNv
bnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZUNvbnN0
cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNv
bnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZUxlbmd0aCA9IDI5NDsKLWNvbnN0IGNo
YXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlID0KLSAgICAiKGZ1bmN0aW9uICgpXG4iIFwK
LSAgICAie1xuIiBcCi0gICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgICJcbiIgXAot
ICAgICIgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4iIFwKLSAgICAiICAgIC8v
XG4iIFwKLSAgICAiICAgIHZhciBhcnJheSA9IHR5cGVvZiB0aGlzID09PSAnZnVuY3Rpb24nID8g
bmV3IHRoaXMobGVuZ3RoKSA6IG5ldyBAQXJyYXkobGVuZ3RoKTtcbiIgXAotICAgICIgICAgZm9y
ICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraylcbiIgXAotICAgICIgICAgICAgIEBwdXRCeVZh
bERpcmVjdChhcnJheSwgaywgYXJndW1lbnRzW2tdKTtcbiIgXAotICAgICIgICAgYXJyYXkubGVu
Z3RoID0gbGVuZ3RoO1xuIiBcCi0gICAgIiAgICByZXR1cm4gYXJyYXk7XG4iIFwKLSAgICAifSlc
biIgXAotOwotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluQ29uc3RydWN0
b3JGcm9tQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5v
dENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3Ro
ID0gMjA0NjsKLWNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJvbUNvZGUgPQotICAg
ICIoZnVuY3Rpb24gKGl0ZW1zIClcbiIgXAotICAgICJ7XG4iIFwKLSAgICAiICAgIFwidXNlIHN0
cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICB2YXIgdGhpc09iaiA9IHRoaXM7XG4i
IFwKLSAgICAiXG4iIFwKLSAgICAiICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAx
ID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICB2
YXIgdGhpc0FyZztcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgaWYgKG1hcEZuICE9PSB1bmRl
ZmluZWQpIHtcbiIgXAotICAgICIgICAgICAgIGlmICh0eXBlb2YgbWFwRm4gIT09IFwiZnVuY3Rp
b25cIilcbiIgXAotICAgICIgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5
LmZyb20gcmVxdWlyZXMgdGhhdCB0aGUgc2Vjb25kIGFyZ3VtZW50LCB3aGVuIHByb3ZpZGVkLCBi
ZSBhIGZ1bmN0aW9uXCIpO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICAgICAgaWYgKGFyZ3Vt
ZW50cy5sZW5ndGggPiAyKVxuIiBcCi0gICAgIiAgICAgICAgICAgIHRoaXNBcmcgPSBhcmd1bWVu
dHNbMl07XG4iIFwKLSAgICAiICAgIH1cbiIgXAotICAgICJcbiIgXAotICAgICIgICAgaWYgKGl0
ZW1zID09IG51bGwpXG4iIFwKLSAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFy
cmF5LmZyb20gcmVxdWlyZXMgYW4gYXJyYXktbGlrZSBvYmplY3QgLSBub3QgbnVsbCBvciB1bmRl
ZmluZWRcIik7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIHZhciBpdGVyYXRvck1ldGhvZCA9
IGl0ZW1zW0BzeW1ib2xJdGVyYXRvcl07XG4iIFwKLSAgICAiICAgIGlmIChpdGVyYXRvck1ldGhv
ZCAhPSBudWxsKSB7XG4iIFwKLSAgICAiICAgICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yTWV0aG9k
ICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKLSAgICAiICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBl
RXJyb3IoXCJBcnJheS5mcm9tIHJlcXVpcmVzIHRoYXQgdGhlIHByb3BlcnR5IG9mIHRoZSBmaXJz
dCBhcmd1bWVudCwgaXRlbXNbU3ltYm9sLml0ZXJhdG9yXSwgd2hlbiBleGlzdHMsIGJlIGEgZnVu
Y3Rpb25cIik7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBcCi0gICAgIiAg
ICAgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBP
YmplY3QobmV3IHRoaXNPYmooKSkgOiBbXTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgICAg
IHZhciBrID0gMDtcbiIgXAotICAgICIgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yTWV0
aG9kLkBjYWxsKGl0ZW1zKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgICAgIC8vXG4iIFwK
LSAgICAiICAgICAgICAvL1xuIiBcCi0gICAgIiAgICAgICAgLy9cbiIgXAotICAgICIgICAgICAg
IHZhciB3cmFwcGVyID0ge1xuIiBcCi0gICAgIiAgICAgICAgICAgIFtAc3ltYm9sSXRlcmF0b3Jd
KCkge1xuIiBcCi0gICAgIiAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3I7XG4iIFwKLSAg
ICAiICAgICAgICAgICAgfVxuIiBcCi0gICAgIiAgICAgICAgfTtcbiIgXAotICAgICJcbiIgXAot
ICAgICIgICAgICAgIGZvciAodmFyIHZhbHVlIG9mIHdyYXBwZXIpIHtcbiIgXAotICAgICIgICAg
ICAgICAgICBpZiAobWFwRm4pXG4iIFwKLSAgICAiICAgICAgICAgICAgICAgIEBwdXRCeVZhbERp
cmVjdChyZXN1bHQsIGssIHRoaXNBcmcgPT09IHVuZGVmaW5lZCA/IG1hcEZuKHZhbHVlLCBrKSA6
IG1hcEZuLkBjYWxsKHRoaXNBcmcsIHZhbHVlLCBrKSk7XG4iIFwKLSAgICAiICAgICAgICAgICAg
ZWxzZVxuIiBcCi0gICAgIiAgICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBr
LCB2YWx1ZSk7XG4iIFwKLSAgICAiICAgICAgICAgICAgayArPSAxO1xuIiBcCi0gICAgIiAgICAg
ICAgfVxuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICAgICAgcmVzdWx0Lmxlbmd0aCA9IGs7XG4i
IFwKLSAgICAiICAgICAgICByZXR1cm4gcmVzdWx0O1xuIiBcCi0gICAgIiAgICB9XG4iIFwKLSAg
ICAiXG4iIFwKLSAgICAiICAgIHZhciBhcnJheUxpa2UgPSBAT2JqZWN0KGl0ZW1zKTtcbiIgXAot
ICAgICIgICAgdmFyIGFycmF5TGlrZUxlbmd0aCA9IEB0b0xlbmd0aChhcnJheUxpa2UubGVuZ3Ro
KTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgLy9cbiIgXAotICAgICIgICAgdmFyIHJlc3Vs
dCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNP
YmooYXJyYXlMaWtlTGVuZ3RoKSkgOiBuZXcgQEFycmF5KGFycmF5TGlrZUxlbmd0aCk7XG4iIFwK
LSAgICAiXG4iIFwKLSAgICAiICAgIHZhciBrID0gMDtcbiIgXAotICAgICIgICAgd2hpbGUgKGsg
PCBhcnJheUxpa2VMZW5ndGgpIHtcbiIgXAotICAgICIgICAgICAgIHZhciB2YWx1ZSA9IGFycmF5
TGlrZVtrXTtcbiIgXAotICAgICIgICAgICAgIGlmIChtYXBGbilcbiIgXAotICAgICIgICAgICAg
ICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB0aGlzQXJnID09PSB1bmRlZmluZWQgPyBt
YXBGbih2YWx1ZSwgaykgOiBtYXBGbi5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaykpO1xuIiBcCi0g
ICAgIiAgICAgICAgZWxzZVxuIiBcCi0gICAgIiAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChy
ZXN1bHQsIGssIHZhbHVlKTtcbiIgXAotICAgICIgICAgICAgIGsgKz0gMTtcbiIgXAotICAgICIg
ICAgfVxuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICByZXN1bHQubGVuZ3RoID0gYXJyYXlMaWtl
TGVuZ3RoO1xuIiBcCi0gICAgIiAgICByZXR1cm4gcmVzdWx0O1xuIiBcCi0gICAgIn0pXG4iIFwK
LTsKLQotCi0jZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rp
b25OYW1lLCBhcmd1bWVudENvdW50KSBcCi1KU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5h
bWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAote1wKLSAgICByZXR1cm4gdm0uYnVpbHRpbkV4
ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5F
eGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9Ci1KU0NfRk9SRUFDSF9CVUlMVElO
X0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIERFRklORV9CVUlMVElOX0dF
TkVSQVRPUgotCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwotIyMjIEVuZCBGaWxlOiBKU0NCdWlsdGlu
cy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1NYWNyb3Mu
anMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLU1hY3Jvcy5qcy1yZXN1
bHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjU5NGViY2EwZjk1YWI5OTg4ZmM3NzUwYTZmZWMwMzY3M2QwNjg4Ngot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1NYWNyb3Mu
anMtcmVzdWx0CkBAIC0wLDAgKzEsNDkgQEAKKyMjIyBCZWdpbiBGaWxlOiBKU0NCdWlsdGluc01h
Y3Jvcy5oCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqIAorICovCisKKy8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQg
aXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgorLy8g
YnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2Vu
ZXJhdGUtanMtYnVpbHRpbnMucHkKKworI2lmbmRlZiBKU0NCdWlsdGluc01hY3Jvc19oCisjZGVm
aW5lIEpTQ0J1aWx0aW5zTWFjcm9zX2gKKworI2luY2x1ZGUgIkJ1aWx0aW5Db25zdHJ1Y3RvckJ1
aWx0aW5zLmgiCisKK25hbWVzcGFjZSBKU0MgeworCisjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxU
SU5fQ09ERShtYWNybykgXAorICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5DT05TVFJVQ1RPUl9CVUlM
VElOX0NPREUobWFjcm8pIFwKKworI2RlZmluZSBKU0NfRk9SRUFDSF9VTklRVUVfQlVJTFRJTl9G
VU5DVElPTl9OQU1FKG1hY3JvKSBcCisgICAgbWFjcm8oZnJvbSkgXAorICAgIG1hY3JvKG9mKSBc
CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gSlNDQnVpbHRpbnNNYWNyb3NfaAor
CisjIyMgRW5kIEZpbGU6IEpTQ0J1aWx0aW5zTWFjcm9zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRD
b3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1C
dWlsdGluQ29uc3RydWN0b3ItU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDgyNjZkMDVkNDAwZDVk
NzY0YmYyZGQ2N2MyYjg2NWJjYTU3OWQzYjAuLjAyNTE3N2I3OTBlYWRmYTg4Y2YwM2RmNGNjMzBj
YjgyYzEwMmZmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1T
ZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLVNl
cGFyYXRlLmpzLXJlc3VsdApAQCAtMzEsMTAgKzMxLDEyIEBACiAjaWZuZGVmIEJ1aWx0aW5Db25z
dHJ1Y3RvckJ1aWx0aW5zX2gKICNkZWZpbmUgQnVpbHRpbkNvbnN0cnVjdG9yQnVpbHRpbnNfaAog
Ci0KKyNpbmNsdWRlICJCdWlsdGluVXRpbHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBG
dW5jdGlvbkV4ZWN1dGFibGU7CitjbGFzcyBWTTsKK2VudW0gY2xhc3MgQ29uc3RydWN0QWJpbGl0
eSA6IHVuc2lnbmVkOwogfQogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRD
b3JlLU9wZXJhdGlvbnMuUHJvbWlzZS1Db21iaW5lZC5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1P
cGVyYXRpb25zLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjMTQ1MTExMWNhN2Q2NzU1ZmUyNzVhMzk0NGU3NzE2NDFiM2I5ZGY2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLU9w
ZXJhdGlvbnMuUHJvbWlzZS1Db21iaW5lZC5qcy1yZXN1bHQKKysrIC9kZXYvbnVsbApAQCAtMSw0
MTUgKzAsMCBAQAotIyMjIEJlZ2luIEZpbGU6IEpTQ0J1aWx0aW5zLmgKLS8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAqIAot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqIAotICovCi0KLS8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxs
eSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMgYnkgdGhl
IHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRp
bnMucHkKLQotI2lmbmRlZiBKU0NCdWlsdGluc19oCi0jZGVmaW5lIEpTQ0J1aWx0aW5zX2gKLQot
bmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBWTTsKLQot
ZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7Ci19Ci0KLW5hbWVzcGFjZSBK
U0MgewotCi0vKiBPcGVyYXRpb25zLlByb21pc2UgKi8KLWV4dGVybiBjb25zdCBjaGFyKiBzX29w
ZXJhdGlvbnNQcm9taXNlSXNQcm9taXNlQ29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19vcGVyYXRp
b25zUHJvbWlzZUlzUHJvbWlzZUNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VJc1Byb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0
eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZVJlYWN0
aW9uQ29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VS
ZWFjdGlvbkNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNf
b3BlcmF0aW9uc1Byb21pc2VOZXdQcm9taXNlUmVhY3Rpb25Db2RlQ29uc3RydWN0QWJpbGl0eTsK
LWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZUNhcGFiaWxp
dHlDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZUNh
cGFiaWxpdHlDb2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBz
X29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlQ29uc3RydWN0QWJpbGl0
eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlVHJpZ2dlclByb21pc2VS
ZWFjdGlvbnNDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlVHJpZ2dl
clByb21pc2VSZWFjdGlvbnNDb2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0
QWJpbGl0eSBzX29wZXJhdGlvbnNQcm9taXNlVHJpZ2dlclByb21pc2VSZWFjdGlvbnNDb2RlQ29u
c3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlUmVq
ZWN0UHJvbWlzZUNvZGU7Ci1leHRlcm4gY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VSZWpl
Y3RQcm9taXNlQ29kZUxlbmd0aDsKLWV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkg
c19vcGVyYXRpb25zUHJvbWlzZVJlamVjdFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4
dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VDb2RlOwot
ZXh0ZXJuIGNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VDb2RlTGVu
Z3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX29wZXJhdGlvbnNQcm9t
aXNlRnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFy
KiBzX29wZXJhdGlvbnNQcm9taXNlQ3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zQ29kZTsKLWV4dGVy
biBjb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0Nv
ZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9u
c1Byb21pc2VDcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4
dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlYWN0aW9uSm9iQ29k
ZTsKLWV4dGVybiBjb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZWFjdGlvbkpv
YkNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0
aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVy
biBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpv
YkNvZGU7Ci1leHRlcm4gY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVzb2x2
ZVRoZW5hYmxlSm9iQ29kZUxlbmd0aDsKLWV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxp
dHkgc19vcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZXNvbHZlVGhlbmFibGVKb2JDb2RlQ29uc3Ry
dWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlSW5pdGlh
bGl6ZVByb21pc2VDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlSW5p
dGlhbGl6ZVByb21pc2VDb2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJp
bGl0eSBzX29wZXJhdGlvbnNQcm9taXNlSW5pdGlhbGl6ZVByb21pc2VDb2RlQ29uc3RydWN0QWJp
bGl0eTsKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9PUEVSQVRJT05TUFJPTUlTRV9CVUlMVElOX0RB
VEEobWFjcm8pIFwKLSAgICBtYWNybyhpc1Byb21pc2UsIG9wZXJhdGlvbnNQcm9taXNlSXNQcm9t
aXNlLCAxKSBcCi0gICAgbWFjcm8obmV3UHJvbWlzZVJlYWN0aW9uLCBvcGVyYXRpb25zUHJvbWlz
ZU5ld1Byb21pc2VSZWFjdGlvbiwgMikgXAotICAgIG1hY3JvKG5ld1Byb21pc2VDYXBhYmlsaXR5
LCBvcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VDYXBhYmlsaXR5LCAxKSBcCi0gICAgbWFjcm8o
dHJpZ2dlclByb21pc2VSZWFjdGlvbnMsIG9wZXJhdGlvbnNQcm9taXNlVHJpZ2dlclByb21pc2VS
ZWFjdGlvbnMsIDIpIFwKLSAgICBtYWNybyhyZWplY3RQcm9taXNlLCBvcGVyYXRpb25zUHJvbWlz
ZVJlamVjdFByb21pc2UsIDIpIFwKLSAgICBtYWNybyhmdWxmaWxsUHJvbWlzZSwgb3BlcmF0aW9u
c1Byb21pc2VGdWxmaWxsUHJvbWlzZSwgMikgXAotICAgIG1hY3JvKGNyZWF0ZVJlc29sdmluZ0Z1
bmN0aW9ucywgb3BlcmF0aW9uc1Byb21pc2VDcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMsIDEpIFwK
LSAgICBtYWNybyhwcm9taXNlUmVhY3Rpb25Kb2IsIG9wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJl
YWN0aW9uSm9iLCAyKSBcCi0gICAgbWFjcm8ocHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYiwgb3Bl
cmF0aW9uc1Byb21pc2VQcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iLCAzKSBcCi0gICAgbWFjcm8o
aW5pdGlhbGl6ZVByb21pc2UsIG9wZXJhdGlvbnNQcm9taXNlSW5pdGlhbGl6ZVByb21pc2UsIDEp
IFwKLQotI2RlZmluZSBKU0NfQlVJTFRJTl9PUEVSQVRJT05TUFJPTUlTRV9JU1BST01JU0UgMQot
I2RlZmluZSBKU0NfQlVJTFRJTl9PUEVSQVRJT05TUFJPTUlTRV9ORVdQUk9NSVNFUkVBQ1RJT04g
MQotI2RlZmluZSBKU0NfQlVJTFRJTl9PUEVSQVRJT05TUFJPTUlTRV9ORVdQUk9NSVNFQ0FQQUJJ
TElUWSAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX09QRVJBVElPTlNQUk9NSVNFX1RSSUdHRVJQUk9N
SVNFUkVBQ1RJT05TIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9OU1BST01JU0VfUkVK
RUNUUFJPTUlTRSAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX09QRVJBVElPTlNQUk9NSVNFX0ZVTEZJ
TExQUk9NSVNFIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9OU1BST01JU0VfQ1JFQVRF
UkVTT0xWSU5HRlVOQ1RJT05TIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9OU1BST01J
U0VfUFJPTUlTRVJFQUNUSU9OSk9CIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9OU1BS
T01JU0VfUFJPTUlTRVJFU09MVkVUSEVOQUJMRUpPQiAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX09Q
RVJBVElPTlNQUk9NSVNFX0lOSVRJQUxJWkVQUk9NSVNFIDEKLQotI2RlZmluZSBKU0NfRk9SRUFD
SF9CVUlMVElOX0NPREUobWFjcm8pIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZUlzUHJv
bWlzZUNvZGUsIGlzUHJvbWlzZSwgc19vcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlzZUNvZGVMZW5n
dGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VSZWFjdGlvbkNvZGUs
IG5ld1Byb21pc2VSZWFjdGlvbiwgc19vcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VSZWFjdGlv
bkNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VDYXBh
YmlsaXR5Q29kZSwgbmV3UHJvbWlzZUNhcGFiaWxpdHksIHNfb3BlcmF0aW9uc1Byb21pc2VOZXdQ
cm9taXNlQ2FwYWJpbGl0eUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlz
ZVRyaWdnZXJQcm9taXNlUmVhY3Rpb25zQ29kZSwgdHJpZ2dlclByb21pc2VSZWFjdGlvbnMsIHNf
b3BlcmF0aW9uc1Byb21pc2VUcmlnZ2VyUHJvbWlzZVJlYWN0aW9uc0NvZGVMZW5ndGgpIFwKLSAg
ICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZVJlamVjdFByb21pc2VDb2RlLCByZWplY3RQcm9taXNl
LCBzX29wZXJhdGlvbnNQcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGgpIFwKLSAgICBtYWNy
byhvcGVyYXRpb25zUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZSwgZnVsZmlsbFByb21pc2UsIHNf
b3BlcmF0aW9uc1Byb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhv
cGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGUsIGNyZWF0ZVJlc29s
dmluZ0Z1bmN0aW9ucywgc19vcGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9u
c0NvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZWFjdGlv
bkpvYkNvZGUsIHByb21pc2VSZWFjdGlvbkpvYiwgc19vcGVyYXRpb25zUHJvbWlzZVByb21pc2VS
ZWFjdGlvbkpvYkNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZVByb21p
c2VSZXNvbHZlVGhlbmFibGVKb2JDb2RlLCBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iLCBzX29w
ZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGVMZW5ndGgpIFwKLSAg
ICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZUluaXRpYWxpemVQcm9taXNlQ29kZSwgaW5pdGlhbGl6
ZVByb21pc2UsIHNfb3BlcmF0aW9uc1Byb21pc2VJbml0aWFsaXplUHJvbWlzZUNvZGVMZW5ndGgp
IFwKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwK
LSAgICBtYWNybyhjcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMpIFwKLSAgICBtYWNybyhmdWxmaWxs
UHJvbWlzZSkgXAotICAgIG1hY3JvKGluaXRpYWxpemVQcm9taXNlKSBcCi0gICAgbWFjcm8oaXNQ
cm9taXNlKSBcCi0gICAgbWFjcm8obmV3UHJvbWlzZUNhcGFiaWxpdHkpIFwKLSAgICBtYWNybyhu
ZXdQcm9taXNlUmVhY3Rpb24pIFwKLSAgICBtYWNybyhwcm9taXNlUmVhY3Rpb25Kb2IpIFwKLSAg
ICBtYWNybyhwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iKSBcCi0gICAgbWFjcm8ocmVqZWN0UHJv
bWlzZSkgXAotICAgIG1hY3JvKHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKSBcCi0KLSNkZWZpbmUg
REVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVu
dENvdW50KSBcCi0gICAgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0
b3IoSlNDOjpWTSYpOwotCi1KU0NfRk9SRUFDSF9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElO
X0dFTkVSQVRPUikKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCi0KLSNkZWZpbmUg
SlNDX0JVSUxUSU5fRVhJU1RTKG9iamVjdCwgZnVuYykgZGVmaW5lZCBKU0NfQlVJTFRJTl8gIyMg
b2JqZWN0ICMjIF8gIyMgZnVuYwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIEpT
Q0J1aWx0aW5zX2gKLQotIyMjIEVuZCBGaWxlOiBKU0NCdWlsdGlucy5oCi0KLSMjIyBCZWdpbiBG
aWxlOiBKU0NCdWlsdGlucy5jcHAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1
enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5P
VCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZh
U2NyaXB0IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCi0KLSNpbmNsdWRlICJCdWlsdGluRXhl
Y3V0YWJsZXMuaCIKLSNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5s
aW5lcy5oIgotI2luY2x1ZGUgIlZNLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBKU0M6
OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlzZUNvZGVDb25zdHJ1
Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25z
dCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlzZUNvZGVMZW5ndGggPSAxNTg7Ci1jb25z
dCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlSXNQcm9taXNlQ29kZSA9Ci0gICAiKGZ1bmN0aW9u
IChwcm9taXNlKVxuIiBcCi0gICAie1xuIiBcCi0gICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBc
Ci0gICAiXG4iIFwKLSAgICIgICAgcmV0dXJuIEBpc09iamVjdChwcm9taXNlKSAmJiAhIXByb21p
c2UuQHByb21pc2VTdGF0ZTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VOZXdQcm9taXNlUmVhY3Rpb25Db2RlQ29u
c3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0Owot
Y29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VOZXdQcm9taXNlUmVhY3Rpb25Db2RlTGVuZ3Ro
ID0gMjIwOwotY29uc3QgY2hhciogc19vcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VSZWFjdGlv
bkNvZGUgPQotICAgIihmdW5jdGlvbiAoY2FwYWJpbGl0eSwgaGFuZGxlcilcbiIgXAotICAgIntc
biIgXAotICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHJl
dHVybiB7XG4iIFwKLSAgICIgICAgICAgIEBjYXBhYmlsaXRpZXM6IGNhcGFiaWxpdHksXG4iIFwK
LSAgICIgICAgICAgIEBoYW5kbGVyOiBoYW5kbGVyXG4iIFwKLSAgICIgICAgfTtcbiIgXAotICAg
In0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1By
b21pc2VOZXdQcm9taXNlQ2FwYWJpbGl0eUNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19vcGVyYXRpb25zUHJv
bWlzZU5ld1Byb21pc2VDYXBhYmlsaXR5Q29kZUxlbmd0aCA9IDE0Mjc7Ci1jb25zdCBjaGFyKiBz
X29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlID0KLSAgICIoZnVuY3Rp
b24gKGNvbnN0cnVjdG9yKVxuIiBcCi0gICAie1xuIiBcCi0gICAiICAgIFwidXNlIHN0cmljdFwi
O1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgLy9cbiIgXAotICAgIiAgICBpZiAodHlwZW9mIGNv
bnN0cnVjdG9yICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKLSAgICIgICAgICAgIHRocm93IG5ldyBA
VHlwZUVycm9yKFwicHJvbWlzZSBjYXBhYmlsaXR5IHJlcXVpcmVzIGEgY29uc3RydWN0b3IgZnVu
Y3Rpb25cIik7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICB2YXIgcHJvbWlzZUNhcGFiaWxpdHkg
PSB7XG4iIFwKLSAgICIgICAgICAgIEBwcm9taXNlOiB1bmRlZmluZWQsXG4iIFwKLSAgICIgICAg
ICAgIEByZXNvbHZlOiB1bmRlZmluZWQsXG4iIFwKLSAgICIgICAgICAgIEByZWplY3Q6IHVuZGVm
aW5lZFxuIiBcCi0gICAiICAgIH07XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICBmdW5jdGlvbiBl
eGVjdXRvcihyZXNvbHZlLCByZWplY3QpXG4iIFwKLSAgICIgICAge1xuIiBcCi0gICAiICAgICAg
ICBpZiAocHJvbWlzZUNhcGFiaWxpdHkuQHJlc29sdmUgIT09IHVuZGVmaW5lZClcbiIgXAotICAg
IiAgICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwicmVzb2x2ZSBmdW5jdGlvbiBpcyBh
bHJlYWR5IHNldFwiKTtcbiIgXAotICAgIiAgICAgICAgaWYgKHByb21pc2VDYXBhYmlsaXR5LkBy
ZWplY3QgIT09IHVuZGVmaW5lZClcbiIgXAotICAgIiAgICAgICAgICAgIHRocm93IG5ldyBAVHlw
ZUVycm9yKFwicmVqZWN0IGZ1bmN0aW9uIGlzIGFscmVhZHkgc2V0XCIpO1xuIiBcCi0gICAiXG4i
IFwKLSAgICIgICAgICAgIHByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlID0gcmVzb2x2ZTtcbiIg
XAotICAgIiAgICAgICAgcHJvbWlzZUNhcGFiaWxpdHkuQHJlamVjdCA9IHJlamVjdDtcbiIgXAot
ICAgIiAgICB9XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICB2YXIgcHJvbWlzZSA9IG5ldyBjb25z
dHJ1Y3RvcihleGVjdXRvcik7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICBpZiAodHlwZW9mIHBy
b21pc2VDYXBhYmlsaXR5LkByZXNvbHZlICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKLSAgICIgICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiZXhlY3V0b3IgZGlkIG5vdCB0YWtlIGEgcmVzb2x2
ZSBmdW5jdGlvblwiKTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIGlmICh0eXBlb2YgcHJvbWlz
ZUNhcGFiaWxpdHkuQHJlamVjdCAhPT0gXCJmdW5jdGlvblwiKVxuIiBcCi0gICAiICAgICAgICB0
aHJvdyBuZXcgQFR5cGVFcnJvcihcImV4ZWN1dG9yIGRpZCBub3QgdGFrZSBhIHJlamVjdCBmdW5j
dGlvblwiKTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHByb21pc2VDYXBhYmlsaXR5LkBwcm9t
aXNlID0gcHJvbWlzZTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHJldHVybiBwcm9taXNlQ2Fw
YWJpbGl0eTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfb3BlcmF0aW9uc1Byb21pc2VUcmlnZ2VyUHJvbWlzZVJlYWN0aW9uc0NvZGVDb25zdHJ1
Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25z
dCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZVRyaWdnZXJQcm9taXNlUmVhY3Rpb25zQ29kZUxlbmd0
aCA9IDI2OTsKLWNvbnN0IGNoYXIqIHNfb3BlcmF0aW9uc1Byb21pc2VUcmlnZ2VyUHJvbWlzZVJl
YWN0aW9uc0NvZGUgPQotICAgIihmdW5jdGlvbiAocmVhY3Rpb25zLCBhcmd1bWVudClcbiIgXAot
ICAgIntcbiIgXAotICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgIlxuIiBcCi0gICAi
ICAgIGZvciAodmFyIGluZGV4ID0gMCwgbGVuZ3RoID0gcmVhY3Rpb25zLmxlbmd0aDsgaW5kZXgg
PCBsZW5ndGg7ICsraW5kZXgpXG4iIFwKLSAgICIgICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9taXNl
UmVhY3Rpb25Kb2IsIFtyZWFjdGlvbnNbaW5kZXhdLCBhcmd1bWVudF0pO1xuIiBcCi0gICAifSlc
biIgXAotOwotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlz
ZVJlamVjdFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0
eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VSZWplY3RQ
cm9taXNlQ29kZUxlbmd0aCA9IDU0MTsKLWNvbnN0IGNoYXIqIHNfb3BlcmF0aW9uc1Byb21pc2VS
ZWplY3RQcm9taXNlQ29kZSA9Ci0gICAiKGZ1bmN0aW9uIChwcm9taXNlLCByZWFzb24pXG4iIFwK
LSAgICJ7XG4iIFwKLSAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICJcbiIgXAotICAg
IiAgICB2YXIgcmVhY3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucztcbiIg
XAotICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVzdWx0ID0gcmVhc29uO1xuIiBcCi0gICAiICAg
IHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCi0gICAi
ICAgIHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAg
ICIgICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0gQHByb21pc2VSZWplY3RlZDtcbiIgXAotICAg
IlxuIiBcCi0gICAiICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZVJlamVjdGVk
KHByb21pc2UsIHJlYXNvbiwgcmVhY3Rpb25zKTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIEB0
cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHJlYXNvbik7XG4iIFwKLSAgICJ9KVxu
IiBcCi07Ci0KLWNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX29wZXJhdGlvbnNQcm9taXNl
RnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0
eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VGdWxmaWxs
UHJvbWlzZUNvZGVMZW5ndGggPSA1NDA7Ci1jb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNl
RnVsZmlsbFByb21pc2VDb2RlID0KLSAgICIoZnVuY3Rpb24gKHByb21pc2UsIHZhbHVlKVxuIiBc
Ci0gICAie1xuIiBcCi0gICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAiXG4iIFwKLSAg
ICIgICAgdmFyIHJlYWN0aW9ucyA9IHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zO1xu
IiBcCi0gICAiICAgIHByb21pc2UuQHByb21pc2VSZXN1bHQgPSB2YWx1ZTtcbiIgXAotICAgIiAg
ICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiIgXAotICAg
IiAgICBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkO1xuIiBcCi0g
ICAiICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlRnVsZmlsbGVkO1xuIiBcCi0g
ICAiXG4iIFwKLSAgICIgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlRnVsZmls
bGVkKHByb21pc2UsIHZhbHVlLCByZWFjdGlvbnMpO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAg
QHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpO1xuIiBcCi0gICAifSlc
biIgXAotOwotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlz
ZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25z
dHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19vcGVyYXRpb25zUHJv
bWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGVMZW5ndGggPSAxNDY4OwotY29uc3QgY2hh
ciogc19vcGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGUgPQotICAg
IihmdW5jdGlvbiAocHJvbWlzZSlcbiIgXAotICAgIntcbiIgXAotICAgIiAgICBcInVzZSBzdHJp
Y3RcIjtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHZhciBhbHJlYWR5UmVzb2x2ZWQgPSBmYWxz
ZTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHZhciByZXNvbHZlID0gZnVuY3Rpb24gKHJlc29s
dXRpb24pIHtcbiIgXAotICAgIiAgICAgICAgaWYgKGFscmVhZHlSZXNvbHZlZClcbiIgXAotICAg
IiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4iIFwKLSAgICIgICAgICAgIGFscmVhZHlS
ZXNvbHZlZCA9IHRydWU7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICAgICAgaWYgKHJlc29sdXRp
b24gPT09IHByb21pc2UpXG4iIFwKLSAgICIgICAgICAgICAgICByZXR1cm4gQHJlamVjdFByb21p
c2UocHJvbWlzZSwgbmV3IEBUeXBlRXJyb3IoXCJSZXNvbHZlIGEgcHJvbWlzZSB3aXRoIGl0c2Vs
ZlwiKSk7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICAgICAgaWYgKCFAaXNPYmplY3QocmVzb2x1
dGlvbikpXG4iIFwKLSAgICIgICAgICAgICAgICByZXR1cm4gQGZ1bGZpbGxQcm9taXNlKHByb21p
c2UsIHJlc29sdXRpb24pO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAgIHZhciB0aGVuO1xu
IiBcCi0gICAiICAgICAgICB0cnkge1xuIiBcCi0gICAiICAgICAgICAgICAgdGhlbiA9IHJlc29s
dXRpb24udGhlbjtcbiIgXAotICAgIiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiIgXAotICAg
IiAgICAgICAgICAgIHJldHVybiBAcmVqZWN0UHJvbWlzZShwcm9taXNlLCBlcnJvcik7XG4iIFwK
LSAgICIgICAgICAgIH1cbiIgXAotICAgIlxuIiBcCi0gICAiICAgICAgICBpZiAodHlwZW9mIHRo
ZW4gIT09ICdmdW5jdGlvbicpXG4iIFwKLSAgICIgICAgICAgICAgICByZXR1cm4gQGZ1bGZpbGxQ
cm9taXNlKHByb21pc2UsIHJlc29sdXRpb24pO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAg
IEBlbnF1ZXVlSm9iKEBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iLCBbcHJvbWlzZSwgcmVzb2x1
dGlvbiwgdGhlbl0pO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAgIHJldHVybiB1bmRlZmlu
ZWQ7XG4iIFwKLSAgICIgICAgfTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHZhciByZWplY3Qg
PSBmdW5jdGlvbiAocmVhc29uKSB7XG4iIFwKLSAgICIgICAgICAgIGlmIChhbHJlYWR5UmVzb2x2
ZWQpXG4iIFwKLSAgICIgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuIiBcCi0gICAiICAg
ICAgICBhbHJlYWR5UmVzb2x2ZWQgPSB0cnVlO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAg
IHJldHVybiBAcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24pO1xuIiBcCi0gICAiICAgIH07
XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICByZXR1cm4ge1xuIiBcCi0gICAiICAgICAgICBAcmVz
b2x2ZTogcmVzb2x2ZSxcbiIgXAotICAgIiAgICAgICAgQHJlamVjdDogcmVqZWN0XG4iIFwKLSAg
ICIgICAgfTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlQ29uc3RydWN0QWJp
bGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50
IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlTGVuZ3RoID0gNDkzOwot
Y29uc3QgY2hhciogc19vcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZWFjdGlvbkpvYkNvZGUgPQot
ICAgIihmdW5jdGlvbiAocmVhY3Rpb24sIGFyZ3VtZW50KVxuIiBcCi0gICAie1xuIiBcCi0gICAi
ICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgdmFyIHByb21pc2VD
YXBhYmlsaXR5ID0gcmVhY3Rpb24uQGNhcGFiaWxpdGllcztcbiIgXAotICAgIlxuIiBcCi0gICAi
ICAgIHZhciByZXN1bHQ7XG4iIFwKLSAgICIgICAgdHJ5IHtcbiIgXAotICAgIiAgICAgICAgcmVz
dWx0ID0gcmVhY3Rpb24uQGhhbmRsZXIuQGNhbGwodW5kZWZpbmVkLCBhcmd1bWVudCk7XG4iIFwK
LSAgICIgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiIgXAotICAgIiAgICAgICAgcmV0dXJuIHByb21p
c2VDYXBhYmlsaXR5LkByZWplY3QuQGNhbGwodW5kZWZpbmVkLCBlcnJvcik7XG4iIFwKLSAgICIg
ICAgfVxuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgcmV0dXJuIHByb21pc2VDYXBhYmlsaXR5LkBy
ZXNvbHZlLkBjYWxsKHVuZGVmaW5lZCwgcmVzdWx0KTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQot
Y29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVz
b2x2ZVRoZW5hYmxlSm9iQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxp
dHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlUHJvbWlz
ZVJlc29sdmVUaGVuYWJsZUpvYkNvZGVMZW5ndGggPSA0NTM7Ci1jb25zdCBjaGFyKiBzX29wZXJh
dGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGUgPQotICAgIihmdW5jdGlv
biAocHJvbWlzZVRvUmVzb2x2ZSwgdGhlbmFibGUsIHRoZW4pXG4iIFwKLSAgICJ7XG4iIFwKLSAg
ICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICB2YXIgcmVzb2x2
aW5nRnVuY3Rpb25zID0gQGNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucyhwcm9taXNlVG9SZXNvbHZl
KTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHRyeSB7XG4iIFwKLSAgICIgICAgICAgIHJldHVy
biB0aGVuLkBjYWxsKHRoZW5hYmxlLCByZXNvbHZpbmdGdW5jdGlvbnMuQHJlc29sdmUsIHJlc29s
dmluZ0Z1bmN0aW9ucy5AcmVqZWN0KTtcbiIgXAotICAgIiAgICB9IGNhdGNoIChlcnJvcikge1xu
IiBcCi0gICAiICAgICAgICByZXR1cm4gcmVzb2x2aW5nRnVuY3Rpb25zLkByZWplY3QuQGNhbGwo
dW5kZWZpbmVkLCBlcnJvcik7XG4iIFwKLSAgICIgICAgfVxuIiBcCi0gICAifSlcbiIgXAotOwot
Ci1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlzZUluaXRpYWxp
emVQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNh
bm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlSW5pdGlhbGl6ZVBy
b21pc2VDb2RlTGVuZ3RoID0gNzMxOwotY29uc3QgY2hhciogc19vcGVyYXRpb25zUHJvbWlzZUlu
aXRpYWxpemVQcm9taXNlQ29kZSA9Ci0gICAiKGZ1bmN0aW9uIChleGVjdXRvcilcbiIgXAotICAg
IntcbiIgXAotICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgIlxuIiBcCi0gICAiICAg
IGlmICh0eXBlb2YgZXhlY3V0b3IgIT09ICdmdW5jdGlvbicpXG4iIFwKLSAgICIgICAgICAgIHRo
cm93IG5ldyBAVHlwZUVycm9yKFwiUHJvbWlzZSBjb25zdHJ1Y3RvciB0YWtlcyBhIGZ1bmN0aW9u
IGFyZ3VtZW50XCIpO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgdGhpcy5AcHJvbWlzZVN0YXRl
ID0gQHByb21pc2VQZW5kaW5nO1xuIiBcCi0gICAiICAgIHRoaXMuQHByb21pc2VGdWxmaWxsUmVh
Y3Rpb25zID0gW107XG4iIFwKLSAgICIgICAgdGhpcy5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9
IFtdO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgdmFyIHJlc29sdmluZ0Z1bmN0aW9ucyA9IEBj
cmVhdGVSZXNvbHZpbmdGdW5jdGlvbnModGhpcyk7XG4iIFwKLSAgICIgICAgdHJ5IHtcbiIgXAot
ICAgIiAgICAgICAgZXhlY3V0b3IocmVzb2x2aW5nRnVuY3Rpb25zLkByZXNvbHZlLCByZXNvbHZp
bmdGdW5jdGlvbnMuQHJlamVjdCk7XG4iIFwKLSAgICIgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiIg
XAotICAgIiAgICAgICAgcmV0dXJuIHJlc29sdmluZ0Z1bmN0aW9ucy5AcmVqZWN0LkBjYWxsKHVu
ZGVmaW5lZCwgZXJyb3IpO1xuIiBcCi0gICAiICAgIH1cbiIgXAotICAgIlxuIiBcCi0gICAiICAg
IHJldHVybiB0aGlzO1xuIiBcCi0gICAifSlcbiIgXAotOwotCi0KLSNkZWZpbmUgREVGSU5FX0JV
SUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwK
LUpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZt
KSBcCi17XAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4
ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNT
b3VyY2UoKSk7IH0KLUpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5F
UkFUT1IpCi0jdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCi0KLQotfSAvLyBuYW1lc3Bh
Y2UgSlNDCi0jIyMgRW5kIEZpbGU6IEpTQ0J1aWx0aW5zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1B
cmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtQXJiaXRy
YXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXggOThjMWYzY2Q2ZWE5
NThmNmM1NDQ2MzkzY2FjMDlhYjViZTRmNTY0OC4uZTgxOWJhZmRkYWM2ZTc5YTgzN2MxMDFmMzU5
MDA3NWRhNTQzMTVhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJk
LVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRpdGlvbmFsR3VhcmQt
U2VwYXJhdGUuanMtcmVzdWx0CkBAIC0zNyw2ICszNyw4IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Y2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgVk07CitlbnVtIGNsYXNzIENvbnN0cnVj
dEFiaWxpdHkgOiB1bnNpZ25lZDsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
V2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRC
dWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCBiZWE3YWQzMTFiNTgxZWVjYzZmYzk2ZTEy
NjAxMmRlNTE4OGU4MWI2Li4wMWI0NWE1ZjJkODQ1M2ZhMzNiMDQxMmI4YTdlN2U0YWFjYjM1Y2Vk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9X
ZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMzcsNiArMzcsOCBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZN
OworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBh
cmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMt
cmVzdWx0CmluZGV4IDhkOTg4ODkzY2RkZjdkNWQ3MzcwMjMzYjg0ZWI5ZGVkYTZkYzdhMDEuLmI4
ZjMyNTdhZmMwZGE1MDRkNWQ0MTU3Y2VkMGY2ZjFmZDZkMjY1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUt
R3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFy
ZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMzcsNiArMzcsOCBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOwor
ZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1y
ZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDJk
OGEwYWIzY2Y2MmExNDQ5Njg3NDNlNmM5ZmE3NDc1MmRiYjc5ZGMuLmU4MmUxYTAxMjg5NWE1MTll
ZTIxMTM2MDRiMjBiN2FlNDE2MTVkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRp
bi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWlsdGluLVNlcGFyYXRl
LmpzLXJlc3VsdApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1
bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5
IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUt
eG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENhc2luZ1Rlc3QtU2Vw
YXJhdGUuanMtcmVzdWx0CmluZGV4IDg5OWNjNGU0ZDAzODQzMzg3OTUwNzJlMTk5ZmNkNmNhNjQ2
MmI0NTIuLjdiNWQ4YmExZjgzMWYxMWEwZjUyMjdjNWQzNjlmOWE2YzVhM2M1ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS14bWxD
YXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMzcsNiArMzcsOCBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworZW51bSBjbGFz
cyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0
YWJsZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJs
ZXMuaAppbmRleCBlYzhkNTc3MDRiODdjNTg0YTkzNmRkZTQxN2Q2MjlmODU3YjM2NTcxLi4yZTk0
NTUxZTQ5NTFhM2I4MGI3MTFmMDVhMmE5ODVmZjE4NzI2YWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCkBAIC0yNiw3ICsy
Niw3IEBACiAjaWZuZGVmIEJ1aWx0aW5FeGVjdXRhYmxlc19oCiAjZGVmaW5lIEJ1aWx0aW5FeGVj
dXRhYmxlc19oCiAKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgorI2luY2x1ZGUgIkpTQ0J1aWx0
aW5zTWFjcm9zLmgiCiAjaW5jbHVkZSAiUGFyc2VyTW9kZXMuaCIKICNpbmNsdWRlICJTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiV2Vhay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDI5ZDBhMzViZjY1NzZmYmQ1NzFmZGFlMTgxNzFkMDlk
NzRjZjFjZTcuLjVhNjY1M2M1MDA1OWZjYjlhOTIyZDFhMzJmMWEwZTE1Njc0Yzg1YTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTI4LDcg
KzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ1aWx0aW5VdGlscy5oIgogI2luY2x1ZGUgIkNvbW1vbklk
ZW50aWZpZXJzLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKKyNpbmNsdWRlICJKU0NCdWls
dGluc01hY3Jvcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDEsMTQgKzQxLDE0IEBAIGNs
YXNzIEJ1aWx0aW5OYW1lcyB7CiBwdWJsaWM6CiAgICAgQnVpbHRpbk5hbWVzKFZNKiB2bSwgQ29t
bW9uSWRlbnRpZmllcnMqIGNvbW1vbklkZW50aWZpZXJzKQogICAgICAgICA6IG1fZW1wdHlJZGVu
dGlmaWVyKGNvbW1vbklkZW50aWZpZXJzLT5lbXB0eUlkZW50aWZpZXIpCi0gICAgICAgIEpTQ19G
T1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVMpCisg
ICAgICAgIEpTQ19GT1JFQUNIX1VOSVFVRV9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTEla
RV9CVUlMVElOX05BTUVTKQogICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNf
RUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUykKICAgICAgICAgSlND
X0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElB
TElaRV9CVUlMVElOX1NZTUJPTFMpCiAgICAgewotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElO
X0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKKyAgICAg
ICAgSlNDX0ZPUkVBQ0hfVU5JUVVFX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX1BS
SVZBVEVfVE9fUFVCTElDX0VOVFJZKQogICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJ
RklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5U
UlkpCiAgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05P
V05fU1lNQk9MKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCi0gICAgICAgIEpT
Q19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX1BVQkxJQ19UT19QUklW
QVRFX0VOVFJZKQorICAgICAgICBKU0NfRk9SRUFDSF9VTklRVUVfQlVJTFRJTl9GVU5DVElPTl9O
QU1FKElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCiAgICAgICAgIEpTQ19DT01N
T05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSU5JVElBTElaRV9QVUJM
SUNfVE9fUFJJVkFURV9FTlRSWSkKICAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJ
RVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9F
TlRSWSkKICAgICB9CkBAIC02MSwxMyArNjEsMTMgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQg
YXBwZW5kRXh0ZXJuYWxOYW1lKGNvbnN0IElkZW50aWZpZXImIHB1YmxpY05hbWUsIGNvbnN0IElk
ZW50aWZpZXImIHByaXZhdGVOYW1lKTsKIAotICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJ
T05fTkFNRShERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUikKKyAgICBKU0NfRk9S
RUFDSF9VTklRVUVfQlVJTFRJTl9GVU5DVElPTl9OQU1FKERFQ0xBUkVfQlVJTFRJTl9JREVOVElG
SUVSX0FDQ0VTU09SKQogICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BS
T1BFUlRZX05BTUUoREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IpCiAgICAgSlND
X0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woREVDTEFS
RV9CVUlMVElOX1NZTUJPTF9BQ0NFU1NPUikKIAogcHJpdmF0ZToKICAgICBJZGVudGlmaWVyIG1f
ZW1wdHlJZGVudGlmaWVyOwotICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShE
RUNMQVJFX0JVSUxUSU5fTkFNRVMpCisgICAgSlNDX0ZPUkVBQ0hfVU5JUVVFX0JVSUxUSU5fRlVO
Q1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5fTkFNRVMpCiAgICAgSlNDX0NPTU1PTl9QUklWQVRF
X0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShERUNMQVJFX0JVSUxUSU5fTkFNRVMpCiAg
ICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0wo
REVDTEFSRV9CVUlMVElOX1NZTUJPTFMpCiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxVbmlx
dWVkU3RyaW5nSW1wbD4sIGNvbnN0IElkZW50aWZpZXIqLCBJZGVudGlmaWVyUmVwSGFzaD4gQnVp
bHRpbk5hbWVzTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0J1aWx0aW5VdGlscy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5V
dGlscy5oCmluZGV4IDA3YzI5YTY1Zjg0NmFlODI1YmY2ZDZiNTU2OGVhZDdiNzhlZjRjMzcuLmRh
NDllYWZlYTAwMGQ0MjdkZGQ4NDY3M2I1Y2M1YmE4MzhjYjA3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dApAQCAtMzEsOCArMzEsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
KyNkZWZpbmUgSlNDX0JVSUxUSU5fRVhJU1RTKG9iamVjdCwgZnVuYykgZGVmaW5lZCBKU0NfQlVJ
TFRJTl8gIyMgb2JqZWN0ICMjIF8gIyMgZnVuYworCiAjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJ
Tl9OQU1FUyhuYW1lKSAsIG1fIyNuYW1lKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
I25hbWUpKSwgbV8jI25hbWUjI1ByaXZhdGVOYW1lKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVVpZChK
U0M6OlByaXZhdGVOYW1lKEpTQzo6UHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVy
YWwoIlByaXZhdGVTeW1ib2wuIiAjbmFtZSkpKSkKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX05B
TUVTKG5hbWUpIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZTsgY29uc3QgSlNDOjpJZGVu
dGlmaWVyIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsKKworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5f
TkFNRVMobmFtZSkgXAorICAgIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZTsgXAorICAg
IGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7CisgICAgCiAjZGVm
aW5lIERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKICAgICBjb25z
dCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1B1YmxpY05hbWUoKSBjb25zdCB7IHJldHVybiBtXyMj
bmFtZTsgfSBcCiAgICAgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBuYW1lIyNQcml2YXRlTmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2NyZWF0ZV9oYXNoX3RhYmxlCmluZGV4IDg0NDQxYTMzNTNhZWQxODQ2NWNjNzQzNDQ4Yjhj
MDJmMDQ1MjJiNDMuLmE2MGM3NjZhYjRkZGYwZmJiNzlhMDMzYmZmOWVjMmM4N2Q3YjNhYjUgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJsZQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKQEAgLTI1OCwxMyArMjU4LDE4
IEBAIHN1YiBvdXRwdXQoKSB7CiAgICAgbXkgJG5hbWVJbmRleCA9ICIke25hbWV9SW5kZXgiOwog
ICAgICRuYW1lSW5kZXggPX4gcy86L18vZzsKIAorICAgIG15ICRjbGFzc05hbWUgPSB1Y2ZpcnN0
KCRuYW1lKTsKKyAgICAkY2xhc3NOYW1lID1+IHMvVGFibGUkLy87CisgICAgJGNsYXNzTmFtZSA9
fiBzL1wuLy9nOworCiAgICAgcHJpbnQgIlxuIjsKLSAgICBwcmludCAiI2luY2x1ZGUgXCJKU0NC
dWlsdGlucy5oXCJcbiIgaWYgKCRpbmNsdWRlQnVpbHRpbik7CisgICAgcHJpbnQgIiNpbmNsdWRl
IFwiJHtjbGFzc05hbWV9QnVpbHRpbnMuaFwiXG4iIGlmICgkaW5jbHVkZUJ1aWx0aW4pOwogICAg
IHByaW50ICIjaW5jbHVkZSBcIkxvb2t1cC5oXCJcbiIgaWYgKCRpbmNsdWRlTG9va3VwKTsKICAg
ICBwcmludCAiXG4iOwogICAgIHByaW50ICJuYW1lc3BhY2UgSlNDIHtcbiI7CiAgICAgcHJpbnQg
IlxuIjsKICAgICBwcmludCAic3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4ICR7
bmFtZUluZGV4fVxbJGNvbXBhY3RTaXplXF0gPSB7XG4iOworCiAgICAgZm9yIChteSAkaSA9IDA7
ICRpIDwgJGNvbXBhY3RTaXplOyAkaSsrKSB7CiAgICAgICAgIG15ICRUID0gLTE7CiAgICAgICAg
IGlmIChkZWZpbmVkKCR0YWJsZVskaV0pKSB7ICRUID0gJHRhYmxlWyRpXTsgfQpAQCAtMzE1LDEw
ICszMjAsMTMgQEAgc3ViIG91dHB1dCgpIHsKICAgICAgICAgfQogCiAgICAgICAgIGlmICgkdmFs
dWVzWyRpXXsidHlwZSJ9IGVxICJGdW5jdGlvbiIgJiYgJGluY2x1ZGVCdWlsdGluKSAgewotICAg
ICAgICAgICAgbXkgJHRhYmxlSGVhZCA9ICRuYW1lOwotICAgICAgICAgICAgJHRhYmxlSGVhZCA9
fiBzL1RhYmxlJC8vOwotICAgICAgICAgICAgcHJpbnQgIiAjaWYgSlNDX0JVSUxUSU5fRVhJU1RT
KCIgLiB1YygkdGFibGVIZWFkKSAuICIsICIgLiB1Yygka2V5KSAuIilcbiI7Ci0gICAgICAgICAg
ICBwcmludCAiICAgeyBcIiRrZXlcIiwgKCgkYXR0cnNbJGldKSAmIH5GdW5jdGlvbikgfCBCdWls
dGluLCAkaW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9y
PigiIC4gJHRhYmxlSGVhZCAuIHVjZmlyc3QoJGtleSkgLiAiQ29kZUdlbmVyYXRvciksIChpbnRw
dHJfdCkkc2Vjb25kVmFsdWUgfSB9LFxuIjsKKyAgICAgICAgICAgIG15ICRvYmplY3RNYWNybyA9
ICRuYW1lOworICAgICAgICAgICAgJG9iamVjdE1hY3JvID1+IHMvVGFibGUkLy87CisgICAgICAg
ICAgICAkb2JqZWN0TWFjcm8gPX4gcy8oUHJvdG90eXBlfFByb21pc2UpJC9fJHsxfS87CisgICAg
ICAgICAgICAkb2JqZWN0TWFjcm8gPX4gcy9cLi9fL2c7CisgICAgICAgICAgICAkb2JqZWN0TWFj
cm8gPSB1Yygkb2JqZWN0TWFjcm8pOworICAgICAgICAgICAgcHJpbnQgIiAjaWYgSlNDX0JVSUxU
SU5fRVhJU1RTKCRvYmplY3RNYWNybywgIiAuIHVjKCRrZXkpIC4iKVxuIjsKKyAgICAgICAgICAg
IHByaW50ICIgICB7IFwiJGtleVwiLCAoKCRhdHRyc1skaV0pICYgfkZ1bmN0aW9uKSB8IEJ1aWx0
aW4sICRpbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+
KCIgLiBsY2ZpcnN0KCRjbGFzc05hbWUpIC4gdWNmaXJzdCgka2V5KSAuICJDb2RlR2VuZXJhdG9y
KSwgKGludHB0cl90KSRzZWNvbmRWYWx1ZSB9IH0sXG4iOwogICAgICAgICAgICAgcHJpbnQgIiAj
ZWxzZVxuIgogICAgICAgICB9CiAgICAgICAgIHByaW50ICIgICB7IFwiJGtleVwiLCAkYXR0cnNb
JGldLCAkaW50cmluc2ljLCB7IChpbnRwdHJfdCkiIC4gJGZpcnN0Q2FzdFN0ciAuICIoJGZpcnN0
VmFsdWUpLCAoaW50cHRyX3QpIiAuICRzZWNvbmRDYXN0U3RyIC4gIigkc2Vjb25kVmFsdWUpIH0g
fSxcbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAKaW5kZXggMmRiMjU5MjZkMTkwYWJlOTY4YzdmYTI0MTNkZmFmMTczZjg0YjBhYy4uNDdh
MWM5YTg5NmJlZTAwODQ4MDdlZDM4MWMxNzIzN2NiYjNkOGU0NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMjQsNiArMjQsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5UHJvdG90eXBlLmgiCiAKKyNp
bmNsdWRlICJBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmgiCiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkNhY2hlZENhbGwuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIK
QEAgLTMyLDcgKzMzLDYgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpJ
VC5oIgogI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5z
LmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5o
IgogI2luY2x1ZGUgIkpTU3RyaW5nSm9pbmVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAKaW5kZXggZDZkNGI3NWEzZDVkNDgw
NzljNzVhMTIwMmU0ZDgwOTljMTY3NDkxMy4uNzE1MmMyOTI3NTE4YmQ4NWJhMmJhNThhZTE4NWM0
ZTk4NTFjYjY5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vbklkZW50aWZpZXJzLmNwcApAQCAtMjMsNyArMjMsNiBAQAogCiAjaW5jbHVkZSAiQnVpbHRp
bk5hbWVzLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKLSNpbmNsdWRlICJKU0NC
dWlsdGlucy5oIgogI2luY2x1ZGUgIlByaXZhdGVOYW1lLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSXRlcmF0b3JQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSXRlcmF0b3JQcm90b3R5cGUu
Y3BwCmluZGV4IDNlNGVjOTMwMzcxZmU4ZWY0ZTAwZDIxZTMwODY3MjEyY2FhODM1ZTguLjExNTc3
Mzg2M2ZiYzkwOWFiZDE4YWQ5NjgzYmM4M2E3MDJjMjQ3MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0l0ZXJhdG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JdGVyYXRvclByb3RvdHlwZS5jcHAKQEAgLTI2LDcgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJdGVyYXRvclByb3RvdHlwZS5o
IgogCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKKyNpbmNsdWRlICJJdGVyYXRvclByb3RvdHlw
ZUJ1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJK
U0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlRnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCmluZGV4IGIxMzQ5M2I3N2MzZjcz
YjMwNzcxZWNjOTY4YTE0MjdhNmE2OWNmMjguLjBlZWVhNjRlNzk0ZjU5MmQwZDE3YjNjYzhkZDU0
ZWJmZTVhYzUzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5j
dGlvbnMuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIK
ICNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIKICNpbmNsdWRlICJKU0FycmF5
SXRlcmF0b3IuaCIKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFs
dWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAppbmRl
eCA4NjdjZjJkZDAxM2FkMjljYWE0NWQ0NmI1ZGYwYjg4MjE4ZmY2NDY2Li42NmZhZjk4MWYzMGQ5
MjdjMGZmMTc2Y2RjMjY1OWE3ZDRlNjA4Zjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmNw
cApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTSW50
ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IuaCIKIAotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAj
aW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21pc2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBlLmNwcApp
bmRleCBlY2VkZmFmZjNkZmNhNDZjMzU5NDg1ZDA1MzlhYWYzODg5ZDVhOTRkLi5iMDllN2ZmNTJj
NmEzZDljZWJlNzA3MDExYTI2NWI0MmNkYzhkMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUuY3Bw
CkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUu
aCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNs
dWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGE5YmExYzU5MjY3MGNl
MWY2NTUxMjQ1MmNiYzM4MzBmNzkxMDBhZGYuLjgxM2U1NzJmYzAxYzY1MzJlMzE5NTk1M2Q5MGJh
YWNmZWUxNDY4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJF
cnJvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkl0ZXJhdG9yT3BlcmF0
aW9ucy5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlu
bGluZXMuaCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNQcm9taXNl
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJv
dG90eXBlLmNwcAppbmRleCAxZDMyMzM1ZjNkMDU1ZTA0MDcwN2NkNTE3ODU3MTZiY2RhOTVlYWI0
Li4xYTU1NzkxYzQ0ZGY0MjFmMzk1ZmJhMzQ2YjFjMjNjZjc2NGRkY2M2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5jcHAKQEAg
LTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJKU1Byb21pc2VQcm90b3R5cGUuaCIKIAogI2luY2x1
ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NKU1Zh
bHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMmIyYzkwOTZmNmVk
ZmFjYTgxYTQ0ZGM3NjM5Njk4YWY2OGQwZDMzNC4uMWZlNDU1NTc4MzZlNjU0NTdmNDUyOTJiNzA0
OWE1YjI4ZDVjYTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwCkBAIC0yOCwxMSArMjgs
MTEgQEAKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkVycm9yLmgiCi0jaW5j
bHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCIKICNpbmNsdWRl
ICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheXMuaCIKKyNpbmNsdWRlICJUeXBl
ZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlLmNwcAppbmRleCA1M2RkMDNiYmI0ZTczZTcwZmRlMWJhZTgzNzZkOTJjY2ZiN2M3
Yjc2Li42NTlkOWMwODkxZWViYjYxYjk0ZjAwZDU2NDRjMzcyNWE2YjdiZmQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIK
ICNpbmNsdWRlICJKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIgog
I2luY2x1ZGUgIlR5cGVkQXJyYXlBZGFwdG9ycy5oIgorI2luY2x1ZGUgIlR5cGVkQXJyYXlQcm90
b3R5cGVCdWlsdGlucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA2YjlhZTIxNjlmOTllOTdhNmIxMTYyYjgwN2RhMDlhOWZkMWQ4NzcyLi43ZjM1MDMxNTU1
N2ZjMDQ2ZWJkZDYwYTZhZDY3YTc1ZWY2OWQ2NDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MzYwMywxMSArMzYwMyw5IEBAIHNldChCVUlMVElOU19HRU5FUkFUT1JfU0NSSVBUUwogICAgICR7
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRvci5weQogICAgICR7
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX21vZGVsLnB5CiAgICAgJHtKYXZh
U2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfdGVtcGxhdGVzLnB5Ci0gICAgJHtKYXZh
U2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVy
LnB5Ci0gICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVf
Y29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkKLSAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNf
RElSfS9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkKLSAgICAke0phdmFTY3Jp
cHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRh
dGlvbi5weQotICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVy
YXRlX3NlcGFyYXRlX3dyYXBwZXIucHkKKyAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElS
fS9idWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaGVhZGVyLnB5CisgICAgJHtKYXZhU2NyaXB0Q29y
ZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5
CisgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfb2Jq
ZWN0X3dyYXBwZXIucHkKICAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5lcmF0
ZS1qcy1idWlsdGlucy5weQogICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2xhenl3
cml0ZXIucHkKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGIxYzM1OTkwMmQy
YjQzYzg3OWFiZTJkODYyNGEzZTAwODUxOWNhOWQuLmNkZWI4ZTE1ZDQzMWFhNTMzZjNhZjFmMzFi
YWYwNjkxOTJhYjg3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTI3Mywx
MSArMTI3Myw5IEBAIEJVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTID0gXAogICAgICQoSmF2YVNj
cmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zX2dlbmVyYXRvci5weSBcCiAgICAgJChKYXZh
U2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfbW9kZWwucHkgXAogICAgICQoSmF2YVNj
cmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zX3RlbXBsYXRlcy5weSBcCi0gICAgJChKYXZh
U2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVy
LnB5IFwKLSAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGluc19nZW5lcmF0
ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weSBcCi0gICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJ
UFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5IFwKLSAgICAkKEph
dmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBs
ZW1lbnRhdGlvbi5weSBcCi0gICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRp
bnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBlci5weSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRlci5weSBcCisgICAgJChK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxl
bWVudGF0aW9uLnB5IFwKKyAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGlu
c19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5weSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJ
UFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgXAogICAgICQoSmF2YVNjcmlwdENvcmVf
U0NSSVBUU19ESVIpL2xhenl3cml0ZXIucHkgXAogIwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNmMGU3ZjE1NjYwNDIxN2JjYWIwMTgxZDcyNjcy
NTRiYmE0NGRhNTkuLjU5NzJkMWJjYzgxZTE0ZjdhZDQ0YzA1ZTI1NDA2ZDMxODg2YmFiN2EgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxNS0xMC0zMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBGb3IgSlNDIGJ1aWx0aW5zLCBnZW5lcmF0ZS1qcy1iaW5kaW5ncy5qcyBzaG91bGQgcHJv
ZHVjZSBzZXBhcmF0ZSBmaWxlcyBwZXIgYnVpbHRpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udmVydCBleGlzdGluZyB0ZXN0cyBmb3IgJ0NvbWJp
bmVkJyBtb2RlIGFuZCBtYWtlIHRoZW0gZm9yICdNYWNybycgbW9kZSBpbnN0ZWFkLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9jb2RlZ2VuL21haW4ucHk6CisgICAgICAgIChCdWlsdGlu
c0dlbmVyYXRvclRlc3RzLmdlbmVyYXRlX2Zyb21fanNfYnVpbHRpbnMpOgorICAgICAgICAoQnVp
bHRpbnNHZW5lcmF0b3JUZXN0cy5ydW5fdGVzdHMpOgorCiAyMDE1LTEwLTMwICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dIGJ1aWxkLWpzYyBhbmQg
cnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIGRvIG5vdCB3b3JrCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvZGVnZW4vbWFpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29kZWdlbi9tYWluLnB5CmluZGV4IDAwMzk2ZGI5YTM4YmUwZjA3YmUxODYzYjg4YWVkNDFlZGY5
N2Q5NjkuLjg2ZGViZTE5MTMyOTE1NGY4MWMzN2EwNzE3NmM5MzM3NjE3ZDhmNzIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29kZWdlbi9tYWluLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29kZWdlbi9tYWluLnB5CkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEJ1
aWx0aW5zR2VuZXJhdG9yVGVzdHM6CiAgICAgICAgIHNlbGYucmVzZXRfcmVzdWx0cyA9IHJlc2V0
X3Jlc3VsdHMKICAgICAgICAgc2VsZi5leGVjdXRpdmUgPSBleGVjdXRpdmUKIAotICAgIGRlZiBn
ZW5lcmF0ZV9mcm9tX2pzX2J1aWx0aW5zKHNlbGYsIGJ1aWx0aW5zX2ZpbGUsIG91dHB1dF9kaXJl
Y3RvcnksIGZyYW1ld29ya19uYW1lPSIiLCBjb21iaW5lZF9vdXRwdXRzPUZhbHNlKToKKyAgICBk
ZWYgZ2VuZXJhdGVfZnJvbV9qc19idWlsdGlucyhzZWxmLCBidWlsdGluc19maWxlLCBvdXRwdXRf
ZGlyZWN0b3J5LCBmcmFtZXdvcmtfbmFtZT0iIiwgbWFjcm9zX29ubHk9RmFsc2UpOgogICAgICAg
ICBjbWQgPSBbJ3B5dGhvbicsCiAgICAgICAgICAgICAgICAnSmF2YVNjcmlwdENvcmUvU2NyaXB0
cy9nZW5lcmF0ZS1qcy1idWlsdGlucy5weScsCiAgICAgICAgICAgICAgICAnLS1vdXRwdXQtZGly
ZWN0b3J5Jywgb3V0cHV0X2RpcmVjdG9yeSwKQEAgLTQ2LDggKzQ2LDggQEAgY2xhc3MgQnVpbHRp
bnNHZW5lcmF0b3JUZXN0czoKICAgICAgICAgICAgICAgICctLWZyYW1ld29yaycsIGZyYW1ld29y
a19uYW1lLAogICAgICAgICAgICAgICAgJy0tdGVzdCddCiAKLSAgICAgICAgaWYgY29tYmluZWRf
b3V0cHV0czoKLSAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tY29tYmluZWQnKQorICAgICAgICBp
ZiBtYWNyb3Nfb25seToKKyAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tbWFjcm9zLW9ubHknKQog
CiAgICAgICAgIGNtZC5hcHBlbmQoYnVpbHRpbnNfZmlsZSkKIApAQCAtMTA5LDggKzEwOSw4IEBA
IGNsYXNzIEJ1aWx0aW5zR2VuZXJhdG9yVGVzdHM6CiAgICAgICAgICAgICAgICAgcHJpbnQgIklu
dmFsaWQgdGVzdCBjYXNlIG5hbWU6IHNob3VsZCBiZSBGcmFtZXdvcmstVGVzdENhc2VOYW1lLU91
dHB1dE1vZGUuanMiCiAgICAgICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICAgICAgY29t
YmluZWRfb3V0cHV0cyA9IG91dHB1dF9tb2RlID09ICJDb21iaW5lZCIKLSAgICAgICAgICAgIGlm
IHNlbGYuZ2VuZXJhdGVfZnJvbV9qc19idWlsdGlucyhvcy5wYXRoLmpvaW4oaW5wdXRfZGlyZWN0
b3J5LCBpbnB1dF9maWxlKSwgd29ya19kaXJlY3RvcnksIGZyYW1ld29ya19uYW1lPWZyYW1ld29y
a19uYW1lLCBjb21iaW5lZF9vdXRwdXRzPWNvbWJpbmVkX291dHB1dHMpOgorICAgICAgICAgICAg
bWFjcm9zX29ubHkgPSBvdXRwdXRfbW9kZSA9PSAiTWFjcm9zIgorICAgICAgICAgICAgaWYgc2Vs
Zi5nZW5lcmF0ZV9mcm9tX2pzX2J1aWx0aW5zKG9zLnBhdGguam9pbihpbnB1dF9kaXJlY3Rvcnks
IGlucHV0X2ZpbGUpLCB3b3JrX2RpcmVjdG9yeSwgZnJhbWV3b3JrX25hbWU9ZnJhbWV3b3JrX25h
bWUsIG1hY3Jvc19vbmx5PW1hY3Jvc19vbmx5KToKICAgICAgICAgICAgICAgICBwYXNzZWQgPSBG
YWxzZQogCiAgICAgICAgICAgICBpZiBzZWxmLnJlc2V0X3Jlc3VsdHM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264425</attachid>
            <date>2015-10-30 15:00:34 -0700</date>
            <delta_ts>2015-11-01 19:48:06 -0800</delta_ts>
            <desc>Proposed Fix (CMake fix)</desc>
            <filename>bug-150482-20151030145940.patch</filename>
            <type>text/plain</type>
            <size>285682</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YTVmNjI5MzMxYzJhYTg0NDA1N2IzOGQwZDhiMDNkZTgxZDBjNWQ5Li44ZWYzYTVlZWU3MTYwYzdh
NGI3ZTNhMmQ0ZTM0MWU2ZGRiMDA3MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAxNS0xMC0zMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBGb3IgSlNDIGJ1aWx0aW5zLCBnZW5lcmF0ZS1qcy1iaW5kaW5ncy5qcyBzaG91bGQg
cHJvZHVjZSBzZXBhcmF0ZSBmaWxlcyBwZXIgYnVpbHRpbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBmaWxlcyB0aGF0IGdlbmVyYXRl
ZCBKU0NCdWlsdGlucy57Y3BwLGh9LiBNb3N0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IGFscmVhZHkK
KyAgICAgICAgZXhpc3RzIGluIHRoZSBzZXBhcmF0ZSBwZXItb2JqZWN0IFhYWEJ1aWx0aW5zLntj
cHAsaH0gZmlsZXMuIEFkZCBhIG5ldyBnZW5lcmF0b3IgZm9yCisgICAgICAgIGEgZnJhbWV3b3Jr
LXNwZWNpZmljICJhbGwtaW4tb25lIiBoZWFkZXIgZmlsZSB3aGljaCBpcyB1c2VkIHRvIGVudW1l
cmF0ZSBvdmVyIGFsbAorICAgICAgICBidWlsdGlucyBhbmQgdW5pcXVlIG5hbWVzIGZvciBhIGZy
YW1ld29yay4gTW9zdCBidWlsdGlucyBkb24ndCBuZWVkIHRvIGluY2x1ZGUgdGhpcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisK
KyAgICAgICAgVXBkYXRlIGJ1aWxkIGZpbGVzIHNvIHRoYXQgWFhYQnVpbHRpbnMuY3BwL2ggZGVw
ZW5kcyBvbmx5IG9uIGdlbmVyYXRvciBzY3JpcHRzIGFuZAorICAgICAgICBYWFguanMuIFRoZSBh
bGwtaW4tb25lIGhlYWRlciBmaWxlIGRlcGVuZHMgb24gYWxsIGJ1aWx0aW4gSlMgZmlsZXMgYW5k
IHNjcmlwdHMuCisgICAgICAgIENNYWtlIG5lZWRzIHNvbWUgZXh0cmEgaGVscCB0byBkZXRlcm1p
bmUgdGhlIGdlbmVyYXRlZCBmaWxlIG5hbWVzIGZvciBvYmplY3RzLgorCisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTY3JpcHRz
L2J1aWx0aW5zL2J1aWx0aW5zLnB5OgorICAgICAgICAqIFNjcmlwdHMvYnVpbHRpbnMvYnVpbHRp
bnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlw
dHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHk6
IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9m
cmFtZXdvcmtfbWFjcm9zLnB5OiBBZGRlZC4KKyAgICAgICAgKEJ1aWx0aW5zRnJhbWV3b3JrTWFj
cm9zR2VuZXJhdG9yKToKKyAgICAgICAgKEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9y
Ll9faW5pdF9fKToKKyAgICAgICAgKEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yLm91
dHB1dF9maWxlbmFtZSk6CisgICAgICAgIChCdWlsdGluc0ZyYW1ld29ya01hY3Jvc0dlbmVyYXRv
ci5nZW5lcmF0ZV9vdXRwdXQpOgorICAgICAgICAoQnVpbHRpbnNGcmFtZXdvcmtNYWNyb3NHZW5l
cmF0b3IuZ2VuZXJhdGVfaGVhZGVyX2luY2x1ZGVzKToKKyAgICAgICAgKEJ1aWx0aW5zRnJhbWV3
b3JrTWFjcm9zR2VuZXJhdG9yLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfaXRlcmF0aW9uX21h
Y3JvKToKKyAgICAgICAgKEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9zR2VuZXJhdG9yLmdlbmVyYXRl
X3NlY3Rpb25fZm9yX25hbWVfaXRlcmF0aW9uX21hY3JvKToKKyAgICAgICAgKiBTY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHk6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9z
ZXBhcmF0ZV9oZWFkZXIucHkuCisgICAgICAgICogU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19n
ZW5lcmF0ZV9vYmplY3RfaW1wbGVtZW50YXRpb24ucHk6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9p
bXBsZW1lbnRhdGlvbi5weS4KKyAgICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dl
bmVyYXRlX29iamVjdF93cmFwcGVyLnB5OiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBlci5w
eS4KKyAgICAgICAgKiBTY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX3RlbXBsYXRlcy5weToKKyAg
ICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5OgorICAgICAgICAoZ2VuZXJh
dGVfYmluZGluZ3NfZm9yX2J1aWx0aW5zX2ZpbGVzKToKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3Rz
L2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1NYWNyb3MuanM6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9KYXZh
U2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMuCisgICAgICAgICogU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1NYWNyb3Mu
anM6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21iaW5lZC5qcy4KKyAgICAg
ICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1
Y3Rvci1NYWNyb3MuanM6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItQ29tYmlu
ZWQuanMuCisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0OiBSZW1vdmVkLgorICAg
ICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVp
bHRpbi5Qcm9taXNlLU1hY3Jvcy5qcy1yZXN1bHQ6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNl
cGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVj
dGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNvbWJpbmVkLmpzLXJlc3VsdDog
UmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFT
Y3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLU1hY3Jvcy5qcy1yZXN1bHQ6IEFkZGVkLgorICAg
ICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVp
bHRpbi5wcm90b3R5cGUtU2VwYXJhdGUuanMtcmVzdWx0OgorICAgICAgICAqIFNjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNv
bWJpbmVkLmpzLXJlc3VsdDogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0
aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1NYWNyb3MuanMt
cmVzdWx0OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQ6Cisg
ICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1P
cGVyYXRpb25zLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0OiBSZW1vdmVkLgorICAgICAgICAq
IFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1T
ZXBhcmF0ZS5qcy1yZXN1bHQ6CisgICAgICAgICogU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVzdWx0Ogor
ICAgICAgICAqIFNjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJk
ZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdDoKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3RzL2J1
aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQ6
CisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmg6CisgICAgICAgICogYnVp
bHRpbnMvQnVpbHRpbk5hbWVzLmg6CisgICAgICAgIChKU0M6OkJ1aWx0aW5OYW1lczo6QnVpbHRp
bk5hbWVzKToKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluVXRpbHMuaDoKKyAgICAgICAgKiBj
cmVhdGVfaGFzaF90YWJsZToKKworICAgICAgICBUaGUgY29kZSBnZW5lcmF0b3IgbmVlZHMgdG8g
YmUgbW9yZSBzb3BoaXN0aWNhdGVkIHdoZW4gZ2VuZXJhdGluZyB0aGUgbWFjcm8KKyAgICAgICAg
c3Vic3RyaW5nIGZvciB0aGUgb2JqZWN0J3MgY2xhc3MgbmFtZS4KKworICAgICAgICAqIHJ1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSXRlcmF0b3JQcm90b3R5cGUuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNQ
cm9taXNlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlLmNwcDoKKwogMjAxNS0xMC0yOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERvIG5vdCBzaG93IEphdmFTY3JpcHRDb3Jl
IGJ1aWx0aW5zIGluIGluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFhODAyNjk5YzA2NzJlMzQzNDg2
ZmVkNTEzOTdiNTJjNTgyOTljOWYuLjdkNjRhMzlmN2E1YjlkYmVhZWI0NmU5MmUzOGExNjljOTlk
OGJiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNS0xMC0zMCAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBGb3IgSlNDIGJ1aWx0aW5zLCBnZW5lcmF0
ZS1qcy1iaW5kaW5ncy5qcyBzaG91bGQgcHJvZHVjZSBzZXBhcmF0ZSBmaWxlcyBwZXIgYnVpbHRp
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDgy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
IHJlZmVyZW5jZXMgdG8gYnVpbHRpbnMgZ2VuZXJhdG9yIGZpbGVzLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKwogMjAxNS0xMC0z
MCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElE
QjogSURCT2JqZWN0U3RvcmUuYWRkKCkgc3VwcG9ydC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCA4ZTlkMGRlMTE1OWEyNjNlZWQ4YjYxZmMxMTI2ZWVjOWViZTU1Y2VlLi4w
OGJjYTI3ZTRhNzg2NDM4ZjBmYTlhYjcyNjM1ODAyYjg1Nzg2MDhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTgzLDE4ICsxMTgzLDE3IEBAIGFkZF9jdXN0b21fY29t
bWFuZCgKICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVf
SU5TUEVDVE9SX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGlu
Z3MucHkgLS1vdXRwdXREaXIgIiR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0v
aW5zcGVjdG9yIiAtLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAke0RFUklWRURfU09VUkNFU19K
QVZBU0NSSVBUQ09SRV9ESVJ9L0NvbWJpbmVkRG9tYWlucy5qc29uCiAgICAgVkVSQkFUSU0pCiAK
LSMgSlNDQnVpbHRpbnMKKyMgSlMgQnVpbHRpbnMKIAogc2V0KEJVSUxUSU5TX0dFTkVSQVRPUl9T
Q1JJUFRTCiAgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnMucHkKICAg
ICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0b3IucHkKICAg
ICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19tb2RlbC5weQogICAgICR7
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX3RlbXBsYXRlcy5weQotICAgICR7
SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hl
YWRlci5weQotICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVy
YXRlX2NvbWJpbmVkX2ltcGxlbWVudGF0aW9uLnB5Ci0gICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJ
UFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5Ci0gICAgJHtKYXZh
U2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaW1wbGVt
ZW50YXRpb24ucHkKLSAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19n
ZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVyLnB5CisgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRT
X0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3b3JrX21hY3Jvcy5weQorICAgICR7SmF2YVNj
cmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkK
KyAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9vYmpl
Y3RfaW1wbGVtZW50YXRpb24ucHkKKyAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9i
dWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5weQogICAgICR7SmF2YVNjcmlwdENvcmVf
U0NSSVBUU19ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5CiAgICAgJHtKYXZhU2NyaXB0Q29y
ZV9TQ1JJUFRTX0RJUn0vbGF6eXdyaXRlci5weQogKQpAQCAtMTI1MiwyNCArMTI1MSw0NiBAQCBs
aXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiApCiAKIGFkZF9jdXN0b21fY29tbWFu
ZCgKLSAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9KU0NC
dWlsdGlucy5jcHAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9KU0NCdWls
dGlucy5oCi0gICAgTUFJTl9ERVBFTkRFTkNZICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9
L2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5Ci0gICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3JlX0JV
SUxUSU5TX1NPVVJDRVN9ICR7QlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFN9Ci0gICAgQ09NTUFO
RCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5l
cmF0ZS1qcy1idWlsdGlucy5weSAtLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtLW91dHB1dC1k
aXJlY3RvcnkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfSAtLWNvbWJpbmVk
ICR7SmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFU30KKyAgICBPVVRQVVQgJHtERVJJVkVE
X1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGluc01hY3Jvcy5jcHAKKyAgICAg
ICAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9KU0NCdWlsdGluc01h
Y3Jvcy5oCisgICAgREVQRU5EUyAke0JVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTfSAke0phdmFT
Y3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVN9CisgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRB
QkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucy5w
eSAtLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtLW1hY3Jvcy1vbmx5IC0tb3V0cHV0LWRpcmVj
dG9yeSAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9ICR7SmF2YVNjcmlwdENv
cmVfQlVJTFRJTlNfU09VUkNFU30KICAgICBWRVJCQVRJTSkKK2xpc3QoQVBQRU5EIEphdmFTY3Jp
cHRDb3JlX0hFQURFUlMKKyAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9
L0pTQ0J1aWx0aW5zTWFjcm9zLmgKKykKKworZm9yZWFjaCAoX2J1aWx0aW5Tb3VyY2UgJHtKYXZh
U2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTfSkKKyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50
KF9maWxlTmFtZSAke19idWlsdGluU291cmNlfSBOQU1FKQorICAgICMgUmVtb3ZlIGludGVybGVh
dmVkICcuJyBmcm9tIG9iamVjdCBuYW1lcyBhbmQgY2FwaXRhbGl6ZSB0aGUgZm9sbG93aW5nIHdv
cmQuCisgICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIlxcLmpzJCIgIiIgX29iamVjdE5hbWUgIiR7
X2ZpbGVOYW1lfSIpCisgICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIlxcLnByb3RvdHlwZSIgIlBy
b3RvdHlwZSIgX29iamVjdE5hbWUgIiR7X29iamVjdE5hbWV9IikKKyAgICBzdHJpbmcoUkVHRVgg
UkVQTEFDRSAiXFwuUHJvbWlzZSIgIlByb21pc2UiIF9vYmplY3ROYW1lICIke19vYmplY3ROYW1l
fSIpICAgIAorICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7REVSSVZF
RF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vJHtfb2JqZWN0TmFtZX1CdWlsdGlucy5jcHAK
KyAgICAgICAgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vJHtf
b2JqZWN0TmFtZX1CdWlsdGlucy5oCisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19idWlsdGlu
U291cmNlfQorICAgICAgICBERVBFTkRTICR7QlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFN9Cisg
ICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJ
UFRTX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgLS1mcmFtZXdvcmsgSmF2YVNjcmlwdENv
cmUgLS1vdXRwdXQtZGlyZWN0b3J5ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJ
Un0gJHtfYnVpbHRpblNvdXJjZX0KKyAgICAgICAgVkVSQkFUSU0pCisgICAgbGlzdChBUFBFTkQg
SmF2YVNjcmlwdENvcmVfU09VUkNFUworICAgICAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NS
SVBUQ09SRV9ESVJ9LyR7X29iamVjdE5hbWV9QnVpbHRpbnMuY3BwCisgICAgKQorICAgIGxpc3Qo
QVBQRU5EIEphdmFTY3JpcHRDb3JlX0hFQURFUlMKKyAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNf
SkFWQVNDUklQVENPUkVfRElSfS8ke19vYmplY3ROYW1lfUJ1aWx0aW5zLmgKKyAgICApCitlbmRm
b3JlYWNoICgpCiAKIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICAke0RF
UklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlcnMuY3BwCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVf
RElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAKICAgICAke0RF
UklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JQcm90
b2NvbE9iamVjdHMuY3BwCi0gICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElS
fS9KU0NCdWlsdGlucy5jcHAKICkKIAogbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSEVBREVS
UwogICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0lu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oCiAg
ICAgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5zcGVj
dG9yUHJvdG9jb2xPYmplY3RzLmgKLSAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09S
RV9ESVJ9L0pTQ0J1aWx0aW5zLmgKICkKIAogYWRkX2N1c3RvbV9jb21tYW5kKApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxMjNhMTE3NDlmMTgzOGUxNTRm
MzYxZWJkZjI0OTQ2MTNhNDA5N2UyLi5lNDU3NzM2YmFiZTdmOTA5YTQ4Y2M4NDQxNWYzNDkzNjkw
Y2QzNDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
NTUsOCArNTUsOCBAQCBhbGwgOiBcCiAgICAgSW5pdEJ5dGVjb2Rlcy5hc20gXAogICAgIEluamVj
dGVkU2NyaXB0U291cmNlLmggXAogICAgIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCBc
CisgICAgSlNDQnVpbHRpbnNNYWNyb3MuaCBcCiAgICAgSlNSZXBsYXlJbnB1dHMuaCBcCi0gICAg
SlNDQnVpbHRpbnMuaCBcCiAgICAgTGV4ZXIubHV0LmggXAogICAgIEtleXdvcmRMb29rdXAuaCBc
CiAgICAgUmVnRXhwSml0VGFibGVzLmggXApAQCAtNzMsMTEgKzczLDEwIEBAIEJVSUxUSU5TX0dF
TkVSQVRPUl9TQ1JJUFRTID0gXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRvci5weSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJ
UFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfbW9kZWwucHkgXAogICAgICQoSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zL2J1aWx0aW5zX3RlbXBsYXRlcy5weSBcCi0gICAgJChK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29t
YmluZWRfaGVhZGVyLnB5IFwKLSAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWls
dGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weSBcCi0gICAg
JChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVf
c2VwYXJhdGVfaGVhZGVyLnB5IFwKLSAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9i
dWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weSBcCi0g
ICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJh
dGVfc2VwYXJhdGVfd3JhcHBlci5weSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJ
UikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3b3JrX21hY3Jvcy5weSBcCisgICAg
JChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVf
b2JqZWN0X2hlYWRlci5weSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVp
bHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5IFwKKyAgICAk
KEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9v
YmplY3Rfd3JhcHBlci5weSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2Vu
ZXJhdGUtanMtYnVpbHRpbnMucHkgXAogICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIp
L2xhenl3cml0ZXIucHkgXAogIwpAQCAtMTAzLDE1ICsxMDIsMjUgQEAgSmF2YVNjcmlwdENvcmVf
QlVJTFRJTlNfU09VUkNFUyA9IFwKICAgICAkKEphdmFTY3JpcHRDb3JlKS9idWlsdGlucy9UeXBl
ZEFycmF5LnByb3RvdHlwZS5qcyBcCiAjCiAKLSMgVGhlIGNvbWJpbmVkIG91dHB1dCBmaWxlIGRl
cGVuZHMgb24gdGhlIGNvbnRlbnRzIG9mIGJ1aWx0aW5zIGFuZCBnZW5lcmF0b3Igc2NyaXB0cywg
c28KLSMgYWRkaW5nLCBtb2RpZnlpbmcsIG9yIHJlbW92aW5nIGJ1aWx0aW5zIG9yIHNjcmlwdHMg
d2lsbCB0cmlnZ2VyIHJlZ2VuZXJhdGlvbiBvZiBmaWxlcy4KKyMgQWRkaW5nL3JlbW92aW5nIHNj
cmlwdHMgc2hvdWxkIHRyaWdnZXIgcmVnZW5lcmF0aW9uLCBidXQgY2hhbmdpbmcgd2hpY2ggYnVp
bHRpbnMgYXJlCisjIGdlbmVyYXRlZCBzaG91bGQgbm90IGFmZmVjdCB0aGUgZ2VuZXJhdGVkIGNv
ZGUgb2Ygb3RoZXIgYnVpbHRpbnMuCiAKIC5QSE9OWTogZm9yY2UKLUphdmFTY3JpcHRDb3JlX0JV
SUxUSU5TX0RFUEVOREVOQ0lFU19MSVNUIDogJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikv
VXBkYXRlQ29udGVudHMucHkgZm9yY2UKLQkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJ
UFRTX0RJUikvVXBkYXRlQ29udGVudHMucHkgJyQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09V
UkNFUykgJChCVUlMVElOU19HRU5FUkFUT1JfU0NSSVBUUyknICRACitKYXZhU2NyaXB0Q29yZV9C
VUlMVElOU19HRU5FUkFUT1JfREVQRU5ERU5DSUVTX0xJU1QgOiAkKEphdmFTY3JpcHRDb3JlX1ND
UklQVFNfRElSKS9VcGRhdGVDb250ZW50cy5weSBmb3JjZQorCSQoUFlUSE9OKSAkKEphdmFTY3Jp
cHRDb3JlX1NDUklQVFNfRElSKS9VcGRhdGVDb250ZW50cy5weSAnJChCVUlMVElOU19HRU5FUkFU
T1JfU0NSSVBUUyknICRACiAKLUpTQ0J1aWx0aW5zLmg6ICQoQlVJTFRJTlNfR0VORVJBVE9SX1ND
UklQVFMpICQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFUykgSmF2YVNjcmlwdENvcmVf
QlVJTFRJTlNfREVQRU5ERU5DSUVTX0xJU1QKLQkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgLS1jb21iaW5lZCAtLW91dHB1dC1k
aXJlY3RvcnkgLiAtLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAkKEphdmFTY3JpcHRDb3JlX0JV
SUxUSU5TX1NPVVJDRVMpCitKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTX0RFUEVOREVO
Q0lFU19MSVNUIDogJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvVXBkYXRlQ29udGVudHMu
cHkgZm9yY2UKKwkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvVXBkYXRl
Q29udGVudHMucHkgJyQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFUyknICRACisKKyVC
dWlsdGlucy5oIDogJS5qcyAkKEJVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTKSBKYXZhU2NyaXB0
Q29yZV9CVUlMVElOU19HRU5FUkFUT1JfREVQRU5ERU5DSUVTX0xJU1QKKwkkKFBZVEhPTikgJChK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgLS1vdXRw
dXQtZGlyZWN0b3J5IC4gLS1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgJDwKKworIyBBZGRpbmcv
cmVtb3ZpbmcvbW9kaWZ5aW5nIHNjcmlwdHMgb3IgZ2VuZXJhdG9yIGZpbGVzIHNob3VsZCByZWdl
bmVyYXRlIHRoZSBmcmFtZXdvcmsgbWFjcm9zIGZpbGUuCisKK0pTQ0J1aWx0aW5zTWFjcm9zLmg6
ICQoQlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFMpICQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNf
U09VUkNFUykgSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfR0VORVJBVE9SX0RFUEVOREVOQ0lFU19M
SVNUIEphdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVNfREVQRU5ERU5DSUVTX0xJU1QKKwkk
KFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRp
bnMucHkgLS1tYWNyb3Mtb25seSAtLW91dHB1dC1kaXJlY3RvcnkgLiAtLWZyYW1ld29yayBKYXZh
U2NyaXB0Q29yZSAkKEphdmFTY3JpcHRDb3JlX0JVSUxUSU5TX1NPVVJDRVMpCisKK2FsbDogJChu
b3RkaXIgJChKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTOiUuanM9JUJ1aWx0aW5zLmgp
KQogCiAjIFBlcmZlY3QgaGFzaCBsb29rdXAgdGFibGVzIGZvciBKYXZhU2NyaXB0IGNsYXNzZXMu
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDcyYWRiMjVjZDIxYTViNTE1MmVm
OGIxOWZiODg5ZDJlMjc0M2IxMC4uM2U2ZjJkMmE1MzQyZjc4YzAwMDY0NDUyYzFlYjEzYzg4YTM4
NmQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNjIsMTcgKzEzNjIsMzMg
QEAKIAkJOTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBl
Lmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2
QjczMTIxQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oICov
OyB9OwogCQk5OTZCNzMyNzFCREEwOEVGMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMx
MzFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggKi87IH07CiAJCTk5
NkI3MzI4MUJEQTA4RUYwMDMzMUI4NCAvKiBTeW1ib2xQcm90b3R5cGUubHV0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMxNDFCRDlGQTJDMDAz
MzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICovOyB9OworCQk5OTg3REUzNDFCRTNGRDgy
MDBEMjA3NzMgLyogQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUQ5MUJEOUE5MTIwMEYyRDgzNSAv
KiBBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovOyB9OworCQk5OTg3REUzNTFCRTNGRDgy
MDBEMjA3NzMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNURCMUJEOUE5MTIwMEYy
RDgzNSAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwICovOyB9OworCQk5OTg3
REUzNjFCRTNGRDgyMDBEMjA3NzMgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVERDFCRDlBOTEy
MDBGMkQ4MzUgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgKi87IH07CisJCTk5ODdERTM3
MUJFM0ZEODIwMEQyMDc3MyAvKiBGdW5jdGlvblByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNURGMUJEOUE5MTIw
MEYyRDgzNSAvKiBGdW5jdGlvblByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RF
MzgxQkUzRkQ4MjAwRDIwNzczIC8qIEdsb2JhbE9iamVjdEJ1aWx0aW5zLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUUxMUJEOUE5MTIwMEYy
RDgzNSAvKiBHbG9iYWxPYmplY3RCdWlsdGlucy5jcHAgKi87IH07CisJCTk5ODdERTM5MUJFM0ZE
ODIwMEQyMDc3MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RCdWlsdGlucy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVFMzFC
RDlBOTEyMDBGMkQ4MzUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMu
Y3BwICovOyB9OworCQk5OTg3REUzQTFCRTNGRDgyMDBEMjA3NzMgLyogSW50ZXJuYWxQcm9taXNl
Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5OTk0RTVFNTFCRDlBOTEyMDBGMkQ4MzUgLyogSW50ZXJuYWxQcm9taXNl
Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi87IH07CisJCTk5ODdERTNCMUJFM0ZEODIwMEQyMDc3
MyAvKiBJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUU3MUJEOUE5MTIwMEYyRDgzNSAvKiBJdGVy
YXRvclByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFM0MxQkUzRkQ4MjAwRDIw
NzczIC8qIE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUU5MUJEOUE5MTIwMEYyRDgzNSAvKiBN
b2R1bGVMb2FkZXJPYmplY3RCdWlsdGlucy5jcHAgKi87IH07CisJCTk5ODdERTNEMUJFM0ZEODIw
MEQyMDc3MyAvKiBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTRFNUVCMUJEOUE5MTIwMEYyRDgzNSAv
KiBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFM0UxQkUzRkQ4
MjAwRDIwNzczIC8qIE9wZXJhdGlvbnNQcm9taXNlQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5NEU1RUQxQkQ5QTkxMjAwRjJEODM1
IC8qIE9wZXJhdGlvbnNQcm9taXNlQnVpbHRpbnMuY3BwICovOyB9OworCQk5OTg3REUzRjFCRTNG
RDgyMDBEMjA3NzMgLyogUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5NEU1RUYxQkQ5QTkxMjAwRjJE
ODM1IC8qIFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFNDAx
QkUzRkQ4MjAwRDIwNzczIC8qIFByb21pc2VQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVGMTFCRDlBOTEyMDBG
MkQ4MzUgLyogUHJvbWlzZVByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFNDEx
QkUzRkQ4MjAwRDIwNzczIC8qIFJlZmxlY3RPYmplY3RCdWlsdGlucy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVGMzFCRDlBOTEyMDBGMkQ4
MzUgLyogUmVmbGVjdE9iamVjdEJ1aWx0aW5zLmNwcCAqLzsgfTsKKwkJOTk4N0RFNDIxQkUzRkQ4
MjAwRDIwNzczIC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5NEU1RjUxQkQ5QTkxMjAwRjJEODM1
IC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovOyB9OworCQk5OTg3REU0MzFCRTNG
RDgyMDBEMjA3NzMgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0RTVGNzFCRDlBOTEy
MDBGMkQ4MzUgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgKi87IH07CisJ
CTk5ODdERTQ0MUJFM0ZEODIwMEQyMDc3MyAvKiBUeXBlZEFycmF5Q29uc3RydWN0b3JCdWlsdGlu
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk0
RTVGOTFCRDlBOTEyMDBGMkQ4MzUgLyogVHlwZWRBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3Bw
ICovOyB9OworCQk5OTg3REU0NTFCRTNGRDgyMDBEMjA3NzMgLyogVHlwZWRBcnJheVByb3RvdHlw
ZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5OTRFNUZCMUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5UHJvdG90eXBlQnVpbHRp
bnMuY3BwICovOyB9OwogCQk5OUNDMEI2MjE4QkU5OTQ2MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRv
clJlcGxheUlucHV0c1RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5RTQ1QTFFMThBMUIxRTcwMDI2RDg4RiAvKiBDb2RlR2VuZXJhdG9y
UmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk5Q0MwQjYzMThCRTk5NTAwMDZDRUJDQyAvKiBDb2RlR2VuZXJh
dG9yUmVwbGF5SW5wdXRzLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTlFNDVBMUQxOEExQjFFNzAwMjZEODhGIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJ
bnB1dHMucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTlEQTAwQTMxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRvci5weSBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5REEwMDlBMUJENTk5
MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0b3IucHkgKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlEQTAwQTQxQkQ1OTkzMTAwRjQ1NzVDIC8q
IGJ1aWx0aW5zX21vZGVsLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTlEQTAwOUIxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX21vZGVsLnB5ICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5REEwMEE1
MUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc190ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDA5QzFCRDU5OTI3MDBGNDU3NUMg
LyogYnVpbHRpbnNfdGVtcGxhdGVzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk5REEwMEE2MUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGlucy5w
eSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5REEwMDlE
MUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGlucy5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5OURBMDBBNzFCRDU5OTMxMDBGNDU3NUMgLyogYnVp
bHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEQTAwOUUxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0
aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5OURBMDBBODFCRDU5OTMxMDBGNDU3NUMgLyogYnVp
bHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OURBMDA5RjFCRDU5OTI3MDBGNDU3NUMg
LyogYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkgKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTlEQTAwQTkxQkQ1OTkz
MTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weSBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5REEwMEEwMUJENTk5Mjcw
MEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkgKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTlEQTAwQUExQkQ1OTkz
MTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEQTAwQTEx
QkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0
aW9uLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTk5REEwMEFCMUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV93
cmFwcGVyLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTlEQTAwQTIxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dy
YXBwZXIucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTlEQTAwQTkxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9o
ZWFkZXIucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OURBMDBBMDFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRl
ci5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
OURBMDBBQTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxl
bWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTlEQTAwQTExQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9p
bXBsZW1lbnRhdGlvbi5weSAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5OURBMDBBQjFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVf
b2JqZWN0X3dyYXBwZXIucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OURBMDBBMjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2Jq
ZWN0X3dyYXBwZXIucHkgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTlEQTAwQUYxQkQ1OTk0RTAwRjQ1NzVDIC8qIGdlbmVyYXRlLWpzLWJ1aWx0aW5z
LnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEQTAw
QUMxQkQ1OTkzRTAwRjQ1NzVDIC8qIGdlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5ICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5REEwMEIwMUJENTk5NEUw
MEY0NTc1QyAvKiBsYXp5d3JpdGVyLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTlEQTAwQUQxQkQ1OTkzRTAwRjQ1NzVDIC8qIGxhenl3cml0ZXIucHkg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlEQTAw
QjExQkQ1OTk0RTAwRjQ1NzVDIC8qIFVwZGF0ZUNvbnRlbnRzLnB5IGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlEQTAwQUUxQkQ1OTkzRTAwRjQ1NzVDIC8q
IFVwZGF0ZUNvbnRlbnRzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMzgxLDYgKzEzOTcsNyBAQAogCQk5OUU0NUEyNjE4QTFCMjU5MDAyNkQ4
OEYgLyogRW5jb2RlZFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OUU0NUEyMTE4QTFCMjU5MDAyNkQ4OEYgLyogRW5jb2RlZFZhbHVlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlFNDVBMjcx
OEExQjI1OTAwMjZEODhGIC8qIElucHV0Q3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU0NUEyMjE4QTFCMjU5MDAyNkQ4OEYgLyogSW5wdXRD
dXJzb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5OUU0NUEyODE4QTFCMjU5MDAyNkQ4OEYgLyogTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU0NUEyMzE4QTFC
MjU5MDAyNkQ4OEYgLyogTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTlFOTg1OUExQkREOUVENTAwNkNERDBF
IC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHkgaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU5ODU5OTFCREQ5RUNBMDA2Q0REMEUg
LyogYnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3b3JrX21hY3Jvcy5weSAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OUYxQTZGRTFCOEU2RDk0MDA0NjNC
MjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlGMUE2RkMxQjhFNkQ5NDAwNDYzQjI2IC8qIEluc3Bl
Y3RvckZyb250ZW5kUm91dGVyLmNwcCAqLzsgfTsKIAkJOTlGMUE3MDExQjk4RkJFQzAwNDYzQjI2
IC8qIEluc3BlY3RvckZyb250ZW5kUm91dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OUYxQTcwMDFCOThGQkVDMDA0NjNCMjYgLyogSW5zcGVjdG9y
RnJvbnRlbmRSb3V0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5RTcyOTQwNzE5MEYwMUE1MDAxQTkxQjUgLyogSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTc4
NjM2QzBEOUJFRUMzMDBENzRFNzUgLyogSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAgKi87IH07CkBA
IC0xNjc4LDggKzE2OTUsNiBAQAogCQlBN0NBM0FFQzE3REE1MTY4MDA2NTM4QUYgLyogV2Vha01h
cERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
Q0EzQUVBMTdEQTUxNjgwMDY1MzhBRiAvKiBXZWFrTWFwRGF0YS5oICovOyB9OwogCQlBN0Q4MDFB
NDE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDgwMUExMTg4MEQ2NkUwMDI2QzM5
QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMuY3BwICovOyB9OwogCQlBN0Q4MDFBNTE4ODBENjZFMDAy
NkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q4MDFBMjE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4
ZWN1dGFibGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJQTdEODAxQTgxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDgwMUE2MTg4MEQ2QTgw
MDI2QzM5QiAvKiBKU0NCdWlsdGlucy5jcHAgKi87IH07Ci0JCUE3RDgwMUE5MTg4MEQ2QTgwMDI2
QzM5QiAvKiBKU0NCdWlsdGlucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTdEODAxQTcxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmggKi87
IH07CiAJCUE3RDg5Q0YyMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDg5Q0UzMTdBMEI4
Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCAqLzsgfTsKIAkJQTdEODlDRjMxN0EwQjhD
QzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDg5Q0U0MTdBMEI4Q0MwMDc3M0FEOCAvKiBE
RkdCbG9ja0luc2VydGlvblNldC5jcHAgKi87IH07CiAJCUE3RDg5Q0Y0MTdBMEI4Q0MwMDc3M0FE
OCAvKiBERkdCbG9ja0luc2VydGlvblNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTdEODlDRTUxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5z
ZXJ0aW9uU2V0LmggKi87IH07CkBAIC0xOTMzLDcgKzE5NDgsNyBAQAogCQlGRTM5MTM1NDFCNzk0
RjZFMDBFREFGNzEgLyogTGl2ZU9iamVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUzOTEzNTIxQjc5NEFDOTAwRURBRjcxIC8qIExpdmVP
YmplY3RMaXN0LmNwcCAqLzsgfTsKIAkJRkUzOTEzNTUxQjc5NEY4QTAwRURBRjcxIC8qIExpdmVP
YmplY3REYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRTM5MTM1MTFCNzk0QUM5MDBFREFGNzEgLyogTGl2ZU9iamVjdERhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTM5MTM1NjFCNzk0RjhG
MDBFREFGNzEgLyogTGl2ZU9iamVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZFMzkxMzUzMUI3OTRBQzkwMEVEQUY3MSAvKiBMaXZlT2JqZWN0
TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUZFNDIzODkwMUJFMThDM0MwMDUxNDczNyAvKiBKSVRTdWJHZW5lcmF0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0MjM4OEYxQkUxOEMxMjAw
NTE0NzM3IC8qIEpJVFN1YkdlbmVyYXRvci5jcHAgKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1Mg
PSAoKTsgfTsgfTsKKwkJRkU0MjM4OTAxQkUxOEMzQzAwNTE0NzM3IC8qIEpJVFN1YkdlbmVyYXRv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTQy
Mzg4RjFCRTE4QzEyMDA1MTQ3MzcgLyogSklUU3ViR2VuZXJhdG9yLmNwcCAqLzsgfTsKIAkJRkU0
QkZGMkIxQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJpZGVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNEJGRjI5MUFENDc2RTcwMDA4
OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5jcHAgKi87IH07CiAJCUZFNEJGRjJDMUFENDc2RTcw
MDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkU0QkZGMkExQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9u
T3ZlcnJpZGVzLmggKi87IH07CiAJCUZFNEQ1NUI4MUFFNzE2Q0EwMDUyRTQ1OSAvKiBJdGVyYXRp
b25TdGF0dXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZFNEQ1NUI3MUFFNzE2Q0EwMDUyRTQ1OSAvKiBJdGVyYXRpb25TdGF0dXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzQyMiwxNiArMzQzNyw1
MSBAQAogCQk5OTZCNzMxNDFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW1ib2xQcm90b3R5cGUubHV0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NkI3MzE1MUJEQTA1QUEwMDMzMUI4NCAv
KiBBcnJheUNvbnN0cnVjdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBcnJheUNvbnN0cnVjdG9yLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
OTZCNzMxNjFCREEwNUFBMDAzMzFCODQgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZS5s
dXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RDkxQkQ5QTkxMjAwRjJE
ODM1IC8qIEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVEQTFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlDb25z
dHJ1Y3RvckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5
Q29uc3RydWN0b3JCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0
RTVEQjFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90
b3R5cGVCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNURD
MUJEOUE5MTIwMEYyRDgzNSAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZUJ1aWx0
aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUREMUJEOUE5MTIwMEYy
RDgzNSAvKiBBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5OTk0RTVERTFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlQcm90b3R5
cGVCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcnJheVByb3Rv
dHlwZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNURGMUJE
OUE5MTIwMEYyRDgzNSAvKiBGdW5jdGlvblByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uUHJvdG90eXBlQnVpbHRpbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFMDFCRDlBOTEyMDBGMkQ4MzUg
LyogRnVuY3Rpb25Qcm90b3R5cGVCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGdW5jdGlvblByb3RvdHlwZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5OTRFNUUxMUJEOUE5MTIwMEYyRDgzNSAvKiBHbG9iYWxPYmplY3RCdWlsdGlu
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHbG9iYWxPYmplY3RC
dWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUUyMUJEOUE5
MTIwMEYyRDgzNSAvKiBHbG9iYWxPYmplY3RCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHbG9iYWxPYmplY3RCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5OTk0RTVFMzFCRDlBOTEyMDBGMkQ4MzUgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFNDFCRDlBOTEyMDBGMkQ4MzUgLyogSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTUxQkQ5QTkxMjAwRjJEODM1IC8qIElu
dGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUU2MUJEOUE5MTIwMEYyRDgzNSAv
KiBJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3RvckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRpbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTcxQkQ5QTkxMjAwRjJEODM1IC8qIEl0
ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk5OTRFNUU4MUJEOUE5MTIwMEYyRDgzNSAvKiBJdGVyYXRvclByb3RvdHlw
ZUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEl0ZXJhdG9yUHJv
dG90eXBlQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RTkx
QkQ5QTkxMjAwRjJEODM1IC8qIE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RUExQkQ5QTkxMjAwRjJE
ODM1IC8qIE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1vZHVsZUxvYWRlck9iamVjdEJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTk5OTRFNUVCMUJEOUE5MTIwMEYyRDgzNSAvKiBPYmplY3RDb25zdHJ1
Y3RvckJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9i
amVjdENvbnN0cnVjdG9yQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5OTk0RTVFQzFCRDlBOTEyMDBGMkQ4MzUgLyogT2JqZWN0Q29uc3RydWN0b3JCdWlsdGlucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPYmplY3RDb25zdHJ1Y3RvckJ1aWx0
aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUVEMUJEOUE5MTIwMEYy
RDgzNSAvKiBPcGVyYXRpb25zUHJvbWlzZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE9wZXJhdGlvbnNQcm9taXNlQnVpbHRpbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVFRTFCRDlBOTEyMDBGMkQ4MzUgLyogT3BlcmF0
aW9uc1Byb21pc2VCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBP
cGVyYXRpb25zUHJvbWlzZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk5OTRFNUVGMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9taXNlQ29uc3RydWN0
b3JCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUYwMUJE
OUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk0RTVGMTFCRDlBOTEyMDBGMkQ4MzUgLyogUHJv
bWlzZVByb3RvdHlwZUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFByb21pc2VQcm90b3R5cGVCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5OTRFNUYyMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlUHJvdG90eXBlQnVp
bHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvbWlzZVByb3RvdHlw
ZUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUYzMUJEOUE5
MTIwMEYyRDgzNSAvKiBSZWZsZWN0T2JqZWN0QnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVmbGVjdE9iamVjdEJ1aWx0aW5zLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RjQxQkQ5QTkxMjAwRjJEODM1IC8qIFJlZmxlY3RP
YmplY3RCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZsZWN0
T2JqZWN0QnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RjUx
QkQ5QTkxMjAwRjJEODM1IC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nQ29uc3RydWN0b3JCdWlsdGlucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUY2MUJEOUE5MTIwMEYyRDgz
NSAvKiBTdHJpbmdDb25zdHJ1Y3RvckJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTk5NEU1RjcxQkQ5QTkxMjAwRjJEODM1IC8qIFN0cmluZ0l0ZXJhdG9yUHJv
dG90eXBlQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3RyaW5nSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5OTRFNUY4MUJEOUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdJdGVyYXRvclByb3Rv
dHlwZUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ0l0
ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTk5NEU1RjkxQkQ5QTkxMjAwRjJEODM1IC8qIFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkQXJyYXlDb25z
dHJ1Y3RvckJ1aWx0aW5zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1
RkExQkQ5QTkxMjAwRjJEODM1IC8qIFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0aW5zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVkQXJyYXlDb25zdHJ1Y3RvckJ1aWx0
aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTRFNUZCMUJEOUE5MTIwMEYy
RDgzNSAvKiBUeXBlZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVHlwZWRBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5NEU1RkMxQkQ5QTkxMjAwRjJEODM1IC8qIFR5
cGVkQXJyYXlQcm90b3R5cGVCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBlZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTk5NEU2MEYxQkQ5QUVCMjAwRjJEODM1IC8qIEpTQ0J1aWx0aW5zTWFjcm9zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ0J1aWx0aW5zTWFjcm9zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5REEwMDk5MUJENTk5MjcwMEY0NTc1QyAvKiBf
X2luaXRfXy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IF9faW5pdF9f
LnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OURBMDA5QTFCRDU5OTI3MDBGNDU3
NUMgLyogYnVpbHRpbnNfZ2VuZXJhdG9yLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9u
OyBwYXRoID0gYnVpbHRpbnNfZ2VuZXJhdG9yLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5OURBMDA5QjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfbW9kZWwucHkgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBidWlsdGluc19tb2RlbC5weTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlEQTAwOUMxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0
aW5zX3RlbXBsYXRlcy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGJ1
aWx0aW5zX3RlbXBsYXRlcy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlEQTAw
OUQxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQu
cHl0aG9uOyBwYXRoID0gYnVpbHRpbnMucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTk5REEwMDlFMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9o
ZWFkZXIucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBidWlsdGluc19n
ZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTk5REEwMDlGMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9p
bXBsZW1lbnRhdGlvbi5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGJ1
aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2ltcGxlbWVudGF0aW9uLnB5OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5OURBMDBBMDFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2Vu
ZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBw
YXRoID0gYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5OURBMDBBMTFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2Vu
ZXJhdGVfc2VwYXJhdGVfaW1wbGVtZW50YXRpb24ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5w
eXRob247IHBhdGggPSBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5w
eTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTlEQTAwQTIxQkQ1OTkyNzAwRjQ1NzVD
IC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnNjcmlwdC5weXRob247IHBhdGggPSBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV93cmFwcGVy
LnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OURBMDBBMDFCRDU5OTI3MDBGNDU3
NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRlci5weSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnB5dGhvbjsgcGF0aCA9IGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHk7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5REEwMEExMUJENTk5MjcwMEY0NTc1QyAv
KiBidWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaW1wbGVtZW50YXRpb24ucHkgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBidWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaW1wbGVt
ZW50YXRpb24ucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5REEwMEEyMUJENTk5
MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5weSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF93
cmFwcGVyLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OURBMDBBQzFCRDU5OTNF
MDBGNDU3NUMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlw
dC5weXRob247IHBhdGggPSAiZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OURBMDBBRDFCRDU5OTNFMDBGNDU3NUMgLyogbGF6eXdyaXRlci5w
eSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IGxhenl3cml0ZXIucHk7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5REEwMEFFMUJENTk5M0UwMEY0NTc1QyAvKiBV
cGRhdGVDb250ZW50cy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IFVw
ZGF0ZUNvbnRlbnRzLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQ0Miw2ICsz
NDkyLDcgQEAKIAkJOTlFNDVBMjExOEExQjI1OTAwMjZEODhGIC8qIEVuY29kZWRWYWx1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbmNvZGVkVmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNDVBMjIxOEExQjI1OTAwMjZEODhGIC8qIElucHV0Q3Vy
c29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0Q3Vyc29yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RTQ1QTIzMThBMUIyNTkwMDI2RDg4RiAvKiBO
b25kZXRlcm1pbmlzdGljSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Tm9uZGV0ZXJtaW5pc3RpY0lucHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5
RTk4NTk5MUJERDlFQ0EwMDZDREQwRSAvKiBidWlsdGluc19nZW5lcmF0ZV9mcmFtZXdvcmtfbWFj
cm9zLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gYnVpbHRpbnNfZ2Vu
ZXJhdGVfZnJhbWV3b3JrX21hY3Jvcy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTlGMUE2RkMxQjhFNkQ5NDAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kUm91
dGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlGMUE3MDAxQjk4RkJFQzAw
NDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5kUm91dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kUm91dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlCNDk1NEU4MUE2NjQwREIwMDI4MTVBNiAvKiBQYXJzZXJGdW5jdGlvbklu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyRnVuY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zNzM2LDggKzM3ODcsNiBAQAogCQlBN0Q4MDFBMDE4ODBENjZFMDAy
NkMzOUIgLyogQXJyYXkucHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2Ny
aXB0OyBwYXRoID0gQXJyYXkucHJvdG90eXBlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBN0Q4MDFBMTE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1aWx0aW5FeGVjdXRhYmxlcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDgwMUEyMTg4MEQ2NkUwMDI2QzM5
QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQnVpbHRpbkV4ZWN1dGFibGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3
RDgwMUE2MTg4MEQ2QTgwMDI2QzM5QiAvKiBKU0NCdWlsdGlucy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NCdWlsdGlucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE3RDgwMUE3MTg4MEQ2QTgwMDI2QzM5QiAvKiBKU0NCdWlsdGlucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NCdWlsdGlucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBN0Q4OUNFMzE3QTBCOENDMDA3NzNBRDggLyogREZHQmFzaWNC
bG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdCYXNpY0Js
b2NrLmNwcDsgcGF0aCA9IGRmZy9ERkdCYXNpY0Jsb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTdEODlDRTQxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9u
U2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Jsb2NrSW5z
ZXJ0aW9uU2V0LmNwcDsgcGF0aCA9IGRmZy9ERkdCbG9ja0luc2VydGlvblNldC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDg5Q0U1MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdC
bG9ja0luc2VydGlvblNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdC
bG9ja0luc2VydGlvblNldC5oOyBwYXRoID0gZGZnL0RGR0Jsb2NrSW5zZXJ0aW9uU2V0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTM3LDggKzQxODYsOCBAQAogCQkJCTBGQ0VG
QUI2MTgwNUQ2MTYwMDQ3MkNFNCAvKiBsaWJsbHZtRm9ySlNDLmR5bGliICovLAogCQkJCTE0MTIx
MTIwMEE0ODc5M0MwMDQ4MDI1NSAvKiBtaW5pZG9tICovLAogCQkJCTE0QkQ1OUJGMEEzRThGOTAw
MEJBRjU5QyAvKiB0ZXN0YXBpICovLAotCQkJCTY1MTEyMzA1MTQwNDZBNEMwMDJCMTAxRCAvKiB0
ZXN0UmVnRXhwICovLAogCQkJCTBGRUM4NUFEMUJEQjVDRjEwMDgwRkY3NCAvKiB0ZXN0YjMgKi8s
CisJCQkJNjUxMTIzMDUxNDA0NkE0QzAwMkIxMDFEIC8qIHRlc3RSZWdFeHAgKi8sCiAJCQkpOwog
CQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ5NDMs
MTMgKzQ5OTIsMjMgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJ
OTk2QjczMTUxQkRBMDVBQTAwMzMxQjg0IC8qIEFycmF5Q29uc3RydWN0b3IubHV0LmggKi8sCisJ
CQkJOTk5NEU1RDkxQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5j
cHAgKi8sCisJCQkJOTk5NEU1REExQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5Q29uc3RydWN0b3JC
dWlsdGlucy5oICovLAogCQkJCTk5NkI3MzE2MUJEQTA1QUEwMDMzMUI4NCAvKiBBcnJheUl0ZXJh
dG9yUHJvdG90eXBlLmx1dC5oICovLAorCQkJCTk5OTRFNURCMUJEOUE5MTIwMEYyRDgzNSAvKiBB
cnJheUl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNURDMUJEOUE5
MTIwMEYyRDgzNSAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuaCAqLywKKwkJCQk5
OTk0RTVERDFCRDlBOTEyMDBGMkQ4MzUgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgKi8s
CisJCQkJOTk5NEU1REUxQkQ5QTkxMjAwRjJEODM1IC8qIEFycmF5UHJvdG90eXBlQnVpbHRpbnMu
aCAqLywKIAkJCQk5OTZCNzMwNzFCRDlGQTJDMDAzMzFCODQgLyogQm9vbGVhblByb3RvdHlwZS5s
dXQuaCAqLywKIAkJCQk2NTE0RjIxNzE4QjNFMTY3MDA5OEZGOEIgLyogQnl0ZWNvZGVzLmggKi8s
CiAJCQkJQTUzMjQzOTUxODU2QTQ3NTAwMkVENjkyIC8qIENvbWJpbmVkRG9tYWlucy5qc29uICov
LAogCQkJCTk5NkI3MzA4MUJEOUZBMkMwMDMzMUI4NCAvKiBEYXRlQ29uc3RydWN0b3IubHV0Lmgg
Ki8sCiAJCQkJQkNEMjAzRTcwRTE3MThGNDAwMkM3RTgyIC8qIERhdGVQcm90b3R5cGUubHV0Lmgg
Ki8sCiAJCQkJOTk2QjczMDkxQkQ5RkEyQzAwMzMxQjg0IC8qIEVycm9yUHJvdG90eXBlLmx1dC5o
ICovLAorCQkJCTk5OTRFNURGMUJEOUE5MTIwMEYyRDgzNSAvKiBGdW5jdGlvblByb3RvdHlwZUJ1
aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVFMDFCRDlBOTEyMDBGMkQ4MzUgLyogRnVuY3Rpb25Q
cm90b3R5cGVCdWlsdGlucy5oICovLAorCQkJCTk5OTRFNUUxMUJEOUE5MTIwMEYyRDgzNSAvKiBH
bG9iYWxPYmplY3RCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RTIxQkQ5QTkxMjAwRjJEODM1
IC8qIEdsb2JhbE9iamVjdEJ1aWx0aW5zLmggKi8sCiAJCQkJNjUxNEYyMTgxOEIzRTE2NzAwOThG
RjhCIC8qIEluaXRCeXRlY29kZXMuYXNtICovLAogCQkJCUE1MTNFNUM2MTg1Rjk0MzYwMDdFOTVB
RCAvKiBJbmplY3RlZFNjcmlwdFNvdXJjZS5oICovLAogCQkJCUE1RUE3MTBEMTlGNkRGODEwMDk4
RjVFQyAvKiBJbnNwZWN0b3JBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMuaCAqLywKQEAgLTQ5
NTksMTYgKzUwMTgsMjEgQEAKIAkJCQlBNTMyNDM4MzE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVj
dG9yRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgKi8sCiAJCQkJQTUzMjQzODQxODU2ODMxNzAwMkVE
NjkyIC8qIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCAqLywKIAkJCQlFMzNCM0UyNTFC
N0FCRDc1MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oICov
LAorCQkJCTk5OTRFNUUzMUJEOUE5MTIwMEYyRDgzNSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3RCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RTQxQkQ5QTkxMjAwRjJEODM1IC8q
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdEJ1aWx0aW5zLmggKi8sCiAJCQkJQTUzMjQz
ODUxODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAgKi8sCiAJ
CQkJQTUzMjQzODYxODU2ODMxNzAwMkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5o
ICovLAorCQkJCTk5OTRFNUU1MUJEOUE5MTIwMEYyRDgzNSAvKiBJbnRlcm5hbFByb21pc2VDb25z
dHJ1Y3RvckJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVFNjFCRDlBOTEyMDBGMkQ4MzUgLyog
SW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3JCdWlsdGlucy5oICovLAogCQkJCUExODE5M0UxMUI0
RTBDREIwMEZDMTAyOSAvKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQlB
MTgxOTNFMjFCNEUwQ0RCMDBGQzEwMjkgLyogSW50bENvbGxhdG9yUHJvdG90eXBlLmx1dC5oICov
LAogCQkJCUExNTg3RDczMUI0REMxQzYwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25z
dHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQlBMTU4N0Q3NDFCNERDMUM2MDBENjk4NDkgLyogSW50bERh
dGVUaW1lRm9ybWF0UHJvdG90eXBlLmx1dC5oICovLAogCQkJCUExMjU4NDZDMUI0NUEzNjAwMEND
N0Y2QyAvKiBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IubHV0LmggKi8sCiAJCQkJQTEyNTg0
NkQxQjQ1QTM2MDAwQ0M3RjZDIC8qIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUubHV0LmggKi8s
Ci0JCQkJQTdEODAxQTYxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmNwcCAqLywKLQkJ
CQlBN0Q4MDFBNzE4ODBENkE4MDAyNkMzOUIgLyogSlNDQnVpbHRpbnMuaCAqLywKKwkJCQk5OTk0
RTVFNzFCRDlBOTEyMDBGMkQ4MzUgLyogSXRlcmF0b3JQcm90b3R5cGVCdWlsdGlucy5jcHAgKi8s
CisJCQkJOTk5NEU1RTgxQkQ5QTkxMjAwRjJEODM1IC8qIEl0ZXJhdG9yUHJvdG90eXBlQnVpbHRp
bnMuaCAqLywKKwkJCQk5OTk0RTYwRjFCRDlBRUIyMDBGMkQ4MzUgLyogSlNDQnVpbHRpbnNNYWNy
b3MuaCAqLywKIAkJCQk5OTZCNzMwQTFCRDlGQTJDMDAzMzFCODQgLyogSlNEYXRhVmlld1Byb3Rv
dHlwZS5sdXQuaCAqLywKIAkJCQk5OTZCNzMwQjFCRDlGQTJDMDAzMzFCODQgLyogSlNHbG9iYWxP
YmplY3QubHV0LmggKi8sCiAJCQkJRTMzRjUwODYxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJu
YWxQcm9taXNlQ29uc3RydWN0b3IubHV0LmggKi8sCkBAIC00OTgwLDE4ICs1MDQ0LDM4IEBACiAJ
CQkJQTdDMjI1Q0QxMzk5ODQ5QzAwRkYxNjYyIC8qIEtleXdvcmRMb29rdXAuaCAqLywKIAkJCQlC
QzE4QzUyRDBFMTZGQ0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggKi8sCiAJCQkJOTk2QjczMEMx
QkQ5RkEyQzAwMzMxQjg0IC8qIE1vZHVsZUxvYWRlck9iamVjdC5sdXQuaCAqLywKKwkJCQk5OTk0
RTVFOTFCRDlBOTEyMDBGMkQ4MzUgLyogTW9kdWxlTG9hZGVyT2JqZWN0QnVpbHRpbnMuY3BwICov
LAorCQkJCTk5OTRFNUVBMUJEOUE5MTIwMEYyRDgzNSAvKiBNb2R1bGVMb2FkZXJPYmplY3RCdWls
dGlucy5oICovLAogCQkJCUJDMjY4MEU2MEUxNkQ1MjMwMEEwNkU5MiAvKiBOdW1iZXJDb25zdHJ1
Y3Rvci5sdXQuaCAqLywKIAkJCQk5OTZCNzMwRDFCRDlGQTJDMDAzMzFCODQgLyogTnVtYmVyUHJv
dG90eXBlLmx1dC5oICovLAogCQkJCTk5NkI3MzBFMUJEOUZBMkMwMDMzMUI4NCAvKiBPYmplY3RD
b25zdHJ1Y3Rvci5sdXQuaCAqLywKKwkJCQk5OTk0RTVFQjFCRDlBOTEyMDBGMkQ4MzUgLyogT2Jq
ZWN0Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5NEU1RUMxQkQ5QTkxMjAwRjJE
ODM1IC8qIE9iamVjdENvbnN0cnVjdG9yQnVpbHRpbnMuaCAqLywKKwkJCQk5OTk0RTVFRDFCRDlB
OTEyMDBGMkQ4MzUgLyogT3BlcmF0aW9uc1Byb21pc2VCdWlsdGlucy5jcHAgKi8sCisJCQkJOTk5
NEU1RUUxQkQ5QTkxMjAwRjJEODM1IC8qIE9wZXJhdGlvbnNQcm9taXNlQnVpbHRpbnMuaCAqLywK
KwkJCQk5OTk0RTVFRjFCRDlBOTEyMDBGMkQ4MzUgLyogUHJvbWlzZUNvbnN0cnVjdG9yQnVpbHRp
bnMuY3BwICovLAorCQkJCTk5OTRFNUYwMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9taXNlQ29uc3Ry
dWN0b3JCdWlsdGlucy5oICovLAorCQkJCTk5OTRFNUYxMUJEOUE5MTIwMEYyRDgzNSAvKiBQcm9t
aXNlUHJvdG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUYyMUJEOUE5MTIwMEYyRDgz
NSAvKiBQcm9taXNlUHJvdG90eXBlQnVpbHRpbnMuaCAqLywKIAkJCQk5OTZCNzMwRjFCRDlGQTJD
MDAzMzFCODQgLyogUmVmbGVjdE9iamVjdC5sdXQuaCAqLywKKwkJCQk5OTk0RTVGMzFCRDlBOTEy
MDBGMkQ4MzUgLyogUmVmbGVjdE9iamVjdEJ1aWx0aW5zLmNwcCAqLywKKwkJCQk5OTk0RTVGNDFC
RDlBOTEyMDBGMkQ4MzUgLyogUmVmbGVjdE9iamVjdEJ1aWx0aW5zLmggKi8sCiAJCQkJQkNEMjAy
RDUwRTE3MDcwODAwMkM3RTgyIC8qIFJlZ0V4cENvbnN0cnVjdG9yLmx1dC5oICovLAogCQkJCUE3
MThGNjFBMTE3NTRBMjEwMDI0NjVBNyAvKiBSZWdFeHBKaXRUYWJsZXMuaCAqLywKIAkJCQk5OTZC
NzMxMDFCRDlGQTJDMDAzMzFCODQgLyogUmVnRXhwUHJvdG90eXBlLmx1dC5oICovLAogCQkJCTk5
NkI3MzExMUJEOUZBMkMwMDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCAqLywKKwkJ
CQk5OTk0RTVGNTFCRDlBOTEyMDBGMkQ4MzUgLyogU3RyaW5nQ29uc3RydWN0b3JCdWlsdGlucy5j
cHAgKi8sCisJCQkJOTk5NEU1RjYxQkQ5QTkxMjAwRjJEODM1IC8qIFN0cmluZ0NvbnN0cnVjdG9y
QnVpbHRpbnMuaCAqLywKIAkJCQk5OTZCNzMxMjFCRDlGQTJDMDAzMzFCODQgLyogU3RyaW5nSXRl
cmF0b3JQcm90b3R5cGUubHV0LmggKi8sCisJCQkJOTk5NEU1RjcxQkQ5QTkxMjAwRjJEODM1IC8q
IFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUY4MUJE
OUE5MTIwMEYyRDgzNSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZUJ1aWx0aW5zLmggKi8sCiAJ
CQkJOTk2QjczMTMxQkQ5RkEyQzAwMzMxQjg0IC8qIFN5bWJvbENvbnN0cnVjdG9yLmx1dC5oICov
LAogCQkJCTk5NkI3MzE0MUJEOUZBMkMwMDMzMUI4NCAvKiBTeW1ib2xQcm90b3R5cGUubHV0Lmgg
Ki8sCiAJCQkJNUQ1MzcyN0QwRTFDNTVFQzAwMjFFNTQ5IC8qIFRyYWNpbmdEdHJhY2UuaCAqLywK
KwkJCQk5OTk0RTVGOTFCRDlBOTEyMDBGMkQ4MzUgLyogVHlwZWRBcnJheUNvbnN0cnVjdG9yQnVp
bHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUZBMUJEOUE5MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5
Q29uc3RydWN0b3JCdWlsdGlucy5oICovLAorCQkJCTk5OTRFNUZCMUJEOUE5MTIwMEYyRDgzNSAv
KiBUeXBlZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuY3BwICovLAorCQkJCTk5OTRFNUZDMUJEOUE5
MTIwMEYyRDgzNSAvKiBUeXBlZEFycmF5UHJvdG90eXBlQnVpbHRpbnMuaCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CiAJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvSmF2
YVNjcmlwdENvcmU7CkBAIC02MjI2LDExICs2MzEwLDEwIEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQk5OURBMDA5OTFCRDU5OTI3MDBGNDU3NUMgLyogX19pbml0X18ucHkgKi8sCiAJCQkJOTlEQTAw
OUQxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zLnB5ICovLAotCQkJCTk5REEwMDlFMUJENTk5
MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIucHkgKi8sCi0J
CQkJOTlEQTAwOUYxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVk
X2ltcGxlbWVudGF0aW9uLnB5ICovLAotCQkJCTk5REEwMEEwMUJENTk5MjcwMEY0NTc1QyAvKiBi
dWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkgKi8sCi0JCQkJOTlEQTAwQTExQkQ1
OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9u
LnB5ICovLAotCQkJCTk5REEwMEEyMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0
ZV9zZXBhcmF0ZV93cmFwcGVyLnB5ICovLAorCQkJCTk5RTk4NTk5MUJERDlFQ0EwMDZDREQwRSAv
KiBidWlsdGluc19nZW5lcmF0ZV9mcmFtZXdvcmtfbWFjcm9zLnB5ICovLAorCQkJCTk5REEwMEEw
MUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaGVhZGVyLnB5ICov
LAorCQkJCTk5REEwMEExMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9vYmpl
Y3RfaW1wbGVtZW50YXRpb24ucHkgKi8sCisJCQkJOTlEQTAwQTIxQkQ1OTkyNzAwRjQ1NzVDIC8q
IGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF93cmFwcGVyLnB5ICovLAogCQkJCTk5REEwMDlBMUJE
NTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0b3IucHkgKi8sCiAJCQkJOTlEQTAwOUIx
QkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX21vZGVsLnB5ICovLAogCQkJCTk5REEwMDlDMUJE
NTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc190ZW1wbGF0ZXMucHkgKi8sCkBAIC02NDk4LDcgKzY1
ODEsMjcgQEAKIAkJCQkwRjFGRTUxQzE5MjJBM0JDMDA2OTg3QzUgLyogQWJvcnRSZWFzb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTg2MDE2MUUzMEYzQTgzQzEwMEY4NDcxMCAvKiBBYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU1RjBGNTE0RDEwNjNDMDBBQzc2
NDkgLyogQWJzdHJhY3RQQy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MkExQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzUGhhc2VTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1NkUxQkRB
Q0RDNzAwODBGRjc0IC8qIEFpckFsbG9jYXRlU3RhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RUM4NTcwMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJBcmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RUM4NTcyMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkVDODU3NDFCREFDREM3MDA4MEZGNzQgLyogQWlyQ0NhbGxTcGVjaWFsLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkVDODU3NjFCREFDREM3MDA4MEZGNzQgLyogQWlyQ29kZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZFQzg1NzcxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckZyZXF1ZW50ZWRC
bG9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1NzkxQkRBQ0RDNzAwODBGRjc0IC8qIEFp
ckdlbmVyYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODU3QTFCREFDREM3MDA4MEZGNzQg
LyogQWlyR2VuZXJhdGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTdDMUJE
QUNEQzcwMDgwRkY3NCAvKiBBaXJIYW5kbGVDYWxsZWVTYXZlcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZFQzg1N0UxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc2VydGlvblNldC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZFQzg1ODAxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGRUM4NTgxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJJbnN0SW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1ODIxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckxpdmVu
ZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODU4NDFCREFDREM3MDA4MEZGNzQgLyogQWly
UGhhc2VTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1ODYxQkRBQ0RDNzAwODBGRjc0
IC8qIEFpclJlZ2lzdGVyUHJpb3JpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTg4MUJE
QUNEQzcwMDgwRkY3NCAvKiBBaXJTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODU4
QTFCREFDREM3MDA4MEZGNzQgLyogQWlyU3BpbGxFdmVyeXRoaW5nLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkVDODU4QzFCREFDREM3MDA4MEZGNzQgLyogQWlyU3RhY2tTbG90LmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkVDODU4RTFCREFDREM3MDA4MEZGNzQgLyogQWlyVG1wLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkVDODU4RjFCREFDREM3MDA4MEZGNzQgLyogQWlyVG1wSW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1OTExQkRBQ0RDNzAwODBGRjc0IC8qIEFpclZhbGlkYXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzBFOTE5RjVCMTAxMDA5OEY1RUMgLyogQWx0ZXJu
YXRlRGlzcGF0Y2hhYmxlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBNDhEMTkxMTc3MjM2
NUIwMEM2NUE1RiAvKiBBUElDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzNFNTBFMTZGNUNEMDBCMzQ0NjAgLyogQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC02
NTE0LDggKzY2MTcsMTAgQEAKIAkJCQkwRkZDOTlENTE4NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlC
dWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUYzNzE3
QURCNUYzMDA1QUIxNzQgLyogQXJyYXlCdWZmZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzNFNjBFMTZGNUNEMDBCMzQ0NjAgLyogQXJyYXlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTk2QjczMTcxQkRBMDY3RjAwMzMxQjg0IC8qIEFycmF5Q29uc3RydWN0b3IubHV0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3RjM5NTE1RUQ4RTQ2MDBGMTY3QjIgLyogQXJyYXlD
b252ZW50aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCREFFQzkxN0Y0RUExNDAwRjYxNDBD
IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzE4
MUJEQTA2ODAwMDMzMUI4NCAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY2Mzk0NTUxNUQwNzA1NzAwNkE1OTdDIC8qIEFycmF5UHJvZmlsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRTcwRTE2RjVDRDAwQjM0NDYwIC8qIEFycmF5UHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3RjM5NjE1RUQ4RTQ2MDBGMTY3QjIgLyogQXJy
YXlTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKQEAgLTY1MjUsMjcgKzY2MzAsNzMgQEAKIAkJCQlB
Nzg0QTI2MTExRDE2NjIyMDA1Nzc2QUMgLyogQVNUQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTVFQTcwRTcxOUY1QjEwMTAwOThGNUVDIC8qIEF1Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcwRTgxOUY1QjEwMTAwOThGNUVDIC8qIEF1
Z21lbnRhYmxlSW5zcGVjdG9yQ29udHJvbGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFQzg0RkYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQXJndW1lbnRSZWdWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZFQzg1MDExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmFzaWNCbG9jay5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1MDIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmFzaWNCbG9j
a0lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTAzMUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0Jhc2ljQmxvY2tVdGlscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1MDQxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQmxvY2tXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1
MDYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkVDODUwODFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1ZhbHVlLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkVDODUwQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRUM4NTBDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbW11dGF0aXZpdHkuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRUM4NTBFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0MzJW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
Q29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUxMjFCREFDREFDMDA4MEZG
NzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODVCMzFC
REVEOTU3MDA4MEZGNzQgLyogQjNDb25zdFB0clZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkVDODUxNDFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRUM4NUMxMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVjdHMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRUM4NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUxNzFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVu
dGVkQmxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTE5MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0dlbmVyYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUxQTFCREFDREFDMDA4MEZG
NzQgLyogQjNHZW5lcmljRnJlcXVlbnRlZEJsb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVD
ODVDMzFCRTE2N0EwMDA4MEZGNzQgLyogQjNIZWFwUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRUM4NTFCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4TWFwLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkVDODUxQzFCREFDREFDMDA4MEZGNzQgLyogQjNJbmRleFNldC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFQzg1QkExQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkVDODVCQjFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25T
ZXRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUxRTFCREFDREFDMDA4MEZGNzQg
LyogQjNMb3dlclRvQWlyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUyMDFCREFDREFDMDA4
MEZGNzQgLyogQjNNZW1vcnlWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1MjIxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzT3Bjb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUyNDFC
REFDREFDMDA4MEZGNzQgLyogQjNPcmlnaW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTI2
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BhdGNocG9pbnRTcGVjaWFsLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkVDODUyODFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50VmFsdWUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRUM4NTJBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BoYXNlU2NvcGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTJDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1MkQxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
UHJvY2VkdXJlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQzg1QkQxQkUxNDYyRjAw
ODBGRjc0IC8qIEIzUmVkdWNlU3RyZW5ndGguaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUM4NTJG
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrbWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVD
ODUzMTFCREFDREFDMDA4MEZGNzQgLyogQjNTdGFja21hcFNwZWNpYWwuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRUM4NTMzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrU2xvdEtpbmQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRUM4NTM1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrU2xvdFZh
bHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUzNjFCREFDREFDMDA4MEZGNzQgLyogQjNT
dWNjZXNzb3JDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUzODFCREFDREFD
MDA4MEZGNzQgLyogQjNTd2l0Y2hDYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODUzQTFC
REFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZF
Qzg1M0MxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZF
Qzg1M0UxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVXBzaWxvblZhbHVlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkVDODU0MDFCREFDREFDMDA4MEZGNzQgLyogQjNVc2VDb3VudHMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRUM4NTQyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1ZhbGlkYXRlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkVDODU0NDFCREFDREFDMDA4MEZGNzQgLyogQjNWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZFQzg1NDUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVmFsdWVJbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVDODU0NzFCREFDREFDMDA4MEZGNzQgLyogQjNWYWx1
ZVJlcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTI2NzhGOEYxQTAzMTAwOTAwNkEzMDZEIC8qIEJh
c2ljQmxvY2tMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3QjgzQUMwRTZEQjhDOTAw
NDc3NUE0IC8qIEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkVDODUzNjFCREFDREFDMDA4MEZGNzQgLyogQjNTdWNjZXNzb3JDb2xsZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NjY3MzlEMjEzQkZERTcxMDAyM0Q4N0MgLyogQmlnSW50ZWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2NEIyNzIxQTc4NEJBRjAwNkU0RTY2IC8qIEJpbmFyeVN3
aXRjaC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1OEUxQkRBQ0RDNzAwODBGRjc0IC8qIEFp
clRtcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRUMwRTE2RjVDRDAwQjM0NDYwIC8qIEJv
b2xlYW5PYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzE5MUJEQTA2ODAwMDMzMUI4
NCAvKiBCb29sZWFuUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMTkx
QkRBMDY4MDAwMzMxQjg0IC8qIEJvb2xlYW5Qcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRUEwODYyMDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdEODAxQTUxODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0aW5FeGVjdXRhYmxlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTc1RUU5QjIxOEFBQjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5O
YW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQTYxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1
aWx0aW5zLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJOTlEQTAwQTcxQkQ1OTkzMTAwRjQ1NzVDIC8q
IGJ1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAotCQkJ
CTk5REEwMEE4MUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9p
bXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAotCQkJCTk5REEwMEE5MUJENTk5MzEwMEY0
NTc1QyAvKiBidWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkgaW4gSGVhZGVycyAq
LywKLQkJCQk5OURBMDBBQTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2Vw
YXJhdGVfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKLQkJCQk5OURBMDBBQjFCRDU5
OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBlci5weSBpbiBI
ZWFkZXJzICovLAorCQkJCTk5RTk4NTlBMUJERDlFRDUwMDZDREQwRSAvKiBidWlsdGluc19nZW5l
cmF0ZV9mcmFtZXdvcmtfbWFjcm9zLnB5IGluIEhlYWRlcnMgKi8sCisJCQkJOTlEQTAwQTkxQkQ1
OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkgaW4gSGVh
ZGVycyAqLywKKwkJCQk5OURBMDBBQTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJh
dGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCisJCQkJOTlEQTAwQUIx
QkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX29iamVjdF93cmFwcGVyLnB5IGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQTMxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dl
bmVyYXRvci5weSBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEE0MUJENTk5MzEwMEY0NTc1QyAv
KiBidWlsdGluc19tb2RlbC5weSBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEE1MUJENTk5MzEw
MEY0NTc1QyAvKiBidWlsdGluc190ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLywKIAkJCQk0MURF
QTEzMjFCOUYzMTYzMDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkVDODUxMDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDY0VmFsdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTlFNzI5NDBCMTkwRjA1MTQwMDFBOTFCNSAvKiBCdW5kbGVQYXRoLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkI3RjM5NzE1RUQ4RTQ2MDBGMTY3QjIgLyogQnV0dGVyZmx5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkI3RjM5ODE1RUQ4RTQ2MDBGMTY3QjIgLyogQnV0dGVyZmx5SW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC02NTU2LDcgKzY3MDcsNiBAQAogCQkJCTBGMkREODBC
MUFCM0Q4NTgwMEJCQjhFOCAvKiBCeXRlY29kZUtpbGxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
MkZDQUUxMzE3QTlDMjRFMDAzNEM3MzUgLyogQnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjY2NkVDMDE4MzU2NkY5MDBEMDE3RjEgLyogQnl0ZWNvZGVMaXZl
bmVzc0FuYWx5c2lzSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MDYxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ2hlY2tTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTE0RjIx
OTE4QjNFMTY3MDA5OEZGOEIgLyogQnl0ZWNvZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg4
NUUxMTE4NDlBM0JFMDBGMUUzRkEgLyogQnl0ZWNvZGVVc2VEZWYuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGODAyM0VBMTYxMzgzMkIwMEEwQkE0NSAvKiBCeVZhbEluZm8uaCBpbiBIZWFkZXJzICov
LApAQCAtNjU5MCwyNCArNjc0MCwxNyBAQAogCQkJCTBGMEI4M0E3MTRCQ0Y1MDcwMDg4NUI0RiAv
KiBDb2RlVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzMjQzOTgxODU2QTQ4OTAwMkVENjky
IC8qIENvbWJpbmVkRG9tYWlucy5qc29uIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRjMwRTE2
RjVDRDAwQjM0NDYwIC8qIENvbW1vbklkZW50aWZpZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkVDODVCQTFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMTVGMTVGMTRCN0E3M0UwMDVERTM3RCAvKiBDb21tb25TbG93UGF0aHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTY1NTNBMzMyMTdBMUYxRUUwMDhDRjZGMyAvKiBDb21tb25TbG93UGF0
aHNFeGNlcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4MkUzOTE0MUFCMTREMDAxNzlD
OTQgLyogQ29tcGFjdEpJVENvZGVNYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTJDMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM1Byb2NlZHVyZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdFNUEz
QTgxNzk3NDMyRDAwRTg5M0MwIC8qIENvbXBpbGF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzE4QzNGNDBFMTZGNUNEMDBCMzQ0NjAgLyogQ29tcGxldGlvbi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJOTk2QjczMUQxQkRBMDhFRjAwMzMxQjg0IC8qIEpTR2xvYmFsT2JqZWN0Lmx1dC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMUYxQkRBMDhFRjAwMzMxQjg0IC8qIEpTUHJvbWlz
ZVByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkZDNzUxMTk2MTEwQTgwMEUx
RDAyRCAvKiBDb21wbGV4R2V0U3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRCMkNFQTE3
NDg5NkM3MDA3QjNDMUIgLyogQ29uY3VycmVudEpJVExvY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMThDM0Y1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRUM4NTg4MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJTcGVjaWFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNDQ4MzZFNzEzMkRBN0JFMDA1QkU3ODUgLyogQ29uc2VydmF0aXZlUm9vdHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE1M0NFMDhBMThCQzIxQzMwMEJFREY3NiAvKiBDb25zb2xlQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUwODFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVj
a1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUZEMDA3QTE4OUIwNTEwMDA2MzMyMzEgLyog
Q29uc29sZU1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzE5MUJEQTA2ODAwMDMz
MUI4NCAvKiBCb29sZWFuUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzQ0Uw
ODYxOEJDMUE1NjAwQkVERjc2IC8qIENvbnNvbGVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1RkQwMDc0MTg5QjAzOEMwMDYzMzIzMSAvKiBDb25zb2xlVHlwZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRkM5OUQxMTg0RUM4QUQwMDlDMTBBQiAvKiBDb25zdGFudE1vZGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtNjYyMCw3ICs2NzYzLDYgQEAKIAkJCQlDMkZDOUJEMzE2NjQ0REZCMDA4
MTBEMzMgLyogQ29waWVkQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkVBQTNG
QTE0OUE4MzVFMDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUMy
QzhEMDJEMTRBM0M2RTAwMDU3OEU2NSAvKiBDb3BpZWRTcGFjZUlubGluZXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRUM4NTI0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM09yaWdpbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY3QzExQUQxQkMzODYyQzAwQzc0Q0RCIC8qIENvcHlCYXJyaWVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjVBNTJEMDE3QURENzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMjIzOUQxODE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNjYzMiwxNSArNjc3NCwxNCBAQAogCQkJCTk5NTlFOTJC
MUJEMTdGQTQwMDFBQTQxMyAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKIAkJCQkyQTExMTI0
NjE5MkZDRTc5MDA1RUUxOEQgLyogQ3VzdG9tR2V0dGVyU2V0dGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjQyNkE0QjE0NjBDRDZFMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFQzg1MDQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmxvY2tXb3JrbGlzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2REYxN0I2QjVBQjAwQTdBRTNGIC8qIERhdGFWaWV3Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0QyMDM0QTBFMTcxMzVFMDAyQzdFODIgLyogRGF0ZUNvbnN0
cnVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxQTFCREEwOEQxMDAzMzFCODQgLyog
RGF0ZUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzNTlDRjMwRkREODlB
RDAwMjA2MTgwIC8qIERhdGVDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExNjYw
MjBFMTk5N0I0MDA4MDY2REQgLyogRGF0ZUluc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NEExNTYzMjEwOTY2MzY1MDA2RkEyNjAgLyogRGF0ZUluc3RhbmNlQ2FjaGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRDIwMzRDMEUxNzEzNUUwMDJDN0U4MiAvKiBEYXRlUHJvdG90eXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0QyMDNFODBFMTcxOEY0MDAyQzdFODIgLyogRGF0ZVByb3RvdHlw
ZS5sdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzFCMUJEQTA4RDEwMDMzMUI4NCAvKiBF
cnJvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0ZBMEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBEZWJ1Z2dlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEMzRkIwRTE2RjVD
RDAwQjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QUQy
Q0I0RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC02NjUzLDcgKzY3OTQsNiBAQAogCQkJCUE3MDREOTAzMTdBMEJBQTgwMDZCQTU1NCAv
KiBERkdBYnN0cmFjdEludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzA0RDkwNDE3
QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNjIwMTc3MTQzRkNEM0YwMDY4Qjc3QyAvKiBERkdBYnN0cmFjdFZhbHVl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU3MDFCREFDREM3MDA4MEZGNzQgLyogQWlyQXJn
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQzRTQwMjFCNjE4QUFGMDBDODBFMUUgLyogREZHQWRh
cHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjE4RDNEMDFCNTVBNkUwMDAyQzVDOUYgLyogREZHQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBv
aW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY2RTE2QjE0REYzRjE2MDBCN0IyRTQgLyogREZH
QWRqYWNlbmN5TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NjY0LDkgKzY4MDQsNyBAQAogCQkJ
CTBGMkREODE0MUFCM0Q4QkUwMEJCQjhFOCAvKiBERkdBcmd1bWVudHNVdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNDg1MzIyMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMDVDM0I0MTY4M0NGOTIwMEJBRjQ1QiAvKiBERkdBcnJh
eWlmeVNsb3dQYXRoR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxNzFCREFD
REFDMDA4MEZGNzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NjM5NDg1MTVFNDgxMUIwMDZBNTk3QyAvKiBERkdBcnJheU1vZGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRUM4NTc2MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBN0Q5QTI5NTE3QTBCQzc0MDBFRTI2MTggLyogREZHQXRUYWlsQWJzdHJhY3RTdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2NjZFQzcxODM1NjcyQjAwRDAxN0YxIC8qIERGR0F2YWls
YWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjlDRTMxOUQwQkE3RDAwQjFEMUI1IC8q
IERGR0F2YWlsYWJpbGl0eU1hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC02Njc2LDcgKzY4MTQsNiBA
QAogCQkJCUE3RDg5Q0Y0MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCbG9ja0luc2VydGlvblNldC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDM0NDRkMxOUFEQTQxMDAwNkFDNzJBIC8qIERGR0Jsb2Nr
TWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkMzQ0NGRDE5QURBNDEwMDA2QUM3MkEgLyogREZH
QmxvY2tNYXBJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUyRDFCREFDREFDMDA4
MEZGNzQgLyogQjNQcm9jZWR1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkMzQ0NG
RTE5QURBNDEwMDA2QUM3MkEgLyogREZHQmxvY2tTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QkYxNThEMTlCN0E1MzEwMDY5NUREMCAvKiBERkdCbG9ja1NldElubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQzNDRDAwMTlBREE0MTAwMDZBQzcyQSAvKiBERkdCbG9ja1dvcmtsaXN0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTY3MTYsMTAgKzY4NTMsOCBAQAogCQkJCTBGNjZFMTZDMTRERjNG
MTYwMEI3QjJFNCAvKiBERkdFZGdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q5QTI5NjE3QTBC
Qzc0MDBFRTI2MTggLyogREZHRWRnZURvbWluYXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc5
ODZENTcxN0EwQkIxRTAwQTk1REQwIC8qIERGR0VkZ2VVc2VzU3RydWN0dXJlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkVDODU3MjFCREFDREM3MDA4MEZGNzQgLyogQWlyQmFzaWNCbG9jay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY4RjE0MzQxQURGMDkwMTAwRUQ3OTJDIC8qIERGR0Vwb2NoLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkJDMEFFODE0OTZDN0M3MDBENEZCREQgLyogREZHRXhpdFBy
b2ZpbGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTAzMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0Jhc2ljQmxvY2tVdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4QTk3NzUxNzk3MzhCODAw
OURGNzQ0IC8qIERGR0ZhaWxlZEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCRkYz
QzAxNzk4Njg5NDAwMDJGNDYyIC8qIERGR0ZpbHRyYXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3OEE5Nzc3MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGaW5hbGl6ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtNjc0OSw3ICs2ODg0LDYgQEAKIAkJCQk2MkYyQUEzODFCMEJFREUzMDA2MTBD
N0EgLyogREZHTGF6eU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDlBMjk4MTdBMEJDNzQw
MEVFMjYxOCAvKiBERkdMSUNNUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5QzRCMTVFMUJB
MjE1OEYwMEZENTkyRSAvKiBERkdMaXZlQ2F0Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU4NjFCREFDREM3MDA4MEZGNzQgLyogQWlyUmVnaXN0
ZXJQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRkMxN0EwQjhDQzAwNzczQUQ4
IC8qIERGR0xpdmVuZXNzQW5hbHlzaXNQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMEYx
OUIxNkI3MjlGQTAwNURGOTVCIC8qIERGR0xvbmdMaXZlZFN0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzY3QjVCNjE3QTBCOTY1MDA2M0Q5NDAgLyogREZHTG9vcFByZUhlYWRlckNyZWF0aW9u
UGhhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtNjc1OCw3ICs2ODkyLDYgQEAKIAkJCQkwRjJCREM0
NTE1MjI4MDFCMDBDRDg5MTAgLyogREZHTWluaWZpZWRHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyRTg5MkQxNkQwMkJBRjAwOUU0RkQyIC8qIERGR01pbmlmaWVkSUQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMkJEQzQ2MTUyMjgwMjAwMENEODkxMCAvKiBERkdNaW5pZmllZE5vZGUuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRUM4NTE0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RjE0MzYxQURGMDkwMTAwRUQ3OTJDIC8qIERG
R01vdkhpbnRSZW1vdmFsUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjJDRDVDMUI2MUE0
RjgwMDQ5NTVBOCAvKiBERkdNdWx0aUdldEJ5T2Zmc2V0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDM0NEMDIxOUFEQTQxMTAwNkFDNzJBIC8qIERGR05haXZlRG9taW5hdG9ycy5oIGluIEhl
YWRlcnMgKi8sCkBAIC02Nzc3LDcgKzY5MTAsNiBAQAogCQkJCTBGQzA5NzZBMTQ2OEE2RjcwMENG
MjQ0MiAvKiBERkdPU1JFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJFQzE3MTc4RTcz
MDA2OTBDN0YgLyogREZHT1NSRXhpdEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkI5MjFD
MTZEMDJGMTEwMDU1QTVEQiAvKiBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkVDODUzNTFCREFDREFDMDA4MEZGNzQgLyogQjNTdGFja1Nsb3RWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDMDk3NzExNDY5M0FGNTAwQ0YyNDQyIC8qIERGR09TUkV4
aXRDb21waWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3MDI1QUExNzE0QjBGQzAwMzgyQzBF
IC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzOTJD
OEExQjQ2MTg4NDAwODQ0NzI4IC8qIERGR09TUkV4aXRGdXp6LmggaW4gSGVhZGVycyAqLywKQEAg
LTY3OTUsOCArNjkyNyw2IEBACiAJCQkJMEZGQzkyMTYxQjk0RkIzRTAwNzFERDY2IC8qIERGR1By
b3BlcnR5VHlwZUtleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMTc2NjMxOTZCOEY5RTAwOTEw
NTJBIC8qIERGR1B1cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzQTFCRkExQTlFQ0I3
RDAwMERFMDFBIC8qIERGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkVDODU2RTFCREFDREM3MDA4MEZGNzQgLyogQWlyQWxsb2NhdGVTdGFjay5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFQzg1MUMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzSW5kZXhTZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg2RUM5REQxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJh
bmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkZDQ0ZDMThBNjAwNzAwMDFBMjdGOCAvKiBERkdT
YWZlcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0E0MjQzMTdBMEJCRkQwMEE4REI4MSAv
KiBERkdTYWZlVG9FeGVjdXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTY4MjEsNyArNjk1MSw2IEBA
CiAJCQkJMEZEOEEzMjgxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RpZXJVcENoZWNrSW5qZWN0aW9u
UGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDhBMzJBMTdENTFGNTcwMENBMkM0MCAvKiBE
RkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZEOEEzMkMxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTdFMUJEQUNEQzcw
MDgwRkY3NCAvKiBBaXJJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTcyMTFF
MTkzQjlDNTkwMDMxRjZFRCAvKiBERkdUcmFuc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjYzOTQzRjE1Qzc1RjE5MDA2QTU5N0MgLyogREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZCRTBGNzcxNkMxREIxMjAwODJDNUU4IC8qIERGR1VuaWZpY2F0
aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtNjgzMywxNiArNjk2MiwxMyBAQAogCQkJCTBG
NjIwMTc0MTQzRkNEMzMwMDY4Qjc3QyAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRERCRkI2MTY2NkVFREEwMEM1NUZFRiAvKiBERkdWYXJpYWJsZUFjY2Vz
c0RhdGFEdW1wLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCREM0OTE1MjI4MDk2MDBDRDg5MTAg
LyogREZHVmFyaWFibGVFdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MzgxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzU3dpdGNoQ2FzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkRDNEIx
NTIyODA5RDAwQ0Q4OTEwIC8qIERGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRkZDOTYwMTRFRjkwQkQwMEM3MjUzMiAvKiBERkdWaXJ0dWFsUmVnaXN0ZXJBbGxv
Y2F0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzE4MUJEQTA2ODAwMDMzMUI4
NCAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
OTdGNDIxODIwMjExOTAwMkM5QjI2IC8qIERGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGREIyQ0U4MTc0ODMwQTIwMDdCM0MxQiAvKiBERkdXb3JrbGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFMDUwMTgxQUE5MDkxMTAwRDMzQjMzIC8qIERpcmVj
dEFyZ3VtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFMDUwMTYxQUE5MDkxMTAwRDMzQjMz
IC8qIERpcmVjdEFyZ3VtZW50c09mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3MzEx
NThFQkQ1NDAwNENCOUZGIC8qIERpc2Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZF
Qzg1QzExQkUxNjdBMDAwODBGRjc0IC8qIEIzRWZmZWN0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTcwNDQ3RUUxN0EwQkQ3MDAwRjU4OThFIC8qIER1bXBDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkyQTgzNjM4NjE4RDdEMEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTlFNDVBMjQxOEExQjI1OTAwMjZEODhGIC8qIEVtcHR5SW5w
dXRDdXJzb3IuaCBpbiBIZWFkZXJzICovLApAQCAtNjg1Myw2ICs2OTc5LDcgQEAKIAkJCQlGRUI1
OEMxNTE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzAyRTk4RDBFMTgzRTM4MDAwRjkyOTcgLyogRXJyb3JJbnN0YW5jZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMwMkU5MEYwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yUHJvdG90eXBl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxQjFCREEwOEQxMDAzMzFCODQgLyogRXJyb3JQ
cm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDc5ODBFRDFEM0FFMDBGMUY2
ODEgLyogRXZhbENvZGVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU0OTgyMDQxODkxRDBC
MDAwODFFNUI4IC8qIEV2ZW50TG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkUxQzBGRkQxQjE5
M0U5ODAwQjUzRkNBIC8qIEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC02ODY1LDcgKzY5
OTIsNiBAQAogCQkJCTBGNTZBMUQzMTUwMDBGMzUwMDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjNBQzc1NDE4OEU1RUM4MDAzMjAyOUYgLyogRXhpdGlu
Z0pJVFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjEwNTg2MTY3NTQ4MTIwMEY4QUI2RSAv
KiBFeGl0S2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MDExQkRBQ0RBQzAwODBGRjc0
IC8qIEIzQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwQjgzQUIxNEJDRjVCQjAw
ODg1QjRGIC8qIEV4cHJlc3Npb25SYW5nZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QThB
RjM4MTdBREI1RjMwMDVBQjE3NCAvKiBGbG9hdDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3QThBRjM5MTdBREI1RjMwMDVBQjE3NCAvKiBGbG9hdDY0QXJyYXkuaCBpbiBIZWFkZXJzICov
LApAQCAtNjg3Nyw3ICs3MDAzLDYgQEAKIAkJCQkwRjQ4NTMyODE4N0RGREVDMDA4M0I2ODcgLyog
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBBMTcwNTEz
REIwMEJCNzIyQyAvKiBGVExDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEw
QTIzMTcwOTYwNjkwMEJCNzIyQyAvKiBGVExDb21tb25WYWx1ZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTk5NkI3MzIyMUJEQTA4RUYwMDMzMUI4NCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5sdXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBDMTcwNTEzREIwMEJCNzIyQyAvKiBGVExDb21waWxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU5NUY3QTE4QjU2OTQ3MDBCNTMxRkIgLyogRlRMRGF0
YVNlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJBQzkyMkJDMThBMTYxODIwMDNDRTBGQiAv
KiBGVExEV0FSRkRlYnVnTGluZUluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtNjkxMiw3ICs3MDM3
LDYgQEAKIAkJCQkwRkQ4QTMxQzE3RDUxRjIyMDBDQTJDNDAgLyogRlRMT1NSRW50cnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGMjM1QkREMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExPU1JFeGl0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJERTE3MTc4RTFDMDA2OTBDN0YgLyogRlRMT1NSRXhp
dENvbXBpbGF0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjgxQkRBMDhFRjAw
MzMxQjg0IC8qIFN5bWJvbFByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjM1
QkUwMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExPU1JFeGl0Q29tcGlsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUEwQTExMTcwNTEzREIwMEJCNzIyQyAvKiBGVExPdXRwdXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC02OTI2LDcgKzcwNTAsNiBAQAogCQkJCTBGRUEwQTIwMTcwOEIw
MDcwMEJCNzIyQyAvKiBGVExUeXBlZFBvaW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkIx
Q0M2MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkRCMkNDQTE3M0RBNTIzMDA3QjNDMUIgLyogRlRMVmFsdWVGcm9tQmxvY2suaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRUM4NTc3MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJGcmVxdWVudGVkQmxv
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUE2Mjg0MTg4Qzk4RDQwMDcyQzlERiAvKiBGVExW
YWx1ZVJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjAzMzJDNjE4QjUzRkE5MDA1Rjk3OUEg
LyogRlRMV2VpZ2h0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjAzMzJDODE4QjU0NkVDMDA1Rjk3
OUEgLyogRlRMV2VpZ2h0ZWRUYXJnZXQuaCBpbiBIZWFkZXJzICovLApAQCAtNjkzNCwxMCArNzA1
Nyw4IEBACiAJCQkJMkE4MzYzOEExOEQ3RDBGRTAwMDBFQkNDIC8qIEZ1bGxHQ0FjdGl2aXR5Q2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDA0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBG
dW5jdGlvbkNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYwRjFBMDE2QjcyQTFB
MDA1REY5NUIgLyogRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZFQzg1M0ExQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3dpdGNoVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUyQjMxMEZCMTk3NEFFNjEwMDgwODU3QyAvKiBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2Fj
aGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFNEJGRjJDMUFENDc2RTcwMDA4OEY4NyAvKiBGdW5j
dGlvbk92ZXJyaWRlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MkYxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzU3RhY2ttYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDA1MEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBGdW5jdGlvblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJEMkQz
OTAxQURGMTAzRjAwMDIwNkMxIC8qIEZ1bmN0aW9uUmFyZURhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJBQUNFNjNEMThDQTVBMDMwMEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suaCBpbiBI
ZWFkZXJzICovLApAQCAtNjk1MywxMiArNzA3NCwxMCBAQAogCQkJCTk5NTlFOTMxMUJEMTgyNzIw
MDFBQTQxMyAvKiBnZW5lcmF0ZS1jb21iaW5lZC1pbnNwZWN0b3ItanNvbi5weSBpbiBIZWFkZXJz
ICovLAogCQkJCUM0NzAzQ0MwMTkyODQ0OTYwMDEzRkJFQSAvKiBnZW5lcmF0ZS1pbnNwZWN0b3It
cHJvdG9jb2wtYmluZGluZ3MucHkgaW4gSGVhZGVycyAqLywKIAkJCQk5OURBMDBBRjFCRDU5OTRF
MDBGNDU3NUMgLyogZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgaW4gSGVhZGVycyAqLywKLQkJCQk5
OTZCNzMxQzFCREEwOEREMDAzMzFCODQgLyogSlNEYXRhVmlld1Byb3RvdHlwZS5sdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE1RUE3MEVDMTlGNUIzRUEwMDk4RjVFQyAvKiBnZW5lcmF0ZV9jcHBf
YWx0ZXJuYXRlX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKIAkJ
CQlBNUVGOUIxNDFBMUQ0M0Y2MDA3MDJFOTAgLyogZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0
Y2hlcl9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNUVGOUIxNTFBMUQ0M0ZBMDA3MDJF
OTAgLyogZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBp
biBIZWFkZXJzICovLAogCQkJCUE1RUY5QjE2MUExRDQ0MDAwMDcwMkU5MCAvKiBnZW5lcmF0ZV9j
cHBfZnJvbnRlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKLQkJCQk5OTZC
NzMyNTFCREEwOEVGMDAzMzFCODQgLyogU3RyaW5nQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNUVGOUIxNzFBMUQ0NDAzMDA3MDJFOTAgLyogZ2VuZXJhdGVfY3BwX2Zyb250
ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNUVG
OUIxODFBMUQ0NDA2MDA3MDJFOTAgLyogZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2hlYWRl
ci5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1RUY5QjE5MUExRDQ0MDcwMDcwMkU5MCAvKiBnZW5l
cmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywK
QEAgLTY5NzYsNyArNzA5NSw2IEBACiAJCQkJQzQ3MDNDRDUxOTI4NDRDQzAwMTNGQkVBIC8qIGdl
bmVyYXRvcl90ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLywKIAkJCQkwRkUwNTAxOTFBQTkwOTEx
MDBEMzNCMzMgLyogR2VuZXJpY0FyZ3VtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFMDUw
MUExQUE5MDkxMTAwRDMzQjMzIC8qIEdlbmVyaWNBcmd1bWVudHNJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkVDODUwQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRTA1MDFCMUFBOTA5MTEwMEQzM0IzMyAvKiBHZW5lcmljT2Zmc2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFMDE3QjZCNUFCMDBBN0FFM0YgLyogR2VuZXJpY1R5
cGVkQXJyYXlWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFMTE3QjZCNUFCMDBBN0FF
M0YgLyogR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC03
MDAyLDcgKzcxMjAsNiBAQAogCQkJCUMyRTUyNkJFMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGlt
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFN0JBNjEwMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFw
VmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDY4MEQ1MTRCQkQyNEIwMEJGRTI3MiAv
KiBIb3N0Q2FsbFJldHVyblZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUwQzFCREFD
REFDMDA4MEZGNzQgLyogQjNDb21tdXRhdGl2aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4
QzQwRjBFMTZGNUNEMDBCMzQ0NjAgLyogSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODYwNkRERUExOERBNDRBQjAwQTM4M0QwIC8qIElkZW50aWZpZXJJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNUZEMDA3NjE4OUIwMzhDMDA2MzMyMzEgLyogSWRlbnRpZmllcnNGYWN0b3J5
LmggaW4gSGVhZGVycyAqLywKQEAgLTcwNTYsNyArNzE3Myw2IEBACiAJCQkJQTFCOUUyM0MxQjRF
MEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMTgxOTNFMzFCNEUwQ0RCMDBGQzEwMjkgLyogSW50bENvbGxhdG9yQ29uc3RydWN0b3Iu
bHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUI5RTIzRTFCNEUwRDY3MDBCQzdGRUQgLyogSW50
bENvbGxhdG9yUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxNjFCREFDREFD
MDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE4MTkz
RTQxQjRFMENEQjAwRkMxMDI5IC8qIEludGxDb2xsYXRvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExNTg3RDZFMUI0REMxNDEwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3Jt
YXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNTg3RDcwMUI0REMxNDEwMEQ2OTg0OSAvKiBJbnRs
RGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCkBAIC03MDg3LDcgKzcy
MDMsNiBAQAogCQkJCTBGMjRFNTREMTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklUU3R1YlJv
dXRpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzY2RDJDMTVBOENDM0EwMDhGMzYzRSAvKiBK
SVRTdHViUm91dGluZVNldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1OTExQkRBQ0RDNzAw
ODBGRjc0IC8qIEFpclZhbGlkYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVFRjkxRjE2ODc4
RjdEMDAzRTVDMjUgLyogSklUVGh1bmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM3MTJFMzE3
Q0Q4NzkzMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovLAogCQkJCUE3NkY1NEEzMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJh
cnJpZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNzA5OCwxMSArNzIxMyw5IEBACiAJCQkJMEYyQjY2
RTUxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyQjY2RTcxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJQcm90
b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkU5MTdCNkI1QUIwMEE3QUUzRiAvKiBK
U0FycmF5QnVmZmVyVmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1QjMxQkRFRDk1NzAw
ODBGRjc0IC8qIEIzQ29uc3RQdHJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RUEx
N0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdCREFFQ0IxN0Y0RUExNDAwRjYxNDBDIC8qIEpTQXJyYXlJdGVyYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOEIxNDE4NkQxQjYyNTI3RjAwRkIyMDY4IC8qIEpTQXJyb3dGdW5j
dGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
Q29uc3REb3VibGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTgwRTE2RjVDRDAw
QjM0NDYwIC8qIEpTQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwRDE3RDcwRThBRDRBOTAw
MENEMTdEIC8qIEpTQmFzZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RkE5RTkyMTQy
QkJCMkUwMDE3NzNCNyAvKiBKU0JvdW5kRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtNzEx
MSw3ICs3MjI0LDYgQEAKIAkJCQlCQzE4QzQxQjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxsYmFj
a09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUMwRTE2RjVDRDAwQjM0NDYwIC8q
IEpTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1N0NGNDU5
MTlCRjY2NjIwMDRBQ0JGMiAvKiBKU0NhbGxlZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTdEODAx
QTkxODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzExNjdEQTBFMTlCQ0M5MDA4MDY2REQgLyogSlNDZWxsLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
Rjk3NDk3MTE2ODdBREU0MDBBNEZGNkEgLyogSlNDZWxsSW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYxREQ4NEExOEE5NDVCRTAwMjZGM0ZBIC8qIEpTQ0lubGluZXMuaCBpbiBIZWFkZXJz
ICovLApAQCAtNzExOSw4ICs3MjMxLDYgQEAKIAkJCQk4NjVBMzBGMTEzNTAwN0UxMDBDREI0OUUg
LyogSlNDSlNWYWx1ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDFEMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBKU0NsYXNzUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTNDRTA4ODE4
QkMxQTU2MDBCRURGNzYgLyogSlNDb25zb2xlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUx
RTFCREFDREFDMDA4MEZGNzQgLyogQjNMb3dlclRvQWlyLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkVDODU4RjFCREFDREM3MDA4MEZGNzQgLyogQWlyVG1wSW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODZFM0M2MTMxNjdCQUJENzAwNkQ3NjBBIC8qIEpTQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODZFM0M2MTcxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTQ29udGV4dEludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNThDMDI0MjE4RTRBNDFBMDAwMzJCQzUgLyogSlNDb250ZXh0
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03MTMxLDMwICs3MjQxLDI5IEBACiAJCQkJQTcy
MDI4QjgxNzk3NjAxRTAwOTgwMjhDIC8qIEpTQ1Rlc3RSdW5uZXJVdGlscy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEYyQjY2RUMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRGF0YVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NkVFMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3UHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxQzFCREEwOEREMDAzMzFCODQgLyogSlNE
YXRhVmlld1Byb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3ODgwMTQxMTQ3MUFE
OTIwMDQxQjAxNiAvKiBKU0RhdGVNYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkE3RjY4ODE2
MDQzMkQ0MDBGNzZCOTggLyogSlNEZXN0cnVjdGlibGVPYmplY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZFMzg0RUU2MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTM4NEVFODFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MkQwRTE2RjVDRDAwQjM0NDYwIC8qIEpTRW52aXJv
bm1lbnRSZWNvcmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTIwMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM01lbW9yeVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkUzQzYxNDE2N0JBQkQ3
MDA2RDc2MEEgLyogSlNFeHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QjRBQ0FGMTQ4NEM5
Q0UwMEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2
RUYxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjJCNjZGMDE3QjZCNUFCMDBBN0FFM0YgLyogSlNGbG9hdDY0QXJyYXkuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTk5NkI3MzFFMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VDb25zdHJ1Y3Rv
ci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDFGMEUxNkY1Q0QwMEIzNDQ2MCAvKiBK
U0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzIwMjhCQTE3OTc2MDNEMDA5ODAyOEMg
LyogSlNGdW5jdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkYxMTdCNkI1
QUIwMEE3QUUzRiAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyQjY2RjIxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29u
c3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkYzMTdCNkI1QUIwMEE3QUUzRiAv
KiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFQzg1NDUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVmFsdWVJbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjJCNjZGNDE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGNTE3QjZCNUFC
MDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUzOTE3RTdCMUI3OTA2RkEwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFycmF5
Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjYxN0I2
QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzk3RTA3QUExQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFs
TGV4aWNhbEVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxQjFCREFDREFD
MDA4MEZGNzQgLyogQjNJbmRleE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjEwRTE2
RjVDRDAwQjM0NDYwIC8qIEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZC
NzMxRDFCREEwOEVGMDAzMzFCODQgLyogSlNHbG9iYWxPYmplY3QubHV0LmggaW4gSGVhZGVycyAq
LywKKwkJCQk5OTZCNzMxRDFCREEwOEVGMDAzMzFCODQgLyogSlNHbG9iYWxPYmplY3QubHV0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNUZEMDA4NjE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxP
YmplY3RDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QzNBMUE2MThDMDQ5MDIw
MEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1OTQ1NTkzMTgyNDc0NDcwMENDMzg0MyAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGUu
aCBpbiBIZWFkZXJzICovLApAQCAtNzE4NCw3ICs3MjkzLDYgQEAKIAkJCQlBNzAwODc0MjE3Q0JF
OEVCMDBDM0U2NDMgLyogSlNNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NERFRjk2MTgyRDk5
MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU5RTky
RDFCRDE3RkE0MDAxQUE0MTMgLyoganNtaW4ucHkgaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU0
MjFCREFDREFDMDA4MEZGNzQgLyogQjNWYWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNE
MjM5QzkxQjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzMThDQkMxMUI4QUVGNTEwMEEyOTI5RCAvKiBKU01vZHVsZU5hbWVzcGFjZU9i
amVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM5REE0QTcxQjdFOEI3QzAwODRGMzNBIC8qIEpT
TW9kdWxlUmVjb3JkLmggaW4gSGVhZGVycyAqLywKQEAgLTcxOTcsOCArNzMwNSwxMSBAQAogCQkJ
CTk1MzRBQUZCMEU1QjdBOTYwMEI4QTQ1QiAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0MxODRFMUIxN0JFREJEMzAwN0NCNjNBIC8qIEpTUHJvbWlzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0MxODRFMjMxN0JFRTI0MDAwN0NCNjNBIC8qIEpTUHJvbWlzZUNvbnN0
cnVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxRTFCREEwOEVGMDAzMzFCODQgLyog
SlNQcm9taXNlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzAwOENEQjE4
NzEyNEJCMDA5NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdDMTg0RTFGMTdCRUUyMkUwMDdDQjYzQSAvKiBKU1Byb21pc2VQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk5NkI3MzFGMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VQcm90b3R5
cGUubHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMxRjFCREEwOEVGMDAzMzFCODQgLyog
SlNQcm9taXNlUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkEwNUFCRDYxOTYx
REYyNDAwMzQxNzUwIC8qIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTNFRjg4NzUxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg2MjU1M0QyMTYxMzZFMUEwMDlGMTdEMCAvKiBKU1Byb3h5
LmggaW4gSGVhZGVycyAqLywKQEAgLTcyMTQsMTMgKzczMjUsMTEgQEAKIAkJCQlBN0MxRUFGMDE3
OTg3QUI2MDAyOTlEQjIgLyogSlNTdGFja0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MThDNDI3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODZFODU1MzkxMTFCOTk2ODAwMUFGNTFFIC8qIEpTU3RyaW5nQnVpbGRlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFQzg1M0UxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVXBzaWxvblZhbHVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MEVDMEVDMzFBQTBEN0RBMDBCNkFBRkEgLyogSlNTdHJpbmdJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpT
U3RyaW5nSm9pbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyODBFMTZGNUNEMDBCMzQ0
NjAgLyogSlNTdHJpbmdSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI5MEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBKU1N0cmluZ1JlZkNGLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI4RDRBODE3
N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk5OTZCNzMyNzFCREEwOEVGMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjkxOUQwRDE1N0VFMEEyMDA0QTRFN0QgLyogSlNTeW1ib2xUYWJs
ZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBFQ0E2MDYxQUZEQkVBMjAwNDQ5NzM5IC8q
IEpTVGVtcGxhdGVSZWdpc3RyeUtleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MkEwRTE2
RjVDRDAwQjM0NDYwIC8qIEpTVHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03MjMxLDcgKzczNDAs
NiBAQAogCQkJCURFQTdFMjQ1MUJCQzY3N0YwMEQ3ODQ0MCAvKiBKU1R5cGVkQXJyYXlWaWV3UHJv
dG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTA3RDI5RTBFODcxRTVFMDBEN0Q4OTYgLyog
SlNUeXBlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MDIxN0I2QjVBQjAwQTdBRTNG
IC8qIEpTVWludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzFBMUJEQTA4RDEw
MDMzMUI4NCAvKiBEYXRlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJC
NjcwMzE3QjZCNUFCMDBBN0FFM0YgLyogSlNVaW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyQjY3MDAxN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDhBcnJheS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEYyQjY3MDExN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDhDbGFtcGVkQXJyYXku
aCBpbiBIZWFkZXJzICovLApAQCAtNzIzOSwxOSArNzM0NywxNiBAQAogCQkJCTg2RTNDNjFCMTY3
QkFCRUUwMDZENzYwQSAvKiBKU1ZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MThDNDJDMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1ZhbHVlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NkUzQzYxNTE2N0JBQkQ3MDA2RDc2MEEgLyogSlNWaXJ0dWFsTWFjaGluZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTk2QjczMjExQkRBMDhFRjAwMzMxQjg0IC8qIE51bWJlclByb3RvdHlwZS5s
dXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjFEMTY3QkFCRUUwMDZENzYwQSAvKiBKU1Zp
cnR1YWxNYWNoaW5lSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdCOThEMTM3MUI2MENE
NjIwMDIzQjFBNCAvKiBKU1dBU01Nb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Q0EzQUU4
MTdEQTQxQUUwMDY1MzhBRiAvKiBKU1dlYWtNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NDgy
RTkzMTE2QTdDQUQwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTc0ODJCOTMxMTY3MTE0NzAwM0IwNzEyIC8qIEpTV2Vha09iamVjdE1h
cFJlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwOUZCODY4MUFFMzM1QzYwMDM5RDA2
OSAvKiBKU1dlYWtTZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NUJCMUJFMTQ2MkYwMDgw
RkY3NCAvKiBCM0luc2VydGlvblNldElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NDI1
NjYyMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODZFM0M2MTkxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTV3JhcHBlck1hcC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxOEM0MkUwRTE2RjVDRDAwQjM0NDYwIC8qIEpTV3JhcHBlck9iamVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNGRDhDOTMwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjAxQkRBMDhFRjAwMzMxQjg0IC8qIE1vZHVsZUxvYWRl
ck9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MkZGRDY0MTM5OTg1QTgwMEU1MzY1
QSAvKiBLZXl3b3JkTG9va3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDcyQTBFRDFDRTY5
MDBGMUY2ODEgLyogTGFiZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2MDA5N0E2MEVCQUJCNTgw
MDdBNzI5NyAvKiBMYWJlbFNjb3BlLmggaW4gSGVhZGVycyAqLywKQEAgLTcyNzMsMTEgKzczNzgs
OSBAQAogCQkJCTBGNDY4MEEzMTRCQTdGOEQwMEJGRTI3MiAvKiBMTEludEV4Y2VwdGlvbnMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNDY4MENCMTRCQkIxNzIwMEJGRTI3MiAvKiBMTEludE9mZmxp
bmVBc21Db25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRDI4N0IyMTVFQzlBNTcwMERBODE2
MSAvKiBMTEludE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MTkxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzR2VuZXJhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDY4MEE1MTRCQTdG
OEQwMEJGRTI3MiAvKiBMTEludFNsb3dQYXRocy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwQjgz
OUQxNEJDRjQ2NjAwODg1QjRGIC8qIExMSW50VGh1bmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkNFRkFDRTE4MDVFNzU1MDA0NzJDRTQgLyogTExWTUFQSS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZFQzg1OEMxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclN0YWNrU2xvdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDRUZBQ0YxODA1RTc1NTAwNDcyQ0U0IC8qIExMVk1BUElGdW5jdGlvbnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3RTVBQjM4MTc5OUU0QjIwMEQyODMzRCAvKiBMTFZNRGlzYXNzZW1i
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNFRkFEMzE4MDVFRENDMDA0NzJDRTQgLyogTExW
TUhlYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtNzI5MCwxNCArNzM5MywxMiBAQAogCQkJCTg2
RDNCMkM2MTAxNTZCREUwMDI4NjVFNyAvKiBNYWNyb0Fzc2VtYmxlckFSTS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFBMDA5QzAxODMxQTIyRDAwQ0Y4NzExIC8qIE1hY3JvQXNzZW1ibGVyQVJNNjQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg2QUREMTQ2MEZEREVBOTgwMDA2RUVDMiAvKiBNYWNyb0Fz
c2VtYmxlckFSTXY3LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUzQzFCREFDREFDMDA4MEZG
NzQgLyogQjNUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjNCMjNFMDBGQzYxMTg5MDA3MDNB
QTQgLyogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkM1NjhF
MTExQTIxM0VFMDAwN0Y3RjAgLyogTWFjcm9Bc3NlbWJsZXJNSVBTLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRTY4QzYzNzFCOTBERTA0MDA0MkJDQjMgLyogTWFjcm9Bc3NlbWJsZXJQcmludGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NkFFNjRBOTEzNUU1RTFDMDA5NjMwMTIgLyogTWFjcm9Bc3Nl
bWJsZXJTSDQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU0MEYzQTgzQzEwMEY4NDcxMCAv
KiBNYWNyb0Fzc2VtYmxlclg4Ni5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYwMTYxRTUwRjNBODND
MTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2XzY0LmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkVDODU4QTFCREFDREM3MDA4MEZGNzQgLyogQWlyU3BpbGxFdmVyeXRoaW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NjAxNjFFNjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzNBMTdDQkU4NTMwMEMzRTY0MyAvKiBN
YXBDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4NTA3RDcxN0NCQzZGRDAwMTFG
NkU3IC8qIE1hcERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtNzMxOSwxOSArNzQyMCwxOCBAQAog
CQkJCUM0NzAzQ0Q3MTkyODQ0Q0MwMDEzRkJFQSAvKiBtb2RlbHMucHkgaW4gSGVhZGVycyAqLywK
IAkJCQlFMzc5NEU3NjFCNzdFQjk3MDA1NTQzQUUgLyogTW9kdWxlQW5hbHl6ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUzNTVGMzUzMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVMb2FkZXJPYmpl
Y3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzI0MUJEQTA4RUYwMDMzMUI4NCAvKiBSZWdF
eHBQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTZCNzMyMDFCREEwOEVGMDAz
MzFCODQgLyogTW9kdWxlTG9hZGVyT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMw
MkU5MTEwRTE4MzlEQjAwMEY5Mjk3IC8qIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMDJFOTEzMEUxODM5REIwMDBGOTI5NyAvKiBOYXRpdmVFcnJvclByb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMzRThEMjExQjkwMTNERTAwMzQ2QjUyIC8qIE5h
dGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MjgxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZC
OTIyMDE2RDAzM0I3MDA1NUE1REIgLyogTm9kZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxOEM0M0YwRTE2RjVDRDAwQjM0NDYwIC8qIE5vZGVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5OUU0NUEyODE4QTFCMjU5MDAyNkQ4OEYgLyogTm9uZGV0ZXJtaW5pc3RpY0lucHV0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ0MTBFMTZGNUNEMDBCMzQ0NjAgLyogTnVtYmVyQ29u
c3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDQyMEUxNkY1Q0QwMEIzNDQ2MCAv
KiBOdW1iZXJDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDQzMEUx
NkY1Q0QwMEIzNDQ2MCAvKiBOdW1iZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4
NUMzMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0hlYXBSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEM0NDQwRTE2RjVDRDAwQjM0NDYwIC8qIE51bWJlclByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTk2QjczMjExQkRBMDhFRjAwMzMxQjg0IC8qIE51bWJlclByb3RvdHlwZS5sdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0MkQzOTM5MTAzRTQ1NjAwMDdEQ0I1MiAvKiBOdW1lcmlj
U3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMEMxOUY2REU4MjAwOThGNUVDIC8q
IG9iamNfZ2VuZXJhdG9yLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQzRGNEI2RjYxQTA1Qzk4NDAw
NUNBQjc2IC8qIG9iamNfZ2VuZXJhdG9yX3RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICovLApAQCAt
NzMzOSwzOCArNzQzOSwzMiBAQAogCQkJCTg2RjNFRUJGMTY4Q0RFOTMwMDc3QjkyQSAvKiBPYmpj
UnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDQTk1OEQxNkFCNTBGQTAwOTM4
QTA2IC8qIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4
QzQ0NTBFMTZGNUNEMDBCMzQ0NjAgLyogT2JqZWN0Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCTk5NkI3MzIyMUJEQTA4RUYwMDMzMUI4NCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5sdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDNFNDBBMUI2MThCNjYwMEM4MEUxRSAvKiBPYmplY3RQ
cm9wZXJ0eUNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0MEMxQjYxOEI2NjAw
QzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzQ0NjBFMTZGNUNEMDBCMzQ0NjAgLyogT2JqZWN0UHJvdG90eXBlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMTI0QThGNzBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuaCBp
biBIZWFkZXJzICovLAogCQkJCUFEREIxRjYzMThENzdEQkUwMDlCNThBOCAvKiBPcGFxdWVSb290
U2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDc5QjBFRDFEM0FFMDBGMUY2ODEgLyogT3Bj
b2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU3QzFCREFDREM3MDA4MEZGNzQgLyogQWly
SGFuZGxlQ2FsbGVlU2F2ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzJDMTUxRkRFOTEw
MENEODkxMCAvKiBPcGVyYW5kcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwNDQ3RUExN0EwQkQ0
NjAwRjU4OThFIC8qIE9wZXJhbmRzSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0
NDgwRTE2RjVDRDAwQjM0NDYwIC8qIE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RTIyOEVEMTQzNkFCMjcwMDE5NkM0OCAvKiBPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzQ0QjBFMTZGNUNEMDBCMzQ0NjAgLyogUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzA1MkMzNTBGQjc5MjE5MDA0OEZEQzMgLyogUGFyc2VyQXJlbmEuaCBpbiBIZWFkZXJzICovLAot
CQkJCTk5NkI3MzIzMUJEQTA4RUYwMDMzMUI4NCAvKiBSZWZsZWN0T2JqZWN0Lmx1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDQ0FFNDUxNkQwQ0Y3NDAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyNTE2NDE5MkM3MDA2NDBBNDcgLyogUGFyc2VyTW9k
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MzAzRDY0MTQ0N0I5RTEwMEQzRjkwNCAvKiBQYXJz
ZXJUb2tlbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjlDRTc0MUI5Q0Q2RDAwMDRFRENBNiAv
KiBQb2x5bW9ycGhpY0FjY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFODM0MTgxQTZFRjk3
QjAwRDA0ODQ3IC8qIFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjk4MjA2MTE2QkZFMzgzMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkVDODU3QTFCREFDREM3MDA4MEZGNzQgLyogQWlyR2VuZXJhdGlv
bkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NUJEMUJFMTQ2MkYwMDgwRkY3NCAv
KiBCM1JlZHVjZVN0cmVuZ3RoLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Njg5MTZCMDE1NUYyODYz
MDBDQjJCOUEgLyogUHJpdmF0ZU5hbWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTIyMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM09wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NTAw
RTE2RjVDRDAwQjM0NDYwIC8qIFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk1Q0Q0NTc3
MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzQ1MTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRjcyOUE1MTY2QUQzNTEwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkVDODU0NzFCREFDREFDMDA4MEZGNzQgLyogQjNWYWx1ZVJlcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNzI5QjkxNjZBRDM2MDAwMEY1QkEzIC8qIFByb2ZpbGVy
Qnl0ZWNvZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjEzOTEyQTE2NzcxQzM2MDA5Q0NCMDcg
LyogUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUx
QTFCREFDREFDMDA4MEZGNzQgLyogQjNHZW5lcmljRnJlcXVlbnRlZEJsb2NrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkY3MjlCQTE2NkFEMzYwMDAwRjVCQTMgLyogUHJvZmlsZXJDb21waWxhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNzI5QkIxNjZBRDM2MDAwMEY1QkEzIC8qIFByb2Zp
bGVyQ29tcGlsYXRpb25LaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY3MjlCQzE2NkFEMzYw
MDAwRjVCQTMgLyogUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmggaW4gSGVhZGVycyAqLywKQEAg
LTczOTIsMjAgKzc0ODYsMTcgQEAKIAkJCQkwRkI3RjM5QzE1RUQ4RTQ2MDBGMTY3QjIgLyogUHJv
cGVydHlTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1NjBFMTZGNUNEMDBCMzQ0
NjAgLyogUHJvdGVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3NEMzM0IxNkFBMkQ5NTAwNjJG
MDFEIC8qIFByb3RvdHlwZU1hcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1ODQxQkRBQ0RD
NzAwODBGRjc0IC8qIEFpclBoYXNlU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTc4MEEy
MThGRTFFOTgwMDFFNzJEOSAvKiBQdXJlTmFOLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE1Q0Qy
MzFCQTVGOTg2MDAzMUZGRDMgLyogUHV0QnlJZEZsYWdzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjkzMzJBNDE0Q0E3REQ5MDA4NUYzQzYgLyogUHV0QnlJZFN0YXR1cy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZFQzg1ODAxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGOTNCNEFBMThCOTJDNEQwMDE3OEEzRiAvKiBQdXRCeUlkVmFyaWFudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZFQzg1NzkxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckdlbmVyYXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjBDRDRDMjE1RjFBNjA3MDAzMkYxQzAgLyogUHV0RGlyZWN0
SW5kZXhNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlGQzhDNTE0RTFCNjA0MDBENTJBRTAg
LyogUHV0S2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3Qjg0NjMwRTZERTZCMTAwNDc3NUE0
IC8qIFB1dFByb3BlcnR5U2xvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNjBBQzIxNjc0MEY4
MzAwMDI5Nzc5IC8qIFJlZHVjZVdoaXRlc3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMzYz
N0E2MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5OTZCNzMyMzFCREEwOEVGMDAzMzFCODQgLyogUmVmbGVjdE9iamVjdC5sdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQTdBOEVDMThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTk5NkI3MzE3MUJEQTA2N0YwMDMzMUI4NCAvKiBBcnJheUNvbnN0cnVjdG9yLmx1
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NUEwRTE2RjVDRDAwQjM0NDYwIC8qIFJlZ0V4
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE3MTJCM0YxMUM3QjIyODAwN0E1MzE1IC8qIFJlZ0V4
cENhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0QyMDJDMjBFMTcwNkE3MDAyQzdFODIgLyog
UmVnRXhwQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNzQxMywxMyArNzUwNCwxMyBA
QAogCQkJCUExNzEyQjQxMTFDN0IyMzUwMDdBNTMxNSAvKiBSZWdFeHBLZXkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNDVCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdFeHBPYmplY3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRDIwMkM0MEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQcm90b3R5
cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5NkI3MzI0MUJEQTA4RUYwMDMzMUI4NCAvKiBSZWdF
eHBQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1RDBFMTZGNUNEMDBC
MzQ0NjAgLyogUmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzJCMEVEMUNFNjkw
MEYxRjY4MSAvKiBSZWdpc3RlcklELmggaW4gSGVhZGVycyAqLywKIAkJCQk2MjNBMzdFQzFCODdB
N0MwMDA3NTQyMDkgLyogUmVnaXN0ZXJNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzMxNDEy
MTgxNDU1OTEwMDAzMzIzMiAvKiBSZWdpc3RlclNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU3
RDIzRUUxODkxQjU1NDAwMzFDN0ZBIC8qIFJlZ3VsYXJFeHByZXNzaW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkI3RjM5RDE1RUQ4RTQ2MDBGMTY3QjIgLyogUmVqZWN0LmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkVDODUyNjFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50U3BlY2lhbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCQTE1RTgxODIzNDBCMzAwQTgyRTY5IC8qIFJlbW90ZUlu
c3BlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCQTE1RUExODIzNDBCNDAwQTgyRTY5IC8q
IFJlbW90ZUluc3BlY3RvckNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCQTE1RjAx
ODIzNDVBRjAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvckRlYnVnZ2FibGUuaCBpbiBIZWFkZXJz
ICovLApAQCAtNzQyNyw3ICs3NTE4LDYgQEAKIAkJCQlBNUJBMTVFRDE4MjM0MEI0MDBBODJFNjkg
LyogUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
NEU1NTExN0VFMjc0OTAwQUJCMjE3IC8qIFJlcGF0Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCTg2
OUVCQ0I3MEU4QzZENEEwMDg3MjJDQyAvKiBSZXN1bHRUeXBlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkVDODU0NDFCREFDREFDMDA4MEZGNzQgLyogQjNWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzBCMEE5RDExQTlCNjY0NjAwMDEzMDZBIC8qIFJ1bnRpbWVGbGFncy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTJDMDYxMUYxQUE1MUUxQzAwQjRBREJBIC8qIFJ1bnRpbWVUeXBlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDMjJCMzFCOTE0MDU3N0Q3MDBEQjQ3NUEgLyogU2FtcGxpbmdDb3VudGVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTc0NTcsNyArNzU0Nyw2IEBACiAJCQkJQTcwOUYyRjAxN0Ew
QUMwNDAwNTEyRTk4IC8qIFNsb3dQYXRoQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDQw
MDQwRTZBNzQ5NDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEM0NjQwRTE2RjVDRDAwQjM0NDYwIC8qIFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRUM4NTBFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0MzJWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0NjMwRTE2RjVDRDAwQjM0NDYwIC8qIFNvdXJjZVByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFNDlEQzE2QzEyRUYyOTRFMDAxODRBMUYgLyogU291cmNlUHJv
dmlkZXJDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5REMxNkQxMkVGMjk1MzAwMTg0QTFG
IC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggaW4gSGVhZGVycyAqLywKQEAgLTc0NzIsMTIg
Kzc1NjEsMTMgQEAKIAkJCQkxNENBOTU4QjE2QUI1MERFMDA5MzhBMDYgLyogU3RhdGljUHJvcGVy
dHlBbmFseXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczMEI2MTIxMjUwMDY4RjAwOUQyNUIx
IC8qIFN0cmljdEV2YWxBY3RpdmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ2NjBF
MTZGNUNEMDBCMzQ0NjAgLyogU3RyaW5nQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTk5NkI3MzI1MUJEQTA4RUYwMDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwRUMwRUM3MUFBMEQ3REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRv
clByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0
IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0NjgwRTE2RjVDRDAwQjM0NDYwIC8qIFN0cmluZ09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0NkEwRTE2RjVDRDAwQjM0NDYwIC8qIFN0cmluZ1Byb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQyRTMxM0IxMzRGRjBBNjAwQUZBREI1IC8qIFN0cm9uZy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQ1NzIyODYxNDM3RTE0MDAwNUZERTI2IC8qIFN0cm9uZ0lubGluZXMuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRUM4NTgyMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJMaXZlbmVz
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNERTNBQjgwRTZDODJGNTAwMTQ1M0E3IC8qIFN0cnVj
dHVyZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0U0RUU3MDkwRUJCNzk2MzAwNTkzNEFBIC8qIFN0
cnVjdHVyZUNoYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUFBQTMxMjE4QkQ0OUQxMDAzOTRD
QzggLyogU3RydWN0dXJlSURCbG9iLmggaW4gSGVhZGVycyAqLywKQEAgLTc0OTEsOCArNzU4MSwx
MCBAQAogCQkJCUJDOTA0MTQ4MEVCOTI1MDkwMEZFMjZGQSAvKiBTdHJ1Y3R1cmVUcmFuc2l0aW9u
VGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwNUI0MUFDMUE2RTUwMUUwMDcxNjc1NyAvKiBT
eW1ib2wuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwNUI0MUFFMUE2RTUwMUUwMDcxNjc1NyAvKiBT
eW1ib2xDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk2QjczMjcxQkRBMDhFRjAw
MzMxQjg0IC8qIFN5bWJvbENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA1
QjQxQjAxQTZFNTAxRTAwNzE2NzU3IC8qIFN5bWJvbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzA1QjQxQjIxQTZFNTAxRTAwNzE2NzU3IC8qIFN5bWJvbFByb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTk2QjczMjgxQkRBMDhFRjAwMzMxQjg0IC8qIFN5bWJvbFByb3RvdHlwZS5s
dXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDZCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBTeW1i
b2xUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4NEEyNjQxMUQxNjYyMjAwNTc3NkFDIC8q
IFN5bnRheENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwRUNBNjA4MUFGREJFQTIwMDQ0
OTczOSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTc1MTQsMTIgKzc2
MDYsMTAgQEAKIAkJCQkwRjJENERFQTE5ODMyREFDMDA3RDRCMTkgLyogVHlwZUxvY2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MkIzMTEwMTE5NzVCNDY3MDA4MDg1N0MgLyogVHlwZUxvY2F0
aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkI2QzM5MUFGNDhEREMwMERCMUJGNyAv
KiBUeXBlb2ZUeXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU0MDFCREFDREFDMDA4MEZG
NzQgLyogQjNVc2VDb3VudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQzk1MkI3MTlBMjg5ODUw
MDY5QjM4NiAvKiBUeXBlUHJvZmlsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkQ0REVDMTk4
MzJEQzQwMDdENEIxOSAvKiBUeXBlUHJvZmlsZXJMb2cuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkQ0REYwMTk4MzJERDYwMDdENEIxOSAvKiBUeXBlU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkY0Mjc0QjE1OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2LmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkVDODRGRjFCREFDREFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJlZ1ZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkY0Mjc0MTE1OEVCRThEMDA0Q0I5RkYgLyogdWRpczg2X2RlY29kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3NDIxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9leHRl
cm4uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjQyNzQ0MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlz
ODZfaW5wdXQuaCBpbiBIZWFkZXJzICovLApAQCAtNzUzMyw3ICs3NjIzLDYgQEAKIAkJCQlBN0E4
QUY0MDE3QURCNUYzMDA1QUIxNzQgLyogVWludDhDbGFtcGVkQXJyYXkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNUYwOENGMTQ2Qzc2MzMwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0I2MDE4MjE2MzlGRDJBMDAzNzJCQTMgLyogVW5saW5r
ZWRDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NkI3MzI2MUJEQTA4RUYwMDMzMUI4
NCAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
MTQyRTUxMUI3OTZFQ0UwMEY0QkY0QiAvKiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyRTg5MkMxNkQwMjhBRDAwOUU0RkQyIC8qIFVudXNlZFBvaW50
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEIxMUJENTk5NEUwMEY0NTc1QyAvKiBVcGRh
dGVDb250ZW50cy5weSBpbiBIZWFkZXJzICovLApAQCAtNzU1NywxMCArNzY0Niw4IEBACiAJCQkJ
RkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjkxOUQyNjE1ODUzQ0UzMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTQyRTMxM0MxMzRGRjBBNjAwQUZBREI1IC8qIFdlYWsuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRUM4NTAyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNEU4NEY5RjE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha0Jsb2NrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxNEJGQ0U2OTEwQ0RCMUZDMDAzNjRDQ0UgLyogV2Vha0dDTWFw
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUzMzFCREFDREFDMDA4MEZGNzQgLyogQjNTdGFj
a1Nsb3RLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDg2QTkzRTFBQTREODhEMDAyRkU3N0Yg
LyogV2Vha0dDTWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRGNzI1NjYxNEVFMjY1
RTAwQjE2NTJCIC8qIFdlYWtIYW5kbGVPd25lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRFODRG
QTIxNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtJbXBsLmggaW4gSGVhZGVycyAqLywKQEAgLTc1ODIs
MTIgKzc2NjksOSBAQAogCQkJCTk5NTlFOTJFMUJEMTdGQTQwMDFBQTQxMyAvKiB4eGQucGwgaW4g
SGVhZGVycyAqLywKIAkJCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODY3MDRCODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRl
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MzExQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3Rh
Y2ttYXBTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODU3NDFCREFDREM3MDA4MEZG
NzQgLyogQWlyQ0NhbGxTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4NzEyREJB
MzM3MDBBOUZFN0IgLyogWWFyckpJVC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3MDRCODgxMkRC
QTMzNzAwQTlGRTdCIC8qIFlhcnJQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0QjhB
MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJyUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZF
Qzg1ODExQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc3RJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NjcwNEI0MzEyREI4QTgxMDBBOUZFN0IgLyogWWFyclN5bnRheENoZWNrZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwpAQCAtODA5Miw5ICs4MTc2LDI1IEBACiAJCQlmaWxlcyA9ICgKIAkJCQkwRkZBNTQ5NzE2
Qjg4MzUwMDBCM0E5ODIgLyogQTY0RE9wY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU1
RjBGNDE0RDEwNjM5MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkVDODU2RDFCREFDREM3MDA4MEZGNzQgLyogQWlyQWxsb2NhdGVTdGFjay5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRkVDODU2RjFCREFDREM3MDA4MEZGNzQgLyogQWlyQXJnLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGRUM4NTcxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJCYXNpY0Jsb2Nr
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTczMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJD
Q2FsbFNwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1NzUxQkRBQ0RDNzAwODBG
Rjc0IC8qIEFpckNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1NzgxQkRBQ0RDNzAw
ODBGRjc0IC8qIEFpckdlbmVyYXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTkzMUJE
QjFFMTAwMDgwRkY3NCAvKiBBaXJHZW5lcmF0ZWQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZF
Qzg1N0IxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckhhbmRsZUNhbGxlZVNhdmVzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTBGRUM4NTdEMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJJbnNlcnRpb25TZXQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1N0YxQkRBQ0RDNzAwODBGRjc0IC8qIEFpcklu
c3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1ODMxQkRBQ0RDNzAwODBGRjc0IC8qIEFp
clBoYXNlU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1ODUxQkRBQ0RDNzAwODBG
Rjc0IC8qIEFpclJlZ2lzdGVyUHJpb3JpdHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1
ODcxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclNwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEZFQzg1ODkxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclNwaWxsRXZlcnl0aGluZy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRkVDODU4QjFCREFDREM3MDA4MEZGNzQgLyogQWlyU3RhY2tTbG90LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NThEMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJUbXAu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1OTAxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclZh
bGlkYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUJEMTA3RUMzNzYwMDQyN0E0OCAv
KiBBcmdMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzQzQkFBMTZCODgyNDkwMDlGOTI3
NyAvKiBBUk02NERpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODU3MTFC
REFDREM3MDA4MEZGNzQgLyogQWlyQmFzaWNCbG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NkQzQjJDMzEwMTU2QkRFMDAyODY1RTcgLyogQVJNQXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTY1QzAyODUwMTcxNzk1RTIwMDM1MUUzNSAvKiBBUk12N0Rpc2Fzc2VtYmxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2NUMwMjg1QzE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bj
b2RlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODEwMiwxMyArODIwMiw1MCBAQAogCQkJCUE3QThB
RjM0MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkZDOTlENDE4NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBv
aW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QThBRjM2MTdBREI1RjMwMDVBQjE3NCAvKiBB
cnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1M0QxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzVXBzaWxvblZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUJG
MTA3RUMzNzYwMDQyN0E0OCAvKiBBcnJheUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTk5ODdERTM0MUJFM0ZEODIwMEQyMDc3MyAvKiBBcnJheUNvbnN0cnVjdG9yQnVpbHRpbnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdCREFFQzgxN0Y0RUExNDAwRjYxNDBDIC8qIEFycmF5
SXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MjUxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFNwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
OTk4N0RFMzUxQkUzRkQ4MjAwRDIwNzczIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGVCdWlsdGlu
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYzOTQ1NDE1RDA3MDU1MDA2QTU5N0MgLyogQXJy
YXlQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUMwMTA3RUMzNzYwMDQyN0E0
OCAvKiBBcnJheVByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTg3REUzNjFCRTNG
RDgyMDBEMjA3NzMgLyogQXJyYXlQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjI0RTU0MDE3RUE5RjU5MDBBQkIyMTcgLyogQXNzZW1ibHlIZWxwZXJzLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGRUM4NEZFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0FyZ3VtZW50UmVn
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MDAxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzQmFzaWNCbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVDODUwNTFCREFDREFDMDA4
MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MDcx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RkVDODUwOTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEZFQzg1MEIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRkVDODUwRDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDMyVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MEYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
c3Q2NFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTExMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MTMx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRUM4NUM1MUJFMTZGNUEwMDgwRkY3NCAvKiBCM0VmZmVjdHMuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMEZFQzg1MTUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MTgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzR2VuZXJhdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1QzIxQkUxNjdBMDAwODBGRjc0IC8qIEIzSGVh
cFJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NUI5MUJFMTQ2MkYwMDgwRkY3NCAv
KiBCM0luc2VydGlvblNldC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVDODUxRDFCREFDREFD
MDA4MEZGNzQgLyogQjNMb3dlclRvQWlyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTFG
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM01lbW9yeVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRUM4NTIxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM09wY29kZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkwRkVDODUyMzFCREFDREFDMDA4MEZGNzQgLyogQjNPcmlnaW4uY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZFQzg1MjUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFNwZWNpYWwu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MjcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0
Y2hwb2ludFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTI5MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1BoYXNlU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MkIxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4
NUJDMUJFMTQ2MkYwMDgwRkY3NCAvKiBCM1JlZHVjZVN0cmVuZ3RoLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTBGRUM4NTJFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrbWFwLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTBGRUM4NTMwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrbWFwU3BlY2lh
bC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVDODUzMjFCREFDREFDMDA4MEZGNzQgLyogQjNT
dGFja1Nsb3RLaW5kLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTM0MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1N0YWNrU2xvdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTM3
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N3aXRjaENhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEZFQzg1MzkxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3dpdGNoVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZFQzg1M0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVHlwZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkwRkVDODUzRDFCREFDREFDMDA4MEZGNzQgLyogQjNVcHNpbG9uVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1M0YxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVXNlQ291
bnRzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTQxMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M1ZhbGlkYXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTQzMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUM4NTQ2MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1ZhbHVlUmVwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyNjc4RjhFMUEwMzEw
MDkwMDZBMzA2RCAvKiBCYXNpY0Jsb2NrTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY2NEIyNzExQTc4NEJBRjAwNkU0RTY2IC8qIEJpbmFyeVN3aXRjaC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDI4MDg2MzEwN0VDMTFBMDAxM0U3QjIgLyogQm9vbGVhbkNvbnN0cnVjdG9yLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtODEyNiwxMCArODI2Myw4IEBACiAJCQkJMTQyOUQ4REQwRUQy
MjA1QjAwQjg5NjE5IC8qIENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkVDOUJC
NjFCN0VCMDdDMDAzMDNBRDEgLyogQ2FsbEZyYW1lU2h1ZmZsZURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNjJENzU1RDYxQjg0RkI0NjAwMTgwMUZBIC8qIENhbGxGcmFtZVNodWZmbGVyLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTEzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRy
b2xWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkQ3NTVENTFCODRGQjQwMDAxODAxRkEg
LyogQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkQ3NTVE
NDFCODRGQjNEMDAxODAxRkEgLyogQ2FsbEZyYW1lU2h1ZmZsZXI2NC5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQkwRkVDODUzOTFCREFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjBCODNCMDE0QkNGNzE2MDA4ODVCNEYgLyogQ2FsbExpbmtJbmZv
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTMzMjlEMTRDQTdEQzMwMDg1RjNDNiAvKiBDYWxs
TGlua1N0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2Mjc2NzMyMzFCNjgwQzFFMDBGRDlG
MkUgLyogQ2FsbE1vZGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MTQyLDcgKzgyNzcsNiBAQAog
CQkJCUE3N0YxODIxMTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY4Rjk0NDYxNjY3NjRGMTAwRDYxOTcxIC8qIENvZGVPcmlnaW4uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODZCNTgyNjcxNEQyNzk2QzAwQTlDMzA2IC8qIENvZGVQcm9maWxlLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTkzMUJEQjFFMTAwMDgwRkY3NCAvKiBBaXJHZW5l
cmF0ZWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZCNTgyNjkxNEQyNzk3MDAwQTlDMzA2IC8q
IENvZGVQcm9maWxpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4Rjk0M0MxNjY3NjMxMzAw
RDYxOTcxIC8qIENvZGVTcGVjaWFsaXphdGlvbktpbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY4Rjk0NDIxNjY3NjMzNTAwRDYxOTcxIC8qIENvZGVUeXBlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtODE1MCw3ICs4Mjg0LDYgQEAKIAkJCQlBNzA5RjJGMjE3QTBBQzJBMDA1MTJFOTggLyogQ29t
bW9uU2xvd1BhdGhzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1NTNBMzMxMTdBMUYxRUUwMDhD
RjZGMyAvKiBDb21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3RTVBM0E3MTc5NzQzMkQwMEU4OTNDMCAvKiBDb21waWxhdGlvblJlc3VsdC5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQkwRkVDODU4QjFCREFDREM3MDA4MEZGNzQgLyogQWlyU3RhY2tTbG90LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUMyMTA3RUMzNzYwMDQyN0E0OCAvKiBDb21wbGV0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNkZDNzUwMTk2MTEwQTgwMEUxRDAyRCAvKiBD
b21wbGV4R2V0U3RhdHVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NkIxNkQ4MTJFQjVCNTkw
MDFCRUMxQiAvKiBDb25zZXJ2YXRpdmVSb290cy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgxNjcs
NyArODMwMCw2IEBACiAJCQkJMkExMTEyNDUxOTJGQ0U3OTAwNUVFMThEIC8qIEN1c3RvbUdldHRl
clNldHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkUzRDVGMDFCOEQwQjczMDBCODY4QkIg
LyogRGF0YUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjZERTE3QjZCNUFCMDBB
N0FFM0YgLyogRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1QkMxQkUxNDYy
RjAwODBGRjc0IC8qIEIzUmVkdWNlU3RyZW5ndGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3
RjM5QzMxMDdFQzM3NjAwNDI3QTQ4IC8qIERhdGVDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDdGMzlDNDEwN0VDMzc2MDA0MjdBNDggLyogRGF0ZUNvbnZlcnNpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzUxMDdFQzM3NjAwNDI3QTQ4IC8qIERhdGVJbnN0YW5j
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgxNzksNyArODMxMSw2IEBACiAJCQkJMEZDNzEyREUx
N0NEODc3OTAwOENDOTNDIC8qIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGRTUwNjg2NzFBRTI1RTI4MDAwOURBQjcgLyogRGVmZXJyZWRTb3VyY2VE
dW1wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3N0E0MjNEMTdBMEJCRkQwMEE4REI4MSAvKiBE
RkdBYnN0cmFjdEhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1OEQxQkRBQ0RDNzAw
ODBGRjc0IC8qIEFpclRtcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU1QzE5NDE3Mjc2RTQ2
MDBDRUFCRkQgLyogREZHQWJzdHJhY3RWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQz
RTQwMTFCNjE4QUFGMDBDODBFMUUgLyogREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVX
YXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMThEM0NGMUI1NUE2RTAwMDJDNUM5
RiAvKiBERkdBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC04MTg5LDcgKzgzMjAsNiBAQAogCQkJCTBGNjM5NDg0MTVFNDgxMTgwMDZBNTk3QyAvKiBERkdB
cnJheU1vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEOUEyOTQxN0EwQkM3NDAwRUUyNjE4
IC8qIERGR0F0VGFpbEFic3RyYWN0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2NjZF
QzYxODM1NjcyQjAwRDAxN0YxIC8qIERGR0F2YWlsYWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkwRkVDODU4NzFCREFDREM3MDA4MEZGNzQgLyogQWlyU3BlY2lhbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjJCOUNFMjE5RDBCQTdEMDBCMUQxQjUgLyogREZHQXZhaWxhYmlsaXR5TWFw
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzE0Q0E0MTZFQTkyRjAwMEYzRUJFQiAvKiBERkdC
YWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0Yy
MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
ODE5OCw3ICs4MzI4LDYgQEAKIAkJCQk4NkVDOURDNDEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0
ZUNvZGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEODJFMjExNDE3MkNFMzAwMTc5
Qzk0IC8qIERGR0NhcGFiaWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZGQzk1NzE0
RUY5MEEwMDBDNzI1MzIgLyogREZHQ0ZBUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZF
Qzg1NDYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVmFsdWVSZXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYzQjNBMjcxNTQ0Qzk5NTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDM2OTQxQUU5Q0MzMzAwMEQ0REZCIC8qIERGR0Ns
ZWFuVXBQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzdBNDIzRjE3QTBCQkZEMDBBOERC
ODEgLyogREZHQ2xvYmJlcml6ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgyMzYsNyArODM2NSw2
IEBACiAJCQkJMkE4ODA2NzgxOTEwN0Q1NTAwQ0IwQkJCIC8qIERGR0Z1bmN0aW9uV2hpdGVsaXN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RUM5REM3MTMyOERGODIwMDJCMkFENyAvKiBERkdH
cmFwaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJGQ0NGOTE4QTYwMDcwMDAxQTI3RjggLyog
REZHR3JhcGhTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1NkQxQkRBQ0RD
NzAwODBGRjc0IC8qIEFpckFsbG9jYXRlU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZC
MTc2NjAxOTZCOEY5RTAwOTEwNTJBIC8qIERGR0hlYXBMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkM4NDE2ODFCQThDMzIxMDA2MTgzN0QgLyogREZHSW5mZXJyZWRUeXBlQ2hlY2su
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcwNEQ5MDUxN0EwQkFBODAwNkJBNTU0IC8qIERGR0lu
UGxhY2VBYnN0cmFjdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODI3OSwxNyArODQwNywx
NCBAQAogCQkJCTBGQzA5NzcyMTQ2OTNBRjkwMENGMjQ0MiAvKiBERkdPU1JFeGl0Q29tcGlsZXI2
NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjcwMjVBOTE3MTRCMEZBMDAzODJDMEUgLyogREZH
T1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMzkyQzg5MUI0
NjE4ODQwMDg0NDcyOCAvKiBERkdPU1JFeGl0RnV6ei5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkw
RkVDODU3NTFCREFDREM3MDA4MEZGNzQgLyogQWlyQ29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkVGQzlBQTE2ODFBM0IzMDA1NjdGNTMgLyogREZHT1NSRXhpdEp1bXBQbGFjZWhvbGRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJFRDE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NS
RXhpdFByZXBhcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjIzNzk3MUFFNDVDQTcw
MEQ0MDJFQSAvKiBERkdQaGFudG9tSW5zZXJ0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZGRkM5NUIxNEVGOTBBRDAwQzcyNTMyIC8qIERGR1BoYXNlLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTBGRUM4NTBGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjJCOUNFQTE5RDBCQTdEMDBCMUQxQjUgLyogREZHUGhpQ2hpbGRy
ZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc4QTk3N0ExNzk3MzhCODAwOURGNzQ0IC8qIERG
R1BsYW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCRTBGNzQxNkMxREIwOTAwODJDNUU4IC8q
IERGR1ByZWRpY3Rpb25JbmplY3Rpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZG
Qzk1RDE0RUY5MEIzMDBDNzI1MzIgLyogREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MzIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3RhY2tT
bG90S2luZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjNFMDFBQTE5RDM1M0E1MDBGNjFCN0Yg
LyogREZHUHJlUG9zdE51bWJlcmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCOUNFQzE5
RDBCQTdEMDBCMUQxQjUgLyogREZHUHJvbW90ZWRIZWFwTG9jYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZCMTc2NjIxOTZCOEY5RTAwOTEwNTJBIC8qIERGR1B1cmVWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTgzMDcsOCArODQzMiw2IEBACiAJCQkJMEZDMjBDQjUxODUyRTJDNjAw
QzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY4OTNCREIxOTM2RTIzQzAwMTIxMUY0IC8qIERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3OTA4NTUxOUEyOTBCMjAwRjYzMTBDIC8qIERGR1N0
cnVjdHVyZVJlZ2lzdHJhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTM0
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrU2xvdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTBGRUM4NTI5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BoYXNlU2NvcGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYyRkNDRkUxOEE2MDA3MDAwMUEyN0Y4IC8qIERGR1RocmVhZERhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3QTExNDZCMjhDQTAwQ0YyNDQyIC8qIERGR1RodW5r
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyNzE3RDUxRjU3MDBDQTJDNDAgLyogREZH
VGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTgzMzYsNyAr
ODQ1OSw2IEBACiAJCQkJMkE4MzYzODUxOEQ3RDBFRTAwMDBFQkNDIC8qIEVkZW5HQ0FjdGl2aXR5
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlFNDVBMjUxOEExQjI1OTAwMjZEODhG
IC8qIEVuY29kZWRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDNzEwN0VDMzc2
MDA0MjdBNDggLyogRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MDkxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUM4MTA3
RUMzNzYwMDQyN0E0OCAvKiBFcnJvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZFQjU4QzE0MTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzkxMDdFQzM3NjAwNDI3QTQ4IC8qIEVycm9ySW5zdGFuY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MzgxLDcgKzg1MDMsNiBAQAogCQkJCTBGOEYyQjk1MTcy
RTA0QTAwMDdEQkRBNSAvKiBGVExMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0VGQURG
MTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkVBMEEwRjE3MDUxM0RCMDBCQjcyMkMgLyogRlRMTG93ZXJERkdUb0xMVk0uY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZFQzg1MDAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQmFzaWNCbG9jay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjJCOUNGODE5RDBCQUMxMDBCMUQxQjUgLyogRlRMT3BlcmF0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMxQjE3RDUxRjIyMDBDQTJDNDAgLyog
RlRMT1NSRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyMzVCREMxNzE3OEUxQzAwNjkw
QzdGIC8qIEZUTE9TUkV4aXQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04Mzg5LDcgKzg1MTAsNiBA
QAogCQkJCTBGRUEwQTJBMTcwOTYyOTYwMEJCNzIyQyAvKiBGVExPdXRwdXQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY0ODUzMjkxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2Rl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0VGQUFCMTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExT
YXZlUmVzdG9yZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODU4OTFCREFDREM3MDA4MEZG
NzQgLyogQWlyU3BpbGxFdmVyeXRoaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjVGMUIx
MTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYyNUYxQjMxODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbEtleS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRjlEMzM5QTE4MDNBREI3MDA3M0MyQkMgLyogRlRMU3RhY2tNYXBz
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtODQwMSw5ICs4NTIxLDkgQEAKIAkJCQkxNDdGMzlDQjEw
N0VDMzc2MDA0MjdBNDggLyogRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkYwRjE5RjE2QjcyQTE3MDA1REY5NUIgLyogRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MkIzMTBGRDE5NzRBRTg3MDA4MDg1N0MgLyogRnVuY3Rp
b25IYXNFeGVjdXRlZENhY2hlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NUMyMUJFMTY3
QTAwMDgwRkY3NCAvKiBCM0hlYXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTRCRkYy
QjFBRDQ3NkU3MDAwODhGODcgLyogRnVuY3Rpb25PdmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTQ3RjM5Q0MxMDdFQzM3NjAwNDI3QTQ4IC8qIEZ1bmN0aW9uUHJvdG90eXBlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTk5ODdERTM3MUJFM0ZEODIwMEQyMDc3MyAvKiBGdW5jdGlvblBy
b3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTYyRDJEMzhGMUFERjEwM0Yw
MDAyMDZDMSAvKiBGdW5jdGlvblJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJBQUNF
NjNDMThDQTVBMDMwMEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY3NjZEMkYxNUE4RENFMDAwOEYzNjNFIC8qIEdDQXdhcmVKSVRTdHViUm91dGlu
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg0MTEsNiArODUzMSw3IEBACiAJCQkJMEY5MzMyOUYx
NENBN0RDQTAwODVGM0M2IC8qIEdldEJ5SWRTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYwMzMyQzMxOEIwMTc2MzAwNUY5NzlBIC8qIEdldEJ5SWRWYXJpYW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0MjgwODU1MTA3RUMwRTcwMDEzRTdCMiAvKiBHZXR0ZXJTZXR0ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJOTk4N0RFMzgxQkUzRkQ4MjAwRDIwNzczIC8qIEdsb2JhbE9iamVj
dEJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MkUzMTM1MTM0RkYwQTYwMEFGQURC
NSAvKiBIYW5kbGVTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyRTMxMzcxMzRGRjBBNjAw
QUZBREI1IC8qIEhhbmRsZVN0YWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0QkE3QTk3MTNB
QURGRjgwMDVCN0MyQyAvKiBIZWFwLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODQyMyw3ICs4NTQ0
LDYgQEAKIAkJCQlBNUZEMDA3NTE4OUIwMzhDMDA2MzMyMzEgLyogSWRlbnRpZmllcnNGYWN0b3J5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyNUY4QkNEMTU3NTQ0QTkwMDI0NUI3MSAvKiBJbmNy
ZW1lbnRhbFN3ZWVwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxM0UwNEUxNjE2NEExRjAw
REM4REU3IC8qIEluZGV4aW5nVHlwZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODUyNzFC
REFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYwQTc1MjIxQjk0QkZBOTAwMTEwNjYwIC8qIEluZmVycmVkVHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkZDOTIxMTFCOTRENERGMDA3MURENjYgLyogSW5mZXJyZWRUeXBlVGFibGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGOEJERUExQUQ0Q0Y3MTAwREZFODg0IC8qIEluZmVy
cmVkVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04NDMxLDcgKzg1NTEsNiBAQAogCQkJCTlF
QTVDN0EyMTkwRjA4ODcwMDUwOEVCRSAvKiBJbml0aWFsaXplTExWTU1hYy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5RTcyOTQwODE5MEYwMjFFMDAxQTkxQjUgLyogSW5pdGlhbGl6ZUxMVk1QT1NJ
WC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RTcyOTQwNzE5MEYwMUE1MDAxQTkxQjUgLyogSW5p
dGlhbGl6ZVRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODU3QjFCREFDREM3
MDA4MEZGNzQgLyogQWlySGFuZGxlQ2FsbGVlU2F2ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTUxM0U1QjcxODVCOEJEMzAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE1MTRCMkMyMTg1QTY4NDQwMEYzQzdDQiAvKiBJbmplY3RlZFNjcmlwdEJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU4RTM1OTExODYwREVDRjAwMUYyNEZFIC8qIEluamVj
dGVkU2NyaXB0SG9zdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg0NDMsMTcgKzg1NjIsMTggQEAK
IAkJCQlBNTkzQ0Y4NjE4NDAzOENBMDBCRkNFMjcgLyogSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTkzQ0Y3QzE4NDAzNjAzMDBCRkNFMjcgLyogSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMjQzODcxODU2
ODMzNTAwMkVENjkyIC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQkwRkVDODUzNzFCREFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hDYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE1RkQwMDgxMTg5QjE5MUEwMDYzMzIzMSAvKiBJbnNwZWN0b3JD
b25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDIzRTUxODkwQ0VCRjAwMzFD
N0ZBIC8qIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUz
MjQzODkxODU2ODMzNTAwMkVENjkyIC8qIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTlGMUE2RkUxQjhFNkQ5NDAwNDYzQjI2IC8qIEluc3BlY3Rv
ckZyb250ZW5kUm91dGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MzM5RUM3MUJCMzk5QTkw
MDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM1
RTAzNUYxQjdBQjQzRTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTg3REUzOTFCRTNGRDgyMDBEMjA3NzMgLyogSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTUzMjQzOEIxODU2ODMzNTAwMkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNTBFNEI2MTE4ODA5REQ1MDA2OEE0NkQgLyogSW5zcGVjdG9y
UnVudGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1OTNDRjgyMTg0MDM3NzEwMEJG
Q0UyNyAvKiBJbnNwZWN0b3JWYWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0Yx
MDdFQzM3NjAwNDI3QTQ4IC8qIEludGVybmFsRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJOTk4N0RFM0ExQkUzRkQ4MjAwRDIwNzczIC8qIEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9y
QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyOUQ3RDQwRUQyMTI4MjAwQjg5NjE5
IC8qIEludGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQjlFMjM5MUI0RTBENjcw
MEJDN0ZFRCAvKiBJbnRsQ29sbGF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFCOUUyM0Ix
QjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtODQ2OCw2ICs4NTg4LDcgQEAKIAkJCQlERTVBMEEwMDFCQTNBQzNFMDAzRDQ0MjQg
LyogSW50cmluc2ljRW1pdHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MDExM0Q0QjFBOERC
MDkzMDAzODQ4QzQgLyogSXRlcmF0b3JPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTcwREMzRTA5MUIyREYyQzcwMDA1NDI5OSAvKiBJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk5OTg3REUzQjFCRTNGRDgyMDBEMjA3NzMgLyogSXRlcmF0b3JQcm90b3R5
cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTAzRkExOTE4OEUwRkIwMDAxMTBG
MTQgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI5RDky
RjBFRDIyRDcwMDBCODk2MTkgLyogSklULmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2QTkwRUQw
MEVFN0Q1MUYwMEFCMzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
ODQ4NSw2ICs4NjA2LDcgQEAKIAkJCQlBN0MxRThFNDExMkU3MkVGMDBBMzdGOTggLyogSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjc2NkQyODE1QThDQzFF
MDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3NjZE
MkIxNUE4Q0MzODAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUZFNDIzODkwMUJFMThDM0MwMDUxNDczNyAvKiBKSVRTdWJHZW5lcmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJVFRodW5rcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM3MTJFMjE3Q0Q4NzkxMDA4Q0M5M0MgLyogSklUVG9E
RkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQw
NTY2QzQxMDdFQzI1NTAwNURCQzhEIC8qIEpTQVBJVmFsdWVXcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtODUwMCwxNyArODYyMiwxMiBAQAogCQkJCTg2RkE5RTkxMTQyQkJCMkUwMDE3NzNC
NyAvKiBKU0JvdW5kRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0MEY4QUYwQTUw
OEQyMDAwMDVGMDYxIC8qIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDQwRjg5MjBBNTA4QjEwMDAwNUYwNjEgLyogSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTBGRUM4NTZGMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJBcmcuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTRBQkRGNjAwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJh
Y2tPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU3Q0Y0NTgxOUJGNjY2MjAwNEFDQkYy
IC8qIEpTQ2FsbGVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3RDgwMUE4MTg4MEQ2QTgwMDI2
QzM5QiAvKiBKU0NCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlEMTEwN0VD
Mzc2MDA0MjdBNDggLyogSlNDZWxsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NUM1MUJF
MTZGNUEwMDgwRkY3NCAvKiBCM0VmZmVjdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5
RDYxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTQ0pTVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ0MEZDRTQwQTUxRTQ2QjAwMDVGMDYxIC8qIEpTQ2xhc3NSZWYuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTUzQ0UwODcxOEJDMUE1NjAwQkVERjc2IC8qIEpTQ29uc29sZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQkwRkVDODU5MDFCREFDREM3MDA4MEZGNzQgLyogQWlyVmFsaWRhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1NzMxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckNDYWxsU3Bl
Y2lhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkUzQzYxNjE2N0JBQkVFMDA2RDc2MEEgLyog
SlNDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRCRDVBMzAwQTNFOTFGNjAwQkFGNTlD
IC8qIEpTQ29udGV4dFJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzIwMjhCNjE3OTc2MDFF
MDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODUy
MSwxOSArODYzOCwxNiBAQAogCQkJCUZFMzg0RUU3MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxh
clZNUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQ3MTA3RUMzNzYwMDQy
N0E0OCAvKiBKU0Vudmlyb25tZW50UmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MDU2
NkQ2MTA3RUMyNzEwMDVEQkM4RCAvKiBKU0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTBGRUM4NTFEMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0xvd2VyVG9BaXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmly
b25tZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQyMTA3RUMzNzYwMDQyN0E0OCAv
KiBKU0dsb2JhbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA4NTE4OUIxQjdF
MDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTVDM0ExQTUxOEMwNDkwMjAwQzk1OTNBIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNs
aWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODUwRDFCREFDREFDMDA4MEZGNzQgLyog
QjNDb25zdDMyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5NDU1OTIxODI0NzQ0NzAw
Q0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNTdEMjNFOTE4OTFCMDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RTlEMTdCMTA3RUM0NjkwMDREREEyMSAvKiBKU0ds
b2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTEwMDdDMDE4N0ND
M0M2MDBCMzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE1MEU0QjYzMTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVj
dFJ1bnRpbWVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTAzRkEyOTE4OEYxMDU5MDAx
MTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQkwRkVDODUyMzFCREFDREFDMDA4MEZGNzQgLyogQjNPcmlnaW4uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTUxM0U1QkYxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRI
b3N0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MTNFNUMxMTg1QkZBQ0MwMDdFOTVBRCAvKiBK
U0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzNG
NTA4MDFCODQyOUE0MDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC04NTUyLDcgKzg2NjYsNiBAQAogCQkJCUUzMThDQkMwMUI4QUVGNTEwMEEyOTI5RCAv
KiBKU01vZHVsZU5hbWVzcGFjZU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzlEQTRB
NjFCN0U4QjdDMDA4NEYzM0EgLyogSlNNb2R1bGVSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTMzRThEMUMxQjkwMTNDMzAwMzQ2QjUyIC8qIEpTTmF0aXZlU3RkRnVuY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MTgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzR2VuZXJhdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyNzAwOTAwREFDNkJCQzAwRTU0OEQ3IC8qIEpTTm90
QW5PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDQxMDdFQzM3NjAwNDI3QTQ4
IC8qIEpTT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0ODJCN0U0MEE0MzA3NjAwMDUx
N0NGQyAvKiBKU09iamVjdFJlZi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg1NjYsNyArODY3OSw2
IEBACiAJCQkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODYyNTUzRDExNjEzNkRBOTAwOUYxN0QwIC8qIEpT
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU1MkMzN0YxQUREQjhGRTAwMTM5NzI2IC8q
IEpTUmVtb3RlSW5zcGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTExMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTkyOEZGM0IxOEFDNEFFQzAwQjhDRjEyIC8qIEpTUmVwbGF5SW5wdXRzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0ODc0QUU1MTVFQkRFNEEwMDJFMzU4NyAvKiBKU1Njb3BlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE3QzBDNEFEMTY4MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTg1OTUsNyArODcwNyw2IEBACiAJCQkJNzA5RkI4NjcxQUUzMzVD
NjAwMzlEMDY5IC8qIEpTV2Vha1NldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQyNTY2MTE1
RURFOThEMDA2NkE0OUIgLyogSlNXaXRoU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZF
M0M2MTgxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTV3JhcHBlck1hcC5tbSBpbiBTb3VyY2VzICovLAot
CQkJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0MjgwODcwMTA3RUMxMzQwMDEzRTdCMiAvKiBKU1dyYXBwZXJPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNGRDhDOTIwRUVCMkVFNzAwMjgzODQ4IC8qIEp1
bXBUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI1NDY3OTE0RjVDNDZCMDAyQzI5ODkg
LyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04NjAzLDEy
ICs4NzE0LDkgQEAKIAkJCQkxNDhGMjFCMDEwN0VDNTQxMDA0MkVDMkMgLyogTGV4ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NTcxNTkxNEEyMDAwNENCOUZGIC8qIExpbmtCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFMkVBNkMwRkI0NjBDRjAwNjAxRjA2IC8qIExpdGVy
YWxQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1N0YxQkRBQ0RDNzAwODBGRjc0
IC8qIEFpckluc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkUzOTEzNTQxQjc5NEY2RTAwRURB
RjcxIC8qIExpdmVPYmplY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFMjBDRTlEMTVG
MDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDY4
MEQyMTRCQkQxNjUwMEJGRTI3MiAvKiBMTEludERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEZFQzg0RkUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQXJndW1lbnRSZWdWYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQkwRkVDODU0MTFCREFDREFDMDA4MEZGNzQgLyogQjNWYWxpZGF0ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjM4QjAxMTE3Q0YwNzgwMDBCMTQ0RDMgLyogTExJbnRFbnRy
eXBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDY4MEE4MTRCQTdGQUIwMEJGRTI3MiAv
KiBMTEludEV4Y2VwdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0NjgwQTQxNEJBN0Y4
RDAwQkZFMjcyIC8qIExMSW50U2xvd1BhdGhzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODYxNyw3
ICs4NzI1LDYgQEAKIAkJCQlBN0U1QUIzNzE3OTlFNEIyMDBEMjgzM0QgLyogTExWTURpc2Fzc2Vt
Ymxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURERTEwN0VDN0U3MDA2NTA0NDYgLyog
TG9va3VwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDY4MENDMTRCQkIxN0EwMEJGRTI3MiAv
KiBMb3dMZXZlbEludGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTFGMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM01lbW9yeVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0
QjcyM0IyMTJEN0RBNDYwMDNCRDVFRCAvKiBNYWNoaW5lU3RhY2tNYXJrZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFQjNFQ0YxNjIzN0Y2QzAwQUI2N0FEIC8qIE1hY3JvQXNzZW1ibGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg2QzU2OEUwMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fz
c2VtYmxlckFSTS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg2MjcsMTIgKzg3MzQsMTAgQEAKIAkJ
CQlBN0E0QUUwODE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTcwMDg3MzkxN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0
cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NERFRjkzMTgyRDk5MTQwMDUyMkMyMiAv
KiBNYXBJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODUwNzFC
REFDREFDMDA4MEZGNzQgLyogQjNDaGVja1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
MDA4NzNEMTdDQkU4RDMwMEMzRTY0MyAvKiBNYXBQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtlZEFsbG9jYXRvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDJENkYwODEzNTM5QTI4MDBCMDJFODYgLyogTWFya2VkQmxvY2su
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTREMkYzREExMzlGNEJFMjAwNDkxMDMxIC8qIE1hcmtl
ZFNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTQzMUJEQUNEQUMwMDgwRkY3NCAv
KiBCM1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MkQ2RjExMTM1MzlBNDEwMEIwMkU4
NiAvKiBNYXJrU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM0MEE0ODQxQTkwNTFBRjAw
RDczQ0NBIC8qIE1hdGhDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlEREYxMDdF
QzdFNzAwNjUwNDQ2IC8qIE1hdGhPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04NjQwLDYg
Kzg3NDUsNyBAQAogCQkJCTBGQjU0NjdEMTRGNUNGRDYwMDJDMjk4OSAvKiBNZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzNzk0RTc1MUI3N0VCOTcw
MDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzU1RjM1
MjFCN0RDODUzMDBDNTBEQzUgLyogTW9kdWxlTG9hZGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTk5ODdERTNDMUJFM0ZEODIwMEQyMDc3MyAvKiBNb2R1bGVMb2FkZXJPYmplY3RCdWls
dGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFMDEwN0VDN0U3MDA2NTA0NDYgLyog
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFMTEw
N0VDN0U3MDA2NTA0NDYgLyogTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTMzRThEMjAxQjkwMTNERTAwMzQ2QjUyIC8qIE5hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTg2NTMsMTMgKzg3NTksMTQgQEAKIAkJCQkxNDQ2OURFNDEw
N0VDN0U3MDA2NTA0NDYgLyogTnVtYmVyUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg2RjNFRUJFMTY4Q0RFOTMwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTE0NDY5REU1MTA3RUM3RTcwMDY1MDQ0NiAvKiBPYmplY3RDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTg3REUzRDFCRTNGRDgyMDBEMjA3NzMgLyog
T2JqZWN0Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQzRTQw
OTFCNjE4QjY2MDBDODBFMUUgLyogT2JqZWN0UHJvcGVydHlDb25kaXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRkU0MjM4OTAxQkUxOEMzQzAwNTE0NzM3IC8qIEpJVFN1YkdlbmVyYXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQzRTQwQjFCNjE4QjY2MDBDODBFMUUgLyogT2JqZWN0
UHJvcGVydHlDb25kaXRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTYxMDdF
QzdFNzAwNjUwNDQ2IC8qIE9iamVjdFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MTI0QThGODBFNTU1Nzc1MDAzMDkxRjEgLyogT3BhcXVlSlNTdHJpbmcuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTY5QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDI4MDg1MDEwN0VDMEQ3MDAxM0U3QjIgLyogT3BlcmF0aW9ucy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk5OTg3REUzRTFCRTNGRDgyMDBEMjA3NzMgLyogT3BlcmF0aW9uc1By
b21pc2VCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUyMjhFRTE0MzZBQjJDMDAx
OTZDNDggLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFCQzEwN0VDNTRE
MDA0MkVDMkMgLyogUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMDUyQzM0MEZCNzky
MTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg2NzIsMjEg
Kzg3NzksMTkgQEAKIAkJCQkwRkY3MjlBRDE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJCeXRl
Y29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlBRTE2NkFEMzVDMDAwRjVCQTMgLyog
UHJvZmlsZXJCeXRlY29kZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxMzkxMjkxNjc3MUMz
MzAwOUNDQjA3IC8qIFByb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkwRkVDODUwQjFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tdXRhdGl2aXR5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRjcyOUFGMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckNvbXBp
bGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjcyOUIwMTY2QUQzNUMwMDBGNUJBMyAv
KiBQcm9maWxlckNvbXBpbGF0aW9uS2luZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlC
MTE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRjcyOUIyMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckRhdGFiYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMTkwQ0FDMTg5RDgyRjYwMDBBRTVGMCAvKiBQcm9m
aWxlckpldHRpc29uUmVhc29uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTMwMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM1N0YWNrbWFwU3BlY2lhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkY3MjlCMzE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJPcmlnaW4uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZGNzI5QjQxNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVyT3JpZ2luU3RhY2su
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MkUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3Rh
Y2ttYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCMTA1OEIxNjc1NDgzMTAwRjhBQjZFIC8q
IFByb2ZpbGVyT1NSRXhpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkIxMDU4RDE2NzU0ODM3
MDBGOEFCNkUgLyogUHJvZmlsZXJPU1JFeGl0U2l0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjEzOTEyQjE2NzcxQzNBMDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk5OTg3REUzRjFCRTNGRDgyMDBEMjA3NzMgLyogUHJvbWlzZUNv
bnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk4N0RFNDAxQkUzRkQ4
MjAwRDIwNzczIC8qIFByb21pc2VQcm90b3R5cGVCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkQzRTQwRDFCNjE4QjY2MDBDODBFMUUgLyogUHJvcGVydHlDb25kaXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1M0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVHlwZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBN0ZCNjBBNDEwM0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlE
ZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REU4MTA3RUM3RTcwMDY1MDQ0
NiAvKiBQcm9wZXJ0eVNsb3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQURFMzlGRkYxNkREMTQ0
QjAwMDNDRDRBIC8qIFByb3BlcnR5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04Njk1LDEy
ICs4ODAwLDExIEBACiAJCQkJMEYxNUNEMjIxQkE1Rjk4NjAwMzFGRkQzIC8qIFB1dEJ5SWRGbGFn
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkzMzJBMzE0Q0E3REQ3MDA4NUYzQzYgLyogUHV0
QnlJZFN0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkzQjRBOTE4QjkyQzREMDAxNzhB
M0YgLyogUHV0QnlJZFZhcmlhbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MkIxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjYw
QUMzMTY3NDBGODgwMDAyOTc3OSAvKiBSZWR1Y2VXaGl0ZXNwYWNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUzMzYzN0E1MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTk5ODdERTQxMUJFM0ZEODIwMEQyMDc3MyAvKiBSZWZsZWN0T2JqZWN0
QnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZBN0E4RUIxOEI0MTNDODAwNTIzNzFE
IC8qIFJlZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg0MTEwN0VDMDkzMDAxM0U3QjIg
LyogUmVnRXhwLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTc4MUJEQUNEQzcwMDgwRkY3
NCAvKiBBaXJHZW5lcmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTcxMkIzQjExQzdCMjEy
MDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODY0MkM1MTAx
NTFDMDZBOTAwNDZENEVGIC8qIFJlZ0V4cENhY2hlZFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxNDI4MDg0MjEwN0VDMDkzMDAxM0U3QjIgLyogUmVnRXhwQ29uc3RydWN0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC04NzE0LDcgKzg4MTgsNiBAQAogCQkJCUE1QkExNUU5MTgyMzQwQjMw
MEE4MkU2OSAvKiBSZW1vdGVJbnNwZWN0b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNTk0NTU4
RjE4MjQ1RUZEMDBDQzM4NDMgLyogUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNUJBMTVFQzE4MjM0MEI0MDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdG9y
RGVidWdnYWJsZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODUwNTFCREFD
REFDMDA4MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVC
QTE1RUUxODIzNDBCNDAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24ubW0g
aW4gU291cmNlcyAqLywKIAkJCQkwRjI0RTU1MDE3RUUyNzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1Mjc3NzNERTFBQUY4M0FDMDBCREU3RTggLyogUnVudGlt
ZVR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04NzMzLDcgKzg4MzYsNiBAQAogCQkJCUE1NENG
MkY5MTg0RUFFREEwMDIzN0YxOSAvKiBTY3JpcHRPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTU0Q0YyRjUxODRFQUIyNDAwMjM3RjE5IC8qIFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3Mjk5REE1MTdEMTI4NTgwMDVGNUZGOSAvKiBTZXRDb25zdHJ1Y3Rvci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkwRkVDODU4NTFCREFDREM3MDA4MEZGNzQgLyogQWlyUmVnaXN0
ZXJQcmlvcml0eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzkwREQ2RDE4MkY0OTk3MDA1ODg4
MDcgLyogU2V0SXRlcmF0b3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTlE
QTExN0QxMjg0ODAwNUY1RkY5IC8qIFNldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkVFOTg0MzFBODkyMjc1MDA3NTRFOTMgLyogU2V0dXBWYXJhcmdzRnJhbWUuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC04NzQ4LDE2ICs4ODUwLDE2IEBACiAJCQkJMEZEODJFODYxNDFGM0ZGMTAw
MTc5Qzk0IC8qIFNwZWN1bGF0ZWRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QzFFQUYx
MTc5ODdBQjYwMDI5OURCMiAvKiBTdGFja1Zpc2l0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTczMEI2MTMxMjUwMDY4RjAwOUQyNUIxIC8qIFN0cmljdEV2YWxBY3RpdmF0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTBGRUM4NTIxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM09wY29kZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFQjEwN0VDN0U3MDA2NTA0NDYgLyogU3RyaW5nQ29u
c3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk4N0RFNDIxQkUzRkQ4MjAwRDIwNzcz
IC8qIFN0cmluZ0NvbnN0cnVjdG9yQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzBF
QzBFQzYxQUEwRDdEQTAwQjZBQUZBIC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTk5ODdERTQzMUJFM0ZEODIwMEQyMDc3MyAvKiBTdHJpbmdJdGVyYXRv
clByb3RvdHlwZUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REVDMTA3RUM3
RTcwMDY1MDQ0NiAvKiBTdHJpbmdPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlE
RUQxMDdFQzdFNzAwNjUwNDQ2IC8qIFN0cmluZ1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5MzM1RjI0RDEyRTY3NjVCMDAyQjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0RFM0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0
dXJlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFNEVFNzBGMEVCQjdBNUIwMDU5MzRBQSAvKiBT
dHJ1Y3R1cmVDaGFpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQUY3MzgyQzE4QkJCRjkyMDA4
QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVDODVC
OTFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzJGMEYyRDExNkJBRUVFOTAwMTg3QzE5IC8qIFN0cnVjdHVyZVJhcmVEYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGQjQzOEEzMTkyNzBCMUQwMEUxRkJDOSAvKiBTdHJ1Y3R1cmVTZXQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3NjZEMzgxNUFFNEExQzAwOEYzNjNFIC8qIFN0cnVj
dHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04NzY2LDcg
Kzg4NjgsNiBAQAogCQkJCTcwNUI0MUFEMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MDVCNDFBRjFBNkU1MDFFMDA3MTY3NTcgLyog
U3ltYm9sT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwNUI0MUIxMUE2RTUwMUUwMDcx
Njc1NyAvKiBTeW1ib2xQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1M0Yx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzVXNlQ291bnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
OTE5RDI4MTU4NTY3NzMwMDRBNEU3RCAvKiBTeW1ib2xUYWJsZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3MEVDQTYwNzFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkMzMTQxMzE4MTQ1NTkxMDAwMzMyMzIgLyogVGVtcFJlZ2lzdGVy
U2V0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtODc3NCw3ICs4ODc1LDkgQEAKIAkJCQlBNzM4NjU1
NTExODY5N0I0MDA1NDAyNzkgLyogVGh1bmtHZW5lcmF0b3JzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMkQ0REU4MTk4MzJEQUMwMDdENEIxOSAvKiBUb1RoaXNTdGF0dXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY5NTJBQkMxQjQ4N0E3NzAwQzM2N0M1IC8qIFRyYWNrZWRSZWZlcmVuY2Vz
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5ODdERTQ0MUJFM0ZEODIwMEQyMDc3MyAvKiBUeXBl
ZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcw
NzE3QjZCNUFCMDBBN0FFM0YgLyogVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJOTk4N0RFNDUxQkUzRkQ4MjAwRDIwNzczIC8qIFR5cGVkQXJyYXlQcm90b3R5cGVC
dWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCNjcwQTE3QjZCNUFCMDBBN0FFM0Yg
LyogVHlwZWRBcnJheVR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJCMzEwRkYxOTc1QjQy
NDAwODA4NTdDIC8qIFR5cGVMb2NhdGlvbkNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RkI2QzM4MUFGNDhEREMwMERCMUJGNyAvKiBUeXBlb2ZUeXBlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtODc5NSw3ICs4ODk4LDYgQEAKIAkJCQkwRjI0RTU1ODE3Rjc0RURCMDBBQkIyMTcgLyogVmFs
dWVSZWNvdmVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OUVFMEJGRjFCNEFGQjg1MDAwMzg1
QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjZDNzM1
MDFBQzlGOTlGMDBCRTE2ODIgLyogVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZFQzg1ODMxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclBoYXNlU2NvcGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMDUwMkMxQUE5MDk1NjAwRDMzQjMzIC8qIFZhck9mZnNl
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIwQzI1OTFBODAxM0FCMDBEQTMyMjkgLyogVmly
dHVhbFJlZ2lzdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEUzQTU5MERGOTI3OEMwMEQ5
MEIzNCAvKiBWTS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg4MTUsNyArODkxNyw2IEBACiAJCQkJ
NzA5RkI4NjkxQUUzMzVDNjAwMzlEMDY5IC8qIFdlYWtTZXRDb25zdHJ1Y3Rvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vha1NldFByb3RvdHlw
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5NEY3ODIgLyogV3Jp
dGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTdEMUJEQUNEQzcw
MDgwRkY3NCAvKiBBaXJJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDODE1
MEIxNDA0M0MwRTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fzc2VtYmxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1ODVFNEUgLyogWWFyckNhbm9u
aWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGlucy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zLnB5CmluZGV4IGM2N2NkYWQ4YTMwZDcwY2Nj
NDVhMTlkODNkMjI0YTY0ZjNiZWZmNzIuLmYzMjNjYWJkZmZkYzZiMWZlMmExZmIyMzc1ZmU0NjNh
Nzc5MTkyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0
aW5zL2J1aWx0aW5zLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0
aW5zL2J1aWx0aW5zLnB5CkBAIC01LDggKzUsNyBAQCBmcm9tIGJ1aWx0aW5zX21vZGVsIGltcG9y
dCAqCiBmcm9tIGJ1aWx0aW5zX3RlbXBsYXRlcyBpbXBvcnQgKgogCiBmcm9tIGJ1aWx0aW5zX2dl
bmVyYXRvciBpbXBvcnQgKgotZnJvbSBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9oZWFkZXIg
aW1wb3J0ICoKLWZyb20gYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24g
aW1wb3J0ICoKLWZyb20gYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyIGltcG9ydCAq
Ci1mcm9tIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uIGltcG9ydCAq
Ci1mcm9tIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIgaW1wb3J0ICoKK2Zyb20g
YnVpbHRpbnNfZ2VuZXJhdGVfZnJhbWV3b3JrX21hY3JvcyBpbXBvcnQgKgorZnJvbSBidWlsdGlu
c19nZW5lcmF0ZV9vYmplY3RfaGVhZGVyIGltcG9ydCAqCitmcm9tIGJ1aWx0aW5zX2dlbmVyYXRl
X29iamVjdF9pbXBsZW1lbnRhdGlvbiBpbXBvcnQgKgorZnJvbSBidWlsdGluc19nZW5lcmF0ZV9v
YmplY3Rfd3JhcHBlciBpbXBvcnQgKgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaGVhZGVyLnB5IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVf
Y29tYmluZWRfaGVhZGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDg5ZmRm
NTlhMmJhZTk2MTVlOThhOGE2ZTJjYzI5ODA0OTNlNjEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hlYWRlci5weQorKysgL2Rldi9udWxs
CkBAIC0xLDE2MiArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0
IChjKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJp
Z2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotaW1wb3J0IGxv
Z2dpbmcKLWltcG9ydCByZQotaW1wb3J0IHN0cmluZwotZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBs
YXRlCi0KLWZyb20gYnVpbHRpbnNfZ2VuZXJhdG9yIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvcgot
ZnJvbSBidWlsdGluc190ZW1wbGF0ZXMgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yVGVtcGxhdGVz
IGFzIFRlbXBsYXRlcwotCi1sb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFsJykKLQotCi1j
bGFzcyBCdWlsdGluc0NvbWJpbmVkSGVhZGVyR2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwpOgotICAgICAgICBCdWlsdGluc0dlbmVyYXRv
ci5fX2luaXRfXyhzZWxmLCBtb2RlbCkKLQotICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6
Ci0gICAgICAgIHJldHVybiAiJXNCdWlsdGlucy5oIiAlIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsu
c2V0dGluZygnbmFtZXNwYWNlJykKLQotICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6Ci0g
ICAgICAgIGFyZ3MgPSB7Ci0gICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZy
YW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKSwKLSAgICAgICAgICAgICdoZWFkZXJHdWFyZCc6
IHNlbGYub3V0cHV0X2ZpbGVuYW1lKCkucmVwbGFjZSgnLicsICdfJyksCi0gICAgICAgICAgICAn
bWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZp
eCcpLAotICAgICAgICB9Ci0KLSAgICAgICAgc2VjdGlvbnMgPSBbXQotICAgICAgICBzZWN0aW9u
cy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNlKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVu
ZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0V2FybmluZykuc3Vic3RpdHV0ZShhcmdzKSkK
LSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRl
R3VhcmRUb3ApLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxm
LmdlbmVyYXRlX2ZvcndhcmRfZGVjbGFyYXRpb25zKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVu
ZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNlVG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAg
ICAgICBmb3Igb2JqZWN0IGluIHNlbGYubW9kZWwoKS5vYmplY3RzOgotICAgICAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2JqZWN0KG9iamVjdCkpCi0g
ICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfdGFi
bGVfbWFjcm8oKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlv
bl9mb3JfY29kZV9uYW1lX21hY3JvKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0
ZShUZW1wbGF0ZXMuQ29tYmluZWRIZWFkZXJTdGF0aWNNYWNyb3MpLnN1YnN0aXR1dGUoYXJncykp
Ci0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNlQm90
dG9tKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUo
VGVtcGxhdGVzLkhlYWRlckluY2x1ZGVHdWFyZEJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLQot
ICAgICAgICByZXR1cm4gIlxuXG4iLmpvaW4oc2VjdGlvbnMpCi0KLSAgICBkZWYgZ2VuZXJhdGVf
Zm9yd2FyZF9kZWNsYXJhdGlvbnMoc2VsZik6Ci0gICAgICAgIHJldHVybiAiIiJuYW1lc3BhY2Ug
SlNDIHsKLWNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKLWNsYXNzIFZNOwotCi1lbnVtIGNsYXNz
IENvbnN0cnVjdEFiaWxpdHkgOiB1bnNpZ25lZDsKLX0iIiIKLQotICAgIGRlZiBnZW5lcmF0ZV9z
ZWN0aW9uX2Zvcl9vYmplY3Qoc2VsZiwgb2JqZWN0KToKLSAgICAgICAgbGluZXMgPSBbXQotICAg
ICAgICBsaW5lcy5hcHBlbmQoJy8qICVzICovJyAlIG9iamVjdC5vYmplY3RfbmFtZSkKLSAgICAg
ICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2VuZXJhdGVfZXh0ZXJuc19mb3Jfb2JqZWN0KG9iamVjdCkp
Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgiIikKLSAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2Vu
ZXJhdGVfbWFjcm9zX2Zvcl9vYmplY3Qob2JqZWN0KSkKLSAgICAgICAgbGluZXMuYXBwZW5kKCIi
KQotICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5nZW5lcmF0ZV9kZWZpbmVzX2Zvcl9vYmplY3Qo
b2JqZWN0KSkKLSAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKLQotICAgIGRlZiBnZW5l
cmF0ZV9leHRlcm5zX2Zvcl9vYmplY3Qoc2VsZiwgb2JqZWN0KToKLSAgICAgICAgbGluZXMgPSBb
XQotCi0gICAgICAgIGZvciBmdW5jdGlvbiBpbiBvYmplY3QuZnVuY3Rpb25zOgotICAgICAgICAg
ICAgZnVuY3Rpb25fYXJncyA9IHsKLSAgICAgICAgICAgICAgICAnY29kZU5hbWUnOiBCdWlsdGlu
c0dlbmVyYXRvci5tYW5nbGVkTmFtZUZvckZ1bmN0aW9uKGZ1bmN0aW9uKSArICdDb2RlJywKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIiImV4dGVybiBjb25zdCBj
aGFyKiBzXyUoY29kZU5hbWUpczsKLWV4dGVybiBjb25zdCBpbnQgc18lKGNvZGVOYW1lKXNMZW5n
dGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJShjb2RlTmFtZSlzQ29u
c3RydWN0QWJpbGl0eTsiIiIgJSBmdW5jdGlvbl9hcmdzKQotCi0gICAgICAgIHJldHVybiBsaW5l
cwotCi0gICAgZGVmIGdlbmVyYXRlX21hY3Jvc19mb3Jfb2JqZWN0KHNlbGYsIG9iamVjdCk6Ci0g
ICAgICAgIGFyZ3MgPSB7Ci0gICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCku
ZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpLAotICAgICAgICAgICAgJ29iamVjdE1h
Y3JvJzogb2JqZWN0Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnJykudXBwZXIoKSwKLSAgICAg
ICAgfQotCi0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVmaW5l
ICUobWFjcm9QcmVmaXgpc19GT1JFQUNIXyUob2JqZWN0TWFjcm8pc19CVUlMVElOX0RBVEEobWFj
cm8pIFxcIiAlIGFyZ3MpCi0gICAgICAgIGZvciBmdW5jdGlvbiBpbiBvYmplY3QuZnVuY3Rpb25z
OgotICAgICAgICAgICAgZnVuY3Rpb25fYXJncyA9IHsKLSAgICAgICAgICAgICAgICAnZnVuY05h
bWUnOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1lLAotICAgICAgICAgICAgICAgICdtYW5nbGVkTmFt
ZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1lRm9yRnVuY3Rpb24oZnVuY3Rpb24pLAot
ICAgICAgICAgICAgICAgICdwYXJhbUNvdW50JzogbGVuKGZ1bmN0aW9uLnBhcmFtZXRlcnMpLAot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGZ1
bmNOYW1lKXMsICUobWFuZ2xlZE5hbWUpcywgJShwYXJhbUNvdW50KWQpIFxcIiAlIGZ1bmN0aW9u
X2FyZ3MpCi0gICAgICAgIHJldHVybiBsaW5lcwotCi0gICAgZGVmIGdlbmVyYXRlX2RlZmluZXNf
Zm9yX29iamVjdChzZWxmLCBvYmplY3QpOgotICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgIGZv
ciBmdW5jdGlvbiBpbiBvYmplY3QuZnVuY3Rpb25zOgotICAgICAgICAgICAgYXJncyA9IHsKLSAg
ICAgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRp
bmcoJ21hY3JvX3ByZWZpeCcpLAotICAgICAgICAgICAgICAgICdvYmplY3RNYWNybyc6IG9iamVj
dC5vYmplY3RfbmFtZS5yZXBsYWNlKCcuJywgJycpLnVwcGVyKCksCi0gICAgICAgICAgICAgICAg
J2Z1bmN0aW9uTWFjcm8nOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1lLnVwcGVyKCksCi0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClz
X0JVSUxUSU5fJShvYmplY3RNYWNybylzXyUoZnVuY3Rpb25NYWNybylzIDEiICUgYXJncykKLQot
ICAgICAgICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2Rl
X3RhYmxlX21hY3JvKHNlbGYpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ21hY3Jv
UHJlZml4Jzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwK
LSAgICAgICAgfQotCi0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgbGluZXMuYXBwZW5kKCIj
ZGVmaW5lICUobWFjcm9QcmVmaXgpc19GT1JFQUNIX0JVSUxUSU5fQ09ERShtYWNybykgXFwiICUg
YXJncykKLSAgICAgICAgZm9yIGZ1bmN0aW9uIGluIHNlbGYubW9kZWwoKS5hbGxfZnVuY3Rpb25z
KCk6Ci0gICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0gewotICAgICAgICAgICAgICAgICdmdW5j
TmFtZSc6IGZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUsCi0gICAgICAgICAgICAgICAgJ2NvZGVOYW1l
JzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlvbikgKyAn
Q29kZScsCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1h
Y3JvKCUoY29kZU5hbWUpcywgJShmdW5jTmFtZSlzLCBzXyUoY29kZU5hbWUpc0xlbmd0aCkgXFwi
ICUgZnVuY3Rpb25fYXJncykKLSAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKLQotICAg
IGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX25hbWVfbWFjcm8oc2VsZik6Ci0gICAgICAg
IGFyZ3MgPSB7Ci0gICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1vZGVsKCkuZnJhbWV3
b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpLAotICAgICAgICB9Ci0KLSAgICAgICAgbGluZXMg
PSBbXQotICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVB
Q0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcXCIgJSBhcmdzKQotICAgICAgICB1bmlx
dWVfbmFtZXMgPSBsaXN0KHNldChbZnVuY3Rpb24uZnVuY3Rpb25fbmFtZSBmb3IgZnVuY3Rpb24g
aW4gc2VsZi5tb2RlbCgpLmFsbF9mdW5jdGlvbnMoKV0pKQotICAgICAgICB1bmlxdWVfbmFtZXMu
c29ydCgpCi0gICAgICAgIGZvciBmdW5jdGlvbl9uYW1lIGluIHVuaXF1ZV9uYW1lczoKLSAgICAg
ICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7Ci0gICAgICAgICAgICAgICAgJ2Z1bmNOYW1lJzogZnVu
Y3Rpb25fbmFtZSwKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIg
ICAgbWFjcm8oJShmdW5jTmFtZSlzKSBcXCIgJSBmdW5jdGlvbl9hcmdzKQotICAgICAgICByZXR1
cm4gJ1xuJy5qb2luKGxpbmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24u
cHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5l
cmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDk0NDM0YjY0NjhhMTUzZjBmODZjYTg1ZDE3OWZmNmM2ZjNjOGI4Yi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRh
dGlvbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5
dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFy
ZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0j
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IHJlCi1pbXBvcnQgc3RyaW5nCi1mcm9t
IHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKLQotZnJvbSBidWlsdGluc19nZW5lcmF0b3IgaW1wb3J0
IEJ1aWx0aW5zR2VuZXJhdG9yCi1mcm9tIGJ1aWx0aW5zX21vZGVsIGltcG9ydCBGcmFtZXdvcmss
IEZyYW1ld29ya3MKLWZyb20gYnVpbHRpbnNfdGVtcGxhdGVzIGltcG9ydCBCdWlsdGluc0dlbmVy
YXRvclRlbXBsYXRlcyBhcyBUZW1wbGF0ZXMKLQotbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2ds
b2JhbCcpCi0KLQotY2xhc3MgQnVpbHRpbnNDb21iaW5lZEltcGxlbWVudGF0aW9uR2VuZXJhdG9y
KEJ1aWx0aW5zR2VuZXJhdG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwpOgotICAg
ICAgICBCdWlsdGluc0dlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2RlbCkKLQotICAgIGRlZiBv
dXRwdXRfZmlsZW5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAiJXNCdWlsdGlucy5jcHAiICUg
c2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKQotCi0gICAgZGVmIGdl
bmVyYXRlX291dHB1dChzZWxmKToKLSAgICAgICAgYXJncyA9IHsKLSAgICAgICAgICAgICduYW1l
c3BhY2UnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ25hbWVzcGFjZScpLAotICAg
ICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdt
YWNyb19wcmVmaXgnKSwKLSAgICAgICAgfQotCi0gICAgICAgIHNlY3Rpb25zID0gW10KLSAgICAg
ICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGljZW5zZSgpKQotICAgICAgICBzZWN0
aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90RWRpdFdhcm5pbmcpLnN1YnN0aXR1
dGUoYXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3ByaW1hcnlf
aGVhZGVyX2luY2x1ZGVzKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRl
X3NlY29uZGFyeV9oZWFkZXJfaW5jbHVkZXMoKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRl
bXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VUb3ApLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAg
IGZvciBmdW5jdGlvbiBpbiBzZWxmLm1vZGVsKCkuYWxsX2Z1bmN0aW9ucygpOgotICAgICAgICAg
ICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfZW1iZWRkZWRfY29kZV9zdHJpbmdfc2Vj
dGlvbl9mb3JfZnVuY3Rpb24oZnVuY3Rpb24pKQotICAgICAgICBpZiBzZWxmLm1vZGVsKCkuZnJh
bWV3b3JrIGlzIEZyYW1ld29ya3MuSmF2YVNjcmlwdENvcmU6Ci0gICAgICAgICAgICBzZWN0aW9u
cy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkNvbWJpbmVkSlNDSW1wbGVtZW50YXRpb25TdGF0
aWNNYWNyb3MpLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIGVsaWYgc2VsZi5tb2RlbCgpLmZy
YW1ld29yayBpcyBGcmFtZXdvcmtzLldlYkNvcmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBl
bmQoVGVtcGxhdGUoVGVtcGxhdGVzLkNvbWJpbmVkV2ViQ29yZUltcGxlbWVudGF0aW9uU3RhdGlj
TWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxh
dGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLQotICAgICAg
ICByZXR1cm4gIlxuXG4iLmpvaW4oc2VjdGlvbnMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2Vjb25k
YXJ5X2hlYWRlcl9pbmNsdWRlcyhzZWxmKToKLSAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWwot
ICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiXSwKLSAgICAgICAgICAgICAgICAoIkphdmFT
Y3JpcHRDb3JlIiwgImJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oIiksCi0gICAgICAgICAg
ICApLAotICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAotICAgICAg
ICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9FeGVjdXRhYmxlLmgiKSwKLSAg
ICAgICAgICAgICksCi0gICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0s
Ci0gICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0pTQ2VsbElubGlu
ZXMuaCIpLAotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAg
ICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgInJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5o
IiksCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAg
ICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIiks
Ci0gICAgICAgICAgICApLAotICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29y
ZSJdLAotICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9WTS5oIiks
Ci0gICAgICAgICAgICApLAotICAgICAgICBdCi0KLSAgICAgICAgcmV0dXJuICdcbicuam9pbihz
ZWxmLmdlbmVyYXRlX2luY2x1ZGVzX2Zyb21fZW50cmllcyhoZWFkZXJfaW5jbHVkZXMpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNf
Z2VuZXJhdGVfZnJhbWV3b3JrX21hY3Jvcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDA1YzMwYTY1MzJjNjY2OWRjYTNiYmFmODBkOGQ4YWY2MmE2ZjNlZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5z
X2dlbmVyYXRlX2ZyYW1ld29ya19tYWNyb3MucHkKQEAgLTAsMCArMSwxMDYgQEAKKyMhL3Vzci9i
aW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBX
YXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCitpbXBvcnQgc3Ry
aW5nCitmcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKKworZnJvbSBidWlsdGluc19nZW5lcmF0
b3IgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yCitmcm9tIGJ1aWx0aW5zX3RlbXBsYXRlcyBpbXBv
cnQgQnVpbHRpbnNHZW5lcmF0b3JUZW1wbGF0ZXMgYXMgVGVtcGxhdGVzCisKK2xvZyA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCdnbG9iYWwnKQorCisKK2NsYXNzIEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9z
R2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbW9k
ZWwpOgorICAgICAgICBCdWlsdGluc0dlbmVyYXRvci5fX2luaXRfXyhzZWxmLCBtb2RlbCkKKwor
ICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAiJXNCdWlsdGlu
c01hY3Jvcy5oIiAlIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbmFtZXNwYWNlJykK
KworICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6CisgICAgICAgIGFyZ3MgPSB7CisgICAg
ICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCduYW1l
c3BhY2UnKSwKKyAgICAgICAgICAgICdoZWFkZXJHdWFyZCc6IHNlbGYub3V0cHV0X2ZpbGVuYW1l
KCkucmVwbGFjZSgnLicsICdfJyksCisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1v
ZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpLAorICAgICAgICB9CisKKyAg
ICAgICAgc2VjdGlvbnMgPSBbXQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0
ZV9saWNlbnNlKCkpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMu
RG9Ob3RFZGl0V2FybmluZykuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBw
ZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRUb3ApLnN1YnN0aXR1dGUo
YXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX2hlYWRlcl9pbmNs
dWRlcygpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVz
cGFjZVRvcCkuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYu
Z2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9pdGVyYXRpb25fbWFjcm8oKSkKKyAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfbmFtZV9pdGVyYXRpb25fbWFj
cm8oKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3Bh
Y2VCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1w
bGF0ZShUZW1wbGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3Mp
KQorCisgICAgICAgIHJldHVybiAiXG5cbiIuam9pbihzZWN0aW9ucykKKworICAgIGRlZiBnZW5l
cmF0ZV9oZWFkZXJfaW5jbHVkZXMoc2VsZik6CisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAg
Zm9yIG9iamVjdCBpbiBzZWxmLm1vZGVsKCkub2JqZWN0czoKKyAgICAgICAgICAgIGxpbmVzLmFw
cGVuZCgnI2luY2x1ZGUgIiVzQnVpbHRpbnMuaCInICUgQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xl
ZE5hbWVGb3JPYmplY3Qob2JqZWN0KSkKKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVz
KQorCisgICAgZGVmIGdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfaXRlcmF0aW9uX21hY3JvKHNl
bGYpOgorICAgICAgICBtYWNyb1ByZWZpeCA9IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGlu
ZygnbWFjcm9fcHJlZml4JykKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICdtYWNyb1By
ZWZpeCc6IG1hY3JvUHJlZml4LAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBbXQorICAg
ICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfQlVJTFRJ
Tl9DT0RFKG1hY3JvKSBcXCIgJSBhcmdzKQorICAgICAgICBmb3Igb2JqZWN0IGluIHNlbGYubW9k
ZWwoKS5vYmplY3RzOgorICAgICAgICAgICAgb2JqZWN0X2FyZ3MgPSB7CisgICAgICAgICAgICAg
ICAgJ21hY3JvUHJlZml4JzogbWFjcm9QcmVmaXgsCisgICAgICAgICAgICAgICAgJ29iamVjdE1h
Y3JvJzogb2JqZWN0Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnXycpLnVwcGVyKCksCisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgICUobWFjcm9QcmVmaXgp
c19GT1JFQUNIXyUob2JqZWN0TWFjcm8pc19CVUlMVElOX0NPREUobWFjcm8pIFxcIiAlIG9iamVj
dF9hcmdzKQorICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQorCisgICAgZGVmIGdlbmVy
YXRlX3NlY3Rpb25fZm9yX25hbWVfaXRlcmF0aW9uX21hY3JvKHNlbGYpOgorICAgICAgICBhcmdz
ID0geworICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5z
ZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwKKyAgICAgICAgfQorCisgICAgICAgIGxpbmVzID0gW10K
KyAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVmaW5lICUobWFjcm9QcmVmaXgpc19GT1JFQUNIX1VO
SVFVRV9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFxcIiAlIGFyZ3MpCisgICAgICAgIHVu
aXF1ZV9uYW1lcyA9IGxpc3Qoc2V0KFtmdW5jdGlvbi5mdW5jdGlvbl9uYW1lIGZvciBmdW5jdGlv
biBpbiBzZWxmLm1vZGVsKCkuYWxsX2Z1bmN0aW9ucygpXSkpCisgICAgICAgIHVuaXF1ZV9uYW1l
cy5zb3J0KCkKKyAgICAgICAgZm9yIGZ1bmN0aW9uX25hbWUgaW4gdW5pcXVlX25hbWVzOgorICAg
ICAgICAgICAgZnVuY3Rpb25fYXJncyA9IHsKKyAgICAgICAgICAgICAgICAnZnVuY05hbWUnOiBm
dW5jdGlvbl9uYW1lLAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQo
IiAgICBtYWNybyglKGZ1bmNOYW1lKXMpIFxcIiAlIGZ1bmN0aW9uX2FyZ3MpCisgICAgICAgIHJl
dHVybiAnXG4nLmpvaW4obGluZXMpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX29iamVjdF9oZWFkZXIucHkgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9v
YmplY3RfaGVhZGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4YjlmMWFlODE1Yjc5NTQzM2M1YmNmYzNiMzU0
ZjgxNTBkYTViZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaGVhZGVyLnB5CkBAIC0wLDAg
KzEsMTgzIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChjKSAyMDE0
LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAy
MDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworaW1wb3J0IGxvZ2dpbmcKK2lt
cG9ydCByZQoraW1wb3J0IHN0cmluZworZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBsYXRlCisKK2Zy
b20gYnVpbHRpbnNfZ2VuZXJhdG9yIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvcgorZnJvbSBidWls
dGluc190ZW1wbGF0ZXMgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yVGVtcGxhdGVzIGFzIFRlbXBs
YXRlcworCitsb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFsJykKKworCitjbGFzcyBCdWls
dGluc09iamVjdEhlYWRlckdlbmVyYXRvcihCdWlsdGluc0dlbmVyYXRvcik6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIG1vZGVsLCBvYmplY3QpOgorICAgICAgICBCdWlsdGluc0dlbmVyYXRvci5f
X2luaXRfXyhzZWxmLCBtb2RlbCkKKyAgICAgICAgc2VsZi5vYmplY3QgPSBvYmplY3QKKworICAg
IGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAiJXNCdWlsdGlucy5o
IiAlIEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1lRm9yT2JqZWN0KHNlbGYub2JqZWN0KQor
CisgICAgZGVmIG1hY3JvX3ByZWZpeChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwo
KS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJlZml4JykKKworICAgIGRlZiBnZW5lcmF0ZV9v
dXRwdXQoc2VsZik6CisgICAgICAgIGFyZ3MgPSB7CisgICAgICAgICAgICAnbmFtZXNwYWNlJzog
c2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCduYW1lc3BhY2UnKSwKKyAgICAgICAgICAg
ICdoZWFkZXJHdWFyZCc6IHNlbGYub3V0cHV0X2ZpbGVuYW1lKCkucmVwbGFjZSgnLicsICdfJyks
CisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgpLAorICAgICAg
ICAgICAgJ29iamVjdE1hY3JvJzogc2VsZi5vYmplY3Qub2JqZWN0X25hbWUucmVwbGFjZSgnLics
ICdfJykudXBwZXIoKSwKKyAgICAgICAgfQorCisgICAgICAgIGNvbmRpdGlvbmFsX2d1YXJkID0g
c2VsZi5vYmplY3QuYW5ub3RhdGlvbnMuZ2V0KCdjb25kaXRpb25hbCcpCisKKyAgICAgICAgc2Vj
dGlvbnMgPSBbXQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNl
KCkpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0
V2FybmluZykuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBs
YXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRUb3ApLnN1YnN0aXR1dGUoYXJncykpCisg
ICAgICAgIGlmIGNvbmRpdGlvbmFsX2d1YXJkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2Vj
dGlvbnMuYXBwZW5kKCIjaWYgJXMiICUgY29uZGl0aW9uYWxfZ3VhcmQpCisgICAgICAgIHNlY3Rp
b25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY29uZGFyeV9oZWFkZXJfaW5jbHVkZXMoKSkKKyAg
ICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfZm9yd2FyZF9kZWNsYXJhdGlvbnMo
KSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VU
b3ApLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdlbmVy
YXRlX3NlY3Rpb25fZm9yX29iamVjdChzZWxmLm9iamVjdCkpCisgICAgICAgIHNlY3Rpb25zLmFw
cGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfdGFibGVfbWFjcm8oKSkKKyAgICAg
ICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV9uYW1lX21h
Y3JvKCkpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuT2JqZWN0
SGVhZGVyU3RhdGljTWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBzZWN0aW9ucy5h
cHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdz
KSkKKyAgICAgICAgaWYgY29uZGl0aW9uYWxfZ3VhcmQgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBzZWN0aW9ucy5hcHBlbmQoIiNlbmRpZiAvLyAlcyIgJSBjb25kaXRpb25hbF9ndWFyZCkKKyAg
ICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3Vh
cmRCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCisKKyAgICAgICAgcmV0dXJuICJcblxuIi5qb2lu
KHNlY3Rpb25zKQorCisgICAgZGVmIGdlbmVyYXRlX2ZvcndhcmRfZGVjbGFyYXRpb25zKHNlbGYp
OgorICAgICAgICByZXR1cm4gIiIibmFtZXNwYWNlIEpTQyB7CitjbGFzcyBGdW5jdGlvbkV4ZWN1
dGFibGU7CitjbGFzcyBWTTsKK2VudW0gY2xhc3MgQ29uc3RydWN0QWJpbGl0eSA6IHVuc2lnbmVk
OworfSIiIgorCisgICAgZGVmIGdlbmVyYXRlX3NlY29uZGFyeV9oZWFkZXJfaW5jbHVkZXMoc2Vs
Zik6CisgICAgICAgIGhlYWRlcl9pbmNsdWRlcyA9IFsKKyAgICAgICAgICAgIChbIkphdmFTY3Jp
cHRDb3JlIiwgIldlYkNvcmUiXSwKKyAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwg
ImJ1aWx0aW5zL0J1aWx0aW5VdGlscy5oIiksCisgICAgICAgICAgICApLAorICAgICAgICBdCisK
KyAgICAgICAgcmV0dXJuICdcbicuam9pbihzZWxmLmdlbmVyYXRlX2luY2x1ZGVzX2Zyb21fZW50
cmllcyhoZWFkZXJfaW5jbHVkZXMpKQorCisgICAgZGVmIGdlbmVyYXRlX3NlY3Rpb25fZm9yX29i
amVjdChzZWxmLCBvYmplY3QpOgorICAgICAgICBsaW5lcyA9IFtdCisgICAgICAgIGxpbmVzLmFw
cGVuZCgnLyogJXMgKi8nICUgb2JqZWN0Lm9iamVjdF9uYW1lKQorICAgICAgICBsaW5lcy5leHRl
bmQoc2VsZi5nZW5lcmF0ZV9leHRlcm5zX2Zvcl9vYmplY3Qob2JqZWN0KSkKKyAgICAgICAgbGlu
ZXMuYXBwZW5kKCIiKQorICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5nZW5lcmF0ZV9tYWNyb3Nf
Zm9yX29iamVjdChvYmplY3QpKQorICAgICAgICBsaW5lcy5hcHBlbmQoIiIpCisgICAgICAgIGxp
bmVzLmV4dGVuZChzZWxmLmdlbmVyYXRlX2RlZmluZXNfZm9yX29iamVjdChvYmplY3QpKQorICAg
ICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQorCisgICAgZGVmIGdlbmVyYXRlX2V4dGVybnNf
Zm9yX29iamVjdChzZWxmLCBvYmplY3QpOgorICAgICAgICBsaW5lcyA9IFtdCisKKyAgICAgICAg
Zm9yIGZ1bmN0aW9uIGluIG9iamVjdC5mdW5jdGlvbnM6CisgICAgICAgICAgICBmdW5jdGlvbl9h
cmdzID0geworICAgICAgICAgICAgICAgICdjb2RlTmFtZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1h
bmdsZWROYW1lRm9yRnVuY3Rpb24oZnVuY3Rpb24pICsgJ0NvZGUnLAorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiIiZXh0ZXJuIGNvbnN0IGNoYXIqIHNfJShjb2Rl
TmFtZSlzOworZXh0ZXJuIGNvbnN0IGludCBzXyUoY29kZU5hbWUpc0xlbmd0aDsKK2V4dGVybiBj
b25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lKGNvZGVOYW1lKXNDb25zdHJ1Y3RBYmlsaXR5
OyIiIiAlIGZ1bmN0aW9uX2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIGxpbmVzCisKKyAgICBkZWYg
Z2VuZXJhdGVfbWFjcm9zX2Zvcl9vYmplY3Qoc2VsZiwgb2JqZWN0KToKKyAgICAgICAgYXJncyA9
IHsKKyAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubWFjcm9fcHJlZml4KCksCisgICAg
ICAgICAgICAnb2JqZWN0TWFjcm8nOiBvYmplY3Qub2JqZWN0X25hbWUucmVwbGFjZSgnLicsICdf
JykudXBwZXIoKSwKKyAgICAgICAgfQorCisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgbGlu
ZXMuYXBwZW5kKCIjZGVmaW5lICUobWFjcm9QcmVmaXgpc19GT1JFQUNIXyUob2JqZWN0TWFjcm8p
c19CVUlMVElOX0RBVEEobWFjcm8pIFxcIiAlIGFyZ3MpCisgICAgICAgIGZvciBmdW5jdGlvbiBp
biBvYmplY3QuZnVuY3Rpb25zOgorICAgICAgICAgICAgZnVuY3Rpb25fYXJncyA9IHsKKyAgICAg
ICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlvbi5mdW5jdGlvbl9uYW1lLAorICAgICAgICAg
ICAgICAgICdtYW5nbGVkTmFtZSc6IEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWROYW1lRm9yRnVu
Y3Rpb24oZnVuY3Rpb24pLAorICAgICAgICAgICAgICAgICdwYXJhbUNvdW50JzogbGVuKGZ1bmN0
aW9uLnBhcmFtZXRlcnMpLAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaW5lcy5hcHBl
bmQoIiAgICBtYWNybyglKGZ1bmNOYW1lKXMsICUobWFuZ2xlZE5hbWUpcywgJShwYXJhbUNvdW50
KWQpIFxcIiAlIGZ1bmN0aW9uX2FyZ3MpCisgICAgICAgIHJldHVybiBsaW5lcworCisgICAgZGVm
IGdlbmVyYXRlX2RlZmluZXNfZm9yX29iamVjdChzZWxmLCBvYmplY3QpOgorICAgICAgICBsaW5l
cyA9IFtdCisgICAgICAgIGZvciBmdW5jdGlvbiBpbiBvYmplY3QuZnVuY3Rpb25zOgorICAgICAg
ICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3Jv
X3ByZWZpeCgpLAorICAgICAgICAgICAgICAgICdvYmplY3RNYWNybyc6IG9iamVjdC5vYmplY3Rf
bmFtZS5yZXBsYWNlKCcuJywgJ18nKS51cHBlcigpLAorICAgICAgICAgICAgICAgICdmdW5jdGlv
bk1hY3JvJzogZnVuY3Rpb24uZnVuY3Rpb25fbmFtZS51cHBlcigpLAorICAgICAgICAgICAgfQor
ICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIjZGVmaW5lICUobWFjcm9QcmVmaXgpc19CVUlMVElO
XyUob2JqZWN0TWFjcm8pc18lKGZ1bmN0aW9uTWFjcm8pcyAxIiAlIGFyZ3MpCisKKyAgICAgICAg
cmV0dXJuIGxpbmVzCisKKyAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3JfY29kZV90YWJsZV9t
YWNybyhzZWxmKToKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6
IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJlZml4JyksCisgICAgICAg
ICAgICAnb2JqZWN0TWFjcm8nOiBzZWxmLm9iamVjdC5vYmplY3RfbmFtZS5yZXBsYWNlKCcuJywg
J18nKS51cHBlcigpLAorICAgICAgICB9CisKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBs
aW5lcy5hcHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfJShvYmplY3RNYWNy
bylzX0JVSUxUSU5fQ09ERShtYWNybykgXFwiICUgYXJncykKKyAgICAgICAgZm9yIGZ1bmN0aW9u
IGluIHNlbGYub2JqZWN0LmZ1bmN0aW9uczoKKyAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7
CisgICAgICAgICAgICAgICAgJ2Z1bmNOYW1lJzogZnVuY3Rpb24uZnVuY3Rpb25fbmFtZSwKKyAg
ICAgICAgICAgICAgICAnY29kZU5hbWUnOiBCdWlsdGluc0dlbmVyYXRvci5tYW5nbGVkTmFtZUZv
ckZ1bmN0aW9uKGZ1bmN0aW9uKSArICdDb2RlJywKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgbGluZXMuYXBwZW5kKCIgICAgbWFjcm8oJShjb2RlTmFtZSlzLCAlKGZ1bmNOYW1lKXMsIHNf
JShjb2RlTmFtZSlzTGVuZ3RoKSBcXCIgJSBmdW5jdGlvbl9hcmdzKQorICAgICAgICByZXR1cm4g
J1xuJy5qb2luKGxpbmVzKQorCisgICAgZGVmIGdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFt
ZV9tYWNybyhzZWxmKToKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICdtYWNyb1ByZWZp
eCc6IHNlbGYubWFjcm9fcHJlZml4KCksCisgICAgICAgICAgICAnb2JqZWN0TWFjcm8nOiBzZWxm
Lm9iamVjdC5vYmplY3RfbmFtZS5yZXBsYWNlKCcuJywgJ18nKS51cHBlcigpLAorICAgICAgICB9
CisKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUgJSht
YWNyb1ByZWZpeClzX0ZPUkVBQ0hfJShvYmplY3RNYWNybylzX0JVSUxUSU5fRlVOQ1RJT05fTkFN
RShtYWNybykgXFwiICUgYXJncykKKyAgICAgICAgdW5pcXVlX25hbWVzID0gbGlzdChzZXQoW2Z1
bmN0aW9uLmZ1bmN0aW9uX25hbWUgZm9yIGZ1bmN0aW9uIGluIHNlbGYub2JqZWN0LmZ1bmN0aW9u
c10pKQorICAgICAgICB1bmlxdWVfbmFtZXMuc29ydCgpCisgICAgICAgIGZvciBmdW5jdGlvbl9u
YW1lIGluIHVuaXF1ZV9uYW1lczoKKyAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7CisgICAg
ICAgICAgICAgICAgJ2Z1bmNOYW1lJzogZnVuY3Rpb25fbmFtZSwKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgbWFjcm8oJShmdW5jTmFtZSlzKSBcXCIgJSBm
dW5jdGlvbl9hcmdzKQorICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGxpbmVzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJh
dGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1Njcmlw
dHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZhYzM2NWQwYjgyZjEwZmIxZTJlNDg1MWI4ODA3MDcxZGVjMmM2YmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWls
dGluc19nZW5lcmF0ZV9vYmplY3RfaW1wbGVtZW50YXRpb24ucHkKQEAgLTAsMCArMSwxMDYgQEAK
KyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVy
c2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCitp
bXBvcnQgc3RyaW5nCitmcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKKworZnJvbSBidWlsdGlu
c19nZW5lcmF0b3IgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yLCBXS19sY2ZpcnN0Citmcm9tIGJ1
aWx0aW5zX21vZGVsIGltcG9ydCBGcmFtZXdvcmssIEZyYW1ld29ya3MKK2Zyb20gYnVpbHRpbnNf
dGVtcGxhdGVzIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvclRlbXBsYXRlcyBhcyBUZW1wbGF0ZXMK
KworbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2dsb2JhbCcpCisKKworY2xhc3MgQnVpbHRpbnNP
YmplY3RJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihCdWlsdGluc0dlbmVyYXRvcik6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG1vZGVsLCBvYmplY3QpOgorICAgICAgICBCdWlsdGluc0dlbmVyYXRv
ci5fX2luaXRfXyhzZWxmLCBtb2RlbCkKKyAgICAgICAgc2VsZi5vYmplY3QgPSBvYmplY3QKKwor
ICAgIGRlZiBvdXRwdXRfZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAiJXNCdWlsdGlu
cy5jcHAiICUgQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JPYmplY3Qoc2VsZi5vYmpl
Y3QpCisKKyAgICBkZWYgbWFjcm9fcHJlZml4KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5t
b2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKQorCisgICAgZGVmIGdlbmVy
YXRlX291dHB1dChzZWxmKToKKyAgICAgICAgYXJncyA9IHsKKyAgICAgICAgICAgICduYW1lc3Bh
Y2UnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ25hbWVzcGFjZScpLAorICAgICAg
ICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tYWNyb19wcmVmaXgoKSwKKyAgICAgICAgICAgICdv
YmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAnXycpLnVw
cGVyKCksCisgICAgICAgICAgICAnb2JqZWN0TmFtZUxDJzogV0tfbGNmaXJzdChzZWxmLm9iamVj
dC5vYmplY3RfbmFtZSksCisgICAgICAgIH0KKworICAgICAgICBjb25kaXRpb25hbF9ndWFyZCA9
IHNlbGYub2JqZWN0LmFubm90YXRpb25zLmdldCgnY29uZGl0aW9uYWwnKQorCisgICAgICAgIHNl
Y3Rpb25zID0gW10KKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGljZW5z
ZSgpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90RWRp
dFdhcm5pbmcpLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxm
LmdlbmVyYXRlX3ByaW1hcnlfaGVhZGVyX2luY2x1ZGVzKCkpCisgICAgICAgIGlmIGNvbmRpdGlv
bmFsX2d1YXJkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKCIjaWYg
JXMiICUgY29uZGl0aW9uYWxfZ3VhcmQpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChzZWxmLmdl
bmVyYXRlX3NlY29uZGFyeV9oZWFkZXJfaW5jbHVkZXMoKSkKKyAgICAgICAgc2VjdGlvbnMuYXBw
ZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VUb3ApLnN1YnN0aXR1dGUoYXJncykpCisg
ICAgICAgIGZvciBmdW5jdGlvbiBpbiBzZWxmLm9iamVjdC5mdW5jdGlvbnM6CisgICAgICAgICAg
ICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9lbWJlZGRlZF9jb2RlX3N0cmluZ19zZWN0
aW9uX2Zvcl9mdW5jdGlvbihmdW5jdGlvbikpCisgICAgICAgIGlmIHNlbGYubW9kZWwoKS5mcmFt
ZXdvcmsgaXMgRnJhbWV3b3Jrcy5KYXZhU2NyaXB0Q29yZToKKyAgICAgICAgICAgIHNlY3Rpb25z
LmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuT2JqZWN0SlNDSW1wbGVtZW50YXRpb25TdGF0aWNN
YWNyb3MpLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIGVsaWYgc2VsZi5tb2RlbCgpLmZyYW1l
d29yayBpcyBGcmFtZXdvcmtzLldlYkNvcmU6CisgICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
VGVtcGxhdGUoVGVtcGxhdGVzLk9iamVjdFdlYkNvcmVJbXBsZW1lbnRhdGlvblN0YXRpY01hY3Jv
cykuc3Vic3RpdHV0ZShhcmdzKSkKKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRl
bXBsYXRlcy5OYW1lc3BhY2VCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIGlmIGNv
bmRpdGlvbmFsX2d1YXJkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5k
KCIjZW5kaWYgLy8gJXNcbiIgJSBjb25kaXRpb25hbF9ndWFyZCkKKworICAgICAgICByZXR1cm4g
IlxuXG4iLmpvaW4oc2VjdGlvbnMpCisKKyAgICBkZWYgZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRl
cl9pbmNsdWRlcyhzZWxmKToKKyAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWworICAgICAgICAg
ICAgKFsiSmF2YVNjcmlwdENvcmUiXSwKKyAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3Jl
IiwgImJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oIiksCisgICAgICAgICAgICApLAorICAg
ICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAg
ICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9FeGVjdXRhYmxlLmgiKSwKKyAgICAgICAgICAg
ICksCisgICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCisgICAgICAg
ICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0pTQ2VsbElubGluZXMuaCIpLAor
ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIChbIldlYkNvcmUiXSwKKyAgICAgICAgICAgICAg
ICAoIkphdmFTY3JpcHRDb3JlIiwgInJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIiksCisgICAg
ICAgICAgICApLAorICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgi
SmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIiksCisgICAgICAg
ICAgICApLAorICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAorICAg
ICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9WTS5oIiksCisgICAgICAg
ICAgICApLAorICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgiV2Vi
Q29yZSIsICJiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgiKSwKKyAgICAgICAgICAg
ICksCisgICAgICAgIF0KKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2VuZXJhdGVf
aW5jbHVkZXNfZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9vYmpl
Y3Rfd3JhcHBlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1
aWx0aW5zX2dlbmVyYXRlX29iamVjdF93cmFwcGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjYTQwZDRkZjE5
NjQ3NGU3NzViZWM1MDEwZGQ2MGUyMTM1NzkzNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9vYmplY3Rf
d3JhcHBlci5weQpAQCAtMCwwICsxLDEwMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisj
IENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoYykgMjAxNCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisK
K2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgcmUKK2ltcG9ydCBzdHJpbmcKK2Zyb20gc3RyaW5nIGlt
cG9ydCBUZW1wbGF0ZQorCitmcm9tIGJ1aWx0aW5zX2dlbmVyYXRvciBpbXBvcnQgQnVpbHRpbnNH
ZW5lcmF0b3IKK2Zyb20gYnVpbHRpbnNfdGVtcGxhdGVzIGltcG9ydCBCdWlsdGluc0dlbmVyYXRv
clRlbXBsYXRlcyBhcyBUZW1wbGF0ZXMKKworbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2dsb2Jh
bCcpCisKKworY2xhc3MgQnVpbHRpbnNPYmplY3RXcmFwcGVyR2VuZXJhdG9yKEJ1aWx0aW5zR2Vu
ZXJhdG9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIG9iamVjdCk6CisgICAgICAg
IEJ1aWx0aW5zR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsKQorICAgICAgICBzZWxmLm9i
amVjdCA9IG9iamVjdAorCisgICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKKyAgICAgICAg
cmV0dXJuICIlc0J1aWx0aW5zV3JhcHBlci5oIiAlIEJ1aWx0aW5zR2VuZXJhdG9yLm1hbmdsZWRO
YW1lRm9yT2JqZWN0KHNlbGYub2JqZWN0KQorCisgICAgZGVmIG1hY3JvX3ByZWZpeChzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbWFjcm9fcHJl
Zml4JykKKworICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6CisgICAgICAgIGFyZ3MgPSB7
CisgICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5n
KCduYW1lc3BhY2UnKSwKKyAgICAgICAgICAgICdoZWFkZXJHdWFyZCc6IHNlbGYub3V0cHV0X2Zp
bGVuYW1lKCkucmVwbGFjZSgnLicsICdfJyksCisgICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBz
ZWxmLm1hY3JvX3ByZWZpeCgpLAorICAgICAgICAgICAgJ29iamVjdE5hbWUnOiBzZWxmLm9iamVj
dC5vYmplY3RfbmFtZSwKKyAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9i
amVjdF9uYW1lLnVwcGVyKCksCisgICAgICAgIH0KKworICAgICAgICBjb25kaXRpb25hbF9ndWFy
ZCA9IHNlbGYub2JqZWN0LmFubm90YXRpb25zLmdldCgnY29uZGl0aW9uYWwnKQorCisgICAgICAg
IHNlY3Rpb25zID0gW10KKyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGlj
ZW5zZSgpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90
RWRpdFdhcm5pbmcpLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChU
ZW1wbGF0ZShUZW1wbGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkVG9wKS5zdWJzdGl0dXRlKGFyZ3Mp
KQorICAgICAgICBpZiBjb25kaXRpb25hbF9ndWFyZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHNlY3Rpb25zLmFwcGVuZCgiI2lmICVzIiAlIGNvbmRpdGlvbmFsX2d1YXJkKQorICAgICAgICBz
ZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWNvbmRhcnlfaGVhZGVyX2luY2x1ZGVzKCkp
CisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNlVG9w
KS5zdWJzdGl0dXRlKGFyZ3MpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVt
cGxhdGVzLk9iamVjdFdyYXBwZXJIZWFkZXJCb2lsZXJwbGF0ZSkuc3Vic3RpdHV0ZShhcmdzKSkK
KyAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5OYW1lc3BhY2VCb3R0
b20pLnN1YnN0aXR1dGUoYXJncykpCisgICAgICAgIGlmIGNvbmRpdGlvbmFsX2d1YXJkIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKCIjZW5kaWYgLy8gJXMiICUgY29u
ZGl0aW9uYWxfZ3VhcmQpCisgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0
ZXMuSGVhZGVySW5jbHVkZUd1YXJkQm90dG9tKS5zdWJzdGl0dXRlKGFyZ3MpKQorCisgICAgICAg
IHJldHVybiAiXG5cbiIuam9pbihzZWN0aW9ucykKKworICAgIGRlZiBnZW5lcmF0ZV9zZWNvbmRh
cnlfaGVhZGVyX2luY2x1ZGVzKHNlbGYpOgorICAgICAgICBoZWFkZXJfaW5jbHVkZXMgPSBbCisg
ICAgICAgICAgICAoWyJXZWJDb3JlIl0sCisgICAgICAgICAgICAgICAgKCJXZWJDb3JlIiwgIiVz
QnVpbHRpbnMuaCIgJSBzZWxmLm9iamVjdC5vYmplY3RfbmFtZSksCisgICAgICAgICAgICApLAor
CisgICAgICAgICAgICAoWyJXZWJDb3JlIl0sCisgICAgICAgICAgICAgICAgKCJKYXZhU2NyaXB0
Q29yZSIsICJieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIiksCisgICAgICAg
ICAgICApLAorCisgICAgICAgICAgICAoWyJXZWJDb3JlIl0sCisgICAgICAgICAgICAgICAgKCJK
YXZhU2NyaXB0Q29yZSIsICJidWlsdGlucy9CdWlsdGluVXRpbHMuaCIpLAorICAgICAgICAgICAg
KSwKKworICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAorICAgICAgICAgICAgICAgICgiSmF2YVNj
cmlwdENvcmUiLCAicnVudGltZS9JZGVudGlmaWVyLmgiKSwKKyAgICAgICAgICAgICksCisKKyAg
ICAgICAgICAgIChbIldlYkNvcmUiXSwKKyAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3Jl
IiwgInJ1bnRpbWUvSlNGdW5jdGlvbi5oIiksCisgICAgICAgICAgICApLAorICAgICAgICBdCisK
KyAgICAgICAgcmV0dXJuICdcbicuam9pbihzZWxmLmdlbmVyYXRlX2luY2x1ZGVzX2Zyb21fZW50
cmllcyhoZWFkZXJfaW5jbHVkZXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfZ2VuZXJhdGVf
c2VwYXJhdGVfaGVhZGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODFhOWU1
YmFlODkwYmU5ZDRjYWFmYTQ4Y2U1ZjRiYjUxYzczNzhkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1
aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weQorKysgL2Rldi9udWxs
CkBAIC0xLDE4MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0
IChjKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJp
Z2h0IChjKSAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotaW1wb3J0IGxv
Z2dpbmcKLWltcG9ydCByZQotaW1wb3J0IHN0cmluZwotZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBs
YXRlCi0KLWZyb20gYnVpbHRpbnNfZ2VuZXJhdG9yIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvcgot
ZnJvbSBidWlsdGluc190ZW1wbGF0ZXMgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yVGVtcGxhdGVz
IGFzIFRlbXBsYXRlcwotCi1sb2cgPSBsb2dnaW5nLmdldExvZ2dlcignZ2xvYmFsJykKLQotCi1j
bGFzcyBCdWlsdGluc1NlcGFyYXRlSGVhZGVyR2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJhdG9yKToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIG9iamVjdCk6Ci0gICAgICAgIEJ1aWx0aW5z
R2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsKQotICAgICAgICBzZWxmLm9iamVjdCA9IG9i
amVjdAotCi0gICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuICIl
c0J1aWx0aW5zLmgiICUgQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JPYmplY3Qoc2Vs
Zi5vYmplY3QpCi0KLSAgICBkZWYgbWFjcm9fcHJlZml4KHNlbGYpOgotICAgICAgICByZXR1cm4g
c2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKQotCi0gICAgZGVm
IGdlbmVyYXRlX291dHB1dChzZWxmKToKLSAgICAgICAgYXJncyA9IHsKLSAgICAgICAgICAgICdu
YW1lc3BhY2UnOiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ25hbWVzcGFjZScpLAot
ICAgICAgICAgICAgJ2hlYWRlckd1YXJkJzogc2VsZi5vdXRwdXRfZmlsZW5hbWUoKS5yZXBsYWNl
KCcuJywgJ18nKSwKLSAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubWFjcm9fcHJlZml4
KCksCi0gICAgICAgICAgICAnb2JqZWN0TmFtZSc6IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnVw
cGVyKCksCi0gICAgICAgIH0KLQotICAgICAgICBjb25kaXRpb25hbF9ndWFyZCA9IHNlbGYub2Jq
ZWN0LmFubm90YXRpb25zLmdldCgnY29uZGl0aW9uYWwnKQotCi0gICAgICAgIHNlY3Rpb25zID0g
W10KLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJhdGVfbGljZW5zZSgpKQotICAg
ICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLkRvTm90RWRpdFdhcm5pbmcp
LnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1w
bGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkVG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBp
ZiBjb25kaXRpb25hbF9ndWFyZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlY3Rpb25zLmFw
cGVuZCgiI2lmICVzIiAlIGNvbmRpdGlvbmFsX2d1YXJkKQotICAgICAgICBzZWN0aW9ucy5hcHBl
bmQoc2VsZi5nZW5lcmF0ZV9zZWNvbmRhcnlfaGVhZGVyX2luY2x1ZGVzKCkpCi0gICAgICAgIHNl
Y3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX2ZvcndhcmRfZGVjbGFyYXRpb25zKCkpCi0gICAg
ICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuTmFtZXNwYWNlVG9wKS5zdWJz
dGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWN0
aW9uX2Zvcl9vYmplY3Qoc2VsZi5vYmplY3QpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2Vs
Zi5nZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX3RhYmxlX21hY3JvKCkpCi0gICAgICAgIHNlY3Rp
b25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX3NlY3Rpb25fZm9yX2NvZGVfbmFtZV9tYWNybygpKQot
ICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVzLlNlcGFyYXRlSGVhZGVy
U3RhdGljTWFjcm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
VGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLSAg
ICAgICAgaWYgY29uZGl0aW9uYWxfZ3VhcmQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWN0
aW9ucy5hcHBlbmQoIiNlbmRpZiAvLyAlcyIgJSBjb25kaXRpb25hbF9ndWFyZCkKLSAgICAgICAg
c2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRCb3R0
b20pLnN1YnN0aXR1dGUoYXJncykpCi0KLSAgICAgICAgcmV0dXJuICJcblxuIi5qb2luKHNlY3Rp
b25zKQotCi0gICAgZGVmIGdlbmVyYXRlX2ZvcndhcmRfZGVjbGFyYXRpb25zKHNlbGYpOgotICAg
ICAgICByZXR1cm4gIiIibmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7
Ci19IiIiCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcyhzZWxm
KToKLSAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWwotICAgICAgICAgICAgKFsiV2ViQ29yZSJd
LAotICAgICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAiYnVpbHRpbnMvQnVpbHRpblV0
aWxzLmgiKSwKLSAgICAgICAgICAgICksCi0gICAgICAgIF0KLQotICAgICAgICByZXR1cm4gJ1xu
Jy5qb2luKHNlbGYuZ2VuZXJhdGVfaW5jbHVkZXNfZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRl
cykpCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2VjdGlvbl9mb3Jfb2JqZWN0KHNlbGYsIG9iamVjdCk6
Ci0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgbGluZXMuYXBwZW5kKCcvKiAlcyAqLycgJSBv
YmplY3Qub2JqZWN0X25hbWUpCi0gICAgICAgIGxpbmVzLmV4dGVuZChzZWxmLmdlbmVyYXRlX2V4
dGVybnNfZm9yX29iamVjdChvYmplY3QpKQotICAgICAgICBsaW5lcy5hcHBlbmQoIiIpCi0gICAg
ICAgIGxpbmVzLmV4dGVuZChzZWxmLmdlbmVyYXRlX21hY3Jvc19mb3Jfb2JqZWN0KG9iamVjdCkp
Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgiIikKLSAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2Vu
ZXJhdGVfZGVmaW5lc19mb3Jfb2JqZWN0KG9iamVjdCkpCi0gICAgICAgIHJldHVybiAnXG4nLmpv
aW4obGluZXMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfZXh0ZXJuc19mb3Jfb2JqZWN0KHNlbGYsIG9i
amVjdCk6Ci0gICAgICAgIGxpbmVzID0gW10KLQotICAgICAgICBmb3IgZnVuY3Rpb24gaW4gb2Jq
ZWN0LmZ1bmN0aW9uczoKLSAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3MgPSB7Ci0gICAgICAgICAg
ICAgICAgJ2NvZGVOYW1lJzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlv
bihmdW5jdGlvbikgKyAnQ29kZScsCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxpbmVz
LmFwcGVuZCgiIiJleHRlcm4gY29uc3QgY2hhciogc18lKGNvZGVOYW1lKXM7Ci1leHRlcm4gY29u
c3QgaW50IHNfJShjb2RlTmFtZSlzTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0
QWJpbGl0eSBzXyUoY29kZU5hbWUpc0NvbnN0cnVjdEFiaWxpdHk7IiIiICUgZnVuY3Rpb25fYXJn
cykKLQotICAgICAgICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBnZW5lcmF0ZV9tYWNyb3NfZm9y
X29iamVjdChzZWxmLCBvYmplY3QpOgotICAgICAgICBhcmdzID0gewotICAgICAgICAgICAgJ21h
Y3JvUHJlZml4Jzogc2VsZi5tYWNyb19wcmVmaXgoKSwKLSAgICAgICAgICAgICdvYmplY3RNYWNy
byc6IG9iamVjdC5vYmplY3RfbmFtZS5yZXBsYWNlKCcuJywgJ18nKS51cHBlcigpLAotICAgICAg
ICB9Ci0KLSAgICAgICAgbGluZXMgPSBbXQotICAgICAgICBsaW5lcy5hcHBlbmQoIiNkZWZpbmUg
JShtYWNyb1ByZWZpeClzX0ZPUkVBQ0hfJShvYmplY3RNYWNybylzX0JVSUxUSU5fREFUQShtYWNy
bykgXFwiICUgYXJncykKLSAgICAgICAgZm9yIGZ1bmN0aW9uIGluIG9iamVjdC5mdW5jdGlvbnM6
Ci0gICAgICAgICAgICBmdW5jdGlvbl9hcmdzID0gewotICAgICAgICAgICAgICAgICdmdW5jTmFt
ZSc6IGZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUsCi0gICAgICAgICAgICAgICAgJ21hbmdsZWROYW1l
JzogQnVpbHRpbnNHZW5lcmF0b3IubWFuZ2xlZE5hbWVGb3JGdW5jdGlvbihmdW5jdGlvbiksCi0g
ICAgICAgICAgICAgICAgJ3BhcmFtQ291bnQnOiBsZW4oZnVuY3Rpb24ucGFyYW1ldGVycyksCi0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgIG1hY3JvKCUoZnVu
Y05hbWUpcywgJShtYW5nbGVkTmFtZSlzLCAlKHBhcmFtQ291bnQpZCkgXFwiICUgZnVuY3Rpb25f
YXJncykKLSAgICAgICAgcmV0dXJuIGxpbmVzCi0KLSAgICBkZWYgZ2VuZXJhdGVfZGVmaW5lc19m
b3Jfb2JqZWN0KHNlbGYsIG9iamVjdCk6Ci0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgZm9y
IGZ1bmN0aW9uIGluIG9iamVjdC5mdW5jdGlvbnM6Ci0gICAgICAgICAgICBhcmdzID0gewotICAg
ICAgICAgICAgICAgICdtYWNyb1ByZWZpeCc6IHNlbGYubWFjcm9fcHJlZml4KCksCi0gICAgICAg
ICAgICAgICAgJ29iamVjdE1hY3JvJzogb2JqZWN0Lm9iamVjdF9uYW1lLnJlcGxhY2UoJy4nLCAn
XycpLnVwcGVyKCksCi0gICAgICAgICAgICAgICAgJ2Z1bmN0aW9uTWFjcm8nOiBmdW5jdGlvbi5m
dW5jdGlvbl9uYW1lLnVwcGVyKCksCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBsaW5lcy5h
cHBlbmQoIiNkZWZpbmUgJShtYWNyb1ByZWZpeClzX0JVSUxUSU5fJShvYmplY3RNYWNybylzXyUo
ZnVuY3Rpb25NYWNybylzIDEiICUgYXJncykKLQotICAgICAgICByZXR1cm4gbGluZXMKLQotICAg
IGRlZiBnZW5lcmF0ZV9zZWN0aW9uX2Zvcl9jb2RlX3RhYmxlX21hY3JvKHNlbGYpOgotICAgICAg
ICBhcmdzID0gewotICAgICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tb2RlbCgpLmZyYW1l
d29yay5zZXR0aW5nKCdtYWNyb19wcmVmaXgnKSwKLSAgICAgICAgICAgICdvYmplY3RNYWNybyc6
IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnVwcGVyKCksCi0gICAgICAgIH0KLQotICAgICAgICBs
aW5lcyA9IFtdCi0gICAgICAgIGxpbmVzLmFwcGVuZCgiI2RlZmluZSAlKG1hY3JvUHJlZml4KXNf
Rk9SRUFDSF8lKG9iamVjdE1hY3JvKXNfQlVJTFRJTl9DT0RFKG1hY3JvKSBcXCIgJSBhcmdzKQot
ICAgICAgICBmb3IgZnVuY3Rpb24gaW4gc2VsZi5vYmplY3QuZnVuY3Rpb25zOgotICAgICAgICAg
ICAgZnVuY3Rpb25fYXJncyA9IHsKLSAgICAgICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlv
bi5mdW5jdGlvbl9uYW1lLAotICAgICAgICAgICAgICAgICdjb2RlTmFtZSc6IEJ1aWx0aW5zR2Vu
ZXJhdG9yLm1hbmdsZWROYW1lRm9yRnVuY3Rpb24oZnVuY3Rpb24pICsgJ0NvZGUnLAotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGNvZGVOYW1l
KXMsICUoZnVuY05hbWUpcywgc18lKGNvZGVOYW1lKXNMZW5ndGgpIFxcIiAlIGZ1bmN0aW9uX2Fy
Z3MpCi0gICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCi0KLSAgICBkZWYgZ2VuZXJhdGVf
c2VjdGlvbl9mb3JfY29kZV9uYW1lX21hY3JvKHNlbGYpOgotICAgICAgICBhcmdzID0gewotICAg
ICAgICAgICAgJ21hY3JvUHJlZml4Jzogc2VsZi5tYWNyb19wcmVmaXgoKSwKLSAgICAgICAgICAg
ICdvYmplY3RNYWNybyc6IHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lLnVwcGVyKCksCi0gICAgICAg
IH0KLQotICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgIGxpbmVzLmFwcGVuZCgiI2RlZmluZSAl
KG1hY3JvUHJlZml4KXNfRk9SRUFDSF8lKG9iamVjdE1hY3JvKXNfQlVJTFRJTl9GVU5DVElPTl9O
QU1FKG1hY3JvKSBcXCIgJSBhcmdzKQotICAgICAgICB1bmlxdWVfbmFtZXMgPSBsaXN0KHNldChb
ZnVuY3Rpb24uZnVuY3Rpb25fbmFtZSBmb3IgZnVuY3Rpb24gaW4gc2VsZi5vYmplY3QuZnVuY3Rp
b25zXSkpCi0gICAgICAgIHVuaXF1ZV9uYW1lcy5zb3J0KCkKLSAgICAgICAgZm9yIGZ1bmN0aW9u
X25hbWUgaW4gdW5pcXVlX25hbWVzOgotICAgICAgICAgICAgZnVuY3Rpb25fYXJncyA9IHsKLSAg
ICAgICAgICAgICAgICAnZnVuY05hbWUnOiBmdW5jdGlvbl9uYW1lLAotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICBtYWNybyglKGZ1bmNOYW1lKXMpIFxcIiAl
IGZ1bmN0aW9uX2FyZ3MpCi0gICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5l
cmF0ZV9zZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9u
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDQzOTc1ZGFkZjFiMzdhNjNjMThm
ZWVmNTVhODU1MzgyZjQxZDk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5z
X2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVudGF0aW9uLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTA2ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIw
MTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKGMp
IDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IHJlCi1pbXBvcnQgc3RyaW5nCi1mcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKLQot
ZnJvbSBidWlsdGluc19nZW5lcmF0b3IgaW1wb3J0IEJ1aWx0aW5zR2VuZXJhdG9yLCBXS19sY2Zp
cnN0Ci1mcm9tIGJ1aWx0aW5zX21vZGVsIGltcG9ydCBGcmFtZXdvcmssIEZyYW1ld29ya3MKLWZy
b20gYnVpbHRpbnNfdGVtcGxhdGVzIGltcG9ydCBCdWlsdGluc0dlbmVyYXRvclRlbXBsYXRlcyBh
cyBUZW1wbGF0ZXMKLQotbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2dsb2JhbCcpCi0KLQotY2xh
c3MgQnVpbHRpbnNTZXBhcmF0ZUltcGxlbWVudGF0aW9uR2VuZXJhdG9yKEJ1aWx0aW5zR2VuZXJh
dG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIG9iamVjdCk6Ci0gICAgICAgIEJ1
aWx0aW5zR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsKQotICAgICAgICBzZWxmLm9iamVj
dCA9IG9iamVjdAotCi0gICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxmKToKLSAgICAgICAgcmV0
dXJuICIlc0J1aWx0aW5zLmNwcCIgJSBCdWlsdGluc0dlbmVyYXRvci5tYW5nbGVkTmFtZUZvck9i
amVjdChzZWxmLm9iamVjdCkKLQotICAgIGRlZiBtYWNyb19wcmVmaXgoc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLnNldHRpbmcoJ21hY3JvX3ByZWZpeCcpCi0K
LSAgICBkZWYgZ2VuZXJhdGVfb3V0cHV0KHNlbGYpOgotICAgICAgICBhcmdzID0gewotICAgICAg
ICAgICAgJ25hbWVzcGFjZSc6IHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGluZygnbmFtZXNw
YWNlJyksCi0gICAgICAgICAgICAnbWFjcm9QcmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgpLAot
ICAgICAgICAgICAgJ29iamVjdE1hY3JvJzogc2VsZi5vYmplY3Qub2JqZWN0X25hbWUudXBwZXIo
KSwKLSAgICAgICAgICAgICdvYmplY3ROYW1lTEMnOiBXS19sY2ZpcnN0KHNlbGYub2JqZWN0Lm9i
amVjdF9uYW1lKSwKLSAgICAgICAgfQotCi0gICAgICAgIGNvbmRpdGlvbmFsX2d1YXJkID0gc2Vs
Zi5vYmplY3QuYW5ub3RhdGlvbnMuZ2V0KCdjb25kaXRpb25hbCcpCi0KLSAgICAgICAgc2VjdGlv
bnMgPSBbXQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNlKCkp
Ci0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuRG9Ob3RFZGl0V2Fy
bmluZykuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2Vu
ZXJhdGVfcHJpbWFyeV9oZWFkZXJfaW5jbHVkZXMoKSkKLSAgICAgICAgaWYgY29uZGl0aW9uYWxf
Z3VhcmQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoIiNpZiAlcyIg
JSBjb25kaXRpb25hbF9ndWFyZCkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYuZ2VuZXJh
dGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcygpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
VGVtcGxhdGUoVGVtcGxhdGVzLk5hbWVzcGFjZVRvcCkuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAg
ICAgZm9yIGZ1bmN0aW9uIGluIHNlbGYub2JqZWN0LmZ1bmN0aW9uczoKLSAgICAgICAgICAgIHNl
Y3Rpb25zLmFwcGVuZChzZWxmLmdlbmVyYXRlX2VtYmVkZGVkX2NvZGVfc3RyaW5nX3NlY3Rpb25f
Zm9yX2Z1bmN0aW9uKGZ1bmN0aW9uKSkKLSAgICAgICAgaWYgc2VsZi5tb2RlbCgpLmZyYW1ld29y
ayBpcyBGcmFtZXdvcmtzLkphdmFTY3JpcHRDb3JlOgotICAgICAgICAgICAgc2VjdGlvbnMuYXBw
ZW5kKFRlbXBsYXRlKFRlbXBsYXRlcy5TZXBhcmF0ZUpTQ0ltcGxlbWVudGF0aW9uU3RhdGljTWFj
cm9zKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBlbGlmIHNlbGYubW9kZWwoKS5mcmFtZXdv
cmsgaXMgRnJhbWV3b3Jrcy5XZWJDb3JlOgotICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRl
bXBsYXRlKFRlbXBsYXRlcy5TZXBhcmF0ZVdlYkNvcmVJbXBsZW1lbnRhdGlvblN0YXRpY01hY3Jv
cykuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRlbXBsYXRlKFRl
bXBsYXRlcy5OYW1lc3BhY2VCb3R0b20pLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIGlmIGNv
bmRpdGlvbmFsX2d1YXJkIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VjdGlvbnMuYXBwZW5k
KCIjZW5kaWYgLy8gJXNcbiIgJSBjb25kaXRpb25hbF9ndWFyZCkKLQotICAgICAgICByZXR1cm4g
IlxuXG4iLmpvaW4oc2VjdGlvbnMpCi0KLSAgICBkZWYgZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRl
cl9pbmNsdWRlcyhzZWxmKToKLSAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0gWwotICAgICAgICAg
ICAgKFsiSmF2YVNjcmlwdENvcmUiXSwKLSAgICAgICAgICAgICAgICAoIkphdmFTY3JpcHRDb3Jl
IiwgImJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oIiksCi0gICAgICAgICAgICApLAotICAg
ICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAg
ICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9FeGVjdXRhYmxlLmgiKSwKLSAgICAgICAgICAg
ICksCi0gICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJDb3JlIl0sCi0gICAgICAg
ICAgICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0pTQ2VsbElubGluZXMuaCIpLAot
ICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAg
ICAoIkphdmFTY3JpcHRDb3JlIiwgInJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oIiksCi0gICAg
ICAgICAgICApLAotICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgi
SmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIiksCi0gICAgICAg
ICAgICApLAotICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSJdLAotICAg
ICAgICAgICAgICAgICgiSmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9WTS5oIiksCi0gICAgICAg
ICAgICApLAotICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgiV2Vi
Q29yZSIsICJiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgiKSwKLSAgICAgICAgICAg
ICksCi0gICAgICAgIF0KLQotICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2VuZXJhdGVf
aW5jbHVkZXNfZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBh
cmF0ZV93cmFwcGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMv
YnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBlci5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzJiYzMzNjRjMGVmZjBiYjk5N2I2NTRiZDBkOTY5N2ZkZDBjMjEyMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV93cmFw
cGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5
dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKGMpIDIwMTQgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFy
ZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0j
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IHJlCi1pbXBvcnQgc3RyaW5nCi1mcm9t
IHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKLQotZnJvbSBidWlsdGluc19nZW5lcmF0b3IgaW1wb3J0
IEJ1aWx0aW5zR2VuZXJhdG9yCi1mcm9tIGJ1aWx0aW5zX3RlbXBsYXRlcyBpbXBvcnQgQnVpbHRp
bnNHZW5lcmF0b3JUZW1wbGF0ZXMgYXMgVGVtcGxhdGVzCi0KLWxvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKCdnbG9iYWwnKQotCi0KLWNsYXNzIEJ1aWx0aW5zU2VwYXJhdGVXcmFwcGVyR2VuZXJhdG9y
KEJ1aWx0aW5zR2VuZXJhdG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZWwsIG9iamVj
dCk6Ci0gICAgICAgIEJ1aWx0aW5zR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYsIG1vZGVsKQotICAg
ICAgICBzZWxmLm9iamVjdCA9IG9iamVjdAotCi0gICAgZGVmIG91dHB1dF9maWxlbmFtZShzZWxm
KToKLSAgICAgICAgcmV0dXJuICIlc0J1aWx0aW5zV3JhcHBlci5oIiAlIEJ1aWx0aW5zR2VuZXJh
dG9yLm1hbmdsZWROYW1lRm9yT2JqZWN0KHNlbGYub2JqZWN0KQotCi0gICAgZGVmIG1hY3JvX3By
ZWZpeChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwoKS5mcmFtZXdvcmsuc2V0dGlu
ZygnbWFjcm9fcHJlZml4JykKLQotICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6Ci0gICAg
ICAgIGFyZ3MgPSB7Ci0gICAgICAgICAgICAnbmFtZXNwYWNlJzogc2VsZi5tb2RlbCgpLmZyYW1l
d29yay5zZXR0aW5nKCduYW1lc3BhY2UnKSwKLSAgICAgICAgICAgICdoZWFkZXJHdWFyZCc6IHNl
bGYub3V0cHV0X2ZpbGVuYW1lKCkucmVwbGFjZSgnLicsICdfJyksCi0gICAgICAgICAgICAnbWFj
cm9QcmVmaXgnOiBzZWxmLm1hY3JvX3ByZWZpeCgpLAotICAgICAgICAgICAgJ29iamVjdE5hbWUn
OiBzZWxmLm9iamVjdC5vYmplY3RfbmFtZSwKLSAgICAgICAgICAgICdvYmplY3RNYWNybyc6IHNl
bGYub2JqZWN0Lm9iamVjdF9uYW1lLnVwcGVyKCksCi0gICAgICAgIH0KLQotICAgICAgICBjb25k
aXRpb25hbF9ndWFyZCA9IHNlbGYub2JqZWN0LmFubm90YXRpb25zLmdldCgnY29uZGl0aW9uYWwn
KQotCi0gICAgICAgIHNlY3Rpb25zID0gW10KLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKHNlbGYu
Z2VuZXJhdGVfbGljZW5zZSgpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVt
cGxhdGVzLkRvTm90RWRpdFdhcm5pbmcpLnN1YnN0aXR1dGUoYXJncykpCi0gICAgICAgIHNlY3Rp
b25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMuSGVhZGVySW5jbHVkZUd1YXJkVG9wKS5zdWJz
dGl0dXRlKGFyZ3MpKQotICAgICAgICBpZiBjb25kaXRpb25hbF9ndWFyZCBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHNlY3Rpb25zLmFwcGVuZCgiI2lmICVzIiAlIGNvbmRpdGlvbmFsX2d1YXJk
KQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9zZWNvbmRhcnlfaGVhZGVy
X2luY2x1ZGVzKCkpCi0gICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShUZW1wbGF0ZXMu
TmFtZXNwYWNlVG9wKS5zdWJzdGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
VGVtcGxhdGUoVGVtcGxhdGVzLlNlcGFyYXRlV3JhcHBlckhlYWRlckJvaWxlcnBsYXRlKS5zdWJz
dGl0dXRlKGFyZ3MpKQotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoVGVtcGxhdGVz
Lk5hbWVzcGFjZUJvdHRvbSkuc3Vic3RpdHV0ZShhcmdzKSkKLSAgICAgICAgaWYgY29uZGl0aW9u
YWxfZ3VhcmQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWN0aW9ucy5hcHBlbmQoIiNlbmRp
ZiAvLyAlcyIgJSBjb25kaXRpb25hbF9ndWFyZCkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5kKFRl
bXBsYXRlKFRlbXBsYXRlcy5IZWFkZXJJbmNsdWRlR3VhcmRCb3R0b20pLnN1YnN0aXR1dGUoYXJn
cykpCi0KLSAgICAgICAgcmV0dXJuICJcblxuIi5qb2luKHNlY3Rpb25zKQotCi0gICAgZGVmIGdl
bmVyYXRlX3NlY29uZGFyeV9oZWFkZXJfaW5jbHVkZXMoc2VsZik6Ci0gICAgICAgIGhlYWRlcl9p
bmNsdWRlcyA9IFsKLSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAgICAo
IldlYkNvcmUiLCAiJXNCdWlsdGlucy5oIiAlIHNlbGYub2JqZWN0Lm9iamVjdF9uYW1lKSwKLSAg
ICAgICAgICAgICksCi0KLSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAgICAgICAgICAg
ICAoIkphdmFTY3JpcHRDb3JlIiwgImJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
LmgiKSwKLSAgICAgICAgICAgICksCi0KLSAgICAgICAgICAgIChbIldlYkNvcmUiXSwKLSAgICAg
ICAgICAgICAgICAoIkphdmFTY3JpcHRDb3JlIiwgImJ1aWx0aW5zL0J1aWx0aW5VdGlscy5oIiks
Ci0gICAgICAgICAgICApLAotCi0gICAgICAgICAgICAoWyJXZWJDb3JlIl0sCi0gICAgICAgICAg
ICAgICAgKCJKYXZhU2NyaXB0Q29yZSIsICJydW50aW1lL0lkZW50aWZpZXIuaCIpLAotICAgICAg
ICAgICAgKSwKLQotICAgICAgICAgICAgKFsiV2ViQ29yZSJdLAotICAgICAgICAgICAgICAgICgi
SmF2YVNjcmlwdENvcmUiLCAicnVudGltZS9KU0Z1bmN0aW9uLmgiKSwKLSAgICAgICAgICAgICks
Ci0gICAgICAgIF0KLQotICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2VuZXJhdGVfaW5j
bHVkZXNfZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc190ZW1wbGF0ZXMucHkgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9idWlsdGlucy9idWlsdGluc190ZW1wbGF0ZXMu
cHkKaW5kZXggMjVlZGY2NTZlYTJjZWE0ZDBkNGYxZjY5MjVkMzRhOGUxMGFmM2Q4My4uM2VlMDQ1
NjYyNDk3YTkyNDYyYWE2NTU2NDVlNzA4NTY0ZmZjNzc3OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NjcmlwdHMvYnVpbHRpbnMvYnVpbHRpbnNfdGVtcGxhdGVzLnB5CisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2J1aWx0aW5zL2J1aWx0aW5zX3RlbXBsYXRl
cy5weQpAQCAtNzAsNyArNzAsNyBAQCBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
ICAgTmFtZXNwYWNlQm90dG9tID0gKAogICAgICIiIn0gLy8gbmFtZXNwYWNlICR7bmFtZXNwYWNl
fSIiIikKIAotICAgIENvbWJpbmVkSGVhZGVyU3RhdGljTWFjcm9zID0gKAorICAgIEZyYW1ld29y
a0hlYWRlckNvbW1vbk1hY3JvcyA9ICgKICAgICAiIiIjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9H
RU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKICAgICBK
U0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAK
QEAgLTc5LDI3ICs3OSwxNiBAQCAke21hY3JvUHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fQ09ERShE
RUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQogCiAjZGVmaW5lICR7bWFjcm9QcmVmaXh9X0JVSUxU
SU5fRVhJU1RTKG9iamVjdCwgZnVuYykgZGVmaW5lZCAke21hY3JvUHJlZml4fV9CVUlMVElOXyAj
IyBvYmplY3QgIyMgXyAjIyBmdW5jIiIiKQogCi0gICAgU2VwYXJhdGVIZWFkZXJTdGF0aWNNYWNy
b3MgPSAoCisgICAgT2JqZWN0SGVhZGVyU3RhdGljTWFjcm9zID0gKAogICAgICIiIiNkZWZpbmUg
REVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVu
dENvdW50KSBcXAogICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJh
dG9yKEpTQzo6Vk0mKTsKIAotJHttYWNyb1ByZWZpeH1fRk9SRUFDSF8ke29iamVjdE5hbWV9X0JV
SUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQorJHttYWNyb1ByZWZpeH1fRk9S
RUFDSF8ke29iamVjdE1hY3JvfV9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRP
UikKICN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCiAKLSNkZWZpbmUgJHttYWNyb1By
ZWZpeH1fQlVJTFRJTl8ke29iamVjdE5hbWV9X0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQg
JHttYWNyb1ByZWZpeH1fQlVJTFRJTl8gIyMgb2JqZWN0ICMjIF8gIyMgZnVuYyIiIikKKyNkZWZp
bmUgJHttYWNyb1ByZWZpeH1fQlVJTFRJTl8ke29iamVjdE1hY3JvfV9FWElTVFMob2JqZWN0LCBm
dW5jKSBkZWZpbmVkICR7bWFjcm9QcmVmaXh9X0JVSUxUSU5fICMjIG9iamVjdCAjIyBfICMjIGZ1
bmMiIiIpCiAKLSAgICBDb21iaW5lZEpTQ0ltcGxlbWVudGF0aW9uU3RhdGljTWFjcm9zID0gKAot
ICAgICIiIgotI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0
aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLUpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2Rl
TmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXAote1xcCi0gICAgcmV0dXJuIHZtLmJ1aWx0
aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWls
dGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgXAotfQotJHttYWNyb1ByZWZp
eH1fRk9SRUFDSF9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVm
IERFRklORV9CVUlMVElOX0dFTkVSQVRPUgotIiIiKQotCi0gICAgU2VwYXJhdGVKU0NJbXBsZW1l
bnRhdGlvblN0YXRpY01hY3JvcyA9ICgKKyAgICBPYmplY3RKU0NJbXBsZW1lbnRhdGlvblN0YXRp
Y01hY3JvcyA9ICgKICAgICAiIiIKICNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNv
ZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCiBKU0M6OkZ1bmN0aW9uRXhl
Y3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXFwKQEAgLTExMCwxOSAr
OTksNyBAQCAke21hY3JvUHJlZml4fV9GT1JFQUNIXyR7b2JqZWN0TWFjcm99X0JVSUxUSU5fQ09E
RShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJB
VE9SCiAiIiIpCiAKLSAgICBDb21iaW5lZFdlYkNvcmVJbXBsZW1lbnRhdGlvblN0YXRpY01hY3Jv
cyA9ICgKLSAgICAgICAgIiIiCi0jZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2Rl
TmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAotSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFxcCi17XFwKLSAgICBKU1ZN
Q2xpZW50RGF0YSogY2xpZW50RGF0YSA9IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0u
Y2xpZW50RGF0YSk7IFxcCi0gICAgcmV0dXJuIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMo
KS4ke29iamVjdE5hbWVMQ31CdWlsdGlucygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmso
dm0sIGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS4ke29iamVjdE5hbWVMQ31CdWlsdGlu
cygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFxcCi19Ci0ke21hY3JvUHJlZml4fV9GT1JFQUNIX0JV
SUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5kZWYgREVGSU5FX0JVSUxU
SU5fR0VORVJBVE9SCi0iIiIpCi0KLSAgICBTZXBhcmF0ZVdlYkNvcmVJbXBsZW1lbnRhdGlvblN0
YXRpY01hY3JvcyA9ICgKKyAgICBPYmplY3RXZWJDb3JlSW1wbGVtZW50YXRpb25TdGF0aWNNYWNy
b3MgPSAoCiAgICAgICAgICIiIgogI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29k
ZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKIEpTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXApAQCAtMTM0LDcgKzEx
MSw3IEBAICR7bWFjcm9QcmVmaXh9X0ZPUkVBQ0hfJHtvYmplY3RNYWNyb31fQlVJTFRJTl9DT0RF
KERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFU
T1IKICIiIikKIAotICAgIFNlcGFyYXRlV3JhcHBlckhlYWRlckJvaWxlcnBsYXRlID0gKAorICAg
IE9iamVjdFdyYXBwZXJIZWFkZXJCb2lsZXJwbGF0ZSA9ICgKICAgICAiIiJjbGFzcyAke29iamVj
dE5hbWV9QnVpbHRpbnNXcmFwcGVyIDogcHJpdmF0ZSBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBw
dWJsaWM6CiAgICAgZXhwbGljaXQgJHtvYmplY3ROYW1lfUJ1aWx0aW5zV3JhcHBlcihKU0M6OlZN
KiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRl
LWpzLWJ1aWx0aW5zLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUt
anMtYnVpbHRpbnMucHkKaW5kZXggMDcwNzA5YjQ4MDgzODhlNjc4ZjNkYjIzODJmNDZhM2Q2MzMz
OTA2ZS4uODMzMTQ5ZGNlNmQxNzk2NTU1MDRjYzQxOGUxYzM1NmYzNzMyZDZiMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMu
cHkKQEAgLTQ0LDcgKzQ0LDcgQEAgZnJvbSBidWlsdGlucyBpbXBvcnQgKgogZGVmIGdlbmVyYXRl
X2JpbmRpbmdzX2Zvcl9idWlsdGluc19maWxlcyhidWlsdGluc19maWxlcz1bXSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X3BhdGg9Tm9uZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uY2F0ZW5hdGVfb3V0cHV0PUZh
bHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lZF9v
dXRwdXQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
Y3Jvc19vbmx5PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmcmFtZXdvcmtfbmFtZT0iIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yY2Vfb3V0cHV0PUZhbHNlKToKIApAQCAtNjQsMTggKzY0LDE3IEBAIGRlZiBnZW5l
cmF0ZV9iaW5kaW5nc19mb3JfYnVpbHRpbnNfZmlsZXMoYnVpbHRpbnNfZmlsZXM9W10sCiAgICAg
ICAgICAgICAgICAgZmlsZV9uYW1lID0gb2JqZWN0X25hbWUgKyAnLmpzJwogICAgICAgICAgICAg
bW9kZWwucGFyc2VfYnVpbHRpbnNfZmlsZShmaWxlX25hbWUsIGZpbGVfdGV4dCkKIAotICAgIGlm
IGNvbWJpbmVkX291dHB1dDoKLSAgICAgICAgbG9nLmRlYnVnKCJVc2luZyBnZW5lcmF0b3Igc3R5
bGU6IGNvbWJpbmVkIGZpbGVzIGZvciBhbGwgYnVpbHRpbnMuIikKLSAgICAgICAgZ2VuZXJhdG9y
cy5hcHBlbmQoQnVpbHRpbnNDb21iaW5lZEhlYWRlckdlbmVyYXRvcihtb2RlbCkpCi0gICAgICAg
IGdlbmVyYXRvcnMuYXBwZW5kKEJ1aWx0aW5zQ29tYmluZWRJbXBsZW1lbnRhdGlvbkdlbmVyYXRv
cihtb2RlbCkpCisgICAgaWYgbWFjcm9zX29ubHk6CisgICAgICAgIGxvZy5kZWJ1ZygiVXNpbmcg
Z2VuZXJhdG9yIHN0eWxlOiBjb21iaW5lZCBtYWNybyBkZWZpbml0aW9ucyBmb3IgYWxsIGJ1aWx0
aW5zLiIpCisgICAgICAgIGdlbmVyYXRvcnMuYXBwZW5kKEJ1aWx0aW5zRnJhbWV3b3JrTWFjcm9z
R2VuZXJhdG9yKG1vZGVsKSkKICAgICBlbHNlOgogICAgICAgICBsb2cuZGVidWcoIlVzaW5nIGdl
bmVyYXRvciBzdHlsZTogc2luZ2xlIGZpbGVzIGZvciBlYWNoIGJ1aWx0aW4uIikKICAgICAgICAg
Zm9yIG9iamVjdCBpbiBtb2RlbC5vYmplY3RzOgotICAgICAgICAgICAgZ2VuZXJhdG9ycy5hcHBl
bmQoQnVpbHRpbnNTZXBhcmF0ZUhlYWRlckdlbmVyYXRvcihtb2RlbCwgb2JqZWN0KSkKLSAgICAg
ICAgICAgIGdlbmVyYXRvcnMuYXBwZW5kKEJ1aWx0aW5zU2VwYXJhdGVJbXBsZW1lbnRhdGlvbkdl
bmVyYXRvcihtb2RlbCwgb2JqZWN0KSkKKyAgICAgICAgICAgIGdlbmVyYXRvcnMuYXBwZW5kKEJ1
aWx0aW5zT2JqZWN0SGVhZGVyR2VuZXJhdG9yKG1vZGVsLCBvYmplY3QpKQorICAgICAgICAgICAg
Z2VuZXJhdG9ycy5hcHBlbmQoQnVpbHRpbnNPYmplY3RJbXBsZW1lbnRhdGlvbkdlbmVyYXRvciht
b2RlbCwgb2JqZWN0KSkKIAogICAgICAgICAgICAgaWYgbW9kZWwuZnJhbWV3b3JrIGlzIEZyYW1l
d29ya3MuV2ViQ29yZToKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3JzLmFwcGVuZChCdWlsdGlu
c1NlcGFyYXRlV3JhcHBlckdlbmVyYXRvcihtb2RlbCwgb2JqZWN0KSkKKyAgICAgICAgICAgICAg
ICBnZW5lcmF0b3JzLmFwcGVuZChCdWlsdGluc09iamVjdFdyYXBwZXJHZW5lcmF0b3IobW9kZWws
IG9iamVjdCkpCiAKICAgICBsb2cuZGVidWcoIiIpCiAgICAgbG9nLmRlYnVnKCJHZW5lcmF0aW5n
IGJpbmRpbmdzIGZvciBidWlsdGlucy4iKQpAQCAtMTE2LDcgKzExNSw3IEBAIGlmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6CiAgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9uKCItbyIsICItLW91dHB1
dC1kaXJlY3RvcnkiLCBoZWxwPSJEaXJlY3Rvcnkgd2hlcmUgZ2VuZXJhdGVkIGZpbGVzIHNob3Vs
ZCBiZSB3cml0dGVuLiIpCiAgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9uKCItLWZyYW1ld29yayIs
IHR5cGU9ImNob2ljZSIsIGNob2ljZXM9YWxsb3dlZF9mcmFtZXdvcmtfbmFtZXMsIGhlbHA9IkRl
c3RpbmF0aW9uIGZyYW1ld29yayBmb3IgZ2VuZXJhdGVkIGZpbGVzLiIpCiAgICAgY2xpX3BhcnNl
ci5hZGRfb3B0aW9uKCItLWZvcmNlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iRm9yY2Ug
b3V0cHV0IG9mIGdlbmVyYXRlZCBzY3JpcHRzLCBldmVuIGlmIG5vdGhpbmcgY2hhbmdlZC4iKQot
ICAgIGNsaV9wYXJzZXIuYWRkX29wdGlvbigiLS1jb21iaW5lZCIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGhlbHA9IlByb2R1Y2Ugb25lIC5oLy5jcHAgZmlsZSBpbnN0ZWFkIG9mIHByb2R1Y2luZyBv
bmUgcGVyIGJ1aWx0aW4gb2JqZWN0LiIpCisgICAgY2xpX3BhcnNlci5hZGRfb3B0aW9uKCItLW1h
Y3Jvcy1vbmx5IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iUHJvZHVjZSBvbmUgLmggZmls
ZSB3aXRoIGl0ZXJhdGlvbiBtYWNyb3MgZm9yIGFsbCBidWlsdGluIG9iamVjdHMgaW4gdGhlIGZy
YW1ld29yay4iKQogICAgIGNsaV9wYXJzZXIuYWRkX29wdGlvbigiLXYiLCAiLS1kZWJ1ZyIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkxvZyBleHRyYSBvdXRwdXQgZm9yIGRlYnVnZ2luZyB0
aGUgZ2VuZXJhdG9yIGl0c2VsZi4iKQogICAgIGNsaV9wYXJzZXIuYWRkX29wdGlvbigiLXQiLCAi
LS10ZXN0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iRW5hYmxlIHRlc3QgbW9kZS4iKQog
CkBAIC0xNDAsNyArMTM5LDcgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBvcHRp
b25zID0gewogICAgICAgICAnb3V0cHV0X3BhdGgnOiBhcmdfb3B0aW9ucy5vdXRwdXRfZGlyZWN0
b3J5LAogICAgICAgICAnZnJhbWV3b3JrX25hbWUnOiBhcmdfb3B0aW9ucy5mcmFtZXdvcmssCi0g
ICAgICAgICdjb21iaW5lZF9vdXRwdXQnOiBhcmdfb3B0aW9ucy5jb21iaW5lZCwKKyAgICAgICAg
J21hY3Jvc19vbmx5JzogYXJnX29wdGlvbnMubWFjcm9zX29ubHksCiAgICAgICAgICdmb3JjZV9v
dXRwdXQnOiBhcmdfb3B0aW9ucy5mb3JjZSwKICAgICAgICAgJ2NvbmNhdGVuYXRlX291dHB1dCc6
IGFyZ19vcHRpb25zLnRlc3QsCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNl
LUNvbWJpbmVkLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiNDVkODFjZWI5ZWQ5MDY0MjU4NGZhMGJiNDU4ZGNmMGRiYWRj
M2EyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1
aWx0aW4uUHJvbWlzZS1Db21iaW5lZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPi4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotZnVu
Y3Rpb24gcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24pCi17Ci0gICAgInVzZSBzdHJpY3Qi
OwotCi0gICAgdmFyIHJlYWN0aW9ucyA9IHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnM7
Ci0gICAgcHJvbWlzZS5AcHJvbWlzZVJlc3VsdCA9IHJlYXNvbjsKLSAgICBwcm9taXNlLkBwcm9t
aXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKLSAgICBwcm9taXNlLkBwcm9taXNlUmVq
ZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOwotICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBw
cm9taXNlUmVqZWN0ZWQ7Ci0KLSAgICBASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLnByb21pc2VS
ZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0aW9ucyk7Ci0KLSAgICBAdHJpZ2dlclByb21p
c2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24pOwotfQotCi1mdW5jdGlvbiBmdWxmaWxsUHJv
bWlzZShwcm9taXNlLCB2YWx1ZSkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICB2YXIgcmVh
Y3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnM7Ci0gICAgcHJvbWlzZS5A
cHJvbWlzZVJlc3VsdCA9IHZhbHVlOwotICAgIHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rp
b25zID0gdW5kZWZpbmVkOwotICAgIHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1
bmRlZmluZWQ7Ci0gICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0gQHByb21pc2VGdWxmaWxsZWQ7
Ci0KLSAgICBASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLnByb21pc2VGdWxmaWxsZWQocHJvbWlz
ZSwgdmFsdWUsIHJlYWN0aW9ucyk7Ci0KLSAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVh
Y3Rpb25zLCB2YWx1ZSk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9z
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNj
cmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLU1hY3Jvcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDVkODFjZWI5
ZWQ5MDY0MjU4NGZhMGJiNDU4ZGNmMGRiYWRjM2EyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVp
bHRpbi5Qcm9taXNlLU1hY3Jvcy5qcwpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Z1bmN0aW9uIHJlamVjdFByb21p
c2UocHJvbWlzZSwgcmVhc29uKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIHZhciByZWFj
dGlvbnMgPSBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zOworICAgIHByb21pc2UuQHBy
b21pc2VSZXN1bHQgPSByZWFzb247CisgICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlv
bnMgPSB1bmRlZmluZWQ7CisgICAgcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVu
ZGVmaW5lZDsKKyAgICBwcm9taXNlLkBwcm9taXNlU3RhdGUgPSBAcHJvbWlzZVJlamVjdGVkOwor
CisgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9taXNlUmVqZWN0ZWQocHJvbWlzZSwg
cmVhc29uLCByZWFjdGlvbnMpOworCisgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0
aW9ucywgcmVhc29uKTsKK30KKworZnVuY3Rpb24gZnVsZmlsbFByb21pc2UocHJvbWlzZSwgdmFs
dWUpCit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgdmFyIHJlYWN0aW9ucyA9IHByb21pc2Uu
QHByb21pc2VGdWxmaWxsUmVhY3Rpb25zOworICAgIHByb21pc2UuQHByb21pc2VSZXN1bHQgPSB2
YWx1ZTsKKyAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsK
KyAgICBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOworICAgIHBy
b21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlRnVsZmlsbGVkOworCisgICAgQEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5wcm9taXNlRnVsZmlsbGVkKHByb21pc2UsIHZhbHVlLCByZWFjdGlv
bnMpOworCisgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpOwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtQ29tYmluZWQuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWls
dGluLnByb3RvdHlwZS1Db21iaW5lZC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTQ0OGI5ODMyYjY2YTRiZGYwZmUyYzRiZDg3MDEwZjYwYWQ3MmRmMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2Ny
aXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1Db21i
aW5lZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLQotZnVuY3Rpb24gZXZlcnko
Y2FsbGJhY2sgLyosIHRoaXNBcmcgKi8pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgaWYg
KHRoaXMgPT09IG51bGwpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90
b3R5cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwiKTsKLSAgICAKLSAg
ICBpZiAodGhpcyA9PT0gdW5kZWZpbmVkKQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigi
QXJyYXkucHJvdG90eXBlLmV2ZXJ5IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSB1bmRlZmlu
ZWQiKTsKLSAgICAKLSAgICB2YXIgYXJyYXkgPSBAT2JqZWN0KHRoaXMpOwotICAgIHZhciBsZW5n
dGggPSBAdG9MZW5ndGgoYXJyYXkubGVuZ3RoKTsKLQotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sg
IT09ICJmdW5jdGlvbiIpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5wcm90
b3R5cGUuZXZlcnkgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uIik7Ci0gICAgCi0gICAgdmFy
IHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5l
ZDsKLSAgICAKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
IGlmICghKGkgaW4gYXJyYXkpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICgh
Y2FsbGJhY2suQGNhbGwodGhpc0FyZywgYXJyYXlbaV0sIGksIGFycmF5KSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0
aW9uIGZvckVhY2goY2FsbGJhY2sgLyosIHRoaXNBcmcgKi8pCi17Ci0gICAgInVzZSBzdHJpY3Qi
OwotCi0gICAgaWYgKHRoaXMgPT09IG51bGwpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9y
KCJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVs
bCIpOwotICAgIAotICAgIGlmICh0aGlzID09PSB1bmRlZmluZWQpCi0gICAgICAgIHRocm93IG5l
dyBAVHlwZUVycm9yKCJBcnJheS5wcm90b3R5cGUuZm9yRWFjaCByZXF1aXJlcyB0aGF0IHx0aGlz
fCBub3QgYmUgdW5kZWZpbmVkIik7Ci0gICAgCi0gICAgdmFyIGFycmF5ID0gQE9iamVjdCh0aGlz
KTsKLSAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7Ci0KLSAgICBpZiAo
dHlwZW9mIGNhbGxiYWNrICE9PSAiZnVuY3Rpb24iKQotICAgICAgICB0aHJvdyBuZXcgQFR5cGVF
cnJvcigiQXJyYXkucHJvdG90eXBlLmZvckVhY2ggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9u
Iik7Ci0gICAgCi0gICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3Vt
ZW50c1sxXSA6IHVuZGVmaW5lZDsKLSAgICAKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgIGlmIChpIGluIGFycmF5KQotICAgICAgICAgICAgY2FsbGJhY2su
QGNhbGwodGhpc0FyZywgYXJyYXlbaV0sIGksIGFycmF5KTsKLSAgICB9Ci19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0
Q29yZS1CdWlsdGluLnByb3RvdHlwZS1NYWNyb3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1N
YWNyb3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ0OGI5ODMyYjY2YTRiZGYwZmUyYzRiZDg3MDEwZjYwYWQ3
MmRmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLU1hY3Jvcy5qcwpA
QCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBZdXN1a2UgU3V6
dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisKK2Z1bmN0aW9uIGV2ZXJ5KGNhbGxiYWNrIC8qLCB0aGlzQXJnICov
KQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICh0aGlzID09PSBudWxsKQorICAgICAg
ICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IHJlcXVpcmVzIHRo
YXQgfHRoaXN8IG5vdCBiZSBudWxsIik7CisgICAgCisgICAgaWYgKHRoaXMgPT09IHVuZGVmaW5l
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5ldmVyeSBy
ZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgdW5kZWZpbmVkIik7CisgICAgCisgICAgdmFyIGFy
cmF5ID0gQE9iamVjdCh0aGlzKTsKKyAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxl
bmd0aCk7CisKKyAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAiZnVuY3Rpb24iKQorICAgICAg
ICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmV2ZXJ5IGNhbGxiYWNrIG11
c3QgYmUgYSBmdW5jdGlvbiIpOworICAgIAorICAgIHZhciB0aGlzQXJnID0gYXJndW1lbnRzLmxl
bmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7CisgICAgCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoIShpIGluIGFycmF5KSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIWNhbGxiYWNrLkBjYWxsKHRoaXNBcmcs
IGFycmF5W2ldLCBpLCBhcnJheSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIAorICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrIC8q
LCB0aGlzQXJnICovKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICh0aGlzID09PSBu
dWxsKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLmZvckVh
Y2ggcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwiKTsKKyAgICAKKyAgICBpZiAodGhp
cyA9PT0gdW5kZWZpbmVkKQorICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXkucHJv
dG90eXBlLmZvckVhY2ggcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIHVuZGVmaW5lZCIpOwor
ICAgIAorICAgIHZhciBhcnJheSA9IEBPYmplY3QodGhpcyk7CisgICAgdmFyIGxlbmd0aCA9IEB0
b0xlbmd0aChhcnJheS5sZW5ndGgpOworCisgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gImZ1
bmN0aW9uIikKKyAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5m
b3JFYWNoIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbiIpOworICAgIAorICAgIHZhciB0aGlz
QXJnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7Cisg
ICAgCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBpZiAo
aSBpbiBhcnJheSkKKyAgICAgICAgICAgIGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIGFycmF5W2ld
LCBpLCBhcnJheSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9y
LUNvbWJpbmVkLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZThjMWI0NDk2Y2M1NDRmNDA3NzM5NTA0MmNmZDI0ZThh
Mzk0NjYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3Jl
LUJ1aWx0aW5Db25zdHJ1Y3Rvci1Db21iaW5lZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExMCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotZnVu
Y3Rpb24gb2YoLyogaXRlbXMuLi4gKi8pCi17Ci0gICAgInVzZSBzdHJpY3QiOwotCi0gICAgdmFy
IGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7Ci0gICAgLy8gVE9ETzogTmVlZCBpc0NvbnN0cnVj
dG9yKHRoaXMpIGluc3RlYWQgb2YgdHlwZW9mICJmdW5jdGlvbiIgY2hlY2suCi0gICAgdmFyIGFy
cmF5ID0gdHlwZW9mIHRoaXMgPT09ICdmdW5jdGlvbicgPyBuZXcgdGhpcyhsZW5ndGgpIDogbmV3
IEBBcnJheShsZW5ndGgpOwotICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spCi0g
ICAgICAgIEBwdXRCeVZhbERpcmVjdChhcnJheSwgaywgYXJndW1lbnRzW2tdKTsKLSAgICBhcnJh
eS5sZW5ndGggPSBsZW5ndGg7Ci0gICAgcmV0dXJuIGFycmF5OwotfQotCi1mdW5jdGlvbiBmcm9t
KGl0ZW1zIC8qLCBtYXBGbiwgdGhpc0FyZyAqLykKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAg
ICB2YXIgdGhpc09iaiA9IHRoaXM7Ci0KLSAgICB2YXIgbWFwRm4gPSBhcmd1bWVudHMubGVuZ3Ro
ID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDsKLQotICAgIHZhciB0aGlzQXJnOwotCi0g
ICAgaWYgKG1hcEZuICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBtYXBGbiAh
PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5m
cm9tIHJlcXVpcmVzIHRoYXQgdGhlIHNlY29uZCBhcmd1bWVudCwgd2hlbiBwcm92aWRlZCwgYmUg
YSBmdW5jdGlvbiIpOwotCi0gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikKLSAgICAg
ICAgICAgIHRoaXNBcmcgPSBhcmd1bWVudHNbMl07Ci0gICAgfQotCi0gICAgaWYgKGl0ZW1zID09
IG51bGwpCi0gICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5mcm9tIHJlcXVpcmVz
IGFuIGFycmF5LWxpa2Ugb2JqZWN0IC0gbm90IG51bGwgb3IgdW5kZWZpbmVkIik7Ci0KLSAgICB2
YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVtc1tAc3ltYm9sSXRlcmF0b3JdOwotICAgIGlmIChpdGVy
YXRvck1ldGhvZCAhPSBudWxsKSB7Ci0gICAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JNZXRob2Qg
IT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcigiQXJyYXku
ZnJvbSByZXF1aXJlcyB0aGF0IHRoZSBwcm9wZXJ0eSBvZiB0aGUgZmlyc3QgYXJndW1lbnQsIGl0
ZW1zW1N5bWJvbC5pdGVyYXRvcl0sIHdoZW4gZXhpc3RzLCBiZSBhIGZ1bmN0aW9uIik7Ci0KLSAg
ICAgICAgLy8gVE9ETzogTmVlZCBpc0NvbnN0cnVjdG9yKHRoaXNPYmopIGluc3RlYWQgb2YgdHlw
ZW9mICJmdW5jdGlvbiIgY2hlY2suCi0gICAgICAgIHZhciByZXN1bHQgPSAodHlwZW9mIHRoaXNP
YmogPT09ICJmdW5jdGlvbiIpID8gQE9iamVjdChuZXcgdGhpc09iaigpKSA6IFtdOwotCi0gICAg
ICAgIHZhciBrID0gMDsKLSAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuQGNh
bGwoaXRlbXMpOwotCi0gICAgICAgIC8vIFNpbmNlIGZvci1vZiBsb29wIG9uY2UgbW9yZSBsb29r
cyB1cCB0aGUgQEBpdGVyYXRvciBwcm9wZXJ0eSBvZiBhIGdpdmVuIGl0ZXJhYmxlLAotICAgICAg
ICAvLyBpdCBjb3VsZCBiZSBvYnNlcnZhYmxlIGlmIHRoZSB1c2VyIGRlZmluZXMgYSBnZXR0ZXIg
Zm9yIEBAaXRlcmF0b3IuCi0gICAgICAgIC8vIFRvIGF2b2lkIHRoaXMgc2l0dWF0aW9uLCB3ZSBk
ZWZpbmUgYSB3cmFwcGVyIG9iamVjdCB0aGF0IEBAaXRlcmF0b3IganVzdCByZXR1cm5zIGEgZ2l2
ZW4gaXRlcmF0b3IuCi0gICAgICAgIHZhciB3cmFwcGVyID0gewotICAgICAgICAgICAgW0BzeW1i
b2xJdGVyYXRvcl0oKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOwotICAgICAg
ICAgICAgfQotICAgICAgICB9OwotCi0gICAgICAgIGZvciAodmFyIHZhbHVlIG9mIHdyYXBwZXIp
IHsKLSAgICAgICAgICAgIGlmIChtYXBGbikKLSAgICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJl
Y3QocmVzdWx0LCBrLCB0aGlzQXJnID09PSB1bmRlZmluZWQgPyBtYXBGbih2YWx1ZSwgaykgOiBt
YXBGbi5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaykpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHZhbHVlKTsKLSAgICAgICAgICAg
IGsgKz0gMTsKLSAgICAgICAgfQotCi0gICAgICAgIHJlc3VsdC5sZW5ndGggPSBrOwotICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZhciBhcnJheUxpa2UgPSBAT2JqZWN0KGl0
ZW1zKTsKLSAgICB2YXIgYXJyYXlMaWtlTGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5TGlrZS5sZW5n
dGgpOwotCi0gICAgLy8gVE9ETzogTmVlZCBpc0NvbnN0cnVjdG9yKHRoaXNPYmopIGluc3RlYWQg
b2YgdHlwZW9mICJmdW5jdGlvbiIgY2hlY2suCi0gICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhp
c09iaiA9PT0gImZ1bmN0aW9uIikgPyBAT2JqZWN0KG5ldyB0aGlzT2JqKGFycmF5TGlrZUxlbmd0
aCkpIDogbmV3IEBBcnJheShhcnJheUxpa2VMZW5ndGgpOwotCi0gICAgdmFyIGsgPSAwOwotICAg
IHdoaWxlIChrIDwgYXJyYXlMaWtlTGVuZ3RoKSB7Ci0gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5
TGlrZVtrXTsKLSAgICAgICAgaWYgKG1hcEZuKQotICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0
KHJlc3VsdCwgaywgdGhpc0FyZyA9PT0gdW5kZWZpbmVkID8gbWFwRm4odmFsdWUsIGspIDogbWFw
Rm4uQGNhbGwodGhpc0FyZywgdmFsdWUsIGspKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
QHB1dEJ5VmFsRGlyZWN0KHJlc3VsdCwgaywgdmFsdWUpOwotICAgICAgICBrICs9IDE7Ci0gICAg
fQotCi0gICAgcmVzdWx0Lmxlbmd0aCA9IGFycmF5TGlrZUxlbmd0aDsKLSAgICByZXR1cm4gcmVz
dWx0OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMv
YnVpbHRpbnMvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLU1hY3Jvcy5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3Jl
LUJ1aWx0aW5Db25zdHJ1Y3Rvci1NYWNyb3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU4YzFiNDQ5NmNjNTQ0
ZjQwNzczOTUwNDJjZmQyNGU4YTM5NDY2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5D
b25zdHJ1Y3Rvci1NYWNyb3MuanMKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmdW5jdGlvbiBvZigvKiBpdGVtcy4uLiAqLykK
K3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0
aDsKKyAgICAvLyBUT0RPOiBOZWVkIGlzQ29uc3RydWN0b3IodGhpcykgaW5zdGVhZCBvZiB0eXBl
b2YgImZ1bmN0aW9uIiBjaGVjay4KKyAgICB2YXIgYXJyYXkgPSB0eXBlb2YgdGhpcyA9PT0gJ2Z1
bmN0aW9uJyA/IG5ldyB0aGlzKGxlbmd0aCkgOiBuZXcgQEFycmF5KGxlbmd0aCk7CisgICAgZm9y
ICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraykKKyAgICAgICAgQHB1dEJ5VmFsRGlyZWN0KGFy
cmF5LCBrLCBhcmd1bWVudHNba10pOworICAgIGFycmF5Lmxlbmd0aCA9IGxlbmd0aDsKKyAgICBy
ZXR1cm4gYXJyYXk7Cit9CisKK2Z1bmN0aW9uIGZyb20oaXRlbXMgLyosIG1hcEZuLCB0aGlzQXJn
ICovKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIHZhciB0aGlzT2JqID0gdGhpczsKKwor
ICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5k
ZWZpbmVkOworCisgICAgdmFyIHRoaXNBcmc7CisKKyAgICBpZiAobWFwRm4gIT09IHVuZGVmaW5l
ZCkgeworICAgICAgICBpZiAodHlwZW9mIG1hcEZuICE9PSAiZnVuY3Rpb24iKQorICAgICAgICAg
ICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoIkFycmF5LmZyb20gcmVxdWlyZXMgdGhhdCB0aGUgc2Vj
b25kIGFyZ3VtZW50LCB3aGVuIHByb3ZpZGVkLCBiZSBhIGZ1bmN0aW9uIik7CisKKyAgICAgICAg
aWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKQorICAgICAgICAgICAgdGhpc0FyZyA9IGFyZ3VtZW50
c1syXTsKKyAgICB9CisKKyAgICBpZiAoaXRlbXMgPT0gbnVsbCkKKyAgICAgICAgdGhyb3cgbmV3
IEBUeXBlRXJyb3IoIkFycmF5LmZyb20gcmVxdWlyZXMgYW4gYXJyYXktbGlrZSBvYmplY3QgLSBu
b3QgbnVsbCBvciB1bmRlZmluZWQiKTsKKworICAgIHZhciBpdGVyYXRvck1ldGhvZCA9IGl0ZW1z
W0BzeW1ib2xJdGVyYXRvcl07CisgICAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IG51bGwpIHsKKyAg
ICAgICAgaWYgKHR5cGVvZiBpdGVyYXRvck1ldGhvZCAhPT0gImZ1bmN0aW9uIikKKyAgICAgICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJBcnJheS5mcm9tIHJlcXVpcmVzIHRoYXQgdGhlIHBy
b3BlcnR5IG9mIHRoZSBmaXJzdCBhcmd1bWVudCwgaXRlbXNbU3ltYm9sLml0ZXJhdG9yXSwgd2hl
biBleGlzdHMsIGJlIGEgZnVuY3Rpb24iKTsKKworICAgICAgICAvLyBUT0RPOiBOZWVkIGlzQ29u
c3RydWN0b3IodGhpc09iaikgaW5zdGVhZCBvZiB0eXBlb2YgImZ1bmN0aW9uIiBjaGVjay4KKyAg
ICAgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gImZ1bmN0aW9uIikgPyBAT2Jq
ZWN0KG5ldyB0aGlzT2JqKCkpIDogW107CisKKyAgICAgICAgdmFyIGsgPSAwOworICAgICAgICB2
YXIgaXRlcmF0b3IgPSBpdGVyYXRvck1ldGhvZC5AY2FsbChpdGVtcyk7CisKKyAgICAgICAgLy8g
U2luY2UgZm9yLW9mIGxvb3Agb25jZSBtb3JlIGxvb2tzIHVwIHRoZSBAQGl0ZXJhdG9yIHByb3Bl
cnR5IG9mIGEgZ2l2ZW4gaXRlcmFibGUsCisgICAgICAgIC8vIGl0IGNvdWxkIGJlIG9ic2VydmFi
bGUgaWYgdGhlIHVzZXIgZGVmaW5lcyBhIGdldHRlciBmb3IgQEBpdGVyYXRvci4KKyAgICAgICAg
Ly8gVG8gYXZvaWQgdGhpcyBzaXR1YXRpb24sIHdlIGRlZmluZSBhIHdyYXBwZXIgb2JqZWN0IHRo
YXQgQEBpdGVyYXRvciBqdXN0IHJldHVybnMgYSBnaXZlbiBpdGVyYXRvci4KKyAgICAgICAgdmFy
IHdyYXBwZXIgPSB7CisgICAgICAgICAgICBbQHN5bWJvbEl0ZXJhdG9yXSgpIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gaXRlcmF0b3I7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAg
ICAgICAgZm9yICh2YXIgdmFsdWUgb2Ygd3JhcHBlcikgeworICAgICAgICAgICAgaWYgKG1hcEZu
KQorICAgICAgICAgICAgICAgIEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHRoaXNBcmcgPT09
IHVuZGVmaW5lZCA/IG1hcEZuKHZhbHVlLCBrKSA6IG1hcEZuLkBjYWxsKHRoaXNBcmcsIHZhbHVl
LCBrKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQHB1dEJ5VmFsRGlyZWN0
KHJlc3VsdCwgaywgdmFsdWUpOworICAgICAgICAgICAgayArPSAxOworICAgICAgICB9CisKKyAg
ICAgICAgcmVzdWx0Lmxlbmd0aCA9IGs7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQor
CisgICAgdmFyIGFycmF5TGlrZSA9IEBPYmplY3QoaXRlbXMpOworICAgIHZhciBhcnJheUxpa2VM
ZW5ndGggPSBAdG9MZW5ndGgoYXJyYXlMaWtlLmxlbmd0aCk7CisKKyAgICAvLyBUT0RPOiBOZWVk
IGlzQ29uc3RydWN0b3IodGhpc09iaikgaW5zdGVhZCBvZiB0eXBlb2YgImZ1bmN0aW9uIiBjaGVj
ay4KKyAgICB2YXIgcmVzdWx0ID0gKHR5cGVvZiB0aGlzT2JqID09PSAiZnVuY3Rpb24iKSA/IEBP
YmplY3QobmV3IHRoaXNPYmooYXJyYXlMaWtlTGVuZ3RoKSkgOiBuZXcgQEFycmF5KGFycmF5TGlr
ZUxlbmd0aCk7CisKKyAgICB2YXIgayA9IDA7CisgICAgd2hpbGUgKGsgPCBhcnJheUxpa2VMZW5n
dGgpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlMaWtlW2tdOworICAgICAgICBpZiAobWFw
Rm4pCisgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB0aGlzQXJnID09PSB1
bmRlZmluZWQgPyBtYXBGbih2YWx1ZSwgaykgOiBtYXBGbi5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwg
aykpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBr
LCB2YWx1ZSk7CisgICAgICAgIGsgKz0gMTsKKyAgICB9CisKKyAgICByZXN1bHQubGVuZ3RoID0g
YXJyYXlMaWtlTGVuZ3RoOworICAgIHJldHVybiByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2Ny
aXB0Q29yZS1CdWlsdGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUt
QnVpbHRpbi5Qcm9taXNlLUNvbWJpbmVkLmpzLXJlc3VsdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzMyYThjODlmNWFhNWQ2Yzk1MjNkYTBlNjQ4MDExZjViZTk4OGRiZi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWls
dGluLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0CisrKyAvZGV2L251bGwKQEAgLTEsMTY4ICsw
LDAgQEAKLSMjIyBCZWdpbiBGaWxlOiBKU0NCdWlsdGlucy5oCi0vKgotICogQ29weXJpZ2h0IChj
KSAyMDE1IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCi0gKiAKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKiAK
LSAqLwotCi0vLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2Vu
ZXJhdGVkIGZyb20gSmF2YVNjcmlwdCBmaWxlcyBmb3IKLS8vIGJ1aWx0aW5zIGJ5IHRoZSBzY3Jp
cHQ6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5
Ci0KLSNpZm5kZWYgSlNDQnVpbHRpbnNfaAotI2RlZmluZSBKU0NCdWlsdGluc19oCi0KLW5hbWVz
cGFjZSBKU0MgewotY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3MgVk07Ci0KLWVudW0g
Y2xhc3MgQ29uc3RydWN0QWJpbGl0eSA6IHVuc2lnbmVkOwotfQotCi1uYW1lc3BhY2UgSlNDIHsK
LQotLyogQnVpbHRpbi5Qcm9taXNlICovCi1leHRlcm4gY29uc3QgY2hhciogc19idWlsdGluUHJv
bWlzZVJlamVjdFByb21pc2VDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNl
UmVqZWN0UHJvbWlzZUNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHk7Ci1l
eHRlcm4gY29uc3QgY2hhciogc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZTsKLWV4
dGVybiBjb25zdCBpbnQgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aDsK
LWV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvbWlzZUZ1bGZp
bGxQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHk7Ci0KLSNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJ
TFRJTlBST01JU0VfQlVJTFRJTl9EQVRBKG1hY3JvKSBcCi0gICAgbWFjcm8ocmVqZWN0UHJvbWlz
ZSwgYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlLCAyKSBcCi0gICAgbWFjcm8oZnVsZmlsbFBy
b21pc2UsIGJ1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2UsIDIpIFwKLQotI2RlZmluZSBKU0Nf
QlVJTFRJTl9CVUlMVElOUFJPTUlTRV9SRUpFQ1RQUk9NSVNFIDEKLSNkZWZpbmUgSlNDX0JVSUxU
SU5fQlVJTFRJTlBST01JU0VfRlVMRklMTFBST01JU0UgMQotCi0jZGVmaW5lIEpTQ19GT1JFQUNI
X0JVSUxUSU5fQ09ERShtYWNybykgXAotICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlUmVqZWN0UHJv
bWlzZUNvZGUsIHJlamVjdFByb21pc2UsIHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNlQ29k
ZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VDb2RlLCBm
dWxmaWxsUHJvbWlzZSwgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZUxlbmd0aCkg
XAotCi0jZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXAot
ICAgIG1hY3JvKGZ1bGZpbGxQcm9taXNlKSBcCi0gICAgbWFjcm8ocmVqZWN0UHJvbWlzZSkgXAot
Ci0jZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFt
ZSwgYXJndW1lbnRDb3VudCkgXAotICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFt
ZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKLQotSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKERFQ0xB
UkVfQlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5kZWYgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgot
Ci0jZGVmaW5lIEpTQ19CVUlMVElOX0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JV
SUxUSU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNl
bmRpZiAvLyBKU0NCdWlsdGluc19oCi0KLSMjIyBFbmQgRmlsZTogSlNDQnVpbHRpbnMuaAotCi0j
IyMgQmVnaW4gRmlsZTogSlNDQnVpbHRpbnMuY3BwCi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE1
IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCi0gKiAKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKiAKLSAqLwot
Ci0vLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVk
IGZyb20gSmF2YVNjcmlwdCBmaWxlcyBmb3IKLS8vIGJ1aWx0aW5zIGJ5IHRoZSBzY3JpcHQ6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL2dlbmVyYXRlLWpzLWJ1aWx0aW5zLnB5Ci0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgotCi0jaW5jbHVkZSAi
QnVpbHRpbkV4ZWN1dGFibGVzLmgiCi0jaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgotI2luY2x1ZGUg
IkpTQ2VsbElubGluZXMuaCIKLSNpbmNsdWRlICJWTS5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQot
Y29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpblByb21pc2VSZWplY3RQcm9taXNl
Q29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0
cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGgg
PSA0MTM7Ci1jb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGUgPQot
ICAgICIoZnVuY3Rpb24gKHByb21pc2UsIHJlYXNvbilcbiIgXAotICAgICJ7XG4iIFwKLSAgICAi
ICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICB2YXIgcmVhY3Rp
b25zID0gcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucztcbiIgXAotICAgICIgICAgcHJv
bWlzZS5AcHJvbWlzZVJlc3VsdCA9IHJlYXNvbjtcbiIgXAotICAgICIgICAgcHJvbWlzZS5AcHJv
bWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAgICAiICAgIHByb21pc2Uu
QHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAgICAiICAgIHByb21p
c2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7XG4iIFwKLSAgICAiXG4iIFwKLSAg
ICAiICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZVJlamVjdGVkKHByb21pc2Us
IHJlYXNvbiwgcmVhY3Rpb25zKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgQHRyaWdnZXJQ
cm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgcmVhc29uKTtcbiIgXAotICAgICJ9KVxuIiBcCi07
Ci0KLWNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFBy
b21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90
Q29uc3RydWN0OwotY29uc3QgaW50IHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVM
ZW5ndGggPSA0MTI7Ci1jb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VD
b2RlID0KLSAgICAiKGZ1bmN0aW9uIChwcm9taXNlLCB2YWx1ZSlcbiIgXAotICAgICJ7XG4iIFwK
LSAgICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICB2YXIg
cmVhY3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnM7XG4iIFwKLSAgICAi
ICAgIHByb21pc2UuQHByb21pc2VSZXN1bHQgPSB2YWx1ZTtcbiIgXAotICAgICIgICAgcHJvbWlz
ZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAgICAiICAgIHBy
b21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7XG4iIFwKLSAgICAiICAg
IHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlRnVsZmlsbGVkO1xuIiBcCi0gICAgIlxu
IiBcCi0gICAgIiAgICBASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLnByb21pc2VGdWxmaWxsZWQo
cHJvbWlzZSwgdmFsdWUsIHJlYWN0aW9ucyk7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIEB0
cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHZhbHVlKTtcbiIgXAotICAgICJ9KVxu
IiBcCi07Ci0KLQotI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1
bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXAotSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNv
ZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKLXtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0
aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWls
dGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQotSlNDX0ZPUkVBQ0hfQlVJ
TFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUZJTkVfQlVJTFRJ
Tl9HRU5FUkFUT1IKLQotCi19IC8vIG5hbWVzcGFjZSBKU0MKLSMjIyBFbmQgRmlsZTogSlNDQnVp
bHRpbnMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0
cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9z
LmpzLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5z
L2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlzZS1NYWNyb3MuanMtcmVzdWx0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY1NDNjZWFjOWU2NDBlNjNhOGQ5ODRlZGZjMTBiNGIyYTAyM2MyNzUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWls
dGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtTWFjcm9zLmpzLXJl
c3VsdApAQCAtMCwwICsxLDQ5IEBACisjIyMgQmVnaW4gRmlsZTogSlNDQnVpbHRpbnNNYWNyb3Mu
aAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNSBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+LgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICogCisgKi8KKworLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJ
dCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIEphdmFTY3JpcHQgZmlsZXMgZm9yCisv
LyBidWlsdGlucyBieSB0aGUgc2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9n
ZW5lcmF0ZS1qcy1idWlsdGlucy5weQorCisjaWZuZGVmIEpTQ0J1aWx0aW5zTWFjcm9zX2gKKyNk
ZWZpbmUgSlNDQnVpbHRpbnNNYWNyb3NfaAorCisjaW5jbHVkZSAiQnVpbHRpblByb21pc2VCdWls
dGlucy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElO
X0NPREUobWFjcm8pIFwKKyAgICBKU0NfRk9SRUFDSF9CVUlMVElOX1BST01JU0VfQlVJTFRJTl9D
T0RFKG1hY3JvKSBcCisKKyNkZWZpbmUgSlNDX0ZPUkVBQ0hfVU5JUVVFX0JVSUxUSU5fRlVOQ1RJ
T05fTkFNRShtYWNybykgXAorICAgIG1hY3JvKGZ1bGZpbGxQcm9taXNlKSBcCisgICAgbWFjcm8o
cmVqZWN0UHJvbWlzZSkgXAorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEpTQ0J1
aWx0aW5zTWFjcm9zX2gKKworIyMjIEVuZCBGaWxlOiBKU0NCdWlsdGluc01hY3Jvcy5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBl
Y3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlByb21pc2UtU2VwYXJhdGUuanMtcmVzdWx0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2
YVNjcmlwdENvcmUtQnVpbHRpbi5Qcm9taXNlLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCAyMjdi
YTI0YzVjYzI5ZTVlMjliMWRiOWY1NDYyNWZlMGYyOTUxODIyLi4zYzZjMjZhYTBlMWQ3ZmU5MGNh
MTQ3M2RmNGFiM2FlM2Y4M2Y3OGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
U2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLlBy
b21pc2UtU2VwYXJhdGUuanMtcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4uUHJvbWlz
ZS1TZXBhcmF0ZS5qcy1yZXN1bHQKQEAgLTMxLDEwICszMSwxMiBAQAogI2lmbmRlZiBCdWlsdGlu
UHJvbWlzZUJ1aWx0aW5zX2gKICNkZWZpbmUgQnVpbHRpblByb21pc2VCdWlsdGluc19oCiAKLQor
I2luY2x1ZGUgIkJ1aWx0aW5VdGlscy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0
aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDog
dW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNTQsMjEgKzU2LDIxIEBAIGV4dGVy
biBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9t
aXNlQ29kZUNvbnN0cnVjdEFiCiAjZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5fUFJPTUlTRV9S
RUpFQ1RQUk9NSVNFIDEKICNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTl9QUk9NSVNFX0ZVTEZJ
TExQUk9NSVNFIDEKIAotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJ
Tl9DT0RFKG1hY3JvKSBcCisjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fUFJPTUlTRV9CVUlM
VElOX0NPREUobWFjcm8pIFwKICAgICBtYWNybyhidWlsdGluUHJvbWlzZVJlamVjdFByb21pc2VD
b2RlLCByZWplY3RQcm9taXNlLCBzX2J1aWx0aW5Qcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5n
dGgpIFwKICAgICBtYWNybyhidWlsdGluUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZSwgZnVsZmls
bFByb21pc2UsIHNfYnVpbHRpblByb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGgpIFwKIAot
I2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBST01JU0VfQlVJTFRJTl9GVU5DVElPTl9OQU1F
KG1hY3JvKSBcCisjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fUFJPTUlTRV9CVUlMVElOX0ZV
TkNUSU9OX05BTUUobWFjcm8pIFwKICAgICBtYWNybyhmdWxmaWxsUHJvbWlzZSkgXAogICAgIG1h
Y3JvKHJlamVjdFByb21pc2UpIFwKIAogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9S
KGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFwKICAgICBKU0M6OkZ1bmN0
aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKLUpTQ19GT1JF
QUNIX0JVSUxUSU4uUFJPTUlTRV9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRP
UikKK0pTQ19GT1JFQUNIX0JVSUxUSU5fUFJPTUlTRV9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlM
VElOX0dFTkVSQVRPUikKICN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCiAKLSNkZWZp
bmUgSlNDX0JVSUxUSU5fQlVJTFRJTi5QUk9NSVNFX0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmlu
ZWQgSlNDX0JVSUxUSU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMKKyNkZWZpbmUgSlNDX0JVSUxU
SU5fQlVJTFRJTl9QUk9NSVNFX0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmluZWQgSlNDX0JVSUxU
SU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKQEAgLTE1
OSw3ICsxNjEsNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm9taXNlRnVsZmlsbFByb21pc2VD
b2RlID0KIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6
Vk0mIHZtKSBcCiB7XAogICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5h
bWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVO
YW1lIyNTb3VyY2UoKSk7IH0KLUpTQ19GT1JFQUNIX0JVSUxUSU4uUFJPTUlTRV9CVUlMVElOX0NP
REUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQorSlNDX0ZPUkVBQ0hfQlVJTFRJTl9QUk9NSVNF
X0JVSUxUSU5fQ09ERShERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCiAjdW5kZWYgREVGSU5FX0JV
SUxUSU5fR0VORVJBVE9SCiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nj
cmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90
b3R5cGUtQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUt
Q29tYmluZWQuanMtcmVzdWx0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGY2N2M1
YWMwMWRkYTNkYmY5YjFkOWU3Nzk4MzlmZDc4NjNjNmI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rl
c3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLUNv
bWJpbmVkLmpzLXJlc3VsdAorKysgL2Rldi9udWxsCkBAIC0xLDE5MiArMCwwIEBACi0jIyMgQmVn
aW4gRmlsZTogSlNDQnVpbHRpbnMuaAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVz
dWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAqIAotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8v
IERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJv
bSBKYXZhU2NyaXB0IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2lmbmRl
ZiBKU0NCdWlsdGluc19oCi0jZGVmaW5lIEpTQ0J1aWx0aW5zX2gKLQotbmFtZXNwYWNlIEpTQyB7
Ci1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBWTTsKLQotZW51bSBjbGFzcyBDb25z
dHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7Ci19Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0vKiBCdWls
dGluLnByb3RvdHlwZSAqLwotZXh0ZXJuIGNvbnN0IGNoYXIqIHNfYnVpbHRpblByb3RvdHlwZUV2
ZXJ5Q29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlTGVu
Z3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5
cGVFdmVyeUNvZGVDb25zdHJ1Y3RBYmlsaXR5OwotZXh0ZXJuIGNvbnN0IGNoYXIqIHNfYnVpbHRp
blByb3RvdHlwZUZvckVhY2hDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX2J1aWx0aW5Qcm90b3R5
cGVGb3JFYWNoQ29kZUxlbmd0aDsKLWV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkg
c19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVDb25zdHJ1Y3RBYmlsaXR5OwotCi0jZGVmaW5l
IEpTQ19GT1JFQUNIX0JVSUxUSU5QUk9UT1RZUEVfQlVJTFRJTl9EQVRBKG1hY3JvKSBcCi0gICAg
bWFjcm8oZXZlcnksIGJ1aWx0aW5Qcm90b3R5cGVFdmVyeSwgMSkgXAotICAgIG1hY3JvKGZvckVh
Y2gsIGJ1aWx0aW5Qcm90b3R5cGVGb3JFYWNoLCAxKSBcCi0KLSNkZWZpbmUgSlNDX0JVSUxUSU5f
QlVJTFRJTlBST1RPVFlQRV9FVkVSWSAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5QUk9U
T1RZUEVfRk9SRUFDSCAxCi0KLSNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RFKG1hY3Jv
KSBcCi0gICAgbWFjcm8oYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSwgZXZlcnksIHNfYnVpbHRp
blByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Qcm90b3R5cGVG
b3JFYWNoQ29kZSwgZm9yRWFjaCwgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENvZGVMZW5ndGgp
IFwKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwK
LSAgICBtYWNybyhldmVyeSkgXAotICAgIG1hY3JvKGZvckVhY2gpIFwKLQotI2RlZmluZSBERUNM
QVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291
bnQpIFwKLSAgICBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihK
U0M6OlZNJik7Ci0KLUpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUNMQVJFX0JVSUxUSU5fR0VO
RVJBVE9SKQotI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IKLQotI2RlZmluZSBKU0Nf
QlVJTFRJTl9FWElTVFMob2JqZWN0LCBmdW5jKSBkZWZpbmVkIEpTQ19CVUlMVElOXyAjIyBvYmpl
Y3QgIyMgXyAjIyBmdW5jCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gSlNDQnVp
bHRpbnNfaAotCi0jIyMgRW5kIEZpbGU6IEpTQ0J1aWx0aW5zLmgKLQotIyMjIEJlZ2luIEZpbGU6
IEpTQ0J1aWx0aW5zLmNwcAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1
enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5P
VCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZh
U2NyaXB0IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCi0KLSNpbmNsdWRlICJCdWlsdGluRXhl
Y3V0YWJsZXMuaCIKLSNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5s
aW5lcy5oIgotI2luY2x1ZGUgIlZNLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBKU0M6
OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGluUHJvdG90eXBlRXZlcnlDb2RlQ29uc3RydWN0QWJp
bGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50
IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCA9IDc2MjsKLWNvbnN0IGNoYXIqIHNf
YnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSA9Ci0gICAgIihmdW5jdGlvbiAoY2FsbGJhY2sgKVxu
IiBcCi0gICAgIntcbiIgXAotICAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4i
IFwKLSAgICAiICAgIGlmICh0aGlzID09PSBudWxsKVxuIiBcCi0gICAgIiAgICAgICAgdGhyb3cg
bmV3IEBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhp
c3wgbm90IGJlIG51bGxcIik7XG4iIFwKLSAgICAiICAgIFxuIiBcCi0gICAgIiAgICBpZiAodGhp
cyA9PT0gdW5kZWZpbmVkKVxuIiBcCi0gICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3Io
XCJBcnJheS5wcm90b3R5cGUuZXZlcnkgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIHVuZGVm
aW5lZFwiKTtcbiIgXAotICAgICIgICAgXG4iIFwKLSAgICAiICAgIHZhciBhcnJheSA9IEBPYmpl
Y3QodGhpcyk7XG4iIFwKLSAgICAiICAgIHZhciBsZW5ndGggPSBAdG9MZW5ndGgoYXJyYXkubGVu
Z3RoKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0g
XCJmdW5jdGlvblwiKVxuIiBcCi0gICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJB
cnJheS5wcm90b3R5cGUuZXZlcnkgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBc
Ci0gICAgIiAgICBcbiIgXAotICAgICIgICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3Ro
ID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiIgXAotICAgICIgICAgXG4iIFwKLSAg
ICAiICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiIgXAotICAgICIgICAg
ICAgIGlmICghKGkgaW4gYXJyYXkpKVxuIiBcCi0gICAgIiAgICAgICAgICAgIGNvbnRpbnVlO1xu
IiBcCi0gICAgIiAgICAgICAgaWYgKCFjYWxsYmFjay5AY2FsbCh0aGlzQXJnLCBhcnJheVtpXSwg
aSwgYXJyYXkpKVxuIiBcCi0gICAgIiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiIgXAotICAg
ICIgICAgfVxuIiBcCi0gICAgIiAgICBcbiIgXAotICAgICIgICAgcmV0dXJuIHRydWU7XG4iIFwK
LSAgICAifSlcbiIgXAotOwotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWlsdGlu
UHJvdG90eXBlRm9yRWFjaENvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmls
aXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19idWlsdGluUHJvdG90eXBlRm9yRWFj
aENvZGVMZW5ndGggPSA2OTQ7Ci1jb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNo
Q29kZSA9Ci0gICAgIihmdW5jdGlvbiAoY2FsbGJhY2sgKVxuIiBcCi0gICAgIntcbiIgXAotICAg
ICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIGlmICh0aGlz
ID09PSBudWxsKVxuIiBcCi0gICAgIiAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJh
eS5wcm90b3R5cGUuZm9yRWFjaCByZXF1aXJlcyB0aGF0IHx0aGlzfCBub3QgYmUgbnVsbFwiKTtc
biIgXAotICAgICIgICAgXG4iIFwKLSAgICAiICAgIGlmICh0aGlzID09PSB1bmRlZmluZWQpXG4i
IFwKLSAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcIkFycmF5LnByb3RvdHlwZS5m
b3JFYWNoIHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSB1bmRlZmluZWRcIik7XG4iIFwKLSAg
ICAiICAgIFxuIiBcCi0gICAgIiAgICB2YXIgYXJyYXkgPSBAT2JqZWN0KHRoaXMpO1xuIiBcCi0g
ICAgIiAgICB2YXIgbGVuZ3RoID0gQHRvTGVuZ3RoKGFycmF5Lmxlbmd0aCk7XG4iIFwKLSAgICAi
XG4iIFwKLSAgICAiICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIilcbiIg
XAotICAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmZv
ckVhY2ggY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBcCi0gICAgIiAgICBcbiIg
XAotICAgICIgICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50
c1sxXSA6IHVuZGVmaW5lZDtcbiIgXAotICAgICIgICAgXG4iIFwKLSAgICAiICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiIgXAotICAgICIgICAgICAgIGlmIChpIGluIGFy
cmF5KVxuIiBcCi0gICAgIiAgICAgICAgICAgIGNhbGxiYWNrLkBjYWxsKHRoaXNBcmcsIGFycmF5
W2ldLCBpLCBhcnJheSk7XG4iIFwKLSAgICAiICAgIH1cbiIgXAotICAgICJ9KVxuIiBcCi07Ci0K
LQotI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFt
ZSwgYXJndW1lbnRDb3VudCkgXAotSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNH
ZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFwKLXtcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRh
YmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0
YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgfQotSlNDX0ZPUkVBQ0hfQlVJTFRJTl9DT0RF
KERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFU
T1IKLQotCi19IC8vIG5hbWVzcGFjZSBKU0MKLSMjIyBFbmQgRmlsZTogSlNDQnVpbHRpbnMuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlwZS1NYWNyb3MuanMtcmVz
dWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtTWFjcm9zLmpzLXJlc3VsdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNTdlYzY0YmI2NGI4MzU4NDYxNGIzN2QzZjg2NTM5ODY1NjE0ODYxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMv
ZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUtTWFjcm9zLmpzLXJlc3Vs
dApAQCAtMCwwICsxLDUwIEBACisjIyMgQmVnaW4gRmlsZTogSlNDQnVpbHRpbnNNYWNyb3MuaAor
LyoKKyAqIENvcHlyaWdodCAoYykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPi4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqIAorICovCisKKy8vIERPIE5PVCBFRElUIFRISVMgRklMRS4g
SXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgor
Ly8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
Z2VuZXJhdGUtanMtYnVpbHRpbnMucHkKKworI2lmbmRlZiBKU0NCdWlsdGluc01hY3Jvc19oCisj
ZGVmaW5lIEpTQ0J1aWx0aW5zTWFjcm9zX2gKKworI2luY2x1ZGUgIkJ1aWx0aW5Qcm90b3R5cGVC
dWlsdGlucy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlM
VElOX0NPREUobWFjcm8pIFwKKyAgICBKU0NfRk9SRUFDSF9CVUlMVElOX1BST1RPVFlQRV9CVUlM
VElOX0NPREUobWFjcm8pIFwKKworI2RlZmluZSBKU0NfRk9SRUFDSF9VTklRVUVfQlVJTFRJTl9G
VU5DVElPTl9OQU1FKG1hY3JvKSBcCisgICAgbWFjcm8oZXZlcnkpIFwKKyAgICBtYWNybyhmb3JF
YWNoKSBcCisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gSlNDQnVpbHRpbnNNYWNy
b3NfaAorCisjIyMgRW5kIEZpbGU6IEpTQ0J1aWx0aW5zTWFjcm9zLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFT
Y3JpcHRDb3JlLUJ1aWx0aW4ucHJvdG90eXBlLVNlcGFyYXRlLmpzLXJlc3VsdCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRD
b3JlLUJ1aWx0aW4ucHJvdG90eXBlLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCAyOTM4M2Y0Zjdh
YWY5MGNjODE0ZDQxMThkZDJjZmNjNGY3ZDg2ZTY5Li5lYTU0M2RkYzNjOWQzMWJiZmZkN2Q4Yjlh
YWIwODIxYmIzOTcyMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGluLnByb3RvdHlw
ZS1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMv
dGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbi5wcm90b3R5cGUt
U2VwYXJhdGUuanMtcmVzdWx0CkBAIC0zMiwxMCArMzIsMTIgQEAKICNpZm5kZWYgQnVpbHRpblBy
b3RvdHlwZUJ1aWx0aW5zX2gKICNkZWZpbmUgQnVpbHRpblByb3RvdHlwZUJ1aWx0aW5zX2gKIAot
CisjaW5jbHVkZSAiQnVpbHRpblV0aWxzLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRnVu
Y3Rpb25FeGVjdXRhYmxlOworY2xhc3MgVk07CitlbnVtIGNsYXNzIENvbnN0cnVjdEFiaWxpdHkg
OiB1bnNpZ25lZDsKIH0KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC01NSwyMSArNTcsMjEgQEAgZXh0
ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Qcm90b3R5cGVGb3JFYWNo
Q29kZUNvbnN0cnVjdEFiaWxpdHkKICNkZWZpbmUgSlNDX0JVSUxUSU5fQlVJTFRJTl9QUk9UT1RZ
UEVfRVZFUlkgMQogI2RlZmluZSBKU0NfQlVJTFRJTl9CVUlMVElOX1BST1RPVFlQRV9GT1JFQUNI
IDEKIAotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlMVElOX0NPREUo
bWFjcm8pIFwKKyNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9QUk9UT1RZUEVfQlVJTFRJTl9D
T0RFKG1hY3JvKSBcCiAgICAgbWFjcm8oYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZSwgZXZlcnks
IHNfYnVpbHRpblByb3RvdHlwZUV2ZXJ5Q29kZUxlbmd0aCkgXAogICAgIG1hY3JvKGJ1aWx0aW5Q
cm90b3R5cGVGb3JFYWNoQ29kZSwgZm9yRWFjaCwgc19idWlsdGluUHJvdG90eXBlRm9yRWFjaENv
ZGVMZW5ndGgpIFwKIAotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlM
VElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFwKKyNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9Q
Uk9UT1RZUEVfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oZXZlcnkp
IFwKICAgICBtYWNybyhmb3JFYWNoKSBcCiAKICNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVS
QVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCiAgICAgSlNDOjpG
dW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwogCi1KU0Nf
Rk9SRUFDSF9CVUlMVElOLlBST1RPVFlQRV9CVUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dF
TkVSQVRPUikKK0pTQ19GT1JFQUNIX0JVSUxUSU5fUFJPVE9UWVBFX0JVSUxUSU5fQ09ERShERUNM
QVJFX0JVSUxUSU5fR0VORVJBVE9SKQogI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IK
IAotI2RlZmluZSBKU0NfQlVJTFRJTl9CVUlMVElOLlBST1RPVFlQRV9FWElTVFMob2JqZWN0LCBm
dW5jKSBkZWZpbmVkIEpTQ19CVUlMVElOXyAjIyBvYmplY3QgIyMgXyAjIyBmdW5jCisjZGVmaW5l
IEpTQ19CVUlMVElOX0JVSUxUSU5fUFJPVE9UWVBFX0VYSVNUUyhvYmplY3QsIGZ1bmMpIGRlZmlu
ZWQgSlNDX0JVSUxUSU5fICMjIG9iamVjdCAjIyBfICMjIGZ1bmMKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKQEAgLTE4Myw3ICsxODUsNyBAQCBjb25zdCBjaGFyKiBzX2J1aWx0aW5Qcm90b3R5cGVG
b3JFYWNoQ29kZSA9CiBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRv
cihKU0M6OlZNJiB2bSkgXAoge1wKICAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCkt
PmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygp
LT5jb2RlTmFtZSMjU291cmNlKCkpOyB9Ci1KU0NfRk9SRUFDSF9CVUlMVElOLlBST1RPVFlQRV9C
VUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQorSlNDX0ZPUkVBQ0hfQlVJTFRJ
Tl9QUk9UT1RZUEVfQlVJTFRJTl9DT0RFKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKICN1bmRl
ZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1C
dWlsdGluQ29uc3RydWN0b3ItQ29tYmluZWQuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRp
bkNvbnN0cnVjdG9yLUNvbWJpbmVkLmpzLXJlc3VsdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTMzNzEzMzg1ZTE2MjE3MDAwMjhlZTdkODFhMjMwMGE3ODIyYWU2Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZhU2NyaXB0Q29yZS1CdWlsdGlu
Q29uc3RydWN0b3ItQ29tYmluZWQuanMtcmVzdWx0CisrKyAvZGV2L251bGwKQEAgLTEsMjI0ICsw
LDAgQEAKLSMjIyBCZWdpbiBGaWxlOiBKU0NCdWlsdGlucy5oCi0vKgotICogQ29weXJpZ2h0IChj
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICovCi0K
LS8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQg
ZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291
cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQotI2lm
bmRlZiBKU0NCdWlsdGluc19oCi0jZGVmaW5lIEpTQ0J1aWx0aW5zX2gKLQotbmFtZXNwYWNlIEpT
QyB7Ci1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBWTTsKLQotZW51bSBjbGFzcyBD
b25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7Ci19Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0vKiBC
dWlsdGluQ29uc3RydWN0b3IgKi8KLWV4dGVybiBjb25zdCBjaGFyKiBzX2J1aWx0aW5Db25zdHJ1
Y3Rvck9mQ29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19idWlsdGluQ29uc3RydWN0b3JPZkNvZGVM
ZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfYnVpbHRpbkNvbnN0
cnVjdG9yT2ZDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX2J1aWx0
aW5Db25zdHJ1Y3RvckZyb21Db2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1
Y3RvckZyb21Db2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBz
X2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlQ29uc3RydWN0QWJpbGl0eTsKLQotI2RlZmluZSBK
U0NfRk9SRUFDSF9CVUlMVElOQ09OU1RSVUNUT1JfQlVJTFRJTl9EQVRBKG1hY3JvKSBcCi0gICAg
bWFjcm8ob2YsIGJ1aWx0aW5Db25zdHJ1Y3Rvck9mLCAwKSBcCi0gICAgbWFjcm8oZnJvbSwgYnVp
bHRpbkNvbnN0cnVjdG9yRnJvbSwgMSkgXAotCi0jZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5D
T05TVFJVQ1RPUl9PRiAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX0JVSUxUSU5DT05TVFJVQ1RPUl9G
Uk9NIDEKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUobWFjcm8pIFwKLSAgICBt
YWNybyhidWlsdGluQ29uc3RydWN0b3JPZkNvZGUsIG9mLCBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9m
Q29kZUxlbmd0aCkgXAotICAgIG1hY3JvKGJ1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlLCBmcm9t
LCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZyb21Db2RlTGVuZ3RoKSBcCi0KLSNkZWZpbmUgSlNDX0ZP
UkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCi0gICAgbWFjcm8oZnJvbSkgXAot
ICAgIG1hY3JvKG9mKSBcCi0KLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2Rl
TmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCi0gICAgSlNDOjpGdW5jdGlvbkV4
ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwotCi1KU0NfRk9SRUFDSF9C
VUlMVElOX0NPREUoREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUNMQVJFX0JV
SUxUSU5fR0VORVJBVE9SCi0KLSNkZWZpbmUgSlNDX0JVSUxUSU5fRVhJU1RTKG9iamVjdCwgZnVu
YykgZGVmaW5lZCBKU0NfQlVJTFRJTl8gIyMgb2JqZWN0ICMjIF8gIyMgZnVuYwotCi19IC8vIG5h
bWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIEpTQ0J1aWx0aW5zX2gKLQotIyMjIEVuZCBGaWxlOiBK
U0NCdWlsdGlucy5oCi0KLSMjIyBCZWdpbiBGaWxlOiBKU0NCdWlsdGlucy5jcHAKLS8qCi0gKiBD
b3B5cmlnaHQgKGMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICogCi0gKi8KLQotLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5
IGdlbmVyYXRlZCBmcm9tIEphdmFTY3JpcHQgZmlsZXMgZm9yCi0vLyBidWlsdGlucyBieSB0aGUg
c2NyaXB0OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy9nZW5lcmF0ZS1qcy1idWlsdGlu
cy5weQotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKLQot
I2luY2x1ZGUgIkJ1aWx0aW5FeGVjdXRhYmxlcy5oIgotI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIK
LSNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCi0jaW5jbHVkZSAiVk0uaCIKLQotbmFtZXNwYWNl
IEpTQyB7Ci0KLWNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX2J1aWx0aW5Db25zdHJ1Y3Rv
ck9mQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENv
bnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3Rvck9mQ29kZUxlbmd0aCA9IDI5
NDsKLWNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yT2ZDb2RlID0KLSAgICAiKGZ1bmN0
aW9uICgpXG4iIFwKLSAgICAie1xuIiBcCi0gICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAot
ICAgICJcbiIgXAotICAgICIgICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4iIFwK
LSAgICAiICAgIC8vXG4iIFwKLSAgICAiICAgIHZhciBhcnJheSA9IHR5cGVvZiB0aGlzID09PSAn
ZnVuY3Rpb24nID8gbmV3IHRoaXMobGVuZ3RoKSA6IG5ldyBAQXJyYXkobGVuZ3RoKTtcbiIgXAot
ICAgICIgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraylcbiIgXAotICAgICIgICAg
ICAgIEBwdXRCeVZhbERpcmVjdChhcnJheSwgaywgYXJndW1lbnRzW2tdKTtcbiIgXAotICAgICIg
ICAgYXJyYXkubGVuZ3RoID0gbGVuZ3RoO1xuIiBcCi0gICAgIiAgICByZXR1cm4gYXJyYXk7XG4i
IFwKLSAgICAifSlcbiIgXAotOwotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19idWls
dGluQ29uc3RydWN0b3JGcm9tQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVjdEFi
aWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX2J1aWx0aW5Db25zdHJ1Y3RvckZy
b21Db2RlTGVuZ3RoID0gMjA0NjsKLWNvbnN0IGNoYXIqIHNfYnVpbHRpbkNvbnN0cnVjdG9yRnJv
bUNvZGUgPQotICAgICIoZnVuY3Rpb24gKGl0ZW1zIClcbiIgXAotICAgICJ7XG4iIFwKLSAgICAi
ICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICB2YXIgdGhpc09i
aiA9IHRoaXM7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50
cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuIiBcCi0gICAgIlxuIiBc
Ci0gICAgIiAgICB2YXIgdGhpc0FyZztcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgaWYgKG1h
cEZuICE9PSB1bmRlZmluZWQpIHtcbiIgXAotICAgICIgICAgICAgIGlmICh0eXBlb2YgbWFwRm4g
IT09IFwiZnVuY3Rpb25cIilcbiIgXAotICAgICIgICAgICAgICAgICB0aHJvdyBuZXcgQFR5cGVF
cnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgdGhhdCB0aGUgc2Vjb25kIGFyZ3VtZW50LCB3aGVu
IHByb3ZpZGVkLCBiZSBhIGZ1bmN0aW9uXCIpO1xuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICAg
ICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKVxuIiBcCi0gICAgIiAgICAgICAgICAgIHRoaXNB
cmcgPSBhcmd1bWVudHNbMl07XG4iIFwKLSAgICAiICAgIH1cbiIgXAotICAgICJcbiIgXAotICAg
ICIgICAgaWYgKGl0ZW1zID09IG51bGwpXG4iIFwKLSAgICAiICAgICAgICB0aHJvdyBuZXcgQFR5
cGVFcnJvcihcIkFycmF5LmZyb20gcmVxdWlyZXMgYW4gYXJyYXktbGlrZSBvYmplY3QgLSBub3Qg
bnVsbCBvciB1bmRlZmluZWRcIik7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIHZhciBpdGVy
YXRvck1ldGhvZCA9IGl0ZW1zW0BzeW1ib2xJdGVyYXRvcl07XG4iIFwKLSAgICAiICAgIGlmIChp
dGVyYXRvck1ldGhvZCAhPSBudWxsKSB7XG4iIFwKLSAgICAiICAgICAgICBpZiAodHlwZW9mIGl0
ZXJhdG9yTWV0aG9kICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKLSAgICAiICAgICAgICAgICAgdGhy
b3cgbmV3IEBUeXBlRXJyb3IoXCJBcnJheS5mcm9tIHJlcXVpcmVzIHRoYXQgdGhlIHByb3BlcnR5
IG9mIHRoZSBmaXJzdCBhcmd1bWVudCwgaXRlbXNbU3ltYm9sLml0ZXJhdG9yXSwgd2hlbiBleGlz
dHMsIGJlIGEgZnVuY3Rpb25cIik7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgICAgICAvL1xu
IiBcCi0gICAgIiAgICAgICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5j
dGlvblwiKSA/IEBPYmplY3QobmV3IHRoaXNPYmooKSkgOiBbXTtcbiIgXAotICAgICJcbiIgXAot
ICAgICIgICAgICAgIHZhciBrID0gMDtcbiIgXAotICAgICIgICAgICAgIHZhciBpdGVyYXRvciA9
IGl0ZXJhdG9yTWV0aG9kLkBjYWxsKGl0ZW1zKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAg
ICAgIC8vXG4iIFwKLSAgICAiICAgICAgICAvL1xuIiBcCi0gICAgIiAgICAgICAgLy9cbiIgXAot
ICAgICIgICAgICAgIHZhciB3cmFwcGVyID0ge1xuIiBcCi0gICAgIiAgICAgICAgICAgIFtAc3lt
Ym9sSXRlcmF0b3JdKCkge1xuIiBcCi0gICAgIiAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0
b3I7XG4iIFwKLSAgICAiICAgICAgICAgICAgfVxuIiBcCi0gICAgIiAgICAgICAgfTtcbiIgXAot
ICAgICJcbiIgXAotICAgICIgICAgICAgIGZvciAodmFyIHZhbHVlIG9mIHdyYXBwZXIpIHtcbiIg
XAotICAgICIgICAgICAgICAgICBpZiAobWFwRm4pXG4iIFwKLSAgICAiICAgICAgICAgICAgICAg
IEBwdXRCeVZhbERpcmVjdChyZXN1bHQsIGssIHRoaXNBcmcgPT09IHVuZGVmaW5lZCA/IG1hcEZu
KHZhbHVlLCBrKSA6IG1hcEZuLkBjYWxsKHRoaXNBcmcsIHZhbHVlLCBrKSk7XG4iIFwKLSAgICAi
ICAgICAgICAgICAgZWxzZVxuIiBcCi0gICAgIiAgICAgICAgICAgICAgICBAcHV0QnlWYWxEaXJl
Y3QocmVzdWx0LCBrLCB2YWx1ZSk7XG4iIFwKLSAgICAiICAgICAgICAgICAgayArPSAxO1xuIiBc
Ci0gICAgIiAgICAgICAgfVxuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICAgICAgcmVzdWx0Lmxl
bmd0aCA9IGs7XG4iIFwKLSAgICAiICAgICAgICByZXR1cm4gcmVzdWx0O1xuIiBcCi0gICAgIiAg
ICB9XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIHZhciBhcnJheUxpa2UgPSBAT2JqZWN0KGl0
ZW1zKTtcbiIgXAotICAgICIgICAgdmFyIGFycmF5TGlrZUxlbmd0aCA9IEB0b0xlbmd0aChhcnJh
eUxpa2UubGVuZ3RoKTtcbiIgXAotICAgICJcbiIgXAotICAgICIgICAgLy9cbiIgXAotICAgICIg
ICAgdmFyIHJlc3VsdCA9ICh0eXBlb2YgdGhpc09iaiA9PT0gXCJmdW5jdGlvblwiKSA/IEBPYmpl
Y3QobmV3IHRoaXNPYmooYXJyYXlMaWtlTGVuZ3RoKSkgOiBuZXcgQEFycmF5KGFycmF5TGlrZUxl
bmd0aCk7XG4iIFwKLSAgICAiXG4iIFwKLSAgICAiICAgIHZhciBrID0gMDtcbiIgXAotICAgICIg
ICAgd2hpbGUgKGsgPCBhcnJheUxpa2VMZW5ndGgpIHtcbiIgXAotICAgICIgICAgICAgIHZhciB2
YWx1ZSA9IGFycmF5TGlrZVtrXTtcbiIgXAotICAgICIgICAgICAgIGlmIChtYXBGbilcbiIgXAot
ICAgICIgICAgICAgICAgICBAcHV0QnlWYWxEaXJlY3QocmVzdWx0LCBrLCB0aGlzQXJnID09PSB1
bmRlZmluZWQgPyBtYXBGbih2YWx1ZSwgaykgOiBtYXBGbi5AY2FsbCh0aGlzQXJnLCB2YWx1ZSwg
aykpO1xuIiBcCi0gICAgIiAgICAgICAgZWxzZVxuIiBcCi0gICAgIiAgICAgICAgICAgIEBwdXRC
eVZhbERpcmVjdChyZXN1bHQsIGssIHZhbHVlKTtcbiIgXAotICAgICIgICAgICAgIGsgKz0gMTtc
biIgXAotICAgICIgICAgfVxuIiBcCi0gICAgIlxuIiBcCi0gICAgIiAgICByZXN1bHQubGVuZ3Ro
ID0gYXJyYXlMaWtlTGVuZ3RoO1xuIiBcCi0gICAgIiAgICByZXR1cm4gcmVzdWx0O1xuIiBcCi0g
ICAgIn0pXG4iIFwKLTsKLQotCi0jZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2Rl
TmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcCi1KU0M6OkZ1bmN0aW9uRXhlY3V0
YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXAote1wKLSAgICByZXR1cm4g
dm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0s
IHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyB9Ci1KU0NfRk9S
RUFDSF9CVUlMVElOX0NPREUoREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIERFRklO
RV9CVUlMVElOX0dFTkVSQVRPUgotCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwotIyMjIEVuZCBGaWxl
OiBKU0NCdWlsdGlucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1
Y3Rvci1NYWNyb3MuanMtcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVz
dHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNvbnN0cnVjdG9yLU1h
Y3Jvcy5qcy1yZXN1bHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU5NGViY2EwZjk1YWI5OTg4ZmM3NzUwYTZmZWMw
MzY3M2QwNjg4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3Jp
cHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1
Y3Rvci1NYWNyb3MuanMtcmVzdWx0CkBAIC0wLDAgKzEsNDkgQEAKKyMjIyBCZWdpbiBGaWxlOiBK
U0NCdWlsdGluc01hY3Jvcy5oCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIAorICovCisKKy8vIERPIE5PVCBFRElUIFRI
SVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZp
bGVzIGZvcgorLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKKworI2lmbmRlZiBKU0NCdWlsdGluc01h
Y3Jvc19oCisjZGVmaW5lIEpTQ0J1aWx0aW5zTWFjcm9zX2gKKworI2luY2x1ZGUgIkJ1aWx0aW5D
b25zdHJ1Y3RvckJ1aWx0aW5zLmgiCisKK25hbWVzcGFjZSBKU0MgeworCisjZGVmaW5lIEpTQ19G
T1JFQUNIX0JVSUxUSU5fQ09ERShtYWNybykgXAorICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5DT05T
VFJVQ1RPUl9CVUlMVElOX0NPREUobWFjcm8pIFwKKworI2RlZmluZSBKU0NfRk9SRUFDSF9VTklR
VUVfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcCisgICAgbWFjcm8oZnJvbSkgXAorICAg
IG1hY3JvKG9mKSBcCisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gSlNDQnVpbHRp
bnNNYWNyb3NfaAorCisjIyMgRW5kIEZpbGU6IEpTQ0J1aWx0aW5zTWFjcm9zLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5Db25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZh
U2NyaXB0Q29yZS1CdWlsdGluQ29uc3RydWN0b3ItU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDgy
NjZkMDVkNDAwZDVkNzY0YmYyZGQ2N2MyYjg2NWJjYTU3OWQzYjAuLjAyNTE3N2I3OTBlYWRmYTg4
Y2YwM2RmNGNjMzBjYjgyYzEwMmZmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFTY3JpcHRDb3JlLUJ1aWx0aW5D
b25zdHJ1Y3Rvci1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvSmF2YVNjcmlwdENvcmUtQnVpbHRpbkNv
bnN0cnVjdG9yLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMzEsMTAgKzMxLDEyIEBACiAjaWZuZGVm
IEJ1aWx0aW5Db25zdHJ1Y3RvckJ1aWx0aW5zX2gKICNkZWZpbmUgQnVpbHRpbkNvbnN0cnVjdG9y
QnVpbHRpbnNfaAogCi0KKyNpbmNsdWRlICJCdWlsdGluVXRpbHMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7CiBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7CitjbGFzcyBWTTsKK2VudW0gY2xhc3MgQ29u
c3RydWN0QWJpbGl0eSA6IHVuc2lnbmVkOwogfQogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVk
L0phdmFTY3JpcHRDb3JlLU9wZXJhdGlvbnMuUHJvbWlzZS1Db21iaW5lZC5qcy1yZXN1bHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9KYXZh
U2NyaXB0Q29yZS1PcGVyYXRpb25zLlByb21pc2UtQ29tYmluZWQuanMtcmVzdWx0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTQ1MTExMWNhN2Q2NzU1ZmUyNzVhMzk0NGU3NzE2NDFi
M2I5ZGY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL0phdmFT
Y3JpcHRDb3JlLU9wZXJhdGlvbnMuUHJvbWlzZS1Db21iaW5lZC5qcy1yZXN1bHQKKysrIC9kZXYv
bnVsbApAQCAtMSw0MTUgKzAsMCBAQAotIyMjIEJlZ2luIEZpbGU6IEpTQ0J1aWx0aW5zLmgKLS8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPi4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqIAotICovCi0KLS8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMg
YXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgotLy8gYnVp
bHRpbnMgYnkgdGhlIHNjcmlwdDogU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJh
dGUtanMtYnVpbHRpbnMucHkKLQotI2lmbmRlZiBKU0NCdWlsdGluc19oCi0jZGVmaW5lIEpTQ0J1
aWx0aW5zX2gKLQotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci1j
bGFzcyBWTTsKLQotZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7Ci19Ci0K
LW5hbWVzcGFjZSBKU0MgewotCi0vKiBPcGVyYXRpb25zLlByb21pc2UgKi8KLWV4dGVybiBjb25z
dCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlSXNQcm9taXNlQ29kZTsKLWV4dGVybiBjb25zdCBp
bnQgc19vcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlzZUNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3Qg
SlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VJc1Byb21pc2VDb2RlQ29u
c3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlTmV3
UHJvbWlzZVJlYWN0aW9uQ29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlz
ZU5ld1Byb21pc2VSZWFjdGlvbkNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VOZXdQcm9taXNlUmVhY3Rpb25Db2RlQ29uc3Ry
dWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlTmV3UHJv
bWlzZUNhcGFiaWxpdHlDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNl
TmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3Ry
dWN0QWJpbGl0eSBzX29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlQ29u
c3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlVHJp
Z2dlclByb21pc2VSZWFjdGlvbnNDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX29wZXJhdGlvbnNQ
cm9taXNlVHJpZ2dlclByb21pc2VSZWFjdGlvbnNDb2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzX29wZXJhdGlvbnNQcm9taXNlVHJpZ2dlclByb21pc2VSZWFj
dGlvbnNDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlv
bnNQcm9taXNlUmVqZWN0UHJvbWlzZUNvZGU7Ci1leHRlcm4gY29uc3QgaW50IHNfb3BlcmF0aW9u
c1Byb21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aDsKLWV4dGVybiBjb25zdCBKU0M6OkNvbnN0
cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlzZVJlamVjdFByb21pc2VDb2RlQ29uc3RydWN0
QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlRnVsZmlsbFBy
b21pc2VDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNlRnVsZmlsbFBy
b21pc2VDb2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX29w
ZXJhdGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVy
biBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlQ3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25z
Q29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmlu
Z0Z1bmN0aW9uc0NvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5
IHNfb3BlcmF0aW9uc1Byb21pc2VDcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNDb2RlQ29uc3RydWN0
QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJl
YWN0aW9uSm9iQ29kZTsKLWV4dGVybiBjb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZVByb21p
c2VSZWFjdGlvbkpvYkNvZGVMZW5ndGg7Ci1leHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlQ29uc3RydWN0QWJp
bGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29s
dmVUaGVuYWJsZUpvYkNvZGU7Ci1leHRlcm4gY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VQ
cm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iQ29kZUxlbmd0aDsKLWV4dGVybiBjb25zdCBKU0M6OkNv
bnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZXNvbHZlVGhlbmFibGVK
b2JDb2RlQ29uc3RydWN0QWJpbGl0eTsKLWV4dGVybiBjb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQ
cm9taXNlSW5pdGlhbGl6ZVByb21pc2VDb2RlOwotZXh0ZXJuIGNvbnN0IGludCBzX29wZXJhdGlv
bnNQcm9taXNlSW5pdGlhbGl6ZVByb21pc2VDb2RlTGVuZ3RoOwotZXh0ZXJuIGNvbnN0IEpTQzo6
Q29uc3RydWN0QWJpbGl0eSBzX29wZXJhdGlvbnNQcm9taXNlSW5pdGlhbGl6ZVByb21pc2VDb2Rl
Q29uc3RydWN0QWJpbGl0eTsKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9PUEVSQVRJT05TUFJPTUlT
RV9CVUlMVElOX0RBVEEobWFjcm8pIFwKLSAgICBtYWNybyhpc1Byb21pc2UsIG9wZXJhdGlvbnNQ
cm9taXNlSXNQcm9taXNlLCAxKSBcCi0gICAgbWFjcm8obmV3UHJvbWlzZVJlYWN0aW9uLCBvcGVy
YXRpb25zUHJvbWlzZU5ld1Byb21pc2VSZWFjdGlvbiwgMikgXAotICAgIG1hY3JvKG5ld1Byb21p
c2VDYXBhYmlsaXR5LCBvcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VDYXBhYmlsaXR5LCAxKSBc
Ci0gICAgbWFjcm8odHJpZ2dlclByb21pc2VSZWFjdGlvbnMsIG9wZXJhdGlvbnNQcm9taXNlVHJp
Z2dlclByb21pc2VSZWFjdGlvbnMsIDIpIFwKLSAgICBtYWNybyhyZWplY3RQcm9taXNlLCBvcGVy
YXRpb25zUHJvbWlzZVJlamVjdFByb21pc2UsIDIpIFwKLSAgICBtYWNybyhmdWxmaWxsUHJvbWlz
ZSwgb3BlcmF0aW9uc1Byb21pc2VGdWxmaWxsUHJvbWlzZSwgMikgXAotICAgIG1hY3JvKGNyZWF0
ZVJlc29sdmluZ0Z1bmN0aW9ucywgb3BlcmF0aW9uc1Byb21pc2VDcmVhdGVSZXNvbHZpbmdGdW5j
dGlvbnMsIDEpIFwKLSAgICBtYWNybyhwcm9taXNlUmVhY3Rpb25Kb2IsIG9wZXJhdGlvbnNQcm9t
aXNlUHJvbWlzZVJlYWN0aW9uSm9iLCAyKSBcCi0gICAgbWFjcm8ocHJvbWlzZVJlc29sdmVUaGVu
YWJsZUpvYiwgb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iLCAzKSBc
Ci0gICAgbWFjcm8oaW5pdGlhbGl6ZVByb21pc2UsIG9wZXJhdGlvbnNQcm9taXNlSW5pdGlhbGl6
ZVByb21pc2UsIDEpIFwKLQotI2RlZmluZSBKU0NfQlVJTFRJTl9PUEVSQVRJT05TUFJPTUlTRV9J
U1BST01JU0UgMQotI2RlZmluZSBKU0NfQlVJTFRJTl9PUEVSQVRJT05TUFJPTUlTRV9ORVdQUk9N
SVNFUkVBQ1RJT04gMQotI2RlZmluZSBKU0NfQlVJTFRJTl9PUEVSQVRJT05TUFJPTUlTRV9ORVdQ
Uk9NSVNFQ0FQQUJJTElUWSAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX09QRVJBVElPTlNQUk9NSVNF
X1RSSUdHRVJQUk9NSVNFUkVBQ1RJT05TIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9O
U1BST01JU0VfUkVKRUNUUFJPTUlTRSAxCi0jZGVmaW5lIEpTQ19CVUlMVElOX09QRVJBVElPTlNQ
Uk9NSVNFX0ZVTEZJTExQUk9NSVNFIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fT1BFUkFUSU9OU1BS
T01JU0VfQ1JFQVRFUkVTT0xWSU5HRlVOQ1RJT05TIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5fT1BF
UkFUSU9OU1BST01JU0VfUFJPTUlTRVJFQUNUSU9OSk9CIDEKLSNkZWZpbmUgSlNDX0JVSUxUSU5f
T1BFUkFUSU9OU1BST01JU0VfUFJPTUlTRVJFU09MVkVUSEVOQUJMRUpPQiAxCi0jZGVmaW5lIEpT
Q19CVUlMVElOX09QRVJBVElPTlNQUk9NSVNFX0lOSVRJQUxJWkVQUk9NSVNFIDEKLQotI2RlZmlu
ZSBKU0NfRk9SRUFDSF9CVUlMVElOX0NPREUobWFjcm8pIFwKLSAgICBtYWNybyhvcGVyYXRpb25z
UHJvbWlzZUlzUHJvbWlzZUNvZGUsIGlzUHJvbWlzZSwgc19vcGVyYXRpb25zUHJvbWlzZUlzUHJv
bWlzZUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VS
ZWFjdGlvbkNvZGUsIG5ld1Byb21pc2VSZWFjdGlvbiwgc19vcGVyYXRpb25zUHJvbWlzZU5ld1By
b21pc2VSZWFjdGlvbkNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZU5l
d1Byb21pc2VDYXBhYmlsaXR5Q29kZSwgbmV3UHJvbWlzZUNhcGFiaWxpdHksIHNfb3BlcmF0aW9u
c1Byb21pc2VOZXdQcm9taXNlQ2FwYWJpbGl0eUNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVy
YXRpb25zUHJvbWlzZVRyaWdnZXJQcm9taXNlUmVhY3Rpb25zQ29kZSwgdHJpZ2dlclByb21pc2VS
ZWFjdGlvbnMsIHNfb3BlcmF0aW9uc1Byb21pc2VUcmlnZ2VyUHJvbWlzZVJlYWN0aW9uc0NvZGVM
ZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZVJlamVjdFByb21pc2VDb2RlLCBy
ZWplY3RQcm9taXNlLCBzX29wZXJhdGlvbnNQcm9taXNlUmVqZWN0UHJvbWlzZUNvZGVMZW5ndGgp
IFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZUZ1bGZpbGxQcm9taXNlQ29kZSwgZnVsZmls
bFByb21pc2UsIHNfb3BlcmF0aW9uc1Byb21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGgpIFwK
LSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGUs
IGNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucywgc19vcGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29s
dmluZ0Z1bmN0aW9uc0NvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZVBy
b21pc2VSZWFjdGlvbkpvYkNvZGUsIHByb21pc2VSZWFjdGlvbkpvYiwgc19vcGVyYXRpb25zUHJv
bWlzZVByb21pc2VSZWFjdGlvbkpvYkNvZGVMZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25z
UHJvbWlzZVByb21pc2VSZXNvbHZlVGhlbmFibGVKb2JDb2RlLCBwcm9taXNlUmVzb2x2ZVRoZW5h
YmxlSm9iLCBzX29wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGVM
ZW5ndGgpIFwKLSAgICBtYWNybyhvcGVyYXRpb25zUHJvbWlzZUluaXRpYWxpemVQcm9taXNlQ29k
ZSwgaW5pdGlhbGl6ZVByb21pc2UsIHNfb3BlcmF0aW9uc1Byb21pc2VJbml0aWFsaXplUHJvbWlz
ZUNvZGVMZW5ndGgpIFwKLQotI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05B
TUUobWFjcm8pIFwKLSAgICBtYWNybyhjcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMpIFwKLSAgICBt
YWNybyhmdWxmaWxsUHJvbWlzZSkgXAotICAgIG1hY3JvKGluaXRpYWxpemVQcm9taXNlKSBcCi0g
ICAgbWFjcm8oaXNQcm9taXNlKSBcCi0gICAgbWFjcm8obmV3UHJvbWlzZUNhcGFiaWxpdHkpIFwK
LSAgICBtYWNybyhuZXdQcm9taXNlUmVhY3Rpb24pIFwKLSAgICBtYWNybyhwcm9taXNlUmVhY3Rp
b25Kb2IpIFwKLSAgICBtYWNybyhwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iKSBcCi0gICAgbWFj
cm8ocmVqZWN0UHJvbWlzZSkgXAotICAgIG1hY3JvKHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKSBc
Ci0KLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25O
YW1lLCBhcmd1bWVudENvdW50KSBcCi0gICAgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVO
YW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwotCi1KU0NfRk9SRUFDSF9CVUlMVElOX0NPREUoREVD
TEFSRV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9S
Ci0KLSNkZWZpbmUgSlNDX0JVSUxUSU5fRVhJU1RTKG9iamVjdCwgZnVuYykgZGVmaW5lZCBKU0Nf
QlVJTFRJTl8gIyMgb2JqZWN0ICMjIF8gIyMgZnVuYwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQot
I2VuZGlmIC8vIEpTQ0J1aWx0aW5zX2gKLQotIyMjIEVuZCBGaWxlOiBKU0NCdWlsdGlucy5oCi0K
LSMjIyBCZWdpbiBGaWxlOiBKU0NCdWlsdGlucy5jcHAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MTUgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KLSAqIAotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqIAotICov
Ci0KLS8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0
ZWQgZnJvbSBKYXZhU2NyaXB0IGZpbGVzIGZvcgotLy8gYnVpbHRpbnMgYnkgdGhlIHNjcmlwdDog
U291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkKLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCi0KLSNpbmNsdWRl
ICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKLSNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCi0jaW5jbHVk
ZSAiSlNDZWxsSW5saW5lcy5oIgotI2luY2x1ZGUgIlZNLmgiCi0KLW5hbWVzcGFjZSBKU0Mgewot
Ci1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlz
ZUNvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25z
dHJ1Y3Q7Ci1jb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZUlzUHJvbWlzZUNvZGVMZW5ndGgg
PSAxNTg7Ci1jb25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlSXNQcm9taXNlQ29kZSA9Ci0g
ICAiKGZ1bmN0aW9uIChwcm9taXNlKVxuIiBcCi0gICAie1xuIiBcCi0gICAiICAgIFwidXNlIHN0
cmljdFwiO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgcmV0dXJuIEBpc09iamVjdChwcm9taXNl
KSAmJiAhIXByb21pc2UuQHByb21pc2VTdGF0ZTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQotY29u
c3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VOZXdQcm9taXNlUmVh
Y3Rpb25Db2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90
Q29uc3RydWN0OwotY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VOZXdQcm9taXNlUmVhY3Rp
b25Db2RlTGVuZ3RoID0gMjIwOwotY29uc3QgY2hhciogc19vcGVyYXRpb25zUHJvbWlzZU5ld1By
b21pc2VSZWFjdGlvbkNvZGUgPQotICAgIihmdW5jdGlvbiAoY2FwYWJpbGl0eSwgaGFuZGxlcilc
biIgXAotICAgIntcbiIgXAotICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgIlxuIiBc
Ci0gICAiICAgIHJldHVybiB7XG4iIFwKLSAgICIgICAgICAgIEBjYXBhYmlsaXRpZXM6IGNhcGFi
aWxpdHksXG4iIFwKLSAgICIgICAgICAgIEBoYW5kbGVyOiBoYW5kbGVyXG4iIFwKLSAgICIgICAg
fTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNf
b3BlcmF0aW9uc1Byb21pc2VOZXdQcm9taXNlQ2FwYWJpbGl0eUNvZGVDb25zdHJ1Y3RBYmlsaXR5
ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19v
cGVyYXRpb25zUHJvbWlzZU5ld1Byb21pc2VDYXBhYmlsaXR5Q29kZUxlbmd0aCA9IDE0Mjc7Ci1j
b25zdCBjaGFyKiBzX29wZXJhdGlvbnNQcm9taXNlTmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlID0K
LSAgICIoZnVuY3Rpb24gKGNvbnN0cnVjdG9yKVxuIiBcCi0gICAie1xuIiBcCi0gICAiICAgIFwi
dXNlIHN0cmljdFwiO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgLy9cbiIgXAotICAgIiAgICBp
ZiAodHlwZW9mIGNvbnN0cnVjdG9yICE9PSBcImZ1bmN0aW9uXCIpXG4iIFwKLSAgICIgICAgICAg
IHRocm93IG5ldyBAVHlwZUVycm9yKFwicHJvbWlzZSBjYXBhYmlsaXR5IHJlcXVpcmVzIGEgY29u
c3RydWN0b3IgZnVuY3Rpb25cIik7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICB2YXIgcHJvbWlz
ZUNhcGFiaWxpdHkgPSB7XG4iIFwKLSAgICIgICAgICAgIEBwcm9taXNlOiB1bmRlZmluZWQsXG4i
IFwKLSAgICIgICAgICAgIEByZXNvbHZlOiB1bmRlZmluZWQsXG4iIFwKLSAgICIgICAgICAgIEBy
ZWplY3Q6IHVuZGVmaW5lZFxuIiBcCi0gICAiICAgIH07XG4iIFwKLSAgICJcbiIgXAotICAgIiAg
ICBmdW5jdGlvbiBleGVjdXRvcihyZXNvbHZlLCByZWplY3QpXG4iIFwKLSAgICIgICAge1xuIiBc
Ci0gICAiICAgICAgICBpZiAocHJvbWlzZUNhcGFiaWxpdHkuQHJlc29sdmUgIT09IHVuZGVmaW5l
ZClcbiIgXAotICAgIiAgICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwicmVzb2x2ZSBm
dW5jdGlvbiBpcyBhbHJlYWR5IHNldFwiKTtcbiIgXAotICAgIiAgICAgICAgaWYgKHByb21pc2VD
YXBhYmlsaXR5LkByZWplY3QgIT09IHVuZGVmaW5lZClcbiIgXAotICAgIiAgICAgICAgICAgIHRo
cm93IG5ldyBAVHlwZUVycm9yKFwicmVqZWN0IGZ1bmN0aW9uIGlzIGFscmVhZHkgc2V0XCIpO1xu
IiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAgIHByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlID0g
cmVzb2x2ZTtcbiIgXAotICAgIiAgICAgICAgcHJvbWlzZUNhcGFiaWxpdHkuQHJlamVjdCA9IHJl
amVjdDtcbiIgXAotICAgIiAgICB9XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICB2YXIgcHJvbWlz
ZSA9IG5ldyBjb25zdHJ1Y3RvcihleGVjdXRvcik7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICBp
ZiAodHlwZW9mIHByb21pc2VDYXBhYmlsaXR5LkByZXNvbHZlICE9PSBcImZ1bmN0aW9uXCIpXG4i
IFwKLSAgICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiZXhlY3V0b3IgZGlkIG5vdCB0
YWtlIGEgcmVzb2x2ZSBmdW5jdGlvblwiKTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIGlmICh0
eXBlb2YgcHJvbWlzZUNhcGFiaWxpdHkuQHJlamVjdCAhPT0gXCJmdW5jdGlvblwiKVxuIiBcCi0g
ICAiICAgICAgICB0aHJvdyBuZXcgQFR5cGVFcnJvcihcImV4ZWN1dG9yIGRpZCBub3QgdGFrZSBh
IHJlamVjdCBmdW5jdGlvblwiKTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHByb21pc2VDYXBh
YmlsaXR5LkBwcm9taXNlID0gcHJvbWlzZTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHJldHVy
biBwcm9taXNlQ2FwYWJpbGl0eTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VUcmlnZ2VyUHJvbWlzZVJlYWN0aW9u
c0NvZGVDb25zdHJ1Y3RBYmlsaXR5ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25z
dHJ1Y3Q7Ci1jb25zdCBpbnQgc19vcGVyYXRpb25zUHJvbWlzZVRyaWdnZXJQcm9taXNlUmVhY3Rp
b25zQ29kZUxlbmd0aCA9IDI2OTsKLWNvbnN0IGNoYXIqIHNfb3BlcmF0aW9uc1Byb21pc2VUcmln
Z2VyUHJvbWlzZVJlYWN0aW9uc0NvZGUgPQotICAgIihmdW5jdGlvbiAocmVhY3Rpb25zLCBhcmd1
bWVudClcbiIgXAotICAgIntcbiIgXAotICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAg
IlxuIiBcCi0gICAiICAgIGZvciAodmFyIGluZGV4ID0gMCwgbGVuZ3RoID0gcmVhY3Rpb25zLmxl
bmd0aDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpXG4iIFwKLSAgICIgICAgICAgIEBlbnF1ZXVl
Sm9iKEBwcm9taXNlUmVhY3Rpb25Kb2IsIFtyZWFjdGlvbnNbaW5kZXhdLCBhcmd1bWVudF0pO1xu
IiBcCi0gICAifSlcbiIgXAotOwotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVy
YXRpb25zUHJvbWlzZVJlamVjdFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29u
c3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfb3BlcmF0aW9uc1By
b21pc2VSZWplY3RQcm9taXNlQ29kZUxlbmd0aCA9IDU0MTsKLWNvbnN0IGNoYXIqIHNfb3BlcmF0
aW9uc1Byb21pc2VSZWplY3RQcm9taXNlQ29kZSA9Ci0gICAiKGZ1bmN0aW9uIChwcm9taXNlLCBy
ZWFzb24pXG4iIFwKLSAgICJ7XG4iIFwKLSAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAg
ICJcbiIgXAotICAgIiAgICB2YXIgcmVhY3Rpb25zID0gcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJl
YWN0aW9ucztcbiIgXAotICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVzdWx0ID0gcmVhc29uO1xu
IiBcCi0gICAiICAgIHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zID0gdW5kZWZpbmVk
O1xuIiBcCi0gICAiICAgIHByb21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmlu
ZWQ7XG4iIFwKLSAgICIgICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0gQHByb21pc2VSZWplY3Rl
ZDtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJv
bWlzZVJlamVjdGVkKHByb21pc2UsIHJlYXNvbiwgcmVhY3Rpb25zKTtcbiIgXAotICAgIlxuIiBc
Ci0gICAiICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHJlYXNvbik7XG4i
IFwKLSAgICJ9KVxuIiBcCi07Ci0KLWNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzX29wZXJh
dGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VDb2RlQ29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29u
c3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0OwotY29uc3QgaW50IHNfb3BlcmF0aW9uc1By
b21pc2VGdWxmaWxsUHJvbWlzZUNvZGVMZW5ndGggPSA1NDA7Ci1jb25zdCBjaGFyKiBzX29wZXJh
dGlvbnNQcm9taXNlRnVsZmlsbFByb21pc2VDb2RlID0KLSAgICIoZnVuY3Rpb24gKHByb21pc2Us
IHZhbHVlKVxuIiBcCi0gICAie1xuIiBcCi0gICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0g
ICAiXG4iIFwKLSAgICIgICAgdmFyIHJlYWN0aW9ucyA9IHByb21pc2UuQHByb21pc2VGdWxmaWxs
UmVhY3Rpb25zO1xuIiBcCi0gICAiICAgIHByb21pc2UuQHByb21pc2VSZXN1bHQgPSB2YWx1ZTtc
biIgXAotICAgIiAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5l
ZDtcbiIgXAotICAgIiAgICBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZp
bmVkO1xuIiBcCi0gICAiICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlRnVsZmls
bGVkO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5w
cm9taXNlRnVsZmlsbGVkKHByb21pc2UsIHZhbHVlLCByZWFjdGlvbnMpO1xuIiBcCi0gICAiXG4i
IFwKLSAgICIgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpO1xu
IiBcCi0gICAifSlcbiIgXAotOwotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVy
YXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGVDb25zdHJ1Y3RBYmlsaXR5
ID0gSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3Q7Ci1jb25zdCBpbnQgc19v
cGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGVMZW5ndGggPSAxNDY4
OwotY29uc3QgY2hhciogc19vcGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9u
c0NvZGUgPQotICAgIihmdW5jdGlvbiAocHJvbWlzZSlcbiIgXAotICAgIntcbiIgXAotICAgIiAg
ICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHZhciBhbHJlYWR5UmVz
b2x2ZWQgPSBmYWxzZTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHZhciByZXNvbHZlID0gZnVu
Y3Rpb24gKHJlc29sdXRpb24pIHtcbiIgXAotICAgIiAgICAgICAgaWYgKGFscmVhZHlSZXNvbHZl
ZClcbiIgXAotICAgIiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4iIFwKLSAgICIgICAg
ICAgIGFscmVhZHlSZXNvbHZlZCA9IHRydWU7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICAgICAg
aWYgKHJlc29sdXRpb24gPT09IHByb21pc2UpXG4iIFwKLSAgICIgICAgICAgICAgICByZXR1cm4g
QHJlamVjdFByb21pc2UocHJvbWlzZSwgbmV3IEBUeXBlRXJyb3IoXCJSZXNvbHZlIGEgcHJvbWlz
ZSB3aXRoIGl0c2VsZlwiKSk7XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICAgICAgaWYgKCFAaXNP
YmplY3QocmVzb2x1dGlvbikpXG4iIFwKLSAgICIgICAgICAgICAgICByZXR1cm4gQGZ1bGZpbGxQ
cm9taXNlKHByb21pc2UsIHJlc29sdXRpb24pO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAg
IHZhciB0aGVuO1xuIiBcCi0gICAiICAgICAgICB0cnkge1xuIiBcCi0gICAiICAgICAgICAgICAg
dGhlbiA9IHJlc29sdXRpb24udGhlbjtcbiIgXAotICAgIiAgICAgICAgfSBjYXRjaCAoZXJyb3Ip
IHtcbiIgXAotICAgIiAgICAgICAgICAgIHJldHVybiBAcmVqZWN0UHJvbWlzZShwcm9taXNlLCBl
cnJvcik7XG4iIFwKLSAgICIgICAgICAgIH1cbiIgXAotICAgIlxuIiBcCi0gICAiICAgICAgICBp
ZiAodHlwZW9mIHRoZW4gIT09ICdmdW5jdGlvbicpXG4iIFwKLSAgICIgICAgICAgICAgICByZXR1
cm4gQGZ1bGZpbGxQcm9taXNlKHByb21pc2UsIHJlc29sdXRpb24pO1xuIiBcCi0gICAiXG4iIFwK
LSAgICIgICAgICAgIEBlbnF1ZXVlSm9iKEBwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iLCBbcHJv
bWlzZSwgcmVzb2x1dGlvbiwgdGhlbl0pO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgICAgIHJl
dHVybiB1bmRlZmluZWQ7XG4iIFwKLSAgICIgICAgfTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAg
IHZhciByZWplY3QgPSBmdW5jdGlvbiAocmVhc29uKSB7XG4iIFwKLSAgICIgICAgICAgIGlmIChh
bHJlYWR5UmVzb2x2ZWQpXG4iIFwKLSAgICIgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xu
IiBcCi0gICAiICAgICAgICBhbHJlYWR5UmVzb2x2ZWQgPSB0cnVlO1xuIiBcCi0gICAiXG4iIFwK
LSAgICIgICAgICAgIHJldHVybiBAcmVqZWN0UHJvbWlzZShwcm9taXNlLCByZWFzb24pO1xuIiBc
Ci0gICAiICAgIH07XG4iIFwKLSAgICJcbiIgXAotICAgIiAgICByZXR1cm4ge1xuIiBcCi0gICAi
ICAgICAgICBAcmVzb2x2ZTogcmVzb2x2ZSxcbiIgXAotICAgIiAgICAgICAgQHJlamVjdDogcmVq
ZWN0XG4iIFwKLSAgICIgICAgfTtcbiIgXAotICAgIn0pXG4iIFwKLTsKLQotY29uc3QgSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2Rl
Q29uc3RydWN0QWJpbGl0eSA9IEpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0
OwotY29uc3QgaW50IHNfb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlTGVu
Z3RoID0gNDkzOwotY29uc3QgY2hhciogc19vcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZWFjdGlv
bkpvYkNvZGUgPQotICAgIihmdW5jdGlvbiAocmVhY3Rpb24sIGFyZ3VtZW50KVxuIiBcCi0gICAi
e1xuIiBcCi0gICAiICAgIFwidXNlIHN0cmljdFwiO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAg
dmFyIHByb21pc2VDYXBhYmlsaXR5ID0gcmVhY3Rpb24uQGNhcGFiaWxpdGllcztcbiIgXAotICAg
IlxuIiBcCi0gICAiICAgIHZhciByZXN1bHQ7XG4iIFwKLSAgICIgICAgdHJ5IHtcbiIgXAotICAg
IiAgICAgICAgcmVzdWx0ID0gcmVhY3Rpb24uQGhhbmRsZXIuQGNhbGwodW5kZWZpbmVkLCBhcmd1
bWVudCk7XG4iIFwKLSAgICIgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiIgXAotICAgIiAgICAgICAg
cmV0dXJuIHByb21pc2VDYXBhYmlsaXR5LkByZWplY3QuQGNhbGwodW5kZWZpbmVkLCBlcnJvcik7
XG4iIFwKLSAgICIgICAgfVxuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgcmV0dXJuIHByb21pc2VD
YXBhYmlsaXR5LkByZXNvbHZlLkBjYWxsKHVuZGVmaW5lZCwgcmVzdWx0KTtcbiIgXAotICAgIn0p
XG4iIFwKLTsKLQotY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfb3BlcmF0aW9uc1Byb21p
c2VQcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNv
bnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX29wZXJhdGlvbnNQ
cm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGVMZW5ndGggPSA0NTM7Ci1jb25zdCBj
aGFyKiBzX29wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGUgPQot
ICAgIihmdW5jdGlvbiAocHJvbWlzZVRvUmVzb2x2ZSwgdGhlbmFibGUsIHRoZW4pXG4iIFwKLSAg
ICJ7XG4iIFwKLSAgICIgICAgXCJ1c2Ugc3RyaWN0XCI7XG4iIFwKLSAgICJcbiIgXAotICAgIiAg
ICB2YXIgcmVzb2x2aW5nRnVuY3Rpb25zID0gQGNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9ucyhwcm9t
aXNlVG9SZXNvbHZlKTtcbiIgXAotICAgIlxuIiBcCi0gICAiICAgIHRyeSB7XG4iIFwKLSAgICIg
ICAgICAgIHJldHVybiB0aGVuLkBjYWxsKHRoZW5hYmxlLCByZXNvbHZpbmdGdW5jdGlvbnMuQHJl
c29sdmUsIHJlc29sdmluZ0Z1bmN0aW9ucy5AcmVqZWN0KTtcbiIgXAotICAgIiAgICB9IGNhdGNo
IChlcnJvcikge1xuIiBcCi0gICAiICAgICAgICByZXR1cm4gcmVzb2x2aW5nRnVuY3Rpb25zLkBy
ZWplY3QuQGNhbGwodW5kZWZpbmVkLCBlcnJvcik7XG4iIFwKLSAgICIgICAgfVxuIiBcCi0gICAi
fSlcbiIgXAotOwotCi1jb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc19vcGVyYXRpb25zUHJv
bWlzZUluaXRpYWxpemVQcm9taXNlQ29kZUNvbnN0cnVjdEFiaWxpdHkgPSBKU0M6OkNvbnN0cnVj
dEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdDsKLWNvbnN0IGludCBzX29wZXJhdGlvbnNQcm9taXNl
SW5pdGlhbGl6ZVByb21pc2VDb2RlTGVuZ3RoID0gNzMxOwotY29uc3QgY2hhciogc19vcGVyYXRp
b25zUHJvbWlzZUluaXRpYWxpemVQcm9taXNlQ29kZSA9Ci0gICAiKGZ1bmN0aW9uIChleGVjdXRv
cilcbiIgXAotICAgIntcbiIgXAotICAgIiAgICBcInVzZSBzdHJpY3RcIjtcbiIgXAotICAgIlxu
IiBcCi0gICAiICAgIGlmICh0eXBlb2YgZXhlY3V0b3IgIT09ICdmdW5jdGlvbicpXG4iIFwKLSAg
ICIgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKFwiUHJvbWlzZSBjb25zdHJ1Y3RvciB0YWtl
cyBhIGZ1bmN0aW9uIGFyZ3VtZW50XCIpO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgdGhpcy5A
cHJvbWlzZVN0YXRlID0gQHByb21pc2VQZW5kaW5nO1xuIiBcCi0gICAiICAgIHRoaXMuQHByb21p
c2VGdWxmaWxsUmVhY3Rpb25zID0gW107XG4iIFwKLSAgICIgICAgdGhpcy5AcHJvbWlzZVJlamVj
dFJlYWN0aW9ucyA9IFtdO1xuIiBcCi0gICAiXG4iIFwKLSAgICIgICAgdmFyIHJlc29sdmluZ0Z1
bmN0aW9ucyA9IEBjcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnModGhpcyk7XG4iIFwKLSAgICIgICAg
dHJ5IHtcbiIgXAotICAgIiAgICAgICAgZXhlY3V0b3IocmVzb2x2aW5nRnVuY3Rpb25zLkByZXNv
bHZlLCByZXNvbHZpbmdGdW5jdGlvbnMuQHJlamVjdCk7XG4iIFwKLSAgICIgICAgfSBjYXRjaCAo
ZXJyb3IpIHtcbiIgXAotICAgIiAgICAgICAgcmV0dXJuIHJlc29sdmluZ0Z1bmN0aW9ucy5AcmVq
ZWN0LkBjYWxsKHVuZGVmaW5lZCwgZXJyb3IpO1xuIiBcCi0gICAiICAgIH1cbiIgXAotICAgIlxu
IiBcCi0gICAiICAgIHJldHVybiB0aGlzO1xuIiBcCi0gICAifSlcbiIgXAotOwotCi0KLSNkZWZp
bmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3Vt
ZW50Q291bnQpIFwKLUpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9y
KEpTQzo6Vk0mIHZtKSBcCi17XAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+
Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCkt
PmNvZGVOYW1lIyNTb3VyY2UoKSk7IH0KLUpTQ19GT1JFQUNIX0JVSUxUSU5fQ09ERShERUZJTkVf
QlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCi0KLQot
fSAvLyBuYW1lc3BhY2UgSlNDCi0jIyMgRW5kIEZpbGU6IEpTQ0J1aWx0aW5zLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0
ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25kaXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dl
YkNvcmUtQXJiaXRyYXJ5Q29uZGl0aW9uYWxHdWFyZC1TZXBhcmF0ZS5qcy1yZXN1bHQKaW5kZXgg
OThjMWYzY2Q2ZWE5NThmNmM1NDQ2MzkzY2FjMDlhYjViZTRmNTY0OC4uZTgxOWJhZmRkYWM2ZTc5
YTgzN2MxMDFmMzU5MDA3NWRhNTQzMTVhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1BcmJpdHJhcnlDb25k
aXRpb25hbEd1YXJkLVNlcGFyYXRlLmpzLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUFyYml0cmFyeUNvbmRp
dGlvbmFsR3VhcmQtU2VwYXJhdGUuanMtcmVzdWx0CkBAIC0zNyw2ICszNyw4IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgVk07CitlbnVtIGNs
YXNzIENvbnN0cnVjdEFiaWxpdHkgOiB1bnNpZ25lZDsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRp
bnMvZXhwZWN0ZWQvV2ViQ29yZS1HdWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJD
b3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdAppbmRleCBiZWE3YWQzMTFiNTgx
ZWVjYzZmYzk2ZTEyNjAxMmRlNTE4OGU4MWI2Li4wMWI0NWE1ZjJkODQ1M2ZhMzNiMDQxMmI4YTdl
N2U0YWFjYjM1Y2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90
ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpz
LXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlu
cy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAt
MzcsNiArMzcsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJs
ZTsKK2NsYXNzIFZNOworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFs
QnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0
cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLUd1YXJkZWRJbnRlcm5hbEJ1aWx0aW4t
U2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDhkOTg4ODkzY2RkZjdkNWQ3MzcwMjMzYjg0ZWI5ZGVk
YTZkYzdhMDEuLmI4ZjMyNTdhZmMwZGE1MDRkNWQ0MTU3Y2VkMGY2ZjFmZDZkMjY1NTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVj
dGVkL1dlYkNvcmUtR3VhcmRlZEludGVybmFsQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
V2ViQ29yZS1HdWFyZGVkSW50ZXJuYWxCdWlsdGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMzcs
NiArMzcsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsK
K2NsYXNzIFZNOworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
Y3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5ndWFyZGVkQnVpbHRpbi1T
ZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9i
dWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLVVuZ3VhcmRlZEJ1aWx0aW4tU2VwYXJhdGUuanMtcmVz
dWx0CmluZGV4IDJkOGEwYWIzY2Y2MmExNDQ5Njg3NDNlNmM5ZmE3NDc1MmRiYjc5ZGMuLmU4MmUx
YTAxMjg5NWE1MTllZTIxMTM2MDRiMjBiN2FlNDE2MTVkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVjdGVkL1dlYkNvcmUtVW5n
dWFyZGVkQnVpbHRpbi1TZXBhcmF0ZS5qcy1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQvV2ViQ29yZS1Vbmd1YXJkZWRCdWls
dGluLVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworZW51bSBjbGFzcyBDb25z
dHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0aW5zL2V4cGVj
dGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU2NyaXB0cy90ZXN0cy9idWlsdGlucy9leHBlY3RlZC9XZWJDb3JlLXhtbENh
c2luZ1Rlc3QtU2VwYXJhdGUuanMtcmVzdWx0CmluZGV4IDg5OWNjNGU0ZDAzODQzMzg3OTUwNzJl
MTk5ZmNkNmNhNjQ2MmI0NTIuLjdiNWQ4YmExZjgzMWYxMWEwZjUyMjdjNWQzNjlmOWE2YzVhM2M1
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9TY3JpcHRzL3Rlc3RzL2J1aWx0
aW5zL2V4cGVjdGVkL1dlYkNvcmUteG1sQ2FzaW5nVGVzdC1TZXBhcmF0ZS5qcy1yZXN1bHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NjcmlwdHMvdGVzdHMvYnVpbHRpbnMvZXhwZWN0ZWQv
V2ViQ29yZS14bWxDYXNpbmdUZXN0LVNlcGFyYXRlLmpzLXJlc3VsdApAQCAtMzcsNiArMzcsOCBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZN
OworZW51bSBjbGFzcyBDb25zdHJ1Y3RBYmlsaXR5IDogdW5zaWduZWQ7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluRXhlY3V0YWJsZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWls
dGluRXhlY3V0YWJsZXMuaAppbmRleCBlYzhkNTc3MDRiODdjNTg0YTkzNmRkZTQxN2Q2MjlmODU3
YjM2NTcxLi4yZTk0NTUxZTQ5NTFhM2I4MGI3MTFmMDVhMmE5ODVmZjE4NzI2YWZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5o
CkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEJ1aWx0aW5FeGVjdXRhYmxlc19oCiAjZGVmaW5l
IEJ1aWx0aW5FeGVjdXRhYmxlc19oCiAKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgorI2luY2x1
ZGUgIkpTQ0J1aWx0aW5zTWFjcm9zLmgiCiAjaW5jbHVkZSAiUGFyc2VyTW9kZXMuaCIKICNpbmNs
dWRlICJTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV2Vhay5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDI5ZDBhMzViZjY1NzZmYmQ1NzFm
ZGFlMTgxNzFkMDlkNzRjZjFjZTcuLjVhNjY1M2M1MDA1OWZjYjlhOTIyZDFhMzJmMWEwZTE1Njc0
Yzg1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGlu
TmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVz
LmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ1aWx0aW5VdGlscy5oIgogI2luY2x1
ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKKyNpbmNs
dWRlICJKU0NCdWlsdGluc01hY3Jvcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDEsMTQg
KzQxLDE0IEBAIGNsYXNzIEJ1aWx0aW5OYW1lcyB7CiBwdWJsaWM6CiAgICAgQnVpbHRpbk5hbWVz
KFZNKiB2bSwgQ29tbW9uSWRlbnRpZmllcnMqIGNvbW1vbklkZW50aWZpZXJzKQogICAgICAgICA6
IG1fZW1wdHlJZGVudGlmaWVyKGNvbW1vbklkZW50aWZpZXJzLT5lbXB0eUlkZW50aWZpZXIpCi0g
ICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxU
SU5fTkFNRVMpCisgICAgICAgIEpTQ19GT1JFQUNIX1VOSVFVRV9CVUlMVElOX0ZVTkNUSU9OX05B
TUUoSU5JVElBTElaRV9CVUlMVElOX05BTUVTKQogICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVf
SURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUykK
ICAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9T
WU1CT0woSU5JVElBTElaRV9CVUlMVElOX1NZTUJPTFMpCiAgICAgewotICAgICAgICBKU0NfRk9S
RUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJQ19F
TlRSWSkKKyAgICAgICAgSlNDX0ZPUkVBQ0hfVU5JUVVFX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJ
TklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQogICAgICAgICBKU0NfQ09NTU9OX1BS
SVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJJVkFURV9U
T19QVUJMSUNfRU5UUlkpCiAgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19F
QUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkp
Ci0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX1BV
QkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAgICAgICBKU0NfRk9SRUFDSF9VTklRVUVfQlVJTFRJ
Tl9GVU5DVElPTl9OQU1FKElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCiAgICAg
ICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSU5J
VElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKICAgICAgICAgSlNDX0NPTU1PTl9QUklW
QVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElaRV9QVUJMSUNf
VE9fUFJJVkFURV9FTlRSWSkKICAgICB9CkBAIC02MSwxMyArNjEsMTMgQEAgcHVibGljOgogICAg
IAogICAgIHZvaWQgYXBwZW5kRXh0ZXJuYWxOYW1lKGNvbnN0IElkZW50aWZpZXImIHB1YmxpY05h
bWUsIGNvbnN0IElkZW50aWZpZXImIHByaXZhdGVOYW1lKTsKIAotICAgIEpTQ19GT1JFQUNIX0JV
SUxUSU5fRlVOQ1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUikK
KyAgICBKU0NfRk9SRUFDSF9VTklRVUVfQlVJTFRJTl9GVU5DVElPTl9OQU1FKERFQ0xBUkVfQlVJ
TFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKQogICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElG
SUVSU19FQUNIX1BST1BFUlRZX05BTUUoREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNT
T1IpCiAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9T
WU1CT0woREVDTEFSRV9CVUlMVElOX1NZTUJPTF9BQ0NFU1NPUikKIAogcHJpdmF0ZToKICAgICBJ
ZGVudGlmaWVyIG1fZW1wdHlJZGVudGlmaWVyOwotICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVO
Q1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5fTkFNRVMpCisgICAgSlNDX0ZPUkVBQ0hfVU5JUVVF
X0JVSUxUSU5fRlVOQ1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5fTkFNRVMpCiAgICAgSlNDX0NP
TU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShERUNMQVJFX0JVSUxU
SU5fTkFNRVMpCiAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9L
Tk9XTl9TWU1CT0woREVDTEFSRV9CVUlMVElOX1NZTUJPTFMpCiAgICAgdHlwZWRlZiBIYXNoTWFw
PFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4sIGNvbnN0IElkZW50aWZpZXIqLCBJZGVudGlmaWVy
UmVwSGFzaD4gQnVpbHRpbk5hbWVzTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5VdGlscy5oCmluZGV4IDA3YzI5YTY1Zjg0NmFlODI1YmY2ZDZiNTU2OGVhZDdi
NzhlZjRjMzcuLmRhNDllYWZlYTAwMGQ0MjdkZGQ4NDY3M2I1Y2M1YmE4MzhjYjA3YjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzEsOCArMzEsMTQgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKKyNkZWZpbmUgSlNDX0JVSUxUSU5fRVhJU1RTKG9iamVjdCwgZnVuYykgZGVm
aW5lZCBKU0NfQlVJTFRJTl8gIyMgb2JqZWN0ICMjIF8gIyMgZnVuYworCiAjZGVmaW5lIElOSVRJ
QUxJWkVfQlVJTFRJTl9OQU1FUyhuYW1lKSAsIG1fIyNuYW1lKEpTQzo6SWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgI25hbWUpKSwgbV8jI25hbWUjI1ByaXZhdGVOYW1lKEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVVpZChKU0M6OlByaXZhdGVOYW1lKEpTQzo6UHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9u
LCBBU0NJSUxpdGVyYWwoIlByaXZhdGVTeW1ib2wuIiAjbmFtZSkpKSkKLSNkZWZpbmUgREVDTEFS
RV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZTsgY29u
c3QgSlNDOjpJZGVudGlmaWVyIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsKKworI2RlZmluZSBERUNM
QVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgXAorICAgIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMj
bmFtZTsgXAorICAgIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7
CisgICAgCiAjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5hbWUp
IFwKICAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1B1YmxpY05hbWUoKSBjb25zdCB7
IHJldHVybiBtXyMjbmFtZTsgfSBcCiAgICAgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBuYW1lIyNQ
cml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxlCmluZGV4IDg0NDQxYTMzNTNhZWQxODQ2
NWNjNzQzNDQ4YjhjMDJmMDQ1MjJiNDMuLmE2MGM3NjZhYjRkZGYwZmJiNzlhMDMzYmZmOWVjMmM4
N2Q3YjNhYjUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90
YWJsZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKQEAgLTI1
OCwxMyArMjU4LDE4IEBAIHN1YiBvdXRwdXQoKSB7CiAgICAgbXkgJG5hbWVJbmRleCA9ICIke25h
bWV9SW5kZXgiOwogICAgICRuYW1lSW5kZXggPX4gcy86L18vZzsKIAorICAgIG15ICRjbGFzc05h
bWUgPSB1Y2ZpcnN0KCRuYW1lKTsKKyAgICAkY2xhc3NOYW1lID1+IHMvVGFibGUkLy87CisgICAg
JGNsYXNzTmFtZSA9fiBzL1wuLy9nOworCiAgICAgcHJpbnQgIlxuIjsKLSAgICBwcmludCAiI2lu
Y2x1ZGUgXCJKU0NCdWlsdGlucy5oXCJcbiIgaWYgKCRpbmNsdWRlQnVpbHRpbik7CisgICAgcHJp
bnQgIiNpbmNsdWRlIFwiJHtjbGFzc05hbWV9QnVpbHRpbnMuaFwiXG4iIGlmICgkaW5jbHVkZUJ1
aWx0aW4pOwogICAgIHByaW50ICIjaW5jbHVkZSBcIkxvb2t1cC5oXCJcbiIgaWYgKCRpbmNsdWRl
TG9va3VwKTsKICAgICBwcmludCAiXG4iOwogICAgIHByaW50ICJuYW1lc3BhY2UgSlNDIHtcbiI7
CiAgICAgcHJpbnQgIlxuIjsKICAgICBwcmludCAic3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0
SGFzaEluZGV4ICR7bmFtZUluZGV4fVxbJGNvbXBhY3RTaXplXF0gPSB7XG4iOworCiAgICAgZm9y
IChteSAkaSA9IDA7ICRpIDwgJGNvbXBhY3RTaXplOyAkaSsrKSB7CiAgICAgICAgIG15ICRUID0g
LTE7CiAgICAgICAgIGlmIChkZWZpbmVkKCR0YWJsZVskaV0pKSB7ICRUID0gJHRhYmxlWyRpXTsg
fQpAQCAtMzE1LDEwICszMjAsMTMgQEAgc3ViIG91dHB1dCgpIHsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmICgkdmFsdWVzWyRpXXsidHlwZSJ9IGVxICJGdW5jdGlvbiIgJiYgJGluY2x1ZGVCdWls
dGluKSAgewotICAgICAgICAgICAgbXkgJHRhYmxlSGVhZCA9ICRuYW1lOwotICAgICAgICAgICAg
JHRhYmxlSGVhZCA9fiBzL1RhYmxlJC8vOwotICAgICAgICAgICAgcHJpbnQgIiAjaWYgSlNDX0JV
SUxUSU5fRVhJU1RTKCIgLiB1YygkdGFibGVIZWFkKSAuICIsICIgLiB1Yygka2V5KSAuIilcbiI7
Ci0gICAgICAgICAgICBwcmludCAiICAgeyBcIiRrZXlcIiwgKCgkYXR0cnNbJGldKSAmIH5GdW5j
dGlvbikgfCBCdWlsdGluLCAkaW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxCdWls
dGluR2VuZXJhdG9yPigiIC4gJHRhYmxlSGVhZCAuIHVjZmlyc3QoJGtleSkgLiAiQ29kZUdlbmVy
YXRvciksIChpbnRwdHJfdCkkc2Vjb25kVmFsdWUgfSB9LFxuIjsKKyAgICAgICAgICAgIG15ICRv
YmplY3RNYWNybyA9ICRuYW1lOworICAgICAgICAgICAgJG9iamVjdE1hY3JvID1+IHMvVGFibGUk
Ly87CisgICAgICAgICAgICAkb2JqZWN0TWFjcm8gPX4gcy8oUHJvdG90eXBlfFByb21pc2UpJC9f
JHsxfS87CisgICAgICAgICAgICAkb2JqZWN0TWFjcm8gPX4gcy9cLi9fL2c7CisgICAgICAgICAg
ICAkb2JqZWN0TWFjcm8gPSB1Yygkb2JqZWN0TWFjcm8pOworICAgICAgICAgICAgcHJpbnQgIiAj
aWYgSlNDX0JVSUxUSU5fRVhJU1RTKCRvYmplY3RNYWNybywgIiAuIHVjKCRrZXkpIC4iKVxuIjsK
KyAgICAgICAgICAgIHByaW50ICIgICB7IFwiJGtleVwiLCAoKCRhdHRyc1skaV0pICYgfkZ1bmN0
aW9uKSB8IEJ1aWx0aW4sICRpbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0
aW5HZW5lcmF0b3I+KCIgLiBsY2ZpcnN0KCRjbGFzc05hbWUpIC4gdWNmaXJzdCgka2V5KSAuICJD
b2RlR2VuZXJhdG9yKSwgKGludHB0cl90KSRzZWNvbmRWYWx1ZSB9IH0sXG4iOwogICAgICAgICAg
ICAgcHJpbnQgIiAjZWxzZVxuIgogICAgICAgICB9CiAgICAgICAgIHByaW50ICIgICB7IFwiJGtl
eVwiLCAkYXR0cnNbJGldLCAkaW50cmluc2ljLCB7IChpbnRwdHJfdCkiIC4gJGZpcnN0Q2FzdFN0
ciAuICIoJGZpcnN0VmFsdWUpLCAoaW50cHRyX3QpIiAuICRzZWNvbmRDYXN0U3RyIC4gIigkc2Vj
b25kVmFsdWUpIH0gfSxcbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAKaW5kZXggMmRiMjU5MjZkMTkwYWJlOTY4YzdmYTI0MTNkZmFmMTcz
Zjg0YjBhYy4uNDdhMWM5YTg5NmJlZTAwODQ4MDdlZDM4MWMxNzIzN2NiYjNkOGU0NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAt
MjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5UHJvdG90
eXBlLmgiCiAKKyNpbmNsdWRlICJBcnJheVByb3RvdHlwZUJ1aWx0aW5zLmgiCiAjaW5jbHVkZSAi
QnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkNhY2hlZENhbGwuaCIKICNpbmNsdWRlICJD
b2RlQmxvY2suaCIKQEAgLTMyLDcgKzMzLDYgQEAKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgog
I2luY2x1ZGUgIkpJVC5oIgogI2luY2x1ZGUgIkpTQXJyYXlJdGVyYXRvci5oIgotI2luY2x1ZGUg
IkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTU3Ry
aW5nQnVpbGRlci5oIgogI2luY2x1ZGUgIkpTU3RyaW5nSm9pbmVyLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5jcHAKaW5kZXggZDZk
NGI3NWEzZDVkNDgwNzljNzVhMTIwMmU0ZDgwOTljMTY3NDkxMy4uNzE1MmMyOTI3NTE4YmQ4NWJh
MmJhNThhZTE4NWM0ZTk4NTFjYjY5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcApAQCAtMjMsNyArMjMsNiBAQAogCiAjaW5j
bHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKLSNp
bmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1ZGUgIlByaXZhdGVOYW1lLmgiCiAKIG5hbWVz
cGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSXRl
cmF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSXRlcmF0
b3JQcm90b3R5cGUuY3BwCmluZGV4IDNlNGVjOTMwMzcxZmU4ZWY0ZTAwZDIxZTMwODY3MjEyY2Fh
ODM1ZTguLjExNTc3Mzg2M2ZiYzkwOWFiZDE4YWQ5NjgzYmM4M2E3MDJjMjQ3MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0l0ZXJhdG9yUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JdGVyYXRvclByb3RvdHlwZS5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJdGVyYXRv
clByb3RvdHlwZS5oIgogCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKKyNpbmNsdWRlICJJdGVy
YXRvclByb3RvdHlwZUJ1aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCmluZGV4IGIx
MzQ5M2I3N2MzZjczYjMwNzcxZWNjOTY4YTE0MjdhNmE2OWNmMjguLjBlZWVhNjRlNzk0ZjU5MmQw
ZDE3YjNjYzhkZDU0ZWJmZTVhYzUzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGVGdW5jdGlvbnMuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkhlbHBlcnMuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0lubGluZXMuaCIKICNpbmNs
dWRlICJKU0FycmF5SXRlcmF0b3IuaCIKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1
ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNvbnN0cnVj
dG9yLmNwcAppbmRleCA4NjdjZjJkZDAxM2FkMjljYWE0NWQ0NmI1ZGYwYjg4MjE4ZmY2NDY2Li42
NmZhZjk4MWYzMGQ5MjdjMGZmMTc2Y2RjMjY1OWE3ZDRlNjA4Zjc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZUNv
bnN0cnVjdG9yLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IuaCIKIAotI2luY2x1ZGUgIkpTQ0J1
aWx0aW5zLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0Nl
bGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21pc2UuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlUHJv
dG90eXBlLmNwcAppbmRleCBlY2VkZmFmZjNkZmNhNDZjMzU5NDg1ZDA1MzlhYWYzODg5ZDVhOTRk
Li5iMDllN2ZmNTJjNmEzZDljZWJlNzA3MDExYTI2NWI0MmNkYzhkMzA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VQ
cm90b3R5cGUuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21p
c2VQcm90b3R5cGUuaCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRp
bnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2VsbElu
bGluZXMuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGE5
YmExYzU5MjY3MGNlMWY2NTUxMjQ1MmNiYzM4MzBmNzkxMDBhZGYuLjgxM2U1NzJmYzAxYzY1MzJl
MzE5NTk1M2Q5MGJhYWNmZWUxNDY4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb21pc2VDb25zdHJ1Y3Rvci5jcHAKQEAgLTMwLDcgKzMwLDYgQEAK
ICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkl0
ZXJhdG9yT3BlcmF0aW9ucy5oIgotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAi
SlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiSlNQcm9taXNlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNQcm9taXNlUHJvdG90eXBlLmNwcAppbmRleCAxZDMyMzM1ZjNkMDU1ZTA0MDcwN2NkNTE3ODU3
MTZiY2RhOTVlYWI0Li4xYTU1NzkxYzQ0ZGY0MjFmMzk1ZmJhMzQ2YjFjMjNjZjc2NGRkY2M2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVByb3Rv
dHlwZS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJKU1Byb21pc2VQcm90b3R5cGUu
aCIKIAogI2luY2x1ZGUgIkVycm9yLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNs
dWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKICNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
MmIyYzkwOTZmNmVkZmFjYTgxYTQ0ZGM3NjM5Njk4YWY2OGQwZDMzNC4uMWZlNDU1NTc4MzZlNjU0
NTdmNDUyOTJiNzA0OWE1YjI4ZDVjYTY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwCkBA
IC0yOCwxMSArMjgsMTEgQEAKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkVy
cm9yLmgiCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMu
aCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheXMuaCIKKyNp
bmNsdWRlICJUeXBlZEFycmF5Q29uc3RydWN0b3JCdWlsdGlucy5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcAppbmRleCA1M2RkMDNiYmI0ZTczZTcwZmRlMWJhZTgz
NzZkOTJjY2ZiN2M3Yjc2Li42NTlkOWMwODkxZWViYjYxYjk0ZjAwZDU2NDRjMzcyNWE2YjdiZmQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1
bmN0aW9ucy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlBZGFwdG9ycy5oIgorI2luY2x1ZGUgIlR5
cGVkQXJyYXlQcm90b3R5cGVCdWlsdGlucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCA2YjlhZTIxNjlmOTllOTdhNmIxMTYyYjgwN2RhMDlhOWZkMWQ4Nzcy
Li43ZjM1MDMxNTU1N2ZjMDQ2ZWJkZDYwYTZhZDY3YTc1ZWY2OWQ2NDY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMzYwMywxMSArMzYwMyw5IEBAIHNldChCVUlMVElOU19HRU5FUkFUT1JfU0NS
SVBUUwogICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX2dlbmVyYXRv
ci5weQogICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1aWx0aW5zX21vZGVsLnB5
CiAgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfdGVtcGxhdGVzLnB5
Ci0gICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfY29t
YmluZWRfaGVhZGVyLnB5Ci0gICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRp
bnNfZ2VuZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkKLSAgICAke0phdmFTY3JpcHRD
b3JlX1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0ZV9oZWFkZXIucHkKLSAg
ICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9zZXBhcmF0
ZV9pbXBsZW1lbnRhdGlvbi5weQotICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L2J1
aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX3dyYXBwZXIucHkKKyAgICAke0phdmFTY3JpcHRDb3Jl
X1NDUklQVFNfRElSfS9idWlsdGluc19nZW5lcmF0ZV9vYmplY3RfaGVhZGVyLnB5CisgICAgJHtK
YXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2ltcGxl
bWVudGF0aW9uLnB5CisgICAgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vYnVpbHRpbnNf
Z2VuZXJhdGVfb2JqZWN0X3dyYXBwZXIucHkKICAgICAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNf
RElSfS9nZW5lcmF0ZS1qcy1idWlsdGlucy5weQogICAgICR7SmF2YVNjcmlwdENvcmVfU0NSSVBU
U19ESVJ9L2xhenl3cml0ZXIucHkKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IGIxYzM1OTkwMmQyYjQzYzg3OWFiZTJkODYyNGEzZTAwODUxOWNhOWQuLmNkZWI4ZTE1ZDQzMWFh
NTMzZjNhZjFmMzFiYWYwNjkxOTJhYjg3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMTI3MywxMSArMTI3Myw5IEBAIEJVSUxUSU5TX0dFTkVSQVRPUl9TQ1JJUFRTID0gXAog
ICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zX2dlbmVyYXRvci5weSBc
CiAgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfbW9kZWwucHkgXAog
ICAgICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2J1aWx0aW5zX3RlbXBsYXRlcy5weSBc
Ci0gICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVfY29t
YmluZWRfaGVhZGVyLnB5IFwKLSAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWls
dGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weSBcCi0gICAgJChKYXZhU2Ny
aXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5
IFwKLSAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9idWlsdGluc19nZW5lcmF0ZV9z
ZXBhcmF0ZV9pbXBsZW1lbnRhdGlvbi5weSBcCi0gICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRT
X0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfd3JhcHBlci5weSBcCisgICAgJChKYXZh
U2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVfb2JqZWN0X2hlYWRlci5w
eSBcCisgICAgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvYnVpbHRpbnNfZ2VuZXJhdGVf
b2JqZWN0X2ltcGxlbWVudGF0aW9uLnB5IFwKKyAgICAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNf
RElSKS9idWlsdGluc19nZW5lcmF0ZV9vYmplY3Rfd3JhcHBlci5weSBcCiAgICAgJChKYXZhU2Ny
aXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtanMtYnVpbHRpbnMucHkgXAogICAgICQoSmF2
YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2xhenl3cml0ZXIucHkgXAogIwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNmMGU3ZjE1NjYwNDIxN2Jj
YWIwMTgxZDcyNjcyNTRiYmE0NGRhNTkuLjU5NzJkMWJjYzgxZTE0ZjdhZDQ0YzA1ZTI1NDA2ZDMx
ODg2YmFiN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0xMC0zMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxl
LmNvbT4KKworICAgICAgICBGb3IgSlNDIGJ1aWx0aW5zLCBnZW5lcmF0ZS1qcy1iaW5kaW5ncy5q
cyBzaG91bGQgcHJvZHVjZSBzZXBhcmF0ZSBmaWxlcyBwZXIgYnVpbHRpbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDgyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udmVydCBleGlzdGluZyB0ZXN0
cyBmb3IgJ0NvbWJpbmVkJyBtb2RlIGFuZCBtYWtlIHRoZW0gZm9yICdNYWNybycgbW9kZSBpbnN0
ZWFkLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb2RlZ2VuL21haW4ucHk6CisgICAg
ICAgIChCdWlsdGluc0dlbmVyYXRvclRlc3RzLmdlbmVyYXRlX2Zyb21fanNfYnVpbHRpbnMpOgor
ICAgICAgICAoQnVpbHRpbnNHZW5lcmF0b3JUZXN0cy5ydW5fdGVzdHMpOgorCiAyMDE1LTEwLTMw
ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dIGJ1
aWxkLWpzYyBhbmQgcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIGRvIG5vdCB3b3JrCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvZGVnZW4vbWFpbi5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29kZWdlbi9tYWluLnB5CmluZGV4IDAwMzk2ZGI5YTM4YmUwZjA3YmUxODYz
Yjg4YWVkNDFlZGY5N2Q5NjkuLjg2ZGViZTE5MTMyOTE1NGY4MWMzN2EwNzE3NmM5MzM3NjE3ZDhm
NzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29kZWdlbi9tYWluLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29kZWdlbi9tYWluLnB5CkBAIC0zOCw3ICszOCw3
IEBAIGNsYXNzIEJ1aWx0aW5zR2VuZXJhdG9yVGVzdHM6CiAgICAgICAgIHNlbGYucmVzZXRfcmVz
dWx0cyA9IHJlc2V0X3Jlc3VsdHMKICAgICAgICAgc2VsZi5leGVjdXRpdmUgPSBleGVjdXRpdmUK
IAotICAgIGRlZiBnZW5lcmF0ZV9mcm9tX2pzX2J1aWx0aW5zKHNlbGYsIGJ1aWx0aW5zX2ZpbGUs
IG91dHB1dF9kaXJlY3RvcnksIGZyYW1ld29ya19uYW1lPSIiLCBjb21iaW5lZF9vdXRwdXRzPUZh
bHNlKToKKyAgICBkZWYgZ2VuZXJhdGVfZnJvbV9qc19idWlsdGlucyhzZWxmLCBidWlsdGluc19m
aWxlLCBvdXRwdXRfZGlyZWN0b3J5LCBmcmFtZXdvcmtfbmFtZT0iIiwgbWFjcm9zX29ubHk9RmFs
c2UpOgogICAgICAgICBjbWQgPSBbJ3B5dGhvbicsCiAgICAgICAgICAgICAgICAnSmF2YVNjcmlw
dENvcmUvU2NyaXB0cy9nZW5lcmF0ZS1qcy1idWlsdGlucy5weScsCiAgICAgICAgICAgICAgICAn
LS1vdXRwdXQtZGlyZWN0b3J5Jywgb3V0cHV0X2RpcmVjdG9yeSwKQEAgLTQ2LDggKzQ2LDggQEAg
Y2xhc3MgQnVpbHRpbnNHZW5lcmF0b3JUZXN0czoKICAgICAgICAgICAgICAgICctLWZyYW1ld29y
aycsIGZyYW1ld29ya19uYW1lLAogICAgICAgICAgICAgICAgJy0tdGVzdCddCiAKLSAgICAgICAg
aWYgY29tYmluZWRfb3V0cHV0czoKLSAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tY29tYmluZWQn
KQorICAgICAgICBpZiBtYWNyb3Nfb25seToKKyAgICAgICAgICAgIGNtZC5hcHBlbmQoJy0tbWFj
cm9zLW9ubHknKQogCiAgICAgICAgIGNtZC5hcHBlbmQoYnVpbHRpbnNfZmlsZSkKIApAQCAtMTA5
LDggKzEwOSw4IEBAIGNsYXNzIEJ1aWx0aW5zR2VuZXJhdG9yVGVzdHM6CiAgICAgICAgICAgICAg
ICAgcHJpbnQgIkludmFsaWQgdGVzdCBjYXNlIG5hbWU6IHNob3VsZCBiZSBGcmFtZXdvcmstVGVz
dENhc2VOYW1lLU91dHB1dE1vZGUuanMiCiAgICAgICAgICAgICAgICAgY29udGludWUKIAotICAg
ICAgICAgICAgY29tYmluZWRfb3V0cHV0cyA9IG91dHB1dF9tb2RlID09ICJDb21iaW5lZCIKLSAg
ICAgICAgICAgIGlmIHNlbGYuZ2VuZXJhdGVfZnJvbV9qc19idWlsdGlucyhvcy5wYXRoLmpvaW4o
aW5wdXRfZGlyZWN0b3J5LCBpbnB1dF9maWxlKSwgd29ya19kaXJlY3RvcnksIGZyYW1ld29ya19u
YW1lPWZyYW1ld29ya19uYW1lLCBjb21iaW5lZF9vdXRwdXRzPWNvbWJpbmVkX291dHB1dHMpOgor
ICAgICAgICAgICAgbWFjcm9zX29ubHkgPSBvdXRwdXRfbW9kZSA9PSAiTWFjcm9zIgorICAgICAg
ICAgICAgaWYgc2VsZi5nZW5lcmF0ZV9mcm9tX2pzX2J1aWx0aW5zKG9zLnBhdGguam9pbihpbnB1
dF9kaXJlY3RvcnksIGlucHV0X2ZpbGUpLCB3b3JrX2RpcmVjdG9yeSwgZnJhbWV3b3JrX25hbWU9
ZnJhbWV3b3JrX25hbWUsIG1hY3Jvc19vbmx5PW1hY3Jvc19vbmx5KToKICAgICAgICAgICAgICAg
ICBwYXNzZWQgPSBGYWxzZQogCiAgICAgICAgICAgICBpZiBzZWxmLnJlc2V0X3Jlc3VsdHM6Cg==
</data>
<flag name="review"
          id="289556"
          type_id="1"
          status="-"
          setter="bburg"
    />
    <flag name="commit-queue"
          id="289667"
          type_id="3"
          status="-"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>