<?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>161030</bug_id>
          
          <creation_ts>2016-08-20 00:27:49 -0700</creation_ts>
          <short_desc>Reduce the amount of custom binding code for JSXPathNSResolver</short_desc>
          <delta_ts>2020-08-07 20:56:39 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=148415</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>160926</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>annulen</cc>
    
    <cc>ashvayka</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221635</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-20 00:27:49 -0700</bug_when>
    <thetext>XPathNSResolver has a lot of custom binding code because of the need to support JSCustomXPathNSResolver.
Use the callback interface for the custom callback to reduce the amount of custom binding code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221636</commentid>
    <comment_count>1</comment_count>
      <attachid>286535</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-20 00:38:55 -0700</bug_when>
    <thetext>Created attachment 286535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221678</commentid>
    <comment_count>2</comment_count>
      <attachid>286535</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-20 18:26:21 -0700</bug_when>
    <thetext>Comment on attachment 286535
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4241
&gt; +            push(@implContent, &quot;\n&quot; . GetNativeTypeForCallbacks($interface, $function-&gt;signature-&gt;type, 1) . &quot; ${className}::${functionName}(&quot;);

This &quot;,1&quot; thing is really unclear.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4569
&gt;  sub GetNativeTypeForCallbacks
&gt;  {
&gt; -    my ($interface, $type) = @_;
&gt; +    my ($interface, $type, $isReturnType) = @_;
&gt;  
&gt;      return &quot;RefPtr&lt;SerializedScriptValue&gt;&amp;&amp;&quot; if $type eq &quot;SerializedScriptValue&quot;;
&gt;      return &quot;RefPtr&lt;DOMStringList&gt;&amp;&amp;&quot; if $type eq &quot;DOMStringList&quot;;
&gt; -    return &quot;const String&amp;&quot; if $codeGenerator-&gt;IsStringType($type);
&gt; +    return &quot;const String&amp;&quot; if !($interface-&gt;isCallback &amp;&amp; $isReturnType) &amp;&amp; $codeGenerator-&gt;IsStringType($type);
&gt;      return GetNativeType($interface, $type);
&gt;  }

How about a separate function for return type that calls GetNativeTypeForCallbacks? Then we don’t need the integer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221679</commentid>
    <comment_count>3</comment_count>
      <attachid>286535</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-20 18:29:17 -0700</bug_when>
    <thetext>Comment on attachment 286535
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4569
&gt;&gt;  }
&gt; 
&gt; How about a separate function for return type that calls GetNativeTypeForCallbacks? Then we don’t need the integer.

GetNativeReturnTypeForCallbacks and GetNativeArgumentTypeForCallbacks. One calls the other and has any special cases that need to be different.

&gt; Source/WebCore/xml/XPathCustomNSResolver.idl:35
&gt; +callback interface XPathCustomNSResolver {
&gt; +
&gt; +    [Custom] DOMString? lookupNamespaceURI(DOMString prefix);
&gt; +
&gt; +};

I suggest omitting those blank lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221760</commentid>
    <comment_count>4</comment_count>
      <attachid>286535</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-21 12:39:20 -0700</bug_when>
    <thetext>Comment on attachment 286535
Patch

Marking r- since it doesn&apos;t apply cleanly, but it generally looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221987</commentid>
    <comment_count>5</comment_count>
      <attachid>286624</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-22 14:58:15 -0700</bug_when>
    <thetext>Created attachment 286624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221996</commentid>
    <comment_count>6</comment_count>
      <attachid>286624</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-22 15:13:34 -0700</bug_when>
    <thetext>Comment on attachment 286624
Patch

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

&gt; Source/WebCore/xml/CustomXPathNSResolver.idl:31
&gt; +callback interface CustomXPathNSResolver {

It does not seem right to avoid both CustomXPathNSResolver and XPathNSResolver. Shouldn&apos;t we make XPathNSResolver a callback interface instead?

&gt; Source/WebCore/xml/XPathEvaluator.idl:26
&gt; +    [RaisesException] XPathExpression createExpression(DOMString expression, CustomXPathNSResolver resolver);

These overloads do not look right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221998</commentid>
    <comment_count>7</comment_count>
      <attachid>286624</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-22 15:16:00 -0700</bug_when>
    <thetext>Comment on attachment 286624
Patch

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

&gt;&gt; Source/WebCore/xml/CustomXPathNSResolver.idl:31
&gt;&gt; +callback interface CustomXPathNSResolver {
&gt; 
&gt; It does not seem right to avoid both CustomXPathNSResolver and XPathNSResolver. Shouldn&apos;t we make XPathNSResolver a callback interface instead?

&quot;to have both&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221999</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-22 15:19:22 -0700</bug_when>
    <thetext>See for e.g. what I did for NodeFilter in:
https://bugs.webkit.org/show_bug.cgi?id=148415</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222016</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-22 16:01:57 -0700</bug_when>
    <thetext>In the case of XMLNSResolver, there&apos;s a WebKit/C++ implementation of it as well, and author can explicitly create it.

So we need to support both the author created callback interface as well as a wrapper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222019</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-22 16:03:28 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; In the case of XMLNSResolver, there&apos;s a WebKit/C++ implementation of it as
&gt; well, and author can explicitly create it.
&gt; 
&gt; So we need to support both the author created callback interface as well as
&gt; a wrapper.

AFAIK, it is the same for NodeFilter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222021</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-22 16:03:57 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; In the case of XMLNSResolver, there&apos;s a WebKit/C++ implementation of it as
&gt; &gt; well, and author can explicitly create it.
&gt; &gt; 
&gt; &gt; So we need to support both the author created callback interface as well as
&gt; &gt; a wrapper.
&gt; 
&gt; AFAIK, it is the same for NodeFilter?

What prevents a callback interface from having a C++ implementation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222032</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-22 16:53:52 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; In the case of XMLNSResolver, there&apos;s a WebKit/C++ implementation of it as
&gt; &gt; &gt; well, and author can explicitly create it.
&gt; &gt; &gt; 
&gt; &gt; &gt; So we need to support both the author created callback interface as well as
&gt; &gt; &gt; a wrapper.
&gt; &gt; 
&gt; &gt; AFAIK, it is the same for NodeFilter?
&gt; 
&gt; What prevents a callback interface from having a C++ implementation?

Ryosuke showed me it would be a lot of work to make XMLNSResolver an actual callback interface so the split seems fine then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222034</commentid>
    <comment_count>13</comment_count>
      <attachid>286624</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-22 16:56:59 -0700</bug_when>
    <thetext>Comment on attachment 286624
Patch

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

&gt;&gt; Source/WebCore/xml/XPathEvaluator.idl:26
&gt;&gt; +    [RaisesException] XPathExpression createExpression(DOMString expression, CustomXPathNSResolver resolver);
&gt; 
&gt; These overloads do not look right.

They can’t be optional because then it would be ambiguous as to which C++ method needs to be called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222113</commentid>
    <comment_count>14</comment_count>
      <attachid>286670</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-22 22:01:30 -0700</bug_when>
    <thetext>Created attachment 286670
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222131</commentid>
    <comment_count>15</comment_count>
      <attachid>286678</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-22 22:49:03 -0700</bug_when>
    <thetext>Created attachment 286678
Fixed Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222230</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-23 08:36:37 -0700</bug_when>
    <thetext>Patch does not build on GTK and Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222587</commentid>
    <comment_count>17</comment_count>
      <attachid>286831</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-23 21:30:30 -0700</bug_when>
    <thetext>Created attachment 286831
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222591</commentid>
    <comment_count>18</comment_count>
      <attachid>286832</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-23 21:32:41 -0700</bug_when>
    <thetext>Created attachment 286832
Fixed Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224519</commentid>
    <comment_count>19</comment_count>
      <attachid>287377</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-30 00:25:48 -0700</bug_when>
    <thetext>Created attachment 287377
Fixed GTK+ build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224827</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-30 18:43:05 -0700</bug_when>
    <thetext>I don&apos;t think GTK+ build failure is related to my patch:
ccache: error: Failed to create temporary file for /home/tanty/.ccache/1/7/d1d31a71b272d0954b437e4fae1ff6-813.o.tmp.stderr: No space left on device</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224956</commentid>
    <comment_count>21</comment_count>
      <attachid>287377</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-31 09:00:45 -0700</bug_when>
    <thetext>Comment on attachment 287377
Fixed GTK+ build

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:1965
&gt; +                if ($codeGenerator-&gt;IsCallbackInterface($type)) {

This does not look right. As per the specification, callback interfaces should be handled with dictionaries below. See isDictionaryOrObjectOrCallbackInterfaceParameter check below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224958</commentid>
    <comment_count>22</comment_count>
      <attachid>287377</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-31 09:13:50 -0700</bug_when>
    <thetext>Comment on attachment 287377
Fixed GTK+ build

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4620
&gt; +    return GetNativeReturnTypeForCallbacks($interface, $type);

It seems weird to call GetNativeReturnTypeForCallbacks from GetNativeArgumentTypeForCallbacks.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4627
&gt; +    return &quot;RefPtr&lt;SerializedScriptValue&gt;&amp;&amp;&quot; if $type eq &quot;SerializedScriptValue&quot;;

I don&apos;t think we would have a RefPtr&lt;&gt;&amp;&amp; as a return value, but rather a RefPtr&lt;&gt;

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4628
&gt; +    return &quot;const String&amp;&quot; if !$interface-&gt;isCallback &amp;&amp; $codeGenerator-&gt;IsStringType($type);

Could you clarify why we need to distinguish callback interfaces here? Maybe it would be simpler to always return a String and only use &quot;const String&amp;&quot; for arguments.

&gt; Source/WebCore/xml/CustomXPathNSResolver.idl:33
&gt; +callback interface CustomXPathNSResolver {

I think we should find a clearer naming for this interface. I suggest XPathNSResolverCallback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224959</commentid>
    <comment_count>23</comment_count>
      <attachid>287377</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-31 09:19:06 -0700</bug_when>
    <thetext>Comment on attachment 287377
Fixed GTK+ build

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

&gt; Source/WebCore/xml/CustomXPathNSResolver.h:38
&gt; +class CustomXPathNSResolver : public XPathNSResolver {

Something is weird here. Why do we need this class? JSCustomXPathNSResolver is already a subclass of XPathNSResolver AFAIK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224990</commentid>
    <comment_count>24</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-31 10:34:31 -0700</bug_when>
    <thetext>I&apos;ve spent way too much time on this patch already. Not gonna work on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225932</commentid>
    <comment_count>25</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-09-02 13:49:00 -0700</bug_when>
    <thetext>This should not be closed, it is still something that needs to be done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678374</commentid>
    <comment_count>26</comment_count>
      <attachid>406107</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-06 13:16:04 -0700</bug_when>
    <thetext>Created attachment 406107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678388</commentid>
    <comment_count>27</comment_count>
      <attachid>406107</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-06 14:02:16 -0700</bug_when>
    <thetext>Comment on attachment 406107
Patch

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

&gt; Source/WebCore/bindings/js/JSCallbackData.cpp:73
&gt; +            returnedException = JSC::Exception::create(vm, createTypeError(lexicalGlobalObject, makeString(&quot;&apos;&quot;, String(functionName.uid()), &quot;&apos; property of callback interface should be callable&quot;)));

I’d expect you could use *functionName.uid() rather than String(functionName.uid()) and it might even be slightly more efficient. If not, then fine to land like this, but someone should probably fix makeString so it can take a StringImpl* or StringImpl&amp;.

&gt; Source/WebCore/bindings/js/JSDOMConvertXPathNSResolver.h:46
&gt; +        JSC::JSObject* object = asObject(value);

auto?

&gt; Source/WebCore/xml/CustomXPathNSResolver.h:37
&gt; +    using ActiveDOMCallback::ActiveDOMCallback;

I’m not entirely sure what this does.

Since CustomXPathNSResolver is an abstract base class, the constructor doesn’t need to be public, so if this is a constructor it can be protected instead.

&gt; Source/WebCore/xml/CustomXPathNSResolver.h:41
&gt; +    virtual CallbackResult&lt;String&gt; lookupNamespaceURIForBindings(const String&amp; prefix) = 0;
&gt; +
&gt; +    String lookupNamespaceURI(const String&amp; prefix);

Since lookup is a noun, I suggest considering naming these lookUp, although that might be unpleasantly confusing if it doesn’t match the casing of the thing in the DOM.

&gt; Source/WebCore/xml/CustomXPathNSResolver.idl:26
&gt; +// JSCustomXPathNSResolvers are always temporary so using a Strong reference is safe here.

This comment would be better if it said something like &quot;so IsWeakCallback property is not needed here&quot;. I was looking at the file to see where it said &quot;Strong&quot; and had to read the change log to figure it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678533</commentid>
    <comment_count>28</comment_count>
      <attachid>406158</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-07 00:28:01 -0700</bug_when>
    <thetext>Created attachment 406158
Patch

Fix tests and (hopefully) GTK build, use `auto`, improve note on [IsWeakCallback].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678686</commentid>
    <comment_count>29</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-07 12:13:04 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #27)

Thank you for review, Darin!

&gt; I’d expect you could use *functionName.uid() rather than
&gt; String(functionName.uid()) and it might even be slightly more efficient.

*functionName.uid() didn&apos;t compile; other occurrences of makeString() with a property key seem to also use String().

&gt; If not, then fine to land like this, but someone should probably fix makeString
&gt; so it can take a StringImpl* or StringImpl&amp;.

That would be a great improvement.

&gt; I’m not entirely sure what this does.
&gt; 
&gt; Since CustomXPathNSResolver is an abstract base class, the constructor
&gt; doesn’t need to be public, so if this is a constructor it can be protected
&gt; instead.

I&apos;ve checked other DOM callbacks, and it seems like a convention.

&gt; Since lookup is a noun, I suggest considering naming these lookUp, although
&gt; that might be unpleasantly confusing if it doesn’t match the casing of the
&gt; thing in the DOM.

Unfortunately, &quot;lookUp&quot; doesn&apos;t match DOM casing that is pretty spread over several classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678688</commentid>
    <comment_count>30</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-07 12:28:01 -0700</bug_when>
    <thetext>Committed r265387: &lt;https://trac.webkit.org/changeset/265387&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406158.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678689</commentid>
    <comment_count>31</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-07 12:28:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/66694615&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286535</attachid>
            <date>2016-08-20 00:38:55 -0700</date>
            <delta_ts>2016-08-22 14:58:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161030-20160820003703.patch</filename>
            <type>text/plain</type>
            <size>50738</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDYyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE2LTA4LTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1vdW50IG9m
IGN1c3RvbSBiaW5kaW5nIGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlZCBKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlciBieSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlciB3aGljaCByZWxpZXMgb24gY2Fs
bGJhY2sgaW50ZXJmYWNlIHRvIGdlbmVyYXRlIG11Y2ggb2YKKyAgICAgICAgdGhlIGJpbmRpbmcg
Y29kZSByYXRoZXIgdGhhbiBlbnRpcmVseSByZWx5aW5nIG9uIGN1c3RvbSBiaW5kaW5nIGNvZGUu
IFdlIGNhbiByZW1vdmUgdGhlIGN1c3RvbSBiaW5kaW5nIGNvZGUgZW50aXJlbHkKKyAgICAgICAg
b25jZSB0aGUgY29kZSBnZW5lcmF0b3IgZnVsbHkgc3VwcG9ydHMgbm9uLUZ1bmN0aW9uT25seSBj
YWxsYmFjayBpbnRlcmZhY2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGV4aXN0aW5n
IHRlc3RzIGluIGZhc3QveHBhdGggY292ZXJzIHRoaXMgY2hhbmdlLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNYUGF0aEN1c3RvbU5TUmVzb2x2ZXJDdXN0b20uY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJ
KTogUmV3cml0dGVuIHRvIG1ha2UgdXNlIG9mIEpTQ2FsbGJhY2tEYXRhU3Ryb25nLgorICAgICAg
ICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbk9yQ29uc3RydWN0b3IpOiBDYWxsYmFj
ayBpbnRlcmZhY2VzIGRvbid0IGhhdmUgY2xhc3MgaW5mby4gT21pdCB0aGF0IGNoZWNrLgorICAg
ICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6IEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3Mg
bm93IHRha2VzIHRoZSB0aGlyZCBhcmd1bWVudCB3aGljaCBzcGVjaWZpZXMgd2hldGhlciB0aGUg
dHlwZSBpcworICAgICAgICBmb3IgYSByZXR1cm4gdmFsdWUgb3Igbm90IHNpbmNlIHdlIG5lZWQg
dG8gcmV0dXJuIFN0cmluZyBpbnN0ZWFkIG9mIGNvbnN0IFN0cmluZyYgd2hlbiBhIEpTIGNhbGxi
YWNrIHJldHVybnMgYSBzdHJpbmcuCisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50
YXRpb24pOiBEaXR0by4KKyAgICAgICAgKEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MpOiBEaXR0
by4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBBZGRlZCBvdmVybG9hZGluZyBkZWZpbml0
aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3Vz
dG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvWFBhdGhDdXN0b21OU1Jlc29sdmVyLmg6IEFk
ZGVkLgorICAgICAgICAqIHhtbC9YUGF0aEN1c3RvbU5TUmVzb2x2ZXIuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsOiBBZGRlZCBvdmVybG9hZGluZyBkZWZpbml0
aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3Vz
dG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvWFBhdGhOU1Jlc29sdmVyLmlkbDogUmVtb3Zl
ZCBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0IHNpbmNlIGl0IG5vIGxvbmdlciB1c2VzIGEgY3VzdG9t
IHRvV3JhcHBlZCBmdW5jdGlvbi4KKwogMjAxNi0wOC0xOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgTGQgd2FybnMgb2Ygbm9uLWV4aXN0ZW50IFByaXZhdGVG
cmFtZXdvcmtzIGRpcmVjdG9yeSB3aGVuIGJ1aWxkaW5nIFdlYktpdCB3aXRoIHRoZSBwdWJsaWMg
aU9TIDkuMyBTREsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMDQ2MjgpCisr
KyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjU3LDYg
KzY1Nyw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgeG1sL1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwKICAgICB4bWwvWE1MSHR0cFJlcXVlc3RVcGxvYWQuaWRs
CiAgICAgeG1sL1hNTFNlcmlhbGl6ZXIuaWRsCisgICAgeG1sL1hQYXRoQ3VzdG9tTlNSZXNvbHZl
ci5pZGwKICAgICB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsCiAgICAgeG1sL1hQYXRoRXhjZXB0aW9u
LmlkbAogICAgIHhtbC9YUGF0aEV4cHJlc3Npb24uaWRsCkBAIC0xMTQwLDcgKzExNDEsNiBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50c1JlZ2lz
dHJ5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRXZlbnRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAotICAg
IGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtMTI1NSw3ICsxMjU1
LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFs
U2NvcGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdz
L2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhD
dXN0b21OU1Jlc29sdmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIwNDYyOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTcxMSw2ICs3MTEs
NyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS94bWwvWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvWE1MSHR0cFJlcXVlc3RV
cGxvYWQuaWRsIFwKICAgICAkKFdlYkNvcmUpL3htbC9YTUxTZXJpYWxpemVyLmlkbCBcCisgICAg
JChXZWJDb3JlKS94bWwvWFBhdGhDdXN0b21OU1Jlc29sdmVyLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL3htbC9YUGF0aEV4Y2Vw
dGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkveG1sL1hQYXRoRXhwcmVzc2lvbi5pZGwgXApJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjA0NjI4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yOTUyLDcgKzI5NTIsNiBAQAogCQk4
MzVEMzYzNzE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVEMzYzNjE5RkY2MTkzMDA0
QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmggKi87IH07CiAJCTgzNjc1ODdFMUM1NkU5OUIw
MDhBMTA4NyAvKiBKU0hUTUxEYXRhRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZBOTFDNTZFOTNFMDBGM0YwRTMgLyogSlNIVE1M
RGF0YUVsZW1lbnQuY3BwICovOyB9OwogCQk4MzY3NTg3RjFDNTZFOTlCMDA4QTEwODcgLyogSlNI
VE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzNEI4NkE4MUM1NkU5M0UwMEYzRjBFMyAvKiBKU0hUTUxEYXRhRWxlbWVudC5oICov
OyB9OwotCQk4MzZDMTQ0MzFDREVBRkQ4MDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2
QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLzsg
fTsKIAkJODM2REFBMDYxQ0VBQjgwRDAwQTJCNzA3IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2REFB
MDUxQ0VBQjdDRDAwQTJCNzA3IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oICovOyB9Owog
CQk4MzZGQkNFQTE3OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2RkJDRTkx
NzhDMTEzMjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCAqLzsgfTsKIAkJ
ODM2RkJDRUMxNzhDMTE3RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVydHkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2RkJDRUIxNzhDMTE3
RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVydHkuY3BwICovOyB9OwpAQCAtMzk0MCwxMSAr
MzkzOSwxNCBAQAogCQk5QjZDNDE1MzEzNDQ5NDkwMDAwODVCNjIgLyogU3RyaW5nV2l0aERpcmVj
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI2
QzQxNTIxMzQ0OTQ5MDAwMDg1QjYyIC8qIFN0cmluZ1dpdGhEaXJlY3Rpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjcxNEUyMDFDOTExNjY5
MDBBQzBFOTIgLyogRXZlbnRQYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlCNzE0RTFFMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguY3Bw
ICovOyB9OwogCQk5QjcxNEUyMTFDOTExNjY5MDBBQzBFOTIgLyogRXZlbnRQYXRoLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjcxNEUxRjFDOTExNjY5
MDBBQzBFOTIgLyogRXZlbnRQYXRoLmggKi87IH07CisJCTlCODQ3NUEyMUQ2ODJDMEIwMDMyQkEx
QSAvKiBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjYxNzU0MTFENjgyQUNBMDA5OTlBQTkgLyogSlNYUGF0
aEN1c3RvbU5TUmVzb2x2ZXIuY3BwICovOyB9OworCQk5Qjg0NzVBMzFENjgyQzEyMDAzMkJBMUEg
LyogSlNYUGF0aEN1c3RvbU5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCNjE3NTQyMUQ2ODJBQ0EwMDk5OUFBOSAvKiBKU1hQYXRoQ3Vz
dG9tTlNSZXNvbHZlci5oICovOyB9OwogCQk5QkEyNzNGNDE3MjIwNkJCMDA5N0NFNDcgLyogTG9n
aWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUJBMjczRjMxNzIyMDZCQjAwOTdDRTQ3IC8qIExvZ2ljYWxTZWxl
Y3Rpb25PZmZzZXRDYWNoZXMuaCAqLzsgfTsKIAkJOUJBQjZDNkMxMjU1MDYzMTAwMTYyNkQ0IC8q
IEVkaXRpbmdTdHlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUJBQjZDNkExMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdTdHlsZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCQUI2QzZEMTI1NTA2
MzEwMDE2MjZENCAvKiBFZGl0aW5nU3R5bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUJBQjZDNkIxMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdT
dHlsZS5jcHAgKi87IH07CiAJCTlCQUYzQjI0MTJDMUEzOTgwMDAxNEJGMSAvKiBXcml0aW5nRGly
ZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QkFGM0IyMzEyQzFBMzk4MDAwMTRCRjEgLyogV3JpdGluZ0RpcmVjdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCQjczNzY1MUI0MUMwMzUw
MEFFMTNFQiAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCQjczNzY0MUI0MUMwMzUwMEFFMTNFQiAvKiBOU0F0
dHJpYnV0ZWRTdHJpbmdTUEkuaCAqLzsgfTsKKwkJOUJDMDQ4NEMxRDY4MTAyMDAwQzg4NzQ5IC8q
IFhQYXRoQ3VzdG9tTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUJDMDQ4NEExRDY4MTAyMDAwQzg4NzQ5IC8qIFhQYXRoQ3VzdG9tTlNS
ZXNvbHZlci5oICovOyB9OwogCQk5QkM1RjlFMDFENUFBRjZCMDAyQjc0OUQgLyogSlNDdXN0b21F
bGVtZW50c1JlZ2lzdHJ5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlCQzVGOURGMUQ1QUFGNkEwMDJCNzQ5RCAvKiBKU0N1c3RvbUVsZW1l
bnRzUmVnaXN0cnlDdXN0b20uY3BwICovOyB9OwogCQk5QkM2QzIxQjEzQ0NDOTdCMDA4RTAzMzcg
LyogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCQzZDMjE5MTNDQ0M5N0IwMDhFMDMzNyAvKiBIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTlCQzZDMjFDMTNDQ0M5N0IwMDhFMDMzNyAvKiBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QkM2QzIxQTEzQ0NDOTdCMDA4RTAzMzcgLyogSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwICovOyB9OwpAQCAtNjI0NSw4ICs2MjQ3LDcgQEAKIAkJRTBGRUYzNzJCNDdDNTNF
QUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTBGRUYzNzFCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRT
b3VyY2UuY3BwICovOyB9OwogCQlFMTA3NDAwRDBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdl
Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTA3NDAwQjBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5jcHAgKi87IH07
CiAJCUUxMDc0MDBFMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA3NDAwQzBFNzdCREMw
MDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5oICovOyB9OwotCQlFMTBCOTM3QzBCNzNDMDBB
MDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5MzdCMEI3M0MwMEEwMDNFRDg5MCAvKiBK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovOyB9OwotCQlFMTBCOTNDMzBCNzNDMjkxMDAzRUQ4
OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLzsgfTsKKwkJRTEwQjkzQzMwQjczQzI5MTAwM0VEODkw
IC8qIEpTWFBhdGhDdXN0b21OU1Jlc29sdmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBK
U1hQYXRoQ3VzdG9tTlNSZXNvbHZlckN1c3RvbS5jcHAgKi87IH07CiAJCUUxMEI5QjZDMEI3NDc1
OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5QjZBMEI3NDc1OTkwMDNFRDg5MCAvKiBO
YXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCAqLzsgfTsKIAkJRTEwQjlCNkQwQjc0NzU5OTAwM0VEODkw
IC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOUI2QjBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBh
dGhOU1Jlc29sdmVyLmNwcCAqLzsgfTsKIAkJRTEwQjlDQ0MwQjc0N0E0NDAwM0VEODkwIC8qIERP
TUN1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTEwQjlDQ0EwQjc0N0E0NDAwM0VEODkwIC8qIERPTUN1c3RvbVhQYXRo
TlNSZXNvbHZlci5oICovOyB9OwpAQCAtMTA0MDgsNyArMTA0MDksNiBAQAogCQk4MzVEMzYzNjE5
RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0eWxlQnVpbGRlckN1c3RvbS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4MzVGOEIyNjFEMkQ5MEJBMDBFNDA4RUMgLyogU2xvdGFibGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNsb3RhYmxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODM2OUU1OEYxQUZERDAzMDAwODdERjY4IC8qIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9k
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29s
dmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2
REFBMDUxQ0VBQjdDRDAwQTJCNzA3IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1IC8q
IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODM2RkJDRUIxNzhDMTE3RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVy
dHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTUyNCw2ICsxMTUy
NCw4IEBACiAJCTlCNTVFRUU4MUIzRTg4OTgwMDUzNDJCQyAvKiBFZGl0b3JDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVkaXRvckNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjU2QzlBODFDODkzMTI4MDBDNDU2REYgLyogTGlm
ZWN5Y2xlQ2FsbGJhY2tRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaWZlY3ljbGVDYWxsYmFja1F1
ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNTZDOUE5MUM4OTMyOUEwMEM0
NTZERiAvKiBMaWZlY3ljbGVDYWxsYmFja1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExpZmVjeWNsZUNhbGxiYWNrUXVldWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5QjYxNzU0MTFENjgyQUNBMDA5OTlBQTkgLyogSlNYUGF0aEN1c3Rv
bU5TUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNY
UGF0aEN1c3RvbU5TUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
QjYxNzU0MjFENjgyQUNBMDA5OTlBQTkgLyogSlNYUGF0aEN1c3RvbU5TUmVzb2x2ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNYUGF0aEN1c3RvbU5TUmVzb2x2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI2OUQzQjExQjk4RkYwQTAwRTM1MTJCIC8q
IEhUTUxTbG90RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFNsb3RFbGVt
ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI2OUQzQjIxQjk4RkZFOTAw
RTM1MTJCIC8qIEhUTUxTbG90RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVE1MU2xvdEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5QjY5RDNCMzFCOThGRkU5MDBFMzUxMkIgLyogSFRNTFNsb3RFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxTbG90RWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTE1MzksNiArMTE1NDEsOCBAQAogCQk5QkFCNkM2QjEyNTUw
NjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEVkaXRpbmdTdHlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCQUYzQjIzMTJDMUEzOTgwMDAxNEJGMSAvKiBXcml0aW5nRGlyZWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRpbmdEaXJlY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJCNzM3NjQxQjQxQzAzNTAwQUUxM0VCIC8qIE5TQXR0cmli
dXRlZFN0cmluZ1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0F0dHJp
YnV0ZWRTdHJpbmdTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUJDMDQ4NDcx
RDY4MEY5RTAwQzg4NzQ5IC8qIFhQYXRoQ3VzdG9tTlNSZXNvbHZlci5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gWFBhdGhDdXN0b21OU1Jlc29sdmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUJDMDQ4NEExRDY4MTAyMDAwQzg4NzQ5IC8qIFhQYXRoQ3VzdG9tTlNSZXNv
bHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUGF0aEN1c3RvbU5TUmVz
b2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJDNUY5REUxRDVBQUQ1RDAw
MkI3NDlEIC8qIEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5QkM1RjlERjFENUFBRjZBMDAyQjc0OUQgLyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9t
RWxlbWVudHNSZWdpc3RyeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCQzZDMjE5MTNDQ0M5N0IwMDhFMDMzNyAvKiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQxNzUsOCArMTQxNzksNyBA
QAogCQlFMEZFRjM3MUI0N0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0V2ZW50U291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNzQwMEIwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVz
c2FnZUNoYW5uZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
ZXNzYWdlQ2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMDc0MDBD
MEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTTWVzc2FnZUNoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRTEwQjkzN0IwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxMEI5M0MyMEI3M0MyOTEw
MDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU1hQYXRo
Q3VzdG9tTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxMEI5QjZBMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5T
UmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlWFBhdGhO
U1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMEI5QjZCMEI3NDc1
OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwQjlDQ0EwQjc0N0E0NDAwM0VEODkwIC8qIERPTUN1c3Rv
bVhQYXRoTlNSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01D
dXN0b21YUGF0aE5TUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIw
NzUxLDYgKzIwNzU0LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBQ0U1M0REMEE4RDE4ODEw
MDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5jcHAgKi8sCiAJCQkJMUFDRTUzREUwQThEMTg4MTAwMjI5
NDdEIC8qIEpTRE9NUGFyc2VyLmggKi8sCisJCQkJOUI2MTc1NDExRDY4MkFDQTAwOTk5QUE5IC8q
IEpTWFBhdGhDdXN0b21OU1Jlc29sdmVyLmNwcCAqLywKKwkJCQk5QjYxNzU0MjFENjgyQUNBMDA5
OTlBQTkgLyogSlNYUGF0aEN1c3RvbU5TUmVzb2x2ZXIuaCAqLywKIAkJCQlCQzM0OEJEMTBEQjdG
ODA0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdC5jcHAgKi8sCiAJCQkJQkMzNDhCRDIwREI3
RjgwNDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3QuaCAqLywKIAkJCQk4M0QzNUFFRjFDNzE4
RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmNwcCAqLywKQEAgLTIy
MDU3LDcgKzIyMDYyLDYgQEAKIAkJCQlFMUMzNkQzMjBFQjBBMDk0MDA3NDEwQkMgLyogSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwICovLAogCQkJCUUxQzM2RDMzMEVCMEEwOTQwMDc0MTBCQyAv
KiBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5oICovLAogCQkJCTgzQTRBOUY4MUNFN0ZEN0UwMDcw
OUIwMCAvKiBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCAqLywKLQkJCQk4MzZDMTQ0MjFDREVBRkNB
MDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovLAogCQkJCTQxOEMzOTVF
MUM4RjBBQUIwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAq
LywKIAkJCQk0MThDMzk1RjFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5oICovLAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVs
ZWRBY3Rpb24uY3BwICovLApAQCAtMjIyNjgsNiArMjIyNzIsNyBAQAogCQkJCUUxQ0E1Q0JCMEU4
Q0RDQUYwMEU4RUY5MCAvKiBKU1dvcmtlckN1c3RvbS5jcHAgKi8sCiAJCQkJRTE4MjU4QUIwRUYz
Q0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovLAogCQkJCUJD
MzQ4QkJEMERCN0Y1MzEwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCAqLywK
KwkJCQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNYUGF0aEN1c3RvbU5TUmVzb2x2ZXJD
dXN0b20uY3BwICovLAogCQkJCUExQzdGQUExMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0VGRTFFNDBEQ0E1RjMzMDA3MzkyMTkgLyogSlNYU0xU
UHJvY2Vzc29yQ3VzdG9tLmNwcCAqLywKIAkJCSk7CkBAIC0yMjU1Nyw4ICsyMjU2Miw2IEBACiAJ
CQkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNwcCAqLywKIAkJ
CQkxNDQ5RTI0QTEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCAqLywKIAkJCQk1
MUVDOTI1RDBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxi
YWNrLmNwcCAqLywKLQkJCQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuY3BwICovLAotCQkJCUUxMEI5MzdCMEI3M0MwMEEwMDNFRDg5MCAvKiBKU0N1
c3RvbVhQYXRoTlNSZXNvbHZlci5oICovLAogCQkJCTkzQjcwRDREMDlFQjBDN0MwMDlEODQ2OCAv
KiBKU0V2ZW50TGlzdGVuZXIuY3BwICovLAogCQkJCTkzQjcwRDRFMDlFQjBDN0MwMDlEODQ2OCAv
KiBKU0V2ZW50TGlzdGVuZXIuaCAqLywKIAkJCQk5MzVGNDU0MDBGN0MzQjVGMDBEN0MxRkIgLyog
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgKi8sCkBAIC0yMzIxMSw2ICsyMzIxNCw4IEBACiAJCQkJ
MUFCN0ZDNTQwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoTlNSZXNvbHZlci5jcHAgKi8sCiAJCQkJ
MUFCN0ZDNTUwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoTlNSZXNvbHZlci5oICovLAogCQkJCTFB
QjdGQzU2MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aE5TUmVzb2x2ZXIuaWRsICovLAorCQkJCTlC
QzA0ODQ3MUQ2ODBGOUUwMEM4ODc0OSAvKiBYUGF0aEN1c3RvbU5TUmVzb2x2ZXIuaWRsICovLAor
CQkJCTlCQzA0ODRBMUQ2ODEwMjAwMEM4ODc0OSAvKiBYUGF0aEN1c3RvbU5TUmVzb2x2ZXIuaCAq
LywKIAkJCQkxQUI3RkM1NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhQYXJzZXIuY3BwICovLAog
CQkJCTFBQjdGQzU4MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFBhcnNlci5oICovLAogCQkJCTFB
QjdGQzU5MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFBhdGguY3BwICovLApAQCAtMjYyMTIsNyAr
MjYyMTcsNiBAQAogCQkJCUE4RDA1RkFDMEEyM0IzMEYwMDVFNzIwMyAvKiBKU0NTU1ZhbHVlTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJENEU5MTcxQzQ2Mjg3MjAwNTA2NUJDIC8qIEpTQ3Vz
dG9tRWxlbWVudEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3NzhCODAxMTVBNTgx
QTAwQjVEMzcyIC8qIEpTQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxMEI5MzdD
MEI3M0MwMEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFFODJGOTAwQ0FBRkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUI1OURENjk5MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJFNjEwMzlFMThBOUQ2NUEwMERENTBENyAvKiBKU0Rh
dGFDdWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjY1NzEsNiArMjY1NzUsNyBAQAogCQkJCUIyRkEz
RDhGMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyRkEzRDkxMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0ZFU3Bv
dExpZ2h0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEOTMwQUI3NUE2RjAwMEU1
QUM0IC8qIEpTU1ZHRkVUaWxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUJDMDQ4NEMx
RDY4MTAyMDAwQzg4NzQ5IC8qIFhQYXRoQ3VzdG9tTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjJGQTNEOTUwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEOTcwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZH
RmlsdGVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3QjI4MjYwQ0VGMEMwNzAwRDM5
RDU0IC8qIEpTU1ZHRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc5MzcsNiArMjc5
NDIsNyBAQAogCQkJCUIyMjI3QTlBMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RURFMTlGMTJBNTBCOEUwMEI5NTc5NyAv
KiBTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5RTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHUmVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTlCODQ3NUEzMUQ2ODJDMTIw
MDMyQkExQSAvKiBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTk3QjE4MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QUEwMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSZW5kZXJpbmdJbnRl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3NDc5MEU4MzY2RTIwMEU3Rjk3NSAvKiBTVkdS
ZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTQ4Miw2ICsyOTQ4OCw3IEBACiAJCQkJ
QjJDM0RBNjIwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYWNoZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQzM5NjlEMDFCNzQyMTFFMDAyQkNGQTcgLyogRm9udENhY2hlQ29yZVRleHQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzcyN0RGRDUxNDJBQUU0NTAwRDQ0OUNCIC8qIEZvbnRDYWNoZUlP
Uy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTlCODQ3NUEyMUQ2ODJDMEIwMDMyQkExQSAvKiBKU1hQ
YXRoQ3VzdG9tTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM3QzBEMDBB
NUMxMDAzMDA3NEQgLyogRm9udENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RB
NjAwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUIyQUZGQzgwMEQwMEE1QzEwMDMwMDc0RCAvKiBGb250Q2FzY2FkZUNvY29hLm1tIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTkyNiw3ICsyOTkzMyw3IEBACiAJCQkJRTQ3NzhCN0YxMTVBNTgxQTAwQjVE
MzcyIC8qIEpTQ3VzdG9tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREVDMjk3NjExQjRG
MkY4RDAwNUY1OTQ1IC8qIEpTQ3VzdG9tRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFFQzkyNjUwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JD
YWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMTBCOTNDMzBCNzNDMjkxMDAzRUQ4OTAg
LyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTEwQjkz
QzMwQjczQzI5MTAwM0VEODkwIC8qIEpTWFBhdGhDdXN0b21OU1Jlc29sdmVyQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBRTgyRjhGMENBQUZBOUQwMDIyMzdBRSAvKiBKU0RhdGFiYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1OURENjlBMTE5MDI5RTUwMDdFOTY4NCAvKiBKU0Rh
dGFiYXNlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkU2MTAzOUQxOEE5RDY1MjAw
REQ1MEQ3IC8qIEpTRGF0YUN1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNTU0LDcgKzMwNTYx
LDYgQEAKIAkJCQlCQzYwREI0OTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc2MkM3NTBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0
aEV4cHJlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzcwQTA3NEYyNjAwOTg5
RjVCIC8qIEpTWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTgzNkMxNDQz
MUNERUFGRDgwMDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxMkEyNTNEQjFDOEZGN0RDMDBDMjIyOTUgLyogS2V5ZnJhbWVFZmZlY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzkwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhS
ZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFDN0ZBQTIxMzNBNUQzNTAwRDY3MzJEIC8q
IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3Bw
CShyZXZpc2lvbiAyMDQ2MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMDggKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxMyBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBv
cC5jb20pCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKLQot
I2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1
ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKLSNpbmNsdWRlICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFn
ZUNvbnNvbGVDbGllbnQuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUg
PHJ1bnRpbWUvSlNMb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZi5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLVJlZlB0cjxKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlcj4gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgSlNPYmplY3QqIHJlc29sdmVyT2JqZWN0ID0g
dmFsdWUuZ2V0T2JqZWN0KCk7Ci0gICAgaWYgKCFyZXNvbHZlck9iamVjdCkgewotICAgICAgICBz
ZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9Ci0KLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcihleGVjLCByZXNvbHZlck9iamVjdCwgYXNKU0RPTVdpbmRvdyhleGVjLT52bUVu
dHJ5R2xvYmFsT2JqZWN0KCkpKSk7Ci19Ci0KLUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpKU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBjdXN0b21SZXNv
bHZlciwgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCkKLSAgICA6IG1fY3VzdG9tUmVzb2x2ZXIo
ZXhlYy0+dm0oKSwgY3VzdG9tUmVzb2x2ZXIpCi0gICAgLCBtX2dsb2JhbE9iamVjdChleGVjLT52
bSgpLCBnbG9iYWxPYmplY3QpCi17Ci19Ci0KLUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjp+SlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIoKQotewotfQotCi1TdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKLXsKLSAgICBB
U1NFUlQobV9jdXN0b21SZXNvbHZlcik7Ci0KLSAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdp
bmRvd0Jhc2U6OmNvbW1vblZNKCkpOwotCi0gICAgRXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgCi0gICAgSlNWYWx1ZSBmdW5jdGlvbiA9IG1f
Y3VzdG9tUmVzb2x2ZXItPmdldChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJs
b29rdXBOYW1lc3BhY2VVUkkiKSk7Ci0gICAgQ2FsbERhdGEgY2FsbERhdGE7Ci0gICAgQ2FsbFR5
cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOwotICAgIGlmIChj
YWxsVHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkgewotICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9t
UmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIuZ2V0
KCksIGNhbGxEYXRhKTsKLSAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7
Ci0gICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIGNvbnNvbGUgPSBtX2dsb2JhbE9i
amVjdC0+d3JhcHBlZCgpLmNvbnNvbGUoKSkKLSAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVy
YWwoIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1l
dGhvZC4iKSk7Ci0gICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOwotICAgIH0KLQotICAgIFJlZjxK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nV2l0aENhY2hl
KGV4ZWMsIHByZWZpeCkpOwotCi0gICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBleGNlcHRpb247Ci0g
ICAgSlNWYWx1ZSByZXR2YWwgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgZnVu
Y3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgbV9jdXN0b21SZXNvbHZlci5nZXQoKSwgYXJncywg
ZXhjZXB0aW9uKTsKLQotICAgIFN0cmluZyByZXN1bHQ7Ci0gICAgaWYgKGV4Y2VwdGlvbikKLSAg
ICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7Ci0gICAgZWxzZSB7Ci0gICAg
ICAgIGlmICghcmV0dmFsLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgICAgICByZXN1bHQg
PSByZXR2YWwudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwotICAgIH0KLQotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMg
b246IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNw
cApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAkocmV2aXNpb24g
MjA0NjI4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDcgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlcl9oCi0jZGVmaW5lIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyX2gKLQotI2luY2x1ZGUg
IlhQYXRoTlNSZXNvbHZlci5oIgotI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+Ci0jaW5jbHVkZSA8
aGVhcC9TdHJvbmdJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+Ci0j
aW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
LSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotICAgIGNsYXNzIEV4
ZWNTdGF0ZTsKLSAgICBjbGFzcyBKU09iamVjdDsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci0gICAgY2xhc3MgRnJhbWU7Ci0gICAgY2xhc3MgSlNET01XaW5kb3c7Ci0KLSAgICBjbGFzcyBK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlciA6IHB1YmxpYyBYUGF0aE5TUmVzb2x2ZXIgewotICAgIHB1
YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZlB0cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gY3Jl
YXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsKLSAgICAgICAgCi0gICAgICAgIHZp
cnR1YWwgfkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKCk7Ci0KLSAgICAgICAgdmlydHVhbCBTdHJp
bmcgbG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KTsKLQotICAgIHByaXZh
dGU6Ci0gICAgICAgIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTRE9NV2luZG93Kik7Ci0KLSAgICAgICAgLy8gSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXJzIGFyZSBhbHdheXMgdGVtcG9yYXJ5IHNvIHVzaW5nIGEgU3Ryb25nIHJlZmVyZW5j
ZSBpcyBzYWZlIGhlcmUuCi0gICAgICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+IG1fY3Vz
dG9tUmVzb2x2ZXI7Ci0gICAgICAgIEpTQzo6U3Ryb25nPEpTRE9NV2luZG93PiBtX2dsb2JhbE9i
amVjdDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBKU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcl9oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRl
ZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aEN1
c3RvbU5TUmVzb2x2ZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTWFBhdGhDdXN0b21OU1Jlc29sdmVyQ3VzdG9tLmNwcAkocmV2aXNpb24gMjA0
NjI4KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHA6MjA0NjI4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aEN1
c3RvbU5TUmVzb2x2ZXJDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzIEFsZXhleSBQcm9za3VyeWFrb3YgKGFw
QG55cG9wLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
IgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgorI2luY2x1
ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlQ29uc29sZUNsaWVudC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5j
bHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworUmVmUHRyPEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyPiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNVbmRlZmluZWRPck51bGwo
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBKU09iamVjdCogcmVzb2x2ZXJPYmpl
Y3QgPSB2YWx1ZS5nZXRPYmplY3QoKTsKKyAgICBpZiAoIXJlc29sdmVyT2JqZWN0KSB7CisgICAg
ICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VSUik7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyKGV4ZWMsIHJlc29sdmVyT2JqZWN0LCBhc0pTRE9NV2luZG93KGV4ZWMt
PnZtRW50cnlHbG9iYWxPYmplY3QoKSkpKTsKK30KKworSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6
OkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGN1c3Rv
bVJlc29sdmVyLCBKU0RPTVdpbmRvdyogZ2xvYmFsT2JqZWN0KQorICAgIDogbV9jdXN0b21SZXNv
bHZlcihleGVjLT52bSgpLCBjdXN0b21SZXNvbHZlcikKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGV4
ZWMtPnZtKCksIGdsb2JhbE9iamVjdCkKK3sKK30KKworSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6
On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcigpCit7Cit9CisKK1N0cmluZyBKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQorewor
ICAgIEFTU0VSVChtX2N1c3RvbVJlc29sdmVyKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKEpT
RE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKSk7CisKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBtX2ds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworICAgICAgICAKKyAgICBKU1ZhbHVlIGZ1bmN0aW9u
ID0gbV9jdXN0b21SZXNvbHZlci0+Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhl
YywgImxvb2t1cE5hbWVzcGFjZVVSSSIpKTsKKyAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICBD
YWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CisgICAg
aWYgKGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7CisgICAgICAgIGNhbGxUeXBlID0gbV9j
dXN0b21SZXNvbHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEobV9jdXN0b21SZXNvbHZl
ci5nZXQoKSwgY2FsbERhdGEpOworICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5v
bmUpIHsKKyAgICAgICAgICAgIGlmIChQYWdlQ29uc29sZUNsaWVudCogY29uc29sZSA9IG1fZ2xv
YmFsT2JqZWN0LT53cmFwcGVkKCkuY29uc29sZSgpKQorICAgICAgICAgICAgICAgIGNvbnNvbGUt
PmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJ
TGl0ZXJhbCgiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VV
UkkgbWV0aG9kLiIpKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgfQor
ICAgICAgICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7CisgICAgfQorCisgICAg
UmVmPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKKworICAg
IE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgYXJncy5hcHBlbmQoanNTdHJpbmdXaXRo
Q2FjaGUoZXhlYywgcHJlZml4KSk7CisKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlv
bjsKKyAgICBKU1ZhbHVlIHJldHZhbCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChleGVj
LCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBh
cmdzLCBleGNlcHRpb24pOworCisgICAgU3RyaW5nIHJlc3VsdDsKKyAgICBpZiAoZXhjZXB0aW9u
KQorICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKKyAgICBlbHNlIHsK
KyAgICAgICAgaWYgKCFyZXR2YWwuaXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgICAgIHJl
c3VsdCA9IHJldHZhbC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgfQorCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aEN1c3RvbU5TUmVzb2x2ZXJDdXN0b20uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhDdXN0b21OU1Jl
c29sdmVyQ3VzdG9tLmNwcAkocmV2aXNpb24gMjA0NjI4KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNYUGF0aEN1c3RvbU5TUmVzb2x2ZXJDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNCwxNiArMjQsMTIgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJKU1hQYXRoQ3VzdG9tTlNS
ZXNvbHZlci5oIgogCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNs
dWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgot
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKQEAgLTQxLDU4ICszNywzNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLVJlZlB0cjxKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlcj4gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdmFsdWUpCitTdHJpbmcgSlNYUGF0aEN1c3RvbU5TUmVzb2x2ZXI6Omxvb2t1cE5h
bWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKIHsKLSAgICBpZiAodmFsdWUuaXNVbmRl
ZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgUmVmPEpTWFBhdGhD
dXN0b21OU1Jlc29sdmVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAotICAgIEpTT2JqZWN0KiBy
ZXNvbHZlck9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpOwotICAgIGlmICghcmVzb2x2ZXJPYmpl
Y3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoZXhlYywgcmVzb2x2ZXJPYmplY3QsIGFzSlNET01X
aW5kb3coZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpKSkpOwotfQotCi1KU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogY3VzdG9tUmVzb2x2ZXIsIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QpCi0gICAgOiBt
X2N1c3RvbVJlc29sdmVyKGV4ZWMtPnZtKCksIGN1c3RvbVJlc29sdmVyKQotICAgICwgbV9nbG9i
YWxPYmplY3QoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0KQotewotfQorICAgIGF1dG8qIGdsb2Jh
bE9iamVjdCA9IG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgRXhlY1N0YXRlKiBleGVjID0g
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKLUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjp+
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKQotewotfQotCi1TdHJpbmcgSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKLXsKLSAg
ICBBU1NFUlQobV9jdXN0b21SZXNvbHZlcik7Ci0KLSAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOworICAgIEpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9i
amVjdC0+dm0oKSk7CiAKLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xv
YmFsRXhlYygpOwotICAgICAgICAKLSAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNv
bHZlci0+Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImxvb2t1cE5hbWVz
cGFjZVVSSSIpKTsKKyAgICBKU09iamVjdCogY3VzdG9tUmVzb2x2ZXIgPSBtX2RhdGEtPmNhbGxi
YWNrKCk7CisgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IGN1c3RvbVJlc29sdmVyLT5nZXQoZXhlYywg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAibG9va3VwTmFtZXNwYWNlVVJJIikpOwogICAg
IENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEo
ZnVuY3Rpb24sIGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUp
IHsKLSAgICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5n
ZXRDYWxsRGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0YSk7CisgICAgICAgIGNh
bGxUeXBlID0gY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKGN1c3Rv
bVJlc29sdmVyLCBjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6
Tm9uZSkgewotICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBjb25zb2xlID0gbV9n
bG9iYWxPYmplY3QtPndyYXBwZWQoKS5jb25zb2xlKCkpCisgICAgICAgICAgICBpZiAoUGFnZUNv
bnNvbGVDbGllbnQqIGNvbnNvbGUgPSBhc0pTRE9NV2luZG93KGdsb2JhbE9iamVjdCktPndyYXBw
ZWQoKS5jb25zb2xlKCkpCiAgICAgICAgICAgICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShNZXNz
YWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJYUGF0aE5T
UmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIikpOwog
ICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9Ci0gICAgICAgIGZ1bmN0aW9u
ID0gbV9jdXN0b21SZXNvbHZlci5nZXQoKTsKKyAgICAgICAgZnVuY3Rpb24gPSBjdXN0b21SZXNv
bHZlcjsKICAgICB9CiAKLSAgICBSZWY8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOwotCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKICAgICBhcmdz
LmFwcGVuZChqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBwcmVmaXgpKTsKIAogICAgIE5ha2VkUHRy
PEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWluVGhyZWFk
RXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY3Vz
dG9tUmVzb2x2ZXIuZ2V0KCksIGFyZ3MsIGV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZSByZXR2YWwg
PSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBj
YWxsRGF0YSwgY3VzdG9tUmVzb2x2ZXIsIGFyZ3MsIGV4Y2VwdGlvbik7CiAKICAgICBTdHJpbmcg
cmVzdWx0OwogICAgIGlmIChleGNlcHRpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCShyZXZpc2lvbiAy
MDQ2MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1
c3RvbS5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTWFBhdGhOU1Jlc29sdmVyLmgiCi0KLSNpbmNs
dWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IEpTWFBhdGhO
U1Jlc29sdmVyOjp0b1dyYXBwZWQoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKLXsK
LSAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNYUGF0aE5TUmVzb2x2ZXI6OmluZm8oKSkpCi0gICAg
ICAgIHJldHVybiAmanNDYXN0PEpTWFBhdGhOU1Jlc29sdmVyKj4oYXNPYmplY3QodmFsdWUpKS0+
d3JhcHBlZCgpOwotCi0gICAgcmV0dXJuIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUo
JnN0YXRlLCB2YWx1ZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShy
ZXZpc2lvbiAyMDQ2MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMTkxMiw3ICsxOTEyLDkgQEAgRU5ECiAg
ICAgICAgICAgICBmb3IgbXkgJHR1cGxlIChAeyRTfSkgewogICAgICAgICAgICAgICAgIG15ICRv
dmVybG9hZCA9IEB7JHR1cGxlfVswXTsKICAgICAgICAgICAgICAgICBteSAkdHlwZSA9IFN0cmlw
TnVsbGFibGUoQHtAeyR0dXBsZX1bMV19WyRkXSk7Ci0gICAgICAgICAgICAgICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNUeXBl
ZEFycmF5VHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PklzQ2FsbGJhY2tJbnRlcmZhY2UoJHR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICYkZ2Vu
ZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3It
PklzV3JhcHBlclR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBl
KCR0eXBlKSkgewogICAgICAgICAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZO
ZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09i
amVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKEpTJHt0eXBlfTo6aW5mbygpKSIpOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTQwOTYsOSArNDA5OCw5IEBAIHN1
YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChA
eyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15IEBhcmd1bWVudHMgPSAo
KTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAYXJndW1lbnRzLCBHZXROYXRpdmVUeXBl
Rm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRwYXJhbWV0ZXItPnR5cGUpIC4gIiAiIC4gJHBhcmFt
ZXRlci0+bmFtZSk7CisgICAgICAgICAgICAgICAgcHVzaChAYXJndW1lbnRzLCBHZXROYXRpdmVU
eXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRwYXJhbWV0ZXItPnR5cGUsIDApIC4gIiAiIC4g
JHBhcmFtZXRlci0+bmFtZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGlu
dGVyZmFjZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPm5hbWUgLiAiKCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIik7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0
aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZSwgMSkgLiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIiAuIGpvaW4oIiwg
IiwgQGFyZ3VtZW50cykgLiAiKTtcbiIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00MjM2LDE0
ICs0MjM4LDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KIAogICAgICAg
ICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBsKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBl
KTsKICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlw
ZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAi
ICR7Y2xhc3NOYW1lfTo6JHtmdW5jdGlvbk5hbWV9KCIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlLCAxKSAuICIgJHtjbGFzc05hbWV9Ojoke2Z1bmN0aW9u
TmFtZX0oIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7CiAgICAgICAgICAgICBteSBA
YXJnc0NoZWNrID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykg
ewogICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSAkcGFyYW0tPm5hbWU7CiAgICAgICAg
ICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBsKCRwYXJhbS0+dHlwZSwgMSk7Ci0gICAg
ICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJm
YWNlLCAkcGFyYW0tPnR5cGUpIC4gIiAiIC4gJHBhcmFtTmFtZSk7CisgICAgICAgICAgICAgICAg
cHVzaChAYXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW0t
PnR5cGUsIDApIC4gIiAiIC4gJHBhcmFtTmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgam9pbigiLCAiLCBAYXJncykpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIpXG4iKTsKQEAgLTQ1MDMsNyArNDUwNSw2IEBAIG15ICVuYXRpdmVU
eXBlID0gKAogICAgICJEaWN0aW9uYXJ5IiA9PiAiRGljdGlvbmFyeSIsCiAgICAgIkV2ZW50TGlz
dGVuZXIiID0+ICJSZWZQdHI8RXZlbnRMaXN0ZW5lcj4iLAogICAgICJTZXJpYWxpemVkU2NyaXB0
VmFsdWUiID0+ICJSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiIsCi0gICAgIlhQYXRoTlNS
ZXNvbHZlciIgPT4gIlJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IiwKICAgICAiYW55IiA9PiAiSlND
OjpKU1ZhbHVlIiwKICAgICAiYm9vbGVhbiIgPT4gImJvb2wiLAogICAgICJieXRlIiA9PiAiaW50
OF90IiwKQEAgLTQ1NTksMTEgKzQ1NjAsMTEgQEAgc3ViIEdldE5hdGl2ZVZlY3RvcklubmVyVHlw
ZQogCiBzdWIgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcwogewotICAgIG15ICgkaW50ZXJmYWNl
LCAkdHlwZSkgPSBAXzsKKyAgICBteSAoJGludGVyZmFjZSwgJHR5cGUsICRpc1JldHVyblR5cGUp
ID0gQF87CiAKICAgICByZXR1cm4gIlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYiIGlm
ICR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOwogICAgIHJldHVybiAiUmVmUHRyPERP
TVN0cmluZ0xpc3Q+JiYiIGlmICR0eXBlIGVxICJET01TdHJpbmdMaXN0IjsKLSAgICByZXR1cm4g
ImNvbnN0IFN0cmluZyYiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwor
ICAgIHJldHVybiAiY29uc3QgU3RyaW5nJiIgaWYgISgkaW50ZXJmYWNlLT5pc0NhbGxiYWNrICYm
ICRpc1JldHVyblR5cGUpICYmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwog
ICAgIHJldHVybiBHZXROYXRpdmVUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAyMDQ2MjgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksMTQgKzExOSwxNCBAQAog
ICAgIC8vIERPTSBMZXZlbCAzIFhQYXRoIChYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2UpCiAgICAg
Ly8gRklYTUU6IFVzaW5nICJ1bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlz
IHdyb25nLgogICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlv
bl0gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24ob3B0aW9uYWwgRE9NU3RyaW5nIGV4
cHJlc3Npb24gPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgWFBhdGhOU1Jlc29sdmVyPyByZXNvbHZl
cik7CisgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSBY
UGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihET01TdHJpbmcgZXhwcmVzc2lvbiwgWFBh
dGhDdXN0b21OU1Jlc29sdmVyIHJlc29sdmVyKTsKICAgICBYUGF0aE5TUmVzb2x2ZXIgY3JlYXRl
TlNSZXNvbHZlcihOb2RlPyBub2RlUmVzb2x2ZXIpOwogCiAgICAgLy8gRklYTUU6IFVzaW5nICJ1
bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgotICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZh
bHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgTm9k
ZT8gY29udGV4dE5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVk
IHNob3J0IHR5cGUgPSAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQpOworICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVh
dGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwg
Tm9kZT8gY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIsCisg
ICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJl
c3VsdD8gaW5SZXN1bHQpOworICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJhaXNl
c0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUoRE9NU3RyaW5nIGV4cHJlc3Npb24sIE5v
ZGU/IGNvbnRleHROb2RlLCBYUGF0aEN1c3RvbU5TUmVzb2x2ZXIgcmVzb2x2ZXIsCisgICAgICAg
IG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJlc3VsdD8g
aW5SZXN1bHQpOwogCiAgICAgLy8gQ29tbW9uIGV4dGVuc2lvbnMKICAgICAvLyBGSVhNRTogVGhl
IGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBsYXN0IHBhcmFtZXRlciBzaG91bGQgYmUgdGhlIGVtcHR5
IHN0cmluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEN1c3RvbU5TUmVzb2x2ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhDdXN0b21OU1Jlc29sdmVy
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUveG1sL1hQYXRoQ3VzdG9tTlNSZXNv
bHZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiWFBhdGhOU1Jlc29sdmVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBYUGF0aEN1c3RvbU5TUmVzb2x2ZXIgOiBwdWJs
aWMgWFBhdGhOU1Jlc29sdmVyIHsKK307CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aEN1c3RvbU5TUmVzb2x2ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aEN1c3RvbU5TUmVzb2x2ZXIuaWRsCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aEN1c3RvbU5TUmVzb2x2ZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisqIG1ldDoKKyoKKyog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorKiBk
aXN0cmlidXRpb24uCisqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworY2FsbGJhY2sgaW50ZXJmYWNlIFhQ
YXRoQ3VzdG9tTlNSZXNvbHZlciB7CisKKyAgICBbQ3VzdG9tXSBET01TdHJpbmc/IGxvb2t1cE5h
bWVzcGFjZVVSSShET01TdHJpbmcgcHJlZml4KTsKKworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aEV2YWx1YXRvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoRXZhbHVhdG9yLmlkbAkocmV2aXNpb24gMjA0NjI4KQorKysgU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoRXZhbHVhdG9yLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTMgKzIzLDEzIEBA
CiBdIGludGVyZmFjZSBYUGF0aEV2YWx1YXRvciB7CiAgICAgLy8gRklYTUU6IFVzaW5nICJ1bmRl
ZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgogICAgIFtSYWlzZXNF
eGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKG9wdGlvbmFsIERPTVN0
cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8g
cmVzb2x2ZXIpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVF
eHByZXNzaW9uKERPTVN0cmluZyBleHByZXNzaW9uLCBYUGF0aEN1c3RvbU5TUmVzb2x2ZXI/IHJl
c29sdmVyKTsKIAogICAgIFhQYXRoTlNSZXNvbHZlciBjcmVhdGVOU1Jlc29sdmVyKG9wdGlvbmFs
IE5vZGU/IG5vZGVSZXNvbHZlcik7CiAKICAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5lZCIg
YXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCi0gICAgW1JhaXNlc0V4Y2VwdGlv
bl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAi
dW5kZWZpbmVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBOb2RlPyBjb250
ZXh0Tm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBYUGF0aE5TUmVzb2x2
ZXI/IHJlc29sdmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVk
IHNob3J0IHR5cGUgPSAwLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFhQYXRo
UmVzdWx0PyBpblJlc3VsdCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZh
bHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwgb3B0aW9u
YWwgTm9kZT8gY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIs
CisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0
aFJlc3VsdD8gaW5SZXN1bHQpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoUmVzdWx0IGV2
YWx1YXRlKERPTVN0cmluZyBleHByZXNzaW9uLCBOb2RlPyBjb250ZXh0Tm9kZSwgWFBhdGhDdXN0
b21OU1Jlc29sdmVyPyByZXNvbHZlciwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQg
dHlwZSA9IDAsIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CiB9OwpJbmRleDogU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwJKHJldmlzaW9uIDIwNDYyOCkKKysrIFNv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
OSw3ICsxOSw2IEBACiAgKi8KIAogWwotICAgIEpTQ3VzdG9tVG9OYXRpdmVPYmplY3QsCiAgICAg
Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgT2JqQ1Byb3RvY29sLAogICAgIFNraXBWVGFibGVWYWxp
ZGF0aW9uLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286624</attachid>
            <date>2016-08-22 14:58:15 -0700</date>
            <delta_ts>2016-08-22 22:01:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161030-20160822145618.patch</filename>
            <type>text/plain</type>
            <size>47980</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDczMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1vdW50IG9m
IGN1c3RvbSBiaW5kaW5nIGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaWRsIHRvIGdlbmVyYXRlIHRoZSBtdWNoIG9mIHRoZSBiaW5kaW5nIGNvZGUgcmF0aGVy
IHRoYW4gZW50aXJlbHkgcmVseWluZyBvbiBjdXN0b20gY29kZS4KKyAgICAgICAgV2UgY2FuIHJl
bW92ZSB0aGUgcmVtYWluaW5nIGN1c3RvbSBjb2RlIG9uY2UgdGhlIGNvZGUgZ2VuZXJhdG9yIGZ1
bGx5IHN1cHBvcnRzIG5vbi1GdW5jdGlvbk9ubHkgY2FsbGJhY2sgaW50ZXJmYWNlcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNl
VVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbk9yQ29uc3RydWN0b3IpOiBDYWxs
YmFjayBpbnRlcmZhY2VzIGRvbid0IGhhdmUgY2xhc3MgaW5mby4gT21pdCB0aGF0IGNoZWNrLgor
ICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6IEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFj
a3MgaXMgbm93IHNwbGl0IGludG8gR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzIGFu
ZAorICAgICAgICBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzLiBDYWxsIHRoZSBhcHBy
b3ByaWF0ZSB2ZXJzaW9uLgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9u
KTogRGl0dG8uCisgICAgICAgIChHZXROYXRpdmVBcmd1bWVudFR5cGVGb3JDYWxsYmFja3MpOiBT
cGxpdCBmcm9tIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MuIEFsd2F5cyB1c2UgY29uc3QgU3Ry
aW5nJi4KKyAgICAgICAgKEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MpOiBSZW5hbWVk
IGZyb20gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcy4gQXZvaWQgY29uc3QgU3RyaW5nJiBmb3Ig
YSBjYWxsYmFjaydzIHJldHVybiB2YWx1ZS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmg6IEFkZGVkLgorICAgICAgICAqIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvWFBh
dGhOU1Jlc29sdmVyLmlkbDogUmVtb3ZlZCBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0IHNpbmNlIGl0
IG5vIGxvbmdlciB1c2VzIGEgY3VzdG9tIHRvV3JhcHBlZCBmdW5jdGlvbi4KKwogMjAxNi0wOC0y
MiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW5hbWUgQ3Vz
dG9tRWxlbWVudHNSZWdpc3RyeSB0byBDdXN0b21FbGVtZW50UmVnaXN0cnkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMDQ3MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjUwLDYgKzY1MCw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAgICAgd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5pZGwKICAgICB3
b3JrZXJzL1dvcmtlckxvY2F0aW9uLmlkbAogCisgICAgeG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5pZGwKICAgICB4bWwvRE9NUGFyc2VyLmlkbAogICAgIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGwK
ICAgICB4bWwvWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5pZGwKQEAgLTExMzksNyArMTE0MCw3
IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRS
ZWdpc3RyeUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbUV2ZW50Q3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAK
LSAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKKyAgICBiaW5kaW5n
cy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTEyNTMsNyArMTI1NCw2
IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MRG9jdW1lbnRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9q
cy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcApJbmRl
eDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyMDQ3MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC03MDQsNiAr
NzA0LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9Xb3Jr
ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyTG9jYXRpb24uaWRsIFwKKyAgICAkKFdlYkNv
cmUpL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3htbC9E
T01QYXJzZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwgXAog
ICAgICQoV2ViQ29yZSkveG1sL1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaWRsIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDIwNDczMikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjg1Nyw3ICsyODU3LDYgQEAKIAkJODM1
RDM2MzcxOUZGNjE5MzAwNEM5M0FCIC8qIFN0eWxlQnVpbGRlckN1c3RvbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1RDM2MzYxOUZGNjE5MzAwNEM5
M0FCIC8qIFN0eWxlQnVpbGRlckN1c3RvbS5oICovOyB9OwogCQk4MzY3NTg3RTFDNTZFOTlCMDA4
QTEwODcgLyogSlNIVE1MRGF0YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM0Qjg2QTkxQzU2RTkzRTAwRjNGMEUzIC8qIEpTSFRNTERh
dGFFbGVtZW50LmNwcCAqLzsgfTsKIAkJODM2NzU4N0YxQzU2RTk5QjAwOEExMDg3IC8qIEpTSFRN
TERhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzRCODZBODFDNTZFOTNFMDBGM0YwRTMgLyogSlNIVE1MRGF0YUVsZW1lbnQuaCAqLzsg
fTsKLQkJODM2QzE0NDMxQ0RFQUZEODAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNkMx
NDQyMUNERUFGQ0EwMDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi87IH07
CiAJCTgzNkRBQTA2MUNFQUI4MEQwMEEyQjcwNyAvKiBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNkRBQTA1
MUNFQUI3Q0QwMEEyQjcwNyAvKiBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaCAqLzsgfTsKIAkJ
ODM2RkJDRUExNzhDMTEzMjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNkZCQ0U5MTc4
QzExMzIwMEIyMUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgKi87IH07CiAJCTgz
NkZCQ0VDMTc4QzExN0YwMEIyMUExNSAvKiBTVkdBbmltYXRlZFByb3BlcnR5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNkZCQ0VCMTc4QzExN0Yw
MEIyMUExNSAvKiBTVkdBbmltYXRlZFByb3BlcnR5LmNwcCAqLzsgfTsKQEAgLTM1NzksNiArMzU3
OCw4IEBACiAJCTlCNjlEM0I1MUI5OEZGRTkwMEUzNTEyQiAvKiBIVE1MU2xvdEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNjlEM0IzMUI5
OEZGRTkwMEUzNTEyQiAvKiBIVE1MU2xvdEVsZW1lbnQuaCAqLzsgfTsKIAkJOUI2OUQzQjgxQjk5
MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNjlEM0I2MUI5OTEwMDcwMEUzNTEyQiAvKiBK
U0hUTUxTbG90RWxlbWVudC5jcHAgKi87IH07CiAJCTlCNjlEM0I5MUI5OTEwMDcwMEUzNTEyQiAv
KiBKU0hUTUxTbG90RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUI2OUQzQjcxQjk5MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50
LmggKi87IH07CisJCTlCNkJBOUFBMUQ2QjlDQTMwMDgzNjYzNSAvKiBKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjExM0FFNTFENkI5QUE2MDA4NjRBMUUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3Bw
ICovOyB9OworCQk5QjZCQTlBQjFENkI5Q0E3MDA4MzY2MzUgLyogSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
MTEzQUU2MUQ2QjlBQTYwMDg2NEExRSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovOyB9
OwogCQk5QjZDNDE1MzEzNDQ5NDkwMDAwODVCNjIgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI2QzQxNTIxMzQ0
OTQ5MDAwMDg1QjYyIC8qIFN0cmluZ1dpdGhEaXJlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjcxNEUyMDFDOTExNjY5MDBBQzBFOTIg
LyogRXZlbnRQYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCNzE0RTFFMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguY3BwICovOyB9Owog
CQk5QjcxNEUyMTFDOTExNjY5MDBBQzBFOTIgLyogRXZlbnRQYXRoLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjcxNEUxRjFDOTExNjY5MDBBQzBFOTIg
LyogRXZlbnRQYXRoLmggKi87IH07CkBAIC01ODQ1LDggKzU4NDYsNyBAQAogCQlFMEZFRjM3MkI0
N0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMEZFRjM3MUI0N0M1M0VBQzFDMUZCRUUgLyogSlNF
dmVudFNvdXJjZS5jcHAgKi87IH07CiAJCUUxMDc0MDBEMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01l
c3NhZ2VDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxMDc0MDBCMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmNwcCAq
LzsgfTsKIAkJRTEwNzQwMEUwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMDc0MDBDMEU3
N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmggKi87IH07Ci0JCUUxMEI5MzdDMEI3
M0MwMEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwQjkzN0IwQjczQzAwQTAwM0VEODkw
IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi87IH07Ci0JCUUxMEI5M0MzMEI3M0MyOTEw
MDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyog
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwICovOyB9OworCQlFMTBCOTNDMzBCNzNDMjkxMDAz
RUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwQjkzQzIwQjczQzI5MTAwM0VEODkw
IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTEwQjlCNkMw
Qjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwQjlCNkEwQjc0NzU5OTAwM0VEODkw
IC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oICovOyB9OwogCQlFMTBCOUI2RDBCNzQ3NTk5MDAz
RUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5QjZCMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRp
dmVYUGF0aE5TUmVzb2x2ZXIuY3BwICovOyB9OwogCQlFMTEwMDMzMDFDOUFDM0RFMDA0MTJERDAg
LyogQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTEwMDMyRTFDOUFDM0RFMDA0MTJERDAgLyogQ1NTR3JpZEF1
dG9SZXBlYXRWYWx1ZS5jcHAgKi87IH07CkBAIC05OTA1LDcgKzk5MDUsNiBAQAogCQk4MzVEMzYz
NjE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlQnVpbGRlckN1c3RvbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4MzVGOEIyNjFEMkQ5MEJBMDBFNDA4RUMgLyogU2xvdGFibGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNsb3RhYmxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODM2OUU1OEYxQUZERDAzMDAwODdERjY4IC8qIE5vbkRvY3VtZW50VHlwZUNoaWxk
Tm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
WFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODM2REFBMDUxQ0VBQjdDRDAwQTJCNzA3IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1
IC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODM2RkJDRUIxNzhDMTE3RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJv
cGVydHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0
ZWRQcm9wZXJ0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDczMSw2ICsx
MDczMCw4IEBACiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjREOSAvKiBSZWFkYWJsZVN0cmVhbUlu
dGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWRh
YmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEU4IC8qIFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFibGVTdHJlYW1CdWlsdGlucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTkg
LyogV3JpdGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCMTEzQUU1MUQ2QjlBQTYwMDg2NEExRSAvKiBKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTlCMTEzQUU2MUQ2QjlBQTYwMDg2NEExRSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjE5QjY3RTFCOTY0RTUyMDAzNDg3
NDUgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2hhZG93Um9vdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMUFCMDc5MTY0OEM2OUQwMDUxRjNG
MiAvKiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjFBQjA3QjE2
NDhDN0M0MDA1MUYzRjIgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbkN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzcy
LDYgKzEwNzczLDggQEAKIAkJOUJENEU5MTUxQzQ2Mjg3MjAwNTA2NUJDIC8qIEpTQ3VzdG9tRWxl
bWVudEludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0N1c3Rv
bUVsZW1lbnRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJENEU5
MTgxQzQ2MkNGQzAwNTA2NUJDIC8qIEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21FbGVtZW50UmVnaXN0cnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkQ0RTkxOTFDNDYyQ0ZDMDA1MDY1QkMgLyog
Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
QkQ3NTk5RjFENkI5MDIzMDBDQTgyNDYgLyogQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QkQ3NTlBMDFENkI5MDIzMDBDQTgyNDYgLyogQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkQ4QTk1OTE4
QkVGQzc2MDA5ODdFOUEgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QkU2NzEwOTFENUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0
b21FbGVtZW50UmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNDdXN0b21FbGVtZW50UmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5QkU2NzEwQTFENUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50UmVnaXN0cnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDdXN0b21FbGVtZW50UmVnaXN0
cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMzYzLDggKzEzMzY2LDcgQEAK
IAkJRTBGRUYzNzFCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFdmVudFNvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMDc0MDBCMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3Nh
Z2VDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVz
c2FnZUNoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTA3NDAwQzBF
NzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01lc3NhZ2VDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUUxMEI5MzdCMEI3M0MwMEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTBCOTNDMjBCNzNDMjkxMDAz
RUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMTBCOUI2QTBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jl
c29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVhQYXRoTlNS
ZXNvbHZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTBCOUI2QjBCNzQ3NTk5
MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxMTAwMzJFMUM5QUMzREUwMDQxMkREMCAvKiBDU1NHcmlkQXV0
b1JlcGVhdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENT
U0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTkyNzUsNiArMTkyNzcsOCBAQAogCQlBODNCNzkwQzBDQ0FGRjgzMDAwQjA4MjUgLyogWFBhdGgg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTlCMTEzQUU1
MUQ2QjlBQTYwMDg2NEExRSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi8sCisJCQkJ
OUIxMTNBRTYxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8s
CiAJCQkJMUE3NjJDNkIwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuY3BwICov
LAogCQkJCTFBNzYyQzZDMEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggKi8s
CiAJCQkJQkM2MERCNDcwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uY3BwICov
LApAQCAtMjEwMzEsNyArMjEwMzUsNiBAQAogCQkJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAv
KiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLywKIAkJCQk4M0E0QTlGODFDRTdGRDdF
MDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkMzNDhCQkQwREI3
RjUzMTAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwICovLAotCQkJCTgzNkMx
NDQyMUNERUFGQ0EwMDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8sCiAJ
CQkJQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICov
LAogCQkJCUJDRUZFMUU0MERDQTVGMzMwMDczOTIxOSAvKiBKU1hTTFRQcm9jZXNzb3JDdXN0b20u
Y3BwICovLAogCQkJKTsKQEAgLTIxMzE5LDggKzIxMzIyLDcgQEAKIAkJCQkxNDQ5RTI4NjEwN0Q0
REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwICovLAogCQkJCTE0NDlFMjRBMTA3RDRB
ODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovLAogCQkJCTUxRUM5MjVEMENFOTBERDQw
MEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwICovLAotCQkJ
CUUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAg
Ki8sCi0JCQkJRTEwQjkzN0IwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmggKi8sCisJCQkJRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyQ3VzdG9tLmNwcCAqLywKIAkJCQk5M0I3MEQ0RDA5RUIwQzdDMDA5RDg0NjggLyog
SlNFdmVudExpc3RlbmVyLmNwcCAqLywKIAkJCQk5M0I3MEQ0RTA5RUIwQzdDMDA5RDg0NjggLyog
SlNFdmVudExpc3RlbmVyLmggKi8sCiAJCQkJOTM1RjQ1NDAwRjdDM0I1RjAwRDdDMUZCIC8qIEpT
TGF6eUV2ZW50TGlzdGVuZXIuY3BwICovLApAQCAtMjE5MTUsNiArMjE5MTcsOCBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwMEI5MzE4MDEzQkE4NjdGMDAzNUE5
NDggLyogcGFyc2VyICovLAorCQkJCTlCRDc1OTlGMUQ2QjkwMjMwMENBODI0NiAvKiBDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuaCAqLywKKwkJCQk5QkQ3NTlBMDFENkI5MDIzMDBDQTgyNDYgLyogQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmlkbCAqLywKIAkJCQkxQUNFNTNFMTBBOEQxOEU3MDAyMjk0N0Qg
LyogRE9NUGFyc2VyLmNwcCAqLywKIAkJCQkxQUNFNTNFMjBBOEQxOEU3MDAyMjk0N0QgLyogRE9N
UGFyc2VyLmggKi8sCiAJCQkJMUFDRTUzRTMwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5p
ZGwgKi8sCkBAIC0yNDc1OCw3ICsyNDc2Miw2IEBACiAJCQkJOUJENEU5MTcxQzQ2Mjg3MjAwNTA2
NUJDIC8qIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJF
NjcxMEMxRDVBRUIyNTAwMzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDc3OEI4MDExNUE1ODFBMDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRTEwQjkzN0MwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU4MkY5MDBDQUFGQTlEMDAy
MjM3QUUgLyogSlNEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5REQ2OTkxMTkwMjlF
NTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU2
MTAzOUUxOEE5RDY1QTAwREQ1MEQ3IC8qIEpTRGF0YUN1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NTU3Myw2ICsyNTU3Niw3IEBACiAJCQkJMkQ3N0FDMjkxQkYyQjk4NjAwNzI0NzBBIC8qIE5TQWNj
ZXNzaWJpbGl0eVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ3N0FDMkExQkYyQjk4NzAwNzI0
NzBBIC8qIE5TQXBwbGljYXRpb25TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCQjczNzY1MUI0
MUMwMzUwMEFFMTNFQiAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaCBpbiBIZWFkZXJzICovLAor
CQkJCTlCNkJBOUFCMUQ2QjlDQTcwMDgzNjYzNSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzFCMzEzREYxQjY5ODhDNTAwRjJBQUJDIC8qIE5TQnV0dG9u
Q2VsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxMjUyNTExQTFCRUJEODAwODY0NDgwIC8q
IE5TQ2FsZW5kYXJEYXRlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMURGNjM1NzFBRjE4N0RE
MDA3OEZEOTEgLyogTlNDb2xvclNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODM0Nyw3ICsyODM1
MSw3IEBACiAJCQkJRTQ3NzhCN0YxMTVBNTgxQTAwQjVEMzcyIC8qIEpTQ3VzdG9tRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJREVDMjk3NjExQjRGMkY4RDAwNUY1OTQ1IC8qIEpTQ3VzdG9t
RXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFQzkyNjUwQ0U5MERENDAwRjkw
MzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlFMTBCOTNDMzBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTEwQjkzQzMwQjczQzI5MTAwM0VEODkwIC8qIEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTgy
RjhGMENBQUZBOUQwMDIyMzdBRSAvKiBKU0RhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUI1OURENjlBMTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkU2MTAzOUQxOEE5RDY1MjAwREQ1MEQ3IC8qIEpTRGF0YUN1ZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI4OTc0LDcgKzI4OTc4LDYgQEAKIAkJCQlCQzYwREI0OTBEMkEz
RDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTc2MkM3NTBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJlc3Npb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUE3NjJDNzcwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhOU1Jlc29sdmVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTgzNkMxNDQzMUNERUFGRDgwMDczNDkzRiAvKiBKU1hQ
YXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc2MkM3OTBBMDc0
RjI2MDA5ODlGNUIgLyogSlNYUGF0aFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUM3
RkFBMjEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0VGRTFFQTBEQ0E1RjY0MDA3MzkyMTkgLyogSlNYU0xUUHJvY2Vzc29yLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjkzMzQsNiArMjkzMzcsNyBAQAogCQkJCTkzRjE5QUY4MDgy
NDVFNTkwMDFFOUFCQyAvKiBQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzkxOUMy
MzBCN0QxODg2MDBBNTY5OTggLyogUG9zaXRpb25JdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0NjM0NTkyQzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk5QjZCQTlBQTFENkI5Q0EzMDA4MzY2MzUgLyogSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjc3NkQ0M0QxMTA0NTI3NTAwQkVC
MEVDIC8qIFByaW50Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBN0VCRDBBMTk0
NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUU0NDYxM0VCMENENjgxQjQwMEZBREE3NSAvKiBQcm9ncmVzc0V2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAkocmV2aXNpb24gMjA0NzMyKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCShub25leGlzdGVu
dCkKQEAgLTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQWxl
eGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkpTRE9NV2lu
ZG93Q3VzdG9tLmgiCi0jaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVk
ZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCi0jaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2UgSlNDOwot
Ci1SZWZQdHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
OjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmICh2YWx1
ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIEpT
T2JqZWN0KiByZXNvbHZlck9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpOwotICAgIGlmICghcmVz
b2x2ZXJPYmplY3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFU
Q0hfRVJSKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoZXhlYywgcmVzb2x2ZXJPYmplY3Qs
IGFzSlNET01XaW5kb3coZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpKSkpOwotfQotCi1KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogY3VzdG9tUmVzb2x2ZXIsIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3Qp
Ci0gICAgOiBtX2N1c3RvbVJlc29sdmVyKGV4ZWMtPnZtKCksIGN1c3RvbVJlc29sdmVyKQotICAg
ICwgbV9nbG9iYWxPYmplY3QoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0KQotewotfQotCi1KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcjo6fkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKCkKLXsKLX0KLQot
U3RyaW5nIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3Qg
U3RyaW5nJiBwcmVmaXgpCi17Ci0gICAgQVNTRVJUKG1fY3VzdG9tUmVzb2x2ZXIpOwotCi0gICAg
SlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpKTsKLQotICAgIEV4
ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAgICAgIAot
ICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLT5nZXQoZXhlYywgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhleGVjLCAibG9va3VwTmFtZXNwYWNlVVJJIikpOwotICAgIENhbGxE
YXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rp
b24sIGNhbGxEYXRhKTsKLSAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKLSAg
ICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxs
RGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlmIChjYWxs
VHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkgewotICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xp
ZW50KiBjb25zb2xlID0gbV9nbG9iYWxPYmplY3QtPndyYXBwZWQoKS5jb25zb2xlKCkpCi0gICAg
ICAgICAgICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2
ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIikpOwotICAgICAgICAgICAgcmV0dXJuIFN0
cmluZygpOwotICAgICAgICB9Ci0gICAgICAgIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci5n
ZXQoKTsKLSAgICB9Ci0KLSAgICBSZWY8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOwotCi0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdz
LmFwcGVuZChqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBwcmVmaXgpKTsKLQotICAgIE5ha2VkUHRy
PEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWluVGhyZWFk
RXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY3Vz
dG9tUmVzb2x2ZXIuZ2V0KCksIGFyZ3MsIGV4Y2VwdGlvbik7Ci0KLSAgICBTdHJpbmcgcmVzdWx0
OwotICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBleGNl
cHRpb24pOwotICAgIGVsc2UgewotICAgICAgICBpZiAoIXJldHZhbC5pc1VuZGVmaW5lZE9yTnVs
bCgpKQotICAgICAgICAgICAgcmVzdWx0ID0gcmV0dmFsLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0
eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmgJKHJldmlzaW9uIDIwNDczMikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw2NSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFsZXhleSBQcm9za3VyeWFrb3YgKGFw
QG55cG9wLmNvbSkKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpZm5kZWYgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJfaAotI2RlZmluZSBKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcl9oCi0KLSNpbmNsdWRlICJYUGF0aE5TUmVzb2x2ZXIuaCIKLSNpbmNsdWRlIDxo
ZWFwL1N0cm9uZy5oPgotI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgotI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgot
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1l
c3BhY2UgSlNDIHsKLSAgICBjbGFzcyBFeGVjU3RhdGU7Ci0gICAgY2xhc3MgSlNPYmplY3Q7Ci19
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIEZyYW1lOwotICAgIGNsYXNzIEpT
RE9NV2luZG93OwotCi0gICAgY2xhc3MgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIgOiBwdWJsaWMg
WFBhdGhOU1Jlc29sdmVyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWZQdHI8SlND
dXN0b21YUGF0aE5TUmVzb2x2ZXI+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSk7Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIH5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcigp
OwotCi0gICAgICAgIHZpcnR1YWwgU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJp
bmcmIHByZWZpeCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0RPTVdpbmRvdyopOwotCi0g
ICAgICAgIC8vIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVycyBhcmUgYWx3YXlzIHRlbXBvcmFyeSBz
byB1c2luZyBhIFN0cm9uZyByZWZlcmVuY2UgaXMgc2FmZSBoZXJlLgotICAgICAgICBKU0M6OlN0
cm9uZzxKU0M6OkpTT2JqZWN0PiBtX2N1c3RvbVJlc29sdmVyOwotICAgICAgICBKU0M6OlN0cm9u
ZzxKU0RPTVdpbmRvdz4gbV9nbG9iYWxPYmplY3Q7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJfaAoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwot
bmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ckN1c3RvbS5jcHAJKHJldmlzaW9uIDIwNDczMikJKGZyb20gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOjIwNDczMikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAx
MyBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNE
T01XaW5kb3dDdXN0b20uaCIKKyNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBK
U0M7CisKK1JlZlB0cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXI6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYg
KHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgSlNPYmplY3QqIHJlc29sdmVyT2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7CisgICAgaWYg
KCFyZXNvbHZlck9iamVjdCkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9N
SVNNQVRDSF9FUlIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihleGVjLCByZXNvbHZlck9i
amVjdCwgYXNKU0RPTVdpbmRvdyhleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCkpKSk7Cit9CisK
K0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBjdXN0b21SZXNvbHZlciwgSlNET01XaW5kb3cqIGdsb2JhbE9i
amVjdCkKKyAgICA6IG1fY3VzdG9tUmVzb2x2ZXIoZXhlYy0+dm0oKSwgY3VzdG9tUmVzb2x2ZXIp
CisgICAgLCBtX2dsb2JhbE9iamVjdChleGVjLT52bSgpLCBnbG9iYWxPYmplY3QpCit7Cit9CisK
K0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjp+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKQorewor
fQorCitTdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShj
b25zdCBTdHJpbmcmIHByZWZpeCkKK3sKKyAgICBBU1NFUlQobV9jdXN0b21SZXNvbHZlcik7CisK
KyAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOworCisg
ICAgRXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICAg
ICAgCisgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldChleGVjLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJsb29rdXBOYW1lc3BhY2VVUkkiKSk7CisgICAg
Q2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShm
dW5jdGlvbiwgY2FsbERhdGEpOworICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkg
eworICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdl
dENhbGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGNhbGxEYXRhKTsKKyAgICAgICAgaWYg
KGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7CisgICAgICAgICAgICBpZiAoUGFnZUNvbnNv
bGVDbGllbnQqIGNvbnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+d3JhcHBlZCgpLmNvbnNvbGUoKSkK
KyAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBN
ZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5v
dCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKSk7CisgICAgICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29s
dmVyLmdldCgpOworICAgIH0KKworICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gcHJv
dGVjdGVkVGhpcygqdGhpcyk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAg
IGFyZ3MuYXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIHByZWZpeCkpOworCisgICAgTmFr
ZWRQdHI8RXhjZXB0aW9uPiBleGNlcHRpb247CisgICAgSlNWYWx1ZSByZXR2YWwgPSBKU01haW5U
aHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwg
bV9jdXN0b21SZXNvbHZlci5nZXQoKSwgYXJncywgZXhjZXB0aW9uKTsKKworICAgIFN0cmluZyBy
ZXN1bHQ7CisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMs
IGV4Y2VwdGlvbik7CisgICAgZWxzZSB7CisgICAgICAgIGlmICghcmV0dmFsLmlzVW5kZWZpbmVk
T3JOdWxsKCkpCisgICAgICAgICAgICByZXN1bHQgPSByZXR2YWwudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKHJldmlzaW9uIDIwNDcz
MikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTQgKzI2LDEwIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKIAotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0
b20uaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5o
PgogCkBAIC00MSw1OCArMzcsMzQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCi1SZWZQdHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQotewot
ICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQotICAgIEpTT2JqZWN0KiByZXNvbHZlck9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpOwot
ICAgIGlmICghcmVzb2x2ZXJPYmplY3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMs
IFRZUEVfTUlTTUFUQ0hfRVJSKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoZXhlYywgcmVz
b2x2ZXJPYmplY3QsIGFzSlNET01XaW5kb3coZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpKSkp
OwotfQotCi1KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY3VzdG9tUmVzb2x2ZXIsIEpTRE9NV2luZG93KiBn
bG9iYWxPYmplY3QpCi0gICAgOiBtX2N1c3RvbVJlc29sdmVyKGV4ZWMtPnZtKCksIGN1c3RvbVJl
c29sdmVyKQotICAgICwgbV9nbG9iYWxPYmplY3QoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0KQot
ewotfQotCi1KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6fkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
KCkKLXsKLX0KLQogU3RyaW5nIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3Bh
Y2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpCiB7Ci0gICAgQVNTRVJUKG1fY3VzdG9tUmVzb2x2
ZXIpOworICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gcHJvdGVjdGVkVGhpcygqdGhp
cyk7CisKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBtX2RhdGEtPmdsb2JhbE9iamVjdCgpOwor
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCi0gICAg
SlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpKTsKKyAgICBKU0xv
Y2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3QtPnZtKCkpOwogCi0gICAgRXhlY1N0YXRlKiBleGVj
ID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgCi0gICAgSlNWYWx1ZSBm
dW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGV4ZWMsICJsb29rdXBOYW1lc3BhY2VVUkkiKSk7CisgICAgSlNPYmplY3QqIGN1c3RvbVJl
c29sdmVyID0gbV9kYXRhLT5jYWxsYmFjaygpOworICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBjdXN0
b21SZXNvbHZlci0+Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImxvb2t1
cE5hbWVzcGFjZVVSSSIpKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBDYWxsVHlwZSBj
YWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CiAgICAgaWYgKGNhbGxU
eXBlID09IENhbGxUeXBlOjpOb25lKSB7Ci0gICAgICAgIGNhbGxUeXBlID0gbV9jdXN0b21SZXNv
bHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEobV9jdXN0b21SZXNvbHZlci5nZXQoKSwg
Y2FsbERhdGEpOworICAgICAgICBjYWxsVHlwZSA9IGN1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJs
ZSgpLT5nZXRDYWxsRGF0YShjdXN0b21SZXNvbHZlciwgY2FsbERhdGEpOwogICAgICAgICBpZiAo
Y2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgIGlmIChQYWdlQ29uc29s
ZUNsaWVudCogY29uc29sZSA9IG1fZ2xvYmFsT2JqZWN0LT53cmFwcGVkKCkuY29uc29sZSgpKQor
ICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBjb25zb2xlID0gYXNKU0RPTVdpbmRv
dyhnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkuY29uc29sZSgpKQogICAgICAgICAgICAgICAgIGNv
bnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IEFTQ0lJTGl0ZXJhbCgiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1l
c3BhY2VVUkkgbWV0aG9kLiIpKTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAg
ICAgfQotICAgICAgICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7CisgICAgICAg
IGZ1bmN0aW9uID0gY3VzdG9tUmVzb2x2ZXI7CiAgICAgfQogCi0gICAgUmVmPEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLQogICAgIE1hcmtlZEFyZ3VtZW50
QnVmZmVyIGFyZ3M7CiAgICAgYXJncy5hcHBlbmQoanNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgcHJl
Zml4KSk7CiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKLSAgICBKU1ZhbHVl
IHJldHZhbCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2Fs
bFR5cGUsIGNhbGxEYXRhLCBtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBhcmdzLCBleGNlcHRpb24p
OworICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4ZWMs
IGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGN1c3RvbVJlc29sdmVyLCBhcmdzLCBleGNl
cHRpb24pOwogCiAgICAgU3RyaW5nIHJlc3VsdDsKICAgICBpZiAoZXhjZXB0aW9uKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcAkocmV2aXNpb24gMjA0NzMyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCShub25leGlzdGVudCkKQEAgLTEsNDMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1hQYXRo
TlNSZXNvbHZlci5oIgotCi0jaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKLQot
dXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZWZQdHI8WFBh
dGhOU1Jlc29sdmVyPiBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFwcGVkKEV4ZWNTdGF0ZSYgc3Rh
dGUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTWFBhdGhOU1Jl
c29sdmVyOjppbmZvKCkpKQotICAgICAgICByZXR1cm4gJmpzQ2FzdDxKU1hQYXRoTlNSZXNvbHZl
cio+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKLQotICAgIHJldHVybiBKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlcjo6Y3JlYXRlKCZzdGF0ZSwgdmFsdWUpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjA0NzMyKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE5
MTEsNyArMTkxMSw5IEBAIEVORAogICAgICAgICAgICAgZm9yIG15ICR0dXBsZSAoQHskU30pIHsK
ICAgICAgICAgICAgICAgICBteSAkb3ZlcmxvYWQgPSBAeyR0dXBsZX1bMF07CiAgICAgICAgICAg
ICAgICAgbXkgJHR5cGUgPSBTdHJpcE51bGxhYmxlKEB7QHskdHVwbGV9WzFdfVskZF0pOwotICAg
ICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkdHlwZSkgfHwg
JGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCR0eXBlKSkgeworICAg
ICAgICAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJs
b2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSIpOworICAgICAgICAgICAgICAgIH0g
ZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVy
YXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgJiRn
ZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNoaW5n
QXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyhK
UyR7dHlwZX06OmluZm8oKSkiKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBA
IC00MDk1LDkgKzQwOTcsOSBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAgICAgICBm
b3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAgICAgICAg
ICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbWV0
ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICAgICAgICAgICAgIHB1c2goQGFy
Z3VtZW50cywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW1ldGVy
LT50eXBlKSAuICIgIiAuICRwYXJhbWV0ZXItPm5hbWUpOworICAgICAgICAgICAgICAgIHB1c2go
QGFyZ3VtZW50cywgR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2Us
ICRwYXJhbWV0ZXItPnR5cGUpIC4gIiAiIC4gJHBhcmFtZXRlci0+bmFtZSk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdl
dE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIgLiBqb2luKCIs
ICIsIEBhcmd1bWVudHMpIC4gIik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNrcygkaW50
ZXJmYWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICIgLiAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+bmFtZSAuICIoIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKTtcbiIpOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC00MjM1LDE0ICs0MjM3LDE0IEBAIHN1YiBHZW5lcmF0ZUNh
bGxiYWNrSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5J
bXBsKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKICAgICAgICAgICAgIG15ICRmdW5jdGlv
bk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6JHtmdW5jdGlvbk5h
bWV9KCIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVS
ZXR1cm5UeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlKSAuICIgJHtjbGFzc05hbWV9Ojoke2Z1bmN0aW9uTmFtZX0oIik7CiAKICAgICAgICAgICAg
IG15IEBhcmdzID0gKCk7CiAgICAgICAgICAgICBteSBAYXJnc0NoZWNrID0gKCk7CiAgICAgICAg
ICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAgIG15ICRw
YXJhbU5hbWUgPSAkcGFyYW0tPm5hbWU7CiAgICAgICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JU
eXBlSW5JbXBsKCRwYXJhbS0+dHlwZSwgMSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAYXJncywg
R2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW0tPnR5cGUpIC4gIiAi
IC4gJHBhcmFtTmFtZSk7CisgICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlQXJn
dW1lbnRUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRwYXJhbS0+dHlwZSwgMCkgLiAiICIg
LiAkcGFyYW1OYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCBqb2luKCIsICIsIEBhcmdzKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IilcbiIpOwpAQCAtNDUwMSw3ICs0NTAzLDYgQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAgIkRp
Y3Rpb25hcnkiID0+ICJEaWN0aW9uYXJ5IiwKICAgICAiRXZlbnRMaXN0ZW5lciIgPT4gIlJlZlB0
cjxFdmVudExpc3RlbmVyPiIsCiAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgPT4gIlJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiwKLSAgICAiWFBhdGhOU1Jlc29sdmVyIiA9PiAiUmVm
UHRyPFhQYXRoTlNSZXNvbHZlcj4iLAogICAgICJhbnkiID0+ICJKU0M6OkpTVmFsdWUiLAogICAg
ICJib29sZWFuIiA9PiAiYm9vbCIsCiAgICAgImJ5dGUiID0+ICJpbnQ4X3QiLApAQCAtNDU1NCwx
MiArNDU1NSwyMCBAQCBzdWIgR2V0TmF0aXZlVmVjdG9ySW5uZXJUeXBlCiAgICAgcmV0dXJuICJS
ZWZQdHI8JGlubmVyVHlwZT4iOwogfQogCi1zdWIgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcwor
c3ViIEdldE5hdGl2ZUFyZ3VtZW50VHlwZUZvckNhbGxiYWNrcwogewogICAgIG15ICgkaW50ZXJm
YWNlLCAkdHlwZSkgPSBAXzsKIAotICAgIHJldHVybiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJiIgaWYgJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7CiAgICAgcmV0dXJu
ICJjb25zdCBTdHJpbmcmIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsK
KyAgICByZXR1cm4gR2V0TmF0aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAk
dHlwZSk7Cit9CisKK3N1YiBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzCit7CisgICAg
bXkgKCRpbnRlcmZhY2UsICR0eXBlKSA9IEBfOworCisgICAgcmV0dXJuICJSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiYmIiBpZiAkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIjsK
KyAgICByZXR1cm4gImNvbnN0IFN0cmluZyYiIGlmICEkaW50ZXJmYWNlLT5pc0NhbGxiYWNrICYm
ICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwogICAgIHJldHVybiBHZXROYXRp
dmVUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsCShyZXZpc2lvbiAyMDQ3MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTEgKzEwMCwxNCBAQAogCiAgICAgLy8gRklYTUU6IFVz
aW5nICJ1bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgogICAg
IFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKG9wdGlv
bmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIFhQYXRoTlNS
ZXNvbHZlcj8gcmVzb2x2ZXIpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lv
biBjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZyBleHByZXNzaW9uLCBDdXN0b21YUGF0aE5TUmVz
b2x2ZXIgcmVzb2x2ZXIpOwogICAgIFhQYXRoTlNSZXNvbHZlciBjcmVhdGVOU1Jlc29sdmVyKE5v
ZGU/IG5vZGVSZXNvbHZlcik7CiAKICAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMg
ZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0g
WFBhdGhSZXN1bHQgZXZhbHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5k
ZWZpbmVkIiwgb3B0aW9uYWwgTm9kZT8gY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQYXRoTlNSZXNv
bHZlcj8gcmVzb2x2ZXIsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAw
LCBvcHRpb25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQpOworICAgIFtSYWlzZXNFeGNlcHRpb25d
IFhQYXRoUmVzdWx0IGV2YWx1YXRlKERPTVN0cmluZyBleHByZXNzaW9uLCBOb2RlPyBjb250ZXh0
Tm9kZSwgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyLAorICAgICAgICBvcHRpb25hbCB1
bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/IGluUmVzdWx0KTsK
IAogICAgIC8vIEZJWE1FOiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGxhc3QgcGFyYW1ldGVy
IHNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nLgogICAgIGJvb2xlYW4gZXhlY0NvbW1hbmQoRE9N
U3RyaW5nIGNvbW1hbmQsIG9wdGlvbmFsIGJvb2xlYW4gdXNlckludGVyZmFjZSA9IGZhbHNlLCBv
cHRpb25hbCBET01TdHJpbmc/IHZhbHVlID0gbnVsbCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94
bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
eG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyIDogcHVibGljIFhQYXRoTlNSZXNvbHZlciB7Cit9OworCit9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyov
CisKK2NhbGxiYWNrIGludGVyZmFjZSBDdXN0b21YUGF0aE5TUmVzb2x2ZXIgeworCisgICAgW0N1
c3RvbV0gRE9NU3RyaW5nPyBsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3RyaW5nIHByZWZpeCk7CisK
K307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwJKHJldmlzaW9uIDIw
NDczMikKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDEzICsyMywxMyBAQAogXSBpbnRlcmZhY2UgWFBhdGhFdmFsdWF0b3Igewog
ICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2YWx1
ZSBpcyB3cm9uZy4KICAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRl
RXhwcmVzc2lvbihvcHRpb25hbCBET01TdHJpbmcgZXhwcmVzc2lvbiA9ICJ1bmRlZmluZWQiLCBv
cHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9u
XSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihET01TdHJpbmcgZXhwcmVzc2lvbiwg
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyKTsKIAogICAgIFhQYXRoTlNSZXNvbHZlciBj
cmVhdGVOU1Jlc29sdmVyKG9wdGlvbmFsIE5vZGU/IG5vZGVSZXNvbHZlcik7CiAKICAgICAvLyBG
SVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3Jv
bmcuCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUob3B0aW9uYWwg
RE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBvcHRpb25hbCBOb2RlPyBjb250ZXh0Tm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Np
b24gPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgTm9kZT8gY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQ
YXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIsCisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0
IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQpOworICAgIFtSYWlzZXNF
eGNlcHRpb25dIFhQYXRoUmVzdWx0IGV2YWx1YXRlKERPTVN0cmluZyBleHByZXNzaW9uLCBOb2Rl
PyBjb250ZXh0Tm9kZSwgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyLAorICAgICAgICBv
cHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/IGlu
UmVzdWx0KTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlkbAko
cmV2aXNpb24gMjA0NzMyKQorKysgU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDYgQEAKICAqLwogCiBbCi0gICAgSlNDdXN0
b21Ub05hdGl2ZU9iamVjdCwKICAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBTa2lwVlRhYmxl
VmFsaWRhdGlvbiwKIF0gaW50ZXJmYWNlIFhQYXRoTlNSZXNvbHZlciB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286670</attachid>
            <date>2016-08-22 22:01:30 -0700</date>
            <delta_ts>2016-08-22 22:48:59 -0700</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-161030-20160822215933.patch</filename>
            <type>text/plain</type>
            <size>47957</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDc1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTIyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1vdW50IG9m
IGN1c3RvbSBiaW5kaW5nIGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaWRsIHRvIGdlbmVyYXRlIHRoZSBtdWNoIG9mIHRoZSBiaW5kaW5nIGNvZGUgcmF0aGVy
IHRoYW4gZW50aXJlbHkgcmVseWluZyBvbiBjdXN0b20gY29kZS4KKyAgICAgICAgV2UgY2FuIHJl
bW92ZSB0aGUgcmVtYWluaW5nIGN1c3RvbSBjb2RlIG9uY2UgdGhlIGNvZGUgZ2VuZXJhdG9yIGZ1
bGx5IHN1cHBvcnRzIG5vbi1GdW5jdGlvbk9ubHkgY2FsbGJhY2sgaW50ZXJmYWNlcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNl
VVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbk9yQ29uc3RydWN0b3IpOiBDYWxs
YmFjayBpbnRlcmZhY2VzIGRvbid0IGhhdmUgY2xhc3MgaW5mby4gT21pdCB0aGF0IGNoZWNrLgor
ICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6IEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFj
a3MgaXMgbm93IHNwbGl0IGludG8gR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzIGFu
ZAorICAgICAgICBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzLiBDYWxsIHRoZSBhcHBy
b3ByaWF0ZSB2ZXJzaW9uLgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9u
KTogRGl0dG8uCisgICAgICAgIChHZXROYXRpdmVBcmd1bWVudFR5cGVGb3JDYWxsYmFja3MpOiBT
cGxpdCBmcm9tIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MuIEFsd2F5cyB1c2UgY29uc3QgU3Ry
aW5nJi4KKyAgICAgICAgKEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MpOiBSZW5hbWVk
IGZyb20gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcy4gQXZvaWQgY29uc3QgU3RyaW5nJiBmb3Ig
YSBjYWxsYmFjaydzIHJldHVybiB2YWx1ZS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmg6IEFkZGVkLgorICAgICAgICAqIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvWFBh
dGhOU1Jlc29sdmVyLmlkbDogUmVtb3ZlZCBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0IHNpbmNlIGl0
IG5vIGxvbmdlciB1c2VzIGEgY3VzdG9tIHRvV3JhcHBlZCBmdW5jdGlvbi4KKwogMjAxNi0wOC0y
MiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyMDQ3NDUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjA0NzUzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTY1MCw2ICs2NTAsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIHdv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaWRsCiAgICAgd29ya2Vycy9Xb3JrZXJMb2NhdGlvbi5p
ZGwKIAorICAgIHhtbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsCiAgICAgeG1sL0RPTVBhcnNl
ci5pZGwKICAgICB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsCiAgICAgeG1sL1hNTEh0dHBSZXF1ZXN0
RXZlbnRUYXJnZXQuaWRsCkBAIC0xMTM5LDcgKzExNDAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNDdXN0b21FdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0N1
c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCi0gICAgYmluZGluZ3MvanMvSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisgICAgYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuY3BwCkBAIC0xMjUzLDcgKzEyNTQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1hNTERvY3VtZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0
b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQkocmV2aXNpb24gMjA0NzUzKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNzA0LDYgKzcwNCw3IEBAIEpTX0JJTkRJTkdfSURM
UyA9IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJz
L1dvcmtlckxvY2F0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS94bWwvQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvRE9NUGFyc2VyLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL3htbC9YTUxI
dHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDQ3NTMpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTI4NTcsNyArMjg1Nyw2IEBACiAJCTgzNUQzNjM3MTlGRjYxOTMwMDRDOTNBQiAv
KiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0
b20uaCAqLzsgfTsKIAkJODM2NzU4N0UxQzU2RTk5QjAwOEExMDg3IC8qIEpTSFRNTERhdGFFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
NEI4NkE5MUM1NkU5M0UwMEYzRjBFMyAvKiBKU0hUTUxEYXRhRWxlbWVudC5jcHAgKi87IH07CiAJ
CTgzNjc1ODdGMUM1NkU5OUIwMDhBMTA4NyAvKiBKU0hUTUxEYXRhRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0Qjg2QTgxQzU2RTkzRTAw
RjNGMEUzIC8qIEpTSFRNTERhdGFFbGVtZW50LmggKi87IH07Ci0JCTgzNkMxNDQzMUNERUFGRDgw
MDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZDMTQ0MjFDREVBRkNBMDA3MzQ5M0YgLyog
SlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovOyB9OwogCQk4MzZEQUEwNjFDRUFCODBEMDBB
MkI3MDcgLyogUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZEQUEwNTFDRUFCN0NEMDBBMkI3MDcgLyogUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggKi87IH07CiAJCTgzNkZCQ0VBMTc4QzExMzIwMEIyMUEx
NSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZGQkNFOTE3OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovOyB9OwogCQk4MzZGQkNFQzE3OEMxMTdGMDBCMjFBMTUg
LyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzZGQkNFQjE3OEMxMTdGMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eS5jcHAgKi87IH07CkBAIC0zNTc5LDYgKzM1NzgsOCBAQAogCQk5QjY5RDNCNTFCOThG
RkU5MDBFMzUxMkIgLyogSFRNTFNsb3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjY5RDNCMzFCOThGRkU5MDBFMzUxMkIgLyogSFRNTFNs
b3RFbGVtZW50LmggKi87IH07CiAJCTlCNjlEM0I4MUI5OTEwMDcwMEUzNTEyQiAvKiBKU0hUTUxT
bG90RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjY5RDNCNjFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuY3BwICov
OyB9OwogCQk5QjY5RDNCOTFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNjlEM0I3MUI5
OTEwMDcwMEUzNTEyQiAvKiBKU0hUTUxTbG90RWxlbWVudC5oICovOyB9OworCQk5QjZCQTlBQTFE
NkI5Q0EzMDA4MzY2MzUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMTNBRTUxRDZCOUFBNjAwODY0
QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLzsgfTsKKwkJOUI2QkE5QUIxRDZC
OUNBNzAwODM2NjM1IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjExM0FFNjFENkI5QUE2MDA4NjRBMUUg
LyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLzsgfTsKIAkJOUI2QzQxNTMxMzQ0OTQ5MDAw
MDg1QjYyIC8qIFN0cmluZ1dpdGhEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNkM0MTUyMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdX
aXRoRGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOUI3MTRFMjAxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjcxNEUxRTFDOTExNjY5
MDBBQzBFOTIgLyogRXZlbnRQYXRoLmNwcCAqLzsgfTsKIAkJOUI3MTRFMjExQzkxMTY2OTAwQUMw
RTkyIC8qIEV2ZW50UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUI3MTRFMUYxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5oICovOyB9OwpA
QCAtNTg0NSw4ICs1ODQ2LDcgQEAKIAkJRTBGRUYzNzJCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZl
bnRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTBGRUYzNzFCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuY3BwICovOyB9Owog
CQlFMTA3NDAwRDBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA3NDAwQjBFNzdCREMw
MDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5jcHAgKi87IH07CiAJCUUxMDc0MDBFMEU3N0JE
QzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA3NDAwQzBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNz
YWdlQ2hhbm5lbC5oICovOyB9OwotCQlFMTBCOTM3QzBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMEI5MzdCMEI3M0MwMEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5oICovOyB9OwotCQlFMTBCOTNDMzBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
LmNwcCAqLzsgfTsKKwkJRTEwQjkzQzMwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlckN1c3RvbS5jcHAgKi87IH07CiAJCUUxMEI5QjZDMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRp
dmVYUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMEI5QjZBMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2
ZXIuaCAqLzsgfTsKIAkJRTEwQjlCNkQwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNS
ZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTBCOUI2QjBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCAq
LzsgfTsKIAkJRTExMDAzMzAxQzlBQzNERTAwNDEyREQwIC8qIENTU0dyaWRBdXRvUmVwZWF0VmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEx
MDAzMkUxQzlBQzNERTAwNDEyREQwIC8qIENTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwICovOyB9
OwpAQCAtOTkwNSw3ICs5OTA1LDYgQEAKIAkJODM1RDM2MzYxOUZGNjE5MzAwNEM5M0FCIC8qIFN0
eWxlQnVpbGRlckN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHls
ZUJ1aWxkZXJDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1RjhCMjYx
RDJEOTBCQTAwRTQwOEVDIC8qIFNsb3RhYmxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
bG90YWJsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNjlFNThGMUFGREQw
MzAwMDg3REY2OCAvKiBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5vbkRvY3Vt
ZW50VHlwZUNoaWxkTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzNkMx
NDQyMUNERUFGQ0EwMDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkRBQTA1MUNFQUI3Q0QwMEEyQjcw
NyAvKiBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzNkZCQ0U5MTc4QzExMzIwMEIyMUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmlt
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRl
ZFR5cGVBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkZCQ0VC
MTc4QzExN0YwMEIyMUExNSAvKiBTVkdBbmltYXRlZFByb3BlcnR5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJvcGVydHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MzEsNiArMTA3MzAsOCBAQAogCQk5QjAzRDgwNjFC
QjMxMTBEMDBCNzY0RDkgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0
aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3
NjRFOCAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEU5IC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJu
YWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFibGVT
dHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
QjExM0FFNTFENkI5QUE2MDA4NjRBMUUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjExM0FFNjFENkI5QUE2MDA4
NjRBMUUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8qIFNoYWRvd1Jvb3QuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIgLyogSFRNTEZvcm1Db250cm9sc0Nv
bGxlY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxQUIwN0IxNjQ4QzdDNDAwNTFGM0YyIC8qIEpTSFRN
TEZvcm1Db250cm9sc0NvbGxlY3Rpb25DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbkN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc3Miw2ICsxMDc3Myw4IEBACiAJCTlCRDRF
OTE1MUM0NjI4NzIwMDUwNjVCQyAvKiBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDRFOTE4MUM0NjJDRkMwMDUwNjVCQyAvKiBD
dXN0b21FbGVtZW50UmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUJENEU5MTkxQzQ2MkNGQzAwNTA2NUJDIC8qIEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXN0b21FbGVtZW50UmVnaXN0cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUJENzU5OUYxRDZCOTAyMzAwQ0E4MjQ2
IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUJENzU5QTAxRDZCOTAyMzAwQ0E4MjQ2IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJEOEE5NTkxOEJFRkM3NjAwOTg3RTlBIC8qIENvbGxl
Y3Rpb25JbmRleENhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENvbGxlY3Rpb25JbmRleENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUJFNjcxMDkxRDVBRUIwNDAwMzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJFNjcxMEExRDVBRUIwNDAw
MzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzM2Myw4ICsxMzM2Niw3IEBACiAJCUUwRkVGMzcxQjQ3QzUzRUFDMUMx
RkJFRSAvKiBKU0V2ZW50U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRXZlbnRTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MTA3NDAwQjBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lc3NhZ2VDaGFubmVsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNzQwMEMwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVz
c2FnZUNoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZXNzYWdl
Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTBCOTM3QjBCNzNDMDBB
MDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTEw
QjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwQjlCNkEw
Qjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTEwQjlCNkIwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRo
TlNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXRp
dmVYUGF0aE5TUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTEw
MDMyRTFDOUFDM0RFMDA0MTJERDAgLyogQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5Mjc1LDYgKzE5Mjc3LDggQEAKIAkJ
QTgzQjc5MEMwQ0NBRkY4MzAwMEIwODI1IC8qIFhQYXRoICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5QjExM0FFNTFENkI5QUE2MDA4NjRBMUUgLyogSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwICovLAorCQkJCTlCMTEzQUU2MUQ2QjlBQTYwMDg2NEEx
RSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovLAogCQkJCTFBNzYyQzZCMEEwNzRGMjYw
MDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmNwcCAqLywKIAkJCQkxQTc2MkM2QzBBMDc0RjI2
MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oICovLAogCQkJCUJDNjBEQjQ3MEQyQTNEMUUw
MEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmNwcCAqLywKQEAgLTIxMDMxLDcgKzIxMDM1LDYg
QEAKIAkJCQlFMTgyNThBQjBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1
c3RvbS5jcHAgKi8sCiAJCQkJODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1l
bnRDdXN0b20uY3BwICovLAogCQkJCUJDMzQ4QkJEMERCN0Y1MzEwMDRBQkFCOSAvKiBKU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcCAqLywKLQkJCQk4MzZDMTQ0MjFDREVBRkNBMDA3MzQ5M0YgLyog
SlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovLAogCQkJCUExQzdGQUExMTMzQTVEMzUwMEQ2
NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0VGRTFFNDBEQ0E1RjMz
MDA3MzkyMTkgLyogSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCAqLywKIAkJCSk7CkBAIC0yMTMx
OSw4ICsyMTMyMiw3IEBACiAJCQkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJh
Y2tEYXRhLmNwcCAqLywKIAkJCQkxNDQ5RTI0QTEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFj
a0RhdGEuaCAqLywKIAkJCQk1MUVDOTI1RDBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCAqLywKLQkJCQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4
OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwICovLAotCQkJCUUxMEI5MzdCMEI3M0Mw
MEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovLAorCQkJCUUxMEI5M0My
MEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8s
CiAJCQkJOTNCNzBENEQwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5jcHAgKi8s
CiAJCQkJOTNCNzBENEUwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5oICovLAog
CQkJCTkzNUY0NTQwMEY3QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmNwcCAq
LywKQEAgLTIxOTE1LDYgKzIxOTE3LDggQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJMDBCOTMxODAxM0JBODY3RjAwMzVBOTQ4IC8qIHBhcnNlciAqLywKKwkJCQk5
QkQ3NTk5RjFENkI5MDIzMDBDQTgyNDYgLyogQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8sCisJ
CQkJOUJENzU5QTAxRDZCOTAyMzAwQ0E4MjQ2IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwg
Ki8sCiAJCQkJMUFDRTUzRTEwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5jcHAgKi8sCiAJ
CQkJMUFDRTUzRTIwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5oICovLAogCQkJCTFBQ0U1
M0UzMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaWRsICovLApAQCAtMjQ3NTgsNyArMjQ3
NjIsNiBAQAogCQkJCTlCRDRFOTE3MUM0NjI4NzIwMDUwNjVCQyAvKiBKU0N1c3RvbUVsZW1lbnRJ
bnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCRTY3MTBDMUQ1QUVCMjUwMDM0NTUxNCAv
KiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3NzhCODAx
MTVBNTgxQTAwQjVEMzcyIC8qIEpTQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUUx
MEI5MzdDMEI3M0MwMEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFFODJGOTAwQ0FBRkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUI1OURENjk5MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNl
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJFNjEwMzlFMThBOUQ2NUEwMERENTBENyAv
KiBKU0RhdGFDdWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1NzMsNiArMjU1NzYsNyBAQAogCQkJ
CTJENzdBQzI5MUJGMkI5ODYwMDcyNDcwQSAvKiBOU0FjY2Vzc2liaWxpdHlTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJENzdBQzJBMUJGMkI5ODcwMDcyNDcwQSAvKiBOU0FwcGxpY2F0aW9uU1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkI3Mzc2NTFCNDFDMDM1MDBBRTEzRUIgLyogTlNBdHRy
aWJ1dGVkU3RyaW5nU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjZCQTlBQjFENkI5Q0E3MDA4
MzY2MzUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
QjMxM0RGMUI2OTg4QzUwMEYyQUFCQyAvKiBOU0J1dHRvbkNlbGxTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNFMTI1MjUxMUExQkVCRDgwMDg2NDQ4MCAvKiBOU0NhbGVuZGFyRGF0ZVNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzFERjYzNTcxQUYxODdERDAwNzhGRDkxIC8qIE5TQ29sb3JTUEku
aCBpbiBIZWFkZXJzICovLApAQCAtMjgzNDcsNyArMjgzNTEsNyBAQAogCQkJCUU0Nzc4QjdGMTE1
QTU4MUEwMEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURF
QzI5NzYxMUI0RjJGOEQwMDVGNTk0NSAvKiBKU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxRUM5MjY1MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRl
bWVudEVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTEwQjkzQzMwQjczQzI5
MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUUxMEI5M0MzMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUU4MkY4RjBDQUFGQTlEMDAyMjM3QUUgLyog
SlNEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTlERDY5QTExOTAyOUU1MDA3RTk2
ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFNjEwMzlE
MThBOUQ2NTIwMERENTBENyAvKiBKU0RhdGFDdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODk3
NCw3ICsyODk3OCw2IEBACiAJCQkJQkM2MERCNDkwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhF
eGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzUwQTA3NEYyNjAwOTg5RjVC
IC8qIEpTWFBhdGhFeHByZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc3MEEw
NzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4MzZDMTQ0MzFDREVBRkQ4MDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzkwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhS
ZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFDN0ZBQTIxMzNBNUQzNTAwRDY3MzJEIC8q
IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRkUxRUEwRENB
NUY2NDAwNzM5MjE5IC8qIEpTWFNMVFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5
MzM0LDYgKzI5MzM3LDcgQEAKIAkJCQk5M0YxOUFGODA4MjQ1RTU5MDAxRTlBQkMgLyogUG9zaXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5MTlDMjMwQjdEMTg4NjAwQTU2OTk4IC8qIFBv
c2l0aW9uSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYzNDU5MkMxQUMyMjcxMDAw
RUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOUI2QkE5
QUExRDZCOUNBMzAwODM2NjM1IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUI3NzZENDNEMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTdFQkQwQTE5NDVEMDAwQThFRjVGIC8qIFByb2Nlc3Np
bmdJbnN0cnVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNFQjBDRDY4MUI0MDBG
QURBNzUgLyogUHJvZ3Jlc3NFdmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5j
cHAJKHJldmlzaW9uIDIwNDc1MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwOCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzIEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55
cG9wLmNvbSkKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgot
Ci0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgotI2luY2x1ZGUg
IkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQ
YWdlQ29uc29sZUNsaWVudC5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVk
ZSA8cnVudGltZS9KU0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotUmVmUHRyPEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyPiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAodmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBKU09iamVjdCogcmVzb2x2ZXJPYmplY3Qg
PSB2YWx1ZS5nZXRPYmplY3QoKTsKLSAgICBpZiAoIXJlc29sdmVyT2JqZWN0KSB7Ci0gICAgICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VSUik7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIH0KLQotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyKGV4ZWMsIHJlc29sdmVyT2JqZWN0LCBhc0pTRE9NV2luZG93KGV4ZWMtPnZt
RW50cnlHbG9iYWxPYmplY3QoKSkpKTsKLX0KLQotSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OkpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGN1c3RvbVJl
c29sdmVyLCBKU0RPTVdpbmRvdyogZ2xvYmFsT2JqZWN0KQotICAgIDogbV9jdXN0b21SZXNvbHZl
cihleGVjLT52bSgpLCBjdXN0b21SZXNvbHZlcikKLSAgICAsIG1fZ2xvYmFsT2JqZWN0KGV4ZWMt
PnZtKCksIGdsb2JhbE9iamVjdCkKLXsKLX0KLQotSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6On5K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlcigpCi17Ci19Ci0KLVN0cmluZyBKU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQotewotICAg
IEFTU0VSVChtX2N1c3RvbVJlc29sdmVyKTsKLQotICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9N
V2luZG93QmFzZTo6Y29tbW9uVk0oKSk7Ci0KLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBtX2dsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICAKLSAgICBKU1ZhbHVlIGZ1bmN0aW9uID0g
bV9jdXN0b21SZXNvbHZlci0+Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywg
Imxvb2t1cE5hbWVzcGFjZVVSSSIpKTsKLSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBDYWxs
VHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7Ci0gICAgaWYg
KGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7Ci0gICAgICAgIGNhbGxUeXBlID0gbV9jdXN0
b21SZXNvbHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEobV9jdXN0b21SZXNvbHZlci5n
ZXQoKSwgY2FsbERhdGEpOwotICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUp
IHsKLSAgICAgICAgICAgIGlmIChQYWdlQ29uc29sZUNsaWVudCogY29uc29sZSA9IG1fZ2xvYmFs
T2JqZWN0LT53cmFwcGVkKCkuY29uc29sZSgpKQotICAgICAgICAgICAgICAgIGNvbnNvbGUtPmFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0
ZXJhbCgiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkg
bWV0aG9kLiIpKTsKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAgICAgfQotICAg
ICAgICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7Ci0gICAgfQotCi0gICAgUmVm
PEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLQotICAgIE1h
cmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQoanNTdHJpbmdXaXRoQ2Fj
aGUoZXhlYywgcHJlZml4KSk7Ci0KLSAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsK
LSAgICBKU1ZhbHVlIHJldHZhbCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChleGVjLCBm
dW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBhcmdz
LCBleGNlcHRpb24pOwotCi0gICAgU3RyaW5nIHJlc3VsdDsKLSAgICBpZiAoZXhjZXB0aW9uKQot
ICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgaWYgKCFyZXR2YWwuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAgIHJlc3Vs
dCA9IHJldHZhbC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgfQotCi0gICAgcmV0
dXJuIHJlc3VsdDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkgY2hhbmdl
cyBvbjogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRp
dmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCShyZXZpc2lv
biAyMDQ3NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5oCShub25leGlzdGVudCkKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyX2gKLSNkZWZpbmUgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJfaAotCi0jaW5jbHVk
ZSAiWFBhdGhOU1Jlc29sdmVyLmgiCi0jaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KLSNpbmNsdWRl
IDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4K
LSNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3Mg
RXhlY1N0YXRlOwotICAgIGNsYXNzIEpTT2JqZWN0OwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLSAgICBjbGFzcyBGcmFtZTsKLSAgICBjbGFzcyBKU0RPTVdpbmRvdzsKLQotICAgIGNsYXNz
IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIDogcHVibGljIFhQYXRoTlNSZXNvbHZlciB7Ci0gICAg
cHVibGljOgotICAgICAgICBzdGF0aWMgUmVmUHRyPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBj
cmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOwotICAgICAgICAKLSAgICAgICAg
dmlydHVhbCB+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKTsKLQotICAgICAgICB2aXJ0dWFsIFN0
cmluZyBsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpOwotCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNET01XaW5kb3cqKTsKLQotICAgICAgICAvLyBKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcnMgYXJlIGFsd2F5cyB0ZW1wb3Jhcnkgc28gdXNpbmcgYSBTdHJvbmcgcmVmZXJl
bmNlIGlzIHNhZmUgaGVyZS4KLSAgICAgICAgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4gbV9j
dXN0b21SZXNvbHZlcjsKLSAgICAgICAgSlNDOjpTdHJvbmc8SlNET01XaW5kb3c+IG1fZ2xvYmFs
T2JqZWN0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxl
dGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCShyZXZpc2lvbiAy
MDQ3NDcpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmNwcDoyMDQ3NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQWxleGV5IFByb3NrdXJ5YWtvdiAo
YXBAbnlwb3AuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCisjaW5j
bHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNp
bmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitSZWZQdHI8SlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVs
bCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEpTT2JqZWN0KiByZXNvbHZlck9i
amVjdCA9IHZhbHVlLmdldE9iamVjdCgpOworICAgIGlmICghcmVzb2x2ZXJPYmplY3QpIHsKKyAg
ICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIoZXhlYywgcmVzb2x2ZXJPYmplY3QsIGFzSlNET01XaW5kb3coZXhl
Yy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpKSkpOworfQorCitKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
cjo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY3Vz
dG9tUmVzb2x2ZXIsIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QpCisgICAgOiBtX2N1c3RvbVJl
c29sdmVyKGV4ZWMtPnZtKCksIGN1c3RvbVJlc29sdmVyKQorICAgICwgbV9nbG9iYWxPYmplY3Qo
ZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0KQoreworfQorCitKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
cjo6fkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKCkKK3sKK30KKworU3RyaW5nIEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpCit7
CisgICAgQVNTRVJUKG1fY3VzdG9tUmVzb2x2ZXIpOworCisgICAgSlNMb2NrSG9sZGVyIGxvY2so
SlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpKTsKKworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1f
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIAorICAgIEpTVmFsdWUgZnVuY3Rp
b24gPSBtX2N1c3RvbVJlc29sdmVyLT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhl
eGVjLCAibG9va3VwTmFtZXNwYWNlVVJJIikpOworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAg
IENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKKyAg
ICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKKyAgICAgICAgY2FsbFR5cGUgPSBt
X2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJlc29s
dmVyLmdldCgpLCBjYWxsRGF0YSk7CisgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6
Tm9uZSkgeworICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBjb25zb2xlID0gbV9n
bG9iYWxPYmplY3QtPndyYXBwZWQoKS5jb25zb2xlKCkpCisgICAgICAgICAgICAgICAgY29uc29s
ZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVND
SUlMaXRlcmFsKCJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFj
ZVVSSSBtZXRob2QuIikpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICB9
CisgICAgICAgIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci5nZXQoKTsKKyAgICB9CisKKyAg
ICBSZWY8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOworCisg
ICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICBhcmdzLmFwcGVuZChqc1N0cmluZ1dp
dGhDYWNoZShleGVjLCBwcmVmaXgpKTsKKworICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0
aW9uOworICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4
ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCks
IGFyZ3MsIGV4Y2VwdGlvbik7CisKKyAgICBTdHJpbmcgcmVzdWx0OworICAgIGlmIChleGNlcHRp
b24pCisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBleGNlcHRpb24pOworICAgIGVsc2Ug
eworICAgICAgICBpZiAoIXJldHZhbC5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICAgICAg
cmVzdWx0ID0gcmV0dmFsLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXJDdXN0b20uY3BwCShyZXZpc2lvbiAyMDQ3NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDE0ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25z
b2xlQ2xpZW50LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDxydW50
aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAtNDEsNTggKzM3LDM0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotUmVmUHRyPEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAodmFsdWUuaXNVbmRlZmlu
ZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBKU09iamVjdCogcmVz
b2x2ZXJPYmplY3QgPSB2YWx1ZS5nZXRPYmplY3QoKTsKLSAgICBpZiAoIXJlc29sdmVyT2JqZWN0
KSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VSUik7Ci0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKGV4ZWMsIHJlc29sdmVyT2JqZWN0LCBhc0pTRE9NV2lu
ZG93KGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSkpKTsKLX0KLQotSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXI6OkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIGN1c3RvbVJlc29sdmVyLCBKU0RPTVdpbmRvdyogZ2xvYmFsT2JqZWN0KQotICAgIDogbV9j
dXN0b21SZXNvbHZlcihleGVjLT52bSgpLCBjdXN0b21SZXNvbHZlcikKLSAgICAsIG1fZ2xvYmFs
T2JqZWN0KGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdCkKLXsKLX0KLQotSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcigpCi17Ci19Ci0KIFN0cmluZyBKU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJl
Zml4KQogewotICAgIEFTU0VSVChtX2N1c3RvbVJlc29sdmVyKTsKKyAgICBSZWY8SlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOworCisgICAgYXV0byogZ2xvYmFs
T2JqZWN0ID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSBn
bG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKIAotICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9N
V2luZG93QmFzZTo6Y29tbW9uVk0oKSk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsT2Jq
ZWN0LT52bSgpKTsKIAotICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCk7Ci0gICAgICAgIAotICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29s
dmVyLT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAibG9va3VwTmFtZXNw
YWNlVVJJIikpOworICAgIEpTT2JqZWN0KiBjdXN0b21SZXNvbHZlciA9IG1fZGF0YS0+Y2FsbGJh
Y2soKTsKKyAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gY3VzdG9tUmVzb2x2ZXItPmdldChleGVjLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJsb29rdXBOYW1lc3BhY2VVUkkiKSk7CiAgICAg
Q2FsbERhdGEgY2FsbERhdGE7CiAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShm
dW5jdGlvbiwgY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkg
ewotICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdl
dENhbGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGNhbGxEYXRhKTsKKyAgICAgICAgY2Fs
bFR5cGUgPSBjdXN0b21SZXNvbHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEoY3VzdG9t
UmVzb2x2ZXIsIGNhbGxEYXRhKTsKICAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlOjpO
b25lKSB7Ci0gICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIGNvbnNvbGUgPSBtX2ds
b2JhbE9iamVjdC0+d3JhcHBlZCgpLmNvbnNvbGUoKSkKKyAgICAgICAgICAgIGlmIChQYWdlQ29u
c29sZUNsaWVudCogY29uc29sZSA9IGFzSlNET01XaW5kb3coZ2xvYmFsT2JqZWN0KS0+d3JhcHBl
ZCgpLmNvbnNvbGUoKSkKICAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIlhQYXRoTlNS
ZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKSk7CiAg
ICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24g
PSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOworICAgICAgICBmdW5jdGlvbiA9IGN1c3RvbVJlc29s
dmVyOwogICAgIH0KIAotICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gcHJvdGVjdGVk
VGhpcygqdGhpcyk7Ci0KICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAgIGFyZ3Mu
YXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIHByZWZpeCkpOwogCiAgICAgTmFrZWRQdHI8
RXhjZXB0aW9uPiBleGNlcHRpb247Ci0gICAgSlNWYWx1ZSByZXR2YWwgPSBKU01haW5UaHJlYWRF
eGVjU3RhdGU6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgbV9jdXN0
b21SZXNvbHZlci5nZXQoKSwgYXJncywgZXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlIHJldHZhbCA9
IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNh
bGxEYXRhLCBjdXN0b21SZXNvbHZlciwgYXJncywgZXhjZXB0aW9uKTsKIAogICAgIFN0cmluZyBy
ZXN1bHQ7CiAgICAgaWYgKGV4Y2VwdGlvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKHJldmlzaW9uIDIw
NDc1MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3Vz
dG9tLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNYUGF0aE5TUmVzb2x2ZXIuaCIKLQotI2luY2x1
ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gSlNYUGF0aE5T
UmVzb2x2ZXI6OnRvV3JhcHBlZChFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQotewot
ICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU1hQYXRoTlNSZXNvbHZlcjo6aW5mbygpKSkKLSAgICAg
ICAgcmV0dXJuICZqc0Nhc3Q8SlNYUGF0aE5TUmVzb2x2ZXIqPihhc09iamVjdCh2YWx1ZSkpLT53
cmFwcGVkKCk7Ci0KLSAgICByZXR1cm4gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSgm
c3RhdGUsIHZhbHVlKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJl
dmlzaW9uIDIwNDc1MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xOTExLDcgKzE5MTEsOSBAQCBFTkQKICAg
ICAgICAgICAgIGZvciBteSAkdHVwbGUgKEB7JFN9KSB7CiAgICAgICAgICAgICAgICAgbXkgJG92
ZXJsb2FkID0gQHskdHVwbGV9WzBdOwogICAgICAgICAgICAgICAgIG15ICR0eXBlID0gU3RyaXBO
dWxsYWJsZShAe0B7JHR1cGxlfVsxXX1bJGRdKTsKLSAgICAgICAgICAgICAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVk
QXJyYXlUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+
SXNDYWxsYmFja0ludGVyZmFjZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgJiRnZW5l
cmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+
SXNXcmFwcGVyVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUo
JHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5l
Y2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHMoSlMke3R5cGV9OjppbmZvKCkpIik7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNDA5NSw5ICs0MDk3LDkgQEAgc3Vi
IEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7
JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbXkgQGFyZ3VtZW50cyA9ICgp
OwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1l
dGVyc30pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEdldE5hdGl2ZVR5cGVG
b3JDYWxsYmFja3MoJGludGVyZmFjZSwgJHBhcmFtZXRlci0+dHlwZSkgLiAiICIgLiAkcGFyYW1l
dGVyLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEdldE5hdGl2ZUFy
Z3VtZW50VHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW1ldGVyLT50eXBlKSAuICIg
IiAuICRwYXJhbWV0ZXItPm5hbWUpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsICIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tz
KCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgIiAuICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdl
dE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIgLiBq
b2luKCIsICIsIEBhcmd1bWVudHMpIC4gIik7XG4iKTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
NDIzNSwxNCArNDIzNywxNCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uCiAK
ICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluSW1wbCgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+dHlwZSk7CiAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPm5hbWU7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAuIEdldE5h
dGl2ZVR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5
cGUpIC4gIiAke2NsYXNzTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSgiKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNrcygk
aW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6
JHtmdW5jdGlvbk5hbWV9KCIpOwogCiAgICAgICAgICAgICBteSBAYXJncyA9ICgpOwogICAgICAg
ICAgICAgbXkgQGFyZ3NDaGVjayA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0g
KEBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1l
OwogICAgICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluSW1wbCgkcGFyYW0tPnR5cGUs
IDEpOwotICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFj
a3MoJGludGVyZmFjZSwgJHBhcmFtLT50eXBlKSAuICIgIiAuICRwYXJhbU5hbWUpOworICAgICAg
ICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZUFyZ3VtZW50VHlwZUZvckNhbGxiYWNrcygk
aW50ZXJmYWNlLCAkcGFyYW0tPnR5cGUsIDApIC4gIiAiIC4gJHBhcmFtTmFtZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgam9pbigiLCAiLCBAYXJncykp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIpXG4iKTsKQEAgLTQ1MDEsNyArNDUw
Myw2IEBAIG15ICVuYXRpdmVUeXBlID0gKAogICAgICJEaWN0aW9uYXJ5IiA9PiAiRGljdGlvbmFy
eSIsCiAgICAgIkV2ZW50TGlzdGVuZXIiID0+ICJSZWZQdHI8RXZlbnRMaXN0ZW5lcj4iLAogICAg
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiID0+ICJSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiIsCi0gICAgIlhQYXRoTlNSZXNvbHZlciIgPT4gIlJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IiwK
ICAgICAiYW55IiA9PiAiSlNDOjpKU1ZhbHVlIiwKICAgICAiYm9vbGVhbiIgPT4gImJvb2wiLAog
ICAgICJieXRlIiA9PiAiaW50OF90IiwKQEAgLTQ1NTQsMTIgKzQ1NTUsMjAgQEAgc3ViIEdldE5h
dGl2ZVZlY3RvcklubmVyVHlwZQogICAgIHJldHVybiAiUmVmUHRyPCRpbm5lclR5cGU+IjsKIH0K
IAotc3ViIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MKK3N1YiBHZXROYXRpdmVBcmd1bWVudFR5
cGVGb3JDYWxsYmFja3MKIHsKICAgICBteSAoJGludGVyZmFjZSwgJHR5cGUpID0gQF87CiAKLSAg
ICByZXR1cm4gIlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYiIGlmICR0eXBlIGVxICJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUiOwogICAgIHJldHVybiAiY29uc3QgU3RyaW5nJiIgaWYgJGNv
ZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7CisgICAgcmV0dXJuIEdldE5hdGl2ZVJl
dHVyblR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJHR5cGUpOworfQorCitzdWIgR2V0TmF0
aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNrcworeworICAgIG15ICgkaW50ZXJmYWNlLCAkdHlwZSkg
PSBAXzsKKworICAgIHJldHVybiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiIgaWYg
JHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7CisgICAgcmV0dXJuICJjb25zdCBTdHJp
bmcmIiBpZiAhJGludGVyZmFjZS0+aXNDYWxsYmFjayAmJiAkY29kZUdlbmVyYXRvci0+SXNTdHJp
bmdUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gR2V0TmF0aXZlVHlwZSgkaW50ZXJmYWNlLCAkdHlw
ZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMjA0NzUzKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTAw
LDExICsxMDAsMTQgQEAKIAogICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZh
dWx0IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4KICAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0
aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihvcHRpb25hbCBET01TdHJpbmcgZXhwcmVzc2lv
biA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyKTsKKyAg
ICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihET01T
dHJpbmcgZXhwcmVzc2lvbiwgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyKTsKICAgICBY
UGF0aE5TUmVzb2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihOb2RlPyBub2RlUmVzb2x2ZXIpOwogCiAg
ICAgLy8gRklYTUU6IFVzaW5nICJ1bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVl
IGlzIHdyb25nLgogICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoUmVzdWx0IGV2YWx1YXRlKG9w
dGlvbmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIE5vZGU/
IGNvbnRleHROb2RlLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyLAogICAgICAg
ICBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/
IGluUmVzdWx0KTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShE
T01TdHJpbmcgZXhwcmVzc2lvbiwgTm9kZT8gY29udGV4dE5vZGUsIEN1c3RvbVhQYXRoTlNSZXNv
bHZlciByZXNvbHZlciwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdHlwZSA9IDAs
IG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CiAKICAgICAvLyBGSVhNRTogVGhlIGRl
ZmF1bHQgdmFsdWUgZm9yIHRoZSBsYXN0IHBhcmFtZXRlciBzaG91bGQgYmUgdGhlIGVtcHR5IHN0
cmluZy4KICAgICBib29sZWFuIGV4ZWNDb21tYW5kKERPTVN0cmluZyBjb21tYW5kLCBvcHRpb25h
bCBib29sZWFuIHVzZXJJbnRlcmZhY2UgPSBmYWxzZSwgb3B0aW9uYWwgRE9NU3RyaW5nPyB2YWx1
ZSA9IG51bGwpOwpJbmRleDogU291cmNlL1dlYkNvcmUveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2
ZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJYUGF0aE5TUmVzb2x2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1c3RvbVhQYXRoTlNSZXNvbHZlciA6IHB1
YmxpYyBYUGF0aE5TUmVzb2x2ZXIgeworfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUveG1s
L0N1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
eG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YkNvcmUveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwzNSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyogbWV0OgorKgor
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisq
IGRpc3RyaWJ1dGlvbi4KKyogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCitjYWxsYmFjayBpbnRlcmZhY2Ug
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyIHsKKworICAgIFtDdXN0b21dIERPTVN0cmluZz8gbG9va3Vw
TmFtZXNwYWNlVVJJKERPTVN0cmluZyBwcmVmaXgpOworCit9OwpJbmRleDogU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhFdmFsdWF0b3IuaWRsCShyZXZpc2lvbiAyMDQ3NTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMyArMjMsMTMg
QEAKIF0gaW50ZXJmYWNlIFhQYXRoRXZhbHVhdG9yIHsKICAgICAvLyBGSVhNRTogVXNpbmcgInVu
ZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCiAgICAgW1JhaXNl
c0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24ob3B0aW9uYWwgRE9N
U3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgWFBhdGhOU1Jlc29sdmVy
PyByZXNvbHZlcik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNzaW9uIGNyZWF0
ZUV4cHJlc3Npb24oRE9NU3RyaW5nIGV4cHJlc3Npb24sIEN1c3RvbVhQYXRoTlNSZXNvbHZlciBy
ZXNvbHZlcik7CiAKICAgICBYUGF0aE5TUmVzb2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihvcHRpb25h
bCBOb2RlPyBub2RlUmVzb2x2ZXIpOwogCiAgICAgLy8gRklYTUU6IFVzaW5nICJ1bmRlZmluZWQi
IGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgotICAgIFtSYWlzZXNFeGNlcHRp
b25dIFhQYXRoUmVzdWx0IGV2YWx1YXRlKG9wdGlvbmFsIERPTVN0cmluZyBleHByZXNzaW9uID0g
InVuZGVmaW5lZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgTm9kZT8gY29u
dGV4dE5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgWFBhdGhOU1Jlc29s
dmVyPyByZXNvbHZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCB1bnNpZ25l
ZCBzaG9ydCB0eXBlID0gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBYUGF0
aFJlc3VsdD8gaW5SZXN1bHQpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoUmVzdWx0IGV2
YWx1YXRlKG9wdGlvbmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5lZCIsIG9wdGlv
bmFsIE5vZGU/IGNvbnRleHROb2RlLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVy
LAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBh
dGhSZXN1bHQ/IGluUmVzdWx0KTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aFJlc3VsdCBl
dmFsdWF0ZShET01TdHJpbmcgZXhwcmVzc2lvbiwgTm9kZT8gY29udGV4dE5vZGUsIEN1c3RvbVhQ
YXRoTlNSZXNvbHZlciByZXNvbHZlciwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQg
dHlwZSA9IDAsIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CiB9OwpJbmRleDogU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwJKHJldmlzaW9uIDIwNDc1MykKKysrIFNv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
OSw3ICsxOSw2IEBACiAgKi8KIAogWwotICAgIEpTQ3VzdG9tVG9OYXRpdmVPYmplY3QsCiAgICAg
Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiBdIGludGVyZmFj
ZSBYUGF0aE5TUmVzb2x2ZXIgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286678</attachid>
            <date>2016-08-22 22:49:03 -0700</date>
            <delta_ts>2016-08-23 21:30:27 -0700</delta_ts>
            <desc>Fixed Windows build</desc>
            <filename>bug-161030-20160822224705.patch</filename>
            <type>text/plain</type>
            <size>48543</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDc1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTIyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1vdW50IG9m
IGN1c3RvbSBiaW5kaW5nIGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaWRsIHRvIGdlbmVyYXRlIHRoZSBtdWNoIG9mIHRoZSBiaW5kaW5nIGNvZGUgcmF0aGVy
IHRoYW4gZW50aXJlbHkgcmVseWluZyBvbiBjdXN0b20gY29kZS4KKyAgICAgICAgV2UgY2FuIHJl
bW92ZSB0aGUgcmVtYWluaW5nIGN1c3RvbSBjb2RlIG9uY2UgdGhlIGNvZGUgZ2VuZXJhdG9yIGZ1
bGx5IHN1cHBvcnRzIG5vbi1GdW5jdGlvbk9ubHkgY2FsbGJhY2sgaW50ZXJmYWNlcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNl
VVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbk9yQ29uc3RydWN0b3IpOiBDYWxs
YmFjayBpbnRlcmZhY2VzIGRvbid0IGhhdmUgY2xhc3MgaW5mby4gT21pdCB0aGF0IGNoZWNrLgor
ICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6IEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFj
a3MgaXMgbm93IHNwbGl0IGludG8gR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzIGFu
ZAorICAgICAgICBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzLiBDYWxsIHRoZSBhcHBy
b3ByaWF0ZSB2ZXJzaW9uLgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9u
KTogRGl0dG8uCisgICAgICAgIChHZXROYXRpdmVBcmd1bWVudFR5cGVGb3JDYWxsYmFja3MpOiBT
cGxpdCBmcm9tIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MuIEFsd2F5cyB1c2UgY29uc3QgU3Ry
aW5nJi4KKyAgICAgICAgKEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MpOiBSZW5hbWVk
IGZyb20gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcy4gQXZvaWQgY29uc3QgU3RyaW5nJiBmb3Ig
YSBjYWxsYmFjaydzIHJldHVybiB2YWx1ZS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmg6IEFkZGVkLgorICAgICAgICAqIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvWFBh
dGhOU1Jlc29sdmVyLmlkbDogUmVtb3ZlZCBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0IHNpbmNlIGl0
IG5vIGxvbmdlciB1c2VzIGEgY3VzdG9tIHRvV3JhcHBlZCBmdW5jdGlvbi4KKwogMjAxNi0wOC0y
MiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyMDQ3NDUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjA0NzUzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTY1MCw2ICs2NTAsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIHdv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaWRsCiAgICAgd29ya2Vycy9Xb3JrZXJMb2NhdGlvbi5p
ZGwKIAorICAgIHhtbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsCiAgICAgeG1sL0RPTVBhcnNl
ci5pZGwKICAgICB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsCiAgICAgeG1sL1hNTEh0dHBSZXF1ZXN0
RXZlbnRUYXJnZXQuaWRsCkBAIC0xMTM5LDcgKzExNDAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNDdXN0b21FdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0N1
c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCi0gICAgYmluZGluZ3MvanMvSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisgICAgYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuY3BwCkBAIC0xMjUzLDcgKzEyNTQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1hNTERvY3VtZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0
b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvUmVhZGFi
bGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQkocmV2aXNpb24gMjA0NzUzKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNzA0LDYgKzcwNCw3IEBAIEpTX0JJTkRJTkdfSURM
UyA9IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJz
L1dvcmtlckxvY2F0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS94bWwvQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvRE9NUGFyc2VyLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL3htbC9YTUxI
dHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDQ3NTMpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTI4NTcsNyArMjg1Nyw2IEBACiAJCTgzNUQzNjM3MTlGRjYxOTMwMDRDOTNBQiAv
KiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0
b20uaCAqLzsgfTsKIAkJODM2NzU4N0UxQzU2RTk5QjAwOEExMDg3IC8qIEpTSFRNTERhdGFFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
NEI4NkE5MUM1NkU5M0UwMEYzRjBFMyAvKiBKU0hUTUxEYXRhRWxlbWVudC5jcHAgKi87IH07CiAJ
CTgzNjc1ODdGMUM1NkU5OUIwMDhBMTA4NyAvKiBKU0hUTUxEYXRhRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0Qjg2QTgxQzU2RTkzRTAw
RjNGMEUzIC8qIEpTSFRNTERhdGFFbGVtZW50LmggKi87IH07Ci0JCTgzNkMxNDQzMUNERUFGRDgw
MDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZDMTQ0MjFDREVBRkNBMDA3MzQ5M0YgLyog
SlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovOyB9OwogCQk4MzZEQUEwNjFDRUFCODBEMDBB
MkI3MDcgLyogUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZEQUEwNTFDRUFCN0NEMDBBMkI3MDcgLyogUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggKi87IH07CiAJCTgzNkZCQ0VBMTc4QzExMzIwMEIyMUEx
NSAvKiBTVkdBbmltYXRlZFR5cGVBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzZGQkNFOTE3OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovOyB9OwogCQk4MzZGQkNFQzE3OEMxMTdGMDBCMjFBMTUg
LyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzZGQkNFQjE3OEMxMTdGMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eS5jcHAgKi87IH07CkBAIC0zNTc5LDYgKzM1NzgsOCBAQAogCQk5QjY5RDNCNTFCOThG
RkU5MDBFMzUxMkIgLyogSFRNTFNsb3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjY5RDNCMzFCOThGRkU5MDBFMzUxMkIgLyogSFRNTFNs
b3RFbGVtZW50LmggKi87IH07CiAJCTlCNjlEM0I4MUI5OTEwMDcwMEUzNTEyQiAvKiBKU0hUTUxT
bG90RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjY5RDNCNjFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuY3BwICov
OyB9OwogCQk5QjY5RDNCOTFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNjlEM0I3MUI5
OTEwMDcwMEUzNTEyQiAvKiBKU0hUTUxTbG90RWxlbWVudC5oICovOyB9OworCQk5QjZCQTlBQTFE
NkI5Q0EzMDA4MzY2MzUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMTNBRTUxRDZCOUFBNjAwODY0
QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLzsgfTsKKwkJOUI2QkE5QUIxRDZC
OUNBNzAwODM2NjM1IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjExM0FFNjFENkI5QUE2MDA4NjRBMUUg
LyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLzsgfTsKIAkJOUI2QzQxNTMxMzQ0OTQ5MDAw
MDg1QjYyIC8qIFN0cmluZ1dpdGhEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNkM0MTUyMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdX
aXRoRGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOUI3MTRFMjAxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjcxNEUxRTFDOTExNjY5
MDBBQzBFOTIgLyogRXZlbnRQYXRoLmNwcCAqLzsgfTsKIAkJOUI3MTRFMjExQzkxMTY2OTAwQUMw
RTkyIC8qIEV2ZW50UGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUI3MTRFMUYxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5oICovOyB9OwpA
QCAtNTg0NSw4ICs1ODQ2LDcgQEAKIAkJRTBGRUYzNzJCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZl
bnRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTBGRUYzNzFCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuY3BwICovOyB9Owog
CQlFMTA3NDAwRDBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA3NDAwQjBFNzdCREMw
MDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5jcHAgKi87IH07CiAJCUUxMDc0MDBFMEU3N0JE
QzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTA3NDAwQzBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNz
YWdlQ2hhbm5lbC5oICovOyB9OwotCQlFMTBCOTM3QzBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMEI5MzdCMEI3M0MwMEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5oICovOyB9OwotCQlFMTBCOTNDMzBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
LmNwcCAqLzsgfTsKKwkJRTEwQjkzQzMwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlckN1c3RvbS5jcHAgKi87IH07CiAJCUUxMEI5QjZDMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRp
dmVYUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMEI5QjZBMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2
ZXIuaCAqLzsgfTsKIAkJRTEwQjlCNkQwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNS
ZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTBCOUI2QjBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCAq
LzsgfTsKIAkJRTExMDAzMzAxQzlBQzNERTAwNDEyREQwIC8qIENTU0dyaWRBdXRvUmVwZWF0VmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEx
MDAzMkUxQzlBQzNERTAwNDEyREQwIC8qIENTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwICovOyB9
OwpAQCAtOTkwNSw3ICs5OTA1LDYgQEAKIAkJODM1RDM2MzYxOUZGNjE5MzAwNEM5M0FCIC8qIFN0
eWxlQnVpbGRlckN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHls
ZUJ1aWxkZXJDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1RjhCMjYx
RDJEOTBCQTAwRTQwOEVDIC8qIFNsb3RhYmxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
bG90YWJsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNjlFNThGMUFGREQw
MzAwMDg3REY2OCAvKiBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5vbkRvY3Vt
ZW50VHlwZUNoaWxkTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzNkMx
NDQyMUNERUFGQ0EwMDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkRBQTA1MUNFQUI3Q0QwMEEyQjcw
NyAvKiBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzNkZCQ0U5MTc4QzExMzIwMEIyMUExNSAvKiBTVkdBbmltYXRlZFR5cGVBbmlt
YXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRl
ZFR5cGVBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkZCQ0VC
MTc4QzExN0YwMEIyMUExNSAvKiBTVkdBbmltYXRlZFByb3BlcnR5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJvcGVydHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3MzEsNiArMTA3MzAsOCBAQAogCQk5QjAzRDgwNjFC
QjMxMTBEMDBCNzY0RDkgLyogUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUludGVybmFsc0J1aWx0
aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3
NjRFOCAvKiBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFtQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEU5IC8qIFdyaXRhYmxlU3RyZWFtSW50ZXJu
YWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGFibGVT
dHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
QjExM0FFNTFENkI5QUE2MDA4NjRBMUUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QjExM0FFNjFENkI5QUE2MDA4
NjRBMUUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIxOUI2N0UxQjk2NEU1MjAwMzQ4NzQ1IC8qIFNoYWRvd1Jvb3QuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIgLyogSFRNTEZvcm1Db250cm9sc0Nv
bGxlY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxQUIwN0IxNjQ4QzdDNDAwNTFGM0YyIC8qIEpTSFRN
TEZvcm1Db250cm9sc0NvbGxlY3Rpb25DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbkN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc3Miw2ICsxMDc3Myw4IEBACiAJCTlCRDRF
OTE1MUM0NjI4NzIwMDUwNjVCQyAvKiBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDRFOTE4MUM0NjJDRkMwMDUwNjVCQyAvKiBD
dXN0b21FbGVtZW50UmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUJENEU5MTkxQzQ2MkNGQzAwNTA2NUJDIC8qIEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXN0b21FbGVtZW50UmVnaXN0cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUJENzU5OUYxRDZCOTAyMzAwQ0E4MjQ2
IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUJENzU5QTAxRDZCOTAyMzAwQ0E4MjQ2IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJEOEE5NTkxOEJFRkM3NjAwOTg3RTlBIC8qIENvbGxl
Y3Rpb25JbmRleENhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENvbGxlY3Rpb25JbmRleENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUJFNjcxMDkxRDVBRUIwNDAwMzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJFNjcxMEExRDVBRUIwNDAw
MzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzM2Myw4ICsxMzM2Niw3IEBACiAJCUUwRkVGMzcxQjQ3QzUzRUFDMUMx
RkJFRSAvKiBKU0V2ZW50U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRXZlbnRTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MTA3NDAwQjBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lc3NhZ2VDaGFubmVsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNzQwMEMwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVz
c2FnZUNoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZXNzYWdl
Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTBCOTM3QjBCNzNDMDBB
MDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTEw
QjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwQjlCNkEw
Qjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTEwQjlCNkIwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRo
TlNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXRp
dmVYUGF0aE5TUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTEw
MDMyRTFDOUFDM0RFMDA0MTJERDAgLyogQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5Mjc1LDYgKzE5Mjc3LDggQEAKIAkJ
QTgzQjc5MEMwQ0NBRkY4MzAwMEIwODI1IC8qIFhQYXRoICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5QjExM0FFNTFENkI5QUE2MDA4NjRBMUUgLyogSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwICovLAorCQkJCTlCMTEzQUU2MUQ2QjlBQTYwMDg2NEEx
RSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovLAogCQkJCTFBNzYyQzZCMEEwNzRGMjYw
MDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmNwcCAqLywKIAkJCQkxQTc2MkM2QzBBMDc0RjI2
MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oICovLAogCQkJCUJDNjBEQjQ3MEQyQTNEMUUw
MEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmNwcCAqLywKQEAgLTIxMDMxLDcgKzIxMDM1LDYg
QEAKIAkJCQlFMTgyNThBQjBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29wZUN1
c3RvbS5jcHAgKi8sCiAJCQkJODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1l
bnRDdXN0b20uY3BwICovLAogCQkJCUJDMzQ4QkJEMERCN0Y1MzEwMDRBQkFCOSAvKiBKU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcCAqLywKLQkJCQk4MzZDMTQ0MjFDREVBRkNBMDA3MzQ5M0YgLyog
SlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovLAogCQkJCUExQzdGQUExMTMzQTVEMzUwMEQ2
NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0VGRTFFNDBEQ0E1RjMz
MDA3MzkyMTkgLyogSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCAqLywKIAkJCSk7CkBAIC0yMTMx
OSw4ICsyMTMyMiw3IEBACiAJCQkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJh
Y2tEYXRhLmNwcCAqLywKIAkJCQkxNDQ5RTI0QTEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFj
a0RhdGEuaCAqLywKIAkJCQk1MUVDOTI1RDBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCAqLywKLQkJCQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4
OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwICovLAotCQkJCUUxMEI5MzdCMEI3M0Mw
MEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovLAorCQkJCUUxMEI5M0My
MEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8s
CiAJCQkJOTNCNzBENEQwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5jcHAgKi8s
CiAJCQkJOTNCNzBENEUwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5oICovLAog
CQkJCTkzNUY0NTQwMEY3QzNCNUYwMEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmNwcCAq
LywKQEAgLTIxOTE1LDYgKzIxOTE3LDggQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJMDBCOTMxODAxM0JBODY3RjAwMzVBOTQ4IC8qIHBhcnNlciAqLywKKwkJCQk5
QkQ3NTk5RjFENkI5MDIzMDBDQTgyNDYgLyogQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8sCisJ
CQkJOUJENzU5QTAxRDZCOTAyMzAwQ0E4MjQ2IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwg
Ki8sCiAJCQkJMUFDRTUzRTEwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5jcHAgKi8sCiAJ
CQkJMUFDRTUzRTIwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5oICovLAogCQkJCTFBQ0U1
M0UzMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaWRsICovLApAQCAtMjQ3NTgsNyArMjQ3
NjIsNiBAQAogCQkJCTlCRDRFOTE3MUM0NjI4NzIwMDUwNjVCQyAvKiBKU0N1c3RvbUVsZW1lbnRJ
bnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCRTY3MTBDMUQ1QUVCMjUwMDM0NTUxNCAv
KiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3NzhCODAx
MTVBNTgxQTAwQjVEMzcyIC8qIEpTQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUUx
MEI5MzdDMEI3M0MwMEEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFFODJGOTAwQ0FBRkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUI1OURENjk5MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNl
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJFNjEwMzlFMThBOUQ2NUEwMERENTBENyAv
KiBKU0RhdGFDdWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1NzMsNiArMjU1NzYsNyBAQAogCQkJ
CTJENzdBQzI5MUJGMkI5ODYwMDcyNDcwQSAvKiBOU0FjY2Vzc2liaWxpdHlTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJENzdBQzJBMUJGMkI5ODcwMDcyNDcwQSAvKiBOU0FwcGxpY2F0aW9uU1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkI3Mzc2NTFCNDFDMDM1MDBBRTEzRUIgLyogTlNBdHRy
aWJ1dGVkU3RyaW5nU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjZCQTlBQjFENkI5Q0E3MDA4
MzY2MzUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
QjMxM0RGMUI2OTg4QzUwMEYyQUFCQyAvKiBOU0J1dHRvbkNlbGxTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNFMTI1MjUxMUExQkVCRDgwMDg2NDQ4MCAvKiBOU0NhbGVuZGFyRGF0ZVNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzFERjYzNTcxQUYxODdERDAwNzhGRDkxIC8qIE5TQ29sb3JTUEku
aCBpbiBIZWFkZXJzICovLApAQCAtMjgzNDcsNyArMjgzNTEsNyBAQAogCQkJCUU0Nzc4QjdGMTE1
QTU4MUEwMEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURF
QzI5NzYxMUI0RjJGOEQwMDVGNTk0NSAvKiBKU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxRUM5MjY1MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRl
bWVudEVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTEwQjkzQzMwQjczQzI5
MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUUxMEI5M0MzMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUU4MkY4RjBDQUFGQTlEMDAyMjM3QUUgLyog
SlNEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTlERDY5QTExOTAyOUU1MDA3RTk2
ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFNjEwMzlE
MThBOUQ2NTIwMERENTBENyAvKiBKU0RhdGFDdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODk3
NCw3ICsyODk3OCw2IEBACiAJCQkJQkM2MERCNDkwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhF
eGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzUwQTA3NEYyNjAwOTg5RjVC
IC8qIEpTWFBhdGhFeHByZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc3MEEw
NzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4MzZDMTQ0MzFDREVBRkQ4MDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzkwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhS
ZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFDN0ZBQTIxMzNBNUQzNTAwRDY3MzJEIC8q
IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRkUxRUEwRENB
NUY2NDAwNzM5MjE5IC8qIEpTWFNMVFByb2Nlc3Nvci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5
MzM0LDYgKzI5MzM3LDcgQEAKIAkJCQk5M0YxOUFGODA4MjQ1RTU5MDAxRTlBQkMgLyogUG9zaXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5MTlDMjMwQjdEMTg4NjAwQTU2OTk4IC8qIFBv
c2l0aW9uSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYzNDU5MkMxQUMyMjcxMDAw
RUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOUI2QkE5
QUExRDZCOUNBMzAwODM2NjM1IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUI3NzZENDNEMTEwNDUyNzUwMEJFQjBFQyAvKiBQcmludENvbnRleHQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTdFQkQwQTE5NDVEMDAwQThFRjVGIC8qIFByb2Nlc3Np
bmdJbnN0cnVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNFQjBDRDY4MUI0MDBG
QURBNzUgLyogUHJvZ3Jlc3NFdmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkocmV2aXNp
b24gMjA0NzUzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbElu
T25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQAogI2luY2x1ZGUgIkpTQ3J5
cHRvQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIgotI2luY2x1ZGUgIkpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCIKKyNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmNwcCIKICNpbmNsdWRlICJK
U0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5jcHAi
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuY3BwCShyZXZpc2lvbiAyMDQ3NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAJKG5vbmV4aXN0ZW50KQpAQCAt
MSwxMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxMyBBbGV4ZXkgUHJv
c2t1cnlha292IChhcEBueXBvcC5jb20pCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0
b20uaCIKLSNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJQYWdl
LmgiCi0jaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZi5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLVJlZlB0
cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgaWYgKHZhbHVlLmlzVW5k
ZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgSlNPYmplY3Qq
IHJlc29sdmVyT2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7Ci0gICAgaWYgKCFyZXNvbHZlck9i
amVjdCkgewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIp
OwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihleGVjLCByZXNvbHZlck9iamVjdCwgYXNKU0RP
TVdpbmRvdyhleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCkpKSk7Ci19Ci0KLUpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBjdXN0b21SZXNvbHZlciwgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCkKLSAgICA6
IG1fY3VzdG9tUmVzb2x2ZXIoZXhlYy0+dm0oKSwgY3VzdG9tUmVzb2x2ZXIpCi0gICAgLCBtX2ds
b2JhbE9iamVjdChleGVjLT52bSgpLCBnbG9iYWxPYmplY3QpCi17Ci19Ci0KLUpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyOjp+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKQotewotfQotCi1TdHJpbmcg
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcm
IHByZWZpeCkKLXsKLSAgICBBU1NFUlQobV9jdXN0b21SZXNvbHZlcik7Ci0KLSAgICBKU0xvY2tI
b2xkZXIgbG9jayhKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOwotCi0gICAgRXhlY1N0YXRl
KiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgCi0gICAgSlNW
YWx1ZSBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldChleGVjLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsICJsb29rdXBOYW1lc3BhY2VVUkkiKSk7Ci0gICAgQ2FsbERhdGEgY2Fs
bERhdGE7Ci0gICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2Fs
bERhdGEpOwotICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkgewotICAgICAgICBj
YWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKG1f
Y3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGNhbGxEYXRhKTsKLSAgICAgICAgaWYgKGNhbGxUeXBlID09
IENhbGxUeXBlOjpOb25lKSB7Ci0gICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIGNv
bnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+d3JhcHBlZCgpLmNvbnNvbGUoKSkKLSAgICAgICAgICAg
ICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBBU0NJSUxpdGVyYWwoIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9v
a3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKSk7Ci0gICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7
Ci0gICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOwot
ICAgIH0KLQotICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gcHJvdGVjdGVkVGhpcygq
dGhpcyk7Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5k
KGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIHByZWZpeCkpOwotCi0gICAgTmFrZWRQdHI8RXhjZXB0
aW9uPiBleGNlcHRpb247Ci0gICAgSlNWYWx1ZSByZXR2YWwgPSBKU01haW5UaHJlYWRFeGVjU3Rh
dGU6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgbV9jdXN0b21SZXNv
bHZlci5nZXQoKSwgYXJncywgZXhjZXB0aW9uKTsKLQotICAgIFN0cmluZyByZXN1bHQ7Ci0gICAg
aWYgKGV4Y2VwdGlvbikKLSAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7
Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmICghcmV0dmFsLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0g
ICAgICAgICAgICByZXN1bHQgPSByZXR2YWwudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwot
ICAgIH0KLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMg
LTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaAkocmV2aXNpb24gMjA0NzUzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDY1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3Au
Y29tKQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRl
ZiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcl9oCi0jZGVmaW5lIEpTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyX2gKLQotI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgotI2luY2x1ZGUgPGhlYXAvU3Ry
b25nLmg+Ci0jaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVudGlt
ZS9KU0NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+Ci0jaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBK
U0MgewotICAgIGNsYXNzIEV4ZWNTdGF0ZTsKLSAgICBjbGFzcyBKU09iamVjdDsKLX0KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgRnJhbWU7Ci0gICAgY2xhc3MgSlNET01XaW5k
b3c7Ci0KLSAgICBjbGFzcyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlciA6IHB1YmxpYyBYUGF0aE5T
UmVzb2x2ZXIgewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZlB0cjxKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlcj4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsKLSAg
ICAgICAgCi0gICAgICAgIHZpcnR1YWwgfkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKCk7Ci0KLSAg
ICAgICAgdmlydHVhbCBTdHJpbmcgbG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJl
Zml4KTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTRE9NV2luZG93Kik7Ci0KLSAgICAgICAg
Ly8gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJzIGFyZSBhbHdheXMgdGVtcG9yYXJ5IHNvIHVzaW5n
IGEgU3Ryb25nIHJlZmVyZW5jZSBpcyBzYWZlIGhlcmUuCi0gICAgICAgIEpTQzo6U3Ryb25nPEpT
Qzo6SlNPYmplY3Q+IG1fY3VzdG9tUmVzb2x2ZXI7Ci0gICAgICAgIEpTQzo6U3Ryb25nPEpTRE9N
V2luZG93PiBtX2dsb2JhbE9iamVjdDsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcl9oCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9t
LmNwcAkocmV2aXNpb24gMjA0NzQ3KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6MjA0NzQ3KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzIEFsZXhl
eSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRv
d0N1c3RvbS5oIgorI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwor
UmVmUHRyPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUu
aXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBKU09i
amVjdCogcmVzb2x2ZXJPYmplY3QgPSB2YWx1ZS5nZXRPYmplY3QoKTsKKyAgICBpZiAoIXJlc29s
dmVyT2JqZWN0KSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENI
X0VSUik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKGV4ZWMsIHJlc29sdmVyT2JqZWN0LCBh
c0pTRE9NV2luZG93KGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSkpKTsKK30KKworSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6OkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGN1c3RvbVJlc29sdmVyLCBKU0RPTVdpbmRvdyogZ2xvYmFsT2JqZWN0KQor
ICAgIDogbV9jdXN0b21SZXNvbHZlcihleGVjLT52bSgpLCBjdXN0b21SZXNvbHZlcikKKyAgICAs
IG1fZ2xvYmFsT2JqZWN0KGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdCkKK3sKK30KKworSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcigpCit7Cit9CisKK1N0
cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0
cmluZyYgcHJlZml4KQoreworICAgIEFTU0VSVChtX2N1c3RvbVJlc29sdmVyKTsKKworICAgIEpT
TG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKSk7CisKKyAgICBFeGVj
U3RhdGUqIGV4ZWMgPSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworICAgICAgICAKKyAg
ICBKU1ZhbHVlIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci0+Z2V0KGV4ZWMsIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoZXhlYywgImxvb2t1cE5hbWVzcGFjZVVSSSIpKTsKKyAgICBDYWxsRGF0
YSBjYWxsRGF0YTsKKyAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9u
LCBjYWxsRGF0YSk7CisgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7CisgICAg
ICAgIGNhbGxUeXBlID0gbV9jdXN0b21SZXNvbHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERh
dGEobV9jdXN0b21SZXNvbHZlci5nZXQoKSwgY2FsbERhdGEpOworICAgICAgICBpZiAoY2FsbFR5
cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKKyAgICAgICAgICAgIGlmIChQYWdlQ29uc29sZUNsaWVu
dCogY29uc29sZSA9IG1fZ2xvYmFsT2JqZWN0LT53cmFwcGVkKCkuY29uc29sZSgpKQorICAgICAg
ICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUg
YSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKyAgICAgICAgfQorICAgICAgICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0
KCk7CisgICAgfQorCisgICAgUmVmPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBwcm90ZWN0ZWRU
aGlzKCp0aGlzKTsKKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgYXJncy5h
cHBlbmQoanNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgcHJlZml4KSk7CisKKyAgICBOYWtlZFB0cjxF
eGNlcHRpb24+IGV4Y2VwdGlvbjsKKyAgICBKU1ZhbHVlIHJldHZhbCA9IEpTTWFpblRocmVhZEV4
ZWNTdGF0ZTo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2N1c3Rv
bVJlc29sdmVyLmdldCgpLCBhcmdzLCBleGNlcHRpb24pOworCisgICAgU3RyaW5nIHJlc3VsdDsK
KyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXhjZXB0
aW9uKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKCFyZXR2YWwuaXNVbmRlZmluZWRPck51bGwo
KSkKKyAgICAgICAgICAgIHJlc3VsdCA9IHJldHZhbC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
Yyk7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAkocmV2aXNpb24gMjA0NzQ3KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgogCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgog
I2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKQEAg
LTQxLDU4ICszNywzNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKLVJlZlB0cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXI6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgaWYg
KHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0g
ICAgSlNPYmplY3QqIHJlc29sdmVyT2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7Ci0gICAgaWYg
KCFyZXNvbHZlck9iamVjdCkgewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9N
SVNNQVRDSF9FUlIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihleGVjLCByZXNvbHZlck9i
amVjdCwgYXNKU0RPTVdpbmRvdyhleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCkpKSk7Ci19Ci0K
LUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBjdXN0b21SZXNvbHZlciwgSlNET01XaW5kb3cqIGdsb2JhbE9i
amVjdCkKLSAgICA6IG1fY3VzdG9tUmVzb2x2ZXIoZXhlYy0+dm0oKSwgY3VzdG9tUmVzb2x2ZXIp
Ci0gICAgLCBtX2dsb2JhbE9iamVjdChleGVjLT52bSgpLCBnbG9iYWxPYmplY3QpCi17Ci19Ci0K
LUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjp+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKQotewot
fQotCiBTdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShj
b25zdCBTdHJpbmcmIHByZWZpeCkKIHsKLSAgICBBU1NFUlQobV9jdXN0b21SZXNvbHZlcik7Cisg
ICAgUmVmPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKKwor
ICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IG1fZGF0YS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgRXhl
Y1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CiAKLSAgICBKU0xvY2tI
b2xkZXIgbG9jayhKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOworICAgIEpTTG9ja0hvbGRl
ciBsb2NrKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAKLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSBtX2ds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICAKLSAgICBKU1ZhbHVlIGZ1bmN0aW9u
ID0gbV9jdXN0b21SZXNvbHZlci0+Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhl
YywgImxvb2t1cE5hbWVzcGFjZVVSSSIpKTsKKyAgICBKU09iamVjdCogY3VzdG9tUmVzb2x2ZXIg
PSBtX2RhdGEtPmNhbGxiYWNrKCk7CisgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IGN1c3RvbVJlc29s
dmVyLT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAibG9va3VwTmFtZXNw
YWNlVVJJIikpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBl
ID0gZ2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0g
Q2FsbFR5cGU6Ok5vbmUpIHsKLSAgICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5t
ZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0
YSk7CisgICAgICAgIGNhbGxUeXBlID0gY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdl
dENhbGxEYXRhKGN1c3RvbVJlc29sdmVyLCBjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlw
ZSA9PSBDYWxsVHlwZTo6Tm9uZSkgewotICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50
KiBjb25zb2xlID0gbV9nbG9iYWxPYmplY3QtPndyYXBwZWQoKS5jb25zb2xlKCkpCisgICAgICAg
ICAgICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIGNvbnNvbGUgPSBhc0pTRE9NV2luZG93KGdsb2Jh
bE9iamVjdCktPndyYXBwZWQoKS5jb25zb2xlKCkpCiAgICAgICAgICAgICAgICAgY29uc29sZS0+
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlM
aXRlcmFsKCJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVS
SSBtZXRob2QuIikpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9Ci0g
ICAgICAgIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci5nZXQoKTsKKyAgICAgICAgZnVuY3Rp
b24gPSBjdXN0b21SZXNvbHZlcjsKICAgICB9CiAKLSAgICBSZWY8SlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIg
YXJnczsKICAgICBhcmdzLmFwcGVuZChqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBwcmVmaXgpKTsK
IAogICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAgIEpTVmFsdWUgcmV0dmFs
ID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwg
Y2FsbERhdGEsIG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGFyZ3MsIGV4Y2VwdGlvbik7CisgICAg
SlNWYWx1ZSByZXR2YWwgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgZnVuY3Rp
b24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgY3VzdG9tUmVzb2x2ZXIsIGFyZ3MsIGV4Y2VwdGlvbik7
CiAKICAgICBTdHJpbmcgcmVzdWx0OwogICAgIGlmIChleGNlcHRpb24pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20u
Y3BwCShyZXZpc2lvbiAyMDQ3NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQ
YXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTWFBhdGhOU1Jlc29s
dmVyLmgiCi0KLSNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgotCi11c2luZyBu
YW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlZlB0cjxYUGF0aE5TUmVz
b2x2ZXI+IEpTWFBhdGhOU1Jlc29sdmVyOjp0b1dyYXBwZWQoRXhlY1N0YXRlJiBzdGF0ZSwgSlNW
YWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNYUGF0aE5TUmVzb2x2ZXI6
OmluZm8oKSkpCi0gICAgICAgIHJldHVybiAmanNDYXN0PEpTWFBhdGhOU1Jlc29sdmVyKj4oYXNP
YmplY3QodmFsdWUpKS0+d3JhcHBlZCgpOwotCi0gICAgcmV0dXJuIEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyOjpjcmVhdGUoJnN0YXRlLCB2YWx1ZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCShyZXZpc2lvbiAyMDQ3NTMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMTkxMSw3ICsx
OTExLDkgQEAgRU5ECiAgICAgICAgICAgICBmb3IgbXkgJHR1cGxlIChAeyRTfSkgewogICAgICAg
ICAgICAgICAgIG15ICRvdmVybG9hZCA9IEB7JHR1cGxlfVswXTsKICAgICAgICAgICAgICAgICBt
eSAkdHlwZSA9IFN0cmlwTnVsbGFibGUoQHtAeyR0dXBsZX1bMV19WyRkXSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCR0eXBlKSB8fCAkY29kZUdl
bmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAo
JGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJHR5cGUpKSB7CisgICAgICAgICAg
ICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpIik7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAo
JGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5J
c1R5cGVkQXJyYXlUeXBlKCR0eXBlKSkgewogICAgICAgICAgICAgICAgICAgICAmJGdlbmVyYXRl
T3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNP
YmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKEpTJHt0eXBl
fTo6aW5mbygpKSIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTQwOTUs
OSArNDA5Nyw5IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiAgICAgICAgIGZvcmVhY2gg
bXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgICAgIG15
IEBhcmd1bWVudHMgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHsk
ZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAYXJndW1lbnRz
LCBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRwYXJhbWV0ZXItPnR5cGUp
IC4gIiAiIC4gJHBhcmFtZXRlci0+bmFtZSk7CisgICAgICAgICAgICAgICAgcHVzaChAYXJndW1l
bnRzLCBHZXROYXRpdmVBcmd1bWVudFR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJHBhcmFt
ZXRlci0+dHlwZSkgLiAiICIgLiAkcGFyYW1ldGVyLT5uYW1lKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZl
VHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkg
LiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIiAuIGpvaW4oIiwgIiwgQGFy
Z3VtZW50cykgLiAiKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB2aXJ0dWFsICIgLiBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2Us
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5uYW1lIC4gIigiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpO1xuIik7CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTQyMzUsMTQgKzQyMzcsMTQgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJ
bXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJcbiIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT50eXBlKSAuICIgJHtjbGFzc05hbWV9Ojoke2Z1bmN0aW9uTmFtZX0oIik7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAuIEdldE5hdGl2ZVJldHVyblR5
cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4g
IiAke2NsYXNzTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSgiKTsKIAogICAgICAgICAgICAgbXkgQGFy
Z3MgPSAoKTsKICAgICAgICAgICAgIG15IEBhcmdzQ2hlY2sgPSAoKTsKICAgICAgICAgICAgIGZv
cmVhY2ggbXkgJHBhcmFtIChAcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFt
ZSA9ICRwYXJhbS0+bmFtZTsKICAgICAgICAgICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbklt
cGwoJHBhcmFtLT50eXBlLCAxKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCBHZXROYXRp
dmVUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRwYXJhbS0+dHlwZSkgLiAiICIgLiAkcGFy
YW1OYW1lKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCBHZXROYXRpdmVBcmd1bWVudFR5
cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJHBhcmFtLT50eXBlLCAwKSAuICIgIiAuICRwYXJh
bU5hbWUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIGpv
aW4oIiwgIiwgQGFyZ3MpKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiKVxuIik7
CkBAIC00NTAxLDcgKzQ1MDMsNiBAQCBteSAlbmF0aXZlVHlwZSA9ICgKICAgICAiRGljdGlvbmFy
eSIgPT4gIkRpY3Rpb25hcnkiLAogICAgICJFdmVudExpc3RlbmVyIiA9PiAiUmVmUHRyPEV2ZW50
TGlzdGVuZXI+IiwKICAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9PiAiUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4iLAotICAgICJYUGF0aE5TUmVzb2x2ZXIiID0+ICJSZWZQdHI8WFBh
dGhOU1Jlc29sdmVyPiIsCiAgICAgImFueSIgPT4gIkpTQzo6SlNWYWx1ZSIsCiAgICAgImJvb2xl
YW4iID0+ICJib29sIiwKICAgICAiYnl0ZSIgPT4gImludDhfdCIsCkBAIC00NTU0LDEyICs0NTU1
LDIwIEBAIHN1YiBHZXROYXRpdmVWZWN0b3JJbm5lclR5cGUKICAgICByZXR1cm4gIlJlZlB0cjwk
aW5uZXJUeXBlPiI7CiB9CiAKLXN1YiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzCitzdWIgR2V0
TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzCiB7CiAgICAgbXkgKCRpbnRlcmZhY2UsICR0
eXBlKSA9IEBfOwogCi0gICAgcmV0dXJuICJSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYm
IiBpZiAkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIjsKICAgICByZXR1cm4gImNvbnN0
IFN0cmluZyYiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOworICAgIHJl
dHVybiBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICR0eXBlKTsK
K30KKworc3ViIEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MKK3sKKyAgICBteSAoJGlu
dGVyZmFjZSwgJHR5cGUpID0gQF87CisKKyAgICByZXR1cm4gIlJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYiIGlmICR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOworICAgIHJl
dHVybiAiY29uc3QgU3RyaW5nJiIgaWYgISRpbnRlcmZhY2UtPmlzQ2FsbGJhY2sgJiYgJGNvZGVH
ZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7CiAgICAgcmV0dXJuIEdldE5hdGl2ZVR5cGUo
JGludGVyZmFjZSwgJHR5cGUpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJl
dmlzaW9uIDIwNDc1MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTEwMCwxMSArMTAwLDE0IEBACiAKICAgICAvLyBGSVhNRTogVXNpbmcgInVu
ZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCiAgICAgW1JhaXNl
c0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24ob3B0aW9uYWwgRE9N
U3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgWFBhdGhOU1Jlc29sdmVy
PyByZXNvbHZlcik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNzaW9uIGNyZWF0
ZUV4cHJlc3Npb24oRE9NU3RyaW5nIGV4cHJlc3Npb24sIEN1c3RvbVhQYXRoTlNSZXNvbHZlciBy
ZXNvbHZlcik7CiAgICAgWFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZT8gbm9k
ZVJlc29sdmVyKTsKIAogICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0
IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4KICAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aFJl
c3VsdCBldmFsdWF0ZShvcHRpb25hbCBET01TdHJpbmcgZXhwcmVzc2lvbiA9ICJ1bmRlZmluZWQi
LCBvcHRpb25hbCBOb2RlPyBjb250ZXh0Tm9kZSwgb3B0aW9uYWwgWFBhdGhOU1Jlc29sdmVyPyBy
ZXNvbHZlciwKICAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdHlwZSA9IDAsIG9wdGlv
bmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhS
ZXN1bHQgZXZhbHVhdGUoRE9NU3RyaW5nIGV4cHJlc3Npb24sIE5vZGU/IGNvbnRleHROb2RlLCBD
dXN0b21YUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIsCisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVk
IHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQpOwogCiAgICAg
Ly8gRklYTUU6IFRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgbGFzdCBwYXJhbWV0ZXIgc2hvdWxk
IGJlIHRoZSBlbXB0eSBzdHJpbmcuCiAgICAgYm9vbGVhbiBleGVjQ29tbWFuZChET01TdHJpbmcg
Y29tbWFuZCwgb3B0aW9uYWwgYm9vbGVhbiB1c2VySW50ZXJmYWNlID0gZmFsc2UsIG9wdGlvbmFs
IERPTVN0cmluZz8gdmFsdWUgPSBudWxsKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9DdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUveG1s
L0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiWFBhdGhOU1Jlc29sdmVyLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXN0b21YUGF0
aE5TUmVzb2x2ZXIgOiBwdWJsaWMgWFBhdGhOU1Jlc29sdmVyIHsKK307CisKK30KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisqIG1ldDoKKyoKKyogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorKiBkaXN0cmlidXRpb24uCisqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyoK
KyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworY2Fs
bGJhY2sgaW50ZXJmYWNlIEN1c3RvbVhQYXRoTlNSZXNvbHZlciB7CisKKyAgICBbQ3VzdG9tXSBE
T01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmcgcHJlZml4KTsKKworfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbAkocmV2aXNpb24gMjA0NzUzKQor
KysgU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjMsMTMgKzIzLDEzIEBACiBdIGludGVyZmFjZSBYUGF0aEV2YWx1YXRvciB7CiAgICAgLy8g
RklYTUU6IFVzaW5nICJ1bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdy
b25nLgogICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNz
aW9uKG9wdGlvbmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5lZCIsIG9wdGlvbmFs
IFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRo
RXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZyBleHByZXNzaW9uLCBDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIpOwogCiAgICAgWFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5T
UmVzb2x2ZXIob3B0aW9uYWwgTm9kZT8gbm9kZVJlc29sdmVyKTsKIAogICAgIC8vIEZJWE1FOiBV
c2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4KLSAg
ICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShvcHRpb25hbCBET01TdHJp
bmcgZXhwcmVzc2lvbiA9ICJ1bmRlZmluZWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9w
dGlvbmFsIE5vZGU/IGNvbnRleHROb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
b3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdHlwZSA9IDAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/IGluUmVzdWx0KTsKKyAgICBbUmFpc2VzRXhjZXB0aW9u
XSBYUGF0aFJlc3VsdCBldmFsdWF0ZShvcHRpb25hbCBET01TdHJpbmcgZXhwcmVzc2lvbiA9ICJ1
bmRlZmluZWQiLCBvcHRpb25hbCBOb2RlPyBjb250ZXh0Tm9kZSwgb3B0aW9uYWwgWFBhdGhOU1Jl
c29sdmVyPyByZXNvbHZlciwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQgdHlwZSA9
IDAsIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CisgICAgW1JhaXNlc0V4Y2VwdGlv
bl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUoRE9NU3RyaW5nIGV4cHJlc3Npb24sIE5vZGU/IGNvbnRl
eHROb2RlLCBDdXN0b21YUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIsCisgICAgICAgIG9wdGlvbmFs
IHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQp
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsCShyZXZpc2lv
biAyMDQ3NTMpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMTksNyArMTksNiBAQAogICovCiAKIFsKLSAgICBKU0N1c3RvbVRvTmF0
aXZlT2JqZWN0LAogICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIFNraXBWVGFibGVWYWxpZGF0
aW9uLAogXSBpbnRlcmZhY2UgWFBhdGhOU1Jlc29sdmVyIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286831</attachid>
            <date>2016-08-23 21:30:30 -0700</date>
            <delta_ts>2016-08-23 21:32:37 -0700</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-161030-20160823212831.patch</filename>
            <type>text/plain</type>
            <size>48652</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTIyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1vdW50IG9m
IGN1c3RvbSBiaW5kaW5nIGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaWRsIHRvIGdlbmVyYXRlIHRoZSBtdWNoIG9mIHRoZSBiaW5kaW5nIGNvZGUgcmF0aGVy
IHRoYW4gZW50aXJlbHkgcmVseWluZyBvbiBjdXN0b20gY29kZS4KKyAgICAgICAgV2UgY2FuIHJl
bW92ZSB0aGUgcmVtYWluaW5nIGN1c3RvbSBjb2RlIG9uY2UgdGhlIGNvZGUgZ2VuZXJhdG9yIGZ1
bGx5IHN1cHBvcnRzIG5vbi1GdW5jdGlvbk9ubHkgY2FsbGJhY2sgaW50ZXJmYWNlcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNl
VVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbk9yQ29uc3RydWN0b3IpOiBDYWxs
YmFjayBpbnRlcmZhY2VzIGRvbid0IGhhdmUgY2xhc3MgaW5mby4gT21pdCB0aGF0IGNoZWNrLgor
ICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6IEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFj
a3MgaXMgbm93IHNwbGl0IGludG8gR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzIGFu
ZAorICAgICAgICBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzLiBDYWxsIHRoZSBhcHBy
b3ByaWF0ZSB2ZXJzaW9uLgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9u
KTogRGl0dG8uCisgICAgICAgIChHZXROYXRpdmVBcmd1bWVudFR5cGVGb3JDYWxsYmFja3MpOiBT
cGxpdCBmcm9tIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MuIEFsd2F5cyB1c2UgY29uc3QgU3Ry
aW5nJi4KKyAgICAgICAgKEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MpOiBSZW5hbWVk
IGZyb20gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcy4gQXZvaWQgY29uc3QgU3RyaW5nJiBmb3Ig
YSBjYWxsYmFjaydzIHJldHVybiB2YWx1ZS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmg6IEFkZGVkLgorICAgICAgICAqIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvWFBh
dGhOU1Jlc29sdmVyLmlkbDogUmVtb3ZlZCBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0IHNpbmNlIGl0
IG5vIGxvbmdlciB1c2VzIGEgY3VzdG9tIHRvV3JhcHBlZCBmdW5jdGlvbi4KKwogMjAxNi0wOC0y
MyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBG
QUlMRUQ6ICF2aWV3KCkubGF5b3V0U3RhdGVFbmFibGVkKCkgfHwgc3R5bGUoKS5zdHlsZVR5cGUo
KSA9PSBGSVJTVF9MRVRURVIgaW4gV2ViQ29yZTo6UmVuZGVySW5saW5lOjpjbGlwcGVkT3ZlcmZs
b3dSZWN0Rm9yUmVwYWludApJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwNDg4
MykKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02
NTAsNiArNjUwLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICB3b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmlkbAogICAgIHdvcmtlcnMvV29ya2VyTG9jYXRpb24uaWRsCiAK
KyAgICB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbAogICAgIHhtbC9ET01QYXJzZXIuaWRs
CiAgICAgeG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAogICAgIHhtbC9YTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmlkbApAQCAtMTEzOCw3ICsxMTM5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTQ3VzdG9tRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21T
UUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcApAQCAtMTI1Miw3ICsxMjUzLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UJKHdvcmtpbmcgY29weSkKQEAgLTcwMyw2ICs3MDMsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS93b3JrZXJzL1dvcmtlci5pZGwgXAogICAgICQoV2ViQ29yZSkvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9Xb3Jr
ZXJMb2NhdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5pZGwgXAogICAgICQoV2ViQ29yZSkveG1sL0RPTVBhcnNlci5pZGwgXAogICAgICQoV2ViQ29y
ZSkveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjA0ODgzKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0yODY1LDcgKzI4NjUsNiBAQAogCQk4MzVEMzYzNzE5RkY2MTkzMDA0QzkzQUIgLyogU3R5
bGVCdWlsZGVyQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzVEMzYzNjE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmgg
Ki87IH07CiAJCTgzNjc1ODdFMUM1NkU5OUIwMDhBMTA4NyAvKiBKU0hUTUxEYXRhRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZB
OTFDNTZFOTNFMDBGM0YwRTMgLyogSlNIVE1MRGF0YUVsZW1lbnQuY3BwICovOyB9OwogCQk4MzY3
NTg3RjFDNTZFOTlCMDA4QTEwODcgLyogSlNIVE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNEI4NkE4MUM1NkU5M0UwMEYzRjBF
MyAvKiBKU0hUTUxEYXRhRWxlbWVudC5oICovOyB9OwotCQk4MzZDMTQ0MzFDREVBRkQ4MDA3MzQ5
M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJODM2REFBMDYxQ0VBQjgwRDAwQTJCNzA3
IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM2REFBMDUxQ0VBQjdDRDAwQTJCNzA3IC8qIFJlbmRlckRl
c2NlbmRhbnRJdGVyYXRvci5oICovOyB9OwogCQk4MzZGQkNFQTE3OEMxMTMyMDBCMjFBMTUgLyog
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yLmNwcCAqLzsgfTsKIAkJODM2RkJDRUMxNzhDMTE3RjAwQjIxQTE1IC8qIFNW
R0FuaW1hdGVkUHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM2RkJDRUIxNzhDMTE3RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVy
dHkuY3BwICovOyB9OwpAQCAtMzU5Myw2ICszNTkyLDggQEAKIAkJOUI2OUQzQjUxQjk4RkZFOTAw
RTM1MTJCIC8qIEhUTUxTbG90RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUI2OUQzQjMxQjk4RkZFOTAwRTM1MTJCIC8qIEhUTUxTbG90RWxl
bWVudC5oICovOyB9OwogCQk5QjY5RDNCODFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUI2OUQzQjYxQjk5MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50LmNwcCAqLzsgfTsK
IAkJOUI2OUQzQjkxQjk5MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjY5RDNCNzFCOTkxMDA3
MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuaCAqLzsgfTsKKwkJOUI2QkE5QUExRDZCOUNB
MzAwODM2NjM1IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTEzQUU1MUQ2QjlBQTYwMDg2NEExRSAv
KiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi87IH07CisJCTlCNkJBOUFCMUQ2QjlDQTcw
MDgzNjYzNSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMTNBRTYxRDZCOUFBNjAwODY0QTFFIC8qIEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi87IH07CiAJCTlCNkM0MTUzMTM0NDk0OTAwMDA4NUI2
MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjZDNDE1MjEzNDQ5NDkwMDAwODVCNjIgLyogU3RyaW5nV2l0aERp
cmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTlCNzE0RTIwMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3MTRFMUUxQzkxMTY2OTAwQUMw
RTkyIC8qIEV2ZW50UGF0aC5jcHAgKi87IH07CiAJCTlCNzE0RTIxMUM5MTE2NjkwMEFDMEU5MiAv
KiBFdmVudFBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlCNzE0RTFGMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguaCAqLzsgfTsKQEAgLTU4
NTIsOCArNTg1Myw3IEBACiAJCUUwRkVGMzcyQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291
cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUw
RkVGMzcxQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNlLmNwcCAqLzsgfTsKIAkJRTEw
NzQwMEQwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwNzQwMEIwRTc3QkRDMDAwMzNB
RjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwICovOyB9OwogCQlFMTA3NDAwRTBFNzdCREMwMDAz
M0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEwNzQwMEMwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNo
YW5uZWwuaCAqLzsgfTsKLQkJRTEwQjkzN0MwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTBCOTM3QjBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aCAqLzsgfTsKLQkJRTEwQjkzQzMwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAg
Ki87IH07CisJCUUxMEI5M0MzMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJD
dXN0b20uY3BwICovOyB9OwogCQlFMTBCOUI2QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBh
dGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTBCOUI2QTBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmgg
Ki87IH07CiAJCUUxMEI5QjZEMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEw
QjlCNkIwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAgKi87IH07
CiAJCUUxMTAwMzMwMUM5QUMzREUwMDQxMkREMCAvKiBDU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMTAwMzJF
MUM5QUMzREUwMDQxMkREMCAvKiBDU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAqLzsgfTsKQEAg
LTk5MTYsNyArOTkxNiw2IEBACiAJCTgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1
aWxkZXJDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVCdWls
ZGVyQ3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUY4QjI2MUQyRDkw
QkEwMEU0MDhFQyAvKiBTbG90YWJsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2xvdGFi
bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzY5RTU4RjFBRkREMDMwMDA4
N0RGNjggLyogTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOb25Eb2N1bWVudFR5
cGVDaGlsZE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MzZDMTQ0MjFD
REVBRkNBMDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZEQUEwNTFDRUFCN0NEMDBBMkI3MDcgLyog
UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzZGQkNFOTE3OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZGQkNFQjE3OEMx
MTdGMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFByb3BlcnR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzQ4LDYgKzEwNzQ3LDggQEAKIAkJOUIwM0Q4MDYxQkIzMTEw
RDAwQjc2NEQ5IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTgg
LyogV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjRFOSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1
aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFt
SW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMTNB
RTUxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMTNBRTYxRDZCOUFBNjAwODY0QTFF
IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTlCMTlCNjdFMUI5NjRFNTIwMDM0ODc0NSAvKiBTaGFkb3dSb290LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTaGFkb3dSb290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUIxQUIwNzkxNjQ4QzY5RDAwNTFGM0YyIC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlCMUFCMDdCMTY0OEM3QzQwMDUxRjNGMiAvKiBKU0hUTUxGb3Jt
Q29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb25DdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3ODksNiArMTA3OTAsOCBAQAogCQk5QkQ0RTkxNTFD
NDYyODcyMDA1MDY1QkMgLyogSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QkQ0RTkxODFDNDYyQ0ZDMDA1MDY1QkMgLyogQ3VzdG9t
RWxlbWVudFJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCRDRFOTE5MUM0NjJDRkMwMDUwNjVCQyAvKiBDdXN0b21FbGVtZW50UmVnaXN0cnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCRDc1OTlGMUQ2QjkwMjMwMENBODI0NiAvKiBD
dXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlC
RDc1OUEwMUQ2QjkwMjMwMENBODI0NiAvKiBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEN1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlCRDhBOTU5MThCRUZDNzYwMDk4N0U5QSAvKiBDb2xsZWN0aW9u
SW5kZXhDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xs
ZWN0aW9uSW5kZXhDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRTY3
MTA5MUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRTY3MTBBMUQ1QUVCMDQwMDM0NTUx
NCAvKiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTMzNzMsOCArMTMzNzYsNyBAQAogCQlFMEZFRjM3MUI0N0M1M0VBQzFDMUZCRUUg
LyogSlNFdmVudFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0V2ZW50U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNzQw
MEIwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlQ2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxMDc0MDBDMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VD
aGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVzc2FnZUNoYW5u
ZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEwQjkzN0IwQjczQzAwQTAwM0VE
ODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMEI5M0My
MEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMEI5QjZBMEI3NDc1
OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxMEI5QjZCMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVz
b2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF0aXZlWFBh
dGhOU1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTExMDAzMkUx
QzlBQzNERTAwNDEyREQwIC8qIENTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTMwMCw2ICsxOTMwMiw4IEBACiAJCUE4M0I3
OTBDMENDQUZGODMwMDBCMDgyNSAvKiBYUGF0aCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJOUIxMTNBRTUxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKKwkJCQk5QjExM0FFNjFENkI5QUE2MDA4NjRBMUUgLyog
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLywKIAkJCQkxQTc2MkM2QjBBMDc0RjI2MDA5ODlG
NUIgLyogSlNYUGF0aEV2YWx1YXRvci5jcHAgKi8sCiAJCQkJMUE3NjJDNkMwQTA3NEYyNjAwOTg5
RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCAqLywKIAkJCQlCQzYwREI0NzBEMkEzRDFFMDBCOTkx
OEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5jcHAgKi8sCkBAIC0yMTA1Niw3ICsyMTA2MCw2IEBACiAJ
CQkJRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20u
Y3BwICovLAogCQkJCTgzQTRBOUY4MUNFN0ZEN0UwMDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3Vz
dG9tLmNwcCAqLywKIAkJCQlCQzM0OEJCRDBEQjdGNTMxMDA0QUJBQjkgLyogSlNYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAgKi8sCi0JCQkJODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlBMUM3RkFBMTEzM0E1RDM1MDBENjczMkQg
LyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNFRkUxRTQwRENBNUYzMzAwNzM5
MjE5IC8qIEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgKi8sCiAJCQkpOwpAQCAtMjEzNDQsOCAr
MjEzNDcsNyBAQAogCQkJCTE0NDlFMjg2MTA3RDREQjQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0
YS5jcHAgKi8sCiAJCQkJMTQ0OUUyNEExMDdENEE4NDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRh
LmggKi8sCiAJCQkJNTFFQzkyNUQwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjay5jcHAgKi8sCi0JCQkJRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8q
IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKLQkJCQlFMTBCOTM3QjBCNzNDMDBBMDAz
RUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLywKKwkJCQlFMTBCOTNDMjBCNzND
MjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovLAogCQkJ
CTkzQjcwRDREMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuY3BwICovLAogCQkJ
CTkzQjcwRDRFMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuaCAqLywKIAkJCQk5
MzVGNDU0MDBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgKi8sCkBA
IC0yMTk0MCw2ICsyMTk0Miw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTAwQjkzMTgwMTNCQTg2N0YwMDM1QTk0OCAvKiBwYXJzZXIgKi8sCisJCQkJOUJENzU5
OUYxRDZCOTAyMzAwQ0E4MjQ2IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovLAorCQkJCTlC
RDc1OUEwMUQ2QjkwMjMwMENBODI0NiAvKiBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsICovLAog
CQkJCTFBQ0U1M0UxMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuY3BwICovLAogCQkJCTFB
Q0U1M0UyMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaCAqLywKIAkJCQkxQUNFNTNFMzBB
OEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmlkbCAqLywKQEAgLTI0NzgwLDcgKzI0Nzg0LDYg
QEAKIAkJCQk5QkQ0RTkxNzFDNDYyODcyMDA1MDY1QkMgLyogSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkU2NzEwQzFENUFFQjI1MDAzNDU1MTQgLyogSlND
dXN0b21FbGVtZW50UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0Nzc4QjgwMTE1QTU4
MUEwMEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTBCOTM3
QzBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBRTgyRjkwMENBQUZBOUQwMDIyMzdBRSAvKiBKU0RhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCNTlERDY5OTExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTYxMDM5RTE4QTlENjVBMDBERDUwRDcgLyogSlNE
YXRhQ3VlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTk5LDYgKzI1NjAyLDcgQEAKIAkJCQkyRDc3
QUMyOTFCRjJCOTg2MDA3MjQ3MEEgLyogTlNBY2Nlc3NpYmlsaXR5U1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRDc3QUMyQTFCRjJCOTg3MDA3MjQ3MEEgLyogTlNBcHBsaWNhdGlvblNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOUJCNzM3NjUxQjQxQzAzNTAwQUUxM0VCIC8qIE5TQXR0cmlidXRl
ZFN0cmluZ1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI2QkE5QUIxRDZCOUNBNzAwODM2NjM1
IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUIzMTNE
RjFCNjk4OEM1MDBGMkFBQkMgLyogTlNCdXR0b25DZWxsU1BJLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTEyNTI1MTFBMUJFQkQ4MDA4NjQ0ODAgLyogTlNDYWxlbmRhckRhdGVTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxREY2MzU3MUFGMTg3REQwMDc4RkQ5MSAvKiBOU0NvbG9yU1BJLmggaW4g
SGVhZGVycyAqLywKQEAgLTI4Mzg3LDcgKzI4MzkxLDcgQEAKIAkJCQlFNDc3OEI3RjExNUE1ODFB
MDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUMyOTc2
MTFCNEYyRjhEMDA1RjU5NDUgLyogSlNDdXN0b21FdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUVDOTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRF
cnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxMEI5M0MzMEI3M0MyOTEwMDNF
RDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
MTBCOTNDMzBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFODJGOEYwQ0FBRkE5RDAwMjIzN0FFIC8qIEpTRGF0
YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2OUExMTkwMjlFNTAwN0U5Njg0IC8q
IEpTRGF0YWJhc2VDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCRTYxMDM5RDE4QTlE
NjUyMDBERDUwRDcgLyogSlNEYXRhQ3VlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjkwMTUsNyAr
MjkwMTksNiBAQAogCQkJCUJDNjBEQjQ5MEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc1MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoRXhwcmVzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc2MkM3NzBBMDc0RjI2
MDA5ODlGNUIgLyogSlNYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODM2
QzE0NDMxQ0RFQUZEODAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBNzYyQzc5MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoUmVzdWx0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQzdGQUEyMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQ
YXRoUmVzdWx0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUZFMUVBMERDQTVGNjQw
MDczOTIxOSAvKiBKU1hTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTM3OSw2
ICsyOTM4Miw3IEBACiAJCQkJOTNGMTlBRjgwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTE5QzIzMEI3RDE4ODYwMEE1Njk5OCAvKiBQb3NpdGlv
bkl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2MzQ1OTJDMUFDMjI3MTAwMEVDQjcx
QyAvKiBQb3dlck9ic2VydmVyTWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlCNkJBOUFBMUQ2
QjlDQTMwMDgzNjYzNSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCNzc2RDQzRDExMDQ1Mjc1MDBCRUIwRUMgLyogUHJpbnRDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4RUE3RUJEMEExOTQ1RDAwMEE4RUY1RiAvKiBQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjEzRUIwQ0Q2ODFCNDAwRkFEQTc1
IC8qIFByb2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDIw
NDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAKICNpbmNsdWRlICJKU0NyeXB0b0N1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDdXN0b21FdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCIKLSNpbmNsdWRlICJKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAiCisjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5jcHAiCiAjaW5jbHVkZSAiSlNET01G
b3JtRGF0YUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuY3BwIgpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmNwcAkocmV2aXNpb24gMjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCShub25leGlzdGVudCkKQEAgLTEsMTA4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQWxleGV5IFByb3NrdXJ5
YWtvdiAoYXBAbnlwb3AuY29tKQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgi
Ci0jaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgot
I2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1SZWZQdHI8SlND
dXN0b21YUGF0aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5l
ZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIEpTT2JqZWN0KiByZXNv
bHZlck9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpOwotICAgIGlmICghcmVzb2x2ZXJPYmplY3Qp
IHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoZXhlYywgcmVzb2x2ZXJPYmplY3QsIGFzSlNET01XaW5k
b3coZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpKSkpOwotfQotCi1KU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogY3VzdG9tUmVzb2x2ZXIsIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QpCi0gICAgOiBtX2N1
c3RvbVJlc29sdmVyKGV4ZWMtPnZtKCksIGN1c3RvbVJlc29sdmVyKQotICAgICwgbV9nbG9iYWxP
YmplY3QoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0KQotewotfQotCi1KU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlcjo6fkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKCkKLXsKLX0KLQotU3RyaW5nIEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVm
aXgpCi17Ci0gICAgQVNTRVJUKG1fY3VzdG9tUmVzb2x2ZXIpOwotCi0gICAgSlNMb2NrSG9sZGVy
IGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpKTsKLQotICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAgICAgIAotICAgIEpTVmFsdWUg
ZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyhleGVjLCAibG9va3VwTmFtZXNwYWNlVVJJIikpOwotICAgIENhbGxEYXRhIGNhbGxEYXRh
OwotICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxEYXRh
KTsKLSAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKLSAgICAgICAgY2FsbFR5
cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3Rv
bVJlc29sdmVyLmdldCgpLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxs
VHlwZTo6Tm9uZSkgewotICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBjb25zb2xl
ID0gbV9nbG9iYWxPYmplY3QtPndyYXBwZWQoKS5jb25zb2xlKCkpCi0gICAgICAgICAgICAgICAg
Y29uc29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgQVNDSUlMaXRlcmFsKCJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5h
bWVzcGFjZVVSSSBtZXRob2QuIikpOwotICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAg
ICAgICB9Ci0gICAgICAgIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci5nZXQoKTsKLSAgICB9
Ci0KLSAgICBSZWY8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwotCi0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZChqc1N0
cmluZ1dpdGhDYWNoZShleGVjLCBwcmVmaXgpKTsKLQotICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4g
ZXhjZXB0aW9uOwotICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpj
YWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY3VzdG9tUmVzb2x2ZXIu
Z2V0KCksIGFyZ3MsIGV4Y2VwdGlvbik7Ci0KLSAgICBTdHJpbmcgcmVzdWx0OwotICAgIGlmIChl
eGNlcHRpb24pCi0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBleGNlcHRpb24pOwotICAg
IGVsc2UgewotICAgICAgICBpZiAoIXJldHZhbC5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAg
ICAgICAgcmVzdWx0ID0gcmV0dmFsLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICsw
LDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
LmgJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw2NSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA3IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkK
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXJfaAotI2RlZmluZSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcl9o
Ci0KLSNpbmNsdWRlICJYUGF0aE5TUmVzb2x2ZXIuaCIKLSNpbmNsdWRlIDxoZWFwL1N0cm9uZy5o
PgotI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlND
SW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgotI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgSlNDIHsK
LSAgICBjbGFzcyBFeGVjU3RhdGU7Ci0gICAgY2xhc3MgSlNPYmplY3Q7Ci19Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIEZyYW1lOwotICAgIGNsYXNzIEpTRE9NV2luZG93Owot
Ci0gICAgY2xhc3MgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIgOiBwdWJsaWMgWFBhdGhOU1Jlc29s
dmVyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWZQdHI8SlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXI+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7Ci0gICAgICAg
IAotICAgICAgICB2aXJ0dWFsIH5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcigpOwotCi0gICAgICAg
IHZpcnR1YWwgU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCk7
Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0RPTVdpbmRvdyopOwotCi0gICAgICAgIC8vIEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVycyBhcmUgYWx3YXlzIHRlbXBvcmFyeSBzbyB1c2luZyBhIFN0
cm9uZyByZWZlcmVuY2UgaXMgc2FmZSBoZXJlLgotICAgICAgICBKU0M6OlN0cm9uZzxKU0M6OkpT
T2JqZWN0PiBtX2N1c3RvbVJlc29sdmVyOwotICAgICAgICBKU0M6OlN0cm9uZzxKU0RPTVdpbmRv
dz4gbV9nbG9iYWxPYmplY3Q7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJ
KHJldmlzaW9uIDIwNDc0NykJKGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuY3BwOjIwNDc0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxMyBBbGV4ZXkgUHJv
c2t1cnlha292IChhcEBueXBvcC5jb20pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0
b20uaCIKKyNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbmNsdWRlICJQYWdl
LmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK1JlZlB0
cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzVW5k
ZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgSlNPYmplY3Qq
IHJlc29sdmVyT2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7CisgICAgaWYgKCFyZXNvbHZlck9i
amVjdCkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihleGVjLCByZXNvbHZlck9iamVjdCwgYXNKU0RP
TVdpbmRvdyhleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCkpKSk7Cit9CisKK0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBjdXN0b21SZXNvbHZlciwgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCkKKyAgICA6
IG1fY3VzdG9tUmVzb2x2ZXIoZXhlYy0+dm0oKSwgY3VzdG9tUmVzb2x2ZXIpCisgICAgLCBtX2ds
b2JhbE9iamVjdChleGVjLT52bSgpLCBnbG9iYWxPYmplY3QpCit7Cit9CisKK0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyOjp+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKQoreworfQorCitTdHJpbmcg
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcm
IHByZWZpeCkKK3sKKyAgICBBU1NFUlQobV9jdXN0b21SZXNvbHZlcik7CisKKyAgICBKU0xvY2tI
b2xkZXIgbG9jayhKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOworCisgICAgRXhlY1N0YXRl
KiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICAgICAgCisgICAgSlNW
YWx1ZSBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldChleGVjLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsICJsb29rdXBOYW1lc3BhY2VVUkkiKSk7CisgICAgQ2FsbERhdGEgY2Fs
bERhdGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2Fs
bERhdGEpOworICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkgeworICAgICAgICBj
YWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKG1f
Y3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGNhbGxEYXRhKTsKKyAgICAgICAgaWYgKGNhbGxUeXBlID09
IENhbGxUeXBlOjpOb25lKSB7CisgICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIGNv
bnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+d3JhcHBlZCgpLmNvbnNvbGUoKSkKKyAgICAgICAgICAg
ICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBBU0NJSUxpdGVyYWwoIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9v
a3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKSk7CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOwor
ICAgIH0KKworICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gcHJvdGVjdGVkVGhpcygq
dGhpcyk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgIGFyZ3MuYXBwZW5k
KGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIHByZWZpeCkpOworCisgICAgTmFrZWRQdHI8RXhjZXB0
aW9uPiBleGNlcHRpb247CisgICAgSlNWYWx1ZSByZXR2YWwgPSBKU01haW5UaHJlYWRFeGVjU3Rh
dGU6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgbV9jdXN0b21SZXNv
bHZlci5nZXQoKSwgYXJncywgZXhjZXB0aW9uKTsKKworICAgIFN0cmluZyByZXN1bHQ7CisgICAg
aWYgKGV4Y2VwdGlvbikKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7
CisgICAgZWxzZSB7CisgICAgICAgIGlmICghcmV0dmFsLmlzVW5kZWZpbmVkT3JOdWxsKCkpCisg
ICAgICAgICAgICByZXN1bHQgPSByZXR2YWwudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwor
ICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKHJldmlzaW9uIDIwNDc0NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsMTQgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKIAotI2luY2x1ZGUgIkRvY3VtZW50
LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNs
dWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBAIC00MSw1
OCArMzcsMzQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwog
Ci1SZWZQdHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
OjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmICh2YWx1
ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIEpT
T2JqZWN0KiByZXNvbHZlck9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpOwotICAgIGlmICghcmVz
b2x2ZXJPYmplY3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFU
Q0hfRVJSKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoZXhlYywgcmVzb2x2ZXJPYmplY3Qs
IGFzSlNET01XaW5kb3coZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpKSkpOwotfQotCi1KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogY3VzdG9tUmVzb2x2ZXIsIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3Qp
Ci0gICAgOiBtX2N1c3RvbVJlc29sdmVyKGV4ZWMtPnZtKCksIGN1c3RvbVJlc29sdmVyKQotICAg
ICwgbV9nbG9iYWxPYmplY3QoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0KQotewotfQotCi1KU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcjo6fkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKCkKLXsKLX0KLQog
U3RyaW5nIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3Qg
U3RyaW5nJiBwcmVmaXgpCiB7Ci0gICAgQVNTRVJUKG1fY3VzdG9tUmVzb2x2ZXIpOworICAgIFJl
ZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CisKKyAgICBh
dXRvKiBnbG9iYWxPYmplY3QgPSBtX2RhdGEtPmdsb2JhbE9iamVjdCgpOworICAgIEV4ZWNTdGF0
ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogCi0gICAgSlNMb2NrSG9sZGVy
IGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9j
ayhnbG9iYWxPYmplY3QtPnZtKCkpOwogCi0gICAgRXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgCi0gICAgSlNWYWx1ZSBmdW5jdGlvbiA9IG1f
Y3VzdG9tUmVzb2x2ZXItPmdldChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJs
b29rdXBOYW1lc3BhY2VVUkkiKSk7CisgICAgSlNPYmplY3QqIGN1c3RvbVJlc29sdmVyID0gbV9k
YXRhLT5jYWxsYmFjaygpOworICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBjdXN0b21SZXNvbHZlci0+
Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImxvb2t1cE5hbWVzcGFjZVVS
SSIpKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdl
dENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CiAgICAgaWYgKGNhbGxUeXBlID09IENhbGxU
eXBlOjpOb25lKSB7Ci0gICAgICAgIGNhbGxUeXBlID0gbV9jdXN0b21SZXNvbHZlci0+bWV0aG9k
VGFibGUoKS0+Z2V0Q2FsbERhdGEobV9jdXN0b21SZXNvbHZlci5nZXQoKSwgY2FsbERhdGEpOwor
ICAgICAgICBjYWxsVHlwZSA9IGN1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxs
RGF0YShjdXN0b21SZXNvbHZlciwgY2FsbERhdGEpOwogICAgICAgICBpZiAoY2FsbFR5cGUgPT0g
Q2FsbFR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgIGlmIChQYWdlQ29uc29sZUNsaWVudCogY29u
c29sZSA9IG1fZ2xvYmFsT2JqZWN0LT53cmFwcGVkKCkuY29uc29sZSgpKQorICAgICAgICAgICAg
aWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBjb25zb2xlID0gYXNKU0RPTVdpbmRvdyhnbG9iYWxPYmpl
Y3QpLT53cmFwcGVkKCkuY29uc29sZSgpKQogICAgICAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0
aG9kLiIpKTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAgfQotICAgICAg
ICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7CisgICAgICAgIGZ1bmN0aW9uID0g
Y3VzdG9tUmVzb2x2ZXI7CiAgICAgfQogCi0gICAgUmVmPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLQogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7
CiAgICAgYXJncy5hcHBlbmQoanNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgcHJlZml4KSk7CiAKICAg
ICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKLSAgICBKU1ZhbHVlIHJldHZhbCA9IEpT
TWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxE
YXRhLCBtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBhcmdzLCBleGNlcHRpb24pOworICAgIEpTVmFs
dWUgcmV0dmFsID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBj
YWxsVHlwZSwgY2FsbERhdGEsIGN1c3RvbVJlc29sdmVyLCBhcmdzLCBleGNlcHRpb24pOwogCiAg
ICAgU3RyaW5nIHJlc3VsdDsKICAgICBpZiAoZXhjZXB0aW9uKQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAko
cmV2aXNpb24gMjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5T
UmVzb2x2ZXJDdXN0b20uY3BwCShub25leGlzdGVudCkKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1hQYXRoTlNSZXNvbHZlci5o
IgotCi0jaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKLQotdXNpbmcgbmFtZXNw
YWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZWZQdHI8WFBhdGhOU1Jlc29sdmVy
PiBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFwcGVkKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUg
dmFsdWUpCi17Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTWFBhdGhOU1Jlc29sdmVyOjppbmZv
KCkpKQotICAgICAgICByZXR1cm4gJmpzQ2FzdDxKU1hQYXRoTlNSZXNvbHZlcio+KGFzT2JqZWN0
KHZhbHVlKSktPndyYXBwZWQoKTsKLQotICAgIHJldHVybiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
cjo6Y3JlYXRlKCZzdGF0ZSwgdmFsdWUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQkocmV2aXNpb24gMjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE5MzMsNyArMTkzMyw5
IEBAIEVORAogICAgICAgICAgICAgZm9yIG15ICR0dXBsZSAoQHskU30pIHsKICAgICAgICAgICAg
ICAgICBteSAkb3ZlcmxvYWQgPSBAeyR0dXBsZX1bMF07CiAgICAgICAgICAgICAgICAgbXkgJHR5
cGUgPSBTdHJpcE51bGxhYmxlKEB7QHskdHVwbGV9WzFdfVskZF0pOwotICAgICAgICAgICAgICAg
IGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0
b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCR0eXBlKSkgeworICAgICAgICAgICAgICAg
ICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGlu
Z3Vpc2hpbmdBcmcuaXNPYmplY3QoKSIpOworICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNUeXBl
ZEFycmF5VHlwZSgkdHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJs
b2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0
KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyhKUyR7dHlwZX06Omlu
Zm8oKSkiKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC00MTEzLDkgKzQx
MTUsOSBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAgICAgICBmb3JlYWNoIG15ICRm
dW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAgICAgICAgICAgICBteSBAYXJn
dW1lbnRzID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7JGZ1bmN0
aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICAgICAgICAgICAgIHB1c2goQGFyZ3VtZW50cywgR2V0
TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW1ldGVyLT50eXBlKSAuICIg
IiAuICRwYXJhbWV0ZXItPm5hbWUpOworICAgICAgICAgICAgICAgIHB1c2goQGFyZ3VtZW50cywg
R2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRwYXJhbWV0ZXIt
PnR5cGUpIC4gIiAiIC4gJHBhcmFtZXRlci0+bmFtZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVG
b3JDYWxsYmFja3MoJGludGVyZmFjZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAi
IC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIgLiBqb2luKCIsICIsIEBhcmd1bWVu
dHMpIC4gIik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmly
dHVhbCAiIC4gR2V0TmF0aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFt
ZSAuICIoIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKTtcbiIpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC00MjUzLDE0ICs0MjU1LDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVt
ZW50YXRpb24KIAogICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBsKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT50eXBlKTsKICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
XG4iIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6JHtmdW5jdGlvbk5hbWV9KCIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVSZXR1cm5UeXBlRm9y
Q2FsbGJhY2tzKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgJHtj
bGFzc05hbWV9Ojoke2Z1bmN0aW9uTmFtZX0oIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0g
KCk7CiAgICAgICAgICAgICBteSBAYXJnc0NoZWNrID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNo
IG15ICRwYXJhbSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSAk
cGFyYW0tPm5hbWU7CiAgICAgICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBsKCRw
YXJhbS0+dHlwZSwgMSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlVHlw
ZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW0tPnR5cGUpIC4gIiAiIC4gJHBhcmFtTmFt
ZSk7CisgICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9y
Q2FsbGJhY2tzKCRpbnRlcmZhY2UsICRwYXJhbS0+dHlwZSwgMCkgLiAiICIgLiAkcGFyYW1OYW1l
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBqb2luKCIs
ICIsIEBhcmdzKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIilcbiIpOwpAQCAt
NDUxOSw3ICs0NTIxLDYgQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAgIkRpY3Rpb25hcnkiID0+
ICJEaWN0aW9uYXJ5IiwKICAgICAiRXZlbnRMaXN0ZW5lciIgPT4gIlJlZlB0cjxFdmVudExpc3Rl
bmVyPiIsCiAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgPT4gIlJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IiwKLSAgICAiWFBhdGhOU1Jlc29sdmVyIiA9PiAiUmVmUHRyPFhQYXRoTlNS
ZXNvbHZlcj4iLAogICAgICJhbnkiID0+ICJKU0M6OkpTVmFsdWUiLAogICAgICJib29sZWFuIiA9
PiAiYm9vbCIsCiAgICAgImJ5dGUiID0+ICJpbnQ4X3QiLApAQCAtNDU3MiwxMiArNDU3MywyMCBA
QCBzdWIgR2V0TmF0aXZlVmVjdG9ySW5uZXJUeXBlCiAgICAgcmV0dXJuICJSZWZQdHI8JGlubmVy
VHlwZT4iOwogfQogCi1zdWIgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcworc3ViIEdldE5hdGl2
ZUFyZ3VtZW50VHlwZUZvckNhbGxiYWNrcwogewogICAgIG15ICgkaW50ZXJmYWNlLCAkdHlwZSkg
PSBAXzsKIAotICAgIHJldHVybiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiIgaWYg
JHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7CiAgICAgcmV0dXJuICJjb25zdCBTdHJp
bmcmIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4g
R2V0TmF0aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkdHlwZSk7Cit9CisK
K3N1YiBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzCit7CisgICAgbXkgKCRpbnRlcmZh
Y2UsICR0eXBlKSA9IEBfOworCisgICAgcmV0dXJuICJSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmIiBpZiAkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIjsKKyAgICByZXR1cm4g
ImNvbnN0IFN0cmluZyYiIGlmICEkaW50ZXJmYWNlLT5pc0NhbGxiYWNrICYmICRjb2RlR2VuZXJh
dG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwogICAgIHJldHVybiBHZXROYXRpdmVUeXBlKCRpbnRl
cmZhY2UsICR0eXBlKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lv
biAyMDQ4ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDAsMTEgKzEwMCwxNCBAQAogCiAgICAgLy8gRklYTUU6IFVzaW5nICJ1bmRlZmlu
ZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgogICAgIFtSYWlzZXNFeGNl
cHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKG9wdGlvbmFsIERPTVN0cmlu
ZyBleHByZXNzaW9uID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVz
b2x2ZXIpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHBy
ZXNzaW9uKERPTVN0cmluZyBleHByZXNzaW9uLCBDdXN0b21YUGF0aE5TUmVzb2x2ZXIgcmVzb2x2
ZXIpOwogICAgIFhQYXRoTlNSZXNvbHZlciBjcmVhdGVOU1Jlc29sdmVyKE5vZGU/IG5vZGVSZXNv
bHZlcik7CiAKICAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJh
bWV0ZXIgdmFsdWUgaXMgd3JvbmcuCiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQg
ZXZhbHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwgb3B0
aW9uYWwgTm9kZT8gY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2
ZXIsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBY
UGF0aFJlc3VsdD8gaW5SZXN1bHQpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoUmVzdWx0
IGV2YWx1YXRlKERPTVN0cmluZyBleHByZXNzaW9uLCBOb2RlPyBjb250ZXh0Tm9kZSwgQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyLAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBzaG9y
dCB0eXBlID0gMCwgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/IGluUmVzdWx0KTsKIAogICAgIC8vIEZJ
WE1FOiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGxhc3QgcGFyYW1ldGVyIHNob3VsZCBiZSB0
aGUgZW1wdHkgc3RyaW5nLgogICAgIGJvb2xlYW4gZXhlY0NvbW1hbmQoRE9NU3RyaW5nIGNvbW1h
bmQsIG9wdGlvbmFsIGJvb2xlYW4gdXNlckludGVyZmFjZSA9IGZhbHNlLCBvcHRpb25hbCBET01T
dHJpbmc/IHZhbHVlID0gbnVsbCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL0N1c3RvbVhQ
YXRoTlNSZXNvbHZlci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9DdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyIDogcHVibGljIFhQYXRoTlNSZXNvbHZlciB7Cit9OworCit9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDM1IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
KiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisqCisqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKK2NhbGxiYWNr
IGludGVyZmFjZSBDdXN0b21YUGF0aE5TUmVzb2x2ZXIgeworCisgICAgW0N1c3RvbV0gRE9NU3Ry
aW5nPyBsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3RyaW5nIHByZWZpeCk7CisKK307CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwJKHJldmlzaW9uIDIwNDg4MykKKysrIFNv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDEzICsyMywxMyBAQAogXSBpbnRlcmZhY2UgWFBhdGhFdmFsdWF0b3IgewogICAgIC8vIEZJWE1F
OiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4K
ICAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihv
cHRpb25hbCBET01TdHJpbmcgZXhwcmVzc2lvbiA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBYUGF0
aE5TUmVzb2x2ZXI/IHJlc29sdmVyKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aEV4cHJl
c3Npb24gY3JlYXRlRXhwcmVzc2lvbihET01TdHJpbmcgZXhwcmVzc2lvbiwgQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyIHJlc29sdmVyKTsKIAogICAgIFhQYXRoTlNSZXNvbHZlciBjcmVhdGVOU1Jlc29s
dmVyKG9wdGlvbmFsIE5vZGU/IG5vZGVSZXNvbHZlcik7CiAKICAgICAvLyBGSVhNRTogVXNpbmcg
InVuZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCi0gICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4
cHJlc3Npb24gPSAidW5kZWZpbmVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25h
bCBOb2RlPyBjb250ZXh0Tm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBY
UGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9w
dGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBh
dGhSZXN1bHQgZXZhbHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZp
bmVkIiwgb3B0aW9uYWwgTm9kZT8gY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZl
cj8gcmVzb2x2ZXIsCisgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBv
cHRpb25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQ
YXRoUmVzdWx0IGV2YWx1YXRlKERPTVN0cmluZyBleHByZXNzaW9uLCBOb2RlPyBjb250ZXh0Tm9k
ZSwgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyLAorICAgICAgICBvcHRpb25hbCB1bnNp
Z25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/IGluUmVzdWx0KTsKIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlkbAkocmV2aXNpb24gMjA0
ODgzKQorKysgU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTE5LDcgKzE5LDYgQEAKICAqLwogCiBbCi0gICAgSlNDdXN0b21Ub05hdGl2ZU9i
amVjdCwKICAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwK
IF0gaW50ZXJmYWNlIFhQYXRoTlNSZXNvbHZlciB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286832</attachid>
            <date>2016-08-23 21:32:41 -0700</date>
            <delta_ts>2016-08-30 00:25:42 -0700</delta_ts>
            <desc>Fixed Windows build</desc>
            <filename>bug-161030-20160823213041.patch</filename>
            <type>text/plain</type>
            <size>48935</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTIyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1vdW50IG9m
IGN1c3RvbSBiaW5kaW5nIGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaWRsIHRvIGdlbmVyYXRlIHRoZSBtdWNoIG9mIHRoZSBiaW5kaW5nIGNvZGUgcmF0aGVy
IHRoYW4gZW50aXJlbHkgcmVseWluZyBvbiBjdXN0b20gY29kZS4KKyAgICAgICAgV2UgY2FuIHJl
bW92ZSB0aGUgcmVtYWluaW5nIGN1c3RvbSBjb2RlIG9uY2UgdGhlIGNvZGUgZ2VuZXJhdG9yIGZ1
bGx5IHN1cHBvcnRzIG5vbi1GdW5jdGlvbk9ubHkgY2FsbGJhY2sgaW50ZXJmYWNlcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNl
VVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbk9yQ29uc3RydWN0b3IpOiBDYWxs
YmFjayBpbnRlcmZhY2VzIGRvbid0IGhhdmUgY2xhc3MgaW5mby4gT21pdCB0aGF0IGNoZWNrLgor
ICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6IEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFj
a3MgaXMgbm93IHNwbGl0IGludG8gR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzIGFu
ZAorICAgICAgICBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzLiBDYWxsIHRoZSBhcHBy
b3ByaWF0ZSB2ZXJzaW9uLgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9u
KTogRGl0dG8uCisgICAgICAgIChHZXROYXRpdmVBcmd1bWVudFR5cGVGb3JDYWxsYmFja3MpOiBT
cGxpdCBmcm9tIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MuIEFsd2F5cyB1c2UgY29uc3QgU3Ry
aW5nJi4KKyAgICAgICAgKEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MpOiBSZW5hbWVk
IGZyb20gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcy4gQXZvaWQgY29uc3QgU3RyaW5nJiBmb3Ig
YSBjYWxsYmFjaydzIHJldHVybiB2YWx1ZS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmg6IEFkZGVkLgorICAgICAgICAqIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvWFBh
dGhOU1Jlc29sdmVyLmlkbDogUmVtb3ZlZCBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0IHNpbmNlIGl0
IG5vIGxvbmdlciB1c2VzIGEgY3VzdG9tIHRvV3JhcHBlZCBmdW5jdGlvbi4KKwogMjAxNi0wOC0y
MyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBG
QUlMRUQ6ICF2aWV3KCkubGF5b3V0U3RhdGVFbmFibGVkKCkgfHwgc3R5bGUoKS5zdHlsZVR5cGUo
KSA9PSBGSVJTVF9MRVRURVIgaW4gV2ViQ29yZTo6UmVuZGVySW5saW5lOjpjbGlwcGVkT3ZlcmZs
b3dSZWN0Rm9yUmVwYWludApJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwNDg4
MykKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02
NTAsNiArNjUwLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICB3b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmlkbAogICAgIHdvcmtlcnMvV29ya2VyTG9jYXRpb24uaWRsCiAK
KyAgICB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbAogICAgIHhtbC9ET01QYXJzZXIuaWRs
CiAgICAgeG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAogICAgIHhtbC9YTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmlkbApAQCAtMTEzOCw3ICsxMTM5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTQ3VzdG9tRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21T
UUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcApAQCAtMTI1Miw3ICsxMjUzLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UJKHdvcmtpbmcgY29weSkKQEAgLTcwMyw2ICs3MDMsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS93b3JrZXJzL1dvcmtlci5pZGwgXAogICAgICQoV2ViQ29yZSkvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9Xb3Jr
ZXJMb2NhdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5pZGwgXAogICAgICQoV2ViQ29yZSkveG1sL0RPTVBhcnNlci5pZGwgXAogICAgICQoV2ViQ29y
ZSkveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjA0ODgzKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0yODY1LDcgKzI4NjUsNiBAQAogCQk4MzVEMzYzNzE5RkY2MTkzMDA0QzkzQUIgLyogU3R5
bGVCdWlsZGVyQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzVEMzYzNjE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmgg
Ki87IH07CiAJCTgzNjc1ODdFMUM1NkU5OUIwMDhBMTA4NyAvKiBKU0hUTUxEYXRhRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZB
OTFDNTZFOTNFMDBGM0YwRTMgLyogSlNIVE1MRGF0YUVsZW1lbnQuY3BwICovOyB9OwogCQk4MzY3
NTg3RjFDNTZFOTlCMDA4QTEwODcgLyogSlNIVE1MRGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNEI4NkE4MUM1NkU5M0UwMEYzRjBF
MyAvKiBKU0hUTUxEYXRhRWxlbWVudC5oICovOyB9OwotCQk4MzZDMTQ0MzFDREVBRkQ4MDA3MzQ5
M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJODM2REFBMDYxQ0VBQjgwRDAwQTJCNzA3
IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM2REFBMDUxQ0VBQjdDRDAwQTJCNzA3IC8qIFJlbmRlckRl
c2NlbmRhbnRJdGVyYXRvci5oICovOyB9OwogCQk4MzZGQkNFQTE3OEMxMTMyMDBCMjFBMTUgLyog
U1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM2RkJDRTkxNzhDMTEzMjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yLmNwcCAqLzsgfTsKIAkJODM2RkJDRUMxNzhDMTE3RjAwQjIxQTE1IC8qIFNW
R0FuaW1hdGVkUHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM2RkJDRUIxNzhDMTE3RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVy
dHkuY3BwICovOyB9OwpAQCAtMzU5Myw2ICszNTkyLDggQEAKIAkJOUI2OUQzQjUxQjk4RkZFOTAw
RTM1MTJCIC8qIEhUTUxTbG90RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUI2OUQzQjMxQjk4RkZFOTAwRTM1MTJCIC8qIEhUTUxTbG90RWxl
bWVudC5oICovOyB9OwogCQk5QjY5RDNCODFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUI2OUQzQjYxQjk5MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50LmNwcCAqLzsgfTsK
IAkJOUI2OUQzQjkxQjk5MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjY5RDNCNzFCOTkxMDA3
MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuaCAqLzsgfTsKKwkJOUI2QkE5QUExRDZCOUNB
MzAwODM2NjM1IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTEzQUU1MUQ2QjlBQTYwMDg2NEExRSAv
KiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi87IH07CisJCTlCNkJBOUFCMUQ2QjlDQTcw
MDgzNjYzNSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMTNBRTYxRDZCOUFBNjAwODY0QTFFIC8qIEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi87IH07CiAJCTlCNkM0MTUzMTM0NDk0OTAwMDA4NUI2
MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QjZDNDE1MjEzNDQ5NDkwMDAwODVCNjIgLyogU3RyaW5nV2l0aERp
cmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTlCNzE0RTIwMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3MTRFMUUxQzkxMTY2OTAwQUMw
RTkyIC8qIEV2ZW50UGF0aC5jcHAgKi87IH07CiAJCTlCNzE0RTIxMUM5MTE2NjkwMEFDMEU5MiAv
KiBFdmVudFBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlCNzE0RTFGMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguaCAqLzsgfTsKQEAgLTU4
NTIsOCArNTg1Myw3IEBACiAJCUUwRkVGMzcyQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291
cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUw
RkVGMzcxQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNlLmNwcCAqLzsgfTsKIAkJRTEw
NzQwMEQwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwNzQwMEIwRTc3QkRDMDAwMzNB
RjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwICovOyB9OwogCQlFMTA3NDAwRTBFNzdCREMwMDAz
M0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEwNzQwMEMwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNo
YW5uZWwuaCAqLzsgfTsKLQkJRTEwQjkzN0MwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTBCOTM3QjBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aCAqLzsgfTsKLQkJRTEwQjkzQzMwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAg
Ki87IH07CisJCUUxMEI5M0MzMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJD
dXN0b20uY3BwICovOyB9OwogCQlFMTBCOUI2QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBh
dGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTBCOUI2QTBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmgg
Ki87IH07CiAJCUUxMEI5QjZEMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEw
QjlCNkIwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAgKi87IH07
CiAJCUUxMTAwMzMwMUM5QUMzREUwMDQxMkREMCAvKiBDU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMTAwMzJF
MUM5QUMzREUwMDQxMkREMCAvKiBDU1NHcmlkQXV0b1JlcGVhdFZhbHVlLmNwcCAqLzsgfTsKQEAg
LTk5MTYsNyArOTkxNiw2IEBACiAJCTgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1
aWxkZXJDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVCdWls
ZGVyQ3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUY4QjI2MUQyRDkw
QkEwMEU0MDhFQyAvKiBTbG90YWJsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2xvdGFi
bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzY5RTU4RjFBRkREMDMwMDA4
N0RGNjggLyogTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOb25Eb2N1bWVudFR5
cGVDaGlsZE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MzZDMTQ0MjFD
REVBRkNBMDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZEQUEwNTFDRUFCN0NEMDBBMkI3MDcgLyog
UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzZGQkNFOTE3OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRUeXBl
QW5pbWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZGQkNFQjE3OEMx
MTdGMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFByb3BlcnR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzQ4LDYgKzEwNzQ3LDggQEAKIAkJOUIwM0Q4MDYxQkIzMTEw
RDAwQjc2NEQ5IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzY0RTgg
LyogV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjRFOSAvKiBXcml0YWJsZVN0cmVhbUludGVybmFsc0J1
aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRhYmxlU3RyZWFt
SW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMTNB
RTUxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMTNBRTYxRDZCOUFBNjAwODY0QTFF
IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTlCMTlCNjdFMUI5NjRFNTIwMDM0ODc0NSAvKiBTaGFkb3dSb290LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTaGFkb3dSb290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUIxQUIwNzkxNjQ4QzY5RDAwNTFGM0YyIC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlCMUFCMDdCMTY0OEM3QzQwMDUxRjNGMiAvKiBKU0hUTUxGb3Jt
Q29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb25DdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3ODksNiArMTA3OTAsOCBAQAogCQk5QkQ0RTkxNTFD
NDYyODcyMDA1MDY1QkMgLyogSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QkQ0RTkxODFDNDYyQ0ZDMDA1MDY1QkMgLyogQ3VzdG9t
RWxlbWVudFJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCRDRFOTE5MUM0NjJDRkMwMDUwNjVCQyAvKiBDdXN0b21FbGVtZW50UmVnaXN0cnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCRDc1OTlGMUQ2QjkwMjMwMENBODI0NiAvKiBD
dXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlC
RDc1OUEwMUQ2QjkwMjMwMENBODI0NiAvKiBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEN1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlCRDhBOTU5MThCRUZDNzYwMDk4N0U5QSAvKiBDb2xsZWN0aW9u
SW5kZXhDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xs
ZWN0aW9uSW5kZXhDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRTY3
MTA5MUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRTY3MTBBMUQ1QUVCMDQwMDM0NTUx
NCAvKiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTMzNzMsOCArMTMzNzYsNyBAQAogCQlFMEZFRjM3MUI0N0M1M0VBQzFDMUZCRUUg
LyogSlNFdmVudFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0V2ZW50U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNzQw
MEIwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlQ2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxMDc0MDBDMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VD
aGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVzc2FnZUNoYW5u
ZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEwQjkzN0IwQjczQzAwQTAwM0VE
ODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMEI5M0My
MEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMEI5QjZBMEI3NDc1
OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxMEI5QjZCMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVz
b2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF0aXZlWFBh
dGhOU1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTExMDAzMkUx
QzlBQzNERTAwNDEyREQwIC8qIENTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTMwMCw2ICsxOTMwMiw4IEBACiAJCUE4M0I3
OTBDMENDQUZGODMwMDBCMDgyNSAvKiBYUGF0aCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJOUIxMTNBRTUxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKKwkJCQk5QjExM0FFNjFENkI5QUE2MDA4NjRBMUUgLyog
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLywKIAkJCQkxQTc2MkM2QjBBMDc0RjI2MDA5ODlG
NUIgLyogSlNYUGF0aEV2YWx1YXRvci5jcHAgKi8sCiAJCQkJMUE3NjJDNkMwQTA3NEYyNjAwOTg5
RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCAqLywKIAkJCQlCQzYwREI0NzBEMkEzRDFFMDBCOTkx
OEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5jcHAgKi8sCkBAIC0yMTA1Niw3ICsyMTA2MCw2IEBACiAJ
CQkJRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20u
Y3BwICovLAogCQkJCTgzQTRBOUY4MUNFN0ZEN0UwMDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3Vz
dG9tLmNwcCAqLywKIAkJCQlCQzM0OEJCRDBEQjdGNTMxMDA0QUJBQjkgLyogSlNYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAgKi8sCi0JCQkJODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlBMUM3RkFBMTEzM0E1RDM1MDBENjczMkQg
LyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNFRkUxRTQwRENBNUYzMzAwNzM5
MjE5IC8qIEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgKi8sCiAJCQkpOwpAQCAtMjEzNDQsOCAr
MjEzNDcsNyBAQAogCQkJCTE0NDlFMjg2MTA3RDREQjQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0
YS5jcHAgKi8sCiAJCQkJMTQ0OUUyNEExMDdENEE4NDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRh
LmggKi8sCiAJCQkJNTFFQzkyNUQwQ0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjay5jcHAgKi8sCi0JCQkJRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8q
IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKLQkJCQlFMTBCOTM3QjBCNzNDMDBBMDAz
RUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLywKKwkJCQlFMTBCOTNDMjBCNzND
MjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovLAogCQkJ
CTkzQjcwRDREMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuY3BwICovLAogCQkJ
CTkzQjcwRDRFMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlzdGVuZXIuaCAqLywKIAkJCQk5
MzVGNDU0MDBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgKi8sCkBA
IC0yMTk0MCw2ICsyMTk0Miw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTAwQjkzMTgwMTNCQTg2N0YwMDM1QTk0OCAvKiBwYXJzZXIgKi8sCisJCQkJOUJENzU5
OUYxRDZCOTAyMzAwQ0E4MjQ2IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oICovLAorCQkJCTlC
RDc1OUEwMUQ2QjkwMjMwMENBODI0NiAvKiBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsICovLAog
CQkJCTFBQ0U1M0UxMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuY3BwICovLAogCQkJCTFB
Q0U1M0UyMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaCAqLywKIAkJCQkxQUNFNTNFMzBB
OEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmlkbCAqLywKQEAgLTI0NzgwLDcgKzI0Nzg0LDYg
QEAKIAkJCQk5QkQ0RTkxNzFDNDYyODcyMDA1MDY1QkMgLyogSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkU2NzEwQzFENUFFQjI1MDAzNDU1MTQgLyogSlND
dXN0b21FbGVtZW50UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0Nzc4QjgwMTE1QTU4
MUEwMEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTBCOTM3
QzBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBRTgyRjkwMENBQUZBOUQwMDIyMzdBRSAvKiBKU0RhdGFiYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCNTlERDY5OTExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTYxMDM5RTE4QTlENjVBMDBERDUwRDcgLyogSlNE
YXRhQ3VlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTk5LDYgKzI1NjAyLDcgQEAKIAkJCQkyRDc3
QUMyOTFCRjJCOTg2MDA3MjQ3MEEgLyogTlNBY2Nlc3NpYmlsaXR5U1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRDc3QUMyQTFCRjJCOTg3MDA3MjQ3MEEgLyogTlNBcHBsaWNhdGlvblNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOUJCNzM3NjUxQjQxQzAzNTAwQUUxM0VCIC8qIE5TQXR0cmlidXRl
ZFN0cmluZ1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI2QkE5QUIxRDZCOUNBNzAwODM2NjM1
IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUIzMTNE
RjFCNjk4OEM1MDBGMkFBQkMgLyogTlNCdXR0b25DZWxsU1BJLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTEyNTI1MTFBMUJFQkQ4MDA4NjQ0ODAgLyogTlNDYWxlbmRhckRhdGVTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxREY2MzU3MUFGMTg3REQwMDc4RkQ5MSAvKiBOU0NvbG9yU1BJLmggaW4g
SGVhZGVycyAqLywKQEAgLTI4Mzg3LDcgKzI4MzkxLDcgQEAKIAkJCQlFNDc3OEI3RjExNUE1ODFB
MDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERUMyOTc2
MTFCNEYyRjhEMDA1RjU5NDUgLyogSlNDdXN0b21FdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUVDOTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRF
cnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxMEI5M0MzMEI3M0MyOTEwMDNF
RDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
MTBCOTNDMzBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFODJGOEYwQ0FBRkE5RDAwMjIzN0FFIC8qIEpTRGF0
YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2OUExMTkwMjlFNTAwN0U5Njg0IC8q
IEpTRGF0YWJhc2VDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCRTYxMDM5RDE4QTlE
NjUyMDBERDUwRDcgLyogSlNEYXRhQ3VlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjkwMTUsNyAr
MjkwMTksNiBAQAogCQkJCUJDNjBEQjQ5MEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc1MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoRXhwcmVzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc2MkM3NzBBMDc0RjI2
MDA5ODlGNUIgLyogSlNYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODM2
QzE0NDMxQ0RFQUZEODAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBNzYyQzc5MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoUmVzdWx0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQzdGQUEyMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQ
YXRoUmVzdWx0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUZFMUVBMERDQTVGNjQw
MDczOTIxOSAvKiBKU1hTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTM3OSw2
ICsyOTM4Miw3IEBACiAJCQkJOTNGMTlBRjgwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTE5QzIzMEI3RDE4ODYwMEE1Njk5OCAvKiBQb3NpdGlv
bkl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2MzQ1OTJDMUFDMjI3MTAwMEVDQjcx
QyAvKiBQb3dlck9ic2VydmVyTWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlCNkJBOUFBMUQ2
QjlDQTMwMDgzNjYzNSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCNzc2RDQzRDExMDQ1Mjc1MDBCRUIwRUMgLyogUHJpbnRDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4RUE3RUJEMEExOTQ1RDAwMEE4RUY1RiAvKiBQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjEzRUIwQ0Q2ODFCNDAwRkFEQTc1
IC8qIFByb2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDIw
NDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAKICNpbmNsdWRlICJKU0NyeXB0b0N1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDdXN0b21FdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCIKLSNpbmNsdWRlICJKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAiCisjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5jcHAiCiAjaW5jbHVkZSAiSlNET01G
b3JtRGF0YUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuY3BwIgpAQCAt
MTQyLDcgKzE0Miw2IEBACiAjaW5jbHVkZSAiSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRw
UmVxdWVzdEN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWFNMVFBy
b2Nlc3NvckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0aW9uLmNwcCIKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5jcHAJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwOCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzIEFsZXhleSBQcm9za3VyeWFr
b3YgKGFwQG55cG9wLmNvbSkKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgot
I2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNp
bmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
Ci0jaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotUmVmUHRyPEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyPiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAodmFsdWUuaXNVbmRlZmluZWRP
ck51bGwoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBKU09iamVjdCogcmVzb2x2
ZXJPYmplY3QgPSB2YWx1ZS5nZXRPYmplY3QoKTsKLSAgICBpZiAoIXJlc29sdmVyT2JqZWN0KSB7
Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENIX0VSUik7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyKGV4ZWMsIHJlc29sdmVyT2JqZWN0LCBhc0pTRE9NV2luZG93
KGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSkpKTsKLX0KLQotSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXI6OkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGN1c3RvbVJlc29sdmVyLCBKU0RPTVdpbmRvdyogZ2xvYmFsT2JqZWN0KQotICAgIDogbV9jdXN0
b21SZXNvbHZlcihleGVjLT52bSgpLCBjdXN0b21SZXNvbHZlcikKLSAgICAsIG1fZ2xvYmFsT2Jq
ZWN0KGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdCkKLXsKLX0KLQotSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcigpCi17Ci19Ci0KLVN0cmluZyBKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4
KQotewotICAgIEFTU0VSVChtX2N1c3RvbVJlc29sdmVyKTsKLQotICAgIEpTTG9ja0hvbGRlciBs
b2NrKEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKSk7Ci0KLSAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICAKLSAgICBKU1ZhbHVlIGZ1
bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci0+Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJp
bmcoZXhlYywgImxvb2t1cE5hbWVzcGFjZVVSSSIpKTsKLSAgICBDYWxsRGF0YSBjYWxsRGF0YTsK
LSAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7
Ci0gICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7Ci0gICAgICAgIGNhbGxUeXBl
ID0gbV9jdXN0b21SZXNvbHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEobV9jdXN0b21S
ZXNvbHZlci5nZXQoKSwgY2FsbERhdGEpOwotICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5
cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgIGlmIChQYWdlQ29uc29sZUNsaWVudCogY29uc29sZSA9
IG1fZ2xvYmFsT2JqZWN0LT53cmFwcGVkKCkuY29uc29sZSgpKQotICAgICAgICAgICAgICAgIGNv
bnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IEFTQ0lJTGl0ZXJhbCgiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1l
c3BhY2VVUkkgbWV0aG9kLiIpKTsKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAg
ICAgfQotICAgICAgICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7Ci0gICAgfQot
Ci0gICAgUmVmPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsK
LQotICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgYXJncy5hcHBlbmQoanNTdHJp
bmdXaXRoQ2FjaGUoZXhlYywgcHJlZml4KSk7Ci0KLSAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4
Y2VwdGlvbjsKLSAgICBKU1ZhbHVlIHJldHZhbCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2Fs
bChleGVjLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2N1c3RvbVJlc29sdmVyLmdl
dCgpLCBhcmdzLCBleGNlcHRpb24pOwotCi0gICAgU3RyaW5nIHJlc3VsdDsKLSAgICBpZiAoZXhj
ZXB0aW9uKQotICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKLSAgICBl
bHNlIHsKLSAgICAgICAgaWYgKCFyZXR2YWwuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAg
ICAgIHJlc3VsdCA9IHJldHZhbC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCww
ICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
CShyZXZpc2lvbiAyMDQ4ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5oCShub25leGlzdGVudCkKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyX2gKLSNkZWZpbmUgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJfaAot
Ci0jaW5jbHVkZSAiWFBhdGhOU1Jlc29sdmVyLmgiCi0jaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4K
LSNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQ0lu
bGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWUuaD4KLSNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0g
ICAgY2xhc3MgRXhlY1N0YXRlOwotICAgIGNsYXNzIEpTT2JqZWN0OwotfQotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBGcmFtZTsKLSAgICBjbGFzcyBKU0RPTVdpbmRvdzsKLQot
ICAgIGNsYXNzIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIDogcHVibGljIFhQYXRoTlNSZXNvbHZl
ciB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmUHRyPEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOwotICAgICAgICAK
LSAgICAgICAgdmlydHVhbCB+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKTsKLQotICAgICAgICB2
aXJ0dWFsIFN0cmluZyBsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpOwot
Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNET01XaW5kb3cqKTsKLQotICAgICAgICAvLyBKU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcnMgYXJlIGFsd2F5cyB0ZW1wb3Jhcnkgc28gdXNpbmcgYSBTdHJv
bmcgcmVmZXJlbmNlIGlzIHNhZmUgaGVyZS4KLSAgICAgICAgSlNDOjpTdHJvbmc8SlNDOjpKU09i
amVjdD4gbV9jdXN0b21SZXNvbHZlcjsKLSAgICAgICAgSlNDOjpTdHJvbmc8SlNET01XaW5kb3c+
IG1fZ2xvYmFsT2JqZWN0OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCShy
ZXZpc2lvbiAyMDQ3NDcpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmNwcDoyMDQ3NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTMgQWxleGV5IFByb3Nr
dXJ5YWtvdiAoYXBAbnlwb3AuY29tKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9t
LmgiCisjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitSZWZQdHI8
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1VuZGVm
aW5lZE9yTnVsbCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEpTT2JqZWN0KiBy
ZXNvbHZlck9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpOworICAgIGlmICghcmVzb2x2ZXJPYmpl
Y3QpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoZXhlYywgcmVzb2x2ZXJPYmplY3QsIGFzSlNET01X
aW5kb3coZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpKSkpOworfQorCitKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogY3VzdG9tUmVzb2x2ZXIsIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QpCisgICAgOiBt
X2N1c3RvbVJlc29sdmVyKGV4ZWMtPnZtKCksIGN1c3RvbVJlc29sdmVyKQorICAgICwgbV9nbG9i
YWxPYmplY3QoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0KQoreworfQorCitKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcjo6fkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKCkKK3sKK30KKworU3RyaW5nIEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBw
cmVmaXgpCit7CisgICAgQVNTRVJUKG1fY3VzdG9tUmVzb2x2ZXIpOworCisgICAgSlNMb2NrSG9s
ZGVyIGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpKTsKKworICAgIEV4ZWNTdGF0ZSog
ZXhlYyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgICAgIAorICAgIEpTVmFs
dWUgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyhleGVjLCAibG9va3VwTmFtZXNwYWNlVVJJIikpOworICAgIENhbGxEYXRhIGNhbGxE
YXRhOworICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoZnVuY3Rpb24sIGNhbGxE
YXRhKTsKKyAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKKyAgICAgICAgY2Fs
bFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1
c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0YSk7CisgICAgICAgIGlmIChjYWxsVHlwZSA9PSBD
YWxsVHlwZTo6Tm9uZSkgeworICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBjb25z
b2xlID0gbV9nbG9iYWxPYmplY3QtPndyYXBwZWQoKS5jb25zb2xlKCkpCisgICAgICAgICAgICAg
ICAgY29uc29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgQVNDSUlMaXRlcmFsKCJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1
cE5hbWVzcGFjZVVSSSBtZXRob2QuIikpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci5nZXQoKTsKKyAg
ICB9CisKKyAgICBSZWY8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IHByb3RlY3RlZFRoaXMoKnRo
aXMpOworCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICBhcmdzLmFwcGVuZChq
c1N0cmluZ1dpdGhDYWNoZShleGVjLCBwcmVmaXgpKTsKKworICAgIE5ha2VkUHRyPEV4Y2VwdGlv
bj4gZXhjZXB0aW9uOworICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWluVGhyZWFkRXhlY1N0YXRl
OjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIG1fY3VzdG9tUmVzb2x2
ZXIuZ2V0KCksIGFyZ3MsIGV4Y2VwdGlvbik7CisKKyAgICBTdHJpbmcgcmVzdWx0OworICAgIGlm
IChleGNlcHRpb24pCisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjLCBleGNlcHRpb24pOwor
ICAgIGVsc2UgeworICAgICAgICBpZiAoIXJldHZhbC5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAg
ICAgICAgICAgcmVzdWx0ID0gcmV0dmFsLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCShyZXZpc2lvbiAyMDQ3NDcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDE0ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNpbmNsdWRlICJEb2N1bWVudC5o
IgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVk
ZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBhZ2VDb25zb2xlQ2xpZW50LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNs
dWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAtNDEsNTgg
KzM3LDM0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAot
UmVmUHRyPEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyPiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAodmFsdWUu
aXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBKU09i
amVjdCogcmVzb2x2ZXJPYmplY3QgPSB2YWx1ZS5nZXRPYmplY3QoKTsKLSAgICBpZiAoIXJlc29s
dmVyT2JqZWN0KSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBUWVBFX01JU01BVENI
X0VSUik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKGV4ZWMsIHJlc29sdmVyT2JqZWN0LCBh
c0pTRE9NV2luZG93KGV4ZWMtPnZtRW50cnlHbG9iYWxPYmplY3QoKSkpKTsKLX0KLQotSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6OkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGN1c3RvbVJlc29sdmVyLCBKU0RPTVdpbmRvdyogZ2xvYmFsT2JqZWN0KQot
ICAgIDogbV9jdXN0b21SZXNvbHZlcihleGVjLT52bSgpLCBjdXN0b21SZXNvbHZlcikKLSAgICAs
IG1fZ2xvYmFsT2JqZWN0KGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdCkKLXsKLX0KLQotSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcigpCi17Ci19Ci0KIFN0
cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0
cmluZyYgcHJlZml4KQogewotICAgIEFTU0VSVChtX2N1c3RvbVJlc29sdmVyKTsKKyAgICBSZWY8
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOworCisgICAgYXV0
byogZ2xvYmFsT2JqZWN0ID0gbV9kYXRhLT5nbG9iYWxPYmplY3QoKTsKKyAgICBFeGVjU3RhdGUq
IGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKIAotICAgIEpTTG9ja0hvbGRlciBs
b2NrKEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKSk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2so
Z2xvYmFsT2JqZWN0LT52bSgpKTsKIAotICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAgICAgIAotICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBtX2N1
c3RvbVJlc29sdmVyLT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAibG9v
a3VwTmFtZXNwYWNlVVJJIikpOworICAgIEpTT2JqZWN0KiBjdXN0b21SZXNvbHZlciA9IG1fZGF0
YS0+Y2FsbGJhY2soKTsKKyAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gY3VzdG9tUmVzb2x2ZXItPmdl
dChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJsb29rdXBOYW1lc3BhY2VVUkki
KSk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CiAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRD
YWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOwogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlw
ZTo6Tm9uZSkgewotICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRh
YmxlKCktPmdldENhbGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGNhbGxEYXRhKTsKKyAg
ICAgICAgY2FsbFR5cGUgPSBjdXN0b21SZXNvbHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERh
dGEoY3VzdG9tUmVzb2x2ZXIsIGNhbGxEYXRhKTsKICAgICAgICAgaWYgKGNhbGxUeXBlID09IENh
bGxUeXBlOjpOb25lKSB7Ci0gICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIGNvbnNv
bGUgPSBtX2dsb2JhbE9iamVjdC0+d3JhcHBlZCgpLmNvbnNvbGUoKSkKKyAgICAgICAgICAgIGlm
IChQYWdlQ29uc29sZUNsaWVudCogY29uc29sZSA9IGFzSlNET01XaW5kb3coZ2xvYmFsT2JqZWN0
KS0+d3JhcHBlZCgpLmNvbnNvbGUoKSkKICAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwo
IlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhv
ZC4iKSk7CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIH0KLSAgICAgICAg
ZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOworICAgICAgICBmdW5jdGlvbiA9IGN1
c3RvbVJlc29sdmVyOwogICAgIH0KIAotICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4g
cHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0KICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwog
ICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIHByZWZpeCkpOwogCiAgICAg
TmFrZWRQdHI8RXhjZXB0aW9uPiBleGNlcHRpb247Ci0gICAgSlNWYWx1ZSByZXR2YWwgPSBKU01h
aW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0
YSwgbV9jdXN0b21SZXNvbHZlci5nZXQoKSwgYXJncywgZXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVl
IHJldHZhbCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChleGVjLCBmdW5jdGlvbiwgY2Fs
bFR5cGUsIGNhbGxEYXRhLCBjdXN0b21SZXNvbHZlciwgYXJncywgZXhjZXB0aW9uKTsKIAogICAg
IFN0cmluZyByZXN1bHQ7CiAgICAgaWYgKGV4Y2VwdGlvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKHJl
dmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNYUGF0aE5TUmVzb2x2ZXIuaCIK
LQotI2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCi0KLXVzaW5nIG5hbWVzcGFj
ZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4g
SlNYUGF0aE5TUmVzb2x2ZXI6OnRvV3JhcHBlZChFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZh
bHVlKQotewotICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU1hQYXRoTlNSZXNvbHZlcjo6aW5mbygp
KSkKLSAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNYUGF0aE5TUmVzb2x2ZXIqPihhc09iamVjdCh2
YWx1ZSkpLT53cmFwcGVkKCk7Ci0KLSAgICByZXR1cm4gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6
OmNyZWF0ZSgmc3RhdGUsIHZhbHVlKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0JKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMzLDcgKzE5MzMsOSBA
QCBFTkQKICAgICAgICAgICAgIGZvciBteSAkdHVwbGUgKEB7JFN9KSB7CiAgICAgICAgICAgICAg
ICAgbXkgJG92ZXJsb2FkID0gQHskdHVwbGV9WzBdOwogICAgICAgICAgICAgICAgIG15ICR0eXBl
ID0gU3RyaXBOdWxsYWJsZShAe0B7JHR1cGxlfVsxXX1bJGRdKTsKLSAgICAgICAgICAgICAgICBp
ZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9y
LT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgICAgIGlmICgkY29kZUdl
bmVyYXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkY29kZUdl
bmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRB
cnJheVR5cGUoJHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9h
ZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgp
ICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHMoSlMke3R5cGV9OjppbmZv
KCkpIik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNDExMyw5ICs0MTE1
LDkgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICAgICAgZm9yZWFjaCBteSAkZnVu
Y3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbXkgQGFyZ3Vt
ZW50cyA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlv
bi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEdldE5h
dGl2ZVR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJHBhcmFtZXRlci0+dHlwZSkgLiAiICIg
LiAkcGFyYW1ldGVyLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEdl
dE5hdGl2ZUFyZ3VtZW50VHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW1ldGVyLT50
eXBlKSAuICIgIiAuICRwYXJhbWV0ZXItPm5hbWUpOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsICIgLiBHZXROYXRpdmVUeXBlRm9y
Q2FsbGJhY2tzKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgIiAu
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiIC4gam9pbigiLCAiLCBAYXJndW1lbnRz
KSAuICIpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1
YWwgIiAuIEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUg
LiAiKCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIik7XG4iKTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtNDI1MywxNCArNDI1NSwxNCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVu
dGF0aW9uCiAKICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluSW1wbCgkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+dHlwZSk7CiAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPm5hbWU7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxu
IiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPnR5cGUpIC4gIiAke2NsYXNzTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSgiKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlUmV0dXJuVHlwZUZvckNh
bGxiYWNrcygkaW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICR7Y2xh
c3NOYW1lfTo6JHtmdW5jdGlvbk5hbWV9KCIpOwogCiAgICAgICAgICAgICBteSBAYXJncyA9ICgp
OwogICAgICAgICAgICAgbXkgQGFyZ3NDaGVjayA9ICgpOwogICAgICAgICAgICAgZm9yZWFjaCBt
eSAkcGFyYW0gKEBwYXJhbXMpIHsKICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBh
cmFtLT5uYW1lOwogICAgICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluSW1wbCgkcGFy
YW0tPnR5cGUsIDEpOwotICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZVR5cGVG
b3JDYWxsYmFja3MoJGludGVyZmFjZSwgJHBhcmFtLT50eXBlKSAuICIgIiAuICRwYXJhbU5hbWUp
OworICAgICAgICAgICAgICAgIHB1c2goQGFyZ3MsIEdldE5hdGl2ZUFyZ3VtZW50VHlwZUZvckNh
bGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW0tPnR5cGUsIDApIC4gIiAiIC4gJHBhcmFtTmFtZSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgam9pbigiLCAi
LCBAYXJncykpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIpXG4iKTsKQEAgLTQ1
MTksNyArNDUyMSw2IEBAIG15ICVuYXRpdmVUeXBlID0gKAogICAgICJEaWN0aW9uYXJ5IiA9PiAi
RGljdGlvbmFyeSIsCiAgICAgIkV2ZW50TGlzdGVuZXIiID0+ICJSZWZQdHI8RXZlbnRMaXN0ZW5l
cj4iLAogICAgICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiID0+ICJSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiIsCi0gICAgIlhQYXRoTlNSZXNvbHZlciIgPT4gIlJlZlB0cjxYUGF0aE5TUmVz
b2x2ZXI+IiwKICAgICAiYW55IiA9PiAiSlNDOjpKU1ZhbHVlIiwKICAgICAiYm9vbGVhbiIgPT4g
ImJvb2wiLAogICAgICJieXRlIiA9PiAiaW50OF90IiwKQEAgLTQ1NzIsMTIgKzQ1NzMsMjAgQEAg
c3ViIEdldE5hdGl2ZVZlY3RvcklubmVyVHlwZQogICAgIHJldHVybiAiUmVmUHRyPCRpbm5lclR5
cGU+IjsKIH0KIAotc3ViIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MKK3N1YiBHZXROYXRpdmVB
cmd1bWVudFR5cGVGb3JDYWxsYmFja3MKIHsKICAgICBteSAoJGludGVyZmFjZSwgJHR5cGUpID0g
QF87CiAKLSAgICByZXR1cm4gIlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYiIGlmICR0
eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOwogICAgIHJldHVybiAiY29uc3QgU3RyaW5n
JiIgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7CisgICAgcmV0dXJuIEdl
dE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJHR5cGUpOworfQorCitz
dWIgR2V0TmF0aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNrcworeworICAgIG15ICgkaW50ZXJmYWNl
LCAkdHlwZSkgPSBAXzsKKworICAgIHJldHVybiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiIgaWYgJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7CisgICAgcmV0dXJuICJj
b25zdCBTdHJpbmcmIiBpZiAhJGludGVyZmFjZS0+aXNDYWxsYmFjayAmJiAkY29kZUdlbmVyYXRv
ci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gR2V0TmF0aXZlVHlwZSgkaW50ZXJm
YWNlLCAkdHlwZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24g
MjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMTAwLDExICsxMDAsMTQgQEAKIAogICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVk
IiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4KICAgICBbUmFpc2VzRXhjZXB0
aW9uXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihvcHRpb25hbCBET01TdHJpbmcg
ZXhwcmVzc2lvbiA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29s
dmVyKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVz
c2lvbihET01TdHJpbmcgZXhwcmVzc2lvbiwgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVy
KTsKICAgICBYUGF0aE5TUmVzb2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihOb2RlPyBub2RlUmVzb2x2
ZXIpOwogCiAgICAgLy8gRklYTUU6IFVzaW5nICJ1bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1l
dGVyIHZhbHVlIGlzIHdyb25nLgogICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoUmVzdWx0IGV2
YWx1YXRlKG9wdGlvbmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5lZCIsIG9wdGlv
bmFsIE5vZGU/IGNvbnRleHROb2RlLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVy
LAogICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBh
dGhSZXN1bHQ/IGluUmVzdWx0KTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aFJlc3VsdCBl
dmFsdWF0ZShET01TdHJpbmcgZXhwcmVzc2lvbiwgTm9kZT8gY29udGV4dE5vZGUsIEN1c3RvbVhQ
YXRoTlNSZXNvbHZlciByZXNvbHZlciwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWduZWQgc2hvcnQg
dHlwZSA9IDAsIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CiAKICAgICAvLyBGSVhN
RTogVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBsYXN0IHBhcmFtZXRlciBzaG91bGQgYmUgdGhl
IGVtcHR5IHN0cmluZy4KICAgICBib29sZWFuIGV4ZWNDb21tYW5kKERPTVN0cmluZyBjb21tYW5k
LCBvcHRpb25hbCBib29sZWFuIHVzZXJJbnRlcmZhY2UgPSBmYWxzZSwgb3B0aW9uYWwgRE9NU3Ry
aW5nPyB2YWx1ZSA9IG51bGwpOwpJbmRleDogU291cmNlL1dlYkNvcmUveG1sL0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0
aE5TUmVzb2x2ZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJYUGF0aE5TUmVzb2x2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1c3RvbVhQYXRoTlNSZXNv
bHZlciA6IHB1YmxpYyBYUGF0aE5TUmVzb2x2ZXIgeworfTsKKworfQpJbmRleDogU291cmNlL1dl
YkNvcmUveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyog
bWV0OgorKgorKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisqIGRpc3RyaWJ1dGlvbi4KKyogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorKgorKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCitjYWxsYmFjayBp
bnRlcmZhY2UgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHsKKworICAgIFtDdXN0b21dIERPTVN0cmlu
Zz8gbG9va3VwTmFtZXNwYWNlVVJJKERPTVN0cmluZyBwcmVmaXgpOworCit9OwpJbmRleDogU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsCShyZXZpc2lvbiAyMDQ4ODMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMywx
MyArMjMsMTMgQEAKIF0gaW50ZXJmYWNlIFhQYXRoRXZhbHVhdG9yIHsKICAgICAvLyBGSVhNRTog
VXNpbmcgInVuZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCiAg
ICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24ob3B0
aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgWFBhdGhO
U1Jlc29sdmVyPyByZXNvbHZlcik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhFeHByZXNz
aW9uIGNyZWF0ZUV4cHJlc3Npb24oRE9NU3RyaW5nIGV4cHJlc3Npb24sIEN1c3RvbVhQYXRoTlNS
ZXNvbHZlciByZXNvbHZlcik7CiAKICAgICBYUGF0aE5TUmVzb2x2ZXIgY3JlYXRlTlNSZXNvbHZl
cihvcHRpb25hbCBOb2RlPyBub2RlUmVzb2x2ZXIpOwogCiAgICAgLy8gRklYTUU6IFVzaW5nICJ1
bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25nLgotICAgIFtSYWlz
ZXNFeGNlcHRpb25dIFhQYXRoUmVzdWx0IGV2YWx1YXRlKG9wdGlvbmFsIERPTVN0cmluZyBleHBy
ZXNzaW9uID0gInVuZGVmaW5lZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
Tm9kZT8gY29udGV4dE5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgWFBh
dGhOU1Jlc29sdmVyPyByZXNvbHZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25h
bCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBvcHRp
b25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRo
UmVzdWx0IGV2YWx1YXRlKG9wdGlvbmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5l
ZCIsIG9wdGlvbmFsIE5vZGU/IGNvbnRleHROb2RlLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/
IHJlc29sdmVyLAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0
aW9uYWwgWFBhdGhSZXN1bHQ/IGluUmVzdWx0KTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0
aFJlc3VsdCBldmFsdWF0ZShET01TdHJpbmcgZXhwcmVzc2lvbiwgTm9kZT8gY29udGV4dE5vZGUs
IEN1c3RvbVhQYXRoTlNSZXNvbHZlciByZXNvbHZlciwKKyAgICAgICAgb3B0aW9uYWwgdW5zaWdu
ZWQgc2hvcnQgdHlwZSA9IDAsIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwJKHJldmlzaW9uIDIwNDg4
MykKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xOSw3ICsxOSw2IEBACiAgKi8KIAogWwotICAgIEpTQ3VzdG9tVG9OYXRpdmVPYmpl
Y3QsCiAgICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiBd
IGludGVyZmFjZSBYUGF0aE5TUmVzb2x2ZXIgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287377</attachid>
            <date>2016-08-30 00:25:48 -0700</date>
            <delta_ts>2020-08-06 13:16:04 -0700</delta_ts>
            <desc>Fixed GTK+ build</desc>
            <filename>bug-161030-20160830002338.patch</filename>
            <type>text/plain</type>
            <size>48907</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTE3NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTIyICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1vdW50IG9m
IGN1c3RvbSBiaW5kaW5nIGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaWRsIHRvIGdlbmVyYXRlIHRoZSBtdWNoIG9mIHRoZSBiaW5kaW5nIGNvZGUgcmF0aGVy
IHRoYW4gZW50aXJlbHkgcmVseWluZyBvbiBjdXN0b20gY29kZS4KKyAgICAgICAgV2UgY2FuIHJl
bW92ZSB0aGUgcmVtYWluaW5nIGN1c3RvbSBjb2RlIG9uY2UgdGhlIGNvZGUgZ2VuZXJhdG9yIGZ1
bGx5IHN1cHBvcnRzIG5vbi1GdW5jdGlvbk9ubHkgY2FsbGJhY2sgaW50ZXJmYWNlcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6On5KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNl
VVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbk9yQ29uc3RydWN0b3IpOiBDYWxs
YmFjayBpbnRlcmZhY2VzIGRvbid0IGhhdmUgY2xhc3MgaW5mby4gT21pdCB0aGF0IGNoZWNrLgor
ICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6IEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFj
a3MgaXMgbm93IHNwbGl0IGludG8gR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzIGFu
ZAorICAgICAgICBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzLiBDYWxsIHRoZSBhcHBy
b3ByaWF0ZSB2ZXJzaW9uLgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9u
KTogRGl0dG8uCisgICAgICAgIChHZXROYXRpdmVBcmd1bWVudFR5cGVGb3JDYWxsYmFja3MpOiBT
cGxpdCBmcm9tIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MuIEFsd2F5cyB1c2UgY29uc3QgU3Ry
aW5nJi4KKyAgICAgICAgKEdldE5hdGl2ZVJldHVyblR5cGVGb3JDYWxsYmFja3MpOiBSZW5hbWVk
IGZyb20gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcy4gQXZvaWQgY29uc3QgU3RyaW5nJiBmb3Ig
YSBjYWxsYmFjaydzIHJldHVybiB2YWx1ZS4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmg6IEFkZGVkLgorICAgICAgICAqIHhtbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB4bWwvWFBhdGhFdmFsdWF0b3IuaWRsOiBB
ZGRlZCBvdmVybG9hZGluZyBkZWZpbml0aW9uIG9mIGNyZWF0ZUV4cHJlc3Npb24gYW5kIGV2YWx1
YXRlIHRoYXQgdGFrZSBKU1hQYXRoQ3VzdG9tTlNSZXNvbHZlci4KKyAgICAgICAgKiB4bWwvWFBh
dGhOU1Jlc29sdmVyLmlkbDogUmVtb3ZlZCBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0IHNpbmNlIGl0
IG5vIGxvbmdlciB1c2VzIGEgY3VzdG9tIHRvV3JhcHBlZCBmdW5jdGlvbi4KKwogMjAxNi0wOC0y
OSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IEZpeCBXaW5kb3dzIGJ1aWxkIGFmdGVyIHIyMDUxNjEKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAyMDUxNzUpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNjUyLDYgKzY1Miw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJ
TEVTCiAgICAgd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5pZGwKICAgICB3b3JrZXJzL1dvcmtl
ckxvY2F0aW9uLmlkbAogCisgICAgeG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwKICAgICB4
bWwvRE9NUGFyc2VyLmlkbAogICAgIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGwKICAgICB4bWwvWE1M
SHR0cFJlcXVlc3RFdmVudFRhcmdldC5pZGwKQEAgLTExMzgsNyArMTEzOSw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3Rv
bS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAKLSAgICBiaW5kaW5n
cy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3RUYXNrLmNwcApAQCAtMTI0OSw3ICsxMjUwLDYgQEAgc2V0KFdl
YkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhO
U1Jlc29sdmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIwNTE3NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTcwNSw2ICs3MDUsNyBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL1dvcmtlci5pZGwgXAog
ICAgICQoV2ViQ29yZSkvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvd29ya2Vycy9Xb3JrZXJMb2NhdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkveG1sL0N1
c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwgXAogICAgICQoV2ViQ29yZSkveG1sL0RPTVBhcnNlci5p
ZGwgXAogICAgICQoV2ViQ29yZSkveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJD
b3JlKS94bWwvWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5pZGwgXApJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MjA1MTc1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yODcyLDcgKzI4NzIsNiBAQAogCQk4MzVEMzYzNzE5RkY2
MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVEMzYzNjE5RkY2MTkzMDA0QzkzQUIgLyogU3R5
bGVCdWlsZGVyQ3VzdG9tLmggKi87IH07CiAJCTgzNjc1ODdFMUM1NkU5OUIwMDhBMTA4NyAvKiBK
U0hUTUxEYXRhRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzRCODZBOTFDNTZFOTNFMDBGM0YwRTMgLyogSlNIVE1MRGF0YUVsZW1lbnQu
Y3BwICovOyB9OwogCQk4MzY3NTg3RjFDNTZFOTlCMDA4QTEwODcgLyogSlNIVE1MRGF0YUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNEI4
NkE4MUM1NkU5M0UwMEYzRjBFMyAvKiBKU0hUTUxEYXRhRWxlbWVudC5oICovOyB9OwotCQk4MzZD
MTQ0MzFDREVBRkQ4MDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2QzE0NDIxQ0RFQUZD
QTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJODM2REFB
MDYxQ0VBQjgwRDAwQTJCNzA3IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2REFBMDUxQ0VBQjdDRDAw
QTJCNzA3IC8qIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oICovOyB9OwogCQk4MzZGQkNFQTE3
OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2RkJDRTkxNzhDMTEzMjAwQjIx
QTE1IC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmNwcCAqLzsgfTsKIAkJODM2RkJDRUMxNzhD
MTE3RjAwQjIxQTE1IC8qIFNWR0FuaW1hdGVkUHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2RkJDRUIxNzhDMTE3RjAwQjIxQTE1IC8q
IFNWR0FuaW1hdGVkUHJvcGVydHkuY3BwICovOyB9OwpAQCAtMzYyMCw2ICszNjE5LDggQEAKIAkJ
OUI2OUQzQjUxQjk4RkZFOTAwRTM1MTJCIC8qIEhUTUxTbG90RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI2OUQzQjMxQjk4RkZFOTAwRTM1
MTJCIC8qIEhUTUxTbG90RWxlbWVudC5oICovOyB9OwogCQk5QjY5RDNCODFCOTkxMDA3MDBFMzUx
MkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUI2OUQzQjYxQjk5MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNsb3RF
bGVtZW50LmNwcCAqLzsgfTsKIAkJOUI2OUQzQjkxQjk5MTAwNzAwRTM1MTJCIC8qIEpTSFRNTFNs
b3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjY5RDNCNzFCOTkxMDA3MDBFMzUxMkIgLyogSlNIVE1MU2xvdEVsZW1lbnQuaCAqLzsgfTsK
KwkJOUI2QkE5QUExRDZCOUNBMzAwODM2NjM1IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMTEzQUU1
MUQ2QjlBQTYwMDg2NEExRSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi87IH07CisJ
CTlCNkJBOUFCMUQ2QjlDQTcwMDgzNjYzNSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIxMTNBRTYxRDZC
OUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi87IH07CiAJCTlCNkM0
MTUzMTM0NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjZDNDE1MjEzNDQ5NDkwMDAwODVC
NjIgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTlCNzE0RTIwMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBh
dGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI3
MTRFMUUxQzkxMTY2OTAwQUMwRTkyIC8qIEV2ZW50UGF0aC5jcHAgKi87IH07CiAJCTlCNzE0RTIx
MUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNzE0RTFGMUM5MTE2NjkwMEFDMEU5MiAvKiBFdmVudFBh
dGguaCAqLzsgfTsKQEAgLTU4NzgsOCArNTg3OSw3IEBACiAJCUUwRkVGMzcyQjQ3QzUzRUFDMUMx
RkJFRSAvKiBKU0V2ZW50U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUwRkVGMzcxQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNl
LmNwcCAqLzsgfTsKIAkJRTEwNzQwMEQwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5u
ZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEw
NzQwMEIwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwICovOyB9OwogCQlF
MTA3NDAwRTBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdlQ2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEwNzQwMEMwRTc3QkRDMDAwMzNB
RjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuaCAqLzsgfTsKLQkJRTEwQjkzN0MwQjczQzAwQTAwM0VE
ODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOTM3QjBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaCAqLzsgfTsKLQkJRTEwQjkzQzMwQjczQzI5MTAwM0VEODkwIC8q
IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHAgKi87IH07CisJCUUxMEI5M0MzMEI3M0MyOTEwMDNFRDg5MCAvKiBK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwICovOyB9OwogCQlFMTBCOUI2QzBCNzQ3NTk5MDAz
RUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOUI2QTBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZl
WFBhdGhOU1Jlc29sdmVyLmggKi87IH07CiAJCUUxMEI5QjZEMEI3NDc1OTkwMDNFRDg5MCAvKiBO
YXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTEwQjlCNkIwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNS
ZXNvbHZlci5jcHAgKi87IH07CiAJCUUxMTAwMzMwMUM5QUMzREUwMDQxMkREMCAvKiBDU1NHcmlk
QXV0b1JlcGVhdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxMTAwMzJFMUM5QUMzREUwMDQxMkREMCAvKiBDU1NHcmlkQXV0b1JlcGVhdFZh
bHVlLmNwcCAqLzsgfTsKQEAgLTk5NDQsNyArOTk0NCw2IEBACiAJCTgzNUQzNjM2MTlGRjYxOTMw
MDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3R5bGVCdWlsZGVyQ3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzNUY4QjI2MUQyRDkwQkEwMEU0MDhFQyAvKiBTbG90YWJsZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU2xvdGFibGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzY5RTU4RjFBRkREMDMwMDA4N0RGNjggLyogTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk4MzZDMTQ0MjFDREVBRkNBMDA3MzQ5M0YgLyogSlNYUGF0aE5TUmVzb2x2ZXJDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYUGF0aE5TUmVz
b2x2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZEQUEwNTFD
RUFCN0NEMDBBMkI3MDcgLyogUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZGQkNFOTE3OEMxMTMyMDBCMjFBMTUgLyogU1ZHQW5p
bWF0ZWRUeXBlQW5pbWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzZGQkNFQjE3OEMxMTdGMDBCMjFBMTUgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFByb3BlcnR5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzk2LDYgKzEwNzk1LDggQEAK
IAkJOUIwM0Q4MDYxQkIzMTEwRDAwQjc2NEQ5IC8qIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVp
bHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1J
bnRlcm5hbHNCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgw
NjFCQjMxMTBEMDBCNzY0RTggLyogV3JpdGFibGVTdHJlYW1CdWlsdGlucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0YWJsZVN0cmVhbUJ1aWx0aW5zLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3NjRFOSAvKiBXcml0YWJs
ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdyaXRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUIxMTNBRTUxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUIxMTNB
RTYxRDZCOUFBNjAwODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMTlCNjdFMUI5NjRFNTIwMDM0ODc0NSAvKiBTaGFk
b3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTaGFkb3dSb290LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIxQUIwNzkxNjQ4QzY5RDAwNTFGM0YyIC8qIEhUTUxG
b3JtQ29udHJvbHNDb2xsZWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMUFCMDdCMTY0OEM3QzQwMDUx
RjNGMiAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb25D
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4MzcsNiArMTA4Mzgs
OCBAQAogCQk5QkQ0RTkxNTFDNDYyODcyMDA1MDY1QkMgLyogSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudElu
dGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkQ0RTkxODFDNDYyQ0ZD
MDA1MDY1QkMgLyogQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlCRDRFOTE5MUM0NjJDRkMwMDUwNjVCQyAvKiBDdXN0b21FbGVt
ZW50UmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCRDc1OTlGMUQ2
QjkwMjMwMENBODI0NiAvKiBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTlCRDc1OUEwMUQ2QjkwMjMwMENBODI0NiAvKiBDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1c3RvbVhQYXRoTlNSZXNvbHZl
ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDhBOTU5MThCRUZDNzYwMDk4
N0U5QSAvKiBDb2xsZWN0aW9uSW5kZXhDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb2xsZWN0aW9uSW5kZXhDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlCRTY3MTA5MUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1lbnRS
ZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3Rv
bUVsZW1lbnRSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRTY3
MTBBMUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM0MjAsOCArMTM0MjMsNyBAQAogCQlFMEZFRjM3
MUI0N0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0V2ZW50U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTEwNzQwMEIwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlQ2hhbm5l
bC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMDc0MDBDMEU3N0JEQzAwMDMz
QUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTTWVzc2FnZUNoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEw
QjkzN0IwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxMEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1
c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxMEI5QjZBMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMEI5QjZCMEI3NDc1OTkwMDNFRDg5MCAv
KiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTExMDAzMkUxQzlBQzNERTAwNDEyREQwIC8qIENTU0dyaWRBdXRvUmVwZWF0VmFs
dWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTR3JpZEF1dG9S
ZXBlYXRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTM2Niw2ICsx
OTM2OCw4IEBACiAJCUE4M0I3OTBDMENDQUZGODMwMDBCMDgyNSAvKiBYUGF0aCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOUIxMTNBRTUxRDZCOUFBNjAw
ODY0QTFFIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKKwkJCQk5QjExM0FFNjFE
NkI5QUE2MDA4NjRBMUUgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLywKIAkJCQkxQTc2
MkM2QjBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5jcHAgKi8sCiAJCQkJMUE3
NjJDNkMwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCAqLywKIAkJCQlCQzYw
REI0NzBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5jcHAgKi8sCkBAIC0yMTEx
Nyw3ICsyMTEyMSw2IEBACiAJCQkJRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2Vy
R2xvYmFsU2NvcGVDdXN0b20uY3BwICovLAogCQkJCTgzQTRBOUY4MUNFN0ZEN0UwMDcwOUIwMCAv
KiBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzM0OEJCRDBEQjdGNTMxMDA0QUJB
QjkgLyogSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgKi8sCi0JCQkJODM2QzE0NDIxQ0RFQUZD
QTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLywKIAkJCQlBMUM3RkFB
MTEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNF
RkUxRTQwRENBNUYzMzAwNzM5MjE5IC8qIEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgKi8sCiAJ
CQkpOwpAQCAtMjE0MDUsOCArMjE0MDgsNyBAQAogCQkJCTE0NDlFMjg2MTA3RDREQjQwMEI1Nzkz
RiAvKiBKU0NhbGxiYWNrRGF0YS5jcHAgKi8sCiAJCQkJMTQ0OUUyNEExMDdENEE4NDAwQjU3OTNG
IC8qIEpTQ2FsbGJhY2tEYXRhLmggKi8sCiAJCQkJNTFFQzkyNUQwQ0U5MERENDAwRjkwMzA4IC8q
IEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgKi8sCi0JCQkJRTEwQjkzQzIw
QjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKLQkJCQlF
MTBCOTM3QjBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLywK
KwkJCQlFMTBCOTNDMjBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJD
dXN0b20uY3BwICovLAogCQkJCTkzQjcwRDREMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlz
dGVuZXIuY3BwICovLAogCQkJCTkzQjcwRDRFMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0V2ZW50TGlz
dGVuZXIuaCAqLywKIAkJCQk5MzVGNDU0MDBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRM
aXN0ZW5lci5jcHAgKi8sCkBAIC0yMjAwMSw2ICsyMjAwMyw4IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTAwQjkzMTgwMTNCQTg2N0YwMDM1QTk0OCAvKiBwYXJz
ZXIgKi8sCisJCQkJOUJENzU5OUYxRDZCOTAyMzAwQ0E4MjQ2IC8qIEN1c3RvbVhQYXRoTlNSZXNv
bHZlci5oICovLAorCQkJCTlCRDc1OUEwMUQ2QjkwMjMwMENBODI0NiAvKiBDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaWRsICovLAogCQkJCTFBQ0U1M0UxMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJz
ZXIuY3BwICovLAogCQkJCTFBQ0U1M0UyMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaCAq
LywKIAkJCQkxQUNFNTNFMzBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmlkbCAqLywKQEAg
LTI0ODU0LDcgKzI0ODU4LDYgQEAKIAkJCQk5QkQ0RTkxNzFDNDYyODcyMDA1MDY1QkMgLyogSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkU2NzEwQzFENUFF
QjI1MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0Nzc4QjgwMTE1QTU4MUEwMEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFMTBCOTM3QzBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTgyRjkwMENBQUZBOUQwMDIyMzdBRSAvKiBK
U0RhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTlERDY5OTExOTAyOUU1MDA3RTk2ODQg
LyogSlNEYXRhYmFzZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTYxMDM5RTE4QTlE
NjVBMDBERDUwRDcgLyogSlNEYXRhQ3VlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1Njc0LDYgKzI1
Njc3LDcgQEAKIAkJCQkyRDc3QUMyOTFCRjJCOTg2MDA3MjQ3MEEgLyogTlNBY2Nlc3NpYmlsaXR5
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc3QUMyQTFCRjJCOTg3MDA3MjQ3MEEgLyogTlNB
cHBsaWNhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJCNzM3NjUxQjQxQzAzNTAwQUUx
M0VCIC8qIE5TQXR0cmlidXRlZFN0cmluZ1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUI2QkE5
QUIxRDZCOUNBNzAwODM2NjM1IC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUIzMTNERjFCNjk4OEM1MDBGMkFBQkMgLyogTlNCdXR0b25DZWxsU1BJLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRTEyNTI1MTFBMUJFQkQ4MDA4NjQ0ODAgLyogTlNDYWxlbmRh
ckRhdGVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxREY2MzU3MUFGMTg3REQwMDc4RkQ5MSAv
KiBOU0NvbG9yU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NDcyLDcgKzI4NDc2LDcgQEAKIAkJ
CQlFNDc3OEI3RjExNUE1ODFBMDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlERUMyOTc2MTFCNEYyRjhEMDA1RjU5NDUgLyogSlNDdXN0b21FdmVudEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUVDOTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlND
dXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUx
MEI5M0MzMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFMTBCOTNDMzBCNzNDMjkxMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFODJGOEYwQ0FBRkE5
RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2OUEx
MTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCRTYxMDM5RDE4QTlENjUyMDBERDUwRDcgLyogSlNEYXRhQ3VlLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjkwOTcsNyArMjkxMDEsNiBAQAogCQkJCUJDNjBEQjQ5MEQyQTNEMUUwMEI5OTE4
RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc1MEEw
NzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhwcmVzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTc2MkM3NzBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJODM2QzE0NDMxQ0RFQUZEODAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29s
dmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc5MEEwNzRGMjYwMDk4OUY1
QiAvKiBKU1hQYXRoUmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQzdGQUEyMTMzQTVE
MzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDRUZFMUVBMERDQTVGNjQwMDczOTIxOSAvKiBKU1hTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTQ2MCw2ICsyOTQ2Myw3IEBACiAJCQkJOTNGMTlBRjgwODI0NUU1OTAwMUU5
QUJDIC8qIFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTE5QzIzMEI3RDE4ODYw
MEE1Njk5OCAvKiBQb3NpdGlvbkl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2MzQ1
OTJDMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2VydmVyTWFjLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTlCNkJBOUFBMUQ2QjlDQTMwMDgzNjYzNSAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNzc2RDQzRDExMDQ1Mjc1MDBCRUIwRUMgLyogUHJp
bnRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3RUJEMEExOTQ1RDAwMEE4RUY1
RiAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjEz
RUIwQ0Q2ODFCNDAwRkFEQTc1IC8qIFByb2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHAJKHJldmlzaW9uIDIwNTE3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAKICNp
bmNsdWRlICJKU0NyeXB0b0N1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDdXN0b21FdmVudEN1c3Rv
bS5jcHAiCiAjaW5jbHVkZSAiSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCIK
LSNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAiCisjaW5jbHVkZSAiSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5jcHAi
CiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuY3BwIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFs
T2JqZWN0VGFzay5jcHAiCkBAIC0xNDAsNyArMTQwLDYgQEAKICNpbmNsdWRlICJKU1dvcmtlckds
b2JhbFNjb3BlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU1hQYXRo
TlNSZXNvbHZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJTY2hlZHVs
ZWRBY3Rpb24uY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAkocmV2aXNpb24gMjA1MTc1KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCShub25l
eGlzdGVudCkKQEAgLTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIw
MTMgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkpT
RE9NV2luZG93Q3VzdG9tLmgiCi0jaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0j
aW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCi0jaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2Ug
SlNDOwotCi1SZWZQdHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlm
ICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIEpTT2JqZWN0KiByZXNvbHZlck9iamVjdCA9IHZhbHVlLmdldE9iamVjdCgpOwotICAgIGlm
ICghcmVzb2x2ZXJPYmplY3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFRZUEVf
TUlTTUFUQ0hfRVJSKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoZXhlYywgcmVzb2x2ZXJP
YmplY3QsIGFzSlNET01XaW5kb3coZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpKSkpOwotfQot
Ci1KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogY3VzdG9tUmVzb2x2ZXIsIEpTRE9NV2luZG93KiBnbG9iYWxP
YmplY3QpCi0gICAgOiBtX2N1c3RvbVJlc29sdmVyKGV4ZWMtPnZtKCksIGN1c3RvbVJlc29sdmVy
KQotICAgICwgbV9nbG9iYWxPYmplY3QoZXhlYy0+dm0oKSwgZ2xvYmFsT2JqZWN0KQotewotfQot
Ci1KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6fkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyKCkKLXsK
LX0KLQotU3RyaW5nIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkko
Y29uc3QgU3RyaW5nJiBwcmVmaXgpCi17Ci0gICAgQVNTRVJUKG1fY3VzdG9tUmVzb2x2ZXIpOwot
Ci0gICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpKTsKLQot
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0gICAg
ICAgIAotICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLT5nZXQoZXhlYywg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAibG9va3VwTmFtZXNwYWNlVVJJIikpOwotICAg
IENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEo
ZnVuY3Rpb24sIGNhbGxEYXRhKTsKLSAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUp
IHsKLSAgICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5n
ZXRDYWxsRGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0YSk7Ci0gICAgICAgIGlm
IChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6Tm9uZSkgewotICAgICAgICAgICAgaWYgKFBhZ2VDb25z
b2xlQ2xpZW50KiBjb25zb2xlID0gbV9nbG9iYWxPYmplY3QtPndyYXBwZWQoKS5jb25zb2xlKCkp
Ci0gICAgICAgICAgICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywg
TWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBu
b3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIikpOwotICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwotICAgICAgICB9Ci0gICAgICAgIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNv
bHZlci5nZXQoKTsKLSAgICB9Ci0KLSAgICBSZWY8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IHBy
b3RlY3RlZFRoaXMoKnRoaXMpOwotCi0gICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAg
ICBhcmdzLmFwcGVuZChqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBwcmVmaXgpKTsKLQotICAgIE5h
a2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWlu
VGhyZWFkRXhlY1N0YXRlOjpjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEs
IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGFyZ3MsIGV4Y2VwdGlvbik7Ci0KLSAgICBTdHJpbmcg
cmVzdWx0OwotICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihleGVj
LCBleGNlcHRpb24pOwotICAgIGVsc2UgewotICAgICAgICBpZiAoIXJldHZhbC5pc1VuZGVmaW5l
ZE9yTnVsbCgpKQotICAgICAgICAgICAgcmVzdWx0ID0gcmV0dmFsLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46
ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHBy
b3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmgJKHJldmlzaW9uIDIwNTE3NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgJKG5vbmV4aXN0ZW50KQpAQCAt
MSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFsZXhleSBQcm9za3VyeWFr
b3YgKGFwQG55cG9wLmNvbSkKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpZm5kZWYgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJfaAotI2RlZmluZSBKU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlcl9oCi0KLSNpbmNsdWRlICJYUGF0aE5TUmVzb2x2ZXIuaCIKLSNpbmNs
dWRlIDxoZWFwL1N0cm9uZy5oPgotI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1
ZS5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgot
Ci1uYW1lc3BhY2UgSlNDIHsKLSAgICBjbGFzcyBFeGVjU3RhdGU7Ci0gICAgY2xhc3MgSlNPYmpl
Y3Q7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIEZyYW1lOwotICAgIGNs
YXNzIEpTRE9NV2luZG93OwotCi0gICAgY2xhc3MgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIgOiBw
dWJsaWMgWFBhdGhOU1Jlc29sdmVyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWZQ
dHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSk7Ci0gICAgICAgIAotICAgICAgICB2aXJ0dWFsIH5KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlcigpOwotCi0gICAgICAgIHZpcnR1YWwgU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25z
dCBTdHJpbmcmIHByZWZpeCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0RPTVdpbmRvdyop
OwotCi0gICAgICAgIC8vIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVycyBhcmUgYWx3YXlzIHRlbXBv
cmFyeSBzbyB1c2luZyBhIFN0cm9uZyByZWZlcmVuY2UgaXMgc2FmZSBoZXJlLgotICAgICAgICBK
U0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBtX2N1c3RvbVJlc29sdmVyOwotICAgICAgICBKU0M6
OlN0cm9uZzxKU0RPTVdpbmRvdz4gbV9nbG9iYWxPYmplY3Q7Ci0gICAgfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXJfaAoKUHJv
cGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAs
MCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlckN1c3RvbS5jcHAJKHJldmlzaW9uIDIwNDc0NykJKGZyb20gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOjIwNDc0NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NywgMjAxMyBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiSlNET01XaW5kb3dDdXN0b20uaCIKKyNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKKyNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVz
cGFjZSBKU0M7CisKK1JlZlB0cjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXI6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7Cisg
ICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgSlNPYmplY3QqIHJlc29sdmVyT2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7Cisg
ICAgaWYgKCFyZXNvbHZlck9iamVjdCkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
VFlQRV9NSVNNQVRDSF9FUlIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihleGVjLCByZXNv
bHZlck9iamVjdCwgYXNKU0RPTVdpbmRvdyhleGVjLT52bUVudHJ5R2xvYmFsT2JqZWN0KCkpKSk7
Cit9CisKK0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBjdXN0b21SZXNvbHZlciwgSlNET01XaW5kb3cqIGds
b2JhbE9iamVjdCkKKyAgICA6IG1fY3VzdG9tUmVzb2x2ZXIoZXhlYy0+dm0oKSwgY3VzdG9tUmVz
b2x2ZXIpCisgICAgLCBtX2dsb2JhbE9iamVjdChleGVjLT52bSgpLCBnbG9iYWxPYmplY3QpCit7
Cit9CisKK0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjp+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIo
KQoreworfQorCitTdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFj
ZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKK3sKKyAgICBBU1NFUlQobV9jdXN0b21SZXNvbHZl
cik7CisKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkp
OworCisgICAgRXhlY1N0YXRlKiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsK
KyAgICAgICAgCisgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldChl
eGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJsb29rdXBOYW1lc3BhY2VVUkkiKSk7
CisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxs
RGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOworICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZTo6
Tm9uZSkgeworICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxl
KCktPmdldENhbGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGNhbGxEYXRhKTsKKyAgICAg
ICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7CisgICAgICAgICAgICBpZiAoUGFn
ZUNvbnNvbGVDbGllbnQqIGNvbnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+d3JhcHBlZCgpLmNvbnNv
bGUoKSkKKyAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIlhQYXRoTlNSZXNvbHZlciBk
b2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKSk7CisgICAgICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3Rv
bVJlc29sdmVyLmdldCgpOworICAgIH0KKworICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
cj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdz
OworICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIHByZWZpeCkpOworCisg
ICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBleGNlcHRpb247CisgICAgSlNWYWx1ZSByZXR2YWwgPSBK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxs
RGF0YSwgbV9jdXN0b21SZXNvbHZlci5nZXQoKSwgYXJncywgZXhjZXB0aW9uKTsKKworICAgIFN0
cmluZyByZXN1bHQ7CisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9u
KGV4ZWMsIGV4Y2VwdGlvbik7CisgICAgZWxzZSB7CisgICAgICAgIGlmICghcmV0dmFsLmlzVW5k
ZWZpbmVkT3JOdWxsKCkpCisgICAgICAgICAgICByZXN1bHQgPSByZXR2YWwudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAJKHJldmlzaW9u
IDIwNDc0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTQgKzI2LDEwIEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKIAot
I2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiSlNET01XaW5k
b3dDdXN0b20uaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKLSNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKLSNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogCkBAIC00MSw1OCArMzcsMzQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCi1SZWZQdHI8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+IEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQotewotICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIEpTT2JqZWN0KiByZXNvbHZlck9iamVjdCA9IHZhbHVlLmdldE9iamVj
dCgpOwotICAgIGlmICghcmVzb2x2ZXJPYmplY3QpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9u
KGV4ZWMsIFRZUEVfTUlTTUFUQ0hfRVJSKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
fQotCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoZXhl
YywgcmVzb2x2ZXJPYmplY3QsIGFzSlNET01XaW5kb3coZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVj
dCgpKSkpOwotfQotCi1KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY3VzdG9tUmVzb2x2ZXIsIEpTRE9NV2lu
ZG93KiBnbG9iYWxPYmplY3QpCi0gICAgOiBtX2N1c3RvbVJlc29sdmVyKGV4ZWMtPnZtKCksIGN1
c3RvbVJlc29sdmVyKQotICAgICwgbV9nbG9iYWxPYmplY3QoZXhlYy0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0KQotewotfQotCi1KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6fkpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyKCkKLXsKLX0KLQogU3RyaW5nIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBO
YW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpCiB7Ci0gICAgQVNTRVJUKG1fY3VzdG9t
UmVzb2x2ZXIpOworICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gcHJvdGVjdGVkVGhp
cygqdGhpcyk7CisKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBtX2RhdGEtPmdsb2JhbE9iamVj
dCgpOworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwog
Ci0gICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpKTsKKyAg
ICBKU0xvY2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3QtPnZtKCkpOwogCi0gICAgRXhlY1N0YXRl
KiBleGVjID0gbV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgCi0gICAgSlNW
YWx1ZSBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXItPmdldChleGVjLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsICJsb29rdXBOYW1lc3BhY2VVUkkiKSk7CisgICAgSlNPYmplY3QqIGN1
c3RvbVJlc29sdmVyID0gbV9kYXRhLT5jYWxsYmFjaygpOworICAgIEpTVmFsdWUgZnVuY3Rpb24g
PSBjdXN0b21SZXNvbHZlci0+Z2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywg
Imxvb2t1cE5hbWVzcGFjZVVSSSIpKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBDYWxs
VHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CiAgICAgaWYg
KGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7Ci0gICAgICAgIGNhbGxUeXBlID0gbV9jdXN0
b21SZXNvbHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEobV9jdXN0b21SZXNvbHZlci5n
ZXQoKSwgY2FsbERhdGEpOworICAgICAgICBjYWxsVHlwZSA9IGN1c3RvbVJlc29sdmVyLT5tZXRo
b2RUYWJsZSgpLT5nZXRDYWxsRGF0YShjdXN0b21SZXNvbHZlciwgY2FsbERhdGEpOwogICAgICAg
ICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgIGlmIChQYWdl
Q29uc29sZUNsaWVudCogY29uc29sZSA9IG1fZ2xvYmFsT2JqZWN0LT53cmFwcGVkKCkuY29uc29s
ZSgpKQorICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBjb25zb2xlID0gYXNKU0RP
TVdpbmRvdyhnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkuY29uc29sZSgpKQogICAgICAgICAgICAg
ICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29r
dXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpKTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
ICAgICAgICAgfQotICAgICAgICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7Cisg
ICAgICAgIGZ1bmN0aW9uID0gY3VzdG9tUmVzb2x2ZXI7CiAgICAgfQogCi0gICAgUmVmPEpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLQogICAgIE1hcmtlZEFy
Z3VtZW50QnVmZmVyIGFyZ3M7CiAgICAgYXJncy5hcHBlbmQoanNTdHJpbmdXaXRoQ2FjaGUoZXhl
YywgcHJlZml4KSk7CiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKLSAgICBK
U1ZhbHVlIHJldHZhbCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y2FsbChleGVjLCBmdW5jdGlv
biwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBhcmdzLCBleGNl
cHRpb24pOworICAgIEpTVmFsdWUgcmV0dmFsID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjYWxs
KGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGN1c3RvbVJlc29sdmVyLCBhcmdz
LCBleGNlcHRpb24pOwogCiAgICAgU3RyaW5nIHJlc3VsdDsKICAgICBpZiAoZXhjZXB0aW9uKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tLmNwcAkocmV2aXNpb24gMjA1MTc1KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCShub25leGlzdGVudCkKQEAgLTEs
NDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJK
U1hQYXRoTlNSZXNvbHZlci5oIgotCi0jaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aCIKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZWZQ
dHI8WFBhdGhOU1Jlc29sdmVyPiBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFwcGVkKEV4ZWNTdGF0
ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTWFBh
dGhOU1Jlc29sdmVyOjppbmZvKCkpKQotICAgICAgICByZXR1cm4gJmpzQ2FzdDxKU1hQYXRoTlNS
ZXNvbHZlcio+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKLQotICAgIHJldHVybiBKU0N1
c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKCZzdGF0ZSwgdmFsdWUpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjA1MTc1KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkK
QEAgLTE5NjIsNyArMTk2Miw5IEBAIEVORAogICAgICAgICAgICAgZm9yIG15ICR0dXBsZSAoQHsk
U30pIHsKICAgICAgICAgICAgICAgICBteSAkb3ZlcmxvYWQgPSBAeyR0dXBsZX1bMF07CiAgICAg
ICAgICAgICAgICAgbXkgJHR5cGUgPSBTdHJpcE51bGxhYmxlKEB7QHskdHVwbGV9WzFdfVskZF0p
OwotICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkdHlw
ZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCR0eXBlKSkg
eworICAgICAgICAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3Nhcnko
JG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSIpOworICAgICAgICAgICAg
ICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCR0eXBlKSB8fCAkY29k
ZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkpIHsKICAgICAgICAgICAgICAgICAg
ICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyhKUyR7dHlwZX06OmluZm8oKSkiKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9CkBAIC00MTUyLDkgKzQxNTQsOSBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAg
ICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAg
ICAgICAgICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRw
YXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICAgICAgICAgICAgIHB1
c2goQGFyZ3VtZW50cywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFy
YW1ldGVyLT50eXBlKSAuICIgIiAuICRwYXJhbWV0ZXItPm5hbWUpOworICAgICAgICAgICAgICAg
IHB1c2goQGFyZ3VtZW50cywgR2V0TmF0aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzKCRpbnRl
cmZhY2UsICRwYXJhbWV0ZXItPnR5cGUpIC4gIiAiIC4gJHBhcmFtZXRlci0+bmFtZSk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwg
IiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFjZSwgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPnR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIgLiBq
b2luKCIsICIsIEBhcmd1bWVudHMpIC4gIik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgdmlydHVhbCAiIC4gR2V0TmF0aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNr
cygkaW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICIgLiAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKTtc
biIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00MjkyLDE0ICs0Mjk0LDE0IEBAIHN1YiBHZW5l
cmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JU
eXBlSW5JbXBsKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKICAgICAgICAgICAgIG15ICRm
dW5jdGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJm
YWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6JHtmdW5j
dGlvbk5hbWV9KCIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXRO
YXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlKSAuICIgJHtjbGFzc05hbWV9Ojoke2Z1bmN0aW9uTmFtZX0oIik7CiAKICAgICAg
ICAgICAgIG15IEBhcmdzID0gKCk7CiAgICAgICAgICAgICBteSBAYXJnc0NoZWNrID0gKCk7CiAg
ICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAg
IG15ICRwYXJhbU5hbWUgPSAkcGFyYW0tPm5hbWU7CiAgICAgICAgICAgICAgICAgQWRkSW5jbHVk
ZXNGb3JUeXBlSW5JbXBsKCRwYXJhbS0+dHlwZSwgMSk7Ci0gICAgICAgICAgICAgICAgcHVzaChA
YXJncywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW0tPnR5cGUp
IC4gIiAiIC4gJHBhcmFtTmFtZSk7CisgICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0
aXZlQXJndW1lbnRUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRwYXJhbS0+dHlwZSwgMCkg
LiAiICIgLiAkcGFyYW1OYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCBqb2luKCIsICIsIEBhcmdzKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIilcbiIpOwpAQCAtNDU1OCw3ICs0NTYwLDYgQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAg
ICAgIkRpY3Rpb25hcnkiID0+ICJEaWN0aW9uYXJ5IiwKICAgICAiRXZlbnRMaXN0ZW5lciIgPT4g
IlJlZlB0cjxFdmVudExpc3RlbmVyPiIsCiAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgPT4g
IlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiwKLSAgICAiWFBhdGhOU1Jlc29sdmVyIiA9
PiAiUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4iLAogICAgICJhbnkiID0+ICJKU0M6OkpTVmFsdWUi
LAogICAgICJib29sZWFuIiA9PiAiYm9vbCIsCiAgICAgImJ5dGUiID0+ICJpbnQ4X3QiLApAQCAt
NDYxMSwxMiArNDYxMiwyMCBAQCBzdWIgR2V0TmF0aXZlVmVjdG9ySW5uZXJUeXBlCiAgICAgcmV0
dXJuICJSZWZQdHI8JGlubmVyVHlwZT4iOwogfQogCi1zdWIgR2V0TmF0aXZlVHlwZUZvckNhbGxi
YWNrcworc3ViIEdldE5hdGl2ZUFyZ3VtZW50VHlwZUZvckNhbGxiYWNrcwogewogICAgIG15ICgk
aW50ZXJmYWNlLCAkdHlwZSkgPSBAXzsKIAotICAgIHJldHVybiAiUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiIgaWYgJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7CiAgICAg
cmV0dXJuICJjb25zdCBTdHJpbmcmIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0
eXBlKTsKKyAgICByZXR1cm4gR2V0TmF0aXZlUmV0dXJuVHlwZUZvckNhbGxiYWNrcygkaW50ZXJm
YWNlLCAkdHlwZSk7Cit9CisKK3N1YiBHZXROYXRpdmVSZXR1cm5UeXBlRm9yQ2FsbGJhY2tzCit7
CisgICAgbXkgKCRpbnRlcmZhY2UsICR0eXBlKSA9IEBfOworCisgICAgcmV0dXJuICJSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIiBpZiAkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZh
bHVlIjsKKyAgICByZXR1cm4gImNvbnN0IFN0cmluZyYiIGlmICEkaW50ZXJmYWNlLT5pc0NhbGxi
YWNrICYmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwogICAgIHJldHVybiBH
ZXROYXRpdmVUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCShyZXZpc2lvbiAyMDUxNzUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTEgKzEwMCwxNCBAQAogCiAgICAgLy8gRklY
TUU6IFVzaW5nICJ1bmRlZmluZWQiIGFzIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGlzIHdyb25n
LgogICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNzaW9u
KG9wdGlvbmFsIERPTVN0cmluZyBleHByZXNzaW9uID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIFhQ
YXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoRXhw
cmVzc2lvbiBjcmVhdGVFeHByZXNzaW9uKERPTVN0cmluZyBleHByZXNzaW9uLCBDdXN0b21YUGF0
aE5TUmVzb2x2ZXIgcmVzb2x2ZXIpOwogICAgIFhQYXRoTlNSZXNvbHZlciBjcmVhdGVOU1Jlc29s
dmVyKE5vZGU/IG5vZGVSZXNvbHZlcik7CiAKICAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5l
ZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCiAgICAgW1JhaXNlc0V4Y2Vw
dGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24g
PSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgTm9kZT8gY29udGV4dE5vZGUsIG9wdGlvbmFsIFhQYXRo
TlNSZXNvbHZlcj8gcmVzb2x2ZXIsCiAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5
cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQpOworICAgIFtSYWlzZXNFeGNl
cHRpb25dIFhQYXRoUmVzdWx0IGV2YWx1YXRlKERPTVN0cmluZyBleHByZXNzaW9uLCBOb2RlPyBj
b250ZXh0Tm9kZSwgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyLAorICAgICAgICBvcHRp
b25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwgWFBhdGhSZXN1bHQ/IGluUmVz
dWx0KTsKIAogICAgIC8vIEZJWE1FOiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGxhc3QgcGFy
YW1ldGVyIHNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nLgogICAgIGJvb2xlYW4gZXhlY0NvbW1h
bmQoRE9NU3RyaW5nIGNvbW1hbmQsIG9wdGlvbmFsIGJvb2xlYW4gdXNlckludGVyZmFjZSA9IGZh
bHNlLCBvcHRpb25hbCBET01TdHJpbmc/IHZhbHVlID0gbnVsbCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIDogcHVibGljIFhQYXRoTlNSZXNvbHZlciB7Cit9Owor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlk
bAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorKiBtZXQ6CisqCisqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyogZGlzdHJpYnV0aW9uLgorKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyovCisKKyNpZiAhKGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0VfR09C
SkVDVCkKKworY2FsbGJhY2sgaW50ZXJmYWNlIEN1c3RvbVhQYXRoTlNSZXNvbHZlciB7CisKKyAg
ICBbQ3VzdG9tXSBET01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmcgcHJlZml4
KTsKKworfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0
b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5p
ZGwJKHJldmlzaW9uIDIwNTE3NSkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRv
ci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDEzICsyMywxMyBAQAogXSBpbnRlcmZhY2UgWFBh
dGhFdmFsdWF0b3IgewogICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0
IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4KICAgICBbUmFpc2VzRXhjZXB0aW9uXSBYUGF0aEV4
cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihvcHRpb25hbCBET01TdHJpbmcgZXhwcmVzc2lvbiA9
ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyKTsKKyAgICBb
UmFpc2VzRXhjZXB0aW9uXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihET01TdHJp
bmcgZXhwcmVzc2lvbiwgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyKTsKIAogICAgIFhQ
YXRoTlNSZXNvbHZlciBjcmVhdGVOU1Jlc29sdmVyKG9wdGlvbmFsIE5vZGU/IG5vZGVSZXNvbHZl
cik7CiAKICAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5lZCIgYXMgZGVmYXVsdCBwYXJhbWV0
ZXIgdmFsdWUgaXMgd3JvbmcuCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZh
bHVhdGUob3B0aW9uYWwgRE9NU3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBOb2RlPyBjb250ZXh0Tm9kZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBvcHRpb25hbCBYUGF0aE5TUmVzb2x2ZXI/IHJlc29sdmVyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsIFhQYXRoUmVzdWx0PyBpblJlc3VsdCk7
CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gWFBhdGhSZXN1bHQgZXZhbHVhdGUob3B0aW9uYWwgRE9N
U3RyaW5nIGV4cHJlc3Npb24gPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgTm9kZT8gY29udGV4dE5v
ZGUsIG9wdGlvbmFsIFhQYXRoTlNSZXNvbHZlcj8gcmVzb2x2ZXIsCisgICAgICAgIG9wdGlvbmFs
IHVuc2lnbmVkIHNob3J0IHR5cGUgPSAwLCBvcHRpb25hbCBYUGF0aFJlc3VsdD8gaW5SZXN1bHQp
OworICAgIFtSYWlzZXNFeGNlcHRpb25dIFhQYXRoUmVzdWx0IGV2YWx1YXRlKERPTVN0cmluZyBl
eHByZXNzaW9uLCBOb2RlPyBjb250ZXh0Tm9kZSwgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHJlc29s
dmVyLAorICAgICAgICBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCB0eXBlID0gMCwgb3B0aW9uYWwg
WFBhdGhSZXN1bHQ/IGluUmVzdWx0KTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhOU1Jlc29sdmVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhO
U1Jlc29sdmVyLmlkbAkocmV2aXNpb24gMjA1MTc1KQorKysgU291cmNlL1dlYkNvcmUveG1sL1hQ
YXRoTlNSZXNvbHZlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDYgQEAKICAqLwog
CiBbCi0gICAgSlNDdXN0b21Ub05hdGl2ZU9iamVjdCwKICAgICBOb0ludGVyZmFjZU9iamVjdCwK
ICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKIF0gaW50ZXJmYWNlIFhQYXRoTlNSZXNvbHZlciB7
Cg==
</data>
<flag name="review"
          id="310828"
          type_id="1"
          status="-"
          setter="cdumez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406107</attachid>
            <date>2020-08-06 13:16:04 -0700</date>
            <delta_ts>2020-08-07 00:28:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>161030-1.patch</filename>
            <type>text/plain</type>
            <size>48680</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkYzM2NDY4MmQ3NC4uNTVmNzcxZTczNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wOC0wNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAg
ICAgICAgUmVkdWNlIHRoZSBhbW91bnQgb2YgY3VzdG9tIGJpbmRpbmcgY29kZSBmb3IgSlNYUGF0
aE5TUmVzb2x2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MTAzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC94cGF0aC9uc3Jlc29sdmVyLWJhZC1vYmplY3QtZXhwZWN0ZWQudHh0
OgorCiAyMDIwLTA4LTA1ICBIZWN0b3IgTG9wZXogIDxoZWN0b3JfaV9sb3BlekBhcHBsZS5jb20+
CiAKICAgICAgICAgWyBpT1Mgd2syIFJlbGVhc2UgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9zdHJ1Y3R1cmVkLWNsb25lLXRyYW5zYWN0aW9uLXN0YXRlLmFueS53
b3JrZXIuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQK
aW5kZXggZWU3ZDIxYTZmZmIuLjZhY2ViMmI0ZDYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVjdGVk
LnR4dApAQCAtMjYsMTUgKzI2LDE1IEBAIFBBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgd2Fsa2Vy
LmN1cnJlbnROb2RlLmlkIGlzICdBMScKIFBBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHdhbGtlci5j
dXJyZW50Tm9kZS5pZCBpcyAnQjEnCiAKIFRlc3Rpbmcgd2l0aCBvYmplY3QgbGFja2luZyBhY2Nl
cHROb2RlIHByb3BlcnR5Ci1QQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHdhbGtlci5maXJzdENoaWxkKCk7IHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6ICdhY2NlcHROb2RlJyBwcm9wZXJ0eSBvZiBjYWxsYmFjayBp
bnRlcmZhY2Ugc2hvdWxkIGJlIGNhbGxhYmxlLgogUEFTUyB3YWxrZXIuY3VycmVudE5vZGUuaWQ7
IGlzICdyb290JwotUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6ICdhY2NlcHROb2RlJyBwcm9wZXJ0eSBvZiBjYWxsYmFjayBpbnRlcmZhY2Ug
c2hvdWxkIGJlIGNhbGxhYmxlLgogUEFTUyB3YWxrZXIuY3VycmVudE5vZGUuaWQ7IGlzICdyb290
JwogCiBUZXN0aW5nIHdpdGggb2JqZWN0IHdpdGggbm9uLWZ1bmN0aW9uIGFjY2VwdE5vZGUgcHJv
cGVydHkKLVBBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogJ2FjY2VwdE5vZGUnIHByb3BlcnR5IG9mIGNhbGxiYWNrIGludGVyZmFjZSBz
aG91bGQgYmUgY2FsbGFibGUuCiBQQVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3Qn
Ci1QQVNTIHdhbGtlci5uZXh0Tm9kZSgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogJ2FjY2VwdE5vZGUnIHByb3BlcnR5IG9mIGNhbGxiYWNrIGludGVyZmFjZSBzaG91bGQgYmUg
Y2FsbGFibGUuCiBQQVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsgaXMgJ3Jvb3QnCiAKIFRlc3Rp
bmcgd2l0aCBmdW5jdGlvbiBoYXZpbmcgYWNjZXB0Tm9kZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC94cGF0aC9uc3Jlc29sdmVyLWJhZC1vYmplY3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9uc3Jlc29sdmVyLWJhZC1vYmplY3QtZXhwZWN0ZWQu
dHh0CmluZGV4IDg2OWNlNmUyYzIzLi5hZjA4YTQyYmU1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC94cGF0aC9uc3Jlc29sdmVyLWJhZC1vYmplY3QtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QveHBhdGgvbnNyZXNvbHZlci1iYWQtb2JqZWN0LWV4cGVjdGVkLnR4dApA
QCAtMSwyICsxLDIgQEAKLUNPTlNPTEUgTUVTU0FHRTogWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90
IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLgorQ09OU09MRSBNRVNTQUdFOiBUeXBl
RXJyb3I6ICdsb29rdXBOYW1lc3BhY2VVUkknIHByb3BlcnR5IG9mIGNhbGxiYWNrIGludGVyZmFj
ZSBzaG91bGQgYmUgY2FsbGFibGUKIFNVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDY1NGMxZjAzN2IxLi5mMzg0ZGI2ZDBmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDgtMDYgIEFsZXhleSBTaHZheWthICA8c2h2
YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1vdW50IG9mIGN1c3Rv
bSBiaW5kaW5nIGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vaWRs
aGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9kb214cGF0aC9jYWxsYmFjay1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA4LTA1
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGNvbnN0cnVj
dG9yIHRvIENvbnZvbHZlck5vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5l
c3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBjZGUwMTA2NjMyZi4uYmI4ZTZjYjJjN2EgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQKQEAgLTE4NDMsOSArMTg0Myw3IEBAIFBBU1MgWFBhdGhOU1Jlc29sdmVyIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUKIFBBU1MgWFBh
dGhOU1Jlc29sdmVyIGludGVyZmFjZTogb3BlcmF0aW9uIGxvb2t1cE5hbWVzcGFjZVVSSShET01T
dHJpbmc/KSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIGRvY3VtZW50LmNyZWF0ZU5TUmVzb2x2
ZXIoZG9jdW1lbnQuYm9keSkgCiBQQVNTIFhQYXRoTlNSZXNvbHZlciBpbnRlcmZhY2U6IGRvY3Vt
ZW50LmNyZWF0ZU5TUmVzb2x2ZXIoZG9jdW1lbnQuYm9keSkgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3RyaW5nPykiIHdpdGggdGhlIHByb3BlciB0eXBlIAot
RkFJTCBYUGF0aE5TUmVzb2x2ZXIgaW50ZXJmYWNlOiBjYWxsaW5nIGxvb2t1cE5hbWVzcGFjZVVS
SShET01TdHJpbmc/KSBvbiBkb2N1bWVudC5jcmVhdGVOU1Jlc29sdmVyKGRvY3VtZW50LmJvZHkp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93
c19qczogQ2FsbGVkIHdpdGggMCBhcmd1bWVudHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJncyk7Ci0gICAgICAgIH0iIGRpZCBub3QgdGhyb3cK
K1BBU1MgWFBhdGhOU1Jlc29sdmVyIGludGVyZmFjZTogY2FsbGluZyBsb29rdXBOYW1lc3BhY2VV
UkkoRE9NU3RyaW5nPykgb24gZG9jdW1lbnQuY3JlYXRlTlNSZXNvbHZlcihkb2N1bWVudC5ib2R5
KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBYUGF0
aEV2YWx1YXRvciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2Ugb2JqZWN0IAogUEFTUyBYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAK
IFBBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlIG9iamVjdCBuYW1lIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb214cGF0aC9jYWxs
YmFjay1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb214cGF0aC9jYWxsYmFjay1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0
CmluZGV4IGMxMTU2MDA5YzFkLi5mMzk0ZmYwNWJhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb214cGF0aC9jYWxsYmFjay1pbnRlcmZh
Y2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9teHBhdGgvY2FsbGJhY2staW50ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMSwx
NyArMSwxNSBAQAogQ09OU09MRSBNRVNTQUdFOiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVT
U0FHRTogWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkg
bWV0aG9kLgotQ09OU09MRSBNRVNTQUdFOiBYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBh
IGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuCi1DT05TT0xFIE1FU1NBR0U6IFhQYXRoTlNSZXNv
bHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4KK0NPTlNPTEUg
TUVTU0FHRTogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogJ2xv
b2t1cE5hbWVzcGFjZVVSSScgcHJvcGVydHkgb2YgY2FsbGJhY2sgaW50ZXJmYWNlIHNob3VsZCBi
ZSBjYWxsYWJsZQorQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6ICdsb29rdXBOYW1lc3BhY2VV
UkknIHByb3BlcnR5IG9mIGNhbGxiYWNrIGludGVyZmFjZSBzaG91bGQgYmUgY2FsbGFibGUKIAog
UEFTUyBjYWxsYWJsZSByZXNvbHZlciAKIFBBU1MgY2FsbGFibGUgcmVzb2x2ZXI6IHJlc3VsdCBp
cyBub3QgY2FjaGVkIAogUEFTUyBjYWxsYWJsZSByZXNvbHZlcjogYWJydXB0IGNvbXBsZXRpb24g
ZnJvbSBDYWxsIAotRkFJTCBjYWxsYWJsZSByZXNvbHZlcjogbm8gJ2xvb2t1cE5hbWVzcGFjZVVS
SScgbG9va3VwcyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAwIGJ1dCBnb3QgMQorUEFTUyBjYWxs
YWJsZSByZXNvbHZlcjogbm8gJ2xvb2t1cE5hbWVzcGFjZVVSSScgbG9va3VwcyAKIFBBU1Mgb2Jq
ZWN0IHJlc29sdmVyIAogUEFTUyBvYmplY3QgcmVzb2x2ZXI6ICdsb29rdXBOYW1lc3BhY2VVUkkn
IGlzIG5vdCBjYWNoZWQgCi1GQUlMIG9iamVjdCByZXNvbHZlcjogYWJydXB0IGNvbXBsZXRpb24g
ZnJvbSBHZXQgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgZG9jdW1l
bnQuZXZhbHVhdGUoIi9mb286YmFyIiwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCByZXNvbHZl
cik7Ci0gIH0iIHRocmV3IG9iamVjdCAiW29iamVjdCBPYmplY3RdIiB0aGF0IGlzIG5vdCBhIERP
TUV4Y2VwdGlvbiBOQU1FU1BBQ0VfRVJSOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5k
ZWZpbmVkLCBleHBlY3RlZCAxNAotRkFJTCBvYmplY3QgcmVzb2x2ZXI6ICdsb29rdXBOYW1lc3Bh
Y2VVUkknIGlzIHRocnV0aHkgYW5kIG5vdCBjYWxsYWJsZSBhc3NlcnRfdHJ1ZTogVGltZWQgb3V0
IHdhaXRpbmcgZm9yIGVycm9yIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIG9iamVjdCBy
ZXNvbHZlcjogJ2xvb2t1cE5hbWVzcGFjZVVSSScgaXMgZmFsc3kgYW5kIG5vdCBjYWxsYWJsZSBh
c3NlcnRfdHJ1ZTogVGltZWQgb3V0IHdhaXRpbmcgZm9yIGVycm9yIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCitQQVNTIG9iamVjdCByZXNvbHZlcjogYWJydXB0IGNvbXBsZXRpb24gZnJvbSBHZXQg
CitQQVNTIG9iamVjdCByZXNvbHZlcjogJ2xvb2t1cE5hbWVzcGFjZVVSSScgaXMgdGhydXRoeSBh
bmQgbm90IGNhbGxhYmxlIAorUEFTUyBvYmplY3QgcmVzb2x2ZXI6ICdsb29rdXBOYW1lc3BhY2VV
UkknIGlzIGZhbHN5IGFuZCBub3QgY2FsbGFibGUgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
M2MxNjhiNGNmOTIuLmJlODdkNGYxOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTA2Niw2
ICsxMDY2LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICB3b3JrbGV0cy9X
b3JrbGV0LmlkbAogICAgIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5pZGwKIAorICAgIHht
bC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsCiAgICAgeG1sL0RPTVBhcnNlci5pZGwKICAgICB4
bWwvWE1MSHR0cFJlcXVlc3QuaWRsCiAgICAgeG1sL1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQu
aWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZjBmYjY0MDVlMjcuLmY2YmVkMmUxNGJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzEgQEAKKzIwMjAtMDgtMDYgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hA
Z21haWwuY29tPgorCisgICAgICAgIFJlZHVjZSB0aGUgYW1vdW50IG9mIGN1c3RvbSBiaW5kaW5n
IGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyIGNhbGxiYWNrIGludGVyZmFjZSwKKyAgICAgICAgY2xlYW5pbmcgdXAgQ29kZUdlbmVy
YXRvckpTLnBtIGFuZCByZW1vdmluZyBjdXN0b20gYmluZGluZyBjb2RlLgorCisgICAgICAgIFhQ
YXRoTlNSZXNvbHZlciBpcyBrZXB0IGFzIGEgd3JhcHBlciBmb3IgTmF0aXZlWFBhdGhOU1Jlc29s
dmVyLCBwcmVzZXJ2aW5nIGNvbW1vbgorICAgICAgICBjYXNlIHBlcmZvcm1hbmNlIHZpYSBJREwg
aW50ZXJmYWNlIGNvbnZlcnRlciwgYW5kIGJlY2F1c2UgYSBjYWxsYmFjayBpbnRlcmZhY2UKKyAg
ICAgICAgY2FuJ3QgYmUgcmV0dXJuZWQgZnJvbSBhIGZ1bmN0aW9uIHdpdGhvdXQgc3Vic3RhbnRp
YWwgY29kZSBnZW5lcmF0b3IgY2hhbmdlLgorCisgICAgICAgIEFsc28sIGltcHJvdmVzIG5vbi1j
YWxsYWJsZSBtZXRob2QgZXJyb3IgbWVzc2FnZSBhbmQgZml4ZXMgMiBzcGVjIGluY29tcGF0aWJp
bGl0aWVzOgorICAgICAgICBhKSBubyAibG9va3VwTmFtZXNwYWNlVVJJIiBtZXRob2QgbG9va3Vw
IG9uIGZ1bmN0aW9ucyBbMV07CisgICAgICAgIGIpIHJlc29sdmVyJ3MgInByZWZpeCIgcGFyYW1l
dGVyIGlzIHJlcXVpcmVkIFsyXS4KKworICAgICAgICBTaW5jZSBDKysgbWV0aG9kcyBjYW4ndCBi
ZSBvdmVybG9hZCBiYXNlZCBvbiByZXR1cm4gdHlwZSwgdGhpcyBwYXRjaCBhZGRzCisgICAgICAg
IFtJbXBsZW1lbnRlZEFzXSBJREwgYXR0cmlidXRlIHN1cHBvcnQgZm9yIGNhbGxiYWNrIGludGVy
ZmFjZSBtZXRob2RzLgorCisgICAgICAgIEJlY2F1c2UgWFBhdGhOU1Jlc29sdmVyIHdyYXBwZXJz
IGFyZSB0ZW1wb3JhcnkgKG5vIHJlZmVyZW5jZSBpcyBrZXB0CisgICAgICAgIHRvIGEgcmVzb2x2
ZXIpLCBbSXNXZWFrQ2FsbGJhY2tdIElETCBhdHRyaWJ1dGUgaXNuJ3QgYWRkZWQsIHByZXNlcnZp
bmcKKyAgICAgICAgc3Ryb25nIHJlZmVyZW5jZS4KKworICAgICAgICBbMV06IGh0dHBzOi8vaGV5
Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2NhbGwtYS11c2VyLW9iamVjdHMtb3BlcmF0aW9uIChzdGVw
IDEwLjEpCisgICAgICAgIFsyXTogaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNkb20teHBh
dGhuc3Jlc29sdmVyLWxvb2t1cG5hbWVzcGFjZXVyaQorCisgICAgICAgIFRlc3RzOiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pZGxoYXJuZXNzLndpbmRvdy5qcworICAgICAg
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb214cGF0aC9jYWxsYmFj
ay1pbnRlcmZhY2UuaHRtbCAgICAgICAgCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvSURMVHlwZXMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2spOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFhQYXRoTlNSZXNvbHZlci5o
OgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETEludGVyZmFjZTxYUGF0aE5TUmVzb2x2
ZXI+Pjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMWFBhdGhOU1Jl
c29sdmVyPFQ+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0NvbnZl
cnRlcjxJRExYUGF0aE5TUmVzb2x2ZXI8VD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkpTQ29udmVydGVyPElETFhQYXRoTlNSZXNvbHZlcjxUPj46OmNvbnZlcnROZXds
eUNyZWF0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvci5wbToKKyAgICAgICAgKElzQnVpbHRpblR5cGUpOgorICAgICAgICAoSXNXcmFwcGVyVHlw
ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgIChBZGRUb0luY2x1ZGVzRm9ySURMVHlwZSk6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6
CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyQ29udGVudCk6CisgICAgICAgIChHZW5l
cmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb25Db250ZW50KToKKyAgICAgICAgKEdldEJhc2VJRExU
eXBlKToKKyAgICAgICAgKE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZlcnROZWVkc1N0YXRlKToKKyAg
ICAgICAgKE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZlcnROZWVkc0dsb2JhbE9iamVjdCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2
ZXJQYXJhbWV0ZXJCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyQm9keSk6CisgICAgICAgICog
eG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OkN1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAg
KiB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcC4KKyAgICAgICAgKiB4bWwv
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcC4KKyAgICAgICAgKiB4bWwvWFBh
dGhOU1Jlc29sdmVyLmlkbDoKKwogMjAyMC0wOC0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBjb25zdHJ1Y3RvciB0byBDb252b2x2ZXJOb2RlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA2YzZi
MTc2Zjc2NS4uNjliZWYwYTQwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTIxMSw2ICsxMjExLDcgQEAgJChQUk9KRUNUX0RJUikv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaWRsCiAkKFBST0pFQ1Rf
RElSKS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5pZGwKICQoUFJPSkVDVF9ESVIp
L3dvcmtsZXRzL1dvcmtsZXQuaWRsCiAkKFBST0pFQ1RfRElSKS93b3JrbGV0cy9Xb3JrbGV0R2xv
YmFsU2NvcGUuaWRsCiskKFBST0pFQ1RfRElSKS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlk
bAogJChQUk9KRUNUX0RJUikveG1sL0RPTVBhcnNlci5pZGwKICQoUFJPSkVDVF9ESVIpL3htbC9Y
TUxIdHRwUmVxdWVzdC5pZGwKICQoUFJPSkVDVF9ESVIpL3htbC9YTUxIdHRwUmVxdWVzdEV2ZW50
VGFyZ2V0LmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAppbmRleCAzZDAwZGIwYjYyNC4uNTM3NTlkYTFkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yMjU0LDYgKzIyNTQs
OCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1hQYXRo
RXZhbHVhdG9yLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNYUGF0aEV2YWx1YXRvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1hQYXRoRXhwcmVzc2lvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWFBhdGhFeHByZXNzaW9uLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNYUGF0aE5TUmVzb2x2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1hQYXRoTlNSZXNvbHZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1hQYXRoUmVzdWx0LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggYTlhZGEzMTlhY2UuLmVmZjEzMTdiZTNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEyMjIsNiArMTIyMiw3IEBAIEpTX0JJTkRJTkdfSURM
UyA9IFwKICAgICAkKFdlYkNvcmUpL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS93b3JrbGV0cy9Xb3JrbGV0LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3htbC9D
dXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3htbC9ET01QYXJzZXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwgXAogICAgICQoV2Vi
Q29yZSkveG1sL1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaWRsIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CmluZGV4IDA2ZTM1MTlhMGQ3Li5hNmNhNTQxMGM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0x
NTUyLDYgKzE1NTIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAog
ICAgIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAogCisgICAgeG1sL0N1
c3RvbVhQYXRoTlNSZXNvbHZlci5oCiAgICAgeG1sL1hQYXRoRXhwcmVzc2lvbi5oCiAgICAgeG1s
L1hQYXRoTlNSZXNvbHZlci5oCiAgICAgeG1sL1hQYXRoTm9kZVNldC5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDI3NzZmY2FiMjM1Li4xZGEwYWVkN2RiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQ3Miw3ICs0
NzIsNiBAQCBiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAK
IGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKIGJpbmRpbmdzL2pzL0pT
Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNDdXN0b21FdmVu
dEN1c3RvbS5jcHAKLWJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nU2VjdXJpdHkuY3BwCiBiaW5kaW5ncy9qcy9KU0RPTUJ1aWx0
aW5Db25zdHJ1Y3RvckJhc2UuY3BwCiBiaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5j
cHAKQEAgLTU3NCw3ICs1NzMsNiBAQCBiaW5kaW5ncy9qcy9KU1dvcmtlck5hdmlnYXRvckN1c3Rv
bS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKIGJpbmRpbmdz
L2pzL0pTWE1MRG9jdW1lbnRDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
Q3VzdG9tLmNwcAotYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCiBiaW5k
aW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvUmVhZGFibGVTdHJl
YW0uY3BwCiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcApA
QCAtMjU1NCw2ICsyNTUyLDcgQEAgd29ya2xldHMvV29ya2xldC5jcHAKIHdvcmtsZXRzL1dvcmts
ZXRDb25zb2xlQ2xpZW50LmNwcAogd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAogd29y
a2xldHMvV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCit4bWwvQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmNwcAogeG1sL0RPTVBhcnNlci5jcHAKIHhtbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3Bw
CiB4bWwvWE1MRXJyb3JzLmNwcApAQCAtMzEyMCw2ICszMTE5LDcgQEAgSlNOYXZpZ2F0b3JTdG9y
YWdlUXVvdGEuY3BwCiBKU05hdmlnYXRvcldlYkRyaXZlci5jcHAKIEpTTm9kZS5jcHAKIEpTTm9k
ZUZpbHRlci5jcHAKK0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogSlNOb2RlSXRlcmF0b3Iu
Y3BwCiBKU05vZGVMaXN0LmNwcAogSlNOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MzM2ZWZkYzMyM2MuLmU4NzcwYjE1MGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDUxNyw3ICsxMDUxNyw2IEBACiAJCTgz
NkFDRUQxMUVDQUFCMDQwMDRCRDAxMiAvKiBKU0RPTU1hdHJpeFJlYWRPbmx5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NTWF0cml4UmVhZE9ubHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2QjA5NTIxRjVGMzREMDAwM0MzNzAyIC8qIEpTSFRNTElu
cHV0RWxlbWVudEVudHJpZXNBUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzZCMDk1MzFGNUYzNEQwMDAzQzM3MDIgLyogSlNIVE1MSW5wdXRFbGVtZW50RW50cmll
c0FQSS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1
dEVsZW1lbnRFbnRyaWVzQVBJLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODM2
QzE0NDIxQ0RFQUZDQTAwNzM0OTNGIC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2RDAzMjcxREE4OUI3MzAwRkZE
OTZCIC8qIENsaXBib2FyZEV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDbGlwYm9h
cmRFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkQwMzI4MURBODlC
NzMwMEZGRDk2QiAvKiBFdmVudEluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRXZlbnRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkQwMzI5MURB
ODlCNzMwMEZGRDk2QiAvKiBFdmVudEluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2
ZW50SW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDY5NSw2ICsxMDY5
NCw4IEBACiAJCTg0NzMwRDc0MTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaWdodFNvdXJjZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NDczMEQ3NTEyNDhGMEIzMDBEM0E5QzkgLyogUG9pbnRMaWdodFNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2ludExpZ2h0U291cmNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0NzMwRDc2MTI0OEYwQjMwMEQzQTlD
OSAvKiBTcG90TGlnaHRTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BvdExpZ2h0U291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg0NzQ1QjhE
MjRBM0YwOUYwMDI5QThCNSAvKiBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEN1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTg0NzQ1QjhFMjRBM0YwQTAwMDI5QThCNSAvKiBDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0NzZDOUUzMTFERjZBMEIw
MDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGF0aFNlZ0xpc3RCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODQ3NkM5RTQxMURGNkEwQjAwNTU1QjAyIC8qIFNWR1BhdGhTZWdM
aXN0QnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQ3NkM5RTcxMURG
NkEyOTAwNTU1QjAyIC8qIFNWR1BhdGhCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEwNzI1LDYgKzEwNzI2LDcgQEAKIAkJODRCNjI2ODQxMzMxMzhGOTAwOTVBNDg5
IC8qIEZvbnRQbGF0Zm9ybURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRm9udFBsYXRmb3JtRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg0QjZCOTc1MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQYXRoU2VnTGlzdFNvdXJjZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0QjZCOTc2MTIwRjEzRTUwMEI4RUZB
RiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4NEMwQjY3MzI0REJBQ0EyMDA1OERGOTYgLyogQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1c3RvbVhQYXRoTlNSZXNvbHZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0QzVCMkY4MTIxNkRDODEwMDg4
QjUzQSAvKiBTVkdQYXRoVHJhdmVyc2FsU3RhdGVCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhUcmF2ZXJzYWxTdGF0ZUJ1aWxkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NEM1QjJGOTEyMTZEQzgxMDA4OEI1M0EgLyog
U1ZHUGF0aFRyYXZlcnNhbFN0YXRlQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTVkdQYXRoVHJhdmVyc2FsU3RhdGVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg0QzY3ODRBMTIxNDgxNDcwMEE5MjkwMiAvKiBTVkdQYXRoQmxlbmRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQYXRoQmxlbmRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTk0OCw3ICsyMTk1MCw2IEBACiAJ
CQkJRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20u
Y3BwICovLAogCQkJCTQ2RjkxQkM5MUZDREQwRkUwMDE1OTlDMyAvKiBKU1dvcmtlck5hdmlnYXRv
ckN1c3RvbS5jcHAgKi8sCiAJCQkJODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9j
dW1lbnRDdXN0b20uY3BwICovLAotCQkJCTgzNkMxNDQyMUNERUFGQ0EwMDczNDkzRiAvKiBKU1hQ
YXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgKi8sCiAJCQkJQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJE
IC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSAiR0MgLyBX
cmFwcGluZyBPbmx5IjsKQEAgLTI3ODU2LDYgKzI3ODU3LDkgQEAKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMDBCOTMxODAxM0JBODY3RjAwMzVBOTQ4IC8qIHBhcnNl
ciAqLywKKwkJCQk4NEMwQjY3MzI0REJBQ0EyMDA1OERGOTYgLyogQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmNwcCAqLywKKwkJCQk4NDc0NUI4RTI0QTNGMEEwMDAyOUE4QjUgLyogQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmggKi8sCisJCQkJODQ3NDVCOEQyNEEzRjA5RjAwMjlBOEI1IC8qIEN1c3RvbVhQ
YXRoTlNSZXNvbHZlci5pZGwgKi8sCiAJCQkJMUFDRTUzRTEwQThEMThFNzAwMjI5NDdEIC8qIERP
TVBhcnNlci5jcHAgKi8sCiAJCQkJMUFDRTUzRTIwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNl
ci5oICovLAogCQkJCTFBQ0U1M0UzMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaWRsICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKaW5kZXggMGYwZTAxZDc3ZDAuLmQ5ZmFiN2I1
MWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKQEAgLTI3NSw3ICsyNzUsNiBAQCBz
dHJ1Y3QgSURMSlNPTiA6IElETFR5cGU8U3RyaW5nPiB7CiBzdHJ1Y3QgSURMU2NoZWR1bGVkQWN0
aW9uIDogSURMVHlwZTxzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPj4geyB9OwogdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IElETFdy
YXBwZXI8VD4geyB9OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElETEV2ZW50TGlzdGVu
ZXIgOiBJRExXcmFwcGVyPFQ+IHsgfTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJRExY
UGF0aE5TUmVzb2x2ZXIgOiBJRExXcmFwcGVyPFQ+IHsgfTsKIAogc3RydWN0IElETElEQktleSA6
IElETFdyYXBwZXI8SURCS2V5PiB7IH07CiBzdHJ1Y3QgSURMSURCS2V5RGF0YSA6IElETFdyYXBw
ZXI8SURCS2V5RGF0YT4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDYWxsYmFja0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxs
YmFja0RhdGEuY3BwCmluZGV4IDBkM2E1ZjgwZjhlLi42MjVhYmYyMDg5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcApAQCAtNzAsNyArNzAsNyBA
QCBKU1ZhbHVlIEpTQ2FsbGJhY2tEYXRhOjppbnZva2VDYWxsYmFjayhKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0LCBKU09iamVjdAogCiAgICAgICAgIGNhbGxEYXRhID0gZ2V0Q2FsbERh
dGEodm0sIGZ1bmN0aW9uKTsKICAgICAgICAgaWYgKGNhbGxEYXRhLnR5cGUgPT0gQ2FsbERhdGE6
OlR5cGU6Ok5vbmUpIHsKLSAgICAgICAgICAgIHJldHVybmVkRXhjZXB0aW9uID0gSlNDOjpFeGNl
cHRpb246OmNyZWF0ZSh2bSwgY3JlYXRlVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsK
KyAgICAgICAgICAgIHJldHVybmVkRXhjZXB0aW9uID0gSlNDOjpFeGNlcHRpb246OmNyZWF0ZSh2
bSwgY3JlYXRlVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIiciLCBT
dHJpbmcoZnVuY3Rpb25OYW1lLnVpZCgpKSwgIicgcHJvcGVydHkgb2YgY2FsbGJhY2sgaW50ZXJm
YWNlIHNob3VsZCBiZSBjYWxsYWJsZSIpKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgp
OwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODY2OTNlNjk3MDcuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDEzIEFsZXhleSBQcm9za3VyeWFrb3Yg
KGFwQG55cG9wLmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aCIKLQotI2luY2x1ZGUgIkNvbW1vblZNLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkpTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgotI2luY2x1
ZGUgIkpTRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDb25z
b2xlQ2xpZW50LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JlZi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5nIG5hbWVzcGFjZSBK
U0M7Ci0KLUV4Y2VwdGlvbk9yPFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4+IEpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkp
Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKLQotICAgIGF1dG8qIHJl
c29sdmVyT2JqZWN0ID0gdmFsdWUuZ2V0T2JqZWN0KCk7Ci0gICAgaWYgKCFyZXNvbHZlck9iamVj
dCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9yIH07Ci0KLSAg
ICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIodm0sIHJlc29sdmVyT2JqZWN0LCBhc0pTRE9N
V2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSkpOwotfQotCi1KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlcjo6SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoVk0mIHZtLCBKU09iamVjdCogY3VzdG9tUmVz
b2x2ZXIsIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QpCi0gICAgOiBtX2N1c3RvbVJlc29sdmVy
KHZtLCBjdXN0b21SZXNvbHZlcikKLSAgICAsIG1fZ2xvYmFsT2JqZWN0KHZtLCBnbG9iYWxPYmpl
Y3QpCi17Ci19Ci0KLUpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjp+SlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIoKSA9IGRlZmF1bHQ7Ci0KLVN0cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9v
a3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQotewotICAgIEFTU0VSVChtX2N1
c3RvbVJlc29sdmVyKTsKLQotICAgIEpTTG9ja0hvbGRlciBsb2NrKGNvbW1vblZNKCkpOwotCi0g
ICAgSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QgPSBtX2dsb2JhbE9iamVjdC5n
ZXQoKTsKLSAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICAK
LSAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci0+Z2V0KGxleGljYWxHbG9i
YWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJsb29rdXBOYW1lc3BhY2VVUkki
KSk7Ci0gICAgYXV0byBjYWxsRGF0YSA9IGdldENhbGxEYXRhKHZtLCBmdW5jdGlvbik7Ci0gICAg
aWYgKGNhbGxEYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpIHsKLSAgICAgICAgY2Fs
bERhdGEgPSBnZXRDYWxsRGF0YSh2bSwgbV9jdXN0b21SZXNvbHZlci5nZXQoKSk7Ci0gICAgICAg
IGlmIChjYWxsRGF0YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOb25lKSB7Ci0gICAgICAgICAg
ICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIGNvbnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+d3JhcHBl
ZCgpLmNvbnNvbGUoKSkKLSAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMg
bm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiJfcyk7Ci0gICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci0gICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJl
c29sdmVyLmdldCgpOwotICAgIH0KLQotICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4g
cHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwot
ICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKHZtLCBwcmVmaXgpKTsKLSAgICBBU1NF
UlQoIWFyZ3MuaGFzT3ZlcmZsb3dlZCgpKTsKLQotICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9u
PiBleGNlcHRpb247Ci0gICAgSlNWYWx1ZSByZXR2YWwgPSBKU0V4ZWNTdGF0ZTo6Y2FsbChsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBmdW5jdGlvbiwgY2FsbERhdGEsIG1fY3VzdG9tUmVzb2x2ZXIuZ2V0
KCksIGFyZ3MsIGV4Y2VwdGlvbik7Ci0KLSAgICBTdHJpbmcgcmVzdWx0OwotICAgIGlmIChleGNl
cHRpb24pCi0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBleGNl
cHRpb24pOwotICAgIGVsc2UgewotICAgICAgICBpZiAoIXJldHZhbC5pc1VuZGVmaW5lZE9yTnVs
bCgpKQotICAgICAgICAgICAgcmVzdWx0ID0gcmV0dmFsLnRvV1RGU3RyaW5nKGxleGljYWxHbG9i
YWxPYmplY3QpOwotICAgIH0KLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVhQYXRoTlNSZXNvbHZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZWU0NjA2
Njc5Zi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5o
IgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KLSNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NKU1ZhbHVlLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25n
Lmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTRE9NV2luZG93OwotCi1jbGFzcyBKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlciBmaW5hbCA6IHB1YmxpYyBYUGF0aE5TUmVzb2x2ZXIgewotcHVibGljOgotICAg
IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+PiBjcmVhdGUo
SlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgdmlydHVhbCB+SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIoKTsKLQotcHJpdmF0ZToKLSAgICBKU0N1c3RvbVhQYXRoTlNSZXNv
bHZlcihKU0M6OlZNJiwgSlNDOjpKU09iamVjdCosIEpTRE9NV2luZG93Kik7Ci0KLSAgICBTdHJp
bmcgbG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KSBmaW5hbDsKLQotICAg
IC8vIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVycyBhcmUgYWx3YXlzIHRlbXBvcmFyeSBzbyB1c2lu
ZyBhIFN0cm9uZyByZWZlcmVuY2UgaXMgc2FmZSBoZXJlLgotICAgIEpTQzo6U3Ryb25nPEpTQzo6
SlNPYmplY3Q+IG1fY3VzdG9tUmVzb2x2ZXI7Ci0gICAgSlNDOjpTdHJvbmc8SlNET01XaW5kb3c+
IG1fZ2xvYmFsT2JqZWN0OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0WFBhdGhOU1Jlc29sdmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRYUGF0aE5TUmVzb2x2
ZXIuaAppbmRleCA2NTg5NDE1OWNiYi4uY2FkMDhhMGFmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFhQYXRoTlNSZXNvbHZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFhQYXRoTlNSZXNvbHZlci5oCkBA
IC0yNiw0MCArMjYsMjggQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIK
KyNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUgIkpTRE9NQ29u
dmVydEJhc2UuaCIKKyNpbmNsdWRlICJKU1hQYXRoTlNSZXNvbHZlci5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDb252ZXJ0ZXI8SURMWFBh
dGhOU1Jlc29sdmVyPFQ+PiA6IERlZmF1bHRDb252ZXJ0ZXI8SURMWFBhdGhOU1Jlc29sdmVyPFQ+
PiB7Ci0gICAgdXNpbmcgUmV0dXJuVHlwZSA9IFJlZlB0cjxUPjsKLSAgICB1c2luZyBXcmFwcGVy
VHlwZSA9IHR5cGVuYW1lIEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxUPjo6V3JhcHBlckNs
YXNzOwotCit0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMSW50ZXJmYWNlPFhQYXRoTlNS
ZXNvbHZlcj4+IDogRGVmYXVsdENvbnZlcnRlcjxJRExJbnRlcmZhY2U8WFBhdGhOU1Jlc29sdmVy
Pj4gewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEV4Y2VwdGlvblRocm93ZXIgPSBEZWZhdWx0RXhj
ZXB0aW9uVGhyb3dlcj4KLSAgICBzdGF0aWMgUmV0dXJuVHlwZSBjb252ZXJ0KEpTQzo6SlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgRXhjZXB0
aW9uVGhyb3dlciYmIGV4Y2VwdGlvblRocm93ZXIgPSBFeGNlcHRpb25UaHJvd2VyKCkpCisgICAg
c3RhdGljIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBFeGNlcHRpb25UaHJv
d2VyJiYgZXhjZXB0aW9uVGhyb3dlciA9IEV4Y2VwdGlvblRocm93ZXIoKSkKICAgICB7CiAgICAg
ICAgIEpTQzo6Vk0mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICAgICAgUmV0dXJu
VHlwZSBvYmplY3QgPSBXcmFwcGVyVHlwZTo6dG9XcmFwcGVkKHZtLCBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB2YWx1ZSk7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghb2JqZWN0KSkKKyAgICAgICAgaWYg
KCF2YWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgICAgICBleGNlcHRpb25UaHJvd2VyKGxleGlj
YWxHbG9iYWxPYmplY3QsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG9iamVjdDsKLSAgICB9Ci19
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IEpTQ29udmVydGVyPElETFhQYXRoTlNSZXNvbHZlcjxUPj4gewotICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc1N0YXRlID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgbmVlZHNHbG9iYWxPYmplY3QgPSB0cnVlOworICAgICAgICBKU0M6OkpTT2Jq
ZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVy
aXRzPEpTWFBhdGhOU1Jlc29sdmVyPih2bSkpCisgICAgICAgICAgICByZXR1cm4gJkpTQzo6anND
YXN0PEpTWFBhdGhOU1Jlc29sdmVyKj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogCi0gICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFU+Ci0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBjb252ZXJ0KEpTQzo6SlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QsIGNvbnN0IFUmIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRvSlMoJmxl
eGljYWxHbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIERldGFpbDo6Z2V0UHRyT3JSZWYodmFs
dWUpKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgotICAgIHN0YXRpYyBKU0M6
OkpTVmFsdWUgY29udmVydE5ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBVJiYgdmFsdWUp
Ci0gICAgewotICAgICAgICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZCgmbGV4aWNhbEdsb2JhbE9i
amVjdCwgJmdsb2JhbE9iamVjdCwgc3RkOjpmb3J3YXJkPFU+KHZhbHVlKSk7CisgICAgICAgIHJl
dHVybiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKG9iamVjdCwgSlNDOjpqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgIH0KIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODM4YzJkMWRjYjcuLjAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29s
dmVyQ3VzdG9tLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNYUGF0aE5TUmVzb2x2ZXIuaCIKLQot
I2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCi0jaW5jbHVkZSAiSlNET01FeGNl
cHRpb25IYW5kbGluZy5oIgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFj
ZSBKU0M7Ci0KLVJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IEpTWFBhdGhOU1Jlc29sdmVyOjp0b1dy
YXBwZWQoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKLXsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHM8SlNYUGF0aE5TUmVzb2x2ZXI+KHZt
KSkKLSAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNYUGF0aE5TUmVzb2x2ZXIqPihhc09iamVjdCh2
YWx1ZSkpLT53cmFwcGVkKCk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyOjpjcmVhdGUobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwotICAgIGlmIChVTkxJ
S0VMWShyZXN1bHQuaGFzRXhjZXB0aW9uKCkpKSB7Ci0gICAgICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICAgICAgcHJvcGFnYXRlRXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIHNjb3BlLCByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRleCAxNzU0MWJiNDgzZC4uM2I3
OWUzODU4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3IucG0KQEAgLTEwNDYsNyArMTA0Niw2IEBAIHN1YiBJc0J1aWx0aW5UeXBlCiAgICAg
cmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlByb21pc2UiOwogICAgIHJldHVybiAxIGlmICR0
eXBlLT5uYW1lIGVxICJTY2hlZHVsZWRBY3Rpb24iOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5u
YW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOwotICAgIHJldHVybiAxIGlmICR0eXBlLT5u
YW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVx
ICJhbnkiOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJvYmplY3QiOwogCkBAIC0x
MDczLDcgKzEwNzIsNiBAQCBzdWIgSXNXcmFwcGVyVHlwZQogICAgIGFzc2VydCgiTm90IGEgdHlw
ZSIpIGlmIHJlZigkdHlwZSkgbmUgIklETFR5cGUiOwogCiAgICAgcmV0dXJuIDEgaWYgJG9iamVj
dC0+SXNJbnRlcmZhY2VUeXBlKCR0eXBlKTsKLSAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBl
cSAiWFBhdGhOU1Jlc29sdmVyIjsKIAogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAzNTVkZGM3
YTc1NS4uMGFkNDVjZWNkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00MzksNiArNDM5LDcgQEAgc3ViIEFkZFRvSW5j
bHVkZXNGb3JJRExUeXBlCiAKICAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZl
ciIpIHsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNYUGF0aE5TUmVzb2x2ZXIuaCIsICRpbmNs
dWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAg
QWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0WFBhdGhOU1Jlc29sdmVyLmgiLCAkaW5jbHVkZXNS
ZWYsICRjb25kaXRpb25hbCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNjU5LDE3ICsy
NjYwLDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIEpTVmFsdWUgdG8gaW1wbGVtZW50
YXRpb24gdHlwZQogICAgIGlmIChTaG91bGRHZW5lcmF0ZVRvV3JhcHBlZCgkaGFzUGFyZW50LCAk
aW50ZXJmYWNlKSkgewotICAgICAgICAjIEZJWE1FOiBBZGQgZXh0ZW5kZWQgYXR0cmlidXRlIGZv
ciB0aGlzLgotICAgICAgICBteSBAdG9XcmFwcGVkQXJndW1lbnRzID0gKCk7Ci0gICAgICAgIHB1
c2goQHRvV3JhcHBlZEFyZ3VtZW50cywgIkpTQzo6Vk0mIik7Ci0gICAgICAgIHB1c2goQHRvV3Jh
cHBlZEFyZ3VtZW50cywgIkpTQzo6SlNHbG9iYWxPYmplY3QmIikgaWYgJGludGVyZmFjZS0+dHlw
ZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIjsKLSAgICAgICAgcHVzaChAdG9XcmFwcGVkQXJn
dW1lbnRzLCAiSlNDOjpKU1ZhbHVlIik7Ci0KLSAgICAgICAgbXkgJHRvV3JhcHBlZFR5cGUgPSAk
aW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiID8gIlJlZlB0cjwke2lt
cGxUeXBlfT4iIDogIiR7aW1wbFR5cGV9KiI7Ci0KICAgICAgICAgbXkgJGV4cG9ydCA9ICIiOwog
ICAgICAgICAkZXhwb3J0ID0gIldFQkNPUkVfRVhQT1JUICIgaWYgJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57RXhwb3J0VG9XcmFwcGVkRnVuY3Rpb259OwotICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAke2V4cG9ydH0ke3RvV3JhcHBlZFR5cGV9IHRvV3Jh
cHBlZCgiIC4gam9pbigiLCAiLCBAdG9XcmFwcGVkQXJndW1lbnRzKSAuICIpO1xuIik7CisgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICR7ZXhwb3J0fSR7aW1wbFR5cGV9
KiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7XG4iKTsKICAgICB9CiAKICAgICAk
aGVhZGVyVHJhaWxpbmdJbmNsdWRlc3siJHtjbGFzc05hbWV9Q3VzdG9tLmgifSA9IDEgaWYgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SlNDdXN0b21IZWFkZXJ9OwpAQCAtMzA3NCwx
MiArMzA2NywxMSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICB9CiAKICAgICBpZiAoTmVlZHNJ
bXBsZW1lbnRhdGlvbkNsYXNzKCRpbnRlcmZhY2UpKSB7Ci0gICAgICAgIG15ICR0b1dyYXBwZWRU
eXBlID0gJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIiA/ICJSZWZQ
dHI8JHtpbXBsVHlwZX0+IiA6ICIke2ltcGxUeXBlfSoiOwogICAgICAgICAkaGVhZGVySW5jbHVk
ZXN7IkpTRE9NV3JhcHBlci5oIn0gPSAxOwogCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJ0ZW1wbGF0ZTw+IHN0cnVjdCBKU0RPTVdyYXBwZXJDb252ZXJ0ZXJUcmFpdHM8JHtpbXBsVHlw
ZX0+IHtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHVzaW5nIFdyYXBw
ZXJDbGFzcyA9ICR7Y2xhc3NOYW1lfTtcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHVzaW5nIFRvV3JhcHBlZFJldHVyblR5cGUgPSAke3RvV3JhcHBlZFR5cGV9O1xuIik7
CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdXNpbmcgVG9XcmFwcGVkUmV0dXJu
VHlwZSA9ICR7aW1wbFR5cGV9KjtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
fTtcbiIpOwogICAgIH0KIApAQCAtNjIzMyw3ICs2MjI1LDcgQEAgc3ViIEdlbmVyYXRlQ2FsbGJh
Y2tIZWFkZXJDb250ZW50CiAgICAgICAgICAgICBteSAkbmF0aXZlUmV0dXJuVHlwZSA9ICJDYWxs
YmFja1Jlc3VsdDx0eXBlbmFtZSAiIC4gR2V0SURMVHlwZSgkaW50ZXJmYWNlT3JDYWxsYmFjaywg
JG9wZXJhdGlvbi0+dHlwZSkgLiAiOjpJbXBsZW1lbnRhdGlvblR5cGU+IjsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgIyBGSVhNRTogQ2hhbmdlIHRoZSBkZWZhdWx0IG5hbWUgKHVzZWQgZm9y
IGNhbGxiYWNrIGZ1bmN0aW9ucykgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4gaGFuZGxlRXZlbnQu
IEl0IG1ha2VzIGxpdHRsZSBzZW5zZS4KLSAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAk
b3BlcmF0aW9uLT5uYW1lIHx8ICJoYW5kbGVFdmVudCI7CisgICAgICAgICAgICBteSAkZnVuY3Rp
b25OYW1lID0gJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30g
fHwgJG9wZXJhdGlvbi0+bmFtZSB8fCAiaGFuZGxlRXZlbnQiOwogCiAgICAgICAgICAgICBwdXNo
KEAkY29udGVudFJlZiwgIiAgICAke25hdGl2ZVJldHVyblR5cGV9ICR7ZnVuY3Rpb25OYW1lfSgi
IC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpIG92ZXJyaWRlO1xuIik7CiAgICAgICAgIH0K
QEAgLTYzNDQsNiArNjMzNiw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb25D
b250ZW50CiAgICAgICAgICAgICAKICAgICAgICAgICAgICMgRklYTUU6IENoYW5nZSB0aGUgZGVm
YXVsdCBuYW1lICh1c2VkIGZvciBjYWxsYmFjayBmdW5jdGlvbnMpIHRvIHNvbWV0aGluZyBvdGhl
ciB0aGFuIGhhbmRsZUV2ZW50LiBJdCBtYWtlcyBsaXR0bGUgc2Vuc2UuCiAgICAgICAgICAgICBt
eSAkZnVuY3Rpb25OYW1lID0gJG9wZXJhdGlvbi0+bmFtZSB8fCAiaGFuZGxlRXZlbnQiOworICAg
ICAgICAgICAgbXkgJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lID0gJG9wZXJhdGlvbi0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwgJGZ1bmN0aW9uTmFtZTsKIAogICAg
ICAgICAgICAgbXkgQGFyZ3VtZW50cyA9ICgpOwogCkBAIC02MzY5LDcgKzYzNjIsNyBAQCBzdWIg
R2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uQ29udGVudAogICAgICAgICAgICAgICAgIHB1
c2goQGFyZ3VtZW50cywgInR5cGVuYW1lICR7SURMVHlwZX06OlBhcmFtZXRlclR5cGUgIiAuICRh
cmd1bWVudC0+bmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IHB1c2goQCRjb250ZW50UmVmLCAiJHtuYXRpdmVSZXR1cm5UeXBlfSAke2NsYXNzTmFtZX06OiR7
ZnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQCRjb250ZW50UmVmLCAiJHtuYXRpdmVSZXR1cm5UeXBlfSAke2NsYXNzTmFt
ZX06OiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWV9KCIgLiBqb2luKCIsICIsIEBhcmd1bWVu
dHMpIC4gIilcbiIpOwogICAgICAgICAgICAgcHVzaChAJGNvbnRlbnRSZWYsICJ7XG4iKTsKIAog
ICAgICAgICAgICAgIyBGSVhNRTogVGhpcyBpcyBuZWVkZWQgZm9yIE5vZGVGaWx0ZXIsIHdoaWNo
IHdvcmtzIGV2ZW4gZm9yIGRpc2Nvbm5lY3RlZCBpZnJhbWVzLiBXZSBzaG91bGQgaW52ZXN0aWdh
dGUKQEAgLTY3ODcsNyArNjc4MCw2IEBAIHN1YiBHZXRCYXNlSURMVHlwZQogICAgICAgICAiSlNP
TiIgPT4gIklETEpTT04iLAogICAgICAgICAiU2NoZWR1bGVkQWN0aW9uIiA9PiAiSURMU2NoZWR1
bGVkQWN0aW9uIiwKICAgICAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgPT4gIklETFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiwKLSAgICAgICAgIlhQYXRo
TlNSZXNvbHZlciIgPT4gIklETFhQYXRoTlNSZXNvbHZlcjxYUGF0aE5TUmVzb2x2ZXI+IiwKICAg
ICApOwogCiAgICAgcmV0dXJuICRJRExUeXBlc3skdHlwZS0+bmFtZX0gaWYgZXhpc3RzICRJRExU
eXBlc3skdHlwZS0+bmFtZX07CkBAIC02OTQ3LDcgKzY5MzksNiBAQCBzdWIgTmF0aXZlVG9KU1Zh
bHVlRE9NQ29udmVydE5lZWRzU3RhdGUKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAi
RGF0ZSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIkpTT04iOwogICAgIHJldHVy
biAxIGlmICR0eXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOwotICAgIHJldHVy
biAxIGlmICR0eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwogICAgIAogICAgIHJldHVy
biAwOwogfQpAQCAtNjk3Nyw3ICs2OTY4LDYgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZl
cnROZWVkc0dsb2JhbE9iamVjdAogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0J1
ZmZlclNvdXJjZVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5J
c1Byb21pc2VUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiU2Vy
aWFsaXplZFNjcmlwdFZhbHVlIjsKLSAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiWFBh
dGhOU1Jlc29sdmVyIjsKIAogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCAxNjQzM2Q5
OWYxMi4uODBmYTdiMmExYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC01MCw3ICs1MCw2IEBACiAjaW5jbHVk
ZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydFVuaW9uLmgi
CiAjaW5jbHVkZSAiSlNET01Db252ZXJ0VmFyaWFkaWMuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZl
cnRYUGF0aE5TUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgi
CiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTUl0ZXJhdG9y
LmgiCkBAIC02MDExLDcgKzYwMTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1JlcwogICAgIGlm
IChVTkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQogICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICBFbnN1cmVT
dGlsbEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgw
KTsKLSAgICBhdXRvIHJlc29sdmVyID0gY29udmVydDxJRExYUGF0aE5TUmVzb2x2ZXI8WFBhdGhO
U1Jlc29sdmVyPj4oKmxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgpLCBbXShK
U0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlRocm93U2NvcGUm
IHNjb3BlKSB7IHRocm93QXJndW1lbnRUeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2Nv
cGUsIDAsICJyZXNvbHZlciIsICJUZXN0T2JqZWN0IiwgIm1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2
ZXJQYXJhbWV0ZXIiLCAiWFBhdGhOU1Jlc29sdmVyIik7IH0pOworICAgIGF1dG8gcmVzb2x2ZXIg
PSBjb252ZXJ0PElETEludGVyZmFjZTxYUGF0aE5TUmVzb2x2ZXI+PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgYXJndW1lbnQwLnZhbHVlKCksIFtdKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUpIHsgdGhyb3dBcmd1bWVudFR5cGVF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgMCwgInJlc29sdmVyIiwgIlRlc3RPYmpl
Y3QiLCAibWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRlciIsICJYUGF0aE5TUmVzb2x2
ZXIiKTsgfSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKICAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKICAgICBpbXBsLm1ldGhvZFdpdGhY
UGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIoKnJlc29sdmVyKTsKQEAgLTczMjgsNyArNzMyNyw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbFhQCiAgICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7CiAg
ICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKICAgICBFbnN1cmVTdGlsbEFs
aXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKLSAgICBhdXRvIHJl
c29sdmVyID0gY29udmVydDxJRExOdWxsYWJsZTxJRExYUGF0aE5TUmVzb2x2ZXI8WFBhdGhOU1Jl
c29sdmVyPj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSwgW10oSlND
OjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBz
Y29wZSkgeyB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3Bl
LCAwLCAicmVzb2x2ZXIiLCAiVGVzdE9iamVjdCIsICJtZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5T
UmVzb2x2ZXIiLCAiWFBhdGhOU1Jlc29sdmVyIik7IH0pOworICAgIGF1dG8gcmVzb2x2ZXIgPSBj
b252ZXJ0PElETE51bGxhYmxlPElETEludGVyZmFjZTxYUGF0aE5TUmVzb2x2ZXI+Pj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgpLCBbXShKU0M6OkpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXJn
dW1lbnRUeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIDAsICJyZXNvbHZlciIs
ICJUZXN0T2JqZWN0IiwgIm1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlciIsICJYUGF0
aE5TUmVzb2x2ZXIiKTsgfSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKICAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKICAgICBpbXBsLm1l
dGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlcihXVEZNb3ZlKHJlc29sdmVyKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZTFlODEzMjE4MwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0wLDAgKzEs
NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2EgPHNodmFpa2Fs
ZXNoQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkN1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmlu
ZyBDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcm
IHByZWZpeCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGxvb2t1cE5hbWVzcGFjZVVSSUZvckJpbmRp
bmdzKHByZWZpeCk7CisgICAgaWYgKHJlc3VsdC50eXBlKCkgIT0gQ2FsbGJhY2tSZXN1bHRUeXBl
OjpTdWNjZXNzKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gcmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMzNmJiZjFlMzBkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCkBAIC0wLDAgKzEsNDQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQWxleGV5IFNodmF5a2EgPHNodmFpa2FsZXNoQGdt
YWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBY3RpdmVET01D
YWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisjaW5jbHVkZSAiWFBhdGhO
U1Jlc29sdmVyLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIDogcHVibGljIFhQYXRo
TlNSZXNvbHZlciwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICB1c2lu
ZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0dWFsIENh
bGxiYWNrUmVzdWx0PFN0cmluZz4gbG9va3VwTmFtZXNwYWNlVVJJRm9yQmluZGluZ3MoY29uc3Qg
U3RyaW5nJiBwcmVmaXgpID0gMDsKKworICAgIFN0cmluZyBsb29rdXBOYW1lc3BhY2VVUkkoY29u
c3QgU3RyaW5nJiBwcmVmaXgpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDRiMzRiODkzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbApAQCAtMCwwICsxLDI5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFsZXhleSBTaHZheWthIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVycyBhcmUg
YWx3YXlzIHRlbXBvcmFyeSBzbyB1c2luZyBhIFN0cm9uZyByZWZlcmVuY2UgaXMgc2FmZSBoZXJl
LgorY2FsbGJhY2sgaW50ZXJmYWNlIEN1c3RvbVhQYXRoTlNSZXNvbHZlciB7CisgICAgW0ltcGxl
bWVudGVkQXM9bG9va3VwTmFtZXNwYWNlVVJJRm9yQmluZGluZ3MsIFNraXBDYWxsYmFja0ludm9r
ZUNoZWNrXSBET01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmc/IHByZWZpeCk7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlkbAppbmRleCAzNmI3ODFiMDY2
ZS4uOThjNmIwZGRiYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVz
b2x2ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsCkBA
IC0xOSwxMCArMTksOCBAQAogICovCiAKIFsKLSAgICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0LAog
ICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAogXSBpbnRl
cmZhY2UgWFBhdGhOU1Jlc29sdmVyIHsKLSAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5lZCIg
YXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCi0gICAgRE9NU3RyaW5nPyBsb29r
dXBOYW1lc3BhY2VVUkkob3B0aW9uYWwgRE9NU3RyaW5nIHByZWZpeCA9ICJ1bmRlZmluZWQiKTsK
KyAgICBET01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmc/IHByZWZpeCk7CiB9
Owo=
</data>
<flag name="review"
          id="421530"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406158</attachid>
            <date>2020-08-07 00:28:01 -0700</date>
            <delta_ts>2020-08-07 12:28:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>161030-2.patch</filename>
            <type>text/plain</type>
            <size>49231</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YjNjMzMwZmZhYS4uMWFkMGExYWY0ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wOC0wNiAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAg
ICAgICAgUmVkdWNlIHRoZSBhbW91bnQgb2YgY3VzdG9tIGJpbmRpbmcgY29kZSBmb3IgSlNYUGF0
aE5TUmVzb2x2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MTAzMAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAg
ICogZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC94cGF0aC9uc3Jlc29sdmVyLWJhZC1vYmplY3QtZXhwZWN0ZWQudHh0Ogor
CiAyMDIwLTA4LTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjY1MzI1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9hY2NlcHROb2RlLWZpbHRlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL2FjY2VwdE5vZGUtZmlsdGVyLWV4cGVj
dGVkLnR4dAppbmRleCBlZTdkMjFhNmZmYi4uNmFjZWIyYjRkNjAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvYWNjZXB0Tm9kZS1maWx0ZXIt
ZXhwZWN0ZWQudHh0CkBAIC0yNiwxNSArMjYsMTUgQEAgUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgp
OyB3YWxrZXIuY3VycmVudE5vZGUuaWQgaXMgJ0ExJwogUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsg
d2Fsa2VyLmN1cnJlbnROb2RlLmlkIGlzICdCMScKIAogVGVzdGluZyB3aXRoIG9iamVjdCBsYWNr
aW5nIGFjY2VwdE5vZGUgcHJvcGVydHkKLVBBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mgd2Fsa2VyLmZpcnN0Q2hpbGQo
KTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogJ2FjY2VwdE5vZGUnIHByb3BlcnR5IG9mIGNh
bGxiYWNrIGludGVyZmFjZSBzaG91bGQgYmUgY2FsbGFibGUuCiBQQVNTIHdhbGtlci5jdXJyZW50
Tm9kZS5pZDsgaXMgJ3Jvb3QnCi1QQVNTIHdhbGtlci5uZXh0Tm9kZSgpOyB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB3YWxrZXIubmV4dE5vZGUoKTsgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogJ2FjY2VwdE5vZGUnIHByb3BlcnR5IG9mIGNhbGxiYWNrIGlu
dGVyZmFjZSBzaG91bGQgYmUgY2FsbGFibGUuCiBQQVNTIHdhbGtlci5jdXJyZW50Tm9kZS5pZDsg
aXMgJ3Jvb3QnCiAKIFRlc3Rpbmcgd2l0aCBvYmplY3Qgd2l0aCBub24tZnVuY3Rpb24gYWNjZXB0
Tm9kZSBwcm9wZXJ0eQotUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyB3YWxrZXIuZmlyc3RDaGlsZCgpOyB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiAnYWNjZXB0Tm9kZScgcHJvcGVydHkgb2YgY2FsbGJhY2sgaW50
ZXJmYWNlIHNob3VsZCBiZSBjYWxsYWJsZS4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBp
cyAncm9vdCcKLVBBU1Mgd2Fsa2VyLm5leHROb2RlKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFR5cGUgZXJyb3IuCitQQVNTIHdhbGtlci5uZXh0Tm9kZSgpOyB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiAnYWNjZXB0Tm9kZScgcHJvcGVydHkgb2YgY2FsbGJhY2sgaW50ZXJmYWNlIHNo
b3VsZCBiZSBjYWxsYWJsZS4KIFBBU1Mgd2Fsa2VyLmN1cnJlbnROb2RlLmlkOyBpcyAncm9vdCcK
IAogVGVzdGluZyB3aXRoIGZ1bmN0aW9uIGhhdmluZyBhY2NlcHROb2RlIGZ1bmN0aW9uCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL25zcmVzb2x2ZXItYmFkLW9iamVjdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL25zcmVzb2x2ZXItYmFkLW9iamVjdC1l
eHBlY3RlZC50eHQKaW5kZXggODY5Y2U2ZTJjMjMuLmFmMDhhNDJiZTU5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3hwYXRoL25zcmVzb2x2ZXItYmFkLW9iamVjdC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC9uc3Jlc29sdmVyLWJhZC1vYmplY3QtZXhwZWN0
ZWQudHh0CkBAIC0xLDIgKzEsMiBAQAotQ09OU09MRSBNRVNTQUdFOiBYUGF0aE5TUmVzb2x2ZXIg
ZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuCitDT05TT0xFIE1FU1NB
R0U6IFR5cGVFcnJvcjogJ2xvb2t1cE5hbWVzcGFjZVVSSScgcHJvcGVydHkgb2YgY2FsbGJhY2sg
aW50ZXJmYWNlIHNob3VsZCBiZSBjYWxsYWJsZQogU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggYTJhYmI0YzRjMjIuLjIyNWFjZTI4YTZiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wOC0wNiAgQWxleGV5IFNodmF5
a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgUmVkdWNlIHRoZSBhbW91bnQg
b2YgY3VzdG9tIGJpbmRpbmcgY29kZSBmb3IgSlNYUGF0aE5TUmVzb2x2ZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTAzMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbXhwYXRoL2NhbGxiYWNrLWludGVyZmFjZS1leHBlY3RlZC50eHQ6CisKIDIwMjAt
MDgtMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVN0
cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlIHNob3VsZCBoYXZlIGEgY29uc3RydWN0b3IKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lk
bGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dAppbmRl
eCBjZGUwMTA2NjMyZi4uYmI4ZTZjYjJjN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTE4NDMsOSArMTg0Myw3IEBAIFBB
U1MgWFBhdGhOU1Jlc29sdmVyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9m
IGludGVyZmFjZSBwcm90b3R5cGUKIFBBU1MgWFBhdGhOU1Jlc29sdmVyIGludGVyZmFjZTogb3Bl
cmF0aW9uIGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmc/KSAKIFBBU1MgU3RyaW5naWZpY2F0
aW9uIG9mIGRvY3VtZW50LmNyZWF0ZU5TUmVzb2x2ZXIoZG9jdW1lbnQuYm9keSkgCiBQQVNTIFhQ
YXRoTlNSZXNvbHZlciBpbnRlcmZhY2U6IGRvY3VtZW50LmNyZWF0ZU5TUmVzb2x2ZXIoZG9jdW1l
bnQuYm9keSkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3Ry
aW5nPykiIHdpdGggdGhlIHByb3BlciB0eXBlIAotRkFJTCBYUGF0aE5TUmVzb2x2ZXIgaW50ZXJm
YWNlOiBjYWxsaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShET01TdHJpbmc/KSBvbiBkb2N1bWVudC5j
cmVhdGVOU1Jlc29sdmVyKGRvY3VtZW50LmJvZHkpIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogQ2FsbGVkIHdpdGggMCBhcmd1bWVu
dHMgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGZuLmFwcGx5KG9iaiwgYXJn
cyk7Ci0gICAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgWFBhdGhOU1Jlc29sdmVyIGludGVy
ZmFjZTogY2FsbGluZyBsb29rdXBOYW1lc3BhY2VVUkkoRE9NU3RyaW5nPykgb24gZG9jdW1lbnQu
Y3JlYXRlTlNSZXNvbHZlcihkb2N1bWVudC5ib2R5KSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBYUGF0aEV2YWx1YXRvciBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IAogUEFTUyBYUGF0aEV2YWx1
YXRvciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCAKIFBBU1MgWFBhdGhFdmFsdWF0b3IgaW50ZXJm
YWNlIG9iamVjdCBuYW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb214cGF0aC9jYWxsYmFjay1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb214cGF0aC9j
YWxsYmFjay1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CmluZGV4IGMxMTU2MDA5YzFkLi5mMzk0ZmYw
NWJhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb214cGF0aC9jYWxsYmFjay1pbnRlcmZhY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9teHBhdGgvY2FsbGJhY2st
aW50ZXJmYWNlLWV4cGVjdGVkLnR4dApAQCAtMSwxNyArMSwxNSBAQAogQ09OU09MRSBNRVNTQUdF
OiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FHRTogWFBhdGhOU1Jlc29sdmVyIGRvZXMg
bm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLgotQ09OU09MRSBNRVNTQUdFOiBY
UGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2Qu
Ci1DT05TT0xFIE1FU1NBR0U6IFhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3Vw
TmFtZXNwYWNlVVJJIG1ldGhvZC4KK0NPTlNPTEUgTUVTU0FHRTogW29iamVjdCBPYmplY3RdCitD
T05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogJ2xvb2t1cE5hbWVzcGFjZVVSSScgcHJvcGVydHkg
b2YgY2FsbGJhY2sgaW50ZXJmYWNlIHNob3VsZCBiZSBjYWxsYWJsZQorQ09OU09MRSBNRVNTQUdF
OiBUeXBlRXJyb3I6ICdsb29rdXBOYW1lc3BhY2VVUkknIHByb3BlcnR5IG9mIGNhbGxiYWNrIGlu
dGVyZmFjZSBzaG91bGQgYmUgY2FsbGFibGUKIAogUEFTUyBjYWxsYWJsZSByZXNvbHZlciAKIFBB
U1MgY2FsbGFibGUgcmVzb2x2ZXI6IHJlc3VsdCBpcyBub3QgY2FjaGVkIAogUEFTUyBjYWxsYWJs
ZSByZXNvbHZlcjogYWJydXB0IGNvbXBsZXRpb24gZnJvbSBDYWxsIAotRkFJTCBjYWxsYWJsZSBy
ZXNvbHZlcjogbm8gJ2xvb2t1cE5hbWVzcGFjZVVSSScgbG9va3VwcyBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAwIGJ1dCBnb3QgMQorUEFTUyBjYWxsYWJsZSByZXNvbHZlcjogbm8gJ2xvb2t1cE5h
bWVzcGFjZVVSSScgbG9va3VwcyAKIFBBU1Mgb2JqZWN0IHJlc29sdmVyIAogUEFTUyBvYmplY3Qg
cmVzb2x2ZXI6ICdsb29rdXBOYW1lc3BhY2VVUkknIGlzIG5vdCBjYWNoZWQgCi1GQUlMIG9iamVj
dCByZXNvbHZlcjogYWJydXB0IGNvbXBsZXRpb24gZnJvbSBHZXQgYXNzZXJ0X3Rocm93c19kb206
IGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgZG9jdW1lbnQuZXZhbHVhdGUoIi9mb286YmFyIiwgZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LCByZXNvbHZlcik7Ci0gIH0iIHRocmV3IG9iamVjdCAiW29i
amVjdCBPYmplY3RdIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBOQU1FU1BBQ0VfRVJSOiBw
cm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCAxNAotRkFJTCBv
YmplY3QgcmVzb2x2ZXI6ICdsb29rdXBOYW1lc3BhY2VVUkknIGlzIHRocnV0aHkgYW5kIG5vdCBj
YWxsYWJsZSBhc3NlcnRfdHJ1ZTogVGltZWQgb3V0IHdhaXRpbmcgZm9yIGVycm9yIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIG9iamVjdCByZXNvbHZlcjogJ2xvb2t1cE5hbWVzcGFjZVVS
SScgaXMgZmFsc3kgYW5kIG5vdCBjYWxsYWJsZSBhc3NlcnRfdHJ1ZTogVGltZWQgb3V0IHdhaXRp
bmcgZm9yIGVycm9yIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIG9iamVjdCByZXNvbHZl
cjogYWJydXB0IGNvbXBsZXRpb24gZnJvbSBHZXQgCitQQVNTIG9iamVjdCByZXNvbHZlcjogJ2xv
b2t1cE5hbWVzcGFjZVVSSScgaXMgdGhydXRoeSBhbmQgbm90IGNhbGxhYmxlIAorUEFTUyBvYmpl
Y3QgcmVzb2x2ZXI6ICdsb29rdXBOYW1lc3BhY2VVUkknIGlzIGZhbHN5IGFuZCBub3QgY2FsbGFi
bGUgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjJmM2UxM2Q3Y2IuLjFiNWMwNzYyMmY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTA3MCw2ICsxMDcwLDcgQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICB3b3JrbGV0cy9Xb3JrbGV0LmlkbAogICAgIHdvcmtsZXRzL1dv
cmtsZXRHbG9iYWxTY29wZS5pZGwKIAorICAgIHhtbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRs
CiAgICAgeG1sL0RPTVBhcnNlci5pZGwKICAgICB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsCiAgICAg
eG1sL1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg2MzVlZjhk
ODUuLjM1YTM4NDhiMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjAtMDgtMDYg
IEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJlZHVj
ZSB0aGUgYW1vdW50IG9mIGN1c3RvbSBiaW5kaW5nIGNvZGUgZm9yIEpTWFBhdGhOU1Jlc29sdmVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzAK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBUaGlzIHBhdGNo
IGludHJvZHVjZXMgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIGNhbGxiYWNrIGludGVyZmFjZSwKKyAg
ICAgICAgY2xlYW5pbmcgdXAgQ29kZUdlbmVyYXRvckpTLnBtIGFuZCByZW1vdmluZyBjdXN0b20g
YmluZGluZyBjb2RlLgorCisgICAgICAgIFhQYXRoTlNSZXNvbHZlciBpcyBrZXB0IGFzIGEgd3Jh
cHBlciBmb3IgTmF0aXZlWFBhdGhOU1Jlc29sdmVyLCBwcmVzZXJ2aW5nIGNvbW1vbgorICAgICAg
ICBjYXNlIHBlcmZvcm1hbmNlIHZpYSBJREwgaW50ZXJmYWNlIGNvbnZlcnRlciwgYW5kIGJlY2F1
c2UgYSBjYWxsYmFjayBpbnRlcmZhY2UKKyAgICAgICAgY2FuJ3QgYmUgcmV0dXJuZWQgZnJvbSBh
IGZ1bmN0aW9uIHdpdGhvdXQgc3Vic3RhbnRpYWwgY29kZSBnZW5lcmF0b3IgY2hhbmdlLgorCisg
ICAgICAgIEFsc28sIGltcHJvdmVzIG5vbi1jYWxsYWJsZSBtZXRob2QgZXJyb3IgbWVzc2FnZSBh
bmQgZml4ZXMgMiBzcGVjIGluY29tcGF0aWJpbGl0aWVzOgorICAgICAgICBhKSBubyAibG9va3Vw
TmFtZXNwYWNlVVJJIiBtZXRob2QgbG9va3VwIG9uIGZ1bmN0aW9ucyBbMV07CisgICAgICAgIGIp
IHJlc29sdmVyJ3MgInByZWZpeCIgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIFsyXS4KKworICAgICAg
ICBTaW5jZSBDKysgbWV0aG9kcyBjYW4ndCBiZSBvdmVybG9hZCBiYXNlZCBvbiByZXR1cm4gdHlw
ZSwgdGhpcyBwYXRjaCBhZGRzCisgICAgICAgIFtJbXBsZW1lbnRlZEFzXSBJREwgYXR0cmlidXRl
IHN1cHBvcnQgZm9yIGNhbGxiYWNrIGludGVyZmFjZSBtZXRob2RzLgorCisgICAgICAgIEJlY2F1
c2UgWFBhdGhOU1Jlc29sdmVyIHdyYXBwZXJzIGFyZSBhbHdheXMgdGVtcG9yYXJ5IChubyByZWZl
cmVuY2UgaXMga2VwdCksCisgICAgICAgIFtJc1dlYWtDYWxsYmFja10gSURMIGF0dHJpYnV0ZSBp
c24ndCBhZGRlZCwgcHJlc2VydmluZyBzdHJvbmcgcmVmZXJlbmNlLgorCisgICAgICAgIFsxXTog
aHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jY2FsbC1hLXVzZXItb2JqZWN0cy1vcGVy
YXRpb24gKHN0ZXAgMTAuMSkKKyAgICAgICAgWzJdOiBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5v
cmcvI2RvbS14cGF0aG5zcmVzb2x2ZXItbG9va3VwbmFtZXNwYWNldXJpCisKKyAgICAgICAgVGVz
dHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2lkbGhhcm5lc3Mud2luZG93
LmpzCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbXhw
YXRoL2NhbGxiYWNrLWludGVyZmFjZS5odG1sICAgICAgICAKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9JRExUeXBlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2Fs
bGJhY2tEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ2FsbGJhY2tEYXRhOjppbnZva2VD
YWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0WFBhdGhO
U1Jlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMSW50ZXJmYWNlPFhQ
YXRoTlNSZXNvbHZlcj4+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnZlcnRlcjxJ
RExYUGF0aE5TUmVzb2x2ZXI8VD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkpTQ29udmVydGVyPElETFhQYXRoTlNSZXNvbHZlcjxUPj46OmNvbnZlcnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SlNDb252ZXJ0ZXI8SURMWFBhdGhOU1Jlc29sdmVyPFQ+Pjo6
Y29udmVydE5ld2x5Q3JlYXRlZCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtOgorICAgICAgICAoSXNCdWlsdGluVHlwZSk6CisgICAgICAgIChJ
c1dyYXBwZXJUeXBlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbToKKyAgICAgICAgKEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlKToKKyAgICAgICAgKEdlbmVy
YXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXJDb250ZW50KToKKyAg
ICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbkNvbnRlbnQpOgorICAgICAgICAo
R2V0QmFzZUlETFR5cGUpOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRz
U3RhdGUpOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzR2xvYmFsT2Jq
ZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFhQ
YXRoTlNSZXNvbHZlclBhcmFtZXRlckJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXJCb2R5KToK
KyAgICAgICAgKiB4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkp
OgorICAgICAgICAqIHhtbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwLgorICAg
ICAgICAqIHhtbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwLgorICAgICAg
ICAqIHhtbC9YUGF0aE5TUmVzb2x2ZXIuaWRsOgorCiAyMDIwLTA4LTA2ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9u
Tm9kZSBzaG91bGQgaGF2ZSBhIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBkNWFiODVjMjVkNS4uMTJjNDA1Yzc1ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApA
QCAtMTIxNSw2ICsxMjE1LDcgQEAgJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQuaWRsCiAkKFBST0pFQ1RfRElSKS93b3JrbGV0cy9QYWludFdv
cmtsZXRHbG9iYWxTY29wZS5pZGwKICQoUFJPSkVDVF9ESVIpL3dvcmtsZXRzL1dvcmtsZXQuaWRs
CiAkKFBST0pFQ1RfRElSKS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaWRsCiskKFBST0pF
Q1RfRElSKS94bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmlkbAogJChQUk9KRUNUX0RJUikveG1s
L0RPTVBhcnNlci5pZGwKICQoUFJPSkVDVF9ESVIpL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKICQo
UFJPSkVDVF9ESVIpL3htbC9YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA4YTYxYWY0
YWQwYS4uOGY1ZmNhODBjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yMjYyLDYgKzIyNjIsOCBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1hQYXRoRXZhbHVhdG9yLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aEV2YWx1YXRvci5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1hQYXRoRXhw
cmVzc2lvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTWFBhdGhFeHByZXNzaW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNYUGF0aE5TUmVzb2x2
ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1hQ
YXRoTlNSZXNvbHZlci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1hQYXRoUmVzdWx0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
ZGM4OGM0MTk3NjQuLmU4MDY0ZjQ4MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTEyMjYsNiArMTIyNiw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUp
L3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmlkbCBcCiAgICAgJChXZWJDb3JlKS93
b3JrbGV0cy9Xb3JrbGV0LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrbGV0cy9Xb3JrbGV0R2xv
YmFsU2NvcGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3htbC9DdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3htbC9ET01QYXJzZXIuaWRsIFwKICAgICAkKFdlYkNvcmUp
L3htbC9YTUxIdHRwUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkveG1sL1hNTEh0dHBSZXF1
ZXN0RXZlbnRUYXJnZXQuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDA2ZTM1MTlhMGQ3Li5h
NmNhNTQxMGM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNTUyLDYgKzE1NTIsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAogICAgIHdvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAogCisgICAgeG1sL0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
CiAgICAgeG1sL1hQYXRoRXhwcmVzc2lvbi5oCiAgICAgeG1sL1hQYXRoTlNSZXNvbHZlci5oCiAg
ICAgeG1sL1hQYXRoTm9kZVNldC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDBjOTMyMjdkYjQ2Li4yZjFl
NDRkMWY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQ3Miw3ICs0NzIsNiBAQCBiaW5kaW5ncy9qcy9K
U0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTQ3VzdG9t
RWxlbWVudEludGVyZmFjZS5jcHAKIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNDdXN0b21FdmVudEN1c3RvbS5jcHAKLWJpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogYmluZGluZ3MvanMvSlNET01CaW5kaW5n
U2VjdXJpdHkuY3BwCiBiaW5kaW5ncy9qcy9KU0RPTUJ1aWx0aW5Db25zdHJ1Y3RvckJhc2UuY3Bw
CiBiaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5jcHAKQEAgLTU3NCw3ICs1NzMsNiBA
QCBiaW5kaW5ncy9qcy9KU1dvcmtlck5hdmlnYXRvckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTWE1MRG9jdW1lbnRDdXN0
b20uY3BwCiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAotYmluZGluZ3Mv
anMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0
Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwCiBiaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcApAQCAtMjU1NCw2ICsyNTUyLDcgQEAg
d29ya2xldHMvV29ya2xldC5jcHAKIHdvcmtsZXRzL1dvcmtsZXRDb25zb2xlQ2xpZW50LmNwcAog
d29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAogd29ya2xldHMvV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuY3BwCit4bWwvQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAogeG1sL0RPTVBhcnNl
ci5jcHAKIHhtbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwCiB4bWwvWE1MRXJyb3JzLmNwcApA
QCAtMzEyMyw2ICszMTIyLDcgQEAgSlNOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuY3BwCiBKU05hdmln
YXRvcldlYkRyaXZlci5jcHAKIEpTTm9kZS5jcHAKIEpTTm9kZUZpbHRlci5jcHAKK0pTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmNwcAogSlNOb2RlSXRlcmF0b3IuY3BwCiBKU05vZGVMaXN0LmNwcAog
SlNOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDJlZGQ5OTZmNmMuLmY0MWMzODU4
ZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMDUyNyw3ICsxMDUyNyw2IEBACiAJCTgzNkFDRUQxMUVDQUFCMDQwMDRCRDAx
MiAvKiBKU0RPTU1hdHJpeFJlYWRPbmx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTRE9NTWF0cml4UmVhZE9ubHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODM2QjA5NTIxRjVGMzREMDAwM0MzNzAyIC8qIEpTSFRNTElucHV0RWxlbWVudEVudHJpZXNBUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MSW5wdXRFbGVtZW50RW50
cmllc0FQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzZCMDk1MzFGNUYzNEQw
MDAzQzM3MDIgLyogSlNIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQSS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODM2QzE0NDIxQ0RFQUZDQTAwNzM0OTNG
IC8qIEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODM2RDAzMjcxREE4OUI3MzAwRkZEOTZCIC8qIENsaXBib2FyZEV2ZW50
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDbGlwYm9hcmRFdmVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkQwMzI4MURBODlCNzMwMEZGRDk2QiAvKiBFdmVudElu
aXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRJbml0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNkQwMzI5MURBODlCNzMwMEZGRDk2QiAvKiBFdmVu
dEluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50SW5pdC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDcwNyw2ICsxMDcwNiw4IEBACiAJCTg0NzMwRDc0MTI0
OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMaWdodFNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDcz
MEQ3NTEyNDhGMEIzMDBEM0E5QzkgLyogUG9pbnRMaWdodFNvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQb2ludExpZ2h0U291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg0NzMwRDc2MTI0OEYwQjMwMEQzQTlDOSAvKiBTcG90TGlnaHRTb3VyY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BvdExpZ2h0U291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg0NzQ1QjhEMjRBM0YwOUYwMDI5QThCNSAvKiBD
dXN0b21YUGF0aE5TUmVzb2x2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1c3RvbVhQ
YXRoTlNSZXNvbHZlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg0NzQ1QjhF
MjRBM0YwQTAwMDI5QThCNSAvKiBDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg0NzZDOUUzMTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2Vn
TGlzdEJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZH
UGF0aFNlZ0xpc3RCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQ3
NkM5RTQxMURGNkEwQjAwNTU1QjAyIC8qIFNWR1BhdGhTZWdMaXN0QnVpbGRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQ3NkM5RTcxMURGNkEyOTAwNTU1QjAyIC8qIFNWR1Bh
dGhCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1Bh
dGhCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzM3LDYgKzEw
NzM4LDcgQEAKIAkJODRCNjI2ODQxMzMxMzhGOTAwOTVBNDg5IC8qIEZvbnRQbGF0Zm9ybURhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udFBsYXRmb3JtRGF0
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0QjZCOTc1MTIwRjEzRTUwMEI4
RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg0QjZCOTc2MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNv
dXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTGlzdFNv
dXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NEMwQjY3MzI0REJBQ0EyMDA1
OERGOTYgLyogQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg0QzVCMkY4MTIxNkRDODEwMDg4QjUzQSAvKiBTVkdQYXRoVHJhdmVy
c2FsU3RhdGVCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNWR1BhdGhUcmF2ZXJzYWxTdGF0ZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4NEM1QjJGOTEyMTZEQzgxMDA4OEI1M0EgLyogU1ZHUGF0aFRyYXZlcnNhbFN0YXRl
QnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoVHJhdmVy
c2FsU3RhdGVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0QzY3ODRB
MTIxNDgxNDcwMEE5MjkwMiAvKiBTVkdQYXRoQmxlbmRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQYXRoQmxlbmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMTk2MCw3ICsyMTk2Miw2IEBACiAJCQkJRTE4MjU4QUIwRUYzQ0Q3MDAw
OTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwICovLAogCQkJCTQ2RjkxQkM5
MUZDREQwRkUwMDE1OTlDMyAvKiBKU1dvcmtlck5hdmlnYXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJ
ODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwICovLAot
CQkJCTgzNkMxNDQyMUNERUFGQ0EwMDczNDkzRiAvKiBKU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5j
cHAgKi8sCiAJCQkJQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0
b20uY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSAiR0MgLyBXcmFwcGluZyBPbmx5IjsKQEAgLTI3
ODY4LDYgKzI3ODY5LDkgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJMDBCOTMxODAxM0JBODY3RjAwMzVBOTQ4IC8qIHBhcnNlciAqLywKKwkJCQk4NEMwQjY3MzI0
REJBQ0EyMDA1OERGOTYgLyogQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKKwkJCQk4NDc0
NUI4RTI0QTNGMEEwMDAyOUE4QjUgLyogQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8sCisJCQkJ
ODQ3NDVCOEQyNEEzRjA5RjAwMjlBOEI1IC8qIEN1c3RvbVhQYXRoTlNSZXNvbHZlci5pZGwgKi8s
CiAJCQkJMUFDRTUzRTEwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5jcHAgKi8sCiAJCQkJ
MUFDRTUzRTIwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5oICovLAogCQkJCTFBQ0U1M0Uz
MEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaWRsICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lE
TFR5cGVzLmgKaW5kZXggMGYwZTAxZDc3ZDAuLmQ5ZmFiN2I1MWM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL0lETFR5cGVzLmgKQEAgLTI3NSw3ICsyNzUsNiBAQCBzdHJ1Y3QgSURMSlNPTiA6IElETFR5
cGU8U3RyaW5nPiB7CiBzdHJ1Y3QgSURMU2NoZWR1bGVkQWN0aW9uIDogSURMVHlwZTxzdGQ6OnVu
aXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPj4geyB9OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IElETFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IElETFdyYXBwZXI8VD4geyB9OwogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IElETEV2ZW50TGlzdGVuZXIgOiBJRExXcmFwcGVyPFQ+IHsg
fTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJRExYUGF0aE5TUmVzb2x2ZXIgOiBJRExX
cmFwcGVyPFQ+IHsgfTsKIAogc3RydWN0IElETElEQktleSA6IElETFdyYXBwZXI8SURCS2V5PiB7
IH07CiBzdHJ1Y3QgSURMSURCS2V5RGF0YSA6IElETFdyYXBwZXI8SURCS2V5RGF0YT4geyB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCmluZGV4IDBk
M2E1ZjgwZjhlLi42MjVhYmYyMDg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ2FsbGJhY2tEYXRhLmNwcApAQCAtNzAsNyArNzAsNyBAQCBKU1ZhbHVlIEpTQ2FsbGJhY2tE
YXRhOjppbnZva2VDYWxsYmFjayhKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU09i
amVjdAogCiAgICAgICAgIGNhbGxEYXRhID0gZ2V0Q2FsbERhdGEodm0sIGZ1bmN0aW9uKTsKICAg
ICAgICAgaWYgKGNhbGxEYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpIHsKLSAgICAg
ICAgICAgIHJldHVybmVkRXhjZXB0aW9uID0gSlNDOjpFeGNlcHRpb246OmNyZWF0ZSh2bSwgY3Jl
YXRlVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKKyAgICAgICAgICAgIHJldHVybmVk
RXhjZXB0aW9uID0gSlNDOjpFeGNlcHRpb246OmNyZWF0ZSh2bSwgY3JlYXRlVHlwZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIiciLCBTdHJpbmcoZnVuY3Rpb25OYW1lLnVp
ZCgpKSwgIicgcHJvcGVydHkgb2YgY2FsbGJhY2sgaW50ZXJmYWNlIHNob3VsZCBiZSBjYWxsYWJs
ZSIpKSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY2OTNlNjk3MDcuLjAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDEzIEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKLSAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKLQotI2luY2x1ZGUgIkNvbW1v
blZNLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKLSNp
bmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgotI2luY2x1ZGUgIkpTRXhlY1N0YXRlLmgiCi0j
aW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCi0jaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZi5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLUV4Y2VwdGlvbk9yPFJl
ZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4+IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVh
dGUoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCi17
Ci0gICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IgfTsKLQotICAgIGF1dG8qIHJlc29sdmVyT2JqZWN0ID0gdmFsdWUu
Z2V0T2JqZWN0KCk7Ci0gICAgaWYgKCFyZXNvbHZlck9iamVjdCkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9yIH07Ci0KLSAgICBWTSYgdm0gPSBsZXhpY2FsR2xv
YmFsT2JqZWN0LnZtKCk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIodm0sIHJlc29sdmVyT2JqZWN0LCBhc0pTRE9NV2luZG93KCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSkpOwotfQotCi1KU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6SlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIoVk0mIHZtLCBKU09iamVjdCogY3VzdG9tUmVzb2x2ZXIsIEpTRE9NV2luZG93KiBn
bG9iYWxPYmplY3QpCi0gICAgOiBtX2N1c3RvbVJlc29sdmVyKHZtLCBjdXN0b21SZXNvbHZlcikK
LSAgICAsIG1fZ2xvYmFsT2JqZWN0KHZtLCBnbG9iYWxPYmplY3QpCi17Ci19Ci0KLUpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyOjp+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKSA9IGRlZmF1bHQ7Ci0K
LVN0cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0
IFN0cmluZyYgcHJlZml4KQotewotICAgIEFTU0VSVChtX2N1c3RvbVJlc29sdmVyKTsKLQotICAg
IEpTTG9ja0hvbGRlciBsb2NrKGNvbW1vblZNKCkpOwotCi0gICAgSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QgPSBtX2dsb2JhbE9iamVjdC5nZXQoKTsKLSAgICBWTSYgdm0gPSBs
ZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICAKLSAgICBKU1ZhbHVlIGZ1bmN0aW9u
ID0gbV9jdXN0b21SZXNvbHZlci0+Z2V0KGxleGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJsb29rdXBOYW1lc3BhY2VVUkkiKSk7Ci0gICAgYXV0byBjYWxsRGF0
YSA9IGdldENhbGxEYXRhKHZtLCBmdW5jdGlvbik7Ci0gICAgaWYgKGNhbGxEYXRhLnR5cGUgPT0g
Q2FsbERhdGE6OlR5cGU6Ok5vbmUpIHsKLSAgICAgICAgY2FsbERhdGEgPSBnZXRDYWxsRGF0YSh2
bSwgbV9jdXN0b21SZXNvbHZlci5nZXQoKSk7Ci0gICAgICAgIGlmIChjYWxsRGF0YS50eXBlID09
IENhbGxEYXRhOjpUeXBlOjpOb25lKSB7Ci0gICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGll
bnQqIGNvbnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+d3JhcHBlZCgpLmNvbnNvbGUoKSkKLSAgICAg
ICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1l
c3BhY2VVUkkgbWV0aG9kLiJfcyk7Ci0gICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOwotICAgIH0K
LQotICAgIFJlZjxKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7
Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgIGFyZ3MuYXBwZW5kKGpzU3Ry
aW5nV2l0aENhY2hlKHZtLCBwcmVmaXgpKTsKLSAgICBBU1NFUlQoIWFyZ3MuaGFzT3ZlcmZsb3dl
ZCgpKTsKLQotICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiBleGNlcHRpb247Ci0gICAgSlNW
YWx1ZSByZXR2YWwgPSBKU0V4ZWNTdGF0ZTo6Y2FsbChsZXhpY2FsR2xvYmFsT2JqZWN0LCBmdW5j
dGlvbiwgY2FsbERhdGEsIG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGFyZ3MsIGV4Y2VwdGlvbik7
Ci0KLSAgICBTdHJpbmcgcmVzdWx0OwotICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgIHJlcG9y
dEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBleGNlcHRpb24pOwotICAgIGVsc2Ugewot
ICAgICAgICBpZiAoIXJldHZhbC5pc1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICAgICAgcmVz
dWx0ID0gcmV0dmFsLnRvV1RGU3RyaW5nKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIH0KLQot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZWU0NjA2Njc5Zi4uMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcg
QWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJFeGNlcHRp
b25Pci5oIgotI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0lubGluZXMuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVl
Lmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+Ci0jaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNz
IEpTRE9NV2luZG93OwotCi1jbGFzcyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlciBmaW5hbCA6IHB1
YmxpYyBYUGF0aE5TUmVzb2x2ZXIgewotcHVibGljOgotICAgIHN0YXRpYyBFeGNlcHRpb25PcjxS
ZWY8SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI+PiBjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYs
IEpTQzo6SlNWYWx1ZSk7Ci0gICAgdmlydHVhbCB+SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIoKTsK
LQotcHJpdmF0ZToKLSAgICBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcihKU0M6OlZNJiwgSlNDOjpK
U09iamVjdCosIEpTRE9NV2luZG93Kik7Ci0KLSAgICBTdHJpbmcgbG9va3VwTmFtZXNwYWNlVVJJ
KGNvbnN0IFN0cmluZyYgcHJlZml4KSBmaW5hbDsKLQotICAgIC8vIEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVycyBhcmUgYWx3YXlzIHRlbXBvcmFyeSBzbyB1c2luZyBhIFN0cm9uZyByZWZlcmVuY2Ug
aXMgc2FmZSBoZXJlLgotICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+IG1fY3VzdG9tUmVz
b2x2ZXI7Ci0gICAgSlNDOjpTdHJvbmc8SlNET01XaW5kb3c+IG1fZ2xvYmFsT2JqZWN0OwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01Db252ZXJ0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnZlcnQuaAppbmRleCA0NGFmZDRkM2U1Ny4uY2Q5ZjczNmM1YmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydC5oCkBAIC00Niw0ICs0NiwzIEBACiAjaW5jbHVk
ZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydFVuaW9uLmgi
CiAjaW5jbHVkZSAiSlNET01Db252ZXJ0V2ViR0wuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnRY
UGF0aE5TUmVzb2x2ZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQ29udmVydFhQYXRoTlNSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0WFBhdGhOU1Jlc29sdmVyLmgKaW5kZXggNjU4OTQxNTljYmIuLmY1N2Vh
NDVhOTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnRYUGF0aE5TUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnZlcnRYUGF0aE5TUmVzb2x2ZXIuaApAQCAtMjgsMzggKzI4LDI3IEBACiAjaW5jbHVkZSAi
SURMVHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRCYXNlLmgiCiAKLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKKyNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgorI2luY2x1ZGUg
IkpTWFBhdGhOU1Jlc29sdmVyLmgiCiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDb252
ZXJ0ZXI8SURMWFBhdGhOU1Jlc29sdmVyPFQ+PiA6IERlZmF1bHRDb252ZXJ0ZXI8SURMWFBhdGhO
U1Jlc29sdmVyPFQ+PiB7Ci0gICAgdXNpbmcgUmV0dXJuVHlwZSA9IFJlZlB0cjxUPjsKLSAgICB1
c2luZyBXcmFwcGVyVHlwZSA9IHR5cGVuYW1lIEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxU
Pjo6V3JhcHBlckNsYXNzOworbmFtZXNwYWNlIFdlYkNvcmUgewogCit0ZW1wbGF0ZTw+IHN0cnVj
dCBDb252ZXJ0ZXI8SURMSW50ZXJmYWNlPFhQYXRoTlNSZXNvbHZlcj4+IDogRGVmYXVsdENvbnZl
cnRlcjxJRExJbnRlcmZhY2U8WFBhdGhOU1Jlc29sdmVyPj4gewogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEV4Y2VwdGlvblRocm93ZXIgPSBEZWZhdWx0RXhjZXB0aW9uVGhyb3dlcj4KLSAgICBzdGF0
aWMgUmV0dXJuVHlwZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgRXhjZXB0aW9uVGhyb3dlciYmIGV4Y2VwdGlvblRo
cm93ZXIgPSBFeGNlcHRpb25UaHJvd2VyKCkpCisgICAgc3RhdGljIFJlZlB0cjxYUGF0aE5TUmVz
b2x2ZXI+IGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpKU1ZhbHVlIHZhbHVlLCBFeGNlcHRpb25UaHJvd2VyJiYgZXhjZXB0aW9uVGhyb3dlciA9
IEV4Y2VwdGlvblRocm93ZXIoKSkKICAgICB7CiAgICAgICAgIEpTQzo6Vk0mIHZtID0gSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLSAgICAgICAgUmV0dXJuVHlwZSBvYmplY3QgPSBXcmFwcGVyVHlw
ZTo6dG9XcmFwcGVkKHZtLCBsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7Ci0gICAgICAgIGlm
IChVTkxJS0VMWSghb2JqZWN0KSkKKyAgICAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7CiAg
ICAgICAgICAgICBleGNlcHRpb25UaHJvd2VyKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKTsK
LSAgICAgICAgcmV0dXJuIG9iamVjdDsKLSAgICB9Ci19OworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEpTQ29udmVy
dGVyPElETFhQYXRoTlNSZXNvbHZlcjxUPj4gewotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBu
ZWVkc1N0YXRlID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNHbG9iYWxP
YmplY3QgPSB0cnVlOworICAgICAgICBhdXRvIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKKyAg
ICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNYUGF0aE5TUmVzb2x2ZXI+KHZtKSkKKyAgICAg
ICAgICAgIHJldHVybiAmSlNDOjpqc0Nhc3Q8SlNYUGF0aE5TUmVzb2x2ZXIqPihvYmplY3QpLT53
cmFwcGVkKCk7CiAKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4KLSAgICBzdGF0aWMgSlNDOjpK
U1ZhbHVlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgVSYgdmFsdWUpCi0gICAgewot
ICAgICAgICByZXR1cm4gdG9KUygmbGV4aWNhbEdsb2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCwg
RGV0YWlsOjpnZXRQdHJPclJlZih2YWx1ZSkpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFU+Ci0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBjb252ZXJ0TmV3bHlDcmVhdGVkKEpTQzo6
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QsIFUmJiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0b0pTTmV3bHlD
cmVhdGVkKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCBzdGQ6OmZvcndhcmQ8
VT4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVh
dGUob2JqZWN0LCBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4MzhjMmQxZGNiNy4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJK
U1hQYXRoTlNSZXNvbHZlci5oIgotCi0jaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aCIKLSNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCi0KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4g
SlNYUGF0aE5TUmVzb2x2ZXI6OnRvV3JhcHBlZChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmICh2YWx1ZS5pbmhlcml0
czxKU1hQYXRoTlNSZXNvbHZlcj4odm0pKQotICAgICAgICByZXR1cm4gJmpzQ2FzdDxKU1hQYXRo
TlNSZXNvbHZlcio+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKLQotICAgIGF1dG8gcmVz
dWx0ID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0
LCB2YWx1ZSk7Ci0gICAgaWYgKFVOTElLRUxZKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkpIHsKLSAg
ICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgICAgICBwcm9w
YWdhdGVFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJu
IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBt
CmluZGV4IDE3NTQxYmI0ODNkLi4zYjc5ZTM4NThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQpAQCAtMTA0Niw3ICsxMDQ2LDYgQEAg
c3ViIElzQnVpbHRpblR5cGUKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiUHJvbWlz
ZSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlNjaGVkdWxlZEFjdGlvbiI7CiAg
ICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7Ci0g
ICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciI7CiAgICAgcmV0
dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgImFueSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5h
bWUgZXEgIm9iamVjdCI7CiAKQEAgLTEwNzMsNyArMTA3Miw2IEBAIHN1YiBJc1dyYXBwZXJUeXBl
CiAgICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiSURMVHlwZSI7CiAK
ICAgICByZXR1cm4gMSBpZiAkb2JqZWN0LT5Jc0ludGVyZmFjZVR5cGUoJHR5cGUpOwotICAgIHJl
dHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwogCiAgICAgcmV0dXJu
IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IDM1NWRkYzdhNzU1Li42OTQ3ZGQ5ZTU2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM2NCw2
ICszNjQsMTIgQEAgc3ViIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKKyAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKKyAg
ICAgICAgQWRkVG9JbmNsdWRlcygiSlNYUGF0aE5TUmVzb2x2ZXIuaCIsICRpbmNsdWRlc1JlZiwg
JGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0WFBhdGhO
U1Jlc29sdmVyLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzSW50ZXJmYWNlVHlwZSgkdHlw
ZSkpIHsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiSlMiIC4gJHR5cGUtPm5hbWUgLiAiLmgiLCAk
aW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CiAgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9N
Q29udmVydEludGVyZmFjZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwpAQCAtNDM2
LDEyICs0NDIsNiBAQCBzdWIgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUKIAogICAgICAgICByZXR1
cm47CiAgICAgfQotCi0gICAgaWYgKCR0eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7
Ci0gICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTWFBhdGhOU1Jlc29sdmVyLmgiLCAkaW5jbHVkZXNS
ZWYsICRjb25kaXRpb25hbCk7Ci0gICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVydFhQ
YXRoTlNSZXNvbHZlci5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQogfQogCiBzdWIgQWRkVG9JbXBsSW5jbHVkZXMKQEAgLTI2NTksMTcgKzI2
NTksOSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgICMgSlNWYWx1ZSB0byBpbXBsZW1lbnRh
dGlvbiB0eXBlCiAgICAgaWYgKFNob3VsZEdlbmVyYXRlVG9XcmFwcGVkKCRoYXNQYXJlbnQsICRp
bnRlcmZhY2UpKSB7Ci0gICAgICAgICMgRklYTUU6IEFkZCBleHRlbmRlZCBhdHRyaWJ1dGUgZm9y
IHRoaXMuCi0gICAgICAgIG15IEB0b1dyYXBwZWRBcmd1bWVudHMgPSAoKTsKLSAgICAgICAgcHVz
aChAdG9XcmFwcGVkQXJndW1lbnRzLCAiSlNDOjpWTSYiKTsKLSAgICAgICAgcHVzaChAdG9XcmFw
cGVkQXJndW1lbnRzLCAiSlNDOjpKU0dsb2JhbE9iamVjdCYiKSBpZiAkaW50ZXJmYWNlLT50eXBl
LT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwotICAgICAgICBwdXNoKEB0b1dyYXBwZWRBcmd1
bWVudHMsICJKU0M6OkpTVmFsdWUiKTsKLQotICAgICAgICBteSAkdG9XcmFwcGVkVHlwZSA9ICRp
bnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciIgPyAiUmVmUHRyPCR7aW1w
bFR5cGV9PiIgOiAiJHtpbXBsVHlwZX0qIjsKLQogICAgICAgICBteSAkZXhwb3J0ID0gIiI7CiAg
ICAgICAgICRleHBvcnQgPSAiV0VCQ09SRV9FWFBPUlQgIiBpZiAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntFeHBvcnRUb1dyYXBwZWRGdW5jdGlvbn07Ci0gICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgc3RhdGljICR7ZXhwb3J0fSR7dG9XcmFwcGVkVHlwZX0gdG9XcmFw
cGVkKCIgLiBqb2luKCIsICIsIEB0b1dyYXBwZWRBcmd1bWVudHMpIC4gIik7XG4iKTsKKyAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJHtleHBvcnR9JHtpbXBsVHlwZX0q
IHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTtcbiIpOwogICAgIH0KIAogICAgICRo
ZWFkZXJUcmFpbGluZ0luY2x1ZGVzeyIke2NsYXNzTmFtZX1DdXN0b20uaCJ9ID0gMSBpZiAkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntKU0N1c3RvbUhlYWRlcn07CkBAIC0zMDc0LDEy
ICszMDY2LDExIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIH0KIAogICAgIGlmIChOZWVkc0lt
cGxlbWVudGF0aW9uQ2xhc3MoJGludGVyZmFjZSkpIHsKLSAgICAgICAgbXkgJHRvV3JhcHBlZFR5
cGUgPSAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiID8gIlJlZlB0
cjwke2ltcGxUeXBlfT4iIDogIiR7aW1wbFR5cGV9KiI7CiAgICAgICAgICRoZWFkZXJJbmNsdWRl
c3siSlNET01XcmFwcGVyLmgifSA9IDE7CiAKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
InRlbXBsYXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czwke2ltcGxUeXBl
fT4ge1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdXNpbmcgV3JhcHBl
ckNsYXNzID0gJHtjbGFzc05hbWV9O1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdXNpbmcgVG9XcmFwcGVkUmV0dXJuVHlwZSA9ICR7dG9XcmFwcGVkVHlwZX07XG4iKTsK
KyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB1c2luZyBUb1dyYXBwZWRSZXR1cm5U
eXBlID0gJHtpbXBsVHlwZX0qO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9
O1xuIik7CiAgICAgfQogCkBAIC02MjMzLDcgKzYyMjQsNyBAQCBzdWIgR2VuZXJhdGVDYWxsYmFj
a0hlYWRlckNvbnRlbnQKICAgICAgICAgICAgIG15ICRuYXRpdmVSZXR1cm5UeXBlID0gIkNhbGxi
YWNrUmVzdWx0PHR5cGVuYW1lICIgLiBHZXRJRExUeXBlKCRpbnRlcmZhY2VPckNhbGxiYWNrLCAk
b3BlcmF0aW9uLT50eXBlKSAuICI6OkltcGxlbWVudGF0aW9uVHlwZT4iOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICAjIEZJWE1FOiBDaGFuZ2UgdGhlIGRlZmF1bHQgbmFtZSAodXNlZCBmb3Ig
Y2FsbGJhY2sgZnVuY3Rpb25zKSB0byBzb21ldGhpbmcgb3RoZXIgdGhhbiBoYW5kbGVFdmVudC4g
SXQgbWFrZXMgbGl0dGxlIHNlbnNlLgotICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRv
cGVyYXRpb24tPm5hbWUgfHwgImhhbmRsZUV2ZW50IjsKKyAgICAgICAgICAgIG15ICRmdW5jdGlv
bk5hbWUgPSAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEFzfSB8
fCAkb3BlcmF0aW9uLT5uYW1lIHx8ICJoYW5kbGVFdmVudCI7CiAKICAgICAgICAgICAgIHB1c2go
QCRjb250ZW50UmVmLCAiICAgICR7bmF0aXZlUmV0dXJuVHlwZX0gJHtmdW5jdGlvbk5hbWV9KCIg
LiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIikgb3ZlcnJpZGU7XG4iKTsKICAgICAgICAgfQpA
QCAtNjM0NCw2ICs2MzM1LDcgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbkNv
bnRlbnQKICAgICAgICAgICAgIAogICAgICAgICAgICAgIyBGSVhNRTogQ2hhbmdlIHRoZSBkZWZh
dWx0IG5hbWUgKHVzZWQgZm9yIGNhbGxiYWNrIGZ1bmN0aW9ucykgdG8gc29tZXRoaW5nIG90aGVy
IHRoYW4gaGFuZGxlRXZlbnQuIEl0IG1ha2VzIGxpdHRsZSBzZW5zZS4KICAgICAgICAgICAgIG15
ICRmdW5jdGlvbk5hbWUgPSAkb3BlcmF0aW9uLT5uYW1lIHx8ICJoYW5kbGVFdmVudCI7CisgICAg
ICAgICAgICBteSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgPSAkb3BlcmF0aW9uLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEFzfSB8fCAkZnVuY3Rpb25OYW1lOwogCiAgICAg
ICAgICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAKQEAgLTYzNjksNyArNjM2MSw3IEBAIHN1YiBH
ZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb25Db250ZW50CiAgICAgICAgICAgICAgICAgcHVz
aChAYXJndW1lbnRzLCAidHlwZW5hbWUgJHtJRExUeXBlfTo6UGFyYW1ldGVyVHlwZSAiIC4gJGFy
Z3VtZW50LT5uYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAg
cHVzaChAJGNvbnRlbnRSZWYsICIke25hdGl2ZVJldHVyblR5cGV9ICR7Y2xhc3NOYW1lfTo6JHtm
dW5jdGlvbk5hbWV9KCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIilcbiIpOworICAgICAg
ICAgICAgcHVzaChAJGNvbnRlbnRSZWYsICIke25hdGl2ZVJldHVyblR5cGV9ICR7Y2xhc3NOYW1l
fTo6JHtmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50
cykgLiAiKVxuIik7CiAgICAgICAgICAgICBwdXNoKEAkY29udGVudFJlZiwgIntcbiIpOwogCiAg
ICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIG5lZWRlZCBmb3IgTm9kZUZpbHRlciwgd2hpY2gg
d29ya3MgZXZlbiBmb3IgZGlzY29ubmVjdGVkIGlmcmFtZXMuIFdlIHNob3VsZCBpbnZlc3RpZ2F0
ZQpAQCAtNjc4Nyw3ICs2Nzc5LDYgQEAgc3ViIEdldEJhc2VJRExUeXBlCiAgICAgICAgICJKU09O
IiA9PiAiSURMSlNPTiIsCiAgICAgICAgICJTY2hlZHVsZWRBY3Rpb24iID0+ICJJRExTY2hlZHVs
ZWRBY3Rpb24iLAogICAgICAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9PiAiSURMU2VyaWFs
aXplZFNjcmlwdFZhbHVlPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4iLAotICAgICAgICAiWFBhdGhO
U1Jlc29sdmVyIiA9PiAiSURMWFBhdGhOU1Jlc29sdmVyPFhQYXRoTlNSZXNvbHZlcj4iLAogICAg
ICk7CiAKICAgICByZXR1cm4gJElETFR5cGVzeyR0eXBlLT5uYW1lfSBpZiBleGlzdHMgJElETFR5
cGVzeyR0eXBlLT5uYW1lfTsKQEAgLTY5NDcsNyArNjkzOCw2IEBAIHN1YiBOYXRpdmVUb0pTVmFs
dWVET01Db252ZXJ0TmVlZHNTdGF0ZQogICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJE
YXRlIjsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiSlNPTiI7CiAgICAgcmV0dXJu
IDEgaWYgJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7Ci0gICAgcmV0dXJu
IDEgaWYgJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciI7CiAgICAgCiAgICAgcmV0dXJu
IDA7CiB9CkBAIC02OTc3LDcgKzY5NjcsNiBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVy
dE5lZWRzR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzQnVm
ZmVyU291cmNlVHlwZSgkdHlwZSk7CiAgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklz
UHJvbWlzZVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJTZXJp
YWxpemVkU2NyaXB0VmFsdWUiOwotICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJYUGF0
aE5TUmVzb2x2ZXIiOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDE2NDMzZDk5
ZjEyLi5kNzc1NmZlYzRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTYwMTEsNyArNjAxMSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhYUGF0aE5TUmVzCiAgICAgaWYgKFVOTElLRUxZKGNhbGxGcmFtZS0+YXJndW1lbnRD
b3VudCgpIDwgMSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCkpOwogICAgIEVuc3VyZVN0aWxsQWxpdmVTY29wZSBhcmd1bWVudDAgPSBjYWxs
RnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGF1dG8gcmVzb2x2ZXIgPSBjb252ZXJ0
PElETFhQYXRoTlNSZXNvbHZlcjxYUGF0aE5TUmVzb2x2ZXI+PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgYXJndW1lbnQwLnZhbHVlKCksIFtdKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUpIHsgdGhyb3dBcmd1bWVudFR5cGVFcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgMCwgInJlc29sdmVyIiwgIlRlc3RPYmplY3Qi
LCAibWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRlciIsICJYUGF0aE5TUmVzb2x2ZXIi
KTsgfSk7CisgICAgYXV0byByZXNvbHZlciA9IGNvbnZlcnQ8SURMSW50ZXJmYWNlPFhQYXRoTlNS
ZXNvbHZlcj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSwgW10oSlND
OjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBz
Y29wZSkgeyB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3Bl
LCAwLCAicmVzb2x2ZXIiLCAiVGVzdE9iamVjdCIsICJtZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVy
UGFyYW1ldGVyIiwgIlhQYXRoTlNSZXNvbHZlciIpOyB9KTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHRocm93U2NvcGUucmVsZWFz
ZSgpOwogICAgIGltcGwubWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRlcigqcmVzb2x2
ZXIpOwpAQCAtNzMyOCw3ICs3MzI4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFAKICAgICBV
TlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3Jh
cHBlZCgpOwogICAgIEVuc3VyZVN0aWxsQWxpdmVTY29wZSBhcmd1bWVudDAgPSBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApOwotICAgIGF1dG8gcmVzb2x2ZXIgPSBjb252ZXJ0PElETE51bGxhYmxlPElE
TFhQYXRoTlNSZXNvbHZlcjxYUGF0aE5TUmVzb2x2ZXI+Pj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IGFyZ3VtZW50MC52YWx1ZSgpLCBbXShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXJndW1lbnRUeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIDAsICJyZXNvbHZlciIsICJUZXN0T2JqZWN0Iiwg
Im1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlciIsICJYUGF0aE5TUmVzb2x2ZXIiKTsg
fSk7CisgICAgYXV0byByZXNvbHZlciA9IGNvbnZlcnQ8SURMTnVsbGFibGU8SURMSW50ZXJmYWNl
PFhQYXRoTlNSZXNvbHZlcj4+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVl
KCksIFtdKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6VGhy
b3dTY29wZSYgc2NvcGUpIHsgdGhyb3dBcmd1bWVudFR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgMCwgInJlc29sdmVyIiwgIlRlc3RPYmplY3QiLCAibWV0aG9kV2l0aE9wdGlv
bmFsWFBhdGhOU1Jlc29sdmVyIiwgIlhQYXRoTlNSZXNvbHZlciIpOyB9KTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHRocm93U2Nv
cGUucmVsZWFzZSgpOwogICAgIGltcGwubWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVy
KFdURk1vdmUocmVzb2x2ZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9DdXN0
b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhlMWU4
MTMyMTgzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBbGV4ZXkgU2h2YXlrYSA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIEN1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3Vw
TmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQoreworICAgIGF1dG8gcmVzdWx0ID0g
bG9va3VwTmFtZXNwYWNlVVJJRm9yQmluZGluZ3MocHJlZml4KTsKKyAgICBpZiAocmVzdWx0LnR5
cGUoKSAhPSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MpCisgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKworICAgIHJldHVybiByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9DdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzM2YmJmMWUz
MGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBbGV4
ZXkgU2h2YXlrYSA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiQ2FsbGJhY2tS
ZXN1bHQuaCIKKyNpbmNsdWRlICJYUGF0aE5TUmVzb2x2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXN0b21YUGF0
aE5TUmVzb2x2ZXIgOiBwdWJsaWMgWFBhdGhOU1Jlc29sdmVyLCBwdWJsaWMgQWN0aXZlRE9NQ2Fs
bGJhY2sgeworcHVibGljOgorICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01D
YWxsYmFjazsKKworICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8U3RyaW5nPiBsb29rdXBOYW1l
c3BhY2VVUklGb3JCaW5kaW5ncyhjb25zdCBTdHJpbmcmIHByZWZpeCkgPSAwOworCisgICAgU3Ry
aW5nIGxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCk7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5TUmVz
b2x2ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNDJhZDdi
NjVlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9DdXN0b21YUGF0aE5T
UmVzb2x2ZXIuaWRsCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QWxleGV5IFNodmF5a2EgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gTm90
IHVzaW5nIFtJc1dlYWtDYWxsYmFja10gaGVyZSBhcyBYUGF0aE5TUmVzb2x2ZXIgd3JhcHBlcnMg
YWx3YXlzIHRlbXBvcmFyeSAobm8gcmVmZXJlbmNlIGlzIGtlcHQpCitjYWxsYmFjayBpbnRlcmZh
Y2UgQ3VzdG9tWFBhdGhOU1Jlc29sdmVyIHsKKyAgICBbSW1wbGVtZW50ZWRBcz1sb29rdXBOYW1l
c3BhY2VVUklGb3JCaW5kaW5ncywgU2tpcENhbGxiYWNrSW52b2tlQ2hlY2tdIERPTVN0cmluZz8g
bG9va3VwTmFtZXNwYWNlVVJJKERPTVN0cmluZz8gcHJlZml4KTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aE5TUmVzb2x2ZXIuaWRsCmluZGV4IDM2Yjc4MWIwNjZlLi45OGM2YjBkZGJiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwKQEAgLTE5LDEwICsxOSw4IEBACiAg
Ki8KIAogWwotICAgIEpTQ3VzdG9tVG9OYXRpdmVPYmplY3QsCiAgICAgTm9JbnRlcmZhY2VPYmpl
Y3QsCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiBdIGludGVyZmFjZSBYUGF0aE5TUmVzb2x2
ZXIgewotICAgIC8vIEZJWE1FOiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRl
ciB2YWx1ZSBpcyB3cm9uZy4KLSAgICBET01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShvcHRp
b25hbCBET01TdHJpbmcgcHJlZml4ID0gInVuZGVmaW5lZCIpOworICAgIERPTVN0cmluZz8gbG9v
a3VwTmFtZXNwYWNlVVJJKERPTVN0cmluZz8gcHJlZml4KTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>