<?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>147556</bug_id>
          
          <creation_ts>2015-08-03 00:52:17 -0700</creation_ts>
          <short_desc>[Streams API] Implement ReadableStream pipeThrough</short_desc>
          <delta_ts>2015-09-23 04:33:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>146593</dependson>
          <blocked>147092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1114151</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-08-03 00:52:17 -0700</bug_when>
    <thetext>We should implement https://streams.spec.whatwg.org/#rbs-pipe-through, in particular the ability for this function to be called on any object having a pipeTo method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114152</commentid>
    <comment_count>1</comment_count>
      <attachid>258051</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-08-03 01:28:16 -0700</bug_when>
    <thetext>Created attachment 258051
Patch using CustomBinding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114153</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-08-03 01:30:22 -0700</bug_when>
    <thetext>This patch illustrates the use of CustomBinding in the context of ReadableStream.pipeThrough.

Some additional error tests might be good to add (exception raiser getters for pipeTo, readablestream and writablestream).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115731</commentid>
    <comment_count>3</comment_count>
      <attachid>258487</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-08-07 05:57:27 -0700</bug_when>
    <thetext>Created attachment 258487
Adding some more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124648</commentid>
    <comment_count>4</comment_count>
      <attachid>260866</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-09 11:36:41 -0700</bug_when>
    <thetext>Created attachment 260866
JS builtin within WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124671</commentid>
    <comment_count>5</comment_count>
      <attachid>260866</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-09 13:28:03 -0700</bug_when>
    <thetext>Comment on attachment 260866
JS builtin within WebCore

Putting the patch as r?
The overall direction is:
- Update JSC builtins infrastructure to make it applicable to WebCore
- Update the IDL generator to automate the binding between IDL methods and WebCore JS builtins
Future patches would add support for IDL builtin constructor/attributes and private functions/names.
Any early feedback on the approach well appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124864</commentid>
    <comment_count>6</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-09-10 01:32:40 -0700</bug_when>
    <thetext>It looks very good! I would split it into two patches, one for the generation of the IDL attribute and another for the piping stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124899</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-10 08:26:46 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; It looks very good! I would split it into two patches, one for the
&gt; generation of the IDL attribute and another for the piping stuff.

Thanks.
It could be split but it would be a bit more work to ensure that the first patch (support for JS builtins within WebCore) is tested.

I think there is some more work to iron this patch: generated code could be tightened a bit with some const, macro handling/definition could be refactored a bit better as well.

Before doing that, I would prefer to validate the approach, namely:
- Generating one cpp/h file per JS builtin WebCore file
- Generating helper class to take the role of JSC::BuiltinExecutables/BuiltinNames
- Integration of that helper class in WebCore (currently hooked in WebCoreJSClientData)
- Integration of IDL method as JS builtin using JSBuiltin keyword (JS function is directly owned by the JSXXPrototype class and not by JSGlobalObject).

The approach would then for each class XX that wants to use builtins to have a XX.idl file and a XX.js file that would implement the JSBuiltin IDL methods.
 
Private JS builtin functions (which might be hooked through JSDOMWindowBase) would be located in separate files as their symbols would be exported to the JSC VM, which is not needed for JS builtins implementing the IDL methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126357</commentid>
    <comment_count>8</comment_count>
      <attachid>261314</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-16 09:27:15 -0700</bug_when>
    <thetext>Created attachment 261314
Some clean up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126377</commentid>
    <comment_count>9</comment_count>
      <attachid>261314</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-16 10:14:57 -0700</bug_when>
    <thetext>Comment on attachment 261314
Some clean up

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

I’m not sure we’ve properly thought through what to do for bindings like Objective-C. I would be tempted to say that by default a JSBuiltin should be entirely left out of the other bindings. Or are we going to teach the other bindings how to call through to JavaScript? ReadableStream is in a strange state if we try to make an Objective-C binding for it.

We may want to stop placing an emphasis on those other bindings. The Objective-C one isn’t something we support for WebKit2 anyway, so it may be a good time to not add bindings for new DOM classes; needs discussion in the project overall.

&gt; Source/JavaScriptCore/builtins/BuiltinUtils.h:34
&gt; +#define INITIALISE_BUILTIN_NAMES(name) , m_##name(JSC::Identifier::fromString(vm, #name)), m_##name##PrivateName(JSC::Identifier::fromUid(JSC::PrivateName(JSC::PrivateName::Description, ASCIILiteral(&quot;PrivateSymbol.&quot; #name))))

We should use the US English spelling, initialize, rather than the British English spelling, initialise, in the WebKit project. But you are just moving these; it’s strange that these were spelled the other way.

&gt; Source/JavaScriptCore/builtins/BuiltinUtils.h:46
&gt; +class FunctionExecutable;

Why is this declaration helpful?

&gt; Source/JavaScriptCore/generate-js-builtins:25
&gt; +# TODO: Move this script to another place than JavaScriptCore since it is in use for WebCore as well.

I don’t think this script needs to be moved out of JavaScriptCore. It can be a script that JavaScriptCore provides and installs where WebCore can find and use it. Think of it as part of the interface to JavaScriptCore, like one of the headers. So there may need to be a change about how we find and use it but probably not a move to another project.

&gt; Source/WebCore/DerivedSources.make:1245
&gt; +WEBCORE_BUILTINS = \

The comments all say &quot;JS builtins&quot; but the name here just says &quot;builtins&quot;. I think that&apos;s not specific enough. Should be WEBCORE_JS_BUILTINS I think.

&gt; Source/WebCore/bindings/js/WebCoreJSClientData.h:39
&gt; +    WebCoreJSClientData(JSC::VM* vm)

Can this take a reference instead of a pointer to the VM? It&apos;s never null.

&gt; Source/WebCore/bindings/js/WebCoreJSClientData.h:81
&gt; +#if ENABLE(STREAMS_API)
&gt; +    ReadableStreamBuiltinsWrapper&amp; readableStreamBuiltins() { return m_readableStreamBuiltins; }
&gt; +#endif
&gt;  private:

Missing blank line here before the &quot;private&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126678</commentid>
    <comment_count>10</comment_count>
      <attachid>261314</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-17 05:59:30 -0700</bug_when>
    <thetext>Comment on attachment 261314
Some clean up

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

Thanks for the review!

&gt;&gt; Source/JavaScriptCore/builtins/BuiltinUtils.h:34
&gt;&gt; +#define INITIALISE_BUILTIN_NAMES(name) , m_##name(JSC::Identifier::fromString(vm, #name)), m_##name##PrivateName(JSC::Identifier::fromUid(JSC::PrivateName(JSC::PrivateName::Description, ASCIILiteral(&quot;PrivateSymbol.&quot; #name))))
&gt; 
&gt; We should use the US English spelling, initialize, rather than the British English spelling, initialise, in the WebKit project. But you are just moving these; it’s strange that these were spelled the other way.

OK

&gt;&gt; Source/JavaScriptCore/builtins/BuiltinUtils.h:46
&gt;&gt; +class FunctionExecutable;
&gt; 
&gt; Why is this declaration helpful?

It allows removing the same declaration in the generated JS builtin header file.
I&apos;ll remove it here and add it back through the generate-js-builtins script.

&gt;&gt; Source/JavaScriptCore/generate-js-builtins:25
&gt;&gt; +# TODO: Move this script to another place than JavaScriptCore since it is in use for WebCore as well.
&gt; 
&gt; I don’t think this script needs to be moved out of JavaScriptCore. It can be a script that JavaScriptCore provides and installs where WebCore can find and use it. Think of it as part of the interface to JavaScriptCore, like one of the headers. So there may need to be a change about how we find and use it but probably not a move to another project.

I was thinking of having a file containing code from this script that is common to both WebCore and JSC.
Then WebCore and JSC would have their own generation script reusing this common code but also adding their own specific code, like the generation of codeName##Generator(vm) implementation.
It would be convenient in WebCore to remove XXXBuiltinsWrapper.h and move its content directly in XXXBuiltins.h for instance.

&gt;&gt; Source/WebCore/DerivedSources.make:1245
&gt;&gt; +WEBCORE_BUILTINS = \
&gt; 
&gt; The comments all say &quot;JS builtins&quot; but the name here just says &quot;builtins&quot;. I think that&apos;s not specific enough. Should be WEBCORE_JS_BUILTINS I think.

OK

&gt;&gt; Source/WebCore/bindings/js/WebCoreJSClientData.h:39
&gt;&gt; +    WebCoreJSClientData(JSC::VM* vm)
&gt; 
&gt; Can this take a reference instead of a pointer to the VM? It&apos;s never null.

OK.
m_readableStreamBuiltins takes a JSC::VM* as input because the macro expects vm to be a pointer.
That should be updated too at some point.

&gt;&gt; Source/WebCore/bindings/js/WebCoreJSClientData.h:81
&gt;&gt;  private:
&gt; 
&gt; Missing blank line here before the &quot;private&quot;.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126679</commentid>
    <comment_count>11</comment_count>
      <attachid>261387</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-17 06:00:04 -0700</bug_when>
    <thetext>Created attachment 261387
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127382</commentid>
    <comment_count>12</comment_count>
      <attachid>261573</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-19 03:37:57 -0700</bug_when>
    <thetext>Created attachment 261573
Trying to fix mac build for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127485</commentid>
    <comment_count>13</comment_count>
      <attachid>261607</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-20 00:48:14 -0700</bug_when>
    <thetext>Created attachment 261607
Speculative win build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127491</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-20 02:32:20 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created attachment 261607 [details]
&gt; Speculative win build fix

Brady, Alex, it seems Apple/Win switched to CMake.
Since that switch, I am not able to build this patch on Windows, although it works with CMake on GTK/EFL.

Any idea?

It is actually difficult for me to debug this on Windows.
Is it ok to land it as is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127495</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-20 02:38:37 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; Created attachment 261607 [details]
&gt; &gt; Speculative win build fix
&gt; 
&gt; Brady, Alex, it seems Apple/Win switched to CMake.
&gt; Since that switch, I am not able to build this patch on Windows, although it
&gt; works with CMake on GTK/EFL.
&gt; 

I forgot to mention why building fails.
It seems the WebCore JS Builtins generator (ReadableStream.js -&gt; ReadableStreamBuiltins.h/.cpp/Wrapper.h) is not kicking in on Win platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127658</commentid>
    <comment_count>16</comment_count>
      <attachid>261607</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-09-21 09:43:19 -0700</bug_when>
    <thetext>Comment on attachment 261607
Speculative win build fix

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

&gt; Source/WebCore/CMakeLists.txt:3574
&gt; +endforeach ()

I think you need this line inside the foreach:
list(APPEND WebCore_SOURCES
    ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}Builtins.h
    ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}Builtins.cpp
)
Then you shouldn&apos;t need all the ADD_SOURCE_DEPENDENCIES calls because it will generate them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127963</commentid>
    <comment_count>17</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-22 02:01:19 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 261607 [details]
&gt; Speculative win build fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=261607&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/CMakeLists.txt:3574
&gt; &gt; +endforeach ()
&gt; 
&gt; I think you need this line inside the foreach:
&gt; list(APPEND WebCore_SOURCES
&gt;     ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}Builtins.h
&gt;     ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}Builtins.cpp
&gt; )
&gt; Then you shouldn&apos;t need all the ADD_SOURCE_DEPENDENCIES calls because it
&gt; will generate them.

Downsides with that approach is that it will compile/link these files even if it is not needed to do so (STREAMS_API turned off for instance).

I will give it a try though to land this patch.
If it works out, we can fix the above issue later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127964</commentid>
    <comment_count>18</comment_count>
      <attachid>261732</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-22 02:05:25 -0700</bug_when>
    <thetext>Created attachment 261732
Changing CMakeList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127996</commentid>
    <comment_count>19</comment_count>
      <attachid>261741</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-22 07:27:32 -0700</bug_when>
    <thetext>Created attachment 261741
Another try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128020</commentid>
    <comment_count>20</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-09-22 10:19:55 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Downsides with that approach is that it will compile/link these files even
&gt; if it is not needed to do so (STREAMS_API turned off for instance).
An advantage is that it will successfully compile.  There are lots of files that we always compile that start with #if ENABLE(something).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128038</commentid>
    <comment_count>21</comment_count>
      <attachid>261751</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-22 11:00:55 -0700</bug_when>
    <thetext>Created attachment 261751
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128057</commentid>
    <comment_count>22</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-22 11:34:08 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #17)
&gt; &gt; Downsides with that approach is that it will compile/link these files even
&gt; &gt; if it is not needed to do so (STREAMS_API turned off for instance).
&gt; An advantage is that it will successfully compile.  There are lots of files
&gt; that we always compile that start with #if ENABLE(something).

Yes, conditional in js builtin generator like we have for IDLs might be nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128067</commentid>
    <comment_count>23</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-22 11:49:26 -0700</bug_when>
    <thetext>OK.
The builtins now kick in for Windows but including JavaScriptCore/builtins/BuiltinUtils.h in WebCore files through ForwardingHeaders is failing on Windows. 

Any idea?
Should JavaScriptCore/builtins/ path be added somewhere specifically for Windows port?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128087</commentid>
    <comment_count>24</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-09-22 12:41:55 -0700</bug_when>
    <thetext>Add it to JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES in JavaScriptCore/CMakeLists.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128091</commentid>
    <comment_count>25</comment_count>
      <attachid>261763</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-22 12:58:33 -0700</bug_when>
    <thetext>Created attachment 261763
Fixing builtin path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128101</commentid>
    <comment_count>26</comment_count>
      <attachid>261766</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-22 14:03:49 -0700</bug_when>
    <thetext>Created attachment 261766
Adding missing Inlines header for win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128242</commentid>
    <comment_count>27</comment_count>
      <attachid>261766</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-23 00:25:02 -0700</bug_when>
    <thetext>Comment on attachment 261766
Adding missing Inlines header for win

Clearing flags on attachment: 261766

Committed r190155: &lt;http://trac.webkit.org/changeset/190155&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128243</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-23 00:25:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128293</commentid>
    <comment_count>29</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-09-23 04:33:08 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Add it to JavaScriptCore_FORWARDING_HEADERS_DIRECTORIES in
&gt; JavaScriptCore/CMakeLists.txt

Patch seems to have landed properly.
Thanks for your help.

I hope that differences between the various build systems will decrease with your CMake ongoing activity.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258051</attachid>
            <date>2015-08-03 01:28:16 -0700</date>
            <delta_ts>2015-08-07 05:57:22 -0700</delta_ts>
            <desc>Patch using CustomBinding</desc>
            <filename>bug-147556-20150803052810.patch</filename>
            <type>text/plain</type>
            <size>9950</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNiMzQxOGIyOGFkOTE1
NWFmNTEzMzMxNWNlYTNkM2UxMzMyZGQ4ZS4uN2FiZTc3Nzk2NTdiZmVlMGY1OTAzNTg4Y2E4ZGQy
YjE4OTM1MmJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA4LTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVh
bXMgQVBJXSBJbXBsZW1lbnQgUmVhZGFibGVTdHJlYW0gcGlwZVRocm91Z2gKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzU1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHBpcGVUaHJvdWdoIGlzIGltcGxl
bWVudGVkIGFzIGEgZ2VuZXJpYyBmdW5jdGlvbiB0aGF0IGNhbGxzIHBpcGVUbyBtZXRob2Qgb24g
aXRzIHRoaXMgb2JqZWN0LgorICAgICAgICBJdCBpcyBpbXBsZW1lbnRlZCB1c2luZyAiQ3VzdG9t
QmluZGluZyIgZm9yIHRoYXQgcmVhc29uLgorCisgICAgICAgIENvdmVyZWQgYnkgcmViYXNlZCB0
ZXN0LgorCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbDogTWFy
a2luZyBwaXBlVGhyb3VnaCBhcyAiQ3VzdG9tQmluZGluZyIKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzUmVhZGFi
bGVTdHJlYW1Qcm90b3R5cGVGdW5jdGlvblBpcGVUaHJvdWdoKTogSW1wbGVtZW50aW5nICJDdXN0
b21CaW5kaW5nIiBwaXBlVGhyb3VnaCBtZXRob2QuCisgICAgICAgICogYmluZGluZ3MvanMvUmVh
ZGFibGVKU1N0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpw
aXBlVGhyb3VnaCk6IEFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiBwaXBlVGhyb3VnaCBtZXRob2Qu
CisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorCiAyMDE1LTA4LTAx
ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IE9u
IHNvbWUgY29tcGxleCBzaXRlcywgaU9TIGluc3RhbnRseSBjcmFzaGVzIG9uY2UgVm9pY2VPdmVy
IGlzIHR1cm5lZCBvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbS5pZGwKaW5kZXggODYzYzI2NDMxOGM1NDEyMGE3MDg4OTFhMWNkYWM1M2YwNjhj
YjBkMC4uMzY0YzQyOGM1ODAxNzAxODA0MzA0ZTdmY2RhODc0ZWVjNzk2Yzk4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCkBAIC0z
Niw3ICszNiw3IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gUHJvbWlzZSBjYW5jZWwoW0RlZmF1
bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBhbnkgcmVhc29uKTsKICAgICBbUmFpc2VzRXhjZXB0aW9u
XSBSZWFkYWJsZVN0cmVhbVJlYWRlciBnZXRSZWFkZXIoKTsKICAgICBbQ3VzdG9tXSBQcm9taXNl
IHBpcGVUbyhhbnkgc3RyZWFtcywgYW55IG9wdGlvbnMpOwotICAgIFtDdXN0b21dIE9iamVjdCBw
aXBlVGhyb3VnaChhbnkgZGVzdCwgYW55IG9wdGlvbnMpOworICAgIFtDdXN0b21CaW5kaW5nXSBP
YmplY3QgcGlwZVRocm91Z2goYW55IGRlc3QsIGFueSBvcHRpb25zKTsKIAogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIGxvY2tlZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwCmluZGV4IDM0OGQxNmIyZmVi
ZTc5ODdkMmRkNjZmNWNjODY2NWY1YTdjMGVlNGEuLmE5MjFhNDBiNjg3ZTQyOGE2NjcxZWE4NTk4
NmJjYmQzZWNmZDVlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UmVhZGFibGVTdHJlYW1DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwCkBAIC01MywxMCArNTMsOSBAQCBKU1ZhbHVlIEpT
UmVhZGFibGVTdHJlYW06OnBpcGVUbyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGV4ZWMt
PnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgZXJyb3IpOwogfQogCi1KU1ZhbHVlIEpTUmVhZGFi
bGVTdHJlYW06OnBpcGVUaHJvdWdoKEV4ZWNTdGF0ZSogZXhlYykKK0VuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNSZWFkYWJsZVN0cmVhbVByb3RvdHlwZUZ1bmN0aW9uUGlwZVRocm91Z2go
RXhlY1N0YXRlKiBzdGF0ZSkKIHsKLSAgICBKU1ZhbHVlIGVycm9yID0gY3JlYXRlRXJyb3IoZXhl
YywgQVNDSUlMaXRlcmFsKCJwaXBlVGhyb3VnaCBpcyBub3QgaW1wbGVtZW50ZWQiKSk7Ci0gICAg
cmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgZXJyb3IpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoUmVhZGFibGVKU1N0cmVhbTo6cGlwZVRocm91Z2goKnN0YXRlKSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvUmVhZGFibGVKU1N0cmVhbS5jcHAKaW5kZXggNzliNjY2YzFkMmExM2E1MjdkN2JjNzhh
NjE5OTk1NTU2NGRjZTQxZC4uODVlNDQ0ZmEwZmEyMWQwMDg2YTExMTA5YzI2MGNiYmM3N2JhYTkz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVh
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5j
cHAKQEAgLTM3MCw2ICszNzAsNDQgQEAgZG91YmxlIFJlYWRhYmxlSlNTdHJlYW06OnJldHJpZXZl
Q2h1bmtTaXplKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgY2h1bmspCiAgICAgcmV0dXJuIHNp
emU7CiB9CiAKK0pTVmFsdWUgUmVhZGFibGVKU1N0cmVhbTo6cGlwZVRocm91Z2goRXhlY1N0YXRl
JiBzdGF0ZSkKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHN0YXRlLnRoaXNWYWx1ZSgpOwor
ICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgdGhyb3dWTUVycm9yKCZz
dGF0ZSwgY3JlYXRlVHlwZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVh
bSBwaXBlVGhyb3VnaCBtdXN0IGJlIGNhbGxlZCBvbiBhbiBvYmplY3QiKSkpOworICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gZ2V0
UHJvcGVydHlGcm9tT2JqZWN0KHN0YXRlLCAqdGhpc1ZhbHVlLmdldE9iamVjdCgpLCAicGlwZVRv
Iik7CisgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKKworICAgIGlmICghZnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7CisgICAgICAgIGlm
ICghZnVuY3Rpb24uaXNVbmRlZmluZWQoKSkKKyAgICAgICAgICAgIHRocm93Vk1FcnJvcigmc3Rh
dGUsIGNyZWF0ZVR5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgicGlwZVRocm91Z2ggbXVz
dCBiZSBjYWxsZWQgb24gYW4gb2JqZWN0IGhhdmluZyBhIHBpcGVUbyBtZXRob2QiKSkpOworICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHJ3QXJndW1l
bnQgPSBzdGF0ZS5hcmd1bWVudCgwKTsKKyAgICBpZiAoIXJ3QXJndW1lbnQuaXNPYmplY3QoKSkg
eworICAgICAgICB0aHJvd1ZNRXJyb3IoJnN0YXRlLCBjcmVhdGVUeXBlRXJyb3IoJnN0YXRlLCBB
U0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtIHBpcGVUaHJvdWdoIGZpcnN0IGFyZ3VtZW50IG11
c3QgYmUgYW4gb2JqZWN0IikpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAg
fQorICAgIEpTT2JqZWN0JiByd09iamVjdCA9ICpyd0FyZ3VtZW50LmdldE9iamVjdCgpOworCisg
ICAgSlNWYWx1ZSB3cml0YWJsZSA9IGdldFByb3BlcnR5RnJvbU9iamVjdChzdGF0ZSwgcndPYmpl
Y3QsICJ3cml0YWJsZSIpOworICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVu
dHM7CisgICAgYXJndW1lbnRzLmFwcGVuZCh3cml0YWJsZSk7CisgICAgYXJndW1lbnRzLmFwcGVu
ZChzdGF0ZS5hcmd1bWVudCgxKSk7CisKKyAgICBjYWxsRnVuY3Rpb24oc3RhdGUsIGZ1bmN0aW9u
LCB0aGlzVmFsdWUsIGFyZ3VtZW50cyk7CisKKyAgICByZXR1cm4gZ2V0UHJvcGVydHlGcm9tT2Jq
ZWN0KHN0YXRlLCByd09iamVjdCwgInJlYWRhYmxlIik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9S
ZWFkYWJsZUpTU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpT
U3RyZWFtLmgKaW5kZXggODNkY2Y2OWZlMmQyMmM4MGZhMTA0M2E5NmZkM2YzMDNiODFjMWM1NC4u
ODY4Yzc3MTgyNjg3YjE5ZTc3Zjg2YjU0YzIyMTVhN2E3ZDI0ZjJiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaApAQCAtODMsNiArODMsOCBAQCBj
bGFzcyBSZWFkYWJsZUpTU3RyZWFtIGZpbmFsIDogcHVibGljIFJlYWRhYmxlRW5xdWV1aW5nU3Ry
ZWFtPFJlYWRhYmxlSlNTdHJlYW1WYQogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8UmVhZGFi
bGVKU1N0cmVhbT4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBE
aWN0aW9uYXJ5Jik7CiAKKyAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIHBpcGVUaHJvdWdoKEpTQzo6
RXhlY1N0YXRlJik7CisKICAgICBKU0M6OkpTVmFsdWUganNDb250cm9sbGVyKEpTQzo6RXhlY1N0
YXRlJiwgSlNET01HbG9iYWxPYmplY3QqKTsKICAgICB2b2lkIGNsb3NlKEV4Y2VwdGlvbkNvZGUm
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDBlZjM0ZTgxNmIwMDIwZmRiZDA4YThmMjYyYjhmZThkM2E1MTRlOTAuLmMw
MjYwYjUwOTVlZTk1N2QyOWM1YjlmNjdhNjQzNzg4OTZjNTUyMTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxNS0wOC0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9u
LmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3RyZWFtIHBp
cGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbDog
QWRkZWQuCisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQt
Y2hlY2tzLWV4cGVjdGVkLnR4dDoKKwogMjAxNS0wOC0wMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtPUyBYXSBGb250IGZhbGxiYWNrIGlzIG5v
dCBsYW5ndWFnZS1zZW5zaXRpdmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVh
ZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVh
bXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YmEzN2FmYjhkYzAwNDZlMTBlNTU4ZjQyZDdjOTg2NGRiMGViYzE3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBwYXJhbWV0ZXJzIG9yIHRoaXNWYWx1ZSBhcmUg
bm90IGFzIGV4cGVjdGVkIAorUEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2ggc2hvdWxkIHdvcmsgd2l0aCBtaXNzaW5nIHBhcmFtZXRlcnMgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVhM2Q0ODQ5NmZhZTcxZGM2OWE1MDRiNTVjMjllOTY5YzMzZTdhMDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5o
dG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Jy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScuLi9yZXNv
dXJjZXMvZ2MuanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordGVzdChmdW5jdGlvbigpIHsKKyAg
ICB2YXIgaW5wdXQgPSB7IHJlYWRhYmxlOiB7fSwgd3JpdGFibGU6IHt9IH07CisgICAgdmFyIG9w
dGlvbnMgPSB7fTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24o
KSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHVuZGVmaW5lZCwg
aW5wdXQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwg
ZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKG51
bGwsIGlucHV0LCBvcHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
KCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2Fs
bCgxLCBpbnB1dCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJv
cigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNh
bGwoeyJwaXBlVG8iOiAidGVzdCJ9LCBpbnB1dCwgb3B0aW9ucyk7IH0pOworCisgICAgdmFyIHRo
aXNWYWx1ZSA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBhc3NlcnRfdGhyb3dz
KG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgbnVsbCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2Vy
dF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJv
dG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB1bmRlZmluZWQsIG9wdGlvbnMpOyB9
KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRh
YmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgMSwgb3B0aW9u
cyk7IH0pOworCit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3Vs
ZCB0aHJvdyB3aGVuIHBhcmFtZXRlcnMgb3IgdGhpc1ZhbHVlIGFyZSBub3QgYXMgZXhwZWN0ZWQn
KTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciB0aGlz
VmFsdWUgPSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICArK2Nv
dW50OworICAgICAgICB9CisgICAgfTsKKworICAgIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgeyByZWFkYWJsZToge30sIHdyaXRhYmxlOiB7fSB9
KTsKKyAgICBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFs
dWUsIHsgcmVhZGFibGU6IHt9IH0sIHt9KTsKKyAgICBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUu
cGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIHsgd3JpdGFibGU6IHt9IH0sIHt9KTsKKworICAg
IGFzc2VydF9lcXVhbHMoY291bnQsIDMpOworfSwgJ1JlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaCBzaG91bGQgd29yayB3aXRoIG1pc3NpbmcgcGFyYW1ldGVycycpOworCisKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVt
ZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMv
cmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQKaW5kZXgg
MzczNTc3ZWI5ODIxZDIwNzU0ZGU4NzcxYTYwZmFlNTIzOGM5YjVmNi4uYjE5N2QxNjU3YjEwZjcw
MDM0ZjJjMmE2NDYxNmY1YmMyZmYyNWZkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVj
a3MtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIENhbiBnZXQgdGhlIFJlYWRh
YmxlU3RyZWFtUmVhZGVyIGNvbnN0cnVjdG9yIGluZGlyZWN0bHkgCiBQQVNTIENhbiBnZXQgdGhl
IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3RvciBpbmRpcmVjdGx5IAotRkFJTCBS
ZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggd29ya3MgZ2VuZXJpY2FsbHkgb24g
aXRzIHRoaXMgYW5kIGl0cyBhcmd1bWVudHMgQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbS5w
aXBlVGhyb3VnaCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW0KK1BBU1MgUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHdvcmtzIGdlbmVyaWNhbGx5IG9uIGl0cyB0aGlz
IGFuZCBpdHMgYXJndW1lbnRzIAogUEFTUyBSZWFkYWJsZVN0cmVhbVJlYWRlciBlbmZvcmNlcyBh
IGJyYW5kIGNoZWNrIG9uIGl0cyBhcmd1bWVudCAKIEZBSUwgUmVhZGFibGVTdHJlYW1SZWFkZXIu
cHJvdG90eXBlLmNsb3NlZCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9i
aiwgZ2V0dGVyTmFtZSkuZ2V0JykKIFBBU1MgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBl
LmNhbmNlbCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258487</attachid>
            <date>2015-08-07 05:57:27 -0700</date>
            <delta_ts>2015-09-09 11:36:33 -0700</delta_ts>
            <desc>Adding some more tests</desc>
            <filename>bug-147556-20150807095716.patch</filename>
            <type>text/plain</type>
            <size>11339</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDYwZTVlZjhmMTQxMGFl
MDFkOTNlNTU1M2NjNzI5M2U4OWRlZDJlYy4uMTM1MTM0NDhjYzI1ZGI3Y2JjYTY0OGI4Yzc5OTUz
MWJiNDk1MTFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA4LTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVh
bXMgQVBJXSBJbXBsZW1lbnQgUmVhZGFibGVTdHJlYW0gcGlwZVRocm91Z2gKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzU1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHBpcGVUaHJvdWdoIGlzIGltcGxl
bWVudGVkIGFzIGEgZ2VuZXJpYyBmdW5jdGlvbiB0aGF0IGNhbGxzIHBpcGVUbyBtZXRob2Qgb24g
aXRzIHRoaXMgb2JqZWN0LgorICAgICAgICBJdCBpcyBpbXBsZW1lbnRlZCB1c2luZyAiQ3VzdG9t
QmluZGluZyIgZm9yIHRoYXQgcmVhc29uLgorCisgICAgICAgIENvdmVyZWQgYnkgcmViYXNlZCB0
ZXN0LgorCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbDogTWFy
a2luZyBwaXBlVGhyb3VnaCBhcyAiQ3VzdG9tQmluZGluZyIKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzUmVhZGFi
bGVTdHJlYW1Qcm90b3R5cGVGdW5jdGlvblBpcGVUaHJvdWdoKTogSW1wbGVtZW50aW5nICJDdXN0
b21CaW5kaW5nIiBwaXBlVGhyb3VnaCBtZXRob2QuCisgICAgICAgICogYmluZGluZ3MvanMvUmVh
ZGFibGVKU1N0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpw
aXBlVGhyb3VnaCk6IEFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiBwaXBlVGhyb3VnaCBtZXRob2Qu
CisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorCiAyMDE1LTA4LTA3
ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgQ3JlYXRlIFtDdXN0b21CaW5kaW5nXSBleHRlbmRlZCBJREwgYXR0cmlidXRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAppbmRleCA4
NjNjMjY0MzE4YzU0MTIwYTcwODg5MWExY2RhYzUzZjA2OGNiMGQwLi4zNjRjNDI4YzU4MDE3MDE4
MDQzMDRlN2ZjZGE4NzRlZWM3OTZjOThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwKQEAgLTM2LDcgKzM2LDcgQEAKICAgICBbUmFp
c2VzRXhjZXB0aW9uXSBQcm9taXNlIGNhbmNlbChbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IGFueSByZWFzb24pOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIFJlYWRhYmxlU3RyZWFtUmVhZGVy
IGdldFJlYWRlcigpOwogICAgIFtDdXN0b21dIFByb21pc2UgcGlwZVRvKGFueSBzdHJlYW1zLCBh
bnkgb3B0aW9ucyk7Ci0gICAgW0N1c3RvbV0gT2JqZWN0IHBpcGVUaHJvdWdoKGFueSBkZXN0LCBh
bnkgb3B0aW9ucyk7CisgICAgW0N1c3RvbUJpbmRpbmddIE9iamVjdCBwaXBlVGhyb3VnaChhbnkg
ZGVzdCwgYW55IG9wdGlvbnMpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbG9j
a2VkOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFi
bGVTdHJlYW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJs
ZVN0cmVhbUN1c3RvbS5jcHAKaW5kZXggMzQ4ZDE2YjJmZWJlNzk4N2QyZGQ2NmY1Y2M4NjY1ZjVh
N2MwZWU0YS4uYTkyMWE0MGI2ODdlNDI4YTY2NzFlYTg1OTg2YmNiZDNlY2ZkNWUxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3Rv
bS5jcHAKQEAgLTUzLDEwICs1Myw5IEBAIEpTVmFsdWUgSlNSZWFkYWJsZVN0cmVhbTo6cGlwZVRv
KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihl
eGVjLCBlcnJvcik7CiB9CiAKLUpTVmFsdWUgSlNSZWFkYWJsZVN0cmVhbTo6cGlwZVRocm91Z2go
RXhlY1N0YXRlKiBleGVjKQorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRhYmxl
U3RyZWFtUHJvdG90eXBlRnVuY3Rpb25QaXBlVGhyb3VnaChFeGVjU3RhdGUqIHN0YXRlKQogewot
ICAgIEpTVmFsdWUgZXJyb3IgPSBjcmVhdGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoInBpcGVU
aHJvdWdoIGlzIG5vdCBpbXBsZW1lbnRlZCIpKTsKLSAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJv
d0V4Y2VwdGlvbihleGVjLCBlcnJvcik7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShSZWFk
YWJsZUpTU3RyZWFtOjpwaXBlVGhyb3VnaCgqc3RhdGUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVK
U1N0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFt
LmNwcAppbmRleCA3OWI2NjZjMWQyYTEzYTUyN2Q3YmM3OGE2MTk5OTU1NTY0ZGNlNDFkLi4xMjBm
YTY3MzU3YWExZDY1NGJkZTRlMGQ1N2JhZjdhOTg5NTlmNmY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcApAQCAtMzcwLDYgKzM3MCw0MyBA
QCBkb3VibGUgUmVhZGFibGVKU1N0cmVhbTo6cmV0cmlldmVDaHVua1NpemUoRXhlY1N0YXRlJiBz
dGF0ZSwgSlNWYWx1ZSBjaHVuaykKICAgICByZXR1cm4gc2l6ZTsKIH0KIAorSlNWYWx1ZSBSZWFk
YWJsZUpTU3RyZWFtOjpwaXBlVGhyb3VnaChFeGVjU3RhdGUmIHN0YXRlKQoreworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gc3RhdGUudGhpc1ZhbHVlKCk7CisgICAgaWYgKCF0aGlzVmFsdWUuaXNP
YmplY3QoKSkgeworICAgICAgICB0aHJvd1ZNRXJyb3IoJnN0YXRlLCBjcmVhdGVUeXBlRXJyb3Io
JnN0YXRlLCBBU0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtIHBpcGVUaHJvdWdoIG11c3QgYmUg
Y2FsbGVkIG9uIGFuIG9iamVjdCIpKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKworICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBnZXRQcm9wZXJ0eUZyb21PYmplY3Qoc3Rh
dGUsICp0aGlzVmFsdWUuZ2V0T2JqZWN0KCksICJwaXBlVG8iKTsKKyAgICBpZiAoc3RhdGUuaGFk
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisgICAgaWYgKCFm
dW5jdGlvbi5pc0Z1bmN0aW9uKCkpCisgICAgICAgIHRocm93Vk1FcnJvcigmc3RhdGUsIGNyZWF0
ZVR5cGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgicGlwZVRocm91Z2ggbXVzdCBiZSBjYWxs
ZWQgb24gYW4gb2JqZWN0IGhhdmluZyBhIHBpcGVUbyBtZXRob2QiKSkpOworCisgICAgSlNWYWx1
ZSByd0FyZ3VtZW50ID0gc3RhdGUuYXJndW1lbnQoMCk7CisgICAgaWYgKCFyd0FyZ3VtZW50Lmlz
T2JqZWN0KCkpIHsKKyAgICAgICAgdGhyb3dWTUVycm9yKCZzdGF0ZSwgY3JlYXRlVHlwZUVycm9y
KCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVhbSBwaXBlVGhyb3VnaCBmaXJzdCBh
cmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdCIpKSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOworICAgIH0KKyAgICBKU09iamVjdCYgcndPYmplY3QgPSAqcndBcmd1bWVudC5nZXRPYmpl
Y3QoKTsKKworICAgIEpTVmFsdWUgd3JpdGFibGUgPSBnZXRQcm9wZXJ0eUZyb21PYmplY3Qoc3Rh
dGUsIHJ3T2JqZWN0LCAid3JpdGFibGUiKTsKKyAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisgICAgTWFya2VkQXJndW1lbnRCdWZm
ZXIgYXJndW1lbnRzOworICAgIGFyZ3VtZW50cy5hcHBlbmQod3JpdGFibGUpOworICAgIGFyZ3Vt
ZW50cy5hcHBlbmQoc3RhdGUuYXJndW1lbnQoMSkpOworCisgICAgY2FsbEZ1bmN0aW9uKHN0YXRl
LCBmdW5jdGlvbiwgdGhpc1ZhbHVlLCBhcmd1bWVudHMpOworICAgIGlmIChzdGF0ZS5oYWRFeGNl
cHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICByZXR1cm4gZ2V0
UHJvcGVydHlGcm9tT2JqZWN0KHN0YXRlLCByd09iamVjdCwgInJlYWRhYmxlIik7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9SZWFkYWJsZUpTU3RyZWFtLmgKaW5kZXggODNkY2Y2OWZlMmQyMmM4MGZhMTA0M2E5NmZk
M2YzMDNiODFjMWM1NC4uODY4Yzc3MTgyNjg3YjE5ZTc3Zjg2YjU0YzIyMTVhN2E3ZDI0ZjJiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaApAQCAt
ODMsNiArODMsOCBAQCBjbGFzcyBSZWFkYWJsZUpTU3RyZWFtIGZpbmFsIDogcHVibGljIFJlYWRh
YmxlRW5xdWV1aW5nU3RyZWFtPFJlYWRhYmxlSlNTdHJlYW1WYQogcHVibGljOgogICAgIHN0YXRp
YyBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpK
U1ZhbHVlLCBjb25zdCBEaWN0aW9uYXJ5Jik7CiAKKyAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIHBp
cGVUaHJvdWdoKEpTQzo6RXhlY1N0YXRlJik7CisKICAgICBKU0M6OkpTVmFsdWUganNDb250cm9s
bGVyKEpTQzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3QqKTsKICAgICB2b2lkIGNsb3Nl
KEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIyYzI0YjI0Y2Q4M2E5MzEyN2I2MjE0YzkxNjUy
ZWE4OGZiOGM4MmUuLmY2ZjRlMjA3YTk1NTkxOWUwZTJhZmM1NzJmODk3N2EzODQyNGZjYzIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wOC0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5m
YWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJl
YWRhYmxlU3RyZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlw
ZVRocm91Z2guaHRtbDogQWRkZWQuCisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVt
ZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dDoKKwogMjAxNS0wOC0wNiAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgZ2V0
X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlfdmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3Ry
aW5nIG9yIFN5bWJvbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1z
dHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFk
YWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZTA2MWNh
OTA2ZDQyMGYxNWYxM2Q3YjQ1MTBjZjUzZWNkMjM2ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw2IEBACisKK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJv
dWdoIHNob3VsZCB0aHJvdyB3aGVuICJ0aGlzIiBoYXMgbm8gcGlwZVRvIG1ldGhvZCAKK1BBU1Mg
UmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIHBh
c3NlZCBhcmd1bWVudCBpcyBub3QgYW4gb2JqZWN0IAorUEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90
b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHRocm93IHdoZW4gY2FsbGVkIGdldHRlcnMgYXJlIHRo
cm93aW5nIAorUEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxk
IHdvcmsgd2l0aCBtaXNzaW5nIHBhcmFtZXRlcnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwMzMx
ODk1YTJhYTVlYThhNDgzNzc1MTEwOTg0YTIyZDY5MWEzOTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sCkBAIC0w
LDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvZ2Mu
anMnPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgaW5w
dXQgPSB7CisgICAgICAgIHJlYWRhYmxlOiB7IH0sCisgICAgICAgIHdyaXRhYmxlOiB7IH0KKyAg
ICB9OworICAgIHZhciBvcHRpb25zID0geyB9OworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdo
LmNhbGwodW5kZWZpbmVkLCBpbnB1dCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90aHJvd3Mo
bmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBp
cGVUaHJvdWdoLmNhbGwobnVsbCwgaW5wdXQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhy
b3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlw
ZS5waXBlVGhyb3VnaC5jYWxsKDEsIGlucHV0LCBvcHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5
cGUucGlwZVRocm91Z2guY2FsbCh7ICJwaXBlVG8iOiAidGVzdCIgfSwgaW5wdXQsIG9wdGlvbnMp
OyB9KTsKK30sICdSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHRo
cm93IHdoZW4gInRoaXMiIGhhcyBubyBwaXBlVG8gbWV0aG9kJyk7CisKK3Rlc3QoZnVuY3Rpb24o
KSB7CisgICAgdmFyIG9wdGlvbnMgPSB7IH07CisgICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAg
ICAgcGlwZVRvOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoKTsK
KyAgICAgICAgfQorICAgIH07CisKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwg
ZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRo
aXNWYWx1ZSwgbnVsbCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdo
LmNhbGwodGhpc1ZhbHVlLCB1bmRlZmluZWQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhy
b3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlw
ZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgMSwgb3B0aW9ucyk7IH0pOworfSwgJ1JlYWRh
YmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBwYXNzZWQg
YXJndW1lbnQgaXMgbm90IGFuIG9iamVjdCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZh
ciBvcHRpb25zID0geyB9OworICAgIHZhciBlcnJvciA9IG5ldyBUeXBlRXJyb3IoInBvdGF0byIp
OworCisgICAgdmFyIHRoaXNXcm9uZ1ZhbHVlID0geworICAgICAgICBnZXQgcGlwZVRvKCkgewor
ICAgICAgICAgICAgdGhyb3cgZXJyb3I7CisgICAgICAgIH0KKyAgICB9OworICAgIGFzc2VydF90
aHJvd3MoZXJyb3IsIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRo
cm91Z2guY2FsbCh0aGlzV3JvbmdWYWx1ZSwgeyByZWFkYWJsZTogeyB9LCB3cml0YWJsZTogeyB9
IH0sIG9wdGlvbnMpOyB9KTsKKworICAgIHZhciB0aGlzVmFsdWUgPSB7CisgICAgICAgIHBpcGVU
bzogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCk7CisgICAgICAg
IH0KKyAgICB9OworICAgIHZhciB3cm9uZ0lucHV0ID0geworICAgICAgICByZWFkYWJsZTogeyB9
LAorICAgICAgICBnZXQgd3JpdGFibGUoKSB7CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAg
ICAgICAgfQorICAgIH07CisgICAgYXNzZXJ0X3Rocm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJl
YWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgd3JvbmdJ
bnB1dCwgb3B0aW9ucyk7IH0pOworCisgICAgdmFyIHdyb25nSW5wdXQyID0geworICAgICAgICBn
ZXQgcmVhZGFibGUoKSB7CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAgICAgfSwKKyAg
ICAgICAgd3JpdGFibGU6IHsgfQorICAgIH07CisgICAgdmFyIHRoaXNWYWx1ZTIgPSB7CisgICAg
ICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7IH0KKyAgICB9OworICAgIGFzc2VydF90aHJvd3MoZXJy
b3IsIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2Fs
bCh0aGlzVmFsdWUyLCB3cm9uZ0lucHV0Miwgb3B0aW9ucyk7IH0pOworfSwgJ1JlYWRhYmxlU3Ry
ZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBjYWxsZWQgZ2V0dGVy
cyBhcmUgdGhyb3dpbmcnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgY291bnQgPSAw
OworICAgIHZhciB0aGlzVmFsdWUgPSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICArK2NvdW50OworICAgICAgICB9CisgICAgfTsKKworICAgIFJlYWRhYmxlU3Ry
ZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgeyByZWFkYWJsZTogeyB9
LCB3cml0YWJsZTogeyB9IH0pOworICAgIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhy
b3VnaC5jYWxsKHRoaXNWYWx1ZSwgeyByZWFkYWJsZTogeyB9IH0sIHsgfSk7CisgICAgUmVhZGFi
bGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHdyaXRhYmxl
OiB7IH0gfSwgeyB9KTsKKworICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDMpOworfSwgJ1JlYWRh
YmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgd29yayB3aXRoIG1pc3Npbmcg
cGFyYW1ldGVycycpOworCisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Ry
ZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNr
cy1leHBlY3RlZC50eHQKaW5kZXggMzczNTc3ZWI5ODIxZDIwNzU0ZGU4NzcxYTYwZmFlNTIzOGM5
YjVmNi4uYjE5N2QxNjU3YjEwZjcwMDM0ZjJjMmE2NDYxNmY1YmMyZmYyNWZkMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hl
Y2tzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBs
ZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQ
QVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGNvbnN0cnVjdG9yIGluZGlyZWN0
bHkgCiBQQVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3Rv
ciBpbmRpcmVjdGx5IAotRkFJTCBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2gg
d29ya3MgZ2VuZXJpY2FsbHkgb24gaXRzIHRoaXMgYW5kIGl0cyBhcmd1bWVudHMgQ2FuIG9ubHkg
Y2FsbCBSZWFkYWJsZVN0cmVhbS5waXBlVGhyb3VnaCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVT
dHJlYW0KK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHdvcmtzIGdl
bmVyaWNhbGx5IG9uIGl0cyB0aGlzIGFuZCBpdHMgYXJndW1lbnRzIAogUEFTUyBSZWFkYWJsZVN0
cmVhbVJlYWRlciBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIG9uIGl0cyBhcmd1bWVudCAKIEZBSUwg
UmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNsb3NlZCBlbmZvcmNlcyBhIGJyYW5kIGNo
ZWNrIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgZ2V0dGVyTmFtZSkuZ2V0JykKIFBBU1MgUmVhZGFibGVT
dHJlYW1SZWFkZXIucHJvdG90eXBlLmNhbmNlbCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260866</attachid>
            <date>2015-09-09 11:36:41 -0700</date>
            <delta_ts>2015-09-16 09:26:57 -0700</delta_ts>
            <desc>JS builtin within WebCore</desc>
            <filename>bug-147556-20150909203635.patch</filename>
            <type>text/plain</type>
            <size>63896</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MTc2NmNhYWVhYThlOTk4NDljODdlYWE0NjBjNDZhNzIyMTNjZjgzLi43MWZmYzFjM2I4NjRkYzgz
NTk2NzAxY2I3YzU2MTMzM2VlZWQ3MDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNh
YmxlIGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGlu
TmFtZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVz
LgorICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRp
bmcgYnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVp
bHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1
dGFibGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGlu
RXhlY3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3Jl
YXRlQnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50
ZXJuYWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAg
ICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6
OkJ1aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxz
Lmg6IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFi
bGVzLmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoK
KyAgICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6
CisgICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0wNiAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgR2FyZGVuaW5nOiBmaXggYnJva2Vu
IFdpbmRvd3MgYnVpbGQgYWZ0ZXIgcjE4OTQ1NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZTBlNGYwZTE3MTUy
YzVkMTE2YzQ4ODVmYjNkNzYwOGVlNmZmZTM3Li5lNzJkNDFhODRmYzE5OTI4MmNiMjFiN2Y1Nzc3
MDYyZTBjYzIwZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTUtMDktMDkgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3Ry
ZWFtcyBBUEldIEltcGxlbWVudCBSZWFkYWJsZVN0cmVhbSBwaXBlVGhyb3VnaAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NTU2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGluaXRpYWwgc3Vw
cG9ydCBmb3IgSlMgYnVpbHRpbnMgd2l0aGluIFdlYkNvcmUuCisgICAgICAgIFRoaXMgcGF0Y2gg
YWxsb3dzIGltcGxlbWVudGluZyBJREwgaW50ZXJmYWNlIG1ldGhvZHMgaW4gSlMsIGJ5IHVzaW5n
IHRoZSBuZXcgSlNCdWlsdGluIGtleXdvcmQuCisgICAgICAgIChObyBzdXBwb3J0IHlldCBmb3Ig
cHJpdmF0ZSBpZGVudGlmaWVycywgY29uc3RydWN0b3JzIG9yIGFjY2Vzc29ycykuCisgICAgICAg
IEludGVncmF0aW9uIG9mIHRoZSBidWlsdC1pbiBleGVjdXRhYmxlcyBhbmQgbmFtZXMgaXMgaW1w
bGVtZW50ZWQgd2l0aGluIFdlYkNvcmVKU0NsaWVudERhdGEuCisgICAgICAgIFR3byBmaWxlcyBh
cmUgZ2VuZXJhdGVkIGZvciBlYWNoIEpTIGJ1aWx0aW4gZmlsZToKKyAgICAgICAgLSBidWlsdGlu
IGgvY3BwIGZpbGVzIHNpbWlsYXIgdG8gSlNDQnVpbHRpbnMuY3BwLy5oLCBnZW5lcmF0ZWQgdGhy
b3VnaCBXZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIGZyb20gSmF2YVNjcmlwdENvcmUvZ2Vu
ZXJhdGUtanMtYnVpbHRpbnMpCisgICAgICAgIC0gQSBidWlsdGluIHdyYXBwZXIgZmlsZSBtaW1p
Y2tpbmcgQnVpbHRpbkV4ZWN1dGFibGVzIChnZW5lcmF0ZWQgZnJvbSBXZWJDb3JlL2dlbmVyYXRl
LWpzLWJ1aWx0aW5zKQorICAgICAgICBDb250cmFyeSB0byBKU0MsIGVhY2gganMgZmlsZSBpcyBn
ZW5lcmF0aW5nIGl0cyBvd24gY3BwL2ggZmlsZS4KKyAgICAgICAgVGhpcyBhbGxvd3MgaW5jbHVk
aW5nIHRob3NlIGZpbGVzIHdpdGhpbiB0aGUgSlNYWC5jcHAvLmggZmlsZXMgZ2VuZXJhdGVkIGZy
b20gdGhlIElETCB3aGVyZSBjb21waWxhdGlvbiBndWFyZCBtYXkgdGFrZSBlZmZlY3QuCisKKyAg
ICAgICAgVGVzdDogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbAorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFRyaWdnZXJpbmcgZ2VuZXJhdGUtanMtYnVpbHRpbnMg
Zm9yIEpTIGZpbGVzLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgorICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oOiBBZGRlZC4K
KyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0Nv
bnN0cnVjdEFiaWxpdHkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtLmlkbDogTWFya2luZyBwaXBlVGhyb3VnaCBhcyBKUyBidWlsdGluCisgICAgICAg
ICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzOiBBZGRlZC4KKyAgICAgICAgKHBp
cGVUaHJvdWdoKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9t
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmg6IEFkZGlu
ZyBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciB0byBzdG9yZSBSZWFkYWJsZVN0cmVhbSBi
dWlsdGluIGV4ZWN1dGFibGUKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVKU0NsaWVudERhdGE6
OldlYkNvcmVKU0NsaWVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUpTQ2xpZW50
RGF0YTo6cmVhZGFibGVTdHJlYW1CdWlsdGlucyk6CisgICAgICAgIChXZWJDb3JlOjppbml0Tm9y
bWFsV29ybGRDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbTogQWRkaW5nIHN1cHBvcnQgZm9yIEpTQnVpbHRpbiBrZXl3b3JkLgorICAgICAg
ICAoR2V0RnVuY3Rpb25OYW1lKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAg
KEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVIYXNoVGFibGVWYWx1
ZUFycmF5KToKKyAgICAgICAgKENvbXB1dGVGdW5jdGlvblNwZWNpYWwpOgorICAgICAgICAoVXNl
SlNCdWlsdGlucyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4
dDogQWRkaW5nIEpTQnVpbHRpbi4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
anNfYnVpbHRpbl9tZXRob2QpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9qc19idWls
dGluX21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
bW06CisgICAgICAgICgtW0RPTVRlc3RPYmoganNCdWlsdGluTWV0aG9kXSk6CisgICAgICAgICgt
W0RPTVRlc3RPYmoganNCdWlsdGluTWV0aG9kV2l0aEFyZ3M6c3RyQXJnOm9iakFyZzpdKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogZ2Vu
ZXJhdGUtanMtYnVpbHRpbnM6IEFkZGVkLgorCiAyMDE1LTA5LTA2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgZGlzcGF0Y2hFdmVudCgpIHNob3VsZCB0aHJvdyBh
biBJbnZhbGlkU3RhdGVFcnJvciBpZiB0aGUgZXZlbnQncyBpbml0aWFsaXplZCBmbGFnIGlzIG5v
dCBzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWUxZmI5MTFjZjZmNDUxZjVi
YzQ2NDdkNjM0MGE3OWU4YzQwYjAyYi4uNDBmNTM4MTM3OGUyYzE4NzIyNTYyNzYxZjA3YWYxZWI4
ODNlYjZlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk1NCw2ICs5NTQsNyBA
QAogCQkyQUY3MzgyRDE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFGNzM4MkIxOEJCQkY5
MjAwOEE1QTM3IC8qIFN0cnVjdHVyZUlEVGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzNzFEODQyRDE3Qzk4QjZFMDBFQ0Y5OTQgLyogbGli
ei5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3MUQ4NDJDMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5bGliICovOyB9OwogCQk0MTM1OUNG
MzBGREQ4OUFEMDAyMDYxODAgLyogRGF0ZUNvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyMTIwMjI5MEFENDMxMEMwMEVENzlCNiAvKiBE
YXRlQ29udmVyc2lvbi5oICovOyB9OworCQk0MURFQTEzMjFCOUYzMTYzMDA2RDY1REQgLyogQnVp
bHRpblV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MURFQTEzMTFCOUYzMTU0MDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDM0MEE0ODQxQTkwNTFBRjAw
RDczQ0NBIC8qIE1hdGhDb21tb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDM0MEE0ODIxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uY3Bw
ICovOyB9OwogCQk0MzQwQTQ4NTFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM0MEE0ODMxQTkwNTFB
RjAwRDczQ0NBIC8qIE1hdGhDb21tb24uaCAqLzsgfTsKIAkJNDQ0M0FFMzMxNkUxODhEOTAwNzZG
MTEwIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMEVCNjEwNUM4NkM2QjAwRTZERjFCIC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrICovOyB9OwpAQCAtMjc1Myw2ICsyNzU0LDcgQEAKIAkJMkFGNzM4MkExOEJC
QkY5MjAwOEE1QTM3IC8qIFN0cnVjdHVyZUlEVGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3RydWN0dXJlSURUYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJBRjczODJCMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZUlEVGFibGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8q
IGxpYnouZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYnouZHlsaWI7IHBhdGggPSB1
c3IvbGliL2xpYnouZHlsaWI7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OworCQk0MURFQTEzMTFC
OUYzMTU0MDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJ1aWx0aW5VdGlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MzQwQTQ4MjFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoQ29tbW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDM0MEE0ODMxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aENvbW1vbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NDkwOTdFRTBGOEY4MUI1MDA3NkEzMjcgLyogRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmlu
ZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODMxLDYgKzU4MzMs
NyBAQAogCQkJCUE3RDgwMUExMTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMu
Y3BwICovLAogCQkJCUE3RDgwMUEyMTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJs
ZXMuaCAqLywKIAkJCQlBNzVFRTlCMDE4QUFCN0UyMDBBQUQwNDMgLyogQnVpbHRpbk5hbWVzLmgg
Ki8sCisJCQkJNDFERUExMzExQjlGMzE1NDAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oICovLAog
CQkJCUE3QTk3OUM0MThCRThEOUUwMDJDMzczMyAvKiBGdW5jdGlvbi5wcm90b3R5cGUuanMgKi8s
CiAJCQkJN0NGOUJDNUExQjY1RDlBMzAwOURCMUVGIC8qIEdsb2JhbE9iamVjdC5qcyAqLywKIAkJ
CQlFMzVFMDM2MTFCN0FCNDg1MDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0LmpzICovLApAQCAtNjA5OCw2ICs2MTAxLDcgQEAKIAkJCQlBNzA0RDkwMzE3QTBCQUE4MDA2
QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcw
NEQ5MDQxN0EwQkFBODAwNkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBMUI5RTIzQzFCNEUwRDY3MDBCQzdGRUQgLyogSW50bENvbGxh
dG9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxREVBMTMyMUI5RjMxNjMwMDZE
NjVERCAvKiBCdWlsdGluVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjIwMTc3MTQzRkNE
M0YwMDY4Qjc3QyAvKiBERkdBYnN0cmFjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYw
NTRGQTFBQzM1QjQ0MDBFNUJFNTcgLyogRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjY2RTE2QjE0REYzRjE2MDBCN0IyRTQgLyogREZHQWRqYWNlbmN5TGlz
dC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCmluZGV4IDkzNzBlN2UxZmU2NTliYWFkMTNiZDAy
OWI3YjliZmY2ODQ2MmJlYWMuLjczZWJlNDc5OTM1ZmNhNzQwOWZkOTMyZjg4OWI2NTg0YmU1OGI2
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhl
Y3V0YWJsZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGlu
RXhlY3V0YWJsZXMuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitz
dGF0aWMgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5h
bChWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBjb25zdCBJZGVudGlmaWVyJiwgQ29uc3RydWN0b3JL
aW5kLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKwogQnVpbHRpbkV4ZWN1dGFibGVzOjpCdWlsdGluRXhl
Y3V0YWJsZXMoVk0mIHZtKQogICAgIDogbV92bSh2bSkKICNkZWZpbmUgSU5JVElBTElaRV9CVUlM
VElOX1NPVVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKSAsIG1fIyNuYW1l
IyNTb3VyY2UobWFrZVNvdXJjZShTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChzXyMjbmFt
ZSwgbGVuZ3RoKSkpCkBAIC01MiwxNSArNTQsMjUgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRGVmYXVsdENvbnN0cnVjdG9yKENvbnN0cnUK
ICAgICBjYXNlIENvbnN0cnVjdG9yS2luZDo6Tm9uZToKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDb25zdHJ1Y3RvcktpbmQ6OkJhc2U6Ci0gICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxl
SW50ZXJuYWwobWFrZVNvdXJjZShiYXNlQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0
b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QpOworICAgICAgICByZXR1cm4g
Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1fdm0sIG1ha2VTb3VyY2UoYmFzZUNvbnN0cnVjdG9y
Q29kZSksIG5hbWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3Ry
dWN0KTsKICAgICBjYXNlIENvbnN0cnVjdG9yS2luZDo6RGVyaXZlZDoKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtYWtlU291cmNlKGRlcml2ZWRDb25zdHJ1Y3RvckNv
ZGUpLCBuYW1lLCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVj
dCk7CisgICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwobV92bSwgbWFrZVNv
dXJjZShkZXJpdmVkQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25z
dHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQ29uc3RydWN0b3JLaW5k
IGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQorVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlQnVpbHRp
bkV4ZWN1dGFibGUoY29uc3QgU291cmNlQ29kZSYgY29kZSwgY29uc3QgSWRlbnRpZmllciYgbmFt
ZSwgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQoreworICAgIHJldHVybiBjcmVh
dGVFeGVjdXRhYmxlSW50ZXJuYWwobV92bSwgY29kZSwgbmFtZSwgQ29uc3RydWN0b3JLaW5kOjpO
b25lLCBjb25zdHJ1Y3RBYmlsaXR5KTsKK30KKworVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUq
IGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgY29kZSwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5
KQoreworICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwodm0sIGNvZGUsIG5hbWUs
IENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgY29uc3RydWN0QWJpbGl0eSk7Cit9CisKK1VubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoVk0mIHZtLCBjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdG9y
S2luZCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkK
IHsKICAgICBKU1RleHRQb3NpdGlvbiBwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lOwogICAgIFBh
cnNlckVycm9yIGVycm9yOwpAQCAtNjksNyArODEsNyBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3Qg
UwogICAgIFVubGlua2VkRnVuY3Rpb25LaW5kIGtpbmQgPSBpc1BhcnNpbmdEZWZhdWx0Q29uc3Ry
dWN0b3IgPyBVbmxpbmtlZE5vcm1hbEZ1bmN0aW9uIDogVW5saW5rZWRCdWlsdGluRnVuY3Rpb247
CiAgICAgUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiBzb3VyY2VPdmVycmlkZSA9IGlzUGFyc2luZ0Rl
ZmF1bHRDb25zdHJ1Y3RvciA/IHNvdXJjZS5wcm92aWRlcigpIDogbnVsbHB0cjsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UHJvZ3JhbU5vZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFtTm9kZT4oCi0g
ICAgICAgICZtX3ZtLCBzb3VyY2UsIElkZW50aWZpZXIoKSwgYnVpbHRpbk1vZGUsCisgICAgICAg
ICZ2bSwgc291cmNlLCBJZGVudGlmaWVyKCksIGJ1aWx0aW5Nb2RlLAogICAgICAgICBKU1BhcnNl
clN0cmljdE1vZGU6Ok5vdFN0cmljdCwgU291cmNlUGFyc2VNb2RlOjpQcm9ncmFtTW9kZSwgZXJy
b3IsCiAgICAgICAgICZwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lLCBjb25zdHJ1Y3RvcktpbmQp
OwogCkBAIC05NSwxNiArMTA3LDE2IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWls
dGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb25zdCBTCiAgICAgbWV0
YWRhdGEtPnNldEVuZFBvc2l0aW9uKHBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUpOwogICAgIFJF
TEVBU0VfQVNTRVJUKG1ldGFkYXRhKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNsb3NlZFZhcmlh
YmxlIDogcHJvZ3JhbS0+Y2xvc2VkVmFyaWFibGVzKCkpIHsKLSAgICAgICAgaWYgKGNsb3NlZFZh
cmlhYmxlID09IG1fdm0ucHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkKKyAgICAgICAg
aWYgKGNsb3NlZFZhcmlhYmxlID09IHZtLnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBsKCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIGlmIChjbG9zZWRWYXJp
YWJsZSA9PSBtX3ZtLnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQuaW1wbCgpKQorICAg
ICAgICBpZiAoY2xvc2VkVmFyaWFibGUgPT0gdm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5
d29yZC5pbXBsKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICB9CiAgICAgbWV0YWRhdGEt
Pm92ZXJyaWRlTmFtZShuYW1lKTsKICAgICBWYXJpYWJsZUVudmlyb25tZW50IGR1bW15VERaVmFy
aWFibGVzOwotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFi
bGUgPSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y3JlYXRlKCZtX3ZtLCBzb3VyY2UsIG1l
dGFkYXRhLCBraW5kLCBjb25zdHJ1Y3RBYmlsaXR5LCBkdW1teVREWlZhcmlhYmxlcywgV1RGOjpt
b3ZlKHNvdXJjZU92ZXJyaWRlKSk7Ci0gICAgZnVuY3Rpb25FeGVjdXRhYmxlLT5tX25hbWVWYWx1
ZS5zZXQobV92bSwgZnVuY3Rpb25FeGVjdXRhYmxlLCBqc1N0cmluZygmbV92bSwgbmFtZS5zdHJp
bmcoKSkpOworICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFi
bGUgPSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y3JlYXRlKCZ2bSwgc291cmNlLCBtZXRh
ZGF0YSwga2luZCwgY29uc3RydWN0QWJpbGl0eSwgZHVtbXlURFpWYXJpYWJsZXMsIFdURjo6bW92
ZShzb3VyY2VPdmVycmlkZSkpOworICAgIGZ1bmN0aW9uRXhlY3V0YWJsZS0+c2V0TmFtZVZhbHVl
KHZtLCBqc1N0cmluZygmdm0sIG5hbWUuc3RyaW5nKCkpKTsKICAgICByZXR1cm4gZnVuY3Rpb25F
eGVjdXRhYmxlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
QnVpbHRpbkV4ZWN1dGFibGVzLmgKaW5kZXggNGU0MzIyMjVmYmQxMGRkYzMzNjA0YTNkNjYzMzJm
NjRjODY2MWRlMy4uNmE5ODMyMTdhMGE4ODQ1N2VmMDk4ZmJjYjk1MTIzZDU5YTUyNTE3NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxl
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJs
ZXMuaApAQCAtNTcsMTEgKzU3LDcgQEAgcHJpdmF0ZToKIAogICAgIFZNJiBtX3ZtOwogCi0gICAg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKGNvbnN0
IFNvdXJjZUNvZGUmIGNvZGUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdEFiaWxp
dHkgY29uc3RydWN0QWJpbGl0eSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRh
YmxlSW50ZXJuYWwoY29kZSwgbmFtZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBjb25zdHJ1Y3RB
YmlsaXR5KTsKLSAgICB9Ci0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUV4
ZWN1dGFibGVJbnRlcm5hbChjb25zdCBTb3VyY2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENv
bnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSk7CisgICAgVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUqIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKGNvbnN0IFNvdXJjZUNvZGUmLCBjb25z
dCBJZGVudGlmaWVyJiwgQ29uc3RydWN0QWJpbGl0eSk7CiAKICNkZWZpbmUgREVDTEFSRV9CVUlM
VElOX1NPVVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKVwKICAgICBTb3Vy
Y2VDb2RlIG1fIyNuYW1lIyNTb3VyY2U7IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9CdWlsdGluTmFtZXMuaAppbmRleCA3ZTU0MzQyZTc1MmY5ZjJkNGU4MzVlZDAzNGY0NjA5
Y2YzNjVkMzlmLi5lNDg0YjI0ZGNlMzNjNzMzZTQxZGJhMGQ2MzBlNDhkMGJiZjM5ZmQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC0yNiwy
NiArMjYsMTUgQEAKICNpZm5kZWYgQnVpbHRpbk5hbWVzX2gKICNkZWZpbmUgQnVpbHRpbk5hbWVz
X2gKIAorI2luY2x1ZGUgIkJ1aWx0aW5VdGlscy5oIgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZp
ZXJzLmgiCiAjaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7Ci0gICAg
Ci0jZGVmaW5lIElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUyhuYW1lKSAsIG1fIyNuYW1lKElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICNuYW1lKSksIG1fIyNuYW1lIyNQcml2YXRlTmFtZShJZGVu
dGlmaWVyOjpmcm9tVWlkKFByaXZhdGVOYW1lKFByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwgQVND
SUlMaXRlcmFsKCJQcml2YXRlU3ltYm9sLiIgI25hbWUpKSkpCi0jZGVmaW5lIERFQ0xBUkVfQlVJ
TFRJTl9OQU1FUyhuYW1lKSBjb25zdCBJZGVudGlmaWVyIG1fIyNuYW1lOyBjb25zdCBJZGVudGlm
aWVyIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0lERU5U
SUZJRVJfQUNDRVNTT1IobmFtZSkgXAotICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUjI1B1Ymxp
Y05hbWUoKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZTsgfSBcCi0gICAgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSMjUHJpdmF0ZU5hbWUoKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZSMjUHJpdmF0ZU5h
bWU7IH0KLQotI2RlZmluZSBJTklUSUFMSVNFX0JVSUxUSU5fU1lNQk9MUyhuYW1lKSBJTklUSUFM
SVNFX0JVSUxUSU5fTkFNRVMobmFtZSksIG1fIyNuYW1lIyNTeW1ib2woSWRlbnRpZmllcjo6ZnJv
bVVpZChQcml2YXRlTmFtZShQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24sIEFTQ0lJTGl0ZXJhbCgi
U3ltYm9sLiIgI25hbWUpKSkpCi0jZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TWU1CT0xTKG5hbWUp
IERFQ0xBUkVfQlVJTFRJTl9OQU1FUyhuYW1lKSBjb25zdCBJZGVudGlmaWVyIG1fIyNuYW1lIyNT
eW1ib2w7Ci0jZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TWU1CT0xfQUNDRVNTT1IobmFtZSkgXAot
ICAgIERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKLSAgICBjb25z
dCBJZGVudGlmaWVyJiBuYW1lIyNTeW1ib2woKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZSMjU3lt
Ym9sOyB9CiAKICNkZWZpbmUgSU5JVElBTElTRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWShuYW1l
KSBtX3ByaXZhdGVUb1B1YmxpY01hcC5hZGQobV8jI25hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwg
Jm1fIyNuYW1lKTsKICNkZWZpbmUgSU5JVElBTElTRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWShu
YW1lKSBtX3B1YmxpY1RvUHJpdmF0ZU1hcC5hZGQobV8jI25hbWUuaW1wbCgpLCAmbV8jI25hbWUj
I1ByaXZhdGVOYW1lKTsKLSAgICAKKwogY2xhc3MgQnVpbHRpbk5hbWVzIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShCdWlsdGluTmFtZXMpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRp
bHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMjU1NTExYjVhNjljY2IzNTAzMzYzOWZmNTk1ZTdmYWUwODkzOTM5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5o
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBCdWlsdGluVXRpbHNfaAorI2RlZmluZSBCdWlsdGluVXRpbHNfaAorCisj
aW5jbHVkZSAiQ29uc3RydWN0QWJpbGl0eS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2RlZmlu
ZSBJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMobmFtZSkgLCBtXyMjbmFtZShKU0M6OklkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sICNuYW1lKSksIG1fIyNuYW1lIyNQcml2YXRlTmFtZShKU0M6Oklk
ZW50aWZpZXI6OmZyb21VaWQoSlNDOjpQcml2YXRlTmFtZShKU0M6OlByaXZhdGVOYW1lOjpEZXNj
cmlwdGlvbiwgQVNDSUlMaXRlcmFsKCJQcml2YXRlU3ltYm9sLiIgI25hbWUpKSkpCisjZGVmaW5l
IERFQ0xBUkVfQlVJTFRJTl9OQU1FUyhuYW1lKSBjb25zdCBKU0M6OklkZW50aWZpZXIgbV8jI25h
bWU7IGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7CisjZGVmaW5l
IERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBjb25zdCBK
U0M6OklkZW50aWZpZXImIG5hbWUjI1B1YmxpY05hbWUoKSBjb25zdCB7IHJldHVybiBtXyMjbmFt
ZTsgfSBcCisgICAgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBuYW1lIyNQcml2YXRlTmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsgfQorCisjZGVmaW5lIElOSVRJQUxJ
U0VfQlVJTFRJTl9TWU1CT0xTKG5hbWUpIElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUyhuYW1lKSwg
bV8jI25hbWUjI1N5bWJvbChKU0M6OklkZW50aWZpZXI6OmZyb21VaWQoSlNDOjpQcml2YXRlTmFt
ZShKU0M6OlByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwgQVNDSUlMaXRlcmFsKCJTeW1ib2wuIiAj
bmFtZSkpKSkKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX1NZTUJPTFMobmFtZSkgREVDTEFSRV9C
VUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZSMjU3ltYm9s
OworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lNQk9MX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBE
RUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCisgICAgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBuYW1lIyNTeW1ib2woKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZSMjU3lt
Ym9sOyB9CisKK2NsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIElkZW50aWZpZXI7Citj
bGFzcyBTb3VyY2VDb2RlOworY2xhc3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU7CitjbGFz
cyBWTTsKKworSlNfRVhQT1JUX1BSSVZBVEUgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNy
ZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50
aWZpZXImLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKyAgICAKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZS5oCmluZGV4IGUzZmMyYTk2NDljZmVjYjE4YTAyMDIwZTk2MTAxNDk0OWM0NTY2ZmEu
LmEzOTJmZDliMzBjZDI2YjNhNjE2ZDdiZGI2NGYzMmEwZTFmMTk3OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZS5oCkBAIC01OSw3ICs1OSw2IEBAIGVudW0gVW5saW5rZWRGdW5jdGlvbktpbmQgewog
CiBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwg
ewogcHVibGljOgotICAgIGZyaWVuZCBjbGFzcyBCdWlsdGluRXhlY3V0YWJsZXM7CiAgICAgZnJp
ZW5kIGNsYXNzIENvZGVDYWNoZTsKICAgICBmcmllbmQgY2xhc3MgVk07CiAKQEAgLTc3LDYgKzc2
LDcgQEAgcHVibGljOgogICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KICAgICBjb25zdCBJZGVudGlmaWVyJiBpbmZlcnJlZE5hbWUoKSBjb25zdCB7
IHJldHVybiBtX2luZmVycmVkTmFtZTsgfQogICAgIEpTU3RyaW5nKiBuYW1lVmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWVWYWx1ZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0TmFtZVZhbHVlKFZN
JiB2bSwgSlNTdHJpbmcqIG5hbWVWYWx1ZSkgeyBtX25hbWVWYWx1ZS5zZXQodm0sIHRoaXMsIG5h
bWVWYWx1ZSk7IH0KICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFyYW1ldGVyQ291bnQ7IH07CiAgICAgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFyc2VNb2RlOyB9OwogICAgIGJvb2wgaXNJblN0cmljdENvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX2lzSW5TdHJpY3RDb250ZXh0OyB9CkBAIC0xMDAsNyArMTAwLDcg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiwgRXhlY1N0YXRlJiwgY29uc3Qg
U291cmNlQ29kZSYsIEpTT2JqZWN0KiYgZXhjZXB0aW9uLCAKICAgICAgICAgaW50IG92ZXJyaWRl
TGluZU51bWJlcik7CiAKLSAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGxpbmsoVk0mLCBjb25zdCBT
b3VyY2VDb2RlJiwgaW50IG92ZXJyaWRlTGluZU51bWJlciA9IC0xKTsKKyAgICBKU19FWFBPUlRf
UFJJVkFURSBGdW5jdGlvbkV4ZWN1dGFibGUqIGxpbmsoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwg
aW50IG92ZXJyaWRlTGluZU51bWJlciA9IC0xKTsKIAogICAgIHZvaWQgY2xlYXJDb2RlKCkKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRp
bnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKaW5kZXggOTY0
NzE2MzZmYTNlN2NlYzBhMjZiYmFmNTZhMjhkOTI4MjEwYzU2Ny4uNzJhNzg4MzBkNDc3NDI5MWIz
ZDUzMzFhM2E2YTRhZmQ2NDU1MGI4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0
ZS1qcy1idWlsdGlucwpAQCAtMjIsNiArMjIsOCBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAorIyBUT0RPOiBNb3ZlIHRoaXMgc2NyaXB0IHRvIGFub3RoZXIgcGxhY2UgdGhhbiBK
YXZhU2NyaXB0Q29yZSBzaW5jZSBpdCBpcyBpbiB1c2UgZm9yIFdlYkNvcmUgYXMgd2VsbC4KKwog
aW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgZmlsZWNtcAogaW1wb3J0IGZubWF0Y2gKQEAgLTM2LDYg
KzM4LDggQEAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQogcGFyc2VyLmFkZF9h
cmd1bWVudCgnaW5wdXRfZmlsZScsIG5hcmdzPScqJywgaGVscD0nSW5wdXQgSlMgZmlsZXMgd2hp
Y2ggYnVpbHRpbnMgZ2VuZXJhdGVkIGZyb20nKQogcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbnB1
dC1kaXJlY3RvcnknLCBoZWxwPSdBbGwgSlMgZmlsZXMgd2lsbCBiZSB1c2VkIGFzIGlucHV0IGZy
b20gdGhpcyBkaXJlY3RvcnkuJykKIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0JywgaGVs
cD0ncGF0aCB0byBvdXRwdXQgY3BwIG9yIGggZmlsZScpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCct
LXByZWZpeCcsIGRlZmF1bHQ9J0pTQycsIGhlbHA9J3ByZWZpeCB1c2VkIGZvciBwdWJsaWMgbWFj
cm9zJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0tbmFtZXNwYWNlJywgZGVmYXVsdD0nSlNDJywg
aGVscD0nQysrIG5hbWVzcGFjZScpCiBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQogCiBjb3B5
cmlnaHRUZXh0ID0gIiIiICoKQEAgLTE1Myw2ICsxNTcsOSBAQCBkZWYgZ2V0RnVuY3Rpb25zKHNv
dXJjZSk6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoRnVuY3Rpb24oZnVuY3Rpb25OYW1lLCBmdW5j
dGlvbiwgZnVuY3Rpb25Jc0NvbnN0cnVjdG9yLCBmdW5jdGlvblBhcmFtZXRlcnMpKQogICAgIHJl
dHVybiByZXN1bHQKIAorZGVmIHdyaXRlSW5jbHVkZURpcmVjdGl2ZXMod3JpdGVyLCBoZWFkZXJO
YW1lcyk6CisgICAgZm9yIGhlYWRlck5hbWUgaW4gaGVhZGVyTmFtZXM6CisgICAgICAgIHdyaXRl
ci53cml0ZSgiI2luY2x1ZGUgIiArIGhlYWRlck5hbWUgKyAiXG4iKQogCiBkZWYgZ2VuZXJhdGVD
b2RlKHNvdXJjZSk6CiAgICAgaW5wdXRGaWxlID0gb3Blbihzb3VyY2UsICJyIikKQEAgLTE3OSw2
ICsxODYsMTQgQEAgZm9yIGZpbGUgaW4gYXJncy5pbnB1dF9maWxlOgogICAgICAgICAoYmFzZU5h
bWUsIGZ1bmN0aW9ucywgb2JqZWN0Q29weXJpZ2h0cykgPSBnZW5lcmF0ZUNvZGUoZmlsZSkKICAg
ICAgICAgY29weXJpZ2h0cy5leHRlbmQob2JqZWN0Q29weXJpZ2h0cykKICAgICAgICAgYnVpbHRp
bnMuYXBwZW5kKChiYXNlTmFtZSwgZnVuY3Rpb25zKSkKK25hbWVzcGFjZSA9IGFyZ3MubmFtZXNw
YWNlCittYWNyb1ByZWZpeCA9IGFyZ3MucHJlZml4CitzY29wZU5hbWUgPSBvcy5wYXRoLnNwbGl0
ZXh0KG9zLnBhdGguYmFzZW5hbWUoYXJncy5vdXRwdXQpKVswXQoraW5jbHVkZUd1YXJkID0gc2Nv
cGVOYW1lICsgIl9IIgoraGVhZGVyTmFtZSA9IHNjb3BlTmFtZSArICIuaCIKKworaGVhZGVySW5j
bHVkZXMgPSBbIlwiQnVpbHRpblV0aWxzLmhcIiJdIGlmIG5hbWVzcGFjZSA9PSAiSlNDIiBlbHNl
IFsiPGJ1aWx0aW5zL0J1aWx0aW5VdGlscy5oPiJdCitjb250ZW50SW5jbHVkZXMgPSBbIlwiQnVp
bHRpbkV4ZWN1dGFibGVzLmhcIiIsICJcIkV4ZWN1dGFibGUuaFwiIiwgIlwiSlNDZWxsSW5saW5l
cy5oXCIiLCAiXCJWTS5oXCIiXSBpZiBuYW1lc3BhY2UgPT0gIkpTQyIgZWxzZSBbIjxydW50aW1l
L0V4ZWN1dGFibGUuaD4iLCAiPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPiIsICI8cnVudGltZS9W
TS5oPiIsICJcIldlYkNvcmVKU0NsaWVudERhdGEuaFwiIl0KIAogY29weXJpZ2h0cyA9IGxpc3Qo
c2V0KGNvcHlyaWdodHMpKQogCkBAIC0xOTIsMjMgKzIwNywxOCBAQCBjb3B5cmlnaHRUZXh0ID0g
Ii8qXG4iICsgY29weXJpZ2h0Qm9keSArIGNvcHlyaWdodFRleHQKIGJ1aWx0aW5zSGVhZGVyLndy
aXRlKCIiIiVzCiAlcwogCi0jaWZuZGVmIEpTQ0J1aWx0aW5zX0gKLSNkZWZpbmUgSlNDQnVpbHRp
bnNfSAorI2lmbmRlZiAlcworI2RlZmluZSAlcwogCi0jaW5jbHVkZSAiQ29uc3RydWN0QWJpbGl0
eS5oIgorIiIiICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4dCwgaW5jbHVkZUd1YXJk
LCBpbmNsdWRlR3VhcmQpKQogCi1uYW1lc3BhY2UgSlNDIHsKK3dyaXRlSW5jbHVkZURpcmVjdGl2
ZXMoYnVpbHRpbnNIZWFkZXIsIGhlYWRlckluY2x1ZGVzKQogCi1jbGFzcyBGdW5jdGlvbkV4ZWN1
dGFibGU7Ci1jbGFzcyBJZGVudGlmaWVyOwotY2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci1jbGFzcyBT
b3VyY2VDb2RlOwotY2xhc3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBWTTsK
K2J1aWx0aW5zSGVhZGVyLndyaXRlKCIiIgogCi1GdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1
aWx0aW5FeGVjdXRhYmxlKFZNJiwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqLCBjb25zdCBT
b3VyY2VDb2RlJik7CituYW1lc3BhY2UgJXMgewogCi0iIiIgJSAoZ2VuZXJhdG9yU3RyaW5nLCBj
b3B5cmlnaHRUZXh0KSkKKyIiIiAlIG5hbWVzcGFjZSkKIAogY29kZVJlZmVyZW5jZXMgPSBbXQog
CkBAIC0yMjIsNTggKzIzMiw1OSBAQCBmb3IgKG9iamVjdE5hbWUsIGZ1bmN0aW9ucykgaW4gYnVp
bHRpbnM6CiAgICAgICAgIGNvZGVSZWZlcmVuY2VzLmFwcGVuZCgobWFuZ2xlZE5hbWUsIGZ1bmN0
aW9uKSkKICAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBjaGFyKiBz
XyVzO1xuIiAlIG1hbmdsZWROYW1lKQogICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0
ZXJuIGNvbnN0IGludCBzXyVzTGVuZ3RoO1xuIiAlIG1hbmdsZWROYW1lKQotICAgICAgICBidWls
dGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IENvbnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0
cnVjdEFiaWxpdHk7XG4iICUgbWFuZ2xlZE5hbWUpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndy
aXRlKCJleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmls
aXR5O1xuIiAlIG1hbmdsZWROYW1lKQogICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcbiIpCi0g
ICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0ZPUkVBQ0hfJXNfQlVJTFRJTiht
YWNybykgXFxcbiIgJSBvYmplY3ROYW1lLnJlcGxhY2UoIi4iLCAiXyIpLnVwcGVyKCkpCisgICAg
YnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF8lc19CVUlMVElOKG1hY3Jv
KSBcXFxuIiAlIChtYWNyb1ByZWZpeCwgb2JqZWN0TmFtZS5yZXBsYWNlKCIuIiwgIl8iKS51cHBl
cigpKSkKICAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgogICAgICAgICBtYW5nbGVkTmFt
ZSA9IGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkKICAgICAgICAgYnVpbHRpbnNIZWFk
ZXIud3JpdGUoIiAgICBtYWNybyglcywgJXMsICVkKSBcXFxuIiAlIChmdW5jdGlvbi5uYW1lLCBt
YW5nbGVkTmFtZSwgbGVuKGZ1bmN0aW9uLnBhcmFtZXRlcnMpKSkKICAgICBidWlsdGluc0hlYWRl
ci53cml0ZSgiXG4iKQogICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6Ci0gICAgICAgIGJ1
aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19CVUlMVElOXyVzIDFcbiIgJSBmdW5jdGlv
bi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVy
LndyaXRlKCIjZGVmaW5lICVzX0JVSUxUSU5fJXMgMVxuIiAlIChtYWNyb1ByZWZpeCwgZnVuY3Rp
b24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKS51cHBlcigpKSkKICAgICBidWlsdGluc0hlYWRlci53
cml0ZSgiXG5cbiIpCiBuYW1lcyA9IFtdCi1idWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSBK
U0NfRk9SRUFDSF9CVUlMVElOKG1hY3JvKVxcXG4iKQorYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNk
ZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOKG1hY3JvKVxcXG4iICUgbWFjcm9QcmVmaXgpCiBmb3Ig
KGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJlbmNlczoKICAgICBidWlsdGlu
c0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzLCAlcywgc18lc0xlbmd0aCkgXFxcbiIgJSAoY29k
ZVJlZmVyZW5jZSwgZnVuY3Rpb24ubmFtZSwgY29kZVJlZmVyZW5jZSkpCiAgICAgbmFtZXMuYXBw
ZW5kKGZ1bmN0aW9uLm5hbWUpCiAKIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcblxuIikKLWJ1aWx0
aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFN
RShtYWNybykgXFxcbiIpCitidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNI
X0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFxcbiIgJSBtYWNyb1ByZWZpeCkKIGZvciBu
YW1lIGluIHNvcnRlZChzZXQobmFtZXMpKToKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiICAg
IG1hY3JvKCVzKSBcXFxuIiAlIG5hbWUpCiBidWlsdGluc0hlYWRlci53cml0ZSgiIiIKIAotI2Rl
ZmluZSBKU0NfREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1l
LCBhcmd1bWVudENvdW50KSBcXAotICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dl
bmVyYXRvcihWTSYpOworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1l
LCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCisgICAgSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwogCi1KU0NfRk9SRUFDSF9CVUlM
VElOKEpTQ19ERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIEpTQ19ERUNMQVJFX0JV
SUxUSU5fR0VORVJBVE9SCislc19GT1JFQUNIX0JVSUxUSU4oREVDTEFSRV9CVUlMVElOX0dFTkVS
QVRPUikKKyN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCiAKLSNkZWZpbmUgSlNDX0JV
SUxUSU5fRVhJU1RTKG5hbWUpIGRlZmluZWQgSlNDX0JVSUxUSU5fICMjIG5hbWUKKyNkZWZpbmUg
JXNfQlVJTFRJTl9FWElTVFMobmFtZSkgZGVmaW5lZCAlc19CVUlMVElOXyAjIyBuYW1lCiAKIH0K
IAotI2VuZGlmCisjZW5kaWYgLy8gJXMKIAotIiIiKQorIiIiICUgKG1hY3JvUHJlZml4LCBtYWNy
b1ByZWZpeCwgbWFjcm9QcmVmaXgsIGluY2x1ZGVHdWFyZCkpCiAKIGJ1aWx0aW5zSW1wbGVtZW50
YXRpb24ud3JpdGUoIiIiJXMKICVzCiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUg
IkpTQ0J1aWx0aW5zLmgiCisjaW5jbHVkZSAiJXMiCisKKyIiIiAgJSAoZ2VuZXJhdG9yU3RyaW5n
LCBjb3B5cmlnaHRUZXh0LCBoZWFkZXJOYW1lKSkKKword3JpdGVJbmNsdWRlRGlyZWN0aXZlcyhi
dWlsdGluc0ltcGxlbWVudGF0aW9uLCBjb250ZW50SW5jbHVkZXMpCisKK2J1aWx0aW5zSW1wbGVt
ZW50YXRpb24ud3JpdGUoIiIiCituYW1lc3BhY2UgJXMgewogCi0jaW5jbHVkZSAiQnVpbHRpbkV4
ZWN1dGFibGVzLmgiCi0jaW5jbHVkZSAiQ29uc3RydWN0QWJpbGl0eS5oIgotI2luY2x1ZGUgIkV4
ZWN1dGFibGUuaCIKLSNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCi0jaW5jbHVkZSAiVk0uaCIK
KyIiIiAgJSAobmFtZXNwYWNlKSkKIAotbmFtZXNwYWNlIEpTQyB7CiAKLSIiIiAgJSAoZ2VuZXJh
dG9yU3RyaW5nLCBjb3B5cmlnaHRUZXh0KSkKIAogZm9yIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlv
bikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAgc291cmNlID0gZnVuY3Rpb24uc291cmNlCkBAIC0y
ODUsMjMgKzI5NiwzOCBAQCBmb3IgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVm
ZXJlbmNlczoKICAgICAgICAgc291cmNlID0gc291cmNlICsgKCIgICAgXCIlc1xcblwiIFxcXG4i
ICUgbGluZSkKICAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBjaGFyKiBz
XyVzID1cbiVzO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIHNvdXJjZSkpCiAgICAgYnVpbHRpbnNJ
bXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgaW50IHNfJXNMZW5ndGggPSAlZDtcblxuIiAlIChj
b2RlUmVmZXJlbmNlLCBzb3VyY2VMZW5ndGggKyAxKSkgIyArIDEgZm9yIFxuCi0gICAgY29uc3Ry
dWN0QWJpbGl0eSA9ICJDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QiCisgICAgY29u
c3RydWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdCIK
ICAgICBpZiBmdW5jdGlvbi5pc0NvbnN0cnVjdG9yOgotICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5
ID0gIkNvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCIKLSAgICBidWlsdGluc0ltcGxlbWVu
dGF0aW9uLndyaXRlKCJjb25zdCBDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5
ID0gJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgY29uc3RydWN0QWJpbGl0eSkpICMgKyAxIGZv
ciBcbgorICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6
Q2FuQ29uc3RydWN0IgorICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eSA9ICVzO1xuXG4iICUgKGNv
ZGVSZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAjICsgMSBmb3IgXG4KIAogYnVpbHRpbnNJ
bXBsZW1lbnRhdGlvbi53cml0ZSgiIiIKLSNkZWZpbmUgSlNDX0RFRklORV9CVUlMVElOX0dFTkVS
QVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAotRnVuY3Rpb25F
eGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKFZNJiB2bSkgXFwKKyNkZWZpbmUgREVGSU5F
X0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQp
IFxcCisiIiIpOworCitpZiAobmFtZXNwYWNlID09ICJKU0MiKToKKyAgICBidWlsdGluc0ltcGxl
bWVudGF0aW9uLndyaXRlKCIiIlxcCitKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUj
I0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXFwKIHsgXFwKICAgICByZXR1cm4gdm0uYnVpbHRpbkV4
ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5F
eGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAogfQorIiIiKQorZWxzZToKKyAg
ICBidWlsdGluTmFtZSA9IHNjb3BlTmFtZVswXS5sb3dlcigpICsgc2NvcGVOYW1lWzE6XQorICAg
IGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIiXFwKK0pTQzo6RnVuY3Rpb25FeGVjdXRh
YmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXAoreyBcXAorICAgIFdlYkNv
cmVKU0NsaWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxXZWJDb3JlSlNDbGllbnRE
YXRhKj4odm0uY2xpZW50RGF0YSk7IFxcCisgICAgcmV0dXJuIGNsaWVudERhdGEtPiVzKCkuY29k
ZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+JXMoKS5jb2RlTmFtZSMj
U291cmNlKCkpOyBcXAorfQorIiIiJSAoYnVpbHRpbk5hbWUsIGJ1aWx0aW5OYW1lKSkKIAotSlND
X0ZPUkVBQ0hfQlVJTFRJTihKU0NfREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIEpT
Q19ERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKK2J1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUo
IiIiCislc19GT1JFQUNIX0JVSUxUSU4oREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQorI3VuZGVm
IERFRklORV9CVUlMVElOX0dFTkVSQVRPUgogfQogCi0iIiIpCisiIiIlIChtYWNyb1ByZWZpeCkp
CiAKIGJ1aWx0aW5zSGVhZGVyLmNsb3NlKCkKIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24uY2xvc2Uo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMDg0ODRiZGZlMTU4MzhhODM4N2ExMmM3NWRhNTEx
OWZhMmFiZmFlLi5jMzBmZWVmMTRiZTk5ZWI5Mzg3MGViMWRkNThjNjA5NjAyZTQxZmVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMzMwOCw2ICszMzA4LDEwIEBAIHNldChXT1JLRVJHTE9CQUxT
Q09QRV9DT05TVFJVQ1RPUlNfRklMRSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vV29y
a2VyR2xvCiBzZXQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUg
JHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzLmlkbCkKIHNldChJRExfQVRUUklCVVRFU19GSUxFICR7V0VCQ09SRV9ESVJ9
L2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQpCiAKK3NldChXRUJDT1JFX0JVSUxU
SU5TCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpz
CispCisKIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9FWElTVFMoKQogCiAjIEdlbmVy
YXRlIEluc3BlY3Rvck92ZXJsYXlQYWdlLmgKQEAgLTM1MjcsNiArMzUzMSwxOCBAQCBHRU5FUkFU
RV9CSU5ESU5HUyhXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUwogICAgICR7U1VQUExFTUVOVEFM
X0RFUEVOREVOQ1lfRklMRX0KICAgICAke0FERElUSU9OQUxfQklORElOR1NfREVQRU5ERU5DSUVT
fSkKIAorIyBXZWJDb3JlIEpTIEJ1aWx0aW5zCitmb3JlYWNoIChfYnVpbHRpbmpzICR7V0VCQ09S
RV9CVUlMVElOU30pCisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19idWlsdGlu
anN9IE5BTUVfV0UpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnMuaCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5jcHAKKyAgICAgICAgTUFJTl9E
RVBFTkRFTkNZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlu
cworICAgICAgICBERVBFTkRTICR7X2J1aWx0aW5qc30KKyAgICAgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMtYnVp
bHRpbnMgLS1pbnB1dCAke19idWlsdGluanN9IC0tb3V0cHV0X2RpciAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0gLS13ZWJjb3JlX2RpciAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0K
KyAgICAgICAgVkVSQkFUSU0pCisgICAgQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0pTJHtfbmFtZX0uaCAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5oKQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVT
KCR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9KUyR7X25hbWV9LmNwcCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5jcHApCitlbmRmb3JlYWNoICgp
CiAKIEFERF9TT1VSQ0VfV0VCQ09SRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke1dFQkNPUkVfRElS
fS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAgTWF0aE1MTmFtZXMuY3BwKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCA5MWNjNjIyNmFhNjc3NzJjM2JlNzgyY2U4ZWJmNDYzOGQ3
MGNjNGQ1Li5lN2E5NTA0ZmRhODQwYjJiNTA1NTRiNzgyOTg0ZTlkNmFiYzI0YjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTc4OSw2ICs3ODksNyBAQCBhbGwgOiBcCiAgICAg
JChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoSlNfRE9NX0hF
QURFUlMpIFwKICAgICAkKFdFQl9ET01fSEVBREVSUykgXAorICAgICQoV0VCQ09SRV9CVUlMVElO
UykgXAogICAgIFwKICAgICBDU1NHcmFtbWFyLmNwcCBcCiAgICAgQ1NTUHJvcGVydHlOYW1lcy5j
cHAgXApAQCAtMTIzOSw2ICsxMjQwLDE2IEBAIFdlYlJlcGxheUlucHV0cy5oIDogJChJTlBVVF9H
RU5FUkFUT1JfU1BFQ0lGSUNBVElPTlMpICQoSU5QVVRfR0VORVJBVE9SX1NDUklQVFMpCiAKIC1p
bmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIAorIyBXZWJDb3JlIEpTIEJ1aWx0aW5z
CisKK1dFQkNPUkVfQlVJTFRJTlMgPSBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW0uanMKKworYWxsIDogJChXRUJDT1JFX0JVSUxUSU5TOiUuanM9JUJ1aWx0
aW5zLmgpCisKKyVCdWlsdGlucy5oOiAlLmpzCisJJChQWVRIT04pICQoV2ViQ29yZSkvZ2VuZXJh
dGUtanMtYnVpbHRpbnMgLS1pbnB1dCAkPCAtLXdlYmNvcmVfZGlyICQoV2ViQ29yZSkKKwogIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogIyBNYWMtc3BlY2lmaWMgcnVsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J1aWx0aW5zL0J1aWx0aW5VdGls
cy5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0
aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWY3NDE0YjgzMDkzOGRkNmM1YTg2YjI1YmU2ZGY2NzUyNTY4NWNj
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J1
aWx0aW5zL0J1aWx0aW5VdGlscy5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZX
RF9CdWlsdGluVXRpbHNfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9CdWlsdGluVXRpbHNfaAorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0J1aWx0aW5VdGlscy5oPgorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNv
ZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzEyZDliZjA1ODg0
ZjNmNzk5OTI5ZWQ2YzE0NWYwYjNlNWUxNjk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGVfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvcnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy9ydW50aW1lL0NvbnN0cnVjdEFiaWxpdHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGRjYWRjYzkz
ZmI2ZTU3OTc5NDFiMjVjZDA0ZTEyOTUwNWNiYWM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5LmgKQEAg
LTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0NvbnN0cnVjdEFiaWxpdHlfaAorI2Rl
ZmluZSBXZWJDb3JlX0ZXRF9Db25zdHJ1Y3RBYmlsaXR5X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db25zdHJ1Y3RBYmlsaXR5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCmluZGV4IDg2M2MyNjQzMThjNTQxMjBh
NzA4ODkxYTFjZGFjNTNmMDY4Y2IwZDAuLjZhYzI1OTVhYWJkNWJhZjY1NDhjZWJjZDhhMzJhYjAw
ZGE4MGQyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtLmlkbApAQCAtMzYsNyArMzYsNyBAQAogICAgIFtSYWlzZXNFeGNlcHRpb25dIFBy
b21pc2UgY2FuY2VsKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgYW55IHJlYXNvbik7CiAg
ICAgW1JhaXNlc0V4Y2VwdGlvbl0gUmVhZGFibGVTdHJlYW1SZWFkZXIgZ2V0UmVhZGVyKCk7CiAg
ICAgW0N1c3RvbV0gUHJvbWlzZSBwaXBlVG8oYW55IHN0cmVhbXMsIGFueSBvcHRpb25zKTsKLSAg
ICBbQ3VzdG9tXSBPYmplY3QgcGlwZVRocm91Z2goYW55IGRlc3QsIGFueSBvcHRpb25zKTsKKyAg
ICBbSlNCdWlsdGluXSBPYmplY3QgcGlwZVRocm91Z2goYW55IGRlc3QsIGFueSBvcHRpb25zKTsK
IAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGxvY2tlZDsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2M2MzJmNThkMWJkZjViOTc1ZDUyZDZjNzRkZjM3MGI3Y2FiNmNjMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwpAQCAt
MCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZnVuY3Rpb24gcGlwZVRocm91
Z2goc3RyZWFtcywgb3B0aW9ucykKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICB0aGlzLnBp
cGVUbyhzdHJlYW1zLndyaXRhYmxlLCBvcHRpb25zKTsKKyAgICByZXR1cm4gc3RyZWFtcy5yZWFk
YWJsZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFi
bGVTdHJlYW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJs
ZVN0cmVhbUN1c3RvbS5jcHAKaW5kZXggMzQ4ZDE2YjJmZWJlNzk4N2QyZGQ2NmY1Y2M4NjY1ZjVh
N2MwZWU0YS4uODk1ZTAzZGE2Yjk0ZDM1MDNhM2ExNjliYzYxYmY4NGNhMTk1M2E0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3Rv
bS5jcHAKQEAgLTUzLDEyICs1Myw2IEBAIEpTVmFsdWUgSlNSZWFkYWJsZVN0cmVhbTo6cGlwZVRv
KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihl
eGVjLCBlcnJvcik7CiB9CiAKLUpTVmFsdWUgSlNSZWFkYWJsZVN0cmVhbTo6cGlwZVRocm91Z2go
RXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgZXJyb3IgPSBjcmVhdGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoInBpcGVUaHJvdWdoIGlzIG5vdCBpbXBsZW1lbnRlZCIpKTsKLSAgICBy
ZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBlcnJvcik7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNDMwMmQ2OGU1YzhjNmQ3ODdkNDcyNjI0
MTRiY2ViOThkMjJlMDE5ZS4uZGU4MzNjNWI1OGY4M2I3NDVhNGVkMzIyNGZkMGNjOGMzYzlkNGE5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuaApAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBXZWJDb3JlSlNDbGllbnREYXRhX2gKIAog
I2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtQnVp
bHRpbnNXcmFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0z
NSw3ICszNiwxMCBAQCBjbGFzcyBXZWJDb3JlSlNDbGllbnREYXRhIDogcHVibGljIEpTQzo6Vk06
OkNsaWVudERhdGEgewogICAgIGZyaWVuZCB2b2lkIGluaXROb3JtYWxXb3JsZENsaWVudERhdGEo
SlNDOjpWTSopOwogCiBwdWJsaWM6Ci0gICAgV2ViQ29yZUpTQ2xpZW50RGF0YSgpCisgICAgV2Vi
Q29yZUpTQ2xpZW50RGF0YShKU0M6OlZNKiB2bSkKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisg
ICAgICAgIDogbV9yZWFkYWJsZVN0cmVhbUJ1aWx0aW5zKHZtKQorI2VuZGlmCiAgICAgewogICAg
IH0KIApAQCAtNzEsMTQgKzc1LDIxIEBAIHB1YmxpYzoKICAgICAgICAgbV93b3JsZFNldC5yZW1v
dmUoJndvcmxkKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisgICAgUmVhZGFi
bGVTdHJlYW1CdWlsdGluc1dyYXBwZXImIHJlYWRhYmxlU3RyZWFtQnVpbHRpbnMoKSB7IHJldHVy
biBtX3JlYWRhYmxlU3RyZWFtQnVpbHRpbnM7IH0KKyNlbmRpZgogcHJpdmF0ZToKICAgICBIYXNo
U2V0PERPTVdyYXBwZXJXb3JsZCo+IG1fd29ybGRTZXQ7CiAgICAgUmVmUHRyPERPTVdyYXBwZXJX
b3JsZD4gbV9ub3JtYWxXb3JsZDsKKworI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKKyAgICBSZWFk
YWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciBtX3JlYWRhYmxlU3RyZWFtQnVpbHRpbnM7CisjZW5k
aWYKIH07CiAKIGlubGluZSB2b2lkIGluaXROb3JtYWxXb3JsZENsaWVudERhdGEoSlNDOjpWTSog
dm0pCiB7Ci0gICAgV2ViQ29yZUpTQ2xpZW50RGF0YSogd2ViQ29yZUpTQ2xpZW50RGF0YSA9IG5l
dyBXZWJDb3JlSlNDbGllbnREYXRhOworICAgIFdlYkNvcmVKU0NsaWVudERhdGEqIHdlYkNvcmVK
U0NsaWVudERhdGEgPSBuZXcgV2ViQ29yZUpTQ2xpZW50RGF0YSh2bSk7CiAgICAgdm0tPmNsaWVu
dERhdGEgPSB3ZWJDb3JlSlNDbGllbnREYXRhOyAvLyB+Vk0gZGVsZXRlcyB0aGlzIHBvaW50ZXIu
CiAgICAgd2ViQ29yZUpTQ2xpZW50RGF0YS0+bV9ub3JtYWxXb3JsZCA9IERPTVdyYXBwZXJXb3Js
ZDo6Y3JlYXRlKCp2bSwgdHJ1ZSk7CiAgICAgdm0tPm1fdHlwZWRBcnJheUNvbnRyb2xsZXIgPSBh
ZG9wdFJlZihuZXcgV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkMDhk
YWE3YzI0OWJjZjFkYTZiYWExMjgwOTY0MTU4YzRlODFkOWRiLi40YzhhZmZkNDQ3M2YwN2M3ZTY5
N2RmYmJlNTljMDZmYzQyOWNlZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNTU3LDYgKzU1NywxMSBAQCBzdWIgR2V0
QXR0cmlidXRlU2V0dGVyTmFtZQogc3ViIEdldEZ1bmN0aW9uTmFtZQogewogICAgIG15ICgkY2xh
c3NOYW1lLCAkZnVuY3Rpb24pID0gQF87CisKKyAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICByZXR1cm4gJGNv
ZGVHZW5lcmF0b3ItPldLX2xjZmlyc3Qoc3Vic3RyICRjbGFzc05hbWUsIDIpIC4gJGNvZGVHZW5l
cmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpIC4gIkNvZGVHZW5l
cmF0b3IiOworICAgIH0KKwogICAgIG15ICRraW5kID0gJGZ1bmN0aW9uLT5pc1N0YXRpYyA/ICJD
b25zdHJ1Y3RvciIgOiAiUHJvdG90eXBlIjsKICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldL
X2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAka2luZCAuICJGdW5jdGlvbiIgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CiB9CkBAIC04NTQsNiAr
ODU5LDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQo
IkpTRE9NV2luZG93U2hlbGwiKSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IjsKICAg
ICBBZGRDbGFzc0ZvcndhcmRJZk5lZWRlZCgiSlNEaWN0aW9uYXJ5IikgaWYgJGNvZGVHZW5lcmF0
b3ItPklzQ29uc3RydWN0b3JUZW1wbGF0ZSgkaW50ZXJmYWNlLCAiRXZlbnQiKTsKIAorICAgICRo
ZWFkZXJJbmNsdWRlc3skaW50ZXJmYWNlTmFtZSAuICJCdWlsdGlucy5oIn0gPSAxIGlmIFVzZUpT
QnVpbHRpbnMoJGludGVyZmFjZSk7CisKICAgICBteSAkZXhwb3J0TGFiZWwgPSBFeHBvcnRMYWJl
bEZvckNsYXNzKCRjbGFzc05hbWUpOwogCiAgICAgIyBDbGFzcyBkZWNsYXJhdGlvbgpAQCAtMTcz
OCw2ICsxNzQ1LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgIEBpbXBsQ29u
dGVudCA9ICgpOwogCisgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNpbmNsdWRlIFwiIiAuICRp
bnRlcmZhY2VOYW1lIC4gIkJ1aWx0aW5zLmNwcFwiXG4iKSBpZiBVc2VKU0J1aWx0aW5zKCRpbnRl
cmZhY2UpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG51c2luZyBuYW1lc3BhY2UgSlNDO1xu
XG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIik7
CiAKQEAgLTE3NTIsNiArMTc2MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ICYmICRmdW5jdGlvbi0+
e292ZXJsb2FkSW5kZXh9ID4gMTsKICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJGb3J3YXJkRGVjbGFyZUluSGVhZGVyIn07CiAg
ICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tQmluZGluZyJ9OworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9OwogCiAgICAgICAgICAg
ICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAgICAgICAgICAgIGlmICgkbmVlZHNB
cHBsZUNvcHlyaWdodCkgewpAQCAtMTkxMCwxMyArMTkxOSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgICAgICBteSAkZnVuY3Rpb25MZW5ndGggPSBHZXRGdW5jdGlvbkxl
bmd0aCgkZnVuY3Rpb24pOwogICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJGZ1bmN0aW9u
TGVuZ3RoKTsKIAotICAgICAgICAgICAgbXkgQHNwZWNpYWxzID0gKCk7Ci0gICAgICAgICAgICBw
dXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiT3BlcmF0aW9uc05vdERlbGV0YWJsZSJ9Ci0gICAgICAgICAgICAgICAgfHwgJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3REZWxldGFibGUifTsK
LSAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFibGUifTsKLSAgICAgICAg
ICAgIHB1c2goQHNwZWNpYWxzLCAiSlNDOjpGdW5jdGlvbiIpOwotICAgICAgICAgICAgbXkgJHNw
ZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwot
ICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CisgICAgICAgICAgICBw
dXNoKEBoYXNoU3BlY2lhbHMsIENvbXB1dGVGdW5jdGlvblNwZWNpYWwoJGludGVyZmFjZSwgJGZ1
bmN0aW9uKSk7CiAKICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKICAgICAgICAgICAg
IGlmICgkY29uZGl0aW9uYWwpIHsKQEAgLTE5ODcsMTMgKzE5OTAsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICBteSAkZnVuY3Rpb25MZW5ndGggPSBHZXRGdW5jdGlvbkxl
bmd0aCgkZnVuY3Rpb24pOwogICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkZnVuY3Rpb25MZW5n
dGgpOwogCi0gICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwotICAgICAgICBwdXNoKEBzcGVjaWFs
cywgIkRvbnREZWxldGUiKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3Bl
cmF0aW9uc05vdERlbGV0YWJsZSJ9Ci0gICAgICAgICAgICB8fCAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdERlbGV0YWJsZSJ9OwotICAgICAgICBwdXNoKEBz
cGVjaWFscywgIkRvbnRFbnVtIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJOb3RFbnVtZXJhYmxlIn07Ci0gICAgICAgIHB1c2goQHNwZWNpYWxzLCAiSlND
OjpGdW5jdGlvbiIpOwotICAgICAgICBteSAkc3BlY2lhbCA9IChAc3BlY2lhbHMgPiAwKSA/IGpv
aW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7Ci0gICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywg
JHNwZWNpYWwpOworICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsIENvbXB1dGVGdW5jdGlvblNw
ZWNpYWwoJGludGVyZmFjZSwgJGZ1bmN0aW9uKSk7CiAKICAgICAgICAgbXkgJGNvbmRpdGlvbmFs
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25h
bCJ9OwogICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7CkBAIC0yNzc0LDYgKzI3NzEsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBteSAkaW5BcHBsZUNvcHlyaWdodCA9
IDA7CiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9u
c30pIHsKICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21CaW5kaW5nIn07CisgICAgICAgICAgICBuZXh0IGlmICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn07CiAgICAg
ICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAgICAgICAgICAgIGlmICgk
bmVlZHNBcHBsZUNvcHlyaWdodCkgewogICAgICAgICAgICAgICAgIGlmICghJGluQXBwbGVDb3B5
cmlnaHQpIHsKQEAgLTQyMTMsNiArNDIxMSw4IEBAIHN1YiBHZW5lcmF0ZUhhc2hUYWJsZVZhbHVl
QXJyYXkKICAgICAgICAgCiAgICAgICAgIGlmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vRnVuY3Rp
b24vKSB7CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPiI7CisgICAgICAgIH0gZWxzaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9CdWls
dGluLykgeworICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxCdWls
dGluR2VuZXJhdG9yPiI7CiAgICAgICAgIH0gZWxzaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9D
b25zdGFudEludGVnZXIvKSB7CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gIiI7CiAg
ICAgICAgIH0gZWxzZSB7CkBAIC00OTYyLDQgKzQ5NjIsMzMgQEAgc3ViIEhlYWRlck5lZWRzUHJv
dG90eXBlRGVjbGFyYXRpb24KICAgICByZXR1cm4gSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFj
ZSkgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTmFtZWRHZXR0
ZXJPblByb3RvdHlwZSJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1
c3RvbURlZmluZU93blByb3BlcnR5T25Qcm90b3R5cGUifTsKIH0KIAorc3ViIENvbXB1dGVGdW5j
dGlvblNwZWNpYWwKK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGZ1bmN0
aW9uID0gc2hpZnQ7CisKKyAgICBteSBAc3BlY2lhbHMgPSAoKTsKKyAgICBwdXNoKEBzcGVjaWFs
cywgIkRvbnREZWxldGUiKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3Bl
cmF0aW9uc05vdERlbGV0YWJsZSJ9CisgICAgICAgIHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RGVsZXRhYmxlIn07CisgICAgcHVzaChAc3BlY2lhbHMs
ICJEb250RW51bSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTm90RW51bWVyYWJsZSJ9OworICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgIHB1c2goQHNwZWNpYWxzLCAi
SlNDOjpCdWlsdGluIik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBwdXNoKEBzcGVjaWFs
cywgIkpTQzo6RnVuY3Rpb24iKTsKKyAgICB9CisgICAgcmV0dXJuIChAc3BlY2lhbHMgPiAwKSA/
IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7Cit9CisKK3N1YiBVc2VKU0J1aWx0aW5zCit7
CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChA
eyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0pIHsKKyAgICAgICAgICAgIHJl
dHVybiAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwCit9CisKIDE7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCBl
ODEyZGEzMDNkMjJmZTE1YmE5ZTNiNjYwMjk1N2E5NDk1ZmVlYmM4Li4xZjcyNDVkMThkNTg4Mjky
NmE2ZjQzMWU3YTgxYjU0OTU5Y2QzYmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTc0LDYgKzc0LDcgQEAgSW5pdGlhbGl6
ZWRCeUV2ZW50Q29uc3RydWN0b3IKIEludGVyZmFjZU5hbWU9KgogSXNJbmRleAogSXNXZWFrQ2Fs
bGJhY2sKK0pTQnVpbHRpbgogSlNDdXN0b21EZWZpbmVPd25Qcm9wZXJ0eQogSlNDdXN0b21EZWZp
bmVPd25Qcm9wZXJ0eU9uUHJvdG90eXBlCiBKU0N1c3RvbUZpbmFsaXplCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0
T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouY3BwCmluZGV4IGE1MGMzY2M3ZTBmNWNhNDljZDFjNTk0NWU4OWQyNzM5
NWE3YmE4MGMuLmUxOWQzNTE2YzVmYTFmYzYyMGI3ZjUwYTM4YTM5ZGM4MDFiZTUyZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0xMTc1LDYgKzExNzUsMjYgQEAgdm9p
ZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBHRXJyb3IqKgogICAgIH0KIH0KIAordm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2pzX2J1aWx0aW5fbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19URVNUX09CSihzZWxmKSk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5qc0J1aWx0aW5NZXRob2QoKTsKK30KKwor
dm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kX3dpdGhfYXJncyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBX
ZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09C
SihzZWxmKSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChzdHJBcmcpOworICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihvYmpBcmcpKTsKKyAgICBXZWJDb3JlOjpUZXN0
T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRl
ZFN0ckFyZyA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChzdHJBcmcpOworICAgIFdlYkNvcmU6OlRl
c3RPYmoqIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOworICAgIGl0ZW0t
PmpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVy
dGVkT2JqQXJnKTsKK30KKwogdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X3N0
YXRlX3ZvaWQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKaW5kZXgg
YWI4NWY5OGExN2M4YjUxNjgyMDgyYmE3YzRkODhhMWEyN2E2ZDI3Ni4uNDdiZWMxM2VmZWEwZTk4
NzE5M2I4NGJiNDE3YjQ5ZTU0Njg0NDU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmou
aApAQCAtMjkxLDYgKzI5MSwyNyBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9v
YmpfbWV0aG9kX3dpdGhfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvcioq
IGVycm9yKTsKIAogLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9k
OgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqCisgKiBTdGFiaWxpdHk6IFVuc3Rh
YmxlCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9qc19idWlsdGlu
X21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kX3dpdGhfYXJnczoKKyAqIEBzZWxmOiBBICNXZWJLaXRE
T01UZXN0T2JqCisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKKyAqIEBzdHJBcmc6IEEgI2djaGFyCisg
KiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgorICogU3RhYmlsaXR5OiBVbnN0YWJs
ZQorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfanNfYnVpbHRpbl9t
ZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNv
bnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CisKKy8qKgogICog
d2Via2l0X2RvbV90ZXN0X29ial93aXRoX3NjcmlwdF9zdGF0ZV92b2lkOgogICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RPYmoKICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGQwZjlhZGQwNjNiZTE4Mjk3YWMw
ODg1ZjJiY2IxNmQzMzIzMjE0OGMuLmNmNTA2OTViY2NkNmE5MTEyOWI3OTRiMmU1OWNjOGYzYTIy
OTRhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCkBAIC03Miw2ICs3Miw4IEBACiAjaW5jbHVkZSAiSlNUZXN0T2Jq
ZWN0Qy5oIgogI2VuZGlmCiAKKyNpbmNsdWRlICJUZXN0T2JqQnVpbHRpbnMuY3BwIgorCiB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MDUsNiArNjA3LDgg
QEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFs
dWVzW10gPQogICAgIHsgImN1c3RvbU1ldGhvZFdpdGhBcmdzIiwgSlNDOjpGdW5jdGlvbiwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykg
fSB9LAogICAgIHsgImN1c3RvbUJpbmRpbmdNZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZCksIChpbnRwdHJfdCkgKDApIH0gfSwK
ICAgICB7ICJjdXN0b21CaW5kaW5nTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90
KSAoMykgfSB9LAorICAgIHsgImpzQnVpbHRpbk1ldGhvZCIsIEpTQzo6QnVpbHRpbiwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KHRlc3RPYmpK
c0J1aWx0aW5NZXRob2RDb2RlR2VuZXJhdG9yKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsg
ImpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzIiwgSlNDOjpCdWlsdGluLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4odGVzdE9iakpzQnVpbHRpbk1l
dGhvZFdpdGhBcmdzQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkgKDMpIH0gfSwKICAgICB7ICJh
ZGRFdmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFk
ZEV2ZW50TGlzdGVuZXIpLCAoaW50cHRyX3QpICgyKSB9IH0sCiAgICAgeyAicmVtb3ZlRXZlbnRM
aXN0ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVu
dExpc3RlbmVyKSwgKGludHB0cl90KSAoMikgfSB9LAogICAgIHsgIndpdGhTY3JpcHRTdGF0ZVZv
aWQiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRl
Vm9pZCksIChpbnRwdHJfdCkgKDApIH0gfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCAyMzU0NWVlYjBlNTUzMTdmOTY2
MWQ1OWVlY2Y3ZjM3YWIyZDg3OWVlLi5hNDk0MTZiMjNiOWMxNGY5Mzg2Y2U5M2E2MzU0NWNlNGNi
YmU4YjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXIuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCisjaW5jbHVkZSAiVGVzdE9iakJ1aWx0aW5zLmgi
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmouaAppbmRleCAzMDJkMmM1M2I3MWVlNDY4NzhmMzEyM2U5NzY0NWMxMzNjZjFkNDJh
Li5hOTI2NGYxNDk2MjM0NjU4NGE3YWYyYWYwNzY0YTcyOTUyZGFjMmEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5o
CkBAIC0xMzgsNiArMTM4LDggQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01UZXN0T2Jq
IDogRE9NT2JqZWN0CiAtICh2b2lkKW1ldGhvZFdpdGhFeGNlcHRpb247CiAtICh2b2lkKWN1c3Rv
bU1ldGhvZDsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAodm9p
ZClqc0J1aWx0aW5NZXRob2Q7CistICh2b2lkKWpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzOihpbnQp
bG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9i
akFyZzsKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVy
OihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0
dXJlOwogLSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVu
ZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNh
cHR1cmU7CiAtICh2b2lkKXdpdGhTY3JpcHRTdGF0ZVZvaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCA1
YjgzMzlmNjM3ZTBhMWI5NGQwZjE0MjAyMDYxNzg0ZDI1Nzg0ODhkLi41Zjc1NTE1NTIzOTQ2NmJk
MzFkMjM5ODY2MDFiOTViNzVhNDQzM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTkxMSw2ICs5MTEs
MTggQEAKICAgICBJTVBMLT5jdXN0b21NZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNv
cmUob2JqQXJnKSk7CiB9CiAKKy0gKHZvaWQpanNCdWlsdGluTWV0aG9kCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmpzQnVpbHRpbk1ldGhv
ZCgpOworfQorCistICh2b2lkKWpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBz
dHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5qc0J1
aWx0aW5NZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7Cit9CisK
IC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8
RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGQwMzdlYzRm
YjkxZjhhYWZjYzcwZmM2Yzg1ZDJkODc2N2M5NGI4ZjIuLjljMWRiNTdjZTAzNmQxYjQxMjBkZTNj
ZjY1ZGNlMWMxODhlNzE1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTExMyw2ICsxMTMsMTAgQEAgZW51bSBfb3B0aW9uYWwg
eyAiIiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUz
IiB9OwogICAgIFtDdXN0b21CaW5kaW5nXSB2b2lkIGN1c3RvbUJpbmRpbmdNZXRob2QoKTsKICAg
ICBbQ3VzdG9tQmluZGluZ10gdm9pZCBjdXN0b21CaW5kaW5nTWV0aG9kV2l0aEFyZ3MobG9uZyBs
b25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CiAKKyAgICAvLyAnSlNC
dWlsdGluJyBleHRlbmRlZCBhdHRyaWJ1dGUKKyAgICBbSlNCdWlsdGluXSB2b2lkIGpzQnVpbHRp
bk1ldGhvZCgpOworICAgIFtKU0J1aWx0aW5dIHZvaWQganNCdWlsdGluTWV0aG9kV2l0aEFyZ3Mo
bG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CisKICAgICB2
b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlzdGVu
ZXIsIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCBvcHRpb25hbCBi
b29sZWFuIHVzZUNhcHR1cmUpOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mb287CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucyBiL1NvdXJjZS9X
ZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZDU0MmI1MzNjNDIzNjk5
MzA1MWI1NjE1NGE2Y2MxZjMyMzI1NTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpAQCAtMCwwICsxLDE0MSBAQAorIyEvdXNyL2Jpbi9weXRo
b24KKyMgQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorIyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgZmlsZWNtcAoraW1w
b3J0IG9zCitpbXBvcnQgc3VicHJvY2VzcworCitmcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUK
KworCitwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCitwYXJzZXIuYWRkX2FyZ3Vt
ZW50KCctLW91dHB1dF9kaXInLCBkZWZhdWx0PScnLCBoZWxwPSdvdXRwdXQgZGlyZWN0b3J5JykK
K3BhcnNlci5hZGRfYXJndW1lbnQoJy0taW5wdXQnLCBoZWxwPSdwYXRoIHRvIGlucHV0IEpTIGZp
bGUnKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLS13ZWJjb3JlX2RpcicsIGhlbHA9J3BhdGggdG8g
V2ViQ29yZSBkaXJlY3RvcnknKQorCithcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorZmlsZW5h
bWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoYXJncy5pbnB1dCkpWzBdCisK
KyMgZ2VuZXJhdGUgSlMgYnVpbHRpbnMKK25hbWVzcGFjZSA9ICJXZWJDb3JlIgorcHJlZml4ID0g
IldFQkNPUkUiICsgZmlsZW5hbWUudXBwZXIoKQorb3V0cHV0ID0gb3MucGF0aC5qb2luKGFyZ3Mu
b3V0cHV0X2RpciwgZmlsZW5hbWUgKyAiQnVpbHRpbnMiKQoranNjX2dlbmVyYXRlX2J1aWx0aW5f
c2NyaXB0ID0gb3MucGF0aC5qb2luKGFyZ3Mud2ViY29yZV9kaXIsICIuLiIsICJKYXZhU2NyaXB0
Q29yZSIsICJnZW5lcmF0ZS1qcy1idWlsdGlucyIpCisKK3N1YnByb2Nlc3MuY2FsbChbInB5dGhv
biIsIGpzY19nZW5lcmF0ZV9idWlsdGluX3NjcmlwdCwgIi0tb3V0cHV0Iiwgb3V0cHV0LCAiLS1u
YW1lc3BhY2UiLCBuYW1lc3BhY2UsICItLXByZWZpeCIsIHByZWZpeCwgYXJncy5pbnB1dF0sIHN0
ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKKworIyBnZW5lcmF0ZSBKUyBidWlsdGlucyB3cmFwcGVy
CitvdXRwdXRfYmFzZSA9IG91dHB1dCArICJXcmFwcGVyIgorCitidWlsdGluc1dyYXBwZXJIZWFk
ZXIgPSBvcGVuKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsICJ3IikKKworYnVpbHRpbnNXcmFwcGVy
SGVhZGVyLndyaXRlKFRlbXBsYXRlKAorIiIiCisvKiBHZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtanMt
YnVpbHRpbnMgZG8gbm90IGhhbmQgZWRpdC4gKi8KKworLyoKKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpZm5kZWYgJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXJfaAorI2RlZmlu
ZSAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcl9oCisKKyNpbmNsdWRlICIke0ZpbGVuYW1lfUJ1
aWx0aW5zLmgiCisjaW5jbHVkZSA8Ynl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUu
aD4KKyNpbmNsdWRlIDxidWlsdGlucy9CdWlsdGluVXRpbHMuaD4KKyNpbmNsdWRlIDxydW50aW1l
L0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyAke0ZpbGVuYW1l
fUJ1aWx0aW5zV3JhcHBlciA6IHByaXZhdGUgSlNDOjpXZWFrSGFuZGxlT3duZXIKK3sKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcihKU0M6OlZNKiB2bSkK
KyAgICAgICAgOiBtX3ZtKCp2bSkKKyAgICAgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTl9G
VU5DVElPTl9OQU1FKElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUykKKyNkZWZpbmUgSU5JVElBTEla
RV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKSAsIG1f
IyNuYW1lIyNTb3VyY2UoSlNDOjptYWtlU291cmNlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRl
cmFsKHNfIyNuYW1lLCBsZW5ndGgpKSkKKyAgICAgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJ
TihJTklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMpCisjdW5kZWYgSU5JVElBTElaRV9C
VUlMVElOX1NPVVJDRV9NRU1CRVJTCisgICAgeworICAgIH0KKworI2RlZmluZSBFWFBPU0VfQlVJ
TFRJTl9FWEVDVVRBQkxFUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgXAorSlNDOjpVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogbmFtZSMjRXhlY3V0YWJsZSgpOyBcCitjb25zdCBKU0M6
OlNvdXJjZUNvZGUmIG5hbWUjI1NvdXJjZSgpIHsgcmV0dXJuIG1fIyNuYW1lIyNTb3VyY2U7IH0K
KyAgICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOKEVYUE9TRV9CVUlMVElOX0VYRUNVVEFCTEVT
KQorI3VuZGVmIEVYUE9TRV9CVUlMVElOX0VYRUNVVEFCTEVTCisKKyAgICAke1ByZWZpeH1fRk9S
RUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUND
RVNTT1IpCisKK3ByaXZhdGU6CisgICAgSlNDOjpWTSYgbV92bTsKKworICAgICR7UHJlZml4fV9G
T1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5fTkFNRVMpCisKKyNk
ZWZpbmUgREVDTEFSRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9uTmFtZSwg
bGVuZ3RoKVwKKyAgICBKU0M6OlNvdXJjZUNvZGUgbV8jI25hbWUjI1NvdXJjZTsgXAorICAgIEpT
Qzo6V2VhazxKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlPiBtXyMjbmFtZSMjRXhlY3V0
YWJsZTsKKyAgICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOKERFQ0xBUkVfQlVJTFRJTl9TT1VS
Q0VfTUVNQkVSUykKKyN1bmRlZiBERUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMKKworfTsK
KworI2RlZmluZSBERUZJTkVfQlVJTFRJTl9FWEVDVVRBQkxFUyhuYW1lLCBmdW5jdGlvbk5hbWUs
IGxlbmd0aCkgXAoraW5saW5lIEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqICR7Rmls
ZW5hbWV9QnVpbHRpbnNXcmFwcGVyOjpuYW1lIyNFeGVjdXRhYmxlKCkgXAore1wKKyAgICBpZiAo
IW1fIyNuYW1lIyNFeGVjdXRhYmxlKVwKKyAgICAgICAgbV8jI25hbWUjI0V4ZWN1dGFibGUgPSBK
U0M6OldlYWs8SlNDOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZT4oSlNDOjpjcmVhdGVCdWls
dGluRXhlY3V0YWJsZShtX3ZtLCBtXyMjbmFtZSMjU291cmNlLCBmdW5jdGlvbk5hbWUjI1B1Ymxp
Y05hbWUoKSwgc18jI25hbWUjI0NvbnN0cnVjdEFiaWxpdHkpLCB0aGlzLCAmbV8jI25hbWUjI0V4
ZWN1dGFibGUpO1wKKyAgICByZXR1cm4gbV8jI25hbWUjI0V4ZWN1dGFibGUuZ2V0KCk7XAorfQor
JHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihERUZJTkVfQlVJTFRJTl9FWEVDVVRBQkxFUykKKyN1
bmRlZiBERUZJTkVfQlVJTFRJTl9FWEVDVVRBQkxFUworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcl9oCisiIiIpLnN1YnN0aXR1
dGUoZGljdChGaWxlbmFtZT1maWxlbmFtZSwgUHJlZml4PXByZWZpeCkpKQorCitidWlsdGluc1dy
YXBwZXJIZWFkZXIuY2xvc2UoKQorCitpZiAobm90IG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNl
ICsgIi5oIikpIG9yIChub3QgZmlsZWNtcC5jbXAob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgb3V0
cHV0X2Jhc2UgKyAiLmgiLCBzaGFsbG93PUZhbHNlKSk6CisgICAgaWYgKG9zLnBhdGguZXhpc3Rz
KG91dHB1dF9iYXNlICsgIi5oIikpOgorICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAi
LmgiKQorICAgIG9zLnJlbmFtZShvdXRwdXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFzZSAr
ICIuaCIpCitlbHNlOgorICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuaC50bXAiKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGY1MGRkYzRjNDdmMGY4NGMzMGU5ODA4YjNjNGYzZDRiNDdiMTk5ZmQuLjIwZDk5OTJjNzU4
MDliNDc2MzU1MDI0MzE3M2U4NzY3MjIwYTFmMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
NS0wOS0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisg
ICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3RyZWFtIHBpcGVUaHJvdWdo
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc1NTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2Vk
IHRlc3QgdGhhdCBpcyBub3cgcGFzc2luZy4KKyAgICAgICAgQWRkaW5nIG5ldyB0ZXN0cyB0byBp
bXByb3ZlIHBpcGVUaHJvdWdoIGNvdmVyYWdlLgorCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJs
ZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdHJl
YW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBz
dHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0
OgorCiAyMDE1LTA5LTA2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCBFRkwgZ2FyZGVuaW5nLiBNYW55IHRlc3RzIGhhdmUgYmVl
biBmYWlsZWQgc2luY2UgcjE4ODY5Mi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMv
cmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMWUwNjFjYTkwNmQ0MjBmMTVmMTNkN2I0NTEwY2Y1M2VjZDIzNmQ5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlw
ZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiAidGhpcyIgaGFzIG5vIHBpcGVUbyBtZXRo
b2QgCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhy
b3cgd2hlbiBwYXNzZWQgYXJndW1lbnQgaXMgbm90IGFuIG9iamVjdCAKK1BBU1MgUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIGNhbGxlZCBnZXR0
ZXJzIGFyZSB0aHJvd2luZyAKK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJv
dWdoIHNob3VsZCB3b3JrIHdpdGggbWlzc2luZyBwYXJhbWV0ZXJzIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sIGIvTGF5
b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43YjlhNjhiMzJiYzRiN2JiZWZmYjhjZDU3Njc0MzdiN2E1YzRhODQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gu
aHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPScuLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVz
b3VyY2VzL2djLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIGlucHV0ID0geworICAgICAgICByZWFkYWJsZTogeyB9LAorICAgICAgICB3cml0YWJs
ZTogeyB9CisgICAgfTsKKyAgICB2YXIgb3B0aW9ucyA9IHsgfTsKKyAgICBhc3NlcnRfdGhyb3dz
KG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaC5jYWxsKHVuZGVmaW5lZCwgaW5wdXQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnBy
b3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKG51bGwsIGlucHV0LCBvcHRpb25zKTsgfSk7CisgICAg
YXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVh
bS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCgxLCBpbnB1dCwgb3B0aW9ucyk7IH0pOworICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJl
YW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwoeyAicGlwZVRvIjogInRlc3QiIH0sIGlucHV0
LCBvcHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdo
IHNob3VsZCB0aHJvdyB3aGVuICJ0aGlzIiBoYXMgbm8gcGlwZVRvIG1ldGhvZCcpOworCit0ZXN0
KGZ1bmN0aW9uKCkgeworICAgIHZhciBvcHRpb25zID0geyB9OworICAgIHZhciB0aGlzVmFsdWUg
PSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlw
ZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2guY2FsbCh0aGlzVmFsdWUsIG51bGwsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dz
KG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgdW5kZWZpbmVkLCBvcHRpb25zKTsgfSk7Cit9LCAn
UmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIHBh
c3NlZCBhcmd1bWVudCBpcyBub3QgYW4gb2JqZWN0Jyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIG9wdGlvbnMgPSB7IH07CisgICAgdmFyIGVycm9yID0gbmV3IFR5cGVFcnJvcigicG90
YXRvIik7CisKKyAgICB2YXIgdGhpc1dyb25nVmFsdWUgPSB7CisgICAgICAgIGdldCBwaXBlVG8o
KSB7CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAgICAgfQorICAgIH07CisgICAgYXNz
ZXJ0X3Rocm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaC5jYWxsKHRoaXNXcm9uZ1ZhbHVlLCB7IHJlYWRhYmxlOiB7IH0sIHdyaXRhYmxl
OiB7IH0gfSwgb3B0aW9ucyk7IH0pOworCisgICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAgICAg
cGlwZVRvOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoKTsKKyAg
ICAgICAgfQorICAgIH07CisgICAgdmFyIHdyb25nSW5wdXQgPSB7CisgICAgICAgIHJlYWRhYmxl
OiB7IH0sCisgICAgICAgIGdldCB3cml0YWJsZSgpIHsKKyAgICAgICAgICAgIHRocm93IGVycm9y
OworICAgICAgICB9CisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzKGVycm9yLCBmdW5jdGlvbigp
IHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB3
cm9uZ0lucHV0LCBvcHRpb25zKTsgfSk7CisKKyAgICB2YXIgd3JvbmdJbnB1dDIgPSB7CisgICAg
ICAgIGdldCByZWFkYWJsZSgpIHsKKyAgICAgICAgICAgIHRocm93IGVycm9yOworICAgICAgICB9
LAorICAgICAgICB3cml0YWJsZTogeyB9CisgICAgfTsKKyAgICB2YXIgdGhpc1ZhbHVlMiA9IHsK
KyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsgfQorICAgIH07CisgICAgYXNzZXJ0X3Rocm93
cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3Vn
aC5jYWxsKHRoaXNWYWx1ZTIsIHdyb25nSW5wdXQyLCBvcHRpb25zKTsgfSk7Cit9LCAnUmVhZGFi
bGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIGNhbGxlZCBn
ZXR0ZXJzIGFyZSB0aHJvd2luZycpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBjb3Vu
dCA9IDA7CisgICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgIH0KKyAgICB9OworCisgICAgUmVhZGFi
bGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHJlYWRhYmxl
OiB7IH0sIHdyaXRhYmxlOiB7IH0gfSk7CisgICAgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBp
cGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHJlYWRhYmxlOiB7IH0gfSwgeyB9KTsKKyAgICBS
ZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIHsgd3Jp
dGFibGU6IHsgfSB9LCB7IH0pOworCisgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMyk7Cit9LCAn
UmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB3b3JrIHdpdGggbWlz
c2luZyBwYXJhbWV0ZXJzJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNo
ZWNrcy1leHBlY3RlZC50eHQKaW5kZXggMzczNTc3ZWI5ODIxZDIwNzU0ZGU4NzcxYTYwZmFlNTIz
OGM5YjVmNi4uYjE5N2QxNjU3YjEwZjcwMDM0ZjJjMmE2NDYxNmY1YmMyZmYyNWZkMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQt
Y2hlY2tzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1p
bXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAog
CiBQQVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGNvbnN0cnVjdG9yIGluZGly
ZWN0bHkgCiBQQVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1
Y3RvciBpbmRpcmVjdGx5IAotRkFJTCBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2ggd29ya3MgZ2VuZXJpY2FsbHkgb24gaXRzIHRoaXMgYW5kIGl0cyBhcmd1bWVudHMgQ2FuIG9u
bHkgY2FsbCBSZWFkYWJsZVN0cmVhbS5waXBlVGhyb3VnaCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFi
bGVTdHJlYW0KK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHdvcmtz
IGdlbmVyaWNhbGx5IG9uIGl0cyB0aGlzIGFuZCBpdHMgYXJndW1lbnRzIAogUEFTUyBSZWFkYWJs
ZVN0cmVhbVJlYWRlciBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIG9uIGl0cyBhcmd1bWVudCAKIEZB
SUwgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNsb3NlZCBlbmZvcmNlcyBhIGJyYW5k
IGNoZWNrIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgZ2V0dGVyTmFtZSkuZ2V0JykKIFBBU1MgUmVhZGFi
bGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNhbmNlbCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261314</attachid>
            <date>2015-09-16 09:27:15 -0700</date>
            <delta_ts>2015-09-17 05:59:54 -0700</delta_ts>
            <desc>Some clean up</desc>
            <filename>bug-147556-20150916182656.patch</filename>
            <type>text/plain</type>
            <size>64381</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NjJkYzg1M2EzNzY2OWQ3ZmQ5ZDNmYjMyY2QwOWNjNGZlMmM4NzZjLi5lOTlkYWFlZjYzMjc1MzQx
ZWRkMDk0MjJjNmZmNzkzZDUzYTlmODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNh
YmxlIGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGlu
TmFtZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVz
LgorICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRp
bmcgYnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVp
bHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1
dGFibGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGlu
RXhlY3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3Jl
YXRlQnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50
ZXJuYWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAg
ICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6
OkJ1aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxz
Lmg6IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFi
bGVzLmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoK
KyAgICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6
CisgICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0xMSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE4OTU4NSk6
IHJ1bi1wZXJmLXRlc3RzIFNwZWVkb21ldGVyIGZhaWxzIHdpdGggYSBjb25zb2xlIGVycm9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZjNjZmFhYjA0ODE4MDg1MjZmYzA3ODE0NWRiMTE0MDY2YWI1Nzc1MC4uZDNi
YTU0MWUyYTJkZjU4OTAzZmZmYWYxYzllYjFjMDc0YmI2M2RlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDU2IEBACisyMDE1LTA5LTA5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYu
Y2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBJbXBsZW1lbnQgUmVhZGFibGVTdHJl
YW0gcGlwZVRocm91Z2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0NzU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGluZyBpbml0aWFsIHN1cHBvcnQgZm9yIEpTIGJ1aWx0aW5zIHdpdGhpbiBXZWJD
b3JlLgorICAgICAgICBUaGlzIHBhdGNoIGFsbG93cyBpbXBsZW1lbnRpbmcgSURMIGludGVyZmFj
ZSBtZXRob2RzIGluIEpTLCBieSB1c2luZyB0aGUgbmV3IEpTQnVpbHRpbiBrZXl3b3JkLgorICAg
ICAgICAoTm8gc3VwcG9ydCB5ZXQgZm9yIHByaXZhdGUgaWRlbnRpZmllcnMsIGNvbnN0cnVjdG9y
cyBvciBhY2Nlc3NvcnMpLgorICAgICAgICBJbnRlZ3JhdGlvbiBvZiB0aGUgYnVpbHQtaW4gZXhl
Y3V0YWJsZXMgYW5kIG5hbWVzIGlzIGltcGxlbWVudGVkIHdpdGhpbiBXZWJDb3JlSlNDbGllbnRE
YXRhLgorICAgICAgICBUd28gZmlsZXMgYXJlIGdlbmVyYXRlZCBmb3IgZWFjaCBKUyBidWlsdGlu
IGZpbGU6CisgICAgICAgIC0gYnVpbHRpbiBoL2NwcCBmaWxlcyBzaW1pbGFyIHRvIEpTQ0J1aWx0
aW5zLmNwcC8uaCwgZ2VuZXJhdGVkIHRocm91Z2ggV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlu
cyBmcm9tIEphdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zKQorICAgICAgICAtIEEg
YnVpbHRpbiB3cmFwcGVyIGZpbGUgbWltaWNraW5nIEJ1aWx0aW5FeGVjdXRhYmxlcyAoZ2VuZXJh
dGVkIGZyb20gV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucykKKyAgICAgICAgQ29udHJhcnkg
dG8gSlNDLCBlYWNoIGpzIGZpbGUgaXMgZ2VuZXJhdGluZyBpdHMgb3duIGNwcC9oIGZpbGUuCisg
ICAgICAgIFRoaXMgYWxsb3dzIGluY2x1ZGluZyB0aG9zZSBmaWxlcyB3aXRoaW4gdGhlIEpTWFgu
Y3BwLy5oIGZpbGVzIGdlbmVyYXRlZCBmcm9tIHRoZSBJREwgd2hlcmUgY29tcGlsYXRpb24gZ3Vh
cmQgbWF5IHRha2UgZWZmZWN0LgorCisgICAgICAgIFRlc3Q6IHN0cmVhbXMvcmVhZGFibGUtc3Ry
ZWFtLXBpcGVUaHJvdWdoLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBUcmlnZ2Vy
aW5nIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIGZvciBKUyBmaWxlcy4KKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOiBEaXR0by4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9idWlsdGlu
cy9CdWlsdGluVXRpbHMuaDogQWRkZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvYnl0
ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDogQWRkZWQuCisgICAgICAgICogRm9y
d2FyZGluZ0hlYWRlcnMvcnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5Lmg6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGw6IE1hcmtpbmcgcGlwZVRocm91
Z2ggYXMgSlMgYnVpbHRpbgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bS5qczogQWRkZWQuCisgICAgICAgIChwaXBlVGhyb3VnaCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvV2Vi
Q29yZUpTQ2xpZW50RGF0YS5oOiBBZGRpbmcgUmVhZGFibGVTdHJlYW1CdWlsdGluc1dyYXBwZXIg
dG8gc3RvcmUgUmVhZGFibGVTdHJlYW0gYnVpbHRpbiBleGVjdXRhYmxlCisgICAgICAgIChXZWJD
b3JlOjpXZWJDb3JlSlNDbGllbnREYXRhOjpXZWJDb3JlSlNDbGllbnREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkNvcmVKU0NsaWVudERhdGE6OnJlYWRhYmxlU3RyZWFtQnVpbHRpbnMpOgor
ICAgICAgICAoV2ViQ29yZTo6aW5pdE5vcm1hbFdvcmxkQ2xpZW50RGF0YSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06IEFkZGluZyBzdXBwb3J0IGZvciBK
U0J1aWx0aW4ga2V5d29yZC4KKyAgICAgICAgKEdldEZ1bmN0aW9uTmFtZSk6CisgICAgICAgIChH
ZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAg
ICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6CisgICAgICAgIChDb21wdXRlRnVuY3Rp
b25TcGVjaWFsKToKKyAgICAgICAgKFVzZUpTQnVpbHRpbnMpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6IEFkZGluZyBKU0J1aWx0aW4uCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6CisgICAg
ICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kKToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfanNfYnVpbHRpbl9tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtET01UZXN0T2JqIGpzQnVp
bHRpbk1ldGhvZF0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGpzQnVpbHRpbk1ldGhvZFdpdGhB
cmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsOgorICAgICAgICAqIGdlbmVyYXRlLWpzLWJ1aWx0aW5zOiBBZGRlZC4KKwogMjAx
NS0wOS0xNCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW0VGTF0gUmVtb3ZlIGNyZWF0ZSgpIGZhY3RvcnkgZnVuY3Rpb24gaW4gRXZhc0dMQ29udGV4
dCBhbmQgRXZhc0dMU3VyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ZmRm
MTViMjA0ODE3NjE4MTlmNjJmYzNjMzViNmFiYTMyMTMzZTQzLi4yMTc3ZDZlOTc1ZGNhNTRjNTMy
OGZhMWU4OTY3OTdkZjljMmFlZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
OTQ1LDYgKzk0NSw3IEBACiAJCTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJ
RFRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
QUY3MzgyQjE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3MUQ4NDJEMTdDOThCNkUw
MEVDRjk5NCAvKiBsaWJ6LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgKi87
IH07CiAJCTQxMzU5Q0YzMEZERDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29udmVyc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIxMjAyMjkwQUQ0MzEw
QzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi87IH07CisJCTQxREVBMTMyMUI5RjMxNjMw
MDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MzQw
QTQ4NDFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzQwQTQ4MjFBOTA1MUFGMDBENzNDQ0EgLyog
TWF0aENvbW1vbi5jcHAgKi87IH07CiAJCTQzNDBBNDg1MUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRo
Q29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzQwQTQ4MzFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5oICovOyB9OwogCQk0NDQzQUUz
MzE2RTE4OEQ5MDA3NkYxMTAgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwRUI2MTA1Qzg2QzZCMDBFNkRG
MUIgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CkBAIC0yNzM5LDYgKzI3NDAsNyBAQAog
CQkyQUY3MzgyQTE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJ1Y3R1cmVJRFRhYmxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkFGNzM4MkIxOEJCQkY5MjAwOEE1QTM3IC8qIFN0
cnVjdHVyZUlEVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0
dXJlSURUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFEODQyQzE3Qzk4
QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliei5k
eWxpYjsgcGF0aCA9IHVzci9saWIvbGliei5keWxpYjsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07
CisJCTQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnVpbHRpblV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzNDBBNDgyMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhDb21tb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzQwQTQ4MzFBOTA1MUFGMDBENzNDQ0EgLyogTWF0
aENvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoQ29tbW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0OTA5N0VFMEY4RjgxQjUwMDc2QTMyNyAv
KiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGgg
PSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU4MjAsNiArNTgyMiw3IEBACiAJCQkJQTdEODAxQTExODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0
aW5FeGVjdXRhYmxlcy5jcHAgKi8sCiAJCQkJQTdEODAxQTIxODgwRDY2RTAwMjZDMzlCIC8qIEJ1
aWx0aW5FeGVjdXRhYmxlcy5oICovLAogCQkJCUE3NUVFOUIwMThBQUI3RTIwMEFBRDA0MyAvKiBC
dWlsdGluTmFtZXMuaCAqLywKKwkJCQk0MURFQTEzMTFCOUYzMTU0MDA2RDY1REQgLyogQnVpbHRp
blV0aWxzLmggKi8sCiAJCQkJQTdBOTc5QzQxOEJFOEQ5RTAwMkMzNzMzIC8qIEZ1bmN0aW9uLnBy
b3RvdHlwZS5qcyAqLywKIAkJCQk3Q0Y5QkM1QTFCNjVEOUEzMDA5REIxRUYgLyogR2xvYmFsT2Jq
ZWN0LmpzICovLAogCQkJCUUzNUUwMzYxMUI3QUI0ODUwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QuanMgKi8sCkBAIC02MDg3LDYgKzYwOTAsNyBAQAogCQkJCUE3MDRE
OTAzMTdBMEJBQTgwMDZCQTU1NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzA0RDkwNDE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQjlFMjNDMUI0RTBENjcwMEJDN0ZF
RCAvKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUEx
MzIxQjlGMzE2MzAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2MjAxNzcxNDNGQ0QzRjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0VmFsdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRjA1NEZBMUFDMzVCNDQwMEU1QkU1NyAvKiBFeGVjdXRhYmxlQWxsb2NhdGlv
bkZ1enouaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjZFMTZCMTRERjNGMTYwMEI3QjJFNCAvKiBE
RkdBZGphY2VuY3lMaXN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKaW5kZXggN2VmMWRhM2Iw
YWMzOTQzZTAwNTkzYzY4ZTFkODE1NTI3YzI3MTFhNS4uMzZkMjY1MjZiNTUzYjhjNzc4MDU1YTUw
NTk5MzI3NGM4NjFjNjE5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKQEAgLTM1LDYgKzM1LDggQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKK3N0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRXhl
Y3V0YWJsZUludGVybmFsKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXIm
LCBDb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHkpOworCiBCdWlsdGluRXhlY3V0YWJs
ZXM6OkJ1aWx0aW5FeGVjdXRhYmxlcyhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQogI2RlZmluZSBJ
TklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5n
dGgpICwgbV8jI25hbWUjI1NvdXJjZShtYWtlU291cmNlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21M
aXRlcmFsKHNfIyNuYW1lLCBsZW5ndGgpKSkKQEAgLTUyLDE1ICs1NCwyNSBAQCBVbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVEZWZhdWx0Q29uc3Ry
dWN0b3IoQ29uc3RydQogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5kOjpOb25lOgogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnN0cnVjdG9yS2luZDo6QmFzZToKLSAgICAgICAgcmV0dXJuIGNy
ZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtYWtlU291cmNlKGJhc2VDb25zdHJ1Y3RvckNvZGUpLCBu
YW1lLCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7Cisg
ICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwobV92bSwgbWFrZVNvdXJjZShi
YXNlQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmls
aXR5OjpDYW5Db25zdHJ1Y3QpOwogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkOgot
ICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1ha2VTb3VyY2UoZGVyaXZl
ZENvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0
eTo6Q2FuQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5h
bChtX3ZtLCBtYWtlU291cmNlKGRlcml2ZWRDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1
Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7CiAgICAgfQogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1VbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVFeGVjdXRhYmxlSW50
ZXJuYWwoY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBD
b25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVj
dEFiaWxpdHkpCitVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVz
OjpjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiBjb2RlLCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCit7Cisg
ICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBjb2RlLCBuYW1lLCBDb25z
dHJ1Y3RvcktpbmQ6Ok5vbmUsIGNvbnN0cnVjdEFiaWxpdHkpOworfQorCitVbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoVk0mIHZtLCBjb25zdCBTb3Vy
Y2VDb2RlJiBjb2RlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RBYmlsaXR5IGNv
bnN0cnVjdEFiaWxpdHkpCit7CisgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbCh2
bSwgY29kZSwgbmFtZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBjb25zdHJ1Y3RBYmlsaXR5KTsK
K30KKworVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5h
bChWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgY29uc3QgSWRlbnRpZmllciYgbmFt
ZSwgQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSBjb25z
dHJ1Y3RBYmlsaXR5KQogewogICAgIEpTVGV4dFBvc2l0aW9uIHBvc2l0aW9uQmVmb3JlTGFzdE5l
d2xpbmU7CiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7CkBAIC02OSw3ICs4MSw3IEBAIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJ
bnRlcm5hbChjb25zdCBTCiAgICAgVW5saW5rZWRGdW5jdGlvbktpbmQga2luZCA9IGlzUGFyc2lu
Z0RlZmF1bHRDb25zdHJ1Y3RvciA/IFVubGlua2VkTm9ybWFsRnVuY3Rpb24gOiBVbmxpbmtlZEJ1
aWx0aW5GdW5jdGlvbjsKICAgICBSZWZQdHI8U291cmNlUHJvdmlkZXI+IHNvdXJjZU92ZXJyaWRl
ID0gaXNQYXJzaW5nRGVmYXVsdENvbnN0cnVjdG9yID8gc291cmNlLnByb3ZpZGVyKCkgOiBudWxs
cHRyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmFtTm9kZT4gcHJvZ3JhbSA9IHBhcnNlPFBy
b2dyYW1Ob2RlPigKLSAgICAgICAgJm1fdm0sIHNvdXJjZSwgSWRlbnRpZmllcigpLCBidWlsdGlu
TW9kZSwKKyAgICAgICAgJnZtLCBzb3VyY2UsIElkZW50aWZpZXIoKSwgYnVpbHRpbk1vZGUsCiAg
ICAgICAgIEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0LCBTb3VyY2VQYXJzZU1vZGU6OlBy
b2dyYW1Nb2RlLCBlcnJvciwKICAgICAgICAgJnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUsIGNv
bnN0cnVjdG9yS2luZCk7CiAKQEAgLTk1LDE2ICsxMDcsMTYgQEAgVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNv
bnN0IFMKICAgICBtZXRhZGF0YS0+c2V0RW5kUG9zaXRpb24ocG9zaXRpb25CZWZvcmVMYXN0TmV3
bGluZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQobWV0YWRhdGEpOwogICAgIGZvciAoY29uc3QgYXV0
byYgY2xvc2VkVmFyaWFibGUgOiBwcm9ncmFtLT5jbG9zZWRWYXJpYWJsZXMoKSkgewotICAgICAg
ICBpZiAoY2xvc2VkVmFyaWFibGUgPT0gbV92bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1w
bCgpKQorICAgICAgICBpZiAoY2xvc2VkVmFyaWFibGUgPT0gdm0ucHJvcGVydHlOYW1lcy0+YXJn
dW1lbnRzLmltcGwoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAg
aWYgKGNsb3NlZFZhcmlhYmxlID09IG1fdm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29y
ZC5pbXBsKCkpCisgICAgICAgIGlmIChjbG9zZWRWYXJpYWJsZSA9PSB2bS5wcm9wZXJ0eU5hbWVz
LT51bmRlZmluZWRLZXl3b3JkLmltcGwoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgIH0K
ICAgICBtZXRhZGF0YS0+b3ZlcnJpZGVOYW1lKG5hbWUpOwogICAgIFZhcmlhYmxlRW52aXJvbm1l
bnQgZHVtbXlURFpWYXJpYWJsZXM7Ci0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlY3V0YWJsZSA9IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUoJm1f
dm0sIHNvdXJjZSwgbWV0YWRhdGEsIGtpbmQsIGNvbnN0cnVjdEFiaWxpdHksIGR1bW15VERaVmFy
aWFibGVzLCBXVEY6Om1vdmUoc291cmNlT3ZlcnJpZGUpKTsKLSAgICBmdW5jdGlvbkV4ZWN1dGFi
bGUtPm1fbmFtZVZhbHVlLnNldChtX3ZtLCBmdW5jdGlvbkV4ZWN1dGFibGUsIGpzU3RyaW5nKCZt
X3ZtLCBuYW1lLnN0cmluZygpKSk7CisgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlY3V0YWJsZSA9IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUoJnZt
LCBzb3VyY2UsIG1ldGFkYXRhLCBraW5kLCBjb25zdHJ1Y3RBYmlsaXR5LCBkdW1teVREWlZhcmlh
YmxlcywgV1RGOjptb3ZlKHNvdXJjZU92ZXJyaWRlKSk7CisgICAgZnVuY3Rpb25FeGVjdXRhYmxl
LT5zZXROYW1lVmFsdWUodm0sIGpzU3RyaW5nKCZ2bSwgbmFtZS5zdHJpbmcoKSkpOwogICAgIHJl
dHVybiBmdW5jdGlvbkV4ZWN1dGFibGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaAppbmRleCAyMzQxYzg4ZDhjNzMxMmY1
NTZhOTc0ODE4Y2M5YTBkMDk2MjUzNjJjLi44NjJkMTgyNzcyYzQ1NTdlN2EyNGExMTI1ZjQ4YWE3
ODQ0YmZkNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbkV4ZWN1dGFibGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1
aWx0aW5FeGVjdXRhYmxlcy5oCkBAIC01NywxMSArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgVk0m
IG1fdm07CiAKLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4
ZWN1dGFibGUoY29uc3QgU291cmNlQ29kZSYgY29kZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
Q29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb2RlLCBuYW1lLCBDb25zdHJ1Y3RvcktpbmQ6Ok5v
bmUsIGNvbnN0cnVjdEFiaWxpdHkpOwotICAgIH0KLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvbnN0IFNvdXJjZUNvZGUmLCBjb25zdCBJ
ZGVudGlmaWVyJiwgQ29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKyAgICBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoY29uc3QgU291
cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3RBYmlsaXR5KTsKIAogI2RlZmlu
ZSBERUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5n
dGgpXAogICAgIFNvdXJjZUNvZGUgbV8jI25hbWUjI1NvdXJjZTsgXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDdlNTQzNDJlNzUyZjlmMmQ0
ZTgzNWVkMDM0ZjQ2MDljZjM2NWQzOWYuLjViZTZlZDMyNTljMTY2MzgxZTI3MzEzZGI5M2YyZjNl
OTZkNmNiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWls
dGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5h
bWVzLmgKQEAgLTI2LDI2ICsyNiwxNSBAQAogI2lmbmRlZiBCdWlsdGluTmFtZXNfaAogI2RlZmlu
ZSBCdWlsdGluTmFtZXNfaAogCisjaW5jbHVkZSAiQnVpbHRpblV0aWxzLmgiCiAjaW5jbHVkZSAi
Q29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKLSAgICAKLSNkZWZpbmUgSU5JVElBTElTRV9CVUlMVElOX05BTUVTKG5hbWUpICwg
bV8jI25hbWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgI25hbWUpKSwgbV8jI25hbWUjI1By
aXZhdGVOYW1lKElkZW50aWZpZXI6OmZyb21VaWQoUHJpdmF0ZU5hbWUoUHJpdmF0ZU5hbWU6OkRl
c2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlByaXZhdGVTeW1ib2wuIiAjbmFtZSkpKSkKLSNkZWZp
bmUgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IElkZW50aWZpZXIgbV8jI25hbWU7
IGNvbnN0IElkZW50aWZpZXIgbV8jI25hbWUjI1ByaXZhdGVOYW1lOwotI2RlZmluZSBERUNMQVJF
X0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCi0gICAgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSMjUHVibGljTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lOyB9IFwKLSAgICBj
b25zdCBJZGVudGlmaWVyJiBuYW1lIyNQcml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNu
YW1lIyNQcml2YXRlTmFtZTsgfQotCi0jZGVmaW5lIElOSVRJQUxJU0VfQlVJTFRJTl9TWU1CT0xT
KG5hbWUpIElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUyhuYW1lKSwgbV8jI25hbWUjI1N5bWJvbChJ
ZGVudGlmaWVyOjpmcm9tVWlkKFByaXZhdGVOYW1lKFByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwg
QVNDSUlMaXRlcmFsKCJTeW1ib2wuIiAjbmFtZSkpKSkKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElO
X1NZTUJPTFMobmFtZSkgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IElkZW50aWZp
ZXIgbV8jI25hbWUjI1N5bWJvbDsKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX1NZTUJPTF9BQ0NF
U1NPUihuYW1lKSBcCi0gICAgREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IobmFt
ZSkgXAotICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUjI1N5bWJvbCgpIGNvbnN0IHsgcmV0dXJu
IG1fIyNuYW1lIyNTeW1ib2w7IH0KIAogI2RlZmluZSBJTklUSUFMSVNFX1BSSVZBVEVfVE9fUFVC
TElDX0VOVFJZKG5hbWUpIG1fcHJpdmF0ZVRvUHVibGljTWFwLmFkZChtXyMjbmFtZSMjUHJpdmF0
ZU5hbWUuaW1wbCgpLCAmbV8jI25hbWUpOwogI2RlZmluZSBJTklUSUFMSVNFX1BVQkxJQ19UT19Q
UklWQVRFX0VOVFJZKG5hbWUpIG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtXyMjbmFtZS5pbXBs
KCksICZtXyMjbmFtZSMjUHJpdmF0ZU5hbWUpOwotICAgIAorCiBjbGFzcyBCdWlsdGluTmFtZXMg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJ1aWx0aW5OYW1lcyk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIApAQCAtODQsMTMgKzczLDYgQEAgcHJpdmF0ZToKICAgICBCdWlsdGlu
TmFtZXNNYXAgbV9wcml2YXRlVG9QdWJsaWNNYXA7CiB9OwogCi0jdW5kZWYgREVDTEFSRV9CVUlM
VElOX05BTUVTCi0jdW5kZWYgSU5JVElBTElTRV9CVUlMVElOX05BTUVTCi0jdW5kZWYgREVDTEFS
RV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fU1lN
Qk9MUwotI3VuZGVmIElOSVRJQUxJU0VfQlVJTFRJTl9TWU1CT0xTCi0jdW5kZWYgREVDTEFSRV9C
VUlMVElOX1NZTUJPTF9BQ0NFU1NPUgotCiBpbmxpbmUgYm9vbCBCdWlsdGluTmFtZXM6OmlzUHJp
dmF0ZU5hbWUoU3ltYm9sSW1wbCYgdWlkKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGVU
b1B1YmxpY01hcC5jb250YWlucygmdWlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWls
dGlucy9CdWlsdGluVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjU1NTExYjVhNjljY2IzNTAzMzYzOWZm
NTk1ZTdmYWUwODkzOTM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCdWlsdGluVXRpbHNfaAorI2Rl
ZmluZSBCdWlsdGluVXRpbHNfaAorCisjaW5jbHVkZSAiQ29uc3RydWN0QWJpbGl0eS5oIgorCitu
YW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMobmFtZSkg
LCBtXyMjbmFtZShKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICNuYW1lKSksIG1fIyNu
YW1lIyNQcml2YXRlTmFtZShKU0M6OklkZW50aWZpZXI6OmZyb21VaWQoSlNDOjpQcml2YXRlTmFt
ZShKU0M6OlByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwgQVNDSUlMaXRlcmFsKCJQcml2YXRlU3lt
Ym9sLiIgI25hbWUpKSkpCisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9OQU1FUyhuYW1lKSBjb25z
dCBKU0M6OklkZW50aWZpZXIgbV8jI25hbWU7IGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFt
ZSMjUHJpdmF0ZU5hbWU7CisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VT
U09SKG5hbWUpIFwKKyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1B1YmxpY05hbWUo
KSBjb25zdCB7IHJldHVybiBtXyMjbmFtZTsgfSBcCisgICAgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBuYW1lIyNQcml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNQcml2YXRlTmFt
ZTsgfQorCisjZGVmaW5lIElOSVRJQUxJU0VfQlVJTFRJTl9TWU1CT0xTKG5hbWUpIElOSVRJQUxJ
U0VfQlVJTFRJTl9OQU1FUyhuYW1lKSwgbV8jI25hbWUjI1N5bWJvbChKU0M6OklkZW50aWZpZXI6
OmZyb21VaWQoSlNDOjpQcml2YXRlTmFtZShKU0M6OlByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwg
QVNDSUlMaXRlcmFsKCJTeW1ib2wuIiAjbmFtZSkpKSkKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElO
X1NZTUJPTFMobmFtZSkgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IEpTQzo6SWRl
bnRpZmllciBtXyMjbmFtZSMjU3ltYm9sOworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lNQk9M
X0FDQ0VTU09SKG5hbWUpIFwKKyAgICBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NP
UihuYW1lKSBcCisgICAgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBuYW1lIyNTeW1ib2woKSBjb25z
dCB7IHJldHVybiBtXyMjbmFtZSMjU3ltYm9sOyB9CisKK2NsYXNzIEZ1bmN0aW9uRXhlY3V0YWJs
ZTsKK2NsYXNzIElkZW50aWZpZXI7CitjbGFzcyBTb3VyY2VDb2RlOworY2xhc3MgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGU7CitjbGFzcyBWTTsKKworSlNfRVhQT1JUX1BSSVZBVEUgVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKFZNJiwgY29uc3Qg
U291cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKyAgICAK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCmluZGV4IGUzZmMyYTk2NDljZmVjYjE4
YTAyMDIwZTk2MTAxNDk0OWM0NTY2ZmEuLmEzOTJmZDliMzBjZDI2YjNhNjE2ZDdiZGI2NGYzMmEw
ZTFmMTk3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC01OSw3ICs1OSw2IEBAIGVudW0g
VW5saW5rZWRGdW5jdGlvbktpbmQgewogCiBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGljOgotICAgIGZyaWVuZCBjbGFzcyBCdWls
dGluRXhlY3V0YWJsZXM7CiAgICAgZnJpZW5kIGNsYXNzIENvZGVDYWNoZTsKICAgICBmcmllbmQg
Y2xhc3MgVk07CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IElkZW50aWZp
ZXImIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBjb25zdCBJZGVudGlmaWVy
JiBpbmZlcnJlZE5hbWUoKSBjb25zdCB7IHJldHVybiBtX2luZmVycmVkTmFtZTsgfQogICAgIEpT
U3RyaW5nKiBuYW1lVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX25hbWVWYWx1ZS5nZXQoKTsgfQor
ICAgIHZvaWQgc2V0TmFtZVZhbHVlKFZNJiB2bSwgSlNTdHJpbmcqIG5hbWVWYWx1ZSkgeyBtX25h
bWVWYWx1ZS5zZXQodm0sIHRoaXMsIG5hbWVWYWx1ZSk7IH0KICAgICB1bnNpZ25lZCBwYXJhbWV0
ZXJDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyQ291bnQ7IH07CiAgICAgU291cmNl
UGFyc2VNb2RlIHBhcnNlTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VNb2RlOyB9OwogICAg
IGJvb2wgaXNJblN0cmljdENvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5TdHJpY3RDb250
ZXh0OyB9CkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBJZGVudGlm
aWVyJiwgRXhlY1N0YXRlJiwgY29uc3QgU291cmNlQ29kZSYsIEpTT2JqZWN0KiYgZXhjZXB0aW9u
LCAKICAgICAgICAgaW50IG92ZXJyaWRlTGluZU51bWJlcik7CiAKLSAgICBGdW5jdGlvbkV4ZWN1
dGFibGUqIGxpbmsoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgaW50IG92ZXJyaWRlTGluZU51bWJl
ciA9IC0xKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBGdW5jdGlvbkV4ZWN1dGFibGUqIGxpbmso
Vk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgaW50IG92ZXJyaWRlTGluZU51bWJlciA9IC0xKTsKIAog
ICAgIHZvaWQgY2xlYXJDb2RlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJh
dGUtanMtYnVpbHRpbnMKaW5kZXggOTY0NzE2MzZmYTNlN2NlYzBhMjZiYmFmNTZhMjhkOTI4MjEw
YzU2Ny4uMjJiZjMxMDRhYzg3ODMxNGE3Mzg0MjhlOGU4YmM5OGQzYzQ0YzNhMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpAQCAtMjIsNiArMjIsOCBAQAog
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorIyBUT0RPOiBNb3ZlIHRoaXMgc2NyaXB0
IHRvIGFub3RoZXIgcGxhY2UgdGhhbiBKYXZhU2NyaXB0Q29yZSBzaW5jZSBpdCBpcyBpbiB1c2Ug
Zm9yIFdlYkNvcmUgYXMgd2VsbC4KKwogaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgZmlsZWNtcAog
aW1wb3J0IGZubWF0Y2gKQEAgLTM2LDYgKzM4LDggQEAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1l
bnRQYXJzZXIoKQogcGFyc2VyLmFkZF9hcmd1bWVudCgnaW5wdXRfZmlsZScsIG5hcmdzPScqJywg
aGVscD0nSW5wdXQgSlMgZmlsZXMgd2hpY2ggYnVpbHRpbnMgZ2VuZXJhdGVkIGZyb20nKQogcGFy
c2VyLmFkZF9hcmd1bWVudCgnLS1pbnB1dC1kaXJlY3RvcnknLCBoZWxwPSdBbGwgSlMgZmlsZXMg
d2lsbCBiZSB1c2VkIGFzIGlucHV0IGZyb20gdGhpcyBkaXJlY3RvcnkuJykKIHBhcnNlci5hZGRf
YXJndW1lbnQoJy0tb3V0cHV0JywgaGVscD0ncGF0aCB0byBvdXRwdXQgY3BwIG9yIGggZmlsZScp
CitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXByZWZpeCcsIGRlZmF1bHQ9J0pTQycsIGhlbHA9J3By
ZWZpeCB1c2VkIGZvciBwdWJsaWMgbWFjcm9zJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0tbmFt
ZXNwYWNlJywgZGVmYXVsdD0nSlNDJywgaGVscD0nQysrIG5hbWVzcGFjZScpCiBhcmdzID0gcGFy
c2VyLnBhcnNlX2FyZ3MoKQogCiBjb3B5cmlnaHRUZXh0ID0gIiIiICoKQEAgLTE1Myw2ICsxNTcs
OSBAQCBkZWYgZ2V0RnVuY3Rpb25zKHNvdXJjZSk6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoRnVu
Y3Rpb24oZnVuY3Rpb25OYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25Jc0NvbnN0cnVjdG9yLCBmdW5j
dGlvblBhcmFtZXRlcnMpKQogICAgIHJldHVybiByZXN1bHQKIAorZGVmIHdyaXRlSW5jbHVkZURp
cmVjdGl2ZXMod3JpdGVyLCBoZWFkZXJOYW1lcyk6CisgICAgZm9yIGhlYWRlck5hbWUgaW4gaGVh
ZGVyTmFtZXM6CisgICAgICAgIHdyaXRlci53cml0ZSgiI2luY2x1ZGUgIiArIGhlYWRlck5hbWUg
KyAiXG4iKQogCiBkZWYgZ2VuZXJhdGVDb2RlKHNvdXJjZSk6CiAgICAgaW5wdXRGaWxlID0gb3Bl
bihzb3VyY2UsICJyIikKQEAgLTE3OSw2ICsxODYsMTQgQEAgZm9yIGZpbGUgaW4gYXJncy5pbnB1
dF9maWxlOgogICAgICAgICAoYmFzZU5hbWUsIGZ1bmN0aW9ucywgb2JqZWN0Q29weXJpZ2h0cykg
PSBnZW5lcmF0ZUNvZGUoZmlsZSkKICAgICAgICAgY29weXJpZ2h0cy5leHRlbmQob2JqZWN0Q29w
eXJpZ2h0cykKICAgICAgICAgYnVpbHRpbnMuYXBwZW5kKChiYXNlTmFtZSwgZnVuY3Rpb25zKSkK
K25hbWVzcGFjZSA9IGFyZ3MubmFtZXNwYWNlCittYWNyb1ByZWZpeCA9IGFyZ3MucHJlZml4Citz
Y29wZU5hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoYXJncy5vdXRwdXQp
KVswXQoraW5jbHVkZUd1YXJkID0gc2NvcGVOYW1lICsgIl9IIgoraGVhZGVyTmFtZSA9IHNjb3Bl
TmFtZSArICIuaCIKKworaGVhZGVySW5jbHVkZXMgPSBbIlwiQnVpbHRpblV0aWxzLmhcIiJdIGlm
IG5hbWVzcGFjZSA9PSAiSlNDIiBlbHNlIFsiPGJ1aWx0aW5zL0J1aWx0aW5VdGlscy5oPiJdCitj
b250ZW50SW5jbHVkZXMgPSBbIlwiQnVpbHRpbkV4ZWN1dGFibGVzLmhcIiIsICJcIkV4ZWN1dGFi
bGUuaFwiIiwgIlwiSlNDZWxsSW5saW5lcy5oXCIiLCAiXCJWTS5oXCIiXSBpZiBuYW1lc3BhY2Ug
PT0gIkpTQyIgZWxzZSBbIjxydW50aW1lL0V4ZWN1dGFibGUuaD4iLCAiPHJ1bnRpbWUvSlNDZWxs
SW5saW5lcy5oPiIsICI8cnVudGltZS9WTS5oPiIsICJcIldlYkNvcmVKU0NsaWVudERhdGEuaFwi
Il0KIAogY29weXJpZ2h0cyA9IGxpc3Qoc2V0KGNvcHlyaWdodHMpKQogCkBAIC0xOTIsMjMgKzIw
NywxOCBAQCBjb3B5cmlnaHRUZXh0ID0gIi8qXG4iICsgY29weXJpZ2h0Qm9keSArIGNvcHlyaWdo
dFRleHQKIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIiIiVzCiAlcwogCi0jaWZuZGVmIEpTQ0J1aWx0
aW5zX0gKLSNkZWZpbmUgSlNDQnVpbHRpbnNfSAorI2lmbmRlZiAlcworI2RlZmluZSAlcwogCi0j
aW5jbHVkZSAiQ29uc3RydWN0QWJpbGl0eS5oIgorIiIiICUgKGdlbmVyYXRvclN0cmluZywgY29w
eXJpZ2h0VGV4dCwgaW5jbHVkZUd1YXJkLCBpbmNsdWRlR3VhcmQpKQogCi1uYW1lc3BhY2UgSlND
IHsKK3dyaXRlSW5jbHVkZURpcmVjdGl2ZXMoYnVpbHRpbnNIZWFkZXIsIGhlYWRlckluY2x1ZGVz
KQogCi1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBJZGVudGlmaWVyOwotY2xhc3Mg
SlNHbG9iYWxPYmplY3Q7Ci1jbGFzcyBTb3VyY2VDb2RlOwotY2xhc3MgVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGU7Ci1jbGFzcyBWTTsKK2J1aWx0aW5zSGVhZGVyLndyaXRlKCIiIgogCi1GdW5j
dGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKFZNJiwgVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CituYW1lc3BhY2UgJXMgewogCi0i
IiIgJSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmlnaHRUZXh0KSkKKyIiIiAlIG5hbWVzcGFjZSkK
IAogY29kZVJlZmVyZW5jZXMgPSBbXQogCkBAIC0yMjIsNTggKzIzMiw1OSBAQCBmb3IgKG9iamVj
dE5hbWUsIGZ1bmN0aW9ucykgaW4gYnVpbHRpbnM6CiAgICAgICAgIGNvZGVSZWZlcmVuY2VzLmFw
cGVuZCgobWFuZ2xlZE5hbWUsIGZ1bmN0aW9uKSkKICAgICAgICAgYnVpbHRpbnNIZWFkZXIud3Jp
dGUoImV4dGVybiBjb25zdCBjaGFyKiBzXyVzO1xuIiAlIG1hbmdsZWROYW1lKQogICAgICAgICBi
dWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IGludCBzXyVzTGVuZ3RoO1xuIiAlIG1h
bmdsZWROYW1lKQotICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IENv
bnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0cnVjdEFiaWxpdHk7XG4iICUgbWFuZ2xlZE5hbWUpCisg
ICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5O1xuIiAlIG1hbmdsZWROYW1lKQogICAgIGJ1aWx0
aW5zSGVhZGVyLndyaXRlKCJcbiIpCi0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUg
SlNDX0ZPUkVBQ0hfJXNfQlVJTFRJTihtYWNybykgXFxcbiIgJSBvYmplY3ROYW1lLnJlcGxhY2Uo
Ii4iLCAiXyIpLnVwcGVyKCkpCisgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNf
Rk9SRUFDSF8lc19CVUlMVElOKG1hY3JvKSBcXFxuIiAlIChtYWNyb1ByZWZpeCwgb2JqZWN0TmFt
ZS5yZXBsYWNlKCIuIiwgIl8iKS51cHBlcigpKSkKICAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rp
b25zOgogICAgICAgICBtYW5nbGVkTmFtZSA9IGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFt
ZSkKICAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcywgJXMsICVkKSBc
XFxuIiAlIChmdW5jdGlvbi5uYW1lLCBtYW5nbGVkTmFtZSwgbGVuKGZ1bmN0aW9uLnBhcmFtZXRl
cnMpKSkKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiXG4iKQogICAgIGZvciBmdW5jdGlvbiBp
biBmdW5jdGlvbnM6Ci0gICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19C
VUlMVElOXyVzIDFcbiIgJSBmdW5jdGlvbi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkp
CisgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0JVSUxUSU5fJXMgMVxu
IiAlIChtYWNyb1ByZWZpeCwgZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKS51cHBlcigp
KSkKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiXG5cbiIpCiBuYW1lcyA9IFtdCi1idWlsdGlu
c0hlYWRlci53cml0ZSgiI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOKG1hY3JvKVxcXG4iKQor
YnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOKG1hY3JvKVxc
XG4iICUgbWFjcm9QcmVmaXgpCiBmb3IgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2Rl
UmVmZXJlbmNlczoKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzLCAlcywg
c18lc0xlbmd0aCkgXFxcbiIgJSAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24ubmFtZSwgY29kZVJl
ZmVyZW5jZSkpCiAgICAgbmFtZXMuYXBwZW5kKGZ1bmN0aW9uLm5hbWUpCiAKIGJ1aWx0aW5zSGVh
ZGVyLndyaXRlKCJcblxuIikKLWJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19GT1JF
QUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFxcbiIpCitidWlsdGluc0hlYWRlci53
cml0ZSgiI2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFxc
biIgJSBtYWNyb1ByZWZpeCkKIGZvciBuYW1lIGluIHNvcnRlZChzZXQobmFtZXMpKToKICAgICBi
dWlsdGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzKSBcXFxuIiAlIG5hbWUpCiBidWlsdGlu
c0hlYWRlci53cml0ZSgiIiIKIAotI2RlZmluZSBKU0NfREVDTEFSRV9CVUlMVElOX0dFTkVSQVRP
Uihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAotICAgIEZ1bmN0aW9u
RXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihWTSYpOworI2RlZmluZSBERUNMQVJFX0JV
SUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxc
CisgICAgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpW
TSYpOwogCi1KU0NfRk9SRUFDSF9CVUlMVElOKEpTQ19ERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9S
KQotI3VuZGVmIEpTQ19ERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCislc19GT1JFQUNIX0JVSUxU
SU4oREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKKyN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VO
RVJBVE9SCiAKLSNkZWZpbmUgSlNDX0JVSUxUSU5fRVhJU1RTKG5hbWUpIGRlZmluZWQgSlNDX0JV
SUxUSU5fICMjIG5hbWUKKyNkZWZpbmUgJXNfQlVJTFRJTl9FWElTVFMobmFtZSkgZGVmaW5lZCAl
c19CVUlMVElOXyAjIyBuYW1lCiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gJXMKIAotIiIiKQor
IiIiICUgKG1hY3JvUHJlZml4LCBtYWNyb1ByZWZpeCwgbWFjcm9QcmVmaXgsIGluY2x1ZGVHdWFy
ZCkpCiAKIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIiJXMKICVzCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKIAotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCisjaW5jbHVkZSAiJXMiCisK
KyIiIiAgJSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmlnaHRUZXh0LCBoZWFkZXJOYW1lKSkKKwor
d3JpdGVJbmNsdWRlRGlyZWN0aXZlcyhidWlsdGluc0ltcGxlbWVudGF0aW9uLCBjb250ZW50SW5j
bHVkZXMpCisKK2J1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIiCituYW1lc3BhY2UgJXMg
ewogCi0jaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCi0jaW5jbHVkZSAiQ29uc3RydWN0
QWJpbGl0eS5oIgotI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKLSNpbmNsdWRlICJKU0NlbGxJbmxp
bmVzLmgiCi0jaW5jbHVkZSAiVk0uaCIKKyIiIiAgJSAobmFtZXNwYWNlKSkKIAotbmFtZXNwYWNl
IEpTQyB7CiAKLSIiIiAgJSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmlnaHRUZXh0KSkKIAogZm9y
IChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAgc291cmNl
ID0gZnVuY3Rpb24uc291cmNlCkBAIC0yODUsMjMgKzI5NiwzMyBAQCBmb3IgKGNvZGVSZWZlcmVu
Y2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJlbmNlczoKICAgICAgICAgc291cmNlID0gc291cmNl
ICsgKCIgICAgXCIlc1xcblwiIFxcXG4iICUgbGluZSkKICAgICBidWlsdGluc0ltcGxlbWVudGF0
aW9uLndyaXRlKCJjb25zdCBjaGFyKiBzXyVzID1cbiVzO1xuXG4iICUgKGNvZGVSZWZlcmVuY2Us
IHNvdXJjZSkpCiAgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgaW50IHNf
JXNMZW5ndGggPSAlZDtcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBzb3VyY2VMZW5ndGggKyAxKSkg
IyArIDEgZm9yIFxuCi0gICAgY29uc3RydWN0QWJpbGl0eSA9ICJDb25zdHJ1Y3RBYmlsaXR5OjpD
YW5ub3RDb25zdHJ1Y3QiCisgICAgY29uc3RydWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0cnVjdEFi
aWxpdHk6OkNhbm5vdENvbnN0cnVjdCIKICAgICBpZiBmdW5jdGlvbi5pc0NvbnN0cnVjdG9yOgot
ICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkNvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVj
dCIKLSAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBDb25zdHJ1Y3RBYmls
aXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5ID0gJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgY29u
c3RydWN0QWJpbGl0eSkpICMgKyAxIGZvciBcbgorICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5ID0g
IkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0IgorICAgIGJ1aWx0aW5zSW1wbGVt
ZW50YXRpb24ud3JpdGUoImNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0
QWJpbGl0eSA9ICVzO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAj
ICsgMSBmb3IgXG4KIAogYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIKLSNkZWZpbmUg
SlNDX0RFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1
bWVudENvdW50KSBcXAotRnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKFZN
JiB2bSkgXFwKLXsgXFwKLSAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVO
YW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2Rl
TmFtZSMjU291cmNlKCkpOyBcXAotfQorI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1Io
Y29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKK0pTQzo6RnVuY3Rpb25F
eGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXAorIiIiKTsKIAot
SlNDX0ZPUkVBQ0hfQlVJTFRJTihKU0NfREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVm
IEpTQ19ERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKK2lmIChuYW1lc3BhY2UgPT0gIkpTQyIpOgor
ICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIie1xcCisgICAgcmV0dXJuIHZtLmJ1
aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5i
dWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgXFwKKyIiIikKK2Vsc2U6
CisgICAgYnVpbHRpbk5hbWUgPSBzY29wZU5hbWVbMF0ubG93ZXIoKSArIHNjb3BlTmFtZVsxOl0K
KyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIntcXAorICAgIFdlYkNvcmVKU0Ns
aWVudERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxXZWJDb3JlSlNDbGllbnREYXRhKj4o
dm0uY2xpZW50RGF0YSk7IFxcCisgICAgcmV0dXJuIGNsaWVudERhdGEtPiVzKCkuY29kZU5hbWUj
I0V4ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+JXMoKS5jb2RlTmFtZSMjU291cmNl
KCkpOyBcXAorIiIiJSAoYnVpbHRpbk5hbWUsIGJ1aWx0aW5OYW1lKSkKKworYnVpbHRpbnNJbXBs
ZW1lbnRhdGlvbi53cml0ZSgiIiJ9Cislc19GT1JFQUNIX0JVSUxUSU4oREVGSU5FX0JVSUxUSU5f
R0VORVJBVE9SKQorI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgogfQogCi0iIiIpCisi
IiIlIChtYWNyb1ByZWZpeCkpCiAKIGJ1aWx0aW5zSGVhZGVyLmNsb3NlKCkKIGJ1aWx0aW5zSW1w
bGVtZW50YXRpb24uY2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwZjMxNDUxZmU3NDJl
YmVmNGZmYmQxNmZiMWU0YmYyNjEyYjExY2I2Li4xMGJhZGU3NDA2ZmQ1N2RiMTcyODlkNjZkZDg2
ODMwMWM3NTFhZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzMwNyw2ICszMzA3LDEwIEBA
IHNldChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vV29ya2VyR2xvCiBzZXQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVf
Q09OU1RSVUNUT1JTX0ZJTEUgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0RlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChJRExfQVRUUklCVVRFU19G
SUxFICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQpCiAK
K3NldChXRUJDT1JFX0JVSUxUSU5TCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmpzCispCisKIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9F
WElTVFMoKQogCiAjIEdlbmVyYXRlIEluc3BlY3Rvck92ZXJsYXlQYWdlLmgKQEAgLTM1MjYsNiAr
MzUzMCwxOCBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUwog
ICAgICR7U1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRX0KICAgICAke0FERElUSU9OQUxfQklO
RElOR1NfREVQRU5ERU5DSUVTfSkKIAorIyBXZWJDb3JlIEpTIEJ1aWx0aW5zCitmb3JlYWNoIChf
YnVpbHRpbmpzICR7V0VCQ09SRV9CVUlMVElOU30pCisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVu
dChfbmFtZSAke19idWlsdGluanN9IE5BTUVfV0UpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAor
ICAgICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVp
bHRpbnMuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5j
cHAKKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9n
ZW5lcmF0ZS1qcy1idWlsdGlucworICAgICAgICBERVBFTkRTICR7X2J1aWx0aW5qc30KKyAgICAg
ICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJ
Un0vZ2VuZXJhdGUtanMtYnVpbHRpbnMgLS1pbnB1dCAke19idWlsdGluanN9IC0tb3V0cHV0X2Rp
ciAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0gLS13ZWJjb3JlX2RpciAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0KKyAgICAgICAgVkVSQkFUSU0pCisgICAgQUREX1NPVVJDRV9ERVBF
TkRFTkNJRVMoJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0pTJHtfbmFtZX0uaCAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5oKQorICAgIEFERF9T
T1VSQ0VfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9KUyR7X25h
bWV9LmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5j
cHApCitlbmRmb3JlYWNoICgpCiAKIEFERF9TT1VSQ0VfV0VCQ09SRV9ERVJJVkVEX0RFUEVOREVO
Q0lFUygke1dFQkNPUkVfRElSfS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAgTWF0aE1MTmFtZXMu
Y3BwKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA5MWNjNjIyNmFhNjc3NzJj
M2JlNzgyY2U4ZWJmNDYzOGQ3MGNjNGQ1Li5lN2E5NTA0ZmRhODQwYjJiNTA1NTRiNzgyOTg0ZTlk
NmFiYzI0YjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTc4OSw2ICs3ODks
NyBAQCBhbGwgOiBcCiAgICAgJChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkg
XAogICAgICQoSlNfRE9NX0hFQURFUlMpIFwKICAgICAkKFdFQl9ET01fSEVBREVSUykgXAorICAg
ICQoV0VCQ09SRV9CVUlMVElOUykgXAogICAgIFwKICAgICBDU1NHcmFtbWFyLmNwcCBcCiAgICAg
Q1NTUHJvcGVydHlOYW1lcy5jcHAgXApAQCAtMTIzOSw2ICsxMjQwLDE2IEBAIFdlYlJlcGxheUlu
cHV0cy5oIDogJChJTlBVVF9HRU5FUkFUT1JfU1BFQ0lGSUNBVElPTlMpICQoSU5QVVRfR0VORVJB
VE9SX1NDUklQVFMpCiAKIC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIAorIyBX
ZWJDb3JlIEpTIEJ1aWx0aW5zCisKK1dFQkNPUkVfQlVJTFRJTlMgPSBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKKworYWxsIDogJChXRUJDT1JFX0JV
SUxUSU5TOiUuanM9JUJ1aWx0aW5zLmgpCisKKyVCdWlsdGlucy5oOiAlLmpzCisJJChQWVRIT04p
ICQoV2ViQ29yZSkvZ2VuZXJhdGUtanMtYnVpbHRpbnMgLS1pbnB1dCAkPCAtLXdlYmNvcmVfZGly
ICQoV2ViQ29yZSkKKwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogIyBNYWMtc3BlY2lm
aWMgcnVsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J1
aWx0aW5zL0J1aWx0aW5VdGlscy5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMv
YnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY3NDE0YjgzMDkzOGRkNmM1YTg2
YjI1YmU2ZGY2NzUyNTY4NWNjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCkBAIC0wLDAgKzEsNCBAQAor
I2lmbmRlZiBXZWJDb3JlX0ZXRF9CdWlsdGluVXRpbHNfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9C
dWlsdGluVXRpbHNfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0J1aWx0aW5VdGlscy5oPgor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNzEyZDliZjA1ODg0ZjNmNzk5OTI5ZWQ2YzE0NWYwYjNlNWUxNjk0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9G
V0RfVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGVfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9Vbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0NvbnN0cnVjdEFiaWxpdHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNGRjYWRjYzkzZmI2ZTU3OTc5NDFiMjVjZDA0ZTEyOTUwNWNiYWM0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9Db25z
dHJ1Y3RBYmlsaXR5LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0NvbnN0
cnVjdEFiaWxpdHlfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9Db25zdHJ1Y3RBYmlsaXR5X2gKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zdHJ1Y3RBYmlsaXR5Lmg+CisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCmluZGV4
IDg2M2MyNjQzMThjNTQxMjBhNzA4ODkxYTFjZGFjNTNmMDY4Y2IwZDAuLjZhYzI1OTVhYWJkNWJh
ZjY1NDhjZWJjZDhhMzJhYjAwZGE4MGQyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbApAQCAtMzYsNyArMzYsNyBAQAogICAgIFtS
YWlzZXNFeGNlcHRpb25dIFByb21pc2UgY2FuY2VsKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9u
YWwgYW55IHJlYXNvbik7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gUmVhZGFibGVTdHJlYW1SZWFk
ZXIgZ2V0UmVhZGVyKCk7CiAgICAgW0N1c3RvbV0gUHJvbWlzZSBwaXBlVG8oYW55IHN0cmVhbXMs
IGFueSBvcHRpb25zKTsKLSAgICBbQ3VzdG9tXSBPYmplY3QgcGlwZVRocm91Z2goYW55IGRlc3Qs
IGFueSBvcHRpb25zKTsKKyAgICBbSlNCdWlsdGluXSBPYmplY3QgcGlwZVRocm91Z2goYW55IGRl
c3QsIGFueSBvcHRpb25zKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGxvY2tl
ZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW0uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2M2MzJmNThkMWJkZjViOTc1ZDUyZDZjNzRkZjM3MGI3Y2FiNmNj
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbS5qcwpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
ZnVuY3Rpb24gcGlwZVRocm91Z2goc3RyZWFtcywgb3B0aW9ucykKK3sKKyAgICAidXNlIHN0cmlj
dCI7CisKKyAgICB0aGlzLnBpcGVUbyhzdHJlYW1zLndyaXRhYmxlLCBvcHRpb25zKTsKKyAgICBy
ZXR1cm4gc3RyZWFtcy5yZWFkYWJsZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKaW5kZXggMzQ4ZDE2YjJmZWJlNzk4
N2QyZGQ2NmY1Y2M4NjY1ZjVhN2MwZWU0YS4uODk1ZTAzZGE2Yjk0ZDM1MDNhM2ExNjliYzYxYmY4
NGNhMTk1M2E0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFk
YWJsZVN0cmVhbUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNS
ZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKQEAgLTUzLDEyICs1Myw2IEBAIEpTVmFsdWUgSlNSZWFk
YWJsZVN0cmVhbTo6cGlwZVRvKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gZXhlYy0+dm0o
KS50aHJvd0V4Y2VwdGlvbihleGVjLCBlcnJvcik7CiB9CiAKLUpTVmFsdWUgSlNSZWFkYWJsZVN0
cmVhbTo6cGlwZVRocm91Z2goRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgZXJyb3Ig
PSBjcmVhdGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoInBpcGVUaHJvdWdoIGlzIG5vdCBpbXBs
ZW1lbnRlZCIpKTsKLSAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBl
cnJvcik7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNDMwMmQ2
OGU1YzhjNmQ3ODdkNDcyNjI0MTRiY2ViOThkMjJlMDE5ZS4uZGU4MzNjNWI1OGY4M2I3NDVhNGVk
MzIyNGZkMGNjOGMzYzlkNGE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBXZWJDb3Jl
SlNDbGllbnREYXRhX2gKIAogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUg
IlJlYWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVR5cGVk
QXJyYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CkBAIC0zNSw3ICszNiwxMCBAQCBjbGFzcyBXZWJDb3JlSlNDbGllbnREYXRh
IDogcHVibGljIEpTQzo6Vk06OkNsaWVudERhdGEgewogICAgIGZyaWVuZCB2b2lkIGluaXROb3Jt
YWxXb3JsZENsaWVudERhdGEoSlNDOjpWTSopOwogCiBwdWJsaWM6Ci0gICAgV2ViQ29yZUpTQ2xp
ZW50RGF0YSgpCisgICAgV2ViQ29yZUpTQ2xpZW50RGF0YShKU0M6OlZNKiB2bSkKKyNpZiBFTkFC
TEUoU1RSRUFNU19BUEkpCisgICAgICAgIDogbV9yZWFkYWJsZVN0cmVhbUJ1aWx0aW5zKHZtKQor
I2VuZGlmCiAgICAgewogICAgIH0KIApAQCAtNzEsMTQgKzc1LDIxIEBAIHB1YmxpYzoKICAgICAg
ICAgbV93b3JsZFNldC5yZW1vdmUoJndvcmxkKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoU1RSRUFN
U19BUEkpCisgICAgUmVhZGFibGVTdHJlYW1CdWlsdGluc1dyYXBwZXImIHJlYWRhYmxlU3RyZWFt
QnVpbHRpbnMoKSB7IHJldHVybiBtX3JlYWRhYmxlU3RyZWFtQnVpbHRpbnM7IH0KKyNlbmRpZgog
cHJpdmF0ZToKICAgICBIYXNoU2V0PERPTVdyYXBwZXJXb3JsZCo+IG1fd29ybGRTZXQ7CiAgICAg
UmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gbV9ub3JtYWxXb3JsZDsKKworI2lmIEVOQUJMRShTVFJF
QU1TX0FQSSkKKyAgICBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciBtX3JlYWRhYmxlU3Ry
ZWFtQnVpbHRpbnM7CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIGluaXROb3JtYWxXb3JsZENs
aWVudERhdGEoSlNDOjpWTSogdm0pCiB7Ci0gICAgV2ViQ29yZUpTQ2xpZW50RGF0YSogd2ViQ29y
ZUpTQ2xpZW50RGF0YSA9IG5ldyBXZWJDb3JlSlNDbGllbnREYXRhOworICAgIFdlYkNvcmVKU0Ns
aWVudERhdGEqIHdlYkNvcmVKU0NsaWVudERhdGEgPSBuZXcgV2ViQ29yZUpTQ2xpZW50RGF0YSh2
bSk7CiAgICAgdm0tPmNsaWVudERhdGEgPSB3ZWJDb3JlSlNDbGllbnREYXRhOyAvLyB+Vk0gZGVs
ZXRlcyB0aGlzIHBvaW50ZXIuCiAgICAgd2ViQ29yZUpTQ2xpZW50RGF0YS0+bV9ub3JtYWxXb3Js
ZCA9IERPTVdyYXBwZXJXb3JsZDo6Y3JlYXRlKCp2bSwgdHJ1ZSk7CiAgICAgdm0tPm1fdHlwZWRB
cnJheUNvbnRyb2xsZXIgPSBhZG9wdFJlZihuZXcgV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVy
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCAxYjk1MTU4MWI5ODBlMmYxMWM3MTM2NzY2ODhlNmMxZDI3ZjAzZGYyLi5j
YTI0ZjdiYTg2NGUzMDFkNGQwMmZiY2ZmMzZlNTgxZjZiNjcyNDYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNTU3LDYg
KzU1NywxMSBAQCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFtZQogc3ViIEdldEZ1bmN0aW9uTmFt
ZQogewogICAgIG15ICgkY2xhc3NOYW1lLCAkZnVuY3Rpb24pID0gQF87CisKKyAgICBpZiAoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifSkgewor
ICAgICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3Qoc3Vic3RyICRjbGFzc05h
bWUsIDIpIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWUpIC4gIkNvZGVHZW5lcmF0b3IiOworICAgIH0KKwogICAgIG15ICRraW5kID0gJGZ1bmN0
aW9uLT5pc1N0YXRpYyA/ICJDb25zdHJ1Y3RvciIgOiAiUHJvdG90eXBlIjsKICAgICByZXR1cm4g
JGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAka2luZCAuICJGdW5jdGlv
biIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFt
ZSk7CiB9CkBAIC04NTQsNiArODU5LDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgQWRkQ2xh
c3NGb3J3YXJkSWZOZWVkZWQoIkpTRE9NV2luZG93U2hlbGwiKSBpZiAkaW50ZXJmYWNlTmFtZSBl
cSAiRE9NV2luZG93IjsKICAgICBBZGRDbGFzc0ZvcndhcmRJZk5lZWRlZCgiSlNEaWN0aW9uYXJ5
IikgaWYgJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUZW1wbGF0ZSgkaW50ZXJmYWNlLCAi
RXZlbnQiKTsKIAorICAgICRoZWFkZXJJbmNsdWRlc3skaW50ZXJmYWNlTmFtZSAuICJCdWlsdGlu
cy5oIn0gPSAxIGlmIFVzZUpTQnVpbHRpbnMoJGludGVyZmFjZSk7CisKICAgICBteSAkZXhwb3J0
TGFiZWwgPSBFeHBvcnRMYWJlbEZvckNsYXNzKCRjbGFzc05hbWUpOwogCiAgICAgIyBDbGFzcyBk
ZWNsYXJhdGlvbgpAQCAtMTczOCw2ICsxNzQ1LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KIAogICAgIEBpbXBsQ29udGVudCA9ICgpOwogCisgICAgcHVzaChAaW1wbENvbnRlbnQsICJc
biNpbmNsdWRlIFwiIiAuICRpbnRlcmZhY2VOYW1lIC4gIkJ1aWx0aW5zLmNwcFwiXG4iKSBpZiBV
c2VKU0J1aWx0aW5zKCRpbnRlcmZhY2UpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG51c2lu
ZyBuYW1lc3BhY2UgSlNDO1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIm5hbWVzcGFj
ZSBXZWJDb3JlIHtcblxuIik7CiAKQEAgLTE3NTIsNiArMTc2MCw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5k
ZXh9ICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID4gMTsKICAgICAgICAgICAgIG5leHQg
aWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJGb3J3YXJkRGVj
bGFyZUluSGVhZGVyIn07CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQmluZGluZyJ9OworICAgICAgICAgICAgbmV4
dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRp
biJ9OwogCiAgICAgICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAgICAg
ICAgICAgIGlmICgkbmVlZHNBcHBsZUNvcHlyaWdodCkgewpAQCAtMTkxMCwxMyArMTkxOSw3IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkZnVuY3Rpb25MZW5n
dGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkZnVuY3Rpb24pOwogICAgICAgICAgICAgcHVzaChAaGFz
aFZhbHVlMiwgJGZ1bmN0aW9uTGVuZ3RoKTsKIAotICAgICAgICAgICAgbXkgQHNwZWNpYWxzID0g
KCk7Ci0gICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSBpZiAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3BlcmF0aW9uc05vdERlbGV0YWJsZSJ9Ci0gICAg
ICAgICAgICAgICAgfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJOb3REZWxldGFibGUifTsKLSAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0i
KSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1l
cmFibGUifTsKLSAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiSlNDOjpGdW5jdGlvbiIpOwot
ICAgICAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBA
c3BlY2lhbHMpIDogIjAiOwotICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAkc3BlY2lh
bCk7CisgICAgICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsIENvbXB1dGVGdW5jdGlvblNwZWNp
YWwoJGludGVyZmFjZSwgJGZ1bmN0aW9uKSk7CiAKICAgICAgICAgICAgIG15ICRjb25kaXRpb25h
bCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9u
YWwifTsKICAgICAgICAgICAgIGlmICgkY29uZGl0aW9uYWwpIHsKQEAgLTE5ODcsMTMgKzE5OTAs
NyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBteSAkZnVuY3Rpb25MZW5n
dGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkZnVuY3Rpb24pOwogICAgICAgICBwdXNoKEBoYXNoVmFs
dWUyLCAkZnVuY3Rpb25MZW5ndGgpOwogCi0gICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwotICAg
ICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiT3BlcmF0aW9uc05vdERlbGV0YWJsZSJ9Ci0gICAgICAgICAgICB8fCAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdERlbGV0YWJsZSJ9
OwotICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3RFbnVtZXJhYmxlIn07Ci0gICAgICAgIHB1
c2goQHNwZWNpYWxzLCAiSlNDOjpGdW5jdGlvbiIpOwotICAgICAgICBteSAkc3BlY2lhbCA9IChA
c3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7Ci0gICAgICAgIHB1
c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOworICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMs
IENvbXB1dGVGdW5jdGlvblNwZWNpYWwoJGludGVyZmFjZSwgJGZ1bmN0aW9uKSk7CiAKICAgICAg
ICAgbXkgJGNvbmRpdGlvbmFsID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDb25kaXRpb25hbCJ9OwogICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7CkBAIC0y
Nzc0LDYgKzI3NzEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBteSAk
aW5BcHBsZUNvcHlyaWdodCA9IDA7CiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRp
bnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21CaW5kaW5nIn07CisgICAgICAg
ICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNCdWlsdGluIn07CiAgICAgICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsK
ICAgICAgICAgICAgIGlmICgkbmVlZHNBcHBsZUNvcHlyaWdodCkgewogICAgICAgICAgICAgICAg
IGlmICghJGluQXBwbGVDb3B5cmlnaHQpIHsKQEAgLTQyMTMsNiArNDIxMSw4IEBAIHN1YiBHZW5l
cmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkKICAgICAgICAgCiAgICAgICAgIGlmICgiQCRzcGVjaWFs
c1skaV0iID1+IG0vRnVuY3Rpb24vKSB7CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0g
InN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPiI7CisgICAgICAgIH0gZWxzaWYgKCJAJHNwZWNp
YWxzWyRpXSIgPX4gbS9CdWlsdGluLykgeworICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9
ICJzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9yPiI7CiAgICAgICAgIH0gZWxzaWYgKCJAJHNw
ZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVnZXIvKSB7CiAgICAgICAgICAgICAkZmlyc3RU
YXJnZXRUeXBlID0gIiI7CiAgICAgICAgIH0gZWxzZSB7CkBAIC00OTYyLDQgKzQ5NjIsMzMgQEAg
c3ViIEhlYWRlck5lZWRzUHJvdG90eXBlRGVjbGFyYXRpb24KICAgICByZXR1cm4gSXNET01HbG9i
YWxPYmplY3QoJGludGVyZmFjZSkgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTQ3VzdG9tTmFtZWRHZXR0ZXJPblByb3RvdHlwZSJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJKU0N1c3RvbURlZmluZU93blByb3BlcnR5T25Qcm90b3R5cGUifTsKIH0K
IAorc3ViIENvbXB1dGVGdW5jdGlvblNwZWNpYWwKK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hp
ZnQ7CisgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7CisKKyAgICBteSBAc3BlY2lhbHMgPSAoKTsK
KyAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiT3BlcmF0aW9uc05vdERlbGV0YWJsZSJ9CisgICAgICAgIHx8ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RGVsZXRhYmxlIn07Cisg
ICAgcHVzaChAc3BlY2lhbHMsICJEb250RW51bSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVyYWJsZSJ9OworICAgIGlmICgkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAg
IHB1c2goQHNwZWNpYWxzLCAiSlNDOjpCdWlsdGluIik7CisgICAgfQorICAgIGVsc2UgeworICAg
ICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6RnVuY3Rpb24iKTsKKyAgICB9CisgICAgcmV0dXJu
IChAc3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7Cit9CisKK3N1
YiBVc2VKU0J1aWx0aW5zCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIGZvcmVh
Y2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgaWYg
KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0p
IHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAw
Cit9CisKIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRy
aWJ1dGVzLnR4dAppbmRleCBlODEyZGEzMDNkMjJmZTE1YmE5ZTNiNjYwMjk1N2E5NDk1ZmVlYmM4
Li4xZjcyNDVkMThkNTg4MjkyNmE2ZjQzMWU3YTgxYjU0OTU5Y2QzYmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTc0LDYg
Kzc0LDcgQEAgSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IKIEludGVyZmFjZU5hbWU9Kgog
SXNJbmRleAogSXNXZWFrQ2FsbGJhY2sKK0pTQnVpbHRpbgogSlNDdXN0b21EZWZpbmVPd25Qcm9w
ZXJ0eQogSlNDdXN0b21EZWZpbmVPd25Qcm9wZXJ0eU9uUHJvdG90eXBlCiBKU0N1c3RvbUZpbmFs
aXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCmluZGV4IGE1MGMzY2M3ZTBmNWNh
NDljZDFjNTk0NWU4OWQyNzM5NWE3YmE4MGMuLmUxOWQzNTE2YzVmYTFmYzYyMGI3ZjUwYTM4YTM5
ZGM4MDFiZTUyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0xMTc1
LDYgKzExNzUsMjYgQEAgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2V4Y2Vw
dGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBHRXJyb3IqKgogICAgIH0KIH0KIAordm9pZCB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihzZWxmKSk7CisgICAgV2ViQ29y
ZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5qc0J1aWx0
aW5NZXRob2QoKTsKK30KKwordm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0
aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25z
dCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19URVNUX09CSihzZWxmKSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChzdHJBcmcp
OworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihvYmpBcmcpKTsK
KyAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdU
Rjo6U3RyaW5nIGNvbnZlcnRlZFN0ckFyZyA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChzdHJBcmcp
OworICAgIFdlYkNvcmU6OlRlc3RPYmoqIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShv
YmpBcmcpOworICAgIGl0ZW0tPmpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZl
cnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKK30KKwogdm9pZCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3dpdGhfc2NyaXB0X3N0YXRlX3ZvaWQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0T2JqLmgKaW5kZXggYWI4NWY5OGExN2M4YjUxNjgyMDgyYmE3YzRkODhhMWEyN2E2ZDI3
Ni4uNDdiZWMxM2VmZWEwZTk4NzE5M2I4NGJiNDE3YjQ5ZTU0Njg0NDU4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RPYmouaApAQCAtMjkxLDYgKzI5MSwyNyBAQCBXRUJLSVRfQVBJIHZvaWQK
IHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2pzX2J1aWx0aW5fbWV0aG9kOgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqCisg
KiBTdGFiaWxpdHk6IFVuc3RhYmxlCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90
ZXN0X29ial9qc19idWlsdGluX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKKworLyoq
CisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kX3dpdGhfYXJnczoKKyAq
IEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKKyAqIEBz
dHJBcmc6IEEgI2djaGFyCisgKiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgorICog
U3RhYmlsaXR5OiBVbnN0YWJsZQorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVz
dF9vYmpfanNfYnVpbHRpbl9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9i
akFyZyk7CisKKy8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial93aXRoX3NjcmlwdF9zdGF0ZV92
b2lkOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDJl
MTBmNTMwYjdiNGJhNjRiODQ5MjViYzQ3YjQ0YzY2MWU2NmI0MzguLmMxMDBkMzRlYjU2NTY0N2Nk
Zjk3NmQ3OTM2MzBkMWZlMzgyYmJhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC03Miw2ICs3Miw4IEBACiAj
aW5jbHVkZSAiSlNUZXN0T2JqZWN0Qy5oIgogI2VuZGlmCiAKKyNpbmNsdWRlICJUZXN0T2JqQnVp
bHRpbnMuY3BwIgorCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC02MDUsNiArNjA3LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9i
alByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgImN1c3RvbU1ldGhvZFdpdGhBcmdzIiwg
SlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdz
KSwgKGludHB0cl90KSAoMykgfSB9LAogICAgIHsgImN1c3RvbUJpbmRpbmdNZXRob2QiLCBKU0M6
OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZCksIChp
bnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJjdXN0b21CaW5kaW5nTWV0aG9kV2l0aEFyZ3MiLCBK
U0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZFdp
dGhBcmdzKSwgKGludHB0cl90KSAoMykgfSB9LAorICAgIHsgImpzQnVpbHRpbk1ldGhvZCIsIEpT
Qzo6QnVpbHRpbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5H
ZW5lcmF0b3I+KHRlc3RPYmpKc0J1aWx0aW5NZXRob2RDb2RlR2VuZXJhdG9yKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgImpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzIiwgSlNDOjpCdWlsdGlu
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4o
dGVzdE9iakpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkg
KDMpIH0gfSwKICAgICB7ICJhZGRFdmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpLCAoaW50cHRyX3QpICgyKSB9IH0sCiAg
ICAgeyAicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKSwgKGludHB0cl90KSAoMikgfSB9LAogICAgIHsg
IndpdGhTY3JpcHRTdGF0ZVZvaWQiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aFNjcmlwdFN0YXRlVm9pZCksIChpbnRwdHJfdCkgKDApIH0gfSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA3
NzRjNzE0OWFkNWVmMmIyNWMyMjAwMDZiMDEzYWRkMzdlZDk1Y2E1Li4wMGEzYTAxODYzMDFlZDAz
MWMwOWNhMmNmMWNkYTI1NzZlNTgwNDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNp
bmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCisjaW5jbHVkZSAi
VGVzdE9iakJ1aWx0aW5zLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCAzMDJkMmM1M2I3MWVlNDY4NzhmMzEy
M2U5NzY0NWMxMzNjZjFkNDJhLi5hOTI2NGYxNDk2MjM0NjU4NGE3YWYyYWYwNzY0YTcyOTUyZGFj
MmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdE9iai5oCkBAIC0xMzgsNiArMTM4LDggQEAgV0VCQ09SRV9FWFBPUlQgQGlu
dGVyZmFjZSBET01UZXN0T2JqIDogRE9NT2JqZWN0CiAtICh2b2lkKW1ldGhvZFdpdGhFeGNlcHRp
b247CiAtICh2b2lkKWN1c3RvbU1ldGhvZDsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6
KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2Jq
ICopb2JqQXJnOworLSAodm9pZClqc0J1aWx0aW5NZXRob2Q7CistICh2b2lkKWpzQnVpbHRpbk1l
dGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFy
ZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJp
bmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2Fw
dHVyZTooQk9PTCl1c2VDYXB0dXJlOwogLSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVyOihOU1N0
cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VD
YXB0dXJlOihCT09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXdpdGhTY3JpcHRTdGF0ZVZvaWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdE9iai5tbQppbmRleCA1YjgzMzlmNjM3ZTBhMWI5NGQwZjE0MjAyMDYxNzg0ZDI1Nzg0ODhk
Li41Zjc1NTE1NTIzOTQ2NmJkMzFkMjM5ODY2MDFiOTViNzVhNDQzM2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
bW0KQEAgLTkxMSw2ICs5MTEsMTggQEAKICAgICBJTVBMLT5jdXN0b21NZXRob2RXaXRoQXJncyhs
b25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKKy0gKHZvaWQpanNCdWlsdGluTWV0
aG9kCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElN
UEwtPmpzQnVpbHRpbk1ldGhvZCgpOworfQorCistICh2b2lkKWpzQnVpbHRpbk1ldGhvZFdpdGhB
cmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5qc0J1aWx0aW5NZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNv
cmUob2JqQXJnKSk7Cit9CisKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0
eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZToo
Qk9PTCl1c2VDYXB0dXJlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsCmluZGV4IGQwMzdlYzRmYjkxZjhhYWZjYzcwZmM2Yzg1ZDJkODc2N2M5NGI4ZjIuLjljMWRi
NTdjZTAzNmQxYjQxMjBkZTNjZjY1ZGNlMWMxODhlNzE1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTExMyw2ICsxMTMsMTAg
QEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUy
IiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogICAgIFtDdXN0b21CaW5kaW5nXSB2b2lkIGN1c3RvbUJp
bmRpbmdNZXRob2QoKTsKICAgICBbQ3VzdG9tQmluZGluZ10gdm9pZCBjdXN0b21CaW5kaW5nTWV0
aG9kV2l0aEFyZ3MobG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFy
Zyk7CiAKKyAgICAvLyAnSlNCdWlsdGluJyBleHRlbmRlZCBhdHRyaWJ1dGUKKyAgICBbSlNCdWls
dGluXSB2b2lkIGpzQnVpbHRpbk1ldGhvZCgpOworICAgIFtKU0J1aWx0aW5dIHZvaWQganNCdWls
dGluTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2Jq
IG9iakFyZyk7CisKICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2
ZW50TGlzdGVuZXIgbGlzdGVuZXIsIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAg
dm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxp
c3RlbmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgb25mb287CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZS1qcy1i
dWlsdGlucyBiL1NvdXJjZS9XZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ1NjhhNDhkNjI4N2RiNGU2MDE3NTVhNjVjNTRiNjBkMDY0YmQxN2IKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpAQCAtMCwwICsxLDE0MSBA
QAorIyEvdXNyL2Jpbi9weXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorIyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworaW1wb3J0IGFyZ3BhcnNlCitp
bXBvcnQgZmlsZWNtcAoraW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2VzcworCitmcm9tIHN0cmlu
ZyBpbXBvcnQgVGVtcGxhdGUKKworCitwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigp
CitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW91dHB1dF9kaXInLCBkZWZhdWx0PScnLCBoZWxwPSdv
dXRwdXQgZGlyZWN0b3J5JykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0taW5wdXQnLCBoZWxwPSdw
YXRoIHRvIGlucHV0IEpTIGZpbGUnKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLS13ZWJjb3JlX2Rp
cicsIGhlbHA9J3BhdGggdG8gV2ViQ29yZSBkaXJlY3RvcnknKQorCithcmdzID0gcGFyc2VyLnBh
cnNlX2FyZ3MoKQorZmlsZW5hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUo
YXJncy5pbnB1dCkpWzBdCisKKyMgZ2VuZXJhdGUgSlMgYnVpbHRpbnMKK25hbWVzcGFjZSA9ICJX
ZWJDb3JlIgorcHJlZml4ID0gIldFQkNPUkUiICsgZmlsZW5hbWUudXBwZXIoKQorb3V0cHV0ID0g
b3MucGF0aC5qb2luKGFyZ3Mub3V0cHV0X2RpciwgZmlsZW5hbWUgKyAiQnVpbHRpbnMiKQoranNj
X2dlbmVyYXRlX2J1aWx0aW5fc2NyaXB0ID0gb3MucGF0aC5qb2luKGFyZ3Mud2ViY29yZV9kaXIs
ICIuLiIsICJKYXZhU2NyaXB0Q29yZSIsICJnZW5lcmF0ZS1qcy1idWlsdGlucyIpCisKK3N1YnBy
b2Nlc3MuY2FsbChbInB5dGhvbiIsIGpzY19nZW5lcmF0ZV9idWlsdGluX3NjcmlwdCwgIi0tb3V0
cHV0Iiwgb3V0cHV0LCAiLS1uYW1lc3BhY2UiLCBuYW1lc3BhY2UsICItLXByZWZpeCIsIHByZWZp
eCwgYXJncy5pbnB1dF0sIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKKworIyBnZW5lcmF0ZSBK
UyBidWlsdGlucyB3cmFwcGVyCitvdXRwdXRfYmFzZSA9IG91dHB1dCArICJXcmFwcGVyIgorCiti
dWlsdGluc1dyYXBwZXJIZWFkZXIgPSBvcGVuKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsICJ3IikK
KworYnVpbHRpbnNXcmFwcGVySGVhZGVyLndyaXRlKFRlbXBsYXRlKAorIiIiCisvKiBHZW5lcmF0
ZWQgYnkgZ2VuZXJhdGUtanMtYnVpbHRpbnMgZG8gbm90IGhhbmQgZWRpdC4gKi8KKworLyoKKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICog
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv
biwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgJHtGaWxlbmFtZX1CdWlsdGlu
c1dyYXBwZXJfaAorI2RlZmluZSAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcl9oCisKKyNpbmNs
dWRlICIke0ZpbGVuYW1lfUJ1aWx0aW5zLmgiCisjaW5jbHVkZSA8Ynl0ZWNvZGUvVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUuaD4KKyNpbmNsdWRlIDxidWlsdGlucy9CdWlsdGluVXRpbHMuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlciA6IHByaXZhdGUgSlNDOjpXZWFrSGFu
ZGxlT3duZXIKK3sKK3B1YmxpYzoKKyAgICBleHBsaWNpdCAke0ZpbGVuYW1lfUJ1aWx0aW5zV3Jh
cHBlcihKU0M6OlZNKiB2bSkKKyAgICAgICAgOiBtX3ZtKCp2bSkKKyAgICAgICAgJHtQcmVmaXh9
X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUykK
KyNkZWZpbmUgSU5JVElBTElaRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9u
TmFtZSwgbGVuZ3RoKSAsIG1fIyNuYW1lIyNTb3VyY2UoSlNDOjptYWtlU291cmNlKFN0cmluZ0lt
cGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfIyNuYW1lLCBsZW5ndGgpKSkKKyAgICAgICAgJHtQcmVm
aXh9X0ZPUkVBQ0hfQlVJTFRJTihJTklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMpCisj
dW5kZWYgSU5JVElBTElaRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTCisgICAgeworICAgIH0KKwor
I2RlZmluZSBFWFBPU0VfQlVJTFRJTl9FWEVDVVRBQkxFUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxl
bmd0aCkgXFwKKyAgICBKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBuYW1lIyNFeGVj
dXRhYmxlKCk7IFxcCisgICAgY29uc3QgSlNDOjpTb3VyY2VDb2RlJiBuYW1lIyNTb3VyY2UoKSBj
b25zdCB7IHJldHVybiBtXyMjbmFtZSMjU291cmNlOyB9CisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hf
QlVJTFRJTihFWFBPU0VfQlVJTFRJTl9FWEVDVVRBQkxFUykKKyN1bmRlZiBFWFBPU0VfQlVJTFRJ
Tl9FWEVDVVRBQkxFUworCisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9O
QU1FKERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKQorCitwcml2YXRlOgorICAg
IEpTQzo6Vk0mIG1fdm07CisKKyAgICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9O
X05BTUUoREVDTEFSRV9CVUlMVElOX05BTUVTKQorCisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9T
T1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgXFwKKyAgICBKU0M6OlNv
dXJjZUNvZGUgbV8jI25hbWUjI1NvdXJjZTtcXAorICAgIEpTQzo6V2VhazxKU0M6OlVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlPiBtXyMjbmFtZSMjRXhlY3V0YWJsZTsKKyAgICAke1ByZWZpeH1f
Rk9SRUFDSF9CVUlMVElOKERFQ0xBUkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUykKKyN1bmRlZiBE
RUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMKKworfTsKKworI2RlZmluZSBERUZJTkVfQlVJ
TFRJTl9FWEVDVVRBQkxFUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgXFwKK2lubGluZSBK
U0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBl
cjo6bmFtZSMjRXhlY3V0YWJsZSgpIFxcCit7XFwKKyAgICBpZiAoIW1fIyNuYW1lIyNFeGVjdXRh
YmxlKVxcCisgICAgICAgIG1fIyNuYW1lIyNFeGVjdXRhYmxlID0gSlNDOjpXZWFrPEpTQzo6VW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU+KEpTQzo6Y3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUobV92
bSwgbV8jI25hbWUjI1NvdXJjZSwgZnVuY3Rpb25OYW1lIyNQdWJsaWNOYW1lKCksIHNfIyNuYW1l
IyNDb25zdHJ1Y3RBYmlsaXR5KSwgdGhpcywgJm1fIyNuYW1lIyNFeGVjdXRhYmxlKTtcXAorICAg
IHJldHVybiBtXyMjbmFtZSMjRXhlY3V0YWJsZS5nZXQoKTtcXAorfQorJHtQcmVmaXh9X0ZPUkVB
Q0hfQlVJTFRJTihERUZJTkVfQlVJTFRJTl9FWEVDVVRBQkxFUykKKyN1bmRlZiBERUZJTkVfQlVJ
TFRJTl9FWEVDVVRBQkxFUworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAk
e0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcl9oCisiIiIpLnN1YnN0aXR1dGUoZGljdChGaWxlbmFt
ZT1maWxlbmFtZSwgUHJlZml4PXByZWZpeCkpKQorCitidWlsdGluc1dyYXBwZXJIZWFkZXIuY2xv
c2UoKQorCitpZiAobm90IG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpIG9yIChu
b3QgZmlsZWNtcC5jbXAob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgi
LCBzaGFsbG93PUZhbHNlKSk6CisgICAgaWYgKG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsg
Ii5oIikpOgorICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmgiKQorICAgIG9zLnJl
bmFtZShvdXRwdXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFzZSArICIuaCIpCitlbHNlOgor
ICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuaC50bXAiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM3MDE0MmM1ZGQ1
YmNlN2E0MTcyZDBkYmM5MTYxYjc0M2ZjOTNlYmEuLjQxYzRjYmYyYjA2ZDQ0ZGU2N2I1ZDc4NmU3
MDFhNTFjNjQ3Mzc3MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wOS0wOSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1z
IEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3RyZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VkIHRlc3QgdGhhdCBpcyBu
b3cgcGFzc2luZy4KKyAgICAgICAgQWRkaW5nIG5ldyB0ZXN0cyB0byBpbXByb3ZlIHBpcGVUaHJv
dWdoIGNvdmVyYWdlLgorCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRo
cm91Z2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0
cmVhbS1waXBlVGhyb3VnaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5j
ZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA5LTA5
ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIG1p
bi13aWR0aC9oZWlnaHQgc2hvdWxkIGRlZmF1bHQgdG8gYXV0byBmb3IgZ3JpZCBpdGVtcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRo
cm91Z2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZTA2MWNhOTA2ZDQyMGYxNWYxM2Q3YjQ1
MTBjZjUzZWNkMjM2ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3Jl
YWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisK
K1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3
aGVuICJ0aGlzIiBoYXMgbm8gcGlwZVRvIG1ldGhvZCAKK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJv
dG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIHBhc3NlZCBhcmd1bWVudCBpcyBu
b3QgYW4gb2JqZWN0IAorUEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2gg
c2hvdWxkIHRocm93IHdoZW4gY2FsbGVkIGdldHRlcnMgYXJlIHRocm93aW5nIAorUEFTUyBSZWFk
YWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHdvcmsgd2l0aCBtaXNzaW5n
IHBhcmFtZXRlcnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUt
c3RyZWFtLXBpcGVUaHJvdWdoLmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0
cmVhbS1waXBlVGhyb3VnaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiOWE2OGIzMmJjNGI3YmJlZmZiOGNk
NTc2NzQzN2I3YTVjNGE4NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1z
L3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvZ2MuanMnPjwvc2NyaXB0PgorPHNj
cmlwdD4KKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgaW5wdXQgPSB7CisgICAgICAgIHJl
YWRhYmxlOiB7IH0sCisgICAgICAgIHdyaXRhYmxlOiB7IH0KKyAgICB9OworICAgIHZhciBvcHRp
b25zID0geyB9OworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigp
IHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodW5kZWZpbmVkLCBp
bnB1dCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBm
dW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwobnVs
bCwgaW5wdXQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3Io
KSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxs
KDEsIGlucHV0LCBvcHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
KCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2Fs
bCh7ICJwaXBlVG8iOiAidGVzdCIgfSwgaW5wdXQsIG9wdGlvbnMpOyB9KTsKK30sICdSZWFkYWJs
ZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHRocm93IHdoZW4gInRoaXMiIGhh
cyBubyBwaXBlVG8gbWV0aG9kJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9wdGlv
bnMgPSB7IH07CisgICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoKTsKKyAgICAgICAgfQorICAgIH07
CisKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRh
YmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgbnVsbCwgb3B0
aW9ucyk7IH0pOworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigp
IHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB1
bmRlZmluZWQsIG9wdGlvbnMpOyB9KTsKK30sICdSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlw
ZVRocm91Z2ggc2hvdWxkIHRocm93IHdoZW4gcGFzc2VkIGFyZ3VtZW50IGlzIG5vdCBhbiBvYmpl
Y3QnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgb3B0aW9ucyA9IHsgfTsKKyAgICB2
YXIgZXJyb3IgPSBuZXcgVHlwZUVycm9yKCJwb3RhdG8iKTsKKworICAgIHZhciB0aGlzV3JvbmdW
YWx1ZSA9IHsKKyAgICAgICAgZ2V0IHBpcGVUbygpIHsKKyAgICAgICAgICAgIHRocm93IGVycm9y
OworICAgICAgICB9CisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzKGVycm9yLCBmdW5jdGlvbigp
IHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1dyb25nVmFs
dWUsIHsgcmVhZGFibGU6IHsgfSwgd3JpdGFibGU6IHsgfSB9LCBvcHRpb25zKTsgfSk7CisKKyAg
ICB2YXIgdGhpc1ZhbHVlID0geworICAgICAgICBwaXBlVG86IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgpOworICAgICAgICB9CisgICAgfTsKKyAgICB2YXIgd3Jv
bmdJbnB1dCA9IHsKKyAgICAgICAgcmVhZGFibGU6IHsgfSwKKyAgICAgICAgZ2V0IHdyaXRhYmxl
KCkgeworICAgICAgICAgICAgdGhyb3cgZXJyb3I7CisgICAgICAgIH0KKyAgICB9OworICAgIGFz
c2VydF90aHJvd3MoZXJyb3IsIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUu
cGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIHdyb25nSW5wdXQsIG9wdGlvbnMpOyB9KTsKKwor
ICAgIHZhciB3cm9uZ0lucHV0MiA9IHsKKyAgICAgICAgZ2V0IHJlYWRhYmxlKCkgeworICAgICAg
ICAgICAgdGhyb3cgZXJyb3I7CisgICAgICAgIH0sCisgICAgICAgIHdyaXRhYmxlOiB7IH0KKyAg
ICB9OworICAgIHZhciB0aGlzVmFsdWUyID0geworICAgICAgICBwaXBlVG86IGZ1bmN0aW9uKCkg
eyB9CisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzKGVycm9yLCBmdW5jdGlvbigpIHsgUmVhZGFi
bGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlMiwgd3JvbmdJbnB1
dDIsIG9wdGlvbnMpOyB9KTsKK30sICdSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2ggc2hvdWxkIHRocm93IHdoZW4gY2FsbGVkIGdldHRlcnMgYXJlIHRocm93aW5nJyk7CisKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgdGhpc1ZhbHVlID0g
eworICAgICAgICBwaXBlVG86IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgKytjb3VudDsKKyAg
ICAgICAgfQorICAgIH07CisKKyAgICBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2guY2FsbCh0aGlzVmFsdWUsIHsgcmVhZGFibGU6IHsgfSwgd3JpdGFibGU6IHsgfSB9KTsKKyAg
ICBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIHsg
cmVhZGFibGU6IHsgfSB9LCB7IH0pOworICAgIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBl
VGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgeyB3cml0YWJsZTogeyB9IH0sIHsgfSk7CisKKyAgICBh
c3NlcnRfZXF1YWxzKGNvdW50LCAzKTsKK30sICdSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlw
ZVRocm91Z2ggc2hvdWxkIHdvcmsgd2l0aCBtaXNzaW5nIHBhcmFtZXRlcnMnKTsKKworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZl
cmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dAppbmRleCAzNzM1
NzdlYjk4MjFkMjA3NTRkZTg3NzFhNjBmYWU1MjM4YzliNWY2Li5iMTk3ZDE2NTdiMTBmNzAwMzRm
MmMyYTY0NjE2ZjViYzJmZjI1ZmQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3Jl
ZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIFBBU1MgQ2FuIGdldCB0aGUgUmVhZGFibGVT
dHJlYW1SZWFkZXIgY29uc3RydWN0b3IgaW5kaXJlY3RseSAKIFBBU1MgQ2FuIGdldCB0aGUgUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyIGNvbnN0cnVjdG9yIGluZGlyZWN0bHkgCi1GQUlMIFJlYWRh
YmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCB3b3JrcyBnZW5lcmljYWxseSBvbiBpdHMg
dGhpcyBhbmQgaXRzIGFyZ3VtZW50cyBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtLnBpcGVU
aHJvdWdoIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbQorUEFTUyBSZWFkYWJsZVN0cmVh
bS5wcm90b3R5cGUucGlwZVRocm91Z2ggd29ya3MgZ2VuZXJpY2FsbHkgb24gaXRzIHRoaXMgYW5k
IGl0cyBhcmd1bWVudHMgCiBQQVNTIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGVuZm9yY2VzIGEgYnJh
bmQgY2hlY2sgb24gaXRzIGFyZ3VtZW50IAogRkFJTCBSZWFkYWJsZVN0cmVhbVJlYWRlci5wcm90
b3R5cGUuY2xvc2VkIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBn
ZXR0ZXJOYW1lKS5nZXQnKQogUEFTUyBSZWFkYWJsZVN0cmVhbVJlYWRlci5wcm90b3R5cGUuY2Fu
Y2VsIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261387</attachid>
            <date>2015-09-17 06:00:04 -0700</date>
            <delta_ts>2015-09-19 03:37:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-147556-20150917145950.patch</filename>
            <type>text/plain</type>
            <size>66137</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZmZiNDljMTE3NGJkNTA1OWNlZDM2YmNjODExNmFiYWYyYjQ1MTkyLi40ZmI2MjcwM2Q3NGRkNTJh
OGMwYjA4M2Y5NmViZTEwMjRlZTYyNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNhYmxl
IGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGluTmFt
ZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVzLgor
ICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRpbmcg
YnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1dGFi
bGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhl
Y3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
QnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJu
YWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6OkJ1
aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6
IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFibGVz
LmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6Cisg
ICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0xNiAgU3Vrb2xzYWsg
U2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgaW5k
aXJlY3QgY2FsbHMgaW4gV2ViQXNzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjhiNDZiN2Y1MjY5N2Ix
ZWJhNDdiZjBmOTdhZWQ2NWM2OGE5NWUzLi5iMzg0NjRjZGE5OTE1Y2EzNmRiNzQ1ZmYzMjdhNDg3
Mjc4ZjVhNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTUtMDktMDkgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFt
cyBBUEldIEltcGxlbWVudCBSZWFkYWJsZVN0cmVhbSBwaXBlVGhyb3VnaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NTU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkaW5nIGluaXRpYWwgc3VwcG9ydCBm
b3IgSlMgYnVpbHRpbnMgd2l0aGluIFdlYkNvcmUuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxsb3dz
IGltcGxlbWVudGluZyBJREwgaW50ZXJmYWNlIG1ldGhvZHMgaW4gSlMsIGJ5IHVzaW5nIHRoZSBu
ZXcgSlNCdWlsdGluIGtleXdvcmQuCisgICAgICAgIChObyBzdXBwb3J0IHlldCBmb3IgcHJpdmF0
ZSBpZGVudGlmaWVycywgY29uc3RydWN0b3JzIG9yIGFjY2Vzc29ycykuCisgICAgICAgIEludGVn
cmF0aW9uIG9mIHRoZSBidWlsdC1pbiBleGVjdXRhYmxlcyBhbmQgbmFtZXMgaXMgaW1wbGVtZW50
ZWQgd2l0aGluIFdlYkNvcmVKU0NsaWVudERhdGEuCisgICAgICAgIFR3byBmaWxlcyBhcmUgZ2Vu
ZXJhdGVkIGZvciBlYWNoIEpTIGJ1aWx0aW4gZmlsZToKKyAgICAgICAgLSBidWlsdGluIGgvY3Bw
IGZpbGVzIHNpbWlsYXIgdG8gSlNDQnVpbHRpbnMuY3BwLy5oLCBnZW5lcmF0ZWQgdGhyb3VnaCBX
ZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIGZyb20gSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUt
anMtYnVpbHRpbnMpCisgICAgICAgIC0gQSBidWlsdGluIHdyYXBwZXIgZmlsZSBtaW1pY2tpbmcg
QnVpbHRpbkV4ZWN1dGFibGVzIChnZW5lcmF0ZWQgZnJvbSBXZWJDb3JlL2dlbmVyYXRlLWpzLWJ1
aWx0aW5zKQorICAgICAgICBDb250cmFyeSB0byBKU0MsIGVhY2gganMgZmlsZSBpcyBnZW5lcmF0
aW5nIGl0cyBvd24gY3BwL2ggZmlsZS4KKyAgICAgICAgVGhpcyBhbGxvd3MgaW5jbHVkaW5nIHRo
b3NlIGZpbGVzIHdpdGhpbiB0aGUgSlNYWC5jcHAvLmggZmlsZXMgZ2VuZXJhdGVkIGZyb20gdGhl
IElETCB3aGVyZSBjb21waWxhdGlvbiBndWFyZCBtYXkgdGFrZSBlZmZlY3QuCisKKyAgICAgICAg
VGVzdDogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbAorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IFRyaWdnZXJpbmcgZ2VuZXJhdGUtanMtYnVpbHRpbnMgZm9yIEpT
IGZpbGVzLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAq
IEZvcndhcmRpbmdIZWFkZXJzL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0NvbnN0cnVj
dEFiaWxpdHkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtLmlkbDogTWFya2luZyBwaXBlVGhyb3VnaCBhcyBKUyBidWlsdGluCisgICAgICAgICogTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzOiBBZGRlZC4KKyAgICAgICAgKHBpcGVUaHJv
dWdoKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmg6IEFkZGluZyBSZWFk
YWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciB0byBzdG9yZSBSZWFkYWJsZVN0cmVhbSBidWlsdGlu
IGV4ZWN1dGFibGUKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVKU0NsaWVudERhdGE6OldlYkNv
cmVKU0NsaWVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUpTQ2xpZW50RGF0YTo6
cmVhZGFibGVTdHJlYW1CdWlsdGlucyk6CisgICAgICAgIChXZWJDb3JlOjppbml0Tm9ybWFsV29y
bGRDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbTogQWRkaW5nIHN1cHBvcnQgZm9yIEpTQnVpbHRpbiBrZXl3b3JkLgorICAgICAgICAoR2V0
RnVuY3Rpb25OYW1lKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVy
YXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5
KToKKyAgICAgICAgKENvbXB1dGVGdW5jdGlvblNwZWNpYWwpOgorICAgICAgICAoVXNlSlNCdWls
dGlucyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDogQWRk
aW5nIEpTQnVpbHRpbi4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9X
ZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfanNfYnVp
bHRpbl9tZXRob2QpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9qc19idWlsdGluX21l
dGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06Cisg
ICAgICAgICgtW0RPTVRlc3RPYmoganNCdWlsdGluTWV0aG9kXSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmoganNCdWlsdGluTWV0aG9kV2l0aEFyZ3M6c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogZ2VuZXJhdGUt
anMtYnVpbHRpbnM6IEFkZGVkLgorCiAyMDE1LTA5LTE3ICBKYXZpZXIgRmVybmFuZGV6ICA8amZl
cm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFJlbGF5b3V0
IHdoZW5ldmVyIEJveCBBbGlnbm1lbnQgcHJvcGVydGllcyBjaGFuZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYWMyZWE0YjhjZmFhMDcxZjQ5NWMyMzEwZjRmYzA2MjE4OTY5YmZk
Zi4uNDgxYzU0NDg2ODNmZDI3NGI3ZDdjMjg2NDY2N2I2NGQ0ZThlYTdlNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTk0Nyw2ICs5NDcsNyBAQAogCQkyQUY3MzgyRDE4QkJCRjky
MDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkFGNzM4MkIxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVjdHVy
ZUlEVGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkzNzFEODQyRDE3Qzk4QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MUQ4NDJDMTdDOThCNkUwMEVD
Rjk5NCAvKiBsaWJ6LmR5bGliICovOyB9OwogCQk0MTM1OUNGMzBGREQ4OUFEMDAyMDYxODAgLyog
RGF0ZUNvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQyMTIwMjI5MEFENDMxMEMwMEVENzlCNiAvKiBEYXRlQ29udmVyc2lvbi5oICovOyB9
OworCQk0MURFQTEzMjFCOUYzMTYzMDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFQTEzMTFCOUYzMTU0MDA2
RDY1REQgLyogQnVpbHRpblV0aWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDM0MEE0ODQxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM0MEE0
ODIxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uY3BwICovOyB9OwogCQk0MzQwQTQ4NTFB
OTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDM0MEE0ODMxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21t
b24uaCAqLzsgfTsKIAkJNDQ0M0FFMzMxNkUxODhEOTAwNzZGMTEwIC8qIEZvdW5kYXRpb24uZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFGMEVCNjEwNUM4NkM2QjAwRTZERjFCIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwpA
QCAtMjc0NSw2ICsyNzQ2LDcgQEAKIAkJMkFGNzM4MkExOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVj
dHVyZUlEVGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Ry
dWN0dXJlSURUYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJBRjczODJC
MThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZUlEVGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1v
LmR5bGliIjsgbmFtZSA9IGxpYnouZHlsaWI7IHBhdGggPSB1c3IvbGliL2xpYnouZHlsaWI7IHNv
dXJjZVRyZWUgPSBTREtST09UOyB9OworCQk0MURFQTEzMTFCOUYzMTU0MDA2RDY1REQgLyogQnVp
bHRpblV0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ1aWx0aW5VdGls
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzQwQTQ4MjFBOTA1MUFGMDBENzND
Q0EgLyogTWF0aENvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNYXRoQ29tbW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM0MEE0ODMx
QTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWF0aENvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDkw
OTdFRTBGOEY4MUI1MDA3NkEzMjcgLyogRmVhdHVyZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODMyLDYgKzU4MzQsNyBAQAogCQkJCUE3RDgwMUExMTg4
MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMuY3BwICovLAogCQkJCUE3RDgwMUEy
MTg4MEQ2NkUwMDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMuaCAqLywKIAkJCQlBNzVFRTlC
MDE4QUFCN0UyMDBBQUQwNDMgLyogQnVpbHRpbk5hbWVzLmggKi8sCisJCQkJNDFERUExMzExQjlG
MzE1NDAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oICovLAogCQkJCUE3QTk3OUM0MThCRThEOUUw
MDJDMzczMyAvKiBGdW5jdGlvbi5wcm90b3R5cGUuanMgKi8sCiAJCQkJN0NGOUJDNUExQjY1RDlB
MzAwOURCMUVGIC8qIEdsb2JhbE9iamVjdC5qcyAqLywKIAkJCQlFMzVFMDM2MTFCN0FCNDg1MDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzICovLApAQCAtNjA5OSw2
ICs2MTAyLDcgQEAKIAkJCQlBNzA0RDkwMzE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJ
bnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwNEQ5MDQxN0EwQkFBODAwNkJBNTU0
IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MUI5RTIzQzFCNEUwRDY3MDBCQzdGRUQgLyogSW50bENvbGxhdG9yQ29uc3RydWN0b3IuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxREVBMTMyMUI5RjMxNjMwMDZENjVERCAvKiBCdWlsdGluVXRpbHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjIwMTc3MTQzRkNEM0YwMDY4Qjc3QyAvKiBERkdBYnN0
cmFjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYwNTRGQTFBQzM1QjQ0MDBFNUJFNTcg
LyogRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY2RTE2
QjE0REYzRjE2MDBCN0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFi
bGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJs
ZXMuY3BwCmluZGV4IDdlZjFkYTNiMGFjMzk0M2UwMDU5M2M2OGUxZDgxNTUyN2MyNzExYTUuLjM2
ZDI2NTI2YjU1M2I4Yzc3ODA1NWE1MDU5OTMyNzRjODYxYzYxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCkBAIC0z
NSw2ICszNSw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0aWMgVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGUqIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChWTSYsIGNvbnN0IFNvdXJjZUNv
ZGUmLCBjb25zdCBJZGVudGlmaWVyJiwgQ29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5
KTsKKwogQnVpbHRpbkV4ZWN1dGFibGVzOjpCdWlsdGluRXhlY3V0YWJsZXMoVk0mIHZtKQogICAg
IDogbV92bSh2bSkKICNkZWZpbmUgSU5JVElBTElaRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKG5h
bWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKSAsIG1fIyNuYW1lIyNTb3VyY2UobWFrZVNvdXJjZShT
dHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChzXyMjbmFtZSwgbGVuZ3RoKSkpCkBAIC01Miwx
NSArNTQsMjUgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxl
czo6Y3JlYXRlRGVmYXVsdENvbnN0cnVjdG9yKENvbnN0cnUKICAgICBjYXNlIENvbnN0cnVjdG9y
S2luZDo6Tm9uZToKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb25zdHJ1Y3RvcktpbmQ6OkJh
c2U6Ci0gICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwobWFrZVNvdXJjZShi
YXNlQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmls
aXR5OjpDYW5Db25zdHJ1Y3QpOworICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVy
bmFsKG1fdm0sIG1ha2VTb3VyY2UoYmFzZUNvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0cnVj
dG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsKICAgICBjYXNlIENvbnN0
cnVjdG9yS2luZDo6RGVyaXZlZDoKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRl
cm5hbChtYWtlU291cmNlKGRlcml2ZWRDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1Y3Rv
cktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7CisgICAgICAgIHJldHVybiBj
cmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwobV92bSwgbWFrZVNvdXJjZShkZXJpdmVkQ29uc3RydWN0
b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25z
dHJ1Y3QpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAotVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxl
czo6Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSwgQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgQ29u
c3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQorVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoY29uc3QgU291
cmNlQ29kZSYgY29kZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQ29uc3RydWN0QWJpbGl0eSBj
b25zdHJ1Y3RBYmlsaXR5KQoreworICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwo
bV92bSwgY29kZSwgbmFtZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBjb25zdHJ1Y3RBYmlsaXR5
KTsKK30KKworVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1aWx0aW5FeGVjdXRh
YmxlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgY29kZSwgY29uc3QgSWRlbnRpZmllciYgbmFt
ZSwgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQoreworICAgIHJldHVybiBjcmVh
dGVFeGVjdXRhYmxlSW50ZXJuYWwodm0sIGNvZGUsIG5hbWUsIENvbnN0cnVjdG9yS2luZDo6Tm9u
ZSwgY29uc3RydWN0QWJpbGl0eSk7Cit9CisKK1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBj
cmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Us
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdG9yS2luZCBjb25zdHJ1Y3RvcktpbmQs
IENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkKIHsKICAgICBKU1RleHRQb3NpdGlv
biBwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lOwogICAgIFBhcnNlckVycm9yIGVycm9yOwpAQCAt
NjksNyArODEsNyBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFi
bGVzOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgUwogICAgIFVubGlua2VkRnVuY3Rp
b25LaW5kIGtpbmQgPSBpc1BhcnNpbmdEZWZhdWx0Q29uc3RydWN0b3IgPyBVbmxpbmtlZE5vcm1h
bEZ1bmN0aW9uIDogVW5saW5rZWRCdWlsdGluRnVuY3Rpb247CiAgICAgUmVmUHRyPFNvdXJjZVBy
b3ZpZGVyPiBzb3VyY2VPdmVycmlkZSA9IGlzUGFyc2luZ0RlZmF1bHRDb25zdHJ1Y3RvciA/IHNv
dXJjZS5wcm92aWRlcigpIDogbnVsbHB0cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvZ3JhbU5v
ZGU+IHByb2dyYW0gPSBwYXJzZTxQcm9ncmFtTm9kZT4oCi0gICAgICAgICZtX3ZtLCBzb3VyY2Us
IElkZW50aWZpZXIoKSwgYnVpbHRpbk1vZGUsCisgICAgICAgICZ2bSwgc291cmNlLCBJZGVudGlm
aWVyKCksIGJ1aWx0aW5Nb2RlLAogICAgICAgICBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmlj
dCwgU291cmNlUGFyc2VNb2RlOjpQcm9ncmFtTW9kZSwgZXJyb3IsCiAgICAgICAgICZwb3NpdGlv
bkJlZm9yZUxhc3ROZXdsaW5lLCBjb25zdHJ1Y3RvcktpbmQpOwogCkBAIC05NSwxNiArMTA3LDE2
IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0
ZUV4ZWN1dGFibGVJbnRlcm5hbChjb25zdCBTCiAgICAgbWV0YWRhdGEtPnNldEVuZFBvc2l0aW9u
KHBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1ldGFkYXRh
KTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNsb3NlZFZhcmlhYmxlIDogcHJvZ3JhbS0+Y2xvc2Vk
VmFyaWFibGVzKCkpIHsKLSAgICAgICAgaWYgKGNsb3NlZFZhcmlhYmxlID09IG1fdm0ucHJvcGVy
dHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkKKyAgICAgICAgaWYgKGNsb3NlZFZhcmlhYmxlID09
IHZtLnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBsKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgCi0gICAgICAgIGlmIChjbG9zZWRWYXJpYWJsZSA9PSBtX3ZtLnByb3BlcnR5
TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQuaW1wbCgpKQorICAgICAgICBpZiAoY2xvc2VkVmFyaWFi
bGUgPT0gdm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZC5pbXBsKCkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICB9CiAgICAgbWV0YWRhdGEtPm92ZXJyaWRlTmFtZShuYW1lKTsK
ICAgICBWYXJpYWJsZUVudmlyb25tZW50IGR1bW15VERaVmFyaWFibGVzOwotICAgIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZTo6Y3JlYXRlKCZtX3ZtLCBzb3VyY2UsIG1ldGFkYXRhLCBraW5kLCBjb25zdHJ1
Y3RBYmlsaXR5LCBkdW1teVREWlZhcmlhYmxlcywgV1RGOjptb3ZlKHNvdXJjZU92ZXJyaWRlKSk7
Ci0gICAgZnVuY3Rpb25FeGVjdXRhYmxlLT5tX25hbWVWYWx1ZS5zZXQobV92bSwgZnVuY3Rpb25F
eGVjdXRhYmxlLCBqc1N0cmluZygmbV92bSwgbmFtZS5zdHJpbmcoKSkpOworICAgIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZTo6Y3JlYXRlKCZ2bSwgc291cmNlLCBtZXRhZGF0YSwga2luZCwgY29uc3RydWN0
QWJpbGl0eSwgZHVtbXlURFpWYXJpYWJsZXMsIFdURjo6bW92ZShzb3VyY2VPdmVycmlkZSkpOwor
ICAgIGZ1bmN0aW9uRXhlY3V0YWJsZS0+c2V0TmFtZVZhbHVlKHZtLCBqc1N0cmluZygmdm0sIG5h
bWUuc3RyaW5nKCkpKTsKICAgICByZXR1cm4gZnVuY3Rpb25FeGVjdXRhYmxlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgK
aW5kZXggMjM0MWM4OGQ4YzczMTJmNTU2YTk3NDgxOGNjOWEwZDA5NjI1MzYyYy4uODYyZDE4Mjc3
MmM0NTU3ZTdhMjRhMTEyNWY0OGFhNzg0NGJmZDc5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaApAQCAtNTcsMTEgKzU3LDcg
QEAgcHJpdmF0ZToKIAogICAgIFZNJiBtX3ZtOwogCi0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUqIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKGNvbnN0IFNvdXJjZUNvZGUmIGNvZGUsIGNv
bnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29kZSwgbmFt
ZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBjb25zdHJ1Y3RBYmlsaXR5KTsKLSAgICB9Ci0gICAg
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb25z
dCBTb3VyY2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENvbnN0cnVjdG9yS2luZCwgQ29uc3Ry
dWN0QWJpbGl0eSk7CisgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1aWx0
aW5FeGVjdXRhYmxlKGNvbnN0IFNvdXJjZUNvZGUmLCBjb25zdCBJZGVudGlmaWVyJiwgQ29uc3Ry
dWN0QWJpbGl0eSk7CiAKICNkZWZpbmUgREVDTEFSRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKG5h
bWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKVwKICAgICBTb3VyY2VDb2RlIG1fIyNuYW1lIyNTb3Vy
Y2U7IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGlu
TmFtZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApp
bmRleCA3ZTU0MzQyZTc1MmY5ZjJkNGU4MzVlZDAzNGY0NjA5Y2YzNjVkMzlmLi5iZjI4ZGI4M2Y3
YmJiYTJlNmYwYmFiOTc1YjZlOWY0ZDRhMzc4ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCkBAIC0yNiw0MiArMjYsMzEgQEAKICNpZm5kZWYg
QnVpbHRpbk5hbWVzX2gKICNkZWZpbmUgQnVpbHRpbk5hbWVzX2gKIAorI2luY2x1ZGUgIkJ1aWx0
aW5VdGlscy5oIgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCiAjaW5jbHVkZSAiSlND
QnVpbHRpbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7Ci0gICAgCi0jZGVmaW5lIElOSVRJQUxJU0Vf
QlVJTFRJTl9OQU1FUyhuYW1lKSAsIG1fIyNuYW1lKElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICNuYW1lKSksIG1fIyNuYW1lIyNQcml2YXRlTmFtZShJZGVudGlmaWVyOjpmcm9tVWlkKFByaXZh
dGVOYW1lKFByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwgQVNDSUlMaXRlcmFsKCJQcml2YXRlU3lt
Ym9sLiIgI25hbWUpKSkpCi0jZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9OQU1FUyhuYW1lKSBjb25z
dCBJZGVudGlmaWVyIG1fIyNuYW1lOyBjb25zdCBJZGVudGlmaWVyIG1fIyNuYW1lIyNQcml2YXRl
TmFtZTsKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IobmFtZSkg
XAotICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUjI1B1YmxpY05hbWUoKSBjb25zdCB7IHJldHVy
biBtXyMjbmFtZTsgfSBcCi0gICAgY29uc3QgSWRlbnRpZmllciYgbmFtZSMjUHJpdmF0ZU5hbWUo
KSBjb25zdCB7IHJldHVybiBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7IH0KIAotI2RlZmluZSBJTklU
SUFMSVNFX0JVSUxUSU5fU1lNQk9MUyhuYW1lKSBJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMobmFt
ZSksIG1fIyNuYW1lIyNTeW1ib2woSWRlbnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFtZShQcml2
YXRlTmFtZTo6RGVzY3JpcHRpb24sIEFTQ0lJTGl0ZXJhbCgiU3ltYm9sLiIgI25hbWUpKSkpCi0j
ZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TWU1CT0xTKG5hbWUpIERFQ0xBUkVfQlVJTFRJTl9OQU1F
UyhuYW1lKSBjb25zdCBJZGVudGlmaWVyIG1fIyNuYW1lIyNTeW1ib2w7Ci0jZGVmaW5lIERFQ0xB
UkVfQlVJTFRJTl9TWU1CT0xfQUNDRVNTT1IobmFtZSkgXAotICAgIERFQ0xBUkVfQlVJTFRJTl9J
REVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKLSAgICBjb25zdCBJZGVudGlmaWVyJiBuYW1lIyNT
eW1ib2woKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZSMjU3ltYm9sOyB9CisjZGVmaW5lIElOSVRJ
QUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkobmFtZSkgbV9wcml2YXRlVG9QdWJsaWNNYXAu
YWRkKG1fIyNuYW1lIyNQcml2YXRlTmFtZS5pbXBsKCksICZtXyMjbmFtZSk7CisjZGVmaW5lIElO
SVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkobmFtZSkgbV9wdWJsaWNUb1ByaXZhdGVN
YXAuYWRkKG1fIyNuYW1lLmltcGwoKSwgJm1fIyNuYW1lIyNQcml2YXRlTmFtZSk7CiAKLSNkZWZp
bmUgSU5JVElBTElTRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWShuYW1lKSBtX3ByaXZhdGVUb1B1
YmxpY01hcC5hZGQobV8jI25hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJm1fIyNuYW1lKTsKLSNk
ZWZpbmUgSU5JVElBTElTRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWShuYW1lKSBtX3B1YmxpY1Rv
UHJpdmF0ZU1hcC5hZGQobV8jI25hbWUuaW1wbCgpLCAmbV8jI25hbWUjI1ByaXZhdGVOYW1lKTsK
LSAgICAKIGNsYXNzIEJ1aWx0aW5OYW1lcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQnVp
bHRpbk5hbWVzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgCiBwdWJsaWM6CiAgICAg
QnVpbHRpbk5hbWVzKFZNKiB2bSwgQ29tbW9uSWRlbnRpZmllcnMqIGNvbW1vbklkZW50aWZpZXJz
KQogICAgICAgICA6IG1fZW1wdHlJZGVudGlmaWVyKGNvbW1vbklkZW50aWZpZXJzLT5lbXB0eUlk
ZW50aWZpZXIpCi0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklU
SUFMSVNFX0JVSUxUSU5fTkFNRVMpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElG
SUVSU19FQUNIX1BST1BFUlRZX05BTUUoSU5JVElBTElTRV9CVUlMVElOX05BTUVTKQotICAgICAg
ICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJ
TklUSUFMSVNFX0JVSUxUSU5fU1lNQk9MUykKKyAgICAgICAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9G
VU5DVElPTl9OQU1FKElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUykKKyAgICAgICAgSlNDX0NPTU1P
Tl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX0JVSUxU
SU5fTkFNRVMpCisgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dF
TExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfQlVJTFRJTl9TWU1CT0xTKQogICAgIHsKLSAgICAg
ICAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKElOSVRJQUxJU0VfUFJJVkFURV9U
T19QVUJMSUNfRU5UUlkpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19F
QUNIX1BST1BFUlRZX05BTUUoSU5JVElBTElTRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKLSAg
ICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1C
T0woSU5JVElBTElTRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKLSAgICAgICAgSlNDX0ZPUkVB
Q0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKElOSVRJQUxJU0VfUFVCTElDX1RPX1BSSVZBVEVfRU5U
UlkpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZ
X05BTUUoSU5JVElBTElTRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKLSAgICAgICAgSlNDX0NP
TU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElT
RV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKKyAgICAgICAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9G
VU5DVElPTl9OQU1FKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCisgICAgICAg
IEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSU5JVElB
TElaRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKKyAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRF
X0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElaRV9QUklWQVRFX1RP
X1BVQkxJQ19FTlRSWSkKKyAgICAgICAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1F
KElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCisgICAgICAgIEpTQ19DT01NT05f
UFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSU5JVElBTElaRV9QVUJMSUNf
VE9fUFJJVkFURV9FTlRSWSkKKyAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJT
X0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRS
WSkKICAgICB9CiAKICAgICBib29sIGlzUHJpdmF0ZU5hbWUoU3ltYm9sSW1wbCYgdWlkKSBjb25z
dDsKQEAgLTg0LDEzICs3Myw2IEBAIHByaXZhdGU6CiAgICAgQnVpbHRpbk5hbWVzTWFwIG1fcHJp
dmF0ZVRvUHVibGljTWFwOwogfTsKIAotI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9OQU1FUwotI3Vu
ZGVmIElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUwotI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9JREVO
VElGSUVSX0FDQ0VTU09SCi0jdW5kZWYgREVDTEFSRV9CVUlMVElOX1NZTUJPTFMKLSN1bmRlZiBJ
TklUSUFMSVNFX0JVSUxUSU5fU1lNQk9MUwotI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9TWU1CT0xf
QUNDRVNTT1IKLQogaW5saW5lIGJvb2wgQnVpbHRpbk5hbWVzOjppc1ByaXZhdGVOYW1lKFN5bWJv
bEltcGwmIHVpZCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlVG9QdWJsaWNNYXAuY29u
dGFpbnMoJnVpZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
QnVpbHRpblV0aWxzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpblV0
aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDdjMjlhNjVmODQ2YWU4MjViZjZkNmI1NTY4ZWFkN2I3OGVmNGMz
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWls
dGluVXRpbHMuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBDYW5v
biBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQnVpbHRpblV0aWxzX2gKKyNkZWZpbmUgQnVpbHRpblV0
aWxzX2gKKworI2luY2x1ZGUgIkNvbnN0cnVjdEFiaWxpdHkuaCIKKworbmFtZXNwYWNlIEpTQyB7
CisKKyNkZWZpbmUgSU5JVElBTElaRV9CVUlMVElOX05BTUVTKG5hbWUpICwgbV8jI25hbWUoSlND
OjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAjbmFtZSkpLCBtXyMjbmFtZSMjUHJpdmF0ZU5h
bWUoSlNDOjpJZGVudGlmaWVyOjpmcm9tVWlkKEpTQzo6UHJpdmF0ZU5hbWUoSlNDOjpQcml2YXRl
TmFtZTo6RGVzY3JpcHRpb24sIEFTQ0lJTGl0ZXJhbCgiUHJpdmF0ZVN5bWJvbC4iICNuYW1lKSkp
KQorI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgY29uc3QgSlNDOjpJZGVudGlm
aWVyIG1fIyNuYW1lOyBjb25zdCBKU0M6OklkZW50aWZpZXIgbV8jI25hbWUjI1ByaXZhdGVOYW1l
OworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCisg
ICAgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBuYW1lIyNQdWJsaWNOYW1lKCkgY29uc3QgeyByZXR1
cm4gbV8jI25hbWU7IH0gXAorICAgIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbmFtZSMjUHJpdmF0
ZU5hbWUoKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7IH0KKworI2RlZmlu
ZSBJTklUSUFMSVpFX0JVSUxUSU5fU1lNQk9MUyhuYW1lKSBJTklUSUFMSVpFX0JVSUxUSU5fTkFN
RVMobmFtZSksIG1fIyNuYW1lIyNTeW1ib2woSlNDOjpJZGVudGlmaWVyOjpmcm9tVWlkKEpTQzo6
UHJpdmF0ZU5hbWUoSlNDOjpQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24sIEFTQ0lJTGl0ZXJhbCgi
U3ltYm9sLiIgI25hbWUpKSkpCisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TWU1CT0xTKG5hbWUp
IERFQ0xBUkVfQlVJTFRJTl9OQU1FUyhuYW1lKSBjb25zdCBKU0M6OklkZW50aWZpZXIgbV8jI25h
bWUjI1N5bWJvbDsKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX1NZTUJPTF9BQ0NFU1NPUihuYW1l
KSBcCisgICAgREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IobmFtZSkgXAorICAg
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbmFtZSMjU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV8j
I25hbWUjI1N5bWJvbDsgfQorCitjbGFzcyBJZGVudGlmaWVyOworY2xhc3MgU291cmNlQ29kZTsK
K2NsYXNzIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOworY2xhc3MgVk07CisKK0pTX0VYUE9S
VF9QUklWQVRFIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0
YWJsZShWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBjb25zdCBJZGVudGlmaWVyJiwgQ29uc3RydWN0
QWJpbGl0eSk7CisgICAgCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAppbmRleCBl
M2ZjMmE5NjQ5Y2ZlY2IxOGEwMjAyMGU5NjEwMTQ5NDljNDU2NmZhLi5hMzkyZmQ5YjMwY2QyNmIz
YTYxNmQ3YmRiNjRmMzJhMGUxZjE5Nzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtNTks
NyArNTksNiBAQCBlbnVtIFVubGlua2VkRnVuY3Rpb25LaW5kIHsKIAogY2xhc3MgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKLSAgICBm
cmllbmQgY2xhc3MgQnVpbHRpbkV4ZWN1dGFibGVzOwogICAgIGZyaWVuZCBjbGFzcyBDb2RlQ2Fj
aGU7CiAgICAgZnJpZW5kIGNsYXNzIFZNOwogCkBAIC03Nyw2ICs3Niw3IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBJZGVudGlmaWVyJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAg
Y29uc3QgSWRlbnRpZmllciYgaW5mZXJyZWROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9pbmZlcnJl
ZE5hbWU7IH0KICAgICBKU1N0cmluZyogbmFtZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9uYW1l
VmFsdWUuZ2V0KCk7IH0KKyAgICB2b2lkIHNldE5hbWVWYWx1ZShWTSYgdm0sIEpTU3RyaW5nKiBu
YW1lVmFsdWUpIHsgbV9uYW1lVmFsdWUuc2V0KHZtLCB0aGlzLCBuYW1lVmFsdWUpOyB9CiAgICAg
dW5zaWduZWQgcGFyYW1ldGVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlckNvdW50
OyB9OwogICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUoKSBjb25zdCB7IHJldHVybiBtX3Bh
cnNlTW9kZTsgfTsKICAgICBib29sIGlzSW5TdHJpY3RDb250ZXh0KCkgY29uc3QgeyByZXR1cm4g
bV9pc0luU3RyaWN0Q29udGV4dDsgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgY29uc3QgSWRlbnRpZmllciYsIEV4ZWNTdGF0ZSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBKU09i
amVjdComIGV4Y2VwdGlvbiwgCiAgICAgICAgIGludCBvdmVycmlkZUxpbmVOdW1iZXIpOwogCi0g
ICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBsaW5rKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGludCBv
dmVycmlkZUxpbmVOdW1iZXIgPSAtMSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgRnVuY3Rpb25F
eGVjdXRhYmxlKiBsaW5rKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGludCBvdmVycmlkZUxpbmVO
dW1iZXIgPSAtMSk7CiAKICAgICB2b2lkIGNsZWFyQ29kZSgpCiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCmluZGV4IDk2NDcxNjM2ZmEzZTdjZWMwYTI2
YmJhZjU2YTI4ZDkyODIxMGM1NjcuLjIyMTMyN2I4M2NkY2ViZTc2MTE5MTZkY2EyOTM5MjlhMGMy
NjZmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWls
dGlucworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKQEAg
LTM2LDYgKzM2LDggQEAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQogcGFyc2Vy
LmFkZF9hcmd1bWVudCgnaW5wdXRfZmlsZScsIG5hcmdzPScqJywgaGVscD0nSW5wdXQgSlMgZmls
ZXMgd2hpY2ggYnVpbHRpbnMgZ2VuZXJhdGVkIGZyb20nKQogcGFyc2VyLmFkZF9hcmd1bWVudCgn
LS1pbnB1dC1kaXJlY3RvcnknLCBoZWxwPSdBbGwgSlMgZmlsZXMgd2lsbCBiZSB1c2VkIGFzIGlu
cHV0IGZyb20gdGhpcyBkaXJlY3RvcnkuJykKIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0
JywgaGVscD0ncGF0aCB0byBvdXRwdXQgY3BwIG9yIGggZmlsZScpCitwYXJzZXIuYWRkX2FyZ3Vt
ZW50KCctLXByZWZpeCcsIGRlZmF1bHQ9J0pTQycsIGhlbHA9J3ByZWZpeCB1c2VkIGZvciBwdWJs
aWMgbWFjcm9zJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0tbmFtZXNwYWNlJywgZGVmYXVsdD0n
SlNDJywgaGVscD0nQysrIG5hbWVzcGFjZScpCiBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQog
CiBjb3B5cmlnaHRUZXh0ID0gIiIiICoKQEAgLTE1Myw2ICsxNTUsOSBAQCBkZWYgZ2V0RnVuY3Rp
b25zKHNvdXJjZSk6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoRnVuY3Rpb24oZnVuY3Rpb25OYW1l
LCBmdW5jdGlvbiwgZnVuY3Rpb25Jc0NvbnN0cnVjdG9yLCBmdW5jdGlvblBhcmFtZXRlcnMpKQog
ICAgIHJldHVybiByZXN1bHQKIAorZGVmIHdyaXRlSW5jbHVkZURpcmVjdGl2ZXMod3JpdGVyLCBo
ZWFkZXJOYW1lcyk6CisgICAgZm9yIGhlYWRlck5hbWUgaW4gaGVhZGVyTmFtZXM6CisgICAgICAg
IHdyaXRlci53cml0ZSgiI2luY2x1ZGUgIiArIGhlYWRlck5hbWUgKyAiXG4iKQogCiBkZWYgZ2Vu
ZXJhdGVDb2RlKHNvdXJjZSk6CiAgICAgaW5wdXRGaWxlID0gb3Blbihzb3VyY2UsICJyIikKQEAg
LTE3OSw2ICsxODQsMTQgQEAgZm9yIGZpbGUgaW4gYXJncy5pbnB1dF9maWxlOgogICAgICAgICAo
YmFzZU5hbWUsIGZ1bmN0aW9ucywgb2JqZWN0Q29weXJpZ2h0cykgPSBnZW5lcmF0ZUNvZGUoZmls
ZSkKICAgICAgICAgY29weXJpZ2h0cy5leHRlbmQob2JqZWN0Q29weXJpZ2h0cykKICAgICAgICAg
YnVpbHRpbnMuYXBwZW5kKChiYXNlTmFtZSwgZnVuY3Rpb25zKSkKK25hbWVzcGFjZSA9IGFyZ3Mu
bmFtZXNwYWNlCittYWNyb1ByZWZpeCA9IGFyZ3MucHJlZml4CitzY29wZU5hbWUgPSBvcy5wYXRo
LnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoYXJncy5vdXRwdXQpKVswXQoraW5jbHVkZUd1YXJk
ID0gc2NvcGVOYW1lICsgIl9IIgoraGVhZGVyTmFtZSA9IHNjb3BlTmFtZSArICIuaCIKKworaGVh
ZGVySW5jbHVkZXMgPSBbIlwiQnVpbHRpblV0aWxzLmhcIiJdIGlmIG5hbWVzcGFjZSA9PSAiSlND
IiBlbHNlIFsiPGJ1aWx0aW5zL0J1aWx0aW5VdGlscy5oPiJdCitjb250ZW50SW5jbHVkZXMgPSBb
IlwiQnVpbHRpbkV4ZWN1dGFibGVzLmhcIiIsICJcIkV4ZWN1dGFibGUuaFwiIiwgIlwiSlNDZWxs
SW5saW5lcy5oXCIiLCAiXCJWTS5oXCIiXSBpZiBuYW1lc3BhY2UgPT0gIkpTQyIgZWxzZSBbIjxy
dW50aW1lL0V4ZWN1dGFibGUuaD4iLCAiPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPiIsICI8cnVu
dGltZS9WTS5oPiIsICJcIldlYkNvcmVKU0NsaWVudERhdGEuaFwiIl0KIAogY29weXJpZ2h0cyA9
IGxpc3Qoc2V0KGNvcHlyaWdodHMpKQogCkBAIC0xOTIsMjMgKzIwNSwyMSBAQCBjb3B5cmlnaHRU
ZXh0ID0gIi8qXG4iICsgY29weXJpZ2h0Qm9keSArIGNvcHlyaWdodFRleHQKIGJ1aWx0aW5zSGVh
ZGVyLndyaXRlKCIiIiVzCiAlcwogCi0jaWZuZGVmIEpTQ0J1aWx0aW5zX0gKLSNkZWZpbmUgSlND
QnVpbHRpbnNfSAorI2lmbmRlZiAlcworI2RlZmluZSAlcwogCi0jaW5jbHVkZSAiQ29uc3RydWN0
QWJpbGl0eS5oIgorIiIiICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4dCwgaW5jbHVk
ZUd1YXJkLCBpbmNsdWRlR3VhcmQpKQogCi1uYW1lc3BhY2UgSlNDIHsKK3dyaXRlSW5jbHVkZURp
cmVjdGl2ZXMoYnVpbHRpbnNIZWFkZXIsIGhlYWRlckluY2x1ZGVzKQogCi1jbGFzcyBGdW5jdGlv
bkV4ZWN1dGFibGU7Ci1jbGFzcyBJZGVudGlmaWVyOwotY2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci1j
bGFzcyBTb3VyY2VDb2RlOwotY2xhc3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU7Ci1jbGFz
cyBWTTsKK2J1aWx0aW5zSGVhZGVyLndyaXRlKCIiIgorbmFtZXNwYWNlIEpTQyB7CisgICAgY2xh
c3MgRnVuY3Rpb25FeGVjdXRhYmxlOworfQogCi1GdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1
aWx0aW5FeGVjdXRhYmxlKFZNJiwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqLCBjb25zdCBT
b3VyY2VDb2RlJik7CituYW1lc3BhY2UgJXMgewogCi0iIiIgJSAoZ2VuZXJhdG9yU3RyaW5nLCBj
b3B5cmlnaHRUZXh0KSkKKyIiIiAlIG5hbWVzcGFjZSkKIAogY29kZVJlZmVyZW5jZXMgPSBbXQog
CkBAIC0yMjIsNTggKzIzMyw1OSBAQCBmb3IgKG9iamVjdE5hbWUsIGZ1bmN0aW9ucykgaW4gYnVp
bHRpbnM6CiAgICAgICAgIGNvZGVSZWZlcmVuY2VzLmFwcGVuZCgobWFuZ2xlZE5hbWUsIGZ1bmN0
aW9uKSkKICAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBjaGFyKiBz
XyVzO1xuIiAlIG1hbmdsZWROYW1lKQogICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0
ZXJuIGNvbnN0IGludCBzXyVzTGVuZ3RoO1xuIiAlIG1hbmdsZWROYW1lKQotICAgICAgICBidWls
dGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IENvbnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0
cnVjdEFiaWxpdHk7XG4iICUgbWFuZ2xlZE5hbWUpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndy
aXRlKCJleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmls
aXR5O1xuIiAlIG1hbmdsZWROYW1lKQogICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcbiIpCi0g
ICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0ZPUkVBQ0hfJXNfQlVJTFRJTiht
YWNybykgXFxcbiIgJSBvYmplY3ROYW1lLnJlcGxhY2UoIi4iLCAiXyIpLnVwcGVyKCkpCisgICAg
YnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF8lc19CVUlMVElOKG1hY3Jv
KSBcXFxuIiAlIChtYWNyb1ByZWZpeCwgb2JqZWN0TmFtZS5yZXBsYWNlKCIuIiwgIl8iKS51cHBl
cigpKSkKICAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgogICAgICAgICBtYW5nbGVkTmFt
ZSA9IGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkKICAgICAgICAgYnVpbHRpbnNIZWFk
ZXIud3JpdGUoIiAgICBtYWNybyglcywgJXMsICVkKSBcXFxuIiAlIChmdW5jdGlvbi5uYW1lLCBt
YW5nbGVkTmFtZSwgbGVuKGZ1bmN0aW9uLnBhcmFtZXRlcnMpKSkKICAgICBidWlsdGluc0hlYWRl
ci53cml0ZSgiXG4iKQogICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6Ci0gICAgICAgIGJ1
aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19CVUlMVElOXyVzIDFcbiIgJSBmdW5jdGlv
bi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkpCisgICAgICAgIGJ1aWx0aW5zSGVhZGVy
LndyaXRlKCIjZGVmaW5lICVzX0JVSUxUSU5fJXMgMVxuIiAlIChtYWNyb1ByZWZpeCwgZnVuY3Rp
b24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKS51cHBlcigpKSkKICAgICBidWlsdGluc0hlYWRlci53
cml0ZSgiXG5cbiIpCiBuYW1lcyA9IFtdCi1idWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSBK
U0NfRk9SRUFDSF9CVUlMVElOKG1hY3JvKVxcXG4iKQorYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNk
ZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOKG1hY3JvKVxcXG4iICUgbWFjcm9QcmVmaXgpCiBmb3Ig
KGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJlbmNlczoKICAgICBidWlsdGlu
c0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzLCAlcywgc18lc0xlbmd0aCkgXFxcbiIgJSAoY29k
ZVJlZmVyZW5jZSwgZnVuY3Rpb24ubmFtZSwgY29kZVJlZmVyZW5jZSkpCiAgICAgbmFtZXMuYXBw
ZW5kKGZ1bmN0aW9uLm5hbWUpCiAKIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcblxuIikKLWJ1aWx0
aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFN
RShtYWNybykgXFxcbiIpCitidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNI
X0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFxcbiIgJSBtYWNyb1ByZWZpeCkKIGZvciBu
YW1lIGluIHNvcnRlZChzZXQobmFtZXMpKToKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiICAg
IG1hY3JvKCVzKSBcXFxuIiAlIG5hbWUpCiBidWlsdGluc0hlYWRlci53cml0ZSgiIiIKIAotI2Rl
ZmluZSBKU0NfREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1l
LCBhcmd1bWVudENvdW50KSBcXAotICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dl
bmVyYXRvcihWTSYpOworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1l
LCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCisgICAgSlNDOjpGdW5jdGlvbkV4ZWN1
dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYpOwogCi1KU0NfRk9SRUFDSF9CVUlM
VElOKEpTQ19ERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIEpTQ19ERUNMQVJFX0JV
SUxUSU5fR0VORVJBVE9SCislc19GT1JFQUNIX0JVSUxUSU4oREVDTEFSRV9CVUlMVElOX0dFTkVS
QVRPUikKKyN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCiAKLSNkZWZpbmUgSlNDX0JV
SUxUSU5fRVhJU1RTKG5hbWUpIGRlZmluZWQgSlNDX0JVSUxUSU5fICMjIG5hbWUKKyNkZWZpbmUg
JXNfQlVJTFRJTl9FWElTVFMobmFtZSkgZGVmaW5lZCAlc19CVUlMVElOXyAjIyBuYW1lCiAKIH0K
IAotI2VuZGlmCisjZW5kaWYgLy8gJXMKIAotIiIiKQorIiIiICUgKG1hY3JvUHJlZml4LCBtYWNy
b1ByZWZpeCwgbWFjcm9QcmVmaXgsIGluY2x1ZGVHdWFyZCkpCiAKIGJ1aWx0aW5zSW1wbGVtZW50
YXRpb24ud3JpdGUoIiIiJXMKICVzCiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUg
IkpTQ0J1aWx0aW5zLmgiCisjaW5jbHVkZSAiJXMiCiAKLSNpbmNsdWRlICJCdWlsdGluRXhlY3V0
YWJsZXMuaCIKLSNpbmNsdWRlICJDb25zdHJ1Y3RBYmlsaXR5LmgiCi0jaW5jbHVkZSAiRXhlY3V0
YWJsZS5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKLSNpbmNsdWRlICJWTS5oIgorIiIi
ICAlIChnZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQsIGhlYWRlck5hbWUpKQorCit3cml0
ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSW1wbGVtZW50YXRpb24sIGNvbnRlbnRJbmNsdWRl
cykKKworYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIKK25hbWVzcGFjZSAlcyB7CisK
KyIiIiAgJSAobmFtZXNwYWNlKSkKIAotbmFtZXNwYWNlIEpTQyB7CiAKLSIiIiAgJSAoZ2VuZXJh
dG9yU3RyaW5nLCBjb3B5cmlnaHRUZXh0KSkKIAogZm9yIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlv
bikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAgc291cmNlID0gZnVuY3Rpb24uc291cmNlCkBAIC0y
ODUsMjMgKzI5NywzMyBAQCBmb3IgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVm
ZXJlbmNlczoKICAgICAgICAgc291cmNlID0gc291cmNlICsgKCIgICAgXCIlc1xcblwiIFxcXG4i
ICUgbGluZSkKICAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBjaGFyKiBz
XyVzID1cbiVzO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIHNvdXJjZSkpCiAgICAgYnVpbHRpbnNJ
bXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgaW50IHNfJXNMZW5ndGggPSAlZDtcblxuIiAlIChj
b2RlUmVmZXJlbmNlLCBzb3VyY2VMZW5ndGggKyAxKSkgIyArIDEgZm9yIFxuCi0gICAgY29uc3Ry
dWN0QWJpbGl0eSA9ICJDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QiCisgICAgY29u
c3RydWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVjdCIK
ICAgICBpZiBmdW5jdGlvbi5pc0NvbnN0cnVjdG9yOgotICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5
ID0gIkNvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCIKLSAgICBidWlsdGluc0ltcGxlbWVu
dGF0aW9uLndyaXRlKCJjb25zdCBDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5
ID0gJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgY29uc3RydWN0QWJpbGl0eSkpICMgKyAxIGZv
ciBcbgorICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6
Q2FuQ29uc3RydWN0IgorICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eSA9ICVzO1xuXG4iICUgKGNv
ZGVSZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAjICsgMSBmb3IgXG4KIAogYnVpbHRpbnNJ
bXBsZW1lbnRhdGlvbi53cml0ZSgiIiIKLSNkZWZpbmUgSlNDX0RFRklORV9CVUlMVElOX0dFTkVS
QVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAotRnVuY3Rpb25F
eGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKFZNJiB2bSkgXFwKLXsgXFwKLSAgICByZXR1
cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmso
dm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAotfQor
I2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwg
YXJndW1lbnRDb3VudCkgXFwKK0pTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2Vu
ZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXAorIiIiKTsKIAotSlNDX0ZPUkVBQ0hfQlVJTFRJTihKU0Nf
REVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIEpTQ19ERUZJTkVfQlVJTFRJTl9HRU5F
UkFUT1IKK2lmIChuYW1lc3BhY2UgPT0gIkpTQyIpOgorICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRp
b24ud3JpdGUoIiIie1xcCisgICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2Rl
TmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29k
ZU5hbWUjI1NvdXJjZSgpKTsgXFwKKyIiIikKK2Vsc2U6CisgICAgYnVpbHRpbk5hbWUgPSBzY29w
ZU5hbWVbMF0ubG93ZXIoKSArIHNjb3BlTmFtZVsxOl0KKyAgICBidWlsdGluc0ltcGxlbWVudGF0
aW9uLndyaXRlKCIiIntcXAorICAgIFdlYkNvcmVKU0NsaWVudERhdGEqIGNsaWVudERhdGEgPSBz
dGF0aWNfY2FzdDxXZWJDb3JlSlNDbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7IFxcCisgICAg
cmV0dXJuIGNsaWVudERhdGEtPiVzKCkuY29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwg
Y2xpZW50RGF0YS0+JXMoKS5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAorIiIiJSAoYnVpbHRpbk5h
bWUsIGJ1aWx0aW5OYW1lKSkKKworYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ9Cisl
c19GT1JFQUNIX0JVSUxUSU4oREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQorI3VuZGVmIERFRklO
RV9CVUlMVElOX0dFTkVSQVRPUgogfQogCi0iIiIpCisiIiIlIChtYWNyb1ByZWZpeCkpCiAKIGJ1
aWx0aW5zSGVhZGVyLmNsb3NlKCkKIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24uY2xvc2UoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCAzYjkwNTJlZjhmZDg2NTM0ZjA2Y2YxYjkzOWY0NjBhZTZlNjMw
ZDkxLi42MDBjNWU3NTQ0ODQzZmJiZTY4YjNlZTcxZWZlOTlkMzQ1MGQ3OWRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMzMzNiw2ICszMzM2LDEwIEBAIHNldChXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vV29ya2VyR2xv
CiBzZXQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JzLmlkbCkKIHNldChJRExfQVRUUklCVVRFU19GSUxFICR7V0VCQ09SRV9ESVJ9L2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQpCiAKK3NldChXRUJDT1JFX0pTX0JVSUxUSU5T
CisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCisp
CisKIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9FWElTVFMoKQogCiAjIEdlbmVyYXRl
IEluc3BlY3Rvck92ZXJsYXlQYWdlLmgKQEAgLTM1NTUsNiArMzU1OSwxOCBAQCBHRU5FUkFURV9C
SU5ESU5HUyhXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUwogICAgICR7U1VQUExFTUVOVEFMX0RF
UEVOREVOQ1lfRklMRX0KICAgICAke0FERElUSU9OQUxfQklORElOR1NfREVQRU5ERU5DSUVTfSkK
IAorIyBXZWJDb3JlIEpTIEJ1aWx0aW5zCitmb3JlYWNoIChfYnVpbHRpbmpzICR7V0VCQ09SRV9K
U19CVUlMVElOU30pCisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19idWlsdGlu
anN9IE5BTUVfV0UpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnMuaCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5jcHAKKyAgICAgICAgTUFJTl9E
RVBFTkRFTkNZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9nZW5lcmF0ZS1qcy1idWlsdGlu
cworICAgICAgICBERVBFTkRTICR7X2J1aWx0aW5qc30KKyAgICAgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMtYnVp
bHRpbnMgLS1pbnB1dCAke19idWlsdGluanN9IC0tb3V0cHV0X2RpciAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0gLS13ZWJjb3JlX2RpciAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0K
KyAgICAgICAgVkVSQkFUSU0pCisgICAgQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0pTJHtfbmFtZX0uaCAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5oKQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVT
KCR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9KUyR7X25hbWV9LmNwcCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5jcHApCitlbmRmb3JlYWNoICgp
CiAKIEFERF9TT1VSQ0VfV0VCQ09SRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke1dFQkNPUkVfRElS
fS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAgTWF0aE1MTmFtZXMuY3BwKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCAxNWI4NDMwZjY4ODA1YzQyYjkwM2VlMGI5NWYxZWI4N2Fm
MzMwYzRlLi44YTk4ZjgwYjFkYmM2OTg0MzUxZmI2YjljMzFhMjg2Y2ExYmZmNDBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTc5MCw2ICs3OTAsNyBAQCBhbGwgOiBcCiAgICAg
JChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgXAogICAgICQoSlNfRE9NX0hF
QURFUlMpIFwKICAgICAkKFdFQl9ET01fSEVBREVSUykgXAorICAgICQoV0VCQ09SRV9CVUlMVElO
UykgXAogICAgIFwKICAgICBDU1NHcmFtbWFyLmNwcCBcCiAgICAgQ1NTUHJvcGVydHlOYW1lcy5j
cHAgXApAQCAtMTI0NCw2ICsxMjQ1LDE2IEBAIFdlYlJlcGxheUlucHV0cy5oIDogJChJTlBVVF9H
RU5FUkFUT1JfU1BFQ0lGSUNBVElPTlMpICQoSU5QVVRfR0VORVJBVE9SX1NDUklQVFMpCiAKIC1p
bmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRlcCkKIAorIyBXZWJDb3JlIEpTIEJ1aWx0aW5z
CisKK1dFQkNPUkVfSlNfQlVJTFRJTlMgPSBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3N0cmVh
bXMvUmVhZGFibGVTdHJlYW0uanMKKworYWxsIDogJChXRUJDT1JFX0JVSUxUSU5TOiUuanM9JUJ1
aWx0aW5zLmgpCisKKyVCdWlsdGlucy5oOiAlLmpzCisJJChQWVRIT04pICQoV2ViQ29yZSkvZ2Vu
ZXJhdGUtanMtYnVpbHRpbnMgLS1pbnB1dCAkPCAtLXdlYmNvcmVfZGlyICQoV2ViQ29yZSkKKwog
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogIyBNYWMtc3BlY2lmaWMgcnVsZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J1aWx0aW5zL0J1aWx0aW5V
dGlscy5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRp
blV0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY3NDE0YjgzMDkzOGRkNmM1YTg2YjI1YmU2ZGY2NzUyNTY4
NWNjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3Jl
X0ZXRF9CdWlsdGluVXRpbHNfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9CdWlsdGluVXRpbHNfaAor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0J1aWx0aW5VdGlscy5oPgorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0
ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzEyZDliZjA1
ODg0ZjNmNzk5OTI5ZWQ2YzE0NWYwYjNlNWUxNjk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGVfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9VbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvcnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJk
aW5nSGVhZGVycy9ydW50aW1lL0NvbnN0cnVjdEFiaWxpdHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGRjYWRj
YzkzZmI2ZTU3OTc5NDFiMjVjZDA0ZTEyOTUwNWNiYWM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5LmgK
QEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0NvbnN0cnVjdEFiaWxpdHlfaAor
I2RlZmluZSBXZWJDb3JlX0ZXRF9Db25zdHJ1Y3RBYmlsaXR5X2gKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db25zdHJ1Y3RBYmlsaXR5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCmluZGV4IDg2M2MyNjQzMThjNTQx
MjBhNzA4ODkxYTFjZGFjNTNmMDY4Y2IwZDAuLjZhYzI1OTVhYWJkNWJhZjY1NDhjZWJjZDhhMzJh
YjAwZGE4MGQyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtLmlkbApAQCAtMzYsNyArMzYsNyBAQAogICAgIFtSYWlzZXNFeGNlcHRpb25d
IFByb21pc2UgY2FuY2VsKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgYW55IHJlYXNvbik7
CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gUmVhZGFibGVTdHJlYW1SZWFkZXIgZ2V0UmVhZGVyKCk7
CiAgICAgW0N1c3RvbV0gUHJvbWlzZSBwaXBlVG8oYW55IHN0cmVhbXMsIGFueSBvcHRpb25zKTsK
LSAgICBbQ3VzdG9tXSBPYmplY3QgcGlwZVRocm91Z2goYW55IGRlc3QsIGFueSBvcHRpb25zKTsK
KyAgICBbSlNCdWlsdGluXSBPYmplY3QgcGlwZVRocm91Z2goYW55IGRlc3QsIGFueSBvcHRpb25z
KTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGxvY2tlZDsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2M2MzJmNThkMWJkZjViOTc1ZDUyZDZjNzRkZjM3MGI3Y2FiNmNjMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwpA
QCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZnVuY3Rpb24gcGlwZVRo
cm91Z2goc3RyZWFtcywgb3B0aW9ucykKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICB0aGlz
LnBpcGVUbyhzdHJlYW1zLndyaXRhYmxlLCBvcHRpb25zKTsKKyAgICByZXR1cm4gc3RyZWFtcy5y
ZWFkYWJsZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVh
ZGFibGVTdHJlYW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFk
YWJsZVN0cmVhbUN1c3RvbS5jcHAKaW5kZXggMzQ4ZDE2YjJmZWJlNzk4N2QyZGQ2NmY1Y2M4NjY1
ZjVhN2MwZWU0YS4uODk1ZTAzZGE2Yjk0ZDM1MDNhM2ExNjliYzYxYmY4NGNhMTk1M2E0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1
c3RvbS5jcHAKQEAgLTUzLDEyICs1Myw2IEBAIEpTVmFsdWUgSlNSZWFkYWJsZVN0cmVhbTo6cGlw
ZVRvKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlv
bihleGVjLCBlcnJvcik7CiB9CiAKLUpTVmFsdWUgSlNSZWFkYWJsZVN0cmVhbTo6cGlwZVRocm91
Z2goRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgZXJyb3IgPSBjcmVhdGVFcnJvcihl
eGVjLCBBU0NJSUxpdGVyYWwoInBpcGVUaHJvdWdoIGlzIG5vdCBpbXBsZW1lbnRlZCIpKTsKLSAg
ICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBlcnJvcik7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNDMwMmQ2OGU1YzhjNmQ3ODdkNDcy
NjI0MTRiY2ViOThkMjJlMDE5ZS4uYWM4OWFmM2I1NmNjYjY3NDFiNTQzMmI1M2IxZmJmMWYwYTA1
Y2U3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVu
dERhdGEuaApAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBXZWJDb3JlSlNDbGllbnREYXRhX2gK
IAogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFt
QnVpbHRpbnNXcmFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC0zNSw3ICszNiwxMCBAQCBjbGFzcyBXZWJDb3JlSlNDbGllbnREYXRhIDogcHVibGljIEpTQzo6
Vk06OkNsaWVudERhdGEgewogICAgIGZyaWVuZCB2b2lkIGluaXROb3JtYWxXb3JsZENsaWVudERh
dGEoSlNDOjpWTSopOwogCiBwdWJsaWM6Ci0gICAgV2ViQ29yZUpTQ2xpZW50RGF0YSgpCisgICAg
V2ViQ29yZUpTQ2xpZW50RGF0YShKU0M6OlZNJiB2bSkKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkp
CisgICAgICAgIDogbV9yZWFkYWJsZVN0cmVhbUJ1aWx0aW5zKCZ2bSkKKyNlbmRpZgogICAgIHsK
ICAgICB9CiAKQEAgLTcxLDE0ICs3NSwyMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fd29ybGRTZXQu
cmVtb3ZlKCZ3b3JsZCk7CiAgICAgfQogCisjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorICAgIFJl
YWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyJiByZWFkYWJsZVN0cmVhbUJ1aWx0aW5zKCkgeyBy
ZXR1cm4gbV9yZWFkYWJsZVN0cmVhbUJ1aWx0aW5zOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICBIYXNoU2V0PERPTVdyYXBwZXJXb3JsZCo+IG1fd29ybGRTZXQ7CiAgICAgUmVmUHRyPERPTVdy
YXBwZXJXb3JsZD4gbV9ub3JtYWxXb3JsZDsKKworI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKKyAg
ICBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciBtX3JlYWRhYmxlU3RyZWFtQnVpbHRpbnM7
CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIGluaXROb3JtYWxXb3JsZENsaWVudERhdGEoSlND
OjpWTSogdm0pCiB7Ci0gICAgV2ViQ29yZUpTQ2xpZW50RGF0YSogd2ViQ29yZUpTQ2xpZW50RGF0
YSA9IG5ldyBXZWJDb3JlSlNDbGllbnREYXRhOworICAgIFdlYkNvcmVKU0NsaWVudERhdGEqIHdl
YkNvcmVKU0NsaWVudERhdGEgPSBuZXcgV2ViQ29yZUpTQ2xpZW50RGF0YSgqdm0pOwogICAgIHZt
LT5jbGllbnREYXRhID0gd2ViQ29yZUpTQ2xpZW50RGF0YTsgLy8gflZNIGRlbGV0ZXMgdGhpcyBw
b2ludGVyLgogICAgIHdlYkNvcmVKU0NsaWVudERhdGEtPm1fbm9ybWFsV29ybGQgPSBET01XcmFw
cGVyV29ybGQ6OmNyZWF0ZSgqdm0sIHRydWUpOwogICAgIHZtLT5tX3R5cGVkQXJyYXlDb250cm9s
bGVyID0gYWRvcHRSZWYobmV3IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5k
ZXggZThlZWViYmU4MjJjZTZlNTJjZmJjMjlmYWJiN2RlMzYzZWI3NDkzYS4uZGYwMzAyN2EzN2U2
NTc3NGEyZDViYWI1Mzk4ZDJlODJiYWI3YzJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTU0OCw2ICs1NDgsMTEgQEAg
c3ViIEdldEF0dHJpYnV0ZVNldHRlck5hbWUKIHN1YiBHZXRGdW5jdGlvbk5hbWUKIHsKICAgICBt
eSAoJGNsYXNzTmFtZSwgJGZ1bmN0aW9uKSA9IEBfOworCisgICAgaWYgKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0pIHsKKyAgICAgICAgcmV0
dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KHN1YnN0ciAkY2xhc3NOYW1lLCAyKSAuICRj
b2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKSAuICJD
b2RlR2VuZXJhdG9yIjsKKyAgICB9CisKICAgICBteSAka2luZCA9ICRmdW5jdGlvbi0+aXNTdGF0
aWMgPyAiQ29uc3RydWN0b3IiIDogIlByb3RvdHlwZSI7CiAgICAgcmV0dXJuICRjb2RlR2VuZXJh
dG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gJGtpbmQgLiAiRnVuY3Rpb24iIC4gJGNvZGVH
ZW5lcmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpOwogfQpAQCAt
ODQ5LDYgKzg1NCw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIEFkZENsYXNzRm9yd2FyZElm
TmVlZGVkKCJKU0RPTVdpbmRvd1NoZWxsIikgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRv
dyI7CiAgICAgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQoIkpTRGljdGlvbmFyeSIpIGlmICRjb2Rl
R2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVGVtcGxhdGUoJGludGVyZmFjZSwgIkV2ZW50Iik7CiAK
KyAgICAkaGVhZGVySW5jbHVkZXN7JGludGVyZmFjZU5hbWUgLiAiQnVpbHRpbnMuaCJ9ID0gMSBp
ZiBVc2VKU0J1aWx0aW5zKCRpbnRlcmZhY2UpOworCiAgICAgbXkgJGV4cG9ydExhYmVsID0gRXhw
b3J0TGFiZWxGb3JDbGFzcygkY2xhc3NOYW1lKTsKIAogICAgICMgQ2xhc3MgZGVjbGFyYXRpb24K
QEAgLTE3MzgsNiArMTc0NSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICBA
aW1wbENvbnRlbnQgPSAoKTsKIAorICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4jaW5jbHVkZSBc
IiIgLiAkaW50ZXJmYWNlTmFtZSAuICJCdWlsdGlucy5jcHBcIlxuIikgaWYgVXNlSlNCdWlsdGlu
cygkaW50ZXJmYWNlKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxudXNpbmcgbmFtZXNwYWNl
IEpTQztcblxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJuYW1lc3BhY2UgV2ViQ29yZSB7
XG5cbiIpOwogCkBAIC0xNzUyLDYgKzE3NjAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSAmJiAkZnVu
Y3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDE7CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhlYWRl
ciJ9OwogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbUJpbmRpbmcifTsKKyAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifTsKIAogICAg
ICAgICAgICAgbXkgJG5lZWRzQXBwbGVDb3B5cmlnaHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFwcGxlQ29weXJpZ2h0In07CiAgICAgICAgICAgICBpZiAo
JG5lZWRzQXBwbGVDb3B5cmlnaHQpIHsKQEAgLTE5MTAsMTIgKzE5MTksNyBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTGVuZ3RoID0gR2V0RnVu
Y3Rpb25MZW5ndGgoJGZ1bmN0aW9uKTsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRm
dW5jdGlvbkxlbmd0aCk7CiAKLSAgICAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwotICAgICAg
ICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRlIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3REZWxldGFibGUifTsKLSAgICAgICAgICAgIHB1
c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFibGUifTsKLSAgICAgICAgICAgIHB1c2goQHNwZWNp
YWxzLCAiSlNDOjpGdW5jdGlvbiIpOwotICAgICAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNwZWNp
YWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwotICAgICAgICAgICAgcHVz
aChAaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CisgICAgICAgICAgICBwdXNoKEBoYXNoU3BlY2lh
bHMsIENvbXB1dGVGdW5jdGlvblNwZWNpYWwoJGludGVyZmFjZSwgJGZ1bmN0aW9uKSk7CiAKICAg
ICAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKICAgICAgICAgICAgIGlmICgkY29uZGl0aW9u
YWwpIHsKQEAgLTE5ODYsMTQgKzE5OTAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICBteSAkZnVuY3Rpb25MZW5ndGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkZnVuY3Rpb24p
OwogICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkZnVuY3Rpb25MZW5ndGgpOwogCi0gICAgICAg
IG15IEBzcGVjaWFscyA9ICgpOwotICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUi
KSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdERlbGV0
YWJsZSJ9Ci0gICAgICAgICAgIHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiVW5mb3JnZWFibGUifQotICAgICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiVW5mb3JnZWFibGUifTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMsICJE
b250RW51bSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Tm90RW51bWVyYWJsZSJ9OwotICAgICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6RnVuY3Rpb24i
KTsKLSAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBA
c3BlY2lhbHMpIDogIjAiOwotICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsK
KyAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCBDb21wdXRlRnVuY3Rpb25TcGVjaWFsKCRpbnRl
cmZhY2UsICRmdW5jdGlvbikpOwogCiAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKICAgICAg
ICAgaWYgKCRjb25kaXRpb25hbCkgewpAQCAtMjc3NCw2ICsyNzcxLDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgbXkgJGluQXBwbGVDb3B5cmlnaHQgPSAwOwogICAgICAg
ICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAgICAg
ICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tQmluZGluZyJ9OworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9OwogICAgICAgICAgICAgbXkg
JG5lZWRzQXBwbGVDb3B5cmlnaHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkFwcGxlQ29weXJpZ2h0In07CiAgICAgICAgICAgICBpZiAoJG5lZWRzQXBwbGVD
b3B5cmlnaHQpIHsKICAgICAgICAgICAgICAgICBpZiAoISRpbkFwcGxlQ29weXJpZ2h0KSB7CkBA
IC00MjEyLDYgKzQyMTAsOCBAQCBzdWIgR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5CiAgICAg
ICAgIAogICAgICAgICBpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0Z1bmN0aW9uLykgewogICAg
ICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4i
OworICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQnVpbHRpbi8pIHsKKyAg
ICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRv
cj4iOwogICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRl
Z2VyLykgewogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICIiOwogICAgICAgICB9IGVs
c2UgewpAQCAtNDk2NCw0ICs0OTY0LDM0IEBAIHN1YiBIZWFkZXJOZWVkc1Byb3RvdHlwZURlY2xh
cmF0aW9uCiAgICAgcmV0dXJuIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpIHx8ICRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbU5hbWVkR2V0dGVyT25Qcm90b3R5
cGUifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21EZWZpbmVP
d25Qcm9wZXJ0eU9uUHJvdG90eXBlIn07CiB9CiAKK3N1YiBDb21wdXRlRnVuY3Rpb25TcGVjaWFs
Cit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0
OworCisgICAgbXkgQHNwZWNpYWxzID0gKCk7CisgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVs
ZXRlIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3RE
ZWxldGFibGUifQorICAgICAgIHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiVW5mb3JnZWFibGUifQorICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJVbmZvcmdlYWJsZSJ9OworICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0i
KSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1l
cmFibGUifTsKKyAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6QnVpbHRp
biIpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OkZ1
bmN0aW9uIik7CisgICAgfQorICAgIHJldHVybiAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAi
LCBAc3BlY2lhbHMpIDogIjAiOworfQorCitzdWIgVXNlSlNCdWlsdGlucworeworICAgIG15ICRp
bnRlcmZhY2UgPSBzaGlmdDsKKyAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNl
LT5mdW5jdGlvbnN9KSB7CisgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gMAorfQorCiAxOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXggMzhiN2UzM2U0ZmUy
OTkzNTdkYzRhMjQ4ZjY5OWI2NDg4MDJkMzhjOC4uYmUwMWFlZjQ0NWJiNDRjOWRkNjMwYTc4MzY3
NjRhOGNmZGJmN2E5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMudHh0CkBAIC03Myw2ICs3Myw3IEBAIEltcGxlbWVudGVkQXM9KgogSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IKIEludGVyZmFjZU5hbWU9KgogSXNXZWFrQ2FsbGJh
Y2sKK0pTQnVpbHRpbgogSlNDdXN0b21EZWZpbmVPd25Qcm9wZXJ0eQogSlNDdXN0b21EZWZpbmVP
d25Qcm9wZXJ0eU9uUHJvdG90eXBlCiBKU0N1c3RvbUZpbmFsaXplCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouY3BwCmluZGV4IGU0ZmViOGIwZGI5NGJlY2I2YTBkZjkxNzk2YmUzODk4MGNl
ODMyZmYuLmM3MTM0MWVkODVhY2M0YTM2ZTQ0MjM5OGM4NzdkNTA1Y2Y4Yzg1Y2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0xMTg5LDYgKzExODksMjYgQEAgdm9pZCB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBHRXJyb3IqKgogICAgIH0KIH0KIAordm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pz
X2J1aWx0aW5fbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lU
X0RPTV9JU19URVNUX09CSihzZWxmKSk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5qc0J1aWx0aW5NZXRob2QoKTsKK30KKwordm9p
ZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJL
aXRET01UZXN0T2JqKiBvYmpBcmcpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihz
ZWxmKSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChzdHJBcmcpOworICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihvYmpBcmcpKTsKKyAgICBXZWJDb3JlOjpUZXN0T2Jq
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFN0
ckFyZyA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChzdHJBcmcpOworICAgIFdlYkNvcmU6OlRlc3RP
YmoqIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOworICAgIGl0ZW0tPmpz
QnVpbHRpbk1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVk
T2JqQXJnKTsKK30KKwogdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfc2NyaXB0X3N0YXRl
X3ZvaWQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKaW5kZXggYTQz
Nzk0NGEzNzdmZDM3NTcxZGQ4MjYzOTRmM2YyYWM3Njk5YTA5MS4uZWFhYmM5ODA1NDJiNWQyZmQ5
NjIxZTdjMmZkNjQ1N2RhYWNmYTliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaApA
QCAtMjkxLDYgKzI5MSwyNyBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpf
bWV0aG9kX3dpdGhfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvcioqIGVy
cm9yKTsKIAogLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kOgor
ICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqCisgKiBTdGFiaWxpdHk6IFVuc3RhYmxl
CisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9qc19idWlsdGluX21l
dGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2pzX2J1aWx0aW5fbWV0aG9kX3dpdGhfYXJnczoKKyAqIEBzZWxmOiBBICNXZWJLaXRET01U
ZXN0T2JqCisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKKyAqIEBzdHJBcmc6IEEgI2djaGFyCisgKiBA
b2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgorICogU3RhYmlsaXR5OiBVbnN0YWJsZQor
KiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfanNfYnVpbHRpbl9tZXRo
b2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0
IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CisKKy8qKgogICogd2Vi
a2l0X2RvbV90ZXN0X29ial93aXRoX3NjcmlwdF9zdGF0ZV92b2lkOgogICogQHNlbGY6IEEgI1dl
YktpdERPTVRlc3RPYmoKICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDFkNzhhMTYzM2FjNzZlZDI0NTQ0NTQy
ZGFlMGQyOTJhMThmZjNlOTIuLmI1OWMwNGY0N2NiZTQwMDQxNzFiY2VlNzNlMWI1MjJkMTZhNjg3
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCkBAIC03Miw2ICs3Miw4IEBACiAjaW5jbHVkZSAiSlNUZXN0T2JqZWN0
Qy5oIgogI2VuZGlmCiAKKyNpbmNsdWRlICJUZXN0T2JqQnVpbHRpbnMuY3BwIgorCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MDgsNiArNjEwLDggQEAg
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVz
W10gPQogICAgIHsgImN1c3RvbU1ldGhvZFdpdGhBcmdzIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykgfSB9
LAogICAgIHsgImN1c3RvbUJpbmRpbmdNZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZCksIChpbnRwdHJfdCkgKDApIH0gfSwKICAg
ICB7ICJjdXN0b21CaW5kaW5nTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAo
MykgfSB9LAorICAgIHsgImpzQnVpbHRpbk1ldGhvZCIsIEpTQzo6QnVpbHRpbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KHRlc3RPYmpKc0J1
aWx0aW5NZXRob2RDb2RlR2VuZXJhdG9yKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImpz
QnVpbHRpbk1ldGhvZFdpdGhBcmdzIiwgSlNDOjpCdWlsdGluLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4odGVzdE9iakpzQnVpbHRpbk1ldGhv
ZFdpdGhBcmdzQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkgKDMpIH0gfSwKICAgICB7ICJhZGRF
dmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2
ZW50TGlzdGVuZXIpLCAoaW50cHRyX3QpICgyKSB9IH0sCiAgICAgeyAicmVtb3ZlRXZlbnRMaXN0
ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExp
c3RlbmVyKSwgKGludHB0cl90KSAoMikgfSB9LAogICAgIHsgIndpdGhTY3JpcHRTdGF0ZVZvaWQi
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9p
ZCksIChpbnRwdHJfdCkgKDApIH0gfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCAwYmM3ZmM2YTEyYmJkMjg0NTdjODZh
ZWM0OWMzZGRlZmUwNjMxNDAwLi5kNTdkMDBlYmU0MjFkMzU3MjZjMTA5NzYxMjNlYmEzYjI0ZGMw
NjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIu
aCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCisjaW5jbHVkZSAiVGVzdE9iakJ1aWx0aW5zLmgiCiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaAppbmRleCAxNmJhYzMxZWRkMzBlNDJkMmQwZjg5M2JiZmUyNjZmYzU2MGYxY2NiLi4w
MzFkZDdmN2IzYjVhYzhlM2E3ZWQxYjc3M2VhMDVkYzgxOGYxYTM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBA
IC0xMzksNiArMTM5LDggQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01UZXN0T2JqIDog
RE9NT2JqZWN0CiAtICh2b2lkKW1ldGhvZFdpdGhFeGNlcHRpb247CiAtICh2b2lkKWN1c3RvbU1l
dGhvZDsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzoo
TlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAodm9pZClq
c0J1aWx0aW5NZXRob2Q7CistICh2b2lkKWpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzOihpbnQpbG9u
Z0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFy
ZzsKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihp
ZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJl
OwogLSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6
KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1
cmU7CiAtICh2b2lkKXdpdGhTY3JpcHRTdGF0ZVZvaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCAyYTk1
NTM1MjNjYTdjY2Q2OTU1YzQyYzU4MWIwODk3NDEzNzdmZWY4Li4zNWRhMDlhOGQ3Y2VkM2FmMWRm
MDAwMzVhNmQ5MTgwZmU0Y2Q2MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTkyNSw2ICs5MjUsMTgg
QEAKICAgICBJTVBMLT5jdXN0b21NZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUo
b2JqQXJnKSk7CiB9CiAKKy0gKHZvaWQpanNCdWlsdGluTWV0aG9kCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmpzQnVpbHRpbk1ldGhvZCgp
OworfQorCistICh2b2lkKWpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworeworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5qc0J1aWx0
aW5NZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7Cit9CisKIC0g
KHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9N
RXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCiB7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGMxZmY4YmE5ZTEz
NWNkMzg5OWZmOTIyMDZlYWY1MGEwY2M5MjU0NjIuLjYyMjMzOGE0ODdlZDdjNjQ2ZjYxNDc4NDIx
ZGYzN2U0OTA0NThmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE9iai5pZGwKQEAgLTExNiw2ICsxMTYsMTAgQEAgZW51bSBfb3B0aW9uYWwgeyAi
IiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9
OwogICAgIFtDdXN0b21CaW5kaW5nXSB2b2lkIGN1c3RvbUJpbmRpbmdNZXRob2QoKTsKICAgICBb
Q3VzdG9tQmluZGluZ10gdm9pZCBjdXN0b21CaW5kaW5nTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25n
QXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CiAKKyAgICAvLyAnSlNCdWls
dGluJyBleHRlbmRlZCBhdHRyaWJ1dGUKKyAgICBbSlNCdWlsdGluXSB2b2lkIGpzQnVpbHRpbk1l
dGhvZCgpOworICAgIFtKU0J1aWx0aW5dIHZvaWQganNCdWlsdGluTWV0aG9kV2l0aEFyZ3MobG9u
ZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CisKICAgICB2b2lk
IGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIs
IG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgdm9pZCByZW1vdmVFdmVudExpc3Rl
bmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCBvcHRpb25hbCBib29s
ZWFuIHVzZUNhcHR1cmUpOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mb287CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucyBiL1NvdXJjZS9XZWJD
b3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MjJmZDhkODI5OTk3MjJhYjZm
Y2U4ZjVkNDQwOWJhOWFiZTMwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9n
ZW5lcmF0ZS1qcy1idWlsdGlucwpAQCAtMCwwICsxLDE0MSBAQAorIyEvdXNyL2Jpbi9weXRob24K
KyMgQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgZmlsZWNtcAoraW1wb3J0
IG9zCitpbXBvcnQgc3VicHJvY2VzcworCitmcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKKwor
CitwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCitwYXJzZXIuYWRkX2FyZ3VtZW50
KCctLW91dHB1dF9kaXInLCBkZWZhdWx0PScnLCBoZWxwPSdvdXRwdXQgZGlyZWN0b3J5JykKK3Bh
cnNlci5hZGRfYXJndW1lbnQoJy0taW5wdXQnLCBoZWxwPSdwYXRoIHRvIGlucHV0IEpTIGZpbGUn
KQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLS13ZWJjb3JlX2RpcicsIGhlbHA9J3BhdGggdG8gV2Vi
Q29yZSBkaXJlY3RvcnknKQorCithcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorZmlsZW5hbWUg
PSBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoYXJncy5pbnB1dCkpWzBdCisKKyMg
Z2VuZXJhdGUgSlMgYnVpbHRpbnMKK25hbWVzcGFjZSA9ICJXZWJDb3JlIgorcHJlZml4ID0gIldF
QkNPUkUiICsgZmlsZW5hbWUudXBwZXIoKQorb3V0cHV0ID0gb3MucGF0aC5qb2luKGFyZ3Mub3V0
cHV0X2RpciwgZmlsZW5hbWUgKyAiQnVpbHRpbnMiKQoranNjX2dlbmVyYXRlX2J1aWx0aW5fc2Ny
aXB0ID0gb3MucGF0aC5qb2luKGFyZ3Mud2ViY29yZV9kaXIsICIuLiIsICJKYXZhU2NyaXB0Q29y
ZSIsICJnZW5lcmF0ZS1qcy1idWlsdGlucyIpCisKK3N1YnByb2Nlc3MuY2FsbChbInB5dGhvbiIs
IGpzY19nZW5lcmF0ZV9idWlsdGluX3NjcmlwdCwgIi0tb3V0cHV0Iiwgb3V0cHV0LCAiLS1uYW1l
c3BhY2UiLCBuYW1lc3BhY2UsICItLXByZWZpeCIsIHByZWZpeCwgYXJncy5pbnB1dF0sIHN0ZGVy
cj1zdWJwcm9jZXNzLlNURE9VVCkKKworIyBnZW5lcmF0ZSBKUyBidWlsdGlucyB3cmFwcGVyCitv
dXRwdXRfYmFzZSA9IG91dHB1dCArICJXcmFwcGVyIgorCitidWlsdGluc1dyYXBwZXJIZWFkZXIg
PSBvcGVuKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsICJ3IikKKworYnVpbHRpbnNXcmFwcGVySGVh
ZGVyLndyaXRlKFRlbXBsYXRlKAorIiIiCisvKiBHZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtanMtYnVp
bHRpbnMgZG8gbm90IGhhbmQgZWRpdC4gKi8KKworLyoKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKyNpZm5kZWYgJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXJfaAorI2RlZmluZSAk
e0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcl9oCisKKyNpbmNsdWRlICIke0ZpbGVuYW1lfUJ1aWx0
aW5zLmgiCisjaW5jbHVkZSA8Ynl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaD4K
KyNpbmNsdWRlIDxidWlsdGlucy9CdWlsdGluVXRpbHMuaD4KKyNpbmNsdWRlIDxydW50aW1lL0lk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyAke0ZpbGVuYW1lfUJ1
aWx0aW5zV3JhcHBlciA6IHByaXZhdGUgSlNDOjpXZWFrSGFuZGxlT3duZXIKK3sKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcihKU0M6OlZNKiB2bSkKKyAg
ICAgICAgOiBtX3ZtKCp2bSkKKyAgICAgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTl9GVU5D
VElPTl9OQU1FKElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUykKKyNkZWZpbmUgSU5JVElBTElaRV9C
VUlMVElOX1NPVVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKSAsIG1fIyNu
YW1lIyNTb3VyY2UoSlNDOjptYWtlU291cmNlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFs
KHNfIyNuYW1lLCBsZW5ndGgpKSkKKyAgICAgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihJ
TklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMpCisjdW5kZWYgSU5JVElBTElaRV9CVUlM
VElOX1NPVVJDRV9NRU1CRVJTCisgICAgeworICAgIH0KKworI2RlZmluZSBFWFBPU0VfQlVJTFRJ
Tl9FWEVDVVRBQkxFUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgXFwKKyAgICBKU0M6OlVu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBuYW1lIyNFeGVjdXRhYmxlKCk7IFxcCisgICAgY29u
c3QgSlNDOjpTb3VyY2VDb2RlJiBuYW1lIyNTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtXyMjbmFt
ZSMjU291cmNlOyB9CisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihFWFBPU0VfQlVJTFRJ
Tl9FWEVDVVRBQkxFUykKKyN1bmRlZiBFWFBPU0VfQlVJTFRJTl9FWEVDVVRBQkxFUworCisgICAg
JHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKERFQ0xBUkVfQlVJTFRJTl9J
REVOVElGSUVSX0FDQ0VTU09SKQorCitwcml2YXRlOgorICAgIEpTQzo6Vk0mIG1fdm07CisKKyAg
ICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoREVDTEFSRV9CVUlMVElO
X05BTUVTKQorCisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBm
dW5jdGlvbk5hbWUsIGxlbmd0aCkgXFwKKyAgICBKU0M6OlNvdXJjZUNvZGUgbV8jI25hbWUjI1Nv
dXJjZTtcXAorICAgIEpTQzo6V2VhazxKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlPiBt
XyMjbmFtZSMjRXhlY3V0YWJsZTsKKyAgICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOKERFQ0xB
UkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUykKKyN1bmRlZiBERUNMQVJFX0JVSUxUSU5fU09VUkNF
X01FTUJFUlMKKworfTsKKworI2RlZmluZSBERUZJTkVfQlVJTFRJTl9FWEVDVVRBQkxFUyhuYW1l
LCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgXFwKK2lubGluZSBKU0M6OlVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlKiAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcjo6bmFtZSMjRXhlY3V0YWJsZSgp
IFxcCit7XFwKKyAgICBpZiAoIW1fIyNuYW1lIyNFeGVjdXRhYmxlKVxcCisgICAgICAgIG1fIyNu
YW1lIyNFeGVjdXRhYmxlID0gSlNDOjpXZWFrPEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGU+KEpTQzo6Y3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUobV92bSwgbV8jI25hbWUjI1NvdXJjZSwg
ZnVuY3Rpb25OYW1lIyNQdWJsaWNOYW1lKCksIHNfIyNuYW1lIyNDb25zdHJ1Y3RBYmlsaXR5KSwg
dGhpcywgJm1fIyNuYW1lIyNFeGVjdXRhYmxlKTtcXAorICAgIHJldHVybiBtXyMjbmFtZSMjRXhl
Y3V0YWJsZS5nZXQoKTtcXAorfQorJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihERUZJTkVfQlVJ
TFRJTl9FWEVDVVRBQkxFUykKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9FWEVDVVRBQkxFUworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAke0ZpbGVuYW1lfUJ1aWx0aW5zV3Jh
cHBlcl9oCisiIiIpLnN1YnN0aXR1dGUoZGljdChGaWxlbmFtZT1maWxlbmFtZSwgUHJlZml4PXBy
ZWZpeCkpKQorCitidWlsdGluc1dyYXBwZXJIZWFkZXIuY2xvc2UoKQorCitpZiAobm90IG9zLnBh
dGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpIG9yIChub3QgZmlsZWNtcC5jbXAob3V0cHV0
X2Jhc2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiLCBzaGFsbG93PUZhbHNlKSk6Cisg
ICAgaWYgKG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpOgorICAgICAgICBvcy5y
ZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmgiKQorICAgIG9zLnJlbmFtZShvdXRwdXRfYmFzZSArICIu
aC50bXAiLCBvdXRwdXRfYmFzZSArICIuaCIpCitlbHNlOgorICAgIG9zLnJlbW92ZShvdXRwdXRf
YmFzZSArICIuaC50bXAiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGViMWRkNDUxNzQ4NDVjZDJmNDlhNmNlNGZhYzdkYjM5
M2RlMDQxY2QuLmFlMDNiNmQ0N2YxYWI5MzhlZDQ2MDM2YTQwZDdhNDU1NmU4M2QyNDQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxNS0wOS0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJs
ZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRh
YmxlU3RyZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBSZWJhc2VkIHRlc3QgdGhhdCBpcyBub3cgcGFzc2luZy4KKyAgICAgICAgQWRk
aW5nIG5ldyB0ZXN0cyB0byBpbXByb3ZlIHBpcGVUaHJvdWdoIGNvdmVyYWdlLgorCisgICAgICAg
ICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1j
aGVja3MtZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA5LTE3ICBKYXZpZXIgRmVybmFuZGV6ICA8amZl
cm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFJlbGF5b3V0
IHdoZW5ldmVyIEJveCBBbGlnbm1lbnQgcHJvcGVydGllcyBjaGFuZ2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMWUwNjFjYTkwNmQ0MjBmMTVmMTNkN2I0NTEwY2Y1M2VjZDIz
NmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJl
YW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFJlYWRh
YmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiAidGhpcyIg
aGFzIG5vIHBpcGVUbyBtZXRob2QgCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBl
VGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBwYXNzZWQgYXJndW1lbnQgaXMgbm90IGFuIG9iamVj
dCAKK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJv
dyB3aGVuIGNhbGxlZCBnZXR0ZXJzIGFyZSB0aHJvd2luZyAKK1BBU1MgUmVhZGFibGVTdHJlYW0u
cHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB3b3JrIHdpdGggbWlzc2luZyBwYXJhbWV0ZXJz
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBl
VGhyb3VnaC5odG1sIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRo
cm91Z2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjlhNjhiMzJiYzRiN2JiZWZmYjhjZDU3Njc0MzdiN2E1
YzRhODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1z
dHJlYW0tcGlwZVRocm91Z2guaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL2djLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIGlucHV0ID0geworICAgICAgICByZWFkYWJsZTogeyB9
LAorICAgICAgICB3cml0YWJsZTogeyB9CisgICAgfTsKKyAgICB2YXIgb3B0aW9ucyA9IHsgfTsK
KyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxl
U3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHVuZGVmaW5lZCwgaW5wdXQsIG9wdGlv
bnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7
IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKG51bGwsIGlucHV0LCBv
cHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9u
KCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCgxLCBpbnB1dCwg
b3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlv
bigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwoeyAicGlwZVRv
IjogInRlc3QiIH0sIGlucHV0LCBvcHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJv
dG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuICJ0aGlzIiBoYXMgbm8gcGlwZVRv
IG1ldGhvZCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvcHRpb25zID0geyB9Owor
ICAgIHZhciB0aGlzVmFsdWUgPSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgYXNz
ZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5w
cm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIG51bGwsIG9wdGlvbnMpOyB9KTsK
KyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxl
U3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgdW5kZWZpbmVkLCBv
cHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNo
b3VsZCB0aHJvdyB3aGVuIHBhc3NlZCBhcmd1bWVudCBpcyBub3QgYW4gb2JqZWN0Jyk7CisKK3Rl
c3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9wdGlvbnMgPSB7IH07CisgICAgdmFyIGVycm9yID0g
bmV3IFR5cGVFcnJvcigicG90YXRvIik7CisKKyAgICB2YXIgdGhpc1dyb25nVmFsdWUgPSB7Cisg
ICAgICAgIGdldCBwaXBlVG8oKSB7CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAgICAg
fQorICAgIH07CisgICAgYXNzZXJ0X3Rocm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxl
U3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNXcm9uZ1ZhbHVlLCB7IHJlYWRh
YmxlOiB7IH0sIHdyaXRhYmxlOiB7IH0gfSwgb3B0aW9ucyk7IH0pOworCisgICAgdmFyIHRoaXNW
YWx1ZSA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoKTsKKyAgICAgICAgfQorICAgIH07CisgICAgdmFyIHdyb25nSW5wdXQgPSB7
CisgICAgICAgIHJlYWRhYmxlOiB7IH0sCisgICAgICAgIGdldCB3cml0YWJsZSgpIHsKKyAgICAg
ICAgICAgIHRocm93IGVycm9yOworICAgICAgICB9CisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dz
KGVycm9yLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdo
LmNhbGwodGhpc1ZhbHVlLCB3cm9uZ0lucHV0LCBvcHRpb25zKTsgfSk7CisKKyAgICB2YXIgd3Jv
bmdJbnB1dDIgPSB7CisgICAgICAgIGdldCByZWFkYWJsZSgpIHsKKyAgICAgICAgICAgIHRocm93
IGVycm9yOworICAgICAgICB9LAorICAgICAgICB3cml0YWJsZTogeyB9CisgICAgfTsKKyAgICB2
YXIgdGhpc1ZhbHVlMiA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsgfQorICAgIH07
CisgICAgYXNzZXJ0X3Rocm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnBy
b3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZTIsIHdyb25nSW5wdXQyLCBvcHRpb25z
KTsgfSk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0
aHJvdyB3aGVuIGNhbGxlZCBnZXR0ZXJzIGFyZSB0aHJvd2luZycpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICAgIHZhciBjb3VudCA9IDA7CisgICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAgICAg
cGlwZVRvOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgIH0KKyAg
ICB9OworCisgICAgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhp
c1ZhbHVlLCB7IHJlYWRhYmxlOiB7IH0sIHdyaXRhYmxlOiB7IH0gfSk7CisgICAgUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHJlYWRhYmxlOiB7
IH0gfSwgeyB9KTsKKyAgICBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2Fs
bCh0aGlzVmFsdWUsIHsgd3JpdGFibGU6IHsgfSB9LCB7IH0pOworCisgICAgYXNzZXJ0X2VxdWFs
cyhjb3VudCwgMyk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNo
b3VsZCB3b3JrIHdpdGggbWlzc2luZyBwYXJhbWV0ZXJzJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQt
Y2hlY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxl
bWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQKaW5kZXggMzczNTc3ZWI5ODIxZDIw
NzU0ZGU4NzcxYTYwZmFlNTIzOGM5YjVmNi4uYjE5N2QxNjU3YjEwZjcwMDM0ZjJjMmE2NDYxNmY1
YmMyZmYyNWZkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1w
bGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0
CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFtUmVhZGVy
IGNvbnN0cnVjdG9yIGluZGlyZWN0bHkgCiBQQVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlciBjb25zdHJ1Y3RvciBpbmRpcmVjdGx5IAotRkFJTCBSZWFkYWJsZVN0cmVhbS5w
cm90b3R5cGUucGlwZVRocm91Z2ggd29ya3MgZ2VuZXJpY2FsbHkgb24gaXRzIHRoaXMgYW5kIGl0
cyBhcmd1bWVudHMgQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbS5waXBlVGhyb3VnaCBvbiBp
bnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW0KK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBl
LnBpcGVUaHJvdWdoIHdvcmtzIGdlbmVyaWNhbGx5IG9uIGl0cyB0aGlzIGFuZCBpdHMgYXJndW1l
bnRzIAogUEFTUyBSZWFkYWJsZVN0cmVhbVJlYWRlciBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIG9u
IGl0cyBhcmd1bWVudCAKIEZBSUwgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNsb3Nl
ZCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFs
dWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgZ2V0dGVyTmFtZSku
Z2V0JykKIFBBU1MgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNhbmNlbCBlbmZvcmNl
cyBhIGJyYW5kIGNoZWNrIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261573</attachid>
            <date>2015-09-19 03:37:57 -0700</date>
            <delta_ts>2015-09-20 00:48:07 -0700</delta_ts>
            <desc>Trying to fix mac build for landing</desc>
            <filename>bug-147556-20150919073742.patch</filename>
            <type>text/plain</type>
            <size>67055</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTM4YzU2NDIxMDg1MmYxMDUxZTFhOGI0NzRkMmQyZGRjYWYxZWE1Li5lM2IzYThjZGZlZjBkNjYy
Yzg2OThhMGU4ZDE5NjcwOTRiMzA0M2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNhYmxl
IGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGluTmFt
ZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVzLgor
ICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRpbmcg
YnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1dGFi
bGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhl
Y3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
QnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJu
YWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6OkJ1
aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6
IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFibGVz
LmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6Cisg
ICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0xOCAgU3Vrb2xzYWsg
U2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAogICAgICAgICBSZW1vdmUgZHVwbGlj
YXRlIGNvZGUgaW4gdGhlIFdlYkFzc2VtYmx5IHBhcnNlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU2YjRjODBh
OTBkYWMwMTE2ZDBmN2VjMzFlZDk3OTMzOWExN2U1YWIuLjYxZDQxNzQ2MmJiOWVkNGExMTg5NWU1
Njk5MmY0ZjM1YTRmZDc1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNS0wOS0x
OSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAg
IFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3RyZWFtIHBpcGVUaHJvdWdoCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc1NTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGRpbmcgaW5pdGlhbCBz
dXBwb3J0IGZvciBKUyBidWlsdGlucyB3aXRoaW4gV2ViQ29yZS4KKyAgICAgICAgVGhpcyBwYXRj
aCBhbGxvd3MgaW1wbGVtZW50aW5nIElETCBpbnRlcmZhY2UgbWV0aG9kcyBpbiBKUywgYnkgdXNp
bmcgdGhlIG5ldyBKU0J1aWx0aW4ga2V5d29yZC4KKyAgICAgICAgKE5vIHN1cHBvcnQgeWV0IGZv
ciBwcml2YXRlIGlkZW50aWZpZXJzLCBjb25zdHJ1Y3RvcnMgb3IgYWNjZXNzb3JzKS4KKyAgICAg
ICAgSW50ZWdyYXRpb24gb2YgdGhlIGJ1aWx0LWluIGV4ZWN1dGFibGVzIGFuZCBuYW1lcyBpcyBp
bXBsZW1lbnRlZCB3aXRoaW4gV2ViQ29yZUpTQ2xpZW50RGF0YS4KKyAgICAgICAgVHdvIGZpbGVz
IGFyZSBnZW5lcmF0ZWQgZm9yIGVhY2ggSlMgYnVpbHRpbiBmaWxlOgorICAgICAgICAtIGJ1aWx0
aW4gaC9jcHAgZmlsZXMgc2ltaWxhciB0byBKU0NCdWlsdGlucy5jcHAvLmgsIGdlbmVyYXRlZCB0
aHJvdWdoIFdlYkNvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMgZnJvbSBKYXZhU2NyaXB0Q29yZS9n
ZW5lcmF0ZS1qcy1idWlsdGlucykKKyAgICAgICAgLSBBIGJ1aWx0aW4gd3JhcHBlciBmaWxlIG1p
bWlja2luZyBCdWlsdGluRXhlY3V0YWJsZXMgKGdlbmVyYXRlZCBmcm9tIFdlYkNvcmUvZ2VuZXJh
dGUtanMtYnVpbHRpbnMpCisgICAgICAgIENvbnRyYXJ5IHRvIEpTQywgZWFjaCBqcyBmaWxlIGlz
IGdlbmVyYXRpbmcgaXRzIG93biBjcHAvaCBmaWxlLgorICAgICAgICBUaGlzIGFsbG93cyBpbmNs
dWRpbmcgdGhvc2UgZmlsZXMgd2l0aGluIHRoZSBKU1hYLmNwcC8uaCBmaWxlcyBnZW5lcmF0ZWQg
ZnJvbSB0aGUgSURMIHdoZXJlIGNvbXBpbGF0aW9uIGd1YXJkIG1heSB0YWtlIGVmZmVjdC4KKwor
ICAgICAgICBEaXNhYmxlZCBHT2JqZWN0IGJpbmRpbmcgZm9yIEpTQnVpbHRpbiBtZXRob2RzLgor
CisgICAgICAgIFRlc3Q6IHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLmh0bWwK
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBUcmlnZ2VyaW5nIGdlbmVyYXRlLWpzLWJ1aWx0
aW5zIGZvciBKUyBmaWxlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBEaXR0by4K
KyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9idWlsdGlucy9CdWlsdGluVXRpbHMuaDogQWRk
ZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGUuaDogQWRkZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcnVudGlt
ZS9Db25zdHJ1Y3RBYmlsaXR5Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5pZGw6IE1hcmtpbmcgcGlwZVRocm91Z2ggYXMgSlMgYnVpbHRpbgorICAg
ICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qczogQWRkZWQuCisgICAgICAg
IChwaXBlVGhyb3VnaCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1
c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oOiBB
ZGRpbmcgUmVhZGFibGVTdHJlYW1CdWlsdGluc1dyYXBwZXIgdG8gc3RvcmUgUmVhZGFibGVTdHJl
YW0gYnVpbHRpbiBleGVjdXRhYmxlCisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlSlNDbGllbnRE
YXRhOjpXZWJDb3JlSlNDbGllbnREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVKU0Ns
aWVudERhdGE6OnJlYWRhYmxlU3RyZWFtQnVpbHRpbnMpOgorICAgICAgICAoV2ViQ29yZTo6aW5p
dE5vcm1hbFdvcmxkQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yR09iamVjdC5wbTogRGlzYWJsZWQgR09iamVjdCBiaW5kaW5nIGZvciBKU0J1aWx0
aW4gbWV0aG9kcy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bTogQWRkaW5nIHN1cHBvcnQgZm9yIEpTQnVpbHRpbiBrZXl3b3JkLgorICAgICAgICAoR2V0RnVu
Y3Rpb25OYW1lKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRl
SW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5KToK
KyAgICAgICAgKENvbXB1dGVGdW5jdGlvblNwZWNpYWwpOgorICAgICAgICAoVXNlSlNCdWlsdGlu
cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDogQWRkaW5n
IEpTQnVpbHRpbi4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJL
aXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfanNfYnVpbHRp
bl9tZXRob2QpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9qc19idWlsdGluX21ldGhv
ZF93aXRoX2FyZ3MpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAg
ICAgICgtW0RPTVRlc3RPYmoganNCdWlsdGluTWV0aG9kXSk6CisgICAgICAgICgtW0RPTVRlc3RP
YmoganNCdWlsdGluTWV0aG9kV2l0aEFyZ3M6c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogZ2VuZXJhdGUtanMt
YnVpbHRpbnM6IEFkZGVkLgorCiAyMDE1LTA5LTE4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVl
dWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTg5OTA4
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NTk5NThjMzBkYzc4OTRmYmRjODUz
ZWZhM2M2NjhlMjk0MzI3M2Y0Li5hNWRkMzZiYjExNDc0OTE3Y2MzMjllODljMGE5MzAyZjE0NDE2
NjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTQ0LDYgKzk0NCw3IEBACiAJ
CTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQUY3MzgyQjE4QkJCRjkyMDA4
QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTM3MUQ4NDJEMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5
bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcx
RDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgKi87IH07CiAJCTQxMzU5Q0YzMEZE
RDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIxMjAyMjkwQUQ0MzEwQzAwRUQ3OUI2IC8qIERhdGVD
b252ZXJzaW9uLmggKi87IH07CisJCTQxREVBMTMyMUI5RjMxNjMwMDZENjVERCAvKiBCdWlsdGlu
VXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
REVBMTMxMUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MzQwQTQ4NDFBOTA1MUFGMDBENzND
Q0EgLyogTWF0aENvbW1vbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MzQwQTQ4MjFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5jcHAgKi87
IH07CiAJCTQzNDBBNDg1MUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzQwQTQ4MzFBOTA1MUFGMDBE
NzNDQ0EgLyogTWF0aENvbW1vbi5oICovOyB9OwogCQk0NDQzQUUzMzE2RTE4OEQ5MDA3NkYxMTAg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUYwRUI2MTA1Qzg2QzZCMDBFNkRGMUIgLyogRm91bmRhdGlvbi5m
cmFtZXdvcmsgKi87IH07CkBAIC0yNzQ5LDYgKzI3NTAsNyBAQAogCQkyQUY3MzgyQTE4QkJCRjky
MDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTdHJ1Y3R1cmVJRFRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkFGNzM4MkIxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVjdHVyZUlEVGFibGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJlSURUYWJsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFEODQyQzE3Qzk4QjZFMDBFQ0Y5OTQgLyogbGli
ei5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliei5keWxpYjsgcGF0aCA9IHVzci9s
aWIvbGliei5keWxpYjsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CisJCTQxREVBMTMxMUI5RjMx
NTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQnVpbHRpblV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNDBB
NDgyMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhDb21tb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MzQwQTQ4MzFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoQ29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0OTA5N0VFMEY4RjgxQjUwMDc2QTMyNyAvKiBGZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4NTMsNiArNTg1NSw3IEBA
CiAJCQkJQTdEODAxQTExODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0aW5FeGVjdXRhYmxlcy5jcHAg
Ki8sCiAJCQkJQTdEODAxQTIxODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0aW5FeGVjdXRhYmxlcy5o
ICovLAogCQkJCUE3NUVFOUIwMThBQUI3RTIwMEFBRDA0MyAvKiBCdWlsdGluTmFtZXMuaCAqLywK
KwkJCQk0MURFQTEzMTFCOUYzMTU0MDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggKi8sCiAJCQkJ
QTdBOTc5QzQxOEJFOEQ5RTAwMkMzNzMzIC8qIEZ1bmN0aW9uLnByb3RvdHlwZS5qcyAqLywKIAkJ
CQk3Q0Y5QkM1QTFCNjVEOUEzMDA5REIxRUYgLyogR2xvYmFsT2JqZWN0LmpzICovLAogCQkJCUUz
NUUwMzYxMUI3QUI0ODUwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
anMgKi8sCkBAIC02MTIzLDYgKzYxMjYsNyBAQAogCQkJCUE3MDREOTAzMTdBMEJBQTgwMDZCQTU1
NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzA0RDkw
NDE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExQjlFMjNDMUI0RTBENjcwMEJDN0ZFRCAvKiBJbnRsQ29sbGF0b3JD
b25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUExMzIxQjlGMzE2MzAwNkQ2NURE
IC8qIEJ1aWx0aW5VdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2MjAxNzcxNDNGQ0QzRjAw
NjhCNzdDIC8qIERGR0Fic3RyYWN0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjA1NEZB
MUFDMzVCNDQwMEU1QkU1NyAvKiBFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNjZFMTZCMTRERjNGMTYwMEI3QjJFNCAvKiBERkdBZGphY2VuY3lMaXN0Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKaW5kZXggN2VmMWRhM2IwYWMzOTQzZTAwNTkzYzY4ZTFk
ODE1NTI3YzI3MTFhNS4uMzZkMjY1MjZiNTUzYjhjNzc4MDU1YTUwNTk5MzI3NGM4NjFjNjE5NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRh
Ymxlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVj
dXRhYmxlcy5jcHAKQEAgLTM1LDYgKzM1LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRp
YyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKFZN
JiwgY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3RvcktpbmQs
IENvbnN0cnVjdEFiaWxpdHkpOworCiBCdWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRh
YmxlcyhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQogI2RlZmluZSBJTklUSUFMSVpFX0JVSUxUSU5f
U09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpICwgbV8jI25hbWUjI1Nv
dXJjZShtYWtlU291cmNlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfIyNuYW1lLCBs
ZW5ndGgpKSkKQEAgLTUyLDE1ICs1NCwyNSBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSog
QnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IoQ29uc3RydQogICAg
IGNhc2UgQ29uc3RydWN0b3JLaW5kOjpOb25lOgogICAgICAgICBicmVhazsKICAgICBjYXNlIENv
bnN0cnVjdG9yS2luZDo6QmFzZToKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRl
cm5hbChtYWtlU291cmNlKGJhc2VDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1Y3Rvcktp
bmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7CisgICAgICAgIHJldHVybiBjcmVh
dGVFeGVjdXRhYmxlSW50ZXJuYWwobV92bSwgbWFrZVNvdXJjZShiYXNlQ29uc3RydWN0b3JDb2Rl
KSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3Qp
OwogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkOgotICAgICAgICByZXR1cm4gY3Jl
YXRlRXhlY3V0YWJsZUludGVybmFsKG1ha2VTb3VyY2UoZGVyaXZlZENvbnN0cnVjdG9yQ29kZSks
IG5hbWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBtYWtlU291cmNl
KGRlcml2ZWRDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVj
dEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSog
QnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgU291cmNl
Q29kZSYgc291cmNlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RvcktpbmQgY29u
c3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCitVbmxpbmtl
ZEZ1bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVCdWlsdGluRXhl
Y3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiBjb2RlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBD
b25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCit7CisgICAgcmV0dXJuIGNyZWF0ZUV4
ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBjb2RlLCBuYW1lLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUs
IGNvbnN0cnVjdEFiaWxpdHkpOworfQorCitVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3Jl
YXRlQnVpbHRpbkV4ZWN1dGFibGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBjb2RlLCBjb25z
dCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCit7
CisgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbCh2bSwgY29kZSwgbmFtZSwgQ29u
c3RydWN0b3JLaW5kOjpOb25lLCBjb25zdHJ1Y3RBYmlsaXR5KTsKK30KKworVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChWTSYgdm0sIGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQ29uc3RydWN0b3JLaW5k
IGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQogewog
ICAgIEpTVGV4dFBvc2l0aW9uIHBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmU7CiAgICAgUGFyc2Vy
RXJyb3IgZXJyb3I7CkBAIC02OSw3ICs4MSw3IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb25zdCBTCiAg
ICAgVW5saW5rZWRGdW5jdGlvbktpbmQga2luZCA9IGlzUGFyc2luZ0RlZmF1bHRDb25zdHJ1Y3Rv
ciA/IFVubGlua2VkTm9ybWFsRnVuY3Rpb24gOiBVbmxpbmtlZEJ1aWx0aW5GdW5jdGlvbjsKICAg
ICBSZWZQdHI8U291cmNlUHJvdmlkZXI+IHNvdXJjZU92ZXJyaWRlID0gaXNQYXJzaW5nRGVmYXVs
dENvbnN0cnVjdG9yID8gc291cmNlLnByb3ZpZGVyKCkgOiBudWxscHRyOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxQcm9ncmFtTm9kZT4gcHJvZ3JhbSA9IHBhcnNlPFByb2dyYW1Ob2RlPigKLSAgICAg
ICAgJm1fdm0sIHNvdXJjZSwgSWRlbnRpZmllcigpLCBidWlsdGluTW9kZSwKKyAgICAgICAgJnZt
LCBzb3VyY2UsIElkZW50aWZpZXIoKSwgYnVpbHRpbk1vZGUsCiAgICAgICAgIEpTUGFyc2VyU3Ry
aWN0TW9kZTo6Tm90U3RyaWN0LCBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlLCBlcnJvciwK
ICAgICAgICAgJnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUsIGNvbnN0cnVjdG9yS2luZCk7CiAK
QEAgLTk1LDE2ICsxMDcsMTYgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIEJ1aWx0aW5F
eGVjdXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvbnN0IFMKICAgICBtZXRhZGF0
YS0+c2V0RW5kUG9zaXRpb24ocG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSk7CiAgICAgUkVMRUFT
RV9BU1NFUlQobWV0YWRhdGEpOwogICAgIGZvciAoY29uc3QgYXV0byYgY2xvc2VkVmFyaWFibGUg
OiBwcm9ncmFtLT5jbG9zZWRWYXJpYWJsZXMoKSkgewotICAgICAgICBpZiAoY2xvc2VkVmFyaWFi
bGUgPT0gbV92bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgpKQorICAgICAgICBpZiAo
Y2xvc2VkVmFyaWFibGUgPT0gdm0ucHJvcGVydHlOYW1lcy0+YXJndW1lbnRzLmltcGwoKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAgaWYgKGNsb3NlZFZhcmlhYmxl
ID09IG1fdm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZC5pbXBsKCkpCisgICAgICAg
IGlmIChjbG9zZWRWYXJpYWJsZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3Jk
LmltcGwoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgIH0KICAgICBtZXRhZGF0YS0+b3Zl
cnJpZGVOYW1lKG5hbWUpOwogICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgZHVtbXlURFpWYXJpYWJs
ZXM7Ci0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9
IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUoJm1fdm0sIHNvdXJjZSwgbWV0YWRh
dGEsIGtpbmQsIGNvbnN0cnVjdEFiaWxpdHksIGR1bW15VERaVmFyaWFibGVzLCBXVEY6Om1vdmUo
c291cmNlT3ZlcnJpZGUpKTsKLSAgICBmdW5jdGlvbkV4ZWN1dGFibGUtPm1fbmFtZVZhbHVlLnNl
dChtX3ZtLCBmdW5jdGlvbkV4ZWN1dGFibGUsIGpzU3RyaW5nKCZtX3ZtLCBuYW1lLnN0cmluZygp
KSk7CisgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9
IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUoJnZtLCBzb3VyY2UsIG1ldGFkYXRh
LCBraW5kLCBjb25zdHJ1Y3RBYmlsaXR5LCBkdW1teVREWlZhcmlhYmxlcywgV1RGOjptb3ZlKHNv
dXJjZU92ZXJyaWRlKSk7CisgICAgZnVuY3Rpb25FeGVjdXRhYmxlLT5zZXROYW1lVmFsdWUodm0s
IGpzU3RyaW5nKCZ2bSwgbmFtZS5zdHJpbmcoKSkpOwogICAgIHJldHVybiBmdW5jdGlvbkV4ZWN1
dGFibGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluRXhlY3V0YWJsZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWls
dGluRXhlY3V0YWJsZXMuaAppbmRleCAyMzQxYzg4ZDhjNzMxMmY1NTZhOTc0ODE4Y2M5YTBkMDk2
MjUzNjJjLi44NjJkMTgyNzcyYzQ1NTdlN2EyNGExMTI1ZjQ4YWE3ODQ0YmZkNzk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5o
CkBAIC01NywxMSArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgVk0mIG1fdm07CiAKLSAgICBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoY29uc3QgU291
cmNlQ29kZSYgY29kZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQ29uc3RydWN0QWJpbGl0eSBj
b25zdHJ1Y3RBYmlsaXR5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJ
bnRlcm5hbChjb2RlLCBuYW1lLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIGNvbnN0cnVjdEFiaWxp
dHkpOwotICAgIH0KLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRXhlY3V0
YWJsZUludGVybmFsKGNvbnN0IFNvdXJjZUNvZGUmLCBjb25zdCBJZGVudGlmaWVyJiwgQ29uc3Ry
dWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElk
ZW50aWZpZXImLCBDb25zdHJ1Y3RBYmlsaXR5KTsKIAogI2RlZmluZSBERUNMQVJFX0JVSUxUSU5f
U09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpXAogICAgIFNvdXJjZUNv
ZGUgbV8jI25hbWUjI1NvdXJjZTsgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0J1aWx0aW5OYW1lcy5oCmluZGV4IDdlNTQzNDJlNzUyZjlmMmQ0ZTgzNWVkMDM0ZjQ2MDljZjM2
NWQzOWYuLmJmMjhkYjgzZjdiYmJhMmU2ZjBiYWI5NzViNmU5ZjRkNGEzNzg4OWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTI2LDQyICsy
NiwzMSBAQAogI2lmbmRlZiBCdWlsdGluTmFtZXNfaAogI2RlZmluZSBCdWlsdGluTmFtZXNfaAog
CisjaW5jbHVkZSAiQnVpbHRpblV0aWxzLmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMu
aCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKLSAgICAKLSNk
ZWZpbmUgSU5JVElBTElTRV9CVUlMVElOX05BTUVTKG5hbWUpICwgbV8jI25hbWUoSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgI25hbWUpKSwgbV8jI25hbWUjI1ByaXZhdGVOYW1lKElkZW50aWZp
ZXI6OmZyb21VaWQoUHJpdmF0ZU5hbWUoUHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxp
dGVyYWwoIlByaXZhdGVTeW1ib2wuIiAjbmFtZSkpKSkKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElO
X05BTUVTKG5hbWUpIGNvbnN0IElkZW50aWZpZXIgbV8jI25hbWU7IGNvbnN0IElkZW50aWZpZXIg
bV8jI25hbWUjI1ByaXZhdGVOYW1lOwotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklF
Ul9BQ0NFU1NPUihuYW1lKSBcCi0gICAgY29uc3QgSWRlbnRpZmllciYgbmFtZSMjUHVibGljTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lOyB9IFwKLSAgICBjb25zdCBJZGVudGlmaWVyJiBu
YW1lIyNQcml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsg
fQogCi0jZGVmaW5lIElOSVRJQUxJU0VfQlVJTFRJTl9TWU1CT0xTKG5hbWUpIElOSVRJQUxJU0Vf
QlVJTFRJTl9OQU1FUyhuYW1lKSwgbV8jI25hbWUjI1N5bWJvbChJZGVudGlmaWVyOjpmcm9tVWlk
KFByaXZhdGVOYW1lKFByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwgQVNDSUlMaXRlcmFsKCJTeW1i
b2wuIiAjbmFtZSkpKSkKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX1NZTUJPTFMobmFtZSkgREVD
TEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IElkZW50aWZpZXIgbV8jI25hbWUjI1N5bWJv
bDsKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX1NZTUJPTF9BQ0NFU1NPUihuYW1lKSBcCi0gICAg
REVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IobmFtZSkgXAotICAgIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUjI1N5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNTeW1ib2w7
IH0KKyNkZWZpbmUgSU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWShuYW1lKSBtX3By
aXZhdGVUb1B1YmxpY01hcC5hZGQobV8jI25hbWUjI1ByaXZhdGVOYW1lLmltcGwoKSwgJm1fIyNu
YW1lKTsKKyNkZWZpbmUgSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWShuYW1lKSBt
X3B1YmxpY1RvUHJpdmF0ZU1hcC5hZGQobV8jI25hbWUuaW1wbCgpLCAmbV8jI25hbWUjI1ByaXZh
dGVOYW1lKTsKIAotI2RlZmluZSBJTklUSUFMSVNFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKG5h
bWUpIG1fcHJpdmF0ZVRvUHVibGljTWFwLmFkZChtXyMjbmFtZSMjUHJpdmF0ZU5hbWUuaW1wbCgp
LCAmbV8jI25hbWUpOwotI2RlZmluZSBJTklUSUFMSVNFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZ
KG5hbWUpIG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtXyMjbmFtZS5pbXBsKCksICZtXyMjbmFt
ZSMjUHJpdmF0ZU5hbWUpOwotICAgIAogY2xhc3MgQnVpbHRpbk5hbWVzIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShCdWlsdGluTmFtZXMpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAg
ICAKIHB1YmxpYzoKICAgICBCdWlsdGluTmFtZXMoVk0qIHZtLCBDb21tb25JZGVudGlmaWVycyog
Y29tbW9uSWRlbnRpZmllcnMpCiAgICAgICAgIDogbV9lbXB0eUlkZW50aWZpZXIoY29tbW9uSWRl
bnRpZmllcnMtPmVtcHR5SWRlbnRpZmllcikKLSAgICAgICAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9G
VU5DVElPTl9OQU1FKElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUykKLSAgICAgICAgSlNDX0NPTU1P
Tl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVNFX0JVSUxU
SU5fTkFNRVMpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dF
TExfS05PV05fU1lNQk9MKElOSVRJQUxJU0VfQlVJTFRJTl9TWU1CT0xTKQorICAgICAgICBKU0Nf
Rk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9CVUlMVElOX05BTUVTKQor
ICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1F
KElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUykKKyAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lE
RU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElaRV9CVUlMVElOX1NZTUJP
TFMpCiAgICAgewotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5J
VElBTElTRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKLSAgICAgICAgSlNDX0NPTU1PTl9QUklW
QVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVNFX1BSSVZBVEVfVE9f
UFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFD
SF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVNFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQot
ICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElTRV9QVUJM
SUNfVE9fUFJJVkFURV9FTlRSWSkKLSAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJ
RVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVNFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZ
KQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dO
X1NZTUJPTChJTklUSUFMSVNFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAgICAgICBKU0Nf
Rk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJ
Q19FTlRSWSkKKyAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJP
UEVSVFlfTkFNRShJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQorICAgICAgICBK
U0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklU
SUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQorICAgICAgICBKU0NfRk9SRUFDSF9CVUlM
VElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKKyAg
ICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJ
TklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAgICAgICBKU0NfQ09NTU9OX1BS
SVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVpFX1BVQkxJ
Q19UT19QUklWQVRFX0VOVFJZKQogICAgIH0KIAogICAgIGJvb2wgaXNQcml2YXRlTmFtZShTeW1i
b2xJbXBsJiB1aWQpIGNvbnN0OwpAQCAtODQsMTMgKzczLDYgQEAgcHJpdmF0ZToKICAgICBCdWls
dGluTmFtZXNNYXAgbV9wcml2YXRlVG9QdWJsaWNNYXA7CiB9OwogCi0jdW5kZWYgREVDTEFSRV9C
VUlMVElOX05BTUVTCi0jdW5kZWYgSU5JVElBTElTRV9CVUlMVElOX05BTUVTCi0jdW5kZWYgREVD
TEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5f
U1lNQk9MUwotI3VuZGVmIElOSVRJQUxJU0VfQlVJTFRJTl9TWU1CT0xTCi0jdW5kZWYgREVDTEFS
RV9CVUlMVElOX1NZTUJPTF9BQ0NFU1NPUgotCiBpbmxpbmUgYm9vbCBCdWlsdGluTmFtZXM6Omlz
UHJpdmF0ZU5hbWUoU3ltYm9sSW1wbCYgdWlkKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZh
dGVUb1B1YmxpY01hcC5jb250YWlucygmdWlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9CdWlsdGluVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2MyOWE2NWY4NDZhZTgyNWJmNmQ2
YjU1NjhlYWQ3Yjc4ZWY0YzM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCdWlsdGluVXRpbHNfaAor
I2RlZmluZSBCdWlsdGluVXRpbHNfaAorCisjaW5jbHVkZSAiQ29uc3RydWN0QWJpbGl0eS5oIgor
CituYW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVMobmFt
ZSkgLCBtXyMjbmFtZShKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICNuYW1lKSksIG1f
IyNuYW1lIyNQcml2YXRlTmFtZShKU0M6OklkZW50aWZpZXI6OmZyb21VaWQoSlNDOjpQcml2YXRl
TmFtZShKU0M6OlByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwgQVNDSUlMaXRlcmFsKCJQcml2YXRl
U3ltYm9sLiIgI25hbWUpKSkpCisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9OQU1FUyhuYW1lKSBj
b25zdCBKU0M6OklkZW50aWZpZXIgbV8jI25hbWU7IGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMj
bmFtZSMjUHJpdmF0ZU5hbWU7CisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FD
Q0VTU09SKG5hbWUpIFwKKyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1B1YmxpY05h
bWUoKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZTsgfSBcCisgICAgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBuYW1lIyNQcml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNQcml2YXRl
TmFtZTsgfQorCisjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJTl9TWU1CT0xTKG5hbWUpIElOSVRJ
QUxJWkVfQlVJTFRJTl9OQU1FUyhuYW1lKSwgbV8jI25hbWUjI1N5bWJvbChKU0M6OklkZW50aWZp
ZXI6OmZyb21VaWQoSlNDOjpQcml2YXRlTmFtZShKU0M6OlByaXZhdGVOYW1lOjpEZXNjcmlwdGlv
biwgQVNDSUlMaXRlcmFsKCJTeW1ib2wuIiAjbmFtZSkpKSkKKyNkZWZpbmUgREVDTEFSRV9CVUlM
VElOX1NZTUJPTFMobmFtZSkgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IEpTQzo6
SWRlbnRpZmllciBtXyMjbmFtZSMjU3ltYm9sOworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lN
Qk9MX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NF
U1NPUihuYW1lKSBcCisgICAgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBuYW1lIyNTeW1ib2woKSBj
b25zdCB7IHJldHVybiBtXyMjbmFtZSMjU3ltYm9sOyB9CisKK2NsYXNzIElkZW50aWZpZXI7Citj
bGFzcyBTb3VyY2VDb2RlOworY2xhc3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU7CitjbGFz
cyBWTTsKKworSlNfRVhQT1JUX1BSSVZBVEUgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNy
ZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50
aWZpZXImLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKyAgICAKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZS5oCmluZGV4IGUzZmMyYTk2NDljZmVjYjE4YTAyMDIwZTk2MTAxNDk0OWM0NTY2ZmEu
LmEzOTJmZDliMzBjZDI2YjNhNjE2ZDdiZGI2NGYzMmEwZTFmMTk3OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZS5oCkBAIC01OSw3ICs1OSw2IEBAIGVudW0gVW5saW5rZWRGdW5jdGlvbktpbmQgewog
CiBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwg
ewogcHVibGljOgotICAgIGZyaWVuZCBjbGFzcyBCdWlsdGluRXhlY3V0YWJsZXM7CiAgICAgZnJp
ZW5kIGNsYXNzIENvZGVDYWNoZTsKICAgICBmcmllbmQgY2xhc3MgVk07CiAKQEAgLTc3LDYgKzc2
LDcgQEAgcHVibGljOgogICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KICAgICBjb25zdCBJZGVudGlmaWVyJiBpbmZlcnJlZE5hbWUoKSBjb25zdCB7
IHJldHVybiBtX2luZmVycmVkTmFtZTsgfQogICAgIEpTU3RyaW5nKiBuYW1lVmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWVWYWx1ZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0TmFtZVZhbHVlKFZN
JiB2bSwgSlNTdHJpbmcqIG5hbWVWYWx1ZSkgeyBtX25hbWVWYWx1ZS5zZXQodm0sIHRoaXMsIG5h
bWVWYWx1ZSk7IH0KICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFyYW1ldGVyQ291bnQ7IH07CiAgICAgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFyc2VNb2RlOyB9OwogICAgIGJvb2wgaXNJblN0cmljdENvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX2lzSW5TdHJpY3RDb250ZXh0OyB9CkBAIC0xMDAsNyArMTAwLDcg
QEAgcHVibGljOgogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiwgRXhlY1N0YXRlJiwgY29uc3Qg
U291cmNlQ29kZSYsIEpTT2JqZWN0KiYgZXhjZXB0aW9uLCAKICAgICAgICAgaW50IG92ZXJyaWRl
TGluZU51bWJlcik7CiAKLSAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGxpbmsoVk0mLCBjb25zdCBT
b3VyY2VDb2RlJiwgaW50IG92ZXJyaWRlTGluZU51bWJlciA9IC0xKTsKKyAgICBKU19FWFBPUlRf
UFJJVkFURSBGdW5jdGlvbkV4ZWN1dGFibGUqIGxpbmsoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwg
aW50IG92ZXJyaWRlTGluZU51bWJlciA9IC0xKTsKIAogICAgIHZvaWQgY2xlYXJDb2RlKCkKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRp
bnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKaW5kZXggOTY0
NzE2MzZmYTNlN2NlYzBhMjZiYmFmNTZhMjhkOTI4MjEwYzU2Ny4uMjIxMzI3YjgzY2RjZWJlNzYx
MTkxNmRjYTI5MzkyOWEwYzI2NmZmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0
ZS1qcy1idWlsdGlucwpAQCAtMzYsNiArMzYsOCBAQCBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcigpCiBwYXJzZXIuYWRkX2FyZ3VtZW50KCdpbnB1dF9maWxlJywgbmFyZ3M9JyonLCBo
ZWxwPSdJbnB1dCBKUyBmaWxlcyB3aGljaCBidWlsdGlucyBnZW5lcmF0ZWQgZnJvbScpCiBwYXJz
ZXIuYWRkX2FyZ3VtZW50KCctLWlucHV0LWRpcmVjdG9yeScsIGhlbHA9J0FsbCBKUyBmaWxlcyB3
aWxsIGJlIHVzZWQgYXMgaW5wdXQgZnJvbSB0aGlzIGRpcmVjdG9yeS4nKQogcGFyc2VyLmFkZF9h
cmd1bWVudCgnLS1vdXRwdXQnLCBoZWxwPSdwYXRoIHRvIG91dHB1dCBjcHAgb3IgaCBmaWxlJykK
K3BhcnNlci5hZGRfYXJndW1lbnQoJy0tcHJlZml4JywgZGVmYXVsdD0nSlNDJywgaGVscD0ncHJl
Zml4IHVzZWQgZm9yIHB1YmxpYyBtYWNyb3MnKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1uYW1l
c3BhY2UnLCBkZWZhdWx0PSdKU0MnLCBoZWxwPSdDKysgbmFtZXNwYWNlJykKIGFyZ3MgPSBwYXJz
ZXIucGFyc2VfYXJncygpCiAKIGNvcHlyaWdodFRleHQgPSAiIiIgKgpAQCAtMTUzLDYgKzE1NSw5
IEBAIGRlZiBnZXRGdW5jdGlvbnMoc291cmNlKToKICAgICAgICAgcmVzdWx0LmFwcGVuZChGdW5j
dGlvbihmdW5jdGlvbk5hbWUsIGZ1bmN0aW9uLCBmdW5jdGlvbklzQ29uc3RydWN0b3IsIGZ1bmN0
aW9uUGFyYW1ldGVycykpCiAgICAgcmV0dXJuIHJlc3VsdAogCitkZWYgd3JpdGVJbmNsdWRlRGly
ZWN0aXZlcyh3cml0ZXIsIGhlYWRlck5hbWVzKToKKyAgICBmb3IgaGVhZGVyTmFtZSBpbiBoZWFk
ZXJOYW1lczoKKyAgICAgICAgd3JpdGVyLndyaXRlKCIjaW5jbHVkZSAiICsgaGVhZGVyTmFtZSAr
ICJcbiIpCiAKIGRlZiBnZW5lcmF0ZUNvZGUoc291cmNlKToKICAgICBpbnB1dEZpbGUgPSBvcGVu
KHNvdXJjZSwgInIiKQpAQCAtMTc5LDYgKzE4NCwxNCBAQCBmb3IgZmlsZSBpbiBhcmdzLmlucHV0
X2ZpbGU6CiAgICAgICAgIChiYXNlTmFtZSwgZnVuY3Rpb25zLCBvYmplY3RDb3B5cmlnaHRzKSA9
IGdlbmVyYXRlQ29kZShmaWxlKQogICAgICAgICBjb3B5cmlnaHRzLmV4dGVuZChvYmplY3RDb3B5
cmlnaHRzKQogICAgICAgICBidWlsdGlucy5hcHBlbmQoKGJhc2VOYW1lLCBmdW5jdGlvbnMpKQor
bmFtZXNwYWNlID0gYXJncy5uYW1lc3BhY2UKK21hY3JvUHJlZml4ID0gYXJncy5wcmVmaXgKK3Nj
b3BlTmFtZSA9IG9zLnBhdGguc3BsaXRleHQob3MucGF0aC5iYXNlbmFtZShhcmdzLm91dHB1dCkp
WzBdCitpbmNsdWRlR3VhcmQgPSBzY29wZU5hbWUgKyAiX0giCitoZWFkZXJOYW1lID0gc2NvcGVO
YW1lICsgIi5oIgorCitoZWFkZXJJbmNsdWRlcyA9IFsiXCJCdWlsdGluVXRpbHMuaFwiIl0gaWYg
bmFtZXNwYWNlID09ICJKU0MiIGVsc2UgWyI8YnVpbHRpbnMvQnVpbHRpblV0aWxzLmg+Il0KK2Nv
bnRlbnRJbmNsdWRlcyA9IFsiXCJCdWlsdGluRXhlY3V0YWJsZXMuaFwiIiwgIlwiRXhlY3V0YWJs
ZS5oXCIiLCAiXCJKU0NlbGxJbmxpbmVzLmhcIiIsICJcIlZNLmhcIiJdIGlmIG5hbWVzcGFjZSA9
PSAiSlNDIiBlbHNlIFsiPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPiIsICI8cnVudGltZS9KU0NlbGxJ
bmxpbmVzLmg+IiwgIjxydW50aW1lL1ZNLmg+IiwgIlwiV2ViQ29yZUpTQ2xpZW50RGF0YS5oXCIi
XQogCiBjb3B5cmlnaHRzID0gbGlzdChzZXQoY29weXJpZ2h0cykpCiAKQEAgLTE5MiwyMyArMjA1
LDIxIEBAIGNvcHlyaWdodFRleHQgPSAiLypcbiIgKyBjb3B5cmlnaHRCb2R5ICsgY29weXJpZ2h0
VGV4dAogYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiJXMKICVzCiAKLSNpZm5kZWYgSlNDQnVpbHRp
bnNfSAotI2RlZmluZSBKU0NCdWlsdGluc19ICisjaWZuZGVmICVzCisjZGVmaW5lICVzCiAKLSNp
bmNsdWRlICJDb25zdHJ1Y3RBYmlsaXR5LmgiCisiIiIgJSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5
cmlnaHRUZXh0LCBpbmNsdWRlR3VhcmQsIGluY2x1ZGVHdWFyZCkpCiAKLW5hbWVzcGFjZSBKU0Mg
eword3JpdGVJbmNsdWRlRGlyZWN0aXZlcyhidWlsdGluc0hlYWRlciwgaGVhZGVySW5jbHVkZXMp
CiAKLWNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKLWNsYXNzIElkZW50aWZpZXI7Ci1jbGFzcyBK
U0dsb2JhbE9iamVjdDsKLWNsYXNzIFNvdXJjZUNvZGU7Ci1jbGFzcyBVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZTsKLWNsYXNzIFZNOworYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCituYW1lc3Bh
Y2UgSlNDIHsKKyAgICBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Cit9CiAKLUZ1bmN0aW9uRXhl
Y3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoVk0mLCBVbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKK25hbWVzcGFjZSAlcyB7CiAKLSIiIiAlIChn
ZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQpKQorIiIiICUgbmFtZXNwYWNlKQogCiBjb2Rl
UmVmZXJlbmNlcyA9IFtdCiAKQEAgLTIyMiw1OCArMjMzLDU5IEBAIGZvciAob2JqZWN0TmFtZSwg
ZnVuY3Rpb25zKSBpbiBidWlsdGluczoKICAgICAgICAgY29kZVJlZmVyZW5jZXMuYXBwZW5kKCht
YW5nbGVkTmFtZSwgZnVuY3Rpb24pKQogICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0
ZXJuIGNvbnN0IGNoYXIqIHNfJXM7XG4iICUgbWFuZ2xlZE5hbWUpCiAgICAgICAgIGJ1aWx0aW5z
SGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgaW50IHNfJXNMZW5ndGg7XG4iICUgbWFuZ2xlZE5h
bWUpCi0gICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgQ29uc3RydWN0
QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eTtcbiIgJSBtYW5nbGVkTmFtZSkKKyAgICAgICAg
YnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkg
c18lc0NvbnN0cnVjdEFiaWxpdHk7XG4iICUgbWFuZ2xlZE5hbWUpCiAgICAgYnVpbHRpbnNIZWFk
ZXIud3JpdGUoIlxuIikKLSAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSBKU0NfRk9S
RUFDSF8lc19CVUlMVElOKG1hY3JvKSBcXFxuIiAlIG9iamVjdE5hbWUucmVwbGFjZSgiLiIsICJf
IikudXBwZXIoKSkKKyAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNI
XyVzX0JVSUxUSU4obWFjcm8pIFxcXG4iICUgKG1hY3JvUHJlZml4LCBvYmplY3ROYW1lLnJlcGxh
Y2UoIi4iLCAiXyIpLnVwcGVyKCkpKQogICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CiAg
ICAgICAgIG1hbmdsZWROYW1lID0gZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKQogICAg
ICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzLCAlcywgJWQpIFxcXG4iICUg
KGZ1bmN0aW9uLm5hbWUsIG1hbmdsZWROYW1lLCBsZW4oZnVuY3Rpb24ucGFyYW1ldGVycykpKQog
ICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcbiIpCiAgICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0
aW9uczoKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0JVSUxUSU5f
JXMgMVxuIiAlIGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkudXBwZXIoKSkKKyAgICAg
ICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfQlVJTFRJTl8lcyAxXG4iICUgKG1h
Y3JvUHJlZml4LCBmdW5jdGlvbi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkpKQogICAg
IGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJcblxuIikKIG5hbWVzID0gW10KLWJ1aWx0aW5zSGVhZGVy
LndyaXRlKCIjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU4obWFjcm8pXFxcbiIpCitidWlsdGlu
c0hlYWRlci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU4obWFjcm8pXFxcbiIgJSBt
YWNyb1ByZWZpeCkKIGZvciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVu
Y2VzOgogICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIgICAgbWFjcm8oJXMsICVzLCBzXyVzTGVu
Z3RoKSBcXFxuIiAlIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbi5uYW1lLCBjb2RlUmVmZXJlbmNl
KSkKICAgICBuYW1lcy5hcHBlbmQoZnVuY3Rpb24ubmFtZSkKIAogYnVpbHRpbnNIZWFkZXIud3Jp
dGUoIlxuXG4iKQotYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJ
TFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcXFxuIikKK2J1aWx0aW5zSGVhZGVyLndyaXRlKCIj
ZGVmaW5lICVzX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcXFxuIiAlIG1h
Y3JvUHJlZml4KQogZm9yIG5hbWUgaW4gc29ydGVkKHNldChuYW1lcykpOgogICAgIGJ1aWx0aW5z
SGVhZGVyLndyaXRlKCIgICAgbWFjcm8oJXMpIFxcXG4iICUgbmFtZSkKIGJ1aWx0aW5zSGVhZGVy
LndyaXRlKCIiIgogCi0jZGVmaW5lIEpTQ19ERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVO
YW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCi0gICAgRnVuY3Rpb25FeGVjdXRh
YmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKFZNJik7CisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9H
RU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKKyAgICBK
U0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAK
LUpTQ19GT1JFQUNIX0JVSUxUSU4oSlNDX0RFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5k
ZWYgSlNDX0RFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IKKyVzX0ZPUkVBQ0hfQlVJTFRJTihERUNM
QVJFX0JVSUxUSU5fR0VORVJBVE9SKQorI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IK
IAotI2RlZmluZSBKU0NfQlVJTFRJTl9FWElTVFMobmFtZSkgZGVmaW5lZCBKU0NfQlVJTFRJTl8g
IyMgbmFtZQorI2RlZmluZSAlc19CVUlMVElOX0VYSVNUUyhuYW1lKSBkZWZpbmVkICVzX0JVSUxU
SU5fICMjIG5hbWUKIAogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyAlcwogCi0iIiIpCisiIiIgJSAo
bWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4LCBtYWNyb1ByZWZpeCwgaW5jbHVkZUd1YXJkKSkKIAog
YnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIlcwogJXMKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogCi0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKKyNpbmNsdWRlICIlcyIKIAotI2luY2x1
ZGUgIkJ1aWx0aW5FeGVjdXRhYmxlcy5oIgotI2luY2x1ZGUgIkNvbnN0cnVjdEFiaWxpdHkuaCIK
LSNpbmNsdWRlICJFeGVjdXRhYmxlLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgotI2lu
Y2x1ZGUgIlZNLmgiCisiIiIgICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4dCwgaGVh
ZGVyTmFtZSkpCisKK3dyaXRlSW5jbHVkZURpcmVjdGl2ZXMoYnVpbHRpbnNJbXBsZW1lbnRhdGlv
biwgY29udGVudEluY2x1ZGVzKQorCitidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIgor
bmFtZXNwYWNlICVzIHsKKworIiIiICAlIChuYW1lc3BhY2UpKQogCi1uYW1lc3BhY2UgSlNDIHsK
IAotIiIiICAlIChnZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQpKQogCiBmb3IgKGNvZGVS
ZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJlbmNlczoKICAgICBzb3VyY2UgPSBmdW5j
dGlvbi5zb3VyY2UKQEAgLTI4NSwyMyArMjk3LDMzIEBAIGZvciAoY29kZVJlZmVyZW5jZSwgZnVu
Y3Rpb24pIGluIGNvZGVSZWZlcmVuY2VzOgogICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyAoIiAg
ICBcIiVzXFxuXCIgXFxcbiIgJSBsaW5lKQogICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3Jp
dGUoImNvbnN0IGNoYXIqIHNfJXMgPVxuJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgc291cmNl
KSkKICAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBpbnQgc18lc0xlbmd0
aCA9ICVkO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIHNvdXJjZUxlbmd0aCArIDEpKSAjICsgMSBm
b3IgXG4KLSAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENv
bnN0cnVjdCIKKyAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6
Q2Fubm90Q29uc3RydWN0IgogICAgIGlmIGZ1bmN0aW9uLmlzQ29uc3RydWN0b3I6Ci0gICAgICAg
IGNvbnN0cnVjdEFiaWxpdHkgPSAiQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0IgotICAg
IGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNvbnN0IENvbnN0cnVjdEFiaWxpdHkgc18l
c0NvbnN0cnVjdEFiaWxpdHkgPSAlcztcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBjb25zdHJ1Y3RB
YmlsaXR5KSkgIyArIDEgZm9yIFxuCisgICAgICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAiSlNDOjpD
b25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QiCisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlv
bi53cml0ZSgiY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5
ID0gJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgY29uc3RydWN0QWJpbGl0eSkpICMgKyAxIGZv
ciBcbgogCiBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIgotI2RlZmluZSBKU0NfREVG
SU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291
bnQpIFxcCi1GdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoVk0mIHZtKSBc
XAoteyBcXAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4
ZWN1dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNT
b3VyY2UoKSk7IFxcCi19CisjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFt
ZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAorSlNDOjpGdW5jdGlvbkV4ZWN1dGFi
bGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFxcCisiIiIpOwogCi1KU0NfRk9S
RUFDSF9CVUlMVElOKEpTQ19ERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5kZWYgSlNDX0RF
RklORV9CVUlMVElOX0dFTkVSQVRPUgoraWYgKG5hbWVzcGFjZSA9PSAiSlNDIik6CisgICAgYnVp
bHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ7XFwKKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4
ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5F
eGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAorIiIiKQorZWxzZToKKyAgICBi
dWlsdGluTmFtZSA9IHNjb3BlTmFtZVswXS5sb3dlcigpICsgc2NvcGVOYW1lWzE6XQorICAgIGJ1
aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIie1xcCisgICAgV2ViQ29yZUpTQ2xpZW50RGF0
YSogY2xpZW50RGF0YSA9IHN0YXRpY19jYXN0PFdlYkNvcmVKU0NsaWVudERhdGEqPih2bS5jbGll
bnREYXRhKTsgXFwKKyAgICByZXR1cm4gY2xpZW50RGF0YS0+JXMoKS5jb2RlTmFtZSMjRXhlY3V0
YWJsZSgpLT5saW5rKHZtLCBjbGllbnREYXRhLT4lcygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFxc
CisiIiIlIChidWlsdGluTmFtZSwgYnVpbHRpbk5hbWUpKQorCitidWlsdGluc0ltcGxlbWVudGF0
aW9uLndyaXRlKCIiIn0KKyVzX0ZPUkVBQ0hfQlVJTFRJTihERUZJTkVfQlVJTFRJTl9HRU5FUkFU
T1IpCisjdW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCiB9CiAKLSIiIikKKyIiIiUgKG1h
Y3JvUHJlZml4KSkKIAogYnVpbHRpbnNIZWFkZXIuY2xvc2UoKQogYnVpbHRpbnNJbXBsZW1lbnRh
dGlvbi5jbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGNhMWRlNGQxNTY5NDhiZjdlMTBk
MGVlYjQ2NmNjZmM1ZTM2NmIxMWEuLmRiMzZjOTMxZDdjMzA4MTA2Zjc3ZTM4YzBlMjQyN2VhMzFi
ZTY1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMzM2LDYgKzMzMzYsMTAgQEAgc2V0KFdP
UktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS9Xb3JrZXJHbG8KIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJV
Q1RPUlNfRklMRSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KElETF9BVFRSSUJVVEVTX0ZJTEUgJHtX
RUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCkKIAorc2V0KFdF
QkNPUkVfSlNfQlVJTFRJTlMKKyAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW0uanMKKykKKwogV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNU
UygpCiAKICMgR2VuZXJhdGUgSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaApAQCAtMzU1NSw2ICszNTU5
LDE4IEBAIEdFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAg
JHtTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFfQogICAgICR7QURESVRJT05BTF9CSU5ESU5H
U19ERVBFTkRFTkNJRVN9KQogCisjIFdlYkNvcmUgSlMgQnVpbHRpbnMKK2ZvcmVhY2ggKF9idWls
dGluanMgJHtXRUJDT1JFX0pTX0JVSUxUSU5TfSkKKyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50
KF9uYW1lICR7X2J1aWx0aW5qc30gTkFNRV9XRSkKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisg
ICAgICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWls
dGlucy5oICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmNw
cAorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2dl
bmVyYXRlLWpzLWJ1aWx0aW5zCisgICAgICAgIERFUEVORFMgJHtfYnVpbHRpbmpzfQorICAgICAg
ICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICR7X2J1aWx0aW5qc30gLS1vdXRwdXRfZGly
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAtLXdlYmNvcmVfZGlyICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfQorICAgICAgICBWRVJCQVRJTSkKKyAgICBBRERfU09VUkNFX0RFUEVO
REVOQ0lFUygke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSlMke19uYW1lfS5oICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmgpCisgICAgQUREX1NP
VVJDRV9ERVBFTkRFTkNJRVMoJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0pTJHtfbmFt
ZX0uY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmNw
cCkKK2VuZGZvcmVhY2ggKCkKIAogQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURfREVQRU5ERU5D
SUVTKCR7V0VCQ09SRV9ESVJ9L2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcCBNYXRoTUxOYW1lcy5j
cHApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDk1OTE1M2FiMDViZWZhNjYy
NmUxZjY5NzNiYjAzMjNiYzc5NzZmOWYuLjIzMzkzNmM4MzRhYzRiOWNlZDA3M2E3ZTc1MmZkY2Fm
N2ViODMxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNzkxLDYgKzc5MSw3
IEBAIGFsbCA6IFwKICAgICAkKFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSBc
CiAgICAgJChKU19ET01fSEVBREVSUykgXAogICAgICQoV0VCX0RPTV9IRUFERVJTKSBcCisgICAg
JChXRUJDT1JFX0pTX0JVSUxUSU5TKSBcCiAgICAgXAogICAgIENTU0dyYW1tYXIuY3BwIFwKICAg
ICBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBcCkBAIC0xMjQ1LDYgKzEyNDYsMTYgQEAgV2ViUmVwbGF5
SW5wdXRzLmggOiAkKElOUFVUX0dFTkVSQVRPUl9TUEVDSUZJQ0FUSU9OUykgJChJTlBVVF9HRU5F
UkFUT1JfU0NSSVBUUykKIAogLWluY2x1ZGUgJChKU19ET01fSEVBREVSUzouaD0uZGVwKQogCisj
IFdlYkNvcmUgSlMgQnVpbHRpbnMKKworV0VCQ09SRV9KU19CVUlMVElOUyA9IFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworCithbGwgOiAkKFdFQkNP
UkVfSlNfQlVJTFRJTlM6JS5qcz0lQnVpbHRpbnMuaCkKKworJUJ1aWx0aW5zLmg6ICUuanMKKwkk
KFBZVEhPTikgJChXZWJDb3JlKS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICQ8IC0td2Vi
Y29yZV9kaXIgJChXZWJDb3JlKQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAjIE1h
Yy1zcGVjaWZpYyBydWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy9idWlsdGlucy9CdWlsdGluVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjc0MTRiODMwOTM4
ZGQ2YzVhODZiMjViZTZkZjY3NTI1Njg1Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKQEAgLTAsMCAr
MSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0J1aWx0aW5VdGlsc19oCisjZGVmaW5lIFdlYkNv
cmVfRldEX0J1aWx0aW5VdGlsc19oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpblV0
aWxzLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ3MTJkOWJmMDU4ODRmM2Y3OTk5MjllZDZjMTQ1ZjBiM2U1ZTE2OTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29k
ZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBX
ZWJDb3JlX0ZXRF9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZV9oCisjZGVmaW5lIFdlYkNvcmVf
RldEX1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0NvbnN0cnVjdEFiaWxpdHkuaCBi
L1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0QWJpbGl0
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ0ZGNhZGNjOTNmYjZlNTc5Nzk0MWIyNWNkMDRlMTI5NTA1Y2JhYzQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50
aW1lL0NvbnN0cnVjdEFiaWxpdHkuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9G
V0RfQ29uc3RydWN0QWJpbGl0eV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0NvbnN0cnVjdEFiaWxp
dHlfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnN0cnVjdEFiaWxpdHkuaD4KKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5p
ZGwKaW5kZXggODYzYzI2NDMxOGM1NDEyMGE3MDg4OTFhMWNkYWM1M2YwNjhjYjBkMC4uNmFjMjU5
NWFhYmQ1YmFmNjU0OGNlYmNkOGEzMmFiMDBkYTgwZDIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCkBAIC0zNiw3ICszNiw3IEBA
CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gUHJvbWlzZSBjYW5jZWwoW0RlZmF1bHQ9VW5kZWZpbmVk
XSBvcHRpb25hbCBhbnkgcmVhc29uKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBSZWFkYWJsZVN0
cmVhbVJlYWRlciBnZXRSZWFkZXIoKTsKICAgICBbQ3VzdG9tXSBQcm9taXNlIHBpcGVUbyhhbnkg
c3RyZWFtcywgYW55IG9wdGlvbnMpOwotICAgIFtDdXN0b21dIE9iamVjdCBwaXBlVGhyb3VnaChh
bnkgZGVzdCwgYW55IG9wdGlvbnMpOworICAgIFtKU0J1aWx0aW5dIE9iamVjdCBwaXBlVGhyb3Vn
aChhbnkgZGVzdCwgYW55IG9wdGlvbnMpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gbG9ja2VkOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzYzMmY1OGQxYmRmNWI5NzVkNTJkNmM3NGRmMzcw
YjdjYWI2Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtLmpzCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCitmdW5jdGlvbiBwaXBlVGhyb3VnaChzdHJlYW1zLCBvcHRpb25zKQoreworICAgICJ1
c2Ugc3RyaWN0IjsKKworICAgIHRoaXMucGlwZVRvKHN0cmVhbXMud3JpdGFibGUsIG9wdGlvbnMp
OworICAgIHJldHVybiBzdHJlYW1zLnJlYWRhYmxlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcAppbmRleCAzNDhkMTZi
MmZlYmU3OTg3ZDJkZDY2ZjVjYzg2NjVmNWE3YzBlZTRhLi44OTVlMDNkYTZiOTRkMzUwM2EzYTE2
OWJjNjFiZjg0Y2ExOTUzYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcApAQCAtNTMsMTIgKzUzLDYgQEAgSlNWYWx1
ZSBKU1JlYWRhYmxlU3RyZWFtOjpwaXBlVG8oRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBl
eGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGVycm9yKTsKIH0KIAotSlNWYWx1ZSBKU1Jl
YWRhYmxlU3RyZWFtOjpwaXBlVGhyb3VnaChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNWYWx1
ZSBlcnJvciA9IGNyZWF0ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgicGlwZVRocm91Z2ggaXMg
bm90IGltcGxlbWVudGVkIikpOwotICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9u
KGV4ZWMsIGVycm9yKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRl
eCA0MzAyZDY4ZTVjOGM2ZDc4N2Q0NzI2MjQxNGJjZWI5OGQyMmUwMTllLi5hYzg5YWYzYjU2Y2Ni
Njc0MWI1NDMyYjUzYjFmYmYxZjBhMDVjZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC0yMyw2ICsyMyw3IEBACiAjZGVmaW5l
IFdlYkNvcmVKU0NsaWVudERhdGFfaAogCiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisj
aW5jbHVkZSAiUmVhZGFibGVTdHJlYW1CdWlsdGluc1dyYXBwZXIuaCIKICNpbmNsdWRlICJXZWJD
b3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTM1LDcgKzM2LDEwIEBAIGNsYXNzIFdlYkNvcmVKU0Ns
aWVudERhdGEgOiBwdWJsaWMgSlNDOjpWTTo6Q2xpZW50RGF0YSB7CiAgICAgZnJpZW5kIHZvaWQg
aW5pdE5vcm1hbFdvcmxkQ2xpZW50RGF0YShKU0M6OlZNKik7CiAKIHB1YmxpYzoKLSAgICBXZWJD
b3JlSlNDbGllbnREYXRhKCkKKyAgICBXZWJDb3JlSlNDbGllbnREYXRhKEpTQzo6Vk0mIHZtKQor
I2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKKyAgICAgICAgOiBtX3JlYWRhYmxlU3RyZWFtQnVpbHRp
bnMoJnZtKQorI2VuZGlmCiAgICAgewogICAgIH0KIApAQCAtNzEsMTQgKzc1LDIyIEBAIHB1Ymxp
YzoKICAgICAgICAgbV93b3JsZFNldC5yZW1vdmUoJndvcmxkKTsKICAgICB9CiAKKyNpZiBFTkFC
TEUoU1RSRUFNU19BUEkpCisgICAgUmVhZGFibGVTdHJlYW1CdWlsdGluc1dyYXBwZXImIHJlYWRh
YmxlU3RyZWFtQnVpbHRpbnMoKSB7IHJldHVybiBtX3JlYWRhYmxlU3RyZWFtQnVpbHRpbnM7IH0K
KyNlbmRpZgorCiBwcml2YXRlOgogICAgIEhhc2hTZXQ8RE9NV3JhcHBlcldvcmxkKj4gbV93b3Js
ZFNldDsKICAgICBSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBtX25vcm1hbFdvcmxkOworCisjaWYg
RU5BQkxFKFNUUkVBTVNfQVBJKQorICAgIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyIG1f
cmVhZGFibGVTdHJlYW1CdWlsdGluczsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgaW5pdE5v
cm1hbFdvcmxkQ2xpZW50RGF0YShKU0M6OlZNKiB2bSkKIHsKLSAgICBXZWJDb3JlSlNDbGllbnRE
YXRhKiB3ZWJDb3JlSlNDbGllbnREYXRhID0gbmV3IFdlYkNvcmVKU0NsaWVudERhdGE7CisgICAg
V2ViQ29yZUpTQ2xpZW50RGF0YSogd2ViQ29yZUpTQ2xpZW50RGF0YSA9IG5ldyBXZWJDb3JlSlND
bGllbnREYXRhKCp2bSk7CiAgICAgdm0tPmNsaWVudERhdGEgPSB3ZWJDb3JlSlNDbGllbnREYXRh
OyAvLyB+Vk0gZGVsZXRlcyB0aGlzIHBvaW50ZXIuCiAgICAgd2ViQ29yZUpTQ2xpZW50RGF0YS0+
bV9ub3JtYWxXb3JsZCA9IERPTVdyYXBwZXJXb3JsZDo6Y3JlYXRlKCp2bSwgdHJ1ZSk7CiAgICAg
dm0tPm1fdHlwZWRBcnJheUNvbnRyb2xsZXIgPSBhZG9wdFJlZihuZXcgV2ViQ29yZVR5cGVkQXJy
YXlDb250cm9sbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KaW5kZXggYzUxNjMxYzBmODE0Y2M5OGNlODc2
MGNkNGY2ZTYwZTk2YmVhM2E5MC4uNjliZjQ5MjA0MmJlZmNkYzM1MzNlYWE2YjRmOWM0MzNmNTdl
ZDlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC0zNzMsNiArMzczLDEwIEBAIHN1YiBTa2lwRnVuY3Rp
b24gewogICAgICAgICByZXR1cm4gMTsKICAgICB9CiAKKyAgICBpZiAoJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBlMzAxZTgwYzJkYWE5
YjYyYTAzZmUyODFlN2ZmYTBjNDJhOWM4MmE1Li4wY2Q5NTBkNDUxODc4ZDQ1NGI5YTRkZGJiYjA2
YWFhNzNkYjZhYTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNTQ4LDYgKzU0OCwxNiBAQCBzdWIgR2V0QXR0cmlidXRl
U2V0dGVyTmFtZQogc3ViIEdldEZ1bmN0aW9uTmFtZQogewogICAgIG15ICgkY2xhc3NOYW1lLCAk
ZnVuY3Rpb24pID0gQF87CisKKyAgICBteSAkc2NvcGVOYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CisgICAgaWYgKCEkc2Nv
cGVOYW1lKSB7CisgICAgICAgICRzY29wZU5hbWUgPSBzdWJzdHIgJGNsYXNzTmFtZSwgMjsKKyAg
ICB9CisKKyAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJKU0J1aWx0aW4ifSkgeworICAgICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmly
c3QoJHNjb3BlTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+bmFtZSkgLiAiQ29kZUdlbmVyYXRvciI7CisgICAgfQorCiAgICAgbXkgJGtpbmQg
PSAkZnVuY3Rpb24tPmlzU3RhdGljID8gIkNvbnN0cnVjdG9yIiA6ICJQcm90b3R5cGUiOwogICAg
IHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuICRraW5kIC4g
IkZ1bmN0aW9uIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5uYW1lKTsKIH0KQEAgLTE3MzYsNiArMTc0Niw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgbXkgJGltcGxUeXBlID0gR2V0SW1wbENsYXNzTmFtZSgkaW50ZXJmYWNlTmFt
ZSk7CiAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBsKCRpbXBsVHlwZSk7CiAKKyAgICBBZGRJ
bmNsdWRlc0ZvckpTQnVpbHRpbk1ldGhvZHMoJGludGVyZmFjZSk7CisKICAgICBAaW1wbENvbnRl
bnQgPSAoKTsKIAogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG51c2luZyBuYW1lc3BhY2UgSlND
O1xuXG4iKTsKQEAgLTE3NTIsNiArMTc2NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ICYmICRmdW5j
dGlvbi0+e292ZXJsb2FkSW5kZXh9ID4gMTsKICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJGb3J3YXJkRGVjbGFyZUluSGVhZGVy
In07CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tQmluZGluZyJ9OworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9OwogCiAgICAg
ICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAgICAgICAgICAgIGlmICgk
bmVlZHNBcHBsZUNvcHlyaWdodCkgewpAQCAtMTkxMCwxMiArMTkyMyw3IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkZnVuY3Rpb25MZW5ndGggPSBHZXRGdW5j
dGlvbkxlbmd0aCgkZnVuY3Rpb24pOwogICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJGZ1
bmN0aW9uTGVuZ3RoKTsKIAotICAgICAgICAgICAgbXkgQHNwZWNpYWxzID0gKCk7Ci0gICAgICAg
ICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdERlbGV0YWJsZSJ9OwotICAgICAgICAgICAgcHVz
aChAc3BlY2lhbHMsICJEb250RW51bSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVyYWJsZSJ9OwotICAgICAgICAgICAgcHVzaChAc3BlY2lh
bHMsICJKU0M6OkZ1bmN0aW9uIik7Ci0gICAgICAgICAgICBteSAkc3BlY2lhbCA9IChAc3BlY2lh
bHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7Ci0gICAgICAgICAgICBwdXNo
KEBoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKKyAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFs
cywgQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCgkaW50ZXJmYWNlLCAkZnVuY3Rpb24pKTsKIAogICAg
ICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9OwogICAgICAgICAgICAgaWYgKCRjb25kaXRpb25h
bCkgewpAQCAtMTk4NiwxNCArMTk5NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgIG15ICRmdW5jdGlvbkxlbmd0aCA9IEdldEZ1bmN0aW9uTGVuZ3RoKCRmdW5jdGlvbik7
CiAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRmdW5jdGlvbkxlbmd0aCk7CiAKLSAgICAgICAg
bXkgQHNwZWNpYWxzID0gKCk7Ci0gICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udERlbGV0ZSIp
IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RGVsZXRh
YmxlIn0KLSAgICAgICAgICAgfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJVbmZvcmdlYWJsZSJ9Ci0gICAgICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJVbmZvcmdlYWJsZSJ9OwotICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRv
bnRFbnVtIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJO
b3RFbnVtZXJhYmxlIn07Ci0gICAgICAgIHB1c2goQHNwZWNpYWxzLCAiSlNDOjpGdW5jdGlvbiIp
OwotICAgICAgICBteSAkc3BlY2lhbCA9IChAc3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBz
cGVjaWFscykgOiAiMCI7Ci0gICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOwor
ICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsIENvbXB1dGVGdW5jdGlvblNwZWNpYWwoJGludGVy
ZmFjZSwgJGZ1bmN0aW9uKSk7CiAKICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9OwogICAgICAg
ICBpZiAoJGNvbmRpdGlvbmFsKSB7CkBAIC0yNzc0LDYgKzI3NzUsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICBteSAkaW5BcHBsZUNvcHlyaWdodCA9IDA7CiAgICAgICAg
IGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKICAgICAg
ICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21CaW5kaW5nIn07CisgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn07CiAgICAgICAgICAgICBteSAk
bmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsKICAgICAgICAgICAgIGlmICgkbmVlZHNBcHBsZUNv
cHlyaWdodCkgewogICAgICAgICAgICAgICAgIGlmICghJGluQXBwbGVDb3B5cmlnaHQpIHsKQEAg
LTQyMTUsNiArNDIxNyw4IEBAIHN1YiBHZW5lcmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkKICAgICAg
ICAgCiAgICAgICAgIGlmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vRnVuY3Rpb24vKSB7CiAgICAg
ICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPiI7
CisgICAgICAgIH0gZWxzaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9CdWlsdGluLykgeworICAg
ICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9y
PiI7CiAgICAgICAgIH0gZWxzaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVn
ZXIvKSB7CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gIiI7CiAgICAgICAgIH0gZWxz
ZSB7CkBAIC00OTY3LDQgKzQ5NzEsNTEgQEAgc3ViIEhlYWRlck5lZWRzUHJvdG90eXBlRGVjbGFy
YXRpb24KICAgICByZXR1cm4gSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSkgfHwgJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTmFtZWRHZXR0ZXJPblByb3RvdHlw
ZSJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbURlZmluZU93
blByb3BlcnR5T25Qcm90b3R5cGUifTsKIH0KIAorc3ViIENvbXB1dGVGdW5jdGlvblNwZWNpYWwK
K3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7
CisKKyAgICBteSBAc3BlY2lhbHMgPSAoKTsKKyAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxl
dGUiKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdERl
bGV0YWJsZSJ9CisgICAgICAgfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJVbmZvcmdlYWJsZSJ9CisgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IlVuZm9yZ2VhYmxlIn07CisgICAgcHVzaChAc3BlY2lhbHMsICJEb250RW51bSIp
IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVy
YWJsZSJ9OworICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiSlNDOjpCdWlsdGlu
Iik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6RnVu
Y3Rpb24iKTsKKyAgICB9CisgICAgcmV0dXJuIChAc3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIs
IEBzcGVjaWFscykgOiAiMCI7Cit9CisKK3N1YiBVc2VKU0J1aWx0aW5zCit7CisgICAgbXkgJGlu
dGVyZmFjZSA9IHNoaWZ0OworICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2Ut
PmZ1bmN0aW9uc30pIHsKKyAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0pIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiAwCit9CisKK3N1YiBBZGRJbmNsdWRlc0ZvckpTQnVp
bHRpbk1ldGhvZHMoKQoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKworICAgIGZvcmVh
Y2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgbmV4
dCB1bmxlc3MgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNC
dWlsdGluIn0pOworICAgICAgICBteSAkc2NvcGVOYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CisgICAgICAgIGlmICghJHNj
b3BlTmFtZSkgeworICAgICAgICAgICAgJHNjb3BlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7Cisg
ICAgICAgIH0KKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoJHNjb3BlTmFtZSAuICJCdWlsdGlu
cy5jcHAiLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRp
dGlvbmFsIn0pOworCisgICAgICAgIHJldHVybiAxOworICAgIH0KKworfQorCiAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXgg
MzhiN2UzM2U0ZmUyOTkzNTdkYzRhMjQ4ZjY5OWI2NDg4MDJkMzhjOC4uYmUwMWFlZjQ0NWJiNDRj
OWRkNjMwYTc4MzY3NjRhOGNmZGJmN2E5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CkBAIC03Myw2ICs3Myw3IEBAIEltcGxlbWVu
dGVkQXM9KgogSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IKIEludGVyZmFjZU5hbWU9Kgog
SXNXZWFrQ2FsbGJhY2sKK0pTQnVpbHRpbgogSlNDdXN0b21EZWZpbmVPd25Qcm9wZXJ0eQogSlND
dXN0b21EZWZpbmVPd25Qcm9wZXJ0eU9uUHJvdG90eXBlCiBKU0N1c3RvbUZpbmFsaXplCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJL
aXRET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCmluZGV4IDJlZjg3NjdhYjE1ODhjZjAwZGRmZmMz
M2Q3ZjRjYTc1YTJkNGQwODcuLjE5YmVjZjFiODEzNjFmNWMwZTM1MTU1Yjc5NDM0NDczYWI1ZTlk
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0xMTg5LDYgKzExODks
MjYgQEAgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2V4Y2VwdGlvbihXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBHRXJyb3IqKgogICAgIH0KIH0KIAordm9pZCB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihzZWxmKSk7CisgICAgV2ViQ29yZTo6VGVzdE9i
aiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5qc0J1aWx0aW5NZXRob2Qo
KTsKK30KKwordm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kX3dpdGhf
YXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciog
c3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19URVNUX09CSihzZWxmKSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChzdHJBcmcpOworICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihvYmpBcmcpKTsKKyAgICBXZWJD
b3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5n
IGNvbnZlcnRlZFN0ckFyZyA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChzdHJBcmcpOworICAgIFdl
YkNvcmU6OlRlc3RPYmoqIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwor
ICAgIGl0ZW0tPmpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFy
ZywgY29udmVydGVkT2JqQXJnKTsKK30KKwogdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhf
c2NyaXB0X3N0YXRlX3ZvaWQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgKaW5kZXggNDU3N2QzMTVmYjdkOTRiMWVlNTVkYWMwNzNlMjAwZWM2NTg2Yjk5OC4uZDQ3NDQz
NTZiNWViYjNmOTJjODVjMDU1NDBhZjg4NjYwZDdmOTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouaApAQCAtMjkxLDYgKzI5MSwyNyBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9k
b21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0
aW5fbWV0aG9kOgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqCisgKiBTdGFiaWxp
dHk6IFVuc3RhYmxlCisqKi8KK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9q
c19idWlsdGluX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKKworLyoqCisgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kX3dpdGhfYXJnczoKKyAqIEBzZWxmOiBB
ICNXZWJLaXRET01UZXN0T2JqCisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKKyAqIEBzdHJBcmc6IEEg
I2djaGFyCisgKiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgorICogU3RhYmlsaXR5
OiBVbnN0YWJsZQorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfanNf
YnVpbHRpbl9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxv
bmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CisK
Ky8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial93aXRoX3NjcmlwdF9zdGF0ZV92b2lkOgogICog
QHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGM0YzU3Njc1MDk1
ZDQ3ZTg1MmU3ZWRkZmU4ZGJkNzcxZTVmYWNlZjQuLmZlOTA3Yzg3YmY4YzA4M2UzN2RmZWNlZGE1
NzIwYTQxNWQyYzViMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC03Miw2ICs3Miw4IEBACiAjaW5jbHVkZSAi
SlNUZXN0T2JqZWN0Qy5oIgogI2VuZGlmCiAKKyNpbmNsdWRlICJUZXN0T2JqQnVpbHRpbnMuY3Bw
IgorCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MTAs
NiArNjEyLDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlw
ZVRhYmxlVmFsdWVzW10gPQogICAgIHsgImN1c3RvbU1ldGhvZFdpdGhBcmdzIiwgSlNDOjpGdW5j
dGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKSwgKGludHB0
cl90KSAoMykgfSB9LAogICAgIHsgImN1c3RvbUJpbmRpbmdNZXRob2QiLCBKU0M6OkZ1bmN0aW9u
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZCksIChpbnRwdHJfdCkg
KDApIH0gfSwKICAgICB7ICJjdXN0b21CaW5kaW5nTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0
aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZFdpdGhBcmdzKSwg
KGludHB0cl90KSAoMykgfSB9LAorICAgIHsgImpzQnVpbHRpbk1ldGhvZCIsIEpTQzo6QnVpbHRp
biwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+
KHRlc3RPYmpKc0J1aWx0aW5NZXRob2RDb2RlR2VuZXJhdG9yKSwgKGludHB0cl90KSAoMCkgfSB9
LAorICAgIHsgImpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzIiwgSlNDOjpCdWlsdGluLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4odGVzdE9iakpz
QnVpbHRpbk1ldGhvZFdpdGhBcmdzQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkgKDMpIH0gfSwK
ICAgICB7ICJhZGRFdmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpLCAoaW50cHRyX3QpICgyKSB9IH0sCiAgICAgeyAicmVt
b3ZlRXZlbnRMaXN0ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25S
ZW1vdmVFdmVudExpc3RlbmVyKSwgKGludHB0cl90KSAoMikgfSB9LAogICAgIHsgIndpdGhTY3Jp
cHRTdGF0ZVZvaWQiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNj
cmlwdFN0YXRlVm9pZCksIChpbnRwdHJfdCkgKDApIH0gfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCAwYmM3ZmM2YTEy
YmJkMjg0NTdjODZhZWM0OWMzZGRlZmUwNjMxNDAwLi5kNTdkMDBlYmU0MjFkMzU3MjZjMTA5NzYx
MjNlYmEzYjI0ZGMwNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJK
U0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCisjaW5jbHVkZSAiVGVzdE9iakJ1
aWx0aW5zLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCA4NWY2ZWI5YzVkYmFjMTA1OTk0MjAzYmQ5OGRiZDA5
ZWVkMWZiMjVlLi5iNmEyYWI4MGViZWFlZjVkNzFjYThiMWIxY2Q1YzlkZmRkMmY2MzEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdE9iai5oCkBAIC0xMzksNiArMTM5LDggQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBE
T01UZXN0T2JqIDogRE9NT2JqZWN0CiAtICh2b2lkKW1ldGhvZFdpdGhFeGNlcHRpb247CiAtICh2
b2lkKWN1c3RvbU1ldGhvZDsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25n
QXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJn
OworLSAodm9pZClqc0J1aWx0aW5NZXRob2Q7CistICh2b2lkKWpzQnVpbHRpbk1ldGhvZFdpdGhB
cmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZzsKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBl
IGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9P
TCl1c2VDYXB0dXJlOwogLSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5
cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihC
T09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXdpdGhTY3JpcHRTdGF0ZVZvaWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1t
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5t
bQppbmRleCA2NjhkZmNhYmNiM2U3YTMxZWNhOGVjODFlOGNjODNiNDliZGMyZDcwLi43MWZiY2Zj
ODEzNWQ5MWRmNzc5OWVkNDYyYTBkMTliZDEyNmVjODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTky
NSw2ICs5MjUsMTggQEAKICAgICBJTVBMLT5jdXN0b21NZXRob2RXaXRoQXJncyhsb25nQXJnLCBz
dHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKKy0gKHZvaWQpanNCdWlsdGluTWV0aG9kCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmpzQnVp
bHRpbk1ldGhvZCgpOworfQorCistICh2b2lkKWpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzOihpbnQp
bG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9i
akFyZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJ
TVBMLT5qc0J1aWx0aW5NZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJn
KSk7Cit9CisKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3Rl
bmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VD
YXB0dXJlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4
IGNjOWU3MDA3YzZkYTBiYTg1MzM5NjljZDk4ZTJhZWNjZjNmNGYwZTAuLjQ1NjhhZmI3ZjAwZDNh
YjJlZWNjNDdlMjU1MzMwMmJjYTYzZmJiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTExNiw2ICsxMTYsMTAgQEAgZW51bSBf
b3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlv
bmFsVmFsdWUzIiB9OwogICAgIFtDdXN0b21CaW5kaW5nXSB2b2lkIGN1c3RvbUJpbmRpbmdNZXRo
b2QoKTsKICAgICBbQ3VzdG9tQmluZGluZ10gdm9pZCBjdXN0b21CaW5kaW5nTWV0aG9kV2l0aEFy
Z3MobG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CiAKKyAg
ICAvLyAnSlNCdWlsdGluJyBleHRlbmRlZCBhdHRyaWJ1dGUKKyAgICBbSlNCdWlsdGluXSB2b2lk
IGpzQnVpbHRpbk1ldGhvZCgpOworICAgIFtKU0J1aWx0aW5dIHZvaWQganNCdWlsdGluTWV0aG9k
V2l0aEFyZ3MobG9uZyBsb25nQXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7
CisKICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVu
ZXIgbGlzdGVuZXIsIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgdm9pZCByZW1v
dmVFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCBv
cHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b25mb287CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucyBi
L1NvdXJjZS9XZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MjJmZDhk
ODI5OTk3MjJhYjZmY2U4ZjVkNDQwOWJhOWFiZTMwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpAQCAtMCwwICsxLDE0MSBAQAorIyEvdXNy
L2Jpbi9weXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorIyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgZmls
ZWNtcAoraW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2VzcworCitmcm9tIHN0cmluZyBpbXBvcnQg
VGVtcGxhdGUKKworCitwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCitwYXJzZXIu
YWRkX2FyZ3VtZW50KCctLW91dHB1dF9kaXInLCBkZWZhdWx0PScnLCBoZWxwPSdvdXRwdXQgZGly
ZWN0b3J5JykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0taW5wdXQnLCBoZWxwPSdwYXRoIHRvIGlu
cHV0IEpTIGZpbGUnKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLS13ZWJjb3JlX2RpcicsIGhlbHA9
J3BhdGggdG8gV2ViQ29yZSBkaXJlY3RvcnknKQorCithcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3Mo
KQorZmlsZW5hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoYXJncy5pbnB1
dCkpWzBdCisKKyMgZ2VuZXJhdGUgSlMgYnVpbHRpbnMKK25hbWVzcGFjZSA9ICJXZWJDb3JlIgor
cHJlZml4ID0gIldFQkNPUkUiICsgZmlsZW5hbWUudXBwZXIoKQorb3V0cHV0ID0gb3MucGF0aC5q
b2luKGFyZ3Mub3V0cHV0X2RpciwgZmlsZW5hbWUgKyAiQnVpbHRpbnMiKQoranNjX2dlbmVyYXRl
X2J1aWx0aW5fc2NyaXB0ID0gb3MucGF0aC5qb2luKGFyZ3Mud2ViY29yZV9kaXIsICIuLiIsICJK
YXZhU2NyaXB0Q29yZSIsICJnZW5lcmF0ZS1qcy1idWlsdGlucyIpCisKK3N1YnByb2Nlc3MuY2Fs
bChbInB5dGhvbiIsIGpzY19nZW5lcmF0ZV9idWlsdGluX3NjcmlwdCwgIi0tb3V0cHV0Iiwgb3V0
cHV0LCAiLS1uYW1lc3BhY2UiLCBuYW1lc3BhY2UsICItLXByZWZpeCIsIHByZWZpeCwgYXJncy5p
bnB1dF0sIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKKworIyBnZW5lcmF0ZSBKUyBidWlsdGlu
cyB3cmFwcGVyCitvdXRwdXRfYmFzZSA9IG91dHB1dCArICJXcmFwcGVyIgorCitidWlsdGluc1dy
YXBwZXJIZWFkZXIgPSBvcGVuKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsICJ3IikKKworYnVpbHRp
bnNXcmFwcGVySGVhZGVyLndyaXRlKFRlbXBsYXRlKAorIiIiCisvKiBHZW5lcmF0ZWQgYnkgZ2Vu
ZXJhdGUtanMtYnVpbHRpbnMgZG8gbm90IGhhbmQgZWRpdC4gKi8KKworLyoKKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXJf
aAorI2RlZmluZSAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcl9oCisKKyNpbmNsdWRlICIke0Zp
bGVuYW1lfUJ1aWx0aW5zLmgiCisjaW5jbHVkZSA8Ynl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUuaD4KKyNpbmNsdWRlIDxidWlsdGlucy9CdWlsdGluVXRpbHMuaD4KKyNpbmNsdWRl
IDxydW50aW1lL0lkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyAk
e0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlciA6IHByaXZhdGUgSlNDOjpXZWFrSGFuZGxlT3duZXIK
K3sKK3B1YmxpYzoKKyAgICBleHBsaWNpdCAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcihKU0M6
OlZNKiB2bSkKKyAgICAgICAgOiBtX3ZtKCp2bSkKKyAgICAgICAgJHtQcmVmaXh9X0ZPUkVBQ0hf
QlVJTFRJTl9GVU5DVElPTl9OQU1FKElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUykKKyNkZWZpbmUg
SU5JVElBTElaRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVu
Z3RoKSAsIG1fIyNuYW1lIyNTb3VyY2UoSlNDOjptYWtlU291cmNlKFN0cmluZ0ltcGw6OmNyZWF0
ZUZyb21MaXRlcmFsKHNfIyNuYW1lLCBsZW5ndGgpKSkKKyAgICAgICAgJHtQcmVmaXh9X0ZPUkVB
Q0hfQlVJTFRJTihJTklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMpCisjdW5kZWYgSU5J
VElBTElaRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTCisgICAgeworICAgIH0KKworI2RlZmluZSBF
WFBPU0VfQlVJTFRJTl9FWEVDVVRBQkxFUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgXFwK
KyAgICBKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBuYW1lIyNFeGVjdXRhYmxlKCk7
IFxcCisgICAgY29uc3QgSlNDOjpTb3VyY2VDb2RlJiBuYW1lIyNTb3VyY2UoKSBjb25zdCB7IHJl
dHVybiBtXyMjbmFtZSMjU291cmNlOyB9CisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihF
WFBPU0VfQlVJTFRJTl9FWEVDVVRBQkxFUykKKyN1bmRlZiBFWFBPU0VfQlVJTFRJTl9FWEVDVVRB
QkxFUworCisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKERFQ0xB
UkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKQorCitwcml2YXRlOgorICAgIEpTQzo6Vk0m
IG1fdm07CisKKyAgICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoREVD
TEFSRV9CVUlMVElOX05BTUVTKQorCisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TT1VSQ0VfTUVN
QkVSUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgXFwKKyAgICBKU0M6OlNvdXJjZUNvZGUg
bV8jI25hbWUjI1NvdXJjZTtcXAorICAgIEpTQzo6V2VhazxKU0M6OlVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlPiBtXyMjbmFtZSMjRXhlY3V0YWJsZTsKKyAgICAke1ByZWZpeH1fRk9SRUFDSF9C
VUlMVElOKERFQ0xBUkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUykKKyN1bmRlZiBERUNMQVJFX0JV
SUxUSU5fU09VUkNFX01FTUJFUlMKKworfTsKKworI2RlZmluZSBERUZJTkVfQlVJTFRJTl9FWEVD
VVRBQkxFUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgXFwKK2lubGluZSBKU0M6OlVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlKiAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcjo6bmFtZSMj
RXhlY3V0YWJsZSgpIFxcCit7XFwKKyAgICBpZiAoIW1fIyNuYW1lIyNFeGVjdXRhYmxlKVxcCisg
ICAgICAgIG1fIyNuYW1lIyNFeGVjdXRhYmxlID0gSlNDOjpXZWFrPEpTQzo6VW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGU+KEpTQzo6Y3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUobV92bSwgbV8jI25h
bWUjI1NvdXJjZSwgZnVuY3Rpb25OYW1lIyNQdWJsaWNOYW1lKCksIHNfIyNuYW1lIyNDb25zdHJ1
Y3RBYmlsaXR5KSwgdGhpcywgJm1fIyNuYW1lIyNFeGVjdXRhYmxlKTtcXAorICAgIHJldHVybiBt
XyMjbmFtZSMjRXhlY3V0YWJsZS5nZXQoKTtcXAorfQorJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJ
TihERUZJTkVfQlVJTFRJTl9FWEVDVVRBQkxFUykKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9FWEVD
VVRBQkxFUworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAke0ZpbGVuYW1l
fUJ1aWx0aW5zV3JhcHBlcl9oCisiIiIpLnN1YnN0aXR1dGUoZGljdChGaWxlbmFtZT1maWxlbmFt
ZSwgUHJlZml4PXByZWZpeCkpKQorCitidWlsdGluc1dyYXBwZXJIZWFkZXIuY2xvc2UoKQorCitp
ZiAobm90IG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpIG9yIChub3QgZmlsZWNt
cC5jbXAob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiLCBzaGFsbG93
PUZhbHNlKSk6CisgICAgaWYgKG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpOgor
ICAgICAgICBvcy5yZW1vdmUob3V0cHV0X2Jhc2UgKyAiLmgiKQorICAgIG9zLnJlbmFtZShvdXRw
dXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFzZSArICIuaCIpCitlbHNlOgorICAgIG9zLnJl
bW92ZShvdXRwdXRfYmFzZSArICIuaC50bXAiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGExMzgyZmIyZTNjYWQ1OTkxN2Fh
NzdmZDAxMDFhMzNjMmE2ZjM2ZDcuLmNlYTdhMWFiYzI4MTNmM2IwYjQxMGZiMzI2MTk3MGNlZmFk
Y2U2ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wOS0xOSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1w
bGVtZW50IFJlYWRhYmxlU3RyZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBSZWJhc2VkIHRlc3QgdGhhdCBpcyBub3cgcGFzc2luZy4K
KyAgICAgICAgQWRkaW5nIG5ldyB0ZXN0cyB0byBpbXByb3ZlIHBpcGVUaHJvdWdoIGNvdmVyYWdl
LgorCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhy
b3VnaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA5LTE4ICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBNYWMgZXhwZWN0YXRp
b25zIGZvciBodHRwL3Rlc3RzL2NhY2hlL2lmcmFtZS0zMDQtY3Jhc2guaHRtbC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdo
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWUwNjFjYTkwNmQ0MjBmMTVmMTNkN2I0NTEwY2Y1
M2VjZDIzNmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJs
ZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNT
IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiAi
dGhpcyIgaGFzIG5vIHBpcGVUbyBtZXRob2QgCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlw
ZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBwYXNzZWQgYXJndW1lbnQgaXMgbm90IGFu
IG9iamVjdCAKK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3Vs
ZCB0aHJvdyB3aGVuIGNhbGxlZCBnZXR0ZXJzIGFyZSB0aHJvd2luZyAKK1BBU1MgUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB3b3JrIHdpdGggbWlzc2luZyBwYXJh
bWV0ZXJzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVh
bS1waXBlVGhyb3VnaC5odG1sIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0t
cGlwZVRocm91Z2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjlhNjhiMzJiYzRiN2JiZWZmYjhjZDU3Njc0
MzdiN2E1YzRhODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFk
YWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL2djLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIGlucHV0ID0geworICAgICAgICByZWFkYWJs
ZTogeyB9LAorICAgICAgICB3cml0YWJsZTogeyB9CisgICAgfTsKKyAgICB2YXIgb3B0aW9ucyA9
IHsgfTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJl
YWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHVuZGVmaW5lZCwgaW5wdXQs
IG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rp
b24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKG51bGwsIGlu
cHV0LCBvcHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1
bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCgxLCBp
bnB1dCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBm
dW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwoeyAi
cGlwZVRvIjogInRlc3QiIH0sIGlucHV0LCBvcHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVTdHJl
YW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuICJ0aGlzIiBoYXMgbm8g
cGlwZVRvIG1ldGhvZCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvcHRpb25zID0g
eyB9OworICAgIHZhciB0aGlzVmFsdWUgPSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCk7CisgICAgICAgIH0KKyAgICB9OworCisg
ICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0
cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIG51bGwsIG9wdGlvbnMp
OyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJl
YWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgdW5kZWZp
bmVkLCBvcHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJv
dWdoIHNob3VsZCB0aHJvdyB3aGVuIHBhc3NlZCBhcmd1bWVudCBpcyBub3QgYW4gb2JqZWN0Jyk7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9wdGlvbnMgPSB7IH07CisgICAgdmFyIGVy
cm9yID0gbmV3IFR5cGVFcnJvcigicG90YXRvIik7CisKKyAgICB2YXIgdGhpc1dyb25nVmFsdWUg
PSB7CisgICAgICAgIGdldCBwaXBlVG8oKSB7CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAg
ICAgICAgfQorICAgIH07CisgICAgYXNzZXJ0X3Rocm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJl
YWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNXcm9uZ1ZhbHVlLCB7
IHJlYWRhYmxlOiB7IH0sIHdyaXRhYmxlOiB7IH0gfSwgb3B0aW9ucyk7IH0pOworCisgICAgdmFy
IHRoaXNWYWx1ZSA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGFzc2VydF91bnJlYWNoZWQoKTsKKyAgICAgICAgfQorICAgIH07CisgICAgdmFyIHdyb25nSW5w
dXQgPSB7CisgICAgICAgIHJlYWRhYmxlOiB7IH0sCisgICAgICAgIGdldCB3cml0YWJsZSgpIHsK
KyAgICAgICAgICAgIHRocm93IGVycm9yOworICAgICAgICB9CisgICAgfTsKKyAgICBhc3NlcnRf
dGhyb3dzKGVycm9yLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVU
aHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB3cm9uZ0lucHV0LCBvcHRpb25zKTsgfSk7CisKKyAgICB2
YXIgd3JvbmdJbnB1dDIgPSB7CisgICAgICAgIGdldCByZWFkYWJsZSgpIHsKKyAgICAgICAgICAg
IHRocm93IGVycm9yOworICAgICAgICB9LAorICAgICAgICB3cml0YWJsZTogeyB9CisgICAgfTsK
KyAgICB2YXIgdGhpc1ZhbHVlMiA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsgfQor
ICAgIH07CisgICAgYXNzZXJ0X3Rocm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3Ry
ZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZTIsIHdyb25nSW5wdXQyLCBv
cHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNo
b3VsZCB0aHJvdyB3aGVuIGNhbGxlZCBnZXR0ZXJzIGFyZSB0aHJvd2luZycpOworCit0ZXN0KGZ1
bmN0aW9uKCkgeworICAgIHZhciBjb3VudCA9IDA7CisgICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAg
ICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAg
IH0KKyAgICB9OworCisgICAgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNh
bGwodGhpc1ZhbHVlLCB7IHJlYWRhYmxlOiB7IH0sIHdyaXRhYmxlOiB7IH0gfSk7CisgICAgUmVh
ZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHJlYWRh
YmxlOiB7IH0gfSwgeyB9KTsKKyAgICBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2guY2FsbCh0aGlzVmFsdWUsIHsgd3JpdGFibGU6IHsgfSB9LCB7IH0pOworCisgICAgYXNzZXJ0
X2VxdWFscyhjb3VudCwgMyk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJv
dWdoIHNob3VsZCB3b3JrIHdpdGggbWlzc2luZyBwYXJhbWV0ZXJzJyk7CisKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24v
YnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNl
LWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQKaW5kZXggMzczNTc3ZWI5
ODIxZDIwNzU0ZGU4NzcxYTYwZmFlNTIzOGM5YjVmNi4uYjE5N2QxNjU3YjEwZjcwMDM0ZjJjMmE2
NDYxNmY1YmMyZmYyNWZkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVu
Y2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0
ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFt
UmVhZGVyIGNvbnN0cnVjdG9yIGluZGlyZWN0bHkgCiBQQVNTIENhbiBnZXQgdGhlIFJlYWRhYmxl
U3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3RvciBpbmRpcmVjdGx5IAotRkFJTCBSZWFkYWJsZVN0
cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggd29ya3MgZ2VuZXJpY2FsbHkgb24gaXRzIHRoaXMg
YW5kIGl0cyBhcmd1bWVudHMgQ2FuIG9ubHkgY2FsbCBSZWFkYWJsZVN0cmVhbS5waXBlVGhyb3Vn
aCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW0KK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJv
dG90eXBlLnBpcGVUaHJvdWdoIHdvcmtzIGdlbmVyaWNhbGx5IG9uIGl0cyB0aGlzIGFuZCBpdHMg
YXJndW1lbnRzIAogUEFTUyBSZWFkYWJsZVN0cmVhbVJlYWRlciBlbmZvcmNlcyBhIGJyYW5kIGNo
ZWNrIG9uIGl0cyBhcmd1bWVudCAKIEZBSUwgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBl
LmNsb3NlZCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgZ2V0dGVy
TmFtZSkuZ2V0JykKIFBBU1MgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNhbmNlbCBl
bmZvcmNlcyBhIGJyYW5kIGNoZWNrIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261607</attachid>
            <date>2015-09-20 00:48:14 -0700</date>
            <delta_ts>2015-09-22 02:05:17 -0700</delta_ts>
            <desc>Speculative win build fix</desc>
            <filename>bug-147556-20150920094752.patch</filename>
            <type>text/plain</type>
            <size>64203</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5OTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZmZiNDljMTE3NGJkNTA1OWNlZDM2YmNjODExNmFiYWYyYjQ1MTkyLi42ZDY5OGZiZDU0NmY2YzM0
NjMxZTRhZGE5ZTM5MTVkODM3MjFhMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNhYmxl
IGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGluTmFt
ZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVzLgor
ICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRpbmcg
YnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1dGFi
bGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhl
Y3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
QnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJu
YWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6OkJ1
aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6
IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFibGVz
LmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6Cisg
ICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0xNiAgU3Vrb2xzYWsg
U2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgaW5k
aXJlY3QgY2FsbHMgaW4gV2ViQXNzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjhiNDZiN2Y1MjY5N2Ix
ZWJhNDdiZjBmOTdhZWQ2NWM2OGE5NWUzLi4yYzk0M2FhMmI4MzcyZjZlZGY0MjQ0MWYzNmI1M2Rm
YmY0OTZlN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTUtMDktMjAgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFt
cyBBUEldIEltcGxlbWVudCBSZWFkYWJsZVN0cmVhbSBwaXBlVGhyb3VnaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NTU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkaW5nIGluaXRpYWwgc3VwcG9ydCBm
b3IgSlMgYnVpbHRpbnMgd2l0aGluIFdlYkNvcmUuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxsb3dz
IGltcGxlbWVudGluZyBJREwgaW50ZXJmYWNlIG1ldGhvZHMgaW4gSlMsIGJ5IHVzaW5nIHRoZSBu
ZXcgSlNCdWlsdGluIGtleXdvcmQuCisgICAgICAgIChObyBzdXBwb3J0IHlldCBmb3IgcHJpdmF0
ZSBpZGVudGlmaWVycywgY29uc3RydWN0b3JzIG9yIGFjY2Vzc29ycykuCisgICAgICAgIEludGVn
cmF0aW9uIG9mIHRoZSBidWlsdC1pbiBleGVjdXRhYmxlcyBhbmQgbmFtZXMgaXMgaW1wbGVtZW50
ZWQgd2l0aGluIFdlYkNvcmVKU0NsaWVudERhdGEuCisgICAgICAgIFR3byBmaWxlcyBhcmUgZ2Vu
ZXJhdGVkIGZvciBlYWNoIEpTIGJ1aWx0aW4gZmlsZToKKyAgICAgICAgLSBidWlsdGluIGgvY3Bw
IGZpbGVzIHNpbWlsYXIgdG8gSlNDQnVpbHRpbnMuY3BwLy5oLCBnZW5lcmF0ZWQgdGhyb3VnaCBX
ZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIGZyb20gSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUt
anMtYnVpbHRpbnMpCisgICAgICAgIC0gQSBidWlsdGluIHdyYXBwZXIgZmlsZSBtaW1pY2tpbmcg
QnVpbHRpbkV4ZWN1dGFibGVzIChnZW5lcmF0ZWQgZnJvbSBXZWJDb3JlL2dlbmVyYXRlLWpzLWJ1
aWx0aW5zKQorICAgICAgICBDb250cmFyeSB0byBKU0MsIGVhY2gganMgZmlsZSBpcyBnZW5lcmF0
aW5nIGl0cyBvd24gY3BwL2ggZmlsZS4KKyAgICAgICAgVGhpcyBhbGxvd3MgaW5jbHVkaW5nIHRo
b3NlIGZpbGVzIHdpdGhpbiB0aGUgSlNYWC5jcHAvLmggZmlsZXMgZ2VuZXJhdGVkIGZyb20gdGhl
IElETCB3aGVyZSBjb21waWxhdGlvbiBndWFyZCBtYXkgdGFrZSBlZmZlY3QuCisKKyAgICAgICAg
RGlzYWJsZWQgR09iamVjdCBiaW5kaW5nIGZvciBKU0J1aWx0aW4gbWV0aG9kcy4KKworICAgICAg
ICBUZXN0OiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogVHJpZ2dlcmluZyBnZW5lcmF0ZS1qcy1idWlsdGlucyBmb3Ig
SlMgZmlsZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogRGl0dG8uCisgICAgICAg
ICogRm9yd2FyZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6IEFkZGVkLgorICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3Ry
dWN0QWJpbGl0eS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW0uaWRsOiBNYXJraW5nIHBpcGVUaHJvdWdoIGFzIEpTIGJ1aWx0aW4KKyAgICAgICAgKiBN
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6IEFkZGVkLgorICAgICAgICAocGlwZVRo
cm91Z2gpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDogQWRkaW5nIFJl
YWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyIHRvIHN0b3JlIFJlYWRhYmxlU3RyZWFtIGJ1aWx0
aW4gZXhlY3V0YWJsZQorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUpTQ2xpZW50RGF0YTo6V2Vi
Q29yZUpTQ2xpZW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlSlNDbGllbnREYXRh
OjpyZWFkYWJsZVN0cmVhbUJ1aWx0aW5zKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXROb3JtYWxX
b3JsZENsaWVudERhdGEpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckdPYmplY3QucG06IERpc2FibGVkIEdPYmplY3QgYmluZGluZyBmb3IgSlNCdWlsdGluIG1ldGhv
ZHMuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06IEFkZGlu
ZyBzdXBwb3J0IGZvciBKU0J1aWx0aW4ga2V5d29yZC4KKyAgICAgICAgKEdldEZ1bmN0aW9uTmFt
ZSk6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6CisgICAgICAg
IChDb21wdXRlRnVuY3Rpb25TcGVjaWFsKToKKyAgICAgICAgKFVzZUpTQnVpbHRpbnMpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6IEFkZGluZyBKU0J1aWx0
aW4uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dE9iai5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9k
KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfanNfYnVpbHRpbl9tZXRob2Rfd2l0aF9h
cmdzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtE
T01UZXN0T2JqIGpzQnVpbHRpbk1ldGhvZF0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGpzQnVp
bHRpbk1ldGhvZFdpdGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGdlbmVyYXRlLWpzLWJ1aWx0aW5z
OiBBZGRlZC4KKwogMjAxNS0wOS0xNyAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJuYW5kZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBSZWxheW91dCB3aGVuZXZlciBC
b3ggQWxpZ25tZW50IHByb3BlcnRpZXMgY2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGFjMmVhNGI4Y2ZhYTA3MWY0OTVjMjMxMGY0ZmMwNjIxODk2OWJmZGYuLjQ4MWM1NDQ4
NjgzZmQyNzRiN2Q3YzI4NjQ2NjdiNjRkNGU4ZWE3ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC05NDcsNiArOTQ3LDcgQEAKIAkJMkFGNzM4MkQxOEJCQkY5MjAwOEE1QTM3IC8q
IFN0cnVjdHVyZUlEVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJBRjczODJCMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzcxRDg0
MkQxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFEODQyQzE3Qzk4QjZFMDBFQ0Y5OTQgLyogbGli
ei5keWxpYiAqLzsgfTsKIAkJNDEzNTlDRjMwRkREODlBRDAwMjA2MTgwIC8qIERhdGVDb252ZXJz
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjEy
MDIyOTBBRDQzMTBDMDBFRDc5QjYgLyogRGF0ZUNvbnZlcnNpb24uaCAqLzsgfTsKKwkJNDFERUEx
MzIxQjlGMzE2MzAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFERUExMzExQjlGMzE1NDAwNkQ2NUREIC8qIEJ1
aWx0aW5VdGlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQzNDBBNDg0MUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDBBNDgyMUE5MDUxQUYw
MEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCAqLzsgfTsKIAkJNDM0MEE0ODUxQTkwNTFBRjAwRDcz
Q0NBIC8qIE1hdGhDb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQzNDBBNDgzMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmggKi87IH07
CiAJCTQ0NDNBRTMzMTZFMTg4RDkwMDc2RjExMCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjBFQjYxMDVD
ODZDNkIwMEU2REYxQiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKQEAgLTI3NDUsNiAr
Mjc0Niw3IEBACiAJCTJBRjczODJBMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cnVjdHVyZUlEVGFi
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQUY3MzgyQjE4QkJCRjkyMDA4
QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHJ1Y3R1cmVJRFRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3
MUQ4NDJDMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5h
bWUgPSBsaWJ6LmR5bGliOyBwYXRoID0gdXNyL2xpYi9saWJ6LmR5bGliOyBzb3VyY2VUcmVlID0g
U0RLUk9PVDsgfTsKKwkJNDFERUExMzExQjlGMzE1NDAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdWlsdGluVXRpbHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM0MEE0ODIxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhD
b21tb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aENvbW1v
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNDBBNDgzMUE5MDUxQUYwMEQ3
M0NDQSAvKiBNYXRoQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1h
dGhDb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ5MDk3RUUwRjhGODFC
NTAwNzZBMzI3IC8qIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2Nv
bmZpZzsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTgzMiw2ICs1ODM0LDcgQEAKIAkJCQlBN0Q4MDFBMTE4ODBENjZFMDAyNkMz
OUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCAqLywKIAkJCQlBN0Q4MDFBMjE4ODBENjZFMDAy
NkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmggKi8sCiAJCQkJQTc1RUU5QjAxOEFBQjdFMjAw
QUFEMDQzIC8qIEJ1aWx0aW5OYW1lcy5oICovLAorCQkJCTQxREVBMTMxMUI5RjMxNTQwMDZENjVE
RCAvKiBCdWlsdGluVXRpbHMuaCAqLywKIAkJCQlBN0E5NzlDNDE4QkU4RDlFMDAyQzM3MzMgLyog
RnVuY3Rpb24ucHJvdG90eXBlLmpzICovLAogCQkJCTdDRjlCQzVBMUI2NUQ5QTMwMDlEQjFFRiAv
KiBHbG9iYWxPYmplY3QuanMgKi8sCiAJCQkJRTM1RTAzNjExQjdBQjQ4NTAwNzNBRDJBIC8qIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5qcyAqLywKQEAgLTYwOTksNiArNjEwMiw3IEBA
CiAJCQkJQTcwNEQ5MDMxN0EwQkFBODAwNkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDREOTA0MTdBMEJBQTgwMDZCQTU1NCAvKiBERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUyM0MxQjRF
MEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MURFQTEzMjFCOUYzMTYzMDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjYyMDE3NzE0M0ZDRDNGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMDU0RkExQUMzNUI0NDAwRTVCRTU3IC8qIEV4ZWN1dGFi
bGVBbGxvY2F0aW9uRnV6ei5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2NkUxNkIxNERGM0YxNjAw
QjdCMkU0IC8qIERGR0FkamFjZW5jeUxpc3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcAppbmRl
eCA3ZWYxZGEzYjBhYzM5NDNlMDA1OTNjNjhlMWQ4MTU1MjdjMjcxMWE1Li4zNmQyNjUyNmI1NTNi
OGM3NzgwNTVhNTA1OTkzMjc0Yzg2MWM2MTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcApAQCAtMzUsNiArMzUsOCBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgY29uc3Qg
SWRlbnRpZmllciYsIENvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSk7CisKIEJ1aWx0
aW5FeGVjdXRhYmxlczo6QnVpbHRpbkV4ZWN1dGFibGVzKFZNJiB2bSkKICAgICA6IG1fdm0odm0p
CiAjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlv
bk5hbWUsIGxlbmd0aCkgLCBtXyMjbmFtZSMjU291cmNlKG1ha2VTb3VyY2UoU3RyaW5nSW1wbDo6
Y3JlYXRlRnJvbUxpdGVyYWwoc18jI25hbWUsIGxlbmd0aCkpKQpAQCAtNTIsMTUgKzU0LDI1IEBA
IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZURl
ZmF1bHRDb25zdHJ1Y3RvcihDb25zdHJ1CiAgICAgY2FzZSBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmU6
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5kOjpCYXNlOgotICAgICAg
ICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1ha2VTb3VyY2UoYmFzZUNvbnN0cnVj
dG9yQ29kZSksIG5hbWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29u
c3RydWN0KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBt
YWtlU291cmNlKGJhc2VDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1Y3RvcktpbmQsIENv
bnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7CiAgICAgY2FzZSBDb25zdHJ1Y3RvcktpbmQ6
OkRlcml2ZWQ6Ci0gICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwobWFrZVNv
dXJjZShkZXJpdmVkQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25z
dHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QpOworICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0
YWJsZUludGVybmFsKG1fdm0sIG1ha2VTb3VyY2UoZGVyaXZlZENvbnN0cnVjdG9yQ29kZSksIG5h
bWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsKICAg
ICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LVVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4
ZWN1dGFibGVJbnRlcm5hbChjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGNvbnN0IElkZW50aWZp
ZXImIG5hbWUsIENvbnN0cnVjdG9yS2luZCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxp
dHkgY29uc3RydWN0QWJpbGl0eSkKK1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGlu
RXhlY3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKGNvbnN0IFNvdXJjZUNvZGUmIGNv
ZGUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJp
bGl0eSkKK3sKKyAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1fdm0sIGNvZGUs
IG5hbWUsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgY29uc3RydWN0QWJpbGl0eSk7Cit9CisKK1Vu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShWTSYgdm0s
IGNvbnN0IFNvdXJjZUNvZGUmIGNvZGUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVj
dEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkKK3sKKyAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJs
ZUludGVybmFsKHZtLCBjb2RlLCBuYW1lLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIGNvbnN0cnVj
dEFiaWxpdHkpOworfQorCitVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRXhlY3V0
YWJsZUludGVybmFsKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBjb25zdCBJZGVu
dGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RB
YmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCiB7CiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb25C
ZWZvcmVMYXN0TmV3bGluZTsKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKQEAgLTY5LDcgKzgxLDcg
QEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRl
RXhlY3V0YWJsZUludGVybmFsKGNvbnN0IFMKICAgICBVbmxpbmtlZEZ1bmN0aW9uS2luZCBraW5k
ID0gaXNQYXJzaW5nRGVmYXVsdENvbnN0cnVjdG9yID8gVW5saW5rZWROb3JtYWxGdW5jdGlvbiA6
IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uOwogICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4gc291
cmNlT3ZlcnJpZGUgPSBpc1BhcnNpbmdEZWZhdWx0Q29uc3RydWN0b3IgPyBzb3VyY2UucHJvdmlk
ZXIoKSA6IG51bGxwdHI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2dyYW1Ob2RlPiBwcm9ncmFt
ID0gcGFyc2U8UHJvZ3JhbU5vZGU+KAotICAgICAgICAmbV92bSwgc291cmNlLCBJZGVudGlmaWVy
KCksIGJ1aWx0aW5Nb2RlLAorICAgICAgICAmdm0sIHNvdXJjZSwgSWRlbnRpZmllcigpLCBidWls
dGluTW9kZSwKICAgICAgICAgSlNQYXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3QsIFNvdXJjZVBh
cnNlTW9kZTo6UHJvZ3JhbU1vZGUsIGVycm9yLAogICAgICAgICAmcG9zaXRpb25CZWZvcmVMYXN0
TmV3bGluZSwgY29uc3RydWN0b3JLaW5kKTsKIApAQCAtOTUsMTYgKzEwNywxNiBAQCBVbmxpbmtl
ZEZ1bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVFeGVjdXRhYmxl
SW50ZXJuYWwoY29uc3QgUwogICAgIG1ldGFkYXRhLT5zZXRFbmRQb3NpdGlvbihwb3NpdGlvbkJl
Zm9yZUxhc3ROZXdsaW5lKTsKICAgICBSRUxFQVNFX0FTU0VSVChtZXRhZGF0YSk7CiAgICAgZm9y
IChjb25zdCBhdXRvJiBjbG9zZWRWYXJpYWJsZSA6IHByb2dyYW0tPmNsb3NlZFZhcmlhYmxlcygp
KSB7Ci0gICAgICAgIGlmIChjbG9zZWRWYXJpYWJsZSA9PSBtX3ZtLnByb3BlcnR5TmFtZXMtPmFy
Z3VtZW50cy5pbXBsKCkpCisgICAgICAgIGlmIChjbG9zZWRWYXJpYWJsZSA9PSB2bS5wcm9wZXJ0
eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IAotICAgICAgICBpZiAoY2xvc2VkVmFyaWFibGUgPT0gbV92bS5wcm9wZXJ0eU5hbWVzLT51bmRl
ZmluZWRLZXl3b3JkLmltcGwoKSkKKyAgICAgICAgaWYgKGNsb3NlZFZhcmlhYmxlID09IHZtLnBy
b3BlcnR5TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQuaW1wbCgpKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgfQogICAgIG1ldGFkYXRhLT5vdmVycmlkZU5hbWUobmFtZSk7CiAgICAgVmFyaWFi
bGVFbnZpcm9ubWVudCBkdW1teVREWlZhcmlhYmxlczsKLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlID0gVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6
OmNyZWF0ZSgmbV92bSwgc291cmNlLCBtZXRhZGF0YSwga2luZCwgY29uc3RydWN0QWJpbGl0eSwg
ZHVtbXlURFpWYXJpYWJsZXMsIFdURjo6bW92ZShzb3VyY2VPdmVycmlkZSkpOwotICAgIGZ1bmN0
aW9uRXhlY3V0YWJsZS0+bV9uYW1lVmFsdWUuc2V0KG1fdm0sIGZ1bmN0aW9uRXhlY3V0YWJsZSwg
anNTdHJpbmcoJm1fdm0sIG5hbWUuc3RyaW5nKCkpKTsKKyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlID0gVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6
OmNyZWF0ZSgmdm0sIHNvdXJjZSwgbWV0YWRhdGEsIGtpbmQsIGNvbnN0cnVjdEFiaWxpdHksIGR1
bW15VERaVmFyaWFibGVzLCBXVEY6Om1vdmUoc291cmNlT3ZlcnJpZGUpKTsKKyAgICBmdW5jdGlv
bkV4ZWN1dGFibGUtPnNldE5hbWVWYWx1ZSh2bSwganNTdHJpbmcoJnZtLCBuYW1lLnN0cmluZygp
KSk7CiAgICAgcmV0dXJuIGZ1bmN0aW9uRXhlY3V0YWJsZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCmluZGV4IDIzNDFj
ODhkOGM3MzEyZjU1NmE5NzQ4MThjYzlhMGQwOTYyNTM2MmMuLjg2MmQxODI3NzJjNDU1N2U3YTI0
YTExMjVmNDhhYTc4NDRiZmQ3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgKQEAgLTU3LDExICs1Nyw3IEBAIHByaXZhdGU6
CiAKICAgICBWTSYgbV92bTsKIAotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVh
dGVCdWlsdGluRXhlY3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiBjb2RlLCBjb25zdCBJZGVudGlm
aWVyJiBuYW1lLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCi0gICAgewotICAg
ICAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvZGUsIG5hbWUsIENvbnN0cnVj
dG9yS2luZDo6Tm9uZSwgY29uc3RydWN0QWJpbGl0eSk7Ci0gICAgfQotICAgIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgU291cmNlQ29k
ZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHkp
OworICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJs
ZShjb25zdCBTb3VyY2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENvbnN0cnVjdEFiaWxpdHkp
OwogCiAjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlv
bk5hbWUsIGxlbmd0aClcCiAgICAgU291cmNlQ29kZSBtXyMjbmFtZSMjU291cmNlOyBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggN2U1NDM0
MmU3NTJmOWYyZDRlODM1ZWQwMzRmNDYwOWNmMzY1ZDM5Zi4uYmYyOGRiODNmN2JiYmEyZTZmMGJh
Yjk3NWI2ZTlmNGQ0YTM3ODg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9CdWlsdGluTmFtZXMuaApAQCAtMjYsNDIgKzI2LDMxIEBACiAjaWZuZGVmIEJ1aWx0aW5OYW1l
c19oCiAjZGVmaW5lIEJ1aWx0aW5OYW1lc19oCiAKKyNpbmNsdWRlICJCdWlsdGluVXRpbHMuaCIK
ICNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5oIgogI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewotICAgIAotI2RlZmluZSBJTklUSUFMSVNFX0JVSUxUSU5fTkFN
RVMobmFtZSkgLCBtXyMjbmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAjbmFtZSkpLCBt
XyMjbmFtZSMjUHJpdmF0ZU5hbWUoSWRlbnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFtZShQcml2
YXRlTmFtZTo6RGVzY3JpcHRpb24sIEFTQ0lJTGl0ZXJhbCgiUHJpdmF0ZVN5bWJvbC4iICNuYW1l
KSkpKQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgY29uc3QgSWRlbnRpZmll
ciBtXyMjbmFtZTsgY29uc3QgSWRlbnRpZmllciBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7Ci0jZGVm
aW5lIERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKLSAgICBjb25z
dCBJZGVudGlmaWVyJiBuYW1lIyNQdWJsaWNOYW1lKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWU7
IH0gXAotICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUjI1ByaXZhdGVOYW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV8jI25hbWUjI1ByaXZhdGVOYW1lOyB9CiAKLSNkZWZpbmUgSU5JVElBTElTRV9CVUlM
VElOX1NZTUJPTFMobmFtZSkgSU5JVElBTElTRV9CVUlMVElOX05BTUVTKG5hbWUpLCBtXyMjbmFt
ZSMjU3ltYm9sKElkZW50aWZpZXI6OmZyb21VaWQoUHJpdmF0ZU5hbWUoUHJpdmF0ZU5hbWU6OkRl
c2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlN5bWJvbC4iICNuYW1lKSkpKQotI2RlZmluZSBERUNM
QVJFX0JVSUxUSU5fU1lNQk9MUyhuYW1lKSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgY29u
c3QgSWRlbnRpZmllciBtXyMjbmFtZSMjU3ltYm9sOwotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5f
U1lNQk9MX0FDQ0VTU09SKG5hbWUpIFwKLSAgICBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9B
Q0NFU1NPUihuYW1lKSBcCi0gICAgY29uc3QgSWRlbnRpZmllciYgbmFtZSMjU3ltYm9sKCkgY29u
c3QgeyByZXR1cm4gbV8jI25hbWUjI1N5bWJvbDsgfQorI2RlZmluZSBJTklUSUFMSVpFX1BSSVZB
VEVfVE9fUFVCTElDX0VOVFJZKG5hbWUpIG1fcHJpdmF0ZVRvUHVibGljTWFwLmFkZChtXyMjbmFt
ZSMjUHJpdmF0ZU5hbWUuaW1wbCgpLCAmbV8jI25hbWUpOworI2RlZmluZSBJTklUSUFMSVpFX1BV
QkxJQ19UT19QUklWQVRFX0VOVFJZKG5hbWUpIG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtXyMj
bmFtZS5pbXBsKCksICZtXyMjbmFtZSMjUHJpdmF0ZU5hbWUpOwogCi0jZGVmaW5lIElOSVRJQUxJ
U0VfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkobmFtZSkgbV9wcml2YXRlVG9QdWJsaWNNYXAuYWRk
KG1fIyNuYW1lIyNQcml2YXRlTmFtZS5pbXBsKCksICZtXyMjbmFtZSk7Ci0jZGVmaW5lIElOSVRJ
QUxJU0VfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkobmFtZSkgbV9wdWJsaWNUb1ByaXZhdGVNYXAu
YWRkKG1fIyNuYW1lLmltcGwoKSwgJm1fIyNuYW1lIyNQcml2YXRlTmFtZSk7Ci0gICAgCiBjbGFz
cyBCdWlsdGluTmFtZXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJ1aWx0aW5OYW1lcyk7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIAogcHVibGljOgogICAgIEJ1aWx0aW5OYW1l
cyhWTSogdm0sIENvbW1vbklkZW50aWZpZXJzKiBjb21tb25JZGVudGlmaWVycykKICAgICAgICAg
OiBtX2VtcHR5SWRlbnRpZmllcihjb21tb25JZGVudGlmaWVycy0+ZW1wdHlJZGVudGlmaWVyKQot
ICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElTRV9CVUlM
VElOX05BTUVTKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9Q
Uk9QRVJUWV9OQU1FKElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUykKLSAgICAgICAgSlNDX0NPTU1P
Tl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElTRV9C
VUlMVElOX1NZTUJPTFMpCisgICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFN
RShJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVMpCisgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9J
REVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSU5JVElBTElaRV9CVUlMVElOX05BTUVTKQor
ICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZ
TUJPTChJTklUSUFMSVpFX0JVSUxUSU5fU1lNQk9MUykKICAgICB7Ci0gICAgICAgIEpTQ19GT1JF
QUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVNFX1BSSVZBVEVfVE9fUFVCTElDX0VO
VFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJU
WV9OQU1FKElOSVRJQUxJU0VfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCi0gICAgICAgIEpTQ19D
T01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJ
U0VfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCi0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5f
RlVOQ1RJT05fTkFNRShJTklUSUFMSVNFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQotICAgICAg
ICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJ
QUxJU0VfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFU
RV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJU0VfUFVCTElDX1RP
X1BSSVZBVEVfRU5UUlkpCisgICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFN
RShJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQorICAgICAgICBKU0NfQ09NTU9O
X1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJJVkFU
RV9UT19QVUJMSUNfRU5UUlkpCisgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVS
U19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5U
UlkpCisgICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpF
X1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURF
TlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVf
RU5UUlkpCisgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExf
S05PV05fU1lNQk9MKElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCiAgICAgfQog
CiAgICAgYm9vbCBpc1ByaXZhdGVOYW1lKFN5bWJvbEltcGwmIHVpZCkgY29uc3Q7CkBAIC04NCwx
MyArNzMsNiBAQCBwcml2YXRlOgogICAgIEJ1aWx0aW5OYW1lc01hcCBtX3ByaXZhdGVUb1B1Ymxp
Y01hcDsKIH07CiAKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fTkFNRVMKLSN1bmRlZiBJTklUSUFM
SVNFX0JVSUxUSU5fTkFNRVMKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NF
U1NPUgotI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9TWU1CT0xTCi0jdW5kZWYgSU5JVElBTElTRV9C
VUlMVElOX1NZTUJPTFMKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fU1lNQk9MX0FDQ0VTU09SCi0K
IGlubGluZSBib29sIEJ1aWx0aW5OYW1lczo6aXNQcml2YXRlTmFtZShTeW1ib2xJbXBsJiB1aWQp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZVRvUHVibGljTWFwLmNvbnRhaW5zKCZ1aWQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGls
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA3YzI5YTY1Zjg0NmFlODI1YmY2ZDZiNTU2OGVhZDdiNzhlZjRjMzcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEJ1aWx0aW5VdGlsc19oCisjZGVmaW5lIEJ1aWx0aW5VdGlsc19oCisKKyNp
bmNsdWRlICJDb25zdHJ1Y3RBYmlsaXR5LmgiCisKK25hbWVzcGFjZSBKU0MgeworCisjZGVmaW5l
IElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUyhuYW1lKSAsIG1fIyNuYW1lKEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgI25hbWUpKSwgbV8jI25hbWUjI1ByaXZhdGVOYW1lKEpTQzo6SWRl
bnRpZmllcjo6ZnJvbVVpZChKU0M6OlByaXZhdGVOYW1lKEpTQzo6UHJpdmF0ZU5hbWU6OkRlc2Ny
aXB0aW9uLCBBU0NJSUxpdGVyYWwoIlByaXZhdGVTeW1ib2wuIiAjbmFtZSkpKSkKKyNkZWZpbmUg
REVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFt
ZTsgY29uc3QgSlNDOjpJZGVudGlmaWVyIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsKKyNkZWZpbmUg
REVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IobmFtZSkgXAorICAgIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgbmFtZSMjUHVibGljTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1l
OyB9IFwKKyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1ByaXZhdGVOYW1lKCkgY29u
c3QgeyByZXR1cm4gbV8jI25hbWUjI1ByaXZhdGVOYW1lOyB9CisKKyNkZWZpbmUgSU5JVElBTEla
RV9CVUlMVElOX1NZTUJPTFMobmFtZSkgSU5JVElBTElaRV9CVUlMVElOX05BTUVTKG5hbWUpLCBt
XyMjbmFtZSMjU3ltYm9sKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVVpZChKU0M6OlByaXZhdGVOYW1l
KEpTQzo6UHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlN5bWJvbC4iICNu
YW1lKSkpKQorI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lNQk9MUyhuYW1lKSBERUNMQVJFX0JV
SUxUSU5fTkFNRVMobmFtZSkgY29uc3QgSlNDOjpJZGVudGlmaWVyIG1fIyNuYW1lIyNTeW1ib2w7
CisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TWU1CT0xfQUNDRVNTT1IobmFtZSkgXAorICAgIERF
Q0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBjb25zdCBKU0M6
OklkZW50aWZpZXImIG5hbWUjI1N5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNTeW1i
b2w7IH0KKworY2xhc3MgSWRlbnRpZmllcjsKK2NsYXNzIFNvdXJjZUNvZGU7CitjbGFzcyBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworCitKU19FWFBPUlRfUFJJVkFURSBV
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoVk0mLCBj
b25zdCBTb3VyY2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENvbnN0cnVjdEFiaWxpdHkpOwor
ICAgIAorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKaW5kZXggZTNmYzJhOTY0OWNm
ZWNiMThhMDIwMjBlOTYxMDE0OTQ5YzQ1NjZmYS4uYTM5MmZkOWIzMGNkMjZiM2E2MTZkN2JkYjY0
ZjMyYTBlMWYxOTc5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKQEAgLTU5LDcgKzU5LDYgQEAg
ZW51bSBVbmxpbmtlZEZ1bmN0aW9uS2luZCB7CiAKIGNsYXNzIFVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6Ci0gICAgZnJpZW5kIGNsYXNz
IEJ1aWx0aW5FeGVjdXRhYmxlczsKICAgICBmcmllbmQgY2xhc3MgQ29kZUNhY2hlOwogICAgIGZy
aWVuZCBjbGFzcyBWTTsKIApAQCAtNzcsNiArNzYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSWRl
bnRpZmllciYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIGNvbnN0IElkZW50
aWZpZXImIGluZmVycmVkTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5mZXJyZWROYW1lOyB9CiAg
ICAgSlNTdHJpbmcqIG5hbWVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZVZhbHVlLmdldCgp
OyB9CisgICAgdm9pZCBzZXROYW1lVmFsdWUoVk0mIHZtLCBKU1N0cmluZyogbmFtZVZhbHVlKSB7
IG1fbmFtZVZhbHVlLnNldCh2bSwgdGhpcywgbmFtZVZhbHVlKTsgfQogICAgIHVuc2lnbmVkIHBh
cmFtZXRlckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJDb3VudDsgfTsKICAgICBT
b3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZU1vZGU7IH07
CiAgICAgYm9vbCBpc0luU3RyaWN0Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJblN0cmlj
dENvbnRleHQ7IH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IElk
ZW50aWZpZXImLCBFeGVjU3RhdGUmLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3QqJiBleGNl
cHRpb24sIAogICAgICAgICBpbnQgb3ZlcnJpZGVMaW5lTnVtYmVyKTsKIAotICAgIEZ1bmN0aW9u
RXhlY3V0YWJsZSogbGluayhWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBpbnQgb3ZlcnJpZGVMaW5l
TnVtYmVyID0gLTEpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIEZ1bmN0aW9uRXhlY3V0YWJsZSog
bGluayhWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBpbnQgb3ZlcnJpZGVMaW5lTnVtYmVyID0gLTEp
OwogCiAgICAgdm9pZCBjbGVhckNvZGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9n
ZW5lcmF0ZS1qcy1idWlsdGlucwppbmRleCA5NjQ3MTYzNmZhM2U3Y2VjMGEyNmJiYWY1NmEyOGQ5
MjgyMTBjNTY3Li4yMjEzMjdiODNjZGNlYmU3NjExOTE2ZGNhMjkzOTI5YTBjMjY2ZmYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCkBAIC0zNiw2ICszNiw4
IEBAIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKIHBhcnNlci5hZGRfYXJndW1l
bnQoJ2lucHV0X2ZpbGUnLCBuYXJncz0nKicsIGhlbHA9J0lucHV0IEpTIGZpbGVzIHdoaWNoIGJ1
aWx0aW5zIGdlbmVyYXRlZCBmcm9tJykKIHBhcnNlci5hZGRfYXJndW1lbnQoJy0taW5wdXQtZGly
ZWN0b3J5JywgaGVscD0nQWxsIEpTIGZpbGVzIHdpbGwgYmUgdXNlZCBhcyBpbnB1dCBmcm9tIHRo
aXMgZGlyZWN0b3J5LicpCiBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW91dHB1dCcsIGhlbHA9J3Bh
dGggdG8gb3V0cHV0IGNwcCBvciBoIGZpbGUnKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1wcmVm
aXgnLCBkZWZhdWx0PSdKU0MnLCBoZWxwPSdwcmVmaXggdXNlZCBmb3IgcHVibGljIG1hY3Jvcycp
CitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW5hbWVzcGFjZScsIGRlZmF1bHQ9J0pTQycsIGhlbHA9
J0MrKyBuYW1lc3BhY2UnKQogYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKIAogY29weXJpZ2h0
VGV4dCA9ICIiIiAqCkBAIC0xNTMsNiArMTU1LDkgQEAgZGVmIGdldEZ1bmN0aW9ucyhzb3VyY2Up
OgogICAgICAgICByZXN1bHQuYXBwZW5kKEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb24s
IGZ1bmN0aW9uSXNDb25zdHJ1Y3RvciwgZnVuY3Rpb25QYXJhbWV0ZXJzKSkKICAgICByZXR1cm4g
cmVzdWx0CiAKK2RlZiB3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKHdyaXRlciwgaGVhZGVyTmFtZXMp
OgorICAgIGZvciBoZWFkZXJOYW1lIGluIGhlYWRlck5hbWVzOgorICAgICAgICB3cml0ZXIud3Jp
dGUoIiNpbmNsdWRlICIgKyBoZWFkZXJOYW1lICsgIlxuIikKIAogZGVmIGdlbmVyYXRlQ29kZShz
b3VyY2UpOgogICAgIGlucHV0RmlsZSA9IG9wZW4oc291cmNlLCAiciIpCkBAIC0xNzksNiArMTg0
LDE0IEBAIGZvciBmaWxlIGluIGFyZ3MuaW5wdXRfZmlsZToKICAgICAgICAgKGJhc2VOYW1lLCBm
dW5jdGlvbnMsIG9iamVjdENvcHlyaWdodHMpID0gZ2VuZXJhdGVDb2RlKGZpbGUpCiAgICAgICAg
IGNvcHlyaWdodHMuZXh0ZW5kKG9iamVjdENvcHlyaWdodHMpCiAgICAgICAgIGJ1aWx0aW5zLmFw
cGVuZCgoYmFzZU5hbWUsIGZ1bmN0aW9ucykpCituYW1lc3BhY2UgPSBhcmdzLm5hbWVzcGFjZQor
bWFjcm9QcmVmaXggPSBhcmdzLnByZWZpeAorc2NvcGVOYW1lID0gb3MucGF0aC5zcGxpdGV4dChv
cy5wYXRoLmJhc2VuYW1lKGFyZ3Mub3V0cHV0KSlbMF0KK2luY2x1ZGVHdWFyZCA9IHNjb3BlTmFt
ZSArICJfSCIKK2hlYWRlck5hbWUgPSBzY29wZU5hbWUgKyAiLmgiCisKK2hlYWRlckluY2x1ZGVz
ID0gWyJcIkJ1aWx0aW5VdGlscy5oXCIiXSBpZiBuYW1lc3BhY2UgPT0gIkpTQyIgZWxzZSBbIjxi
dWlsdGlucy9CdWlsdGluVXRpbHMuaD4iXQorY29udGVudEluY2x1ZGVzID0gWyJcIkJ1aWx0aW5F
eGVjdXRhYmxlcy5oXCIiLCAiXCJFeGVjdXRhYmxlLmhcIiIsICJcIkpTQ2VsbElubGluZXMuaFwi
IiwgIlwiVk0uaFwiIl0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2UgWyI8cnVudGltZS9FeGVj
dXRhYmxlLmg+IiwgIjxydW50aW1lL0pTQ2VsbElubGluZXMuaD4iLCAiPHJ1bnRpbWUvVk0uaD4i
LCAiXCJXZWJDb3JlSlNDbGllbnREYXRhLmhcIiJdCiAKIGNvcHlyaWdodHMgPSBsaXN0KHNldChj
b3B5cmlnaHRzKSkKIApAQCAtMTkyLDIzICsyMDUsMjEgQEAgY29weXJpZ2h0VGV4dCA9ICIvKlxu
IiArIGNvcHlyaWdodEJvZHkgKyBjb3B5cmlnaHRUZXh0CiBidWlsdGluc0hlYWRlci53cml0ZSgi
IiIlcwogJXMKIAotI2lmbmRlZiBKU0NCdWlsdGluc19ICi0jZGVmaW5lIEpTQ0J1aWx0aW5zX0gK
KyNpZm5kZWYgJXMKKyNkZWZpbmUgJXMKIAotI2luY2x1ZGUgIkNvbnN0cnVjdEFiaWxpdHkuaCIK
KyIiIiAlIChnZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQsIGluY2x1ZGVHdWFyZCwgaW5j
bHVkZUd1YXJkKSkKIAotbmFtZXNwYWNlIEpTQyB7Cit3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1
aWx0aW5zSGVhZGVyLCBoZWFkZXJJbmNsdWRlcykKIAotY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxl
OwotY2xhc3MgSWRlbnRpZmllcjsKLWNsYXNzIEpTR2xvYmFsT2JqZWN0OwotY2xhc3MgU291cmNl
Q29kZTsKLWNsYXNzIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3MgVk07CitidWls
dGluc0hlYWRlci53cml0ZSgiIiIKK25hbWVzcGFjZSBKU0MgeworICAgIGNsYXNzIEZ1bmN0aW9u
RXhlY3V0YWJsZTsKK30KIAotRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0
YWJsZShWTSYsIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYp
OworbmFtZXNwYWNlICVzIHsKIAotIiIiICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4
dCkpCisiIiIgJSBuYW1lc3BhY2UpCiAKIGNvZGVSZWZlcmVuY2VzID0gW10KIApAQCAtMjIyLDU4
ICsyMzMsNTkgQEAgZm9yIChvYmplY3ROYW1lLCBmdW5jdGlvbnMpIGluIGJ1aWx0aW5zOgogICAg
ICAgICBjb2RlUmVmZXJlbmNlcy5hcHBlbmQoKG1hbmdsZWROYW1lLCBmdW5jdGlvbikpCiAgICAg
ICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgY2hhciogc18lcztcbiIgJSBt
YW5nbGVkTmFtZSkKICAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBp
bnQgc18lc0xlbmd0aDtcbiIgJSBtYW5nbGVkTmFtZSkKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIu
d3JpdGUoImV4dGVybiBjb25zdCBDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5
O1xuIiAlIG1hbmdsZWROYW1lKQorICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJu
IGNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eTtcbiIgJSBt
YW5nbGVkTmFtZSkKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiXG4iKQotICAgIGJ1aWx0aW5z
SGVhZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19GT1JFQUNIXyVzX0JVSUxUSU4obWFjcm8pIFxcXG4i
ICUgb2JqZWN0TmFtZS5yZXBsYWNlKCIuIiwgIl8iKS51cHBlcigpKQorICAgIGJ1aWx0aW5zSGVh
ZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZPUkVBQ0hfJXNfQlVJTFRJTihtYWNybykgXFxcbiIgJSAo
bWFjcm9QcmVmaXgsIG9iamVjdE5hbWUucmVwbGFjZSgiLiIsICJfIikudXBwZXIoKSkpCiAgICAg
Zm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKICAgICAgICAgbWFuZ2xlZE5hbWUgPSBmdW5jdGlv
bi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpCiAgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIg
ICAgbWFjcm8oJXMsICVzLCAlZCkgXFxcbiIgJSAoZnVuY3Rpb24ubmFtZSwgbWFuZ2xlZE5hbWUs
IGxlbihmdW5jdGlvbi5wYXJhbWV0ZXJzKSkpCiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxu
IikKICAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgotICAgICAgICBidWlsdGluc0hlYWRl
ci53cml0ZSgiI2RlZmluZSBKU0NfQlVJTFRJTl8lcyAxXG4iICUgZnVuY3Rpb24ubWFuZ2xlTmFt
ZShvYmplY3ROYW1lKS51cHBlcigpKQorICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2Rl
ZmluZSAlc19CVUlMVElOXyVzIDFcbiIgJSAobWFjcm9QcmVmaXgsIGZ1bmN0aW9uLm1hbmdsZU5h
bWUob2JqZWN0TmFtZSkudXBwZXIoKSkpCiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuXG4i
KQogbmFtZXMgPSBbXQotYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0ZPUkVBQ0hf
QlVJTFRJTihtYWNybylcXFxuIikKK2J1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZP
UkVBQ0hfQlVJTFRJTihtYWNybylcXFxuIiAlIG1hY3JvUHJlZml4KQogZm9yIChjb2RlUmVmZXJl
bmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAgYnVpbHRpbnNIZWFkZXIud3Jp
dGUoIiAgICBtYWNybyglcywgJXMsIHNfJXNMZW5ndGgpIFxcXG4iICUgKGNvZGVSZWZlcmVuY2Us
IGZ1bmN0aW9uLm5hbWUsIGNvZGVSZWZlcmVuY2UpKQogICAgIG5hbWVzLmFwcGVuZChmdW5jdGlv
bi5uYW1lKQogCiBidWlsdGluc0hlYWRlci53cml0ZSgiXG5cbiIpCi1idWlsdGluc0hlYWRlci53
cml0ZSgiI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFxc
XG4iKQorYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOX0ZV
TkNUSU9OX05BTUUobWFjcm8pIFxcXG4iICUgbWFjcm9QcmVmaXgpCiBmb3IgbmFtZSBpbiBzb3J0
ZWQoc2V0KG5hbWVzKSk6CiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcykg
XFxcbiIgJSBuYW1lKQogYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCiAKLSNkZWZpbmUgSlNDX0RF
Q0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRD
b3VudCkgXFwKLSAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoVk0m
KTsKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25O
YW1lLCBhcmd1bWVudENvdW50KSBcXAorICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2Rl
TmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKIAotSlNDX0ZPUkVBQ0hfQlVJTFRJTihKU0NfREVD
TEFSRV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBKU0NfREVDTEFSRV9CVUlMVElOX0dFTkVS
QVRPUgorJXNfRk9SRUFDSF9CVUlMVElOKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCisjdW5k
ZWYgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgogCi0jZGVmaW5lIEpTQ19CVUlMVElOX0VYSVNU
UyhuYW1lKSBkZWZpbmVkIEpTQ19CVUlMVElOXyAjIyBuYW1lCisjZGVmaW5lICVzX0JVSUxUSU5f
RVhJU1RTKG5hbWUpIGRlZmluZWQgJXNfQlVJTFRJTl8gIyMgbmFtZQogCiB9CiAKLSNlbmRpZgor
I2VuZGlmIC8vICVzCiAKLSIiIikKKyIiIiAlIChtYWNyb1ByZWZpeCwgbWFjcm9QcmVmaXgsIG1h
Y3JvUHJlZml4LCBpbmNsdWRlR3VhcmQpKQogCiBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRl
KCIiIiVzCiAlcwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlICJKU0NCdWlsdGlu
cy5oIgorI2luY2x1ZGUgIiVzIgogCi0jaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCi0j
aW5jbHVkZSAiQ29uc3RydWN0QWJpbGl0eS5oIgotI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKLSNp
bmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCi0jaW5jbHVkZSAiVk0uaCIKKyIiIiAgJSAoZ2VuZXJh
dG9yU3RyaW5nLCBjb3B5cmlnaHRUZXh0LCBoZWFkZXJOYW1lKSkKKword3JpdGVJbmNsdWRlRGly
ZWN0aXZlcyhidWlsdGluc0ltcGxlbWVudGF0aW9uLCBjb250ZW50SW5jbHVkZXMpCisKK2J1aWx0
aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIiCituYW1lc3BhY2UgJXMgeworCisiIiIgICUgKG5h
bWVzcGFjZSkpCiAKLW5hbWVzcGFjZSBKU0MgewogCi0iIiIgICUgKGdlbmVyYXRvclN0cmluZywg
Y29weXJpZ2h0VGV4dCkpCiAKIGZvciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVS
ZWZlcmVuY2VzOgogICAgIHNvdXJjZSA9IGZ1bmN0aW9uLnNvdXJjZQpAQCAtMjg1LDIzICsyOTcs
MzMgQEAgZm9yIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6CiAg
ICAgICAgIHNvdXJjZSA9IHNvdXJjZSArICgiICAgIFwiJXNcXG5cIiBcXFxuIiAlIGxpbmUpCiAg
ICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgY2hhciogc18lcyA9XG4lcztc
blxuIiAlIChjb2RlUmVmZXJlbmNlLCBzb3VyY2UpKQogICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRp
b24ud3JpdGUoImNvbnN0IGludCBzXyVzTGVuZ3RoID0gJWQ7XG5cbiIgJSAoY29kZVJlZmVyZW5j
ZSwgc291cmNlTGVuZ3RoICsgMSkpICMgKyAxIGZvciBcbgotICAgIGNvbnN0cnVjdEFiaWxpdHkg
PSAiQ29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0IgorICAgIGNvbnN0cnVjdEFiaWxp
dHkgPSAiSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QiCiAgICAgaWYgZnVu
Y3Rpb24uaXNDb25zdHJ1Y3RvcjoKLSAgICAgICAgY29uc3RydWN0QWJpbGl0eSA9ICJDb25zdHJ1
Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QiCi0gICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0
ZSgiY29uc3QgQ29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eSA9ICVzO1xuXG4i
ICUgKGNvZGVSZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAjICsgMSBmb3IgXG4KKyAgICAg
ICAgY29uc3RydWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVj
dCIKKyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBKU0M6OkNvbnN0cnVj
dEFiaWxpdHkgc18lc0NvbnN0cnVjdEFiaWxpdHkgPSAlcztcblxuIiAlIChjb2RlUmVmZXJlbmNl
LCBjb25zdHJ1Y3RBYmlsaXR5KSkgIyArIDEgZm9yIFxuCiAKIGJ1aWx0aW5zSW1wbGVtZW50YXRp
b24ud3JpdGUoIiIiCi0jZGVmaW5lIEpTQ19ERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5h
bWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLUZ1bmN0aW9uRXhlY3V0YWJsZSog
Y29kZU5hbWUjI0dlbmVyYXRvcihWTSYgdm0pIFxcCi17IFxcCi0gICAgcmV0dXJuIHZtLmJ1aWx0
aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWls
dGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgXFwKLX0KKyNkZWZpbmUgREVG
SU5FX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291
bnQpIFxcCitKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6
OlZNJiB2bSkgXFwKKyIiIik7CiAKLUpTQ19GT1JFQUNIX0JVSUxUSU4oSlNDX0RFRklORV9CVUlM
VElOX0dFTkVSQVRPUikKLSN1bmRlZiBKU0NfREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCitpZiAo
bmFtZXNwYWNlID09ICJKU0MiKToKKyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIi
IntcXAorICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1
dGFibGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3Vy
Y2UoKSk7IFxcCisiIiIpCitlbHNlOgorICAgIGJ1aWx0aW5OYW1lID0gc2NvcGVOYW1lWzBdLmxv
d2VyKCkgKyBzY29wZU5hbWVbMTpdCisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgi
IiJ7XFwKKyAgICBXZWJDb3JlSlNDbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZUpTQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcXAorICAgIHJldHVybiBjbGll
bnREYXRhLT4lcygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEt
PiVzKCkuY29kZU5hbWUjI1NvdXJjZSgpKTsgXFwKKyIiIiUgKGJ1aWx0aW5OYW1lLCBidWlsdGlu
TmFtZSkpCisKK2J1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIifQorJXNfRk9SRUFDSF9C
VUlMVElOKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9H
RU5FUkFUT1IKIH0KIAotIiIiKQorIiIiJSAobWFjcm9QcmVmaXgpKQogCiBidWlsdGluc0hlYWRl
ci5jbG9zZSgpCiBidWlsdGluc0ltcGxlbWVudGF0aW9uLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggM2I5MDUyZWY4ZmQ4NjUzNGYwNmNmMWI5MzlmNDYwYWU2ZTYzMGQ5MS4uMjQwNGZm
ZDc0MGIyNWYzMDZjZDRlMDY0YmI5MjE3ODQyNjY3Y2U2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTMzMzYsNiArMzMzNiwxMCBAQCBzZXQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEUgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1dvcmtlckdsbwogc2V0KERFRElD
QVRFRFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwp
CiBzZXQoSURMX0FUVFJJQlVURVNfRklMRSAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMudHh0KQogCitzZXQoV0VCQ09SRV9KU19CVUlMVElOUworICAgICR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKQorCiBXRUJLSVRf
SU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogIyBHZW5lcmF0ZSBJbnNwZWN0b3JP
dmVybGF5UGFnZS5oCkBAIC0zNTU1LDYgKzM1NTksMTkgQEAgR0VORVJBVEVfQklORElOR1MoV2Vi
Q29yZVRlc3RTdXBwb3J0X1NPVVJDRVMKICAgICAke1NVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJ
TEV9CiAgICAgJHtBRERJVElPTkFMX0JJTkRJTkdTX0RFUEVOREVOQ0lFU30pCiAKKyMgV2ViQ29y
ZSBKUyBCdWlsdGlucworZm9yZWFjaCAoX2J1aWx0aW5qcyAke1dFQkNPUkVfSlNfQlVJTFRJTlN9
KQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfYnVpbHRpbmpzfSBOQU1FX1dF
KQorICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmggJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnMuY3BwCisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMKKyAgICAgICAg
REVQRU5EUyAke19idWlsdGluanN9CisgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJM
RX0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5w
dXQgJHtfYnVpbHRpbmpzfSAtLW91dHB1dF9kaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9IC0td2ViY29yZV9kaXIgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9CisgICAgICAgIFZF
UkJBVElNKQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS9KUyR7X25hbWV9LmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7
X25hbWV9QnVpbHRpbnMuaCkKKyAgICBBRERfU09VUkNFX0RFUEVOREVOQ0lFUygke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vSlMke19uYW1lfS5jcHAgJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnMuY3BwKQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5D
SUVTKCR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnMuY3BwKQorZW5kZm9y
ZWFjaCAoKQogCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXRUJD
T1JFX0RJUn0vaHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwIE1hdGhNTE5hbWVzLmNwcCkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMTViODQzMGY2ODgwNWM0MmI5MDNlZTBiOTVm
MWViODdhZjMzMGM0ZS4uMTE1ZGFmNTEyNjg4M2Y2NWMwYjQ2YTEzNzFhNWY2NTM5OTM2ZTYxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03OTAsNiArNzkwLDcgQEAgYWxsIDog
XAogICAgICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKEpT
X0RPTV9IRUFERVJTKSBcCiAgICAgJChXRUJfRE9NX0hFQURFUlMpIFwKKyAgICAkKFdFQkNPUkVf
SlNfQlVJTFRJTlMpIFwKICAgICBcCiAgICAgQ1NTR3JhbW1hci5jcHAgXAogICAgIENTU1Byb3Bl
cnR5TmFtZXMuY3BwIFwKQEAgLTEyNDQsNiArMTI0NSwxNiBAQCBXZWJSZXBsYXlJbnB1dHMuaCA6
ICQoSU5QVVRfR0VORVJBVE9SX1NQRUNJRklDQVRJT05TKSAkKElOUFVUX0dFTkVSQVRPUl9TQ1JJ
UFRTKQogCiAtaW5jbHVkZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKKyMgV2ViQ29yZSBK
UyBCdWlsdGlucworCitXRUJDT1JFX0pTX0JVSUxUSU5TID0gXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCisKK2FsbCA6ICQoV0VCQ09SRV9KU19CVUlM
VElOUzolLmpzPSVCdWlsdGlucy5oKQorCislQnVpbHRpbnMuaDogJS5qcworCSQoUFlUSE9OKSAk
KFdlYkNvcmUpL2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5wdXQgJDwgLS13ZWJjb3JlX2RpciAk
KFdlYkNvcmUpCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICMgTWFjLXNwZWNpZmlj
IHJ1bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9idWls
dGlucy9CdWlsdGluVXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J1
aWx0aW5zL0J1aWx0aW5VdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNzQxNGI4MzA5MzhkZDZjNWE4NmIy
NWJlNmRmNjc1MjU2ODVjYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9idWlsdGlucy9CdWlsdGluVXRpbHMuaApAQCAtMCwwICsxLDQgQEAKKyNp
Zm5kZWYgV2ViQ29yZV9GV0RfQnVpbHRpblV0aWxzX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfQnVp
bHRpblV0aWxzX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9CdWlsdGluVXRpbHMuaD4KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNv
ZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDcxMmQ5YmYwNTg4NGYzZjc5OTkyOWVkNmMxNDVmMGIzZTVlMTY5NAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J5dGVjb2RlL1VubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldE
X1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGVfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0QWJpbGl0eS5oIGIvU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDRkY2FkY2M5M2ZiNmU1Nzk3OTQxYjI1Y2QwNGUxMjk1MDVjYmFjNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3Ry
dWN0QWJpbGl0eS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9Db25zdHJ1
Y3RBYmlsaXR5X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfQ29uc3RydWN0QWJpbGl0eV9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc3RydWN0QWJpbGl0eS5oPgorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAppbmRleCA4
NjNjMjY0MzE4YzU0MTIwYTcwODg5MWExY2RhYzUzZjA2OGNiMGQwLi42YWMyNTk1YWFiZDViYWY2
NTQ4Y2ViY2Q4YTMyYWIwMGRhODBkMjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwKQEAgLTM2LDcgKzM2LDcgQEAKICAgICBbUmFp
c2VzRXhjZXB0aW9uXSBQcm9taXNlIGNhbmNlbChbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFs
IGFueSByZWFzb24pOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIFJlYWRhYmxlU3RyZWFtUmVhZGVy
IGdldFJlYWRlcigpOwogICAgIFtDdXN0b21dIFByb21pc2UgcGlwZVRvKGFueSBzdHJlYW1zLCBh
bnkgb3B0aW9ucyk7Ci0gICAgW0N1c3RvbV0gT2JqZWN0IHBpcGVUaHJvdWdoKGFueSBkZXN0LCBh
bnkgb3B0aW9ucyk7CisgICAgW0pTQnVpbHRpbl0gT2JqZWN0IHBpcGVUaHJvdWdoKGFueSBkZXN0
LCBhbnkgb3B0aW9ucyk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBsb2NrZWQ7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdjNjMyZjU4ZDFiZGY1Yjk3NWQ1MmQ2Yzc0ZGYzNzBiN2NhYjZjYzIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW0uanMKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBD
YW5vbiBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Z1
bmN0aW9uIHBpcGVUaHJvdWdoKHN0cmVhbXMsIG9wdGlvbnMpCit7CisgICAgInVzZSBzdHJpY3Qi
OworCisgICAgdGhpcy5waXBlVG8oc3RyZWFtcy53cml0YWJsZSwgb3B0aW9ucyk7CisgICAgcmV0
dXJuIHN0cmVhbXMucmVhZGFibGU7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwCmluZGV4IDM0OGQxNmIyZmViZTc5ODdk
MmRkNjZmNWNjODY2NWY1YTdjMGVlNGEuLjg5NWUwM2RhNmI5NGQzNTAzYTNhMTY5YmM2MWJmODRj
YTE5NTNhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFi
bGVTdHJlYW1DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVh
ZGFibGVTdHJlYW1DdXN0b20uY3BwCkBAIC01MywxMiArNTMsNiBAQCBKU1ZhbHVlIEpTUmVhZGFi
bGVTdHJlYW06OnBpcGVUbyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGV4ZWMtPnZtKCku
dGhyb3dFeGNlcHRpb24oZXhlYywgZXJyb3IpOwogfQogCi1KU1ZhbHVlIEpTUmVhZGFibGVTdHJl
YW06OnBpcGVUaHJvdWdoKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1ZhbHVlIGVycm9yID0g
Y3JlYXRlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJwaXBlVGhyb3VnaCBpcyBub3QgaW1wbGVt
ZW50ZWQiKSk7Ci0gICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgZXJy
b3IpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDQzMDJkNjhl
NWM4YzZkNzg3ZDQ3MjYyNDE0YmNlYjk4ZDIyZTAxOWUuLmFjODlhZjNiNTZjY2I2NzQxYjU0MzJi
NTNiMWZiZjFmMGEwNWNlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTIzLDYgKzIzLDcgQEAKICNkZWZpbmUgV2ViQ29yZUpT
Q2xpZW50RGF0YV9oCiAKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJS
ZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlci5oIgogI2luY2x1ZGUgIldlYkNvcmVUeXBlZEFy
cmF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgpAQCAtMzUsNyArMzYsMTAgQEAgY2xhc3MgV2ViQ29yZUpTQ2xpZW50RGF0YSA6
IHB1YmxpYyBKU0M6OlZNOjpDbGllbnREYXRhIHsKICAgICBmcmllbmQgdm9pZCBpbml0Tm9ybWFs
V29ybGRDbGllbnREYXRhKEpTQzo6Vk0qKTsKIAogcHVibGljOgotICAgIFdlYkNvcmVKU0NsaWVu
dERhdGEoKQorICAgIFdlYkNvcmVKU0NsaWVudERhdGEoSlNDOjpWTSYgdm0pCisjaWYgRU5BQkxF
KFNUUkVBTVNfQVBJKQorICAgICAgICA6IG1fcmVhZGFibGVTdHJlYW1CdWlsdGlucygmdm0pCisj
ZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC03MSwxNCArNzUsMjIgQEAgcHVibGljOgogICAgICAg
ICBtX3dvcmxkU2V0LnJlbW92ZSgmd29ybGQpOwogICAgIH0KIAorI2lmIEVOQUJMRShTVFJFQU1T
X0FQSSkKKyAgICBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciYgcmVhZGFibGVTdHJlYW1C
dWlsdGlucygpIHsgcmV0dXJuIG1fcmVhZGFibGVTdHJlYW1CdWlsdGluczsgfQorI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgSGFzaFNldDxET01XcmFwcGVyV29ybGQqPiBtX3dvcmxkU2V0OwogICAg
IFJlZlB0cjxET01XcmFwcGVyV29ybGQ+IG1fbm9ybWFsV29ybGQ7CisKKyNpZiBFTkFCTEUoU1RS
RUFNU19BUEkpCisgICAgUmVhZGFibGVTdHJlYW1CdWlsdGluc1dyYXBwZXIgbV9yZWFkYWJsZVN0
cmVhbUJ1aWx0aW5zOworI2VuZGlmCiB9OwogCiBpbmxpbmUgdm9pZCBpbml0Tm9ybWFsV29ybGRD
bGllbnREYXRhKEpTQzo6Vk0qIHZtKQogewotICAgIFdlYkNvcmVKU0NsaWVudERhdGEqIHdlYkNv
cmVKU0NsaWVudERhdGEgPSBuZXcgV2ViQ29yZUpTQ2xpZW50RGF0YTsKKyAgICBXZWJDb3JlSlND
bGllbnREYXRhKiB3ZWJDb3JlSlNDbGllbnREYXRhID0gbmV3IFdlYkNvcmVKU0NsaWVudERhdGEo
KnZtKTsKICAgICB2bS0+Y2xpZW50RGF0YSA9IHdlYkNvcmVKU0NsaWVudERhdGE7IC8vIH5WTSBk
ZWxldGVzIHRoaXMgcG9pbnRlci4KICAgICB3ZWJDb3JlSlNDbGllbnREYXRhLT5tX25vcm1hbFdv
cmxkID0gRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoKnZtLCB0cnVlKTsKICAgICB2bS0+bV90eXBl
ZEFycmF5Q29udHJvbGxlciA9IGFkb3B0UmVmKG5ldyBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xs
ZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yR09iamVjdC5wbQppbmRleCBjNTE2MzFjMGY4MTRjYzk4Y2U4NzYwY2Q0ZjZlNjBl
OTZiZWEzYTkwLi42OWJmNDkyMDQyYmVmY2RjMzUzM2VhYTZiNGY5YzQzM2Y1N2VkOWE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2Jq
ZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckdPYmplY3QucG0KQEAgLTM3Myw2ICszNzMsMTAgQEAgc3ViIFNraXBGdW5jdGlvbiB7CiAgICAg
ICAgIHJldHVybiAxOwogICAgIH0KIAorICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KKwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGU4ZWVlYmJlODIyY2U2ZTUyY2ZiYzI5
ZmFiYjdkZTM2M2ViNzQ5M2EuLjEwYTg4OTU5YmJhMWY5NjQyM2U4N2YwOTkwMGRmMDU5ZDRkMGFh
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC01NDgsNiArNTQ4LDE2IEBAIHN1YiBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1l
CiBzdWIgR2V0RnVuY3Rpb25OYW1lCiB7CiAgICAgbXkgKCRjbGFzc05hbWUsICRmdW5jdGlvbikg
PSBAXzsKKworICAgIG15ICRzY29wZU5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKKyAgICBpZiAoISRzY29wZU5hbWUpIHsK
KyAgICAgICAgJHNjb3BlTmFtZSA9IHN1YnN0ciAkY2xhc3NOYW1lLCAyOworICAgIH0KKworICAg
IGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRp
biJ9KSB7CisgICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkc2NvcGVO
YW1lKSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5u
YW1lKSAuICJDb2RlR2VuZXJhdG9yIjsKKyAgICB9CisKICAgICBteSAka2luZCA9ICRmdW5jdGlv
bi0+aXNTdGF0aWMgPyAiQ29uc3RydWN0b3IiIDogIlByb3RvdHlwZSI7CiAgICAgcmV0dXJuICRj
b2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gJGtpbmQgLiAiRnVuY3Rpb24i
IC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUp
OwogfQpAQCAtMTczNiw2ICsxNzQ2LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICBteSAkaW1wbFR5cGUgPSBHZXRJbXBsQ2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKICAgICBB
ZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwoJGltcGxUeXBlKTsKIAorICAgIEFkZEluY2x1ZGVzRm9y
SlNCdWlsdGluTWV0aG9kcygkaW50ZXJmYWNlKTsKKwogICAgIEBpbXBsQ29udGVudCA9ICgpOwog
CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbnVzaW5nIG5hbWVzcGFjZSBKU0M7XG5cbiIpOwpA
QCAtMTc1Miw2ICsxNzY0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgIG5leHQgaWYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJGZ1bmN0aW9uLT57b3Zl
cmxvYWRJbmRleH0gPiAxOwogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJlSW5IZWFkZXIifTsKICAgICAg
ICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21CaW5kaW5nIn07CisgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn07CiAKICAgICAgICAgICAgIG15
ICRuZWVkc0FwcGxlQ29weXJpZ2h0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJBcHBsZUNvcHlyaWdodCJ9OwogICAgICAgICAgICAgaWYgKCRuZWVkc0FwcGxl
Q29weXJpZ2h0KSB7CkBAIC0xOTEwLDEyICsxOTIzLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgICAgIG15ICRmdW5jdGlvbkxlbmd0aCA9IEdldEZ1bmN0aW9uTGVuZ3Ro
KCRmdW5jdGlvbik7CiAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkZnVuY3Rpb25MZW5n
dGgpOwogCi0gICAgICAgICAgICBteSBAc3BlY2lhbHMgPSAoKTsKLSAgICAgICAgICAgIHB1c2go
QHNwZWNpYWxzLCAiRG9udERlbGV0ZSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTm90RGVsZXRhYmxlIn07Ci0gICAgICAgICAgICBwdXNoKEBzcGVjaWFs
cywgIkRvbnRFbnVtIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJOb3RFbnVtZXJhYmxlIn07Ci0gICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6
RnVuY3Rpb24iKTsKLSAgICAgICAgICAgIG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8g
am9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKLSAgICAgICAgICAgIHB1c2goQGhhc2hTcGVj
aWFscywgJHNwZWNpYWwpOworICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCBDb21wdXRl
RnVuY3Rpb25TcGVjaWFsKCRpbnRlcmZhY2UsICRmdW5jdGlvbikpOwogCiAgICAgICAgICAgICBt
eSAkY29uZGl0aW9uYWwgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNvbmRpdGlvbmFsIn07CiAgICAgICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7CkBAIC0x
OTg2LDE0ICsxOTk0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgbXkg
JGZ1bmN0aW9uTGVuZ3RoID0gR2V0RnVuY3Rpb25MZW5ndGgoJGZ1bmN0aW9uKTsKICAgICAgICAg
cHVzaChAaGFzaFZhbHVlMiwgJGZ1bmN0aW9uTGVuZ3RoKTsKIAotICAgICAgICBteSBAc3BlY2lh
bHMgPSAoKTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRlIikgaWYgJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3REZWxldGFibGUifQotICAg
ICAgICAgICB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlVu
Zm9yZ2VhYmxlIn0KLSAgICAgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlVuZm9yZ2VhYmxlIn07Ci0gICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBp
ZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFi
bGUifTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OkZ1bmN0aW9uIik7Ci0gICAgICAg
IG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6
ICIwIjsKLSAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CisgICAgICAgIHB1
c2goQGhhc2hTcGVjaWFscywgQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCgkaW50ZXJmYWNlLCAkZnVu
Y3Rpb24pKTsKIAogICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn07CiAgICAgICAgIGlmICgkY29u
ZGl0aW9uYWwpIHsKQEAgLTI3NzQsNiArMjc3NSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgIG15ICRpbkFwcGxlQ29weXJpZ2h0ID0gMDsKICAgICAgICAgZm9yZWFjaCBt
eSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbmV4
dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUJp
bmRpbmcifTsKKyAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifTsKICAgICAgICAgICAgIG15ICRuZWVkc0FwcGxl
Q29weXJpZ2h0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJB
cHBsZUNvcHlyaWdodCJ9OwogICAgICAgICAgICAgaWYgKCRuZWVkc0FwcGxlQ29weXJpZ2h0KSB7
CiAgICAgICAgICAgICAgICAgaWYgKCEkaW5BcHBsZUNvcHlyaWdodCkgewpAQCAtNDIxMiw2ICs0
MjE0LDggQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheQogICAgICAgICAKICAgICAg
ICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9GdW5jdGlvbi8pIHsKICAgICAgICAgICAgICRm
aXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+IjsKKyAgICAgICAg
fSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0J1aWx0aW4vKSB7CisgICAgICAgICAgICAk
Zmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+IjsKICAgICAg
ICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdlci8pIHsKICAg
ICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAiIjsKICAgICAgICAgfSBlbHNlIHsKQEAgLTQ5
NjQsNCArNDk2OCw1MSBAQCBzdWIgSGVhZGVyTmVlZHNQcm90b3R5cGVEZWNsYXJhdGlvbgogICAg
IHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSB8fCAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21OYW1lZEdldHRlck9uUHJvdG90eXBlIn0gfHwgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tRGVmaW5lT3duUHJvcGVydHlP
blByb3RvdHlwZSJ9OwogfQogCitzdWIgQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbAoreworICAgIG15
ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKKworICAgIG15
IEBzcGVjaWFscyA9ICgpOworICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udERlbGV0ZSIpIGlmICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RGVsZXRhYmxlIn0K
KyAgICAgICB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlVu
Zm9yZ2VhYmxlIn0KKyAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VW5mb3JnZWFibGUifTsKKyAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3RFbnVtZXJhYmxlIn07Cisg
ICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWls
dGluIn0pIHsKKyAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OkJ1aWx0aW4iKTsKKyAgICB9
CisgICAgZWxzZSB7CisgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiSlNDOjpGdW5jdGlvbiIpOwor
ICAgIH0KKyAgICByZXR1cm4gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxz
KSA6ICIwIjsKK30KKworc3ViIFVzZUpTQnVpbHRpbnMKK3sKKyAgICBteSAkaW50ZXJmYWNlID0g
c2hpZnQ7CisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25z
fSkgeworICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIDAKK30KKworc3ViIEFkZEluY2x1ZGVzRm9ySlNCdWlsdGluTWV0aG9k
cygpCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworCisgICAgZm9yZWFjaCBteSAkZnVu
Y3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICBuZXh0IHVubGVzcyAo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifSk7
CisgICAgICAgIG15ICRzY29wZU5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKKyAgICAgICAgaWYgKCEkc2NvcGVOYW1lKSB7
CisgICAgICAgICAgICAkc2NvcGVOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICAgICAgfQor
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygkc2NvcGVOYW1lIC4gIkJ1aWx0aW5zLmNwcCIsICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifSk7
CisKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCit9CisKIDE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCAzOGI3ZTMzZTRm
ZTI5OTM1N2RjNGEyNDhmNjk5YjY0ODgwMmQzOGM4Li5iZTAxYWVmNDQ1YmI0NGM5ZGQ2MzBhNzgz
Njc2NGE4Y2ZkYmY3YTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTczLDYgKzczLDcgQEAgSW1wbGVtZW50ZWRBcz0qCiBJ
bml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3RvcgogSW50ZXJmYWNlTmFtZT0qCiBJc1dlYWtDYWxs
YmFjaworSlNCdWlsdGluCiBKU0N1c3RvbURlZmluZU93blByb3BlcnR5CiBKU0N1c3RvbURlZmlu
ZU93blByb3BlcnR5T25Qcm90b3R5cGUKIEpTQ3VzdG9tRmluYWxpemUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXgg
MWQ3OGExNjMzYWM3NmVkMjQ1NDQ1NDJkYWUwZDI5MmExOGZmM2U5Mi4uNjZkMjJmZTU0NDI5OTIx
Y2YwZGJhOGI3ZWM3YTIzY2UyOWQ1ZWUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTUwLDYgKzUwLDcgQEAK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIlRlc3RPYmouaCIKKyNpbmNsdWRlICJUZXN0T2JqQnVpbHRpbnMuY3BwIgog
I2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgImJvb2wuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9T
Y3JpcHRWYWx1ZS5oPgpAQCAtNjA4LDYgKzYwOSw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJjdXN0b21NZXRo
b2RXaXRoQXJncyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21N
ZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkgKDMpIH0gfSwKICAgICB7ICJjdXN0b21CaW5kaW5n
TWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUJpbmRp
bmdNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAiY3VzdG9tQmluZGluZ01ldGhv
ZFdpdGhBcmdzIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUJp
bmRpbmdNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkgKDMpIH0gfSwKKyAgICB7ICJqc0J1aWx0
aW5NZXRob2QiLCBKU0M6OkJ1aWx0aW4sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxCdWlsdGluR2VuZXJhdG9yPih0ZXN0T2JqSnNCdWlsdGluTWV0aG9kQ29kZUdlbmVyYXRv
ciksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJqc0J1aWx0aW5NZXRob2RXaXRoQXJncyIs
IEpTQzo6QnVpbHRpbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0
aW5HZW5lcmF0b3I+KHRlc3RPYmpKc0J1aWx0aW5NZXRob2RXaXRoQXJnc0NvZGVHZW5lcmF0b3Ip
LCAoaW50cHRyX3QpICgzKSB9IH0sCiAgICAgeyAiYWRkRXZlbnRMaXN0ZW5lciIsIEpTQzo6RnVu
Y3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKSwgKGludHB0cl90
KSAoMikgfSB9LAogICAgIHsgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCBKU0M6OkZ1bmN0aW9uLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkgKDIp
IH0gfSwKICAgICB7ICJ3aXRoU2NyaXB0U3RhdGVWb2lkIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZVZvaWQpLCAoaW50cHRyX3QpICgwKSB9IH0s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLmgKaW5kZXggMTZiYWMzMWVkZDMwZTQyZDJkMGY4OTNiYmZlMjY2ZmM1NjBmMWNj
Yi4uMDMxZGQ3ZjdiM2I1YWM4ZTNhN2VkMWI3NzNlYTA1ZGM4MThmMWEzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
aApAQCAtMTM5LDYgKzEzOSw4IEBAIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGVzdE9i
aiA6IERPTU9iamVjdAogLSAodm9pZCltZXRob2RXaXRoRXhjZXB0aW9uOwogLSAodm9pZCljdXN0
b21NZXRob2Q7CiAtICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKHZv
aWQpanNCdWlsdGluTWV0aG9kOworLSAodm9pZClqc0J1aWx0aW5NZXRob2RXaXRoQXJnczooaW50
KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilv
YmpBcmc7CiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5l
cjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2Fw
dHVyZTsKIC0gKHZvaWQpcmVtb3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3Rl
bmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VD
YXB0dXJlOwogLSAodm9pZCl3aXRoU2NyaXB0U3RhdGVWb2lkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXgg
MmE5NTUzNTIzY2E3Y2NkNjk1NWM0MmM1ODFiMDg5NzQxMzc3ZmVmOC4uMzVkYTA5YThkN2NlZDNh
ZjFkZjAwMDM1YTZkOTE4MGZlNGNkNjA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC05MjUsNiArOTI1
LDE4IEBACiAgICAgSU1QTC0+Y3VzdG9tTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBj
b3JlKG9iakFyZykpOwogfQogCistICh2b2lkKWpzQnVpbHRpbk1ldGhvZAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5qc0J1aWx0aW5NZXRo
b2QoKTsKK30KKworLSAodm9pZClqc0J1aWx0aW5NZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcg
c3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+anNC
dWlsdGluTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOworfQor
CiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQg
PERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZQog
ewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBjMWZmOGJh
OWUxMzVjZDM4OTlmZjkyMjA2ZWFmNTBhMGNjOTI1NDYyLi42MjIzMzhhNDg3ZWQ3YzY0NmY2MTQ3
ODQyMWRmMzdlNDkwNDU4ZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0xMTYsNiArMTE2LDEwIEBAIGVudW0gX29wdGlvbmFs
IHsgIiIsICJPcHRpb25hbFZhbHVlMSIsICJPcHRpb25hbFZhbHVlMiIsICJPcHRpb25hbFZhbHVl
MyIgfTsKICAgICBbQ3VzdG9tQmluZGluZ10gdm9pZCBjdXN0b21CaW5kaW5nTWV0aG9kKCk7CiAg
ICAgW0N1c3RvbUJpbmRpbmddIHZvaWQgY3VzdG9tQmluZGluZ01ldGhvZFdpdGhBcmdzKGxvbmcg
bG9uZ0FyZywgRE9NU3RyaW5nIHN0ckFyZywgVGVzdE9iaiBvYmpBcmcpOwogCisgICAgLy8gJ0pT
QnVpbHRpbicgZXh0ZW5kZWQgYXR0cmlidXRlCisgICAgW0pTQnVpbHRpbl0gdm9pZCBqc0J1aWx0
aW5NZXRob2QoKTsKKyAgICBbSlNCdWlsdGluXSB2b2lkIGpzQnVpbHRpbk1ldGhvZFdpdGhBcmdz
KGxvbmcgbG9uZ0FyZywgRE9NU3RyaW5nIHN0ckFyZywgVGVzdE9iaiBvYmpBcmcpOworCiAgICAg
dm9pZCBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgIHZvaWQgcmVtb3ZlRXZlbnRM
aXN0ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgb3B0aW9uYWwg
Ym9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZm9vOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMgYi9Tb3VyY2Uv
V2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjIyZmQ4ZDgyOTk5NzIy
YWI2ZmNlOGY1ZDQ0MDliYTlhYmUzMGViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKQEAgLTAsMCArMSwxNDEgQEAKKyMhL3Vzci9iaW4vcHl0
aG9uCisjIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGZpbGVjbXAKK2lt
cG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKKworZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBsYXRl
CisKKworcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorcGFyc2VyLmFkZF9hcmd1
bWVudCgnLS1vdXRwdXRfZGlyJywgZGVmYXVsdD0nJywgaGVscD0nb3V0cHV0IGRpcmVjdG9yeScp
CitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWlucHV0JywgaGVscD0ncGF0aCB0byBpbnB1dCBKUyBm
aWxlJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0td2ViY29yZV9kaXInLCBoZWxwPSdwYXRoIHRv
IFdlYkNvcmUgZGlyZWN0b3J5JykKKworYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKK2ZpbGVu
YW1lID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKGFyZ3MuaW5wdXQpKVswXQor
CisjIGdlbmVyYXRlIEpTIGJ1aWx0aW5zCituYW1lc3BhY2UgPSAiV2ViQ29yZSIKK3ByZWZpeCA9
ICJXRUJDT1JFIiArIGZpbGVuYW1lLnVwcGVyKCkKK291dHB1dCA9IG9zLnBhdGguam9pbihhcmdz
Lm91dHB1dF9kaXIsIGZpbGVuYW1lICsgIkJ1aWx0aW5zIikKK2pzY19nZW5lcmF0ZV9idWlsdGlu
X3NjcmlwdCA9IG9zLnBhdGguam9pbihhcmdzLndlYmNvcmVfZGlyLCAiLi4iLCAiSmF2YVNjcmlw
dENvcmUiLCAiZ2VuZXJhdGUtanMtYnVpbHRpbnMiKQorCitzdWJwcm9jZXNzLmNhbGwoWyJweXRo
b24iLCBqc2NfZ2VuZXJhdGVfYnVpbHRpbl9zY3JpcHQsICItLW91dHB1dCIsIG91dHB1dCwgIi0t
bmFtZXNwYWNlIiwgbmFtZXNwYWNlLCAiLS1wcmVmaXgiLCBwcmVmaXgsIGFyZ3MuaW5wdXRdLCBz
dGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCisKKyMgZ2VuZXJhdGUgSlMgYnVpbHRpbnMgd3JhcHBl
cgorb3V0cHV0X2Jhc2UgPSBvdXRwdXQgKyAiV3JhcHBlciIKKworYnVpbHRpbnNXcmFwcGVySGVh
ZGVyID0gb3BlbihvdXRwdXRfYmFzZSArICIuaC50bXAiLCAidyIpCisKK2J1aWx0aW5zV3JhcHBl
ckhlYWRlci53cml0ZShUZW1wbGF0ZSgKKyIiIgorLyogR2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWpz
LWJ1aWx0aW5zIGRvIG5vdCBoYW5kIGVkaXQuICovCisKKy8qCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKKyAqLworCisjaWZuZGVmICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVyX2gKKyNkZWZp
bmUgJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXJfaAorCisjaW5jbHVkZSAiJHtGaWxlbmFtZX1C
dWlsdGlucy5oIgorI2luY2x1ZGUgPGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
Lmg+CisjaW5jbHVkZSA8YnVpbHRpbnMvQnVpbHRpblV0aWxzLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9JZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgJHtGaWxlbmFt
ZX1CdWlsdGluc1dyYXBwZXIgOiBwcml2YXRlIEpTQzo6V2Vha0hhbmRsZU93bmVyCit7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXIoSlNDOjpWTSogdm0p
CisgICAgICAgIDogbV92bSgqdm0pCisgICAgICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU5f
RlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVMpCisjZGVmaW5lIElOSVRJQUxJ
WkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgLCBt
XyMjbmFtZSMjU291cmNlKEpTQzo6bWFrZVNvdXJjZShTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0
ZXJhbChzXyMjbmFtZSwgbGVuZ3RoKSkpCisgICAgICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxU
SU4oSU5JVElBTElaRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKQorI3VuZGVmIElOSVRJQUxJWkVf
QlVJTFRJTl9TT1VSQ0VfTUVNQkVSUworICAgIHsKKyAgICB9CisKKyNkZWZpbmUgRVhQT1NFX0JV
SUxUSU5fRVhFQ1VUQUJMRVMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpIFxcCisgICAgSlND
OjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogbmFtZSMjRXhlY3V0YWJsZSgpOyBcXAorICAg
IGNvbnN0IEpTQzo6U291cmNlQ29kZSYgbmFtZSMjU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV8j
I25hbWUjI1NvdXJjZTsgfQorICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU4oRVhQT1NFX0JV
SUxUSU5fRVhFQ1VUQUJMRVMpCisjdW5kZWYgRVhQT1NFX0JVSUxUSU5fRVhFQ1VUQUJMRVMKKwor
ICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShERUNMQVJFX0JVSUxU
SU5fSURFTlRJRklFUl9BQ0NFU1NPUikKKworcHJpdmF0ZToKKyAgICBKU0M6OlZNJiBtX3ZtOwor
CisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKERFQ0xBUkVfQlVJ
TFRJTl9OQU1FUykKKworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFt
ZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpIFxcCisgICAgSlNDOjpTb3VyY2VDb2RlIG1fIyNuYW1l
IyNTb3VyY2U7XFwKKyAgICBKU0M6OldlYWs8SlNDOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZT4gbV8jI25hbWUjI0V4ZWN1dGFibGU7CisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihE
RUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMpCisjdW5kZWYgREVDTEFSRV9CVUlMVElOX1NP
VVJDRV9NRU1CRVJTCisKK307CisKKyNkZWZpbmUgREVGSU5FX0JVSUxUSU5fRVhFQ1VUQUJMRVMo
bmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpIFxcCitpbmxpbmUgSlNDOjpVbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZSogJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXI6Om5hbWUjI0V4ZWN1dGFi
bGUoKSBcXAore1xcCisgICAgaWYgKCFtXyMjbmFtZSMjRXhlY3V0YWJsZSlcXAorICAgICAgICBt
XyMjbmFtZSMjRXhlY3V0YWJsZSA9IEpTQzo6V2VhazxKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlPihKU0M6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKG1fdm0sIG1fIyNuYW1lIyNTb3Vy
Y2UsIGZ1bmN0aW9uTmFtZSMjUHVibGljTmFtZSgpLCBzXyMjbmFtZSMjQ29uc3RydWN0QWJpbGl0
eSksIHRoaXMsICZtXyMjbmFtZSMjRXhlY3V0YWJsZSk7XFwKKyAgICByZXR1cm4gbV8jI25hbWUj
I0V4ZWN1dGFibGUuZ2V0KCk7XFwKK30KKyR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU4oREVGSU5F
X0JVSUxUSU5fRVhFQ1VUQUJMRVMpCisjdW5kZWYgREVGSU5FX0JVSUxUSU5fRVhFQ1VUQUJMRVMK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gJHtGaWxlbmFtZX1CdWlsdGlu
c1dyYXBwZXJfaAorIiIiKS5zdWJzdGl0dXRlKGRpY3QoRmlsZW5hbWU9ZmlsZW5hbWUsIFByZWZp
eD1wcmVmaXgpKSkKKworYnVpbHRpbnNXcmFwcGVySGVhZGVyLmNsb3NlKCkKKworaWYgKG5vdCBv
cy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuaCIpKSBvciAobm90IGZpbGVjbXAuY21wKG91
dHB1dF9iYXNlICsgIi5oLnRtcCIsIG91dHB1dF9iYXNlICsgIi5oIiwgc2hhbGxvdz1GYWxzZSkp
OgorICAgIGlmIChvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuaCIpKToKKyAgICAgICAg
b3MucmVtb3ZlKG91dHB1dF9iYXNlICsgIi5oIikKKyAgICBvcy5yZW5hbWUob3V0cHV0X2Jhc2Ug
KyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiKQorZWxzZToKKyAgICBvcy5yZW1vdmUob3V0
cHV0X2Jhc2UgKyAiLmgudG1wIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYjFkZDQ1MTc0ODQ1Y2QyZjQ5YTZjZTRmYWM3
ZGIzOTNkZTA0MWNkLi4xYmRkZjdiMjBiNWQ3ZTRkMTZlNTI4NDcyZjQ0NzQzM2Q3MzcyYTIzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDktMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4u
ZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEldIEltcGxlbWVudCBS
ZWFkYWJsZVN0cmVhbSBwaXBlVGhyb3VnaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCisKKyAgICAgICAgUmViYXNlZCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuCisgICAgICAg
IEFkZGluZyBuZXcgdGVzdHMgdG8gaW1wcm92ZSBwaXBlVGhyb3VnaCBjb3ZlcmFnZS4KKworICAg
ICAgICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRt
bDogQWRkZWQuCisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJh
bmQtY2hlY2tzLWV4cGVjdGVkLnR4dDoKKwogMjAxNS0wOS0xNyAgSmF2aWVyIEZlcm5hbmRleiAg
PGpmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBSZWxh
eW91dCB3aGVuZXZlciBCb3ggQWxpZ25tZW50IHByb3BlcnRpZXMgY2hhbmdlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFlMDYxY2E5MDZkNDIwZjE1ZjEzZDdiNDUxMGNmNTNl
Y2QyMzZkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUt
c3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBS
ZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHRocm93IHdoZW4gInRo
aXMiIGhhcyBubyBwaXBlVG8gbWV0aG9kIAorUEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUu
cGlwZVRocm91Z2ggc2hvdWxkIHRocm93IHdoZW4gcGFzc2VkIGFyZ3VtZW50IGlzIG5vdCBhbiBv
YmplY3QgCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQg
dGhyb3cgd2hlbiBjYWxsZWQgZ2V0dGVycyBhcmUgdGhyb3dpbmcgCitQQVNTIFJlYWRhYmxlU3Ry
ZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgd29yayB3aXRoIG1pc3NpbmcgcGFyYW1l
dGVycyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0t
cGlwZVRocm91Z2guaHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBp
cGVUaHJvdWdoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I5YTY4YjMyYmM0YjdiYmVmZmI4Y2Q1NzY3NDM3
YjdhNWM0YTg0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFi
bGUtc3RyZWFtLXBpcGVUaHJvdWdoLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy9nYy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
Cit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBpbnB1dCA9IHsKKyAgICAgICAgcmVhZGFibGU6
IHsgfSwKKyAgICAgICAgd3JpdGFibGU6IHsgfQorICAgIH07CisgICAgdmFyIG9wdGlvbnMgPSB7
IH07CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFk
YWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh1bmRlZmluZWQsIGlucHV0LCBv
cHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9u
KCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbChudWxsLCBpbnB1
dCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5j
dGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwoMSwgaW5w
dXQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVu
Y3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHsgInBp
cGVUbyI6ICJ0ZXN0IiB9LCBpbnB1dCwgb3B0aW9ucyk7IH0pOworfSwgJ1JlYWRhYmxlU3RyZWFt
LnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiAidGhpcyIgaGFzIG5vIHBp
cGVUbyBtZXRob2QnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgb3B0aW9ucyA9IHsg
fTsKKyAgICB2YXIgdGhpc1ZhbHVlID0geworICAgICAgICBwaXBlVG86IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgpOworICAgICAgICB9CisgICAgfTsKKworICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJl
YW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCBudWxsLCBvcHRpb25zKTsg
fSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFk
YWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIHVuZGVmaW5l
ZCwgb3B0aW9ucyk7IH0pOworfSwgJ1JlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3Vn
aCBzaG91bGQgdGhyb3cgd2hlbiBwYXNzZWQgYXJndW1lbnQgaXMgbm90IGFuIG9iamVjdCcpOwor
Cit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvcHRpb25zID0geyB9OworICAgIHZhciBlcnJv
ciA9IG5ldyBUeXBlRXJyb3IoInBvdGF0byIpOworCisgICAgdmFyIHRoaXNXcm9uZ1ZhbHVlID0g
eworICAgICAgICBnZXQgcGlwZVRvKCkgeworICAgICAgICAgICAgdGhyb3cgZXJyb3I7CisgICAg
ICAgIH0KKyAgICB9OworICAgIGFzc2VydF90aHJvd3MoZXJyb3IsIGZ1bmN0aW9uKCkgeyBSZWFk
YWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzV3JvbmdWYWx1ZSwgeyBy
ZWFkYWJsZTogeyB9LCB3cml0YWJsZTogeyB9IH0sIG9wdGlvbnMpOyB9KTsKKworICAgIHZhciB0
aGlzVmFsdWUgPSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBh
c3NlcnRfdW5yZWFjaGVkKCk7CisgICAgICAgIH0KKyAgICB9OworICAgIHZhciB3cm9uZ0lucHV0
ID0geworICAgICAgICByZWFkYWJsZTogeyB9LAorICAgICAgICBnZXQgd3JpdGFibGUoKSB7Cisg
ICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAgICAgfQorICAgIH07CisgICAgYXNzZXJ0X3Ro
cm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhy
b3VnaC5jYWxsKHRoaXNWYWx1ZSwgd3JvbmdJbnB1dCwgb3B0aW9ucyk7IH0pOworCisgICAgdmFy
IHdyb25nSW5wdXQyID0geworICAgICAgICBnZXQgcmVhZGFibGUoKSB7CisgICAgICAgICAgICB0
aHJvdyBlcnJvcjsKKyAgICAgICAgfSwKKyAgICAgICAgd3JpdGFibGU6IHsgfQorICAgIH07Cisg
ICAgdmFyIHRoaXNWYWx1ZTIgPSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7IH0KKyAg
ICB9OworICAgIGFzc2VydF90aHJvd3MoZXJyb3IsIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVh
bS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUyLCB3cm9uZ0lucHV0Miwgb3B0
aW9ucyk7IH0pOworfSwgJ1JlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91
bGQgdGhyb3cgd2hlbiBjYWxsZWQgZ2V0dGVycyBhcmUgdGhyb3dpbmcnKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciB0aGlzVmFsdWUgPSB7CisgICAg
ICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICArK2NvdW50OworICAgICAgICB9
CisgICAgfTsKKworICAgIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxs
KHRoaXNWYWx1ZSwgeyByZWFkYWJsZTogeyB9LCB3cml0YWJsZTogeyB9IH0pOworICAgIFJlYWRh
YmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgeyByZWFkYWJs
ZTogeyB9IH0sIHsgfSk7CisgICAgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdo
LmNhbGwodGhpc1ZhbHVlLCB7IHdyaXRhYmxlOiB7IH0gfSwgeyB9KTsKKworICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIDMpOworfSwgJ1JlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3Vn
aCBzaG91bGQgd29yayB3aXRoIG1pc3NpbmcgcGFyYW1ldGVycycpOworCis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2Jy
YW5kLWNoZWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1p
bXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0CmluZGV4IDM3MzU3N2ViOTgy
MWQyMDc1NGRlODc3MWE2MGZhZTUyMzhjOWI1ZjYuLmIxOTdkMTY1N2IxMGY3MDAzNGYyYzJhNjQ2
MTZmNWJjMmZmMjVmZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNl
LWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVk
LnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBDYW4gZ2V0IHRoZSBSZWFkYWJsZVN0cmVhbVJl
YWRlciBjb25zdHJ1Y3RvciBpbmRpcmVjdGx5IAogUEFTUyBDYW4gZ2V0IHRoZSBSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3IgaW5kaXJlY3RseSAKLUZBSUwgUmVhZGFibGVTdHJl
YW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHdvcmtzIGdlbmVyaWNhbGx5IG9uIGl0cyB0aGlzIGFu
ZCBpdHMgYXJndW1lbnRzIENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW0ucGlwZVRocm91Z2gg
b24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3Rv
dHlwZS5waXBlVGhyb3VnaCB3b3JrcyBnZW5lcmljYWxseSBvbiBpdHMgdGhpcyBhbmQgaXRzIGFy
Z3VtZW50cyAKIFBBU1MgUmVhZGFibGVTdHJlYW1SZWFkZXIgZW5mb3JjZXMgYSBicmFuZCBjaGVj
ayBvbiBpdHMgYXJndW1lbnQgCiBGQUlMIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5j
bG9zZWQgZW5mb3JjZXMgYSBicmFuZCBjaGVjayB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAo
ZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGdldHRlck5h
bWUpLmdldCcpCiBQQVNTIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5jYW5jZWwgZW5m
b3JjZXMgYSBicmFuZCBjaGVjayAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261732</attachid>
            <date>2015-09-22 02:05:25 -0700</date>
            <delta_ts>2015-09-22 07:27:25 -0700</delta_ts>
            <desc>Changing CMakeList</desc>
            <filename>bug-147556-20150922110507.patch</filename>
            <type>text/plain</type>
            <size>64064</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YTg2MjA0OGYzNzM3MDY3M2JlOGQzYTJkMzIwMWNmOTJjZTRkZTE4Li5mNmZjMzEzYjg3MWNkNWRl
NGQ0NDZiODQ5NzEwNzk0YTgzMjVjOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNhYmxl
IGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGluTmFt
ZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVzLgor
ICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRpbmcg
YnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1dGFi
bGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhl
Y3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
QnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJu
YWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6OkJ1
aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6
IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFibGVz
LmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6Cisg
ICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0yMSAgU3Vrb2xzYWsg
U2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhl
IGNvbW1hIGluc3RydWN0aW9uIGluIFdlYkFzc2VtYmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjczNzNjOGFk
NzQ3MGExMzQyZmU3YzczZDBmMjJhNmM1MzlhNzM0Yy4uMTJhYjM4YTA0NjJlNzQ1MTQwNjhkMjgx
N2M4ZjQ2OTc2MjIwYWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE1LTA5LTIx
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAg
W1N0cmVhbXMgQVBJXSBJbXBsZW1lbnQgUmVhZGFibGVTdHJlYW0gcGlwZVRocm91Z2gKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzU1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZGluZyBpbml0aWFsIHN1
cHBvcnQgZm9yIEpTIGJ1aWx0aW5zIHdpdGhpbiBXZWJDb3JlLgorICAgICAgICBUaGlzIHBhdGNo
IGFsbG93cyBpbXBsZW1lbnRpbmcgSURMIGludGVyZmFjZSBtZXRob2RzIGluIEpTLCBieSB1c2lu
ZyB0aGUgbmV3IEpTQnVpbHRpbiBrZXl3b3JkLgorICAgICAgICAoTm8gc3VwcG9ydCB5ZXQgZm9y
IHByaXZhdGUgaWRlbnRpZmllcnMsIGNvbnN0cnVjdG9ycyBvciBhY2Nlc3NvcnMpLgorICAgICAg
ICBJbnRlZ3JhdGlvbiBvZiB0aGUgYnVpbHQtaW4gZXhlY3V0YWJsZXMgYW5kIG5hbWVzIGlzIGlt
cGxlbWVudGVkIHdpdGhpbiBXZWJDb3JlSlNDbGllbnREYXRhLgorICAgICAgICBUd28gZmlsZXMg
YXJlIGdlbmVyYXRlZCBmb3IgZWFjaCBKUyBidWlsdGluIGZpbGU6CisgICAgICAgIC0gYnVpbHRp
biBoL2NwcCBmaWxlcyBzaW1pbGFyIHRvIEpTQ0J1aWx0aW5zLmNwcC8uaCwgZ2VuZXJhdGVkIHRo
cm91Z2ggV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucyBmcm9tIEphdmFTY3JpcHRDb3JlL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zKQorICAgICAgICAtIEEgYnVpbHRpbiB3cmFwcGVyIGZpbGUgbWlt
aWNraW5nIEJ1aWx0aW5FeGVjdXRhYmxlcyAoZ2VuZXJhdGVkIGZyb20gV2ViQ29yZS9nZW5lcmF0
ZS1qcy1idWlsdGlucykKKyAgICAgICAgQ29udHJhcnkgdG8gSlNDLCBlYWNoIGpzIGZpbGUgaXMg
Z2VuZXJhdGluZyBpdHMgb3duIGNwcC9oIGZpbGUuCisgICAgICAgIFRoaXMgYWxsb3dzIGluY2x1
ZGluZyB0aG9zZSBmaWxlcyB3aXRoaW4gdGhlIEpTWFguY3BwLy5oIGZpbGVzIGdlbmVyYXRlZCBm
cm9tIHRoZSBJREwgd2hlcmUgY29tcGlsYXRpb24gZ3VhcmQgbWF5IHRha2UgZWZmZWN0LgorCisg
ICAgICAgIERpc2FibGVkIEdPYmplY3QgYmluZGluZyBmb3IgSlNCdWlsdGluIG1ldGhvZHMuCisK
KyAgICAgICAgVGVzdDogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFRyaWdnZXJpbmcgZ2VuZXJhdGUtanMtYnVpbHRp
bnMgZm9yIEpTIGZpbGVzLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgor
ICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oOiBBZGRl
ZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L0NvbnN0cnVjdEFiaWxpdHkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtLmlkbDogTWFya2luZyBwaXBlVGhyb3VnaCBhcyBKUyBidWlsdGluCisgICAg
ICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzOiBBZGRlZC4KKyAgICAgICAg
KHBpcGVUaHJvdWdoKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmg6IEFk
ZGluZyBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciB0byBzdG9yZSBSZWFkYWJsZVN0cmVh
bSBidWlsdGluIGV4ZWN1dGFibGUKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVKU0NsaWVudERh
dGE6OldlYkNvcmVKU0NsaWVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUpTQ2xp
ZW50RGF0YTo6cmVhZGFibGVTdHJlYW1CdWlsdGlucyk6CisgICAgICAgIChXZWJDb3JlOjppbml0
Tm9ybWFsV29ybGRDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JHT2JqZWN0LnBtOiBEaXNhYmxlZCBHT2JqZWN0IGJpbmRpbmcgZm9yIEpTQnVpbHRp
biBtZXRob2RzLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OiBBZGRpbmcgc3VwcG9ydCBmb3IgSlNCdWlsdGluIGtleXdvcmQuCisgICAgICAgIChHZXRGdW5j
dGlvbk5hbWUpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkpOgor
ICAgICAgICAoQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCk6CisgICAgICAgIChVc2VKU0J1aWx0aW5z
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OiBBZGRpbmcg
SlNCdWlsdGluLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouY3BwOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9qc19idWlsdGlu
X21ldGhvZCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9k
X3dpdGhfYXJncyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbToKKyAgICAg
ICAgKC1bRE9NVGVzdE9iaiBqc0J1aWx0aW5NZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9i
aiBqc0J1aWx0aW5NZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAgKiBnZW5lcmF0ZS1qcy1i
dWlsdGluczogQWRkZWQuCisKIDIwMTUtMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICB0aW1lIGVsZW1lbnQgc2hvdWxkIHVzZSBIVE1MVGltZUVsZW1lbnQg
aW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBmY2EyZmQ0ODIwMzQ3
NDAzODc5YjIxMjk0YjNhMDkwNjNiZGFlYTEuLmQyYTIxMTRkODE0Zjc2YWE0YTE3MzhiNTU3OGM1
MmMyNDIwYzJkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NTIsNiArOTUy
LDcgQEAKIAkJMkFGNzM4MkQxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVjdHVyZUlEVGFibGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBRjczODJCMThC
QkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzcxRDg0MkQxN0M5OEI2RTAwRUNGOTk0IC8q
IGxpYnouZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzNzFEODQyQzE3Qzk4QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLzsgfTsKIAkJNDEz
NTlDRjMwRkREODlBRDAwMjA2MTgwIC8qIERhdGVDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjEyMDIyOTBBRDQzMTBDMDBFRDc5QjYg
LyogRGF0ZUNvbnZlcnNpb24uaCAqLzsgfTsKKwkJNDFERUExMzIxQjlGMzE2MzAwNkQ2NUREIC8q
IEJ1aWx0aW5VdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFERUExMzExQjlGMzE1NDAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQzNDBBNDg0MUE5MDUx
QUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDBBNDgyMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9u
LmNwcCAqLzsgfTsKIAkJNDM0MEE0ODUxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDBBNDgzMUE5
MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmggKi87IH07CiAJCTQ0NDNBRTMzMTZFMTg4RDkw
MDc2RjExMCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjBFQjYxMDVDODZDNkIwMEU2REYxQiAvKiBGb3Vu
ZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKQEAgLTI3NjUsNiArMjc2Niw3IEBACiAJCTJBRjczODJB
MThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cnVjdHVyZUlEVGFibGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyQUY3MzgyQjE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURU
YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJRFRhYmxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MUQ4NDJDMTdDOThCNkUwMEVDRjk5
NCAvKiBsaWJ6LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJ6LmR5bGliOyBwYXRo
ID0gdXNyL2xpYi9saWJ6LmR5bGliOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKwkJNDFERUEx
MzExQjlGMzE1NDAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCdWlsdGluVXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDM0MEE0ODIxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aENvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQzNDBBNDgzMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhDb21tb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ5MDk3RUUwRjhGODFCNTAwNzZBMzI3IC8qIEZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTg3Nyw2ICs1
ODc5LDcgQEAKIAkJCQlBN0Q4MDFBMTE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFi
bGVzLmNwcCAqLywKIAkJCQlBN0Q4MDFBMjE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1
dGFibGVzLmggKi8sCiAJCQkJQTc1RUU5QjAxOEFBQjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5OYW1l
cy5oICovLAorCQkJCTQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCAq
LywKIAkJCQlBN0E5NzlDNDE4QkU4RDlFMDAyQzM3MzMgLyogRnVuY3Rpb24ucHJvdG90eXBlLmpz
ICovLAogCQkJCTdDRjlCQzVBMUI2NUQ5QTMwMDlEQjFFRiAvKiBHbG9iYWxPYmplY3QuanMgKi8s
CiAJCQkJRTM1RTAzNjExQjdBQjQ4NTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bk9iamVjdC5qcyAqLywKQEAgLTYxNDksNiArNjE1Miw3IEBACiAJCQkJQTcwNEQ5MDMxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3MDREOTA0MTdBMEJBQTgwMDZCQTU1NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUyM0MxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxD
b2xsYXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MURFQTEzMjFCOUYzMTYz
MDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYyMDE3NzE0
M0ZDRDNGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZGMDU0RkExQUMzNUI0NDAwRTVCRTU3IC8qIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY2NkUxNkIxNERGM0YxNjAwQjdCMkU0IC8qIERGR0FkamFjZW5j
eUxpc3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcAppbmRleCA3ZWYxZGEzYjBhYzM5NDNlMDA1
OTNjNjhlMWQ4MTU1MjdjMjcxMWE1Li4zNmQyNjUyNmI1NTNiOGM3NzgwNTVhNTA1OTkzMjc0Yzg2
MWM2MTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bkV4ZWN1dGFibGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbkV4ZWN1dGFibGVzLmNwcApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAorc3RhdGljIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVFeGVjdXRhYmxlSW50
ZXJuYWwoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENvbnN0cnVj
dG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSk7CisKIEJ1aWx0aW5FeGVjdXRhYmxlczo6QnVpbHRp
bkV4ZWN1dGFibGVzKFZNJiB2bSkKICAgICA6IG1fdm0odm0pCiAjZGVmaW5lIElOSVRJQUxJWkVf
QlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgLCBtXyMj
bmFtZSMjU291cmNlKG1ha2VTb3VyY2UoU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoc18j
I25hbWUsIGxlbmd0aCkpKQpAQCAtNTIsMTUgKzU0LDI1IEBAIFVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZURlZmF1bHRDb25zdHJ1Y3RvcihDb25z
dHJ1CiAgICAgY2FzZSBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmU6CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29uc3RydWN0b3JLaW5kOjpCYXNlOgotICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0
YWJsZUludGVybmFsKG1ha2VTb3VyY2UoYmFzZUNvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0
cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBtYWtlU291cmNlKGJhc2VDb25zdHJ1
Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNv
bnN0cnVjdCk7CiAgICAgY2FzZSBDb25zdHJ1Y3RvcktpbmQ6OkRlcml2ZWQ6Ci0gICAgICAgIHJl
dHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwobWFrZVNvdXJjZShkZXJpdmVkQ29uc3RydWN0
b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25z
dHJ1Y3QpOworICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1fdm0sIG1h
a2VTb3VyY2UoZGVyaXZlZENvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0cnVjdG9yS2luZCwg
Q29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdG9y
S2luZCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkK
K1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUJ1
aWx0aW5FeGVjdXRhYmxlKGNvbnN0IFNvdXJjZUNvZGUmIGNvZGUsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkKK3sKKyAgICByZXR1cm4g
Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1fdm0sIGNvZGUsIG5hbWUsIENvbnN0cnVjdG9yS2lu
ZDo6Tm9uZSwgY29uc3RydWN0QWJpbGl0eSk7Cit9CisKK1VubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIGNv
ZGUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJp
bGl0eSkKK3sKKyAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKHZtLCBjb2RlLCBu
YW1lLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIGNvbnN0cnVjdEFiaWxpdHkpOworfQorCitVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKFZNJiB2bSwg
Y29uc3QgU291cmNlQ29kZSYgc291cmNlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1
Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxp
dHkpCiB7CiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZTsKICAg
ICBQYXJzZXJFcnJvciBlcnJvcjsKQEAgLTY5LDcgKzgxLDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNv
bnN0IFMKICAgICBVbmxpbmtlZEZ1bmN0aW9uS2luZCBraW5kID0gaXNQYXJzaW5nRGVmYXVsdENv
bnN0cnVjdG9yID8gVW5saW5rZWROb3JtYWxGdW5jdGlvbiA6IFVubGlua2VkQnVpbHRpbkZ1bmN0
aW9uOwogICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4gc291cmNlT3ZlcnJpZGUgPSBpc1BhcnNp
bmdEZWZhdWx0Q29uc3RydWN0b3IgPyBzb3VyY2UucHJvdmlkZXIoKSA6IG51bGxwdHI7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFByb2dyYW1Ob2RlPiBwcm9ncmFtID0gcGFyc2U8UHJvZ3JhbU5vZGU+
KAotICAgICAgICAmbV92bSwgc291cmNlLCBJZGVudGlmaWVyKCksIGJ1aWx0aW5Nb2RlLAorICAg
ICAgICAmdm0sIHNvdXJjZSwgSWRlbnRpZmllcigpLCBidWlsdGluTW9kZSwKICAgICAgICAgSlNQ
YXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3QsIFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUs
IGVycm9yLAogICAgICAgICAmcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSwgY29uc3RydWN0b3JL
aW5kKTsKIApAQCAtOTUsMTYgKzEwNywxNiBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSog
QnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgUwogICAg
IG1ldGFkYXRhLT5zZXRFbmRQb3NpdGlvbihwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKTsKICAg
ICBSRUxFQVNFX0FTU0VSVChtZXRhZGF0YSk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBjbG9zZWRW
YXJpYWJsZSA6IHByb2dyYW0tPmNsb3NlZFZhcmlhYmxlcygpKSB7Ci0gICAgICAgIGlmIChjbG9z
ZWRWYXJpYWJsZSA9PSBtX3ZtLnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBsKCkpCisgICAg
ICAgIGlmIChjbG9zZWRWYXJpYWJsZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1w
bCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBpZiAoY2xvc2Vk
VmFyaWFibGUgPT0gbV92bS5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkLmltcGwoKSkK
KyAgICAgICAgaWYgKGNsb3NlZFZhcmlhYmxlID09IHZtLnByb3BlcnR5TmFtZXMtPnVuZGVmaW5l
ZEtleXdvcmQuaW1wbCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgfQogICAgIG1ldGFk
YXRhLT5vdmVycmlkZU5hbWUobmFtZSk7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVudCBkdW1teVRE
WlZhcmlhYmxlczsKLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVj
dXRhYmxlID0gVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZSgmbV92bSwgc291cmNl
LCBtZXRhZGF0YSwga2luZCwgY29uc3RydWN0QWJpbGl0eSwgZHVtbXlURFpWYXJpYWJsZXMsIFdU
Rjo6bW92ZShzb3VyY2VPdmVycmlkZSkpOwotICAgIGZ1bmN0aW9uRXhlY3V0YWJsZS0+bV9uYW1l
VmFsdWUuc2V0KG1fdm0sIGZ1bmN0aW9uRXhlY3V0YWJsZSwganNTdHJpbmcoJm1fdm0sIG5hbWUu
c3RyaW5nKCkpKTsKKyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVj
dXRhYmxlID0gVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZSgmdm0sIHNvdXJjZSwg
bWV0YWRhdGEsIGtpbmQsIGNvbnN0cnVjdEFiaWxpdHksIGR1bW15VERaVmFyaWFibGVzLCBXVEY6
Om1vdmUoc291cmNlT3ZlcnJpZGUpKTsKKyAgICBmdW5jdGlvbkV4ZWN1dGFibGUtPnNldE5hbWVW
YWx1ZSh2bSwganNTdHJpbmcoJnZtLCBuYW1lLnN0cmluZygpKSk7CiAgICAgcmV0dXJuIGZ1bmN0
aW9uRXhlY3V0YWJsZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCmluZGV4IDIzNDFjODhkOGM3MzEyZjU1NmE5NzQ4MThj
YzlhMGQwOTYyNTM2MmMuLjg2MmQxODI3NzJjNDU1N2U3YTI0YTExMjVmNDhhYTc4NDRiZmQ3OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0
YWJsZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1
dGFibGVzLmgKQEAgLTU3LDExICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBWTSYgbV92bTsKIAot
ICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShj
b25zdCBTb3VyY2VDb2RlJiBjb2RlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RB
YmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCi0gICAgewotICAgICAgICByZXR1cm4gY3JlYXRlRXhl
Y3V0YWJsZUludGVybmFsKGNvZGUsIG5hbWUsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgY29uc3Ry
dWN0QWJpbGl0eSk7Ci0gICAgfQotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVh
dGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXIm
LCBDb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHkpOworICAgIFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiwg
Y29uc3QgSWRlbnRpZmllciYsIENvbnN0cnVjdEFiaWxpdHkpOwogCiAjZGVmaW5lIERFQ0xBUkVf
QlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aClcCiAgICAg
U291cmNlQ29kZSBtXyMjbmFtZSMjU291cmNlOyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggN2U1NDM0MmU3NTJmOWYyZDRlODM1ZWQwMzRm
NDYwOWNmMzY1ZDM5Zi4uYmYyOGRiODNmN2JiYmEyZTZmMGJhYjk3NWI2ZTlmNGQ0YTM3ODg5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAt
MjYsNDIgKzI2LDMxIEBACiAjaWZuZGVmIEJ1aWx0aW5OYW1lc19oCiAjZGVmaW5lIEJ1aWx0aW5O
YW1lc19oCiAKKyNpbmNsdWRlICJCdWlsdGluVXRpbHMuaCIKICNpbmNsdWRlICJDb21tb25JZGVu
dGlmaWVycy5oIgogI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewot
ICAgIAotI2RlZmluZSBJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMobmFtZSkgLCBtXyMjbmFtZShJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAjbmFtZSkpLCBtXyMjbmFtZSMjUHJpdmF0ZU5hbWUo
SWRlbnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFtZShQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24s
IEFTQ0lJTGl0ZXJhbCgiUHJpdmF0ZVN5bWJvbC4iICNuYW1lKSkpKQotI2RlZmluZSBERUNMQVJF
X0JVSUxUSU5fTkFNRVMobmFtZSkgY29uc3QgSWRlbnRpZmllciBtXyMjbmFtZTsgY29uc3QgSWRl
bnRpZmllciBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7Ci0jZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9J
REVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKLSAgICBjb25zdCBJZGVudGlmaWVyJiBuYW1lIyNQ
dWJsaWNOYW1lKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWU7IH0gXAotICAgIGNvbnN0IElkZW50
aWZpZXImIG5hbWUjI1ByaXZhdGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWUjI1ByaXZh
dGVOYW1lOyB9CiAKLSNkZWZpbmUgSU5JVElBTElTRV9CVUlMVElOX1NZTUJPTFMobmFtZSkgSU5J
VElBTElTRV9CVUlMVElOX05BTUVTKG5hbWUpLCBtXyMjbmFtZSMjU3ltYm9sKElkZW50aWZpZXI6
OmZyb21VaWQoUHJpdmF0ZU5hbWUoUHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVy
YWwoIlN5bWJvbC4iICNuYW1lKSkpKQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lNQk9MUyhu
YW1lKSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgY29uc3QgSWRlbnRpZmllciBtXyMjbmFt
ZSMjU3ltYm9sOwotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lNQk9MX0FDQ0VTU09SKG5hbWUp
IFwKLSAgICBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCi0gICAg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSMjU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWUj
I1N5bWJvbDsgfQorI2RlZmluZSBJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKG5h
bWUpIG1fcHJpdmF0ZVRvUHVibGljTWFwLmFkZChtXyMjbmFtZSMjUHJpdmF0ZU5hbWUuaW1wbCgp
LCAmbV8jI25hbWUpOworI2RlZmluZSBJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZ
KG5hbWUpIG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtXyMjbmFtZS5pbXBsKCksICZtXyMjbmFt
ZSMjUHJpdmF0ZU5hbWUpOwogCi0jZGVmaW5lIElOSVRJQUxJU0VfUFJJVkFURV9UT19QVUJMSUNf
RU5UUlkobmFtZSkgbV9wcml2YXRlVG9QdWJsaWNNYXAuYWRkKG1fIyNuYW1lIyNQcml2YXRlTmFt
ZS5pbXBsKCksICZtXyMjbmFtZSk7Ci0jZGVmaW5lIElOSVRJQUxJU0VfUFVCTElDX1RPX1BSSVZB
VEVfRU5UUlkobmFtZSkgbV9wdWJsaWNUb1ByaXZhdGVNYXAuYWRkKG1fIyNuYW1lLmltcGwoKSwg
Jm1fIyNuYW1lIyNQcml2YXRlTmFtZSk7Ci0gICAgCiBjbGFzcyBCdWlsdGluTmFtZXMgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEJ1aWx0aW5OYW1lcyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogICAgIAogcHVibGljOgogICAgIEJ1aWx0aW5OYW1lcyhWTSogdm0sIENvbW1vbklkZW50
aWZpZXJzKiBjb21tb25JZGVudGlmaWVycykKICAgICAgICAgOiBtX2VtcHR5SWRlbnRpZmllcihj
b21tb25JZGVudGlmaWVycy0+ZW1wdHlJZGVudGlmaWVyKQotICAgICAgICBKU0NfRk9SRUFDSF9C
VUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElTRV9CVUlMVElOX05BTUVTKQotICAgICAgICBK
U0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJ
U0VfQlVJTFRJTl9OQU1FUykKLSAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJT
X0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElTRV9CVUlMVElOX1NZTUJPTFMpCisgICAg
ICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxUSU5f
TkFNRVMpCisgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BF
UlRZX05BTUUoSU5JVElBTElaRV9CVUlMVElOX05BTUVTKQorICAgICAgICBKU0NfQ09NTU9OX1BS
SVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVpFX0JVSUxU
SU5fU1lNQk9MUykKICAgICB7Ci0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05f
TkFNRShJTklUSUFMSVNFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfQ09N
TU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJU0VfUFJJ
VkFURV9UT19QVUJMSUNfRU5UUlkpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElG
SUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJU0VfUFJJVkFURV9UT19QVUJMSUNf
RU5UUlkpCi0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFM
SVNFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVf
SURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJU0VfUFVCTElDX1RPX1BSSVZB
VEVfRU5UUlkpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dF
TExfS05PV05fU1lNQk9MKElOSVRJQUxJU0VfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCisgICAg
ICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX1BSSVZBVEVf
VE9fUFVCTElDX0VOVFJZKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNf
RUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCisg
ICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lN
Qk9MKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCisgICAgICAgIEpTQ19GT1JF
QUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VO
VFJZKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJU
WV9OQU1FKElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCisgICAgICAgIEpTQ19D
T01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJ
WkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCiAgICAgfQogCiAgICAgYm9vbCBpc1ByaXZhdGVO
YW1lKFN5bWJvbEltcGwmIHVpZCkgY29uc3Q7CkBAIC04NCwxMyArNzMsNiBAQCBwcml2YXRlOgog
ICAgIEJ1aWx0aW5OYW1lc01hcCBtX3ByaXZhdGVUb1B1YmxpY01hcDsKIH07CiAKLSN1bmRlZiBE
RUNMQVJFX0JVSUxUSU5fTkFNRVMKLSN1bmRlZiBJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMKLSN1
bmRlZiBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUgotI3VuZGVmIERFQ0xBUkVf
QlVJTFRJTl9TWU1CT0xTCi0jdW5kZWYgSU5JVElBTElTRV9CVUlMVElOX1NZTUJPTFMKLSN1bmRl
ZiBERUNMQVJFX0JVSUxUSU5fU1lNQk9MX0FDQ0VTU09SCi0KIGlubGluZSBib29sIEJ1aWx0aW5O
YW1lczo6aXNQcml2YXRlTmFtZShTeW1ib2xJbXBsJiB1aWQpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcHJpdmF0ZVRvUHVibGljTWFwLmNvbnRhaW5zKCZ1aWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMWEyOGI1Zjg4ZWU2
MjJmYWJiMjA1ZTNiYzgyM2Q4NDE1ZjZmNjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJ1aWx0aW5V
dGlsc19oCisjZGVmaW5lIEJ1aWx0aW5VdGlsc19oCisKKyNpbmNsdWRlICJDb25zdHJ1Y3RBYmls
aXR5LmgiCisKK25hbWVzcGFjZSBKU0MgeworCisjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJTl9O
QU1FUyhuYW1lKSAsIG1fIyNuYW1lKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgI25h
bWUpKSwgbV8jI25hbWUjI1ByaXZhdGVOYW1lKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVVpZChKU0M6
OlByaXZhdGVOYW1lKEpTQzo6UHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwo
IlByaXZhdGVTeW1ib2wuIiAjbmFtZSkpKSkKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX05BTUVT
KG5hbWUpIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZTsgY29uc3QgSlNDOjpJZGVudGlm
aWVyIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0lERU5U
SUZJRVJfQUNDRVNTT1IobmFtZSkgXAorICAgIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbmFtZSMj
UHVibGljTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lOyB9IFwKKyAgICBjb25zdCBKU0M6
OklkZW50aWZpZXImIG5hbWUjI1ByaXZhdGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWUj
I1ByaXZhdGVOYW1lOyB9CisKKyNkZWZpbmUgSU5JVElBTElaRV9CVUlMVElOX1NZTUJPTFMobmFt
ZSkgSU5JVElBTElaRV9CVUlMVElOX05BTUVTKG5hbWUpLCBtXyMjbmFtZSMjU3ltYm9sKEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVVpZChKU0M6OlByaXZhdGVOYW1lKEpTQzo6UHJpdmF0ZU5hbWU6OkRl
c2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlN5bWJvbC4iICNuYW1lKSkpKQorI2RlZmluZSBERUNM
QVJFX0JVSUxUSU5fU1lNQk9MUyhuYW1lKSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgY29u
c3QgSlNDOjpJZGVudGlmaWVyIG1fIyNuYW1lIyNTeW1ib2w7CisjZGVmaW5lIERFQ0xBUkVfQlVJ
TFRJTl9TWU1CT0xfQUNDRVNTT1IobmFtZSkgXAorICAgIERFQ0xBUkVfQlVJTFRJTl9JREVOVElG
SUVSX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1N5
bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNTeW1ib2w7IH0KKworY2xhc3MgSWRlbnRp
ZmllcjsKK2NsYXNzIFNvdXJjZUNvZGU7CitjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZTsKK2NsYXNzIFZNOworCitKU19FWFBPUlRfUFJJVkFURSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgY29u
c3QgSWRlbnRpZmllciYsIENvbnN0cnVjdEFiaWxpdHkpOworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGUuaAppbmRleCBlM2ZjMmE5NjQ5Y2ZlY2IxOGEwMjAyMGU5NjEwMTQ5NDljNDU2
NmZhLi5hMzkyZmQ5YjMwY2QyNmIzYTYxNmQ3YmRiNjRmMzJhMGUxZjE5Nzk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGUuaApAQCAtNTksNyArNTksNiBAQCBlbnVtIFVubGlua2VkRnVuY3Rpb25LaW5k
IHsKIAogY2xhc3MgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgSlND
ZWxsIHsKIHB1YmxpYzoKLSAgICBmcmllbmQgY2xhc3MgQnVpbHRpbkV4ZWN1dGFibGVzOwogICAg
IGZyaWVuZCBjbGFzcyBDb2RlQ2FjaGU7CiAgICAgZnJpZW5kIGNsYXNzIFZNOwogCkBAIC03Nyw2
ICs3Niw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBJZGVudGlmaWVyJiBuYW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9uYW1lOyB9CiAgICAgY29uc3QgSWRlbnRpZmllciYgaW5mZXJyZWROYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9pbmZlcnJlZE5hbWU7IH0KICAgICBKU1N0cmluZyogbmFtZVZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV9uYW1lVmFsdWUuZ2V0KCk7IH0KKyAgICB2b2lkIHNldE5hbWVWYWx1
ZShWTSYgdm0sIEpTU3RyaW5nKiBuYW1lVmFsdWUpIHsgbV9uYW1lVmFsdWUuc2V0KHZtLCB0aGlz
LCBuYW1lVmFsdWUpOyB9CiAgICAgdW5zaWduZWQgcGFyYW1ldGVyQ291bnQoKSBjb25zdCB7IHJl
dHVybiBtX3BhcmFtZXRlckNvdW50OyB9OwogICAgIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUo
KSBjb25zdCB7IHJldHVybiBtX3BhcnNlTW9kZTsgfTsKICAgICBib29sIGlzSW5TdHJpY3RDb250
ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9pc0luU3RyaWN0Q29udGV4dDsgfQpAQCAtMTAwLDcgKzEw
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYsIEV4ZWNTdGF0ZSYsIGNv
bnN0IFNvdXJjZUNvZGUmLCBKU09iamVjdComIGV4Y2VwdGlvbiwgCiAgICAgICAgIGludCBvdmVy
cmlkZUxpbmVOdW1iZXIpOwogCi0gICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBsaW5rKFZNJiwgY29u
c3QgU291cmNlQ29kZSYsIGludCBvdmVycmlkZUxpbmVOdW1iZXIgPSAtMSk7CisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgRnVuY3Rpb25FeGVjdXRhYmxlKiBsaW5rKFZNJiwgY29uc3QgU291cmNlQ29k
ZSYsIGludCBvdmVycmlkZUxpbmVOdW1iZXIgPSAtMSk7CiAKICAgICB2b2lkIGNsZWFyQ29kZSgp
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1
aWx0aW5zIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCmluZGV4
IDk2NDcxNjM2ZmEzZTdjZWMwYTI2YmJhZjU2YTI4ZDkyODIxMGM1NjcuLjIyMTMyN2I4M2NkY2Vi
ZTc2MTE5MTZkY2EyOTM5MjlhMGMyNjZmZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2Vu
ZXJhdGUtanMtYnVpbHRpbnMKQEAgLTM2LDYgKzM2LDggQEAgcGFyc2VyID0gYXJncGFyc2UuQXJn
dW1lbnRQYXJzZXIoKQogcGFyc2VyLmFkZF9hcmd1bWVudCgnaW5wdXRfZmlsZScsIG5hcmdzPScq
JywgaGVscD0nSW5wdXQgSlMgZmlsZXMgd2hpY2ggYnVpbHRpbnMgZ2VuZXJhdGVkIGZyb20nKQog
cGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbnB1dC1kaXJlY3RvcnknLCBoZWxwPSdBbGwgSlMgZmls
ZXMgd2lsbCBiZSB1c2VkIGFzIGlucHV0IGZyb20gdGhpcyBkaXJlY3RvcnkuJykKIHBhcnNlci5h
ZGRfYXJndW1lbnQoJy0tb3V0cHV0JywgaGVscD0ncGF0aCB0byBvdXRwdXQgY3BwIG9yIGggZmls
ZScpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXByZWZpeCcsIGRlZmF1bHQ9J0pTQycsIGhlbHA9
J3ByZWZpeCB1c2VkIGZvciBwdWJsaWMgbWFjcm9zJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0t
bmFtZXNwYWNlJywgZGVmYXVsdD0nSlNDJywgaGVscD0nQysrIG5hbWVzcGFjZScpCiBhcmdzID0g
cGFyc2VyLnBhcnNlX2FyZ3MoKQogCiBjb3B5cmlnaHRUZXh0ID0gIiIiICoKQEAgLTE1Myw2ICsx
NTUsOSBAQCBkZWYgZ2V0RnVuY3Rpb25zKHNvdXJjZSk6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
RnVuY3Rpb24oZnVuY3Rpb25OYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25Jc0NvbnN0cnVjdG9yLCBm
dW5jdGlvblBhcmFtZXRlcnMpKQogICAgIHJldHVybiByZXN1bHQKIAorZGVmIHdyaXRlSW5jbHVk
ZURpcmVjdGl2ZXMod3JpdGVyLCBoZWFkZXJOYW1lcyk6CisgICAgZm9yIGhlYWRlck5hbWUgaW4g
aGVhZGVyTmFtZXM6CisgICAgICAgIHdyaXRlci53cml0ZSgiI2luY2x1ZGUgIiArIGhlYWRlck5h
bWUgKyAiXG4iKQogCiBkZWYgZ2VuZXJhdGVDb2RlKHNvdXJjZSk6CiAgICAgaW5wdXRGaWxlID0g
b3Blbihzb3VyY2UsICJyIikKQEAgLTE3OSw2ICsxODQsMTQgQEAgZm9yIGZpbGUgaW4gYXJncy5p
bnB1dF9maWxlOgogICAgICAgICAoYmFzZU5hbWUsIGZ1bmN0aW9ucywgb2JqZWN0Q29weXJpZ2h0
cykgPSBnZW5lcmF0ZUNvZGUoZmlsZSkKICAgICAgICAgY29weXJpZ2h0cy5leHRlbmQob2JqZWN0
Q29weXJpZ2h0cykKICAgICAgICAgYnVpbHRpbnMuYXBwZW5kKChiYXNlTmFtZSwgZnVuY3Rpb25z
KSkKK25hbWVzcGFjZSA9IGFyZ3MubmFtZXNwYWNlCittYWNyb1ByZWZpeCA9IGFyZ3MucHJlZml4
CitzY29wZU5hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoYXJncy5vdXRw
dXQpKVswXQoraW5jbHVkZUd1YXJkID0gc2NvcGVOYW1lICsgIl9IIgoraGVhZGVyTmFtZSA9IHNj
b3BlTmFtZSArICIuaCIKKworaGVhZGVySW5jbHVkZXMgPSBbIlwiQnVpbHRpblV0aWxzLmhcIiJd
IGlmIG5hbWVzcGFjZSA9PSAiSlNDIiBlbHNlIFsiPGJ1aWx0aW5zL0J1aWx0aW5VdGlscy5oPiJd
Citjb250ZW50SW5jbHVkZXMgPSBbIlwiQnVpbHRpbkV4ZWN1dGFibGVzLmhcIiIsICJcIkV4ZWN1
dGFibGUuaFwiIiwgIlwiSlNDZWxsSW5saW5lcy5oXCIiLCAiXCJWTS5oXCIiXSBpZiBuYW1lc3Bh
Y2UgPT0gIkpTQyIgZWxzZSBbIjxydW50aW1lL0V4ZWN1dGFibGUuaD4iLCAiPHJ1bnRpbWUvSlND
ZWxsSW5saW5lcy5oPiIsICI8cnVudGltZS9WTS5oPiIsICJcIldlYkNvcmVKU0NsaWVudERhdGEu
aFwiIl0KIAogY29weXJpZ2h0cyA9IGxpc3Qoc2V0KGNvcHlyaWdodHMpKQogCkBAIC0xOTIsMjMg
KzIwNSwyMSBAQCBjb3B5cmlnaHRUZXh0ID0gIi8qXG4iICsgY29weXJpZ2h0Qm9keSArIGNvcHly
aWdodFRleHQKIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIiIiVzCiAlcwogCi0jaWZuZGVmIEpTQ0J1
aWx0aW5zX0gKLSNkZWZpbmUgSlNDQnVpbHRpbnNfSAorI2lmbmRlZiAlcworI2RlZmluZSAlcwog
Ci0jaW5jbHVkZSAiQ29uc3RydWN0QWJpbGl0eS5oIgorIiIiICUgKGdlbmVyYXRvclN0cmluZywg
Y29weXJpZ2h0VGV4dCwgaW5jbHVkZUd1YXJkLCBpbmNsdWRlR3VhcmQpKQogCi1uYW1lc3BhY2Ug
SlNDIHsKK3dyaXRlSW5jbHVkZURpcmVjdGl2ZXMoYnVpbHRpbnNIZWFkZXIsIGhlYWRlckluY2x1
ZGVzKQogCi1jbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBJZGVudGlmaWVyOwotY2xh
c3MgSlNHbG9iYWxPYmplY3Q7Ci1jbGFzcyBTb3VyY2VDb2RlOwotY2xhc3MgVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGU7Ci1jbGFzcyBWTTsKK2J1aWx0aW5zSGVhZGVyLndyaXRlKCIiIgorbmFt
ZXNwYWNlIEpTQyB7CisgICAgY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOworfQogCi1GdW5jdGlv
bkV4ZWN1dGFibGUqIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKFZNJiwgVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJik7CituYW1lc3BhY2UgJXMgewogCi0iIiIg
JSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmlnaHRUZXh0KSkKKyIiIiAlIG5hbWVzcGFjZSkKIAog
Y29kZVJlZmVyZW5jZXMgPSBbXQogCkBAIC0yMjIsNTggKzIzMyw1OSBAQCBmb3IgKG9iamVjdE5h
bWUsIGZ1bmN0aW9ucykgaW4gYnVpbHRpbnM6CiAgICAgICAgIGNvZGVSZWZlcmVuY2VzLmFwcGVu
ZCgobWFuZ2xlZE5hbWUsIGZ1bmN0aW9uKSkKICAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUo
ImV4dGVybiBjb25zdCBjaGFyKiBzXyVzO1xuIiAlIG1hbmdsZWROYW1lKQogICAgICAgICBidWls
dGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IGludCBzXyVzTGVuZ3RoO1xuIiAlIG1hbmds
ZWROYW1lKQotICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IENvbnN0
cnVjdEFiaWxpdHkgc18lc0NvbnN0cnVjdEFiaWxpdHk7XG4iICUgbWFuZ2xlZE5hbWUpCisgICAg
ICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmls
aXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5O1xuIiAlIG1hbmdsZWROYW1lKQogICAgIGJ1aWx0aW5z
SGVhZGVyLndyaXRlKCJcbiIpCi0gICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlND
X0ZPUkVBQ0hfJXNfQlVJTFRJTihtYWNybykgXFxcbiIgJSBvYmplY3ROYW1lLnJlcGxhY2UoIi4i
LCAiXyIpLnVwcGVyKCkpCisgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9S
RUFDSF8lc19CVUlMVElOKG1hY3JvKSBcXFxuIiAlIChtYWNyb1ByZWZpeCwgb2JqZWN0TmFtZS5y
ZXBsYWNlKCIuIiwgIl8iKS51cHBlcigpKSkKICAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25z
OgogICAgICAgICBtYW5nbGVkTmFtZSA9IGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkK
ICAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcywgJXMsICVkKSBcXFxu
IiAlIChmdW5jdGlvbi5uYW1lLCBtYW5nbGVkTmFtZSwgbGVuKGZ1bmN0aW9uLnBhcmFtZXRlcnMp
KSkKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiXG4iKQogICAgIGZvciBmdW5jdGlvbiBpbiBm
dW5jdGlvbnM6Ci0gICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19CVUlM
VElOXyVzIDFcbiIgJSBmdW5jdGlvbi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkpCisg
ICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0JVSUxUSU5fJXMgMVxuIiAl
IChtYWNyb1ByZWZpeCwgZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKS51cHBlcigpKSkK
ICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiXG5cbiIpCiBuYW1lcyA9IFtdCi1idWlsdGluc0hl
YWRlci53cml0ZSgiI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOKG1hY3JvKVxcXG4iKQorYnVp
bHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOKG1hY3JvKVxcXG4i
ICUgbWFjcm9QcmVmaXgpCiBmb3IgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVm
ZXJlbmNlczoKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzLCAlcywgc18l
c0xlbmd0aCkgXFxcbiIgJSAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24ubmFtZSwgY29kZVJlZmVy
ZW5jZSkpCiAgICAgbmFtZXMuYXBwZW5kKGZ1bmN0aW9uLm5hbWUpCiAKIGJ1aWx0aW5zSGVhZGVy
LndyaXRlKCJcblxuIikKLWJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19GT1JFQUNI
X0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFxcbiIpCitidWlsdGluc0hlYWRlci53cml0
ZSgiI2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShtYWNybykgXFxcbiIg
JSBtYWNyb1ByZWZpeCkKIGZvciBuYW1lIGluIHNvcnRlZChzZXQobmFtZXMpKToKICAgICBidWls
dGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzKSBcXFxuIiAlIG5hbWUpCiBidWlsdGluc0hl
YWRlci53cml0ZSgiIiIKIAotI2RlZmluZSBKU0NfREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihj
b2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAotICAgIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihWTSYpOworI2RlZmluZSBERUNMQVJFX0JVSUxU
SU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCisg
ICAgSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYp
OwogCi1KU0NfRk9SRUFDSF9CVUlMVElOKEpTQ19ERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKQot
I3VuZGVmIEpTQ19ERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SCislc19GT1JFQUNIX0JVSUxUSU4o
REVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUikKKyN1bmRlZiBERUNMQVJFX0JVSUxUSU5fR0VORVJB
VE9SCiAKLSNkZWZpbmUgSlNDX0JVSUxUSU5fRVhJU1RTKG5hbWUpIGRlZmluZWQgSlNDX0JVSUxU
SU5fICMjIG5hbWUKKyNkZWZpbmUgJXNfQlVJTFRJTl9FWElTVFMobmFtZSkgZGVmaW5lZCAlc19C
VUlMVElOXyAjIyBuYW1lCiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gJXMKIAotIiIiKQorIiIi
ICUgKG1hY3JvUHJlZml4LCBtYWNyb1ByZWZpeCwgbWFjcm9QcmVmaXgsIGluY2x1ZGVHdWFyZCkp
CiAKIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIiJXMKICVzCiAKICNpbmNsdWRlICJj
b25maWcuaCIKIAotI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCisjaW5jbHVkZSAiJXMiCiAKLSNp
bmNsdWRlICJCdWlsdGluRXhlY3V0YWJsZXMuaCIKLSNpbmNsdWRlICJDb25zdHJ1Y3RBYmlsaXR5
LmgiCi0jaW5jbHVkZSAiRXhlY3V0YWJsZS5oIgotI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIK
LSNpbmNsdWRlICJWTS5oIgorIiIiICAlIChnZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQs
IGhlYWRlck5hbWUpKQorCit3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSW1wbGVtZW50
YXRpb24sIGNvbnRlbnRJbmNsdWRlcykKKworYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgi
IiIKK25hbWVzcGFjZSAlcyB7CisKKyIiIiAgJSAobmFtZXNwYWNlKSkKIAotbmFtZXNwYWNlIEpT
QyB7CiAKLSIiIiAgJSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmlnaHRUZXh0KSkKIAogZm9yIChj
b2RlUmVmZXJlbmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAgc291cmNlID0g
ZnVuY3Rpb24uc291cmNlCkBAIC0yODUsMjMgKzI5NywzMyBAQCBmb3IgKGNvZGVSZWZlcmVuY2Us
IGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJlbmNlczoKICAgICAgICAgc291cmNlID0gc291cmNlICsg
KCIgICAgXCIlc1xcblwiIFxcXG4iICUgbGluZSkKICAgICBidWlsdGluc0ltcGxlbWVudGF0aW9u
LndyaXRlKCJjb25zdCBjaGFyKiBzXyVzID1cbiVzO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIHNv
dXJjZSkpCiAgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgaW50IHNfJXNM
ZW5ndGggPSAlZDtcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBzb3VyY2VMZW5ndGggKyAxKSkgIyAr
IDEgZm9yIFxuCi0gICAgY29uc3RydWN0QWJpbGl0eSA9ICJDb25zdHJ1Y3RBYmlsaXR5OjpDYW5u
b3RDb25zdHJ1Y3QiCisgICAgY29uc3RydWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0cnVjdEFiaWxp
dHk6OkNhbm5vdENvbnN0cnVjdCIKICAgICBpZiBmdW5jdGlvbi5pc0NvbnN0cnVjdG9yOgotICAg
ICAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkNvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCIK
LSAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBDb25zdHJ1Y3RBYmlsaXR5
IHNfJXNDb25zdHJ1Y3RBYmlsaXR5ID0gJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgY29uc3Ry
dWN0QWJpbGl0eSkpICMgKyAxIGZvciBcbgorICAgICAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpT
Qzo6Q29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0IgorICAgIGJ1aWx0aW5zSW1wbGVtZW50
YXRpb24ud3JpdGUoImNvbnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJp
bGl0eSA9ICVzO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAjICsg
MSBmb3IgXG4KIAogYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIKLSNkZWZpbmUgSlND
X0RFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVu
dENvdW50KSBcXAotRnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKFZNJiB2
bSkgXFwKLXsgXFwKLSAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1l
IyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFt
ZSMjU291cmNlKCkpOyBcXAotfQorI2RlZmluZSBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29k
ZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKK0pTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6Vk0mIHZtKSBcXAorIiIiKTsKIAotSlND
X0ZPUkVBQ0hfQlVJTFRJTihKU0NfREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SKQotI3VuZGVmIEpT
Q19ERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKK2lmIChuYW1lc3BhY2UgPT0gIkpTQyIpOgorICAg
IGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIie1xcCisgICAgcmV0dXJuIHZtLmJ1aWx0
aW5FeGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWls
dGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgXFwKKyIiIikKK2Vsc2U6Cisg
ICAgYnVpbHRpbk5hbWUgPSBzY29wZU5hbWVbMF0ubG93ZXIoKSArIHNjb3BlTmFtZVsxOl0KKyAg
ICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIntcXAorICAgIFdlYkNvcmVKU0NsaWVu
dERhdGEqIGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxXZWJDb3JlSlNDbGllbnREYXRhKj4odm0u
Y2xpZW50RGF0YSk7IFxcCisgICAgcmV0dXJuIGNsaWVudERhdGEtPiVzKCkuY29kZU5hbWUjI0V4
ZWN1dGFibGUoKS0+bGluayh2bSwgY2xpZW50RGF0YS0+JXMoKS5jb2RlTmFtZSMjU291cmNlKCkp
OyBcXAorIiIiJSAoYnVpbHRpbk5hbWUsIGJ1aWx0aW5OYW1lKSkKKworYnVpbHRpbnNJbXBsZW1l
bnRhdGlvbi53cml0ZSgiIiJ9Cislc19GT1JFQUNIX0JVSUxUSU4oREVGSU5FX0JVSUxUSU5fR0VO
RVJBVE9SKQorI3VuZGVmIERFRklORV9CVUlMVElOX0dFTkVSQVRPUgogfQogCi0iIiIpCisiIiIl
IChtYWNyb1ByZWZpeCkpCiAKIGJ1aWx0aW5zSGVhZGVyLmNsb3NlKCkKIGJ1aWx0aW5zSW1wbGVt
ZW50YXRpb24uY2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzZTQ0ZjI3YWVjNDE3MmZk
NDJjNmMxMGIxN2IwMDdhN2EyZWYyNDYyLi5lNTZkMDE2MmFmZTg1MGQxNmU1YWJiZTkwZDJkMDcz
ZjYwYTFmNTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzMzNyw2ICszMzM3LDEwIEBAIHNl
dChXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSAke0RFUklWRURfU09VUkNFU19X
RUJDT1JFX0RJUn0vV29ya2VyR2xvCiBzZXQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlkbCkKIHNldChJRExfQVRUUklCVVRFU19GSUxF
ICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQpCiAKK3Nl
dChXRUJDT1JFX0pTX0JVSUxUSU5TCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmpzCispCisKIFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9F
WElTVFMoKQogCiAjIEdlbmVyYXRlIEluc3BlY3Rvck92ZXJsYXlQYWdlLmgKQEAgLTM1NTYsNiAr
MzU2MCwyMSBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUwog
ICAgICR7U1VQUExFTUVOVEFMX0RFUEVOREVOQ1lfRklMRX0KICAgICAke0FERElUSU9OQUxfQklO
RElOR1NfREVQRU5ERU5DSUVTfSkKIAorIyBXZWJDb3JlIEpTIEJ1aWx0aW5zCitmb3JlYWNoIChf
YnVpbHRpbmpzICR7V0VCQ09SRV9KU19CVUlMVElOU30pCisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBv
bmVudChfbmFtZSAke19idWlsdGluanN9IE5BTUVfV0UpCisgICAgYWRkX2N1c3RvbV9jb21tYW5k
KAorICAgICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9
QnVpbHRpbnMuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlu
cy5jcHAKKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS9nZW5lcmF0ZS1qcy1idWlsdGlucworICAgICAgICBERVBFTkRTICR7X2J1aWx0aW5qc30KKyAg
ICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMgLS1pbnB1dCAke19idWlsdGluanN9IC0tb3V0cHV0
X2RpciAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0gLS13ZWJjb3JlX2RpciAke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0KKyAgICAgICAgVkVSQkFUSU0pCisgICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCisgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8k
e19uYW1lfUJ1aWx0aW5zLmgKKyAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
LyR7X25hbWV9QnVpbHRpbnNXcmFwcGVyLmgKKyAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9LyR7X25hbWV9QnVpbHRpbnMuY3BwCisgICAgKQorZW5kZm9yZWFjaCAoKQogCiBB
RERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vaHRt
bC9IVE1MVHJlZUJ1aWxkZXIuY3BwIE1hdGhNTE5hbWVzLmNwcCkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggYWUxMGQ1OTQ3N2RkOGRhMGQ4YmVkNzhmZDgzY2ExYTNkYTBmOWNh
Yi4uMDc0YjBkNWMxNGQ2Njc2OGQ0YTBlNGRkMzlmODk3MzE3ZmIxMjExYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC03OTIsNiArNzkyLDcgQEAgYWxsIDogXAogICAgICQoV09S
S0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKEpTX0RPTV9IRUFERVJT
KSBcCiAgICAgJChXRUJfRE9NX0hFQURFUlMpIFwKKyAgICAkKFdFQkNPUkVfSlNfQlVJTFRJTlMp
IFwKICAgICBcCiAgICAgQ1NTR3JhbW1hci5jcHAgXAogICAgIENTU1Byb3BlcnR5TmFtZXMuY3Bw
IFwKQEAgLTEyNDYsNiArMTI0NywxNiBAQCBXZWJSZXBsYXlJbnB1dHMuaCA6ICQoSU5QVVRfR0VO
RVJBVE9SX1NQRUNJRklDQVRJT05TKSAkKElOUFVUX0dFTkVSQVRPUl9TQ1JJUFRTKQogCiAtaW5j
bHVkZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKKyMgV2ViQ29yZSBKUyBCdWlsdGlucwor
CitXRUJDT1JFX0pTX0JVSUxUSU5TID0gXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmpzCisKK2FsbCA6ICQoV0VCQ09SRV9KU19CVUlMVElOUzolLmpzPSVC
dWlsdGlucy5oKQorCislQnVpbHRpbnMuaDogJS5qcworCSQoUFlUSE9OKSAkKFdlYkNvcmUpL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5wdXQgJDwgLS13ZWJjb3JlX2RpciAkKFdlYkNvcmUpCisK
ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICMgTWFjLXNwZWNpZmljIHJ1bGVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9idWlsdGlucy9CdWlsdGlu
VXRpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J1aWx0aW5zL0J1aWx0
aW5VdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNzQxNGI4MzA5MzhkZDZjNWE4NmIyNWJlNmRmNjc1MjU2
ODVjYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9idWlsdGlucy9CdWlsdGluVXRpbHMuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29y
ZV9GV0RfQnVpbHRpblV0aWxzX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfQnVpbHRpblV0aWxzX2gK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9CdWlsdGluVXRpbHMuaD4KKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUvVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J5
dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDcxMmQ5YmYw
NTg4NGYzZjc5OTkyOWVkNmMxNDVmMGIzZTVlMTY5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1VubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGVfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdI
ZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0QWJpbGl0eS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvcnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDRkY2Fk
Y2M5M2ZiNmU1Nzk3OTQxYjI1Y2QwNGUxMjk1MDVjYmFjNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0QWJpbGl0eS5o
CkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9Db25zdHJ1Y3RBYmlsaXR5X2gK
KyNkZWZpbmUgV2ViQ29yZV9GV0RfQ29uc3RydWN0QWJpbGl0eV9oCisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQ29uc3RydWN0QWJpbGl0eS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAppbmRleCA4NjNjMjY0MzE4YzU0
MTIwYTcwODg5MWExY2RhYzUzZjA2OGNiMGQwLi42YWMyNTk1YWFiZDViYWY2NTQ4Y2ViY2Q4YTMy
YWIwMGRhODBkMjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5pZGwKQEAgLTM2LDcgKzM2LDcgQEAKICAgICBbUmFpc2VzRXhjZXB0aW9u
XSBQcm9taXNlIGNhbmNlbChbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIGFueSByZWFzb24p
OwogICAgIFtSYWlzZXNFeGNlcHRpb25dIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGdldFJlYWRlcigp
OwogICAgIFtDdXN0b21dIFByb21pc2UgcGlwZVRvKGFueSBzdHJlYW1zLCBhbnkgb3B0aW9ucyk7
Ci0gICAgW0N1c3RvbV0gT2JqZWN0IHBpcGVUaHJvdWdoKGFueSBkZXN0LCBhbnkgb3B0aW9ucyk7
CisgICAgW0pTQnVpbHRpbl0gT2JqZWN0IHBpcGVUaHJvdWdoKGFueSBkZXN0LCBhbnkgb3B0aW9u
cyk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBsb2NrZWQ7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdjNjMyZjU4ZDFiZGY1Yjk3NWQ1MmQ2Yzc0ZGYzNzBiN2NhYjZjYzIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMK
QEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJbmMuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Z1bmN0aW9uIHBpcGVU
aHJvdWdoKHN0cmVhbXMsIG9wdGlvbnMpCit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgdGhp
cy5waXBlVG8oc3RyZWFtcy53cml0YWJsZSwgb3B0aW9ucyk7CisgICAgcmV0dXJuIHN0cmVhbXMu
cmVhZGFibGU7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jl
YWRhYmxlU3RyZWFtQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVh
ZGFibGVTdHJlYW1DdXN0b20uY3BwCmluZGV4IDljZjA5NmJhYmE2MjA4MDVjMTU1MWRjOWI1ZWJj
YmE5ZGNhNGUzMjIuLjJiNjYzY2U3OGRlZGY3MzZiMjJmYzM5MTA1NTI0YjJkYTNiZWQwMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1D
dXN0b20uY3BwCkBAIC01MywxMiArNTMsNiBAQCBKU1ZhbHVlIEpTUmVhZGFibGVTdHJlYW06OnBp
cGVUbyhFeGVjU3RhdGUmIHN0YXRlKQogICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0
aW9uKCZzdGF0ZSwgZXJyb3IpOwogfQogCi1KU1ZhbHVlIEpTUmVhZGFibGVTdHJlYW06OnBpcGVU
aHJvdWdoKEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgSlNWYWx1ZSBlcnJvciA9IGNyZWF0ZUVy
cm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJwaXBlVGhyb3VnaCBpcyBub3QgaW1wbGVtZW50ZWQi
KSk7Ci0gICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBlcnJvcik7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNDMwMmQ2OGU1Yzhj
NmQ3ODdkNDcyNjI0MTRiY2ViOThkMjJlMDE5ZS4uYWM4OWFmM2I1NmNjYjY3NDFiNTQzMmI1M2Ix
ZmJmMWYwYTA1Y2U3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVKU0NsaWVudERhdGEuaApAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBXZWJDb3JlSlNDbGll
bnREYXRhX2gKIAogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIlJlYWRh
YmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVR5cGVkQXJyYXlD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CkBAIC0zNSw3ICszNiwxMCBAQCBjbGFzcyBXZWJDb3JlSlNDbGllbnREYXRhIDogcHVi
bGljIEpTQzo6Vk06OkNsaWVudERhdGEgewogICAgIGZyaWVuZCB2b2lkIGluaXROb3JtYWxXb3Js
ZENsaWVudERhdGEoSlNDOjpWTSopOwogCiBwdWJsaWM6Ci0gICAgV2ViQ29yZUpTQ2xpZW50RGF0
YSgpCisgICAgV2ViQ29yZUpTQ2xpZW50RGF0YShKU0M6OlZNJiB2bSkKKyNpZiBFTkFCTEUoU1RS
RUFNU19BUEkpCisgICAgICAgIDogbV9yZWFkYWJsZVN0cmVhbUJ1aWx0aW5zKCZ2bSkKKyNlbmRp
ZgogICAgIHsKICAgICB9CiAKQEAgLTcxLDE0ICs3NSwyMiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
d29ybGRTZXQucmVtb3ZlKCZ3b3JsZCk7CiAgICAgfQogCisjaWYgRU5BQkxFKFNUUkVBTVNfQVBJ
KQorICAgIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyJiByZWFkYWJsZVN0cmVhbUJ1aWx0
aW5zKCkgeyByZXR1cm4gbV9yZWFkYWJsZVN0cmVhbUJ1aWx0aW5zOyB9CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICBIYXNoU2V0PERPTVdyYXBwZXJXb3JsZCo+IG1fd29ybGRTZXQ7CiAgICAgUmVm
UHRyPERPTVdyYXBwZXJXb3JsZD4gbV9ub3JtYWxXb3JsZDsKKworI2lmIEVOQUJMRShTVFJFQU1T
X0FQSSkKKyAgICBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciBtX3JlYWRhYmxlU3RyZWFt
QnVpbHRpbnM7CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIGluaXROb3JtYWxXb3JsZENsaWVu
dERhdGEoSlNDOjpWTSogdm0pCiB7Ci0gICAgV2ViQ29yZUpTQ2xpZW50RGF0YSogd2ViQ29yZUpT
Q2xpZW50RGF0YSA9IG5ldyBXZWJDb3JlSlNDbGllbnREYXRhOworICAgIFdlYkNvcmVKU0NsaWVu
dERhdGEqIHdlYkNvcmVKU0NsaWVudERhdGEgPSBuZXcgV2ViQ29yZUpTQ2xpZW50RGF0YSgqdm0p
OwogICAgIHZtLT5jbGllbnREYXRhID0gd2ViQ29yZUpTQ2xpZW50RGF0YTsgLy8gflZNIGRlbGV0
ZXMgdGhpcyBwb2ludGVyLgogICAgIHdlYkNvcmVKU0NsaWVudERhdGEtPm1fbm9ybWFsV29ybGQg
PSBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZSgqdm0sIHRydWUpOwogICAgIHZtLT5tX3R5cGVkQXJy
YXlDb250cm9sbGVyID0gYWRvcHRSZWYobmV3IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCmluZGV4IGVjYjJkZjc4OTA5NTI0YjQwMjEzZjU2MTNjNGJjNDhiMTE4
YTUyNmUuLjI1MWNkYjgyZDIzYjcxZTk1M2QwMDhlZGYyYjlkYWRhNjlmMjQyZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09i
amVjdC5wbQpAQCAtMzczLDYgKzM3MywxMCBAQCBzdWIgU2tpcEZ1bmN0aW9uIHsKICAgICAgICAg
cmV0dXJuIDE7CiAgICAgfQogCisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0pIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZWEzNTYwNWI0NjU0MjZhNDQzMDdhODU1OWI1
ODQyNmUzMDA5Yzg0Yi4uMmRiNjk1NzBjMDk1NzEzN2ZhYjI2ZTM1YmZhYWQ3ZjMzMmNiYTA4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KQEAgLTU0OCw2ICs1NDgsMTYgQEAgc3ViIEdldEF0dHJpYnV0ZVNldHRlck5hbWUKIHN1
YiBHZXRGdW5jdGlvbk5hbWUKIHsKICAgICBteSAoJGNsYXNzTmFtZSwgJGZ1bmN0aW9uKSA9IEBf
OworCisgICAgbXkgJHNjb3BlTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9OworICAgIGlmICghJHNjb3BlTmFtZSkgeworICAg
ICAgICAkc2NvcGVOYW1lID0gc3Vic3RyICRjbGFzc05hbWUsIDI7CisgICAgfQorCisgICAgaWYg
KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0p
IHsKKyAgICAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRzY29wZU5hbWUp
IC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUp
IC4gIkNvZGVHZW5lcmF0b3IiOworICAgIH0KKwogICAgIG15ICRraW5kID0gJGZ1bmN0aW9uLT5p
c1N0YXRpYyA/ICJDb25zdHJ1Y3RvciIgOiAiUHJvdG90eXBlIjsKICAgICByZXR1cm4gJGNvZGVH
ZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAka2luZCAuICJGdW5jdGlvbiIgLiAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CiB9
CkBAIC0xNzMzLDYgKzE3NDMsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIG15
ICRpbXBsVHlwZSA9IEdldEltcGxDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOwogICAgIEFkZElu
Y2x1ZGVzRm9yVHlwZUluSW1wbCgkaW1wbFR5cGUpOwogCisgICAgQWRkSW5jbHVkZXNGb3JKU0J1
aWx0aW5NZXRob2RzKCRpbnRlcmZhY2UpOworCiAgICAgQGltcGxDb250ZW50ID0gKCk7CiAKICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIlxudXNpbmcgbmFtZXNwYWNlIEpTQztcblxuIik7CkBAIC0x
NzQ5LDYgKzE3NjEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
bmV4dCBpZiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSAmJiAkZnVuY3Rpb24tPntvdmVybG9h
ZEluZGV4fSA+IDE7CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhlYWRlciJ9OwogICAgICAgICAg
ICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbUJpbmRpbmcifTsKKyAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifTsKIAogICAgICAgICAgICAgbXkgJG5l
ZWRzQXBwbGVDb3B5cmlnaHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkFwcGxlQ29weXJpZ2h0In07CiAgICAgICAgICAgICBpZiAoJG5lZWRzQXBwbGVDb3B5
cmlnaHQpIHsKQEAgLTE5MDcsMTIgKzE5MjAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTGVuZ3RoID0gR2V0RnVuY3Rpb25MZW5ndGgoJGZ1
bmN0aW9uKTsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRmdW5jdGlvbkxlbmd0aCk7
CiAKLSAgICAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwotICAgICAgICAgICAgcHVzaChAc3Bl
Y2lhbHMsICJEb250RGVsZXRlIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJOb3REZWxldGFibGUifTsKLSAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAi
RG9udEVudW0iKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ik5vdEVudW1lcmFibGUifTsKLSAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiSlNDOjpGdW5j
dGlvbiIpOwotICAgICAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2lu
KCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwotICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxz
LCAkc3BlY2lhbCk7CisgICAgICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsIENvbXB1dGVGdW5j
dGlvblNwZWNpYWwoJGludGVyZmFjZSwgJGZ1bmN0aW9uKSk7CiAKICAgICAgICAgICAgIG15ICRj
b25kaXRpb25hbCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q29uZGl0aW9uYWwifTsKICAgICAgICAgICAgIGlmICgkY29uZGl0aW9uYWwpIHsKQEAgLTE5ODMs
MTQgKzE5OTEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBteSAkZnVu
Y3Rpb25MZW5ndGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkZnVuY3Rpb24pOwogICAgICAgICBwdXNo
KEBoYXNoVmFsdWUyLCAkZnVuY3Rpb25MZW5ndGgpOwogCi0gICAgICAgIG15IEBzcGVjaWFscyA9
ICgpOwotICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSBpZiAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdERlbGV0YWJsZSJ9Ci0gICAgICAg
ICAgIHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVW5mb3Jn
ZWFibGUifQotICAgICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VW5mb3JnZWFibGUifTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RW51bSIpIGlmICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVyYWJsZSJ9
OwotICAgICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6RnVuY3Rpb24iKTsKLSAgICAgICAgbXkg
JHNwZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAi
OwotICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKKyAgICAgICAgcHVzaChA
aGFzaFNwZWNpYWxzLCBDb21wdXRlRnVuY3Rpb25TcGVjaWFsKCRpbnRlcmZhY2UsICRmdW5jdGlv
bikpOwogCiAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKICAgICAgICAgaWYgKCRjb25kaXRp
b25hbCkgewpAQCAtMjc5MCw2ICsyNzkxLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgbXkgJGluQXBwbGVDb3B5cmlnaHQgPSAwOwogICAgICAgICBmb3JlYWNoIG15ICRm
dW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAgICAgICAgICAgICBuZXh0IGlm
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQmluZGlu
ZyJ9OworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9OwogICAgICAgICAgICAgbXkgJG5lZWRzQXBwbGVDb3B5
cmlnaHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFwcGxl
Q29weXJpZ2h0In07CiAgICAgICAgICAgICBpZiAoJG5lZWRzQXBwbGVDb3B5cmlnaHQpIHsKICAg
ICAgICAgICAgICAgICBpZiAoISRpbkFwcGxlQ29weXJpZ2h0KSB7CkBAIC00MjUyLDYgKzQyNTQs
OCBAQCBzdWIgR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5CiAgICAgICAgIAogICAgICAgICBp
ZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0Z1bmN0aW9uLykgewogICAgICAgICAgICAgJGZpcnN0
VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4iOworICAgICAgICB9IGVs
c2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQnVpbHRpbi8pIHsKKyAgICAgICAgICAgICRmaXJz
dFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4iOwogICAgICAgICB9
IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyLykgewogICAgICAg
ICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICIiOwogICAgICAgICB9IGVsc2UgewpAQCAtNTAwNCw0
ICs1MDA4LDUxIEBAIHN1YiBIZWFkZXJOZWVkc1Byb3RvdHlwZURlY2xhcmF0aW9uCiAgICAgcmV0
dXJuIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJKU0N1c3RvbU5hbWVkR2V0dGVyT25Qcm90b3R5cGUifSB8fCAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21EZWZpbmVPd25Qcm9wZXJ0eU9uUHJv
dG90eXBlIn07CiB9CiAKK3N1YiBDb21wdXRlRnVuY3Rpb25TcGVjaWFsCit7CisgICAgbXkgJGlu
dGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0OworCisgICAgbXkgQHNw
ZWNpYWxzID0gKCk7CisgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRlIikgaWYgJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3REZWxldGFibGUifQorICAg
ICAgIHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVW5mb3Jn
ZWFibGUifQorICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJVbmZv
cmdlYWJsZSJ9OworICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFibGUifTsKKyAgICBp
ZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4i
fSkgeworICAgICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6QnVpbHRpbiIpOworICAgIH0KKyAg
ICBlbHNlIHsKKyAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OkZ1bmN0aW9uIik7CisgICAg
fQorICAgIHJldHVybiAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDog
IjAiOworfQorCitzdWIgVXNlSlNCdWlsdGlucworeworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlm
dDsKKyAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7
CisgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gMAorfQorCitzdWIgQWRkSW5jbHVkZXNGb3JKU0J1aWx0aW5NZXRob2RzKCkK
K3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisKKyAgICBmb3JlYWNoIG15ICRmdW5jdGlv
biAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CisgICAgICAgIG5leHQgdW5sZXNzICgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KTsKKyAg
ICAgICAgbXkgJHNjb3BlTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9OworICAgICAgICBpZiAoISRzY29wZU5hbWUpIHsKKyAg
ICAgICAgICAgICRzY29wZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOworICAgICAgICB9CisgICAg
ICAgIEFkZFRvSW1wbEluY2x1ZGVzKCRzY29wZU5hbWUgLiAiQnVpbHRpbnMuaCIsICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifSk7CisKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCit9CisKIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCA5ZTFhNTVhZmQyYzhmOTg0
YjBiMzBmY2NiYzUzYTEzNjczZWVkMmE5Li41ZTU4NDhlZWEyZDAxMDhjMjJmZGJjOWQwZDlmZTI2
NDk1ZTA3OTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy50eHQKQEAgLTczLDYgKzczLDcgQEAgSW1wbGVtZW50ZWRBcz0qCiBJbml0aWFs
aXplZEJ5RXZlbnRDb25zdHJ1Y3RvcgogSW50ZXJmYWNlTmFtZT0qCiBJc1dlYWtDYWxsYmFjawor
SlNCdWlsdGluCiBKU0N1c3RvbURlZmluZU93blByb3BlcnR5CiBKU0N1c3RvbURlZmluZU93blBy
b3BlcnR5T25Qcm90b3R5cGUKIEpTQ3VzdG9tRmluYWxpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggMmUzNTVh
Zjk3N2I0NDkzZmVjNWNhZDc3NWQwNjNhYWI0MGMxZjQyYS4uYTAyYWU5ZWM4NmNjYTdjYjcyN2Y2
YmMyOWE0YzdiNDgxN2Y2YTVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRlc3ROb2RlLmgiCiAjaW5jbHVkZSAiVGVzdE9i
ai5oIgorI2luY2x1ZGUgIlRlc3RPYmpCdWlsdGlucy5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2lu
Y2x1ZGUgImJvb2wuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgpAQCAtNjIy
LDYgKzYyMyw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5
cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJjdXN0b21NZXRob2RXaXRoQXJncyIsIEpTQzo6RnVu
Y3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyksIChpbnRw
dHJfdCkgKDMpIH0gfSwKICAgICB7ICJjdXN0b21CaW5kaW5nTWV0aG9kIiwgSlNDOjpGdW5jdGlv
biwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUJpbmRpbmdNZXRob2QpLCAoaW50cHRyX3Qp
ICgwKSB9IH0sCiAgICAgeyAiY3VzdG9tQmluZGluZ01ldGhvZFdpdGhBcmdzIiwgSlNDOjpGdW5j
dGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUJpbmRpbmdNZXRob2RXaXRoQXJncyks
IChpbnRwdHJfdCkgKDMpIH0gfSwKKyAgICB7ICJqc0J1aWx0aW5NZXRob2QiLCBKU0M6OkJ1aWx0
aW4sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9y
Pih0ZXN0T2JqSnNCdWlsdGluTWV0aG9kQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkgKDApIH0g
fSwKKyAgICB7ICJqc0J1aWx0aW5NZXRob2RXaXRoQXJncyIsIEpTQzo6QnVpbHRpbiwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KHRlc3RPYmpK
c0J1aWx0aW5NZXRob2RXaXRoQXJnc0NvZGVHZW5lcmF0b3IpLCAoaW50cHRyX3QpICgzKSB9IH0s
CiAgICAgeyAiYWRkRXZlbnRMaXN0ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKSwgKGludHB0cl90KSAoMikgfSB9LAogICAgIHsgInJl
bW92ZUV2ZW50TGlzdGVuZXIiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
UmVtb3ZlRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkgKDIpIH0gfSwKICAgICB7ICJ3aXRoU2Ny
aXB0U3RhdGVWb2lkIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhT
Y3JpcHRTdGF0ZVZvaWQpLCAoaW50cHRyX3QpICgwKSB9IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKaW5kZXggODU0
M2UxODJmNTgxMzE4MjQ1ZWI1MWVkZDhhM2JhYjU4NGU0OWM4Yy4uOTc2ZTBhMmU0MjdiNmRjZGE2
MjVhOWU4Zjk4ZTJkOTliOGQxNzRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtMTQzLDYgKzE0Myw4IEBA
IFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGVzdE9iaiA6IERPTU9iamVjdAogLSAodm9p
ZCltZXRob2RXaXRoRXhjZXB0aW9uOwogLSAodm9pZCljdXN0b21NZXRob2Q7CiAtICh2b2lkKWN1
c3RvbU1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJn
IG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKHZvaWQpanNCdWlsdGluTWV0aG9kOwor
LSAodm9pZClqc0J1aWx0aW5NZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0
cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2b2lkKWFkZEV2
ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVu
ZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpcmVtb3Zl
RXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0
ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlOwogLSAodm9pZCl3aXRo
U2NyaXB0U3RhdGVWb2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggMDNmZGUxNzY4OTA3N2RjOTY4Njhh
YmNmZTY4NjZiZjhhNTE0YTBhYS4uMTZkZjJlYWIzNTI3M2FjN2FhMGFmOWViZWMzMmVmMjI2ZWIz
Nzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC05NTUsNiArOTU1LDE4IEBAIC0gKHZvaWQpY3VzdG9t
TWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2Jq
QXJnOihET01UCiAgICAgSU1QTC0+Y3VzdG9tTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJn
LCBjb3JlKG9iakFyZykpOwogfQogCistICh2b2lkKWpzQnVpbHRpbk1ldGhvZAoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5qc0J1aWx0aW5N
ZXRob2QoKTsKK30KKworLSAodm9pZClqc0J1aWx0aW5NZXRob2RXaXRoQXJnczooaW50KWxvbmdB
cmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+
anNCdWlsdGluTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOwor
fQorCiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjoo
aWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVy
ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCA1YmQw
OWJlYWIwYTg0MTJlYzUwNzkzYjMzMWI5MDU4YWQxYTc1MjE3Li5iZDYyZTljYTIyYjYwNTE5ZDE1
MDJhNTdlN2NlNWQ5YTAzOTZlNDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0xMTcsNiArMTE3LDEwIEBAIGVudW0gX29wdGlv
bmFsIHsgIiIsICJPcHRpb25hbFZhbHVlMSIsICJPcHRpb25hbFZhbHVlMiIsICJPcHRpb25hbFZh
bHVlMyIgfTsKICAgICBbQ3VzdG9tQmluZGluZ10gdm9pZCBjdXN0b21CaW5kaW5nTWV0aG9kKCk7
CiAgICAgW0N1c3RvbUJpbmRpbmddIHZvaWQgY3VzdG9tQmluZGluZ01ldGhvZFdpdGhBcmdzKGxv
bmcgbG9uZ0FyZywgRE9NU3RyaW5nIHN0ckFyZywgVGVzdE9iaiBvYmpBcmcpOwogCisgICAgLy8g
J0pTQnVpbHRpbicgZXh0ZW5kZWQgYXR0cmlidXRlCisgICAgW0pTQnVpbHRpbl0gdm9pZCBqc0J1
aWx0aW5NZXRob2QoKTsKKyAgICBbSlNCdWlsdGluXSB2b2lkIGpzQnVpbHRpbk1ldGhvZFdpdGhB
cmdzKGxvbmcgbG9uZ0FyZywgRE9NU3RyaW5nIHN0ckFyZywgVGVzdE9iaiBvYmpBcmcpOworCiAg
ICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxp
c3RlbmVyLCBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgIHZvaWQgcmVtb3ZlRXZl
bnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgb3B0aW9u
YWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZm9v
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMgYi9Tb3Vy
Y2UvV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjIyZmQ4ZDgyOTk5
NzIyYWI2ZmNlOGY1ZDQ0MDliYTlhYmUzMGViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKQEAgLTAsMCArMSwxNDEgQEAKKyMhL3Vzci9iaW4v
cHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisj
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGZpbGVjbXAK
K2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKKworZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBs
YXRlCisKKworcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorcGFyc2VyLmFkZF9h
cmd1bWVudCgnLS1vdXRwdXRfZGlyJywgZGVmYXVsdD0nJywgaGVscD0nb3V0cHV0IGRpcmVjdG9y
eScpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWlucHV0JywgaGVscD0ncGF0aCB0byBpbnB1dCBK
UyBmaWxlJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0td2ViY29yZV9kaXInLCBoZWxwPSdwYXRo
IHRvIFdlYkNvcmUgZGlyZWN0b3J5JykKKworYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKK2Zp
bGVuYW1lID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKGFyZ3MuaW5wdXQpKVsw
XQorCisjIGdlbmVyYXRlIEpTIGJ1aWx0aW5zCituYW1lc3BhY2UgPSAiV2ViQ29yZSIKK3ByZWZp
eCA9ICJXRUJDT1JFIiArIGZpbGVuYW1lLnVwcGVyKCkKK291dHB1dCA9IG9zLnBhdGguam9pbihh
cmdzLm91dHB1dF9kaXIsIGZpbGVuYW1lICsgIkJ1aWx0aW5zIikKK2pzY19nZW5lcmF0ZV9idWls
dGluX3NjcmlwdCA9IG9zLnBhdGguam9pbihhcmdzLndlYmNvcmVfZGlyLCAiLi4iLCAiSmF2YVNj
cmlwdENvcmUiLCAiZ2VuZXJhdGUtanMtYnVpbHRpbnMiKQorCitzdWJwcm9jZXNzLmNhbGwoWyJw
eXRob24iLCBqc2NfZ2VuZXJhdGVfYnVpbHRpbl9zY3JpcHQsICItLW91dHB1dCIsIG91dHB1dCwg
Ii0tbmFtZXNwYWNlIiwgbmFtZXNwYWNlLCAiLS1wcmVmaXgiLCBwcmVmaXgsIGFyZ3MuaW5wdXRd
LCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCisKKyMgZ2VuZXJhdGUgSlMgYnVpbHRpbnMgd3Jh
cHBlcgorb3V0cHV0X2Jhc2UgPSBvdXRwdXQgKyAiV3JhcHBlciIKKworYnVpbHRpbnNXcmFwcGVy
SGVhZGVyID0gb3BlbihvdXRwdXRfYmFzZSArICIuaC50bXAiLCAidyIpCisKK2J1aWx0aW5zV3Jh
cHBlckhlYWRlci53cml0ZShUZW1wbGF0ZSgKKyIiIgorLyogR2VuZXJhdGVkIGJ5IGdlbmVyYXRl
LWpzLWJ1aWx0aW5zIGRvIG5vdCBoYW5kIGVkaXQuICovCisKKy8qCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKKyAqLworCisjaWZuZGVmICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVyX2gKKyNk
ZWZpbmUgJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXJfaAorCisjaW5jbHVkZSAiJHtGaWxlbmFt
ZX1CdWlsdGlucy5oIgorI2luY2x1ZGUgPGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlLmg+CisjaW5jbHVkZSA8YnVpbHRpbnMvQnVpbHRpblV0aWxzLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9JZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgJHtGaWxl
bmFtZX1CdWlsdGluc1dyYXBwZXIgOiBwcml2YXRlIEpTQzo6V2Vha0hhbmRsZU93bmVyCit7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXIoSlNDOjpWTSog
dm0pCisgICAgICAgIDogbV92bSgqdm0pCisgICAgICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxU
SU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVMpCisjZGVmaW5lIElOSVRJ
QUxJWkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkg
LCBtXyMjbmFtZSMjU291cmNlKEpTQzo6bWFrZVNvdXJjZShTdHJpbmdJbXBsOjpjcmVhdGVGcm9t
TGl0ZXJhbChzXyMjbmFtZSwgbGVuZ3RoKSkpCisgICAgICAgICR7UHJlZml4fV9GT1JFQUNIX0JV
SUxUSU4oSU5JVElBTElaRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKQorI3VuZGVmIElOSVRJQUxJ
WkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUworICAgIHsKKyAgICB9CisKKyNkZWZpbmUgRVhQT1NF
X0JVSUxUSU5fRVhFQ1VUQUJMRVMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpIFxcCisgICAg
SlNDOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogbmFtZSMjRXhlY3V0YWJsZSgpOyBcXAor
ICAgIGNvbnN0IEpTQzo6U291cmNlQ29kZSYgbmFtZSMjU291cmNlKCkgY29uc3QgeyByZXR1cm4g
bV8jI25hbWUjI1NvdXJjZTsgfQorICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU4oRVhQT1NF
X0JVSUxUSU5fRVhFQ1VUQUJMRVMpCisjdW5kZWYgRVhQT1NFX0JVSUxUSU5fRVhFQ1VUQUJMRVMK
KworICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShERUNMQVJFX0JV
SUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUikKKworcHJpdmF0ZToKKyAgICBKU0M6OlZNJiBtX3Zt
OworCisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKERFQ0xBUkVf
QlVJTFRJTl9OQU1FUykKKworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMo
bmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpIFxcCisgICAgSlNDOjpTb3VyY2VDb2RlIG1fIyNu
YW1lIyNTb3VyY2U7XFwKKyAgICBKU0M6OldlYWs8SlNDOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZT4gbV8jI25hbWUjI0V4ZWN1dGFibGU7CisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJ
TihERUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMpCisjdW5kZWYgREVDTEFSRV9CVUlMVElO
X1NPVVJDRV9NRU1CRVJTCisKK307CisKKyNkZWZpbmUgREVGSU5FX0JVSUxUSU5fRVhFQ1VUQUJM
RVMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpIFxcCitpbmxpbmUgSlNDOjpVbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZSogJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXI6Om5hbWUjI0V4ZWN1
dGFibGUoKSBcXAore1xcCisgICAgaWYgKCFtXyMjbmFtZSMjRXhlY3V0YWJsZSlcXAorICAgICAg
ICBtXyMjbmFtZSMjRXhlY3V0YWJsZSA9IEpTQzo6V2VhazxKU0M6OlVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlPihKU0M6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKG1fdm0sIG1fIyNuYW1lIyNT
b3VyY2UsIGZ1bmN0aW9uTmFtZSMjUHVibGljTmFtZSgpLCBzXyMjbmFtZSMjQ29uc3RydWN0QWJp
bGl0eSksIHRoaXMsICZtXyMjbmFtZSMjRXhlY3V0YWJsZSk7XFwKKyAgICByZXR1cm4gbV8jI25h
bWUjI0V4ZWN1dGFibGUuZ2V0KCk7XFwKK30KKyR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU4oREVG
SU5FX0JVSUxUSU5fRVhFQ1VUQUJMRVMpCisjdW5kZWYgREVGSU5FX0JVSUxUSU5fRVhFQ1VUQUJM
RVMKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gJHtGaWxlbmFtZX1CdWls
dGluc1dyYXBwZXJfaAorIiIiKS5zdWJzdGl0dXRlKGRpY3QoRmlsZW5hbWU9ZmlsZW5hbWUsIFBy
ZWZpeD1wcmVmaXgpKSkKKworYnVpbHRpbnNXcmFwcGVySGVhZGVyLmNsb3NlKCkKKworaWYgKG5v
dCBvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuaCIpKSBvciAobm90IGZpbGVjbXAuY21w
KG91dHB1dF9iYXNlICsgIi5oLnRtcCIsIG91dHB1dF9iYXNlICsgIi5oIiwgc2hhbGxvdz1GYWxz
ZSkpOgorICAgIGlmIChvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuaCIpKToKKyAgICAg
ICAgb3MucmVtb3ZlKG91dHB1dF9iYXNlICsgIi5oIikKKyAgICBvcy5yZW5hbWUob3V0cHV0X2Jh
c2UgKyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiKQorZWxzZToKKyAgICBvcy5yZW1vdmUo
b3V0cHV0X2Jhc2UgKyAiLmgudG1wIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhODcwMmU3NjNjM2U3NmQwYmU3NjM5YzI4
NGRhMDdjYTk0ODg3MzFiLi45MzUxZTM5YzYzYWFiYmQ4YjEwOGUyY2MwYjkzYmQxYTFkMjE0NmQ3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDktMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEldIEltcGxlbWVu
dCBSZWFkYWJsZVN0cmVhbSBwaXBlVGhyb3VnaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgUmViYXNlZCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuCisgICAg
ICAgIEFkZGluZyBuZXcgdGVzdHMgdG8gaW1wcm92ZSBwaXBlVGhyb3VnaCBjb3ZlcmFnZS4KKwor
ICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gu
aHRtbDogQWRkZWQuCisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24v
YnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dDoKKwogMjAxNS0wOS0yMSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIHRpbWUgZWxlbWVudCBzaG91bGQgdXNlIEhUTUxU
aW1lRWxlbWVudCBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVh
ZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVh
bXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MWUwNjFjYTkwNmQ0MjBmMTVmMTNkN2I0NTEwY2Y1M2VjZDIzNmQ5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiAidGhpcyIgaGFzIG5vIHBpcGVUbyBtZXRob2Qg
CitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cg
d2hlbiBwYXNzZWQgYXJndW1lbnQgaXMgbm90IGFuIG9iamVjdCAKK1BBU1MgUmVhZGFibGVTdHJl
YW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIGNhbGxlZCBnZXR0ZXJz
IGFyZSB0aHJvd2luZyAKK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdo
IHNob3VsZCB3b3JrIHdpdGggbWlzc2luZyBwYXJhbWV0ZXJzIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sIGIvTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YjlhNjhiMzJiYzRiN2JiZWZmYjhjZDU3Njc0MzdiN2E1YzRhODQ5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRt
bApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPScuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3Vy
Y2VzL2djLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAg
dmFyIGlucHV0ID0geworICAgICAgICByZWFkYWJsZTogeyB9LAorICAgICAgICB3cml0YWJsZTog
eyB9CisgICAgfTsKKyAgICB2YXIgb3B0aW9ucyA9IHsgfTsKKyAgICBhc3NlcnRfdGhyb3dzKG5l
dyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBl
VGhyb3VnaC5jYWxsKHVuZGVmaW5lZCwgaW5wdXQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3Rv
dHlwZS5waXBlVGhyb3VnaC5jYWxsKG51bGwsIGlucHV0LCBvcHRpb25zKTsgfSk7CisgICAgYXNz
ZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5w
cm90b3R5cGUucGlwZVRocm91Z2guY2FsbCgxLCBpbnB1dCwgb3B0aW9ucyk7IH0pOworICAgIGFz
c2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0u
cHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwoeyAicGlwZVRvIjogInRlc3QiIH0sIGlucHV0LCBv
cHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNo
b3VsZCB0aHJvdyB3aGVuICJ0aGlzIiBoYXMgbm8gcGlwZVRvIG1ldGhvZCcpOworCit0ZXN0KGZ1
bmN0aW9uKCkgeworICAgIHZhciBvcHRpb25zID0geyB9OworICAgIHZhciB0aGlzVmFsdWUgPSB7
CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhc3NlcnRfdW5yZWFj
aGVkKCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVy
cm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2gu
Y2FsbCh0aGlzVmFsdWUsIG51bGwsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5l
dyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBl
VGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgdW5kZWZpbmVkLCBvcHRpb25zKTsgfSk7Cit9LCAnUmVh
ZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIHBhc3Nl
ZCBhcmd1bWVudCBpcyBub3QgYW4gb2JqZWN0Jyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAg
dmFyIG9wdGlvbnMgPSB7IH07CisgICAgdmFyIGVycm9yID0gbmV3IFR5cGVFcnJvcigicG90YXRv
Iik7CisKKyAgICB2YXIgdGhpc1dyb25nVmFsdWUgPSB7CisgICAgICAgIGdldCBwaXBlVG8oKSB7
CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAgICAgfQorICAgIH07CisgICAgYXNzZXJ0
X3Rocm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBl
VGhyb3VnaC5jYWxsKHRoaXNXcm9uZ1ZhbHVlLCB7IHJlYWRhYmxlOiB7IH0sIHdyaXRhYmxlOiB7
IH0gfSwgb3B0aW9ucyk7IH0pOworCisgICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAgICAgcGlw
ZVRvOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoKTsKKyAgICAg
ICAgfQorICAgIH07CisgICAgdmFyIHdyb25nSW5wdXQgPSB7CisgICAgICAgIHJlYWRhYmxlOiB7
IH0sCisgICAgICAgIGdldCB3cml0YWJsZSgpIHsKKyAgICAgICAgICAgIHRocm93IGVycm9yOwor
ICAgICAgICB9CisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzKGVycm9yLCBmdW5jdGlvbigpIHsg
UmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB3cm9u
Z0lucHV0LCBvcHRpb25zKTsgfSk7CisKKyAgICB2YXIgd3JvbmdJbnB1dDIgPSB7CisgICAgICAg
IGdldCByZWFkYWJsZSgpIHsKKyAgICAgICAgICAgIHRocm93IGVycm9yOworICAgICAgICB9LAor
ICAgICAgICB3cml0YWJsZTogeyB9CisgICAgfTsKKyAgICB2YXIgdGhpc1ZhbHVlMiA9IHsKKyAg
ICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsgfQorICAgIH07CisgICAgYXNzZXJ0X3Rocm93cyhl
cnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5j
YWxsKHRoaXNWYWx1ZTIsIHdyb25nSW5wdXQyLCBvcHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIGNhbGxlZCBnZXR0
ZXJzIGFyZSB0aHJvd2luZycpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBjb3VudCA9
IDA7CisgICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgIH0KKyAgICB9OworCisgICAgUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHJlYWRhYmxlOiB7
IH0sIHdyaXRhYmxlOiB7IH0gfSk7CisgICAgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVU
aHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHJlYWRhYmxlOiB7IH0gfSwgeyB9KTsKKyAgICBSZWFk
YWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIHsgd3JpdGFi
bGU6IHsgfSB9LCB7IH0pOworCisgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMyk7Cit9LCAnUmVh
ZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB3b3JrIHdpdGggbWlzc2lu
ZyBwYXJhbWV0ZXJzJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Ry
ZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNr
cy1leHBlY3RlZC50eHQKaW5kZXggMzczNTc3ZWI5ODIxZDIwNzU0ZGU4NzcxYTYwZmFlNTIzOGM5
YjVmNi4uYjE5N2QxNjU3YjEwZjcwMDM0ZjJjMmE2NDYxNmY1YmMyZmYyNWZkMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hl
Y2tzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBs
ZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQ
QVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGNvbnN0cnVjdG9yIGluZGlyZWN0
bHkgCiBQQVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3Rv
ciBpbmRpcmVjdGx5IAotRkFJTCBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2gg
d29ya3MgZ2VuZXJpY2FsbHkgb24gaXRzIHRoaXMgYW5kIGl0cyBhcmd1bWVudHMgQ2FuIG9ubHkg
Y2FsbCBSZWFkYWJsZVN0cmVhbS5waXBlVGhyb3VnaCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVT
dHJlYW0KK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHdvcmtzIGdl
bmVyaWNhbGx5IG9uIGl0cyB0aGlzIGFuZCBpdHMgYXJndW1lbnRzIAogUEFTUyBSZWFkYWJsZVN0
cmVhbVJlYWRlciBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIG9uIGl0cyBhcmd1bWVudCAKIEZBSUwg
UmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNsb3NlZCBlbmZvcmNlcyBhIGJyYW5kIGNo
ZWNrIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgZ2V0dGVyTmFtZSkuZ2V0JykKIFBBU1MgUmVhZGFibGVT
dHJlYW1SZWFkZXIucHJvdG90eXBlLmNhbmNlbCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261741</attachid>
            <date>2015-09-22 07:27:32 -0700</date>
            <delta_ts>2015-09-22 11:00:46 -0700</delta_ts>
            <desc>Another try</desc>
            <filename>bug-147556-20150922112714.patch</filename>
            <type>text/plain</type>
            <size>70727</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YTg2MjA0OGYzNzM3MDY3M2JlOGQzYTJkMzIwMWNmOTJjZTRkZTE4Li5mNmZjMzEzYjg3MWNkNWRl
NGQ0NDZiODQ5NzEwNzk0YTgzMjVjOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNhYmxl
IGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGluTmFt
ZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVzLgor
ICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRpbmcg
YnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1dGFi
bGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhl
Y3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
QnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJu
YWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6OkJ1
aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6
IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFibGVz
LmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6Cisg
ICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0yMSAgU3Vrb2xzYWsg
U2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgdGhl
IGNvbW1hIGluc3RydWN0aW9uIGluIFdlYkFzc2VtYmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjczNzNjOGFk
NzQ3MGExMzQyZmU3YzczZDBmMjJhNmM1MzlhNzM0Yy4uMTJhYjM4YTA0NjJlNzQ1MTQwNjhkMjgx
N2M4ZjQ2OTc2MjIwYWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE1LTA5LTIx
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAg
W1N0cmVhbXMgQVBJXSBJbXBsZW1lbnQgUmVhZGFibGVTdHJlYW0gcGlwZVRocm91Z2gKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzU1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZGluZyBpbml0aWFsIHN1
cHBvcnQgZm9yIEpTIGJ1aWx0aW5zIHdpdGhpbiBXZWJDb3JlLgorICAgICAgICBUaGlzIHBhdGNo
IGFsbG93cyBpbXBsZW1lbnRpbmcgSURMIGludGVyZmFjZSBtZXRob2RzIGluIEpTLCBieSB1c2lu
ZyB0aGUgbmV3IEpTQnVpbHRpbiBrZXl3b3JkLgorICAgICAgICAoTm8gc3VwcG9ydCB5ZXQgZm9y
IHByaXZhdGUgaWRlbnRpZmllcnMsIGNvbnN0cnVjdG9ycyBvciBhY2Nlc3NvcnMpLgorICAgICAg
ICBJbnRlZ3JhdGlvbiBvZiB0aGUgYnVpbHQtaW4gZXhlY3V0YWJsZXMgYW5kIG5hbWVzIGlzIGlt
cGxlbWVudGVkIHdpdGhpbiBXZWJDb3JlSlNDbGllbnREYXRhLgorICAgICAgICBUd28gZmlsZXMg
YXJlIGdlbmVyYXRlZCBmb3IgZWFjaCBKUyBidWlsdGluIGZpbGU6CisgICAgICAgIC0gYnVpbHRp
biBoL2NwcCBmaWxlcyBzaW1pbGFyIHRvIEpTQ0J1aWx0aW5zLmNwcC8uaCwgZ2VuZXJhdGVkIHRo
cm91Z2ggV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucyBmcm9tIEphdmFTY3JpcHRDb3JlL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zKQorICAgICAgICAtIEEgYnVpbHRpbiB3cmFwcGVyIGZpbGUgbWlt
aWNraW5nIEJ1aWx0aW5FeGVjdXRhYmxlcyAoZ2VuZXJhdGVkIGZyb20gV2ViQ29yZS9nZW5lcmF0
ZS1qcy1idWlsdGlucykKKyAgICAgICAgQ29udHJhcnkgdG8gSlNDLCBlYWNoIGpzIGZpbGUgaXMg
Z2VuZXJhdGluZyBpdHMgb3duIGNwcC9oIGZpbGUuCisgICAgICAgIFRoaXMgYWxsb3dzIGluY2x1
ZGluZyB0aG9zZSBmaWxlcyB3aXRoaW4gdGhlIEpTWFguY3BwLy5oIGZpbGVzIGdlbmVyYXRlZCBm
cm9tIHRoZSBJREwgd2hlcmUgY29tcGlsYXRpb24gZ3VhcmQgbWF5IHRha2UgZWZmZWN0LgorCisg
ICAgICAgIERpc2FibGVkIEdPYmplY3QgYmluZGluZyBmb3IgSlNCdWlsdGluIG1ldGhvZHMuCisK
KyAgICAgICAgVGVzdDogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFRyaWdnZXJpbmcgZ2VuZXJhdGUtanMtYnVpbHRp
bnMgZm9yIEpTIGZpbGVzLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgor
ICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oOiBBZGRl
ZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L0NvbnN0cnVjdEFiaWxpdHkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtLmlkbDogTWFya2luZyBwaXBlVGhyb3VnaCBhcyBKUyBidWlsdGluCisgICAg
ICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzOiBBZGRlZC4KKyAgICAgICAg
KHBpcGVUaHJvdWdoKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmg6IEFk
ZGluZyBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciB0byBzdG9yZSBSZWFkYWJsZVN0cmVh
bSBidWlsdGluIGV4ZWN1dGFibGUKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVKU0NsaWVudERh
dGE6OldlYkNvcmVKU0NsaWVudERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUpTQ2xp
ZW50RGF0YTo6cmVhZGFibGVTdHJlYW1CdWlsdGlucyk6CisgICAgICAgIChXZWJDb3JlOjppbml0
Tm9ybWFsV29ybGRDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JHT2JqZWN0LnBtOiBEaXNhYmxlZCBHT2JqZWN0IGJpbmRpbmcgZm9yIEpTQnVpbHRp
biBtZXRob2RzLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OiBBZGRpbmcgc3VwcG9ydCBmb3IgSlNCdWlsdGluIGtleXdvcmQuCisgICAgICAgIChHZXRGdW5j
dGlvbk5hbWUpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkpOgor
ICAgICAgICAoQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCk6CisgICAgICAgIChVc2VKU0J1aWx0aW5z
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OiBBZGRpbmcg
SlNCdWlsdGluLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouY3BwOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9qc19idWlsdGlu
X21ldGhvZCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9k
X3dpdGhfYXJncyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbToKKyAgICAg
ICAgKC1bRE9NVGVzdE9iaiBqc0J1aWx0aW5NZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9i
aiBqc0J1aWx0aW5NZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAgKiBnZW5lcmF0ZS1qcy1i
dWlsdGluczogQWRkZWQuCisKIDIwMTUtMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICB0aW1lIGVsZW1lbnQgc2hvdWxkIHVzZSBIVE1MVGltZUVsZW1lbnQg
aW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBmY2EyZmQ0ODIwMzQ3
NDAzODc5YjIxMjk0YjNhMDkwNjNiZGFlYTEuLmQyYTIxMTRkODE0Zjc2YWE0YTE3MzhiNTU3OGM1
MmMyNDIwYzJkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NTIsNiArOTUy
LDcgQEAKIAkJMkFGNzM4MkQxOEJCQkY5MjAwOEE1QTM3IC8qIFN0cnVjdHVyZUlEVGFibGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBRjczODJCMThC
QkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzcxRDg0MkQxN0M5OEI2RTAwRUNGOTk0IC8q
IGxpYnouZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzNzFEODQyQzE3Qzk4QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLzsgfTsKIAkJNDEz
NTlDRjMwRkREODlBRDAwMjA2MTgwIC8qIERhdGVDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMjEyMDIyOTBBRDQzMTBDMDBFRDc5QjYg
LyogRGF0ZUNvbnZlcnNpb24uaCAqLzsgfTsKKwkJNDFERUExMzIxQjlGMzE2MzAwNkQ2NUREIC8q
IEJ1aWx0aW5VdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFERUExMzExQjlGMzE1NDAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQzNDBBNDg0MUE5MDUx
QUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDBBNDgyMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9u
LmNwcCAqLzsgfTsKIAkJNDM0MEE0ODUxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDBBNDgzMUE5
MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmggKi87IH07CiAJCTQ0NDNBRTMzMTZFMTg4RDkw
MDc2RjExMCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjBFQjYxMDVDODZDNkIwMEU2REYxQiAvKiBGb3Vu
ZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKQEAgLTI3NjUsNiArMjc2Niw3IEBACiAJCTJBRjczODJB
MThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cnVjdHVyZUlEVGFibGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyQUY3MzgyQjE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURU
YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJRFRhYmxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MUQ4NDJDMTdDOThCNkUwMEVDRjk5
NCAvKiBsaWJ6LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJ6LmR5bGliOyBwYXRo
ID0gdXNyL2xpYi9saWJ6LmR5bGliOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKwkJNDFERUEx
MzExQjlGMzE1NDAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCdWlsdGluVXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDM0MEE0ODIxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aENvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQzNDBBNDgzMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhDb21tb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ5MDk3RUUwRjhGODFCNTAwNzZBMzI3IC8qIEZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTg3Nyw2ICs1
ODc5LDcgQEAKIAkJCQlBN0Q4MDFBMTE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFi
bGVzLmNwcCAqLywKIAkJCQlBN0Q4MDFBMjE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1
dGFibGVzLmggKi8sCiAJCQkJQTc1RUU5QjAxOEFBQjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5OYW1l
cy5oICovLAorCQkJCTQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCAq
LywKIAkJCQlBN0E5NzlDNDE4QkU4RDlFMDAyQzM3MzMgLyogRnVuY3Rpb24ucHJvdG90eXBlLmpz
ICovLAogCQkJCTdDRjlCQzVBMUI2NUQ5QTMwMDlEQjFFRiAvKiBHbG9iYWxPYmplY3QuanMgKi8s
CiAJCQkJRTM1RTAzNjExQjdBQjQ4NTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bk9iamVjdC5qcyAqLywKQEAgLTYxNDksNiArNjE1Miw3IEBACiAJCQkJQTcwNEQ5MDMxN0EwQkFB
ODAwNkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3MDREOTA0MTdBMEJBQTgwMDZCQTU1NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUyM0MxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxD
b2xsYXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MURFQTEzMjFCOUYzMTYz
MDA2RDY1REQgLyogQnVpbHRpblV0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYyMDE3NzE0
M0ZDRDNGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZGMDU0RkExQUMzNUI0NDAwRTVCRTU3IC8qIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY2NkUxNkIxNERGM0YxNjAwQjdCMkU0IC8qIERGR0FkamFjZW5j
eUxpc3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcAppbmRleCA3ZWYxZGEzYjBhYzM5NDNlMDA1
OTNjNjhlMWQ4MTU1MjdjMjcxMWE1Li4zNmQyNjUyNmI1NTNiOGM3NzgwNTVhNTA1OTkzMjc0Yzg2
MWM2MTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bkV4ZWN1dGFibGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbkV4ZWN1dGFibGVzLmNwcApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAorc3RhdGljIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVFeGVjdXRhYmxlSW50
ZXJuYWwoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENvbnN0cnVj
dG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSk7CisKIEJ1aWx0aW5FeGVjdXRhYmxlczo6QnVpbHRp
bkV4ZWN1dGFibGVzKFZNJiB2bSkKICAgICA6IG1fdm0odm0pCiAjZGVmaW5lIElOSVRJQUxJWkVf
QlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgLCBtXyMj
bmFtZSMjU291cmNlKG1ha2VTb3VyY2UoU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoc18j
I25hbWUsIGxlbmd0aCkpKQpAQCAtNTIsMTUgKzU0LDI1IEBAIFVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZURlZmF1bHRDb25zdHJ1Y3RvcihDb25z
dHJ1CiAgICAgY2FzZSBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmU6CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29uc3RydWN0b3JLaW5kOjpCYXNlOgotICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0
YWJsZUludGVybmFsKG1ha2VTb3VyY2UoYmFzZUNvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0
cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsKKyAgICAgICAgcmV0
dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBtYWtlU291cmNlKGJhc2VDb25zdHJ1
Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNv
bnN0cnVjdCk7CiAgICAgY2FzZSBDb25zdHJ1Y3RvcktpbmQ6OkRlcml2ZWQ6Ci0gICAgICAgIHJl
dHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwobWFrZVNvdXJjZShkZXJpdmVkQ29uc3RydWN0
b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25z
dHJ1Y3QpOworICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1fdm0sIG1h
a2VTb3VyY2UoZGVyaXZlZENvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0cnVjdG9yS2luZCwg
Q29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdG9y
S2luZCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkK
K1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUJ1
aWx0aW5FeGVjdXRhYmxlKGNvbnN0IFNvdXJjZUNvZGUmIGNvZGUsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkKK3sKKyAgICByZXR1cm4g
Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1fdm0sIGNvZGUsIG5hbWUsIENvbnN0cnVjdG9yS2lu
ZDo6Tm9uZSwgY29uc3RydWN0QWJpbGl0eSk7Cit9CisKK1VubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIGNv
ZGUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJp
bGl0eSkKK3sKKyAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKHZtLCBjb2RlLCBu
YW1lLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIGNvbnN0cnVjdEFiaWxpdHkpOworfQorCitVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKFZNJiB2bSwg
Y29uc3QgU291cmNlQ29kZSYgc291cmNlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1
Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxp
dHkpCiB7CiAgICAgSlNUZXh0UG9zaXRpb24gcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZTsKICAg
ICBQYXJzZXJFcnJvciBlcnJvcjsKQEAgLTY5LDcgKzgxLDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNv
bnN0IFMKICAgICBVbmxpbmtlZEZ1bmN0aW9uS2luZCBraW5kID0gaXNQYXJzaW5nRGVmYXVsdENv
bnN0cnVjdG9yID8gVW5saW5rZWROb3JtYWxGdW5jdGlvbiA6IFVubGlua2VkQnVpbHRpbkZ1bmN0
aW9uOwogICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4gc291cmNlT3ZlcnJpZGUgPSBpc1BhcnNp
bmdEZWZhdWx0Q29uc3RydWN0b3IgPyBzb3VyY2UucHJvdmlkZXIoKSA6IG51bGxwdHI7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFByb2dyYW1Ob2RlPiBwcm9ncmFtID0gcGFyc2U8UHJvZ3JhbU5vZGU+
KAotICAgICAgICAmbV92bSwgc291cmNlLCBJZGVudGlmaWVyKCksIGJ1aWx0aW5Nb2RlLAorICAg
ICAgICAmdm0sIHNvdXJjZSwgSWRlbnRpZmllcigpLCBidWlsdGluTW9kZSwKICAgICAgICAgSlNQ
YXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3QsIFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUs
IGVycm9yLAogICAgICAgICAmcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSwgY29uc3RydWN0b3JL
aW5kKTsKIApAQCAtOTUsMTYgKzEwNywxNiBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSog
QnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgUwogICAg
IG1ldGFkYXRhLT5zZXRFbmRQb3NpdGlvbihwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKTsKICAg
ICBSRUxFQVNFX0FTU0VSVChtZXRhZGF0YSk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBjbG9zZWRW
YXJpYWJsZSA6IHByb2dyYW0tPmNsb3NlZFZhcmlhYmxlcygpKSB7Ci0gICAgICAgIGlmIChjbG9z
ZWRWYXJpYWJsZSA9PSBtX3ZtLnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBsKCkpCisgICAg
ICAgIGlmIChjbG9zZWRWYXJpYWJsZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1w
bCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBpZiAoY2xvc2Vk
VmFyaWFibGUgPT0gbV92bS5wcm9wZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkLmltcGwoKSkK
KyAgICAgICAgaWYgKGNsb3NlZFZhcmlhYmxlID09IHZtLnByb3BlcnR5TmFtZXMtPnVuZGVmaW5l
ZEtleXdvcmQuaW1wbCgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgfQogICAgIG1ldGFk
YXRhLT5vdmVycmlkZU5hbWUobmFtZSk7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVudCBkdW1teVRE
WlZhcmlhYmxlczsKLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVj
dXRhYmxlID0gVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZSgmbV92bSwgc291cmNl
LCBtZXRhZGF0YSwga2luZCwgY29uc3RydWN0QWJpbGl0eSwgZHVtbXlURFpWYXJpYWJsZXMsIFdU
Rjo6bW92ZShzb3VyY2VPdmVycmlkZSkpOwotICAgIGZ1bmN0aW9uRXhlY3V0YWJsZS0+bV9uYW1l
VmFsdWUuc2V0KG1fdm0sIGZ1bmN0aW9uRXhlY3V0YWJsZSwganNTdHJpbmcoJm1fdm0sIG5hbWUu
c3RyaW5nKCkpKTsKKyAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVj
dXRhYmxlID0gVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZSgmdm0sIHNvdXJjZSwg
bWV0YWRhdGEsIGtpbmQsIGNvbnN0cnVjdEFiaWxpdHksIGR1bW15VERaVmFyaWFibGVzLCBXVEY6
Om1vdmUoc291cmNlT3ZlcnJpZGUpKTsKKyAgICBmdW5jdGlvbkV4ZWN1dGFibGUtPnNldE5hbWVW
YWx1ZSh2bSwganNTdHJpbmcoJnZtLCBuYW1lLnN0cmluZygpKSk7CiAgICAgcmV0dXJuIGZ1bmN0
aW9uRXhlY3V0YWJsZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oCmluZGV4IDIzNDFjODhkOGM3MzEyZjU1NmE5NzQ4MThj
YzlhMGQwOTYyNTM2MmMuLjg2MmQxODI3NzJjNDU1N2U3YTI0YTExMjVmNDhhYTc4NDRiZmQ3OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0
YWJsZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1
dGFibGVzLmgKQEAgLTU3LDExICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBWTSYgbV92bTsKIAot
ICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShj
b25zdCBTb3VyY2VDb2RlJiBjb2RlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RB
YmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCi0gICAgewotICAgICAgICByZXR1cm4gY3JlYXRlRXhl
Y3V0YWJsZUludGVybmFsKGNvZGUsIG5hbWUsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgY29uc3Ry
dWN0QWJpbGl0eSk7Ci0gICAgfQotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVh
dGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXIm
LCBDb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHkpOworICAgIFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiwg
Y29uc3QgSWRlbnRpZmllciYsIENvbnN0cnVjdEFiaWxpdHkpOwogCiAjZGVmaW5lIERFQ0xBUkVf
QlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aClcCiAgICAg
U291cmNlQ29kZSBtXyMjbmFtZSMjU291cmNlOyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggN2U1NDM0MmU3NTJmOWYyZDRlODM1ZWQwMzRm
NDYwOWNmMzY1ZDM5Zi4uYmYyOGRiODNmN2JiYmEyZTZmMGJhYjk3NWI2ZTlmNGQ0YTM3ODg5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAt
MjYsNDIgKzI2LDMxIEBACiAjaWZuZGVmIEJ1aWx0aW5OYW1lc19oCiAjZGVmaW5lIEJ1aWx0aW5O
YW1lc19oCiAKKyNpbmNsdWRlICJCdWlsdGluVXRpbHMuaCIKICNpbmNsdWRlICJDb21tb25JZGVu
dGlmaWVycy5oIgogI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewot
ICAgIAotI2RlZmluZSBJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMobmFtZSkgLCBtXyMjbmFtZShJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAjbmFtZSkpLCBtXyMjbmFtZSMjUHJpdmF0ZU5hbWUo
SWRlbnRpZmllcjo6ZnJvbVVpZChQcml2YXRlTmFtZShQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24s
IEFTQ0lJTGl0ZXJhbCgiUHJpdmF0ZVN5bWJvbC4iICNuYW1lKSkpKQotI2RlZmluZSBERUNMQVJF
X0JVSUxUSU5fTkFNRVMobmFtZSkgY29uc3QgSWRlbnRpZmllciBtXyMjbmFtZTsgY29uc3QgSWRl
bnRpZmllciBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7Ci0jZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9J
REVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKLSAgICBjb25zdCBJZGVudGlmaWVyJiBuYW1lIyNQ
dWJsaWNOYW1lKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWU7IH0gXAotICAgIGNvbnN0IElkZW50
aWZpZXImIG5hbWUjI1ByaXZhdGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWUjI1ByaXZh
dGVOYW1lOyB9CiAKLSNkZWZpbmUgSU5JVElBTElTRV9CVUlMVElOX1NZTUJPTFMobmFtZSkgSU5J
VElBTElTRV9CVUlMVElOX05BTUVTKG5hbWUpLCBtXyMjbmFtZSMjU3ltYm9sKElkZW50aWZpZXI6
OmZyb21VaWQoUHJpdmF0ZU5hbWUoUHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVy
YWwoIlN5bWJvbC4iICNuYW1lKSkpKQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lNQk9MUyhu
YW1lKSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgY29uc3QgSWRlbnRpZmllciBtXyMjbmFt
ZSMjU3ltYm9sOwotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lNQk9MX0FDQ0VTU09SKG5hbWUp
IFwKLSAgICBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCi0gICAg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSMjU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWUj
I1N5bWJvbDsgfQorI2RlZmluZSBJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKG5h
bWUpIG1fcHJpdmF0ZVRvUHVibGljTWFwLmFkZChtXyMjbmFtZSMjUHJpdmF0ZU5hbWUuaW1wbCgp
LCAmbV8jI25hbWUpOworI2RlZmluZSBJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZ
KG5hbWUpIG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtXyMjbmFtZS5pbXBsKCksICZtXyMjbmFt
ZSMjUHJpdmF0ZU5hbWUpOwogCi0jZGVmaW5lIElOSVRJQUxJU0VfUFJJVkFURV9UT19QVUJMSUNf
RU5UUlkobmFtZSkgbV9wcml2YXRlVG9QdWJsaWNNYXAuYWRkKG1fIyNuYW1lIyNQcml2YXRlTmFt
ZS5pbXBsKCksICZtXyMjbmFtZSk7Ci0jZGVmaW5lIElOSVRJQUxJU0VfUFVCTElDX1RPX1BSSVZB
VEVfRU5UUlkobmFtZSkgbV9wdWJsaWNUb1ByaXZhdGVNYXAuYWRkKG1fIyNuYW1lLmltcGwoKSwg
Jm1fIyNuYW1lIyNQcml2YXRlTmFtZSk7Ci0gICAgCiBjbGFzcyBCdWlsdGluTmFtZXMgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEJ1aWx0aW5OYW1lcyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogICAgIAogcHVibGljOgogICAgIEJ1aWx0aW5OYW1lcyhWTSogdm0sIENvbW1vbklkZW50
aWZpZXJzKiBjb21tb25JZGVudGlmaWVycykKICAgICAgICAgOiBtX2VtcHR5SWRlbnRpZmllcihj
b21tb25JZGVudGlmaWVycy0+ZW1wdHlJZGVudGlmaWVyKQotICAgICAgICBKU0NfRk9SRUFDSF9C
VUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElTRV9CVUlMVElOX05BTUVTKQotICAgICAgICBK
U0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJ
U0VfQlVJTFRJTl9OQU1FUykKLSAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJT
X0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElTRV9CVUlMVElOX1NZTUJPTFMpCisgICAg
ICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxUSU5f
TkFNRVMpCisgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BF
UlRZX05BTUUoSU5JVElBTElaRV9CVUlMVElOX05BTUVTKQorICAgICAgICBKU0NfQ09NTU9OX1BS
SVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVpFX0JVSUxU
SU5fU1lNQk9MUykKICAgICB7Ci0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05f
TkFNRShJTklUSUFMSVNFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfQ09N
TU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJU0VfUFJJ
VkFURV9UT19QVUJMSUNfRU5UUlkpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElG
SUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJU0VfUFJJVkFURV9UT19QVUJMSUNf
RU5UUlkpCi0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFM
SVNFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVf
SURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJU0VfUFVCTElDX1RPX1BSSVZB
VEVfRU5UUlkpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dF
TExfS05PV05fU1lNQk9MKElOSVRJQUxJU0VfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCisgICAg
ICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX1BSSVZBVEVf
VE9fUFVCTElDX0VOVFJZKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNf
RUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCisg
ICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lN
Qk9MKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCisgICAgICAgIEpTQ19GT1JF
QUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VO
VFJZKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJU
WV9OQU1FKElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCisgICAgICAgIEpTQ19D
T01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJ
WkVfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCiAgICAgfQogCiAgICAgYm9vbCBpc1ByaXZhdGVO
YW1lKFN5bWJvbEltcGwmIHVpZCkgY29uc3Q7CkBAIC04NCwxMyArNzMsNiBAQCBwcml2YXRlOgog
ICAgIEJ1aWx0aW5OYW1lc01hcCBtX3ByaXZhdGVUb1B1YmxpY01hcDsKIH07CiAKLSN1bmRlZiBE
RUNMQVJFX0JVSUxUSU5fTkFNRVMKLSN1bmRlZiBJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMKLSN1
bmRlZiBERUNMQVJFX0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUgotI3VuZGVmIERFQ0xBUkVf
QlVJTFRJTl9TWU1CT0xTCi0jdW5kZWYgSU5JVElBTElTRV9CVUlMVElOX1NZTUJPTFMKLSN1bmRl
ZiBERUNMQVJFX0JVSUxUSU5fU1lNQk9MX0FDQ0VTU09SCi0KIGlubGluZSBib29sIEJ1aWx0aW5O
YW1lczo6aXNQcml2YXRlTmFtZShTeW1ib2xJbXBsJiB1aWQpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcHJpdmF0ZVRvUHVibGljTWFwLmNvbnRhaW5zKCZ1aWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3YzI5YTY1Zjg0NmFl
ODI1YmY2ZDZiNTU2OGVhZDdiNzhlZjRjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJ1aWx0aW5V
dGlsc19oCisjZGVmaW5lIEJ1aWx0aW5VdGlsc19oCisKKyNpbmNsdWRlICJDb25zdHJ1Y3RBYmls
aXR5LmgiCisKK25hbWVzcGFjZSBKU0MgeworCisjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJTl9O
QU1FUyhuYW1lKSAsIG1fIyNuYW1lKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgI25h
bWUpKSwgbV8jI25hbWUjI1ByaXZhdGVOYW1lKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVVpZChKU0M6
OlByaXZhdGVOYW1lKEpTQzo6UHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwo
IlByaXZhdGVTeW1ib2wuIiAjbmFtZSkpKSkKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX05BTUVT
KG5hbWUpIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZTsgY29uc3QgSlNDOjpJZGVudGlm
aWVyIG1fIyNuYW1lIyNQcml2YXRlTmFtZTsKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0lERU5U
SUZJRVJfQUNDRVNTT1IobmFtZSkgXAorICAgIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbmFtZSMj
UHVibGljTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lOyB9IFwKKyAgICBjb25zdCBKU0M6
OklkZW50aWZpZXImIG5hbWUjI1ByaXZhdGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWUj
I1ByaXZhdGVOYW1lOyB9CisKKyNkZWZpbmUgSU5JVElBTElaRV9CVUlMVElOX1NZTUJPTFMobmFt
ZSkgSU5JVElBTElaRV9CVUlMVElOX05BTUVTKG5hbWUpLCBtXyMjbmFtZSMjU3ltYm9sKEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVVpZChKU0M6OlByaXZhdGVOYW1lKEpTQzo6UHJpdmF0ZU5hbWU6OkRl
c2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlN5bWJvbC4iICNuYW1lKSkpKQorI2RlZmluZSBERUNM
QVJFX0JVSUxUSU5fU1lNQk9MUyhuYW1lKSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgY29u
c3QgSlNDOjpJZGVudGlmaWVyIG1fIyNuYW1lIyNTeW1ib2w7CisjZGVmaW5lIERFQ0xBUkVfQlVJ
TFRJTl9TWU1CT0xfQUNDRVNTT1IobmFtZSkgXAorICAgIERFQ0xBUkVfQlVJTFRJTl9JREVOVElG
SUVSX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1N5
bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNTeW1ib2w7IH0KKworY2xhc3MgSWRlbnRp
ZmllcjsKK2NsYXNzIFNvdXJjZUNvZGU7CitjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZTsKK2NsYXNzIFZNOworCitKU19FWFBPUlRfUFJJVkFURSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgY29u
c3QgSWRlbnRpZmllciYsIENvbnN0cnVjdEFiaWxpdHkpOworICAgIAorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlLmgKaW5kZXggZTNmYzJhOTY0OWNmZWNiMThhMDIwMjBlOTYxMDE0OTQ5
YzQ1NjZmYS4uYTM5MmZkOWIzMGNkMjZiM2E2MTZkN2JkYjY0ZjMyYTBlMWYxOTc5NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlLmgKQEAgLTU5LDcgKzU5LDYgQEAgZW51bSBVbmxpbmtlZEZ1bmN0aW9u
S2luZCB7CiAKIGNsYXNzIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlIGZpbmFsIDogcHVibGlj
IEpTQ2VsbCB7CiBwdWJsaWM6Ci0gICAgZnJpZW5kIGNsYXNzIEJ1aWx0aW5FeGVjdXRhYmxlczsK
ICAgICBmcmllbmQgY2xhc3MgQ29kZUNhY2hlOwogICAgIGZyaWVuZCBjbGFzcyBWTTsKIApAQCAt
NzcsNiArNzYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSWRlbnRpZmllciYgbmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgIGNvbnN0IElkZW50aWZpZXImIGluZmVycmVkTmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1faW5mZXJyZWROYW1lOyB9CiAgICAgSlNTdHJpbmcqIG5hbWVWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZVZhbHVlLmdldCgpOyB9CisgICAgdm9pZCBzZXROYW1l
VmFsdWUoVk0mIHZtLCBKU1N0cmluZyogbmFtZVZhbHVlKSB7IG1fbmFtZVZhbHVlLnNldCh2bSwg
dGhpcywgbmFtZVZhbHVlKTsgfQogICAgIHVuc2lnbmVkIHBhcmFtZXRlckNvdW50KCkgY29uc3Qg
eyByZXR1cm4gbV9wYXJhbWV0ZXJDb3VudDsgfTsKICAgICBTb3VyY2VQYXJzZU1vZGUgcGFyc2VN
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZU1vZGU7IH07CiAgICAgYm9vbCBpc0luU3RyaWN0
Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJblN0cmljdENvbnRleHQ7IH0KQEAgLTEwMCw3
ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImLCBFeGVjU3RhdGUm
LCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3QqJiBleGNlcHRpb24sIAogICAgICAgICBpbnQg
b3ZlcnJpZGVMaW5lTnVtYmVyKTsKIAotICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogbGluayhWTSYs
IGNvbnN0IFNvdXJjZUNvZGUmLCBpbnQgb3ZlcnJpZGVMaW5lTnVtYmVyID0gLTEpOworICAgIEpT
X0VYUE9SVF9QUklWQVRFIEZ1bmN0aW9uRXhlY3V0YWJsZSogbGluayhWTSYsIGNvbnN0IFNvdXJj
ZUNvZGUmLCBpbnQgb3ZlcnJpZGVMaW5lTnVtYmVyID0gLTEpOwogCiAgICAgdm9pZCBjbGVhckNv
ZGUoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1q
cy1idWlsdGlucyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpp
bmRleCA5NjQ3MTYzNmZhM2U3Y2VjMGEyNmJiYWY1NmEyOGQ5MjgyMTBjNTY3Li4yMjEzMjdiODNj
ZGNlYmU3NjExOTE2ZGNhMjkzOTI5YTBjMjY2ZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2dlbmVyYXRlLWpzLWJ1aWx0aW5zCkBAIC0zNiw2ICszNiw4IEBAIHBhcnNlciA9IGFyZ3BhcnNl
LkFyZ3VtZW50UGFyc2VyKCkKIHBhcnNlci5hZGRfYXJndW1lbnQoJ2lucHV0X2ZpbGUnLCBuYXJn
cz0nKicsIGhlbHA9J0lucHV0IEpTIGZpbGVzIHdoaWNoIGJ1aWx0aW5zIGdlbmVyYXRlZCBmcm9t
JykKIHBhcnNlci5hZGRfYXJndW1lbnQoJy0taW5wdXQtZGlyZWN0b3J5JywgaGVscD0nQWxsIEpT
IGZpbGVzIHdpbGwgYmUgdXNlZCBhcyBpbnB1dCBmcm9tIHRoaXMgZGlyZWN0b3J5LicpCiBwYXJz
ZXIuYWRkX2FyZ3VtZW50KCctLW91dHB1dCcsIGhlbHA9J3BhdGggdG8gb3V0cHV0IGNwcCBvciBo
IGZpbGUnKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1wcmVmaXgnLCBkZWZhdWx0PSdKU0MnLCBo
ZWxwPSdwcmVmaXggdXNlZCBmb3IgcHVibGljIG1hY3JvcycpCitwYXJzZXIuYWRkX2FyZ3VtZW50
KCctLW5hbWVzcGFjZScsIGRlZmF1bHQ9J0pTQycsIGhlbHA9J0MrKyBuYW1lc3BhY2UnKQogYXJn
cyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKIAogY29weXJpZ2h0VGV4dCA9ICIiIiAqCkBAIC0xNTMs
NiArMTU1LDkgQEAgZGVmIGdldEZ1bmN0aW9ucyhzb3VyY2UpOgogICAgICAgICByZXN1bHQuYXBw
ZW5kKEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSwgZnVuY3Rpb24sIGZ1bmN0aW9uSXNDb25zdHJ1Y3Rv
ciwgZnVuY3Rpb25QYXJhbWV0ZXJzKSkKICAgICByZXR1cm4gcmVzdWx0CiAKK2RlZiB3cml0ZUlu
Y2x1ZGVEaXJlY3RpdmVzKHdyaXRlciwgaGVhZGVyTmFtZXMpOgorICAgIGZvciBoZWFkZXJOYW1l
IGluIGhlYWRlck5hbWVzOgorICAgICAgICB3cml0ZXIud3JpdGUoIiNpbmNsdWRlICIgKyBoZWFk
ZXJOYW1lICsgIlxuIikKIAogZGVmIGdlbmVyYXRlQ29kZShzb3VyY2UpOgogICAgIGlucHV0Rmls
ZSA9IG9wZW4oc291cmNlLCAiciIpCkBAIC0xNzksNiArMTg0LDE0IEBAIGZvciBmaWxlIGluIGFy
Z3MuaW5wdXRfZmlsZToKICAgICAgICAgKGJhc2VOYW1lLCBmdW5jdGlvbnMsIG9iamVjdENvcHly
aWdodHMpID0gZ2VuZXJhdGVDb2RlKGZpbGUpCiAgICAgICAgIGNvcHlyaWdodHMuZXh0ZW5kKG9i
amVjdENvcHlyaWdodHMpCiAgICAgICAgIGJ1aWx0aW5zLmFwcGVuZCgoYmFzZU5hbWUsIGZ1bmN0
aW9ucykpCituYW1lc3BhY2UgPSBhcmdzLm5hbWVzcGFjZQorbWFjcm9QcmVmaXggPSBhcmdzLnBy
ZWZpeAorc2NvcGVOYW1lID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKGFyZ3Mu
b3V0cHV0KSlbMF0KK2luY2x1ZGVHdWFyZCA9IHNjb3BlTmFtZSArICJfSCIKK2hlYWRlck5hbWUg
PSBzY29wZU5hbWUgKyAiLmgiCisKK2hlYWRlckluY2x1ZGVzID0gWyJcIkJ1aWx0aW5VdGlscy5o
XCIiXSBpZiBuYW1lc3BhY2UgPT0gIkpTQyIgZWxzZSBbIjxidWlsdGlucy9CdWlsdGluVXRpbHMu
aD4iXQorY29udGVudEluY2x1ZGVzID0gWyJcIkJ1aWx0aW5FeGVjdXRhYmxlcy5oXCIiLCAiXCJF
eGVjdXRhYmxlLmhcIiIsICJcIkpTQ2VsbElubGluZXMuaFwiIiwgIlwiVk0uaFwiIl0gaWYgbmFt
ZXNwYWNlID09ICJKU0MiIGVsc2UgWyI8cnVudGltZS9FeGVjdXRhYmxlLmg+IiwgIjxydW50aW1l
L0pTQ2VsbElubGluZXMuaD4iLCAiPHJ1bnRpbWUvVk0uaD4iLCAiXCJXZWJDb3JlSlNDbGllbnRE
YXRhLmhcIiJdCiAKIGNvcHlyaWdodHMgPSBsaXN0KHNldChjb3B5cmlnaHRzKSkKIApAQCAtMTky
LDIzICsyMDUsMjEgQEAgY29weXJpZ2h0VGV4dCA9ICIvKlxuIiArIGNvcHlyaWdodEJvZHkgKyBj
b3B5cmlnaHRUZXh0CiBidWlsdGluc0hlYWRlci53cml0ZSgiIiIlcwogJXMKIAotI2lmbmRlZiBK
U0NCdWlsdGluc19ICi0jZGVmaW5lIEpTQ0J1aWx0aW5zX0gKKyNpZm5kZWYgJXMKKyNkZWZpbmUg
JXMKIAotI2luY2x1ZGUgIkNvbnN0cnVjdEFiaWxpdHkuaCIKKyIiIiAlIChnZW5lcmF0b3JTdHJp
bmcsIGNvcHlyaWdodFRleHQsIGluY2x1ZGVHdWFyZCwgaW5jbHVkZUd1YXJkKSkKIAotbmFtZXNw
YWNlIEpTQyB7Cit3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSGVhZGVyLCBoZWFkZXJJ
bmNsdWRlcykKIAotY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3MgSWRlbnRpZmllcjsK
LWNsYXNzIEpTR2xvYmFsT2JqZWN0OwotY2xhc3MgU291cmNlQ29kZTsKLWNsYXNzIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3MgVk07CitidWlsdGluc0hlYWRlci53cml0ZSgiIiIK
K25hbWVzcGFjZSBKU0MgeworICAgIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKK30KIAotRnVu
Y3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShWTSYsIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYpOworbmFtZXNwYWNlICVzIHsKIAot
IiIiICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4dCkpCisiIiIgJSBuYW1lc3BhY2Up
CiAKIGNvZGVSZWZlcmVuY2VzID0gW10KIApAQCAtMjIyLDU4ICsyMzMsNTkgQEAgZm9yIChvYmpl
Y3ROYW1lLCBmdW5jdGlvbnMpIGluIGJ1aWx0aW5zOgogICAgICAgICBjb2RlUmVmZXJlbmNlcy5h
cHBlbmQoKG1hbmdsZWROYW1lLCBmdW5jdGlvbikpCiAgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndy
aXRlKCJleHRlcm4gY29uc3QgY2hhciogc18lcztcbiIgJSBtYW5nbGVkTmFtZSkKICAgICAgICAg
YnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBpbnQgc18lc0xlbmd0aDtcbiIgJSBt
YW5nbGVkTmFtZSkKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBD
b25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5O1xuIiAlIG1hbmdsZWROYW1lKQor
ICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IEpTQzo6Q29uc3RydWN0
QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eTtcbiIgJSBtYW5nbGVkTmFtZSkKICAgICBidWls
dGluc0hlYWRlci53cml0ZSgiXG4iKQotICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5l
IEpTQ19GT1JFQUNIXyVzX0JVSUxUSU4obWFjcm8pIFxcXG4iICUgb2JqZWN0TmFtZS5yZXBsYWNl
KCIuIiwgIl8iKS51cHBlcigpKQorICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVz
X0ZPUkVBQ0hfJXNfQlVJTFRJTihtYWNybykgXFxcbiIgJSAobWFjcm9QcmVmaXgsIG9iamVjdE5h
bWUucmVwbGFjZSgiLiIsICJfIikudXBwZXIoKSkpCiAgICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0
aW9uczoKICAgICAgICAgbWFuZ2xlZE5hbWUgPSBmdW5jdGlvbi5tYW5nbGVOYW1lKG9iamVjdE5h
bWUpCiAgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIgICAgbWFjcm8oJXMsICVzLCAlZCkg
XFxcbiIgJSAoZnVuY3Rpb24ubmFtZSwgbWFuZ2xlZE5hbWUsIGxlbihmdW5jdGlvbi5wYXJhbWV0
ZXJzKSkpCiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuIikKICAgICBmb3IgZnVuY3Rpb24g
aW4gZnVuY3Rpb25zOgotICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSBKU0Nf
QlVJTFRJTl8lcyAxXG4iICUgZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKS51cHBlcigp
KQorICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSAlc19CVUlMVElOXyVzIDFc
biIgJSAobWFjcm9QcmVmaXgsIGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkudXBwZXIo
KSkpCiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuXG4iKQogbmFtZXMgPSBbXQotYnVpbHRp
bnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTihtYWNybylcXFxuIikK
K2J1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZPUkVBQ0hfQlVJTFRJTihtYWNybylc
XFxuIiAlIG1hY3JvUHJlZml4KQogZm9yIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbikgaW4gY29k
ZVJlZmVyZW5jZXM6CiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcywgJXMs
IHNfJXNMZW5ndGgpIFxcXG4iICUgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9uLm5hbWUsIGNvZGVS
ZWZlcmVuY2UpKQogICAgIG5hbWVzLmFwcGVuZChmdW5jdGlvbi5uYW1lKQogCiBidWlsdGluc0hl
YWRlci53cml0ZSgiXG5cbiIpCi1idWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSBKU0NfRk9S
RUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFxcXG4iKQorYnVpbHRpbnNIZWFkZXIu
d3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFxc
XG4iICUgbWFjcm9QcmVmaXgpCiBmb3IgbmFtZSBpbiBzb3J0ZWQoc2V0KG5hbWVzKSk6CiAgICAg
YnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcykgXFxcbiIgJSBuYW1lKQogYnVpbHRp
bnNIZWFkZXIud3JpdGUoIiIiCiAKLSNkZWZpbmUgSlNDX0RFQ0xBUkVfQlVJTFRJTl9HRU5FUkFU
T1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLSAgICBGdW5jdGlv
bkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoVk0mKTsKKyNkZWZpbmUgREVDTEFSRV9C
VUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBc
XAorICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2VuZXJhdG9yKEpTQzo6
Vk0mKTsKIAotSlNDX0ZPUkVBQ0hfQlVJTFRJTihKU0NfREVDTEFSRV9CVUlMVElOX0dFTkVSQVRP
UikKLSN1bmRlZiBKU0NfREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgorJXNfRk9SRUFDSF9CVUlM
VElOKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCisjdW5kZWYgREVDTEFSRV9CVUlMVElOX0dF
TkVSQVRPUgogCi0jZGVmaW5lIEpTQ19CVUlMVElOX0VYSVNUUyhuYW1lKSBkZWZpbmVkIEpTQ19C
VUlMVElOXyAjIyBuYW1lCisjZGVmaW5lICVzX0JVSUxUSU5fRVhJU1RTKG5hbWUpIGRlZmluZWQg
JXNfQlVJTFRJTl8gIyMgbmFtZQogCiB9CiAKLSNlbmRpZgorI2VuZGlmIC8vICVzCiAKLSIiIikK
KyIiIiAlIChtYWNyb1ByZWZpeCwgbWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4LCBpbmNsdWRlR3Vh
cmQpKQogCiBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIiVzCiAlcwogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgorI2luY2x1ZGUgIiVzIgog
Ci0jaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCi0jaW5jbHVkZSAiQ29uc3RydWN0QWJp
bGl0eS5oIgotI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKLSNpbmNsdWRlICJKU0NlbGxJbmxpbmVz
LmgiCi0jaW5jbHVkZSAiVk0uaCIKKyIiIiAgJSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmlnaHRU
ZXh0LCBoZWFkZXJOYW1lKSkKKword3JpdGVJbmNsdWRlRGlyZWN0aXZlcyhidWlsdGluc0ltcGxl
bWVudGF0aW9uLCBjb250ZW50SW5jbHVkZXMpCisKK2J1aWx0aW5zSW1wbGVtZW50YXRpb24ud3Jp
dGUoIiIiCituYW1lc3BhY2UgJXMgeworCisiIiIgICUgKG5hbWVzcGFjZSkpCiAKLW5hbWVzcGFj
ZSBKU0MgewogCi0iIiIgICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4dCkpCiAKIGZv
ciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVuY2VzOgogICAgIHNvdXJj
ZSA9IGZ1bmN0aW9uLnNvdXJjZQpAQCAtMjg1LDIzICsyOTcsMzMgQEAgZm9yIChjb2RlUmVmZXJl
bmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAgICAgIHNvdXJjZSA9IHNvdXJj
ZSArICgiICAgIFwiJXNcXG5cIiBcXFxuIiAlIGxpbmUpCiAgICAgYnVpbHRpbnNJbXBsZW1lbnRh
dGlvbi53cml0ZSgiY29uc3QgY2hhciogc18lcyA9XG4lcztcblxuIiAlIChjb2RlUmVmZXJlbmNl
LCBzb3VyY2UpKQogICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNvbnN0IGludCBz
XyVzTGVuZ3RoID0gJWQ7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgc291cmNlTGVuZ3RoICsgMSkp
ICMgKyAxIGZvciBcbgotICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAiQ29uc3RydWN0QWJpbGl0eTo6
Q2Fubm90Q29uc3RydWN0IgorICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAiSlNDOjpDb25zdHJ1Y3RB
YmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QiCiAgICAgaWYgZnVuY3Rpb24uaXNDb25zdHJ1Y3RvcjoK
LSAgICAgICAgY29uc3RydWN0QWJpbGl0eSA9ICJDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1
Y3QiCi0gICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgQ29uc3RydWN0QWJp
bGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eSA9ICVzO1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIGNv
bnN0cnVjdEFiaWxpdHkpKSAjICsgMSBmb3IgXG4KKyAgICAgICAgY29uc3RydWN0QWJpbGl0eSA9
ICJKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCIKKyAgICBidWlsdGluc0ltcGxl
bWVudGF0aW9uLndyaXRlKCJjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0cnVj
dEFiaWxpdHkgPSAlcztcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBjb25zdHJ1Y3RBYmlsaXR5KSkg
IyArIDEgZm9yIFxuCiAKIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIiCi0jZGVmaW5l
IEpTQ19ERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJn
dW1lbnRDb3VudCkgXFwKLUZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihW
TSYgdm0pIFxcCi17IFxcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRhYmxlcygpLT5jb2Rl
TmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29k
ZU5hbWUjI1NvdXJjZSgpKTsgXFwKLX0KKyNkZWZpbmUgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9S
KGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCitKU0M6OkZ1bmN0aW9u
RXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkgXFwKKyIiIik7CiAK
LUpTQ19GT1JFQUNIX0JVSUxUSU4oSlNDX0RFRklORV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRl
ZiBKU0NfREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCitpZiAobmFtZXNwYWNlID09ICJKU0MiKToK
KyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIntcXAorICAgIHJldHVybiB2bS5i
dWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+bGluayh2bSwgdm0u
YnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7IFxcCisiIiIpCitlbHNl
OgorICAgIGJ1aWx0aW5OYW1lID0gc2NvcGVOYW1lWzBdLmxvd2VyKCkgKyBzY29wZU5hbWVbMTpd
CisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ7XFwKKyAgICBXZWJDb3JlSlND
bGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8V2ViQ29yZUpTQ2xpZW50RGF0YSo+
KHZtLmNsaWVudERhdGEpOyBcXAorICAgIHJldHVybiBjbGllbnREYXRhLT4lcygpLmNvZGVOYW1l
IyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPiVzKCkuY29kZU5hbWUjI1NvdXJj
ZSgpKTsgXFwKKyIiIiUgKGJ1aWx0aW5OYW1lLCBidWlsdGluTmFtZSkpCisKK2J1aWx0aW5zSW1w
bGVtZW50YXRpb24ud3JpdGUoIiIifQorJXNfRk9SRUFDSF9CVUlMVElOKERFRklORV9CVUlMVElO
X0dFTkVSQVRPUikKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IKIH0KIAotIiIiKQor
IiIiJSAobWFjcm9QcmVmaXgpKQogCiBidWlsdGluc0hlYWRlci5jbG9zZSgpCiBidWlsdGluc0lt
cGxlbWVudGF0aW9uLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggM2U0NGYyN2FlYzQx
NzJmZDQyYzZjMTBiMTdiMDA3YTdhMmVmMjQ2Mi4uN2VlZmM3MTcyMTA0Mzc4OTU4ZDU3MTM4MmQy
MWM1ZGMzMzg4NWVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMzMzcsNiArMzMzNywxMCBA
QCBzZXQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9L1dvcmtlckdsbwogc2V0KERFRElDQVRFRFdPUktFUkdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoSURMX0FUVFJJQlVURVNf
RklMRSAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0KQog
CitzZXQoV0VCQ09SRV9KU19CVUlMVElOUworICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvc3Ry
ZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKQorCiBXRUJLSVRfSU5DTFVERV9DT05GSUdfRklMRVNf
SUZfRVhJU1RTKCkKIAogIyBHZW5lcmF0ZSBJbnNwZWN0b3JPdmVybGF5UGFnZS5oCkBAIC0zNTU2
LDYgKzM1NjAsMjEgQEAgR0VORVJBVEVfQklORElOR1MoV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJD
RVMKICAgICAke1NVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEV9CiAgICAgJHtBRERJVElPTkFM
X0JJTkRJTkdTX0RFUEVOREVOQ0lFU30pCiAKKyMgV2ViQ29yZSBKUyBCdWlsdGlucworZm9yZWFj
aCAoX2J1aWx0aW5qcyAke1dFQkNPUkVfSlNfQlVJTFRJTlN9KQorICAgIGdldF9maWxlbmFtZV9j
b21wb25lbnQoX25hbWUgJHtfYnVpbHRpbmpzfSBOQU1FX1dFKQorICAgIGFkZF9jdXN0b21fY29t
bWFuZCgKKyAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19u
YW1lfUJ1aWx0aW5zV3JhcHBlci5oICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19u
YW1lfUJ1aWx0aW5zLmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVp
bHRpbnMuY3BwCisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMKKyAgICAgICAgREVQRU5EUyAke19idWlsdGluanN9
CisgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5wdXQgJHtfYnVpbHRpbmpzfSAtLW91
dHB1dF9kaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9IC0td2ViY29yZV9kaXIgJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9CisgICAgICAgIFZFUkJBVElNKQorICAgIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vJHtfbmFtZX1CdWlsdGlucy5oCisgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVf
RElSfS8ke19uYW1lfUJ1aWx0aW5zV3JhcHBlci5oCisgICAgICAgICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmNwcAorICAgICkKK2VuZGZvcmVhY2ggKCkK
IAogQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7V0VCQ09SRV9ESVJ9
L2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcCBNYXRoTUxOYW1lcy5jcHApCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcAppbmRleCA3MzM5YzJmMmYzM2Y3MTNhOGEwNTZkODQwMDhlNDdjNzUxODFm
MGQxLi44ZmJhNjA1ODY1NGEyMGEwMDAxMTFkN2E4OGY1ZDYxYWIzNWE0NTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0zMTAsNiArMzEwLDcgQEAKICNpbmNsdWRlICJKU1JlYWRh
YmxlU3RyZWFtLmNwcCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAi
CiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAiCisjaW5jbHVkZSAiUmVhZGFi
bGVTdHJlYW1CdWlsdGlucy5jcHAiCiAjZW5kaWYKICNpbmNsdWRlICJKU1JlY3QuY3BwIgogI2lu
Y2x1ZGUgIkpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suY3BwIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggYWUxMGQ1OTQ3N2RkOGRhMGQ4YmVkNzhmZDgzY2ExYTNkYTBm
OWNhYi4uMzI0YTU1ZmRiNzAwYzI4YzE2MDYwYzdiYjNhMjQyZjEzY2ViZTkzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03OTIsNiArNzkyLDcgQEAgYWxsIDogXAogICAgICQo
V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAkKEpTX0RPTV9IRUFE
RVJTKSBcCiAgICAgJChXRUJfRE9NX0hFQURFUlMpIFwKKyAgICAkKFdFQkNPUkVfSlNfQlVJTFRJ
TlMpIFwKICAgICBcCiAgICAgQ1NTR3JhbW1hci5jcHAgXAogICAgIENTU1Byb3BlcnR5TmFtZXMu
Y3BwIFwKQEAgLTEyNDYsNiArMTI0NywxNiBAQCBXZWJSZXBsYXlJbnB1dHMuaCA6ICQoSU5QVVRf
R0VORVJBVE9SX1NQRUNJRklDQVRJT05TKSAkKElOUFVUX0dFTkVSQVRPUl9TQ1JJUFRTKQogCiAt
aW5jbHVkZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKKyMgV2ViQ29yZSBKUyBCdWlsdGlu
cworCitXRUJDT1JFX0pTX0JVSUxUSU5TID0gXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJl
YW1zL1JlYWRhYmxlU3RyZWFtLmpzCisKK2FsbCA6ICQoV0VCQ09SRV9KU19CVUlMVElOUzolLmpz
PSVCdWlsdGlucy5jcHApCisKKyVCdWlsdGlucy5jcHA6ICUuanMKKwkkKFBZVEhPTikgJChXZWJD
b3JlKS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICQ8IC0td2ViY29yZV9kaXIgJChXZWJD
b3JlKQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAjIE1hYy1zcGVjaWZpYyBydWxl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnVpbHRpbnMv
QnVpbHRpblV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9idWlsdGlu
cy9CdWlsdGluVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjc0MTRiODMwOTM4ZGQ2YzVhODZiMjViZTZk
ZjY3NTI1Njg1Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVm
IFdlYkNvcmVfRldEX0J1aWx0aW5VdGlsc19oCisjZGVmaW5lIFdlYkNvcmVfRldEX0J1aWx0aW5V
dGlsc19oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpblV0aWxzLmg+CisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J5dGVjb2RlL1Vu
bGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3
MTJkOWJmMDU4ODRmM2Y3OTk5MjllZDZjMTQ1ZjBiM2U1ZTE2OTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9Vbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1VubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9ydW50aW1lL0NvbnN0cnVjdEFiaWxpdHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0QWJpbGl0eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ0ZGNhZGNjOTNmYjZlNTc5Nzk0MWIyNWNkMDRlMTI5NTA1Y2JhYzQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0NvbnN0cnVjdEFi
aWxpdHkuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfQ29uc3RydWN0QWJp
bGl0eV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0NvbnN0cnVjdEFiaWxpdHlfaAorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0NvbnN0cnVjdEFiaWxpdHkuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwKaW5kZXggODYzYzI2
NDMxOGM1NDEyMGE3MDg4OTFhMWNkYWM1M2YwNjhjYjBkMC4uNmFjMjU5NWFhYmQ1YmFmNjU0OGNl
YmNkOGEzMmFiMDBkYTgwZDIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCkBAIC0zNiw3ICszNiw3IEBACiAgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gUHJvbWlzZSBjYW5jZWwoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBhbnkg
cmVhc29uKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBSZWFkYWJsZVN0cmVhbVJlYWRlciBnZXRS
ZWFkZXIoKTsKICAgICBbQ3VzdG9tXSBQcm9taXNlIHBpcGVUbyhhbnkgc3RyZWFtcywgYW55IG9w
dGlvbnMpOwotICAgIFtDdXN0b21dIE9iamVjdCBwaXBlVGhyb3VnaChhbnkgZGVzdCwgYW55IG9w
dGlvbnMpOworICAgIFtKU0J1aWx0aW5dIE9iamVjdCBwaXBlVGhyb3VnaChhbnkgZGVzdCwgYW55
IG9wdGlvbnMpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbG9ja2VkOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YzYzMmY1OGQxYmRmNWI5NzVkNTJkNmM3NGRmMzcwYjdjYWI2Y2MyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtLmpzCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24g
SW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmdW5jdGlv
biBwaXBlVGhyb3VnaChzdHJlYW1zLCBvcHRpb25zKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKwor
ICAgIHRoaXMucGlwZVRvKHN0cmVhbXMud3JpdGFibGUsIG9wdGlvbnMpOworICAgIHJldHVybiBz
dHJlYW1zLnJlYWRhYmxlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKaW5kZXggZThkNzBjZThjMzE4MThkMjQ1MGU3ZDNhZGZmMWE5N2M4ZGYy
YjcxNS4uNDczMThkNGQ0NmMwNTRiZjk1YzZjOWFjNzdiMmE0N2U0ZWU3ODhiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0zOTYwLDYg
KzM5NjAsMjAgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAiPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2Vf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
aiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGY2MTRhZjlmYjU4ZDY2ZjkwNWY1NmI0ZTNmZWE5ZTU2
N2FlM2UwYi4uNzlhN2U1OWM0YTUyMTg2Nzg3MGI5NmFjZWYwNjcwZWRjMGM1OGI1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjU5Myw2ICsyNTkzLDcgQEAKIAkJN0M0OEE2RDAxOTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5h
bWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzQ4QTZDRTE5MUM5RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmNwcCAqLzsgfTsK
IAkJN0M0OEE2RDExOTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0OEE2Q0YxOTFDOUQ2NTAw
MDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oICovOyB9OwogCQk3QzQ5MDJBMjE4QjgyNUY4MDA3
RDkyOTggLyogRE9NV2hlZWxFdmVudEludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk4OURDQTBBQ0M4QkJEMDBB
MEJDNTEgLyogRE9NV2hlZWxFdmVudEludGVybmFsLmggKi87IH07CisJCTdDNEM5NkRDMUFENDQ4
MzUwMDM2NUE1MSAvKiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAv
KiBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmNwcCAqLzsgfTsKIAkJN0M0Qzk2REMxQUQ0NDgzNTAw
MzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFi
bGVTdHJlYW0uY3BwICovOyB9OwogCQk3QzRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFk
YWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCAqLzsgfTsK
IAkJN0M0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0Qzk2REEx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwICovOyB9OwpAQCAt
OTk4MSw2ICs5OTgyLDcgQEAKIAkJN0M0OEE2Q0UxOTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5h
bWVzcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRO
YW1lc3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzQ4QTZDRjE5MUM5
RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYktpdE5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QzQ4QTZEMjE5MUM5RDhFMDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJLaXROYW1lc3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzRDOTZE
ODFBRDQ0ODM1MDAzNjVBNTEgLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTUmVhZGFibGVTdHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNSZWFkYWJsZVN0cmVhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
NEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2REExQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJl
YW1SZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZWFk
YWJsZVN0cmVhbVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjIw
NSw2ICsxNjIwNyw3IEBACiAJCTQxQTAyM0ZBMUEzOUYxM0EwMEY3MjJDRiAvKiBTdHJlYW1zICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3QzRDOTZEODFB
RDQ0ODM1MDAzNjVBNTEgLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAgKi8sCiAJCQkJN0M0
Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwICovLAogCQkJCTdD
NEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggKi8sCiAJCQkJNkM0
Qzk2REExQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCAq
LywKQEAgLTI5NDAwLDYgKzI5NDAzLDcgQEAKIAkJCQkwNzc2NjRGQzE4M0U2QjVDMDAxMzNCOTIg
LyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
NjU4RkZBMTE1MjJFRjNBMDBERDU1OTUgLyogSlNSYWRpb05vZGVMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTY1REYzMjAxMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTdDNEM5NkRDMUFENDQ4MzUwMDM2NUE1MSAvKiBSZWFkYWJsZVN0cmVhbUJ1
aWx0aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAv
KiBKU1JlYWRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZDNEM5NkRFMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MTE4OUVGOTFBRDgyNzM3MDBCOTBBMEQgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwCmluZGV4IDljZjA5NmJhYmE2
MjA4MDVjMTU1MWRjOWI1ZWJjYmE5ZGNhNGUzMjIuLjJiNjYzY2U3OGRlZGY3MzZiMjJmYzM5MTA1
NTI0YjJkYTNiZWQwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UmVhZGFibGVTdHJlYW1DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwCkBAIC01MywxMiArNTMsNiBAQCBKU1ZhbHVlIEpT
UmVhZGFibGVTdHJlYW06OnBpcGVUbyhFeGVjU3RhdGUmIHN0YXRlKQogICAgIHJldHVybiBzdGF0
ZS52bSgpLnRocm93RXhjZXB0aW9uKCZzdGF0ZSwgZXJyb3IpOwogfQogCi1KU1ZhbHVlIEpTUmVh
ZGFibGVTdHJlYW06OnBpcGVUaHJvdWdoKEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgSlNWYWx1
ZSBlcnJvciA9IGNyZWF0ZUVycm9yKCZzdGF0ZSwgQVNDSUlMaXRlcmFsKCJwaXBlVGhyb3VnaCBp
cyBub3QgaW1wbGVtZW50ZWQiKSk7Ci0gICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRp
b24oJnN0YXRlLCBlcnJvcik7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnRE
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgK
aW5kZXggNDMwMmQ2OGU1YzhjNmQ3ODdkNDcyNjI0MTRiY2ViOThkMjJlMDE5ZS4uYWM4OWFmM2I1
NmNjYjY3NDFiNTQzMmI1M2IxZmJmMWYwYTA1Y2U3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtMjMsNiArMjMsNyBAQAogI2Rl
ZmluZSBXZWJDb3JlSlNDbGllbnREYXRhX2gKIAogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5o
IgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNSw3ICszNiwxMCBAQCBjbGFzcyBXZWJDb3Jl
SlNDbGllbnREYXRhIDogcHVibGljIEpTQzo6Vk06OkNsaWVudERhdGEgewogICAgIGZyaWVuZCB2
b2lkIGluaXROb3JtYWxXb3JsZENsaWVudERhdGEoSlNDOjpWTSopOwogCiBwdWJsaWM6Ci0gICAg
V2ViQ29yZUpTQ2xpZW50RGF0YSgpCisgICAgV2ViQ29yZUpTQ2xpZW50RGF0YShKU0M6OlZNJiB2
bSkKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisgICAgICAgIDogbV9yZWFkYWJsZVN0cmVhbUJ1
aWx0aW5zKCZ2bSkKKyNlbmRpZgogICAgIHsKICAgICB9CiAKQEAgLTcxLDE0ICs3NSwyMiBAQCBw
dWJsaWM6CiAgICAgICAgIG1fd29ybGRTZXQucmVtb3ZlKCZ3b3JsZCk7CiAgICAgfQogCisjaWYg
RU5BQkxFKFNUUkVBTVNfQVBJKQorICAgIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyJiBy
ZWFkYWJsZVN0cmVhbUJ1aWx0aW5zKCkgeyByZXR1cm4gbV9yZWFkYWJsZVN0cmVhbUJ1aWx0aW5z
OyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBIYXNoU2V0PERPTVdyYXBwZXJXb3JsZCo+IG1f
d29ybGRTZXQ7CiAgICAgUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gbV9ub3JtYWxXb3JsZDsKKwor
I2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKKyAgICBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBl
ciBtX3JlYWRhYmxlU3RyZWFtQnVpbHRpbnM7CisjZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIGlu
aXROb3JtYWxXb3JsZENsaWVudERhdGEoSlNDOjpWTSogdm0pCiB7Ci0gICAgV2ViQ29yZUpTQ2xp
ZW50RGF0YSogd2ViQ29yZUpTQ2xpZW50RGF0YSA9IG5ldyBXZWJDb3JlSlNDbGllbnREYXRhOwor
ICAgIFdlYkNvcmVKU0NsaWVudERhdGEqIHdlYkNvcmVKU0NsaWVudERhdGEgPSBuZXcgV2ViQ29y
ZUpTQ2xpZW50RGF0YSgqdm0pOwogICAgIHZtLT5jbGllbnREYXRhID0gd2ViQ29yZUpTQ2xpZW50
RGF0YTsgLy8gflZNIGRlbGV0ZXMgdGhpcyBwb2ludGVyLgogICAgIHdlYkNvcmVKU0NsaWVudERh
dGEtPm1fbm9ybWFsV29ybGQgPSBET01XcmFwcGVyV29ybGQ6OmNyZWF0ZSgqdm0sIHRydWUpOwog
ICAgIHZtLT5tX3R5cGVkQXJyYXlDb250cm9sbGVyID0gYWRvcHRSZWYobmV3IFdlYkNvcmVUeXBl
ZEFycmF5Q29udHJvbGxlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IGVjYjJkZjc4OTA5NTI0YjQw
MjEzZjU2MTNjNGJjNDhiMTE4YTUyNmUuLjI1MWNkYjgyZDIzYjcxZTk1M2QwMDhlZGYyYjlkYWRh
NjlmMjQyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtMzczLDYgKzM3MywxMCBAQCBzdWIgU2tpcEZ1
bmN0aW9uIHsKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogCisgICAgaWYgKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0pIHsKKyAgICAgICAg
cmV0dXJuIDE7CisgICAgfQorCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZWEzNTYwNWI0
NjU0MjZhNDQzMDdhODU1OWI1ODQyNmUzMDA5Yzg0Yi4uMmRiNjk1NzBjMDk1NzEzN2ZhYjI2ZTM1
YmZhYWQ3ZjMzMmNiYTA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTU0OCw2ICs1NDgsMTYgQEAgc3ViIEdldEF0dHJp
YnV0ZVNldHRlck5hbWUKIHN1YiBHZXRGdW5jdGlvbk5hbWUKIHsKICAgICBteSAoJGNsYXNzTmFt
ZSwgJGZ1bmN0aW9uKSA9IEBfOworCisgICAgbXkgJHNjb3BlTmFtZSA9ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9OworICAgIGlmICgh
JHNjb3BlTmFtZSkgeworICAgICAgICAkc2NvcGVOYW1lID0gc3Vic3RyICRjbGFzc05hbWUsIDI7
CisgICAgfQorCisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSlNCdWlsdGluIn0pIHsKKyAgICAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19s
Y2ZpcnN0KCRzY29wZU5hbWUpIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPm5hbWUpIC4gIkNvZGVHZW5lcmF0b3IiOworICAgIH0KKwogICAgIG15ICRr
aW5kID0gJGZ1bmN0aW9uLT5pc1N0YXRpYyA/ICJDb25zdHJ1Y3RvciIgOiAiUHJvdG90eXBlIjsK
ICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAka2lu
ZCAuICJGdW5jdGlvbiIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+bmFtZSk7CiB9CkBAIC0xNzMzLDYgKzE3NDMsOCBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgIG15ICRpbXBsVHlwZSA9IEdldEltcGxDbGFzc05hbWUoJGludGVyZmFj
ZU5hbWUpOwogICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluSW1wbCgkaW1wbFR5cGUpOwogCisgICAg
QWRkSW5jbHVkZXNGb3JKU0J1aWx0aW5NZXRob2RzKCRpbnRlcmZhY2UpOworCiAgICAgQGltcGxD
b250ZW50ID0gKCk7CiAKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxudXNpbmcgbmFtZXNwYWNl
IEpTQztcblxuIik7CkBAIC0xNzQ5LDYgKzE3NjEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSAmJiAk
ZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDE7CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhl
YWRlciJ9OwogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUJpbmRpbmcifTsKKyAgICAgICAgICAgIG5leHQgaWYgJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifTsKIAog
ICAgICAgICAgICAgbXkgJG5lZWRzQXBwbGVDb3B5cmlnaHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFwcGxlQ29weXJpZ2h0In07CiAgICAgICAgICAgICBp
ZiAoJG5lZWRzQXBwbGVDb3B5cmlnaHQpIHsKQEAgLTE5MDcsMTIgKzE5MjAsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTGVuZ3RoID0gR2V0
RnVuY3Rpb25MZW5ndGgoJGZ1bmN0aW9uKTsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIs
ICRmdW5jdGlvbkxlbmd0aCk7CiAKLSAgICAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwotICAg
ICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRlIikgaWYgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3REZWxldGFibGUifTsKLSAgICAgICAgICAg
IHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFibGUifTsKLSAgICAgICAgICAgIHB1c2goQHNw
ZWNpYWxzLCAiSlNDOjpGdW5jdGlvbiIpOwotICAgICAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNw
ZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwotICAgICAgICAgICAg
cHVzaChAaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CisgICAgICAgICAgICBwdXNoKEBoYXNoU3Bl
Y2lhbHMsIENvbXB1dGVGdW5jdGlvblNwZWNpYWwoJGludGVyZmFjZSwgJGZ1bmN0aW9uKSk7CiAK
ICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKICAgICAgICAgICAgIGlmICgkY29uZGl0
aW9uYWwpIHsKQEAgLTE5ODMsMTQgKzE5OTEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICBteSAkZnVuY3Rpb25MZW5ndGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkZnVuY3Rp
b24pOwogICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkZnVuY3Rpb25MZW5ndGgpOwogCi0gICAg
ICAgIG15IEBzcGVjaWFscyA9ICgpOwotICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxl
dGUiKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdERl
bGV0YWJsZSJ9Ci0gICAgICAgICAgIHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiVW5mb3JnZWFibGUifQotICAgICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiVW5mb3JnZWFibGUifTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMs
ICJEb250RW51bSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTm90RW51bWVyYWJsZSJ9OwotICAgICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6RnVuY3Rp
b24iKTsKLSAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAi
LCBAc3BlY2lhbHMpIDogIjAiOwotICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICRzcGVjaWFs
KTsKKyAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCBDb21wdXRlRnVuY3Rpb25TcGVjaWFsKCRp
bnRlcmZhY2UsICRmdW5jdGlvbikpOwogCiAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKICAg
ICAgICAgaWYgKCRjb25kaXRpb25hbCkgewpAQCAtMjc5MCw2ICsyNzkxLDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgbXkgJGluQXBwbGVDb3B5cmlnaHQgPSAwOwogICAg
ICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAg
ICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tQmluZGluZyJ9OworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9OwogICAgICAgICAgICAg
bXkgJG5lZWRzQXBwbGVDb3B5cmlnaHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkFwcGxlQ29weXJpZ2h0In07CiAgICAgICAgICAgICBpZiAoJG5lZWRzQXBw
bGVDb3B5cmlnaHQpIHsKICAgICAgICAgICAgICAgICBpZiAoISRpbkFwcGxlQ29weXJpZ2h0KSB7
CkBAIC00MjUyLDYgKzQyNTQsOCBAQCBzdWIgR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5CiAg
ICAgICAgIAogICAgICAgICBpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0Z1bmN0aW9uLykgewog
ICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4iOworICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQnVpbHRpbi8pIHsK
KyAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVy
YXRvcj4iOwogICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJ
bnRlZ2VyLykgewogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICIiOwogICAgICAgICB9
IGVsc2UgewpAQCAtNTAwNCw0ICs1MDA4LDUxIEBAIHN1YiBIZWFkZXJOZWVkc1Byb3RvdHlwZURl
Y2xhcmF0aW9uCiAgICAgcmV0dXJuIElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpIHx8ICRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbU5hbWVkR2V0dGVyT25Qcm90
b3R5cGUifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21EZWZp
bmVPd25Qcm9wZXJ0eU9uUHJvdG90eXBlIn07CiB9CiAKK3N1YiBDb21wdXRlRnVuY3Rpb25TcGVj
aWFsCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRmdW5jdGlvbiA9IHNo
aWZ0OworCisgICAgbXkgQHNwZWNpYWxzID0gKCk7CisgICAgcHVzaChAc3BlY2lhbHMsICJEb250
RGVsZXRlIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJO
b3REZWxldGFibGUifQorICAgICAgIHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiVW5mb3JnZWFibGUifQorICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJVbmZvcmdlYWJsZSJ9OworICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVu
dW0iKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVu
dW1lcmFibGUifTsKKyAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6QnVp
bHRpbiIpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6
OkZ1bmN0aW9uIik7CisgICAgfQorICAgIHJldHVybiAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIg
fCAiLCBAc3BlY2lhbHMpIDogIjAiOworfQorCitzdWIgVXNlSlNCdWlsdGlucworeworICAgIG15
ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJm
YWNlLT5mdW5jdGlvbnN9KSB7CisgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgICAgICByZXR1cm4gMTsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gMAorfQorCitzdWIgQWRkSW5jbHVkZXNGb3JK
U0J1aWx0aW5NZXRob2RzKCkKK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisKKyAgICBm
b3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CisgICAgICAg
IG5leHQgdW5sZXNzICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTQnVpbHRpbiJ9KTsKKyAgICAgICAgbXkgJHNjb3BlTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRCeSJ9OworICAgICAgICBpZiAo
ISRzY29wZU5hbWUpIHsKKyAgICAgICAgICAgICRzY29wZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1l
OworICAgICAgICB9CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCRzY29wZU5hbWUgLiAiQnVp
bHRpbnMuaCIsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29u
ZGl0aW9uYWwifSk7CisKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCit9CisKIDE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRl
eCA5ZTFhNTVhZmQyYzhmOTg0YjBiMzBmY2NiYzUzYTEzNjczZWVkMmE5Li41ZTU4NDhlZWEyZDAx
MDhjMjJmZGJjOWQwZDlmZTI2NDk1ZTA3OTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTczLDYgKzczLDcgQEAgSW1wbGVt
ZW50ZWRBcz0qCiBJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3RvcgogSW50ZXJmYWNlTmFtZT0q
CiBJc1dlYWtDYWxsYmFjaworSlNCdWlsdGluCiBKU0N1c3RvbURlZmluZU93blByb3BlcnR5CiBK
U0N1c3RvbURlZmluZU93blByb3BlcnR5T25Qcm90b3R5cGUKIEpTQ3VzdG9tRmluYWxpemUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKaW5kZXggMmUzNTVhZjk3N2I0NDkzZmVjNWNhZDc3NWQwNjNhYWI0MGMxZjQyYS4uYTAy
YWU5ZWM4NmNjYTdjYjcyN2Y2YmMyOWE0YzdiNDgxN2Y2YTVkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTUx
LDYgKzUxLDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRlc3ROb2RlLmgi
CiAjaW5jbHVkZSAiVGVzdE9iai5oIgorI2luY2x1ZGUgIlRlc3RPYmpCdWlsdGlucy5oIgogI2lu
Y2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgImJvb2wuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3Jp
cHRWYWx1ZS5oPgpAQCAtNjIyLDYgKzYyMyw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJjdXN0b21NZXRob2RX
aXRoQXJncyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRo
b2RXaXRoQXJncyksIChpbnRwdHJfdCkgKDMpIH0gfSwKICAgICB7ICJjdXN0b21CaW5kaW5nTWV0
aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUJpbmRpbmdN
ZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAiY3VzdG9tQmluZGluZ01ldGhvZFdp
dGhBcmdzIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbUJpbmRp
bmdNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkgKDMpIH0gfSwKKyAgICB7ICJqc0J1aWx0aW5N
ZXRob2QiLCBKU0M6OkJ1aWx0aW4sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxCdWlsdGluR2VuZXJhdG9yPih0ZXN0T2JqSnNCdWlsdGluTWV0aG9kQ29kZUdlbmVyYXRvciks
IChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJqc0J1aWx0aW5NZXRob2RXaXRoQXJncyIsIEpT
Qzo6QnVpbHRpbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5H
ZW5lcmF0b3I+KHRlc3RPYmpKc0J1aWx0aW5NZXRob2RXaXRoQXJnc0NvZGVHZW5lcmF0b3IpLCAo
aW50cHRyX3QpICgzKSB9IH0sCiAgICAgeyAiYWRkRXZlbnRMaXN0ZW5lciIsIEpTQzo6RnVuY3Rp
b24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKSwgKGludHB0cl90KSAo
MikgfSB9LAogICAgIHsgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCBKU0M6OkZ1bmN0aW9uLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkgKDIpIH0g
fSwKICAgICB7ICJ3aXRoU2NyaXB0U3RhdGVWb2lkIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRTdGF0ZVZvaWQpLCAoaW50cHRyX3QpICgwKSB9IH0sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLmgKaW5kZXggODU0M2UxODJmNTgxMzE4MjQ1ZWI1MWVkZDhhM2JhYjU4NGU0OWM4Yy4u
OTc2ZTBhMmU0MjdiNmRjZGE2MjVhOWU4Zjk4ZTJkOTliOGQxNzRiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApA
QCAtMTQzLDYgKzE0Myw4IEBAIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGVzdE9iaiA6
IERPTU9iamVjdAogLSAodm9pZCltZXRob2RXaXRoRXhjZXB0aW9uOwogLSAodm9pZCljdXN0b21N
ZXRob2Q7CiAtICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6
KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKHZvaWQp
anNCdWlsdGluTWV0aG9kOworLSAodm9pZClqc0J1aWx0aW5NZXRob2RXaXRoQXJnczooaW50KWxv
bmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpB
cmc7CiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjoo
aWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVy
ZTsKIC0gKHZvaWQpcmVtb3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVy
OihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0
dXJlOwogLSAodm9pZCl3aXRoU2NyaXB0U3RhdGVWb2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggMDNm
ZGUxNzY4OTA3N2RjOTY4NjhhYmNmZTY4NjZiZjhhNTE0YTBhYS4uMTZkZjJlYWIzNTI3M2FjN2Fh
MGFmOWViZWMzMmVmMjI2ZWIzNzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC05NTUsNiArOTU1LDE4
IEBACiAgICAgSU1QTC0+Y3VzdG9tTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3Jl
KG9iakFyZykpOwogfQogCistICh2b2lkKWpzQnVpbHRpbk1ldGhvZAoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5qc0J1aWx0aW5NZXRob2Qo
KTsKK30KKworLSAodm9pZClqc0J1aWx0aW5NZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3Ry
QXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+anNCdWls
dGluTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOworfQorCiAt
ICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERP
TUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZQogewog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCA1YmQwOWJlYWIw
YTg0MTJlYzUwNzkzYjMzMWI5MDU4YWQxYTc1MjE3Li5iZDYyZTljYTIyYjYwNTE5ZDE1MDJhNTdl
N2NlNWQ5YTAzOTZlNDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0xMTcsNiArMTE3LDEwIEBAIGVudW0gX29wdGlvbmFsIHsg
IiIsICJPcHRpb25hbFZhbHVlMSIsICJPcHRpb25hbFZhbHVlMiIsICJPcHRpb25hbFZhbHVlMyIg
fTsKICAgICBbQ3VzdG9tQmluZGluZ10gdm9pZCBjdXN0b21CaW5kaW5nTWV0aG9kKCk7CiAgICAg
W0N1c3RvbUJpbmRpbmddIHZvaWQgY3VzdG9tQmluZGluZ01ldGhvZFdpdGhBcmdzKGxvbmcgbG9u
Z0FyZywgRE9NU3RyaW5nIHN0ckFyZywgVGVzdE9iaiBvYmpBcmcpOwogCisgICAgLy8gJ0pTQnVp
bHRpbicgZXh0ZW5kZWQgYXR0cmlidXRlCisgICAgW0pTQnVpbHRpbl0gdm9pZCBqc0J1aWx0aW5N
ZXRob2QoKTsKKyAgICBbSlNCdWlsdGluXSB2b2lkIGpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzKGxv
bmcgbG9uZ0FyZywgRE9NU3RyaW5nIHN0ckFyZywgVGVzdE9iaiBvYmpBcmcpOworCiAgICAgdm9p
ZCBhZGRFdmVudExpc3RlbmVyKERPTVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVy
LCBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0
ZW5lcihET01TdHJpbmcgdHlwZSwgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgb3B0aW9uYWwgYm9v
bGVhbiB1c2VDYXB0dXJlKTsKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZm9vOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMgYi9Tb3VyY2UvV2Vi
Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjIyZmQ4ZDgyOTk5NzIyYWI2
ZmNlOGY1ZDQ0MDliYTlhYmUzMGViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
Z2VuZXJhdGUtanMtYnVpbHRpbnMKQEAgLTAsMCArMSwxNDEgQEAKKyMhL3Vzci9iaW4vcHl0aG9u
CisjIENvcHlyaWdodCAoQykgMjAxNSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisjIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyMgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGZpbGVjbXAKK2ltcG9y
dCBvcworaW1wb3J0IHN1YnByb2Nlc3MKKworZnJvbSBzdHJpbmcgaW1wb3J0IFRlbXBsYXRlCisK
KworcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorcGFyc2VyLmFkZF9hcmd1bWVu
dCgnLS1vdXRwdXRfZGlyJywgZGVmYXVsdD0nJywgaGVscD0nb3V0cHV0IGRpcmVjdG9yeScpCitw
YXJzZXIuYWRkX2FyZ3VtZW50KCctLWlucHV0JywgaGVscD0ncGF0aCB0byBpbnB1dCBKUyBmaWxl
JykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0td2ViY29yZV9kaXInLCBoZWxwPSdwYXRoIHRvIFdl
YkNvcmUgZGlyZWN0b3J5JykKKworYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKK2ZpbGVuYW1l
ID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKGFyZ3MuaW5wdXQpKVswXQorCisj
IGdlbmVyYXRlIEpTIGJ1aWx0aW5zCituYW1lc3BhY2UgPSAiV2ViQ29yZSIKK3ByZWZpeCA9ICJX
RUJDT1JFIiArIGZpbGVuYW1lLnVwcGVyKCkKK291dHB1dCA9IG9zLnBhdGguam9pbihhcmdzLm91
dHB1dF9kaXIsIGZpbGVuYW1lICsgIkJ1aWx0aW5zIikKK2pzY19nZW5lcmF0ZV9idWlsdGluX3Nj
cmlwdCA9IG9zLnBhdGguam9pbihhcmdzLndlYmNvcmVfZGlyLCAiLi4iLCAiSmF2YVNjcmlwdENv
cmUiLCAiZ2VuZXJhdGUtanMtYnVpbHRpbnMiKQorCitzdWJwcm9jZXNzLmNhbGwoWyJweXRob24i
LCBqc2NfZ2VuZXJhdGVfYnVpbHRpbl9zY3JpcHQsICItLW91dHB1dCIsIG91dHB1dCwgIi0tbmFt
ZXNwYWNlIiwgbmFtZXNwYWNlLCAiLS1wcmVmaXgiLCBwcmVmaXgsIGFyZ3MuaW5wdXRdLCBzdGRl
cnI9c3VicHJvY2Vzcy5TVERPVVQpCisKKyMgZ2VuZXJhdGUgSlMgYnVpbHRpbnMgd3JhcHBlcgor
b3V0cHV0X2Jhc2UgPSBvdXRwdXQgKyAiV3JhcHBlciIKKworYnVpbHRpbnNXcmFwcGVySGVhZGVy
ID0gb3BlbihvdXRwdXRfYmFzZSArICIuaC50bXAiLCAidyIpCisKK2J1aWx0aW5zV3JhcHBlckhl
YWRlci53cml0ZShUZW1wbGF0ZSgKKyIiIgorLyogR2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWpzLWJ1
aWx0aW5zIGRvIG5vdCBoYW5kIGVkaXQuICovCisKKy8qCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKKyAqLworCisjaWZuZGVmICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVyX2gKKyNkZWZpbmUg
JHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXJfaAorCisjaW5jbHVkZSAiJHtGaWxlbmFtZX1CdWls
dGlucy5oIgorI2luY2x1ZGUgPGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmg+
CisjaW5jbHVkZSA8YnVpbHRpbnMvQnVpbHRpblV0aWxzLmg+CisjaW5jbHVkZSA8cnVudGltZS9J
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgJHtGaWxlbmFtZX1C
dWlsdGluc1dyYXBwZXIgOiBwcml2YXRlIEpTQzo6V2Vha0hhbmRsZU93bmVyCit7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXIoSlNDOjpWTSogdm0pCisg
ICAgICAgIDogbV92bSgqdm0pCisgICAgICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fRlVO
Q1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVMpCisjZGVmaW5lIElOSVRJQUxJWkVf
QlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgLCBtXyMj
bmFtZSMjU291cmNlKEpTQzo6bWFrZVNvdXJjZShTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJh
bChzXyMjbmFtZSwgbGVuZ3RoKSkpCisgICAgICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU4o
SU5JVElBTElaRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKQorI3VuZGVmIElOSVRJQUxJWkVfQlVJ
TFRJTl9TT1VSQ0VfTUVNQkVSUworICAgIHsKKyAgICB9CisKKyNkZWZpbmUgRVhQT1NFX0JVSUxU
SU5fRVhFQ1VUQUJMRVMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpIFxcCisgICAgSlNDOjpV
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogbmFtZSMjRXhlY3V0YWJsZSgpOyBcXAorICAgIGNv
bnN0IEpTQzo6U291cmNlQ29kZSYgbmFtZSMjU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV8jI25h
bWUjI1NvdXJjZTsgfQorICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU4oRVhQT1NFX0JVSUxU
SU5fRVhFQ1VUQUJMRVMpCisjdW5kZWYgRVhQT1NFX0JVSUxUSU5fRVhFQ1VUQUJMRVMKKworICAg
ICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5f
SURFTlRJRklFUl9BQ0NFU1NPUikKKworcHJpdmF0ZToKKyAgICBKU0M6OlZNJiBtX3ZtOworCisg
ICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKERFQ0xBUkVfQlVJTFRJ
Tl9OQU1FUykKKworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwg
ZnVuY3Rpb25OYW1lLCBsZW5ndGgpIFxcCisgICAgSlNDOjpTb3VyY2VDb2RlIG1fIyNuYW1lIyNT
b3VyY2U7XFwKKyAgICBKU0M6OldlYWs8SlNDOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZT4g
bV8jI25hbWUjI0V4ZWN1dGFibGU7CisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihERUNM
QVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMpCisjdW5kZWYgREVDTEFSRV9CVUlMVElOX1NPVVJD
RV9NRU1CRVJTCisKK307CisKKyNkZWZpbmUgREVGSU5FX0JVSUxUSU5fRVhFQ1VUQUJMRVMobmFt
ZSwgZnVuY3Rpb25OYW1lLCBsZW5ndGgpIFxcCitpbmxpbmUgSlNDOjpVbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZSogJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXI6Om5hbWUjI0V4ZWN1dGFibGUo
KSBcXAore1xcCisgICAgaWYgKCFtXyMjbmFtZSMjRXhlY3V0YWJsZSlcXAorICAgICAgICBtXyMj
bmFtZSMjRXhlY3V0YWJsZSA9IEpTQzo6V2VhazxKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlPihKU0M6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKG1fdm0sIG1fIyNuYW1lIyNTb3VyY2Us
IGZ1bmN0aW9uTmFtZSMjUHVibGljTmFtZSgpLCBzXyMjbmFtZSMjQ29uc3RydWN0QWJpbGl0eSks
IHRoaXMsICZtXyMjbmFtZSMjRXhlY3V0YWJsZSk7XFwKKyAgICByZXR1cm4gbV8jI25hbWUjI0V4
ZWN1dGFibGUuZ2V0KCk7XFwKK30KKyR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU4oREVGSU5FX0JV
SUxUSU5fRVhFQ1VUQUJMRVMpCisjdW5kZWYgREVGSU5FX0JVSUxUSU5fRVhFQ1VUQUJMRVMKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gJHtGaWxlbmFtZX1CdWlsdGluc1dy
YXBwZXJfaAorIiIiKS5zdWJzdGl0dXRlKGRpY3QoRmlsZW5hbWU9ZmlsZW5hbWUsIFByZWZpeD1w
cmVmaXgpKSkKKworYnVpbHRpbnNXcmFwcGVySGVhZGVyLmNsb3NlKCkKKworaWYgKG5vdCBvcy5w
YXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuaCIpKSBvciAobm90IGZpbGVjbXAuY21wKG91dHB1
dF9iYXNlICsgIi5oLnRtcCIsIG91dHB1dF9iYXNlICsgIi5oIiwgc2hhbGxvdz1GYWxzZSkpOgor
ICAgIGlmIChvcy5wYXRoLmV4aXN0cyhvdXRwdXRfYmFzZSArICIuaCIpKToKKyAgICAgICAgb3Mu
cmVtb3ZlKG91dHB1dF9iYXNlICsgIi5oIikKKyAgICBvcy5yZW5hbWUob3V0cHV0X2Jhc2UgKyAi
LmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiKQorZWxzZToKKyAgICBvcy5yZW1vdmUob3V0cHV0
X2Jhc2UgKyAiLmgudG1wIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhODcwMmU3NjNjM2U3NmQwYmU3NjM5YzI4NGRhMDdj
YTk0ODg3MzFiLi45MzUxZTM5YzYzYWFiYmQ4YjEwOGUyY2MwYjkzYmQxYTFkMjE0NmQ3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDktMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFi
bGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEldIEltcGxlbWVudCBSZWFk
YWJsZVN0cmVhbSBwaXBlVGhyb3VnaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ3NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgUmViYXNlZCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuCisgICAgICAgIEFk
ZGluZyBuZXcgdGVzdHMgdG8gaW1wcm92ZSBwaXBlVGhyb3VnaCBjb3ZlcmFnZS4KKworICAgICAg
ICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbDog
QWRkZWQuCisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQt
Y2hlY2tzLWV4cGVjdGVkLnR4dDoKKwogMjAxNS0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIHRpbWUgZWxlbWVudCBzaG91bGQgdXNlIEhUTUxUaW1lRWxl
bWVudCBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUt
c3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVh
ZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWUwNjFj
YTkwNmQ0MjBmMTVmMTNkN2I0NTEwY2Y1M2VjZDIzNmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhy
b3VnaCBzaG91bGQgdGhyb3cgd2hlbiAidGhpcyIgaGFzIG5vIHBpcGVUbyBtZXRob2QgCitQQVNT
IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBw
YXNzZWQgYXJndW1lbnQgaXMgbm90IGFuIG9iamVjdCAKK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJv
dG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIGNhbGxlZCBnZXR0ZXJzIGFyZSB0
aHJvd2luZyAKK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3Vs
ZCB3b3JrIHdpdGggbWlzc2luZyBwYXJhbWV0ZXJzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sIGIvTGF5b3V0VGVzdHMv
c3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Yjlh
NjhiMzJiYzRiN2JiZWZmYjhjZDU3Njc0MzdiN2E1YzRhODQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbApAQCAt
MCwwICsxLDgyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL2dj
LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIGlu
cHV0ID0geworICAgICAgICByZWFkYWJsZTogeyB9LAorICAgICAgICB3cml0YWJsZTogeyB9Cisg
ICAgfTsKKyAgICB2YXIgb3B0aW9ucyA9IHsgfTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBl
RXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3Vn
aC5jYWxsKHVuZGVmaW5lZCwgaW5wdXQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dz
KG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaC5jYWxsKG51bGwsIGlucHV0LCBvcHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5
cGUucGlwZVRocm91Z2guY2FsbCgxLCBpbnB1dCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90
aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90
eXBlLnBpcGVUaHJvdWdoLmNhbGwoeyAicGlwZVRvIjogInRlc3QiIH0sIGlucHV0LCBvcHRpb25z
KTsgfSk7Cit9LCAnUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0
aHJvdyB3aGVuICJ0aGlzIiBoYXMgbm8gcGlwZVRvIG1ldGhvZCcpOworCit0ZXN0KGZ1bmN0aW9u
KCkgeworICAgIHZhciBvcHRpb25zID0geyB9OworICAgIHZhciB0aGlzVmFsdWUgPSB7CisgICAg
ICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCk7
CisgICAgICAgIH0KKyAgICB9OworCisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCks
IGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0
aGlzVmFsdWUsIG51bGwsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBl
RXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3Vn
aC5jYWxsKHRoaXNWYWx1ZSwgdW5kZWZpbmVkLCBvcHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIHBhc3NlZCBhcmd1
bWVudCBpcyBub3QgYW4gb2JqZWN0Jyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9w
dGlvbnMgPSB7IH07CisgICAgdmFyIGVycm9yID0gbmV3IFR5cGVFcnJvcigicG90YXRvIik7CisK
KyAgICB2YXIgdGhpc1dyb25nVmFsdWUgPSB7CisgICAgICAgIGdldCBwaXBlVG8oKSB7CisgICAg
ICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAgICAgfQorICAgIH07CisgICAgYXNzZXJ0X3Rocm93
cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3Vn
aC5jYWxsKHRoaXNXcm9uZ1ZhbHVlLCB7IHJlYWRhYmxlOiB7IH0sIHdyaXRhYmxlOiB7IH0gfSwg
b3B0aW9ucyk7IH0pOworCisgICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAgICAgcGlwZVRvOiBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoKTsKKyAgICAgICAgfQor
ICAgIH07CisgICAgdmFyIHdyb25nSW5wdXQgPSB7CisgICAgICAgIHJlYWRhYmxlOiB7IH0sCisg
ICAgICAgIGdldCB3cml0YWJsZSgpIHsKKyAgICAgICAgICAgIHRocm93IGVycm9yOworICAgICAg
ICB9CisgICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzKGVycm9yLCBmdW5jdGlvbigpIHsgUmVhZGFi
bGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB3cm9uZ0lucHV0
LCBvcHRpb25zKTsgfSk7CisKKyAgICB2YXIgd3JvbmdJbnB1dDIgPSB7CisgICAgICAgIGdldCBy
ZWFkYWJsZSgpIHsKKyAgICAgICAgICAgIHRocm93IGVycm9yOworICAgICAgICB9LAorICAgICAg
ICB3cml0YWJsZTogeyB9CisgICAgfTsKKyAgICB2YXIgdGhpc1ZhbHVlMiA9IHsKKyAgICAgICAg
cGlwZVRvOiBmdW5jdGlvbigpIHsgfQorICAgIH07CisgICAgYXNzZXJ0X3Rocm93cyhlcnJvciwg
ZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRo
aXNWYWx1ZTIsIHdyb25nSW5wdXQyLCBvcHRpb25zKTsgfSk7Cit9LCAnUmVhZGFibGVTdHJlYW0u
cHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuIGNhbGxlZCBnZXR0ZXJzIGFy
ZSB0aHJvd2luZycpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBjb3VudCA9IDA7Cisg
ICAgdmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICsrY291bnQ7CisgICAgICAgIH0KKyAgICB9OworCisgICAgUmVhZGFibGVTdHJlYW0u
cHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHJlYWRhYmxlOiB7IH0sIHdy
aXRhYmxlOiB7IH0gfSk7CisgICAgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdo
LmNhbGwodGhpc1ZhbHVlLCB7IHJlYWRhYmxlOiB7IH0gfSwgeyB9KTsKKyAgICBSZWFkYWJsZVN0
cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIHsgd3JpdGFibGU6IHsg
fSB9LCB7IH0pOworCisgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMyk7Cit9LCAnUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB3b3JrIHdpdGggbWlzc2luZyBwYXJh
bWV0ZXJzJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9y
ZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBl
Y3RlZC50eHQKaW5kZXggMzczNTc3ZWI5ODIxZDIwNzU0ZGU4NzcxYTYwZmFlNTIzOGM5YjVmNi4u
YjE5N2QxNjU3YjEwZjcwMDM0ZjJjMmE2NDYxNmY1YmMyZmYyNWZkMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiBQQVNTIENh
biBnZXQgdGhlIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGNvbnN0cnVjdG9yIGluZGlyZWN0bHkgCiBQ
QVNTIENhbiBnZXQgdGhlIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3RvciBpbmRp
cmVjdGx5IAotRkFJTCBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggd29ya3Mg
Z2VuZXJpY2FsbHkgb24gaXRzIHRoaXMgYW5kIGl0cyBhcmd1bWVudHMgQ2FuIG9ubHkgY2FsbCBS
ZWFkYWJsZVN0cmVhbS5waXBlVGhyb3VnaCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW0K
K1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHdvcmtzIGdlbmVyaWNh
bGx5IG9uIGl0cyB0aGlzIGFuZCBpdHMgYXJndW1lbnRzIAogUEFTUyBSZWFkYWJsZVN0cmVhbVJl
YWRlciBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIG9uIGl0cyBhcmd1bWVudCAKIEZBSUwgUmVhZGFi
bGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNsb3NlZCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKG9iaiwgZ2V0dGVyTmFtZSkuZ2V0JykKIFBBU1MgUmVhZGFibGVTdHJlYW1S
ZWFkZXIucHJvdG90eXBlLmNhbmNlbCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261751</attachid>
            <date>2015-09-22 11:00:55 -0700</date>
            <delta_ts>2015-09-22 12:58:26 -0700</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-147556-20150922200037.patch</filename>
            <type>text/plain</type>
            <size>71859</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZGNhODNjOTBjZTIzOGNiYzJiYjkwZjg4MTkwMzc2MTk4YzA4ZTRkLi5lYjlkMDU0ZGNmZjU0MTNh
NTFjOGVjNGZiM2I0M2RlM2JhZWU5YjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNhYmxl
IGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGluTmFt
ZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVzLgor
ICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRpbmcg
YnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1dGFi
bGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhl
Y3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
QnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJu
YWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6OkJ1
aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6
IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFibGVz
LmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6Cisg
ICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0yMiAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE4OTYxNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNTkzMDFkMDMxNmJlM2MyNjBiMTUyMWZi
NDMzNWUwZTMyZjkwMGNjLi5iMDEwNTlmYzE0Yjc3MDhkMjg2NTMwNTAxMDMzYzM2MDg4MDlkMzZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTUtMDktMjEgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEldIElt
cGxlbWVudCBSZWFkYWJsZVN0cmVhbSBwaXBlVGhyb3VnaAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkaW5nIGluaXRpYWwgc3VwcG9ydCBmb3IgSlMgYnVp
bHRpbnMgd2l0aGluIFdlYkNvcmUuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxsb3dzIGltcGxlbWVu
dGluZyBJREwgaW50ZXJmYWNlIG1ldGhvZHMgaW4gSlMsIGJ5IHVzaW5nIHRoZSBuZXcgSlNCdWls
dGluIGtleXdvcmQuCisgICAgICAgIChObyBzdXBwb3J0IHlldCBmb3IgcHJpdmF0ZSBpZGVudGlm
aWVycywgY29uc3RydWN0b3JzIG9yIGFjY2Vzc29ycykuCisgICAgICAgIEludGVncmF0aW9uIG9m
IHRoZSBidWlsdC1pbiBleGVjdXRhYmxlcyBhbmQgbmFtZXMgaXMgaW1wbGVtZW50ZWQgd2l0aGlu
IFdlYkNvcmVKU0NsaWVudERhdGEuCisgICAgICAgIFR3byBmaWxlcyBhcmUgZ2VuZXJhdGVkIGZv
ciBlYWNoIEpTIGJ1aWx0aW4gZmlsZToKKyAgICAgICAgLSBidWlsdGluIGgvY3BwIGZpbGVzIHNp
bWlsYXIgdG8gSlNDQnVpbHRpbnMuY3BwLy5oLCBnZW5lcmF0ZWQgdGhyb3VnaCBXZWJDb3JlL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zIGZyb20gSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRp
bnMpCisgICAgICAgIC0gQSBidWlsdGluIHdyYXBwZXIgZmlsZSBtaW1pY2tpbmcgQnVpbHRpbkV4
ZWN1dGFibGVzIChnZW5lcmF0ZWQgZnJvbSBXZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zKQor
ICAgICAgICBDb250cmFyeSB0byBKU0MsIGVhY2gganMgZmlsZSBpcyBnZW5lcmF0aW5nIGl0cyBv
d24gY3BwL2ggZmlsZS4KKyAgICAgICAgVGhpcyBhbGxvd3MgaW5jbHVkaW5nIHRob3NlIGZpbGVz
IHdpdGhpbiB0aGUgSlNYWC5jcHAvLmggZmlsZXMgZ2VuZXJhdGVkIGZyb20gdGhlIElETCB3aGVy
ZSBjb21waWxhdGlvbiBndWFyZCBtYXkgdGFrZSBlZmZlY3QuCisKKyAgICAgICAgRGlzYWJsZWQg
R09iamVjdCBiaW5kaW5nIGZvciBKU0J1aWx0aW4gbWV0aG9kcy4KKworICAgICAgICBUZXN0OiBz
dHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogVHJpZ2dlcmluZyBnZW5lcmF0ZS1qcy1idWlsdGlucyBmb3IgSlMgZmlsZXMu
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRm9yd2Fy
ZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6IEFkZGVkLgorICAgICAgICAqIEZv
cndhcmRpbmdIZWFkZXJzL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmg6IEFk
ZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0QWJpbGl0
eS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRs
OiBNYXJraW5nIHBpcGVUaHJvdWdoIGFzIEpTIGJ1aWx0aW4KKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6IEFkZGVkLgorICAgICAgICAocGlwZVRocm91Z2gpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDogQWRkaW5nIFJlYWRhYmxlU3Ry
ZWFtQnVpbHRpbnNXcmFwcGVyIHRvIHN0b3JlIFJlYWRhYmxlU3RyZWFtIGJ1aWx0aW4gZXhlY3V0
YWJsZQorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUpTQ2xpZW50RGF0YTo6V2ViQ29yZUpTQ2xp
ZW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlSlNDbGllbnREYXRhOjpyZWFkYWJs
ZVN0cmVhbUJ1aWx0aW5zKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXROb3JtYWxXb3JsZENsaWVu
dERhdGEpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG06IERpc2FibGVkIEdPYmplY3QgYmluZGluZyBmb3IgSlNCdWlsdGluIG1ldGhvZHMuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06IEFkZGluZyBzdXBwb3J0
IGZvciBKU0J1aWx0aW4ga2V5d29yZC4KKyAgICAgICAgKEdldEZ1bmN0aW9uTmFtZSk6CisgICAg
ICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6CisgICAgICAgIChDb21wdXRl
RnVuY3Rpb25TcGVjaWFsKToKKyAgICAgICAgKFVzZUpTQnVpbHRpbnMpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6IEFkZGluZyBKU0J1aWx0aW4uCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6
CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kKToKKyAgICAg
ICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfanNfYnVpbHRpbl9tZXRob2Rfd2l0aF9hcmdzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGpzQnVpbHRpbk1ldGhvZF0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGpzQnVpbHRpbk1ldGhv
ZFdpdGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGdlbmVyYXRlLWpzLWJ1aWx0aW5zOiBBZGRlZC4K
KwogMjAxNS0wOS0yMiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIDMyLWJpdCBZb3NlbWl0ZSBidWlsZCBmaXguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDBmY2EyZmQ0ODIwMzQ3NDAzODc5YjIxMjk0YjNhMDkwNjNi
ZGFlYTEuLmQyYTIxMTRkODE0Zjc2YWE0YTE3MzhiNTU3OGM1MmMyNDIwYzJkMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05NTIsNiArOTUyLDcgQEAKIAkJMkFGNzM4MkQxOEJC
QkY5MjAwOEE1QTM3IC8qIFN0cnVjdHVyZUlEVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBRjczODJCMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1
Y3R1cmVJRFRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMzcxRDg0MkQxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFEODQyQzE3Qzk4QjZF
MDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLzsgfTsKIAkJNDEzNTlDRjMwRkREODlBRDAwMjA2MTgw
IC8qIERhdGVDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEMjEyMDIyOTBBRDQzMTBDMDBFRDc5QjYgLyogRGF0ZUNvbnZlcnNpb24uaCAq
LzsgfTsKKwkJNDFERUExMzIxQjlGMzE2MzAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFERUExMzExQjlGMzE1
NDAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQzNDBBNDg0MUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29t
bW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQz
NDBBNDgyMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCAqLzsgfTsKIAkJNDM0MEE0
ODUxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDBBNDgzMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRo
Q29tbW9uLmggKi87IH07CiAJCTQ0NDNBRTMzMTZFMTg4RDkwMDc2RjExMCAvKiBGb3VuZGF0aW9u
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRjBFQjYxMDVDODZDNkIwMEU2REYxQiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsg
fTsKQEAgLTI3NjUsNiArMjc2Niw3IEBACiAJCTJBRjczODJBMThCQkJGOTIwMDhBNUEzNyAvKiBT
dHJ1Y3R1cmVJRFRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0cnVjdHVyZUlEVGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQUY3
MzgyQjE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJRFRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTM3MUQ4NDJDMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5bGliICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1h
Y2gtby5keWxpYiI7IG5hbWUgPSBsaWJ6LmR5bGliOyBwYXRoID0gdXNyL2xpYi9saWJ6LmR5bGli
OyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKwkJNDFERUExMzExQjlGMzE1NDAwNkQ2NUREIC8q
IEJ1aWx0aW5VdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdWlsdGlu
VXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM0MEE0ODIxQTkwNTFBRjAw
RDczQ0NBIC8qIE1hdGhDb21tb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWF0aENvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzNDBB
NDgzMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1hdGhDb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDQ5MDk3RUUwRjhGODFCNTAwNzZBMzI3IC8qIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTg3Nyw2ICs1ODc5LDcgQEAKIAkJCQlBN0Q4MDFB
MTE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCAqLywKIAkJCQlBN0Q4
MDFBMjE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmggKi8sCiAJCQkJQTc1
RUU5QjAxOEFBQjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5OYW1lcy5oICovLAorCQkJCTQxREVBMTMx
MUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCAqLywKIAkJCQlBN0E5NzlDNDE4QkU4
RDlFMDAyQzM3MzMgLyogRnVuY3Rpb24ucHJvdG90eXBlLmpzICovLAogCQkJCTdDRjlCQzVBMUI2
NUQ5QTMwMDlEQjFFRiAvKiBHbG9iYWxPYmplY3QuanMgKi8sCiAJCQkJRTM1RTAzNjExQjdBQjQ4
NTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5qcyAqLywKQEAgLTYx
NDksNiArNjE1Miw3IEBACiAJCQkJQTcwNEQ5MDMxN0EwQkFBODAwNkJBNTU0IC8qIERGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDREOTA0MTdBMEJBQTgwMDZC
QTU1NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTFCOUUyM0MxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MURFQTEzMjFCOUYzMTYzMDA2RDY1REQgLyogQnVpbHRpblV0
aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYyMDE3NzE0M0ZDRDNGMDA2OEI3N0MgLyogREZH
QWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMDU0RkExQUMzNUI0NDAwRTVC
RTU3IC8qIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2
NkUxNkIxNERGM0YxNjAwQjdCMkU0IC8qIERGR0FkamFjZW5jeUxpc3QuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVj
dXRhYmxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1
dGFibGVzLmNwcAppbmRleCA5MzcwZTdlMWZlNjU5YmFhZDEzYmQwMjliN2I5YmZmNjg0NjJiZWFj
Li43M2ViZTQ3OTkzNWZjYTc0MDlmZDkzMmY4ODliNjU4NGJlNThiNjE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcApA
QCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoVk0mLCBjb25zdCBTb3Vy
Y2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJp
bGl0eSk7CisKIEJ1aWx0aW5FeGVjdXRhYmxlczo6QnVpbHRpbkV4ZWN1dGFibGVzKFZNJiB2bSkK
ICAgICA6IG1fdm0odm0pCiAjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVS
UyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgLCBtXyMjbmFtZSMjU291cmNlKG1ha2VTb3Vy
Y2UoU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoc18jI25hbWUsIGxlbmd0aCkpKQpAQCAt
NTIsMTUgKzU0LDI1IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0
YWJsZXM6OmNyZWF0ZURlZmF1bHRDb25zdHJ1Y3RvcihDb25zdHJ1CiAgICAgY2FzZSBDb25zdHJ1
Y3RvcktpbmQ6Ok5vbmU6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5k
OjpCYXNlOgotICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1ha2VTb3Vy
Y2UoYmFzZUNvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0
QWJpbGl0eTo6Q2FuQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJ
bnRlcm5hbChtX3ZtLCBtYWtlU291cmNlKGJhc2VDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25z
dHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7CiAgICAgY2FzZSBD
b25zdHJ1Y3RvcktpbmQ6OkRlcml2ZWQ6Ci0gICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxl
SW50ZXJuYWwobWFrZVNvdXJjZShkZXJpdmVkQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3Ry
dWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QpOworICAgICAgICByZXR1
cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1fdm0sIG1ha2VTb3VyY2UoZGVyaXZlZENvbnN0
cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eTo6Q2Fu
Q29uc3RydWN0KTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKLVVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0
YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Us
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdG9yS2luZCBjb25zdHJ1Y3RvcktpbmQs
IENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkKK1VubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKGNvbnN0
IFNvdXJjZUNvZGUmIGNvZGUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIENvbnN0cnVjdEFiaWxp
dHkgY29uc3RydWN0QWJpbGl0eSkKK3sKKyAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVy
bmFsKG1fdm0sIGNvZGUsIG5hbWUsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgY29uc3RydWN0QWJp
bGl0eSk7Cit9CisKK1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhl
Y3V0YWJsZShWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIGNvZGUsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIENvbnN0cnVjdEFiaWxpdHkgY29uc3RydWN0QWJpbGl0eSkKK3sKKyAgICByZXR1cm4g
Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKHZtLCBjb2RlLCBuYW1lLCBDb25zdHJ1Y3RvcktpbmQ6
Ok5vbmUsIGNvbnN0cnVjdEFiaWxpdHkpOworfQorCitVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZSogY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291
cmNlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JL
aW5kLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCiB7CiAgICAgSlNUZXh0UG9z
aXRpb24gcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZTsKICAgICBQYXJzZXJFcnJvciBlcnJvcjsK
QEAgLTY5LDcgKzgxLDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIEJ1aWx0aW5FeGVj
dXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvbnN0IFMKICAgICBVbmxpbmtlZEZ1
bmN0aW9uS2luZCBraW5kID0gaXNQYXJzaW5nRGVmYXVsdENvbnN0cnVjdG9yID8gVW5saW5rZWRO
b3JtYWxGdW5jdGlvbiA6IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uOwogICAgIFJlZlB0cjxTb3Vy
Y2VQcm92aWRlcj4gc291cmNlT3ZlcnJpZGUgPSBpc1BhcnNpbmdEZWZhdWx0Q29uc3RydWN0b3Ig
PyBzb3VyY2UucHJvdmlkZXIoKSA6IG51bGxwdHI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2dy
YW1Ob2RlPiBwcm9ncmFtID0gcGFyc2U8UHJvZ3JhbU5vZGU+KAotICAgICAgICAmbV92bSwgc291
cmNlLCBJZGVudGlmaWVyKCksIGJ1aWx0aW5Nb2RlLAorICAgICAgICAmdm0sIHNvdXJjZSwgSWRl
bnRpZmllcigpLCBidWlsdGluTW9kZSwKICAgICAgICAgSlNQYXJzZXJTdHJpY3RNb2RlOjpOb3RT
dHJpY3QsIFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIGVycm9yLAogICAgICAgICAmcG9z
aXRpb25CZWZvcmVMYXN0TmV3bGluZSwgY29uc3RydWN0b3JLaW5kKTsKIApAQCAtOTUsMTYgKzEw
NywxNiBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpj
cmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwoY29uc3QgUwogICAgIG1ldGFkYXRhLT5zZXRFbmRQb3Np
dGlvbihwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKTsKICAgICBSRUxFQVNFX0FTU0VSVChtZXRh
ZGF0YSk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBjbG9zZWRWYXJpYWJsZSA6IHByb2dyYW0tPmNs
b3NlZFZhcmlhYmxlcygpKSB7Ci0gICAgICAgIGlmIChjbG9zZWRWYXJpYWJsZSA9PSBtX3ZtLnBy
b3BlcnR5TmFtZXMtPmFyZ3VtZW50cy5pbXBsKCkpCisgICAgICAgIGlmIChjbG9zZWRWYXJpYWJs
ZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1wbCgpKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIAotICAgICAgICBpZiAoY2xvc2VkVmFyaWFibGUgPT0gbV92bS5wcm9w
ZXJ0eU5hbWVzLT51bmRlZmluZWRLZXl3b3JkLmltcGwoKSkKKyAgICAgICAgaWYgKGNsb3NlZFZh
cmlhYmxlID09IHZtLnByb3BlcnR5TmFtZXMtPnVuZGVmaW5lZEtleXdvcmQuaW1wbCgpKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgfQogICAgIG1ldGFkYXRhLT5vdmVycmlkZU5hbWUobmFt
ZSk7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVudCBkdW1teVREWlZhcmlhYmxlczsKLSAgICBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlID0gVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGU6OmNyZWF0ZSgmbV92bSwgc291cmNlLCBtZXRhZGF0YSwga2luZCwgY29u
c3RydWN0QWJpbGl0eSwgZHVtbXlURFpWYXJpYWJsZXMsIFdURjo6bW92ZShzb3VyY2VPdmVycmlk
ZSkpOwotICAgIGZ1bmN0aW9uRXhlY3V0YWJsZS0+bV9uYW1lVmFsdWUuc2V0KG1fdm0sIGZ1bmN0
aW9uRXhlY3V0YWJsZSwganNTdHJpbmcoJm1fdm0sIG5hbWUuc3RyaW5nKCkpKTsKKyAgICBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlID0gVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGU6OmNyZWF0ZSgmdm0sIHNvdXJjZSwgbWV0YWRhdGEsIGtpbmQsIGNvbnN0
cnVjdEFiaWxpdHksIGR1bW15VERaVmFyaWFibGVzLCBXVEY6Om1vdmUoc291cmNlT3ZlcnJpZGUp
KTsKKyAgICBmdW5jdGlvbkV4ZWN1dGFibGUtPnNldE5hbWVWYWx1ZSh2bSwganNTdHJpbmcoJnZt
LCBuYW1lLnN0cmluZygpKSk7CiAgICAgcmV0dXJuIGZ1bmN0aW9uRXhlY3V0YWJsZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRh
Ymxlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxl
cy5oCmluZGV4IDRlNDMyMjI1ZmJkMTBkZGMzMzYwNGEzZDY2MzMyZjY0Yzg2NjFkZTMuLjZhOTgz
MjE3YTBhODg0NTdlZjA5OGZiY2I5NTEyM2Q1OWE1MjUxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmgKQEAgLTU3LDExICs1
Nyw3IEBAIHByaXZhdGU6CiAKICAgICBWTSYgbV92bTsKIAotICAgIFVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiBjb2Rl
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxp
dHkpCi0gICAgewotICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvZGUs
IG5hbWUsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgY29uc3RydWN0QWJpbGl0eSk7Ci0gICAgfQot
ICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwo
Y29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3RvcktpbmQsIENv
bnN0cnVjdEFiaWxpdHkpOworICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVC
dWlsdGluRXhlY3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENv
bnN0cnVjdEFiaWxpdHkpOwogCiAjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVS
UyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aClcCiAgICAgU291cmNlQ29kZSBtXyMjbmFtZSMj
U291cmNlOyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVz
LmgKaW5kZXggN2U1NDM0MmU3NTJmOWYyZDRlODM1ZWQwMzRmNDYwOWNmMzY1ZDM5Zi4uYmYyOGRi
ODNmN2JiYmEyZTZmMGJhYjk3NWI2ZTlmNGQ0YTM3ODg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtMjYsNDIgKzI2LDMxIEBACiAjaWZu
ZGVmIEJ1aWx0aW5OYW1lc19oCiAjZGVmaW5lIEJ1aWx0aW5OYW1lc19oCiAKKyNpbmNsdWRlICJC
dWlsdGluVXRpbHMuaCIKICNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5oIgogI2luY2x1ZGUg
IkpTQ0J1aWx0aW5zLmgiCiAKIG5hbWVzcGFjZSBKU0MgewotICAgIAotI2RlZmluZSBJTklUSUFM
SVNFX0JVSUxUSU5fTkFNRVMobmFtZSkgLCBtXyMjbmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAjbmFtZSkpLCBtXyMjbmFtZSMjUHJpdmF0ZU5hbWUoSWRlbnRpZmllcjo6ZnJvbVVpZChQ
cml2YXRlTmFtZShQcml2YXRlTmFtZTo6RGVzY3JpcHRpb24sIEFTQ0lJTGl0ZXJhbCgiUHJpdmF0
ZVN5bWJvbC4iICNuYW1lKSkpKQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkg
Y29uc3QgSWRlbnRpZmllciBtXyMjbmFtZTsgY29uc3QgSWRlbnRpZmllciBtXyMjbmFtZSMjUHJp
dmF0ZU5hbWU7Ci0jZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5h
bWUpIFwKLSAgICBjb25zdCBJZGVudGlmaWVyJiBuYW1lIyNQdWJsaWNOYW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV8jI25hbWU7IH0gXAotICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUjI1ByaXZhdGVO
YW1lKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWUjI1ByaXZhdGVOYW1lOyB9CiAKLSNkZWZpbmUg
SU5JVElBTElTRV9CVUlMVElOX1NZTUJPTFMobmFtZSkgSU5JVElBTElTRV9CVUlMVElOX05BTUVT
KG5hbWUpLCBtXyMjbmFtZSMjU3ltYm9sKElkZW50aWZpZXI6OmZyb21VaWQoUHJpdmF0ZU5hbWUo
UHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlN5bWJvbC4iICNuYW1lKSkp
KQotI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lNQk9MUyhuYW1lKSBERUNMQVJFX0JVSUxUSU5f
TkFNRVMobmFtZSkgY29uc3QgSWRlbnRpZmllciBtXyMjbmFtZSMjU3ltYm9sOwotI2RlZmluZSBE
RUNMQVJFX0JVSUxUSU5fU1lNQk9MX0FDQ0VTU09SKG5hbWUpIFwKLSAgICBERUNMQVJFX0JVSUxU
SU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCi0gICAgY29uc3QgSWRlbnRpZmllciYgbmFt
ZSMjU3ltYm9sKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWUjI1N5bWJvbDsgfQorI2RlZmluZSBJ
TklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKG5hbWUpIG1fcHJpdmF0ZVRvUHVibGlj
TWFwLmFkZChtXyMjbmFtZSMjUHJpdmF0ZU5hbWUuaW1wbCgpLCAmbV8jI25hbWUpOworI2RlZmlu
ZSBJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKG5hbWUpIG1fcHVibGljVG9Qcml2
YXRlTWFwLmFkZChtXyMjbmFtZS5pbXBsKCksICZtXyMjbmFtZSMjUHJpdmF0ZU5hbWUpOwogCi0j
ZGVmaW5lIElOSVRJQUxJU0VfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkobmFtZSkgbV9wcml2YXRl
VG9QdWJsaWNNYXAuYWRkKG1fIyNuYW1lIyNQcml2YXRlTmFtZS5pbXBsKCksICZtXyMjbmFtZSk7
Ci0jZGVmaW5lIElOSVRJQUxJU0VfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkobmFtZSkgbV9wdWJs
aWNUb1ByaXZhdGVNYXAuYWRkKG1fIyNuYW1lLmltcGwoKSwgJm1fIyNuYW1lIyNQcml2YXRlTmFt
ZSk7Ci0gICAgCiBjbGFzcyBCdWlsdGluTmFtZXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEJ1aWx0aW5OYW1lcyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIAogcHVibGljOgog
ICAgIEJ1aWx0aW5OYW1lcyhWTSogdm0sIENvbW1vbklkZW50aWZpZXJzKiBjb21tb25JZGVudGlm
aWVycykKICAgICAgICAgOiBtX2VtcHR5SWRlbnRpZmllcihjb21tb25JZGVudGlmaWVycy0+ZW1w
dHlJZGVudGlmaWVyKQotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUo
SU5JVElBTElTRV9CVUlMVElOX05BTUVTKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURF
TlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUykKLSAg
ICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1C
T0woSU5JVElBTElTRV9CVUlMVElOX1NZTUJPTFMpCisgICAgICAgIEpTQ19GT1JFQUNIX0JVSUxU
SU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVMpCisgICAgICAgIEpTQ19D
T01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZX05BTUUoSU5JVElBTElaRV9C
VUlMVElOX05BTUVTKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFD
SF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVpFX0JVSUxUSU5fU1lNQk9MUykKICAgICB7Ci0g
ICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVNFX1BSSVZB
VEVfVE9fUFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklF
UlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJU0VfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkp
Ci0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05f
U1lNQk9MKElOSVRJQUxJU0VfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCi0gICAgICAgIEpTQ19G
T1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVNFX1BVQkxJQ19UT19QUklWQVRF
X0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9Q
RVJUWV9OQU1FKElOSVRJQUxJU0VfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCi0gICAgICAgIEpT
Q19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJ
QUxJU0VfUFVCTElDX1RPX1BSSVZBVEVfRU5UUlkpCisgICAgICAgIEpTQ19GT1JFQUNIX0JVSUxU
SU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQorICAg
ICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElO
SVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCisgICAgICAgIEpTQ19DT01NT05fUFJJ
VkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfUFJJVkFU
RV9UT19QVUJMSUNfRU5UUlkpCisgICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05f
TkFNRShJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAgICAgICBKU0NfQ09N
TU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFVC
TElDX1RPX1BSSVZBVEVfRU5UUlkpCisgICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElG
SUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZBVEVf
RU5UUlkpCiAgICAgfQogCiAgICAgYm9vbCBpc1ByaXZhdGVOYW1lKFN5bWJvbEltcGwmIHVpZCkg
Y29uc3Q7CkBAIC04NCwxMyArNzMsNiBAQCBwcml2YXRlOgogICAgIEJ1aWx0aW5OYW1lc01hcCBt
X3ByaXZhdGVUb1B1YmxpY01hcDsKIH07CiAKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fTkFNRVMK
LSN1bmRlZiBJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5f
SURFTlRJRklFUl9BQ0NFU1NPUgotI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9TWU1CT0xTCi0jdW5k
ZWYgSU5JVElBTElTRV9CVUlMVElOX1NZTUJPTFMKLSN1bmRlZiBERUNMQVJFX0JVSUxUSU5fU1lN
Qk9MX0FDQ0VTU09SCi0KIGlubGluZSBib29sIEJ1aWx0aW5OYW1lczo6aXNQcml2YXRlTmFtZShT
eW1ib2xJbXBsJiB1aWQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZVRvUHVibGljTWFw
LmNvbnRhaW5zKCZ1aWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5VdGlscy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0
aW5VdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3YzI5YTY1Zjg0NmFlODI1YmY2ZDZiNTU2OGVhZDdiNzhl
ZjRjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
QnVpbHRpblV0aWxzLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
Q2Fub24gSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJ1aWx0aW5VdGlsc19oCisjZGVmaW5lIEJ1aWx0
aW5VdGlsc19oCisKKyNpbmNsdWRlICJDb25zdHJ1Y3RBYmlsaXR5LmgiCisKK25hbWVzcGFjZSBK
U0MgeworCisjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUyhuYW1lKSAsIG1fIyNuYW1l
KEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgI25hbWUpKSwgbV8jI25hbWUjI1ByaXZh
dGVOYW1lKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVVpZChKU0M6OlByaXZhdGVOYW1lKEpTQzo6UHJp
dmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlByaXZhdGVTeW1ib2wuIiAjbmFt
ZSkpKSkKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IEpTQzo6SWRl
bnRpZmllciBtXyMjbmFtZTsgY29uc3QgSlNDOjpJZGVudGlmaWVyIG1fIyNuYW1lIyNQcml2YXRl
TmFtZTsKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IobmFtZSkg
XAorICAgIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbmFtZSMjUHVibGljTmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fIyNuYW1lOyB9IFwKKyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1By
aXZhdGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV8jI25hbWUjI1ByaXZhdGVOYW1lOyB9CisKKyNk
ZWZpbmUgSU5JVElBTElaRV9CVUlMVElOX1NZTUJPTFMobmFtZSkgSU5JVElBTElaRV9CVUlMVElO
X05BTUVTKG5hbWUpLCBtXyMjbmFtZSMjU3ltYm9sKEpTQzo6SWRlbnRpZmllcjo6ZnJvbVVpZChK
U0M6OlByaXZhdGVOYW1lKEpTQzo6UHJpdmF0ZU5hbWU6OkRlc2NyaXB0aW9uLCBBU0NJSUxpdGVy
YWwoIlN5bWJvbC4iICNuYW1lKSkpKQorI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fU1lNQk9MUyhu
YW1lKSBERUNMQVJFX0JVSUxUSU5fTkFNRVMobmFtZSkgY29uc3QgSlNDOjpJZGVudGlmaWVyIG1f
IyNuYW1lIyNTeW1ib2w7CisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TWU1CT0xfQUNDRVNTT1Io
bmFtZSkgXAorICAgIERFQ0xBUkVfQlVJTFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwK
KyAgICBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUjI1N5bWJvbCgpIGNvbnN0IHsgcmV0dXJu
IG1fIyNuYW1lIyNTeW1ib2w7IH0KKworY2xhc3MgSWRlbnRpZmllcjsKK2NsYXNzIFNvdXJjZUNv
ZGU7CitjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTsKK2NsYXNzIFZNOworCitKU19F
WFBPUlRfUFJJVkFURSBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4
ZWN1dGFibGUoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgY29uc3QgSWRlbnRpZmllciYsIENvbnN0
cnVjdEFiaWxpdHkpOworICAgIAorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKaW5k
ZXggMjIyM2Y2YzMwY2QxMDc0ZDg3YTBmYzdlNGM3NzA3MjYwOTU1OWRhZC4uZDhlODIyOTM5MGU1
NzdjYjQ4MGZiMGU5MjkzZjQxYmE0MmQ5YzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKQEAg
LTU5LDcgKzU5LDYgQEAgZW51bSBVbmxpbmtlZEZ1bmN0aW9uS2luZCB7CiAKIGNsYXNzIFVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6Ci0g
ICAgZnJpZW5kIGNsYXNzIEJ1aWx0aW5FeGVjdXRhYmxlczsKICAgICBmcmllbmQgY2xhc3MgQ29k
ZUNhY2hlOwogICAgIGZyaWVuZCBjbGFzcyBWTTsKIApAQCAtNzcsNiArNzYsNyBAQCBwdWJsaWM6
CiAgICAgY29uc3QgSWRlbnRpZmllciYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQog
ICAgIGNvbnN0IElkZW50aWZpZXImIGluZmVycmVkTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5m
ZXJyZWROYW1lOyB9CiAgICAgSlNTdHJpbmcqIG5hbWVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZVZhbHVlLmdldCgpOyB9CisgICAgdm9pZCBzZXROYW1lVmFsdWUoVk0mIHZtLCBKU1N0cmlu
ZyogbmFtZVZhbHVlKSB7IG1fbmFtZVZhbHVlLnNldCh2bSwgdGhpcywgbmFtZVZhbHVlKTsgfQog
ICAgIHVuc2lnbmVkIHBhcmFtZXRlckNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJD
b3VudDsgfTsKICAgICBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9wYXJzZU1vZGU7IH07CiAgICAgYm9vbCBpc0luU3RyaWN0Q29udGV4dCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNJblN0cmljdENvbnRleHQ7IH0KQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGNvbnN0IElkZW50aWZpZXImLCBFeGVjU3RhdGUmLCBjb25zdCBTb3VyY2VDb2RlJiwg
SlNPYmplY3QqJiBleGNlcHRpb24sIAogICAgICAgICBpbnQgb3ZlcnJpZGVMaW5lTnVtYmVyKTsK
IAotICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogbGluayhWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBp
bnQgb3ZlcnJpZGVMaW5lTnVtYmVyID0gLTEpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIEZ1bmN0
aW9uRXhlY3V0YWJsZSogbGluayhWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBpbnQgb3ZlcnJpZGVM
aW5lTnVtYmVyID0gLTEpOwogCiAgICAgdm9pZCBjbGVhckNvZGUoKQogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwppbmRleCA5NjQ3MTYzNmZhM2U3Y2Vj
MGEyNmJiYWY1NmEyOGQ5MjgyMTBjNTY3Li4wYWFmNGMzMGU2ZDg0MWI3NTUzOWI4Y2Y2YThiZTgx
MDEyZTljNjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMt
YnVpbHRpbnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5z
CkBAIC0zNiw2ICszNiw4IEBAIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKIHBh
cnNlci5hZGRfYXJndW1lbnQoJ2lucHV0X2ZpbGUnLCBuYXJncz0nKicsIGhlbHA9J0lucHV0IEpT
IGZpbGVzIHdoaWNoIGJ1aWx0aW5zIGdlbmVyYXRlZCBmcm9tJykKIHBhcnNlci5hZGRfYXJndW1l
bnQoJy0taW5wdXQtZGlyZWN0b3J5JywgaGVscD0nQWxsIEpTIGZpbGVzIHdpbGwgYmUgdXNlZCBh
cyBpbnB1dCBmcm9tIHRoaXMgZGlyZWN0b3J5LicpCiBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW91
dHB1dCcsIGhlbHA9J3BhdGggdG8gb3V0cHV0IGNwcCBvciBoIGZpbGUnKQorcGFyc2VyLmFkZF9h
cmd1bWVudCgnLS1wcmVmaXgnLCBkZWZhdWx0PSdKU0MnLCBoZWxwPSdwcmVmaXggdXNlZCBmb3Ig
cHVibGljIG1hY3JvcycpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW5hbWVzcGFjZScsIGRlZmF1
bHQ9J0pTQycsIGhlbHA9J0MrKyBuYW1lc3BhY2UnKQogYXJncyA9IHBhcnNlci5wYXJzZV9hcmdz
KCkKIAogY29weXJpZ2h0VGV4dCA9ICIiIiAqCkBAIC0xNTMsNiArMTU1LDkgQEAgZGVmIGdldEZ1
bmN0aW9ucyhzb3VyY2UpOgogICAgICAgICByZXN1bHQuYXBwZW5kKEZ1bmN0aW9uKGZ1bmN0aW9u
TmFtZSwgZnVuY3Rpb24sIGZ1bmN0aW9uSXNDb25zdHJ1Y3RvciwgZnVuY3Rpb25QYXJhbWV0ZXJz
KSkKICAgICByZXR1cm4gcmVzdWx0CiAKK2RlZiB3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKHdyaXRl
ciwgaGVhZGVyTmFtZXMpOgorICAgIGZvciBoZWFkZXJOYW1lIGluIGhlYWRlck5hbWVzOgorICAg
ICAgICB3cml0ZXIud3JpdGUoIiNpbmNsdWRlICIgKyBoZWFkZXJOYW1lICsgIlxuIikKIAogZGVm
IGdlbmVyYXRlQ29kZShzb3VyY2UpOgogICAgIGlucHV0RmlsZSA9IG9wZW4oc291cmNlLCAiciIp
CkBAIC0xNzksNiArMTg0LDE0IEBAIGZvciBmaWxlIGluIGFyZ3MuaW5wdXRfZmlsZToKICAgICAg
ICAgKGJhc2VOYW1lLCBmdW5jdGlvbnMsIG9iamVjdENvcHlyaWdodHMpID0gZ2VuZXJhdGVDb2Rl
KGZpbGUpCiAgICAgICAgIGNvcHlyaWdodHMuZXh0ZW5kKG9iamVjdENvcHlyaWdodHMpCiAgICAg
ICAgIGJ1aWx0aW5zLmFwcGVuZCgoYmFzZU5hbWUsIGZ1bmN0aW9ucykpCituYW1lc3BhY2UgPSBh
cmdzLm5hbWVzcGFjZQorbWFjcm9QcmVmaXggPSBhcmdzLnByZWZpeAorc2NvcGVOYW1lID0gb3Mu
cGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKGFyZ3Mub3V0cHV0KSlbMF0KK2luY2x1ZGVH
dWFyZCA9IHNjb3BlTmFtZSArICJfSCIKK2hlYWRlck5hbWUgPSBzY29wZU5hbWUgKyAiLmgiCisK
K2hlYWRlckluY2x1ZGVzID0gWyJcIkJ1aWx0aW5VdGlscy5oXCIiXSBpZiBuYW1lc3BhY2UgPT0g
IkpTQyIgZWxzZSBbIjxidWlsdGlucy9CdWlsdGluVXRpbHMuaD4iXQorY29udGVudEluY2x1ZGVz
ID0gWyJcIkJ1aWx0aW5FeGVjdXRhYmxlcy5oXCIiLCAiXCJFeGVjdXRhYmxlLmhcIiIsICJcIkpT
Q2VsbElubGluZXMuaFwiIiwgIlwiVk0uaFwiIl0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2Ug
WyI8cnVudGltZS9FeGVjdXRhYmxlLmg+IiwgIjxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+
IiwgIjxydW50aW1lL0pTQ2VsbElubGluZXMuaD4iLCAiPHJ1bnRpbWUvVk0uaD4iLCAiXCJXZWJD
b3JlSlNDbGllbnREYXRhLmhcIiJdCiAKIGNvcHlyaWdodHMgPSBsaXN0KHNldChjb3B5cmlnaHRz
KSkKIApAQCAtMTkyLDIzICsyMDUsMjEgQEAgY29weXJpZ2h0VGV4dCA9ICIvKlxuIiArIGNvcHly
aWdodEJvZHkgKyBjb3B5cmlnaHRUZXh0CiBidWlsdGluc0hlYWRlci53cml0ZSgiIiIlcwogJXMK
IAotI2lmbmRlZiBKU0NCdWlsdGluc19ICi0jZGVmaW5lIEpTQ0J1aWx0aW5zX0gKKyNpZm5kZWYg
JXMKKyNkZWZpbmUgJXMKIAotI2luY2x1ZGUgIkNvbnN0cnVjdEFiaWxpdHkuaCIKKyIiIiAlIChn
ZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQsIGluY2x1ZGVHdWFyZCwgaW5jbHVkZUd1YXJk
KSkKIAotbmFtZXNwYWNlIEpTQyB7Cit3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0aW5zSGVh
ZGVyLCBoZWFkZXJJbmNsdWRlcykKIAotY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3Mg
SWRlbnRpZmllcjsKLWNsYXNzIEpTR2xvYmFsT2JqZWN0OwotY2xhc3MgU291cmNlQ29kZTsKLWNs
YXNzIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3MgVk07CitidWlsdGluc0hlYWRl
ci53cml0ZSgiIiIKK25hbWVzcGFjZSBKU0MgeworICAgIGNsYXNzIEZ1bmN0aW9uRXhlY3V0YWJs
ZTsKK30KIAotRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShWTSYs
IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYpOworbmFtZXNw
YWNlICVzIHsKIAotIiIiICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4dCkpCisiIiIg
JSBuYW1lc3BhY2UpCiAKIGNvZGVSZWZlcmVuY2VzID0gW10KIApAQCAtMjIyLDU4ICsyMzMsNTkg
QEAgZm9yIChvYmplY3ROYW1lLCBmdW5jdGlvbnMpIGluIGJ1aWx0aW5zOgogICAgICAgICBjb2Rl
UmVmZXJlbmNlcy5hcHBlbmQoKG1hbmdsZWROYW1lLCBmdW5jdGlvbikpCiAgICAgICAgIGJ1aWx0
aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgY2hhciogc18lcztcbiIgJSBtYW5nbGVkTmFt
ZSkKICAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBpbnQgc18lc0xl
bmd0aDtcbiIgJSBtYW5nbGVkTmFtZSkKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4
dGVybiBjb25zdCBDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5O1xuIiAlIG1h
bmdsZWROYW1lKQorICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNvbnN0IEpT
Qzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eTtcbiIgJSBtYW5nbGVkTmFt
ZSkKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiXG4iKQotICAgIGJ1aWx0aW5zSGVhZGVyLndy
aXRlKCIjZGVmaW5lIEpTQ19GT1JFQUNIXyVzX0JVSUxUSU4obWFjcm8pIFxcXG4iICUgb2JqZWN0
TmFtZS5yZXBsYWNlKCIuIiwgIl8iKS51cHBlcigpKQorICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRl
KCIjZGVmaW5lICVzX0ZPUkVBQ0hfJXNfQlVJTFRJTihtYWNybykgXFxcbiIgJSAobWFjcm9QcmVm
aXgsIG9iamVjdE5hbWUucmVwbGFjZSgiLiIsICJfIikudXBwZXIoKSkpCiAgICAgZm9yIGZ1bmN0
aW9uIGluIGZ1bmN0aW9uczoKICAgICAgICAgbWFuZ2xlZE5hbWUgPSBmdW5jdGlvbi5tYW5nbGVO
YW1lKG9iamVjdE5hbWUpCiAgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIgICAgbWFjcm8o
JXMsICVzLCAlZCkgXFxcbiIgJSAoZnVuY3Rpb24ubmFtZSwgbWFuZ2xlZE5hbWUsIGxlbihmdW5j
dGlvbi5wYXJhbWV0ZXJzKSkpCiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuIikKICAgICBm
b3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgotICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgi
I2RlZmluZSBKU0NfQlVJTFRJTl8lcyAxXG4iICUgZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3RO
YW1lKS51cHBlcigpKQorICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSAlc19C
VUlMVElOXyVzIDFcbiIgJSAobWFjcm9QcmVmaXgsIGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0
TmFtZSkudXBwZXIoKSkpCiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuXG4iKQogbmFtZXMg
PSBbXQotYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTiht
YWNybylcXFxuIikKK2J1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZPUkVBQ0hfQlVJ
TFRJTihtYWNybylcXFxuIiAlIG1hY3JvUHJlZml4KQogZm9yIChjb2RlUmVmZXJlbmNlLCBmdW5j
dGlvbikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBt
YWNybyglcywgJXMsIHNfJXNMZW5ndGgpIFxcXG4iICUgKGNvZGVSZWZlcmVuY2UsIGZ1bmN0aW9u
Lm5hbWUsIGNvZGVSZWZlcmVuY2UpKQogICAgIG5hbWVzLmFwcGVuZChmdW5jdGlvbi5uYW1lKQog
CiBidWlsdGluc0hlYWRlci53cml0ZSgiXG5cbiIpCi1idWlsdGluc0hlYWRlci53cml0ZSgiI2Rl
ZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFxcXG4iKQorYnVp
bHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05B
TUUobWFjcm8pIFxcXG4iICUgbWFjcm9QcmVmaXgpCiBmb3IgbmFtZSBpbiBzb3J0ZWQoc2V0KG5h
bWVzKSk6CiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcykgXFxcbiIgJSBu
YW1lKQogYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCiAKLSNkZWZpbmUgSlNDX0RFQ0xBUkVfQlVJ
TFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwK
LSAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoVk0mKTsKKyNkZWZp
bmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1lLCBhcmd1
bWVudENvdW50KSBcXAorICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFtZSMjR2Vu
ZXJhdG9yKEpTQzo6Vk0mKTsKIAotSlNDX0ZPUkVBQ0hfQlVJTFRJTihKU0NfREVDTEFSRV9CVUlM
VElOX0dFTkVSQVRPUikKLSN1bmRlZiBKU0NfREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgorJXNf
Rk9SRUFDSF9CVUlMVElOKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCisjdW5kZWYgREVDTEFS
RV9CVUlMVElOX0dFTkVSQVRPUgogCi0jZGVmaW5lIEpTQ19CVUlMVElOX0VYSVNUUyhuYW1lKSBk
ZWZpbmVkIEpTQ19CVUlMVElOXyAjIyBuYW1lCisjZGVmaW5lICVzX0JVSUxUSU5fRVhJU1RTKG5h
bWUpIGRlZmluZWQgJXNfQlVJTFRJTl8gIyMgbmFtZQogCiB9CiAKLSNlbmRpZgorI2VuZGlmIC8v
ICVzCiAKLSIiIikKKyIiIiAlIChtYWNyb1ByZWZpeCwgbWFjcm9QcmVmaXgsIG1hY3JvUHJlZml4
LCBpbmNsdWRlR3VhcmQpKQogCiBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIiVzCiAl
cwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgorI2lu
Y2x1ZGUgIiVzIgogCi0jaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCi0jaW5jbHVkZSAi
Q29uc3RydWN0QWJpbGl0eS5oIgotI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKLSNpbmNsdWRlICJK
U0NlbGxJbmxpbmVzLmgiCi0jaW5jbHVkZSAiVk0uaCIKKyIiIiAgJSAoZ2VuZXJhdG9yU3RyaW5n
LCBjb3B5cmlnaHRUZXh0LCBoZWFkZXJOYW1lKSkKKword3JpdGVJbmNsdWRlRGlyZWN0aXZlcyhi
dWlsdGluc0ltcGxlbWVudGF0aW9uLCBjb250ZW50SW5jbHVkZXMpCisKK2J1aWx0aW5zSW1wbGVt
ZW50YXRpb24ud3JpdGUoIiIiCituYW1lc3BhY2UgJXMgeworCisiIiIgICUgKG5hbWVzcGFjZSkp
CiAKLW5hbWVzcGFjZSBKU0MgewogCi0iIiIgICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0
VGV4dCkpCiAKIGZvciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVuY2Vz
OgogICAgIHNvdXJjZSA9IGZ1bmN0aW9uLnNvdXJjZQpAQCAtMjg1LDIzICsyOTcsMzMgQEAgZm9y
IChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAgICAgIHNv
dXJjZSA9IHNvdXJjZSArICgiICAgIFwiJXNcXG5cIiBcXFxuIiAlIGxpbmUpCiAgICAgYnVpbHRp
bnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgY2hhciogc18lcyA9XG4lcztcblxuIiAlIChj
b2RlUmVmZXJlbmNlLCBzb3VyY2UpKQogICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUo
ImNvbnN0IGludCBzXyVzTGVuZ3RoID0gJWQ7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgc291cmNl
TGVuZ3RoICsgMSkpICMgKyAxIGZvciBcbgotICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAiQ29uc3Ry
dWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0IgorICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAiSlND
OjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QiCiAgICAgaWYgZnVuY3Rpb24uaXND
b25zdHJ1Y3RvcjoKLSAgICAgICAgY29uc3RydWN0QWJpbGl0eSA9ICJDb25zdHJ1Y3RBYmlsaXR5
OjpDYW5Db25zdHJ1Y3QiCi0gICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3Qg
Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eSA9ICVzO1xuXG4iICUgKGNvZGVS
ZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAjICsgMSBmb3IgXG4KKyAgICAgICAgY29uc3Ry
dWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCIKKyAgICBi
dWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkg
c18lc0NvbnN0cnVjdEFiaWxpdHkgPSAlcztcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBjb25zdHJ1
Y3RBYmlsaXR5KSkgIyArIDEgZm9yIFxuCiAKIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUo
IiIiCi0jZGVmaW5lIEpTQ19ERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0
aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLUZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUj
I0dlbmVyYXRvcihWTSYgdm0pIFxcCi17IFxcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5FeGVjdXRh
YmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGluRXhlY3V0
YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgXFwKLX0KKyNkZWZpbmUgREVGSU5FX0JVSUxU
SU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCitK
U0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJiB2bSkg
XFwKKyIiIik7CiAKLUpTQ19GT1JFQUNIX0JVSUxUSU4oSlNDX0RFRklORV9CVUlMVElOX0dFTkVS
QVRPUikKLSN1bmRlZiBKU0NfREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCitpZiAobmFtZXNwYWNl
ID09ICJKU0MiKToKKyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIntcXAorICAg
IHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFibGUoKS0+
bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2UoKSk7IFxc
CisiIiIpCitlbHNlOgorICAgIGJ1aWx0aW5OYW1lID0gc2NvcGVOYW1lWzBdLmxvd2VyKCkgKyBz
Y29wZU5hbWVbMTpdCisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ7XFwKKyAg
ICBXZWJDb3JlSlNDbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8V2ViQ29yZUpT
Q2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcXAorICAgIHJldHVybiBjbGllbnREYXRhLT4l
cygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPiVzKCkuY29k
ZU5hbWUjI1NvdXJjZSgpKTsgXFwKKyIiIiUgKGJ1aWx0aW5OYW1lLCBidWlsdGluTmFtZSkpCisK
K2J1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIifQorJXNfRk9SRUFDSF9CVUlMVElOKERF
RklORV9CVUlMVElOX0dFTkVSQVRPUikKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IK
IH0KIAotIiIiKQorIiIiJSAobWFjcm9QcmVmaXgpKQogCiBidWlsdGluc0hlYWRlci5jbG9zZSgp
CiBidWlsdGluc0ltcGxlbWVudGF0aW9uLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
M2U0NGYyN2FlYzQxNzJmZDQyYzZjMTBiMTdiMDA3YTdhMmVmMjQ2Mi4uN2VlZmM3MTcyMTA0Mzc4
OTU4ZDU3MTM4MmQyMWM1ZGMzMzg4NWVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMzMzcs
NiArMzMzNywxMCBAQCBzZXQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1dvcmtlckdsbwogc2V0KERFRElDQVRFRFdPUktF
UkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVf
RElSfS9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBzZXQoSURM
X0FUVFJJQlVURVNfRklMRSAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJp
YnV0ZXMudHh0KQogCitzZXQoV0VCQ09SRV9KU19CVUlMVElOUworICAgICR7V0VCQ09SRV9ESVJ9
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKQorCiBXRUJLSVRfSU5DTFVERV9D
T05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogIyBHZW5lcmF0ZSBJbnNwZWN0b3JPdmVybGF5UGFn
ZS5oCkBAIC0zNTU2LDYgKzM1NjAsMjEgQEAgR0VORVJBVEVfQklORElOR1MoV2ViQ29yZVRlc3RT
dXBwb3J0X1NPVVJDRVMKICAgICAke1NVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEV9CiAgICAg
JHtBRERJVElPTkFMX0JJTkRJTkdTX0RFUEVOREVOQ0lFU30pCiAKKyMgV2ViQ29yZSBKUyBCdWls
dGlucworZm9yZWFjaCAoX2J1aWx0aW5qcyAke1dFQkNPUkVfSlNfQlVJTFRJTlN9KQorICAgIGdl
dF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfYnVpbHRpbmpzfSBOQU1FX1dFKQorICAgIGFk
ZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zV3JhcHBlci5oICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
LyR7X25hbWV9QnVpbHRpbnMuY3BwCisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMKKyAgICAgICAgREVQRU5EUyAk
e19idWlsdGluanN9CisgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5wdXQgJHtfYnVp
bHRpbmpzfSAtLW91dHB1dF9kaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9IC0td2Vi
Y29yZV9kaXIgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9CisgICAgICAgIFZFUkJBVElNKQor
ICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5oCisgICAgICAgICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zV3JhcHBlci5oCisgICAgICAgICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmNwcAorICAgICkKK2Vu
ZGZvcmVhY2ggKCkKIAogQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7
V0VCQ09SRV9ESVJ9L2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcCBNYXRoTUxOYW1lcy5jcHApCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA3MzM5YzJmMmYzM2Y3MTNhOGEwNTZkODQw
MDhlNDdjNzUxODFmMGQxLi44ZmJhNjA1ODY1NGEyMGEwMDAxMTFkN2E4OGY1ZDYxYWIzNWE0NTA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0zMTAsNiArMzEwLDcgQEAKICNpbmNs
dWRlICJKU1JlYWRhYmxlU3RyZWFtLmNwcCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAiCisjaW5j
bHVkZSAiUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAiCiAjZW5kaWYKICNpbmNsdWRlICJKU1Jl
Y3QuY3BwIgogI2luY2x1ZGUgIkpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suY3BwIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYWUxMGQ1OTQ3N2RkOGRhMGQ4YmVkNzhm
ZDgzY2ExYTNkYTBmOWNhYi4uMzI0YTU1ZmRiNzAwYzI4YzE2MDYwYzdiYjNhMjQyZjEzY2ViZTkz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03OTIsNiArNzkyLDcgQEAgYWxs
IDogXAogICAgICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIFwKICAgICAk
KEpTX0RPTV9IRUFERVJTKSBcCiAgICAgJChXRUJfRE9NX0hFQURFUlMpIFwKKyAgICAkKFdFQkNP
UkVfSlNfQlVJTFRJTlMpIFwKICAgICBcCiAgICAgQ1NTR3JhbW1hci5jcHAgXAogICAgIENTU1By
b3BlcnR5TmFtZXMuY3BwIFwKQEAgLTEyNDYsNiArMTI0NywxNiBAQCBXZWJSZXBsYXlJbnB1dHMu
aCA6ICQoSU5QVVRfR0VORVJBVE9SX1NQRUNJRklDQVRJT05TKSAkKElOUFVUX0dFTkVSQVRPUl9T
Q1JJUFRTKQogCiAtaW5jbHVkZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKKyMgV2ViQ29y
ZSBKUyBCdWlsdGlucworCitXRUJDT1JFX0pTX0JVSUxUSU5TID0gXAorICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCisKK2FsbCA6ICQoV0VCQ09SRV9KU19C
VUlMVElOUzolLmpzPSVCdWlsdGlucy5jcHApCisKKyVCdWlsdGlucy5jcHA6ICUuanMKKwkkKFBZ
VEhPTikgJChXZWJDb3JlKS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICQ8IC0td2ViY29y
ZV9kaXIgJChXZWJDb3JlKQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAjIE1hYy1z
cGVjaWZpYyBydWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9idWlsdGlucy9CdWlsdGluVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjc0MTRiODMwOTM4ZGQ2
YzVhODZiMjViZTZkZjY3NTI1Njg1Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKQEAgLTAsMCArMSw0
IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0J1aWx0aW5VdGlsc19oCisjZGVmaW5lIFdlYkNvcmVf
RldEX0J1aWx0aW5VdGlsc19oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpblV0aWxz
Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ3MTJkOWJmMDU4ODRmM2Y3OTk5MjllZDZjMTQ1ZjBiM2U1ZTE2OTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJD
b3JlX0ZXRF9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZV9oCisjZGVmaW5lIFdlYkNvcmVfRldE
X1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0NvbnN0cnVjdEFiaWxpdHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0QWJpbGl0eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ0ZGNhZGNjOTNmYjZlNTc5Nzk0MWIyNWNkMDRlMTI5NTA1Y2JhYzQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1l
L0NvbnN0cnVjdEFiaWxpdHkuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0Rf
Q29uc3RydWN0QWJpbGl0eV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0NvbnN0cnVjdEFiaWxpdHlf
aAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnN0cnVjdEFiaWxpdHkuaD4KKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwK
aW5kZXggODYzYzI2NDMxOGM1NDEyMGE3MDg4OTFhMWNkYWM1M2YwNjhjYjBkMC4uNmFjMjU5NWFh
YmQ1YmFmNjU0OGNlYmNkOGEzMmFiMDBkYTgwZDIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCkBAIC0zNiw3ICszNiw3IEBACiAg
ICAgW1JhaXNlc0V4Y2VwdGlvbl0gUHJvbWlzZSBjYW5jZWwoW0RlZmF1bHQ9VW5kZWZpbmVkXSBv
cHRpb25hbCBhbnkgcmVhc29uKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBSZWFkYWJsZVN0cmVh
bVJlYWRlciBnZXRSZWFkZXIoKTsKICAgICBbQ3VzdG9tXSBQcm9taXNlIHBpcGVUbyhhbnkgc3Ry
ZWFtcywgYW55IG9wdGlvbnMpOwotICAgIFtDdXN0b21dIE9iamVjdCBwaXBlVGhyb3VnaChhbnkg
ZGVzdCwgYW55IG9wdGlvbnMpOworICAgIFtKU0J1aWx0aW5dIE9iamVjdCBwaXBlVGhyb3VnaChh
bnkgZGVzdCwgYW55IG9wdGlvbnMpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
bG9ja2VkOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzYzMmY1OGQxYmRmNWI5NzVkNTJkNmM3NGRmMzcwYjdj
YWI2Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmpzCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitmdW5jdGlvbiBwaXBlVGhyb3VnaChzdHJlYW1zLCBvcHRpb25zKQoreworICAgICJ1c2Ug
c3RyaWN0IjsKKworICAgIHRoaXMucGlwZVRvKHN0cmVhbXMud3JpdGFibGUsIG9wdGlvbnMpOwor
ICAgIHJldHVybiBzdHJlYW1zLnJlYWRhYmxlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpp
bmRleCA5ZmNhZjBlZDFlYjMzYTE4OTU3ZTllZTA5ZTFmYjEzMWQ0M2ZlOTlhLi5kMzdjODdmNTM4
NWQyZjQ5ODU3ZDhjOWNlMWM0ODlkNzJhMGQ1M2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFr
ZQpAQCAtOSw2ICs5LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlw
dENvcmUvRm9yd2FyZGluZ0hlYWRlcnMiCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9y
d2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvQVBJIgogICAgICIke0RFUklWRURfU09VUkNF
U19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlciIKKyAgICAi
JHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucyIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZSIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3
YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIiCiAgICAgIiR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGZnIgpAQCAt
Mjg5LDQgKzI5MCw0IEBAIGZpbGUoV1JJVEUgIiR7V2ViQ29yZV9QT1NUX0JVSUxEX0NPTU1BTkR9
IiAiQHhjb3B5IC95IC9zIC9kIC9mIFwiJHtERVJJVkVEX1NPVVJDCiAKIHNldChXZWJDb3JlX09V
VFBVVF9OQU1FCiAgICAgV2ViQ29yZSR7REVCVUdfU1VGRklYfQotKQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCmluZGV4IDUzNTg1ZmEwZjI3YjIyYTc5OTFmNDEzMzVhMjQwOGUyZGYwMTlmY2Uu
LmY0ZTdjNTM5ZjRkM2MyNzdhMTZkYjc5OWY5NDczZTk0ZWVmMGJiYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMzk2MCw2ICszOTYw
LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwIj4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBs
YXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1JlYWRh
YmxlU3RyZWFtQ29udHJvbGxlci5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGE3NzI4NjhmZmViOTBiZjMwMGVkZTg1NmJhODAyYjgwMzQ2YTlk
ZDMuLjA2ZDA2MmJhM2IyODFiNmM1YTNmN2VlZmJlMjJiNTBlY2M2NWFlNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1OTUs
NiArMjU5NSw3IEBACiAJCTdDNDhBNkQwMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3Bh
Y2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0
OEE2Q0UxOTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5jcHAgKi87IH07CiAJCTdD
NDhBNkQxMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNDhBNkNGMTkxQzlENjUwMDAyNjY3
NCAvKiBXZWJLaXROYW1lc3BhY2UuaCAqLzsgfTsKIAkJN0M0OTAyQTIxOEI4MjVGODAwN0Q5Mjk4
IC8qIERPTVdoZWVsRXZlbnRJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5ODlEQ0EwQUNDOEJCRDAwQTBCQzUx
IC8qIERPTVdoZWVsRXZlbnRJbnRlcm5hbC5oICovOyB9OworCQk3QzRDOTZEQzFBRDQ0ODM1MDAz
NjVBNTEgLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNTEgLyogUmVh
ZGFibGVTdHJlYW1CdWlsdGlucy5jcHAgKi87IH07CiAJCTdDNEM5NkRDMUFENDQ4MzUwMDM2NUE1
MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3Ry
ZWFtLmNwcCAqLzsgfTsKIAkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVT
dHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
NEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggKi87IH07CiAJCTdD
NEM5NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkRBMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAqLzsgfTsKQEAgLTk5ODUs
NiArOTk4Niw3IEBACiAJCTdDNDhBNkNFMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3Bh
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0TmFtZXNw
YWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0OEE2Q0YxOTFDOUQ2NTAw
MDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJLaXROYW1lc3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0
OEE2RDIxOTFDOUQ4RTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0
TmFtZXNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M0Qzk2RDgxQUQ0
NDgzNTAwMzY1QTUxIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1Jl
YWRhYmxlU3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
UmVhZGFibGVTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzRDOTZE
OTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVh
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVT
dHJlYW1SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMTEsNiAr
MTYyMTMsNyBAQAogCQk0MUEwMjNGQTFBMzlGMTNBMDBGNzIyQ0YgLyogU3RyZWFtcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJN0M0Qzk2RDgxQUQ0NDgz
NTAwMzY1QTUxIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICovLAogCQkJCTdDNEM5NkQ4
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNwcCAqLywKIAkJCQk3QzRDOTZE
OTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oICovLAogCQkJCTZDNEM5NkRB
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAgKi8sCkBA
IC0yOTQwNyw2ICsyOTQxMCw3IEBACiAJCQkJMDc3NjY0RkMxODNFNkI1QzAwMTMzQjkyIC8qIEpT
UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjY1OEZG
QTExNTIyRUYzQTAwREQ1NTk1IC8qIEpTUmFkaW9Ob2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk2NURGMzIwMTA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3QzRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogUmVhZGFibGVTdHJlYW1CdWlsdGlu
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNS
ZWFkYWJsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2QzRDOTZERTFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDExODlFRjkxQUQ4MjczNzAwQjkwQTBEIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcAppbmRleCA5Y2YwOTZiYWJhNjIwODA1
YzE1NTFkYzliNWViY2JhOWRjYTRlMzIyLi4yYjY2M2NlNzhkZWRmNzM2YjIyZmMzOTEwNTUyNGIy
ZGEzYmVkMDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRh
YmxlU3RyZWFtQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jl
YWRhYmxlU3RyZWFtQ3VzdG9tLmNwcApAQCAtNTMsMTIgKzUzLDYgQEAgSlNWYWx1ZSBKU1JlYWRh
YmxlU3RyZWFtOjpwaXBlVG8oRXhlY1N0YXRlJiBzdGF0ZSkKICAgICByZXR1cm4gc3RhdGUudm0o
KS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGVycm9yKTsKIH0KIAotSlNWYWx1ZSBKU1JlYWRhYmxl
U3RyZWFtOjpwaXBlVGhyb3VnaChFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIEpTVmFsdWUgZXJy
b3IgPSBjcmVhdGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgicGlwZVRocm91Z2ggaXMgbm90
IGltcGxlbWVudGVkIikpOwotICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhjZXB0aW9uKCZz
dGF0ZSwgZXJyb3IpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4
IDQzMDJkNjhlNWM4YzZkNzg3ZDQ3MjYyNDE0YmNlYjk4ZDIyZTAxOWUuLmFjODlhZjNiNTZjY2I2
NzQxYjU0MzJiNTNiMWZiZjFmMGEwNWNlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTIzLDYgKzIzLDcgQEAKICNkZWZpbmUg
V2ViQ29yZUpTQ2xpZW50RGF0YV9oCiAKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNp
bmNsdWRlICJSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlci5oIgogI2luY2x1ZGUgIldlYkNv
cmVUeXBlZEFycmF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzUsNyArMzYsMTAgQEAgY2xhc3MgV2ViQ29yZUpTQ2xp
ZW50RGF0YSA6IHB1YmxpYyBKU0M6OlZNOjpDbGllbnREYXRhIHsKICAgICBmcmllbmQgdm9pZCBp
bml0Tm9ybWFsV29ybGRDbGllbnREYXRhKEpTQzo6Vk0qKTsKIAogcHVibGljOgotICAgIFdlYkNv
cmVKU0NsaWVudERhdGEoKQorICAgIFdlYkNvcmVKU0NsaWVudERhdGEoSlNDOjpWTSYgdm0pCisj
aWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorICAgICAgICA6IG1fcmVhZGFibGVTdHJlYW1CdWlsdGlu
cygmdm0pCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC03MSwxNCArNzUsMjIgQEAgcHVibGlj
OgogICAgICAgICBtX3dvcmxkU2V0LnJlbW92ZSgmd29ybGQpOwogICAgIH0KIAorI2lmIEVOQUJM
RShTVFJFQU1TX0FQSSkKKyAgICBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlciYgcmVhZGFi
bGVTdHJlYW1CdWlsdGlucygpIHsgcmV0dXJuIG1fcmVhZGFibGVTdHJlYW1CdWlsdGluczsgfQor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgSGFzaFNldDxET01XcmFwcGVyV29ybGQqPiBtX3dvcmxk
U2V0OwogICAgIFJlZlB0cjxET01XcmFwcGVyV29ybGQ+IG1fbm9ybWFsV29ybGQ7CisKKyNpZiBF
TkFCTEUoU1RSRUFNU19BUEkpCisgICAgUmVhZGFibGVTdHJlYW1CdWlsdGluc1dyYXBwZXIgbV9y
ZWFkYWJsZVN0cmVhbUJ1aWx0aW5zOworI2VuZGlmCiB9OwogCiBpbmxpbmUgdm9pZCBpbml0Tm9y
bWFsV29ybGRDbGllbnREYXRhKEpTQzo6Vk0qIHZtKQogewotICAgIFdlYkNvcmVKU0NsaWVudERh
dGEqIHdlYkNvcmVKU0NsaWVudERhdGEgPSBuZXcgV2ViQ29yZUpTQ2xpZW50RGF0YTsKKyAgICBX
ZWJDb3JlSlNDbGllbnREYXRhKiB3ZWJDb3JlSlNDbGllbnREYXRhID0gbmV3IFdlYkNvcmVKU0Ns
aWVudERhdGEoKnZtKTsKICAgICB2bS0+Y2xpZW50RGF0YSA9IHdlYkNvcmVKU0NsaWVudERhdGE7
IC8vIH5WTSBkZWxldGVzIHRoaXMgcG9pbnRlci4KICAgICB3ZWJDb3JlSlNDbGllbnREYXRhLT5t
X25vcm1hbFdvcmxkID0gRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoKnZtLCB0cnVlKTsKICAgICB2
bS0+bV90eXBlZEFycmF5Q29udHJvbGxlciA9IGFkb3B0UmVmKG5ldyBXZWJDb3JlVHlwZWRBcnJh
eUNvbnRyb2xsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCBlY2IyZGY3ODkwOTUyNGI0MDIxM2Y1
NjEzYzRiYzQ4YjExOGE1MjZlLi4yNTFjZGI4MmQyM2I3MWU5NTNkMDA4ZWRmMmI5ZGFkYTY5ZjI0
MmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTM3Myw2ICszNzMsMTAgQEAgc3ViIFNraXBGdW5jdGlv
biB7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KIAorICAgIGlmICgkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgIHJldHVy
biAxOworICAgIH0KKwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDdiZTAxNzljZDk1YWVk
YzRiMjA1NjBjNzZhMDIzY2ZjM2RlY2UxOTguLjVhMTZlNjhlNDYwMGQwOTAxOTgyNGQ0Y2EzNzBj
ZTc5NmIyNjUwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCkBAIC01NDgsNiArNTQ4LDE2IEBAIHN1YiBHZXRBdHRyaWJ1dGVT
ZXR0ZXJOYW1lCiBzdWIgR2V0RnVuY3Rpb25OYW1lCiB7CiAgICAgbXkgKCRjbGFzc05hbWUsICRm
dW5jdGlvbikgPSBAXzsKKworICAgIG15ICRzY29wZU5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKKyAgICBpZiAoISRzY29w
ZU5hbWUpIHsKKyAgICAgICAgJHNjb3BlTmFtZSA9IHN1YnN0ciAkY2xhc3NOYW1lLCAyOworICAg
IH0KKworICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJz
dCgkc2NvcGVOYW1lKSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5uYW1lKSAuICJDb2RlR2VuZXJhdG9yIjsKKyAgICB9CisKICAgICBteSAka2luZCA9
ICRmdW5jdGlvbi0+aXNTdGF0aWMgPyAiQ29uc3RydWN0b3IiIDogIlByb3RvdHlwZSI7CiAgICAg
cmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gJGtpbmQgLiAi
RnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPm5hbWUpOwogfQpAQCAtMTczMyw2ICsxNzQzLDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICBteSAkaW1wbFR5cGUgPSBHZXRJbXBsQ2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1l
KTsKICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwoJGltcGxUeXBlKTsKIAorICAgIEFkZElu
Y2x1ZGVzRm9ySlNCdWlsdGluTWV0aG9kcygkaW50ZXJmYWNlKTsKKwogICAgIEBpbXBsQ29udGVu
dCA9ICgpOwogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbnVzaW5nIG5hbWVzcGFjZSBKU0M7
XG5cbiIpOwpAQCAtMTc0OSw2ICsxNzYxLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJGZ1bmN0
aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxOwogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJlSW5IZWFkZXIi
fTsKICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21CaW5kaW5nIn07CisgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn07CiAKICAgICAg
ICAgICAgIG15ICRuZWVkc0FwcGxlQ29weXJpZ2h0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJBcHBsZUNvcHlyaWdodCJ9OwogICAgICAgICAgICAgaWYgKCRu
ZWVkc0FwcGxlQ29weXJpZ2h0KSB7CkBAIC0xOTA3LDEyICsxOTIwLDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRmdW5jdGlvbkxlbmd0aCA9IEdldEZ1bmN0
aW9uTGVuZ3RoKCRmdW5jdGlvbik7CiAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkZnVu
Y3Rpb25MZW5ndGgpOwogCi0gICAgICAgICAgICBteSBAc3BlY2lhbHMgPSAoKTsKLSAgICAgICAg
ICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udERlbGV0ZSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RGVsZXRhYmxlIn07Ci0gICAgICAgICAgICBwdXNo
KEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJOb3RFbnVtZXJhYmxlIn07Ci0gICAgICAgICAgICBwdXNoKEBzcGVjaWFs
cywgIkpTQzo6RnVuY3Rpb24iKTsKLSAgICAgICAgICAgIG15ICRzcGVjaWFsID0gKEBzcGVjaWFs
cyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKLSAgICAgICAgICAgIHB1c2go
QGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOworICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxz
LCBDb21wdXRlRnVuY3Rpb25TcGVjaWFsKCRpbnRlcmZhY2UsICRmdW5jdGlvbikpOwogCiAgICAg
ICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn07CiAgICAgICAgICAgICBpZiAoJGNvbmRpdGlvbmFs
KSB7CkBAIC0xOTgzLDE0ICsxOTkxLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgbXkgJGZ1bmN0aW9uTGVuZ3RoID0gR2V0RnVuY3Rpb25MZW5ndGgoJGZ1bmN0aW9uKTsK
ICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJGZ1bmN0aW9uTGVuZ3RoKTsKIAotICAgICAgICBt
eSBAc3BlY2lhbHMgPSAoKTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRlIikg
aWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3REZWxldGFi
bGUifQotICAgICAgICAgICB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlVuZm9yZ2VhYmxlIn0KLSAgICAgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlVuZm9yZ2VhYmxlIn07Ci0gICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRG9u
dEVudW0iKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5v
dEVudW1lcmFibGUifTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OkZ1bmN0aW9uIik7
Ci0gICAgICAgIG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNw
ZWNpYWxzKSA6ICIwIjsKLSAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7Cisg
ICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCgkaW50ZXJm
YWNlLCAkZnVuY3Rpb24pKTsKIAogICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn07CiAgICAgICAg
IGlmICgkY29uZGl0aW9uYWwpIHsKQEAgLTI3OTAsNiArMjc5MSw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgIG15ICRpbkFwcGxlQ29weXJpZ2h0ID0gMDsKICAgICAgICAg
Zm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAg
ICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbUJpbmRpbmcifTsKKyAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifTsKICAgICAgICAgICAgIG15ICRu
ZWVkc0FwcGxlQ29weXJpZ2h0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJBcHBsZUNvcHlyaWdodCJ9OwogICAgICAgICAgICAgaWYgKCRuZWVkc0FwcGxlQ29w
eXJpZ2h0KSB7CiAgICAgICAgICAgICAgICAgaWYgKCEkaW5BcHBsZUNvcHlyaWdodCkgewpAQCAt
NDI1Miw2ICs0MjU0LDggQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheQogICAgICAg
ICAKICAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9GdW5jdGlvbi8pIHsKICAgICAg
ICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+IjsK
KyAgICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0J1aWx0aW4vKSB7CisgICAg
ICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+
IjsKICAgICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdl
ci8pIHsKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAiIjsKICAgICAgICAgfSBlbHNl
IHsKQEAgLTUwMDQsNCArNTAwOCw1MSBAQCBzdWIgSGVhZGVyTmVlZHNQcm90b3R5cGVEZWNsYXJh
dGlvbgogICAgIHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSB8fCAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21OYW1lZEdldHRlck9uUHJvdG90eXBl
In0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tRGVmaW5lT3du
UHJvcGVydHlPblByb3RvdHlwZSJ9OwogfQogCitzdWIgQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbAor
eworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsK
KworICAgIG15IEBzcGVjaWFscyA9ICgpOworICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udERlbGV0
ZSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RGVs
ZXRhYmxlIn0KKyAgICAgICB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlVuZm9yZ2VhYmxlIn0KKyAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiVW5mb3JnZWFibGUifTsKKyAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikg
aWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3RFbnVtZXJh
YmxlIn07CisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSlNCdWlsdGluIn0pIHsKKyAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OkJ1aWx0aW4i
KTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiSlNDOjpGdW5j
dGlvbiIpOworICAgIH0KKyAgICByZXR1cm4gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwg
QHNwZWNpYWxzKSA6ICIwIjsKK30KKworc3ViIFVzZUpTQnVpbHRpbnMKK3sKKyAgICBteSAkaW50
ZXJmYWNlID0gc2hpZnQ7CisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+
ZnVuY3Rpb25zfSkgeworICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDAKK30KKworc3ViIEFkZEluY2x1ZGVzRm9ySlNCdWls
dGluTWV0aG9kcygpCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworCisgICAgZm9yZWFj
aCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICBuZXh0
IHVubGVzcyAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1
aWx0aW4ifSk7CisgICAgICAgIG15ICRzY29wZU5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKKyAgICAgICAgaWYgKCEkc2Nv
cGVOYW1lKSB7CisgICAgICAgICAgICAkc2NvcGVOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAg
ICAgICAgfQorICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygkc2NvcGVOYW1lIC4gIkJ1aWx0aW5z
LmgiLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlv
bmFsIn0pOworCisgICAgICAgIHJldHVybiAxOworICAgIH0KKworfQorCiAxOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXggOWUx
YTU1YWZkMmM4Zjk4NGIwYjMwZmNjYmM1M2ExMzY3M2VlZDJhOS4uNWU1ODQ4ZWVhMmQwMTA4YzIy
ZmRiYzlkMGQ5ZmUyNjQ5NWUwNzk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CkBAIC03Myw2ICs3Myw3IEBAIEltcGxlbWVudGVk
QXM9KgogSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IKIEludGVyZmFjZU5hbWU9KgogSXNX
ZWFrQ2FsbGJhY2sKK0pTQnVpbHRpbgogSlNDdXN0b21EZWZpbmVPd25Qcm9wZXJ0eQogSlNDdXN0
b21EZWZpbmVPd25Qcm9wZXJ0eU9uUHJvdG90eXBlCiBKU0N1c3RvbUZpbmFsaXplCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CmluZGV4IGU1YTVkOTgwNTc4ZmJhYWMwZTI4MDNmZWQ3OGMwMTViMWY0NGZjZGMuLjE2NTBkZGI0
NGUwNGYzMjA5N2VjZWUyYTlkNWM3NzUyOWQwMTViYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC01MSw2ICs1
MSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXN0Tm9kZS5oIgogI2lu
Y2x1ZGUgIlRlc3RPYmouaCIKKyNpbmNsdWRlICJUZXN0T2JqQnVpbHRpbnMuaCIKICNpbmNsdWRl
ICJVUkwuaCIKICNpbmNsdWRlICJib29sLmgiCiAjaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0VmFs
dWUuaD4KQEAgLTYyMiw2ICs2MjMsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiY3VzdG9tTWV0aG9kV2l0aEFy
Z3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0
aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9IH0sCiAgICAgeyAiY3VzdG9tQmluZGluZ01ldGhvZCIs
IEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21CaW5kaW5nTWV0aG9k
KSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgImN1c3RvbUJpbmRpbmdNZXRob2RXaXRoQXJn
cyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21CaW5kaW5nTWV0
aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9IH0sCisgICAgeyAianNCdWlsdGluTWV0aG9k
IiwgSlNDOjpCdWlsdGluLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8QnVp
bHRpbkdlbmVyYXRvcj4odGVzdE9iakpzQnVpbHRpbk1ldGhvZENvZGVHZW5lcmF0b3IpLCAoaW50
cHRyX3QpICgwKSB9IH0sCisgICAgeyAianNCdWlsdGluTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkJ1
aWx0aW4sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJh
dG9yPih0ZXN0T2JqSnNCdWlsdGluTWV0aG9kV2l0aEFyZ3NDb2RlR2VuZXJhdG9yKSwgKGludHB0
cl90KSAoMykgfSB9LAogICAgIHsgImFkZEV2ZW50TGlzdGVuZXIiLCBKU0M6OkZ1bmN0aW9uLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkgKDIpIH0g
fSwKICAgICB7ICJyZW1vdmVFdmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIpLCAoaW50cHRyX3QpICgyKSB9IH0sCiAg
ICAgeyAid2l0aFNjcmlwdFN0YXRlVm9pZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVWb2lkKSwgKGludHB0cl90KSAoMCkgfSB9LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9i
ai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9i
ai5oCmluZGV4IDg1NDNlMTgyZjU4MTMxODI0NWViNTFlZGQ4YTNiYWI1ODRlNDljOGMuLjk3NmUw
YTJlNDI3YjZkY2RhNjI1YTllOGY5OGUyZDk5YjhkMTc0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKQEAgLTE0
Myw2ICsxNDMsOCBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTVRlc3RPYmogOiBET01P
YmplY3QKIC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9tTWV0aG9k
OwogLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0
cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CistICh2b2lkKWpzQnVp
bHRpbk1ldGhvZDsKKy0gKHZvaWQpanNCdWlsdGluTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJn
IHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwog
LSAodm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxE
T01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7CiAt
ICh2b2lkKXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQg
PERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZTsK
IC0gKHZvaWQpd2l0aFNjcmlwdFN0YXRlVm9pZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4IDAzZmRlMTc2
ODkwNzdkYzk2ODY4YWJjZmU2ODY2YmY4YTUxNGEwYWEuLjE2ZGYyZWFiMzUyNzNhYzdhYTBhZjll
YmVjMzJlZjIyNmViMzc5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpAQCAtOTU1LDYgKzk1NSwxOCBAQCAt
ICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5n
ICopc3RyQXJnIG9iakFyZzooRE9NVAogICAgIElNUEwtPmN1c3RvbU1ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAorLSAodm9pZClqc0J1aWx0aW5NZXRo
b2QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+anNCdWlsdGluTWV0aG9kKCk7Cit9CisKKy0gKHZvaWQpanNCdWlsdGluTWV0aG9kV2l0aEFy
Z3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0
T2JqICopb2JqQXJnCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIElNUEwtPmpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29y
ZShvYmpBcmcpKTsKK30KKwogLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5
cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihC
T09MKXVzZUNhcHR1cmUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKaW5kZXggNWJkMDliZWFiMGE4NDEyZWM1MDc5M2IzMzFiOTA1OGFkMWE3NTIxNy4uYmQ2MmU5
Y2EyMmI2MDUxOWQxNTAyYTU3ZTdjZTVkOWEwMzk2ZTQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMTE3LDYgKzExNywxMCBA
QCBlbnVtIF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAiT3B0aW9uYWxWYWx1ZTIi
LCAiT3B0aW9uYWxWYWx1ZTMiIH07CiAgICAgW0N1c3RvbUJpbmRpbmddIHZvaWQgY3VzdG9tQmlu
ZGluZ01ldGhvZCgpOwogICAgIFtDdXN0b21CaW5kaW5nXSB2b2lkIGN1c3RvbUJpbmRpbmdNZXRo
b2RXaXRoQXJncyhsb25nIGxvbmdBcmcsIERPTVN0cmluZyBzdHJBcmcsIFRlc3RPYmogb2JqQXJn
KTsKIAorICAgIC8vICdKU0J1aWx0aW4nIGV4dGVuZGVkIGF0dHJpYnV0ZQorICAgIFtKU0J1aWx0
aW5dIHZvaWQganNCdWlsdGluTWV0aG9kKCk7CisgICAgW0pTQnVpbHRpbl0gdm9pZCBqc0J1aWx0
aW5NZXRob2RXaXRoQXJncyhsb25nIGxvbmdBcmcsIERPTVN0cmluZyBzdHJBcmcsIFRlc3RPYmog
b2JqQXJnKTsKKwogICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgRXZl
bnRMaXN0ZW5lciBsaXN0ZW5lciwgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICB2
b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlz
dGVuZXIsIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciBvbmZvbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2dlbmVyYXRlLWpzLWJ1
aWx0aW5zIGIvU291cmNlL1dlYkNvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTYyMmZkOGQ4Mjk5OTcyMmFiNmZjZThmNWQ0NDA5YmE5YWJlMzBlYgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCkBAIC0wLDAgKzEsMTQxIEBA
CisjIS91c3IvYmluL3B5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisjIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisjIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitpbXBvcnQgYXJncGFyc2UKK2lt
cG9ydCBmaWxlY21wCitpbXBvcnQgb3MKK2ltcG9ydCBzdWJwcm9jZXNzCisKK2Zyb20gc3RyaW5n
IGltcG9ydCBUZW1wbGF0ZQorCisKK3BhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkK
K3BhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0X2RpcicsIGRlZmF1bHQ9JycsIGhlbHA9J291
dHB1dCBkaXJlY3RvcnknKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbnB1dCcsIGhlbHA9J3Bh
dGggdG8gaW5wdXQgSlMgZmlsZScpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXdlYmNvcmVfZGly
JywgaGVscD0ncGF0aCB0byBXZWJDb3JlIGRpcmVjdG9yeScpCisKK2FyZ3MgPSBwYXJzZXIucGFy
c2VfYXJncygpCitmaWxlbmFtZSA9IG9zLnBhdGguc3BsaXRleHQob3MucGF0aC5iYXNlbmFtZShh
cmdzLmlucHV0KSlbMF0KKworIyBnZW5lcmF0ZSBKUyBidWlsdGlucworbmFtZXNwYWNlID0gIldl
YkNvcmUiCitwcmVmaXggPSAiV0VCQ09SRSIgKyBmaWxlbmFtZS51cHBlcigpCitvdXRwdXQgPSBv
cy5wYXRoLmpvaW4oYXJncy5vdXRwdXRfZGlyLCBmaWxlbmFtZSArICJCdWlsdGlucyIpCitqc2Nf
Z2VuZXJhdGVfYnVpbHRpbl9zY3JpcHQgPSBvcy5wYXRoLmpvaW4oYXJncy53ZWJjb3JlX2Rpciwg
Ii4uIiwgIkphdmFTY3JpcHRDb3JlIiwgImdlbmVyYXRlLWpzLWJ1aWx0aW5zIikKKworc3VicHJv
Y2Vzcy5jYWxsKFsicHl0aG9uIiwganNjX2dlbmVyYXRlX2J1aWx0aW5fc2NyaXB0LCAiLS1vdXRw
dXQiLCBvdXRwdXQsICItLW5hbWVzcGFjZSIsIG5hbWVzcGFjZSwgIi0tcHJlZml4IiwgcHJlZml4
LCBhcmdzLmlucHV0XSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKQorCisjIGdlbmVyYXRlIEpT
IGJ1aWx0aW5zIHdyYXBwZXIKK291dHB1dF9iYXNlID0gb3V0cHV0ICsgIldyYXBwZXIiCisKK2J1
aWx0aW5zV3JhcHBlckhlYWRlciA9IG9wZW4ob3V0cHV0X2Jhc2UgKyAiLmgudG1wIiwgInciKQor
CitidWlsdGluc1dyYXBwZXJIZWFkZXIud3JpdGUoVGVtcGxhdGUoCisiIiIKKy8qIEdlbmVyYXRl
ZCBieSBnZW5lcmF0ZS1qcy1idWlsdGlucyBkbyBub3QgaGFuZCBlZGl0LiAqLworCisvKgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiAke0ZpbGVuYW1lfUJ1aWx0aW5z
V3JhcHBlcl9oCisjZGVmaW5lICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVyX2gKKworI2luY2x1
ZGUgIiR7RmlsZW5hbWV9QnVpbHRpbnMuaCIKKyNpbmNsdWRlIDxieXRlY29kZS9VbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUgPGJ1aWx0aW5zL0J1aWx0aW5VdGlscy5oPgor
I2luY2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVyIDogcHJpdmF0ZSBKU0M6OldlYWtIYW5k
bGVPd25lcgoreworcHVibGljOgorICAgIGV4cGxpY2l0ICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFw
cGVyKEpTQzo6Vk0qIHZtKQorICAgICAgICA6IG1fdm0oKnZtKQorICAgICAgICAke1ByZWZpeH1f
Rk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9CVUlMVElOX05BTUVTKQor
I2RlZmluZSBJTklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25O
YW1lLCBsZW5ndGgpICwgbV8jI25hbWUjI1NvdXJjZShKU0M6Om1ha2VTb3VyY2UoU3RyaW5nSW1w
bDo6Y3JlYXRlRnJvbUxpdGVyYWwoc18jI25hbWUsIGxlbmd0aCkpKQorICAgICAgICAke1ByZWZp
eH1fRk9SRUFDSF9CVUlMVElOKElOSVRJQUxJWkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUykKKyN1
bmRlZiBJTklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMKKyAgICB7CisgICAgfQorCisj
ZGVmaW5lIEVYUE9TRV9CVUlMVElOX0VYRUNVVEFCTEVTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVu
Z3RoKSBcXAorICAgIEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIG5hbWUjI0V4ZWN1
dGFibGUoKTsgXFwKKyAgICBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIG5hbWUjI1NvdXJjZSgpIGNv
bnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNTb3VyY2U7IH0KKyAgICAke1ByZWZpeH1fRk9SRUFDSF9C
VUlMVElOKEVYUE9TRV9CVUlMVElOX0VYRUNVVEFCTEVTKQorI3VuZGVmIEVYUE9TRV9CVUlMVElO
X0VYRUNVVEFCTEVTCisKKyAgICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05B
TUUoREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IpCisKK3ByaXZhdGU6CisgICAg
SlNDOjpWTSYgbV92bTsKKworICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU5fRlVOQ1RJT05f
TkFNRShERUNMQVJFX0JVSUxUSU5fTkFNRVMpCisKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX1NP
VVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKSBcXAorICAgIEpTQzo6U291
cmNlQ29kZSBtXyMjbmFtZSMjU291cmNlO1xcCisgICAgSlNDOjpXZWFrPEpTQzo6VW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGU+IG1fIyNuYW1lIyNFeGVjdXRhYmxlOworICAgICR7UHJlZml4fV9G
T1JFQUNIX0JVSUxUSU4oREVDTEFSRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKQorI3VuZGVmIERF
Q0xBUkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUworCit9OworCisjZGVmaW5lIERFRklORV9CVUlM
VElOX0VYRUNVVEFCTEVTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKSBcXAoraW5saW5lIEpT
Qzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVy
OjpuYW1lIyNFeGVjdXRhYmxlKCkgXFwKK3tcXAorICAgIGlmICghbV8jI25hbWUjI0V4ZWN1dGFi
bGUpXFwKKyAgICAgICAgbV8jI25hbWUjI0V4ZWN1dGFibGUgPSBKU0M6OldlYWs8SlNDOjpVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZT4oSlNDOjpjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShtX3Zt
LCBtXyMjbmFtZSMjU291cmNlLCBmdW5jdGlvbk5hbWUjI1B1YmxpY05hbWUoKSwgc18jI25hbWUj
I0NvbnN0cnVjdEFiaWxpdHkpLCB0aGlzLCAmbV8jI25hbWUjI0V4ZWN1dGFibGUpO1xcCisgICAg
cmV0dXJuIG1fIyNuYW1lIyNFeGVjdXRhYmxlLmdldCgpO1xcCit9Ciske1ByZWZpeH1fRk9SRUFD
SF9CVUlMVElOKERFRklORV9CVUlMVElOX0VYRUNVVEFCTEVTKQorI3VuZGVmIERFRklORV9CVUlM
VElOX0VYRUNVVEFCTEVTCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vICR7
RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVyX2gKKyIiIikuc3Vic3RpdHV0ZShkaWN0KEZpbGVuYW1l
PWZpbGVuYW1lLCBQcmVmaXg9cHJlZml4KSkpCisKK2J1aWx0aW5zV3JhcHBlckhlYWRlci5jbG9z
ZSgpCisKK2lmIChub3Qgb3MucGF0aC5leGlzdHMob3V0cHV0X2Jhc2UgKyAiLmgiKSkgb3IgKG5v
dCBmaWxlY21wLmNtcChvdXRwdXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFzZSArICIuaCIs
IHNoYWxsb3c9RmFsc2UpKToKKyAgICBpZiAob3MucGF0aC5leGlzdHMob3V0cHV0X2Jhc2UgKyAi
LmgiKSk6CisgICAgICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuaCIpCisgICAgb3MucmVu
YW1lKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsIG91dHB1dF9iYXNlICsgIi5oIikKK2Vsc2U6Cisg
ICAgb3MucmVtb3ZlKG91dHB1dF9iYXNlICsgIi5oLnRtcCIpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODQ4NTI4YTk0OWRk
MzhhYWZmMTE1YTAzYjU5ZDE2MjJkY2Y1ZWRjMi4uNzdkY2EwM2NmN2RhMjM5NGExNTNkODg5NTA5
ZDM2OWE3MjAxNTYxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA5LTIxICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMg
QVBJXSBJbXBsZW1lbnQgUmVhZGFibGVTdHJlYW0gcGlwZVRocm91Z2gKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzU1NgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlYmFzZWQgdGVzdCB0aGF0IGlzIG5vdyBw
YXNzaW5nLgorICAgICAgICBBZGRpbmcgbmV3IHRlc3RzIHRvIGltcHJvdmUgcGlwZVRocm91Z2gg
Y292ZXJhZ2UuCisKKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3Vn
aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFt
LXBpcGVUaHJvdWdoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWlt
cGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQ6CisKIDIwMTUtMDktMjIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZWJh
c2VsaW5lIHNldmVyYWwgVzNDIGh0bWwgdGVzdHMgb24gaU9TIGFmdGVyIHIxOTAxMDYgYW5kIHIx
OTAwODUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1w
aXBlVGhyb3VnaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0
cmVhbS1waXBlVGhyb3VnaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFlMDYxY2E5MDZkNDIw
ZjE1ZjEzZDdiNDUxMGNmNTNlY2QyMzZkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDYgQEAKKworUEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hv
dWxkIHRocm93IHdoZW4gInRoaXMiIGhhcyBubyBwaXBlVG8gbWV0aG9kIAorUEFTUyBSZWFkYWJs
ZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHRocm93IHdoZW4gcGFzc2VkIGFy
Z3VtZW50IGlzIG5vdCBhbiBvYmplY3QgCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5w
aXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBjYWxsZWQgZ2V0dGVycyBhcmUgdGhyb3dpbmcg
CitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgd29yayB3
aXRoIG1pc3NpbmcgcGFyYW1ldGVycyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbCBiL0xheW91dFRlc3RzL3N0cmVhbXMv
cmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I5YTY4YjMyYmM0
YjdiYmVmZmI4Y2Q1NzY3NDM3YjdhNWM0YTg0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLmh0bWwKQEAgLTAsMCArMSw4
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy9nYy5qcyc+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBpbnB1dCA9IHsK
KyAgICAgICAgcmVhZGFibGU6IHsgfSwKKyAgICAgICAgd3JpdGFibGU6IHsgfQorICAgIH07Cisg
ICAgdmFyIG9wdGlvbnMgPSB7IH07CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCks
IGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh1
bmRlZmluZWQsIGlucHV0LCBvcHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlw
ZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2guY2FsbChudWxsLCBpbnB1dCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90aHJvd3MobmV3
IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVU
aHJvdWdoLmNhbGwoMSwgaW5wdXQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5l
dyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBl
VGhyb3VnaC5jYWxsKHsgInBpcGVUbyI6ICJ0ZXN0IiB9LCBpbnB1dCwgb3B0aW9ucyk7IH0pOwor
fSwgJ1JlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hl
biAidGhpcyIgaGFzIG5vIHBpcGVUbyBtZXRob2QnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
ICB2YXIgb3B0aW9ucyA9IHsgfTsKKyAgICB2YXIgdGhpc1ZhbHVlID0geworICAgICAgICBwaXBl
VG86IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgpOworICAgICAg
ICB9CisgICAgfTsKKworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlv
bigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVl
LCBudWxsLCBvcHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCks
IGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0
aGlzVmFsdWUsIHVuZGVmaW5lZCwgb3B0aW9ucyk7IH0pOworfSwgJ1JlYWRhYmxlU3RyZWFtLnBy
b3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBwYXNzZWQgYXJndW1lbnQgaXMg
bm90IGFuIG9iamVjdCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBvcHRpb25zID0g
eyB9OworICAgIHZhciBlcnJvciA9IG5ldyBUeXBlRXJyb3IoInBvdGF0byIpOworCisgICAgdmFy
IHRoaXNXcm9uZ1ZhbHVlID0geworICAgICAgICBnZXQgcGlwZVRvKCkgeworICAgICAgICAgICAg
dGhyb3cgZXJyb3I7CisgICAgICAgIH0KKyAgICB9OworICAgIGFzc2VydF90aHJvd3MoZXJyb3Is
IGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0
aGlzV3JvbmdWYWx1ZSwgeyByZWFkYWJsZTogeyB9LCB3cml0YWJsZTogeyB9IH0sIG9wdGlvbnMp
OyB9KTsKKworICAgIHZhciB0aGlzVmFsdWUgPSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCk7CisgICAgICAgIH0KKyAgICB9Owor
ICAgIHZhciB3cm9uZ0lucHV0ID0geworICAgICAgICByZWFkYWJsZTogeyB9LAorICAgICAgICBn
ZXQgd3JpdGFibGUoKSB7CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAgICAgfQorICAg
IH07CisgICAgYXNzZXJ0X3Rocm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFt
LnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgd3JvbmdJbnB1dCwgb3B0aW9u
cyk7IH0pOworCisgICAgdmFyIHdyb25nSW5wdXQyID0geworICAgICAgICBnZXQgcmVhZGFibGUo
KSB7CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAgICAgfSwKKyAgICAgICAgd3JpdGFi
bGU6IHsgfQorICAgIH07CisgICAgdmFyIHRoaXNWYWx1ZTIgPSB7CisgICAgICAgIHBpcGVUbzog
ZnVuY3Rpb24oKSB7IH0KKyAgICB9OworICAgIGFzc2VydF90aHJvd3MoZXJyb3IsIGZ1bmN0aW9u
KCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUy
LCB3cm9uZ0lucHV0Miwgb3B0aW9ucyk7IH0pOworfSwgJ1JlYWRhYmxlU3RyZWFtLnByb3RvdHlw
ZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBjYWxsZWQgZ2V0dGVycyBhcmUgdGhyb3dp
bmcnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciB0
aGlzVmFsdWUgPSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAr
K2NvdW50OworICAgICAgICB9CisgICAgfTsKKworICAgIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlw
ZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgeyByZWFkYWJsZTogeyB9LCB3cml0YWJsZTog
eyB9IH0pOworICAgIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRo
aXNWYWx1ZSwgeyByZWFkYWJsZTogeyB9IH0sIHsgfSk7CisgICAgUmVhZGFibGVTdHJlYW0ucHJv
dG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHdyaXRhYmxlOiB7IH0gfSwgeyB9
KTsKKworICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDMpOworfSwgJ1JlYWRhYmxlU3RyZWFtLnBy
b3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgd29yayB3aXRoIG1pc3NpbmcgcGFyYW1ldGVycycp
OworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNl
LWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0
CmluZGV4IDM3MzU3N2ViOTgyMWQyMDc1NGRlODc3MWE2MGZhZTUyMzhjOWI1ZjYuLmIxOTdkMTY1
N2IxMGY3MDAzNGYyYzJhNjQ2MTZmNWJjMmZmMjVmZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJh
bmQtY2hlY2tzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBDYW4gZ2V0IHRo
ZSBSZWFkYWJsZVN0cmVhbVJlYWRlciBjb25zdHJ1Y3RvciBpbmRpcmVjdGx5IAogUEFTUyBDYW4g
Z2V0IHRoZSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3IgaW5kaXJlY3RseSAK
LUZBSUwgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHdvcmtzIGdlbmVyaWNh
bGx5IG9uIGl0cyB0aGlzIGFuZCBpdHMgYXJndW1lbnRzIENhbiBvbmx5IGNhbGwgUmVhZGFibGVT
dHJlYW0ucGlwZVRocm91Z2ggb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtCitQQVNTIFJl
YWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCB3b3JrcyBnZW5lcmljYWxseSBvbiBp
dHMgdGhpcyBhbmQgaXRzIGFyZ3VtZW50cyAKIFBBU1MgUmVhZGFibGVTdHJlYW1SZWFkZXIgZW5m
b3JjZXMgYSBicmFuZCBjaGVjayBvbiBpdHMgYXJndW1lbnQgCiBGQUlMIFJlYWRhYmxlU3RyZWFt
UmVhZGVyLnByb3RvdHlwZS5jbG9zZWQgZW5mb3JjZXMgYSBicmFuZCBjaGVjayB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihvYmosIGdldHRlck5hbWUpLmdldCcpCiBQQVNTIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnBy
b3RvdHlwZS5jYW5jZWwgZW5mb3JjZXMgYSBicmFuZCBjaGVjayAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261763</attachid>
            <date>2015-09-22 12:58:33 -0700</date>
            <delta_ts>2015-09-22 14:03:38 -0700</delta_ts>
            <desc>Fixing builtin path</desc>
            <filename>bug-147556-20150922215815.patch</filename>
            <type>text/plain</type>
            <size>72289</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZGNhODNjOTBjZTIzOGNiYzJiYjkwZjg4MTkwMzc2MTk4YzA4ZTRkLi5lYjlkMDU0ZGNmZjU0MTNh
NTFjOGVjNGZiM2I0M2RlM2JhZWU5YjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNhYmxl
IGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGluTmFt
ZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVzLgor
ICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRpbmcg
YnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1dGFi
bGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhl
Y3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
QnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJu
YWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6OkJ1
aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6
IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFibGVz
LmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6Cisg
ICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0yMiAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE4OTYxNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNTkzMDFkMDMxNmJlM2MyNjBiMTUyMWZi
NDMzNWUwZTMyZjkwMGNjLi5iMDEwNTlmYzE0Yjc3MDhkMjg2NTMwNTAxMDMzYzM2MDg4MDlkMzZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTUtMDktMjEgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEldIElt
cGxlbWVudCBSZWFkYWJsZVN0cmVhbSBwaXBlVGhyb3VnaAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkaW5nIGluaXRpYWwgc3VwcG9ydCBmb3IgSlMgYnVp
bHRpbnMgd2l0aGluIFdlYkNvcmUuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxsb3dzIGltcGxlbWVu
dGluZyBJREwgaW50ZXJmYWNlIG1ldGhvZHMgaW4gSlMsIGJ5IHVzaW5nIHRoZSBuZXcgSlNCdWls
dGluIGtleXdvcmQuCisgICAgICAgIChObyBzdXBwb3J0IHlldCBmb3IgcHJpdmF0ZSBpZGVudGlm
aWVycywgY29uc3RydWN0b3JzIG9yIGFjY2Vzc29ycykuCisgICAgICAgIEludGVncmF0aW9uIG9m
IHRoZSBidWlsdC1pbiBleGVjdXRhYmxlcyBhbmQgbmFtZXMgaXMgaW1wbGVtZW50ZWQgd2l0aGlu
IFdlYkNvcmVKU0NsaWVudERhdGEuCisgICAgICAgIFR3byBmaWxlcyBhcmUgZ2VuZXJhdGVkIGZv
ciBlYWNoIEpTIGJ1aWx0aW4gZmlsZToKKyAgICAgICAgLSBidWlsdGluIGgvY3BwIGZpbGVzIHNp
bWlsYXIgdG8gSlNDQnVpbHRpbnMuY3BwLy5oLCBnZW5lcmF0ZWQgdGhyb3VnaCBXZWJDb3JlL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zIGZyb20gSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRp
bnMpCisgICAgICAgIC0gQSBidWlsdGluIHdyYXBwZXIgZmlsZSBtaW1pY2tpbmcgQnVpbHRpbkV4
ZWN1dGFibGVzIChnZW5lcmF0ZWQgZnJvbSBXZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zKQor
ICAgICAgICBDb250cmFyeSB0byBKU0MsIGVhY2gganMgZmlsZSBpcyBnZW5lcmF0aW5nIGl0cyBv
d24gY3BwL2ggZmlsZS4KKyAgICAgICAgVGhpcyBhbGxvd3MgaW5jbHVkaW5nIHRob3NlIGZpbGVz
IHdpdGhpbiB0aGUgSlNYWC5jcHAvLmggZmlsZXMgZ2VuZXJhdGVkIGZyb20gdGhlIElETCB3aGVy
ZSBjb21waWxhdGlvbiBndWFyZCBtYXkgdGFrZSBlZmZlY3QuCisKKyAgICAgICAgRGlzYWJsZWQg
R09iamVjdCBiaW5kaW5nIGZvciBKU0J1aWx0aW4gbWV0aG9kcy4KKworICAgICAgICBUZXN0OiBz
dHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogVHJpZ2dlcmluZyBnZW5lcmF0ZS1qcy1idWlsdGlucyBmb3IgSlMgZmlsZXMu
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRm9yd2Fy
ZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6IEFkZGVkLgorICAgICAgICAqIEZv
cndhcmRpbmdIZWFkZXJzL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmg6IEFk
ZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0QWJpbGl0
eS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRs
OiBNYXJraW5nIHBpcGVUaHJvdWdoIGFzIEpTIGJ1aWx0aW4KKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6IEFkZGVkLgorICAgICAgICAocGlwZVRocm91Z2gpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDogQWRkaW5nIFJlYWRhYmxlU3Ry
ZWFtQnVpbHRpbnNXcmFwcGVyIHRvIHN0b3JlIFJlYWRhYmxlU3RyZWFtIGJ1aWx0aW4gZXhlY3V0
YWJsZQorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUpTQ2xpZW50RGF0YTo6V2ViQ29yZUpTQ2xp
ZW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlSlNDbGllbnREYXRhOjpyZWFkYWJs
ZVN0cmVhbUJ1aWx0aW5zKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXROb3JtYWxXb3JsZENsaWVu
dERhdGEpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG06IERpc2FibGVkIEdPYmplY3QgYmluZGluZyBmb3IgSlNCdWlsdGluIG1ldGhvZHMuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06IEFkZGluZyBzdXBwb3J0
IGZvciBKU0J1aWx0aW4ga2V5d29yZC4KKyAgICAgICAgKEdldEZ1bmN0aW9uTmFtZSk6CisgICAg
ICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6CisgICAgICAgIChDb21wdXRl
RnVuY3Rpb25TcGVjaWFsKToKKyAgICAgICAgKFVzZUpTQnVpbHRpbnMpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6IEFkZGluZyBKU0J1aWx0aW4uCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6
CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kKToKKyAgICAg
ICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfanNfYnVpbHRpbl9tZXRob2Rfd2l0aF9hcmdzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGpzQnVpbHRpbk1ldGhvZF0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGpzQnVpbHRpbk1ldGhv
ZFdpdGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGdlbmVyYXRlLWpzLWJ1aWx0aW5zOiBBZGRlZC4K
KwogMjAxNS0wOS0yMiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIDMyLWJpdCBZb3NlbWl0ZSBidWlsZCBmaXguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggN2E5OTE4YTIwYmJmODM3ZjcyOTlmNTJjMGYyNjQ0
MDVjYTk1M2JkNi4uOWQxNTI0NDUyZjEzOWI0NzY2Y2U3YmIyNGIxOTQ0ZWVjMjFiYTFmOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTQ5LDYgKzk0OSw3IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9GT1JXQVJESU5HX0hFQURFUlNfRElSRUNUT1JJRVMKICAgICBBUEkKICAg
ICBhc3NlbWJsZXIKICAgICBiaW5kaW5ncworICAgIGJ1aWx0aW5zCiAgICAgYnl0ZWNvZGUKICAg
ICBkZWJ1Z2dlcgogICAgIGRmZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZmNh
MmZkNDgyMDM0NzQwMzg3OWIyMTI5NGIzYTA5MDYzYmRhZWExLi5kMmEyMTE0ZDgxNGY3NmFhNGEx
NzM4YjU1NzhjNTJjMjQyMGMyZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
OTUyLDYgKzk1Miw3IEBACiAJCTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJ
RFRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
QUY3MzgyQjE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3MUQ4NDJEMTdDOThCNkUw
MEVDRjk5NCAvKiBsaWJ6LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgKi87
IH07CiAJCTQxMzU5Q0YzMEZERDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29udmVyc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIxMjAyMjkwQUQ0MzEw
QzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi87IH07CisJCTQxREVBMTMyMUI5RjMxNjMw
MDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MzQw
QTQ4NDFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzQwQTQ4MjFBOTA1MUFGMDBENzNDQ0EgLyog
TWF0aENvbW1vbi5jcHAgKi87IH07CiAJCTQzNDBBNDg1MUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRo
Q29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzQwQTQ4MzFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5oICovOyB9OwogCQk0NDQzQUUz
MzE2RTE4OEQ5MDA3NkYxMTAgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwRUI2MTA1Qzg2QzZCMDBFNkRG
MUIgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CkBAIC0yNzY1LDYgKzI3NjYsNyBAQAog
CQkyQUY3MzgyQTE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJ1Y3R1cmVJRFRhYmxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkFGNzM4MkIxOEJCQkY5MjAwOEE1QTM3IC8qIFN0
cnVjdHVyZUlEVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0
dXJlSURUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFEODQyQzE3Qzk4
QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliei5k
eWxpYjsgcGF0aCA9IHVzci9saWIvbGliei5keWxpYjsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07
CisJCTQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnVpbHRpblV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzNDBBNDgyMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhDb21tb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzQwQTQ4MzFBOTA1MUFGMDBENzNDQ0EgLyogTWF0
aENvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoQ29tbW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0OTA5N0VFMEY4RjgxQjUwMDc2QTMyNyAv
KiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGgg
PSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU4NzcsNiArNTg3OSw3IEBACiAJCQkJQTdEODAxQTExODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0
aW5FeGVjdXRhYmxlcy5jcHAgKi8sCiAJCQkJQTdEODAxQTIxODgwRDY2RTAwMjZDMzlCIC8qIEJ1
aWx0aW5FeGVjdXRhYmxlcy5oICovLAogCQkJCUE3NUVFOUIwMThBQUI3RTIwMEFBRDA0MyAvKiBC
dWlsdGluTmFtZXMuaCAqLywKKwkJCQk0MURFQTEzMTFCOUYzMTU0MDA2RDY1REQgLyogQnVpbHRp
blV0aWxzLmggKi8sCiAJCQkJQTdBOTc5QzQxOEJFOEQ5RTAwMkMzNzMzIC8qIEZ1bmN0aW9uLnBy
b3RvdHlwZS5qcyAqLywKIAkJCQk3Q0Y5QkM1QTFCNjVEOUEzMDA5REIxRUYgLyogR2xvYmFsT2Jq
ZWN0LmpzICovLAogCQkJCUUzNUUwMzYxMUI3QUI0ODUwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QuanMgKi8sCkBAIC02MTQ5LDYgKzYxNTIsNyBAQAogCQkJCUE3MDRE
OTAzMTdBMEJBQTgwMDZCQTU1NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzA0RDkwNDE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQjlFMjNDMUI0RTBENjcwMEJDN0ZF
RCAvKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUEx
MzIxQjlGMzE2MzAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2MjAxNzcxNDNGQ0QzRjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0VmFsdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRjA1NEZBMUFDMzVCNDQwMEU1QkU1NyAvKiBFeGVjdXRhYmxlQWxsb2NhdGlv
bkZ1enouaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjZFMTZCMTRERjNGMTYwMEI3QjJFNCAvKiBE
RkdBZGphY2VuY3lMaXN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKaW5kZXggOTM3MGU3ZTFm
ZTY1OWJhYWQxM2JkMDI5YjdiOWJmZjY4NDYyYmVhYy4uNzNlYmU0Nzk5MzVmY2E3NDA5ZmQ5MzJm
ODg5YjY1ODRiZTU4YjYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKQEAgLTM1LDYgKzM1LDggQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKK3N0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRXhl
Y3V0YWJsZUludGVybmFsKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXIm
LCBDb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHkpOworCiBCdWlsdGluRXhlY3V0YWJs
ZXM6OkJ1aWx0aW5FeGVjdXRhYmxlcyhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQogI2RlZmluZSBJ
TklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5n
dGgpICwgbV8jI25hbWUjI1NvdXJjZShtYWtlU291cmNlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21M
aXRlcmFsKHNfIyNuYW1lLCBsZW5ndGgpKSkKQEAgLTUyLDE1ICs1NCwyNSBAQCBVbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVEZWZhdWx0Q29uc3Ry
dWN0b3IoQ29uc3RydQogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5kOjpOb25lOgogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnN0cnVjdG9yS2luZDo6QmFzZToKLSAgICAgICAgcmV0dXJuIGNy
ZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtYWtlU291cmNlKGJhc2VDb25zdHJ1Y3RvckNvZGUpLCBu
YW1lLCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7Cisg
ICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwobV92bSwgbWFrZVNvdXJjZShi
YXNlQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmls
aXR5OjpDYW5Db25zdHJ1Y3QpOwogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkOgot
ICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1ha2VTb3VyY2UoZGVyaXZl
ZENvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0
eTo6Q2FuQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5h
bChtX3ZtLCBtYWtlU291cmNlKGRlcml2ZWRDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1
Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7CiAgICAgfQogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1VbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVFeGVjdXRhYmxlSW50
ZXJuYWwoY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBD
b25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVj
dEFiaWxpdHkpCitVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVz
OjpjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiBjb2RlLCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCit7Cisg
ICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBjb2RlLCBuYW1lLCBDb25z
dHJ1Y3RvcktpbmQ6Ok5vbmUsIGNvbnN0cnVjdEFiaWxpdHkpOworfQorCitVbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoVk0mIHZtLCBjb25zdCBTb3Vy
Y2VDb2RlJiBjb2RlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RBYmlsaXR5IGNv
bnN0cnVjdEFiaWxpdHkpCit7CisgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbCh2
bSwgY29kZSwgbmFtZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBjb25zdHJ1Y3RBYmlsaXR5KTsK
K30KKworVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5h
bChWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgY29uc3QgSWRlbnRpZmllciYgbmFt
ZSwgQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSBjb25z
dHJ1Y3RBYmlsaXR5KQogewogICAgIEpTVGV4dFBvc2l0aW9uIHBvc2l0aW9uQmVmb3JlTGFzdE5l
d2xpbmU7CiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7CkBAIC02OSw3ICs4MSw3IEBAIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJ
bnRlcm5hbChjb25zdCBTCiAgICAgVW5saW5rZWRGdW5jdGlvbktpbmQga2luZCA9IGlzUGFyc2lu
Z0RlZmF1bHRDb25zdHJ1Y3RvciA/IFVubGlua2VkTm9ybWFsRnVuY3Rpb24gOiBVbmxpbmtlZEJ1
aWx0aW5GdW5jdGlvbjsKICAgICBSZWZQdHI8U291cmNlUHJvdmlkZXI+IHNvdXJjZU92ZXJyaWRl
ID0gaXNQYXJzaW5nRGVmYXVsdENvbnN0cnVjdG9yID8gc291cmNlLnByb3ZpZGVyKCkgOiBudWxs
cHRyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmFtTm9kZT4gcHJvZ3JhbSA9IHBhcnNlPFBy
b2dyYW1Ob2RlPigKLSAgICAgICAgJm1fdm0sIHNvdXJjZSwgSWRlbnRpZmllcigpLCBidWlsdGlu
TW9kZSwKKyAgICAgICAgJnZtLCBzb3VyY2UsIElkZW50aWZpZXIoKSwgYnVpbHRpbk1vZGUsCiAg
ICAgICAgIEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0LCBTb3VyY2VQYXJzZU1vZGU6OlBy
b2dyYW1Nb2RlLCBlcnJvciwKICAgICAgICAgJnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUsIGNv
bnN0cnVjdG9yS2luZCk7CiAKQEAgLTk1LDE2ICsxMDcsMTYgQEAgVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNv
bnN0IFMKICAgICBtZXRhZGF0YS0+c2V0RW5kUG9zaXRpb24ocG9zaXRpb25CZWZvcmVMYXN0TmV3
bGluZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQobWV0YWRhdGEpOwogICAgIGZvciAoY29uc3QgYXV0
byYgY2xvc2VkVmFyaWFibGUgOiBwcm9ncmFtLT5jbG9zZWRWYXJpYWJsZXMoKSkgewotICAgICAg
ICBpZiAoY2xvc2VkVmFyaWFibGUgPT0gbV92bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1w
bCgpKQorICAgICAgICBpZiAoY2xvc2VkVmFyaWFibGUgPT0gdm0ucHJvcGVydHlOYW1lcy0+YXJn
dW1lbnRzLmltcGwoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAg
aWYgKGNsb3NlZFZhcmlhYmxlID09IG1fdm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29y
ZC5pbXBsKCkpCisgICAgICAgIGlmIChjbG9zZWRWYXJpYWJsZSA9PSB2bS5wcm9wZXJ0eU5hbWVz
LT51bmRlZmluZWRLZXl3b3JkLmltcGwoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgIH0K
ICAgICBtZXRhZGF0YS0+b3ZlcnJpZGVOYW1lKG5hbWUpOwogICAgIFZhcmlhYmxlRW52aXJvbm1l
bnQgZHVtbXlURFpWYXJpYWJsZXM7Ci0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlY3V0YWJsZSA9IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUoJm1f
dm0sIHNvdXJjZSwgbWV0YWRhdGEsIGtpbmQsIGNvbnN0cnVjdEFiaWxpdHksIGR1bW15VERaVmFy
aWFibGVzLCBXVEY6Om1vdmUoc291cmNlT3ZlcnJpZGUpKTsKLSAgICBmdW5jdGlvbkV4ZWN1dGFi
bGUtPm1fbmFtZVZhbHVlLnNldChtX3ZtLCBmdW5jdGlvbkV4ZWN1dGFibGUsIGpzU3RyaW5nKCZt
X3ZtLCBuYW1lLnN0cmluZygpKSk7CisgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlY3V0YWJsZSA9IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUoJnZt
LCBzb3VyY2UsIG1ldGFkYXRhLCBraW5kLCBjb25zdHJ1Y3RBYmlsaXR5LCBkdW1teVREWlZhcmlh
YmxlcywgV1RGOjptb3ZlKHNvdXJjZU92ZXJyaWRlKSk7CisgICAgZnVuY3Rpb25FeGVjdXRhYmxl
LT5zZXROYW1lVmFsdWUodm0sIGpzU3RyaW5nKCZ2bSwgbmFtZS5zdHJpbmcoKSkpOwogICAgIHJl
dHVybiBmdW5jdGlvbkV4ZWN1dGFibGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaAppbmRleCA0ZTQzMjIyNWZiZDEwZGRj
MzM2MDRhM2Q2NjMzMmY2NGM4NjYxZGUzLi42YTk4MzIxN2EwYTg4NDU3ZWYwOThmYmNiOTUxMjNk
NTlhNTI1MTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbkV4ZWN1dGFibGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1
aWx0aW5FeGVjdXRhYmxlcy5oCkBAIC01NywxMSArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgVk0m
IG1fdm07CiAKLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4
ZWN1dGFibGUoY29uc3QgU291cmNlQ29kZSYgY29kZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
Q29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb2RlLCBuYW1lLCBDb25zdHJ1Y3RvcktpbmQ6Ok5v
bmUsIGNvbnN0cnVjdEFiaWxpdHkpOwotICAgIH0KLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvbnN0IFNvdXJjZUNvZGUmLCBjb25zdCBJ
ZGVudGlmaWVyJiwgQ29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKyAgICBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoY29uc3QgU291
cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3RBYmlsaXR5KTsKIAogI2RlZmlu
ZSBERUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5n
dGgpXAogICAgIFNvdXJjZUNvZGUgbV8jI25hbWUjI1NvdXJjZTsgXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDdlNTQzNDJlNzUyZjlmMmQ0
ZTgzNWVkMDM0ZjQ2MDljZjM2NWQzOWYuLmJmMjhkYjgzZjdiYmJhMmU2ZjBiYWI5NzViNmU5ZjRk
NGEzNzg4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWls
dGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5h
bWVzLmgKQEAgLTI2LDQyICsyNiwzMSBAQAogI2lmbmRlZiBCdWlsdGluTmFtZXNfaAogI2RlZmlu
ZSBCdWlsdGluTmFtZXNfaAogCisjaW5jbHVkZSAiQnVpbHRpblV0aWxzLmgiCiAjaW5jbHVkZSAi
Q29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKLSAgICAKLSNkZWZpbmUgSU5JVElBTElTRV9CVUlMVElOX05BTUVTKG5hbWUpICwg
bV8jI25hbWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgI25hbWUpKSwgbV8jI25hbWUjI1By
aXZhdGVOYW1lKElkZW50aWZpZXI6OmZyb21VaWQoUHJpdmF0ZU5hbWUoUHJpdmF0ZU5hbWU6OkRl
c2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlByaXZhdGVTeW1ib2wuIiAjbmFtZSkpKSkKLSNkZWZp
bmUgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IElkZW50aWZpZXIgbV8jI25hbWU7
IGNvbnN0IElkZW50aWZpZXIgbV8jI25hbWUjI1ByaXZhdGVOYW1lOwotI2RlZmluZSBERUNMQVJF
X0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCi0gICAgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSMjUHVibGljTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lOyB9IFwKLSAgICBj
b25zdCBJZGVudGlmaWVyJiBuYW1lIyNQcml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNu
YW1lIyNQcml2YXRlTmFtZTsgfQogCi0jZGVmaW5lIElOSVRJQUxJU0VfQlVJTFRJTl9TWU1CT0xT
KG5hbWUpIElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUyhuYW1lKSwgbV8jI25hbWUjI1N5bWJvbChJ
ZGVudGlmaWVyOjpmcm9tVWlkKFByaXZhdGVOYW1lKFByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwg
QVNDSUlMaXRlcmFsKCJTeW1ib2wuIiAjbmFtZSkpKSkKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElO
X1NZTUJPTFMobmFtZSkgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IElkZW50aWZp
ZXIgbV8jI25hbWUjI1N5bWJvbDsKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX1NZTUJPTF9BQ0NF
U1NPUihuYW1lKSBcCi0gICAgREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IobmFt
ZSkgXAotICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUjI1N5bWJvbCgpIGNvbnN0IHsgcmV0dXJu
IG1fIyNuYW1lIyNTeW1ib2w7IH0KKyNkZWZpbmUgSU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJ
Q19FTlRSWShuYW1lKSBtX3ByaXZhdGVUb1B1YmxpY01hcC5hZGQobV8jI25hbWUjI1ByaXZhdGVO
YW1lLmltcGwoKSwgJm1fIyNuYW1lKTsKKyNkZWZpbmUgSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJ
VkFURV9FTlRSWShuYW1lKSBtX3B1YmxpY1RvUHJpdmF0ZU1hcC5hZGQobV8jI25hbWUuaW1wbCgp
LCAmbV8jI25hbWUjI1ByaXZhdGVOYW1lKTsKIAotI2RlZmluZSBJTklUSUFMSVNFX1BSSVZBVEVf
VE9fUFVCTElDX0VOVFJZKG5hbWUpIG1fcHJpdmF0ZVRvUHVibGljTWFwLmFkZChtXyMjbmFtZSMj
UHJpdmF0ZU5hbWUuaW1wbCgpLCAmbV8jI25hbWUpOwotI2RlZmluZSBJTklUSUFMSVNFX1BVQkxJ
Q19UT19QUklWQVRFX0VOVFJZKG5hbWUpIG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtXyMjbmFt
ZS5pbXBsKCksICZtXyMjbmFtZSMjUHJpdmF0ZU5hbWUpOwotICAgIAogY2xhc3MgQnVpbHRpbk5h
bWVzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCdWlsdGluTmFtZXMpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKICAgICAKIHB1YmxpYzoKICAgICBCdWlsdGluTmFtZXMoVk0qIHZtLCBD
b21tb25JZGVudGlmaWVycyogY29tbW9uSWRlbnRpZmllcnMpCiAgICAgICAgIDogbV9lbXB0eUlk
ZW50aWZpZXIoY29tbW9uSWRlbnRpZmllcnMtPmVtcHR5SWRlbnRpZmllcikKLSAgICAgICAgSlND
X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUykK
LSAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFN
RShJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9J
REVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJU0VfQlVJTFRJTl9TWU1C
T0xTKQorICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTEla
RV9CVUlMVElOX05BTUVTKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNf
RUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUykKKyAgICAgICAgSlND
X0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElB
TElaRV9CVUlMVElOX1NZTUJPTFMpCiAgICAgewotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElO
X0ZVTkNUSU9OX05BTUUoSU5JVElBTElTRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKLSAgICAg
ICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklU
SUFMSVNFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZB
VEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVNFX1BSSVZBVEVf
VE9fUFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05B
TUUoSU5JVElBTElTRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKLSAgICAgICAgSlNDX0NPTU1P
Tl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVNFX1BVQkxJ
Q19UT19QUklWQVRFX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklF
UlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVNFX1BVQkxJQ19UT19QUklWQVRFX0VO
VFJZKQorICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTEla
RV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKKyAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lE
RU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElD
X0VOVFJZKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxM
X0tOT1dOX1NZTUJPTChJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQorICAgICAg
ICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9QVUJMSUNfVE9f
UFJJVkFURV9FTlRSWSkKKyAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VB
Q0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAg
ICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJP
TChJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQogICAgIH0KIAogICAgIGJvb2wg
aXNQcml2YXRlTmFtZShTeW1ib2xJbXBsJiB1aWQpIGNvbnN0OwpAQCAtODQsMTMgKzczLDYgQEAg
cHJpdmF0ZToKICAgICBCdWlsdGluTmFtZXNNYXAgbV9wcml2YXRlVG9QdWJsaWNNYXA7CiB9Owog
Ci0jdW5kZWYgREVDTEFSRV9CVUlMVElOX05BTUVTCi0jdW5kZWYgSU5JVElBTElTRV9CVUlMVElO
X05BTUVTCi0jdW5kZWYgREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IKLSN1bmRl
ZiBERUNMQVJFX0JVSUxUSU5fU1lNQk9MUwotI3VuZGVmIElOSVRJQUxJU0VfQlVJTFRJTl9TWU1C
T0xTCi0jdW5kZWYgREVDTEFSRV9CVUlMVElOX1NZTUJPTF9BQ0NFU1NPUgotCiBpbmxpbmUgYm9v
bCBCdWlsdGluTmFtZXM6OmlzUHJpdmF0ZU5hbWUoU3ltYm9sSW1wbCYgdWlkKSBjb25zdAogewog
ICAgIHJldHVybiBtX3ByaXZhdGVUb1B1YmxpY01hcC5jb250YWlucygmdWlkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2My
OWE2NWY4NDZhZTgyNWJmNmQ2YjU1NjhlYWQ3Yjc4ZWY0YzM3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBCdWlsdGluVXRpbHNfaAorI2RlZmluZSBCdWlsdGluVXRpbHNfaAorCisjaW5jbHVkZSAiQ29u
c3RydWN0QWJpbGl0eS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBJTklUSUFMSVpF
X0JVSUxUSU5fTkFNRVMobmFtZSkgLCBtXyMjbmFtZShKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICNuYW1lKSksIG1fIyNuYW1lIyNQcml2YXRlTmFtZShKU0M6OklkZW50aWZpZXI6OmZy
b21VaWQoSlNDOjpQcml2YXRlTmFtZShKU0M6OlByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwgQVND
SUlMaXRlcmFsKCJQcml2YXRlU3ltYm9sLiIgI25hbWUpKSkpCisjZGVmaW5lIERFQ0xBUkVfQlVJ
TFRJTl9OQU1FUyhuYW1lKSBjb25zdCBKU0M6OklkZW50aWZpZXIgbV8jI25hbWU7IGNvbnN0IEpT
Qzo6SWRlbnRpZmllciBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7CisjZGVmaW5lIERFQ0xBUkVfQlVJ
TFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBjb25zdCBKU0M6OklkZW50aWZp
ZXImIG5hbWUjI1B1YmxpY05hbWUoKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZTsgfSBcCisgICAg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBuYW1lIyNQcml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fIyNuYW1lIyNQcml2YXRlTmFtZTsgfQorCisjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJTl9T
WU1CT0xTKG5hbWUpIElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUyhuYW1lKSwgbV8jI25hbWUjI1N5
bWJvbChKU0M6OklkZW50aWZpZXI6OmZyb21VaWQoSlNDOjpQcml2YXRlTmFtZShKU0M6OlByaXZh
dGVOYW1lOjpEZXNjcmlwdGlvbiwgQVNDSUlMaXRlcmFsKCJTeW1ib2wuIiAjbmFtZSkpKSkKKyNk
ZWZpbmUgREVDTEFSRV9CVUlMVElOX1NZTUJPTFMobmFtZSkgREVDTEFSRV9CVUlMVElOX05BTUVT
KG5hbWUpIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZSMjU3ltYm9sOworI2RlZmluZSBE
RUNMQVJFX0JVSUxUSU5fU1lNQk9MX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBERUNMQVJFX0JVSUxU
SU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCisgICAgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBuYW1lIyNTeW1ib2woKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZSMjU3ltYm9sOyB9CisKK2Ns
YXNzIElkZW50aWZpZXI7CitjbGFzcyBTb3VyY2VDb2RlOworY2xhc3MgVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGU7CitjbGFzcyBWTTsKKworSlNfRVhQT1JUX1BSSVZBVEUgVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKFZNJiwgY29uc3QgU291cmNl
Q29kZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKyAgICAKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCmluZGV4IDIyMjNmNmMzMGNkMTA3NGQ4N2EwZmM3
ZTRjNzcwNzI2MDk1NTlkYWQuLmQ4ZTgyMjkzOTBlNTc3Y2I0ODBmYjBlOTI5M2Y0MWJhNDJkOWMx
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC01OSw3ICs1OSw2IEBAIGVudW0gVW5saW5r
ZWRGdW5jdGlvbktpbmQgewogCiBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5h
bCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGljOgotICAgIGZyaWVuZCBjbGFzcyBCdWlsdGluRXhl
Y3V0YWJsZXM7CiAgICAgZnJpZW5kIGNsYXNzIENvZGVDYWNoZTsKICAgICBmcmllbmQgY2xhc3Mg
Vk07CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IElkZW50aWZpZXImIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBjb25zdCBJZGVudGlmaWVyJiBpbmZl
cnJlZE5hbWUoKSBjb25zdCB7IHJldHVybiBtX2luZmVycmVkTmFtZTsgfQogICAgIEpTU3RyaW5n
KiBuYW1lVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX25hbWVWYWx1ZS5nZXQoKTsgfQorICAgIHZv
aWQgc2V0TmFtZVZhbHVlKFZNJiB2bSwgSlNTdHJpbmcqIG5hbWVWYWx1ZSkgeyBtX25hbWVWYWx1
ZS5zZXQodm0sIHRoaXMsIG5hbWVWYWx1ZSk7IH0KICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJDb3Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyQ291bnQ7IH07CiAgICAgU291cmNlUGFyc2VN
b2RlIHBhcnNlTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VNb2RlOyB9OwogICAgIGJvb2wg
aXNJblN0cmljdENvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5TdHJpY3RDb250ZXh0OyB9
CkBAIC0xMDEsNyArMTAxLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiwg
RXhlY1N0YXRlJiwgY29uc3QgU291cmNlQ29kZSYsIEpTT2JqZWN0KiYgZXhjZXB0aW9uLCAKICAg
ICAgICAgaW50IG92ZXJyaWRlTGluZU51bWJlcik7CiAKLSAgICBGdW5jdGlvbkV4ZWN1dGFibGUq
IGxpbmsoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgaW50IG92ZXJyaWRlTGluZU51bWJlciA9IC0x
KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBGdW5jdGlvbkV4ZWN1dGFibGUqIGxpbmsoVk0mLCBj
b25zdCBTb3VyY2VDb2RlJiwgaW50IG92ZXJyaWRlTGluZU51bWJlciA9IC0xKTsKIAogICAgIHZv
aWQgY2xlYXJDb2RlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Z2VuZXJhdGUtanMtYnVpbHRpbnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMt
YnVpbHRpbnMKaW5kZXggOTY0NzE2MzZmYTNlN2NlYzBhMjZiYmFmNTZhMjhkOTI4MjEwYzU2Ny4u
MGFhZjRjMzBlNmQ4NDFiNzU1MzliOGNmNmE4YmU4MTAxMmU5YzY2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpAQCAtMzYsNiArMzYsOCBAQCBwYXJzZXIg
PSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCiBwYXJzZXIuYWRkX2FyZ3VtZW50KCdpbnB1dF9m
aWxlJywgbmFyZ3M9JyonLCBoZWxwPSdJbnB1dCBKUyBmaWxlcyB3aGljaCBidWlsdGlucyBnZW5l
cmF0ZWQgZnJvbScpCiBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWlucHV0LWRpcmVjdG9yeScsIGhl
bHA9J0FsbCBKUyBmaWxlcyB3aWxsIGJlIHVzZWQgYXMgaW5wdXQgZnJvbSB0aGlzIGRpcmVjdG9y
eS4nKQogcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1vdXRwdXQnLCBoZWxwPSdwYXRoIHRvIG91dHB1
dCBjcHAgb3IgaCBmaWxlJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0tcHJlZml4JywgZGVmYXVs
dD0nSlNDJywgaGVscD0ncHJlZml4IHVzZWQgZm9yIHB1YmxpYyBtYWNyb3MnKQorcGFyc2VyLmFk
ZF9hcmd1bWVudCgnLS1uYW1lc3BhY2UnLCBkZWZhdWx0PSdKU0MnLCBoZWxwPSdDKysgbmFtZXNw
YWNlJykKIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCiAKIGNvcHlyaWdodFRleHQgPSAiIiIg
KgpAQCAtMTUzLDYgKzE1NSw5IEBAIGRlZiBnZXRGdW5jdGlvbnMoc291cmNlKToKICAgICAgICAg
cmVzdWx0LmFwcGVuZChGdW5jdGlvbihmdW5jdGlvbk5hbWUsIGZ1bmN0aW9uLCBmdW5jdGlvbklz
Q29uc3RydWN0b3IsIGZ1bmN0aW9uUGFyYW1ldGVycykpCiAgICAgcmV0dXJuIHJlc3VsdAogCitk
ZWYgd3JpdGVJbmNsdWRlRGlyZWN0aXZlcyh3cml0ZXIsIGhlYWRlck5hbWVzKToKKyAgICBmb3Ig
aGVhZGVyTmFtZSBpbiBoZWFkZXJOYW1lczoKKyAgICAgICAgd3JpdGVyLndyaXRlKCIjaW5jbHVk
ZSAiICsgaGVhZGVyTmFtZSArICJcbiIpCiAKIGRlZiBnZW5lcmF0ZUNvZGUoc291cmNlKToKICAg
ICBpbnB1dEZpbGUgPSBvcGVuKHNvdXJjZSwgInIiKQpAQCAtMTc5LDYgKzE4NCwxNCBAQCBmb3Ig
ZmlsZSBpbiBhcmdzLmlucHV0X2ZpbGU6CiAgICAgICAgIChiYXNlTmFtZSwgZnVuY3Rpb25zLCBv
YmplY3RDb3B5cmlnaHRzKSA9IGdlbmVyYXRlQ29kZShmaWxlKQogICAgICAgICBjb3B5cmlnaHRz
LmV4dGVuZChvYmplY3RDb3B5cmlnaHRzKQogICAgICAgICBidWlsdGlucy5hcHBlbmQoKGJhc2VO
YW1lLCBmdW5jdGlvbnMpKQorbmFtZXNwYWNlID0gYXJncy5uYW1lc3BhY2UKK21hY3JvUHJlZml4
ID0gYXJncy5wcmVmaXgKK3Njb3BlTmFtZSA9IG9zLnBhdGguc3BsaXRleHQob3MucGF0aC5iYXNl
bmFtZShhcmdzLm91dHB1dCkpWzBdCitpbmNsdWRlR3VhcmQgPSBzY29wZU5hbWUgKyAiX0giCito
ZWFkZXJOYW1lID0gc2NvcGVOYW1lICsgIi5oIgorCitoZWFkZXJJbmNsdWRlcyA9IFsiXCJCdWls
dGluVXRpbHMuaFwiIl0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2UgWyI8YnVpbHRpbnMvQnVp
bHRpblV0aWxzLmg+Il0KK2NvbnRlbnRJbmNsdWRlcyA9IFsiXCJCdWlsdGluRXhlY3V0YWJsZXMu
aFwiIiwgIlwiRXhlY3V0YWJsZS5oXCIiLCAiXCJKU0NlbGxJbmxpbmVzLmhcIiIsICJcIlZNLmhc
IiJdIGlmIG5hbWVzcGFjZSA9PSAiSlNDIiBlbHNlIFsiPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPiIs
ICI8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPiIsICI8cnVudGltZS9KU0NlbGxJbmxpbmVz
Lmg+IiwgIjxydW50aW1lL1ZNLmg+IiwgIlwiV2ViQ29yZUpTQ2xpZW50RGF0YS5oXCIiXQogCiBj
b3B5cmlnaHRzID0gbGlzdChzZXQoY29weXJpZ2h0cykpCiAKQEAgLTE5MiwyMyArMjA1LDIxIEBA
IGNvcHlyaWdodFRleHQgPSAiLypcbiIgKyBjb3B5cmlnaHRCb2R5ICsgY29weXJpZ2h0VGV4dAog
YnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiJXMKICVzCiAKLSNpZm5kZWYgSlNDQnVpbHRpbnNfSAot
I2RlZmluZSBKU0NCdWlsdGluc19ICisjaWZuZGVmICVzCisjZGVmaW5lICVzCiAKLSNpbmNsdWRl
ICJDb25zdHJ1Y3RBYmlsaXR5LmgiCisiIiIgJSAoZ2VuZXJhdG9yU3RyaW5nLCBjb3B5cmlnaHRU
ZXh0LCBpbmNsdWRlR3VhcmQsIGluY2x1ZGVHdWFyZCkpCiAKLW5hbWVzcGFjZSBKU0Mgeword3Jp
dGVJbmNsdWRlRGlyZWN0aXZlcyhidWlsdGluc0hlYWRlciwgaGVhZGVySW5jbHVkZXMpCiAKLWNs
YXNzIEZ1bmN0aW9uRXhlY3V0YWJsZTsKLWNsYXNzIElkZW50aWZpZXI7Ci1jbGFzcyBKU0dsb2Jh
bE9iamVjdDsKLWNsYXNzIFNvdXJjZUNvZGU7Ci1jbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZTsKLWNsYXNzIFZNOworYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCituYW1lc3BhY2UgSlND
IHsKKyAgICBjbGFzcyBGdW5jdGlvbkV4ZWN1dGFibGU7Cit9CiAKLUZ1bmN0aW9uRXhlY3V0YWJs
ZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoVk0mLCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZSosIGNvbnN0IFNvdXJjZUNvZGUmKTsKK25hbWVzcGFjZSAlcyB7CiAKLSIiIiAlIChnZW5lcmF0
b3JTdHJpbmcsIGNvcHlyaWdodFRleHQpKQorIiIiICUgbmFtZXNwYWNlKQogCiBjb2RlUmVmZXJl
bmNlcyA9IFtdCiAKQEAgLTIyMiw1OCArMjMzLDU5IEBAIGZvciAob2JqZWN0TmFtZSwgZnVuY3Rp
b25zKSBpbiBidWlsdGluczoKICAgICAgICAgY29kZVJlZmVyZW5jZXMuYXBwZW5kKChtYW5nbGVk
TmFtZSwgZnVuY3Rpb24pKQogICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNv
bnN0IGNoYXIqIHNfJXM7XG4iICUgbWFuZ2xlZE5hbWUpCiAgICAgICAgIGJ1aWx0aW5zSGVhZGVy
LndyaXRlKCJleHRlcm4gY29uc3QgaW50IHNfJXNMZW5ndGg7XG4iICUgbWFuZ2xlZE5hbWUpCi0g
ICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgQ29uc3RydWN0QWJpbGl0
eSBzXyVzQ29uc3RydWN0QWJpbGl0eTtcbiIgJSBtYW5nbGVkTmFtZSkKKyAgICAgICAgYnVpbHRp
bnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBKU0M6OkNvbnN0cnVjdEFiaWxpdHkgc18lc0Nv
bnN0cnVjdEFiaWxpdHk7XG4iICUgbWFuZ2xlZE5hbWUpCiAgICAgYnVpbHRpbnNIZWFkZXIud3Jp
dGUoIlxuIikKLSAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSBKU0NfRk9SRUFDSF8l
c19CVUlMVElOKG1hY3JvKSBcXFxuIiAlIG9iamVjdE5hbWUucmVwbGFjZSgiLiIsICJfIikudXBw
ZXIoKSkKKyAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNIXyVzX0JV
SUxUSU4obWFjcm8pIFxcXG4iICUgKG1hY3JvUHJlZml4LCBvYmplY3ROYW1lLnJlcGxhY2UoIi4i
LCAiXyIpLnVwcGVyKCkpKQogICAgIGZvciBmdW5jdGlvbiBpbiBmdW5jdGlvbnM6CiAgICAgICAg
IG1hbmdsZWROYW1lID0gZnVuY3Rpb24ubWFuZ2xlTmFtZShvYmplY3ROYW1lKQogICAgICAgICBi
dWlsdGluc0hlYWRlci53cml0ZSgiICAgIG1hY3JvKCVzLCAlcywgJWQpIFxcXG4iICUgKGZ1bmN0
aW9uLm5hbWUsIG1hbmdsZWROYW1lLCBsZW4oZnVuY3Rpb24ucGFyYW1ldGVycykpKQogICAgIGJ1
aWx0aW5zSGVhZGVyLndyaXRlKCJcbiIpCiAgICAgZm9yIGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoK
LSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0JVSUxUSU5fJXMgMVxu
IiAlIGZ1bmN0aW9uLm1hbmdsZU5hbWUob2JqZWN0TmFtZSkudXBwZXIoKSkKKyAgICAgICAgYnVp
bHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfQlVJTFRJTl8lcyAxXG4iICUgKG1hY3JvUHJl
Zml4LCBmdW5jdGlvbi5tYW5nbGVOYW1lKG9iamVjdE5hbWUpLnVwcGVyKCkpKQogICAgIGJ1aWx0
aW5zSGVhZGVyLndyaXRlKCJcblxuIikKIG5hbWVzID0gW10KLWJ1aWx0aW5zSGVhZGVyLndyaXRl
KCIjZGVmaW5lIEpTQ19GT1JFQUNIX0JVSUxUSU4obWFjcm8pXFxcbiIpCitidWlsdGluc0hlYWRl
ci53cml0ZSgiI2RlZmluZSAlc19GT1JFQUNIX0JVSUxUSU4obWFjcm8pXFxcbiIgJSBtYWNyb1By
ZWZpeCkKIGZvciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZlcmVuY2VzOgog
ICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIgICAgbWFjcm8oJXMsICVzLCBzXyVzTGVuZ3RoKSBc
XFxuIiAlIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbi5uYW1lLCBjb2RlUmVmZXJlbmNlKSkKICAg
ICBuYW1lcy5hcHBlbmQoZnVuY3Rpb24ubmFtZSkKIAogYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxu
XG4iKQotYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9G
VU5DVElPTl9OQU1FKG1hY3JvKSBcXFxuIikKK2J1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5l
ICVzX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKG1hY3JvKSBcXFxuIiAlIG1hY3JvUHJl
Zml4KQogZm9yIG5hbWUgaW4gc29ydGVkKHNldChuYW1lcykpOgogICAgIGJ1aWx0aW5zSGVhZGVy
LndyaXRlKCIgICAgbWFjcm8oJXMpIFxcXG4iICUgbmFtZSkKIGJ1aWx0aW5zSGVhZGVyLndyaXRl
KCIiIgogCi0jZGVmaW5lIEpTQ19ERUNMQVJFX0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBm
dW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxcCi0gICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBj
b2RlTmFtZSMjR2VuZXJhdG9yKFZNJik7CisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFU
T1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKKyAgICBKU0M6OkZ1
bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZNJik7CiAKLUpTQ19G
T1JFQUNIX0JVSUxUSU4oSlNDX0RFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5kZWYgSlND
X0RFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IKKyVzX0ZPUkVBQ0hfQlVJTFRJTihERUNMQVJFX0JV
SUxUSU5fR0VORVJBVE9SKQorI3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IKIAotI2Rl
ZmluZSBKU0NfQlVJTFRJTl9FWElTVFMobmFtZSkgZGVmaW5lZCBKU0NfQlVJTFRJTl8gIyMgbmFt
ZQorI2RlZmluZSAlc19CVUlMVElOX0VYSVNUUyhuYW1lKSBkZWZpbmVkICVzX0JVSUxUSU5fICMj
IG5hbWUKIAogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyAlcwogCi0iIiIpCisiIiIgJSAobWFjcm9Q
cmVmaXgsIG1hY3JvUHJlZml4LCBtYWNyb1ByZWZpeCwgaW5jbHVkZUd1YXJkKSkKIAogYnVpbHRp
bnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiIlcwogJXMKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
Ci0jaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKKyNpbmNsdWRlICIlcyIKIAotI2luY2x1ZGUgIkJ1
aWx0aW5FeGVjdXRhYmxlcy5oIgotI2luY2x1ZGUgIkNvbnN0cnVjdEFiaWxpdHkuaCIKLSNpbmNs
dWRlICJFeGVjdXRhYmxlLmgiCi0jaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgotI2luY2x1ZGUg
IlZNLmgiCisiIiIgICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4dCwgaGVhZGVyTmFt
ZSkpCisKK3dyaXRlSW5jbHVkZURpcmVjdGl2ZXMoYnVpbHRpbnNJbXBsZW1lbnRhdGlvbiwgY29u
dGVudEluY2x1ZGVzKQorCitidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIgorbmFtZXNw
YWNlICVzIHsKKworIiIiICAlIChuYW1lc3BhY2UpKQogCi1uYW1lc3BhY2UgSlNDIHsKIAotIiIi
ICAlIChnZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQpKQogCiBmb3IgKGNvZGVSZWZlcmVu
Y2UsIGZ1bmN0aW9uKSBpbiBjb2RlUmVmZXJlbmNlczoKICAgICBzb3VyY2UgPSBmdW5jdGlvbi5z
b3VyY2UKQEAgLTI4NSwyMyArMjk3LDMzIEBAIGZvciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24p
IGluIGNvZGVSZWZlcmVuY2VzOgogICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyAoIiAgICBcIiVz
XFxuXCIgXFxcbiIgJSBsaW5lKQogICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNv
bnN0IGNoYXIqIHNfJXMgPVxuJXM7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgc291cmNlKSkKICAg
ICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBpbnQgc18lc0xlbmd0aCA9ICVk
O1xuXG4iICUgKGNvZGVSZWZlcmVuY2UsIHNvdXJjZUxlbmd0aCArIDEpKSAjICsgMSBmb3IgXG4K
LSAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkNvbnN0cnVjdEFiaWxpdHk6OkNhbm5vdENvbnN0cnVj
dCIKKyAgICBjb25zdHJ1Y3RBYmlsaXR5ID0gIkpTQzo6Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90
Q29uc3RydWN0IgogICAgIGlmIGZ1bmN0aW9uLmlzQ29uc3RydWN0b3I6Ci0gICAgICAgIGNvbnN0
cnVjdEFiaWxpdHkgPSAiQ29uc3RydWN0QWJpbGl0eTo6Q2FuQ29uc3RydWN0IgotICAgIGJ1aWx0
aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoImNvbnN0IENvbnN0cnVjdEFiaWxpdHkgc18lc0NvbnN0
cnVjdEFiaWxpdHkgPSAlcztcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBjb25zdHJ1Y3RBYmlsaXR5
KSkgIyArIDEgZm9yIFxuCisgICAgICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAiSlNDOjpDb25zdHJ1
Y3RBYmlsaXR5OjpDYW5Db25zdHJ1Y3QiCisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0
ZSgiY29uc3QgSlNDOjpDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5ID0gJXM7
XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwgY29uc3RydWN0QWJpbGl0eSkpICMgKyAxIGZvciBcbgog
CiBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIgotI2RlZmluZSBKU0NfREVGSU5FX0JV
SUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQpIFxc
Ci1GdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoVk0mIHZtKSBcXAoteyBc
XAotICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFi
bGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2Uo
KSk7IFxcCi19CisjZGVmaW5lIERFRklORV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVu
Y3Rpb25OYW1lLCBhcmd1bWVudENvdW50KSBcXAorSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGUqIGNv
ZGVOYW1lIyNHZW5lcmF0b3IoSlNDOjpWTSYgdm0pIFxcCisiIiIpOwogCi1KU0NfRk9SRUFDSF9C
VUlMVElOKEpTQ19ERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCi0jdW5kZWYgSlNDX0RFRklORV9C
VUlMVElOX0dFTkVSQVRPUgoraWYgKG5hbWVzcGFjZSA9PSAiSlNDIik6CisgICAgYnVpbHRpbnNJ
bXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ7XFwKKyAgICByZXR1cm4gdm0uYnVpbHRpbkV4ZWN1dGFi
bGVzKCktPmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIHZtLmJ1aWx0aW5FeGVjdXRh
YmxlcygpLT5jb2RlTmFtZSMjU291cmNlKCkpOyBcXAorIiIiKQorZWxzZToKKyAgICBidWlsdGlu
TmFtZSA9IHNjb3BlTmFtZVswXS5sb3dlcigpICsgc2NvcGVOYW1lWzE6XQorICAgIGJ1aWx0aW5z
SW1wbGVtZW50YXRpb24ud3JpdGUoIiIie1xcCisgICAgV2ViQ29yZUpTQ2xpZW50RGF0YSogY2xp
ZW50RGF0YSA9IHN0YXRpY19jYXN0PFdlYkNvcmVKU0NsaWVudERhdGEqPih2bS5jbGllbnREYXRh
KTsgXFwKKyAgICByZXR1cm4gY2xpZW50RGF0YS0+JXMoKS5jb2RlTmFtZSMjRXhlY3V0YWJsZSgp
LT5saW5rKHZtLCBjbGllbnREYXRhLT4lcygpLmNvZGVOYW1lIyNTb3VyY2UoKSk7IFxcCisiIiIl
IChidWlsdGluTmFtZSwgYnVpbHRpbk5hbWUpKQorCitidWlsdGluc0ltcGxlbWVudGF0aW9uLndy
aXRlKCIiIn0KKyVzX0ZPUkVBQ0hfQlVJTFRJTihERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IpCisj
dW5kZWYgREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCiB9CiAKLSIiIikKKyIiIiUgKG1hY3JvUHJl
Zml4KSkKIAogYnVpbHRpbnNIZWFkZXIuY2xvc2UoKQogYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi5j
bG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDNlNDRmMjdhZWM0MTcyZmQ0MmM2YzEwYjE3
YjAwN2E3YTJlZjI0NjIuLjdlZWZjNzE3MjEwNDM3ODk1OGQ1NzEzODJkMjFjNWRjMzM4ODVlYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zMzM3LDYgKzMzMzcsMTAgQEAgc2V0KFdPUktFUkdM
T0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9Xb3JrZXJHbG8KIHNldChERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsKQogc2V0KElETF9BVFRSSUJVVEVTX0ZJTEUgJHtXRUJDT1JF
X0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCkKIAorc2V0KFdFQkNPUkVf
SlNfQlVJTFRJTlMKKyAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW0uanMKKykKKwogV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCiAK
ICMgR2VuZXJhdGUgSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaApAQCAtMzU1Niw2ICszNTYwLDIxIEBA
IEdFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgJHtTVVBQ
TEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFfQogICAgICR7QURESVRJT05BTF9CSU5ESU5HU19ERVBF
TkRFTkNJRVN9KQogCisjIFdlYkNvcmUgSlMgQnVpbHRpbnMKK2ZvcmVhY2ggKF9idWlsdGluanMg
JHtXRUJDT1JFX0pTX0JVSUxUSU5TfSkKKyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1l
ICR7X2J1aWx0aW5qc30gTkFNRV9XRSkKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAg
IE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGluc1dy
YXBwZXIuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5o
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmNwcAorICAg
ICAgICBNQUlOX0RFUEVOREVOQ1kgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2dlbmVyYXRl
LWpzLWJ1aWx0aW5zCisgICAgICAgIERFUEVORFMgJHtfYnVpbHRpbmpzfQorICAgICAgICBDT01N
QU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9nZW5l
cmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICR7X2J1aWx0aW5qc30gLS1vdXRwdXRfZGlyICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAtLXdlYmNvcmVfZGlyICR7Q01BS0VfQ1VSUkVOVF9T
T1VSQ0VfRElSfQorICAgICAgICBWRVJCQVRJTSkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMKKyAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9QnVp
bHRpbnMuaAorICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1C
dWlsdGluc1dyYXBwZXIuaAorICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0v
JHtfbmFtZX1CdWlsdGlucy5jcHAKKyAgICApCitlbmRmb3JlYWNoICgpCiAKIEFERF9TT1VSQ0Vf
V0VCQ09SRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke1dFQkNPUkVfRElSfS9odG1sL0hUTUxUcmVl
QnVpbGRlci5jcHAgTWF0aE1MTmFtZXMuY3BwKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAK
aW5kZXggNzMzOWMyZjJmMzNmNzEzYThhMDU2ZDg0MDA4ZTQ3Yzc1MTgxZjBkMS4uOGZiYTYwNTg2
NTRhMjBhMDAwMTExZDdhODhmNWQ2MWFiMzVhNDUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcApAQCAtMzEwLDYgKzMxMCw3IEBACiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5jcHAi
CiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwIgogI2luY2x1ZGUgIkpT
UmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtQnVpbHRp
bnMuY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNSZWN0LmNwcCIKICNpbmNsdWRlICJKU1JlcXVl
c3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IGFlMTBkNTk0NzdkZDhkYTBkOGJlZDc4ZmQ4M2NhMWEzZGEwZjljYWIuLjMyNGE1NWZk
YjcwMGMyOGMxNjA2MGM3YmIzYTI0MmYxM2NlYmU5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtNzkyLDYgKzc5Miw3IEBAIGFsbCA6IFwKICAgICAkKFdPUktFUkdMT0JBTFND
T1BFX0NPTlNUUlVDVE9SU19GSUxFKSBcCiAgICAgJChKU19ET01fSEVBREVSUykgXAogICAgICQo
V0VCX0RPTV9IRUFERVJTKSBcCisgICAgJChXRUJDT1JFX0pTX0JVSUxUSU5TKSBcCiAgICAgXAog
ICAgIENTU0dyYW1tYXIuY3BwIFwKICAgICBDU1NQcm9wZXJ0eU5hbWVzLmNwcCBcCkBAIC0xMjQ2
LDYgKzEyNDcsMTYgQEAgV2ViUmVwbGF5SW5wdXRzLmggOiAkKElOUFVUX0dFTkVSQVRPUl9TUEVD
SUZJQ0FUSU9OUykgJChJTlBVVF9HRU5FUkFUT1JfU0NSSVBUUykKIAogLWluY2x1ZGUgJChKU19E
T01fSEVBREVSUzouaD0uZGVwKQogCisjIFdlYkNvcmUgSlMgQnVpbHRpbnMKKworV0VCQ09SRV9K
U19CVUlMVElOUyA9IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbS5qcworCithbGwgOiAkKFdFQkNPUkVfSlNfQlVJTFRJTlM6JS5qcz0lQnVpbHRpbnMuY3Bw
KQorCislQnVpbHRpbnMuY3BwOiAlLmpzCisJJChQWVRIT04pICQoV2ViQ29yZSkvZ2VuZXJhdGUt
anMtYnVpbHRpbnMgLS1pbnB1dCAkPCAtLXdlYmNvcmVfZGlyICQoV2ViQ29yZSkKKwogIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogIyBNYWMtc3BlY2lmaWMgcnVsZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5o
IGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxz
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWY3NDE0YjgzMDkzOGRkNmM1YTg2YjI1YmU2ZGY2NzUyNTY4NWNjMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2J1aWx0
aW5zL0J1aWx0aW5VdGlscy5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9C
dWlsdGluVXRpbHNfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9CdWlsdGluVXRpbHNfaAorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0J1aWx0aW5VdGlscy5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9u
RXhlY3V0YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUv
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzEyZDliZjA1ODg0ZjNm
Nzk5OTI5ZWQ2YzE0NWYwYjNlNWUxNjk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUu
aApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGVfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUu
aD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMv
cnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9ydW50aW1lL0NvbnN0cnVjdEFiaWxpdHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGRjYWRjYzkzZmI2
ZTU3OTc5NDFiMjVjZDA0ZTEyOTUwNWNiYWM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcnVudGltZS9Db25zdHJ1Y3RBYmlsaXR5LmgKQEAgLTAs
MCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0NvbnN0cnVjdEFiaWxpdHlfaAorI2RlZmlu
ZSBXZWJDb3JlX0ZXRF9Db25zdHJ1Y3RBYmlsaXR5X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Db25zdHJ1Y3RBYmlsaXR5Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCmluZGV4IDg2M2MyNjQzMThjNTQxMjBhNzA4
ODkxYTFjZGFjNTNmMDY4Y2IwZDAuLjZhYzI1OTVhYWJkNWJhZjY1NDhjZWJjZDhhMzJhYjAwZGE4
MGQyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtLmlkbApAQCAtMzYsNyArMzYsNyBAQAogICAgIFtSYWlzZXNFeGNlcHRpb25dIFByb21p
c2UgY2FuY2VsKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgYW55IHJlYXNvbik7CiAgICAg
W1JhaXNlc0V4Y2VwdGlvbl0gUmVhZGFibGVTdHJlYW1SZWFkZXIgZ2V0UmVhZGVyKCk7CiAgICAg
W0N1c3RvbV0gUHJvbWlzZSBwaXBlVG8oYW55IHN0cmVhbXMsIGFueSBvcHRpb25zKTsKLSAgICBb
Q3VzdG9tXSBPYmplY3QgcGlwZVRocm91Z2goYW55IGRlc3QsIGFueSBvcHRpb25zKTsKKyAgICBb
SlNCdWlsdGluXSBPYmplY3QgcGlwZVRocm91Z2goYW55IGRlc3QsIGFueSBvcHRpb25zKTsKIAog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGxvY2tlZDsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M2
MzJmNThkMWJkZjViOTc1ZDUyZDZjNzRkZjM3MGI3Y2FiNmNjMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwpAQCAtMCww
ICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZnVuY3Rpb24gcGlwZVRocm91Z2go
c3RyZWFtcywgb3B0aW9ucykKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICB0aGlzLnBpcGVU
byhzdHJlYW1zLndyaXRhYmxlLCBvcHRpb25zKTsKKyAgICByZXR1cm4gc3RyZWFtcy5yZWFkYWJs
ZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggOWZjYWYwZWQxZWIzM2ExODk1N2U5
ZWUwOWUxZmIxMzFkNDNmZTk5YS4uZDM3Yzg3ZjUzODVkMmY0OTg1N2Q4YzljZTFjNDg5ZDcyYTBk
NTNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTksNiArOSw3IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0RFUklWRURfU09VUkNFU19E
SVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL0ZvcndhcmRpbmdIZWFkZXJzIgog
ICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRD
b3JlL0FQSSIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIiCisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9y
d2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMiCiAgICAgIiR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUiCiAg
ICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyIgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdI
ZWFkZXJzL0phdmFTY3JpcHRDb3JlL2RmZyIKQEAgLTI4OSw0ICsyOTAsNCBAQCBmaWxlKFdSSVRF
ICIke1dlYkNvcmVfUE9TVF9CVUlMRF9DT01NQU5EfSIgIkB4Y29weSAveSAvcyAvZCAvZiBcIiR7
REVSSVZFRF9TT1VSQwogCiBzZXQoV2ViQ29yZV9PVVRQVVRfTkFNRQogICAgIFdlYkNvcmUke0RF
QlVHX1NVRkZJWH0KLSkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCispCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA1MzU4NWZhMGYy
N2IyMmE3OTkxZjQxMzM1YTI0MDhlMmRmMDE5ZmNlLi5mNGU3YzUzOWY0ZDNjMjc3YTE2ZGI3OTlm
OTQ3M2U5NGVlZjBiYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKQEAgLTM5NjAsNiArMzk2MCwyMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xSZWFkYWJsZVN0
cmVhbUJ1aWx0aW5zLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNzcyODY4
ZmZlYjkwYmYzMDBlZGU4NTZiYTgwMmI4MDM0NmE5ZGQzLi4wNmQwNjJiYTNiMjgxYjZjNWEzZjdl
ZWZiZTIyYjUwZWNjNjVhZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTk1LDYgKzI1OTUsNyBAQAogCQk3QzQ4QTZEMDE5
MUM5RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNDhBNkNFMTkxQzlENjUwMDAyNjY3NCAvKiBX
ZWJLaXROYW1lc3BhY2UuY3BwICovOyB9OwogCQk3QzQ4QTZEMTE5MUM5RDY1MDAwMjY2NzQgLyog
V2ViS2l0TmFtZXNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QzQ4QTZDRjE5MUM5RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmggKi87
IH07CiAJCTdDNDkwMkEyMThCODI1RjgwMDdEOTI5OCAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwu
aCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1OTg5RENBMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwu
aCAqLzsgfTsKKwkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTUxIC8qIFJlYWRhYmxlU3RyZWFtQnVp
bHRpbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0M0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICov
OyB9OwogCQk3QzRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEODFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5jcHAgKi87IH07CiAJCTdDNEM5NkRE
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNSZWFkYWJsZVN0cmVhbS5oICovOyB9OwogCQk3QzRDOTZERTFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0
cmVhbVJlYWRlci5jcHAgKi87IH07CkBAIC05OTg1LDYgKzk5ODYsNyBAQAogCQk3QzQ4QTZDRTE5
MUM5RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdE5hbWVzcGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdDNDhBNkNGMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0TmFtZXNwYWNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNDhBNkQyMTkxQzlEOEUwMDAyNjY3NCAvKiBX
ZWJLaXROYW1lc3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdE5hbWVzcGFjZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBSZWFkYWJsZVN0
cmVhbUJ1aWx0aW5zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
YWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJs
ZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzRDOTZEQTFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjExLDYgKzE2MjEzLDcgQEAKIAkJNDFBMDIzRkExQTM5
RjEzQTAwRjcyMkNGIC8qIFN0cmVhbXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MSAvKiBSZWFkYWJsZVN0cmVh
bUJ1aWx0aW5zLmNwcCAqLywKIAkJCQk3QzRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFk
YWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJN0M0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW0uaCAqLywKIAkJCQk2QzRDOTZEQTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwICovLApAQCAtMjk0MDcsNiArMjk0MTAsNyBAQAogCQkJ
CTA3NzY2NEZDMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2NThGRkExMTUyMkVGM0EwMERENTU5NSAvKiBKU1Jh
ZGlvTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyMDEwOUQxQ0M2MDAwMEJF
MzI1IC8qIEpTUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0M0Qzk2REMxQUQ0NDgzNTAw
MzY1QTUxIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1D
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMTg5RUY5MUFEODI3MzcwMEI5MEEw
RCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1D
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1
c3RvbS5jcHAKaW5kZXggOWNmMDk2YmFiYTYyMDgwNWMxNTUxZGM5YjVlYmNiYTlkY2E0ZTMyMi4u
MmI2NjNjZTc4ZGVkZjczNmIyMmZjMzkxMDU1MjRiMmRhM2JlZDAxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKQEAg
LTUzLDEyICs1Myw2IEBAIEpTVmFsdWUgSlNSZWFkYWJsZVN0cmVhbTo6cGlwZVRvKEV4ZWNTdGF0
ZSYgc3RhdGUpCiAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBl
cnJvcik7CiB9CiAKLUpTVmFsdWUgSlNSZWFkYWJsZVN0cmVhbTo6cGlwZVRocm91Z2goRXhlY1N0
YXRlJiBzdGF0ZSkKLXsKLSAgICBKU1ZhbHVlIGVycm9yID0gY3JlYXRlRXJyb3IoJnN0YXRlLCBB
U0NJSUxpdGVyYWwoInBpcGVUaHJvdWdoIGlzIG5vdCBpbXBsZW1lbnRlZCIpKTsKLSAgICByZXR1
cm4gc3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGVycm9yKTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAppbmRleCA0MzAyZDY4ZTVjOGM2ZDc4N2Q0NzI2MjQx
NGJjZWI5OGQyMmUwMTllLi5hYzg5YWYzYjU2Y2NiNjc0MWI1NDMyYjUzYjFmYmYxZjBhMDVjZTc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0
YS5oCkBAIC0yMyw2ICsyMyw3IEBACiAjZGVmaW5lIFdlYkNvcmVKU0NsaWVudERhdGFfaAogCiAj
aW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1CdWls
dGluc1dyYXBwZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTM1
LDcgKzM2LDEwIEBAIGNsYXNzIFdlYkNvcmVKU0NsaWVudERhdGEgOiBwdWJsaWMgSlNDOjpWTTo6
Q2xpZW50RGF0YSB7CiAgICAgZnJpZW5kIHZvaWQgaW5pdE5vcm1hbFdvcmxkQ2xpZW50RGF0YShK
U0M6OlZNKik7CiAKIHB1YmxpYzoKLSAgICBXZWJDb3JlSlNDbGllbnREYXRhKCkKKyAgICBXZWJD
b3JlSlNDbGllbnREYXRhKEpTQzo6Vk0mIHZtKQorI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKKyAg
ICAgICAgOiBtX3JlYWRhYmxlU3RyZWFtQnVpbHRpbnMoJnZtKQorI2VuZGlmCiAgICAgewogICAg
IH0KIApAQCAtNzEsMTQgKzc1LDIyIEBAIHB1YmxpYzoKICAgICAgICAgbV93b3JsZFNldC5yZW1v
dmUoJndvcmxkKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisgICAgUmVhZGFi
bGVTdHJlYW1CdWlsdGluc1dyYXBwZXImIHJlYWRhYmxlU3RyZWFtQnVpbHRpbnMoKSB7IHJldHVy
biBtX3JlYWRhYmxlU3RyZWFtQnVpbHRpbnM7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIEhh
c2hTZXQ8RE9NV3JhcHBlcldvcmxkKj4gbV93b3JsZFNldDsKICAgICBSZWZQdHI8RE9NV3JhcHBl
cldvcmxkPiBtX25vcm1hbFdvcmxkOworCisjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorICAgIFJl
YWRhYmxlU3RyZWFtQnVpbHRpbnNXcmFwcGVyIG1fcmVhZGFibGVTdHJlYW1CdWlsdGluczsKKyNl
bmRpZgogfTsKIAogaW5saW5lIHZvaWQgaW5pdE5vcm1hbFdvcmxkQ2xpZW50RGF0YShKU0M6OlZN
KiB2bSkKIHsKLSAgICBXZWJDb3JlSlNDbGllbnREYXRhKiB3ZWJDb3JlSlNDbGllbnREYXRhID0g
bmV3IFdlYkNvcmVKU0NsaWVudERhdGE7CisgICAgV2ViQ29yZUpTQ2xpZW50RGF0YSogd2ViQ29y
ZUpTQ2xpZW50RGF0YSA9IG5ldyBXZWJDb3JlSlNDbGllbnREYXRhKCp2bSk7CiAgICAgdm0tPmNs
aWVudERhdGEgPSB3ZWJDb3JlSlNDbGllbnREYXRhOyAvLyB+Vk0gZGVsZXRlcyB0aGlzIHBvaW50
ZXIuCiAgICAgd2ViQ29yZUpTQ2xpZW50RGF0YS0+bV9ub3JtYWxXb3JsZCA9IERPTVdyYXBwZXJX
b3JsZDo6Y3JlYXRlKCp2bSwgdHJ1ZSk7CiAgICAgdm0tPm1fdHlwZWRBcnJheUNvbnRyb2xsZXIg
PSBhZG9wdFJlZihuZXcgV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG0KaW5kZXggZWNiMmRmNzg5MDk1MjRiNDAyMTNmNTYxM2M0YmM0OGIxMThhNTI2ZS4uMjUxY2Ri
ODJkMjNiNzFlOTUzZDAwOGVkZjJiOWRhZGE2OWYyNDJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC0z
NzMsNiArMzczLDEwIEBAIHN1YiBTa2lwRnVuY3Rpb24gewogICAgICAgICByZXR1cm4gMTsKICAg
ICB9CiAKKyAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJKU0J1aWx0aW4ifSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKICAgICByZXR1cm4g
MDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQppbmRleCA3YmUwMTc5Y2Q5NWFlZGM0YjIwNTYwYzc2YTAyM2NmYzNkZWNlMTk4
Li41YTE2ZTY4ZTQ2MDBkMDkwMTk4MjRkNGNhMzcwY2U3OTZiMjY1MGE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNTQ4
LDYgKzU0OCwxNiBAQCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFtZQogc3ViIEdldEZ1bmN0aW9u
TmFtZQogewogICAgIG15ICgkY2xhc3NOYW1lLCAkZnVuY3Rpb24pID0gQF87CisKKyAgICBteSAk
c2NvcGVOYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJ
bXBsZW1lbnRlZEJ5In07CisgICAgaWYgKCEkc2NvcGVOYW1lKSB7CisgICAgICAgICRzY29wZU5h
bWUgPSBzdWJzdHIgJGNsYXNzTmFtZSwgMjsKKyAgICB9CisKKyAgICBpZiAoJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICBy
ZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHNjb3BlTmFtZSkgLiAkY29kZUdlbmVy
YXRvci0+V0tfdWNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSkgLiAiQ29kZUdlbmVy
YXRvciI7CisgICAgfQorCiAgICAgbXkgJGtpbmQgPSAkZnVuY3Rpb24tPmlzU3RhdGljID8gIkNv
bnN0cnVjdG9yIiA6ICJQcm90b3R5cGUiOwogICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tf
bGNmaXJzdCgkY2xhc3NOYW1lKSAuICRraW5kIC4gIkZ1bmN0aW9uIiAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKIH0KQEAgLTE3MzMsNiAr
MTc0Myw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgJGltcGxUeXBlID0g
R2V0SW1wbENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7CiAgICAgQWRkSW5jbHVkZXNGb3JUeXBl
SW5JbXBsKCRpbXBsVHlwZSk7CiAKKyAgICBBZGRJbmNsdWRlc0ZvckpTQnVpbHRpbk1ldGhvZHMo
JGludGVyZmFjZSk7CisKICAgICBAaW1wbENvbnRlbnQgPSAoKTsKIAogICAgIHB1c2goQGltcGxD
b250ZW50LCAiXG51c2luZyBuYW1lc3BhY2UgSlNDO1xuXG4iKTsKQEAgLTE3NDksNiArMTc2MSw3
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBuZXh0IGlmICRmdW5j
dGlvbi0+e292ZXJsb2FkSW5kZXh9ICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID4gMTsK
ICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJGb3J3YXJkRGVjbGFyZUluSGVhZGVyIn07CiAgICAgICAgICAgICBuZXh0IGlmICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQmluZGluZyJ9
OworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkpTQnVpbHRpbiJ9OwogCiAgICAgICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHly
aWdodCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVD
b3B5cmlnaHQifTsKICAgICAgICAgICAgIGlmICgkbmVlZHNBcHBsZUNvcHlyaWdodCkgewpAQCAt
MTkwNywxMiArMTkyMCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAg
ICBteSAkZnVuY3Rpb25MZW5ndGggPSBHZXRGdW5jdGlvbkxlbmd0aCgkZnVuY3Rpb24pOwogICAg
ICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJGZ1bmN0aW9uTGVuZ3RoKTsKIAotICAgICAgICAg
ICAgbXkgQHNwZWNpYWxzID0gKCk7Ci0gICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRE
ZWxldGUiKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5v
dERlbGV0YWJsZSJ9OwotICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RW51bSIpIGlm
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVyYWJs
ZSJ9OwotICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OkZ1bmN0aW9uIik7Ci0gICAg
ICAgICAgICBteSAkc3BlY2lhbCA9IChAc3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVj
aWFscykgOiAiMCI7Ci0gICAgICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsK
KyAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCgk
aW50ZXJmYWNlLCAkZnVuY3Rpb24pKTsKIAogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0g
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9
OwogICAgICAgICAgICAgaWYgKCRjb25kaXRpb25hbCkgewpAQCAtMTk4MywxNCArMTk5MSw3IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIG15ICRmdW5jdGlvbkxlbmd0aCA9
IEdldEZ1bmN0aW9uTGVuZ3RoKCRmdW5jdGlvbik7CiAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIs
ICRmdW5jdGlvbkxlbmd0aCk7CiAKLSAgICAgICAgbXkgQHNwZWNpYWxzID0gKCk7Ci0gICAgICAg
IHB1c2goQHNwZWNpYWxzLCAiRG9udERlbGV0ZSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RGVsZXRhYmxlIn0KLSAgICAgICAgICAgfHwgJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJVbmZvcmdlYWJsZSJ9Ci0gICAg
ICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJVbmZvcmdlYWJsZSJ9
OwotICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3RFbnVtZXJhYmxlIn07Ci0gICAgICAgIHB1
c2goQHNwZWNpYWxzLCAiSlNDOjpGdW5jdGlvbiIpOwotICAgICAgICBteSAkc3BlY2lhbCA9IChA
c3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7Ci0gICAgICAgIHB1
c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOworICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMs
IENvbXB1dGVGdW5jdGlvblNwZWNpYWwoJGludGVyZmFjZSwgJGZ1bmN0aW9uKSk7CiAKICAgICAg
ICAgbXkgJGNvbmRpdGlvbmFsID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDb25kaXRpb25hbCJ9OwogICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7CkBAIC0y
NzkwLDYgKzI3OTEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBteSAk
aW5BcHBsZUNvcHlyaWdodCA9IDA7CiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRp
bnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21CaW5kaW5nIn07CisgICAgICAg
ICAgICBuZXh0IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNCdWlsdGluIn07CiAgICAgICAgICAgICBteSAkbmVlZHNBcHBsZUNvcHlyaWdodCA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQXBwbGVDb3B5cmlnaHQifTsK
ICAgICAgICAgICAgIGlmICgkbmVlZHNBcHBsZUNvcHlyaWdodCkgewogICAgICAgICAgICAgICAg
IGlmICghJGluQXBwbGVDb3B5cmlnaHQpIHsKQEAgLTQyNTIsNiArNDI1NCw4IEBAIHN1YiBHZW5l
cmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkKICAgICAgICAgCiAgICAgICAgIGlmICgiQCRzcGVjaWFs
c1skaV0iID1+IG0vRnVuY3Rpb24vKSB7CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0g
InN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPiI7CisgICAgICAgIH0gZWxzaWYgKCJAJHNwZWNp
YWxzWyRpXSIgPX4gbS9CdWlsdGluLykgeworICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9
ICJzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9yPiI7CiAgICAgICAgIH0gZWxzaWYgKCJAJHNw
ZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVnZXIvKSB7CiAgICAgICAgICAgICAkZmlyc3RU
YXJnZXRUeXBlID0gIiI7CiAgICAgICAgIH0gZWxzZSB7CkBAIC01MDA0LDQgKzUwMDgsNTEgQEAg
c3ViIEhlYWRlck5lZWRzUHJvdG90eXBlRGVjbGFyYXRpb24KICAgICByZXR1cm4gSXNET01HbG9i
YWxPYmplY3QoJGludGVyZmFjZSkgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTQ3VzdG9tTmFtZWRHZXR0ZXJPblByb3RvdHlwZSJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJKU0N1c3RvbURlZmluZU93blByb3BlcnR5T25Qcm90b3R5cGUifTsKIH0K
IAorc3ViIENvbXB1dGVGdW5jdGlvblNwZWNpYWwKK3sKKyAgICBteSAkaW50ZXJmYWNlID0gc2hp
ZnQ7CisgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7CisKKyAgICBteSBAc3BlY2lhbHMgPSAoKTsK
KyAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdERlbGV0YWJsZSJ9CisgICAgICAgfHwgJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJVbmZvcmdlYWJsZSJ9CisgICAg
ICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlVuZm9yZ2VhYmxlIn07Cisg
ICAgcHVzaChAc3BlY2lhbHMsICJEb250RW51bSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVyYWJsZSJ9OworICAgIGlmICgkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAg
IHB1c2goQHNwZWNpYWxzLCAiSlNDOjpCdWlsdGluIik7CisgICAgfQorICAgIGVsc2UgeworICAg
ICAgICBwdXNoKEBzcGVjaWFscywgIkpTQzo6RnVuY3Rpb24iKTsKKyAgICB9CisgICAgcmV0dXJu
IChAc3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7Cit9CisKK3N1
YiBVc2VKU0J1aWx0aW5zCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIGZvcmVh
Y2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgaWYg
KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0p
IHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAw
Cit9CisKK3N1YiBBZGRJbmNsdWRlc0ZvckpTQnVpbHRpbk1ldGhvZHMoKQoreworICAgIG15ICRp
bnRlcmZhY2UgPSBzaGlmdDsKKworICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZh
Y2UtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgbmV4dCB1bmxlc3MgKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0pOworICAgICAgICBteSAkc2Nv
cGVOYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBs
ZW1lbnRlZEJ5In07CisgICAgICAgIGlmICghJHNjb3BlTmFtZSkgeworICAgICAgICAgICAgJHNj
b3BlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgICAgIH0KKyAgICAgICAgQWRkVG9JbXBs
SW5jbHVkZXMoJHNjb3BlTmFtZSAuICJCdWlsdGlucy5oIiwgJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9KTsKKworICAgICAgICByZXR1cm4g
MTsKKyAgICB9CisKK30KKwogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IDllMWE1NWFmZDJjOGY5ODRiMGIzMGZjY2JjNTNh
MTM2NzNlZWQyYTkuLjVlNTg0OGVlYTJkMDEwOGMyMmZkYmM5ZDBkOWZlMjY0OTVlMDc5NWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4
dApAQCAtNzMsNiArNzMsNyBAQCBJbXBsZW1lbnRlZEFzPSoKIEluaXRpYWxpemVkQnlFdmVudENv
bnN0cnVjdG9yCiBJbnRlcmZhY2VOYW1lPSoKIElzV2Vha0NhbGxiYWNrCitKU0J1aWx0aW4KIEpT
Q3VzdG9tRGVmaW5lT3duUHJvcGVydHkKIEpTQ3VzdG9tRGVmaW5lT3duUHJvcGVydHlPblByb3Rv
dHlwZQogSlNDdXN0b21GaW5hbGl6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBlNWE1ZDk4MDU3OGZiYWFjMGUy
ODAzZmVkNzhjMDE1YjFmNDRmY2RjLi4xNjUwZGRiNDRlMDRmMzIwOTdlY2VlMmE5ZDVjNzc1Mjlk
MDE1YmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiVGVzdE5vZGUuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgiCisjaW5jbHVk
ZSAiVGVzdE9iakJ1aWx0aW5zLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiYm9vbC5o
IgogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CkBAIC02MjIsNiArNjIzLDggQEAg
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVz
W10gPQogICAgIHsgImN1c3RvbU1ldGhvZFdpdGhBcmdzIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykgfSB9
LAogICAgIHsgImN1c3RvbUJpbmRpbmdNZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZCksIChpbnRwdHJfdCkgKDApIH0gfSwKICAg
ICB7ICJjdXN0b21CaW5kaW5nTWV0aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ3VzdG9tQmluZGluZ01ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAo
MykgfSB9LAorICAgIHsgImpzQnVpbHRpbk1ldGhvZCIsIEpTQzo6QnVpbHRpbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KHRlc3RPYmpKc0J1
aWx0aW5NZXRob2RDb2RlR2VuZXJhdG9yKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImpz
QnVpbHRpbk1ldGhvZFdpdGhBcmdzIiwgSlNDOjpCdWlsdGluLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4odGVzdE9iakpzQnVpbHRpbk1ldGhv
ZFdpdGhBcmdzQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkgKDMpIH0gfSwKICAgICB7ICJhZGRF
dmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2
ZW50TGlzdGVuZXIpLCAoaW50cHRyX3QpICgyKSB9IH0sCiAgICAgeyAicmVtb3ZlRXZlbnRMaXN0
ZW5lciIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExp
c3RlbmVyKSwgKGludHB0cl90KSAoMikgfSB9LAogICAgIHsgIndpdGhTY3JpcHRTdGF0ZVZvaWQi
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9p
ZCksIChpbnRwdHJfdCkgKDApIH0gfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCA4NTQzZTE4MmY1ODEzMTgy
NDVlYjUxZWRkOGEzYmFiNTg0ZTQ5YzhjLi45NzZlMGEyZTQyN2I2ZGNkYTYyNWE5ZThmOThlMmQ5
OWI4ZDE3NGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBAIC0xNDMsNiArMTQzLDggQEAgV0VCQ09SRV9FWFBP
UlQgQGludGVyZmFjZSBET01UZXN0T2JqIDogRE9NT2JqZWN0CiAtICh2b2lkKW1ldGhvZFdpdGhF
eGNlcHRpb247CiAtICh2b2lkKWN1c3RvbU1ldGhvZDsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0
aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01U
ZXN0T2JqICopb2JqQXJnOworLSAodm9pZClqc0J1aWx0aW5NZXRob2Q7CistICh2b2lkKWpzQnVp
bHRpbk1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJn
IG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjoo
TlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIg
dXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlOwogLSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVy
OihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5l
ciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXdpdGhTY3JpcHRTdGF0ZVZv
aWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5tbQppbmRleCAwM2ZkZTE3Njg5MDc3ZGM5Njg2OGFiY2ZlNjg2NmJmOGE1
MTRhMGFhLi4xNmRmMmVhYjM1MjczYWM3YWEwYWY5ZWJlYzMyZWYyMjZlYjM3OTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmoubW0KQEAgLTk1NSw2ICs5NTUsMTggQEAgLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJn
czooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVQKICAg
ICBJTVBMLT5jdXN0b21NZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJn
KSk7CiB9CiAKKy0gKHZvaWQpanNCdWlsdGluTWV0aG9kCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmpzQnVpbHRpbk1ldGhvZCgpOworfQor
CistICh2b2lkKWpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5T
U3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworeworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5qc0J1aWx0aW5NZXRo
b2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7Cit9CisKIC0gKHZvaWQp
YWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRM
aXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDViZDA5YmVhYjBhODQxMmVj
NTA3OTNiMzMxYjkwNThhZDFhNzUyMTcuLmJkNjJlOWNhMjJiNjA1MTlkMTUwMmE1N2U3Y2U1ZDlh
MDM5NmU0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE9iai5pZGwKQEAgLTExNyw2ICsxMTcsMTAgQEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9w
dGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogICAg
IFtDdXN0b21CaW5kaW5nXSB2b2lkIGN1c3RvbUJpbmRpbmdNZXRob2QoKTsKICAgICBbQ3VzdG9t
QmluZGluZ10gdm9pZCBjdXN0b21CaW5kaW5nTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nQXJnLCBE
T01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CiAKKyAgICAvLyAnSlNCdWlsdGluJyBl
eHRlbmRlZCBhdHRyaWJ1dGUKKyAgICBbSlNCdWlsdGluXSB2b2lkIGpzQnVpbHRpbk1ldGhvZCgp
OworICAgIFtKU0J1aWx0aW5dIHZvaWQganNCdWlsdGluTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25n
QXJnLCBET01TdHJpbmcgc3RyQXJnLCBUZXN0T2JqIG9iakFyZyk7CisKICAgICB2b2lkIGFkZEV2
ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIG9wdGlv
bmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKERP
TVN0cmluZyB0eXBlLCBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCBvcHRpb25hbCBib29sZWFuIHVz
ZUNhcHR1cmUpOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25mb287CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucyBiL1NvdXJjZS9XZWJDb3JlL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2MjJmZDhkODI5OTk3MjJhYjZmY2U4ZjVk
NDQwOWJhOWFiZTMwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9nZW5lcmF0
ZS1qcy1idWlsdGlucwpAQCAtMCwwICsxLDE0MSBAQAorIyEvdXNyL2Jpbi9weXRob24KKyMgQ29w
eXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisj
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyMgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorIyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgZmlsZWNtcAoraW1wb3J0IG9zCitp
bXBvcnQgc3VicHJvY2VzcworCitmcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKKworCitwYXJz
ZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW91
dHB1dF9kaXInLCBkZWZhdWx0PScnLCBoZWxwPSdvdXRwdXQgZGlyZWN0b3J5JykKK3BhcnNlci5h
ZGRfYXJndW1lbnQoJy0taW5wdXQnLCBoZWxwPSdwYXRoIHRvIGlucHV0IEpTIGZpbGUnKQorcGFy
c2VyLmFkZF9hcmd1bWVudCgnLS13ZWJjb3JlX2RpcicsIGhlbHA9J3BhdGggdG8gV2ViQ29yZSBk
aXJlY3RvcnknKQorCithcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorZmlsZW5hbWUgPSBvcy5w
YXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoYXJncy5pbnB1dCkpWzBdCisKKyMgZ2VuZXJh
dGUgSlMgYnVpbHRpbnMKK25hbWVzcGFjZSA9ICJXZWJDb3JlIgorcHJlZml4ID0gIldFQkNPUkUi
ICsgZmlsZW5hbWUudXBwZXIoKQorb3V0cHV0ID0gb3MucGF0aC5qb2luKGFyZ3Mub3V0cHV0X2Rp
ciwgZmlsZW5hbWUgKyAiQnVpbHRpbnMiKQoranNjX2dlbmVyYXRlX2J1aWx0aW5fc2NyaXB0ID0g
b3MucGF0aC5qb2luKGFyZ3Mud2ViY29yZV9kaXIsICIuLiIsICJKYXZhU2NyaXB0Q29yZSIsICJn
ZW5lcmF0ZS1qcy1idWlsdGlucyIpCisKK3N1YnByb2Nlc3MuY2FsbChbInB5dGhvbiIsIGpzY19n
ZW5lcmF0ZV9idWlsdGluX3NjcmlwdCwgIi0tb3V0cHV0Iiwgb3V0cHV0LCAiLS1uYW1lc3BhY2Ui
LCBuYW1lc3BhY2UsICItLXByZWZpeCIsIHByZWZpeCwgYXJncy5pbnB1dF0sIHN0ZGVycj1zdWJw
cm9jZXNzLlNURE9VVCkKKworIyBnZW5lcmF0ZSBKUyBidWlsdGlucyB3cmFwcGVyCitvdXRwdXRf
YmFzZSA9IG91dHB1dCArICJXcmFwcGVyIgorCitidWlsdGluc1dyYXBwZXJIZWFkZXIgPSBvcGVu
KG91dHB1dF9iYXNlICsgIi5oLnRtcCIsICJ3IikKKworYnVpbHRpbnNXcmFwcGVySGVhZGVyLndy
aXRlKFRlbXBsYXRlKAorIiIiCisvKiBHZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtanMtYnVpbHRpbnMg
ZG8gbm90IGhhbmQgZWRpdC4gKi8KKworLyoKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICov
CisKKyNpZm5kZWYgJHtGaWxlbmFtZX1CdWlsdGluc1dyYXBwZXJfaAorI2RlZmluZSAke0ZpbGVu
YW1lfUJ1aWx0aW5zV3JhcHBlcl9oCisKKyNpbmNsdWRlICIke0ZpbGVuYW1lfUJ1aWx0aW5zLmgi
CisjaW5jbHVkZSA8Ynl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaD4KKyNpbmNs
dWRlIDxidWlsdGlucy9CdWlsdGluVXRpbHMuaD4KKyNpbmNsdWRlIDxydW50aW1lL0lkZW50aWZp
ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyAke0ZpbGVuYW1lfUJ1aWx0aW5z
V3JhcHBlciA6IHByaXZhdGUgSlNDOjpXZWFrSGFuZGxlT3duZXIKK3sKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcihKU0M6OlZNKiB2bSkKKyAgICAgICAg
OiBtX3ZtKCp2bSkKKyAgICAgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9O
QU1FKElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUykKKyNkZWZpbmUgSU5JVElBTElaRV9CVUlMVElO
X1NPVVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKSAsIG1fIyNuYW1lIyNT
b3VyY2UoSlNDOjptYWtlU291cmNlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfIyNu
YW1lLCBsZW5ndGgpKSkKKyAgICAgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihJTklUSUFM
SVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMpCisjdW5kZWYgSU5JVElBTElaRV9CVUlMVElOX1NP
VVJDRV9NRU1CRVJTCisgICAgeworICAgIH0KKworI2RlZmluZSBFWFBPU0VfQlVJTFRJTl9FWEVD
VVRBQkxFUyhuYW1lLCBmdW5jdGlvbk5hbWUsIGxlbmd0aCkgXFwKKyAgICBKU0M6OlVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBuYW1lIyNFeGVjdXRhYmxlKCk7IFxcCisgICAgY29uc3QgSlND
OjpTb3VyY2VDb2RlJiBuYW1lIyNTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZSMjU291
cmNlOyB9CisgICAgJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihFWFBPU0VfQlVJTFRJTl9FWEVD
VVRBQkxFUykKKyN1bmRlZiBFWFBPU0VfQlVJTFRJTl9FWEVDVVRBQkxFUworCisgICAgJHtQcmVm
aXh9X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKERFQ0xBUkVfQlVJTFRJTl9JREVOVElG
SUVSX0FDQ0VTU09SKQorCitwcml2YXRlOgorICAgIEpTQzo6Vk0mIG1fdm07CisKKyAgICAke1By
ZWZpeH1fRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoREVDTEFSRV9CVUlMVElOX05BTUVT
KQorCisjZGVmaW5lIERFQ0xBUkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUyhuYW1lLCBmdW5jdGlv
bk5hbWUsIGxlbmd0aCkgXFwKKyAgICBKU0M6OlNvdXJjZUNvZGUgbV8jI25hbWUjI1NvdXJjZTtc
XAorICAgIEpTQzo6V2VhazxKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlPiBtXyMjbmFt
ZSMjRXhlY3V0YWJsZTsKKyAgICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOKERFQ0xBUkVfQlVJ
TFRJTl9TT1VSQ0VfTUVNQkVSUykKKyN1bmRlZiBERUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJF
UlMKKworfTsKKworI2RlZmluZSBERUZJTkVfQlVJTFRJTl9FWEVDVVRBQkxFUyhuYW1lLCBmdW5j
dGlvbk5hbWUsIGxlbmd0aCkgXFwKK2lubGluZSBKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlKiAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcjo6bmFtZSMjRXhlY3V0YWJsZSgpIFxcCit7
XFwKKyAgICBpZiAoIW1fIyNuYW1lIyNFeGVjdXRhYmxlKVxcCisgICAgICAgIG1fIyNuYW1lIyNF
eGVjdXRhYmxlID0gSlNDOjpXZWFrPEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU+KEpT
Qzo6Y3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUobV92bSwgbV8jI25hbWUjI1NvdXJjZSwgZnVuY3Rp
b25OYW1lIyNQdWJsaWNOYW1lKCksIHNfIyNuYW1lIyNDb25zdHJ1Y3RBYmlsaXR5KSwgdGhpcywg
Jm1fIyNuYW1lIyNFeGVjdXRhYmxlKTtcXAorICAgIHJldHVybiBtXyMjbmFtZSMjRXhlY3V0YWJs
ZS5nZXQoKTtcXAorfQorJHtQcmVmaXh9X0ZPUkVBQ0hfQlVJTFRJTihERUZJTkVfQlVJTFRJTl9F
WEVDVVRBQkxFUykKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9FWEVDVVRBQkxFUworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAke0ZpbGVuYW1lfUJ1aWx0aW5zV3JhcHBlcl9o
CisiIiIpLnN1YnN0aXR1dGUoZGljdChGaWxlbmFtZT1maWxlbmFtZSwgUHJlZml4PXByZWZpeCkp
KQorCitidWlsdGluc1dyYXBwZXJIZWFkZXIuY2xvc2UoKQorCitpZiAobm90IG9zLnBhdGguZXhp
c3RzKG91dHB1dF9iYXNlICsgIi5oIikpIG9yIChub3QgZmlsZWNtcC5jbXAob3V0cHV0X2Jhc2Ug
KyAiLmgudG1wIiwgb3V0cHV0X2Jhc2UgKyAiLmgiLCBzaGFsbG93PUZhbHNlKSk6CisgICAgaWYg
KG9zLnBhdGguZXhpc3RzKG91dHB1dF9iYXNlICsgIi5oIikpOgorICAgICAgICBvcy5yZW1vdmUo
b3V0cHV0X2Jhc2UgKyAiLmgiKQorICAgIG9zLnJlbmFtZShvdXRwdXRfYmFzZSArICIuaC50bXAi
LCBvdXRwdXRfYmFzZSArICIuaCIpCitlbHNlOgorICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSAr
ICIuaC50bXAiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDg0ODUyOGE5NDlkZDM4YWFmZjExNWEwM2I1OWQxNjIyZGNmNWVk
YzIuLjc3ZGNhMDNjZjdkYTIzOTRhMTUzZDg4OTUwOWQzNjlhNzIwMTU2MTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0wOS0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBSZWJhc2VkIHRlc3QgdGhhdCBpcyBub3cgcGFzc2luZy4KKyAgICAgICAgQWRkaW5nIG5l
dyB0ZXN0cyB0byBpbXByb3ZlIHBpcGVUaHJvdWdoIGNvdmVyYWdlLgorCisgICAgICAgICogc3Ry
ZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3Mt
ZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA5LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmViYXNlbGluZSBzZXZlcmFsIFczQyBodG1sIHRl
c3RzIG9uIGlPUyBhZnRlciByMTkwMTA2IGFuZCByMTkwMDg1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2gtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQxZTA2MWNhOTA2ZDQyMGYxNWYxM2Q3YjQ1MTBjZjUzZWNkMjM2ZDkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1w
aXBlVGhyb3VnaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHNob3VsZCB0aHJvdyB3aGVuICJ0aGlzIiBoYXMg
bm8gcGlwZVRvIG1ldGhvZCAKK1BBU1MgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJv
dWdoIHNob3VsZCB0aHJvdyB3aGVuIHBhc3NlZCBhcmd1bWVudCBpcyBub3QgYW4gb2JqZWN0IAor
UEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHRocm93IHdo
ZW4gY2FsbGVkIGdldHRlcnMgYXJlIHRocm93aW5nIAorUEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90
b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHdvcmsgd2l0aCBtaXNzaW5nIHBhcmFtZXRlcnMgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJv
dWdoLmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3Vn
aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdiOWE2OGIzMmJjNGI3YmJlZmZiOGNkNTc2NzQzN2I3YTVjNGE4
NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVh
bS1waXBlVGhyb3VnaC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNj
cmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0nLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPScuLi9yZXNvdXJjZXMvZ2MuanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordGVzdChm
dW5jdGlvbigpIHsKKyAgICB2YXIgaW5wdXQgPSB7CisgICAgICAgIHJlYWRhYmxlOiB7IH0sCisg
ICAgICAgIHdyaXRhYmxlOiB7IH0KKyAgICB9OworICAgIHZhciBvcHRpb25zID0geyB9OworICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJl
YW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodW5kZWZpbmVkLCBpbnB1dCwgb3B0aW9ucyk7
IH0pOworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVh
ZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwobnVsbCwgaW5wdXQsIG9wdGlv
bnMpOyB9KTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7
IFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKDEsIGlucHV0LCBvcHRp
b25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkg
eyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh7ICJwaXBlVG8iOiAi
dGVzdCIgfSwgaW5wdXQsIG9wdGlvbnMpOyB9KTsKK30sICdSZWFkYWJsZVN0cmVhbS5wcm90b3R5
cGUucGlwZVRocm91Z2ggc2hvdWxkIHRocm93IHdoZW4gInRoaXMiIGhhcyBubyBwaXBlVG8gbWV0
aG9kJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmFyIG9wdGlvbnMgPSB7IH07CisgICAg
dmFyIHRoaXNWYWx1ZSA9IHsKKyAgICAgICAgcGlwZVRvOiBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGFzc2VydF91bnJlYWNoZWQoKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3Rv
dHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgbnVsbCwgb3B0aW9ucyk7IH0pOworICAg
IGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJl
YW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB1bmRlZmluZWQsIG9wdGlv
bnMpOyB9KTsKK30sICdSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxk
IHRocm93IHdoZW4gcGFzc2VkIGFyZ3VtZW50IGlzIG5vdCBhbiBvYmplY3QnKTsKKwordGVzdChm
dW5jdGlvbigpIHsKKyAgICB2YXIgb3B0aW9ucyA9IHsgfTsKKyAgICB2YXIgZXJyb3IgPSBuZXcg
VHlwZUVycm9yKCJwb3RhdG8iKTsKKworICAgIHZhciB0aGlzV3JvbmdWYWx1ZSA9IHsKKyAgICAg
ICAgZ2V0IHBpcGVUbygpIHsKKyAgICAgICAgICAgIHRocm93IGVycm9yOworICAgICAgICB9Cisg
ICAgfTsKKyAgICBhc3NlcnRfdGhyb3dzKGVycm9yLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJl
YW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1dyb25nVmFsdWUsIHsgcmVhZGFibGU6
IHsgfSwgd3JpdGFibGU6IHsgfSB9LCBvcHRpb25zKTsgfSk7CisKKyAgICB2YXIgdGhpc1ZhbHVl
ID0geworICAgICAgICBwaXBlVG86IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgpOworICAgICAgICB9CisgICAgfTsKKyAgICB2YXIgd3JvbmdJbnB1dCA9IHsKKyAg
ICAgICAgcmVhZGFibGU6IHsgfSwKKyAgICAgICAgZ2V0IHdyaXRhYmxlKCkgeworICAgICAgICAg
ICAgdGhyb3cgZXJyb3I7CisgICAgICAgIH0KKyAgICB9OworICAgIGFzc2VydF90aHJvd3MoZXJy
b3IsIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2Fs
bCh0aGlzVmFsdWUsIHdyb25nSW5wdXQsIG9wdGlvbnMpOyB9KTsKKworICAgIHZhciB3cm9uZ0lu
cHV0MiA9IHsKKyAgICAgICAgZ2V0IHJlYWRhYmxlKCkgeworICAgICAgICAgICAgdGhyb3cgZXJy
b3I7CisgICAgICAgIH0sCisgICAgICAgIHdyaXRhYmxlOiB7IH0KKyAgICB9OworICAgIHZhciB0
aGlzVmFsdWUyID0geworICAgICAgICBwaXBlVG86IGZ1bmN0aW9uKCkgeyB9CisgICAgfTsKKyAg
ICBhc3NlcnRfdGhyb3dzKGVycm9yLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90
eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlMiwgd3JvbmdJbnB1dDIsIG9wdGlvbnMpOyB9
KTsKK30sICdSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHRocm93
IHdoZW4gY2FsbGVkIGdldHRlcnMgYXJlIHRocm93aW5nJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7
CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgdGhpc1ZhbHVlID0geworICAgICAgICBwaXBl
VG86IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgfQorICAgIH07
CisKKyAgICBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFs
dWUsIHsgcmVhZGFibGU6IHsgfSwgd3JpdGFibGU6IHsgfSB9KTsKKyAgICBSZWFkYWJsZVN0cmVh
bS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0aGlzVmFsdWUsIHsgcmVhZGFibGU6IHsgfSB9
LCB7IH0pOworICAgIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRo
aXNWYWx1ZSwgeyB3cml0YWJsZTogeyB9IH0sIHsgfSk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGNv
dW50LCAzKTsKK30sICdSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxk
IHdvcmsgd2l0aCBtaXNzaW5nIHBhcmFtZXRlcnMnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVj
a3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50
YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dAppbmRleCAzNzM1NzdlYjk4MjFkMjA3NTRk
ZTg3NzFhNjBmYWU1MjM4YzliNWY2Li5iMTk3ZDE2NTdiMTBmNzAwMzRmMmMyYTY0NjE2ZjViYzJm
ZjI1ZmQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1l
bnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVh
bXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQKQEAg
LTEsNyArMSw3IEBACiAKIFBBU1MgQ2FuIGdldCB0aGUgUmVhZGFibGVTdHJlYW1SZWFkZXIgY29u
c3RydWN0b3IgaW5kaXJlY3RseSAKIFBBU1MgQ2FuIGdldCB0aGUgUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyIGNvbnN0cnVjdG9yIGluZGlyZWN0bHkgCi1GQUlMIFJlYWRhYmxlU3RyZWFtLnByb3Rv
dHlwZS5waXBlVGhyb3VnaCB3b3JrcyBnZW5lcmljYWxseSBvbiBpdHMgdGhpcyBhbmQgaXRzIGFy
Z3VtZW50cyBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtLnBpcGVUaHJvdWdoIG9uIGluc3Rh
bmNlcyBvZiBSZWFkYWJsZVN0cmVhbQorUEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlw
ZVRocm91Z2ggd29ya3MgZ2VuZXJpY2FsbHkgb24gaXRzIHRoaXMgYW5kIGl0cyBhcmd1bWVudHMg
CiBQQVNTIFJlYWRhYmxlU3RyZWFtUmVhZGVyIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgb24gaXRz
IGFyZ3VtZW50IAogRkFJTCBSZWFkYWJsZVN0cmVhbVJlYWRlci5wcm90b3R5cGUuY2xvc2VkIGVu
Zm9yY2VzIGEgYnJhbmQgY2hlY2sgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBnZXR0ZXJOYW1lKS5nZXQn
KQogUEFTUyBSZWFkYWJsZVN0cmVhbVJlYWRlci5wcm90b3R5cGUuY2FuY2VsIGVuZm9yY2VzIGEg
YnJhbmQgY2hlY2sgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261766</attachid>
            <date>2015-09-22 14:03:49 -0700</date>
            <delta_ts>2015-09-23 00:25:02 -0700</delta_ts>
            <desc>Adding missing Inlines header for win</desc>
            <filename>bug-147556-20150922230330.patch</filename>
            <type>text/plain</type>
            <size>72381</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZGNhODNjOTBjZTIzOGNiYzJiYjkwZjg4MTkwMzc2MTk4YzA4ZTRkLi5lYjlkMDU0ZGNmZjU0MTNh
NTFjOGVjNGZiM2I0M2RlM2JhZWU5YjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wOS0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3Ry
ZWFtIHBpcGVUaHJvdWdoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDc1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBVcGRhdGluZyBCdWlsdElucyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGl0IHJldXNhYmxl
IGZyb20gV2ViQ29yZS4KKyAgICAgICAgRXh0cmFjdGluZyBtYWNyb3MgZnJvbSBCdWlsdGluTmFt
ZXMgYW5kIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlIGZyb20gQnVpbHRpbkV4ZWN1dGFibGVzLgor
ICAgICAgICBVcGRhdGVkIGdlbmVyYXRlLWpzLWJ1aWx0aW5zIHRvIGFsbG93IGdlbmVyYXRpbmcg
YnVpbHRpbiBDUFAvSCBmaWxlcyBpbiBXZWJDb3JlIG5hbWVzcGFjZS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbkV4ZWN1dGFi
bGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhl
Y3V0YWJsZXM6OmNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
QnVpbHRpbkV4ZWN1dGFibGUpOgorICAgICAgICAoSlNDOjpjcmVhdGVFeGVjdXRhYmxlSW50ZXJu
YWwpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5oOgorICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAoSlNDOjpCdWlsdGluTmFtZXM6OkJ1
aWx0aW5OYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6
IEV4dHJhY3RpbmcgY29kZSBmcm9tIEJ1aWx0aW5OYW1lcyBhbmQgQnVpbHRpbkV4ZWN1dGFibGVz
LmguCisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBnZW5lcmF0ZS1qcy1idWlsdGluczoKKyAgICAgICAgKGdldEZ1bmN0aW9ucyk6Cisg
ICAgICAgICh3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKToKKwogMjAxNS0wOS0yMiAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE4OTYxNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNTkzMDFkMDMxNmJlM2MyNjBiMTUyMWZi
NDMzNWUwZTMyZjkwMGNjLi5iMDEwNTlmYzE0Yjc3MDhkMjg2NTMwNTAxMDMzYzM2MDg4MDlkMzZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTUtMDktMjEgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEldIElt
cGxlbWVudCBSZWFkYWJsZVN0cmVhbSBwaXBlVGhyb3VnaAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkaW5nIGluaXRpYWwgc3VwcG9ydCBmb3IgSlMgYnVp
bHRpbnMgd2l0aGluIFdlYkNvcmUuCisgICAgICAgIFRoaXMgcGF0Y2ggYWxsb3dzIGltcGxlbWVu
dGluZyBJREwgaW50ZXJmYWNlIG1ldGhvZHMgaW4gSlMsIGJ5IHVzaW5nIHRoZSBuZXcgSlNCdWls
dGluIGtleXdvcmQuCisgICAgICAgIChObyBzdXBwb3J0IHlldCBmb3IgcHJpdmF0ZSBpZGVudGlm
aWVycywgY29uc3RydWN0b3JzIG9yIGFjY2Vzc29ycykuCisgICAgICAgIEludGVncmF0aW9uIG9m
IHRoZSBidWlsdC1pbiBleGVjdXRhYmxlcyBhbmQgbmFtZXMgaXMgaW1wbGVtZW50ZWQgd2l0aGlu
IFdlYkNvcmVKU0NsaWVudERhdGEuCisgICAgICAgIFR3byBmaWxlcyBhcmUgZ2VuZXJhdGVkIGZv
ciBlYWNoIEpTIGJ1aWx0aW4gZmlsZToKKyAgICAgICAgLSBidWlsdGluIGgvY3BwIGZpbGVzIHNp
bWlsYXIgdG8gSlNDQnVpbHRpbnMuY3BwLy5oLCBnZW5lcmF0ZWQgdGhyb3VnaCBXZWJDb3JlL2dl
bmVyYXRlLWpzLWJ1aWx0aW5zIGZyb20gSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMtYnVpbHRp
bnMpCisgICAgICAgIC0gQSBidWlsdGluIHdyYXBwZXIgZmlsZSBtaW1pY2tpbmcgQnVpbHRpbkV4
ZWN1dGFibGVzIChnZW5lcmF0ZWQgZnJvbSBXZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zKQor
ICAgICAgICBDb250cmFyeSB0byBKU0MsIGVhY2gganMgZmlsZSBpcyBnZW5lcmF0aW5nIGl0cyBv
d24gY3BwL2ggZmlsZS4KKyAgICAgICAgVGhpcyBhbGxvd3MgaW5jbHVkaW5nIHRob3NlIGZpbGVz
IHdpdGhpbiB0aGUgSlNYWC5jcHAvLmggZmlsZXMgZ2VuZXJhdGVkIGZyb20gdGhlIElETCB3aGVy
ZSBjb21waWxhdGlvbiBndWFyZCBtYXkgdGFrZSBlZmZlY3QuCisKKyAgICAgICAgRGlzYWJsZWQg
R09iamVjdCBiaW5kaW5nIGZvciBKU0J1aWx0aW4gbWV0aG9kcy4KKworICAgICAgICBUZXN0OiBz
dHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC5odG1sCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogVHJpZ2dlcmluZyBnZW5lcmF0ZS1qcy1idWlsdGlucyBmb3IgSlMgZmlsZXMu
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogRGl0dG8uCisgICAgICAgICogRm9yd2Fy
ZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmg6IEFkZGVkLgorICAgICAgICAqIEZv
cndhcmRpbmdIZWFkZXJzL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmg6IEFk
ZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0QWJpbGl0
eS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRs
OiBNYXJraW5nIHBpcGVUaHJvdWdoIGFzIEpTIGJ1aWx0aW4KKyAgICAgICAgKiBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6IEFkZGVkLgorICAgICAgICAocGlwZVRocm91Z2gpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDogQWRkaW5nIFJlYWRhYmxlU3Ry
ZWFtQnVpbHRpbnNXcmFwcGVyIHRvIHN0b3JlIFJlYWRhYmxlU3RyZWFtIGJ1aWx0aW4gZXhlY3V0
YWJsZQorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUpTQ2xpZW50RGF0YTo6V2ViQ29yZUpTQ2xp
ZW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlSlNDbGllbnREYXRhOjpyZWFkYWJs
ZVN0cmVhbUJ1aWx0aW5zKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXROb3JtYWxXb3JsZENsaWVu
dERhdGEpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG06IERpc2FibGVkIEdPYmplY3QgYmluZGluZyBmb3IgSlNCdWlsdGluIG1ldGhvZHMuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06IEFkZGluZyBzdXBwb3J0
IGZvciBKU0J1aWx0aW4ga2V5d29yZC4KKyAgICAgICAgKEdldEZ1bmN0aW9uTmFtZSk6CisgICAg
ICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6CisgICAgICAgIChDb21wdXRl
RnVuY3Rpb25TcGVjaWFsKToKKyAgICAgICAgKFVzZUpTQnVpbHRpbnMpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6IEFkZGluZyBKU0J1aWx0aW4uCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6
CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2pzX2J1aWx0aW5fbWV0aG9kKToKKyAgICAg
ICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfanNfYnVpbHRpbl9tZXRob2Rfd2l0aF9hcmdzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGpzQnVpbHRpbk1ldGhvZF0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGpzQnVpbHRpbk1ldGhv
ZFdpdGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGdlbmVyYXRlLWpzLWJ1aWx0aW5zOiBBZGRlZC4K
KwogMjAxNS0wOS0yMiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIDMyLWJpdCBZb3NlbWl0ZSBidWlsZCBmaXguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggN2E5OTE4YTIwYmJmODM3ZjcyOTlmNTJjMGYyNjQ0
MDVjYTk1M2JkNi4uOWQxNTI0NDUyZjEzOWI0NzY2Y2U3YmIyNGIxOTQ0ZWVjMjFiYTFmOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTQ5LDYgKzk0OSw3IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9GT1JXQVJESU5HX0hFQURFUlNfRElSRUNUT1JJRVMKICAgICBBUEkKICAg
ICBhc3NlbWJsZXIKICAgICBiaW5kaW5ncworICAgIGJ1aWx0aW5zCiAgICAgYnl0ZWNvZGUKICAg
ICBkZWJ1Z2dlcgogICAgIGRmZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZmNh
MmZkNDgyMDM0NzQwMzg3OWIyMTI5NGIzYTA5MDYzYmRhZWExLi5kMmEyMTE0ZDgxNGY3NmFhNGEx
NzM4YjU1NzhjNTJjMjQyMGMyZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
OTUyLDYgKzk1Miw3IEBACiAJCTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJ
RFRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
QUY3MzgyQjE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3MUQ4NDJEMTdDOThCNkUw
MEVDRjk5NCAvKiBsaWJ6LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHlsaWIgKi87
IH07CiAJCTQxMzU5Q0YzMEZERDg5QUQwMDIwNjE4MCAvKiBEYXRlQ29udmVyc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDIxMjAyMjkwQUQ0MzEw
QzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmggKi87IH07CisJCTQxREVBMTMyMUI5RjMxNjMw
MDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MzQw
QTQ4NDFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzQwQTQ4MjFBOTA1MUFGMDBENzNDQ0EgLyog
TWF0aENvbW1vbi5jcHAgKi87IH07CiAJCTQzNDBBNDg1MUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRo
Q29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzQwQTQ4MzFBOTA1MUFGMDBENzNDQ0EgLyogTWF0aENvbW1vbi5oICovOyB9OwogCQk0NDQzQUUz
MzE2RTE4OEQ5MDA3NkYxMTAgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwRUI2MTA1Qzg2QzZCMDBFNkRG
MUIgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CkBAIC0yNzY1LDYgKzI3NjYsNyBAQAog
CQkyQUY3MzgyQTE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJ1Y3R1cmVJRFRhYmxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkFGNzM4MkIxOEJCQkY5MjAwOEE1QTM3IC8qIFN0
cnVjdHVyZUlEVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0
dXJlSURUYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFEODQyQzE3Qzk4
QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliei5k
eWxpYjsgcGF0aCA9IHVzci9saWIvbGliei5keWxpYjsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07
CisJCTQxREVBMTMxMUI5RjMxNTQwMDZENjVERCAvKiBCdWlsdGluVXRpbHMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnVpbHRpblV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzNDBBNDgyMUE5MDUxQUYwMEQ3M0NDQSAvKiBNYXRoQ29tbW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhDb21tb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzQwQTQ4MzFBOTA1MUFGMDBENzNDQ0EgLyogTWF0
aENvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoQ29tbW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0OTA5N0VFMEY4RjgxQjUwMDc2QTMyNyAv
KiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGgg
PSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU4NzcsNiArNTg3OSw3IEBACiAJCQkJQTdEODAxQTExODgwRDY2RTAwMjZDMzlCIC8qIEJ1aWx0
aW5FeGVjdXRhYmxlcy5jcHAgKi8sCiAJCQkJQTdEODAxQTIxODgwRDY2RTAwMjZDMzlCIC8qIEJ1
aWx0aW5FeGVjdXRhYmxlcy5oICovLAogCQkJCUE3NUVFOUIwMThBQUI3RTIwMEFBRDA0MyAvKiBC
dWlsdGluTmFtZXMuaCAqLywKKwkJCQk0MURFQTEzMTFCOUYzMTU0MDA2RDY1REQgLyogQnVpbHRp
blV0aWxzLmggKi8sCiAJCQkJQTdBOTc5QzQxOEJFOEQ5RTAwMkMzNzMzIC8qIEZ1bmN0aW9uLnBy
b3RvdHlwZS5qcyAqLywKIAkJCQk3Q0Y5QkM1QTFCNjVEOUEzMDA5REIxRUYgLyogR2xvYmFsT2Jq
ZWN0LmpzICovLAogCQkJCUUzNUUwMzYxMUI3QUI0ODUwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QuanMgKi8sCkBAIC02MTQ5LDYgKzYxNTIsNyBAQAogCQkJCUE3MDRE
OTAzMTdBMEJBQTgwMDZCQTU1NCAvKiBERkdBYnN0cmFjdEludGVycHJldGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzA0RDkwNDE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQjlFMjNDMUI0RTBENjcwMEJDN0ZF
RCAvKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUEx
MzIxQjlGMzE2MzAwNkQ2NUREIC8qIEJ1aWx0aW5VdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2MjAxNzcxNDNGQ0QzRjAwNjhCNzdDIC8qIERGR0Fic3RyYWN0VmFsdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRjA1NEZBMUFDMzVCNDQwMEU1QkU1NyAvKiBFeGVjdXRhYmxlQWxsb2NhdGlv
bkZ1enouaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjZFMTZCMTRERjNGMTYwMEI3QjJFNCAvKiBE
RkdBZGphY2VuY3lMaXN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKaW5kZXggOTM3MGU3ZTFm
ZTY1OWJhYWQxM2JkMDI5YjdiOWJmZjY4NDYyYmVhYy4uNzNlYmU0Nzk5MzVmY2E3NDA5ZmQ5MzJm
ODg5YjY1ODRiZTU4YjYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1
aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKQEAgLTM1LDYgKzM1LDggQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKK3N0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlRXhl
Y3V0YWJsZUludGVybmFsKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXIm
LCBDb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHkpOworCiBCdWlsdGluRXhlY3V0YWJs
ZXM6OkJ1aWx0aW5FeGVjdXRhYmxlcyhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQogI2RlZmluZSBJ
TklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5n
dGgpICwgbV8jI25hbWUjI1NvdXJjZShtYWtlU291cmNlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21M
aXRlcmFsKHNfIyNuYW1lLCBsZW5ndGgpKSkKQEAgLTUyLDE1ICs1NCwyNSBAQCBVbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVEZWZhdWx0Q29uc3Ry
dWN0b3IoQ29uc3RydQogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5kOjpOb25lOgogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnN0cnVjdG9yS2luZDo6QmFzZToKLSAgICAgICAgcmV0dXJuIGNy
ZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtYWtlU291cmNlKGJhc2VDb25zdHJ1Y3RvckNvZGUpLCBu
YW1lLCBjb25zdHJ1Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7Cisg
ICAgICAgIHJldHVybiBjcmVhdGVFeGVjdXRhYmxlSW50ZXJuYWwobV92bSwgbWFrZVNvdXJjZShi
YXNlQ29uc3RydWN0b3JDb2RlKSwgbmFtZSwgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmls
aXR5OjpDYW5Db25zdHJ1Y3QpOwogICAgIGNhc2UgQ29uc3RydWN0b3JLaW5kOjpEZXJpdmVkOgot
ICAgICAgICByZXR1cm4gY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKG1ha2VTb3VyY2UoZGVyaXZl
ZENvbnN0cnVjdG9yQ29kZSksIG5hbWUsIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0
eTo6Q2FuQ29uc3RydWN0KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5h
bChtX3ZtLCBtYWtlU291cmNlKGRlcml2ZWRDb25zdHJ1Y3RvckNvZGUpLCBuYW1lLCBjb25zdHJ1
Y3RvcktpbmQsIENvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCk7CiAgICAgfQogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1VbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVFeGVjdXRhYmxlSW50
ZXJuYWwoY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBD
b25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVj
dEFiaWxpdHkpCitVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogQnVpbHRpbkV4ZWN1dGFibGVz
OjpjcmVhdGVCdWlsdGluRXhlY3V0YWJsZShjb25zdCBTb3VyY2VDb2RlJiBjb2RlLCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RBYmlsaXR5IGNvbnN0cnVjdEFiaWxpdHkpCit7Cisg
ICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChtX3ZtLCBjb2RlLCBuYW1lLCBDb25z
dHJ1Y3RvcktpbmQ6Ok5vbmUsIGNvbnN0cnVjdEFiaWxpdHkpOworfQorCitVbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoVk0mIHZtLCBjb25zdCBTb3Vy
Y2VDb2RlJiBjb2RlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBDb25zdHJ1Y3RBYmlsaXR5IGNv
bnN0cnVjdEFiaWxpdHkpCit7CisgICAgcmV0dXJuIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbCh2
bSwgY29kZSwgbmFtZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBjb25zdHJ1Y3RBYmlsaXR5KTsK
K30KKworVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5h
bChWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgY29uc3QgSWRlbnRpZmllciYgbmFt
ZSwgQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgQ29uc3RydWN0QWJpbGl0eSBjb25z
dHJ1Y3RBYmlsaXR5KQogewogICAgIEpTVGV4dFBvc2l0aW9uIHBvc2l0aW9uQmVmb3JlTGFzdE5l
d2xpbmU7CiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7CkBAIC02OSw3ICs4MSw3IEBAIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZUV4ZWN1dGFibGVJ
bnRlcm5hbChjb25zdCBTCiAgICAgVW5saW5rZWRGdW5jdGlvbktpbmQga2luZCA9IGlzUGFyc2lu
Z0RlZmF1bHRDb25zdHJ1Y3RvciA/IFVubGlua2VkTm9ybWFsRnVuY3Rpb24gOiBVbmxpbmtlZEJ1
aWx0aW5GdW5jdGlvbjsKICAgICBSZWZQdHI8U291cmNlUHJvdmlkZXI+IHNvdXJjZU92ZXJyaWRl
ID0gaXNQYXJzaW5nRGVmYXVsdENvbnN0cnVjdG9yID8gc291cmNlLnByb3ZpZGVyKCkgOiBudWxs
cHRyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmFtTm9kZT4gcHJvZ3JhbSA9IHBhcnNlPFBy
b2dyYW1Ob2RlPigKLSAgICAgICAgJm1fdm0sIHNvdXJjZSwgSWRlbnRpZmllcigpLCBidWlsdGlu
TW9kZSwKKyAgICAgICAgJnZtLCBzb3VyY2UsIElkZW50aWZpZXIoKSwgYnVpbHRpbk1vZGUsCiAg
ICAgICAgIEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0LCBTb3VyY2VQYXJzZU1vZGU6OlBy
b2dyYW1Nb2RlLCBlcnJvciwKICAgICAgICAgJnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUsIGNv
bnN0cnVjdG9yS2luZCk7CiAKQEAgLTk1LDE2ICsxMDcsMTYgQEAgVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUqIEJ1aWx0aW5FeGVjdXRhYmxlczo6Y3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNv
bnN0IFMKICAgICBtZXRhZGF0YS0+c2V0RW5kUG9zaXRpb24ocG9zaXRpb25CZWZvcmVMYXN0TmV3
bGluZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQobWV0YWRhdGEpOwogICAgIGZvciAoY29uc3QgYXV0
byYgY2xvc2VkVmFyaWFibGUgOiBwcm9ncmFtLT5jbG9zZWRWYXJpYWJsZXMoKSkgewotICAgICAg
ICBpZiAoY2xvc2VkVmFyaWFibGUgPT0gbV92bS5wcm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMuaW1w
bCgpKQorICAgICAgICBpZiAoY2xvc2VkVmFyaWFibGUgPT0gdm0ucHJvcGVydHlOYW1lcy0+YXJn
dW1lbnRzLmltcGwoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKLSAgICAgICAg
aWYgKGNsb3NlZFZhcmlhYmxlID09IG1fdm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29y
ZC5pbXBsKCkpCisgICAgICAgIGlmIChjbG9zZWRWYXJpYWJsZSA9PSB2bS5wcm9wZXJ0eU5hbWVz
LT51bmRlZmluZWRLZXl3b3JkLmltcGwoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgIH0K
ICAgICBtZXRhZGF0YS0+b3ZlcnJpZGVOYW1lKG5hbWUpOwogICAgIFZhcmlhYmxlRW52aXJvbm1l
bnQgZHVtbXlURFpWYXJpYWJsZXM7Ci0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlY3V0YWJsZSA9IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUoJm1f
dm0sIHNvdXJjZSwgbWV0YWRhdGEsIGtpbmQsIGNvbnN0cnVjdEFiaWxpdHksIGR1bW15VERaVmFy
aWFibGVzLCBXVEY6Om1vdmUoc291cmNlT3ZlcnJpZGUpKTsKLSAgICBmdW5jdGlvbkV4ZWN1dGFi
bGUtPm1fbmFtZVZhbHVlLnNldChtX3ZtLCBmdW5jdGlvbkV4ZWN1dGFibGUsIGpzU3RyaW5nKCZt
X3ZtLCBuYW1lLnN0cmluZygpKSk7CisgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlY3V0YWJsZSA9IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUoJnZt
LCBzb3VyY2UsIG1ldGFkYXRhLCBraW5kLCBjb25zdHJ1Y3RBYmlsaXR5LCBkdW1teVREWlZhcmlh
YmxlcywgV1RGOjptb3ZlKHNvdXJjZU92ZXJyaWRlKSk7CisgICAgZnVuY3Rpb25FeGVjdXRhYmxl
LT5zZXROYW1lVmFsdWUodm0sIGpzU3RyaW5nKCZ2bSwgbmFtZS5zdHJpbmcoKSkpOwogICAgIHJl
dHVybiBmdW5jdGlvbkV4ZWN1dGFibGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuaAppbmRleCA0ZTQzMjIyNWZiZDEwZGRj
MzM2MDRhM2Q2NjMzMmY2NGM4NjYxZGUzLi42YTk4MzIxN2EwYTg4NDU3ZWYwOThmYmNiOTUxMjNk
NTlhNTI1MTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbkV4ZWN1dGFibGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1
aWx0aW5FeGVjdXRhYmxlcy5oCkBAIC01NywxMSArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgVk0m
IG1fdm07CiAKLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4
ZWN1dGFibGUoY29uc3QgU291cmNlQ29kZSYgY29kZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
Q29uc3RydWN0QWJpbGl0eSBjb25zdHJ1Y3RBYmlsaXR5KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZUV4ZWN1dGFibGVJbnRlcm5hbChjb2RlLCBuYW1lLCBDb25zdHJ1Y3RvcktpbmQ6Ok5v
bmUsIGNvbnN0cnVjdEFiaWxpdHkpOwotICAgIH0KLSAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogY3JlYXRlRXhlY3V0YWJsZUludGVybmFsKGNvbnN0IFNvdXJjZUNvZGUmLCBjb25zdCBJ
ZGVudGlmaWVyJiwgQ29uc3RydWN0b3JLaW5kLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKyAgICBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlQnVpbHRpbkV4ZWN1dGFibGUoY29uc3QgU291
cmNlQ29kZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3RBYmlsaXR5KTsKIAogI2RlZmlu
ZSBERUNMQVJFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwgZnVuY3Rpb25OYW1lLCBsZW5n
dGgpXAogICAgIFNvdXJjZUNvZGUgbV8jI25hbWUjI1NvdXJjZTsgXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCmluZGV4IDdlNTQzNDJlNzUyZjlmMmQ0
ZTgzNWVkMDM0ZjQ2MDljZjM2NWQzOWYuLmJmMjhkYjgzZjdiYmJhMmU2ZjBiYWI5NzViNmU5ZjRk
NGEzNzg4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWls
dGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5h
bWVzLmgKQEAgLTI2LDQyICsyNiwzMSBAQAogI2lmbmRlZiBCdWlsdGluTmFtZXNfaAogI2RlZmlu
ZSBCdWlsdGluTmFtZXNfaAogCisjaW5jbHVkZSAiQnVpbHRpblV0aWxzLmgiCiAjaW5jbHVkZSAi
Q29tbW9uSWRlbnRpZmllcnMuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKLSAgICAKLSNkZWZpbmUgSU5JVElBTElTRV9CVUlMVElOX05BTUVTKG5hbWUpICwg
bV8jI25hbWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgI25hbWUpKSwgbV8jI25hbWUjI1By
aXZhdGVOYW1lKElkZW50aWZpZXI6OmZyb21VaWQoUHJpdmF0ZU5hbWUoUHJpdmF0ZU5hbWU6OkRl
c2NyaXB0aW9uLCBBU0NJSUxpdGVyYWwoIlByaXZhdGVTeW1ib2wuIiAjbmFtZSkpKSkKLSNkZWZp
bmUgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IElkZW50aWZpZXIgbV8jI25hbWU7
IGNvbnN0IElkZW50aWZpZXIgbV8jI25hbWUjI1ByaXZhdGVOYW1lOwotI2RlZmluZSBERUNMQVJF
X0JVSUxUSU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCi0gICAgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSMjUHVibGljTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lOyB9IFwKLSAgICBj
b25zdCBJZGVudGlmaWVyJiBuYW1lIyNQcml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNu
YW1lIyNQcml2YXRlTmFtZTsgfQogCi0jZGVmaW5lIElOSVRJQUxJU0VfQlVJTFRJTl9TWU1CT0xT
KG5hbWUpIElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUyhuYW1lKSwgbV8jI25hbWUjI1N5bWJvbChJ
ZGVudGlmaWVyOjpmcm9tVWlkKFByaXZhdGVOYW1lKFByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwg
QVNDSUlMaXRlcmFsKCJTeW1ib2wuIiAjbmFtZSkpKSkKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElO
X1NZTUJPTFMobmFtZSkgREVDTEFSRV9CVUlMVElOX05BTUVTKG5hbWUpIGNvbnN0IElkZW50aWZp
ZXIgbV8jI25hbWUjI1N5bWJvbDsKLSNkZWZpbmUgREVDTEFSRV9CVUlMVElOX1NZTUJPTF9BQ0NF
U1NPUihuYW1lKSBcCi0gICAgREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IobmFt
ZSkgXAotICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUjI1N5bWJvbCgpIGNvbnN0IHsgcmV0dXJu
IG1fIyNuYW1lIyNTeW1ib2w7IH0KKyNkZWZpbmUgSU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJ
Q19FTlRSWShuYW1lKSBtX3ByaXZhdGVUb1B1YmxpY01hcC5hZGQobV8jI25hbWUjI1ByaXZhdGVO
YW1lLmltcGwoKSwgJm1fIyNuYW1lKTsKKyNkZWZpbmUgSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJ
VkFURV9FTlRSWShuYW1lKSBtX3B1YmxpY1RvUHJpdmF0ZU1hcC5hZGQobV8jI25hbWUuaW1wbCgp
LCAmbV8jI25hbWUjI1ByaXZhdGVOYW1lKTsKIAotI2RlZmluZSBJTklUSUFMSVNFX1BSSVZBVEVf
VE9fUFVCTElDX0VOVFJZKG5hbWUpIG1fcHJpdmF0ZVRvUHVibGljTWFwLmFkZChtXyMjbmFtZSMj
UHJpdmF0ZU5hbWUuaW1wbCgpLCAmbV8jI25hbWUpOwotI2RlZmluZSBJTklUSUFMSVNFX1BVQkxJ
Q19UT19QUklWQVRFX0VOVFJZKG5hbWUpIG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtXyMjbmFt
ZS5pbXBsKCksICZtXyMjbmFtZSMjUHJpdmF0ZU5hbWUpOwotICAgIAogY2xhc3MgQnVpbHRpbk5h
bWVzIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCdWlsdGluTmFtZXMpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKICAgICAKIHB1YmxpYzoKICAgICBCdWlsdGluTmFtZXMoVk0qIHZtLCBD
b21tb25JZGVudGlmaWVycyogY29tbW9uSWRlbnRpZmllcnMpCiAgICAgICAgIDogbV9lbXB0eUlk
ZW50aWZpZXIoY29tbW9uSWRlbnRpZmllcnMtPmVtcHR5SWRlbnRpZmllcikKLSAgICAgICAgSlND
X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKElOSVRJQUxJU0VfQlVJTFRJTl9OQU1FUykK
LSAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFN
RShJTklUSUFMSVNFX0JVSUxUSU5fTkFNRVMpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9J
REVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJU0VfQlVJTFRJTl9TWU1C
T0xTKQorICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTEla
RV9CVUlMVElOX05BTUVTKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNf
RUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUykKKyAgICAgICAgSlND
X0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElB
TElaRV9CVUlMVElOX1NZTUJPTFMpCiAgICAgewotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElO
X0ZVTkNUSU9OX05BTUUoSU5JVElBTElTRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKLSAgICAg
ICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklU
SUFMSVNFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZB
VEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVNFX1BSSVZBVEVf
VE9fUFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05B
TUUoSU5JVElBTElTRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKLSAgICAgICAgSlNDX0NPTU1P
Tl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVNFX1BVQkxJ
Q19UT19QUklWQVRFX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklF
UlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVNFX1BVQkxJQ19UT19QUklWQVRFX0VO
VFJZKQorICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTEla
RV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKKyAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lE
RU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElD
X0VOVFJZKQorICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxM
X0tOT1dOX1NZTUJPTChJTklUSUFMSVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQorICAgICAg
ICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9QVUJMSUNfVE9f
UFJJVkFURV9FTlRSWSkKKyAgICAgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VB
Q0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAg
ICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJP
TChJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQogICAgIH0KIAogICAgIGJvb2wg
aXNQcml2YXRlTmFtZShTeW1ib2xJbXBsJiB1aWQpIGNvbnN0OwpAQCAtODQsMTMgKzczLDYgQEAg
cHJpdmF0ZToKICAgICBCdWlsdGluTmFtZXNNYXAgbV9wcml2YXRlVG9QdWJsaWNNYXA7CiB9Owog
Ci0jdW5kZWYgREVDTEFSRV9CVUlMVElOX05BTUVTCi0jdW5kZWYgSU5JVElBTElTRV9CVUlMVElO
X05BTUVTCi0jdW5kZWYgREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IKLSN1bmRl
ZiBERUNMQVJFX0JVSUxUSU5fU1lNQk9MUwotI3VuZGVmIElOSVRJQUxJU0VfQlVJTFRJTl9TWU1C
T0xTCi0jdW5kZWYgREVDTEFSRV9CVUlMVElOX1NZTUJPTF9BQ0NFU1NPUgotCiBpbmxpbmUgYm9v
bCBCdWlsdGluTmFtZXM6OmlzUHJpdmF0ZU5hbWUoU3ltYm9sSW1wbCYgdWlkKSBjb25zdAogewog
ICAgIHJldHVybiBtX3ByaXZhdGVUb1B1YmxpY01hcC5jb250YWlucygmdWlkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2My
OWE2NWY4NDZhZTgyNWJmNmQ2YjU1NjhlYWQ3Yjc4ZWY0YzM3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5VdGlscy5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IENhbm9uIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBCdWlsdGluVXRpbHNfaAorI2RlZmluZSBCdWlsdGluVXRpbHNfaAorCisjaW5jbHVkZSAiQ29u
c3RydWN0QWJpbGl0eS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2RlZmluZSBJTklUSUFMSVpF
X0JVSUxUSU5fTkFNRVMobmFtZSkgLCBtXyMjbmFtZShKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICNuYW1lKSksIG1fIyNuYW1lIyNQcml2YXRlTmFtZShKU0M6OklkZW50aWZpZXI6OmZy
b21VaWQoSlNDOjpQcml2YXRlTmFtZShKU0M6OlByaXZhdGVOYW1lOjpEZXNjcmlwdGlvbiwgQVND
SUlMaXRlcmFsKCJQcml2YXRlU3ltYm9sLiIgI25hbWUpKSkpCisjZGVmaW5lIERFQ0xBUkVfQlVJ
TFRJTl9OQU1FUyhuYW1lKSBjb25zdCBKU0M6OklkZW50aWZpZXIgbV8jI25hbWU7IGNvbnN0IEpT
Qzo6SWRlbnRpZmllciBtXyMjbmFtZSMjUHJpdmF0ZU5hbWU7CisjZGVmaW5lIERFQ0xBUkVfQlVJ
TFRJTl9JREVOVElGSUVSX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBjb25zdCBKU0M6OklkZW50aWZp
ZXImIG5hbWUjI1B1YmxpY05hbWUoKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZTsgfSBcCisgICAg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBuYW1lIyNQcml2YXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fIyNuYW1lIyNQcml2YXRlTmFtZTsgfQorCisjZGVmaW5lIElOSVRJQUxJWkVfQlVJTFRJTl9T
WU1CT0xTKG5hbWUpIElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FUyhuYW1lKSwgbV8jI25hbWUjI1N5
bWJvbChKU0M6OklkZW50aWZpZXI6OmZyb21VaWQoSlNDOjpQcml2YXRlTmFtZShKU0M6OlByaXZh
dGVOYW1lOjpEZXNjcmlwdGlvbiwgQVNDSUlMaXRlcmFsKCJTeW1ib2wuIiAjbmFtZSkpKSkKKyNk
ZWZpbmUgREVDTEFSRV9CVUlMVElOX1NZTUJPTFMobmFtZSkgREVDTEFSRV9CVUlMVElOX05BTUVT
KG5hbWUpIGNvbnN0IEpTQzo6SWRlbnRpZmllciBtXyMjbmFtZSMjU3ltYm9sOworI2RlZmluZSBE
RUNMQVJFX0JVSUxUSU5fU1lNQk9MX0FDQ0VTU09SKG5hbWUpIFwKKyAgICBERUNMQVJFX0JVSUxU
SU5fSURFTlRJRklFUl9BQ0NFU1NPUihuYW1lKSBcCisgICAgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBuYW1lIyNTeW1ib2woKSBjb25zdCB7IHJldHVybiBtXyMjbmFtZSMjU3ltYm9sOyB9CisKK2Ns
YXNzIElkZW50aWZpZXI7CitjbGFzcyBTb3VyY2VDb2RlOworY2xhc3MgVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGU7CitjbGFzcyBWTTsKKworSlNfRVhQT1JUX1BSSVZBVEUgVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUqIGNyZWF0ZUJ1aWx0aW5FeGVjdXRhYmxlKFZNJiwgY29uc3QgU291cmNl
Q29kZSYsIGNvbnN0IElkZW50aWZpZXImLCBDb25zdHJ1Y3RBYmlsaXR5KTsKKyAgICAKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCmluZGV4IDIyMjNmNmMzMGNkMTA3NGQ4N2EwZmM3
ZTRjNzcwNzI2MDk1NTlkYWQuLmQ4ZTgyMjkzOTBlNTc3Y2I0ODBmYjBlOTI5M2Y0MWJhNDJkOWMx
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1
bmN0aW9uRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC01OSw3ICs1OSw2IEBAIGVudW0gVW5saW5r
ZWRGdW5jdGlvbktpbmQgewogCiBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSBmaW5h
bCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGljOgotICAgIGZyaWVuZCBjbGFzcyBCdWlsdGluRXhl
Y3V0YWJsZXM7CiAgICAgZnJpZW5kIGNsYXNzIENvZGVDYWNoZTsKICAgICBmcmllbmQgY2xhc3Mg
Vk07CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IElkZW50aWZpZXImIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBjb25zdCBJZGVudGlmaWVyJiBpbmZl
cnJlZE5hbWUoKSBjb25zdCB7IHJldHVybiBtX2luZmVycmVkTmFtZTsgfQogICAgIEpTU3RyaW5n
KiBuYW1lVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX25hbWVWYWx1ZS5nZXQoKTsgfQorICAgIHZv
aWQgc2V0TmFtZVZhbHVlKFZNJiB2bSwgSlNTdHJpbmcqIG5hbWVWYWx1ZSkgeyBtX25hbWVWYWx1
ZS5zZXQodm0sIHRoaXMsIG5hbWVWYWx1ZSk7IH0KICAgICB1bnNpZ25lZCBwYXJhbWV0ZXJDb3Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyQ291bnQ7IH07CiAgICAgU291cmNlUGFyc2VN
b2RlIHBhcnNlTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VNb2RlOyB9OwogICAgIGJvb2wg
aXNJblN0cmljdENvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5TdHJpY3RDb250ZXh0OyB9
CkBAIC0xMDEsNyArMTAxLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiwg
RXhlY1N0YXRlJiwgY29uc3QgU291cmNlQ29kZSYsIEpTT2JqZWN0KiYgZXhjZXB0aW9uLCAKICAg
ICAgICAgaW50IG92ZXJyaWRlTGluZU51bWJlcik7CiAKLSAgICBGdW5jdGlvbkV4ZWN1dGFibGUq
IGxpbmsoVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgaW50IG92ZXJyaWRlTGluZU51bWJlciA9IC0x
KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBGdW5jdGlvbkV4ZWN1dGFibGUqIGxpbmsoVk0mLCBj
b25zdCBTb3VyY2VDb2RlJiwgaW50IG92ZXJyaWRlTGluZU51bWJlciA9IC0xKTsKIAogICAgIHZv
aWQgY2xlYXJDb2RlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Z2VuZXJhdGUtanMtYnVpbHRpbnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdGUtanMt
YnVpbHRpbnMKaW5kZXggOTY0NzE2MzZmYTNlN2NlYzBhMjZiYmFmNTZhMjhkOTI4MjEwYzU2Ny4u
YjI4NDFmNGQyYTNmYmYwYmNhYmRlZmU2Y2EwM2FhYTRkNzlhMjYzZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9nZW5lcmF0ZS1qcy1idWlsdGlucwpAQCAtMzYsNiArMzYsOCBAQCBwYXJzZXIg
PSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCiBwYXJzZXIuYWRkX2FyZ3VtZW50KCdpbnB1dF9m
aWxlJywgbmFyZ3M9JyonLCBoZWxwPSdJbnB1dCBKUyBmaWxlcyB3aGljaCBidWlsdGlucyBnZW5l
cmF0ZWQgZnJvbScpCiBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWlucHV0LWRpcmVjdG9yeScsIGhl
bHA9J0FsbCBKUyBmaWxlcyB3aWxsIGJlIHVzZWQgYXMgaW5wdXQgZnJvbSB0aGlzIGRpcmVjdG9y
eS4nKQogcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1vdXRwdXQnLCBoZWxwPSdwYXRoIHRvIG91dHB1
dCBjcHAgb3IgaCBmaWxlJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0tcHJlZml4JywgZGVmYXVs
dD0nSlNDJywgaGVscD0ncHJlZml4IHVzZWQgZm9yIHB1YmxpYyBtYWNyb3MnKQorcGFyc2VyLmFk
ZF9hcmd1bWVudCgnLS1uYW1lc3BhY2UnLCBkZWZhdWx0PSdKU0MnLCBoZWxwPSdDKysgbmFtZXNw
YWNlJykKIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCiAKIGNvcHlyaWdodFRleHQgPSAiIiIg
KgpAQCAtMTUzLDYgKzE1NSw5IEBAIGRlZiBnZXRGdW5jdGlvbnMoc291cmNlKToKICAgICAgICAg
cmVzdWx0LmFwcGVuZChGdW5jdGlvbihmdW5jdGlvbk5hbWUsIGZ1bmN0aW9uLCBmdW5jdGlvbklz
Q29uc3RydWN0b3IsIGZ1bmN0aW9uUGFyYW1ldGVycykpCiAgICAgcmV0dXJuIHJlc3VsdAogCitk
ZWYgd3JpdGVJbmNsdWRlRGlyZWN0aXZlcyh3cml0ZXIsIGhlYWRlck5hbWVzKToKKyAgICBmb3Ig
aGVhZGVyTmFtZSBpbiBoZWFkZXJOYW1lczoKKyAgICAgICAgd3JpdGVyLndyaXRlKCIjaW5jbHVk
ZSAiICsgaGVhZGVyTmFtZSArICJcbiIpCiAKIGRlZiBnZW5lcmF0ZUNvZGUoc291cmNlKToKICAg
ICBpbnB1dEZpbGUgPSBvcGVuKHNvdXJjZSwgInIiKQpAQCAtMTc5LDYgKzE4NCwxNCBAQCBmb3Ig
ZmlsZSBpbiBhcmdzLmlucHV0X2ZpbGU6CiAgICAgICAgIChiYXNlTmFtZSwgZnVuY3Rpb25zLCBv
YmplY3RDb3B5cmlnaHRzKSA9IGdlbmVyYXRlQ29kZShmaWxlKQogICAgICAgICBjb3B5cmlnaHRz
LmV4dGVuZChvYmplY3RDb3B5cmlnaHRzKQogICAgICAgICBidWlsdGlucy5hcHBlbmQoKGJhc2VO
YW1lLCBmdW5jdGlvbnMpKQorbmFtZXNwYWNlID0gYXJncy5uYW1lc3BhY2UKK21hY3JvUHJlZml4
ID0gYXJncy5wcmVmaXgKK3Njb3BlTmFtZSA9IG9zLnBhdGguc3BsaXRleHQob3MucGF0aC5iYXNl
bmFtZShhcmdzLm91dHB1dCkpWzBdCitpbmNsdWRlR3VhcmQgPSBzY29wZU5hbWUgKyAiX0giCito
ZWFkZXJOYW1lID0gc2NvcGVOYW1lICsgIi5oIgorCitoZWFkZXJJbmNsdWRlcyA9IFsiXCJCdWls
dGluVXRpbHMuaFwiIl0gaWYgbmFtZXNwYWNlID09ICJKU0MiIGVsc2UgWyI8YnVpbHRpbnMvQnVp
bHRpblV0aWxzLmg+Il0KK2NvbnRlbnRJbmNsdWRlcyA9IFsiXCJCdWlsdGluRXhlY3V0YWJsZXMu
aFwiIiwgIlwiRXhlY3V0YWJsZS5oXCIiLCAiXCJKU0NlbGxJbmxpbmVzLmhcIiIsICJcIlZNLmhc
IiJdIGlmIG5hbWVzcGFjZSA9PSAiSlNDIiBlbHNlIFsiPHJ1bnRpbWUvRXhlY3V0YWJsZS5oPiIs
ICI8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+IiwgIjxydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmg+IiwgIjxydW50aW1lL0pTQ2VsbElubGluZXMuaD4iLCAiPHJ1bnRpbWUvVk0uaD4iLCAi
XCJXZWJDb3JlSlNDbGllbnREYXRhLmhcIiJdCiAKIGNvcHlyaWdodHMgPSBsaXN0KHNldChjb3B5
cmlnaHRzKSkKIApAQCAtMTkyLDIzICsyMDUsMjEgQEAgY29weXJpZ2h0VGV4dCA9ICIvKlxuIiAr
IGNvcHlyaWdodEJvZHkgKyBjb3B5cmlnaHRUZXh0CiBidWlsdGluc0hlYWRlci53cml0ZSgiIiIl
cwogJXMKIAotI2lmbmRlZiBKU0NCdWlsdGluc19ICi0jZGVmaW5lIEpTQ0J1aWx0aW5zX0gKKyNp
Zm5kZWYgJXMKKyNkZWZpbmUgJXMKIAotI2luY2x1ZGUgIkNvbnN0cnVjdEFiaWxpdHkuaCIKKyIi
IiAlIChnZW5lcmF0b3JTdHJpbmcsIGNvcHlyaWdodFRleHQsIGluY2x1ZGVHdWFyZCwgaW5jbHVk
ZUd1YXJkKSkKIAotbmFtZXNwYWNlIEpTQyB7Cit3cml0ZUluY2x1ZGVEaXJlY3RpdmVzKGJ1aWx0
aW5zSGVhZGVyLCBoZWFkZXJJbmNsdWRlcykKIAotY2xhc3MgRnVuY3Rpb25FeGVjdXRhYmxlOwot
Y2xhc3MgSWRlbnRpZmllcjsKLWNsYXNzIEpTR2xvYmFsT2JqZWN0OwotY2xhc3MgU291cmNlQ29k
ZTsKLWNsYXNzIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOwotY2xhc3MgVk07CitidWlsdGlu
c0hlYWRlci53cml0ZSgiIiIKK25hbWVzcGFjZSBKU0MgeworICAgIGNsYXNzIEZ1bmN0aW9uRXhl
Y3V0YWJsZTsKK30KIAotRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGVCdWlsdGluRXhlY3V0YWJs
ZShWTSYsIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYpOwor
bmFtZXNwYWNlICVzIHsKIAotIiIiICUgKGdlbmVyYXRvclN0cmluZywgY29weXJpZ2h0VGV4dCkp
CisiIiIgJSBuYW1lc3BhY2UpCiAKIGNvZGVSZWZlcmVuY2VzID0gW10KIApAQCAtMjIyLDU4ICsy
MzMsNTkgQEAgZm9yIChvYmplY3ROYW1lLCBmdW5jdGlvbnMpIGluIGJ1aWx0aW5zOgogICAgICAg
ICBjb2RlUmVmZXJlbmNlcy5hcHBlbmQoKG1hbmdsZWROYW1lLCBmdW5jdGlvbikpCiAgICAgICAg
IGJ1aWx0aW5zSGVhZGVyLndyaXRlKCJleHRlcm4gY29uc3QgY2hhciogc18lcztcbiIgJSBtYW5n
bGVkTmFtZSkKICAgICAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoImV4dGVybiBjb25zdCBpbnQg
c18lc0xlbmd0aDtcbiIgJSBtYW5nbGVkTmFtZSkKLSAgICAgICAgYnVpbHRpbnNIZWFkZXIud3Jp
dGUoImV4dGVybiBjb25zdCBDb25zdHJ1Y3RBYmlsaXR5IHNfJXNDb25zdHJ1Y3RBYmlsaXR5O1xu
IiAlIG1hbmdsZWROYW1lKQorICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiZXh0ZXJuIGNv
bnN0IEpTQzo6Q29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eTtcbiIgJSBtYW5n
bGVkTmFtZSkKICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiXG4iKQotICAgIGJ1aWx0aW5zSGVh
ZGVyLndyaXRlKCIjZGVmaW5lIEpTQ19GT1JFQUNIXyVzX0JVSUxUSU4obWFjcm8pIFxcXG4iICUg
b2JqZWN0TmFtZS5yZXBsYWNlKCIuIiwgIl8iKS51cHBlcigpKQorICAgIGJ1aWx0aW5zSGVhZGVy
LndyaXRlKCIjZGVmaW5lICVzX0ZPUkVBQ0hfJXNfQlVJTFRJTihtYWNybykgXFxcbiIgJSAobWFj
cm9QcmVmaXgsIG9iamVjdE5hbWUucmVwbGFjZSgiLiIsICJfIikudXBwZXIoKSkpCiAgICAgZm9y
IGZ1bmN0aW9uIGluIGZ1bmN0aW9uczoKICAgICAgICAgbWFuZ2xlZE5hbWUgPSBmdW5jdGlvbi5t
YW5nbGVOYW1lKG9iamVjdE5hbWUpCiAgICAgICAgIGJ1aWx0aW5zSGVhZGVyLndyaXRlKCIgICAg
bWFjcm8oJXMsICVzLCAlZCkgXFxcbiIgJSAoZnVuY3Rpb24ubmFtZSwgbWFuZ2xlZE5hbWUsIGxl
bihmdW5jdGlvbi5wYXJhbWV0ZXJzKSkpCiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuIikK
ICAgICBmb3IgZnVuY3Rpb24gaW4gZnVuY3Rpb25zOgotICAgICAgICBidWlsdGluc0hlYWRlci53
cml0ZSgiI2RlZmluZSBKU0NfQlVJTFRJTl8lcyAxXG4iICUgZnVuY3Rpb24ubWFuZ2xlTmFtZShv
YmplY3ROYW1lKS51cHBlcigpKQorICAgICAgICBidWlsdGluc0hlYWRlci53cml0ZSgiI2RlZmlu
ZSAlc19CVUlMVElOXyVzIDFcbiIgJSAobWFjcm9QcmVmaXgsIGZ1bmN0aW9uLm1hbmdsZU5hbWUo
b2JqZWN0TmFtZSkudXBwZXIoKSkpCiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIlxuXG4iKQog
bmFtZXMgPSBbXQotYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgSlNDX0ZPUkVBQ0hfQlVJ
TFRJTihtYWNybylcXFxuIikKK2J1aWx0aW5zSGVhZGVyLndyaXRlKCIjZGVmaW5lICVzX0ZPUkVB
Q0hfQlVJTFRJTihtYWNybylcXFxuIiAlIG1hY3JvUHJlZml4KQogZm9yIChjb2RlUmVmZXJlbmNl
LCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUo
IiAgICBtYWNybyglcywgJXMsIHNfJXNMZW5ndGgpIFxcXG4iICUgKGNvZGVSZWZlcmVuY2UsIGZ1
bmN0aW9uLm5hbWUsIGNvZGVSZWZlcmVuY2UpKQogICAgIG5hbWVzLmFwcGVuZChmdW5jdGlvbi5u
YW1lKQogCiBidWlsdGluc0hlYWRlci53cml0ZSgiXG5cbiIpCi1idWlsdGluc0hlYWRlci53cml0
ZSgiI2RlZmluZSBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUobWFjcm8pIFxcXG4i
KQorYnVpbHRpbnNIZWFkZXIud3JpdGUoIiNkZWZpbmUgJXNfRk9SRUFDSF9CVUlMVElOX0ZVTkNU
SU9OX05BTUUobWFjcm8pIFxcXG4iICUgbWFjcm9QcmVmaXgpCiBmb3IgbmFtZSBpbiBzb3J0ZWQo
c2V0KG5hbWVzKSk6CiAgICAgYnVpbHRpbnNIZWFkZXIud3JpdGUoIiAgICBtYWNybyglcykgXFxc
biIgJSBuYW1lKQogYnVpbHRpbnNIZWFkZXIud3JpdGUoIiIiCiAKLSNkZWZpbmUgSlNDX0RFQ0xB
UkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUsIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3Vu
dCkgXFwKLSAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGNvZGVOYW1lIyNHZW5lcmF0b3IoVk0mKTsK
KyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUihjb2RlTmFtZSwgZnVuY3Rpb25OYW1l
LCBhcmd1bWVudENvdW50KSBcXAorICAgIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiBjb2RlTmFt
ZSMjR2VuZXJhdG9yKEpTQzo6Vk0mKTsKIAotSlNDX0ZPUkVBQ0hfQlVJTFRJTihKU0NfREVDTEFS
RV9CVUlMVElOX0dFTkVSQVRPUikKLSN1bmRlZiBKU0NfREVDTEFSRV9CVUlMVElOX0dFTkVSQVRP
UgorJXNfRk9SRUFDSF9CVUlMVElOKERFQ0xBUkVfQlVJTFRJTl9HRU5FUkFUT1IpCisjdW5kZWYg
REVDTEFSRV9CVUlMVElOX0dFTkVSQVRPUgogCi0jZGVmaW5lIEpTQ19CVUlMVElOX0VYSVNUUyhu
YW1lKSBkZWZpbmVkIEpTQ19CVUlMVElOXyAjIyBuYW1lCisjZGVmaW5lICVzX0JVSUxUSU5fRVhJ
U1RTKG5hbWUpIGRlZmluZWQgJXNfQlVJTFRJTl8gIyMgbmFtZQogCiB9CiAKLSNlbmRpZgorI2Vu
ZGlmIC8vICVzCiAKLSIiIikKKyIiIiAlIChtYWNyb1ByZWZpeCwgbWFjcm9QcmVmaXgsIG1hY3Jv
UHJlZml4LCBpbmNsdWRlR3VhcmQpKQogCiBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIi
IiVzCiAlcwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlICJKU0NCdWlsdGlucy5o
IgorI2luY2x1ZGUgIiVzIgogCi0jaW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCi0jaW5j
bHVkZSAiQ29uc3RydWN0QWJpbGl0eS5oIgotI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIKLSNpbmNs
dWRlICJKU0NlbGxJbmxpbmVzLmgiCi0jaW5jbHVkZSAiVk0uaCIKKyIiIiAgJSAoZ2VuZXJhdG9y
U3RyaW5nLCBjb3B5cmlnaHRUZXh0LCBoZWFkZXJOYW1lKSkKKword3JpdGVJbmNsdWRlRGlyZWN0
aXZlcyhidWlsdGluc0ltcGxlbWVudGF0aW9uLCBjb250ZW50SW5jbHVkZXMpCisKK2J1aWx0aW5z
SW1wbGVtZW50YXRpb24ud3JpdGUoIiIiCituYW1lc3BhY2UgJXMgeworCisiIiIgICUgKG5hbWVz
cGFjZSkpCiAKLW5hbWVzcGFjZSBKU0MgewogCi0iIiIgICUgKGdlbmVyYXRvclN0cmluZywgY29w
eXJpZ2h0VGV4dCkpCiAKIGZvciAoY29kZVJlZmVyZW5jZSwgZnVuY3Rpb24pIGluIGNvZGVSZWZl
cmVuY2VzOgogICAgIHNvdXJjZSA9IGZ1bmN0aW9uLnNvdXJjZQpAQCAtMjg1LDIzICsyOTcsMzMg
QEAgZm9yIChjb2RlUmVmZXJlbmNlLCBmdW5jdGlvbikgaW4gY29kZVJlZmVyZW5jZXM6CiAgICAg
ICAgIHNvdXJjZSA9IHNvdXJjZSArICgiICAgIFwiJXNcXG5cIiBcXFxuIiAlIGxpbmUpCiAgICAg
YnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiY29uc3QgY2hhciogc18lcyA9XG4lcztcblxu
IiAlIChjb2RlUmVmZXJlbmNlLCBzb3VyY2UpKQogICAgIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24u
d3JpdGUoImNvbnN0IGludCBzXyVzTGVuZ3RoID0gJWQ7XG5cbiIgJSAoY29kZVJlZmVyZW5jZSwg
c291cmNlTGVuZ3RoICsgMSkpICMgKyAxIGZvciBcbgotICAgIGNvbnN0cnVjdEFiaWxpdHkgPSAi
Q29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0IgorICAgIGNvbnN0cnVjdEFiaWxpdHkg
PSAiSlNDOjpDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QiCiAgICAgaWYgZnVuY3Rp
b24uaXNDb25zdHJ1Y3RvcjoKLSAgICAgICAgY29uc3RydWN0QWJpbGl0eSA9ICJDb25zdHJ1Y3RB
YmlsaXR5OjpDYW5Db25zdHJ1Y3QiCi0gICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgi
Y29uc3QgQ29uc3RydWN0QWJpbGl0eSBzXyVzQ29uc3RydWN0QWJpbGl0eSA9ICVzO1xuXG4iICUg
KGNvZGVSZWZlcmVuY2UsIGNvbnN0cnVjdEFiaWxpdHkpKSAjICsgMSBmb3IgXG4KKyAgICAgICAg
Y29uc3RydWN0QWJpbGl0eSA9ICJKU0M6OkNvbnN0cnVjdEFiaWxpdHk6OkNhbkNvbnN0cnVjdCIK
KyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCJjb25zdCBKU0M6OkNvbnN0cnVjdEFi
aWxpdHkgc18lc0NvbnN0cnVjdEFiaWxpdHkgPSAlcztcblxuIiAlIChjb2RlUmVmZXJlbmNlLCBj
b25zdHJ1Y3RBYmlsaXR5KSkgIyArIDEgZm9yIFxuCiAKIGJ1aWx0aW5zSW1wbGVtZW50YXRpb24u
d3JpdGUoIiIiCi0jZGVmaW5lIEpTQ19ERUZJTkVfQlVJTFRJTl9HRU5FUkFUT1IoY29kZU5hbWUs
IGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRDb3VudCkgXFwKLUZ1bmN0aW9uRXhlY3V0YWJsZSogY29k
ZU5hbWUjI0dlbmVyYXRvcihWTSYgdm0pIFxcCi17IFxcCi0gICAgcmV0dXJuIHZtLmJ1aWx0aW5F
eGVjdXRhYmxlcygpLT5jb2RlTmFtZSMjRXhlY3V0YWJsZSgpLT5saW5rKHZtLCB2bS5idWlsdGlu
RXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI1NvdXJjZSgpKTsgXFwKLX0KKyNkZWZpbmUgREVGSU5F
X0JVSUxUSU5fR0VORVJBVE9SKGNvZGVOYW1lLCBmdW5jdGlvbk5hbWUsIGFyZ3VtZW50Q291bnQp
IFxcCitKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZSogY29kZU5hbWUjI0dlbmVyYXRvcihKU0M6OlZN
JiB2bSkgXFwKKyIiIik7CiAKLUpTQ19GT1JFQUNIX0JVSUxUSU4oSlNDX0RFRklORV9CVUlMVElO
X0dFTkVSQVRPUikKLSN1bmRlZiBKU0NfREVGSU5FX0JVSUxUSU5fR0VORVJBVE9SCitpZiAobmFt
ZXNwYWNlID09ICJKU0MiKToKKyAgICBidWlsdGluc0ltcGxlbWVudGF0aW9uLndyaXRlKCIiIntc
XAorICAgIHJldHVybiB2bS5idWlsdGluRXhlY3V0YWJsZXMoKS0+Y29kZU5hbWUjI0V4ZWN1dGFi
bGUoKS0+bGluayh2bSwgdm0uYnVpbHRpbkV4ZWN1dGFibGVzKCktPmNvZGVOYW1lIyNTb3VyY2Uo
KSk7IFxcCisiIiIpCitlbHNlOgorICAgIGJ1aWx0aW5OYW1lID0gc2NvcGVOYW1lWzBdLmxvd2Vy
KCkgKyBzY29wZU5hbWVbMTpdCisgICAgYnVpbHRpbnNJbXBsZW1lbnRhdGlvbi53cml0ZSgiIiJ7
XFwKKyAgICBXZWJDb3JlSlNDbGllbnREYXRhKiBjbGllbnREYXRhID0gc3RhdGljX2Nhc3Q8V2Vi
Q29yZUpTQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOyBcXAorICAgIHJldHVybiBjbGllbnRE
YXRhLT4lcygpLmNvZGVOYW1lIyNFeGVjdXRhYmxlKCktPmxpbmsodm0sIGNsaWVudERhdGEtPiVz
KCkuY29kZU5hbWUjI1NvdXJjZSgpKTsgXFwKKyIiIiUgKGJ1aWx0aW5OYW1lLCBidWlsdGluTmFt
ZSkpCisKK2J1aWx0aW5zSW1wbGVtZW50YXRpb24ud3JpdGUoIiIifQorJXNfRk9SRUFDSF9CVUlM
VElOKERFRklORV9CVUlMVElOX0dFTkVSQVRPUikKKyN1bmRlZiBERUZJTkVfQlVJTFRJTl9HRU5F
UkFUT1IKIH0KIAotIiIiKQorIiIiJSAobWFjcm9QcmVmaXgpKQogCiBidWlsdGluc0hlYWRlci5j
bG9zZSgpCiBidWlsdGluc0ltcGxlbWVudGF0aW9uLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggM2U0NGYyN2FlYzQxNzJmZDQyYzZjMTBiMTdiMDA3YTdhMmVmMjQ2Mi4uYTk2NTIxNzMw
MDY2NzhhNmM2ODgzZTM2MDk1MzE3Mzc1NzJmN2Y2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTMzMzcsNiArMzMzNywxMCBAQCBzZXQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJ
TEUgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1dvcmtlckdsbwogc2V0KERFRElDQVRF
RFdPUktFUkdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9ycy5pZGwpCiBz
ZXQoSURMX0FUVFJJQlVURVNfRklMRSAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMudHh0KQogCitzZXQoV0VCQ09SRV9KU19CVUlMVElOUworICAgICR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKQorCiBXRUJLSVRfSU5D
TFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKIAogIyBHZW5lcmF0ZSBJbnNwZWN0b3JPdmVy
bGF5UGFnZS5oCkBAIC0zNTU2LDYgKzM1NjAsMjIgQEAgR0VORVJBVEVfQklORElOR1MoV2ViQ29y
ZVRlc3RTdXBwb3J0X1NPVVJDRVMKICAgICAke1NVUFBMRU1FTlRBTF9ERVBFTkRFTkNZX0ZJTEV9
CiAgICAgJHtBRERJVElPTkFMX0JJTkRJTkdTX0RFUEVOREVOQ0lFU30pCiAKKyMgV2ViQ29yZSBK
UyBCdWlsdGlucworZm9yZWFjaCAoX2J1aWx0aW5qcyAke1dFQkNPUkVfSlNfQlVJTFRJTlN9KQor
ICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfYnVpbHRpbmpzfSBOQU1FX1dFKQor
ICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zV3JhcHBlci5oICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09S
RV9ESVJ9LyR7X25hbWV9QnVpbHRpbnMuY3BwCisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMKKyAgICAgICAgREVQ
RU5EUyAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZ2VuZXJhdGUtanMtYnVpbHRpbnMKKyAgICAgICAg
REVQRU5EUyAke19idWlsdGluanN9CisgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJM
RX0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2dlbmVyYXRlLWpzLWJ1aWx0aW5zIC0taW5w
dXQgJHtfYnVpbHRpbmpzfSAtLW91dHB1dF9kaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9IC0td2ViY29yZV9kaXIgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9CisgICAgICAgIFZF
UkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICAke0RFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX1CdWlsdGlucy5oCisgICAgICAgICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zV3JhcHBlci5oCisgICAg
ICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfUJ1aWx0aW5zLmNwcAor
ICAgICkKK2VuZGZvcmVhY2ggKCkKIAogQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURfREVQRU5E
RU5DSUVTKCR7V0VCQ09SRV9ESVJ9L2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcCBNYXRoTUxOYW1l
cy5jcHApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA3MzM5YzJmMmYzM2Y3MTNh
OGEwNTZkODQwMDhlNDdjNzUxODFmMGQxLi44ZmJhNjA1ODY1NGEyMGEwMDAxMTFkN2E4OGY1ZDYx
YWIzNWE0NTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0zMTAsNiArMzEwLDcg
QEAKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtLmNwcCIKICNpbmNsdWRlICJKU1JlYWRhYmxl
U3RyZWFtQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5j
cHAiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAiCiAjZW5kaWYKICNpbmNs
dWRlICJKU1JlY3QuY3BwIgogI2luY2x1ZGUgIkpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYWUxMGQ1OTQ3N2RkOGRh
MGQ4YmVkNzhmZDgzY2ExYTNkYTBmOWNhYi4uMzI0YTU1ZmRiNzAwYzI4YzE2MDYwYzdiYjNhMjQy
ZjEzY2ViZTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03OTIsNiArNzky
LDcgQEAgYWxsIDogXAogICAgICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUp
IFwKICAgICAkKEpTX0RPTV9IRUFERVJTKSBcCiAgICAgJChXRUJfRE9NX0hFQURFUlMpIFwKKyAg
ICAkKFdFQkNPUkVfSlNfQlVJTFRJTlMpIFwKICAgICBcCiAgICAgQ1NTR3JhbW1hci5jcHAgXAog
ICAgIENTU1Byb3BlcnR5TmFtZXMuY3BwIFwKQEAgLTEyNDYsNiArMTI0NywxNiBAQCBXZWJSZXBs
YXlJbnB1dHMuaCA6ICQoSU5QVVRfR0VORVJBVE9SX1NQRUNJRklDQVRJT05TKSAkKElOUFVUX0dF
TkVSQVRPUl9TQ1JJUFRTKQogCiAtaW5jbHVkZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAK
KyMgV2ViQ29yZSBKUyBCdWlsdGlucworCitXRUJDT1JFX0pTX0JVSUxUSU5TID0gXAorICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCisKK2FsbCA6ICQoV0VC
Q09SRV9KU19CVUlMVElOUzolLmpzPSVCdWlsdGlucy5jcHApCisKKyVCdWlsdGlucy5jcHA6ICUu
anMKKwkkKFBZVEhPTikgJChXZWJDb3JlKS9nZW5lcmF0ZS1qcy1idWlsdGlucyAtLWlucHV0ICQ8
IC0td2ViY29yZV9kaXIgJChXZWJDb3JlKQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CiAjIE1hYy1zcGVjaWZpYyBydWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9idWlsdGlucy9CdWlsdGluVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjc0MTRi
ODMwOTM4ZGQ2YzVhODZiMjViZTZkZjY3NTI1Njg1Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnVpbHRpbnMvQnVpbHRpblV0aWxzLmgKQEAg
LTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0J1aWx0aW5VdGlsc19oCisjZGVmaW5l
IFdlYkNvcmVfRldEX0J1aWx0aW5VdGlsc19oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVp
bHRpblV0aWxzLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ3MTJkOWJmMDU4ODRmM2Y3OTk5MjllZDZjMTQ1ZjBiM2U1ZTE2
OTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9i
eXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC0wLDAgKzEsNCBAQAorI2lm
bmRlZiBXZWJDb3JlX0ZXRF9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZV9oCisjZGVmaW5lIFdl
YkNvcmVfRldEX1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlX2gKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oPgorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ydW50aW1lL0NvbnN0cnVjdEFiaWxp
dHkuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvQ29uc3RydWN0
QWJpbGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZGNhZGNjOTNmYjZlNTc5Nzk0MWIyNWNkMDRlMTI5NTA1
Y2JhYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9ydW50aW1lL0NvbnN0cnVjdEFiaWxpdHkuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2Vi
Q29yZV9GV0RfQ29uc3RydWN0QWJpbGl0eV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0NvbnN0cnVj
dEFiaWxpdHlfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnN0cnVjdEFiaWxpdHkuaD4K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbS5pZGwKaW5kZXggODYzYzI2NDMxOGM1NDEyMGE3MDg4OTFhMWNkYWM1M2YwNjhjYjBkMC4u
NmFjMjU5NWFhYmQ1YmFmNjU0OGNlYmNkOGEzMmFiMDBkYTgwZDIxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaWRsCkBAIC0zNiw3ICsz
Niw3IEBACiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gUHJvbWlzZSBjYW5jZWwoW0RlZmF1bHQ9VW5k
ZWZpbmVkXSBvcHRpb25hbCBhbnkgcmVhc29uKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBSZWFk
YWJsZVN0cmVhbVJlYWRlciBnZXRSZWFkZXIoKTsKICAgICBbQ3VzdG9tXSBQcm9taXNlIHBpcGVU
byhhbnkgc3RyZWFtcywgYW55IG9wdGlvbnMpOwotICAgIFtDdXN0b21dIE9iamVjdCBwaXBlVGhy
b3VnaChhbnkgZGVzdCwgYW55IG9wdGlvbnMpOworICAgIFtKU0J1aWx0aW5dIE9iamVjdCBwaXBl
VGhyb3VnaChhbnkgZGVzdCwgYW55IG9wdGlvbnMpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gbG9ja2VkOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFt
cy9SZWFkYWJsZVN0cmVhbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzYzMmY1OGQxYmRmNWI5NzVkNTJkNmM3
NGRmMzcwYjdjYWI2Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitmdW5jdGlvbiBwaXBlVGhyb3VnaChzdHJlYW1zLCBvcHRpb25zKQorewor
ICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIHRoaXMucGlwZVRvKHN0cmVhbXMud3JpdGFibGUsIG9w
dGlvbnMpOworICAgIHJldHVybiBzdHJlYW1zLnJlYWRhYmxlOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdp
bi5jbWFrZQppbmRleCA5ZmNhZjBlZDFlYjMzYTE4OTU3ZTllZTA5ZTFmYjEzMWQ0M2ZlOTlhLi5k
MzdjODdmNTM4NWQyZjQ5ODU3ZDhjOWNlMWM0ODlkNzJhMGQ1M2QzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdpbi5jbWFrZQpAQCAtOSw2ICs5LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMv
SmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMiCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VT
X0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvQVBJIgogICAgICIke0RFUklW
RURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ciIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2Ny
aXB0Q29yZS9idWlsdGlucyIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5n
SGVhZGVycy9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZSIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIiCiAgICAg
IiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUv
ZGZnIgpAQCAtMjg5LDQgKzI5MCw0IEBAIGZpbGUoV1JJVEUgIiR7V2ViQ29yZV9QT1NUX0JVSUxE
X0NPTU1BTkR9IiAiQHhjb3B5IC95IC9zIC9kIC9mIFwiJHtERVJJVkVEX1NPVVJDCiAKIHNldChX
ZWJDb3JlX09VVFBVVF9OQU1FCiAgICAgV2ViQ29yZSR7REVCVUdfU1VGRklYfQotKQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDUzNTg1ZmEwZjI3YjIyYTc5OTFmNDEzMzVhMjQwOGUy
ZGYwMTlmY2UuLmY0ZTdjNTM5ZjRkM2MyNzdhMTZkYjc5OWY5NDczZTk0ZWVmMGJiYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMzk2
MCw2ICszOTYwLDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwIj4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE3NzI4NjhmZmViOTBiZjMwMGVkZTg1NmJhODAy
YjgwMzQ2YTlkZDMuLjA2ZDA2MmJhM2IyODFiNmM1YTNmN2VlZmJlMjJiNTBlY2M2NWFlNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI1OTUsNiArMjU5NSw3IEBACiAJCTdDNDhBNkQwMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJL
aXROYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0M0OEE2Q0UxOTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5jcHAgKi87
IH07CiAJCTdDNDhBNkQxMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNDhBNkNGMTkxQzlE
NjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuaCAqLzsgfTsKIAkJN0M0OTAyQTIxOEI4MjVG
ODAwN0Q5Mjk4IC8qIERPTVdoZWVsRXZlbnRJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5ODlEQ0EwQUNDOEJC
RDAwQTBCQzUxIC8qIERPTVdoZWVsRXZlbnRJbnRlcm5hbC5oICovOyB9OworCQk3QzRDOTZEQzFB
RDQ0ODM1MDAzNjVBNTEgLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzRDOTZEODFBRDQ0ODM1MDAzNjVB
NTEgLyogUmVhZGFibGVTdHJlYW1CdWlsdGlucy5jcHAgKi87IH07CiAJCTdDNEM5NkRDMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1Jl
YWRhYmxlU3RyZWFtLmNwcCAqLzsgfTsKIAkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
UmVhZGFibGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggKi87
IH07CiAJCTdDNEM5NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNEM5
NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtUmVhZGVyLmNwcCAqLzsgfTsK
QEAgLTk5ODUsNiArOTk4Niw3IEBACiAJCTdDNDhBNkNFMTkxQzlENjUwMDAyNjY3NCAvKiBXZWJL
aXROYW1lc3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
S2l0TmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M0OEE2Q0Yx
OTFDOUQ2NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJLaXROYW1lc3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0M0OEE2RDIxOTFDOUQ4RTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViS2l0TmFtZXNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M0
Qzk2RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhZGFibGVTdHJlYW1CdWlsdGlucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1
MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTUmVhZGFibGVTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QzRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlYWRhYmxlU3RyZWFtLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxl
U3RyZWFtUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
UmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTYyMTEsNiArMTYyMTMsNyBAQAogCQk0MUEwMjNGQTFBMzlGMTNBMDBGNzIyQ0YgLyogU3RyZWFt
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJN0M0Qzk2
RDgxQUQ0NDgzNTAwMzY1QTUxIC8qIFJlYWRhYmxlU3RyZWFtQnVpbHRpbnMuY3BwICovLAogCQkJ
CTdDNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNwcCAqLywKIAkJ
CQk3QzRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oICovLAogCQkJ
CTZDNEM5NkRBMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5j
cHAgKi8sCkBAIC0yOTQwNyw2ICsyOTQxMCw3IEBACiAJCQkJMDc3NjY0RkMxODNFNkI1QzAwMTMz
QjkyIC8qIEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjY1OEZGQTExNTIyRUYzQTAwREQ1NTk1IC8qIEpTUmFkaW9Ob2RlTGlzdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk2NURGMzIwMTA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk3QzRDOTZEQzFBRDQ0ODM1MDAzNjVBNTEgLyogUmVhZGFibGVTdHJl
YW1CdWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzRDOTZEQzFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNSZWFkYWJsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2QzRDOTZERTFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDExODlFRjkxQUQ4MjczNzAwQjkwQTBEIC8qIEpTUmVhZGFibGVTdHJlYW1D
b250cm9sbGVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcAppbmRleCA5Y2YwOTZi
YWJhNjIwODA1YzE1NTFkYzliNWViY2JhOWRjYTRlMzIyLi4yYjY2M2NlNzhkZWRmNzM2YjIyZmMz
OTEwNTUyNGIyZGEzYmVkMDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcApAQCAtNTMsMTIgKzUzLDYgQEAgSlNWYWx1
ZSBKU1JlYWRhYmxlU3RyZWFtOjpwaXBlVG8oRXhlY1N0YXRlJiBzdGF0ZSkKICAgICByZXR1cm4g
c3RhdGUudm0oKS50aHJvd0V4Y2VwdGlvbigmc3RhdGUsIGVycm9yKTsKIH0KIAotSlNWYWx1ZSBK
U1JlYWRhYmxlU3RyZWFtOjpwaXBlVGhyb3VnaChFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIEpT
VmFsdWUgZXJyb3IgPSBjcmVhdGVFcnJvcigmc3RhdGUsIEFTQ0lJTGl0ZXJhbCgicGlwZVRocm91
Z2ggaXMgbm90IGltcGxlbWVudGVkIikpOwotICAgIHJldHVybiBzdGF0ZS52bSgpLnRocm93RXhj
ZXB0aW9uKCZzdGF0ZSwgZXJyb3IpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0
YS5oCmluZGV4IDQzMDJkNjhlNWM4YzZkNzg3ZDQ3MjYyNDE0YmNlYjk4ZDIyZTAxOWUuLmFjODlh
ZjNiNTZjY2I2NzQxYjU0MzJiNTNiMWZiZjFmMGEwNWNlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTIzLDYgKzIzLDcgQEAK
ICNkZWZpbmUgV2ViQ29yZUpTQ2xpZW50RGF0YV9oCiAKICNpbmNsdWRlICJET01XcmFwcGVyV29y
bGQuaCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBlci5oIgogI2luY2x1
ZGUgIldlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzUsNyArMzYsMTAgQEAgY2xhc3MgV2Vi
Q29yZUpTQ2xpZW50RGF0YSA6IHB1YmxpYyBKU0M6OlZNOjpDbGllbnREYXRhIHsKICAgICBmcmll
bmQgdm9pZCBpbml0Tm9ybWFsV29ybGRDbGllbnREYXRhKEpTQzo6Vk0qKTsKIAogcHVibGljOgot
ICAgIFdlYkNvcmVKU0NsaWVudERhdGEoKQorICAgIFdlYkNvcmVKU0NsaWVudERhdGEoSlNDOjpW
TSYgdm0pCisjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorICAgICAgICA6IG1fcmVhZGFibGVTdHJl
YW1CdWlsdGlucygmdm0pCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC03MSwxNCArNzUsMjIg
QEAgcHVibGljOgogICAgICAgICBtX3dvcmxkU2V0LnJlbW92ZSgmd29ybGQpOwogICAgIH0KIAor
I2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKKyAgICBSZWFkYWJsZVN0cmVhbUJ1aWx0aW5zV3JhcHBl
ciYgcmVhZGFibGVTdHJlYW1CdWlsdGlucygpIHsgcmV0dXJuIG1fcmVhZGFibGVTdHJlYW1CdWls
dGluczsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgSGFzaFNldDxET01XcmFwcGVyV29ybGQq
PiBtX3dvcmxkU2V0OwogICAgIFJlZlB0cjxET01XcmFwcGVyV29ybGQ+IG1fbm9ybWFsV29ybGQ7
CisKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisgICAgUmVhZGFibGVTdHJlYW1CdWlsdGluc1dy
YXBwZXIgbV9yZWFkYWJsZVN0cmVhbUJ1aWx0aW5zOworI2VuZGlmCiB9OwogCiBpbmxpbmUgdm9p
ZCBpbml0Tm9ybWFsV29ybGRDbGllbnREYXRhKEpTQzo6Vk0qIHZtKQogewotICAgIFdlYkNvcmVK
U0NsaWVudERhdGEqIHdlYkNvcmVKU0NsaWVudERhdGEgPSBuZXcgV2ViQ29yZUpTQ2xpZW50RGF0
YTsKKyAgICBXZWJDb3JlSlNDbGllbnREYXRhKiB3ZWJDb3JlSlNDbGllbnREYXRhID0gbmV3IFdl
YkNvcmVKU0NsaWVudERhdGEoKnZtKTsKICAgICB2bS0+Y2xpZW50RGF0YSA9IHdlYkNvcmVKU0Ns
aWVudERhdGE7IC8vIH5WTSBkZWxldGVzIHRoaXMgcG9pbnRlci4KICAgICB3ZWJDb3JlSlNDbGll
bnREYXRhLT5tX25vcm1hbFdvcmxkID0gRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoKnZtLCB0cnVl
KTsKICAgICB2bS0+bV90eXBlZEFycmF5Q29udHJvbGxlciA9IGFkb3B0UmVmKG5ldyBXZWJDb3Jl
VHlwZWRBcnJheUNvbnRyb2xsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCBlY2IyZGY3ODkwOTUy
NGI0MDIxM2Y1NjEzYzRiYzQ4YjExOGE1MjZlLi4yNTFjZGI4MmQyM2I3MWU5NTNkMDA4ZWRmMmI5
ZGFkYTY5ZjI0MmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTM3Myw2ICszNzMsMTAgQEAgc3ViIFNr
aXBGdW5jdGlvbiB7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KIAorICAgIGlmICgkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAg
ICAgIHJldHVybiAxOworICAgIH0KKwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDdiZTAx
NzljZDk1YWVkYzRiMjA1NjBjNzZhMDIzY2ZjM2RlY2UxOTguLjVhMTZlNjhlNDYwMGQwOTAxOTgy
NGQ0Y2EzNzBjZTc5NmIyNjUwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC01NDgsNiArNTQ4LDE2IEBAIHN1YiBHZXRB
dHRyaWJ1dGVTZXR0ZXJOYW1lCiBzdWIgR2V0RnVuY3Rpb25OYW1lCiB7CiAgICAgbXkgKCRjbGFz
c05hbWUsICRmdW5jdGlvbikgPSBAXzsKKworICAgIG15ICRzY29wZU5hbWUgPSAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKKyAgICBp
ZiAoISRzY29wZU5hbWUpIHsKKyAgICAgICAgJHNjb3BlTmFtZSA9IHN1YnN0ciAkY2xhc3NOYW1l
LCAyOworICAgIH0KKworICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkpTQnVpbHRpbiJ9KSB7CisgICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+
V0tfbGNmaXJzdCgkc2NvcGVOYW1lKSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5uYW1lKSAuICJDb2RlR2VuZXJhdG9yIjsKKyAgICB9CisKICAgICBt
eSAka2luZCA9ICRmdW5jdGlvbi0+aXNTdGF0aWMgPyAiQ29uc3RydWN0b3IiIDogIlByb3RvdHlw
ZSI7CiAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4g
JGtpbmQgLiAiRnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPm5hbWUpOwogfQpAQCAtMTczMyw2ICsxNzQzLDggQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICBteSAkaW1wbFR5cGUgPSBHZXRJbXBsQ2xhc3NOYW1lKCRpbnRl
cmZhY2VOYW1lKTsKICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwoJGltcGxUeXBlKTsKIAor
ICAgIEFkZEluY2x1ZGVzRm9ySlNCdWlsdGluTWV0aG9kcygkaW50ZXJmYWNlKTsKKwogICAgIEBp
bXBsQ29udGVudCA9ICgpOwogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbnVzaW5nIG5hbWVz
cGFjZSBKU0M7XG5cbiIpOwpAQCAtMTc0OSw2ICsxNzYxLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0g
JiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxOwogICAgICAgICAgICAgbmV4dCBpZiAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJl
SW5IZWFkZXIifTsKICAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21CaW5kaW5nIn07CisgICAgICAgICAgICBuZXh0IGlm
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn07
CiAKICAgICAgICAgICAgIG15ICRuZWVkc0FwcGxlQ29weXJpZ2h0ID0gJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBcHBsZUNvcHlyaWdodCJ9OwogICAgICAgICAg
ICAgaWYgKCRuZWVkc0FwcGxlQ29weXJpZ2h0KSB7CkBAIC0xOTA3LDEyICsxOTIwLDcgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRmdW5jdGlvbkxlbmd0aCA9
IEdldEZ1bmN0aW9uTGVuZ3RoKCRmdW5jdGlvbik7CiAgICAgICAgICAgICBwdXNoKEBoYXNoVmFs
dWUyLCAkZnVuY3Rpb25MZW5ndGgpOwogCi0gICAgICAgICAgICBteSBAc3BlY2lhbHMgPSAoKTsK
LSAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udERlbGV0ZSIpIGlmICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RGVsZXRhYmxlIn07Ci0gICAgICAg
ICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3RFbnVtZXJhYmxlIn07Ci0gICAgICAgICAgICBwdXNo
KEBzcGVjaWFscywgIkpTQzo6RnVuY3Rpb24iKTsKLSAgICAgICAgICAgIG15ICRzcGVjaWFsID0g
KEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKLSAgICAgICAg
ICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOworICAgICAgICAgICAgcHVzaChAaGFz
aFNwZWNpYWxzLCBDb21wdXRlRnVuY3Rpb25TcGVjaWFsKCRpbnRlcmZhY2UsICRmdW5jdGlvbikp
OwogCiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn07CiAgICAgICAgICAgICBpZiAoJGNv
bmRpdGlvbmFsKSB7CkBAIC0xOTgzLDE0ICsxOTkxLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgbXkgJGZ1bmN0aW9uTGVuZ3RoID0gR2V0RnVuY3Rpb25MZW5ndGgoJGZ1
bmN0aW9uKTsKICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJGZ1bmN0aW9uTGVuZ3RoKTsKIAot
ICAgICAgICBteSBAc3BlY2lhbHMgPSAoKTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250
RGVsZXRlIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJO
b3REZWxldGFibGUifQotICAgICAgICAgICB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlVuZm9yZ2VhYmxlIn0KLSAgICAgICAgICAgfHwgJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlVuZm9yZ2VhYmxlIn07Ci0gICAgICAgIHB1c2goQHNwZWNp
YWxzLCAiRG9udEVudW0iKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Ik5vdEVudW1lcmFibGUifTsKLSAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6OkZ1
bmN0aW9uIik7Ci0gICAgICAgIG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8gam9pbigi
IHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKLSAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAkc3Bl
Y2lhbCk7CisgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgQ29tcHV0ZUZ1bmN0aW9uU3BlY2lh
bCgkaW50ZXJmYWNlLCAkZnVuY3Rpb24pKTsKIAogICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn07
CiAgICAgICAgIGlmICgkY29uZGl0aW9uYWwpIHsKQEAgLTI3OTAsNiArMjc5MSw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIG15ICRpbkFwcGxlQ29weXJpZ2h0ID0gMDsK
ICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkg
ewogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUJpbmRpbmcifTsKKyAgICAgICAgICAgIG5leHQgaWYgJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifTsKICAgICAgICAg
ICAgIG15ICRuZWVkc0FwcGxlQ29weXJpZ2h0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJBcHBsZUNvcHlyaWdodCJ9OwogICAgICAgICAgICAgaWYgKCRuZWVk
c0FwcGxlQ29weXJpZ2h0KSB7CiAgICAgICAgICAgICAgICAgaWYgKCEkaW5BcHBsZUNvcHlyaWdo
dCkgewpAQCAtNDI1Miw2ICs0MjU0LDggQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJh
eQogICAgICAgICAKICAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9GdW5jdGlvbi8p
IHsKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+IjsKKyAgICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0J1aWx0aW4v
KSB7CisgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PEJ1aWx0aW5H
ZW5lcmF0b3I+IjsKICAgICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0
YW50SW50ZWdlci8pIHsKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAiIjsKICAgICAg
ICAgfSBlbHNlIHsKQEAgLTUwMDQsNCArNTAwOCw1MSBAQCBzdWIgSGVhZGVyTmVlZHNQcm90b3R5
cGVEZWNsYXJhdGlvbgogICAgIHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSB8
fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21OYW1lZEdldHRlck9u
UHJvdG90eXBlIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9t
RGVmaW5lT3duUHJvcGVydHlPblByb3RvdHlwZSJ9OwogfQogCitzdWIgQ29tcHV0ZUZ1bmN0aW9u
U3BlY2lhbAoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkZnVuY3Rpb24g
PSBzaGlmdDsKKworICAgIG15IEBzcGVjaWFscyA9ICgpOworICAgIHB1c2goQHNwZWNpYWxzLCAi
RG9udERlbGV0ZSIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTm90RGVsZXRhYmxlIn0KKyAgICAgICB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlVuZm9yZ2VhYmxlIn0KKyAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiVW5mb3JnZWFibGUifTsKKyAgICBwdXNoKEBzcGVjaWFscywgIkRv
bnRFbnVtIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJO
b3RFbnVtZXJhYmxlIn07CisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSlNCdWlsdGluIn0pIHsKKyAgICAgICAgcHVzaChAc3BlY2lhbHMsICJKU0M6
OkJ1aWx0aW4iKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHB1c2goQHNwZWNpYWxzLCAi
SlNDOjpGdW5jdGlvbiIpOworICAgIH0KKyAgICByZXR1cm4gKEBzcGVjaWFscyA+IDApID8gam9p
bigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKK30KKworc3ViIFVzZUpTQnVpbHRpbnMKK3sKKyAg
ICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGlu
dGVyZmFjZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0J1aWx0aW4ifSkgeworICAgICAgICAgICAgcmV0dXJu
IDE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDAKK30KKworc3ViIEFkZEluY2x1ZGVz
Rm9ySlNCdWlsdGluTWV0aG9kcygpCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworCisg
ICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgeworICAg
ICAgICBuZXh0IHVubGVzcyAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJKU0J1aWx0aW4ifSk7CisgICAgICAgIG15ICRzY29wZU5hbWUgPSAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKKyAgICAgICAg
aWYgKCEkc2NvcGVOYW1lKSB7CisgICAgICAgICAgICAkc2NvcGVOYW1lID0gJGludGVyZmFjZS0+
bmFtZTsKKyAgICAgICAgfQorICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygkc2NvcGVOYW1lIC4g
IkJ1aWx0aW5zLmgiLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNvbmRpdGlvbmFsIn0pOworCisgICAgICAgIHJldHVybiAxOworICAgIH0KKworfQorCiAxOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQK
aW5kZXggOWUxYTU1YWZkMmM4Zjk4NGIwYjMwZmNjYmM1M2ExMzY3M2VlZDJhOS4uNWU1ODQ4ZWVh
MmQwMTA4YzIyZmRiYzlkMGQ5ZmUyNjQ5NWUwNzk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CkBAIC03Myw2ICs3Myw3IEBAIElt
cGxlbWVudGVkQXM9KgogSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IKIEludGVyZmFjZU5h
bWU9KgogSXNXZWFrQ2FsbGJhY2sKK0pTQnVpbHRpbgogSlNDdXN0b21EZWZpbmVPd25Qcm9wZXJ0
eQogSlNDdXN0b21EZWZpbmVPd25Qcm9wZXJ0eU9uUHJvdG90eXBlCiBKU0N1c3RvbUZpbmFsaXpl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwCmluZGV4IGU1YTVkOTgwNTc4ZmJhYWMwZTI4MDNmZWQ3OGMwMTViMWY0NGZjZGMu
LjE2NTBkZGI0NGUwNGYzMjA5N2VjZWUyYTlkNWM3NzUyOWQwMTViYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBA
IC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXN0Tm9k
ZS5oIgogI2luY2x1ZGUgIlRlc3RPYmouaCIKKyNpbmNsdWRlICJUZXN0T2JqQnVpbHRpbnMuaCIK
ICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJib29sLmgiCiAjaW5jbHVkZSA8YmluZGluZ3Mv
U2NyaXB0VmFsdWUuaD4KQEAgLTYyMiw2ICs2MjMsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiY3VzdG9tTWV0
aG9kV2l0aEFyZ3MiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9t
TWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9IH0sCiAgICAgeyAiY3VzdG9tQmluZGlu
Z01ldGhvZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21CaW5k
aW5nTWV0aG9kKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgImN1c3RvbUJpbmRpbmdNZXRo
b2RXaXRoQXJncyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21C
aW5kaW5nTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9IH0sCisgICAgeyAianNCdWls
dGluTWV0aG9kIiwgSlNDOjpCdWlsdGluLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4odGVzdE9iakpzQnVpbHRpbk1ldGhvZENvZGVHZW5lcmF0
b3IpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAianNCdWlsdGluTWV0aG9kV2l0aEFyZ3Mi
LCBKU0M6OkJ1aWx0aW4sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxCdWls
dGluR2VuZXJhdG9yPih0ZXN0T2JqSnNCdWlsdGluTWV0aG9kV2l0aEFyZ3NDb2RlR2VuZXJhdG9y
KSwgKGludHB0cl90KSAoMykgfSB9LAogICAgIHsgImFkZEV2ZW50TGlzdGVuZXIiLCBKU0M6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lciksIChpbnRwdHJf
dCkgKDIpIH0gfSwKICAgICB7ICJyZW1vdmVFdmVudExpc3RlbmVyIiwgSlNDOjpGdW5jdGlvbiwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIpLCAoaW50cHRyX3QpICgy
KSB9IH0sCiAgICAgeyAid2l0aFNjcmlwdFN0YXRlVm9pZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0U3RhdGVWb2lkKSwgKGludHB0cl90KSAoMCkgfSB9
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5oCmluZGV4IDg1NDNlMTgyZjU4MTMxODI0NWViNTFlZGQ4YTNiYWI1ODRlNDlj
OGMuLjk3NmUwYTJlNDI3YjZkY2RhNjI1YTllOGY5OGUyZDk5YjhkMTc0YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
LmgKQEAgLTE0Myw2ICsxNDMsOCBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTVRlc3RP
YmogOiBET01PYmplY3QKIC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQpY3Vz
dG9tTWV0aG9kOwogLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3Ry
QXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CistICh2
b2lkKWpzQnVpbHRpbk1ldGhvZDsKKy0gKHZvaWQpanNCdWlsdGluTWV0aG9kV2l0aEFyZ3M6KGlu
dClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICop
b2JqQXJnOwogLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVu
ZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNh
cHR1cmU7CiAtICh2b2lkKXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0
ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNl
Q2FwdHVyZTsKIC0gKHZvaWQpd2l0aFNjcmlwdFN0YXRlVm9pZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4
IDAzZmRlMTc2ODkwNzdkYzk2ODY4YWJjZmU2ODY2YmY4YTUxNGEwYWEuLjE2ZGYyZWFiMzUyNzNh
YzdhYTBhZjllYmVjMzJlZjIyNmViMzc5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpAQCAtOTU1LDYgKzk1
NSwxOCBAQCAtICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6
KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVAogICAgIElNUEwtPmN1c3RvbU1ldGhvZFdp
dGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAorLSAodm9pZClqc0J1
aWx0aW5NZXRob2QKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+anNCdWlsdGluTWV0aG9kKCk7Cit9CisKKy0gKHZvaWQpanNCdWlsdGluTWV0
aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJn
OihET01UZXN0T2JqICopb2JqQXJnCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIElNUEwtPmpzQnVpbHRpbk1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0
ckFyZywgY29yZShvYmpBcmcpKTsKK30KKwogLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0
cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VD
YXB0dXJlOihCT09MKXVzZUNhcHR1cmUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE9iai5pZGwKaW5kZXggNWJkMDliZWFiMGE4NDEyZWM1MDc5M2IzMzFiOTA1OGFkMWE3NTIx
Ny4uYmQ2MmU5Y2EyMmI2MDUxOWQxNTAyYTU3ZTdjZTVkOWEwMzk2ZTQyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMTE3LDYg
KzExNywxMCBAQCBlbnVtIF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAiT3B0aW9u
YWxWYWx1ZTIiLCAiT3B0aW9uYWxWYWx1ZTMiIH07CiAgICAgW0N1c3RvbUJpbmRpbmddIHZvaWQg
Y3VzdG9tQmluZGluZ01ldGhvZCgpOwogICAgIFtDdXN0b21CaW5kaW5nXSB2b2lkIGN1c3RvbUJp
bmRpbmdNZXRob2RXaXRoQXJncyhsb25nIGxvbmdBcmcsIERPTVN0cmluZyBzdHJBcmcsIFRlc3RP
Ymogb2JqQXJnKTsKIAorICAgIC8vICdKU0J1aWx0aW4nIGV4dGVuZGVkIGF0dHJpYnV0ZQorICAg
IFtKU0J1aWx0aW5dIHZvaWQganNCdWlsdGluTWV0aG9kKCk7CisgICAgW0pTQnVpbHRpbl0gdm9p
ZCBqc0J1aWx0aW5NZXRob2RXaXRoQXJncyhsb25nIGxvbmdBcmcsIERPTVN0cmluZyBzdHJBcmcs
IFRlc3RPYmogb2JqQXJnKTsKKwogICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcg
dHlwZSwgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgb3B0aW9uYWwgYm9vbGVhbiB1c2VDYXB0dXJl
KTsKICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsIEV2ZW50TGlz
dGVuZXIgbGlzdGVuZXIsIG9wdGlvbmFsIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbmZvbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2dlbmVy
YXRlLWpzLWJ1aWx0aW5zIGIvU291cmNlL1dlYkNvcmUvZ2VuZXJhdGUtanMtYnVpbHRpbnMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTYyMmZkOGQ4Mjk5OTcyMmFiNmZjZThmNWQ0NDA5YmE5YWJlMzBlYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2dlbmVyYXRlLWpzLWJ1aWx0aW5zCkBAIC0wLDAg
KzEsMTQxIEBACisjIS91c3IvYmluL3B5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24g
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorIyBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisjIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitpbXBvcnQgYXJn
cGFyc2UKK2ltcG9ydCBmaWxlY21wCitpbXBvcnQgb3MKK2ltcG9ydCBzdWJwcm9jZXNzCisKK2Zy
b20gc3RyaW5nIGltcG9ydCBUZW1wbGF0ZQorCisKK3BhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50
UGFyc2VyKCkKK3BhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0X2RpcicsIGRlZmF1bHQ9Jycs
IGhlbHA9J291dHB1dCBkaXJlY3RvcnknKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbnB1dCcs
IGhlbHA9J3BhdGggdG8gaW5wdXQgSlMgZmlsZScpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXdl
YmNvcmVfZGlyJywgaGVscD0ncGF0aCB0byBXZWJDb3JlIGRpcmVjdG9yeScpCisKK2FyZ3MgPSBw
YXJzZXIucGFyc2VfYXJncygpCitmaWxlbmFtZSA9IG9zLnBhdGguc3BsaXRleHQob3MucGF0aC5i
YXNlbmFtZShhcmdzLmlucHV0KSlbMF0KKworIyBnZW5lcmF0ZSBKUyBidWlsdGlucworbmFtZXNw
YWNlID0gIldlYkNvcmUiCitwcmVmaXggPSAiV0VCQ09SRSIgKyBmaWxlbmFtZS51cHBlcigpCitv
dXRwdXQgPSBvcy5wYXRoLmpvaW4oYXJncy5vdXRwdXRfZGlyLCBmaWxlbmFtZSArICJCdWlsdGlu
cyIpCitqc2NfZ2VuZXJhdGVfYnVpbHRpbl9zY3JpcHQgPSBvcy5wYXRoLmpvaW4oYXJncy53ZWJj
b3JlX2RpciwgIi4uIiwgIkphdmFTY3JpcHRDb3JlIiwgImdlbmVyYXRlLWpzLWJ1aWx0aW5zIikK
Kworc3VicHJvY2Vzcy5jYWxsKFsicHl0aG9uIiwganNjX2dlbmVyYXRlX2J1aWx0aW5fc2NyaXB0
LCAiLS1vdXRwdXQiLCBvdXRwdXQsICItLW5hbWVzcGFjZSIsIG5hbWVzcGFjZSwgIi0tcHJlZml4
IiwgcHJlZml4LCBhcmdzLmlucHV0XSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKQorCisjIGdl
bmVyYXRlIEpTIGJ1aWx0aW5zIHdyYXBwZXIKK291dHB1dF9iYXNlID0gb3V0cHV0ICsgIldyYXBw
ZXIiCisKK2J1aWx0aW5zV3JhcHBlckhlYWRlciA9IG9wZW4ob3V0cHV0X2Jhc2UgKyAiLmgudG1w
IiwgInciKQorCitidWlsdGluc1dyYXBwZXJIZWFkZXIud3JpdGUoVGVtcGxhdGUoCisiIiIKKy8q
IEdlbmVyYXRlZCBieSBnZW5lcmF0ZS1qcy1idWlsdGlucyBkbyBub3QgaGFuZCBlZGl0LiAqLwor
CisvKgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiAke0ZpbGVuYW1l
fUJ1aWx0aW5zV3JhcHBlcl9oCisjZGVmaW5lICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVyX2gK
KworI2luY2x1ZGUgIiR7RmlsZW5hbWV9QnVpbHRpbnMuaCIKKyNpbmNsdWRlIDxieXRlY29kZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oPgorI2luY2x1ZGUgPGJ1aWx0aW5zL0J1aWx0aW5V
dGlscy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVyIDogcHJpdmF0ZSBKU0M6
OldlYWtIYW5kbGVPd25lcgoreworcHVibGljOgorICAgIGV4cGxpY2l0ICR7RmlsZW5hbWV9QnVp
bHRpbnNXcmFwcGVyKEpTQzo6Vk0qIHZtKQorICAgICAgICA6IG1fdm0oKnZtKQorICAgICAgICAk
e1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9CVUlMVElO
X05BTUVTKQorI2RlZmluZSBJTklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMobmFtZSwg
ZnVuY3Rpb25OYW1lLCBsZW5ndGgpICwgbV8jI25hbWUjI1NvdXJjZShKU0M6Om1ha2VTb3VyY2Uo
U3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoc18jI25hbWUsIGxlbmd0aCkpKQorICAgICAg
ICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOKElOSVRJQUxJWkVfQlVJTFRJTl9TT1VSQ0VfTUVN
QkVSUykKKyN1bmRlZiBJTklUSUFMSVpFX0JVSUxUSU5fU09VUkNFX01FTUJFUlMKKyAgICB7Cisg
ICAgfQorCisjZGVmaW5lIEVYUE9TRV9CVUlMVElOX0VYRUNVVEFCTEVTKG5hbWUsIGZ1bmN0aW9u
TmFtZSwgbGVuZ3RoKSBcXAorICAgIEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIG5h
bWUjI0V4ZWN1dGFibGUoKTsgXFwKKyAgICBjb25zdCBKU0M6OlNvdXJjZUNvZGUmIG5hbWUjI1Nv
dXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fIyNuYW1lIyNTb3VyY2U7IH0KKyAgICAke1ByZWZpeH1f
Rk9SRUFDSF9CVUlMVElOKEVYUE9TRV9CVUlMVElOX0VYRUNVVEFCTEVTKQorI3VuZGVmIEVYUE9T
RV9CVUlMVElOX0VYRUNVVEFCTEVTCisKKyAgICAke1ByZWZpeH1fRk9SRUFDSF9CVUlMVElOX0ZV
TkNUSU9OX05BTUUoREVDTEFSRV9CVUlMVElOX0lERU5USUZJRVJfQUNDRVNTT1IpCisKK3ByaXZh
dGU6CisgICAgSlNDOjpWTSYgbV92bTsKKworICAgICR7UHJlZml4fV9GT1JFQUNIX0JVSUxUSU5f
RlVOQ1RJT05fTkFNRShERUNMQVJFX0JVSUxUSU5fTkFNRVMpCisKKyNkZWZpbmUgREVDTEFSRV9C
VUlMVElOX1NPVVJDRV9NRU1CRVJTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKSBcXAorICAg
IEpTQzo6U291cmNlQ29kZSBtXyMjbmFtZSMjU291cmNlO1xcCisgICAgSlNDOjpXZWFrPEpTQzo6
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU+IG1fIyNuYW1lIyNFeGVjdXRhYmxlOworICAgICR7
UHJlZml4fV9GT1JFQUNIX0JVSUxUSU4oREVDTEFSRV9CVUlMVElOX1NPVVJDRV9NRU1CRVJTKQor
I3VuZGVmIERFQ0xBUkVfQlVJTFRJTl9TT1VSQ0VfTUVNQkVSUworCit9OworCisjZGVmaW5lIERF
RklORV9CVUlMVElOX0VYRUNVVEFCTEVTKG5hbWUsIGZ1bmN0aW9uTmFtZSwgbGVuZ3RoKSBcXAor
aW5saW5lIEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqICR7RmlsZW5hbWV9QnVpbHRp
bnNXcmFwcGVyOjpuYW1lIyNFeGVjdXRhYmxlKCkgXFwKK3tcXAorICAgIGlmICghbV8jI25hbWUj
I0V4ZWN1dGFibGUpXFwKKyAgICAgICAgbV8jI25hbWUjI0V4ZWN1dGFibGUgPSBKU0M6OldlYWs8
SlNDOjpVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZT4oSlNDOjpjcmVhdGVCdWlsdGluRXhlY3V0
YWJsZShtX3ZtLCBtXyMjbmFtZSMjU291cmNlLCBmdW5jdGlvbk5hbWUjI1B1YmxpY05hbWUoKSwg
c18jI25hbWUjI0NvbnN0cnVjdEFiaWxpdHkpLCB0aGlzLCAmbV8jI25hbWUjI0V4ZWN1dGFibGUp
O1xcCisgICAgcmV0dXJuIG1fIyNuYW1lIyNFeGVjdXRhYmxlLmdldCgpO1xcCit9Ciske1ByZWZp
eH1fRk9SRUFDSF9CVUlMVElOKERFRklORV9CVUlMVElOX0VYRUNVVEFCTEVTKQorI3VuZGVmIERF
RklORV9CVUlMVElOX0VYRUNVVEFCTEVTCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vICR7RmlsZW5hbWV9QnVpbHRpbnNXcmFwcGVyX2gKKyIiIikuc3Vic3RpdHV0ZShkaWN0
KEZpbGVuYW1lPWZpbGVuYW1lLCBQcmVmaXg9cHJlZml4KSkpCisKK2J1aWx0aW5zV3JhcHBlckhl
YWRlci5jbG9zZSgpCisKK2lmIChub3Qgb3MucGF0aC5leGlzdHMob3V0cHV0X2Jhc2UgKyAiLmgi
KSkgb3IgKG5vdCBmaWxlY21wLmNtcChvdXRwdXRfYmFzZSArICIuaC50bXAiLCBvdXRwdXRfYmFz
ZSArICIuaCIsIHNoYWxsb3c9RmFsc2UpKToKKyAgICBpZiAob3MucGF0aC5leGlzdHMob3V0cHV0
X2Jhc2UgKyAiLmgiKSk6CisgICAgICAgIG9zLnJlbW92ZShvdXRwdXRfYmFzZSArICIuaCIpCisg
ICAgb3MucmVuYW1lKG91dHB1dF9iYXNlICsgIi5oLnRtcCIsIG91dHB1dF9iYXNlICsgIi5oIikK
K2Vsc2U6CisgICAgb3MucmVtb3ZlKG91dHB1dF9iYXNlICsgIi5oLnRtcCIpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODQ4
NTI4YTk0OWRkMzhhYWZmMTE1YTAzYjU5ZDE2MjJkY2Y1ZWRjMi4uNzdkY2EwM2NmN2RhMjM5NGEx
NTNkODg5NTA5ZDM2OWE3MjAxNTYxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA5LTIx
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAg
W1N0cmVhbXMgQVBJXSBJbXBsZW1lbnQgUmVhZGFibGVTdHJlYW0gcGlwZVRocm91Z2gKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzU1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlYmFzZWQgdGVzdCB0aGF0
IGlzIG5vdyBwYXNzaW5nLgorICAgICAgICBBZGRpbmcgbmV3IHRlc3RzIHRvIGltcHJvdmUgcGlw
ZVRocm91Z2ggY292ZXJhZ2UuCisKKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS1w
aXBlVGhyb3VnaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0cmVhbXMvcmVhZGFi
bGUtc3RyZWFtLXBpcGVUaHJvdWdoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0cmVhbXMvcmVm
ZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQ6CisKIDIwMTUt
MDktMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByZWJhc2VsaW5lIHNldmVyYWwgVzNDIGh0bWwgdGVzdHMgb24gaU9TIGFmdGVyIHIxOTAx
MDYgYW5kIHIxOTAwODUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxl
LXN0cmVhbS1waXBlVGhyb3VnaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3Jl
YWRhYmxlLXN0cmVhbS1waXBlVGhyb3VnaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFlMDYx
Y2E5MDZkNDIwZjE1ZjEzZDdiNDUxMGNmNTNlY2QyMzZkOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRo
cm91Z2ggc2hvdWxkIHRocm93IHdoZW4gInRoaXMiIGhhcyBubyBwaXBlVG8gbWV0aG9kIAorUEFT
UyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2ggc2hvdWxkIHRocm93IHdoZW4g
cGFzc2VkIGFyZ3VtZW50IGlzIG5vdCBhbiBvYmplY3QgCitQQVNTIFJlYWRhYmxlU3RyZWFtLnBy
b3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBjYWxsZWQgZ2V0dGVycyBhcmUg
dGhyb3dpbmcgCitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91
bGQgd29yayB3aXRoIG1pc3NpbmcgcGFyYW1ldGVycyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0tcGlwZVRocm91Z2guaHRtbCBiL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I5
YTY4YjMyYmM0YjdiYmVmZmI4Y2Q1NzY3NDM3YjdhNWM0YTg0OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXBpcGVUaHJvdWdoLmh0bWwKQEAg
LTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy9n
Yy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBp
bnB1dCA9IHsKKyAgICAgICAgcmVhZGFibGU6IHsgfSwKKyAgICAgICAgd3JpdGFibGU6IHsgfQor
ICAgIH07CisgICAgdmFyIG9wdGlvbnMgPSB7IH07CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlw
ZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2guY2FsbCh1bmRlZmluZWQsIGlucHV0LCBvcHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUu
cGlwZVRocm91Z2guY2FsbChudWxsLCBpbnB1dCwgb3B0aW9ucyk7IH0pOworICAgIGFzc2VydF90
aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90
eXBlLnBpcGVUaHJvdWdoLmNhbGwoMSwgaW5wdXQsIG9wdGlvbnMpOyB9KTsKKyAgICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7IFJlYWRhYmxlU3RyZWFtLnByb3Rv
dHlwZS5waXBlVGhyb3VnaC5jYWxsKHsgInBpcGVUbyI6ICJ0ZXN0IiB9LCBpbnB1dCwgb3B0aW9u
cyk7IH0pOworfSwgJ1JlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQg
dGhyb3cgd2hlbiAidGhpcyIgaGFzIG5vIHBpcGVUbyBtZXRob2QnKTsKKwordGVzdChmdW5jdGlv
bigpIHsKKyAgICB2YXIgb3B0aW9ucyA9IHsgfTsKKyAgICB2YXIgdGhpc1ZhbHVlID0geworICAg
ICAgICBwaXBlVG86IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgp
OworICAgICAgICB9CisgICAgfTsKKworICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCBmdW5jdGlvbigpIHsgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwo
dGhpc1ZhbHVlLCBudWxsLCBvcHRpb25zKTsgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlw
ZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2guY2FsbCh0aGlzVmFsdWUsIHVuZGVmaW5lZCwgb3B0aW9ucyk7IH0pOworfSwgJ1JlYWRhYmxl
U3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBwYXNzZWQgYXJn
dW1lbnQgaXMgbm90IGFuIG9iamVjdCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZhciBv
cHRpb25zID0geyB9OworICAgIHZhciBlcnJvciA9IG5ldyBUeXBlRXJyb3IoInBvdGF0byIpOwor
CisgICAgdmFyIHRoaXNXcm9uZ1ZhbHVlID0geworICAgICAgICBnZXQgcGlwZVRvKCkgeworICAg
ICAgICAgICAgdGhyb3cgZXJyb3I7CisgICAgICAgIH0KKyAgICB9OworICAgIGFzc2VydF90aHJv
d3MoZXJyb3IsIGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91
Z2guY2FsbCh0aGlzV3JvbmdWYWx1ZSwgeyByZWFkYWJsZTogeyB9LCB3cml0YWJsZTogeyB9IH0s
IG9wdGlvbnMpOyB9KTsKKworICAgIHZhciB0aGlzVmFsdWUgPSB7CisgICAgICAgIHBpcGVUbzog
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCk7CisgICAgICAgIH0K
KyAgICB9OworICAgIHZhciB3cm9uZ0lucHV0ID0geworICAgICAgICByZWFkYWJsZTogeyB9LAor
ICAgICAgICBnZXQgd3JpdGFibGUoKSB7CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAg
ICAgfQorICAgIH07CisgICAgYXNzZXJ0X3Rocm93cyhlcnJvciwgZnVuY3Rpb24oKSB7IFJlYWRh
YmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgd3JvbmdJbnB1
dCwgb3B0aW9ucyk7IH0pOworCisgICAgdmFyIHdyb25nSW5wdXQyID0geworICAgICAgICBnZXQg
cmVhZGFibGUoKSB7CisgICAgICAgICAgICB0aHJvdyBlcnJvcjsKKyAgICAgICAgfSwKKyAgICAg
ICAgd3JpdGFibGU6IHsgfQorICAgIH07CisgICAgdmFyIHRoaXNWYWx1ZTIgPSB7CisgICAgICAg
IHBpcGVUbzogZnVuY3Rpb24oKSB7IH0KKyAgICB9OworICAgIGFzc2VydF90aHJvd3MoZXJyb3Is
IGZ1bmN0aW9uKCkgeyBSZWFkYWJsZVN0cmVhbS5wcm90b3R5cGUucGlwZVRocm91Z2guY2FsbCh0
aGlzVmFsdWUyLCB3cm9uZ0lucHV0Miwgb3B0aW9ucyk7IH0pOworfSwgJ1JlYWRhYmxlU3RyZWFt
LnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgdGhyb3cgd2hlbiBjYWxsZWQgZ2V0dGVycyBh
cmUgdGhyb3dpbmcnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgY291bnQgPSAwOwor
ICAgIHZhciB0aGlzVmFsdWUgPSB7CisgICAgICAgIHBpcGVUbzogZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICArK2NvdW50OworICAgICAgICB9CisgICAgfTsKKworICAgIFJlYWRhYmxlU3RyZWFt
LnByb3RvdHlwZS5waXBlVGhyb3VnaC5jYWxsKHRoaXNWYWx1ZSwgeyByZWFkYWJsZTogeyB9LCB3
cml0YWJsZTogeyB9IH0pOworICAgIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3Vn
aC5jYWxsKHRoaXNWYWx1ZSwgeyByZWFkYWJsZTogeyB9IH0sIHsgfSk7CisgICAgUmVhZGFibGVT
dHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoLmNhbGwodGhpc1ZhbHVlLCB7IHdyaXRhYmxlOiB7
IH0gfSwgeyB9KTsKKworICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDMpOworfSwgJ1JlYWRhYmxl
U3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCBzaG91bGQgd29yayB3aXRoIG1pc3NpbmcgcGFy
YW1ldGVycycpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMv
cmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhw
ZWN0ZWQudHh0CmluZGV4IDM3MzU3N2ViOTgyMWQyMDc1NGRlODc3MWE2MGZhZTUyMzhjOWI1ZjYu
LmIxOTdkMTY1N2IxMGY3MDAzNGYyYzJhNjQ2MTZmNWJjMmZmMjVmZDMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50
YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBD
YW4gZ2V0IHRoZSBSZWFkYWJsZVN0cmVhbVJlYWRlciBjb25zdHJ1Y3RvciBpbmRpcmVjdGx5IAog
UEFTUyBDYW4gZ2V0IHRoZSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3IgaW5k
aXJlY3RseSAKLUZBSUwgUmVhZGFibGVTdHJlYW0ucHJvdG90eXBlLnBpcGVUaHJvdWdoIHdvcmtz
IGdlbmVyaWNhbGx5IG9uIGl0cyB0aGlzIGFuZCBpdHMgYXJndW1lbnRzIENhbiBvbmx5IGNhbGwg
UmVhZGFibGVTdHJlYW0ucGlwZVRocm91Z2ggb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFt
CitQQVNTIFJlYWRhYmxlU3RyZWFtLnByb3RvdHlwZS5waXBlVGhyb3VnaCB3b3JrcyBnZW5lcmlj
YWxseSBvbiBpdHMgdGhpcyBhbmQgaXRzIGFyZ3VtZW50cyAKIFBBU1MgUmVhZGFibGVTdHJlYW1S
ZWFkZXIgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBvbiBpdHMgYXJndW1lbnQgCiBGQUlMIFJlYWRh
YmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5jbG9zZWQgZW5mb3JjZXMgYSBicmFuZCBjaGVjayB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihvYmosIGdldHRlck5hbWUpLmdldCcpCiBQQVNTIFJlYWRhYmxlU3RyZWFt
UmVhZGVyLnByb3RvdHlwZS5jYW5jZWwgZW5mb3JjZXMgYSBicmFuZCBjaGVjayAK
</data>

          </attachment>
      

    </bug>

</bugzilla>