<?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>55115</bug_id>
          
          <creation_ts>2011-02-23 23:07:41 -0800</creation_ts>
          <short_desc>Add support for DataTransferItems</short_desc>
          <delta_ts>2011-03-07 23:30:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Daniel Cheng">dcheng</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>alex</cc>
    
    <cc>buildbot</cc>
    
    <cc>dimich</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>356693</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-02-23 23:07:41 -0800</bug_when>
    <thetext>Per http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-datatransferitems-interface, DataTransferItems and DataTransferItem are new interfaces intended to support async data retrieval for drops/pastes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356725</commentid>
    <comment_count>1</comment_count>
      <attachid>83615</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-02-24 00:29:32 -0800</bug_when>
    <thetext>Created attachment 83615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356731</commentid>
    <comment_count>2</comment_count>
      <attachid>83615</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-02-24 00:42:32 -0800</bug_when>
    <thetext>Comment on attachment 83615
Patch

Forgot to include a change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356755</commentid>
    <comment_count>3</comment_count>
      <attachid>83619</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-02-24 01:27:28 -0800</bug_when>
    <thetext>Created attachment 83619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356770</commentid>
    <comment_count>4</comment_count>
      <attachid>83624</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-02-24 01:58:52 -0800</bug_when>
    <thetext>Created attachment 83624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356782</commentid>
    <comment_count>5</comment_count>
      <attachid>83624</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-24 02:23:56 -0800</bug_when>
    <thetext>Comment on attachment 83624
Patch

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

Seems a bit silly to add non-compiled code.  Especially since you didn&apos;t add any .cpp files even.

&gt; Source/WebCore/dom/DataTransferItem.h:41
&gt; +class DataTransferItem : public RefCounted&lt;DataTransferItem&gt; {

Shouldn&apos;t this header be conditional?

&gt; Source/WebCore/dom/DataTransferItems.h:43
&gt; +class DataTransferItems : public RefCounted&lt;DataTransferItems&gt; {

Wrapped in #ifs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356809</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-24 02:51:28 -0800</bug_when>
    <thetext>Attachment 83624 did not build on win:
Build output: http://queues.webkit.org/results/7984415</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356855</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-24 03:52:01 -0800</bug_when>
    <thetext>Attachment 83619 did not build on win:
Build output: http://queues.webkit.org/results/7983471</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359359</commentid>
    <comment_count>8</comment_count>
      <attachid>84122</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-02-28 14:32:57 -0800</bug_when>
    <thetext>Created attachment 84122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359575</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-02-28 18:09:47 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 83624 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83624&amp;action=review
&gt; 
&gt; Seems a bit silly to add non-compiled code.  Especially since you didn&apos;t add any .cpp files even.

I wasn&apos;t sure how to split up the change. For the most part, I think each implementation would be highly platform-specific.

&gt; 
&gt; &gt; Source/WebCore/dom/DataTransferItem.h:41
&gt; &gt; +class DataTransferItem : public RefCounted&lt;DataTransferItem&gt; {
&gt; 
&gt; Shouldn&apos;t this header be conditional?
&gt; 

Done.

&gt; &gt; Source/WebCore/dom/DataTransferItems.h:43
&gt; &gt; +class DataTransferItems : public RefCounted&lt;DataTransferItems&gt; {
&gt; 
&gt; Wrapped in #ifs?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359682</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-02-28 23:35:03 -0800</bug_when>
    <thetext>Does anyone know why the patch is failing to apply on the Mac bots? I suspect it has something to do with line-endings since it&apos;s just the .vcproj, but I&apos;m not sure what.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363664</commentid>
    <comment_count>11</comment_count>
      <attachid>84992</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-07 16:01:42 -0800</bug_when>
    <thetext>Created attachment 84992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363677</commentid>
    <comment_count>12</comment_count>
      <attachid>84992</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-07 16:38:19 -0800</bug_when>
    <thetext>Comment on attachment 84992
Patch

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

Initial pass of comments.

&gt; Source/WebCore/dom/DataTransferItem.h:36
&gt; +#include &quot;PlatformString.h&quot;

fwd decl?

&gt; Source/WebCore/dom/DataTransferItem.h:37
&gt; +#include &quot;StringCallback.h&quot;

fwd decl?

&gt; Source/WebCore/dom/DataTransferItems.h:36
&gt; +#include &quot;DataTransferItem.h&quot;

Add fed decl instead?

&gt; Source/WebCore/dom/DataTransferItems.h:37
&gt; +#include &quot;ExceptionCode.h&quot;

Seems typical to put in a typedef instead.

&gt; Source/WebCore/dom/DataTransferItems.h:39
&gt; +#include &quot;PlatformString.h&quot;

Use fwd decl (fwiw, I think it is wtf/text/WTFString.h now.)

&gt; Source/WebCore/dom/DataTransferItems.h:41
&gt; +#include &lt;wtf/RefCounted.h&gt;

Why is this needed?

&gt; Source/WebCore/dom/StringCallback.h:36
&gt; +

Should include WTFString.h

&gt; Source/WebCore/dom/StringCallback.h:45
&gt; +    void scheduleCallback(ScriptExecutionContext* context, const String&amp; data)

Consider moving to cpp file and changing the ScriptExecutionContext include to a fwd decl.

&gt; Source/WebCore/dom/StringCallback.h:53
&gt; +        DispatchCallbackTask(PassRefPtr&lt;StringCallback&gt; callback, const String&amp; data)

Hide the constructor and expose a static create method which returns a PassOwnPtr.

&gt; Source/WebCore/dom/StringCallback.h:54
&gt; +            : m_callback(callback), m_data(data)

separate lines.

&gt; Source/WebCore/dom/StringCallback.h:60
&gt; +            m_callback-&gt;handleEvent(m_data);

This isn&apos;t inlined (due to being virtual) so put it in a cpp file.

&gt; Source/WebCore/platform/chromium/DataTransferItemChromium.cpp:45
&gt; +    : m_owner(owner), m_context(context), m_kind(kindString), m_type(type), m_data(data)

separate lines.

&gt; Source/WebCore/platform/chromium/DataTransferItemChromium.cpp:52
&gt; +        return &quot;&quot;;

Why &quot;&quot; as opposed to String() ?

&gt; Source/WebCore/platform/chromium/DataTransferItemChromium.cpp:59
&gt; +        return &quot;&quot;;

Ditto.

&gt; Source/WebCore/platform/chromium/DataTransferItemChromium.h:36
&gt; +#include &quot;Clipboard.h&quot;

a fwd decl should suffice if you declare a destructor and put it in the cpp file.

&gt; Source/WebCore/platform/chromium/DataTransferItemChromium.h:40
&gt; +

include wtfstring.h

&gt; Source/WebCore/platform/chromium/DataTransferItemChromium.h:56
&gt; +    ScriptExecutionContext* m_context;

I would put in a fwd decl for ScriptExecutionContext.

&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:43
&gt; +DataTransferItemsChromium::DataTransferItemsChromium(PassRefPtr&lt;Clipboard&gt; owner, ScriptExecutionContext* context) : m_owner(owner), m_context(context)

separate lines for the initializers.

&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:68
&gt; +    if (index &gt;= length())

Why doesn&apos;t this cause an exception code to be set?

&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:84
&gt; +    if (m_owner-&gt;policy() != ClipboardWritable)

Why doesn&apos;t this cause an exception code to be set?

&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:88
&gt; +      if (m_items[i]-&gt;type() == type &amp;&amp; m_items[i]-&gt;kind() == DataTransferItem::kindString) {

indentation should be 4 spaces.

&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.h:36
&gt; +#include &quot;Clipboard.h&quot;

fwd decl.

&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.h:55
&gt; +    virtual void add(const String&amp; data, const String&amp; type, ExceptionCode&amp;);

typedef for ExceptionCode?

fwd decl for String?

&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.h:58
&gt; +    DataTransferItemsChromium(PassRefPtr&lt;Clipboard&gt;, ScriptExecutionContext*);

fwd decl for ScriptExecutionContext?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363721</commentid>
    <comment_count>13</comment_count>
      <attachid>85003</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-07 18:00:20 -0800</bug_when>
    <thetext>Created attachment 85003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363722</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-07 18:00:30 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 84992 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84992&amp;action=review
&gt; 
&gt; Initial pass of comments.
&gt; 
&gt; &gt; Source/WebCore/dom/DataTransferItem.h:36
&gt; &gt; +#include &quot;PlatformString.h&quot;
&gt; 
&gt; fwd decl?
&gt; 

Done.

&gt; &gt; Source/WebCore/dom/DataTransferItem.h:37
&gt; &gt; +#include &quot;StringCallback.h&quot;
&gt; 
&gt; fwd decl?
&gt; 

Done.

&gt; &gt; Source/WebCore/dom/DataTransferItems.h:36
&gt; &gt; +#include &quot;DataTransferItem.h&quot;
&gt; 
&gt; Add fed decl instead?
&gt; 

Done.

&gt; &gt; Source/WebCore/dom/DataTransferItems.h:37
&gt; &gt; +#include &quot;ExceptionCode.h&quot;
&gt; 
&gt; Seems typical to put in a typedef instead.
&gt; 

Done.

&gt; &gt; Source/WebCore/dom/DataTransferItems.h:39
&gt; &gt; +#include &quot;PlatformString.h&quot;
&gt; 
&gt; Use fwd decl (fwiw, I think it is wtf/text/WTFString.h now.)
&gt; 

Done.

&gt; &gt; Source/WebCore/dom/DataTransferItems.h:41
&gt; &gt; +#include &lt;wtf/RefCounted.h&gt;
&gt; 
&gt; Why is this needed?
&gt; 

Base template for DataTransferItems.

&gt; &gt; Source/WebCore/dom/StringCallback.h:36
&gt; &gt; +
&gt; 
&gt; Should include WTFString.h
&gt; 
&gt; &gt; Source/WebCore/dom/StringCallback.h:45
&gt; &gt; +    void scheduleCallback(ScriptExecutionContext* context, const String&amp; data)
&gt; 
&gt; Consider moving to cpp file and changing the ScriptExecutionContext include to a fwd decl.

Done.

&gt; 
&gt; &gt; Source/WebCore/dom/StringCallback.h:53
&gt; &gt; +        DispatchCallbackTask(PassRefPtr&lt;StringCallback&gt; callback, const String&amp; data)
&gt; 
&gt; Hide the constructor and expose a static create method which returns a PassOwnPtr.
&gt; 

I stole this from DOMFileSystem.h. Are they doing it wrong?

&gt; &gt; Source/WebCore/dom/StringCallback.h:54
&gt; &gt; +            : m_callback(callback), m_data(data)
&gt; 
&gt; separate lines.

Done.

&gt; 
&gt; &gt; Source/WebCore/dom/StringCallback.h:60
&gt; &gt; +            m_callback-&gt;handleEvent(m_data);
&gt; 
&gt; This isn&apos;t inlined (due to being virtual) so put it in a cpp file.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemChromium.cpp:45
&gt; &gt; +    : m_owner(owner), m_context(context), m_kind(kindString), m_type(type), m_data(data)
&gt; 
&gt; separate lines.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemChromium.cpp:52
&gt; &gt; +        return &quot;&quot;;
&gt; 
&gt; Why &quot;&quot; as opposed to String() ?
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemChromium.cpp:59
&gt; &gt; +        return &quot;&quot;;
&gt; 
&gt; Ditto.
&gt; 

I&apos;ve seen it both ways in the code.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemChromium.h:36
&gt; &gt; +#include &quot;Clipboard.h&quot;
&gt; 
&gt; a fwd decl should suffice if you declare a destructor and put it in the cpp file.
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemChromium.h:40
&gt; &gt; +
&gt; 
&gt; include wtfstring.h
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemChromium.h:56
&gt; &gt; +    ScriptExecutionContext* m_context;
&gt; 
&gt; I would put in a fwd decl for ScriptExecutionContext.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:43
&gt; &gt; +DataTransferItemsChromium::DataTransferItemsChromium(PassRefPtr&lt;Clipboard&gt; owner, ScriptExecutionContext* context) : m_owner(owner), m_context(context)
&gt; 
&gt; separate lines for the initializers.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:68
&gt; &gt; +    if (index &gt;= length())
&gt; 
&gt; Why doesn&apos;t this cause an exception code to be set?
&gt; 

The spec doesn&apos;t say to.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:84
&gt; &gt; +    if (m_owner-&gt;policy() != ClipboardWritable)
&gt; 
&gt; Why doesn&apos;t this cause an exception code to be set?
&gt; 

Strict interpretation of the spec.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:88
&gt; &gt; +      if (m_items[i]-&gt;type() == type &amp;&amp; m_items[i]-&gt;kind() == DataTransferItem::kindString) {
&gt; 
&gt; indentation should be 4 spaces.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.h:36
&gt; &gt; +#include &quot;Clipboard.h&quot;
&gt; 
&gt; fwd decl.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.h:55
&gt; &gt; +    virtual void add(const String&amp; data, const String&amp; type, ExceptionCode&amp;);
&gt; 
&gt; typedef for ExceptionCode?
&gt; 
&gt; fwd decl for String?
&gt; 

Done for ExceptionCode, though see my previous comment about WTFString.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.h:58
&gt; &gt; +    DataTransferItemsChromium(PassRefPtr&lt;Clipboard&gt;, ScriptExecutionContext*);
&gt; 
&gt; fwd decl for ScriptExecutionContext?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363723</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-07 18:01:19 -0800</bug_when>
    <thetext>&gt; Done for ExceptionCode, though see my previous comment about WTFString.
 
Please ignore this comment. I was confused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363724</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-07 18:02:19 -0800</bug_when>
    <thetext>Attachment 85003 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/edit...&quot; exit_code: 1

Source/WebCore/dom/Clipboard.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363725</commentid>
    <comment_count>17</comment_count>
      <attachid>84992</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-07 18:03:38 -0800</bug_when>
    <thetext>Comment on attachment 84992
Patch

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

A few more comments.

&gt; LayoutTests/editing/pasteboard/data-transfer-items.html:4
&gt; +&lt;div&gt;This test checks that reading/writing functionality of DataTransferItems. This test requires DRT.&lt;/div&gt;

I don&apos;t understand this sentence &quot;This test checks that reading/writing functionality of DataTransferItems&quot;

&gt; LayoutTests/editing/pasteboard/data-transfer-items.html:25
&gt; +      items.add(&apos;Moo&apos;, &apos;text/plain&apos;);

inconsistent indentation. (2 spaces vs 4 in other places in this file).

&gt; LayoutTests/editing/pasteboard/data-transfer-items.html:86
&gt; +    if (savedDataTransferItem.type!= &apos;&apos;) {

add space before !=

&gt; LayoutTests/editing/pasteboard/data-transfer-items.html:88
&gt; +        console.log(&apos;DataTransferItem.typeaccessible outside event handler!&apos;);

missing space &quot;typeaccessible&quot;

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:131
&gt; +    if (!$codeGenerator-&gt;IsPrimitiveType($type) and !$codeGenerator-&gt;IsStringType($type) and !$codeGenerator-&gt;AvoidInclusionOfType($type) and $type ne &quot;Date&quot;) {

Would be nice to explain this change in the ChangeLog.

Do we need to regenerate the output files?

Also do we need an equivalent change in CodeGeneratorJS.pm?

&gt; Source/WebCore/dom/Clipboard.h:29
&gt; +#include &quot;DataTransferItems.h&quot;

Can this be replaced with a forward declaration?

&gt; Source/WebCore/dom/Clipboard.idl:46
&gt; +        readonly attribute [Conditional=DATA_TRANSFER_ITEMS] DataTransferItems items;

This should have a runtime flag to turn it on, so that it isn&apos;t exposed until it is cleared for shipping in chromium.

&gt; Source/WebCore/platform/chromium/DataTransferItemChromium.cpp:67
&gt; +        || m_kind != kindString)

Why so many lines?

&gt; Source/WebCore/platform/chromium/DataTransferItemChromium.h:43
&gt; +class DataTransferItemChromium : public DataTransferItem {

Why is this class chromium specific? It looks very generic.

&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:63
&gt; +    if (m_owner-&gt;policy() != ClipboardWritable) {

Why doesn&apos;t this also check for ClipboardNumb?

&gt;&gt;&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:84
&gt;&gt;&gt; +    if (m_owner-&gt;policy() != ClipboardWritable)
&gt;&gt; 
&gt;&gt; Why doesn&apos;t this cause an exception code to be set?
&gt; 
&gt; Strict interpretation of the spec.

Why doesn&apos;t this also check for ClipboardNumb?

&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:87
&gt; +    for (size_t i = 0; i &lt; m_items.size(); ++i) {

Would be nice to add a comment right before the for loop.

Something like:
// Only one string item with a given type is allowed in the items collection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363727</commentid>
    <comment_count>18</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-07 18:06:59 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 84992 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84992&amp;action=review
&gt; &gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/StringCallback.h:53
&gt; &gt; &gt; +        DispatchCallbackTask(PassRefPtr&lt;StringCallback&gt; callback, const String&amp; data)
&gt; &gt; 
&gt; &gt; Hide the constructor and expose a static create method which returns a PassOwnPtr.
&gt; &gt; 
&gt; 
&gt; I stole this from DOMFileSystem.h. Are they doing it wrong?

Yes. (Well it works but it isn&apos;t the desired WebKit style.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363729</commentid>
    <comment_count>19</comment_count>
      <attachid>85003</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-07 18:08:14 -0800</bug_when>
    <thetext>Comment on attachment 85003
Patch

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

See comments above and one last comment. Once these are all addressed this should be good to go. Thanks!

&gt; Source/WebCore/dom/DataTransferItems.h:45
&gt; +class DataTransferItems : public RefCounted&lt;DataTransferItems&gt; {

Do we need a virtual destructor here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363760</commentid>
    <comment_count>20</comment_count>
      <attachid>85009</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-07 19:02:57 -0800</bug_when>
    <thetext>Created attachment 85009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363761</commentid>
    <comment_count>21</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-07 19:03:11 -0800</bug_when>
    <thetext>
(In reply to comment #17)
&gt; (From update of attachment 84992 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84992&amp;action=review
&gt; 
&gt; A few more comments.
&gt; 
&gt; &gt; LayoutTests/editing/pasteboard/data-transfer-items.html:4
&gt; &gt; +&lt;div&gt;This test checks that reading/writing functionality of DataTransferItems. This test requires DRT.&lt;/div&gt;
&gt; 
&gt; I don&apos;t understand this sentence &quot;This test checks that reading/writing functionality of DataTransferItems&quot;
&gt; 

Um. Is that any better? =P

&gt; &gt; LayoutTests/editing/pasteboard/data-transfer-items.html:25
&gt; &gt; +      items.add(&apos;Moo&apos;, &apos;text/plain&apos;);
&gt; 
&gt; inconsistent indentation. (2 spaces vs 4 in other places in this file).
&gt; 

Done.

&gt; &gt; LayoutTests/editing/pasteboard/data-transfer-items.html:86
&gt; &gt; +    if (savedDataTransferItem.type!= &apos;&apos;) {
&gt; 
&gt; add space before !=
&gt; 

Done.

&gt; &gt; LayoutTests/editing/pasteboard/data-transfer-items.html:88
&gt; &gt; +        console.log(&apos;DataTransferItem.typeaccessible outside event handler!&apos;);
&gt; 
&gt; missing space &quot;typeaccessible&quot;
&gt; 

Done.

&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:131
&gt; &gt; +    if (!$codeGenerator-&gt;IsPrimitiveType($type) and !$codeGenerator-&gt;IsStringType($type) and !$codeGenerator-&gt;AvoidInclusionOfType($type) and $type ne &quot;Date&quot;) {
&gt; 
&gt; Would be nice to explain this change in the ChangeLog.

Done.

&gt; 
&gt; Do we need to regenerate the output files?
&gt; 

This happens magically.

&gt; Also do we need an equivalent change in CodeGeneratorJS.pm?
&gt; 

I have no idea. It seemed to work last time I tried it.

&gt; &gt; Source/WebCore/dom/Clipboard.h:29
&gt; &gt; +#include &quot;DataTransferItems.h&quot;
&gt; 
&gt; Can this be replaced with a forward declaration?
&gt; 

Already done.

&gt; &gt; Source/WebCore/dom/Clipboard.idl:46
&gt; &gt; +        readonly attribute [Conditional=DATA_TRANSFER_ITEMS] DataTransferItems items;
&gt; 
&gt; This should have a runtime flag to turn it on, so that it isn&apos;t exposed until it is cleared for shipping in chromium.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemChromium.cpp:67
&gt; &gt; +        || m_kind != kindString)
&gt; 
&gt; Why so many lines?
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemChromium.h:43
&gt; &gt; +class DataTransferItemChromium : public DataTransferItem {
&gt; 
&gt; Why is this class chromium specific? It looks very generic.
&gt; 

It&apos;s getting some pasteboard specific logic in a follow up patch.

&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:63
&gt; &gt; +    if (m_owner-&gt;policy() != ClipboardWritable) {
&gt; 
&gt; Why doesn&apos;t this also check for ClipboardNumb?
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:84
&gt; &gt;&gt;&gt; +    if (m_owner-&gt;policy() != ClipboardWritable)
&gt; &gt;&gt; 
&gt; &gt;&gt; Why doesn&apos;t this cause an exception code to be set?
&gt; &gt; 
&gt; &gt; Strict interpretation of the spec.
&gt; 
&gt; Why doesn&apos;t this also check for ClipboardNumb?

I don&apos;t follow. We only allow these operations if the data store should be writable.

&gt; 
&gt; &gt; Source/WebCore/platform/chromium/DataTransferItemsChromium.cpp:87
&gt; &gt; +    for (size_t i = 0; i &lt; m_items.size(); ++i) {
&gt; 
&gt; Would be nice to add a comment right before the for loop.
&gt; 
&gt; Something like:
&gt; // Only one string item with a given type is allowed in the items collection.

Done.

(In reply to comment #19)
&gt; (From update of attachment 85003 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85003&amp;action=review
&gt; 
&gt; See comments above and one last comment. Once these are all addressed this should be good to go. Thanks!
&gt; 
&gt; &gt; Source/WebCore/dom/DataTransferItems.h:45
&gt; &gt; +class DataTransferItems : public RefCounted&lt;DataTransferItems&gt; {
&gt; 
&gt; Do we need a virtual destructor here?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363762</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-07 19:05:27 -0800</bug_when>
    <thetext>Attachment 85009 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/edit...&quot; exit_code: 1

Source/WebCore/dom/Clipboard.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 42 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363763</commentid>
    <comment_count>23</comment_count>
      <attachid>85010</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-07 19:06:04 -0800</bug_when>
    <thetext>Created attachment 85010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363765</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-07 19:08:44 -0800</bug_when>
    <thetext>Attachment 85010 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/edit...&quot; exit_code: 1

Source/WebCore/dom/Clipboard.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 42 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363808</commentid>
    <comment_count>25</comment_count>
      <attachid>85010</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-07 21:23:38 -0800</bug_when>
    <thetext>Comment on attachment 85010
Patch

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

Please fix the items commented on and check in.

&gt; Source/WebCore/dom/DataTransferItem.h:44
&gt; +public:

Need virtual destructor.

&gt; Source/WebCore/dom/DataTransferItems.h:46
&gt; +public:

Add virtual destructor.

&gt; Source/WebCore/dom/StringCallback.cpp:43
&gt; +    static DispatchCallbackTask* create(PassRefPtr&lt;StringCallback&gt; callback, const String&amp; data)

return type should be PassOwnPtr&lt;&gt;

&gt; Source/WebCore/dom/StringCallback.cpp:45
&gt; +        return new DispatchCallbackTask(callback, data);

Should be &quot;return adoptPtr(new ...&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363812</commentid>
    <comment_count>26</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-07 21:48:56 -0800</bug_when>
    <thetext>Committed r80536: &lt;http://trac.webkit.org/changeset/80536&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363816</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-07 22:01:25 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80536 might have broken EFL Linux Release (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363851</commentid>
    <comment_count>28</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-03-07 23:30:56 -0800</bug_when>
    <thetext>The commit broke gtk compilation:

http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug/builds/20119/steps/compile-webkit/logs/stdio</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83615</attachid>
            <date>2011-02-24 00:29:32 -0800</date>
            <delta_ts>2011-02-24 01:27:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55115-20110224002931.patch</filename>
            <type>text/plain</type>
            <size>21834</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg1ODYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGY3
MWE1MWVlODJiZDQ2MzQ1MWYwMTNlOTlhNDMzNzNlNTY2MjUxNGMuLjEyZTJjN2U4MmZhMjI3NWU3
OWUyZDNjZGI4MTcxYmRjOTliMDA3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDExLTAyLTI0ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0
ZSBJRExzIGZvciBEYXRhVHJhbnNmZXJJdGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MTE1CisKKyAgICAgICAgRmlyc3Qgc3RlcCB0b3dhcmRz
IGltcGxlbWVudGluZyB0aGUgbmV3IERhdGFUcmFuc2Zlckl0ZW0vRGF0YVRyYW5zZmVySXRlbXMK
KyAgICAgICAgaW50ZXJmYWNlIGRlZmluZWQgaW4gSFRNTDUuIEluIHRoZSBsb25nIHRlcm0sIHRo
aXMgd2lsbCBzdXBwb3J0IGFzeW5jaHJvbm91cworICAgICAgICBkYXRhIHJldHJpZXZhbCBhbmQg
bm9uLXRleHQgZGF0YSB0eXBlcyBpbiBEYXRhVHJhbnNmZXIuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDogQWRkIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TIGFuZCBkaXNhYmxlIGl0IGZv
ciBhbGwgcG9ydHMuCisKIDIwMTEtMDItMTUgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaAppbmRleCAxOTNiNzZkZDgwYjkyY2NiZThjOGZkYjVmNmVjY2ZjNTA5
ZjM5ZjY1Li4xMjJjZDhjNzQyZGE2YmI3ZjQyNGU1NDVhZWU1OTEwYTNjMDUzZjA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC02NTEsNiArNjUxLDcgQEAKICNpZiBQTEFU
Rk9STShJT1MpCiAjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVTIDAKICNkZWZpbmUgRU5BQkxF
X0RSQUdfU1VQUE9SVCAwCisjZGVmaW5lIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TIDAKICNk
ZWZpbmUgRU5BQkxFX0ZUUERJUiAxCiAjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCiAjZGVm
aW5lIEVOQUJMRV9JQ09OREFUQUJBU0UgMApAQCAtODg1LDYgKzg4NiwxMCBAQAogI2RlZmluZSBF
TkFCTEVfRFJBR19TVVBQT1JUIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVMpCisjZGVmaW5lIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TIDAKKyNl
bmRpZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKQogI2RlZmluZSBF
TkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDAwMjc3NzZkN2ZiZjAxYmYwOGUwZDg0Y2MzYjc5ZTVmZGNmNGRlY2UuLmFiZjExZDY5YzVjYmE4
ZTZmYmM3NWVlYmNmZGVjMDNiMDNkY2QzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMzks
NiArMTM5LDggQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgZG9tL0NvbW1lbnQuaWRsCiAg
ICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsCiAgICAgZG9tL0N1c3RvbUV2ZW50LmlkbAorICAg
IGRvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbAorICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwK
ICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9u
RXZlbnQuaWRsCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFj
YTdmNzI2ODM0NzgxYmJjOWMwOTNiNTcwNmJkYTNmOWYyMGZhNi4uYzVmYWFkMjI4ODEzNDZiYjY3
NGFiZDg2NjQ2YThlNDQ3ZGU1Zjc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEx
LTAyLTI0ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBJRExzIGZvciBEYXRh
VHJhbnNmZXJJdGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU1MTE1CisKKyAgICAgICAgRmlyc3Qgc3RlcCB0b3dhcmRzIGltcGxlbWVudGluZyB0
aGUgbmV3IERhdGFUcmFuc2Zlckl0ZW0vRGF0YVRyYW5zZmVySXRlbXMKKyAgICAgICAgaW50ZXJm
YWNlIGRlZmluZWQgaW4gSFRNTDUuIEluIHRoZSBsb25nIHRlcm0sIHRoaXMgd2lsbCBzdXBwb3J0
IGFzeW5jaHJvbm91cworICAgICAgICBkYXRhIHJldHJpZXZhbCBhbmQgbm9uLXRleHQgZGF0YSB0
eXBlcyBpbiBEYXRhVHJhbnNmZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIG5vIG5l
dyBmdW5jdGlvbmFsaXR5LiBUZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gdGhlIHN0dWJzIGFyZSBp
bXBsZW1lbnRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvZGVH
ZW5lcmF0b3JzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDoKKyAgICAgICAgKiBkb20vQ2xpcGJv
YXJkLmlkbDoKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9EYXRh
VHJhbnNmZXJJdGVtcy5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbXMu
aWRsOiBBZGRlZC4KKwogMjAxMS0wMi0xNSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Nv
ZGVHZW5lcmF0b3JzLnByaQppbmRleCA3MTkxYjkzZmQxYThhYTkxYzYyNTA2ZGM4ZjY2MGU2YWUz
MzFjM2UyLi4wMDc2ZTFkMGRmZTk4NzcxZGNjNjcyY2NlNDhkZGU0OGM4YjQ5YzBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvQ29kZUdlbmVyYXRvcnMucHJpCkBAIC0xMDcsNiArMTA3LDggQEAgSURMX0JJTkRJTkdTICs9
IFwKICAgICBkb20vQ29tbWVudC5pZGwgXAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmlkbCBc
CiAgICAgZG9tL0N1c3RvbUV2ZW50LmlkbCBcCisgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRs
IFwKKyAgICBkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsIFwKICAgICBkb20vRGV2aWNlTW90aW9u
RXZlbnQuaWRsIFwKICAgICBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgXAogICAgIGRv
bS9Eb2N1bWVudEZyYWdtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGFiMWEyNjAz
YmRlNTE3MTc1MDFjMGQ5YmM3ZGFjODFjYTA1ZmY4ZTUuLjZjZmI3MTdhNzA3MjAwM2I0YTAxZjk2
MzQxZDUyM2NkYTI4MjQ5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMTQxLDYgKzExNDEs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DU1NNYXBwZWRB
dHRyaWJ1dGVEZWNsYXJhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZlbnQu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZlbnQuaCBcCisJU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlckl0ZW1zLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCA3YTg2OGYwZjZhNjVmOGU2MGUwMWVkNzg1NjI3NGU5MmEwNzRmMTIxLi5jNjJlODNj
ZDNkMTgxYzg3MWRlZmE2YjAyNmZhYWZlZmJiOTczZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00
Miw2ICs0Miw4IEBACiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL0RPTVN0cmluZ0xpc3QuaWRsJywKICAgICAgICAgICAgICdkb20vRE9N
U3RyaW5nTWFwLmlkbCcsCisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsJywK
KyAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsJywKICAgICAgICAgICAgICdk
b20vRGV2aWNlTW90aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50
YXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5pZGwnLApAQCAtMTE5
NCw2ICsxMTk2LDggQEAKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFwLmNwcCcsCiAgICAg
ICAgICAgICAnZG9tL0RPTVN0cmluZ01hcC5oJywKICAgICAgICAgICAgICdkb20vRE9NVGltZVN0
YW1wLmgnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgnLAorICAgICAgICAg
ICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oJywKICAgICAgICAgICAgICdkb20vRGF0YXNldERP
TVN0cmluZ01hcC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgn
LAogICAgICAgICAgICAgJ2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCmluZGV4IDVjODIwNDBlNDdkNGNlNjQ0MmY2NDFkZmNhMWQ2ZGE1NmNiNjE3YjMuLmRl
NGRlNDhmZGE1ZGZkYTEwMjgyZTZlZDZhZDM1MGRmYTQwM2I0MTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBA
IC0xNTQyLDYgKzE1NDIsOCBAQCBIRUFERVJTICs9IFwKICAgICBkb20vQ1NTTWFwcGVkQXR0cmli
dXRlRGVjbGFyYXRpb24uaCBcCiAgICAgZG9tL0N1c3RvbUV2ZW50LmggXAogICAgIGRvbS9kZWZh
dWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmggXAorICAgIGRvbS9EYXRhVHJhbnNmZXJJ
dGVtLmggXAorICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIFwKICAgICBkb20vRGV2aWNlTW90
aW9uQ2xpZW50LmggXAogICAgIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmggXAogICAgIGRv
bS9EZXZpY2VNb3Rpb25EYXRhLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA1NjY4MzE2ZDMwMTBiYzdiYjYyM2RmYWM1ZDNhMjllZDA5OTdh
Y2U3Li45N2VlMTJjYjJlMWRjZTU2NTAyZGUyMzdjOTQ5YThhZWFkODI4MGQ3IDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDI0MjYsNiArNDI0
MjYsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXERhdGFUcmFuc2Zlckl0ZW0uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW1zLmgiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhc2V0RE9NU3Ry
aW5nTWFwLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTdmOTE5OTI5
ZjM0MmZhYWI3YWRmMTk3NzFjZTRlZGZmY2Y5YzQzZi4uOGZlYjY4NjFkMTExYjkxYjdiMTY0ZjY4
NjUzMDdmODZmMDRjZWJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY4Myw2ICsxNjgzLDggQEAKIAkJODFBNzMyNUUxMjEw
MTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODFBNzMyNUQxMjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5o
ICovOyB9OwogCQk4MUE3MzI2MDEyMTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjVGMTIxMDE4
QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3BwICovOyB9OwogCQk4MUE3MzI3ODEyMTAxOUUxMDBG
QzBEOUUgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJz
b3JCYWNrZW5kSW1wbC5oICovOyB9OworCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0
YVRyYW5zZmVySXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsg
fTsKKwkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYz
NkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaCAqLzsgfTsKIAkJODFCRTIwOTgxMUY0
QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDkzMTFGNEFCOEQwMDkxNURGQSAv
KiBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgKi87IH07CiAJCTgxQkUyMDk5MTFGNEFCOEQwMDkx
NURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5NDExRjRBQjhEMDA5MTVERkEgLyogSURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovOyB9OwogCQk4MUJFMjBEMjExRjRCQzMyMDA5MTVE
RkEgLyogSlNJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODFCRTIwQTcxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCAq
LzsgfTsKQEAgLTgxMTksNiArODEyMSwxMCBAQAogCQk4MUE3MzI1RDEyMTAxODlCMDBGQzBEOUUg
LyogSURCQ3Vyc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI1RjEyMTAxOEE0MDBGQzBE
OUUgLyogSURCQ3Vyc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IElEQkN1cnNvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTczMjc3MTIx
MDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRl
bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAv
KiBEYXRhVHJhbnNmZXJJdGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhVHJhbnNmZXJJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUFDNUFF
ODEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbXMuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4MUJFMjA5MzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFj
a2VuZEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vy
c29yQmFja2VuZEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUJFMjA5
NDExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQkUyMDlDMTFGNEFCQkQwMDkxNURGQSAvKiBJ
REJDdXJzb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IElEQkN1cnNvci5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODg1OSw2ICsxODg2NSwxMCBAQAogCQlGNTIzRDMy
NDAyREU0NDc4MDE4NjM1Q0EgLyogZG9tICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQk4MUFDNUFFODEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVy
SXRlbS5pZGwgKi8sCisJCQkJODFBQzVBRTkxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zl
ckl0ZW1zLmlkbCAqLywKKwkJCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5z
ZmVySXRlbS5oICovLAorCQkJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtcy5oICovLAogCQkJCUUxQzRERTZEMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01P
YmplY3QuY3BwICovLAogCQkJCUUxQzRERTY4MEVBNzVDMUUwMDIzQ0NENiAvKiBBY3RpdmVET01P
YmplY3QuaCAqLywKIAkJCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRS
dW5uZXIuY3BwICovLApAQCAtMjI0MjAsNiArMjI0MzAsOCBAQAogCQkJCTk3NUNBMjhCMTMwMzY1
RjgwMEU5OUFEOSAvKiBDcnlwdG8uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NUNBMkEyMTMwMzY3
OUQwMEU5OUFEOSAvKiBKU0NyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZFOThBMTAxMzBB
OUZDQTAwOEVCN0IyIC8qIFRleHRDb2RlY0FTQ0lJRmFzdFBhdGguaCBpbiBIZWFkZXJzICovLAor
CQkJCTgxQUM1OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRl
bXMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBi
b2FyZC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCmluZGV4IGI4ZWFkZmI2ZDA2
NzQ4NWI0MThiODc5YjFhOWNkZmZjNmZjY2UwMWYuLjVlZTE0ZTI1MDkwZTA4ODFlMmQ3YjI1YjY1
MzIzNjY0YzQ3ODIxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKQEAgLTI2LDYgKzI2LDcgQEAK
IAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJk
QWNjZXNzUG9saWN5LmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbXMuaCIKICNpbmNsdWRl
ICJEcmFnQWN0aW9ucy5oIgogI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgogI2luY2x1ZGUgIkludFBv
aW50LmgiCkBAIC05MSw2ICs5MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZv
aWQgc2V0RGVzdGluYXRpb25PcGVyYXRpb24oRHJhZ09wZXJhdGlvbik7CiAgICAgICAgIAogICAg
ICAgICB2b2lkIHNldERyYWdIYXNTdGFydGVkKCkgeyBtX2RyYWdTdGFydGVkID0gdHJ1ZTsgfQor
CisjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisgICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtcz4gaXRlbXMoKSA9IDA7CisjZW5kaWYKICAgICAgICAgCiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBD
bGlwYm9hcmRUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKaW5kZXggMTAyNGEzNmQxNmEz
YzQ5MDNhZjBkZTZkNWQzZGY5NmVkODg3NGRhNC4uM2QzNmExYTI4NmY4NTllYWFiM2E5MzNhNmI2
NTE3MzZmYzJlNjEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKQEAgLTQyLDYgKzQyLDgg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIGJvb2xlYW4g
c2V0RGF0YShpbiBET01TdHJpbmcgdHlwZSwgaW4gRE9NU3RyaW5nIGRhdGEpOwogICAgICAgICBb
Q3VzdG9tXSB2b2lkIHNldERyYWdJbWFnZShpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLCBpbiBs
b25nIHgsIGluIGxvbmcgeSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworCisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVN
U10gRGF0YVRyYW5zZmVySXRlbXMgaXRlbXM7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhVHJhbnNmZXJJdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI4YTlkMmQ3ZTI1YjRhZDU0NTI4M2U3MTdj
YzZmOWQxYjE2ZmFlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVRyYW5zZmVySXRlbV9o
CisjZGVmaW5lIERhdGFUcmFuc2Zlckl0ZW1faAorCisjaW5jbHVkZSAiRmlsZS5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERh
dGFUcmFuc2Zlckl0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhVHJhbnNmZXJJdGVtPiB7Citw
dWJsaWM6CisgICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IFN0cmluZyB0eXBlKCkgY29uc3QgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGdldEFzU3RyaW5n
KCkgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxlPiBnZXRBc0ZpbGUoKSA9IDA7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVt
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDVm
YTY3M2I0YTI3ZWY5M2EzNDI5YjMxM2MwYTdhN2MxYjMxZGMzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitt
b2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1EQVRB
X1RSQU5TRkVSX0lURU1TCisgICAgXSBEYXRhVHJhbnNmZXJJdGVtIHsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBraW5kOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHR5cGU7CisKKyAgICAgICAgdm9pZCBnZXRBc1N0cmluZygpOworICAgICAgICBG
aWxlIGdldEFzRmlsZSgpOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQ2YmFkNjkyZDRkMzY4OGJlZWNhZWJmZjZmN2RjOWUzM2Rk
NDk2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJ
dGVtcy5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1zX2gKKyNkZWZp
bmUgRGF0YVRyYW5zZmVySXRlbXNfaAorCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgor
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGaWxlLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0YVRy
YW5zZmVySXRlbXMgOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhVHJhbnNmZXJJdGVtcz4geworcHVi
bGljOgorICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IGl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVtKHVuc2lnbmVkIGxv
bmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKCkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0
cmluZyYgdHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGQoUGFzc1JlZlB0cjxGaWxlPikg
PSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGF0YVRyYW5z
ZmVySXRlbXNfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbXMuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MTBjNzg2NGZhYTg3MjU5NzQzMzZlMGE2YTI2MzExYmM0Zjc2ZTM5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29u
ZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNUywKKyAgICAgICAgSGFzSW5kZXhHZXR0ZXIsCisg
ICAgICAgIEN1c3RvbURlbGV0ZVByb3BlcnR5LAorICAgIF0gRGF0YVRyYW5zZmVySXRlbXMgewor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsZW5ndGg7CisgICAgICAgIERhdGFUcmFu
c2Zlckl0ZW0gaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KSBnZXR0ZXI7CisKKyAgICAgICAg
dm9pZCBjbGVhcigpOworICAgICAgICB2b2lkIGFkZChpbiBET01TdHJpbmcgZGF0YSwgaW4gRE9N
U3RyaW5nIHR5cGUpOworICAgICAgICB2b2lkIGFkZChpbiBGaWxlIGRhdGEpOworICAgIH07CisK
K30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83619</attachid>
            <date>2011-02-24 01:27:28 -0800</date>
            <delta_ts>2011-02-24 01:58:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55115-20110224012727.patch</filename>
            <type>text/plain</type>
            <size>22127</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk1MjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGU4
NDM5NzRhODkwY2UzZjMwNmM2ZDQzN2FiM2JkZmZmOWEyN2NiYzYuLmZiNmZhNzlkM2U3MzQ4YmEy
MGYxYTRmZTI1MDlkZjkwYmYwZTNhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDExLTAyLTI0ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0
ZSBJRExzIGZvciBEYXRhVHJhbnNmZXJJdGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MTE1CisKKyAgICAgICAgRmlyc3Qgc3RlcCB0b3dhcmRz
IGltcGxlbWVudGluZyB0aGUgbmV3IERhdGFUcmFuc2Zlckl0ZW0vRGF0YVRyYW5zZmVySXRlbXMK
KyAgICAgICAgaW50ZXJmYWNlIGRlZmluZWQgaW4gSFRNTDUuIEluIHRoZSBsb25nIHRlcm0sIHRo
aXMgd2lsbCBzdXBwb3J0IGFzeW5jaHJvbm91cworICAgICAgICBkYXRhIHJldHJpZXZhbCBhbmQg
bm9uLXRleHQgZGF0YSB0eXBlcyBpbiBEYXRhVHJhbnNmZXIuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDogQWRkIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TIGFuZCBkaXNhYmxlIGl0IGZv
ciBhbGwgcG9ydHMuCisKIDIwMTEtMDItMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaAppbmRleCBhYTVkMWFiNTVkNmQ0OGZlOTk0NmRmYjkxZGNlY2RlOWVlMDZh
ZTVkLi5hZTczOTQxMWUzNTA3MGY3OWRlZTA4NTM5OGE2OTIxMDg3OWY5MzIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC02NTEsNiArNjUxLDcgQEAKICNpZiBQTEFURk9S
TShJT1MpCiAjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVTIDAKICNkZWZpbmUgRU5BQkxFX0RS
QUdfU1VQUE9SVCAwCisjZGVmaW5lIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TIDAKICNkZWZp
bmUgRU5BQkxFX0ZUUERJUiAxCiAjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCiAjZGVmaW5l
IEVOQUJMRV9JQ09OREFUQUJBU0UgMApAQCAtODkzLDYgKzg5NCwxMCBAQAogI2RlZmluZSBFTkFC
TEVfRFJBR19TVVBQT1JUIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMpCisjZGVmaW5lIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TIDAKKyNlbmRp
ZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKQogI2RlZmluZSBFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDlj
MTZjN2JmNDlhNjM0ZDM5MjdhYzkyNmJiNTMzZTM3NDc4MDlmMjAuLjk0NWUzOWRjZGIyNmNjZWNm
ZTMyNGU5YTRmOWQ2MzMyM2ZhNDAxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDAsNiAr
MTQwLDggQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgZG9tL0NvbW1lbnQuaWRsCiAgICAg
ZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsCiAgICAgZG9tL0N1c3RvbUV2ZW50LmlkbAorICAgIGRv
bS9EYXRhVHJhbnNmZXJJdGVtLmlkbAorICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwKICAg
ICBkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZl
bnQuaWRsCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI4Mjg1
YjU2MjAxMzkyNjc3NjQzNGMxNTgyMzQyN2ZkMWIxMmEzMy4uOTVhMTlhM2QwOGU4NDkyN2JjZTBk
MjczMGEyNzFiOGUwZDFmODU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTAy
LTI0ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0ZSBJRExzIGZvciBEYXRhVHJh
bnNmZXJJdGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1MTE1CisKKyAgICAgICAgRmlyc3Qgc3RlcCB0b3dhcmRzIGltcGxlbWVudGluZyB0aGUg
bmV3IERhdGFUcmFuc2Zlckl0ZW0vRGF0YVRyYW5zZmVySXRlbXMKKyAgICAgICAgaW50ZXJmYWNl
IGRlZmluZWQgaW4gSFRNTDUuIEluIHRoZSBsb25nIHRlcm0sIHRoaXMgd2lsbCBzdXBwb3J0IGFz
eW5jaHJvbm91cworICAgICAgICBkYXRhIHJldHJpZXZhbCBhbmQgbm9uLXRleHQgZGF0YSB0eXBl
cyBpbiBEYXRhVHJhbnNmZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIG5vIG5ldyBm
dW5jdGlvbmFsaXR5LiBUZXN0cyB3aWxsIGJlIGFkZGVkIHdoZW4gdGhlIHN0dWJzIGFyZSBpbXBs
ZW1lbnRlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvZGVHZW5l
cmF0b3JzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaDoKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJk
LmlkbDoKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbS5oOiBBZGRlZC4KKyAgICAgICAg
KiBkb20vRGF0YVRyYW5zZmVySXRlbS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9EYXRhVHJh
bnNmZXJJdGVtcy5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRs
OiBBZGRlZC4KKwogMjAxMS0wMi0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IHRoZSBidWlsZCB3aXRoIEdUSysg
My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJj
ZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQppbmRleCBkMjBmNjYxN2Y5OWU3ODhjNzc5Mzky
ZWM2YjFmNGUyOGMxYTQ1NzZhLi5lMzViNzA4ZGZhNTI4YTg0NTZhYWZkZDg0MzcxZjU3OGM4ZTBj
ODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCkBAIC0xMDksNiArMTA5LDggQEAgSURM
X0JJTkRJTkdTICs9IFwKICAgICBkb20vQ29tbWVudC5pZGwgXAogICAgIGRvbS9Db21wb3NpdGlv
bkV2ZW50LmlkbCBcCiAgICAgZG9tL0N1c3RvbUV2ZW50LmlkbCBcCisgICAgZG9tL0RhdGFUcmFu
c2Zlckl0ZW0uaWRsIFwKKyAgICBkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsIFwKICAgICBkb20v
RGV2aWNlTW90aW9uRXZlbnQuaWRsIFwKICAgICBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5p
ZGwgXAogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IDE4NGQ0MmMzMDg5YjVlOWRmYjMyZjRiNDZiNTNmYzljY2U1N2JlYTUuLmE5MjA0YWEwYTU1
NDhiYjg0NTYwZTY5YWFlNmI3MjgzZjgyYWNhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0x
MTQ2LDYgKzExNDYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9DU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
Q3VzdG9tRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZlbnQuaCBcCisJ
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBcCisJU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9N
U3RyaW5nTWFwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAu
aCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBkYzRkMDQwZjYzZjRhOGQyMDE0ZTQ1MGYyMDQ3ZjkwOGE1Mzk3
YjE0Li40YjIyMjkxZGM1ZWJiYjk0NmI0Y2QxMDViOWJiYmM5YzI5NTQwNWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC00Miw2ICs0Miw4IEBACiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0
aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ0xpc3QuaWRsJywKICAgICAgICAg
ICAgICdkb20vRE9NU3RyaW5nTWFwLmlkbCcsCisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zl
ckl0ZW0uaWRsJywKKyAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsJywKICAg
ICAgICAgICAgICdkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20v
RGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5p
ZGwnLApAQCAtMTE5OSw2ICsxMjAxLDggQEAKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFw
LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ01hcC5oJywKICAgICAgICAgICAgICdk
b20vRE9NVGltZVN0YW1wLmgnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgn
LAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oJywKICAgICAgICAgICAgICdk
b20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9N
U3RyaW5nTWFwLmgnLAogICAgICAgICAgICAgJ2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2Vy
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDA2YjU2MmVkYTJmM2MxYjRjMzU2ODExYmYzNzI1ZWE0
OTkzNzU2Y2IuLmM2N2Y0NDNhYTgwZDc4YWQ5ODgwY2I4ZDBiMThkMGVjNDk2OGY3YzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC0xNDAxLDYgKzE0MDEsOCBAQCBIRUFERVJTICs9IFwKICAgICBkb20vQ1NT
TWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24uaCBcCiAgICAgZG9tL0N1c3RvbUV2ZW50LmggXAog
ICAgIGRvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmggXAorICAgIGRvbS9E
YXRhVHJhbnNmZXJJdGVtLmggXAorICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIFwKICAgICBk
b20vRGV2aWNlTW90aW9uQ2xpZW50LmggXAogICAgIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVy
LmggXAogICAgIGRvbS9EZXZpY2VNb3Rpb25EYXRhLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1OGUyMjExZmY2Mjg3ZjJhOWE5MjhmNmMw
OGQyYTI1ZDEyM2JlZTc0Li4wZGY1ZTM3ZDMzZjdhOTlmYWQ2MmMxZWI0NWM2ZjZjNTQyZDUzY2Mw
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NDI0MjYsNiArNDI0MjYsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW0uaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW1zLmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxE
YXRhc2V0RE9NU3RyaW5nTWFwLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNTc3NTM3NjdmMTY5YjdmYWJkZjI3N2YxODQ1YjIzMDRlZWE5ZGUyNi4uZTY4MmU4ZGE4Yzlk
MWJlYTI5MWFiYTAzMmYwMjJkMjI2ZTcyZWFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY0Niw2ICsxNjQ2LDggQEAKIAkJ
ODFBNzMyNUUxMjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBNzMyNUQxMjEwMTg5QjAwRkMwRDlFIC8q
IElEQkN1cnNvci5oICovOyB9OwogCQk4MUE3MzI2MDEyMTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vy
c29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgx
QTczMjVGMTIxMDE4QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3BwICovOyB9OwogCQk4MUE3MzI3
ODEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5
RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovOyB9OworCQk4MUFDNTk5OTEzMTYzNkU2MDAw
OUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zl
ckl0ZW0uaCAqLzsgfTsKKwkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zl
ckl0ZW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaCAqLzsgfTsKIAkJ
ODFCRTIwOTgxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDkzMTFGNEFC
OEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgKi87IH07CiAJCTgxQkUyMDk5
MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5NDExRjRBQjhEMDA5
MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovOyB9OwogCQk4MUJFMjBEMjEx
RjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwQTcxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURC
Q3Vyc29yLmNwcCAqLzsgfTsKQEAgLTgxMDMsNiArODEwNSwxMCBAQAogCQk4MUE3MzI1RDEyMTAx
ODlCMDBGQzBEOUUgLyogSURCQ3Vyc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElEQkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI1RjEy
MTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IElEQkN1cnNvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW1wbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0
YVRyYW5zZmVySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJh
bnNmZXJJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM1OTk4MTMxNjM2
RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4MUFDNUFFODEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJ
dGVtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbXMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUJFMjA5MzExRjRBQjhEMDA5MTVERkEgLyog
SURCQ3Vyc29yQmFja2VuZEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MUJFMjA5NDExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQkUyMDlDMTFGNEFCQkQw
MDkxNURGQSAvKiBJREJDdXJzb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IElEQkN1cnNv
ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODkyOSw2ICsxODkzNSwxMCBA
QAogCQkJCTYyQ0QzMjU2MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8sCiAJ
CQkJNjJDRDMyNTcxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggKi8sCiAJCQkJNjJD
RDMyNTgxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmlkbCAqLywKKwkJCQk4MUFDNTk5
NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oICovLAorCQkJCTgxQUM1OTk4
MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5oICovLAorCQkJCTgxQUM1QUU4
MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmlkbCAqLywKKwkJCQk4MUFDNUFF
OTEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaWRsICovLAogCQkJCUJDNjQ2
NDFCMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCAqLywKIAkJCQlC
QzY0NjQxQTExRDdGNDE2MDA2NDU1QjAgLyogRGF0YXNldERPTVN0cmluZ01hcC5oICovLAogCQkJ
CUE4QzIyOEEwMTFENTcyMkUwMEQ1QTdEMyAvKiBEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNw
cCAqLywKQEAgLTE5NzAwLDYgKzE5NzEwLDggQEAKIAkJCQlCQzIyNzJBRDBFODJFOEYzMDBFN0Y5
NzUgLyogQ3Vyc29yTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJDRDMyNUExMTU3RTU3QzAw
NjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENCNDEzRTBFODYz
M0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgODFBQzU5OTkxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zl
ckl0ZW0uaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MEU2RDBCMEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNoYm9hcmRSZWdpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTUxOTYxMTZCMENBQzU2NTcwMDEwQTgwQyAvKiBEYXRhYmFzZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNDVCNTYwQ0FEN0ZENzAwMEQyQkU5IC8qIERhdGFiYXNl
QXV0aG9yaXplci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ2xpcGJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKaW5kZXggYjhl
YWRmYjZkMDY3NDg1YjQxOGI4NzliMWE5Y2RmZmM2ZmNjZTAxZi4uNWVlMTRlMjUwOTBlMDg4MWUy
ZDdiMjViNjUzMjM2NjRjNDc4MjFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaApAQCAtMjYsNiAr
MjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJD
bGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtcy5oIgog
I2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAiRHJhZ0ltYWdlLmgiCiAjaW5jbHVk
ZSAiSW50UG9pbnQuaCIKQEAgLTkxLDYgKzkyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCBzZXREZXN0aW5hdGlvbk9wZXJhdGlvbihEcmFnT3BlcmF0aW9uKTsKICAgICAg
ICAgCiAgICAgICAgIHZvaWQgc2V0RHJhZ0hhc1N0YXJ0ZWQoKSB7IG1fZHJhZ1N0YXJ0ZWQgPSB0
cnVlOyB9CisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKyAgICAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zPiBpdGVtcygpID0gMDsKKyNlbmRpZgogICAg
ICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIENsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQ
b2xpY3ksIENsaXBib2FyZFR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbAppbmRleCAxMDI0
YTM2ZDE2YTNjNDkwM2FmMGRlNmQ1ZDNkZjk2ZWQ4ODc0ZGE0Li4zZDM2YTFhMjg2Zjg1OWVhYWIz
YTkzM2E2YjY1MTczNmZjMmU2MTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
cGJvYXJkLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbApAQCAtNDIs
NiArNDIsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50c10g
Ym9vbGVhbiBzZXREYXRhKGluIERPTVN0cmluZyB0eXBlLCBpbiBET01TdHJpbmcgZGF0YSk7CiAg
ICAgICAgIFtDdXN0b21dIHZvaWQgc2V0RHJhZ0ltYWdlKGluIEhUTUxJbWFnZUVsZW1lbnQgaW1h
Z2UsIGluIGxvbmcgeCwgaW4gbG9uZyB5KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1EQVRBX1RSQU5T
RkVSX0lURU1TXSBEYXRhVHJhbnNmZXJJdGVtcyBpdGVtczsKICAgICB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjhhOWQyZDdlMjViNGFkNTQ1
MjgzZTcxN2NjNmY5ZDFiMTZmYWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
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
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJhbnNm
ZXJJdGVtX2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbV9oCisKKyNpbmNsdWRlICJGaWxlLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGF0YVRyYW5zZmVySXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFUcmFuc2Zlckl0
ZW0+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIFN0cmluZyBraW5kKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25zdCA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
QXNTdHJpbmcoKSA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbGU+IGdldEFzRmlsZSgp
ID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERhdGFUcmFu
c2Zlckl0ZW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0
ZW0uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAwNWZhNjczYjRhMjdlZjkzYTM0MjliMzEzYzBhN2E3YzFiMzFkYzMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlv
bmFsPURBVEFfVFJBTlNGRVJfSVRFTVMKKyAgICBdIERhdGFUcmFuc2Zlckl0ZW0geworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKworICAgICAgICB2b2lkIGdldEFzU3RyaW5nKCk7Cisg
ICAgICAgIEZpbGUgZ2V0QXNGaWxlKCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDZiYWQ2OTJkNGQzNjg4YmVlY2FlYmZmNmY3
ZGM5ZTMzZGQ0OTY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlckl0ZW1zLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVRyYW5zZmVySXRlbXNf
aAorI2RlZmluZSBEYXRhVHJhbnNmZXJJdGVtc19oCisKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJ
dGVtLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZpbGUuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBEYXRhVHJhbnNmZXJJdGVtcyA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFUcmFuc2Zlckl0ZW1z
PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5z
aWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXIoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwg
Y29uc3QgU3RyaW5nJiB0eXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFkZChQYXNzUmVmUHRy
PEZpbGU+KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBE
YXRhVHJhbnNmZXJJdGVtc19oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjcxMGM3ODY0ZmFhODcyNTk3NDMzNmUwYTZhMjYzMTFiYzRmNzZlMzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMu
aWRsCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAg
ICAgICBDb25kaXRpb25hbD1EQVRBX1RSQU5TRkVSX0lURU1TLAorICAgICAgICBIYXNJbmRleEdl
dHRlciwKKyAgICAgICAgQ3VzdG9tRGVsZXRlUHJvcGVydHksCisgICAgXSBEYXRhVHJhbnNmZXJJ
dGVtcyB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxlbmd0aDsKKyAgICAgICAg
RGF0YVRyYW5zZmVySXRlbSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIGdldHRlcjsKKwor
ICAgICAgICB2b2lkIGNsZWFyKCk7CisgICAgICAgIHZvaWQgYWRkKGluIERPTVN0cmluZyBkYXRh
LCBpbiBET01TdHJpbmcgdHlwZSk7CisgICAgICAgIHZvaWQgYWRkKGluIEZpbGUgZGF0YSk7Cisg
ICAgfTsKKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83624</attachid>
            <date>2011-02-24 01:58:52 -0800</date>
            <delta_ts>2011-02-28 14:32:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55115-20110224015851.patch</filename>
            <type>text/plain</type>
            <size>22157</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk1MjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGU4
NDM5NzRhODkwY2UzZjMwNmM2ZDQzN2FiM2JkZmZmOWEyN2NiYzYuLmZiNmZhNzlkM2U3MzQ4YmEy
MGYxYTRmZTI1MDlkZjkwYmYwZTNhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDExLTAyLTI0ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0
ZSBJRExzIGZvciBEYXRhVHJhbnNmZXJJdGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MTE1CisKKyAgICAgICAgRmlyc3Qgc3RlcCB0b3dhcmRz
IGltcGxlbWVudGluZyB0aGUgbmV3IERhdGFUcmFuc2Zlckl0ZW0vRGF0YVRyYW5zZmVySXRlbXMK
KyAgICAgICAgaW50ZXJmYWNlIGRlZmluZWQgaW4gSFRNTDUuIEluIHRoZSBsb25nIHRlcm0sIHRo
aXMgd2lsbCBzdXBwb3J0IGFzeW5jaHJvbm91cworICAgICAgICBkYXRhIHJldHJpZXZhbCBhbmQg
bm9uLXRleHQgZGF0YSB0eXBlcyBpbiBEYXRhVHJhbnNmZXIuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDogQWRkIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TIGFuZCBkaXNhYmxlIGl0IGZv
ciBhbGwgcG9ydHMuCisKIDIwMTEtMDItMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUGxhdGZvcm0uaAppbmRleCBhYTVkMWFiNTVkNmQ0OGZlOTk0NmRmYjkxZGNlY2RlOWVlMDZh
ZTVkLi5hZTczOTQxMWUzNTA3MGY3OWRlZTA4NTM5OGE2OTIxMDg3OWY5MzIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC02NTEsNiArNjUxLDcgQEAKICNpZiBQTEFURk9S
TShJT1MpCiAjZGVmaW5lIEVOQUJMRV9DT05URVhUX01FTlVTIDAKICNkZWZpbmUgRU5BQkxFX0RS
QUdfU1VQUE9SVCAwCisjZGVmaW5lIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TIDAKICNkZWZp
bmUgRU5BQkxFX0ZUUERJUiAxCiAjZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCiAjZGVmaW5l
IEVOQUJMRV9JQ09OREFUQUJBU0UgMApAQCAtODkzLDYgKzg5NCwxMCBAQAogI2RlZmluZSBFTkFC
TEVfRFJBR19TVVBQT1JUIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMpCisjZGVmaW5lIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TIDAKKyNlbmRp
ZgorCiAjaWYgIWRlZmluZWQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKQogI2RlZmluZSBFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDlj
MTZjN2JmNDlhNjM0ZDM5MjdhYzkyNmJiNTMzZTM3NDc4MDlmMjAuLmRkZGJmZTA3MmM5ZDk3ZDZh
MTNjN2YwYWY4NDVlNTc3MDFjYzM1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNTcwLDYg
KzE1NzAsMTMgQEAgSUYgKEVOQUJMRV9EQVRBQkFTRSkKICAgICApCiBFTkRJRiAoKQogCitJRiAo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpCisgICAgTElTVChBUFBFTkQgV2ViQ29yZV9JRExf
RklMRVMKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCisgICAgICAgIGRvbS9EYXRh
VHJhbnNmZXJJdGVtcy5pZGwKKyAgICApCitFTkRJRiAoKQorCiBJRiAoRU5BQkxFX01BVEhNTCkK
ICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgbWF0aG1sL01hdGhNTEVs
ZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI4Mjg1YjU2MjAxMzkyNjc3NjQzNGMxNTgyMzQyN2Zk
MWIxMmEzMy4uOTVhMTlhM2QwOGU4NDkyN2JjZTBkMjczMGEyNzFiOGUwZDFmODU2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTAyLTI0ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENyZWF0ZSBJRExzIGZvciBEYXRhVHJhbnNmZXJJdGVtcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MTE1CisKKyAgICAgICAgRmlyc3Qg
c3RlcCB0b3dhcmRzIGltcGxlbWVudGluZyB0aGUgbmV3IERhdGFUcmFuc2Zlckl0ZW0vRGF0YVRy
YW5zZmVySXRlbXMKKyAgICAgICAgaW50ZXJmYWNlIGRlZmluZWQgaW4gSFRNTDUuIEluIHRoZSBs
b25nIHRlcm0sIHRoaXMgd2lsbCBzdXBwb3J0IGFzeW5jaHJvbm91cworICAgICAgICBkYXRhIHJl
dHJpZXZhbCBhbmQgbm9uLXRleHQgZGF0YSB0eXBlcyBpbiBEYXRhVHJhbnNmZXIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIHNpbmNlIG5vIG5ldyBmdW5jdGlvbmFsaXR5LiBUZXN0cyB3aWxsIGJl
IGFkZGVkIHdoZW4gdGhlIHN0dWJzIGFyZSBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIENvZGVHZW5lcmF0b3JzLnByaToKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9DbGlwYm9h
cmQuaDoKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmlkbDoKKyAgICAgICAgKiBkb20vRGF0YVRy
YW5zZmVySXRlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbS5pZGw6
IEFkZGVkLgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsOiBBZGRlZC4KKwogMjAxMS0wMi0yNCAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZC4gRml4IHRoZSBidWlsZCB3aXRoIEdUSysgMy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NvZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnBy
aQppbmRleCBkMjBmNjYxN2Y5OWU3ODhjNzc5MzkyZWM2YjFmNGUyOGMxYTQ1NzZhLi5lMzViNzA4
ZGZhNTI4YTg0NTZhYWZkZDg0MzcxZjU3OGM4ZTBjODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRv
cnMucHJpCkBAIC0xMDksNiArMTA5LDggQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vQ29t
bWVudC5pZGwgXAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL0N1c3Rv
bUV2ZW50LmlkbCBcCisgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIFwKKyAgICBkb20vRGF0
YVRyYW5zZmVySXRlbXMuaWRsIFwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIFwKICAg
ICBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgXAogICAgIGRvbS9Eb2N1bWVudEZyYWdt
ZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDE4NGQ0MmMzMDg5YjVlOWRmYjMyZjRi
NDZiNTNmYzljY2U1N2JlYTUuLmE5MjA0YWEwYTU1NDhiYjg0NTYwZTY5YWFlNmI3MjgzZjgyYWNh
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMTQ2LDYgKzExNDYsOCBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJh
dGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZlbnQuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vQ3VzdG9tRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlckl0ZW0uaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0Rl
Y29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkYzRkMDQw
ZjYzZjRhOGQyMDE0ZTQ1MGYyMDQ3ZjkwOGE1Mzk3YjE0Li40YjIyMjkxZGM1ZWJiYjk0NmI0Y2Qx
MDViOWJiYmM5YzI5NTQwNWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00Miw2ICs0Miw4IEBACiAg
ICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9t
L0RPTVN0cmluZ0xpc3QuaWRsJywKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFwLmlkbCcs
CisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsJywKKyAgICAgICAgICAgICdk
b20vRGF0YVRyYW5zZmVySXRlbXMuaWRsJywKICAgICAgICAgICAgICdkb20vRGV2aWNlTW90aW9u
RXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwn
LAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5pZGwnLApAQCAtMTE5OSw2ICsxMjAxLDggQEAK
ICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFwLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RP
TVN0cmluZ01hcC5oJywKICAgICAgICAgICAgICdkb20vRE9NVGltZVN0YW1wLmgnLAorICAgICAg
ICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJh
bnNmZXJJdGVtcy5oJywKICAgICAgICAgICAgICdkb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgnLAogICAgICAgICAgICAg
J2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDA2
YjU2MmVkYTJmM2MxYjRjMzU2ODExYmYzNzI1ZWE0OTkzNzU2Y2IuLmM2N2Y0NDNhYTgwZDc4YWQ5
ODgwY2I4ZDBiMThkMGVjNDk2OGY3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xNDAxLDYgKzE0MDEs
OCBAQCBIRUFERVJTICs9IFwKICAgICBkb20vQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24u
aCBcCiAgICAgZG9tL0N1c3RvbUV2ZW50LmggXAogICAgIGRvbS9kZWZhdWx0L1BsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmggXAorICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtLmggXAorICAgIGRv
bS9EYXRhVHJhbnNmZXJJdGVtcy5oIFwKICAgICBkb20vRGV2aWNlTW90aW9uQ2xpZW50LmggXAog
ICAgIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmggXAogICAgIGRvbS9EZXZpY2VNb3Rpb25E
YXRhLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCA1OGUyMjExZmY2Mjg3ZjJhOWE5MjhmNmMwOGQyYTI1ZDEyM2JlZTc0Li4wZGY1ZTM3ZDMz
ZjdhOTlmYWQ2MmMxZWI0NWM2ZjZjNTQyZDUzY2MwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDI0MjYsNiArNDI0MjYsMTQgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFu
c2Zlckl0ZW0uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW1zLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCIKIAkJ
CQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTc3NTM3NjdmMTY5YjdmYWJkZjI3N2Yx
ODQ1YjIzMDRlZWE5ZGUyNi4uZTY4MmU4ZGE4YzlkMWJlYTI5MWFiYTAzMmYwMjJkMjI2ZTcyZWFk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTY0Niw2ICsxNjQ2LDggQEAKIAkJODFBNzMyNUUxMjEwMTg5QjAwRkMwRDlFIC8q
IElEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODFBNzMyNUQxMjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5oICovOyB9OwogCQk4MUE3
MzI2MDEyMTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjVGMTIxMDE4QTQwMEZDMEQ5RSAvKiBJ
REJDdXJzb3IuY3BwICovOyB9OwogCQk4MUE3MzI3ODEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vy
c29yQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5o
ICovOyB9OworCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcx
MzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsgfTsKKwkJODFBQzU5OUEx
MzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyog
RGF0YVRyYW5zZmVySXRlbXMuaCAqLzsgfTsKIAkJODFCRTIwOTgxMUY0QUI4RDAwOTE1REZBIC8q
IElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgxQkUyMDkzMTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNr
ZW5kSW1wbC5jcHAgKi87IH07CiAJCTgxQkUyMDk5MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJz
b3JCYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MUJFMjA5NDExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZS5oICovOyB9OwogCQk4MUJFMjBEMjExRjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJz
b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFC
RTIwQTcxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmNwcCAqLzsgfTsKQEAgLTgxMDMs
NiArODEwNSwxMCBAQAogCQk4MUE3MzI1RDEyMTAxODlCMDBGQzBEOUUgLyogSURCQ3Vyc29yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI1RjEyMTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQkN1cnNvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5RSAv
KiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJREJDdXJzb3JCYWNrZW5kSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJ
dGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVt
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUFDNUFFODEzMTYzOTJFMDAwOUE3
RTAgLyogRGF0YVRyYW5zZmVySXRlbS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRy
YW5zZmVySXRlbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM1QUU5MTMx
NjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gRGF0YVRyYW5zZmVySXRlbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MUJFMjA5MzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yQmFja2VuZEltcGwu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUJFMjA5NDExRjRBQjhEMDA5MTVE
RkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgxQkUyMDlDMTFGNEFCQkQwMDkxNURGQSAvKiBJREJDdXJzb3IuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IElEQkN1cnNvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xODkyOSw2ICsxODkzNSwxMCBAQAogCQkJCTYyQ0QzMjU2MTE1N0U1N0MwMDYz
QjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8sCiAJCQkJNjJDRDMyNTcxMTU3RTU3QzAwNjNCMEE3
IC8qIEN1c3RvbUV2ZW50LmggKi8sCiAJCQkJNjJDRDMyNTgxMTU3RTU3QzAwNjNCMEE3IC8qIEN1
c3RvbUV2ZW50LmlkbCAqLywKKwkJCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRy
YW5zZmVySXRlbS5oICovLAorCQkJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJh
bnNmZXJJdGVtcy5oICovLAorCQkJCTgxQUM1QUU4MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJh
bnNmZXJJdGVtLmlkbCAqLywKKwkJCQk4MUFDNUFFOTEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRy
YW5zZmVySXRlbXMuaWRsICovLAogCQkJCUJDNjQ2NDFCMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRh
c2V0RE9NU3RyaW5nTWFwLmNwcCAqLywKIAkJCQlCQzY0NjQxQTExRDdGNDE2MDA2NDU1QjAgLyog
RGF0YXNldERPTVN0cmluZ01hcC5oICovLAogCQkJCUE4QzIyOEEwMTFENTcyMkUwMEQ1QTdEMyAv
KiBEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCAqLywKQEAgLTE5NzAwLDYgKzE5NzEwLDgg
QEAKIAkJCQlCQzIyNzJBRDBFODJFOEYzMDBFN0Y5NzUgLyogQ3Vyc29yTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNjJDRDMyNUExMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOENCNDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5Lmgg
aW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODFBQzU5OTkx
MzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCBpbiBIZWFkZXJzICovLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyog
RGF0YVRyYW5zZmVySXRlbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2RDBCMEExOTg5Q0Ew
MDdGQjhDNSAvKiBEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOTYxMTZC
MENBQzU2NTcwMDEwQTgwQyAvKiBEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNDVC
NTYwQ0FEN0ZENzAwMEQyQkU5IC8qIERhdGFiYXNlQXV0aG9yaXplci5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkLmgKaW5kZXggYjhlYWRmYjZkMDY3NDg1YjQxOGI4NzliMWE5Y2Rm
ZmM2ZmNjZTAxZi4uNWVlMTRlMjUwOTBlMDg4MWUyZDdiMjViNjUzMjM2NjRjNDc4MjFlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9DbGlwYm9hcmQuaApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCIKKyNp
bmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtcy5oIgogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAj
aW5jbHVkZSAiRHJhZ0ltYWdlLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKQEAgLTkxLDYgKzky
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXREZXN0aW5hdGlvbk9w
ZXJhdGlvbihEcmFnT3BlcmF0aW9uKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0RHJhZ0hh
c1N0YXJ0ZWQoKSB7IG1fZHJhZ1N0YXJ0ZWQgPSB0cnVlOyB9CisKKyNpZiBFTkFCTEUoREFUQV9U
UkFOU0ZFUl9JVEVNUykKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0
ZW1zPiBpdGVtcygpID0gMDsKKyNlbmRpZgogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAg
ICAgIENsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIENsaXBib2FyZFR5cGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2xpcGJvYXJkLmlkbAppbmRleCAxMDI0YTM2ZDE2YTNjNDkwM2FmMGRlNmQ1ZDNkZjk2
ZWQ4ODc0ZGE0Li4zZDM2YTFhMjg2Zjg1OWVhYWIzYTkzM2E2YjY1MTczNmZjMmU2MTAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkLmlkbApAQCAtNDIsNiArNDIsOCBAQCBtb2R1bGUgY29yZSB7CiAg
ICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50c10gYm9vbGVhbiBzZXREYXRhKGluIERPTVN0cmlu
ZyB0eXBlLCBpbiBET01TdHJpbmcgZGF0YSk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0RHJh
Z0ltYWdlKGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UsIGluIGxvbmcgeCwgaW4gbG9uZyB5KQog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1EQVRBX1RSQU5TRkVSX0lURU1TXSBEYXRhVHJhbnNmZXJJdGVt
cyBpdGVtczsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MjhhOWQyZDdlMjViNGFkNTQ1MjgzZTcxN2NjNmY5ZDFiMTZmYWVjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaApAQCAt
MCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJhbnNmZXJJdGVtX2gKKyNkZWZpbmUgRGF0YVRyYW5z
ZmVySXRlbV9oCisKKyNpbmNsdWRlICJGaWxlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0YVRyYW5zZmVySXRlbSA6IHB1
YmxpYyBSZWZDb3VudGVkPERhdGFUcmFuc2Zlckl0ZW0+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IFN0cmluZyBraW5kKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25z
dCA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QXNTdHJpbmcoKSA9IDA7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPEZpbGU+IGdldEFzRmlsZSgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIERhdGFUcmFuc2Zlckl0ZW1faApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNWZhNjczYjRhMjdlZjkzYTM0Mjli
MzEzYzBhN2E3YzFiMzFkYzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbS5pZGwKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
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
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAg
IGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMKKyAg
ICBdIERhdGFUcmFuc2Zlckl0ZW0geworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGtpbmQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKwor
ICAgICAgICB2b2lkIGdldEFzU3RyaW5nKCk7CisgICAgICAgIEZpbGUgZ2V0QXNGaWxlKCk7Cisg
ICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wZDZiYWQ2OTJkNGQzNjg4YmVlY2FlYmZmNmY3ZGM5ZTMzZGQ0OTY1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgKQEAgLTAsMCArMSw1
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgRGF0YVRyYW5zZmVySXRlbXNfaAorI2RlZmluZSBEYXRhVHJhbnNmZXJJdGVt
c19oCisKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIkZpbGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtcyA6IHB1Ymxp
YyBSZWZDb3VudGVkPERhdGFUcmFuc2Zlckl0ZW1zPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB1
bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9u
Q29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGFkZChQYXNzUmVmUHRyPEZpbGU+KSA9IDA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVtc19oCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMGM3ODY0ZmFh
ODcyNTk3NDMzNmUwYTZhMjYzMTFiYzRmNzZlMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
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
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUg
Y29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1EQVRBX1RSQU5T
RkVSX0lURU1TLAorICAgICAgICBIYXNJbmRleEdldHRlciwKKyAgICAgICAgQ3VzdG9tRGVsZXRl
UHJvcGVydHksCisgICAgXSBEYXRhVHJhbnNmZXJJdGVtcyB7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nIGxlbmd0aDsKKyAgICAgICAgRGF0YVRyYW5zZmVySXRlbSBpdGVtKGluIHVu
c2lnbmVkIGxvbmcgaW5kZXgpIGdldHRlcjsKKworICAgICAgICB2b2lkIGNsZWFyKCk7CisgICAg
ICAgIHZvaWQgYWRkKGluIERPTVN0cmluZyBkYXRhLCBpbiBET01TdHJpbmcgdHlwZSk7CisgICAg
ICAgIHZvaWQgYWRkKGluIEZpbGUgZGF0YSk7CisgICAgfTsKKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84122</attachid>
            <date>2011-02-28 14:32:57 -0800</date>
            <delta_ts>2011-03-07 16:01:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55115-20110228143255.patch</filename>
            <type>text/plain</type>
            <size>36179</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4ODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg5
MGEwZWRmYjQ5YjFiNDAyOTE5M2ZhNmQ2MmU4YWE1NmM4N2UyNDcuLjRkMDlkMjU2ZWMwNWQ5MDAx
NzI2NzZhNjNjNGNjZmVkYjA2ZTBhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDExLTAyLTI4ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0
ZSBJRExzIGZvciBEYXRhVHJhbnNmZXJJdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxMTUKKworICAgICAgICBGaXJzdCBzdGVwIHRvd2FyZHMg
aW1wbGVtZW50aW5nIHRoZSBuZXcgRGF0YVRyYW5zZmVySXRlbS9EYXRhVHJhbnNmZXJJdGVtcwor
ICAgICAgICBpbnRlcmZhY2UgZGVmaW5lZCBpbiBIVE1MNS4gSW4gdGhlIGxvbmcgdGVybSwgdGhp
cyB3aWxsIHN1cHBvcnQgYXN5bmNocm9ub3VzCisgICAgICAgIGRhdGEgcmV0cmlldmFsIGFuZCBu
b24tdGV4dCBkYXRhIHR5cGVzIGluIERhdGFUcmFuc2Zlci4KKworICAgICAgICAqIHd0Zi9QbGF0
Zm9ybS5oOiBBZGQgRU5BQkxFIGZvciBkYXRhIHRyYW5zZmVyIGl0ZW1zIEFQSS4KKwogMjAxMS0w
Mi0yNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
bGF0Zm9ybS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDJm
MWY1OTJkMzc1ZTU5MWYzM2VmYmY4ODdlYTUxNmExMWI5ODhjZTYuLmY3MWJkYWUwMGI5NGViNmIy
MjIxYTVkNDYzMmZlNGM0MDUyZDhmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3Jt
LmgKQEAgLTY1MSw2ICs2NTEsNyBAQAogI2lmIFBMQVRGT1JNKElPUykKICNkZWZpbmUgRU5BQkxF
X0NPTlRFWFRfTUVOVVMgMAogI2RlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDAKKyNkZWZpbmUg
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMgMAogI2RlZmluZSBFTkFCTEVfRlRQRElSIDEKICNk
ZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKICNkZWZpbmUgRU5BQkxFX0lDT05EQVRBQkFTRSAw
CkBAIC04OTMsNiArODk0LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMQogI2Vu
ZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykKKyNkZWZpbmUg
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMgMAorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQpCiAjZGVmaW5lIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCAw
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTg3NTU4Y2U0NjY2ODU0NTQ2NDBlNTIz
MGNjM2VhMDg4ZjkwNzA1OS4uMzRjOTRhOGJkYjhhYmFmMDgyOTYzNWE0ZTY2ZmQ3NGQ0ZTZmZGI4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1NjksNiArMTU2OSwxNCBAQCBJRiAoRU5BQkxF
X0RBVEFCQVNFKQogICAgICkKIEVORElGICgpCiAKK0lGIChFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUykKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBkb20vRGF0
YVRyYW5zZmVySXRlbS5pZGwKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbAorICAg
ICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaWRsCisgICAgKQorRU5ESUYgKCkKKwogSUYgKEVOQUJM
RV9NQVRITUwpCiAgICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgICAgIG1hdGht
bC9NYXRoTUxFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMzZTlmYTBlY2NlMDc5Y2YwNjRmODQ4
NmQzYzJhMmQ0NjNiNGRkNjMuLjQxZGQwMzY4NGQ3YmU2MjI3YjA2NGNkZmM3MWM5ZDIwNDM0OWFm
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMS0wMi0yOCAgRGFuaWVsIENoZW5n
ICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDcmVhdGUgSURMcyBmb3IgRGF0YVRyYW5zZmVySXRlbXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MTE1CisKKyAgICAg
ICAgRmlyc3Qgc3RlcCB0b3dhcmRzIGltcGxlbWVudGluZyB0aGUgbmV3IERhdGFUcmFuc2Zlckl0
ZW0vRGF0YVRyYW5zZmVySXRlbXMKKyAgICAgICAgaW50ZXJmYWNlIGRlZmluZWQgaW4gSFRNTDUu
IEluIHRoZSBsb25nIHRlcm0sIHRoaXMgd2lsbCBzdXBwb3J0IGFzeW5jaHJvbm91cworICAgICAg
ICBkYXRhIHJldHJpZXZhbCBhbmQgbm9uLXRleHQgZGF0YSB0eXBlcyBpbiBEYXRhVHJhbnNmZXIu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBDb2RlR2VuZXJhdG9ycy5wcmk6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05V
bWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUu
cHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogRml4IGNvZGUgZ2VuZXJhdGlvbiBmb3IgY2FsbGJh
Y2sgaW50ZXJmYWNlcy4KKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6CisgICAgICAgICogZG9t
L0NsaXBib2FyZC5pZGw6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaDogQWRkZWQu
CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBk
b20vRGF0YVRyYW5zZmVySXRlbXMuaDogQWRkZWQuCisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1zLmlkbDogQWRkZWQuCisgICAgICAgICogZG9tL1N0cmluZ0NhbGxiYWNrLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ2FsbGJhY2s6On5TdHJpbmdDYWxsYmFjayk6Cisg
ICAgICAgICogZG9tL1N0cmluZ0NhbGxiYWNrLmlkbDogQWRkZWQuCisKIDIwMTEtMDItMjggIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI3OTg3Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Nv
ZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQppbmRl
eCBkMjBmNjYxN2Y5OWU3ODhjNzc5MzkyZWM2YjFmNGUyOGMxYTQ1NzZhLi4zZTQ1OWE2OTM4YzRk
N2VjNGUzZjlmOTg0NDJjOWYzNmU5OWUyMzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
b2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJp
CkBAIC0xMDksNiArMTA5LDggQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vQ29tbWVudC5p
ZGwgXAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL0N1c3RvbUV2ZW50
LmlkbCBcCisgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIFwKKyAgICBkb20vRGF0YVRyYW5z
ZmVySXRlbXMuaWRsIFwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIFwKICAgICBkb20v
RGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgXAogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50Lmlk
bCBcCkBAIC0xNDYsNiArMTQ4LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vUHJvZ3Jl
c3NFdmVudC5pZGwgXAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAogICAgIGRvbS9SYW5n
ZS5pZGwgXAorICAgIGRvbS9TdHJpbmdDYWxsYmFjay5pZGwgXAogICAgIGRvbS9UZXh0LmlkbCBc
CiAgICAgZG9tL1RleHRFdmVudC5pZGwgXAogICAgIGRvbS9Ub3VjaC5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IDcyZjFiMmQ2ZTE2ZTVkY2Q2ZjE3MjUxNDNmZDE5NGU4OGJk
MDFhM2MuLjlhYjM3ZWMzYjEzY2E4MmIxZTYwNDY0N2UyYzJlNGQzMmYyMjYyNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTcyLDYgKzcyLDggQEAKICNpbmNsdWRlICJKU0RhdGFi
YXNlU3luYy5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhR3JpZENvbHVtbi5jcHAiCiAjaW5jbHVkZSAi
SlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwIgorI2luY2x1ZGUgIkpTRGF0YVRyYW5zZmVySXRlbS5j
cHAiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtcy5jcHAiCiAjaW5jbHVkZSAiSlNEYXRh
Vmlldy5jcHAiCiAjaW5jbHVkZSAiSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcCIKICNpbmNs
dWRlICJKU0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIgpAQCAtMjgxLDYgKzI4Myw3IEBACiAj
aW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNT
dG9yYWdlLmNwcCIKICNpbmNsdWRlICJKU1N0b3JhZ2VFdmVudC5jcHAiCisjaW5jbHVkZSAiSlNT
dHJpbmdDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNTdHlsZU1lZGlhLmNwcCIKICNpbmNsdWRl
ICJKU1N0eWxlU2hlZXQuY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVTaGVldExpc3QuY3BwIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZTMzNGYxMWNmMjY2ZGVkZjUyMDhmZWU1MGZh
Y2RiNzQ5MTk2MmEyYi4uNmFkMzU5MTU2NTc4ZmMyNWU1MjM3ODVjNmI0MzM4MTEzYzFlZGY0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTAsNiArMTUwLDggQEAgRE9NX0NM
QVNTRVMgPSBcCiAgICAgRE9NVG9rZW5MaXN0IFwKICAgICBET01VUkwgXAogICAgIERPTVdpbmRv
dyBcCisgICAgRGF0YVRyYW5zZmVySXRlbSBcCisgICAgRGF0YVRyYW5zZmVySXRlbXMgXAogICAg
IERhdGFiYXNlIFwKICAgICBEYXRhYmFzZUNhbGxiYWNrIFwKICAgICBEYXRhYmFzZVN5bmMgXApA
QCAtMzQ3LDYgKzM0OSw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFNRTFRyYW5zYWN0aW9uU3lu
Y0NhbGxiYWNrIFwKICAgICBTdG9yYWdlIFwKICAgICBTdG9yYWdlRXZlbnQgXAorICAgIFN0cmlu
Z0NhbGxiYWNrIFwKICAgICBTVkdBRWxlbWVudCBcCiAgICAgU1ZHQWx0R2x5cGhFbGVtZW50IFwK
ICAgICBTVkdBbmdsZSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDcxZmNlZTY2MTgzNWM3ZTY4
NzgwNjEyYWZiOTEzOTQ5NGJhYzk3MjAuLjAyZjE1N2MyNzhmZmFiYzczYzY1OGY1MjY3NzMxOTVj
ZjFjMzczMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00MDA0LDYgKzQwMDQsMjUgQEAgd2Vi
Y29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9EQVRBTElTVD0xCiBlbmRpZiAjIEVORCBFTkFCTEVf
REFUQUxJU1QKIAogIyAtLS0tCisjIEhUTUw1IGRhdGEgdHJhbnNmZXIgaXRlbXMKKyMgLS0tLQor
aWYgRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUz0xCit3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVM9MQord2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKKyAgICAgICAgRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKKyAgICAgICAgRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFUcmFuc2Zlckl0ZW0uaCBcCisgICAgICAgIERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVHJhbnNmZXJJdGVtcy5jcHAgXAorICAgICAgICBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVySXRlbXMuaCBcCisgICAgICAgIERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdHJpbmdDYWxsYmFjay5jcHAgXAorICAgICAgICBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTU3RyaW5nQ2FsbGJhY2suaAord2ViY29yZV9zb3VyY2VzICs9IFwK
KwlTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0Nh
bGxiYWNrLmgKK2VuZGlmICMgRU5EIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TCisKKyMgLS0t
LQogIyBIVE1MNSBzZXJ2ZXItc2VudCBldmVudHMKICMgLS0tLQogaWYgIUVOQUJMRV9FVkVOVFNP
VVJDRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDY2ZmYzMzE3MjE1NTU1NDJjMGU1NDAwMWMwZWY1YTYz
NjMyY2RlYmQuLmI3MDE5Y2UwMGU4YWM5NjgxZTNjMGEzNzMyYzllYzllODdhM2Y2MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTQyLDYgKzQyLDggQEAKICAgICAgICAgICAgICdkb20vRE9NSW1wbGVt
ZW50YXRpb24uaWRsJywKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTGlzdC5pZGwnLAogICAg
ICAgICAgICAgJ2RvbS9ET01TdHJpbmdNYXAuaWRsJywKKyAgICAgICAgICAgICdkb20vRGF0YVRy
YW5zZmVySXRlbS5pZGwnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwn
LAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwnLAogICAgICAgICAgICAg
J2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RvY3Vt
ZW50LmlkbCcsCkBAIC03Niw2ICs3OCw3IEBACiAgICAgICAgICAgICAnZG9tL1JhbmdlLmlkbCcs
CiAgICAgICAgICAgICAnZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9t
L1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbCcsCisgICAgICAgICAgICAnZG9tL1N0
cmluZ0NhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1RleHQuaWRsJywKICAgICAgICAg
ICAgICdkb20vVGV4dEV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1RvdWNoLmlkbCcsCkBA
IC0xMTk3LDYgKzEyMDAsOCBAQAogICAgICAgICAgICAgJ2RvbS9ET01TdHJpbmdNYXAuY3BwJywK
ICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFwLmgnLAogICAgICAgICAgICAgJ2RvbS9ET01U
aW1lU3RhbXAuaCcsCisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCcsCisgICAg
ICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgnLAogICAgICAgICAgICAgJ2RvbS9EYXRh
c2V0RE9NU3RyaW5nTWFwLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuaCcsCiAgICAgICAgICAgICAnZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwJywK
QEAgLTEzNDksNiArMTM1NCw3IEBACiAgICAgICAgICAgICAnZG9tL1N0YXRpY05vZGVMaXN0Lmgn
LAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNTdHJpbmdMaXN0LmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL1N0YXRpY1N0cmluZ0xpc3QuaCcsCisgICAgICAgICAgICAnZG9tL1N0cmluZ0NhbGxiYWNr
LmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdk
b20vU3R5bGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50LmNwcCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvCmluZGV4IDljYTFlOGI2M2E1MTExOTM0MzdhMjc1ZDQ0NTM0YTdiZWI4MTc1
MzUuLmQxMjY5NjhmZGUyN2ExYjkyYTFhNmM5ZjcyZmU0MzU4NzU0YzU0NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCkBAIC0yNjg2LDYgKzI2ODYsMTMgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOREVY
RURfREFUQUJBU0U9MSkgewogICAgICAgICBzdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmNwcAogfQog
Citjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUz0xKSB7CisgICAg
SEVBREVSUyArPSBcCisgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtLmggXAorICAgICAgICBk
b20vRGF0YVRyYW5zZmVySXRlbXMuaCBcCisgICAgICAgIGRvbS9TdHJpbmdDYWxsYmFjay5oIFwK
K30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RPTV9TVE9SQUdFPTEpIHsKICAgICBIRUFE
RVJTICs9IFwKICAgICAgICAgc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5Y2NmOTc3YWM0MTQy
NTAzOTNiZjNkZmYxMTkyNzA3YTFkM2M3NDY5Li43MGU2ODJjNDgxNTY0MGQwNDU3OWVjZjk5MGM1
NGQ0Yzk0ZmU5NTAwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMjgxOCw2ICsyODE4LDExOCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbS5jcHAiCisJCQkJPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Rh
dGFUcmFuc2Zlckl0ZW0uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRl
bXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTRGVkaWNh
dGVkV29ya2VyQ29udGV4dC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAt
MjExMjYsNiArMjEyMzgsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1N0cmluZ0NhbGxiYWNrLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU3RyaW5nQ2FsbGJhY2su
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1Rl
eHQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTQyNDI2LDYgKzQyNTk0
LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxEYXRhVHJhbnNmZXJJdGVtLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhVHJhbnNmZXJJdGVtcy5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YXNldERPTVN0cmlu
Z01hcC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNDYxMTgsNiArNDYy
OTQsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXFN0cmluZ0NhbGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTdHlsZWRFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZp
bGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNDI3ZmIzNjZkNTA4YWEwY2U0ZDIyZmJkZjM1Yzg5ZDczODI2
NzJmZC4uMGJjYjNhZjg1M2NlMzhiMTMxYTg2OGNmOTdiNGUwYjgxNWNhNDJmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY1
MCw2ICsxNjUwLDkgQEAKIAkJODFBNzMyNUUxMjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBNzMyNUQx
MjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5oICovOyB9OwogCQk4MUE3MzI2MDEyMTAxOEE0
MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgxQTczMjVGMTIxMDE4QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3Bw
ICovOyB9OwogCQk4MUE3MzI3ODEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vyc29yQmFja2VuZElt
cGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTcz
Mjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovOyB9OworCQk4
MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcxMzE2MzZFNjAwMDlB
N0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsgfTsKKwkJODFBQzU5OUExMzE2MzZFNjAwMDlB
N0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVy
SXRlbXMuaCAqLzsgfTsKKwkJODFBQzZDMzYxMzFDNTdEMzAwMDlBN0UwIC8qIFN0cmluZ0NhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFD
NkMzNTEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaCAqLzsgfTsKIAkJODFCRTIw
OTgxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDkzMTFGNEFCOEQwMDkx
NURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgKi87IH07CiAJCTgxQkUyMDk5MTFGNEFC
OEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5NDExRjRBQjhEMDA5MTVERkEg
LyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovOyB9OwogCQk4MUJFMjBEMjExRjRCQzMy
MDA5MTVERkEgLyogSlNJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODFCRTIwQTcxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29y
LmNwcCAqLzsgfTsKQEAgLTgxMjcsNiArODEzMCwxMiBAQAogCQk4MUE3MzI1RDEyMTAxODlCMDBG
QzBEOUUgLyogSURCQ3Vyc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElE
QkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI1RjEyMTAxOEE0
MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElEQkN1cnNvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTcz
Mjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW1wbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5z
ZmVySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJ
dGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM1OTk4MTMxNjM2RTYwMDA5
QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEYXRhVHJhbnNmZXJJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MUFDNUFFODEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbXMuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MUFDNkMzNDEzMUM1N0MyMDAwOUE3RTAgLyogU3RyaW5n
Q2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFN0cmluZ0NhbGxiYWNrLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFBQzZDMzUxMzFDNTdEMzAwMDlBN0UwIC8q
IFN0cmluZ0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmlu
Z0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQkUyMDkzMTFGNEFC
OEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgxQkUyMDk0MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFC
RTIwOUMxMUY0QUJCRDAwOTE1REZBIC8qIElEQkN1cnNvci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gSURCQ3Vyc29yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTY5
LDYgKzE4OTc4LDEwIEBACiAJCQkJNjJDRDMyNTYxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2
ZW50LmNwcCAqLywKIAkJCQk2MkNEMzI1NzExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQu
aCAqLywKIAkJCQk2MkNEMzI1ODExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaWRsICov
LAorCQkJCTgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggKi8s
CisJCQkJODFBQzU5OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggKi8s
CisJCQkJODFBQzVBRTgxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaWRsICov
LAorCQkJCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5pZGwg
Ki8sCiAJCQkJQkM2NDY0MUIxMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01TdHJpbmdNYXAu
Y3BwICovLAogCQkJCUJDNjQ2NDFBMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0RE9NU3RyaW5n
TWFwLmggKi8sCiAJCQkJQThDMjI4QTAxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9j
dW1lbnRQYXJzZXIuY3BwICovLApAQCAtMTkxNjMsNiArMTkxNzYsOCBAQAogCQkJCUNFQTM5NDlC
MTFENDVDREEwMDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCAqLywKIAkJCQlCQzdG
QTYyQzBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwICovLAogCQkJCUJDN0ZB
NjJCMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5oICovLAorCQkJCTgxQUM2QzM1
MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oICovLAorCQkJCTgxQUM2QzM0MTMx
QzU3QzIwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5pZGwgKi8sCiAJCQkJQThDNEE3RUMwOUQ1
NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1lbnQuY3BwICovLAogCQkJCUE4QzRBN0VCMDlENTYz
MjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmggKi8sCiAJCQkJQUE0QzNBNzQwQjJCMTY3OTAw
MjMzNEEyIC8qIFN0eWxlRWxlbWVudC5jcHAgKi8sCkBAIC0xOTc0MCw2ICsxOTc1NSw4IEBACiAJ
CQkJQkMyMjcyQUQwRTgyRThGMzAwRTdGOTc1IC8qIEN1cnNvckxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTYyQ0QzMjVBMTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThDQjQxM0UwRTg2MzNGRDAwMzJDNEYwIC8qIERhc2hBcnJheS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODFBQzU5OTkxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0
ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQUM1OTlBMTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRh
VHJhbnNmZXJJdGVtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZEMEIwQTE5ODlDQTAwN0ZC
OEM1IC8qIERhc2hib2FyZFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE5NjExNkIwQ0FD
NTY1NzAwMTBBODBDIC8qIERhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE0NUI1NjBD
QUQ3RkQ3MDAwRDJCRTkgLyogRGF0YWJhc2VBdXRob3JpemVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTIyNDgyLDYgKzIyNDk5LDcgQEAKIAkJCQk5M0YxOTlFRDA4MjQ1RTU5MDAxRTlBQkMgLyogWFNM
VFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5
IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5
QzAwQzEzMzc5IC8qIFhTU0ZpbHRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODFBQzZDMzYxMzFD
NTdEMzAwMDlBN0UwIC8qIFN0cmluZ0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXgg
YWJkODE3MjdiYmZlMWI0ODJiNjZmYWU5ZTdjMTkxMmZiMmM2ZWY5NS4uZGRiZWI2ZTZlZmYzNWNk
MzNiNzNjMjQ4YzUxM2QxYjkxYzAxM2RhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTEyOCw3ICsxMjgsNyBAQCBzdWIg
QWRkSW5jbHVkZXNGb3JUeXBlCiAKICAgICAjIFdoZW4gd2UncmUgZmluaXNoZWQgd2l0aCB0aGUg
b25lLWZpbGUtcGVyLWNsYXNzCiAgICAgIyByZW9yZ2FuaXphdGlvbiwgd2Ugd29uJ3QgbmVlZCB0
aGVzZSBzcGVjaWFsIGNhc2VzLgotICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZl
VHlwZSgkdHlwZSkgYW5kICEkY29kZUdlbmVyYXRvci0+QXZvaWRJbmNsdXNpb25PZlR5cGUoJHR5
cGUpIGFuZCAkdHlwZSBuZSAiRGF0ZSIpIHsKKyAgICBpZiAoISRjb2RlR2VuZXJhdG9yLT5Jc1By
aW1pdGl2ZVR5cGUoJHR5cGUpIGFuZCAhJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlw
ZSkgYW5kICEkY29kZUdlbmVyYXRvci0+QXZvaWRJbmNsdXNpb25PZlR5cGUoJHR5cGUpIGFuZCAk
dHlwZSBuZSAiRGF0ZSIpIHsKICAgICAgICAgIyBkZWZhdWx0LCBpbmNsdWRlIHRoZSBzYW1lIG5h
bWVkIGZpbGUKICAgICAgICAgJGltcGxJbmNsdWRlc3tHZXRWOEhlYWRlck5hbWUoJHt0eXBlfSl9
ID0gMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCmluZGV4IGI4ZWFkZmI2ZDA2NzQ4NWI0MThiODc5
YjFhOWNkZmZjNmZjY2UwMWYuLjVlZTE0ZTI1MDkwZTA4ODFlMmQ3YjI1YjY1MzIzNjY0YzQ3ODIx
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5
LmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbXMuaCIKICNpbmNsdWRlICJEcmFnQWN0aW9u
cy5oIgogI2luY2x1ZGUgIkRyYWdJbWFnZS5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCkBAIC05
MSw2ICs5MiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0RGVzdGlu
YXRpb25PcGVyYXRpb24oRHJhZ09wZXJhdGlvbik7CiAgICAgICAgIAogICAgICAgICB2b2lkIHNl
dERyYWdIYXNTdGFydGVkKCkgeyBtX2RyYWdTdGFydGVkID0gdHJ1ZTsgfQorCisjaWYgRU5BQkxF
KERBVEFfVFJBTlNGRVJfSVRFTVMpCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtcz4gaXRlbXMoKSA9IDA7CisjZW5kaWYKICAgICAgICAgCiAgICAgcHJvdGVjdGVk
OgogICAgICAgICBDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBDbGlwYm9hcmRUeXBl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKaW5kZXggMTAyNGEzNmQxNmEzYzQ5MDNhZjBkZTZk
NWQzZGY5NmVkODg3NGRhNC4uM2QzNmExYTI4NmY4NTllYWFiM2E5MzNhNmI2NTE3MzZmYzJlNjEw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKQEAgLTQyLDYgKzQyLDggQEAgbW9kdWxlIGNv
cmUgewogICAgICAgICBbUmVxdWlyZXNBbGxBcmd1bWVudHNdIGJvb2xlYW4gc2V0RGF0YShpbiBE
T01TdHJpbmcgdHlwZSwgaW4gRE9NU3RyaW5nIGRhdGEpOwogICAgICAgICBbQ3VzdG9tXSB2b2lk
IHNldERyYWdJbWFnZShpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLCBpbiBsb25nIHgsIGluIGxv
bmcgeSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworCisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNU10gRGF0YVRyYW5z
ZmVySXRlbXMgaXRlbXM7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJ
dGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDc0Y2E5YmEzMzYyNTI3NDhmYTE4YmM0MWFkOGU4ZGM4YWI3MzYz
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVt
LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVRyYW5zZmVySXRlbV9oCisjZGVmaW5lIERh
dGFUcmFuc2Zlckl0ZW1faAorCisjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNp
bmNsdWRlICJGaWxlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJT
dHJpbmdDYWxsYmFjay5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRhVHJh
bnNmZXJJdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVySXRlbT4geworcHVibGlj
OgorICAgIHZpcnR1YWwgU3RyaW5nIGtpbmQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJp
bmcgdHlwZSgpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNz
UmVmUHRyPFN0cmluZ0NhbGxiYWNrPikgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxl
PiBnZXRBc0ZpbGUoKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2VuZGlmIC8vIERhdGFUcmFuc2Zl
ckl0ZW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0u
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJlNjg4ZDdlMzk5ZTMzNGY0MzdhYTIzMzcxZTliOGRhZjc5NzgxODMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFs
PURBVEFfVFJBTlNGRVJfSVRFTVMKKyAgICBdIERhdGFUcmFuc2Zlckl0ZW0geworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgdHlwZTsKKworICAgICAgICB2b2lkIGdldEFzU3RyaW5nKGluIFtDYWxs
YmFja10gU3RyaW5nQ2FsbGJhY2sgY2FsbGJhY2spOworICAgICAgICBGaWxlIGdldEFzRmlsZSgp
OworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2FjOGM1YWFkMWE2ZWJhYWE0YzkxZmE4NGQxMWI4NWJhNThiMTI2MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oCkBAIC0wLDAg
KzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1zX2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVy
SXRlbXNfaAorCisjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNpbmNsdWRlICJE
YXRhVHJhbnNmZXJJdGVtLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUg
IkZpbGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtcyA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFU
cmFuc2Zlckl0ZW1zPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0
aCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4g
aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRl
bGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgY2xlYXIoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0
cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFk
ZChQYXNzUmVmUHRyPEZpbGU+KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2VuZGlmIC8vIERhdGFU
cmFuc2Zlckl0ZW1zX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlckl0ZW1zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzEwYzc4NjRmYWE4NzI1OTc0MzM2ZTBhNmEyNjMxMWJjNGY3NmUzOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAg
IENvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsCisgICAgICAgIEhhc0luZGV4R2V0dGVy
LAorICAgICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwKKyAgICBdIERhdGFUcmFuc2Zlckl0ZW1z
IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGVuZ3RoOworICAgICAgICBEYXRh
VHJhbnNmZXJJdGVtIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgZ2V0dGVyOworCisgICAg
ICAgIHZvaWQgY2xlYXIoKTsKKyAgICAgICAgdm9pZCBhZGQoaW4gRE9NU3RyaW5nIGRhdGEsIGlu
IERPTVN0cmluZyB0eXBlKTsKKyAgICAgICAgdm9pZCBhZGQoaW4gRmlsZSBkYXRhKTsKKyAgICB9
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YjYxNjdi
MDVlOWMzYjA0Mzk3ZTMzNjY2YzAzNmY0YzJlMjY3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaApAQCAtMCwwICsxLDQ2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
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
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBT
dHJpbmdDYWxsYmFja19oCisjZGVmaW5lIFN0cmluZ0NhbGxiYWNrX2gKKworI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3RyaW5nQ2Fs
bGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHJpbmdDYWxsYmFjaz4geworcHVibGljOgorICAg
IHZpcnR1YWwgflN0cmluZ0NhbGxiYWNrKCkgeyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2
ZW50KGNvbnN0IFN0cmluZyYgZGF0YSkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gU3RyaW5nQ2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxs
YmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWUxOGQ4M2ZlMGFmNGMyYTVkNDMyYTg1MGEwYmQwOGUzYzMy
ZWQyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFj
ay5pZGwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKyAgICBpbnRlcmZhY2UgWworICAg
ICAgICBDYWxsYmFjaworICAgIF0gU3RyaW5nQ2FsbGJhY2sgeworICAgICAgICBib29sZWFuIGhh
bmRsZUV2ZW50KGluIERPTVN0cmluZyBkYXRhKTsKKyAgICB9OworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84992</attachid>
            <date>2011-03-07 16:01:42 -0800</date>
            <delta_ts>2011-03-07 18:03:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55115-20110307160141.patch</filename>
            <type>text/plain</type>
            <size>67271</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAyMTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhODA3M2VhNjZiMGEzZDkwMDg1YmY4
OTYyM2M2YTJlZjczMTZjMDI3Li5jM2IzYzFhM2ZjNzQ4NWQwYmZjYWNjZjEzMjdjZWIzNmI2NDMy
NWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMtMDcgIERhbmllbCBDaGVuZyAgPGRj
aGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERhdGFUcmFuc2Zlckl0ZW1zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTExNQorCisgICAgICAgIExh
eW91dCB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBiYXNpYyBwcm9wZXJ0aWVzIG9mIGRhdGFUcmFu
c2Zlci5pdGVtcyBmdW5jdGlvbiBhcyBleHBlY3RlZC4KKworICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0wNSAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVy
LWl0ZW1zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWMwZjg3M2ZlZmIyNDc2ZDkzYThlZTQ5
MjY0YWExNDg2NThiZDQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTgg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogUG9wdWxhdGluZyBEYXRhVHJhbnNmZXJJdGVt
cy4uLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI3OiBDYXVnaHQgZXhjZXB0aW9uICJFcnJvcjog
SU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiIGFzIGV4cGVjdGVkLgorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDMxOiBWZXJpZnlpbmcgY29udGVudHMgb2YgRGF0YVRyYW5zZmVySXRl
bXMuLi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMjogaXRlbXMubGVuZ3RoOiAyCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzM6IGl0ZW1zWzBdLmtpbmQ6IHN0cmluZworQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDM0OiBpdGVtc1swXS50eXBlOiB0ZXh0L3BsYWluCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMzU6IGl0ZW1zWzFdLmtpbmQ6IHN0cmluZworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBp
dGVtc1sxXS50eXBlOiB0ZXh0L2h0bWwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0MDogQ2hlY2tp
bmcgaWYgaXRlbXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBjb2xsZWN0aW9uIGNhbiBiZSBpbmRleGVk
OgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQxOiBpdGVtc1syXTogdW5kZWZpbmVkCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgNTE6IENoZWNraW5nIHRoYXQgYSByZWFkLW9ubHkgRGF0YVRyYW5zZmVy
SXRlbXMgY2Fubm90IGJlIG11dGF0ZWQuLi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogaXRl
bXMubGVuZ3RoOiAwCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IGl0ZW1zWzBdOiB1bmRlZmlu
ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2ODogVGVzdGluZyBpZiBEYXRhVHJhbnNmZXJJdGVt
cyBjYW4gYmUgYWNjZXNzZWQgb3V0c2lkZSBhbiBldmVudCBoYW5kbGVyLi4uCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTM6IGl0ZW1zWzBdIHZhbHVlOiBIZWxsbyBXb3JsZCEKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxMzogaXRlbXNbMV0gdmFsdWU6IDxiPkhlbGxvIFdvcmxkIQorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDk5OiBQQVNTRUQKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCByZWFkaW5nL3dy
aXRpbmcgZnVuY3Rpb25hbGl0eSBvZiBEYXRhVHJhbnNmZXJJdGVtcy4gVGhpcyB0ZXN0IHJlcXVp
cmVzIERSVC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRh
LXRyYW5zZmVyLWl0ZW1zLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGF0
YS10cmFuc2Zlci1pdGVtcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MTgxMjQwMjAwM2IzNjM4ZTY2MzU4
M2Y4ZjNmZDYwNTkxNmIwMDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25jb3B5PSJjb3B5KGV2ZW50KSIgb25wYXN0
ZT0icGFzdGUoZXZlbnQpIj4KKzxkaXY+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHJlYWRpbmcvd3Jp
dGluZyBmdW5jdGlvbmFsaXR5IG9mIERhdGFUcmFuc2Zlckl0ZW1zLiBUaGlzIHRlc3QgcmVxdWly
ZXMgRFJULjwvZGl2PgorCis8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgordmFyIHNhdmVkRGF0YVRyYW5zZmVySXRlbXMgPSBudWxsOwordmFyIHNhdmVkRGF0
YVRyYW5zZmVySXRlbSA9IG51bGw7CisKK2Z1bmN0aW9uIGhhbmRsZUV2ZW50KGRhdGEpCit7Cisg
ICAgY29uc29sZS5sb2coZGF0YSk7Cit9CisKK2Z1bmN0aW9uIGNvcHkoZXYpCit7CisgICAgdmFy
IGl0ZW1zID0gZXZlbnQuY2xpcGJvYXJkRGF0YS5pdGVtczsKKyAgICBjb25zb2xlLmxvZygnUG9w
dWxhdGluZyBEYXRhVHJhbnNmZXJJdGVtcy4uLicpOworICAgIGl0ZW1zLmFkZCgnSGVsbG8gV29y
bGQhJywgJ3RleHQvcGxhaW4nKTsKKyAgICBpdGVtcy5hZGQoJzxiPkhlbGxvIFdvcmxkIScsICd0
ZXh0L2h0bWwnKTsKKworICAgIC8vIENoZWNrIHRoYXQgYW4gZXhjZXB0aW9uIGlzIHByb3Blcmx5
IHJhaXNlZCB3aGVuIGF0dGVtcHRpbmcgdG8gYWRkIGEgZHVwbGljYXRlIHN0cmluZyB0eXBlLgor
ICAgIHRyeSB7CisgICAgICBpdGVtcy5hZGQoJ01vbycsICd0ZXh0L3BsYWluJyk7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgY29uc29sZS5sb2coJ0NhdWdodCBleGNlcHRpb24gIicgKyBlICsg
JyIgYXMgZXhwZWN0ZWQuJyk7CisgICAgfQorCisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29udGFp
bmVyIGRpZG4ndCBjaGFuZ2UuCisgICAgY29uc29sZS5sb2coJ1ZlcmlmeWluZyBjb250ZW50cyBv
ZiBEYXRhVHJhbnNmZXJJdGVtcy4uLicpOworICAgIGNvbnNvbGUubG9nKCdpdGVtcy5sZW5ndGg6
ICcgKyBpdGVtcy5sZW5ndGgpOworICAgIGNvbnNvbGUubG9nKCdpdGVtc1swXS5raW5kOiAnICsg
aXRlbXNbMF0ua2luZCk7CisgICAgY29uc29sZS5sb2coJ2l0ZW1zWzBdLnR5cGU6ICcgKyBpdGVt
c1swXS50eXBlKTsKKyAgICBjb25zb2xlLmxvZygnaXRlbXNbMV0ua2luZDogJyArIGl0ZW1zWzFd
LmtpbmQpOworICAgIGNvbnNvbGUubG9nKCdpdGVtc1sxXS50eXBlOiAnICsgaXRlbXNbMV0udHlw
ZSk7CisgICAgaXRlbXNbMF0uZ2V0QXNTdHJpbmcoZnVuY3Rpb24gKGRhdGEpIHsgaGFuZGxlRXZl
bnQoJ2l0ZW1zWzBdIHZhbHVlOiAnICsgZGF0YSk7IH0pOworICAgIGl0ZW1zWzFdLmdldEFzU3Ry
aW5nKGZ1bmN0aW9uIChkYXRhKSB7IGhhbmRsZUV2ZW50KCdpdGVtc1sxXSB2YWx1ZTogJyArIGRh
dGEpOyB9KTsKKworICAgIGNvbnNvbGUubG9nKCdDaGVja2luZyBpZiBpdGVtcyBwYXN0IHRoZSBl
bmQgb2YgdGhlIGNvbGxlY3Rpb24gY2FuIGJlIGluZGV4ZWQ6Jyk7CisgICAgY29uc29sZS5sb2co
J2l0ZW1zWzJdOiAnICsgaXRlbXNbMl0pOworCisgICAgc2F2ZWREYXRhVHJhbnNmZXJJdGVtcyA9
IGl0ZW1zOworICAgIHNhdmVkRGF0YVRyYW5zZmVySXRlbSA9IGl0ZW1zWzBdOworfQorCitmdW5j
dGlvbiBwYXN0ZShldikKK3sKKyAgICB2YXIgaXRlbXMgPSBldmVudC5jbGlwYm9hcmREYXRhLml0
ZW1zOworICAgIHZhciBvcmlnaW5hbExlbmd0aCA9IGl0ZW1zLmxlbmd0aDsKKyAgICBjb25zb2xl
LmxvZygnQ2hlY2tpbmcgdGhhdCBhIHJlYWQtb25seSBEYXRhVHJhbnNmZXJJdGVtcyBjYW5ub3Qg
YmUgbXV0YXRlZC4uLicpOworICAgIC8vIFNob3VsZCBiZSBpbW11dGFibGUuCisgICAgaXRlbXMu
YWRkKCdIZWxsbyBXb3JsZCEnLCAndGV4dC9wbGFpbicpOworICAgIGNvbnNvbGUubG9nKCdpdGVt
cy5sZW5ndGg6ICcgKyBpdGVtcy5sZW5ndGgpOworICAgIGNvbnNvbGUubG9nKCdpdGVtc1swXTog
JyArIGl0ZW1zWzBdKTsgLy8gU2hvdWxkbid0IGV4aXN0LgorfQorCitmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1
cm47CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGNvcHlDb21tYW5kKCk7CisgICAg
cGFzdGVDb21tYW5kKCk7CisKKyAgICB2YXIgZmFpbGVkID0gZmFsc2U7CisgICAgY29uc29sZS5s
b2coJ1Rlc3RpbmcgaWYgRGF0YVRyYW5zZmVySXRlbXMgY2FuIGJlIGFjY2Vzc2VkIG91dHNpZGUg
YW4gZXZlbnQgaGFuZGxlci4uLicpOworICAgIGlmIChzYXZlZERhdGFUcmFuc2Zlckl0ZW1zLmxl
bmd0aCAhPSAwKSB7CisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgIGNvbnNvbGUubG9n
KCdEYXRhVHJhbnNmZXJJdGVtcy5sZW5ndGggbm9uLXplcm8gb3V0c2lkZSBldmVudCBoYW5kbGVy
IScpOworICAgIH0KKyAgICBzYXZlZERhdGFUcmFuc2Zlckl0ZW1zLmFkZCgnU2VjdXJpdHk/Jywg
J3RleHQvZm9vJyk7CisgICAgaWYgKHNhdmVkRGF0YVRyYW5zZmVySXRlbXMubGVuZ3RoICE9IDAp
IHsKKyAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgY29uc29sZS5sb2coJ0RhdGFUcmFu
c2Zlckl0ZW1zIG11dGF0ZWQgb3V0c2lkZSBldmVudCBoYW5kbGVyIScpOworICAgIH0KKyAgICBp
ZiAoc2F2ZWREYXRhVHJhbnNmZXJJdGVtc1swXSkgeworICAgICAgICBmYWlsZWQgPSB0cnVlOwor
ICAgICAgICBjb25zb2xlLmxvZygnRGF0YVRyYW5zZmVySXRlbSBhY2Nlc3NlZCBvdXRzaWRlIGV2
ZW50IGhhbmRsZXIhJyk7CisgICAgfQorICAgIGlmIChzYXZlZERhdGFUcmFuc2Zlckl0ZW0ua2lu
ZCAhPSAnJykgeworICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICBjb25zb2xlLmxvZygn
RGF0YVRyYW5zZmVySXRlbS5raW5kIGFjY2Vzc2libGUgb3V0c2lkZSBldmVudCBoYW5kbGVyIScp
OworICAgIH0KKyAgICBpZiAoc2F2ZWREYXRhVHJhbnNmZXJJdGVtLnR5cGUhPSAnJykgeworICAg
ICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICBjb25zb2xlLmxvZygnRGF0YVRyYW5zZmVySXRl
bS50eXBlYWNjZXNzaWJsZSBvdXRzaWRlIGV2ZW50IGhhbmRsZXIhJyk7CisgICAgfQorICAgIHNh
dmVkRGF0YVRyYW5zZmVySXRlbS5nZXRBc1N0cmluZyhmdW5jdGlvbiAoZGF0YSkgeworICAgICAg
ICBmYWlsZWQgPSB0cnVlOworICAgICAgICBjb25zb2xlLmxvZygnZ2V0QXNTdHJpbmcgY2FsbGVk
IGJhY2sgb3V0c2lkZSBldmVudCBoYW5kbGVyIScpOworICAgIH0pOworCisgICAgd2luZG93LnNl
dFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAoZmFpbGVkKQorICAgICAgICAgICAg
Y29uc29sZS5sb2coJ0ZBSUxFRCcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb25zb2xl
LmxvZygnUEFTU0VEJyk7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgfSwgMCk7Cit9CisKK3J1blRlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDYwZjkwN2YwMmE2MTE5
OTk3MTI0ZGEzNzRlMDhjMzA2NzdkOTEyMGEuLmM3Y2RjZTZmNzhmNTM5NTI4NTk2ZjM0ODE0Mjkz
NGZmN2U0OTI3MDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMzE2LDQgKzEzMTYs
NyBAQCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmltYWdlRGF0YS5vYmplY3Qud3JhcC5odG1sCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzcwNwogZmFzdC92aWV3
cG9ydC92aWV3cG9ydC0xMjguaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhz
bC1kb2N1bWVudC1yZWRpcmVjdC54bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14
c2wtZXh0ZXJuYWwtZW50aXR5LXJlZGlyZWN0LnhtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKK2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZXh0ZXJuYWwtZW50aXR5LXJl
ZGlyZWN0LnhtbAorCisjIERhdGFUcmFuc2Zlckl0ZW1zIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQu
CitlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCmluZGV4IGM0Nzc5YjQxYzllNWM1MjY0YjhkMzVhMWFiYWQ3NzQ3MDRkZTc3
NTQuLjY3MTUwMzM5NTE1MThmZjIyNWY3MjExZjkxYTU1Yzk3ZmI4ZjhkMmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCkBAIC0yOTcsMyArMjk3LDYgQEAgZmFzdC9qcy9pMThuLWJpbmRpbmdz
LWxvY2FsZS5odG1sCiAjIFdhaXRpbmcgZm9yIHNvbWVvbmUgd2l0aCBhIG1hYyB0byBiYXNlbGlu
ZSB0aGlzIChuZXcpIHRlc3QgZm9yIG1hYy4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU0NDM2CiBtZWRpYS92aWRlby1jb250cm9scy1pbi1tZWRpYS1kb2N1bWVu
dC5odG1sCisKKyMgRGF0YVRyYW5zZmVySXRlbXMgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KK2Vk
aXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCmluZGV4IGVjNzlkZjQ0N2M1Y2MzODM4OTEyZDgzNDhlZTU4MjMxZTk5MzlhNjEuLjBj
OWEwYzQwYjU3Y2U2ODdmMzhjN2ExN2Q4MGZhY2U0NjkyZjZhNjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZApAQCAtMTA4LDYgKzEwOCw5IEBAIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQu
aHRtbAogIyBUaGlzIHBvcnQgZG9lc24ndCBzdXBwb3J0IHY4IGkxOG4gZXh0ZW5zaW9uLgogZmFz
dC9qcy9pMThuLWJpbmRpbmdzLWxvY2FsZS5odG1sCiAKKyMgRGF0YVRyYW5zZmVySXRlbXMgaXMg
bm90IHlldCBpbXBsZW1lbnRlZC4KK2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0
ZW1zLmh0bWwKKwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyAgICAgICBEcmFnIGFuZCBEcm9w
IFN1cHBvcnQgaW4gRFJULiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBh
NjZiNmJmYjU2ZjVkODNiNDM5MmZiNWRhNjNlZDg0ZDU4ZWQ5YTliLi4zMmFkM2Y3YzM5ODRmZjRm
ZWM0MDViNmEyYzU2NDllOGE1Y2FjNzk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAt
MTE2NywzICsxMTY3LDYgQEAgaW5zcGVjdG9yL2RlYnVnZ2VyCiAKICMgRm9yIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxOQogZmFzdC94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1yZXNwb25zZXR5cGUtYXJyYXlidWZmZXIuaHRtbAorCisjIERhdGFUcmFu
c2Zlckl0ZW1zIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0
YS10cmFuc2Zlci1pdGVtcy5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lk
Lm1rIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCA2MjI3ZGU5YWI3YTQ0NGMzYWEw
OGI3ZjQwOTg4NzI1MjllOWNhZTdhLi4yZTQ1MDM0MDMwYTM4MjBkMzFlZTM5OTQ2NDNjMWY0MDAy
NTZjYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTExMyw2ICsxMTMsNyBAQCBMT0NBTF9TUkNfRklMRVMg
Oj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlkb20vQ29udGFpbmVyTm9kZS5jcHAgXAogCWRvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAgXAogCWRvbS9ET01TdHJpbmdMaXN0LmNwcCBcCisJZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uY3BwIFwKIAlkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAg
XAogCWRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCiAJZG9tL0RldmljZU1vdGlvbkRh
dGEuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzI0NDZhNjllNmYxZTM2MWIzYTk2YTdl
ODMxN2RmYjUxNWFlZTY1My4uZGJmYTUzZDdlMjYzNGFiZWI2MzlmODc5ZjkzMWM3ZTdkMGZmOTQx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1NzIsNiArMTU3MiwxNyBAQCBJRiAoRU5BQkxF
X0RBVEFCQVNFKQogICAgICkKIEVORElGICgpCiAKK0lGIChFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUykKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBkb20vRGF0
YVRyYW5zZmVySXRlbS5pZGwKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbAorICAg
ICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaWRsCisgICAgKQorICAgIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUworICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKKyAgICApCitFTkRJ
RiAoKQorCiBJRiAoRU5BQkxFX01BVEhNTCkKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMKICAgICAgICAgbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY4MmVh
ZGVkYWRhOWZhYzIzMmFiODYzMzE4MmE1YWFlOGUxMjEyNy4uZGRhMmNmN2ZhMGQyOGFjZDE3ZjFl
OTAzNzY4ZGNiMmViNTE5YzcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDExLTAz
LTA3ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBEYXRhVHJh
bnNmZXJJdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTUxMTUKKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgc3R1YnMgZm9yIERhdGFUcmFuc2Zl
ckl0ZW1zL0RhdGFUcmFuc2Zlckl0ZW0gYXMgd2VsbCBhcyBpbXBsZW1lbnRpbmcgdGhlCisgICAg
ICAgIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb24gdGhlIENocm9taXVtIHBvcnQuIFdpdGggdGhlIGV4
Y2VwdGlvbiBvZiBEYXRhVHJhbnNmZXJJdGVtOjpnZXRBc0ZpbGUsCisgICAgICAgIGFsbCBmdW5j
dGlvbmFsaXR5IG9uIHRoZSBEYXRhVHJhbnNmZXJJdGVtcyBjb2xsZWN0aW9uIGhhcyBiZWVuIGlt
cGxlbWVudGVkLgorICAgICAgICBUaGlzIGNoYW5nZSBkb2VzIG5vdCBhY3R1YWxseSBob29rIHVw
IERhdGFUcmFuc2Zlckl0ZW1zIHRvIHJlZmxlY3QgdGhlIGFjdHVhbCBjb250ZW50cyBvZiBhCisg
ICAgICAgIGRyb3AvcGFzdGUgb3BlcmF0aW9uIG9yIHRvIGFsbG93IG11dGF0aW9uIG9mIGRhdGEg
aW4gYSBjb3B5L2RyYWcgc3RhcnQgeWV0LiBUaGF0IHdpbGwgYmUKKyAgICAgICAgZW5hYmxlZCB2
aWEgc2V2ZXJhbCBmb2xsb3d1cCBwYXRjaGVzLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvcGFz
dGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29kZUdlbmVyYXRvcnMucHJp
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAg
ICogZG9tL0NsaXBib2FyZC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpwb2xpY3kp
OgorICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaWRsOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNm
ZXJJdGVtLmNwcDogQWRkZWQuCisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaDogQWRk
ZWQuCisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBkb20vRGF0YVRyYW5zZmVySXRlbXMuaDogQWRkZWQuCisgICAgICAgICogZG9tL0RhdGFUcmFu
c2Zlckl0ZW1zLmlkbDogQWRkZWQuCisgICAgICAgICogZG9tL1N0cmluZ0NhbGxiYWNrLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3RyaW5nQ2FsbGJhY2s6On5TdHJpbmdDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWxsYmFjazo6c2NoZWR1bGVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWxsYmFjazo6RGlzcGF0Y2hDYWxsYmFja1Rhc2s6OkRp
c3BhdGNoQ2FsbGJhY2tUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlN0cmluZ0NhbGxiYWNrOjpE
aXNwYXRjaENhbGxiYWNrVGFzazo6cGVyZm9ybVRhc2spOgorICAgICAgICAqIGRvbS9TdHJpbmdD
YWxsYmFjay5pZGw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2Fy
ZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZENocm9taXVtOjppdGVt
cyk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6RGF0YVRyYW5z
ZmVySXRlbUNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJv
bWl1bTo6a2luZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06
OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRB
c1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1zQ2hyb21pdW0uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zl
ckl0ZW1zQ2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJ
dGVtc0Nocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjppdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmRlbGV0ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6YWRkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmg6IEFkZGVkLgorCiAyMDExLTAzLTA1ICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMu
cHJpIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCmluZGV4IGQyMGY2NjE3Zjk5
ZTc4OGM3NzkzOTJlYzZiMWY0ZTI4YzFhNDU3NmEuLjNlNDU5YTY5MzhjNGQ3ZWM0ZTNmOWY5ODQ0
MmM5ZjM2ZTk5ZTIzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3Jz
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKQEAgLTEwOSw2ICsx
MDksOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGRvbS9Db21tZW50LmlkbCBcCiAgICAgZG9t
L0NvbXBvc2l0aW9uRXZlbnQuaWRsIFwKICAgICBkb20vQ3VzdG9tRXZlbnQuaWRsIFwKKyAgICBk
b20vRGF0YVRyYW5zZmVySXRlbS5pZGwgXAorICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwg
XAogICAgIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwgXAogICAgIGRvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsIFwKQEAgLTE0Niw2
ICsxNDgsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmlkbCBc
CiAgICAgZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCBcCiAgICAgZG9tL1JhbmdlLmlkbCBcCisgICAg
ZG9tL1N0cmluZ0NhbGxiYWNrLmlkbCBcCiAgICAgZG9tL1RleHQuaWRsIFwKICAgICBkb20vVGV4
dEV2ZW50LmlkbCBcCiAgICAgZG9tL1RvdWNoLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5j
cHAKaW5kZXggNzJmMWIyZDZlMTZlNWRjZDZmMTcyNTE0M2ZkMTk0ZTg4YmQwMWEzYy4uOWFiMzdl
YzNiMTNjYTgyYjFlNjA0NjQ3ZTJjMmU0ZDMyZjIyNjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcApAQCAtNzIsNiArNzIsOCBAQAogI2luY2x1ZGUgIkpTRGF0YWJhc2VTeW5jLmNwcCIK
ICNpbmNsdWRlICJKU0RhdGFHcmlkQ29sdW1uLmNwcCIKICNpbmNsdWRlICJKU0RhdGFHcmlkQ29s
dW1uTGlzdC5jcHAiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtLmNwcCIKKyNpbmNsdWRl
ICJKU0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCIKICNpbmNsdWRlICJKU0RhdGFWaWV3LmNwcCIKICNp
bmNsdWRlICJKU0RlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIgogI2luY2x1ZGUgIkpTRGV2aWNl
T3JpZW50YXRpb25FdmVudC5jcHAiCkBAIC0yODEsNiArMjgzLDcgQEAKICNpbmNsdWRlICJKU1NR
TFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU1N0b3JhZ2UuY3BwIgog
I2luY2x1ZGUgIkpTU3RvcmFnZUV2ZW50LmNwcCIKKyNpbmNsdWRlICJKU1N0cmluZ0NhbGxiYWNr
LmNwcCIKICNpbmNsdWRlICJKU1N0eWxlTWVkaWEuY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVTaGVl
dC5jcHAiCiAjaW5jbHVkZSAiSlNTdHlsZVNoZWV0TGlzdC5jcHAiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCBlMzM0ZjExY2YyNjZkZWRmNTIwOGZlZTUwZmFjZGI3NDkxOTYyYTJi
Li42YWQzNTkxNTY1NzhmYzI1ZTUyMzc4NWM2YjQzMzgxMTNjMWVkZjQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE1MCw2ICsxNTAsOCBAQCBET01fQ0xBU1NFUyA9IFwKICAg
ICBET01Ub2tlbkxpc3QgXAogICAgIERPTVVSTCBcCiAgICAgRE9NV2luZG93IFwKKyAgICBEYXRh
VHJhbnNmZXJJdGVtIFwKKyAgICBEYXRhVHJhbnNmZXJJdGVtcyBcCiAgICAgRGF0YWJhc2UgXAog
ICAgIERhdGFiYXNlQ2FsbGJhY2sgXAogICAgIERhdGFiYXNlU3luYyBcCkBAIC0zNDcsNiArMzQ5
LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgXAog
ICAgIFN0b3JhZ2UgXAogICAgIFN0b3JhZ2VFdmVudCBcCisgICAgU3RyaW5nQ2FsbGJhY2sgXAog
ICAgIFNWR0FFbGVtZW50IFwKICAgICBTVkdBbHRHbHlwaEVsZW1lbnQgXAogICAgIFNWR0FuZ2xl
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYTAyMTgxMWVlMzVkNjdmNTEzNjMzMGJiZTI1MDMw
ODQzMzljZmM1Ny4uMmE0NzYzN2M2MTRjYzlhZmE2YjU4NDZjYzkyYmJmMTk0M2FjMzJiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KQEAgLTQwMTIsMTAgKzQwMTIsMjIgQEAgZW5kaWYgIyBFTkQgRU5B
QkxFX0RBVEFMSVNUCiAKICMgLS0tLQogIyBIVE1MNSBkYXRhIHRyYW5zZmVyIGl0ZW1zIHN1cHBv
cnQKLSMtLS0tLQorIyAtLS0tCiBpZiBFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUwogRkVBVFVS
RV9ERUZJTkVTICs9IEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEKIHdlYmNvcmVfY3BwZmxh
Z3MgKz0gLURFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUz0xCit3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMgKz0gXAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVySXRl
bS5jcHAgXAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVySXRl
bS5oIFwKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFUcmFuc2Zlckl0ZW1z
LmNwcCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVHJhbnNmZXJJdGVt
cy5oIFwKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0cmluZ0NhbGxiYWNrLmNw
cCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdHJpbmdDYWxsYmFjay5oCit3
ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVt
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBcCisJU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9T
dHJpbmdDYWxsYmFjay5oCiBlbmRpZiAjIEVORCBFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUwog
CiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5M2NmMDI2NzQyYzNiZmRmOTNkNWNlZjQ4YWU4
OTk1ODM3ZjU1MTgxLi44NTQwOGIxMDVkZGE1N2Y5YWUyOWNjNmNmNjY1ZGYwZDYzN2UzYTQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC00Miw2ICs0Miw4IEBACiAgICAgICAgICAgICAnZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ0xpc3QuaWRsJywK
ICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFwLmlkbCcsCisgICAgICAgICAgICAnZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uaWRsJywKKyAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbXMu
aWRsJywKICAgICAgICAgICAgICdkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsJywKICAgICAgICAg
ICAgICdkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9E
b2N1bWVudC5pZGwnLApAQCAtNzYsNiArNzgsNyBAQAogICAgICAgICAgICAgJ2RvbS9SYW5nZS5p
ZGwnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwnLAogICAgICAgICAgICAg
J2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ2Rv
bS9TdHJpbmdDYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ2RvbS9UZXh0LmlkbCcsCiAgICAg
ICAgICAgICAnZG9tL1RleHRFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Ub3VjaC5pZGwn
LApAQCAtMTIxNyw2ICsxMjIwLDkgQEAKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFwLmNw
cCcsCiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ01hcC5oJywKICAgICAgICAgICAgICdkb20v
RE9NVGltZVN0YW1wLmgnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcCcs
CisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCcsCisgICAgICAgICAgICAnZG9t
L0RhdGFUcmFuc2Zlckl0ZW1zLmgnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5n
TWFwLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCcsCiAgICAg
ICAgICAgICAnZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwJywKQEAgLTEzNjksNiAr
MTM3NSw3IEBACiAgICAgICAgICAgICAnZG9tL1N0YXRpY05vZGVMaXN0LmgnLAogICAgICAgICAg
ICAgJ2RvbS9TdGF0aWNTdHJpbmdMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY1N0
cmluZ0xpc3QuaCcsCisgICAgICAgICAgICAnZG9tL1N0cmluZ0NhbGxiYWNrLmgnLAogICAgICAg
ICAgICAgJ2RvbS9TdHlsZUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdkb20vU3R5bGVFbGVt
ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50LmNwcCcsCkBAIC0yNTA5LDYg
KzI1MTYsMTAgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9Db250ZXh0TWVudUNo
cm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJ
dGVtQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9DdXJzb3JD
aHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9E
YXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vRHJhZ0RhdGFSZWYuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0ltYWdlQ2hyb21pdW1NYWMuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNDZjMDliZWQxMjZl
NzAyMzM2Mzg3Y2M2ZmM5YzQ1NzFiZTAxMTg0Mi4uNmNkNDFmZTk2Mjk3YmUwNjVhZDY1MDEzZDA3
YzY4ZDIyY2RhYWM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI2OTAsNiArMjY5MCwxNSBAQCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRT0xKSB7CiAgICAgICAgIHN0b3Jh
Z2UvSURCVHJhbnNhY3Rpb24uY3BwCiB9CiAKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9EQVRB
X1RSQU5TRkVSX0lURU1TPTEpIHsKKyAgICBIRUFERVJTICs9IFwKKyAgICAgICAgZG9tL0RhdGFU
cmFuc2Zlckl0ZW0uaCBcCisgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIFwKKyAgICAg
ICAgZG9tL1N0cmluZ0NhbGxiYWNrLmgKKyAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uY3BwCit9CisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ET01fU1RP
UkFHRT0xKSB7CiAgICAgSEVBREVSUyArPSBcCiAgICAgICAgIHN0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggZjM5OTA3NmJkNmY4MWYyZThhZjdkNWFkNDIwMGQyNTVmNDg0MTgxMS4uYjA2Nzg0MTIy
MjI5MTM3OTY5Yjg0YjE4MTgxMTc2ODY2ODAxNDA5ZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4MTgsNiArMjgxOCwxMTggQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zl
ckl0ZW0uY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJv
X0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtcy5jcHAiCisJ
CQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
X0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU0RhdGFUcmFuc2Zlckl0ZW1zLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJp
dmVkU291cmNlc1xKU0RlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIgogCQkJCT4KIAkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KQEAgLTIxMTI2LDYgKzIxMjM4LDYyIEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNTdHJpbmdDYWxsYmFjay5jcHAiCisJ
CQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
X0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU1N0cmluZ0NhbGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNUZXh0LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9u
CkBAIC00MjQ5NCw2ICs0MjY2Miw2NiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbS5jcHAiCisJCQkJPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERh
dGFUcmFuc2Zlckl0ZW0uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW1zLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhc2V0RE9NU3RyaW5nTWFwLmNw
cCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC00NjE4Niw2ICs0NjQxNCwxMCBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
U3RyaW5nQ2FsbGJhY2suaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXFN0eWxlZEVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBhOGM3MGRjY2JhZTE5OTY1ZjM3MDI2YzFkODc1OGU5ODMwZDk2Y2FmLi5i
MTA2ZjZmMjRiOGNhNGJiZGJjNmM2YmFhOWRkYzBiYWRlMmU5ODVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjU2LDkgKzE2
NTYsMTMgQEAKIAkJN0VFNjg0NzAxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDVE
MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0VFNjg0NzExMkQyNkUzODAwRTc5NDE1
IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VS
ZXNwb25zZUNGTmV0LmNwcCAqLzsgfTsKIAkJN0VFNjg0NzUxMkQyNkU3MDAwRTc5NDE1IC8qIFJl
c291cmNlTG9hZGVyQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0VFNjg0NzQxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZO
ZXQuY3BwICovOyB9OworCQk4MTVFNjE2NzEzMjU4N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVy
SXRlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MTVFNjE2NjEzMjU4N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAgKi87IH07CiAJ
CTgxQTczMjVFMTIxMDE4OUIwMEZDMEQ5RSAvKiBJREJDdXJzb3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjVEMTIxMDE4OUIwMEZDMEQ5RSAv
KiBJREJDdXJzb3IuaCAqLzsgfTsKIAkJODFBNzMyNjAxMjEwMThBNDAwRkMwRDlFIC8qIElEQkN1
cnNvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MUE3MzI1RjEyMTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCAqLzsgfTsKIAkJODFBNzMy
NzgxMjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUE3MzI3NzEyMTAxOUUxMDBGQzBE
OUUgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuaCAqLzsgfTsKKwkJODFBQzU5OTkxMzE2MzZFNjAw
MDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtLmggKi87IH07CisJCTgxQUM1OTlBMTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODFBQzU5OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggKi87IH07CisJ
CTgxQUM2QzM2MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzZDMzUxMzFDNTdEMzAwMDlB
N0UwIC8qIFN0cmluZ0NhbGxiYWNrLmggKi87IH07CiAJCTgxQkUyMDk4MTFGNEFCOEQwMDkxNURG
QSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5MzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29y
QmFja2VuZEltcGwuY3BwICovOyB9OwogCQk4MUJFMjA5OTExRjRBQjhEMDA5MTVERkEgLyogSURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODFCRTIwOTQxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2UuaCAqLzsgfTsKIAkJODFCRTIwRDIxMUY0QkMzMjAwOTE1REZBIC8qIEpTSURC
Q3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgxQkUyMEE3MTFGNEI2NkYwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5jcHAgKi87IH07CkBAIC04
MTQzLDkgKzgxNDcsMTYgQEAKIAkJN0VFNjg0NUQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNl
UmVzcG9uc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VSZXNw
b25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ1RTEyRDI2RTM4MDBF
Nzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdFRTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRl
ckNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlc291cmNl
TG9hZGVyQ0ZOZXQuY3BwOyBwYXRoID0gY2YvUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxNUU2MTY2MTMyNTg3QUEwMEI2MjJCMCAvKiBEYXRh
VHJhbnNmZXJJdGVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERh
dGFUcmFuc2Zlckl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI1
RDEyMTAxODlCMDBGQzBEOUUgLyogSURCQ3Vyc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IElEQkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3
MzI1RjEyMTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IElEQkN1cnNvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW1wbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAg
LyogRGF0YVRyYW5zZmVySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
YXRhVHJhbnNmZXJJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM1OTk4
MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MUFDNUFFODEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJh
bnNmZXJJdGVtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbXMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUFDNkMzNDEzMUM1N0MyMDAwOUE3
RTAgLyogU3RyaW5nQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFN0cmluZ0Nh
bGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFBQzZDMzUxMzFDNTdE
MzAwMDlBN0UwIC8qIFN0cmluZ0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN0cmluZ0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgx
QkUyMDkzMTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQkUyMDk0MTFGNEFCOEQwMDkxNURGQSAv
KiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODFCRTIwOUMxMUY0QUJCRDAwOTE1REZBIC8qIElEQkN1cnNvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gSURCQ3Vyc29yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE5MDAwLDYgKzE5MDExLDExIEBACiAJCQkJNjJDRDMyNTYxMTU3RTU3QzAwNjNCMEE3
IC8qIEN1c3RvbUV2ZW50LmNwcCAqLywKIAkJCQk2MkNEMzI1NzExNTdFNTdDMDA2M0IwQTcgLyog
Q3VzdG9tRXZlbnQuaCAqLywKIAkJCQk2MkNEMzI1ODExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9t
RXZlbnQuaWRsICovLAorCQkJCTgxNUU2MTY2MTMyNTg3QUEwMEI2MjJCMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtLmNwcCAqLywKKwkJCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5z
ZmVySXRlbS5oICovLAorCQkJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtcy5oICovLAorCQkJCTgxQUM1QUU4MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtLmlkbCAqLywKKwkJCQk4MUFDNUFFOTEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5z
ZmVySXRlbXMuaWRsICovLAogCQkJCUJDNjQ2NDFCMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0
RE9NU3RyaW5nTWFwLmNwcCAqLywKIAkJCQlCQzY0NjQxQTExRDdGNDE2MDA2NDU1QjAgLyogRGF0
YXNldERPTVN0cmluZ01hcC5oICovLAogCQkJCUE4QzIyOEEwMTFENTcyMkUwMEQ1QTdEMyAvKiBE
ZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCAqLywKQEAgLTE5MTk0LDYgKzE5MjEwLDggQEAK
IAkJCQlDRUEzOTQ5QjExRDQ1Q0RBMDAzMDk0Q0YgLyogU3RhdGljSGFzaFNldE5vZGVMaXN0Lmgg
Ki8sCiAJCQkJQkM3RkE2MkMwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCAq
LywKIAkJCQlCQzdGQTYyQjBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCAqLywK
KwkJCQk4MUFDNkMzNTEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaCAqLywKKwkJ
CQk4MUFDNkMzNDEzMUM1N0MyMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaWRsICovLAogCQkJ
CUE4QzRBN0VDMDlENTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmNwcCAqLywKIAkJCQlB
OEM0QTdFQjA5RDU2MzI3MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVudC5oICovLAogCQkJCUFBNEMz
QTc0MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuY3BwICovLApAQCAtMTk3NzIsNiAr
MTk3OTAsOCBAQAogCQkJCUJDMjI3MkFEMEU4MkU4RjMwMEU3Rjk3NSAvKiBDdXJzb3JMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0I0MTNFMEU4NjMzRkQwMDMyQzRGMCAvKiBEYXNo
QXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQUM1OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBE
YXRhVHJhbnNmZXJJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MUFDNTk5QTEzMTYzNkU2MDAw
OUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2RDBC
MEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxOTYxMTZCMENBQzU2NTcwMDEwQTgwQyAvKiBEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFBNDVCNTYwQ0FEN0ZENzAwMEQyQkU5IC8qIERhdGFiYXNlQXV0aG9yaXplci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMjA1Niw2ICsyMjA3Niw3IEBACiAJCQkJOTNCMkQ4MTYwRjk5MjBEMjAw
NkFFNkIyIC8qIFN1ZGRlblRlcm1pbmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0MwNzg1
MDExNjVENUJFMDAzQTMyRUYgLyogU3VmZml4VHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJD
MTIxN0QxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTgxQUM2QzM2MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjc5NzQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2NTY1M0YyRTBEOTcyN0QyMDBDQTk3MjMgLyogU1ZHQWx0R2x5
cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHQW5nbGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxNjgsNiArMjUxODksNyBAQAogCQkJ
CTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUE1NzRGMjQxMzFEQjkzOTAwNDcxQjg4IC8qIFJlbmRlclF1b3RlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTVBNTc0RjI4MTMxREI5NkQwMDQ3MUI4OCAvKiBRdW90ZXNEYXRhLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTgxNUU2MTY3MTMyNTg3QUEwMEI2MjJCMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBkZjFjMDRhZjdhNGYxMTQxN2U1Mjcz
OTExZGQ1OGJlNGU2NjUyNDRkLi5lMmZlMjc3ZjA1MDQ2NjliMWIxYWJjODJiYmQ3YzBjNjM4YjEw
N2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQpAQCAtMTI4LDcgKzEyOCw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKIAog
ICAgICMgV2hlbiB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1wZXItY2xhc3MKICAg
ICAjIHJlb3JnYW5pemF0aW9uLCB3ZSB3b24ndCBuZWVkIHRoZXNlIHNwZWNpYWwgY2FzZXMuCi0g
ICAgaWYgKCEkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBhbmQgISRjb2Rl
R2VuZXJhdG9yLT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkdHlwZSkgYW5kICR0eXBlIG5lICJEYXRl
IikgeworICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSkgYW5k
ICEkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKSBhbmQgISRjb2RlR2VuZXJhdG9y
LT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkdHlwZSkgYW5kICR0eXBlIG5lICJEYXRlIikgewogICAg
ICAgICAjIGRlZmF1bHQsIGluY2x1ZGUgdGhlIHNhbWUgbmFtZWQgZmlsZQogICAgICAgICAkaW1w
bEluY2x1ZGVze0dldFY4SGVhZGVyTmFtZSgke3R5cGV9KX0gPSAxOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJv
YXJkLmgKaW5kZXggYjhlYWRmYjZkMDY3NDg1YjQxOGI4NzliMWE5Y2RmZmM2ZmNjZTAxZi4uYTI2
NTQwNzcxMDAxZGViZGE1ZTk2ZTA4OTJlZWQ5NGNjMjcxNTM0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9h
cmQuaApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
aCIKICNpbmNsdWRlICJDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCIKKyNpbmNsdWRlICJEYXRhVHJh
bnNmZXJJdGVtcy5oIgogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAiRHJhZ0lt
YWdlLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKQEAgLTg0LDYgKzg1LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzRGF0YSgpID0gMDsKICAgICAgICAg
CiAgICAgICAgIHZvaWQgc2V0QWNjZXNzUG9saWN5KENsaXBib2FyZEFjY2Vzc1BvbGljeSk7Cisg
ICAgICAgIENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Bv
bGljeTsgfQogCiAgICAgICAgIERyYWdPcGVyYXRpb24gc291cmNlT3BlcmF0aW9uKCkgY29uc3Q7
CiAgICAgICAgIERyYWdPcGVyYXRpb24gZGVzdGluYXRpb25PcGVyYXRpb24oKSBjb25zdDsKQEAg
LTkxLDExICs5MywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0RGVz
dGluYXRpb25PcGVyYXRpb24oRHJhZ09wZXJhdGlvbik7CiAgICAgICAgIAogICAgICAgICB2b2lk
IHNldERyYWdIYXNTdGFydGVkKCkgeyBtX2RyYWdTdGFydGVkID0gdHJ1ZTsgfQorCisjaWYgRU5B
QkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRh
VHJhbnNmZXJJdGVtcz4gaXRlbXMoKSA9IDA7CisjZW5kaWYKICAgICAgICAgCiAgICAgcHJvdGVj
dGVkOgogICAgICAgICBDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBDbGlwYm9hcmRU
eXBlKTsKIAotICAgICAgICBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5KCkgY29uc3QgeyBy
ZXR1cm4gbV9wb2xpY3k7IH0KICAgICAgICAgYm9vbCBkcmFnU3RhcnRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZHJhZ1N0YXJ0ZWQ7IH0KICAgICAgICAgCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZC5pZGwKaW5kZXggMTAyNGEzNmQxNmEzYzQ5MDNhZjBkZTZkNWQzZGY5NmVkODg3NGRh
NC4uM2QzNmExYTI4NmY4NTllYWFiM2E5MzNhNmI2NTE3MzZmYzJlNjEwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NsaXBib2FyZC5pZGwKQEAgLTQyLDYgKzQyLDggQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBb
UmVxdWlyZXNBbGxBcmd1bWVudHNdIGJvb2xlYW4gc2V0RGF0YShpbiBET01TdHJpbmcgdHlwZSwg
aW4gRE9NU3RyaW5nIGRhdGEpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNldERyYWdJbWFnZShp
biBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLCBpbiBsb25nIHgsIGluIGxvbmcgeSkKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNU10gRGF0YVRyYW5zZmVySXRlbXMgaXRlbXM7
CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhlZWM4NjkyYWYxZmJkYmQ1MmI5OGU0YTZkNWI5NzI4M2QxNjUyNGYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVt
LmgiCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjb25zdCBjaGFyIERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmdbXSA9ICJzdHJp
bmciOworY29uc3QgY2hhciBEYXRhVHJhbnNmZXJJdGVtOjpraW5kRmlsZVtdID0gImZpbGUiOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZF
Ul9JVEVNUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVh
MzNmYjRmNzM0OTNkMWQ4OGEzN2Y2YWI0YTFjMzM1NTAxNjI0NmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1faAorI2RlZmluZSBEYXRhVHJhbnNmZXJJdGVtX2gKKwor
I2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5z
ZmVySXRlbT4geworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBjaGFyIGtpbmRTdHJpbmdbXTsK
KyAgICBzdGF0aWMgY29uc3QgY2hhciBraW5kRmlsZVtdOworCisgICAgdmlydHVhbCBTdHJpbmcg
a2luZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB0eXBlKCkgY29uc3QgPSAwOwor
CisgICAgdmlydHVhbCB2b2lkIGdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+
KSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
REFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2VuZGlmIC8vIERhdGFUcmFuc2Zlckl0ZW1faApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyYzk5NDI2NDY2
YjQyNjZhNGJlYTYzMjA0MTUyZjI1ZmNmODhkZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBj
b3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURBVEFfVFJBTlNG
RVJfSVRFTVMKKyAgICBdIERhdGFUcmFuc2Zlckl0ZW0geworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgdHlwZTsKKworICAgICAgICB2b2lkIGdldEFzU3RyaW5nKGluIFtDYWxsYmFja10gU3RyaW5n
Q2FsbGJhY2sgY2FsbGJhY2spOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlckl0ZW1zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGEzY2EwODMyMzc1YjczNGZlODk2NzYwODQ0MDdiYjEy
ODdiM2FhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtcy5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1zX2gKKyNk
ZWZpbmUgRGF0YVRyYW5zZmVySXRlbXNfaAorCisjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRF
TVMpCisKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIkZpbGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtcyA6IHB1Ymxp
YyBSZWZDb3VudGVkPERhdGFUcmFuc2Zlckl0ZW1zPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB1
bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9u
Q29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRp
b25Db2RlJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVt
c19oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFjYjM2Yjg4M2I0NzllODhkMDc5ZWYzMjRlZWQ3ZDcxZTgwYzUzN2UKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
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
LworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25h
bD1EQVRBX1RSQU5TRkVSX0lURU1TLAorICAgICAgICBIYXNJbmRleEdldHRlciwKKyAgICAgICAg
Q3VzdG9tRGVsZXRlUHJvcGVydHksCisgICAgXSBEYXRhVHJhbnNmZXJJdGVtcyB7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxlbmd0aDsKKyAgICAgICAgRGF0YVRyYW5zZmVySXRl
bSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIGdldHRlcjsKKworICAgICAgICB2b2lkIGNs
ZWFyKCk7CisgICAgICAgIHZvaWQgYWRkKGluIERPTVN0cmluZyBkYXRhLCBpbiBET01TdHJpbmcg
dHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3Ry
aW5nQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjdkOWQ0Y2E3YzAyZGUwNDMzZDc0NTIwMzFlZDMy
YWNmNDhhNTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0Nh
bGxiYWNrLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3RyaW5nQ2FsbGJhY2tfaAorI2RlZmlu
ZSBTdHJpbmdDYWxsYmFja19oCisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTdHJpbmdDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFN0cmluZ0NhbGxiYWNrPiB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3RyaW5nQ2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlRXZlbnQoY29uc3QgU3RyaW5nJiBkYXRhKSA9IDA7CisKKyAgICAvLyBIZWxw
ZXIgdG8gcG9zdCBjYWxsYmFjayB0YXNrLgorICAgIHZvaWQgc2NoZWR1bGVDYWxsYmFjayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGEpCisgICAgewor
ICAgICAgICBjb250ZXh0LT5wb3N0VGFzayhuZXcgRGlzcGF0Y2hDYWxsYmFja1Rhc2sodGhpcywg
ZGF0YSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBjbGFzcyBEaXNwYXRjaENhbGxiYWNrVGFz
ayA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIERpc3BhdGNoQ2FsbGJhY2tUYXNrKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNh
bGxiYWNrLCBjb25zdCBTdHJpbmcmIGRhdGEpCisgICAgICAgICAgICA6IG1fY2FsbGJhY2soY2Fs
bGJhY2spLCBtX2RhdGEoZGF0YSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgdmly
dHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQorICAgICAgICB7
CisgICAgICAgICAgICBtX2NhbGxiYWNrLT5oYW5kbGVFdmVudChtX2RhdGEpOworICAgICAgICB9
CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IG1fY2FsbGJh
Y2s7CisgICAgICAgIGNvbnN0IFN0cmluZyBtX2RhdGE7CisgICAgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFN0cmluZ0NhbGxiYWNrX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU3RyaW5nQ2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMThkODNmZTBhZjRjMmE1ZDQzMmE4
NTBhMGJkMDhlM2MzMmVkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U3RyaW5nQ2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisgICAgaW50
ZXJmYWNlIFsKKyAgICAgICAgQ2FsbGJhY2sKKyAgICBdIFN0cmluZ0NhbGxiYWNrIHsKKyAgICAg
ICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcgZGF0YSk7CisgICAgfTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmNwcAppbmRleCA3ZTU4ZjAzMWUyYjE0YTlmOTIyNDMyZDY5MTY4M2QxMTNjZmYwYTc2Li4z
NWJiMzg0NDYyNGUwNWU2MzJiZjhkMWMzZTIzZGFhNDUzZWMzYWQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRhT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiQ2xpcGJvYXJkTWltZVR5cGVzLmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzQ2hy
b21pdW0uaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKQEAgLTM0Miw0ICszNDMsOSBAQCBib29sIENsaXBib2FyZENocm9taXVtOjpoYXNEYXRhKCkK
ICAgICByZXR1cm4gbV9kYXRhT2JqZWN0LT5oYXNEYXRhKCk7CiB9CiAKK1Bhc3NSZWZQdHI8RGF0
YVRyYW5zZmVySXRlbXM+IENsaXBib2FyZENocm9taXVtOjppdGVtcygpCit7CisgICAgcmV0dXJu
IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNyZWF0ZSh0aGlzLCBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJk
Q2hyb21pdW0uaAppbmRleCBkMzBhMWM0YTEzYTVhMmE1YjUxMTEzZjRjNzdiNDBmMmUzZWQxMmUx
Li4wNTdhZGFlZDBiNTQ1Y2UwOWUxY2YzNTU2MzQwNjAyNDZhMjg5ZDBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKQEAg
LTgwLDYgKzgwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBoYXNEYXRhKCk7CiAKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0
ZW1zPiBpdGVtcygpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgQ2xpcGJvYXJkQ2hyb21pdW0o
Q2xpcGJvYXJkVHlwZSwgUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3Q+LCBDbGlwYm9hcmRB
Y2Nlc3NQb2xpY3ksIEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgxYWVkZThhZDU4ZjYwMDY5NDVmMTQ0MDlhM2FhNTY0ZWVjNGQ2N2YKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVt
Q2hyb21pdW0uY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0+IERhdGFUcmFuc2Zlckl0ZW1DaHJv
bWl1bTo6Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0ob3duZXIsIGNvbnRleHQsIGRh
dGEsIHR5cGUpKTsKK30KKworRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpEYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSkK
KyAgICA6IG1fb3duZXIob3duZXIpLCBtX2NvbnRleHQoY29udGV4dCksIG1fa2luZChraW5kU3Ry
aW5nKSwgbV90eXBlKHR5cGUpLCBtX2RhdGEoZGF0YSkKK3sKK30KKworU3RyaW5nIERhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bTo6a2luZCgpIGNvbnN0Cit7CisgICAgaWYgKG1fb3duZXItPnBvbGlj
eSgpID09IENsaXBib2FyZE51bWIpCisgICAgICAgIHJldHVybiAiIjsKKyAgICByZXR1cm4gbV9r
aW5kOworfQorCitTdHJpbmcgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjp0eXBlKCkgY29uc3QK
K3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKKyAgICAgICAg
cmV0dXJuICIiOworICAgIHJldHVybiBtX3R5cGU7Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRl
bUNocm9taXVtOjpnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFj
aykKK3sKKyAgICBpZiAoKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFJlYWRhYmxlCisg
ICAgICAgICAmJiBtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKKyAgICAg
ICAgfHwgbV9raW5kICE9IGtpbmRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKyAgICBjYWxsYmFj
ay0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQsIG1fZGF0YSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmMxMzQ1NmE0MTMz
NDk2YTMzNzhhYWMzYjcxNDMyYzI4YTAyMTkyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
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
RS4KKyAqLworCisjaWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bV9oCisjZGVmaW5lIERh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bV9oCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVN
UykKKworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0u
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0g
OiBwdWJsaWMgRGF0YVRyYW5zZmVySXRlbSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+
IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhLCBjb25z
dCBTdHJpbmcmIHR5cGUpOworCisgICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0OworICAg
IHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0
cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPik7CisKK3ByaXZhdGU6CisgICAgRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKTsK
KworICAgIGNvbnN0IFJlZlB0cjxDbGlwYm9hcmQ+IG1fb3duZXI7CisgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogbV9jb250ZXh0OworICAgIGNvbnN0IFN0cmluZyBtX2tpbmQ7CisgICAgY29u
c3QgU3RyaW5nIG1fdHlwZTsKKyAgICBjb25zdCBTdHJpbmcgbV9kYXRhOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMp
CisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVtX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTk4YjBmZjg0NTkyMWFhZTljYmM1YjBmNzlhMTE3NzVkMGU4ODM2ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oIgorCisjaW5jbHVkZSAi
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtPiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9t
aXVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVy
SXRlbXNDaHJvbWl1bShvd25lciwgY29udGV4dCkpOworfQorCitEYXRhVHJhbnNmZXJJdGVtc0No
cm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBv
d25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkgOiBtX293bmVyKG93bmVyKSwg
bV9jb250ZXh0KGNvbnRleHQpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcgRGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bTo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkg
PT0gQ2xpcGJvYXJkTnVtYikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1faXRlbXMu
c2l6ZSgpOworfQorCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IERhdGFUcmFuc2Zlckl0
ZW1zQ2hyb21pdW06Oml0ZW0odW5zaWduZWQgbG9uZyBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAo
bV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYiB8fCBpbmRleCA+PSBsZW5ndGgoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1faXRlbXNbaW5kZXhdOworfQorCit2b2lk
IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRl
eCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENs
aXBib2FyZFdyaXRhYmxlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1faXRlbXMucmVtb3ZlKGluZGV4KTsKK30KKwordm9pZCBEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtOjpjbGVhcigpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgp
ICE9IENsaXBib2FyZFdyaXRhYmxlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLmNs
ZWFyKCk7Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6YWRkKGNvbnN0IFN0
cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9pdGVtcy5zaXplKCk7ICsraSkg
eworICAgICAgaWYgKG1faXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtp
bmQoKSA9PSBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICB9CisKKyAgICBt
X2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZShtX293bmVyLCBt
X2NvbnRleHQsIGRhdGEsIHR5cGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5z
ZmVySXRlbXNDaHJvbWl1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NzE4NGY0OGRiZmRmOTlkMDE0ZmRhNTdj
ZjIyMTQ2ZjBkZjQ4MmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgKQEAgLTAsMCArMSw3MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
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
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bV9oCisjZGVmaW5lIERhdGFUcmFuc2Zlckl0
ZW1zQ2hyb21pdW1faAorCisjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNpbmNs
dWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtcy5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW07CisKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0gOiBwdWJs
aWMgRGF0YVRyYW5zZmVySXRlbXMgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0+IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsZW5n
dGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lk
IGNsZWFyKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29u
c3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgRGF0YVRy
YW5zZmVySXRlbXNDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKKworICAgIFJlZlB0cjxDbGlwYm9hcmQ+IG1fb3duZXI7CisgICAgLy8gSW5k
aXJlY3RseSBvd25lZCBieSBvdXIgcGFyZW50LgorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IG1fY29udGV4dDsKKyAgICBWZWN0b3I8UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4g
PiBtX2l0ZW1zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVtc0No
cm9taXVtX2gKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85003</attachid>
            <date>2011-03-07 18:00:20 -0800</date>
            <delta_ts>2011-03-07 19:02:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55115-20110307180019.patch</filename>
            <type>text/plain</type>
            <size>71103</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA0ODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZTM1OWIwZTA1ZDBhY2U2YmI1NjJj
ZDkyYmY5YWU5YmZmOTk3MTJlLi43NWJmMjVkYTUyZjk1OGRhNGQyNzMwZmU3NzZkZWRmYjZmMmJk
NzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMtMDcgIERhbmllbCBDaGVuZyAgPGRj
aGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERhdGFUcmFuc2Zlckl0ZW1zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTExNQorCisgICAgICAgIExh
eW91dCB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBiYXNpYyBwcm9wZXJ0aWVzIG9mIGRhdGFUcmFu
c2Zlci5pdGVtcyBmdW5jdGlvbiBhcyBleHBlY3RlZC4KKworICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0wNyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0
ZW1zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWMwZjg3M2ZlZmIyNDc2ZDkzYThlZTQ5MjY0
YWExNDg2NThiZDQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogUG9wdWxhdGluZyBEYXRhVHJhbnNmZXJJdGVtcy4u
LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI3OiBDYXVnaHQgZXhjZXB0aW9uICJFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiIGFzIGV4cGVjdGVkLgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDMxOiBWZXJpZnlpbmcgY29udGVudHMgb2YgRGF0YVRyYW5zZmVySXRlbXMu
Li4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMjogaXRlbXMubGVuZ3RoOiAyCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzM6IGl0ZW1zWzBdLmtpbmQ6IHN0cmluZworQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDM0OiBpdGVtc1swXS50eXBlOiB0ZXh0L3BsYWluCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MzU6IGl0ZW1zWzFdLmtpbmQ6IHN0cmluZworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBpdGVt
c1sxXS50eXBlOiB0ZXh0L2h0bWwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0MDogQ2hlY2tpbmcg
aWYgaXRlbXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBjb2xsZWN0aW9uIGNhbiBiZSBpbmRleGVkOgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDQxOiBpdGVtc1syXTogdW5kZWZpbmVkCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNTE6IENoZWNraW5nIHRoYXQgYSByZWFkLW9ubHkgRGF0YVRyYW5zZmVySXRl
bXMgY2Fubm90IGJlIG11dGF0ZWQuLi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogaXRlbXMu
bGVuZ3RoOiAwCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IGl0ZW1zWzBdOiB1bmRlZmluZWQK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA2ODogVGVzdGluZyBpZiBEYXRhVHJhbnNmZXJJdGVtcyBj
YW4gYmUgYWNjZXNzZWQgb3V0c2lkZSBhbiBldmVudCBoYW5kbGVyLi4uCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTM6IGl0ZW1zWzBdIHZhbHVlOiBIZWxsbyBXb3JsZCEKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxMzogaXRlbXNbMV0gdmFsdWU6IDxiPkhlbGxvIFdvcmxkIQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDk5OiBQQVNTRUQKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCByZWFkaW5nL3dyaXRp
bmcgZnVuY3Rpb25hbGl0eSBvZiBEYXRhVHJhbnNmZXJJdGVtcy4gVGhpcyB0ZXN0IHJlcXVpcmVz
IERSVC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRy
YW5zZmVyLWl0ZW1zLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10
cmFuc2Zlci1pdGVtcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MTgxMjQwMjAwM2IzNjM4ZTY2MzU4M2Y4
ZjNmZDYwNTkxNmIwMDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25jb3B5PSJjb3B5KGV2ZW50KSIgb25wYXN0ZT0i
cGFzdGUoZXZlbnQpIj4KKzxkaXY+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHJlYWRpbmcvd3JpdGlu
ZyBmdW5jdGlvbmFsaXR5IG9mIERhdGFUcmFuc2Zlckl0ZW1zLiBUaGlzIHRlc3QgcmVxdWlyZXMg
RFJULjwvZGl2PgorCis8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgordmFyIHNhdmVkRGF0YVRyYW5zZmVySXRlbXMgPSBudWxsOwordmFyIHNhdmVkRGF0YVRy
YW5zZmVySXRlbSA9IG51bGw7CisKK2Z1bmN0aW9uIGhhbmRsZUV2ZW50KGRhdGEpCit7CisgICAg
Y29uc29sZS5sb2coZGF0YSk7Cit9CisKK2Z1bmN0aW9uIGNvcHkoZXYpCit7CisgICAgdmFyIGl0
ZW1zID0gZXZlbnQuY2xpcGJvYXJkRGF0YS5pdGVtczsKKyAgICBjb25zb2xlLmxvZygnUG9wdWxh
dGluZyBEYXRhVHJhbnNmZXJJdGVtcy4uLicpOworICAgIGl0ZW1zLmFkZCgnSGVsbG8gV29ybGQh
JywgJ3RleHQvcGxhaW4nKTsKKyAgICBpdGVtcy5hZGQoJzxiPkhlbGxvIFdvcmxkIScsICd0ZXh0
L2h0bWwnKTsKKworICAgIC8vIENoZWNrIHRoYXQgYW4gZXhjZXB0aW9uIGlzIHByb3Blcmx5IHJh
aXNlZCB3aGVuIGF0dGVtcHRpbmcgdG8gYWRkIGEgZHVwbGljYXRlIHN0cmluZyB0eXBlLgorICAg
IHRyeSB7CisgICAgICBpdGVtcy5hZGQoJ01vbycsICd0ZXh0L3BsYWluJyk7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgY29uc29sZS5sb2coJ0NhdWdodCBleGNlcHRpb24gIicgKyBlICsgJyIg
YXMgZXhwZWN0ZWQuJyk7CisgICAgfQorCisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29udGFpbmVy
IGRpZG4ndCBjaGFuZ2UuCisgICAgY29uc29sZS5sb2coJ1ZlcmlmeWluZyBjb250ZW50cyBvZiBE
YXRhVHJhbnNmZXJJdGVtcy4uLicpOworICAgIGNvbnNvbGUubG9nKCdpdGVtcy5sZW5ndGg6ICcg
KyBpdGVtcy5sZW5ndGgpOworICAgIGNvbnNvbGUubG9nKCdpdGVtc1swXS5raW5kOiAnICsgaXRl
bXNbMF0ua2luZCk7CisgICAgY29uc29sZS5sb2coJ2l0ZW1zWzBdLnR5cGU6ICcgKyBpdGVtc1sw
XS50eXBlKTsKKyAgICBjb25zb2xlLmxvZygnaXRlbXNbMV0ua2luZDogJyArIGl0ZW1zWzFdLmtp
bmQpOworICAgIGNvbnNvbGUubG9nKCdpdGVtc1sxXS50eXBlOiAnICsgaXRlbXNbMV0udHlwZSk7
CisgICAgaXRlbXNbMF0uZ2V0QXNTdHJpbmcoZnVuY3Rpb24gKGRhdGEpIHsgaGFuZGxlRXZlbnQo
J2l0ZW1zWzBdIHZhbHVlOiAnICsgZGF0YSk7IH0pOworICAgIGl0ZW1zWzFdLmdldEFzU3RyaW5n
KGZ1bmN0aW9uIChkYXRhKSB7IGhhbmRsZUV2ZW50KCdpdGVtc1sxXSB2YWx1ZTogJyArIGRhdGEp
OyB9KTsKKworICAgIGNvbnNvbGUubG9nKCdDaGVja2luZyBpZiBpdGVtcyBwYXN0IHRoZSBlbmQg
b2YgdGhlIGNvbGxlY3Rpb24gY2FuIGJlIGluZGV4ZWQ6Jyk7CisgICAgY29uc29sZS5sb2coJ2l0
ZW1zWzJdOiAnICsgaXRlbXNbMl0pOworCisgICAgc2F2ZWREYXRhVHJhbnNmZXJJdGVtcyA9IGl0
ZW1zOworICAgIHNhdmVkRGF0YVRyYW5zZmVySXRlbSA9IGl0ZW1zWzBdOworfQorCitmdW5jdGlv
biBwYXN0ZShldikKK3sKKyAgICB2YXIgaXRlbXMgPSBldmVudC5jbGlwYm9hcmREYXRhLml0ZW1z
OworICAgIHZhciBvcmlnaW5hbExlbmd0aCA9IGl0ZW1zLmxlbmd0aDsKKyAgICBjb25zb2xlLmxv
ZygnQ2hlY2tpbmcgdGhhdCBhIHJlYWQtb25seSBEYXRhVHJhbnNmZXJJdGVtcyBjYW5ub3QgYmUg
bXV0YXRlZC4uLicpOworICAgIC8vIFNob3VsZCBiZSBpbW11dGFibGUuCisgICAgaXRlbXMuYWRk
KCdIZWxsbyBXb3JsZCEnLCAndGV4dC9wbGFpbicpOworICAgIGNvbnNvbGUubG9nKCdpdGVtcy5s
ZW5ndGg6ICcgKyBpdGVtcy5sZW5ndGgpOworICAgIGNvbnNvbGUubG9nKCdpdGVtc1swXTogJyAr
IGl0ZW1zWzBdKTsgLy8gU2hvdWxkbid0IGV4aXN0LgorfQorCitmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGNvcHlDb21tYW5kKCk7CisgICAgcGFz
dGVDb21tYW5kKCk7CisKKyAgICB2YXIgZmFpbGVkID0gZmFsc2U7CisgICAgY29uc29sZS5sb2co
J1Rlc3RpbmcgaWYgRGF0YVRyYW5zZmVySXRlbXMgY2FuIGJlIGFjY2Vzc2VkIG91dHNpZGUgYW4g
ZXZlbnQgaGFuZGxlci4uLicpOworICAgIGlmIChzYXZlZERhdGFUcmFuc2Zlckl0ZW1zLmxlbmd0
aCAhPSAwKSB7CisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgIGNvbnNvbGUubG9nKCdE
YXRhVHJhbnNmZXJJdGVtcy5sZW5ndGggbm9uLXplcm8gb3V0c2lkZSBldmVudCBoYW5kbGVyIScp
OworICAgIH0KKyAgICBzYXZlZERhdGFUcmFuc2Zlckl0ZW1zLmFkZCgnU2VjdXJpdHk/JywgJ3Rl
eHQvZm9vJyk7CisgICAgaWYgKHNhdmVkRGF0YVRyYW5zZmVySXRlbXMubGVuZ3RoICE9IDApIHsK
KyAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgY29uc29sZS5sb2coJ0RhdGFUcmFuc2Zl
ckl0ZW1zIG11dGF0ZWQgb3V0c2lkZSBldmVudCBoYW5kbGVyIScpOworICAgIH0KKyAgICBpZiAo
c2F2ZWREYXRhVHJhbnNmZXJJdGVtc1swXSkgeworICAgICAgICBmYWlsZWQgPSB0cnVlOworICAg
ICAgICBjb25zb2xlLmxvZygnRGF0YVRyYW5zZmVySXRlbSBhY2Nlc3NlZCBvdXRzaWRlIGV2ZW50
IGhhbmRsZXIhJyk7CisgICAgfQorICAgIGlmIChzYXZlZERhdGFUcmFuc2Zlckl0ZW0ua2luZCAh
PSAnJykgeworICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICBjb25zb2xlLmxvZygnRGF0
YVRyYW5zZmVySXRlbS5raW5kIGFjY2Vzc2libGUgb3V0c2lkZSBldmVudCBoYW5kbGVyIScpOwor
ICAgIH0KKyAgICBpZiAoc2F2ZWREYXRhVHJhbnNmZXJJdGVtLnR5cGUhPSAnJykgeworICAgICAg
ICBmYWlsZWQgPSB0cnVlOworICAgICAgICBjb25zb2xlLmxvZygnRGF0YVRyYW5zZmVySXRlbS50
eXBlYWNjZXNzaWJsZSBvdXRzaWRlIGV2ZW50IGhhbmRsZXIhJyk7CisgICAgfQorICAgIHNhdmVk
RGF0YVRyYW5zZmVySXRlbS5nZXRBc1N0cmluZyhmdW5jdGlvbiAoZGF0YSkgeworICAgICAgICBm
YWlsZWQgPSB0cnVlOworICAgICAgICBjb25zb2xlLmxvZygnZ2V0QXNTdHJpbmcgY2FsbGVkIGJh
Y2sgb3V0c2lkZSBldmVudCBoYW5kbGVyIScpOworICAgIH0pOworCisgICAgd2luZG93LnNldFRp
bWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAoZmFpbGVkKQorICAgICAgICAgICAgY29u
c29sZS5sb2coJ0ZBSUxFRCcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb25zb2xlLmxv
ZygnUEFTU0VEJyk7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfSwgMCk7Cit9CisKK3J1blRlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGIzYzFjNGYzYWUzMzkzMGMx
MzA1ZjQ3ZGEzZjg4NjcwMTA2MWJiYjguLjkyNmJjNjI4NjUyOWQ1M2Y1MWMxNjNiZTlmNmMyZWEx
Mjg4N2Y3NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMzE1LDMgKzEzMTUsNiBA
QCBmYXN0L2NhbnZhcy9yZ2JhLXBhcnNpbmcuaHRtbAogIyBNaXNzaW5nIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFZhbHVlRm9yVXNlcgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTU4NjIKIGZhc3QvZm9ybXMvb25jaGFuZ2Utc2V0dmFsdWVmb3J1c2VyLmh0bWwK
KworIyBEYXRhVHJhbnNmZXJJdGVtcyBpcyBub3QgeWV0IGltcGxlbWVudGVkLgorZWRpdGluZy9w
YXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBl
ZAppbmRleCAxNzYxYzBjNDcxZmJiZThmNWVjODgzZDg5NDIzYTU2NDI0NGM0Y2E1Li5jNjA4ZTE3
MTBjNzYyNzFmOGY5YjFhNTE0YTU5MzA3Njc1YmIwZDkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZApAQCAtMzAxLDMgKzMwMSw2IEBAIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWluLW1lZGlhLWRv
Y3VtZW50Lmh0bWwKICMgTm9uLXByZW11bHRpcGxpZWQtYWxwaGEgY3VycmVudGx5IGJyb2tlbiBv
biBtYWMuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTUwOQog
Y29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm9ucHJlbXVsdGlwbGllZC1ibGVuZC5odG1sCisKKyMg
RGF0YVRyYW5zZmVySXRlbXMgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KK2VkaXRpbmcvcGFzdGVi
b2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4
IDg3NjQxYzYzNGNkNTdiYWRiYWM4MzQ2OTA2Mzg2ZjQ1M2U5NDlmZGMuLmFhNTYxNTY1YTE4NTkx
ZTcyOGE3M2ZmMDNmZDliYjYwNmVkZWRiMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAt
MTA4LDYgKzEwOCw5IEBAIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRtbAogIyBUaGlz
IHBvcnQgZG9lc24ndCBzdXBwb3J0IHY4IGkxOG4gZXh0ZW5zaW9uLgogZmFzdC9qcy9pMThuLWJp
bmRpbmdzLWxvY2FsZS5odG1sCiAKKyMgRGF0YVRyYW5zZmVySXRlbXMgaXMgbm90IHlldCBpbXBs
ZW1lbnRlZC4KK2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLmh0bWwKKwog
IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gIwogIyAgICAgICBEcmFnIGFuZCBEcm9wIFN1cHBvcnQgaW4g
RFJULiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwogIyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAxOWQ2OTVhOTRlZjE1
ZTZmZTcxNDc1MjZjMjQyNzU0NjdlOGI3MWI1Li45MzI2NzdhNzBlZTRjY2NjYzhiY2ZiNjFhMDA1
MDNhM2QzOGYzZGU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTE2NCwzICsxMTY0
LDYgQEAgaW5zcGVjdG9yL2RlYnVnZ2VyCiAKICMgRm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NDUxOQogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1yZXNwb25zZXR5cGUtYXJyYXlidWZmZXIuaHRtbAorCisjIERhdGFUcmFuc2Zlckl0ZW1zIGlz
IG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1p
dGVtcy5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rIGIvU291cmNl
L1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCBkOWNkOTJlZDUyMmZkNzNkMzBjNjI5ZmJhODQ4YjMy
MTg5ZTljZTg4Li45ODU5OGZlYjkwYWRhODlkMTk3ZmY2NGVjZjdkNDJmYzg3M2I1MTZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsKQEAgLTExNCw2ICsxMTQsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9T
UkNfRklMRVMpIFwKIAlkb20vQ29udGFpbmVyTm9kZS5jcHAgXAogCWRvbS9ET01JbXBsZW1lbnRh
dGlvbi5jcHAgXAogCWRvbS9ET01TdHJpbmdMaXN0LmNwcCBcCisJZG9tL0RhdGFUcmFuc2Zlckl0
ZW0uY3BwIFwKIAlkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAgXAogCWRvbS9EZXZp
Y2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCiAJZG9tL0RldmljZU1vdGlvbkRhdGEuY3BwIFwKQEAg
LTE3Niw2ICsxNzcsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwK
IAlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogCWRvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3Qu
Y3BwIFwKIAlkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKKwlkb20vU3RyaW5nQ2FsbGJhY2suY3Bw
IFwKIAlkb20vU3R5bGVFbGVtZW50LmNwcCBcCiAJZG9tL1N0eWxlZEVsZW1lbnQuY3BwIFwKIAlk
b20vVGFnTm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZWQ5NTA2NDYyNTI0
OTI1NTRhZmM2NTFjMDUwNWM3NzE2ZmY1NDgwNC4uZjZkZmUzOGRiZTlkMzNmNjYyYTEyY2MzMmRh
ZDJjYzdjY2NjYmIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1NzMsNiArMTU3MywxOCBA
QCBJRiAoRU5BQkxFX0RBVEFCQVNFKQogICAgICkKIEVORElGICgpCiAKK0lGIChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUykKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAg
ICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmlkbAorICAgICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaWRsCisgICAgKQorICAgIExJU1Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAK
KyAgICAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmNwcAorICAgICkKK0VORElGICgpCisKIElGIChF
TkFCTEVfTUFUSE1MKQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBt
YXRobWwvTWF0aE1MRWxlbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MTYxZDA1ZGJlMDEzZWRlYmZl
Nzk0MGQ5ZmRmM2Y4YmIzMjcxOTM2Li41ZjYyYzgzMWQyMDI1ZDdmN2Q3N2FhMTQ1NTE4Y2U5YmE0
NzYzNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTEtMDMtMDcgIERhbmllbCBD
aGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERhdGFUcmFuc2Zlckl0ZW1zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTExNQorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdHVicyBmb3IgRGF0YVRyYW5zZmVySXRlbXMvRGF0YVRy
YW5zZmVySXRlbSBhcyB3ZWxsIGFzIGltcGxlbWVudGluZyB0aGUKKyAgICAgICAgYmFzaWMgZnVu
Y3Rpb25hbGl0eSBvbiB0aGUgQ2hyb21pdW0gcG9ydC4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIERh
dGFUcmFuc2Zlckl0ZW06OmdldEFzRmlsZSwKKyAgICAgICAgYWxsIGZ1bmN0aW9uYWxpdHkgb24g
dGhlIERhdGFUcmFuc2Zlckl0ZW1zIGNvbGxlY3Rpb24gaGFzIGJlZW4gaW1wbGVtZW50ZWQuCisg
ICAgICAgIFRoaXMgY2hhbmdlIGRvZXMgbm90IGFjdHVhbGx5IGhvb2sgdXAgRGF0YVRyYW5zZmVy
SXRlbXMgdG8gcmVmbGVjdCB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIGEKKyAgICAgICAgZHJvcC9w
YXN0ZSBvcGVyYXRpb24gb3IgdG8gYWxsb3cgbXV0YXRpb24gb2YgZGF0YSBpbiBhIGNvcHkvZHJh
ZyBzdGFydCB5ZXQuIFRoYXQgd2lsbCBiZQorICAgICAgICBlbmFibGVkIHZpYSBzZXZlcmFsIGZv
bGxvd3VwIHBhdGNoZXMuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEt
dHJhbnNmZXItaXRlbXMuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb2RlR2VuZXJhdG9ycy5wcmk6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBkb20vQ2xpcGJv
YXJkLmg6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnBvbGljeSk6CisgICAgICAgICog
ZG9tL0NsaXBib2FyZC5pZGw6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbS5oOiBBZGRlZC4KKyAgICAgICAg
KiBkb20vRGF0YVRyYW5zZmVySXRlbS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9EYXRhVHJh
bnNmZXJJdGVtcy5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBkb20vU3RyaW5nQ2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBkb20vU3RyaW5nQ2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHJp
bmdDYWxsYmFjazo6flN0cmluZ0NhbGxiYWNrKToKKyAgICAgICAgKiBkb20vU3RyaW5nQ2FsbGJh
Y2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6aXRlbXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmg6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OkRhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06
OmtpbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjp0eXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Z2V0QXNTdHJp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1
bS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbXND
aHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtOjpkZWxldGVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFU
cmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW06OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oOiBBZGRlZC4KKwogMjAxMS0wMy0wNyAgQ3NhYmEgT3N6
dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGRm
aXggYWZ0ZXIgcjgwNDc4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRv
cnMucHJpIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpCmluZGV4IGQyMGY2NjE3
Zjk5ZTc4OGM3NzkzOTJlYzZiMWY0ZTI4YzFhNDU3NmEuLjNlNDU5YTY5MzhjNGQ3ZWM0ZTNmOWY5
ODQ0MmM5ZjM2ZTk5ZTIzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0
b3JzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKQEAgLTEwOSw2
ICsxMDksOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGRvbS9Db21tZW50LmlkbCBcCiAgICAg
ZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsIFwKICAgICBkb20vQ3VzdG9tRXZlbnQuaWRsIFwKKyAg
ICBkb20vRGF0YVRyYW5zZmVySXRlbS5pZGwgXAorICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5p
ZGwgXAogICAgIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwgXAogICAgIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsIFwKQEAgLTE0
Niw2ICsxNDgsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50Lmlk
bCBcCiAgICAgZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCBcCiAgICAgZG9tL1JhbmdlLmlkbCBcCisg
ICAgZG9tL1N0cmluZ0NhbGxiYWNrLmlkbCBcCiAgICAgZG9tL1RleHQuaWRsIFwKICAgICBkb20v
VGV4dEV2ZW50LmlkbCBcCiAgICAgZG9tL1RvdWNoLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAKaW5kZXggNzJmMWIyZDZlMTZlNWRjZDZmMTcyNTE0M2ZkMTk0ZTg4YmQwMWEzYy4uOWFi
MzdlYzNiMTNjYTgyYjFlNjA0NjQ3ZTJjMmU0ZDMyZjIyNjI0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcApAQCAtNzIsNiArNzIsOCBAQAogI2luY2x1ZGUgIkpTRGF0YWJhc2VTeW5jLmNw
cCIKICNpbmNsdWRlICJKU0RhdGFHcmlkQ29sdW1uLmNwcCIKICNpbmNsdWRlICJKU0RhdGFHcmlk
Q29sdW1uTGlzdC5jcHAiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtLmNwcCIKKyNpbmNs
dWRlICJKU0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCIKICNpbmNsdWRlICJKU0RhdGFWaWV3LmNwcCIK
ICNpbmNsdWRlICJKU0RlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIgogI2luY2x1ZGUgIkpTRGV2
aWNlT3JpZW50YXRpb25FdmVudC5jcHAiCkBAIC0yODEsNiArMjgzLDcgQEAKICNpbmNsdWRlICJK
U1NRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU1N0b3JhZ2UuY3Bw
IgogI2luY2x1ZGUgIkpTU3RvcmFnZUV2ZW50LmNwcCIKKyNpbmNsdWRlICJKU1N0cmluZ0NhbGxi
YWNrLmNwcCIKICNpbmNsdWRlICJKU1N0eWxlTWVkaWEuY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVT
aGVldC5jcHAiCiAjaW5jbHVkZSAiSlNTdHlsZVNoZWV0TGlzdC5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCAyOTI5OGZmYWQ2ZTc3YWE2MWI1YmRlMTEyZDk2NmM0ZDY1Nzdh
OWI1Li45Yjg4N2YxNmMzMDZiOGZhNDJjZTY2NDI2MjdiMjc5NjVkMmI4MzkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE1MCw2ICsxNTAsOCBAQCBET01fQ0xBU1NFUyA9IFwK
ICAgICBET01Ub2tlbkxpc3QgXAogICAgIERPTVVSTCBcCiAgICAgRE9NV2luZG93IFwKKyAgICBE
YXRhVHJhbnNmZXJJdGVtIFwKKyAgICBEYXRhVHJhbnNmZXJJdGVtcyBcCiAgICAgRGF0YWJhc2Ug
XAogICAgIERhdGFiYXNlQ2FsbGJhY2sgXAogICAgIERhdGFiYXNlU3luYyBcCkBAIC0zNDcsNiAr
MzQ5LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sg
XAogICAgIFN0b3JhZ2UgXAogICAgIFN0b3JhZ2VFdmVudCBcCisgICAgU3RyaW5nQ2FsbGJhY2sg
XAogICAgIFNWR0FFbGVtZW50IFwKICAgICBTVkdBbHRHbHlwaEVsZW1lbnQgXAogICAgIFNWR0Fu
Z2xlIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNDk5M2JiYmJmN2UxMWI5Nzg5ZDhlM2E3YWJm
ZjA1MDkzYzliMWU1Yi4uOTVkZTNiYmVhMmYzMjIwODQzYmJlZmUzN2VlZmNiOTljYThlZGZmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTQwMTYsMTAgKzQwMTYsMjMgQEAgZW5kaWYgIyBFTkQg
RU5BQkxFX0RBVEFMSVNUCiAKICMgLS0tLQogIyBIVE1MNSBkYXRhIHRyYW5zZmVyIGl0ZW1zIHN1
cHBvcnQKLSMtLS0tLQorIyAtLS0tCiBpZiBFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUwogRkVB
VFVSRV9ERUZJTkVTICs9IEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEKIHdlYmNvcmVfY3Bw
ZmxhZ3MgKz0gLURFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUz0xCit3ZWJjb3JlX2J1aWx0X3Nv
dXJjZXMgKz0gXAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVy
SXRlbS5jcHAgXAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVy
SXRlbS5oIFwKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFUcmFuc2Zlckl0
ZW1zLmNwcCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVHJhbnNmZXJJ
dGVtcy5oIFwKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0cmluZ0NhbGxiYWNr
LmNwcCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdHJpbmdDYWxsYmFjay5o
Cit3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJ
dGVtLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TdHJpbmdDYWxsYmFjay5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFj
ay5oCiBlbmRpZiAjIEVORCBFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUwogCiAjIC0tLS0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBlZTM3ODk3NTdjN2IwZjcxYzdjNjU1NzhmNWRjOTE0Njk0NDZhNTlk
Li5iZjk5ZTU4ZTgzNGJiZTQ2NDFjNTQzZThjNzFlOWMyOWQ2MWQ2YjQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC01MCw2ICs1MCw4IEBACiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0aW9u
LmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ0xpc3QuaWRsJywKICAgICAgICAgICAg
ICdkb20vRE9NU3RyaW5nTWFwLmlkbCcsCisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0
ZW0uaWRsJywKKyAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsJywKICAgICAg
ICAgICAgICdkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vRGV2
aWNlT3JpZW50YXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5pZGwn
LApAQCAtODQsNiArODYsNyBAQAogICAgICAgICAgICAgJ2RvbS9SYW5nZS5pZGwnLAogICAgICAg
ICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SZXF1ZXN0
QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ2RvbS9TdHJpbmdDYWxs
YmFjay5pZGwnLAogICAgICAgICAgICAgJ2RvbS9UZXh0LmlkbCcsCiAgICAgICAgICAgICAnZG9t
L1RleHRFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Ub3VjaC5pZGwnLApAQCAtMTIyOCw2
ICsxMjMxLDkgQEAKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFwLmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL0RPTVN0cmluZ01hcC5oJywKICAgICAgICAgICAgICdkb20vRE9NVGltZVN0YW1w
LmgnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcCcsCisgICAgICAgICAg
ICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCcsCisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1zLmgnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAgICAnZG9t
L0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwJywKQEAgLTEzODAsNiArMTM4Niw4IEBACiAg
ICAgICAgICAgICAnZG9tL1N0YXRpY05vZGVMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9TdGF0
aWNTdHJpbmdMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY1N0cmluZ0xpc3QuaCcs
CisgICAgICAgICAgICAnZG9tL1N0cmluZ0NhbGxiYWNrLmNwcCcsCisgICAgICAgICAgICAnZG9t
L1N0cmluZ0NhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZUVsZW1lbnQuY3BwJywK
ICAgICAgICAgICAgICdkb20vU3R5bGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TdHls
ZWRFbGVtZW50LmNwcCcsCkBAIC0yNTIyLDYgKzI1MzAsMTAgQEAKICAgICAgICAgICAgICdwbGF0
Zm9ybS9jaHJvbWl1bS9Db250ZXh0TWVudUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJdGVtQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9DdXJzb3JDaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oJywKKyAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcCcs
CisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1
bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFSZWYuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1NYWMuY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggNTgzZGYxNGM5OTQ1NGNhZGYyMDZkODY1OWQ2NTg1NGE0OWJiYWU2Zi4u
MDhmMDYzNjFkNTUxNGRhMWVhOTUxZjg2NWJkNTM0YjFmOWY1NTRmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTI2OTIsNiArMjY5MiwxNiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRT0xKSB7CiAgICAgICAgIHN0b3JhZ2UvSURCVHJhbnNhY3Rpb24uY3BwCiB9CiAKK2Nv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEpIHsKKyAgICBIRUFE
RVJTICs9IFwKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBcCisgICAgICAgIGRvbS9E
YXRhVHJhbnNmZXJJdGVtcy5oIFwKKyAgICAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmgKKyAgICBT
T1VSQ0VTICs9IFwKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKKyAgICAgICAg
ZG9tL1N0cmluZ0NhbGxiYWNrLmNwcAorfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRE9N
X1NUT1JBR0U9MSkgewogICAgIEhFQURFUlMgKz0gXAogICAgICAgICBzdG9yYWdlL0Fic3RyYWN0
RGF0YWJhc2UuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IDg0N2MwNGYxNTJjNGVlOWFkMDVkYjNjNzA1MGJhZGY5NjJiZjhkZjAuLmQ5YmM3
NzE2MGM4YTBkNDRmNWM4OWEwZmRjZmVjZTU1YWZlYmFiMzUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yODE4LDYgKzI4MTgsMTE4IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJh
bnNmZXJJdGVtLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxl
YXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbS5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbXMuY3Bw
IgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdlYkNvcmVc
RGVyaXZlZFNvdXJjZXNcSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcCIKIAkJCQk+CiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCkBAIC0yMTEyNiw2ICsyMTIzOCw2MiBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU3RyaW5nQ2FsbGJhY2suY3Bw
IgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNTdHJpbmdDYWxsYmFjay5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTVGV4dC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgpAQCAtNDI1MDIsNiArNDI2NzAsNjYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW0uY3BwIgorCQkJCT4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENH
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxEYXRhVHJhbnNmZXJJdGVtLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhVHJhbnNmZXJJdGVtcy5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YXNldERPTVN0cmluZ01h
cC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNDYxOTQsNiArNDY0MjIs
NjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXFN0cmluZ0NhbGxiYWNrLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3RyaW5nQ2FsbGJhY2suaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFN0eWxlZEVs
ZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MDNhNjE4Y2Ux
ZmUyMTY2NGRjYjM3NThhODBlODMxZTcxNTFhOTIwLi5kOWNlMmVhMDE3MGM0YWEwZmI0MzljMjZl
OGQ0ZjM1NzM3ZGUyNjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjYxLDkgKzE2NjEsMTQgQEAKIAkJN0VFNjg0NzAxMkQy
NkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDVEMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNv
dXJjZVJlc3BvbnNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0VFNjg0NzExMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5l
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2
ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCAqLzsgfTsK
IAkJN0VFNjg0NzUxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NzQxMkQy
NkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwICovOyB9OworCQk4MTAyQzU4
ODEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEwMkM1ODcxMzI1QkIxMTAwRERFNjdBIC8q
IFN0cmluZ0NhbGxiYWNrLmNwcCAqLzsgfTsKKwkJODE1RTYxNjcxMzI1ODdBQTAwQjYyMkIwIC8q
IERhdGFUcmFuc2Zlckl0ZW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODE1RTYxNjYxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFUcmFuc2Zlckl0ZW0u
Y3BwICovOyB9OwogCQk4MUE3MzI1RTEyMTAxODlCMDBGQzBEOUUgLyogSURCQ3Vyc29yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUE3MzI1RDEyMTAx
ODlCMDBGQzBEOUUgLyogSURCQ3Vyc29yLmggKi87IH07CiAJCTgxQTczMjYwMTIxMDE4QTQwMEZD
MEQ5RSAvKiBJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODFBNzMyNUYxMjEwMThBNDAwRkMwRDlFIC8qIElEQkN1cnNvci5jcHAgKi87
IH07CiAJCTgxQTczMjc4MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBNzMyNzcx
MjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmggKi87IH07CisJCTgxQUM1
OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAg
LyogRGF0YVRyYW5zZmVySXRlbS5oICovOyB9OworCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAg
LyogRGF0YVRyYW5zZmVySXRlbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVt
cy5oICovOyB9OworCQk4MUFDNkMzNjEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM2QzM1
MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oICovOyB9OwogCQk4MUJFMjA5ODEx
RjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwOTMxMUY0QUI4RDAwOTE1REZB
IC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLzsgfTsKIAkJODFCRTIwOTkxMUY0QUI4RDAw
OTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDk0MTFGNEFCOEQwMDkxNURGQSAvKiBJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggKi87IH07CiAJCTgxQkUyMEQyMTFGNEJDMzIwMDkx
NURGQSAvKiBKU0lEQkN1cnNvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MUJFMjBBNzExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuY3Bw
ICovOyB9OwpAQCAtODE1NSw5ICs4MTYwLDE3IEBACiAJCTdFRTY4NDVEMTJEMjZFMzgwMEU3OTQx
NSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlc291cmNlUmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0
NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ3NDEyRDI2RTcwMDBFNzk0MTUgLyog
UmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcDsgcGF0aCA9IGNmL1Jlc291cmNlTG9hZGVyQ0ZO
ZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MTAyQzU4NzEzMjVCQjExMDBE
REU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3RyaW5nQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MTVFNjE2NjEzMjU4N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBNzMyNUQxMjEwMTg5QjAwRkMwRDlFIC8qIElE
QkN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBNzMyNUYxMjEwMThBNDAwRkMwRDlFIC8q
IElEQkN1cnNvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJD
dXJzb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUE3MzI3NzEyMTAxOUUx
MDBGQzBEOUUgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSURCQ3Vyc29yQmFja2VuZEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0
YVRyYW5zZmVySXRlbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YVRy
YW5zZmVySXRlbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFBQzVBRTgxMzE2
MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IERhdGFUcmFuc2Zlckl0ZW0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MUFDNUFFOTEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODFBQzZDMzQxMzFDNTdDMjAwMDlBN0UwIC8qIFN0cmluZ0NhbGxiYWNrLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHJpbmdDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgxQUM2QzM1MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxs
YmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdDYWxsYmFjay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUJFMjA5MzExRjRBQjhEMDA5MTVERkEg
LyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MUJFMjA5NDExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQkUyMDlDMTFGNEFC
QkQwMDkxNURGQSAvKiBJREJDdXJzb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IElEQkN1
cnNvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTAyMSw2ICsxOTAzNCwx
MSBAQAogCQkJCTYyQ0QzMjU2MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8s
CiAJCQkJNjJDRDMyNTcxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggKi8sCiAJCQkJ
NjJDRDMyNTgxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmlkbCAqLywKKwkJCQk4MTVF
NjE2NjEzMjU4N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAgKi8sCisJCQkJODFB
QzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLywKKwkJCQk4MUFD
NTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaCAqLywKKwkJCQk4MUFD
NUFFODEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5pZGwgKi8sCisJCQkJODFB
QzVBRTkxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmlkbCAqLywKIAkJCQlC
QzY0NjQxQjExRDdGNDE2MDA2NDU1QjAgLyogRGF0YXNldERPTVN0cmluZ01hcC5jcHAgKi8sCiAJ
CQkJQkM2NDY0MUExMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01TdHJpbmdNYXAuaCAqLywK
IAkJCQlBOEMyMjhBMDExRDU3MjJFMDBENUE3RDMgLyogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNl
ci5jcHAgKi8sCkBAIC0xOTIxNSw2ICsxOTIzMyw5IEBACiAJCQkJQ0VBMzk0OUIxMUQ0NUNEQTAw
MzA5NENGIC8qIFN0YXRpY0hhc2hTZXROb2RlTGlzdC5oICovLAogCQkJCUJDN0ZBNjJDMEQxRjBF
RkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgKi8sCiAJCQkJQkM3RkE2MkIwRDFGMEVG
RjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggKi8sCisJCQkJODEwMkM1ODcxMzI1QkIxMTAw
RERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCAqLywKKwkJCQk4MUFDNkMzNTEzMUM1N0QzMDAw
OUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaCAqLywKKwkJCQk4MUFDNkMzNDEzMUM1N0MyMDAwOUE3
RTAgLyogU3RyaW5nQ2FsbGJhY2suaWRsICovLAogCQkJCUE4QzRBN0VDMDlENTYzMjcwMDAzQUM4
RCAvKiBTdHlsZWRFbGVtZW50LmNwcCAqLywKIAkJCQlBOEM0QTdFQjA5RDU2MzI3MDAwM0FDOEQg
LyogU3R5bGVkRWxlbWVudC5oICovLAogCQkJCUFBNEMzQTc0MEIyQjE2NzkwMDIzMzRBMiAvKiBT
dHlsZUVsZW1lbnQuY3BwICovLApAQCAtMTk3OTMsNiArMTk4MTQsOCBAQAogCQkJCUJDMjI3MkFE
MEU4MkU4RjMwMEU3Rjk3NSAvKiBDdXJzb3JMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2MkNE
MzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4Q0I0MTNFMEU4NjMzRkQwMDMyQzRGMCAvKiBEYXNoQXJyYXkuaCBpbiBIZWFkZXJzICovLAor
CQkJCTgxQUM1OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRl
bXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2RDBCMEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNo
Ym9hcmRSZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOTYxMTZCMENBQzU2NTcwMDEwQTgw
QyAvKiBEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNDVCNTYwQ0FEN0ZENzAwMEQy
QkU5IC8qIERhdGFiYXNlQXV0aG9yaXplci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjA3NSw2ICsy
MjA5OCw3IEBACiAJCQkJOTNCMkQ4MTYwRjk5MjBEMjAwNkFFNkIyIC8qIFN1ZGRlblRlcm1pbmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0MwNzg1MDExNjVENUJFMDAzQTMyRUYgLyogU3Vm
Zml4VHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJDMTIxN0QxMUFCOUU3NzAwM0M0NjJDIC8q
IFN1c3BlbmRhYmxlVGltZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQUM2QzM2MTMxQzU3RDMw
MDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NzQw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1
M0YyRTBEOTcyN0QyMDBDQTk3MjMgLyogU1ZHQWx0R2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5nbGUuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjUxOTYsNiArMjUyMjAsOCBAQAogCQkJCTU5M0QzRUFEMTMyNTMyODQwMDU3RTdF
RSAvKiBKYXZhTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5OEQ3N0REMTMyNTQxRUUw
MDc2MUIyMiAvKiBKYXZhQXJyYXlKU0MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTk4RDc3RTEx
MzI1NDIwNDAwNzYxQjIyIC8qIEphdmFGaWVsZEpTQy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4
MTVFNjE2NzEzMjU4N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk4MTAyQzU4ODEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGRmMWMwNGFmN2E0ZjExNDE3ZTUyNzM5MTFkZDU4YmU0
ZTY2NTI0NGQuLmUyZmUyNzdmMDUwNDY2OWIxYjFhYmM4MmJiZDdjMGM2MzhiMTA3YTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CkBAIC0xMjgsNyArMTI4LDcgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogCiAgICAgIyBXaGVu
IHdlJ3JlIGZpbmlzaGVkIHdpdGggdGhlIG9uZS1maWxlLXBlci1jbGFzcwogICAgICMgcmVvcmdh
bml6YXRpb24sIHdlIHdvbid0IG5lZWQgdGhlc2Ugc3BlY2lhbCBjYXNlcy4KLSAgICBpZiAoISRj
b2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIGFuZCAhJGNvZGVHZW5lcmF0b3It
PkF2b2lkSW5jbHVzaW9uT2ZUeXBlKCR0eXBlKSBhbmQgJHR5cGUgbmUgIkRhdGUiKSB7CisgICAg
aWYgKCEkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBhbmQgISRjb2RlR2Vu
ZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpIGFuZCAhJGNvZGVHZW5lcmF0b3ItPkF2b2lkSW5j
bHVzaW9uT2ZUeXBlKCR0eXBlKSBhbmQgJHR5cGUgbmUgIkRhdGUiKSB7CiAgICAgICAgICMgZGVm
YXVsdCwgaW5jbHVkZSB0aGUgc2FtZSBuYW1lZCBmaWxlCiAgICAgICAgICRpbXBsSW5jbHVkZXN7
R2V0VjhIZWFkZXJOYW1lKCR7dHlwZX0pfSA9IDE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAppbmRl
eCBiOGVhZGZiNmQwNjc0ODViNDE4Yjg3OWIxYTljZGZmYzZmY2NlMDFmLi40MDE0MWFmMTFiOTdk
YjZlN2E2MzBiZDYxYzI2YWUxNDA2Nzc5M2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCkBAIC0z
Myw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorICAgIGNsYXNzIERhdGFUcmFu
c2Zlckl0ZW1zOwogICAgIGNsYXNzIERyYWdEYXRhOwogICAgIGNsYXNzIEZpbGVMaXN0OwogICAg
IGNsYXNzIEZyYW1lOwpAQCAtODQsNiArODUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBoYXNEYXRhKCkgPSAwOwogICAgICAgICAKICAgICAgICAgdm9pZCBz
ZXRBY2Nlc3NQb2xpY3koQ2xpcGJvYXJkQWNjZXNzUG9saWN5KTsKKyAgICAgICAgQ2xpcGJvYXJk
QWNjZXNzUG9saWN5IHBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5OyB9CiAKICAgICAg
ICAgRHJhZ09wZXJhdGlvbiBzb3VyY2VPcGVyYXRpb24oKSBjb25zdDsKICAgICAgICAgRHJhZ09w
ZXJhdGlvbiBkZXN0aW5hdGlvbk9wZXJhdGlvbigpIGNvbnN0OwpAQCAtOTEsMTEgKzkzLDE0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXREZXN0aW5hdGlvbk9wZXJhdGlv
bihEcmFnT3BlcmF0aW9uKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0RHJhZ0hhc1N0YXJ0
ZWQoKSB7IG1fZHJhZ1N0YXJ0ZWQgPSB0cnVlOyB9CisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZF
Ul9JVEVNUykKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zPiBp
dGVtcygpID0gMDsKKyNlbmRpZgogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIENs
aXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIENsaXBib2FyZFR5cGUpOwogCi0gICAgICAg
IENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3BvbGljeTsg
fQogICAgICAgICBib29sIGRyYWdTdGFydGVkKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnU3RhcnRl
ZDsgfQogICAgICAgICAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NsaXBib2FyZC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbAppbmRl
eCAxMDI0YTM2ZDE2YTNjNDkwM2FmMGRlNmQ1ZDNkZjk2ZWQ4ODc0ZGE0Li4zZDM2YTFhMjg2Zjg1
OWVhYWIzYTkzM2E2YjY1MTczNmZjMmU2MTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ2xpcGJvYXJkLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbApA
QCAtNDIsNiArNDIsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtSZXF1aXJlc0FsbEFyZ3Vt
ZW50c10gYm9vbGVhbiBzZXREYXRhKGluIERPTVN0cmluZyB0eXBlLCBpbiBET01TdHJpbmcgZGF0
YSk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0RHJhZ0ltYWdlKGluIEhUTUxJbWFnZUVsZW1l
bnQgaW1hZ2UsIGluIGxvbmcgeCwgaW4gbG9uZyB5KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1EQVRB
X1RSQU5TRkVSX0lURU1TXSBEYXRhVHJhbnNmZXJJdGVtcyBpdGVtczsKICAgICB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVlYzg2OTJh
ZjFmYmRiZDUyYjk4ZTRhNmQ1Yjk3MjgzZDE2NTI0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKKworI2lmIEVOQUJM
RShEQVRBX1RSQU5TRkVSX0lURU1TKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGNo
YXIgRGF0YVRyYW5zZmVySXRlbTo6a2luZFN0cmluZ1tdID0gInN0cmluZyI7Citjb25zdCBjaGFy
IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRGaWxlW10gPSAiZmlsZSI7CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE2NzVhYWM3ZTRhYzNhMTZi
ODJkNzk2ZmRjMWU4NTc4NDEwMjgzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVRyYW5z
ZmVySXRlbV9oCisjZGVmaW5lIERhdGFUcmFuc2Zlckl0ZW1faAorCisjaWYgRU5BQkxFKERBVEFf
VFJBTlNGRVJfSVRFTVMpCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3RyaW5nQ2Fs
bGJhY2s7CisKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRh
VHJhbnNmZXJJdGVtPiB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IGNoYXIga2luZFN0cmlu
Z1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIGtpbmRGaWxlW107CisKKyAgICB2aXJ0dWFsIFN0
cmluZyBraW5kKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25zdCA9
IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxs
YmFjaz4pID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisjZW5kaWYgLy8gRGF0YVRyYW5zZmVySXRlbV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJjOTk0
MjY0NjZiNDI2NmE0YmVhNjMyMDQxNTJmMjVmY2Y4OGRlNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbApAQCAtMCwwICsxLDQyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9REFUQV9U
UkFOU0ZFUl9JVEVNUworICAgIF0gRGF0YVRyYW5zZmVySXRlbSB7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcga2luZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyB0eXBlOworCisgICAgICAgIHZvaWQgZ2V0QXNTdHJpbmcoaW4gW0NhbGxiYWNrXSBT
dHJpbmdDYWxsYmFjayBjYWxsYmFjayk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmNhOTgzYzg2NGMyMWYyZGIzMjNhNWIxZjJk
MWVlN2VlY2UyNWYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlckl0ZW1zLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVRyYW5zZmVySXRlbXNf
aAorI2RlZmluZSBEYXRhVHJhbnNmZXJJdGVtc19oCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZF
Ul9JVEVNUykKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVt
OworCit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVt
cyA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFUcmFuc2Zlckl0ZW1zPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwg
RXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKSA9IDA7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBl
LCBFeGNlcHRpb25Db2RlJikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRhVHJh
bnNmZXJJdGVtc19oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFjYjM2Yjg4M2I0NzllODhkMDc5ZWYzMjRlZWQ3ZDcxZTgwYzUzN2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsCkBA
IC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBD
b25kaXRpb25hbD1EQVRBX1RSQU5TRkVSX0lURU1TLAorICAgICAgICBIYXNJbmRleEdldHRlciwK
KyAgICAgICAgQ3VzdG9tRGVsZXRlUHJvcGVydHksCisgICAgXSBEYXRhVHJhbnNmZXJJdGVtcyB7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxlbmd0aDsKKyAgICAgICAgRGF0YVRy
YW5zZmVySXRlbSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIGdldHRlcjsKKworICAgICAg
ICB2b2lkIGNsZWFyKCk7CisgICAgICAgIHZvaWQgYWRkKGluIERPTVN0cmluZyBkYXRhLCBpbiBE
T01TdHJpbmcgdHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgfTsKKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TdHJpbmdDYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWYzOTkzNjBkMDQ0NjA1OTgw
ZDE3ZDA3NGNhOWJmNTFlMzZmYWYyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TdHJpbmdDYWxsYmFjay5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5oIgorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIERpc3BhdGNoQ2FsbGJhY2tUYXNr
IDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgeworcHVibGljOgorICAgIERp
c3BhdGNoQ2FsbGJhY2tUYXNrKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGRhdGEpCisgICAgICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICAg
ICAgLCBtX2RhdGEoZGF0YSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHBlcmZv
cm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQorICAgIHsKKyAgICAgICAgbV9jYWxsYmFj
ay0+aGFuZGxlRXZlbnQobV9kYXRhKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFN0
cmluZ0NhbGxiYWNrPiBtX2NhbGxiYWNrOworICAgIGNvbnN0IFN0cmluZyBtX2RhdGE7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZQorCit2b2lkIFN0cmluZ0NhbGxiYWNrOjpzY2hlZHVsZUNhbGxiYWNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YSkKK3sK
KyAgICBjb250ZXh0LT5wb3N0VGFzayhuZXcgRGlzcGF0Y2hDYWxsYmFja1Rhc2sodGhpcywgZGF0
YSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxs
YmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkyZTgzZTIxOTYwOTNiMDBhNDJhZTlmZGU4OWIyNjEyODIxZDJk
NDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2su
aApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdHJpbmdDYWxsYmFja19oCisjZGVmaW5lIFN0cmlu
Z0NhbGxiYWNrX2gKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OworCitjbGFzcyBTdHJpbmdDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFN0
cmluZ0NhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3RyaW5nQ2FsbGJhY2soKSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoY29uc3QgU3RyaW5nJiBkYXRhKSA9IDA7
CisKKyAgICAvLyBIZWxwZXIgdG8gcG9zdCBjYWxsYmFjayB0YXNrLgorICAgIHZvaWQgc2NoZWR1
bGVDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhKTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFN0cmluZ0NhbGxiYWNr
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMThkODNm
ZTBhZjRjMmE1ZDQzMmE4NTBhMGJkMDhlM2MzMmVkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
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
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUg
Y29yZSB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ2FsbGJhY2sKKyAgICBdIFN0cmluZ0Nh
bGxiYWNrIHsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcgZGF0YSk7
CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0NsaXBib2FyZENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCBmYjNlMDViMjlkZmZmYzg5YTcyMDVmMzVjYTdj
YmMwM2Y5NGJkNmFlLi5hOWY2NWExZWQ5NjAwNTdjMDkwNjAyYjUzMDJkYTk1MTg4ZmI5ZjkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJv
bWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJk
Q2hyb21pdW0uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRhT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkTWltZVR5cGVzLmgiCiAjaW5jbHVkZSAiQ2xpcGJv
YXJkVXRpbGl0aWVzQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtc0Nocm9t
aXVtLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTMzOSw0ICszNDAsOSBAQCBib29sIENsaXBib2FyZENocm9t
aXVtOjpoYXNEYXRhKCkKICAgICByZXR1cm4gbV9kYXRhT2JqZWN0LT5oYXNEYXRhKCk7CiB9CiAK
K1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbXM+IENsaXBib2FyZENocm9taXVtOjppdGVtcygp
Cit7CisgICAgcmV0dXJuIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNyZWF0ZSh0aGlzLCBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaAppbmRleCBkMzBhMWM0YTEzYTVhMmE1YjUxMTEzZjRj
NzdiNDBmMmUzZWQxMmUxLi4wNTdhZGFlZDBiNTQ1Y2UwOWUxY2YzNTU2MzQwNjAyNDZhMjg5ZDBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2Fy
ZENocm9taXVtLmgKQEAgLTgwLDYgKzgwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBoYXNEYXRhKCk7CiAKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PERhdGFUcmFuc2Zlckl0ZW1zPiBpdGVtcygpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgQ2xp
cGJvYXJkQ2hyb21pdW0oQ2xpcGJvYXJkVHlwZSwgUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmpl
Y3Q+LCBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRlZWU4ZDVhODZjMmIzNjUxMjM5OGQ2M2VhOWM4ZTk2NTljYWI3
NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgiCisKKyNpbmNsdWRl
ICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUNocm9taXVtPiBEYXRhVHJh
bnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBTdHJpbmcmIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB0eXBlKQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtKG93bmVy
LCBjb250ZXh0LCBkYXRhLCB0eXBlKSk7Cit9CisKK0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBT
dHJpbmcmIHR5cGUpCisgICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCisgICAgLCBtX2tpbmQoa2luZFN0cmluZykKKyAgICAsIG1fdHlwZSh0eXBlKQorICAgICAg
LCBtX2RhdGEoZGF0YSkKK3sKK30KKworU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6
a2luZCgpIGNvbnN0Cit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51
bWIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gbV9raW5kOworfQorCitT
dHJpbmcgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjp0eXBlKCkgY29uc3QKK3sKKyAgICBpZiAo
bV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworICAgIHJldHVybiBtX3R5cGU7Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbUNocm9t
aXVtOjpnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFjaykKK3sK
KyAgICBpZiAoKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFJlYWRhYmxlCisgICAgICAg
ICAmJiBtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKKyAgICAgICAgfHwg
bV9raW5kICE9IGtpbmRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKyAgICBjYWxsYmFjay0+c2No
ZWR1bGVDYWxsYmFjayhtX2NvbnRleHQsIG1fZGF0YSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNlN2YwNjNlNzYxNWRjYjVi
ODVmODVkYjhlNDk5ZDMyYThmOGFlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oCkBAIC0wLDAgKzEs
NjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
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
LworCisjaWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bV9oCisjZGVmaW5lIERhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bV9oCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKwor
I2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgQ2xpcGJvYXJkOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3Mg
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtIDogcHVibGljIERhdGFUcmFuc2Zlckl0ZW0geworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gY3Jl
YXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKworICAgIHZpcnR1YWwg
U3RyaW5nIGtpbmQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyB0eXBlKCkgY29uc3Q7CisK
KyAgICB2aXJ0dWFsIHZvaWQgZ2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4p
OworCitwcml2YXRlOgorICAgIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bShQYXNzUmVmUHRyPENs
aXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGEsIGNvbnN0IFN0cmluZyYgdHlwZSk7CisKKyAgICBjb25zdCBSZWZQdHI8Q2xpcGJvYXJkPiBt
X293bmVyOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBjb25z
dCBTdHJpbmcgbV9raW5kOworICAgIGNvbnN0IFN0cmluZyBtX3R5cGU7CisgICAgY29uc3QgU3Ry
aW5nIG1fZGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisjZW5kaWYgLy8gRGF0YVRyYW5zZmVySXRlbV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtc0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Rh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMjZhY2NkMWYxNDdhMThm
MTdkNzFkYjI3MzViODQ1ZTljYmIzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcApAQCAtMCww
ICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJh
bnNmZXJJdGVtQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtPiBE
YXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93
bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShvd25lciwgY29udGV4dCkpOworfQor
CitEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtKFBh
c3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKKyAgICA6IG1fb3duZXIob3duZXIpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkKK3sKK30K
KwordW5zaWduZWQgbG9uZyBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpsZW5ndGgoKSBjb25z
dAoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9pdGVtcy5zaXplKCk7Cit9CisKK1Bhc3NSZWZQdHI8
RGF0YVRyYW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6aXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4KSBjb25zdAoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlw
Ym9hcmROdW1iIHx8IGluZGV4ID49IGxlbmd0aCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gbV9pdGVtc1tpbmRleF07Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1
bTo6ZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpIHsKKyAgICAg
ICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmIChpbmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pdGVtcy5y
ZW1vdmUoaW5kZXgpOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNsZWFy
KCkKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1faXRlbXMuY2xlYXIoKTsKK30KKwordm9pZCBEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtOjphZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcm
IHR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAh
PSBDbGlwYm9hcmRXcml0YWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2l0ZW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2l0ZW1zW2ld
LT50eXBlKCkgPT0gdHlwZSAmJiBtX2l0ZW1zW2ldLT5raW5kKCkgPT0gRGF0YVRyYW5zZmVySXRl
bTo6a2luZFN0cmluZykgeworICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1faXRlbXMuYXBwZW5k
KERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6Y3JlYXRlKG1fb3duZXIsIG1fY29udGV4dCwgZGF0
YSwgdHlwZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9t
aXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDljYmU5OGVjYTMyOTk5MThiOTdlZGJiODc4NTA1YzYxNGU5ZGRl
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Rh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtX2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bV9o
CisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2luY2x1ZGUgIkRhdGFUcmFu
c2Zlckl0ZW1zLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDbGlwYm9hcmQ7CitjbGFzcyBE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW07CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owor
Cit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtc0No
cm9taXVtIDogcHVibGljIERhdGFUcmFuc2Zlckl0ZW1zIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFu
c2Zlckl0ZW0+IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCkgY29uc3Q7CisgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZpcnR1YWwgdm9pZCBjbGVhcigpOworCisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBTdHJp
bmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2YXRl
OgorICAgIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKKyAgICBSZWZQdHI8Q2xpcGJvYXJkPiBtX293bmVy
OworICAgIC8vIEluZGlyZWN0bHkgb3duZWQgYnkgb3VyIHBhcmVudC4KKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBtX2NvbnRleHQ7CisgICAgVmVjdG9yPFJlZlB0cjxEYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW0+ID4gbV9pdGVtczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisjZW5kaWYgLy8gRGF0YVRy
YW5zZmVySXRlbXNDaHJvbWl1bV9oCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85009</attachid>
            <date>2011-03-07 19:02:57 -0800</date>
            <delta_ts>2011-03-07 19:06:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55115-20110307190256.patch</filename>
            <type>text/plain</type>
            <size>77870</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA0ODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZTM1OWIwZTA1ZDBhY2U2YmI1NjJj
ZDkyYmY5YWU5YmZmOTk3MTJlLi43NWJmMjVkYTUyZjk1OGRhNGQyNzMwZmU3NzZkZWRmYjZmMmJk
NzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMtMDcgIERhbmllbCBDaGVuZyAgPGRj
aGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERhdGFUcmFuc2Zlckl0ZW1zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTExNQorCisgICAgICAgIExh
eW91dCB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBiYXNpYyBwcm9wZXJ0aWVzIG9mIGRhdGFUcmFu
c2Zlci5pdGVtcyBmdW5jdGlvbiBhcyBleHBlY3RlZC4KKworICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0wNyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0
ZW1zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWMwZjg3M2ZlZmIyNDc2ZDkzYThlZTQ5MjY0
YWExNDg2NThiZDQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogUG9wdWxhdGluZyBEYXRhVHJhbnNmZXJJdGVtcy4u
LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI3OiBDYXVnaHQgZXhjZXB0aW9uICJFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiIGFzIGV4cGVjdGVkLgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDMxOiBWZXJpZnlpbmcgY29udGVudHMgb2YgRGF0YVRyYW5zZmVySXRlbXMu
Li4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMjogaXRlbXMubGVuZ3RoOiAyCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzM6IGl0ZW1zWzBdLmtpbmQ6IHN0cmluZworQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDM0OiBpdGVtc1swXS50eXBlOiB0ZXh0L3BsYWluCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MzU6IGl0ZW1zWzFdLmtpbmQ6IHN0cmluZworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBpdGVt
c1sxXS50eXBlOiB0ZXh0L2h0bWwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0MDogQ2hlY2tpbmcg
aWYgaXRlbXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBjb2xsZWN0aW9uIGNhbiBiZSBpbmRleGVkOgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDQxOiBpdGVtc1syXTogdW5kZWZpbmVkCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNTE6IENoZWNraW5nIHRoYXQgYSByZWFkLW9ubHkgRGF0YVRyYW5zZmVySXRl
bXMgY2Fubm90IGJlIG11dGF0ZWQuLi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogaXRlbXMu
bGVuZ3RoOiAwCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IGl0ZW1zWzBdOiB1bmRlZmluZWQK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA2ODogVGVzdGluZyBpZiBEYXRhVHJhbnNmZXJJdGVtcyBj
YW4gYmUgYWNjZXNzZWQgb3V0c2lkZSBhbiBldmVudCBoYW5kbGVyLi4uCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTM6IGl0ZW1zWzBdIHZhbHVlOiBIZWxsbyBXb3JsZCEKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxMzogaXRlbXNbMV0gdmFsdWU6IDxiPkhlbGxvIFdvcmxkIQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDk5OiBQQVNTRUQKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCByZWFkaW5nL3dyaXRp
bmcgZnVuY3Rpb25hbGl0eSBvZiBEYXRhVHJhbnNmZXJJdGVtcy4gVGhpcyB0ZXN0IHJlcXVpcmVz
IERSVC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRy
YW5zZmVyLWl0ZW1zLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10
cmFuc2Zlci1pdGVtcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NDhlODVkOTA2NmI4ZTMzN2JkMTg2NDU1
NGY4NjNlMDgwNDVjZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25jb3B5PSJjb3B5KGV2ZW50KSIgb25wYXN0ZT0i
cGFzdGUoZXZlbnQpIj4KKzxkaXY+VGhpcyBmaWxlIHRlc3RzIHRoZSBiYXNpYyBmdW5jdGlvbmFs
aXR5IGFuZCBwcm9wZXJ0aWVzIG9mIERhdGFUcmFuc2Zlckl0ZW1zLiBUaGlzIHRlc3QgcmVxdWly
ZXMgRFJULjwvZGl2PgorCis8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgordmFyIHNhdmVkRGF0YVRyYW5zZmVySXRlbXMgPSBudWxsOwordmFyIHNhdmVkRGF0
YVRyYW5zZmVySXRlbSA9IG51bGw7CisKK2Z1bmN0aW9uIGhhbmRsZUV2ZW50KGRhdGEpCit7Cisg
ICAgY29uc29sZS5sb2coZGF0YSk7Cit9CisKK2Z1bmN0aW9uIGNvcHkoZXYpCit7CisgICAgdmFy
IGl0ZW1zID0gZXZlbnQuY2xpcGJvYXJkRGF0YS5pdGVtczsKKyAgICBjb25zb2xlLmxvZygnUG9w
dWxhdGluZyBEYXRhVHJhbnNmZXJJdGVtcy4uLicpOworICAgIGl0ZW1zLmFkZCgnSGVsbG8gV29y
bGQhJywgJ3RleHQvcGxhaW4nKTsKKyAgICBpdGVtcy5hZGQoJzxiPkhlbGxvIFdvcmxkIScsICd0
ZXh0L2h0bWwnKTsKKworICAgIC8vIENoZWNrIHRoYXQgYW4gZXhjZXB0aW9uIGlzIHByb3Blcmx5
IHJhaXNlZCB3aGVuIGF0dGVtcHRpbmcgdG8gYWRkIGEgZHVwbGljYXRlIHN0cmluZyB0eXBlLgor
ICAgIHRyeSB7CisgICAgICAgIGl0ZW1zLmFkZCgnTW9vJywgJ3RleHQvcGxhaW4nKTsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIGNvbnNvbGUubG9nKCdDYXVnaHQgZXhjZXB0aW9uICInICsg
ZSArICciIGFzIGV4cGVjdGVkLicpOworICAgIH0KKworICAgIC8vIENoZWNrIHRoYXQgdGhlIGNv
bnRhaW5lciBkaWRuJ3QgY2hhbmdlLgorICAgIGNvbnNvbGUubG9nKCdWZXJpZnlpbmcgY29udGVu
dHMgb2YgRGF0YVRyYW5zZmVySXRlbXMuLi4nKTsKKyAgICBjb25zb2xlLmxvZygnaXRlbXMubGVu
Z3RoOiAnICsgaXRlbXMubGVuZ3RoKTsKKyAgICBjb25zb2xlLmxvZygnaXRlbXNbMF0ua2luZDog
JyArIGl0ZW1zWzBdLmtpbmQpOworICAgIGNvbnNvbGUubG9nKCdpdGVtc1swXS50eXBlOiAnICsg
aXRlbXNbMF0udHlwZSk7CisgICAgY29uc29sZS5sb2coJ2l0ZW1zWzFdLmtpbmQ6ICcgKyBpdGVt
c1sxXS5raW5kKTsKKyAgICBjb25zb2xlLmxvZygnaXRlbXNbMV0udHlwZTogJyArIGl0ZW1zWzFd
LnR5cGUpOworICAgIGl0ZW1zWzBdLmdldEFzU3RyaW5nKGZ1bmN0aW9uIChkYXRhKSB7IGhhbmRs
ZUV2ZW50KCdpdGVtc1swXSB2YWx1ZTogJyArIGRhdGEpOyB9KTsKKyAgICBpdGVtc1sxXS5nZXRB
c1N0cmluZyhmdW5jdGlvbiAoZGF0YSkgeyBoYW5kbGVFdmVudCgnaXRlbXNbMV0gdmFsdWU6ICcg
KyBkYXRhKTsgfSk7CisKKyAgICBjb25zb2xlLmxvZygnQ2hlY2tpbmcgaWYgaXRlbXMgcGFzdCB0
aGUgZW5kIG9mIHRoZSBjb2xsZWN0aW9uIGNhbiBiZSBpbmRleGVkOicpOworICAgIGNvbnNvbGUu
bG9nKCdpdGVtc1syXTogJyArIGl0ZW1zWzJdKTsKKworICAgIHNhdmVkRGF0YVRyYW5zZmVySXRl
bXMgPSBpdGVtczsKKyAgICBzYXZlZERhdGFUcmFuc2Zlckl0ZW0gPSBpdGVtc1swXTsKK30KKwor
ZnVuY3Rpb24gcGFzdGUoZXYpCit7CisgICAgdmFyIGl0ZW1zID0gZXZlbnQuY2xpcGJvYXJkRGF0
YS5pdGVtczsKKyAgICB2YXIgb3JpZ2luYWxMZW5ndGggPSBpdGVtcy5sZW5ndGg7CisgICAgY29u
c29sZS5sb2coJ0NoZWNraW5nIHRoYXQgYSByZWFkLW9ubHkgRGF0YVRyYW5zZmVySXRlbXMgY2Fu
bm90IGJlIG11dGF0ZWQuLi4nKTsKKyAgICAvLyBTaG91bGQgYmUgaW1tdXRhYmxlLgorICAgIGl0
ZW1zLmFkZCgnSGVsbG8gV29ybGQhJywgJ3RleHQvcGxhaW4nKTsKKyAgICBjb25zb2xlLmxvZygn
aXRlbXMubGVuZ3RoOiAnICsgaXRlbXMubGVuZ3RoKTsKKyAgICBjb25zb2xlLmxvZygnaXRlbXNb
MF06ICcgKyBpdGVtc1swXSk7IC8vIFNob3VsZG4ndCBleGlzdC4KK30KKworZnVuY3Rpb24gcnVu
VGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
cmV0dXJuOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBjb3B5Q29tbWFuZCgpOwor
ICAgIHBhc3RlQ29tbWFuZCgpOworCisgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAgIGNvbnNv
bGUubG9nKCdUZXN0aW5nIGlmIERhdGFUcmFuc2Zlckl0ZW1zIGNhbiBiZSBhY2Nlc3NlZCBvdXRz
aWRlIGFuIGV2ZW50IGhhbmRsZXIuLi4nKTsKKyAgICBpZiAoc2F2ZWREYXRhVHJhbnNmZXJJdGVt
cy5sZW5ndGggIT0gMCkgeworICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICBjb25zb2xl
LmxvZygnRGF0YVRyYW5zZmVySXRlbXMubGVuZ3RoIG5vbi16ZXJvIG91dHNpZGUgZXZlbnQgaGFu
ZGxlciEnKTsKKyAgICB9CisgICAgc2F2ZWREYXRhVHJhbnNmZXJJdGVtcy5hZGQoJ1NlY3VyaXR5
PycsICd0ZXh0L2ZvbycpOworICAgIGlmIChzYXZlZERhdGFUcmFuc2Zlckl0ZW1zLmxlbmd0aCAh
PSAwKSB7CisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgIGNvbnNvbGUubG9nKCdEYXRh
VHJhbnNmZXJJdGVtcyBtdXRhdGVkIG91dHNpZGUgZXZlbnQgaGFuZGxlciEnKTsKKyAgICB9Cisg
ICAgaWYgKHNhdmVkRGF0YVRyYW5zZmVySXRlbXNbMF0pIHsKKyAgICAgICAgZmFpbGVkID0gdHJ1
ZTsKKyAgICAgICAgY29uc29sZS5sb2coJ0RhdGFUcmFuc2Zlckl0ZW0gYWNjZXNzZWQgb3V0c2lk
ZSBldmVudCBoYW5kbGVyIScpOworICAgIH0KKyAgICBpZiAoc2F2ZWREYXRhVHJhbnNmZXJJdGVt
LmtpbmQgIT0gJycpIHsKKyAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgY29uc29sZS5s
b2coJ0RhdGFUcmFuc2Zlckl0ZW0ua2luZCBhY2Nlc3NpYmxlIG91dHNpZGUgZXZlbnQgaGFuZGxl
ciEnKTsKKyAgICB9CisgICAgaWYgKHNhdmVkRGF0YVRyYW5zZmVySXRlbS50eXBlICE9ICcnKSB7
CisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgIGNvbnNvbGUubG9nKCdEYXRhVHJhbnNm
ZXJJdGVtLnR5cGUgYWNjZXNzaWJsZSBvdXRzaWRlIGV2ZW50IGhhbmRsZXIhJyk7CisgICAgfQor
ICAgIHNhdmVkRGF0YVRyYW5zZmVySXRlbS5nZXRBc1N0cmluZyhmdW5jdGlvbiAoZGF0YSkgewor
ICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICBjb25zb2xlLmxvZygnZ2V0QXNTdHJpbmcg
Y2FsbGVkIGJhY2sgb3V0c2lkZSBldmVudCBoYW5kbGVyIScpOworICAgIH0pOworCisgICAgd2lu
ZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAoZmFpbGVkKQorICAgICAg
ICAgICAgY29uc29sZS5sb2coJ0ZBSUxFRCcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBj
b25zb2xlLmxvZygnUEFTU0VEJyk7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7Cit9CisKK3J1blRlc3QoKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGIzYzFjNGYz
YWUzMzkzMGMxMzA1ZjQ3ZGEzZjg4NjcwMTA2MWJiYjguLjkyNmJjNjI4NjUyOWQ1M2Y1MWMxNjNi
ZTlmNmMyZWExMjg4N2Y3NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMzE1LDMg
KzEzMTUsNiBAQCBmYXN0L2NhbnZhcy9yZ2JhLXBhcnNpbmcuaHRtbAogIyBNaXNzaW5nIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFZhbHVlRm9yVXNlcgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTU4NjIKIGZhc3QvZm9ybXMvb25jaGFuZ2Utc2V0dmFsdWVmb3J1
c2VyLmh0bWwKKworIyBEYXRhVHJhbnNmZXJJdGVtcyBpcyBub3QgeWV0IGltcGxlbWVudGVkLgor
ZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZAppbmRleCAxNzYxYzBjNDcxZmJiZThmNWVjODgzZDg5NDIzYTU2NDI0NGM0Y2E1
Li5jNjA4ZTE3MTBjNzYyNzFmOGY5YjFhNTE0YTU5MzA3Njc1YmIwZDkyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZApAQCAtMzAxLDMgKzMwMSw2IEBAIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWlu
LW1lZGlhLWRvY3VtZW50Lmh0bWwKICMgTm9uLXByZW11bHRpcGxpZWQtYWxwaGEgY3VycmVudGx5
IGJyb2tlbiBvbiBtYWMuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NTUwOQogY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm9ucHJlbXVsdGlwbGllZC1ibGVuZC5o
dG1sCisKKyMgRGF0YVRyYW5zZmVySXRlbXMgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KK2VkaXRp
bmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCmluZGV4IDg3NjQxYzYzNGNkNTdiYWRiYWM4MzQ2OTA2Mzg2ZjQ1M2U5NDlmZGMuLmFhNTYx
NTY1YTE4NTkxZTcyOGE3M2ZmMDNmZDliYjYwNmVkZWRiMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZApAQCAtMTA4LDYgKzEwOCw5IEBAIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQuaHRt
bAogIyBUaGlzIHBvcnQgZG9lc24ndCBzdXBwb3J0IHY4IGkxOG4gZXh0ZW5zaW9uLgogZmFzdC9q
cy9pMThuLWJpbmRpbmdzLWxvY2FsZS5odG1sCiAKKyMgRGF0YVRyYW5zZmVySXRlbXMgaXMgbm90
IHlldCBpbXBsZW1lbnRlZC4KK2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1z
Lmh0bWwKKwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyAgICAgICBEcmFnIGFuZCBEcm9wIFN1
cHBvcnQgaW4gRFJULiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwog
IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAxOWQ2
OTVhOTRlZjE1ZTZmZTcxNDc1MjZjMjQyNzU0NjdlOGI3MWI1Li45MzI2NzdhNzBlZTRjY2NjYzhi
Y2ZiNjFhMDA1MDNhM2QzOGYzZGU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTE2
NCwzICsxMTY0LDYgQEAgaW5zcGVjdG9yL2RlYnVnZ2VyCiAKICMgRm9yIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxOQogZmFzdC94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1yZXNwb25zZXR5cGUtYXJyYXlidWZmZXIuaHRtbAorCisjIERhdGFUcmFuc2Zl
ckl0ZW1zIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10
cmFuc2Zlci1pdGVtcy5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1r
IGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCBkOWNkOTJlZDUyMmZkNzNkMzBjNjI5
ZmJhODQ4YjMyMTg5ZTljZTg4Li45ODU5OGZlYjkwYWRhODlkMTk3ZmY2NGVjZjdkNDJmYzg3M2I1
MTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQubWsKQEAgLTExNCw2ICsxMTQsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0g
JChMT0NBTF9TUkNfRklMRVMpIFwKIAlkb20vQ29udGFpbmVyTm9kZS5jcHAgXAogCWRvbS9ET01J
bXBsZW1lbnRhdGlvbi5jcHAgXAogCWRvbS9ET01TdHJpbmdMaXN0LmNwcCBcCisJZG9tL0RhdGFU
cmFuc2Zlckl0ZW0uY3BwIFwKIAlkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAgXAog
CWRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCiAJZG9tL0RldmljZU1vdGlvbkRhdGEu
Y3BwIFwKQEAgLTE3Niw2ICsxNzcsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNf
RklMRVMpIFwKIAlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogCWRvbS9TdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuY3BwIFwKIAlkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKKwlkb20vU3RyaW5nQ2Fs
bGJhY2suY3BwIFwKIAlkb20vU3R5bGVFbGVtZW50LmNwcCBcCiAJZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwIFwKIAlkb20vVGFnTm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZWQ5
NTA2NDYyNTI0OTI1NTRhZmM2NTFjMDUwNWM3NzE2ZmY1NDgwNC4uZjZkZmUzOGRiZTlkMzNmNjYy
YTEyY2MzMmRhZDJjYzdjY2NjYmIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1NzMsNiAr
MTU3MywxOCBAQCBJRiAoRU5BQkxFX0RBVEFCQVNFKQogICAgICkKIEVORElGICgpCiAKK0lGIChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9G
SUxFUworICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKKyAgICAgICAgZG9tL0RhdGFU
cmFuc2Zlckl0ZW1zLmlkbAorICAgICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaWRsCisgICAgKQor
ICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBkb20vRGF0YVRyYW5zZmVy
SXRlbS5jcHAKKyAgICAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmNwcAorICAgICkKK0VORElGICgp
CisKIElGIChFTkFCTEVfTUFUSE1MKQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwog
ICAgICAgICBtYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MTYxZDA1ZGJl
MDEzZWRlYmZlNzk0MGQ5ZmRmM2Y4YmIzMjcxOTM2Li5kYzZkYzAxMmVjZGI4OWIyODVkZWZmMTk5
Y2E2OGQzOGJkZTllNWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTEtMDMtMDcg
IERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERhdGFUcmFuc2Zl
ckl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NTExNQorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdHVicyBmb3IgRGF0YVRyYW5zZmVySXRl
bXMvRGF0YVRyYW5zZmVySXRlbSBhcyB3ZWxsIGFzIGltcGxlbWVudGluZyB0aGUKKyAgICAgICAg
YmFzaWMgZnVuY3Rpb25hbGl0eSBvbiB0aGUgQ2hyb21pdW0gcG9ydC4gV2l0aCB0aGUgZXhjZXB0
aW9uIG9mIERhdGFUcmFuc2Zlckl0ZW06OmdldEFzRmlsZSwKKyAgICAgICAgYWxsIGZ1bmN0aW9u
YWxpdHkgb24gdGhlIERhdGFUcmFuc2Zlckl0ZW1zIGNvbGxlY3Rpb24gaGFzIGJlZW4gaW1wbGVt
ZW50ZWQuCisgICAgICAgIFRoaXMgY2hhbmdlIGRvZXMgbm90IGFjdHVhbGx5IGhvb2sgdXAgRGF0
YVRyYW5zZmVySXRlbXMgdG8gcmVmbGVjdCB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIGEKKyAgICAg
ICAgZHJvcC9wYXN0ZSBvcGVyYXRpb24gb3IgdG8gYWxsb3cgbXV0YXRpb24gb2YgZGF0YSBpbiBh
IGNvcHkvZHJhZyBzdGFydCB5ZXQuIFRoYXQgd2lsbCBiZQorICAgICAgICBlbmFibGVkIHZpYSBz
ZXZlcmFsIGZvbGxvd3VwIHBhdGNoZXMuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0ZWJv
YXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb2RlR2VuZXJhdG9ycy5wcmk6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0RGF0YVRyYW5zZmVySXRlbXNF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRhdGFU
cmFuc2Zlckl0ZW1zRW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG06IERvIG5vdCBlbWl0IGFuICNpbmNsdWRlIGxpbmUgZm9yIERPTVN0cmluZywg
c2luY2UgaXQncyBidWlsdC1pbi4KKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6CisgICAgICAg
IChXZWJDb3JlOjpDbGlwYm9hcmQ6OnBvbGljeSk6CisgICAgICAgICogZG9tL0NsaXBib2FyZC5p
ZGw6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwOiBBZGRlZC4KKyAgICAgICAg
KiBkb20vRGF0YVRyYW5zZmVySXRlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5z
ZmVySXRlbS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5oOiBB
ZGRlZC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiBkb20vU3RyaW5nQ2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0
cmluZ0NhbGxiYWNrOjpzY2hlZHVsZUNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vU3RyaW5nQ2Fs
bGJhY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWxsYmFjazo6flN0cmlu
Z0NhbGxiYWNrKToKKyAgICAgICAgKiBkb20vU3RyaW5nQ2FsbGJhY2suaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6aXRlbXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06On5EYXRhVHJhbnNmZXJJdGVt
Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpr
aW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6dHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzU3RyaW5n
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0u
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXND
aHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbXND
aHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zQ2hy
b21pdW06OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6fkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0pOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6bGVuZ3RoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06Oml0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6ZGVsZXRlSXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjphZGQpOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaDogQWRkZWQuCisKIDIwMTEt
MDMtMDcgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkIGJ1aWxkZml4IGFmdGVyIHI4MDQ3OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NvZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnBy
aQppbmRleCBkMjBmNjYxN2Y5OWU3ODhjNzc5MzkyZWM2YjFmNGUyOGMxYTQ1NzZhLi4zZTQ1OWE2
OTM4YzRkN2VjNGUzZjlmOTg0NDJjOWYzNmU5OWUyMzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRv
cnMucHJpCkBAIC0xMDksNiArMTA5LDggQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vQ29t
bWVudC5pZGwgXAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL0N1c3Rv
bUV2ZW50LmlkbCBcCisgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIFwKKyAgICBkb20vRGF0
YVRyYW5zZmVySXRlbXMuaWRsIFwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIFwKICAg
ICBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgXAogICAgIGRvbS9Eb2N1bWVudEZyYWdt
ZW50LmlkbCBcCkBAIC0xNDYsNiArMTQ4LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20v
UHJvZ3Jlc3NFdmVudC5pZGwgXAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAogICAgIGRv
bS9SYW5nZS5pZGwgXAorICAgIGRvbS9TdHJpbmdDYWxsYmFjay5pZGwgXAogICAgIGRvbS9UZXh0
LmlkbCBcCiAgICAgZG9tL1RleHRFdmVudC5pZGwgXAogICAgIGRvbS9Ub3VjaC5pZGwgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDcyZjFiMmQ2ZTE2ZTVkY2Q2ZjE3MjUxNDNmZDE5
NGU4OGJkMDFhM2MuLjlhYjM3ZWMzYjEzY2E4MmIxZTYwNDY0N2UyYzJlNGQzMmYyMjYyNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTcyLDYgKzcyLDggQEAKICNpbmNsdWRlICJK
U0RhdGFiYXNlU3luYy5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhR3JpZENvbHVtbi5jcHAiCiAjaW5j
bHVkZSAiSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwIgorI2luY2x1ZGUgIkpTRGF0YVRyYW5zZmVy
SXRlbS5jcHAiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtcy5jcHAiCiAjaW5jbHVkZSAi
SlNEYXRhVmlldy5jcHAiCiAjaW5jbHVkZSAiSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcCIK
ICNpbmNsdWRlICJKU0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIgpAQCAtMjgxLDYgKzI4Myw3
IEBACiAjaW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5jcHAiCiAjaW5jbHVk
ZSAiSlNTdG9yYWdlLmNwcCIKICNpbmNsdWRlICJKU1N0b3JhZ2VFdmVudC5jcHAiCisjaW5jbHVk
ZSAiSlNTdHJpbmdDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNTdHlsZU1lZGlhLmNwcCIKICNp
bmNsdWRlICJKU1N0eWxlU2hlZXQuY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVTaGVldExpc3QuY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjkyOThmZmFkNmU3N2FhNjFiNWJk
ZTExMmQ5NjZjNGQ2NTc3YTliNS4uOWI4ODdmMTZjMzA2YjhmYTQyY2U2NjQyNjI3YjI3OTY1ZDJi
ODM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTAsNiArMTUwLDggQEAg
RE9NX0NMQVNTRVMgPSBcCiAgICAgRE9NVG9rZW5MaXN0IFwKICAgICBET01VUkwgXAogICAgIERP
TVdpbmRvdyBcCisgICAgRGF0YVRyYW5zZmVySXRlbSBcCisgICAgRGF0YVRyYW5zZmVySXRlbXMg
XAogICAgIERhdGFiYXNlIFwKICAgICBEYXRhYmFzZUNhbGxiYWNrIFwKICAgICBEYXRhYmFzZVN5
bmMgXApAQCAtMzQ3LDYgKzM0OSw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFNRTFRyYW5zYWN0
aW9uU3luY0NhbGxiYWNrIFwKICAgICBTdG9yYWdlIFwKICAgICBTdG9yYWdlRXZlbnQgXAorICAg
IFN0cmluZ0NhbGxiYWNrIFwKICAgICBTVkdBRWxlbWVudCBcCiAgICAgU1ZHQWx0R2x5cGhFbGVt
ZW50IFwKICAgICBTVkdBbmdsZSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDQ5OTNiYmJiZjdl
MTFiOTc4OWQ4ZTNhN2FiZmYwNTA5M2M5YjFlNWIuLjk1ZGUzYmJlYTJmMzIyMDg0M2JiZWZlMzdl
ZWZjYjk5Y2E4ZWRmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00MDE2LDEwICs0MDE2LDIz
IEBAIGVuZGlmICMgRU5EIEVOQUJMRV9EQVRBTElTVAogCiAjIC0tLS0KICMgSFRNTDUgZGF0YSB0
cmFuc2ZlciBpdGVtcyBzdXBwb3J0Ci0jLS0tLS0KKyMgLS0tLQogaWYgRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMKIEZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
Uz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVM9MQor
d2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0RhdGFUcmFuc2Zlckl0ZW0uaCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNEYXRhVHJhbnNmZXJJdGVtcy5jcHAgXAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRGF0YVRyYW5zZmVySXRlbXMuaCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTdHJpbmdDYWxsYmFjay5jcHAgXAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U3RyaW5nQ2FsbGJhY2suaAord2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVySXRlbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9k
b20vU3RyaW5nQ2FsbGJhY2suaAogZW5kaWYgIyBFTkQgRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRF
TVMKIAogIyAtLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWUzNzg5NzU3YzdiMGY3MWM3YzY1NTc4
ZjVkYzkxNDY5NDQ2YTU5ZC4uYmY5OWU1OGU4MzRiYmU0NjQxYzU0M2U4YzcxZTljMjlkNjFkNmI0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTAsNiArNTAsOCBAQAogICAgICAgICAgICAgJ2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2RvbS9ET01TdHJpbmdMaXN0Lmlk
bCcsCiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ01hcC5pZGwnLAorICAgICAgICAgICAgJ2Rv
bS9EYXRhVHJhbnNmZXJJdGVtLmlkbCcsCisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbCcsCiAgICAg
ICAgICAgICAnZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdk
b20vRG9jdW1lbnQuaWRsJywKQEAgLTg0LDYgKzg2LDcgQEAKICAgICAgICAgICAgICdkb20vUmFu
Z2UuaWRsJywKICAgICAgICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uaWRsJywKICAgICAgICAg
ICAgICdkb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsJywKKyAgICAgICAgICAg
ICdkb20vU3RyaW5nQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdkb20vVGV4dC5pZGwnLAog
ICAgICAgICAgICAgJ2RvbS9UZXh0RXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vVG91Y2gu
aWRsJywKQEAgLTEyMjgsNiArMTIzMSw5IEBACiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ01h
cC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9ET01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAgICAn
ZG9tL0RPTVRpbWVTdGFtcC5oJywKKyAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbS5j
cHAnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgnLAorICAgICAgICAgICAg
J2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oJywKICAgICAgICAgICAgICdkb20vRGF0YXNldERPTVN0
cmluZ01hcC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgnLAog
ICAgICAgICAgICAgJ2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCcsCkBAIC0xMzgw
LDYgKzEzODYsOCBAQAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNOb2RlTGlzdC5oJywKICAgICAg
ICAgICAgICdkb20vU3RhdGljU3RyaW5nTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TdGF0
aWNTdHJpbmdMaXN0LmgnLAorICAgICAgICAgICAgJ2RvbS9TdHJpbmdDYWxsYmFjay5jcHAnLAor
ICAgICAgICAgICAgJ2RvbS9TdHJpbmdDYWxsYmFjay5oJywKICAgICAgICAgICAgICdkb20vU3R5
bGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlRWxlbWVudC5oJywKICAgICAg
ICAgICAgICdkb20vU3R5bGVkRWxlbWVudC5jcHAnLApAQCAtMjUyMiw2ICsyNTMwLDEwIEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVDaHJvbWl1bS5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRNZW51SXRlbUNocm9taXVtLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ3Vyc29yQ2hyb21pdW0uY3BwJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0u
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hy
b21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRHJh
Z0RhdGFDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdE
YXRhUmVmLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNocm9t
aXVtTWFjLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDU4M2RmMTRjOTk0NTRjYWRmMjA2ZDg2NTlk
NjU4NTRhNDliYmFlNmYuLjA4ZjA2MzYxZDU1MTRkYTFlYTk1MWY4NjViZDUzNGIxZjlmNTU0ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC0yNjkyLDYgKzI2OTIsMTYgQEAgY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0lOREVYRURfREFUQUJBU0U9MSkgewogICAgICAgICBzdG9yYWdlL0lEQlRyYW5zYWN0
aW9uLmNwcAogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
Uz0xKSB7CisgICAgSEVBREVSUyArPSBcCisgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtLmgg
XAorICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbXMuaCBcCisgICAgICAgIGRvbS9TdHJpbmdD
YWxsYmFjay5oCisgICAgU09VUkNFUyArPSBcCisgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVt
LmNwcCBcCisgICAgICAgIGRvbS9TdHJpbmdDYWxsYmFjay5jcHAKK30KKwogY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX0RPTV9TVE9SQUdFPTEpIHsKICAgICBIRUFERVJTICs9IFwKICAgICAgICAg
c3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA4NDdjMDRmMTUyYzRlZTlhZDA1ZGIzYzcwNTBiYWRm
OTYyYmY4ZGYwLi5kOWJjNzcxNjBjOGEwZDQ0ZjVjODlhMGZkY2ZlY2U1NWFmZWJhYjM1IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjgxOCw2
ICsyODE4LDExOCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbS5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0ZW0uaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFU
cmFuc2Zlckl0ZW1zLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbXMuaCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTRGVkaWNhdGVkV29ya2VyQ29udGV4dC5j
cHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMjExMjYsNiArMjEyMzgsNjIg
QEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1N0
cmluZ0NhbGxiYWNrLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU3RyaW5nQ2FsbGJhY2suaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1RleHQuY3BwIgogCQkJCT4KIAkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTQyNTAyLDYgKzQyNjcwLDY2IEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhVHJhbnNmZXJJ
dGVtLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbS5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbXMuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERh
dGFzZXRET01TdHJpbmdNYXAuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAg
LTQ2MTk0LDYgKzQ2NDIyLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTdHJpbmdDYWxsYmFjay5jcHAiCisJCQkJPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFN0cmluZ0Nh
bGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxTdHlsZWRFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNDAzYTYxOGNlMWZlMjE2NjRkY2IzNzU4YTgwZTgzMWU3MTUxYTkyMC4uZDljZTJlYTAx
NzBjNGFhMGZiNDM5YzI2ZThkNGYzNTczN2RlMjY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY2MSw5ICsxNjYxLDE0IEBA
CiAJCTdFRTY4NDcwMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1RDEyRDI2RTM4
MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDcxMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNv
dXJjZVJlc3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VD
Rk5ldC5jcHAgKi87IH07CiAJCTdFRTY4NDc1MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxv
YWRlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdFRTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCAq
LzsgfTsKKwkJODEwMkM1ODgxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxMDJDNTg3MTMy
NUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgKi87IH07CisJCTgxNUU2MTY3MTMy
NTg3QUEwMEI2MjJCMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxNUU2MTY2MTMyNTg3QUEwMEI2MjJCMCAvKiBE
YXRhVHJhbnNmZXJJdGVtLmNwcCAqLzsgfTsKIAkJODFBNzMyNUUxMjEwMTg5QjAwRkMwRDlFIC8q
IElEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODFBNzMyNUQxMjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5oICovOyB9OwogCQk4MUE3
MzI2MDEyMTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjVGMTIxMDE4QTQwMEZDMEQ5RSAvKiBJ
REJDdXJzb3IuY3BwICovOyB9OwogCQk4MUE3MzI3ODEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vy
c29yQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5o
ICovOyB9OworCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcx
MzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsgfTsKKwkJODFBQzU5OUEx
MzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyog
RGF0YVRyYW5zZmVySXRlbXMuaCAqLzsgfTsKKwkJODFBQzZDMzYxMzFDNTdEMzAwMDlBN0UwIC8q
IFN0cmluZ0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MUFDNkMzNTEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaCAqLzsg
fTsKIAkJODFCRTIwOTgxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDkz
MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgKi87IH07CiAJCTgx
QkUyMDk5MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5NDExRjRB
QjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovOyB9OwogCQk4MUJF
MjBEMjExRjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwQTcxMUY0QjY2RjAwOTE1REZBIC8q
IEpTSURCQ3Vyc29yLmNwcCAqLzsgfTsKQEAgLTgxNTUsOSArODE2MCwxNyBAQAogCQk3RUU2ODQ1
RDEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdFRTY4NDVFMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlQ0ZO
ZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VSZXNw
b25zZUNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NzQxMkQy
NkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHA7IHBhdGggPSBjZi9S
ZXNvdXJjZUxvYWRlckNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODEw
MkM1ODcxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODE1RTYxNjYxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFUcmFuc2Zl
ckl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0YVRyYW5z
ZmVySXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTczMjVEMTIxMDE4
OUIwMEZDMEQ5RSAvKiBJREJDdXJzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSURCQ3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTczMjVGMTIx
MDE4QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODFBNzMyNzcxMjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRh
VHJhbnNmZXJJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFUcmFu
c2Zlckl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFBQzU5OTgxMzE2MzZF
NjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgxQUM1QUU4MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODFBQzVBRTkxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0
ZW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtcy5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM2QzM0MTMxQzU3QzIwMDA5QTdFMCAvKiBT
dHJpbmdDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3RyaW5nQ2FsbGJhY2su
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUFDNkMzNTEzMUM1N0QzMDAwOUE3
RTAgLyogU3RyaW5nQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3RyaW5nQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFCRTIwOTMx
MUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFCRTIwOTQxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MUJFMjA5QzExRjRBQkJEMDA5MTVERkEgLyogSURCQ3Vyc29yLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBJREJDdXJzb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTkwMjEsNiArMTkwMzQsMTEgQEAKIAkJCQk2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3Vz
dG9tRXZlbnQuY3BwICovLAogCQkJCTYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21F
dmVudC5oICovLAogCQkJCTYyQ0QzMjU4MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5p
ZGwgKi8sCisJCQkJODE1RTYxNjYxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFUcmFuc2Zlckl0ZW0u
Y3BwICovLAorCQkJCTgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVt
LmggKi8sCisJCQkJODFBQzU5OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1z
LmggKi8sCisJCQkJODFBQzVBRTgxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0u
aWRsICovLAorCQkJCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVt
cy5pZGwgKi8sCiAJCQkJQkM2NDY0MUIxMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01TdHJp
bmdNYXAuY3BwICovLAogCQkJCUJDNjQ2NDFBMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0RE9N
U3RyaW5nTWFwLmggKi8sCiAJCQkJQThDMjI4QTAxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWRE
YXRhRG9jdW1lbnRQYXJzZXIuY3BwICovLApAQCAtMTkyMTUsNiArMTkyMzMsOSBAQAogCQkJCUNF
QTM5NDlCMTFENDVDREEwMDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCAqLywKIAkJ
CQlCQzdGQTYyQzBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwICovLAogCQkJ
CUJDN0ZBNjJCMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5oICovLAorCQkJCTgx
MDJDNTg3MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgKi8sCisJCQkJODFB
QzZDMzUxMzFDNTdEMzAwMDlBN0UwIC8qIFN0cmluZ0NhbGxiYWNrLmggKi8sCisJCQkJODFBQzZD
MzQxMzFDNTdDMjAwMDlBN0UwIC8qIFN0cmluZ0NhbGxiYWNrLmlkbCAqLywKIAkJCQlBOEM0QTdF
QzA5RDU2MzI3MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVudC5jcHAgKi8sCiAJCQkJQThDNEE3RUIw
OUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1lbnQuaCAqLywKIAkJCQlBQTRDM0E3NDBCMkIx
Njc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmNwcCAqLywKQEAgLTE5NzkzLDYgKzE5ODE0LDgg
QEAKIAkJCQlCQzIyNzJBRDBFODJFOEYzMDBFN0Y5NzUgLyogQ3Vyc29yTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNjJDRDMyNUExMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOENCNDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5z
ZmVySXRlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8q
IERhdGFUcmFuc2Zlckl0ZW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwQjBBMTk4OUNB
MDA3RkI4QzUgLyogRGFzaGJvYXJkUmVnaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTk2MTE2
QjBDQUM1NjU3MDAxMEE4MEMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTQ1
QjU2MENBRDdGRDcwMDBEMkJFOSAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtMjIwNzUsNiArMjIwOTgsNyBAQAogCQkJCTkzQjJEODE2MEY5OTIwRDIwMDZBRTZCMiAv
KiBTdWRkZW5UZXJtaW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1RDVC
RTAwM0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyQzEyMTdEMTFB
QjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
MUFDNkMzNjEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3OTc0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNjU2NTNGMkUwRDk3MjdEMjAwQ0E5NzIzIC8qIFNWR0FsdEdseXBoRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NzcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0Fu
Z2xlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTk2LDYgKzI1MjIwLDggQEAKIAkJCQk1OTNEM0VB
RDEzMjUzMjg0MDA1N0U3RUUgLyogSmF2YU1ldGhvZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
OThENzdERDEzMjU0MUVFMDA3NjFCMjIgLyogSmF2YUFycmF5SlNDLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTU5OEQ3N0UxMTMyNTQyMDQwMDc2MUIyMiAvKiBKYXZhRmllbGRKU0MuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJODE1RTYxNjcxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFUcmFuc2Zlckl0
ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODEwMkM1ODgxMzI1QkIxMTAwRERFNjdBIC8qIFN0
cmluZ0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKaW5kZXgg
MTRlNGFjOGI1YTU1NDhiOGM2OTdmNmY2ZDlhMWY1MmZmOWE0NGEyMi4uYmVlNmEyN2FhZGY2ZTVj
MGJhMDQ3YTM4NjUwYWI2OGRkNjE2NzNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCkBAIC00Niw2
ICs0Niw3IEBAIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNMb2NhbFN0b3JhZ2VFbmFi
bGVkID0gdHJ1ZTsKIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNTZXNzaW9uU3RvcmFn
ZUVuYWJsZWQgPSB0cnVlOwogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1dlYmtpdE5v
dGlmaWNhdGlvbnNFbmFibGVkID0gZmFsc2U7CiBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQgPSB0cnVlOworYm9vbCBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjppc0RhdGFUcmFuc2Zlckl0ZW1zRW5hYmxlZCA9IHRydWU7CiBib29sIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OmlzR2VvbG9jYXRpb25FbmFibGVkID0gdHJ1ZTsKIGJvb2wgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6aXNJbmRleGVkREJFbmFibGVkID0gZmFsc2U7CiBib29sIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OmlzV2ViQXVkaW9FbmFibGVkID0gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCmluZGV4IDdlMjEyMTQ1OTA5OGQ3MGU1NjE0OTJlYTA3M2Q1MTkyNTM1M2VkODYuLjA5ZTQw
MDQ4YTU4Mzk1YTU4NjEwMjAwYzNlYTlmZDQ5M2ViZTAwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBA
IC01MSw2ICs1MSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkID0g
aXNFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgYXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKSB7
IHJldHVybiBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOyB9CiAKKyAgICBzdGF0aWMgdm9pZCBz
ZXREYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgaXNEYXRhVHJhbnNm
ZXJJdGVtc0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBkYXRhVHJhbnNm
ZXJJdGVtc0VuYWJsZWQoKSB7IHJldHVybiBpc0RhdGFUcmFuc2Zlckl0ZW1zRW5hYmxlZDsgfQor
CiAgICAgc3RhdGljIHZvaWQgc2V0R2VvbG9jYXRpb25FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7
IGlzR2VvbG9jYXRpb25FbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgZ2Vv
bG9jYXRpb25FbmFibGVkKCkgeyByZXR1cm4gaXNHZW9sb2NhdGlvbkVuYWJsZWQ7IH0KIApAQCAt
MTcwLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNTZXNzaW9uU3RvcmFn
ZUVuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgaXNXZWJraXROb3RpZmljYXRpb25zRW5hYmxlZDsK
ICAgICBzdGF0aWMgYm9vbCBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOworICAgIHN0YXRpYyBi
b29sIGlzRGF0YVRyYW5zZmVySXRlbXNFbmFibGVkOwogICAgIHN0YXRpYyBib29sIGlzR2VvbG9j
YXRpb25FbmFibGVkOwogICAgIHN0YXRpYyBib29sIGlzSW5kZXhlZERCRW5hYmxlZDsKICAgICBz
dGF0aWMgYm9vbCBpc1dlYkF1ZGlvRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZGYxYzA0YWY3YTRmMTE0MTdl
NTI3MzkxMWRkNThiZTRlNjY1MjQ0ZC4uZTJmZTI3N2YwNTA0NjY5YjFiMWFiYzgyYmJkN2MwYzYz
OGIxMDdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0KQEAgLTEyOCw3ICsxMjgsNyBAQCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBl
CiAKICAgICAjIFdoZW4gd2UncmUgZmluaXNoZWQgd2l0aCB0aGUgb25lLWZpbGUtcGVyLWNsYXNz
CiAgICAgIyByZW9yZ2FuaXphdGlvbiwgd2Ugd29uJ3QgbmVlZCB0aGVzZSBzcGVjaWFsIGNhc2Vz
LgotICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSkgYW5kICEk
Y29kZUdlbmVyYXRvci0+QXZvaWRJbmNsdXNpb25PZlR5cGUoJHR5cGUpIGFuZCAkdHlwZSBuZSAi
RGF0ZSIpIHsKKyAgICBpZiAoISRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUp
IGFuZCAhJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSkgYW5kICEkY29kZUdlbmVy
YXRvci0+QXZvaWRJbmNsdXNpb25PZlR5cGUoJHR5cGUpIGFuZCAkdHlwZSBuZSAiRGF0ZSIpIHsK
ICAgICAgICAgIyBkZWZhdWx0LCBpbmNsdWRlIHRoZSBzYW1lIG5hbWVkIGZpbGUKICAgICAgICAg
JGltcGxJbmNsdWRlc3tHZXRWOEhlYWRlck5hbWUoJHt0eXBlfSl9ID0gMTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZC5oCmluZGV4IGI4ZWFkZmI2ZDA2NzQ4NWI0MThiODc5YjFhOWNkZmZjNmZjY2UwMWYu
LjQwMTQxYWYxMWI5N2RiNmU3YTYzMGJkNjFjMjZhZTE0MDY3NzkzY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
cGJvYXJkLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisgICAg
Y2xhc3MgRGF0YVRyYW5zZmVySXRlbXM7CiAgICAgY2xhc3MgRHJhZ0RhdGE7CiAgICAgY2xhc3Mg
RmlsZUxpc3Q7CiAgICAgY2xhc3MgRnJhbWU7CkBAIC04NCw2ICs4NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGhhc0RhdGEoKSA9IDA7CiAgICAgICAgIAog
ICAgICAgICB2b2lkIHNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOworICAg
ICAgICBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9wb2xp
Y3k7IH0KIAogICAgICAgICBEcmFnT3BlcmF0aW9uIHNvdXJjZU9wZXJhdGlvbigpIGNvbnN0Owog
ICAgICAgICBEcmFnT3BlcmF0aW9uIGRlc3RpbmF0aW9uT3BlcmF0aW9uKCkgY29uc3Q7CkBAIC05
MSwxMSArOTMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldERlc3Rp
bmF0aW9uT3BlcmF0aW9uKERyYWdPcGVyYXRpb24pOwogICAgICAgICAKICAgICAgICAgdm9pZCBz
ZXREcmFnSGFzU3RhcnRlZCgpIHsgbV9kcmFnU3RhcnRlZCA9IHRydWU7IH0KKworI2lmIEVOQUJM
RShEQVRBX1RSQU5TRkVSX0lURU1TKQorICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbXM+IGl0ZW1zKCkgPSAwOworI2VuZGlmCiAgICAgICAgIAogICAgIHByb3RlY3Rl
ZDoKICAgICAgICAgQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSwgQ2xpcGJvYXJkVHlw
ZSk7CiAKLSAgICAgICAgQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSgpIGNvbnN0IHsgcmV0
dXJuIG1fcG9saWN5OyB9CiAgICAgICAgIGJvb2wgZHJhZ1N0YXJ0ZWQoKSBjb25zdCB7IHJldHVy
biBtX2RyYWdTdGFydGVkOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlw
Ym9hcmQuaWRsCmluZGV4IDEwMjRhMzZkMTZhM2M0OTAzYWYwZGU2ZDVkM2RmOTZlZDg4NzRkYTQu
LmQ1YmIzMzExN2Q0NDk2MmM4NWQ4ZTJjYTZlM2E3NjJiY2U3OGMzYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaWRsCkBAIC00Miw2ICs0Miw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW1Jl
cXVpcmVzQWxsQXJndW1lbnRzXSBib29sZWFuIHNldERhdGEoaW4gRE9NU3RyaW5nIHR5cGUsIGlu
IERPTVN0cmluZyBkYXRhKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXREcmFnSW1hZ2UoaW4g
SFRNTEltYWdlRWxlbWVudCBpbWFnZSwgaW4gbG9uZyB4LCBpbiBsb25nIHkpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsIEVuYWJsZWRBdFJ1bnRpbWU9RGF0YVRyYW5z
ZmVySXRlbXNdIERhdGFUcmFuc2Zlckl0ZW1zIGl0ZW1zOwogICAgIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWVjODY5MmFmMWZiZGJk
NTJiOThlNGE2ZDViOTcyODNkMTY1MjRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgorCisjaWYgRU5BQkxFKERBVEFf
VFJBTlNGRVJfSVRFTVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgY2hhciBEYXRh
VHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nW10gPSAic3RyaW5nIjsKK2NvbnN0IGNoYXIgRGF0YVRy
YW5zZmVySXRlbTo6a2luZEZpbGVbXSA9ICJmaWxlIjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTY3NWFhYzdlNGFjM2ExNmI4MmQ3OTZm
ZGMxZTg1Nzg0MTAyODM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJhbnNmZXJJdGVt
X2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbV9oCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZF
Ul9JVEVNUykKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdHJpbmdDYWxsYmFjazsK
KworY2xhc3MgRGF0YVRyYW5zZmVySXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFUcmFuc2Zl
ckl0ZW0+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgY2hhciBraW5kU3RyaW5nW107Cisg
ICAgc3RhdGljIGNvbnN0IGNoYXIga2luZEZpbGVbXTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGtp
bmQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0ID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPikg
PSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERB
VEFfVFJBTlNGRVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVtX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmM5OTQyNjQ2NmI0
MjY2YTRiZWE2MzIwNDE1MmYyNWZjZjg4ZGU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29y
ZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1EQVRBX1RSQU5TRkVS
X0lURU1TCisgICAgXSBEYXRhVHJhbnNmZXJJdGVtIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBraW5kOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHR5cGU7CisKKyAgICAgICAgdm9pZCBnZXRBc1N0cmluZyhpbiBbQ2FsbGJhY2tdIFN0cmluZ0Nh
bGxiYWNrIGNhbGxiYWNrKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiY2E5ODNjODY0YzIxZjJkYjMyM2E1YjFmMmQxZWU3ZWVj
ZTI1ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbXMuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJhbnNmZXJJdGVtc19oCisjZGVm
aW5lIERhdGFUcmFuc2Zlckl0ZW1zX2gKKworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1T
KQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW07CisKK3R5
cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW1zIDogcHVi
bGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVySXRlbXM+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxEYXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRp
b25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpID0gMDsKKworICAgIHZpcnR1
YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2Vw
dGlvbkNvZGUmKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2VuZGlmIC8vIERhdGFUcmFuc2Zlckl0
ZW1zX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1z
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWNiMzZiODgzYjQ3OWU4OGQwNzllZjMyNGVlZDdkNzFlODBjNTM3ZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwKQEAgLTAsMCAr
MSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlv
bmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsCisgICAgICAgIEhhc0luZGV4R2V0dGVyLAorICAgICAg
ICBDdXN0b21EZWxldGVQcm9wZXJ0eSwKKyAgICBdIERhdGFUcmFuc2Zlckl0ZW1zIHsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGVuZ3RoOworICAgICAgICBEYXRhVHJhbnNmZXJJ
dGVtIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgZ2V0dGVyOworCisgICAgICAgIHZvaWQg
Y2xlYXIoKTsKKyAgICAgICAgdm9pZCBhZGQoaW4gRE9NU3RyaW5nIGRhdGEsIGluIERPTVN0cmlu
ZyB0eXBlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1N0cmluZ0NhbGxiYWNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTRkODg5ODMwNWNlOGZjMzY1NjNkZTI0
YTUyNWI4YjRiYzA1NDlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0
cmluZ0NhbGxiYWNrLmNwcApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgiCisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgRGlzcGF0Y2hDYWxsYmFja1Rhc2sgOiBwdWJs
aWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CitwdWJsaWM6CisgICAgc3RhdGljIERp
c3BhdGNoQ2FsbGJhY2tUYXNrKiBjcmVhdGUoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2Fs
bGJhY2ssIGNvbnN0IFN0cmluZyYgZGF0YSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgRGlz
cGF0Y2hDYWxsYmFja1Rhc2soY2FsbGJhY2ssIGRhdGEpOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKKyAgICB7CisgICAgICAg
IG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KG1fZGF0YSk7CisgICAgfQorCitwcml2YXRlOgorICAg
IERpc3BhdGNoQ2FsbGJhY2tUYXNrKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNhbGxiYWNr
LCBjb25zdCBTdHJpbmcmIGRhdGEpCisgICAgICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAg
ICAgICAgLCBtX2RhdGEoZGF0YSkKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRyPFN0cmluZ0Nh
bGxiYWNrPiBtX2NhbGxiYWNrOworICAgIGNvbnN0IFN0cmluZyBtX2RhdGE7Cit9OworCit9IC8v
IG5hbWVzcGFjZQorCit2b2lkIFN0cmluZ0NhbGxiYWNrOjpzY2hlZHVsZUNhbGxiYWNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YSkKK3sKKyAgICBj
b250ZXh0LT5wb3N0VGFzayhEaXNwYXRjaENhbGxiYWNrVGFzazo6Y3JlYXRlKHRoaXMsIGRhdGEp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1N0cmluZ0NhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJh
Y2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MmU4M2UyMTk2MDkzYjAwYTQyYWU5ZmRlODliMjYxMjgyMWQyZDQ1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmgK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgU3RyaW5nQ2FsbGJhY2tfaAorI2RlZmluZSBTdHJpbmdD
YWxsYmFja19oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKKworY2xhc3MgU3RyaW5nQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHJp
bmdDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflN0cmluZ0NhbGxiYWNrKCkgeyB9
CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KGNvbnN0IFN0cmluZyYgZGF0YSkgPSAwOwor
CisgICAgLy8gSGVscGVyIHRvIHBvc3QgY2FsbGJhY2sgdGFzay4KKyAgICB2b2lkIHNjaGVkdWxl
Q2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YSk7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTdHJpbmdDYWxsYmFja19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTE4ZDgzZmUw
YWY0YzJhNWQ0MzJhODUwYTBiZDA4ZTNjMzJlZDJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
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
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNv
cmUgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENhbGxiYWNrCisgICAgXSBTdHJpbmdDYWxs
YmFjayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gRE9NU3RyaW5nIGRhdGEpOwor
ICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9D
bGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9D
bGlwYm9hcmRDaHJvbWl1bS5jcHAKaW5kZXggZmIzZTA1YjI5ZGZmZmM4OWE3MjA1ZjM1Y2E3Y2Jj
MDNmOTRiZDZhZS4uYTlmNjVhMWVkOTYwMDU3YzA5MDYwMmI1MzAyZGE5NTE4OGZiOWY5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENo
cm9taXVtLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNocm9taXVtRGF0YU9iamVj
dC5oIgogI2luY2x1ZGUgIkNsaXBib2FyZE1pbWVUeXBlcy5oIgogI2luY2x1ZGUgIkNsaXBib2Fy
ZFV0aWxpdGllc0Nocm9taXVtLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1
bS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNs
dWRlICJFbGVtZW50LmgiCkBAIC0zMzksNCArMzQwLDkgQEAgYm9vbCBDbGlwYm9hcmRDaHJvbWl1
bTo6aGFzRGF0YSgpCiAgICAgcmV0dXJuIG1fZGF0YU9iamVjdC0+aGFzRGF0YSgpOwogfQogCitQ
YXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zPiBDbGlwYm9hcmRDaHJvbWl1bTo6aXRlbXMoKQor
eworICAgIHJldHVybiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjcmVhdGUodGhpcywgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0NsaXBib2FyZENocm9taXVtLmgKaW5kZXggZDMwYTFjNGExM2E1YTJhNWI1MTExM2Y0Yzc3
YjQwZjJlM2VkMTJlMS4uMDU3YWRhZWQwYjU0NWNlMDllMWNmMzU1NjM0MDYwMjQ2YTI4OWQwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hy
b21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5oCkBAIC04MCw2ICs4MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaGFzRGF0YSgpOwogCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtcz4gaXRlbXMoKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIENsaXBi
b2FyZENocm9taXVtKENsaXBib2FyZFR5cGUsIFBhc3NSZWZQdHI8Q2hyb21pdW1EYXRhT2JqZWN0
PiwgQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBGcmFtZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVt
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMGU1ODNhZTBkNjM0YWI1OTEyNjEyMzFmMDFjOThiZWZkMjcxMTIx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0
YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oIgorCisjaW5jbHVkZSAi
Q2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiU3RyaW5nQ2FsbGJhY2suaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gRGF0YVRyYW5z
ZmVySXRlbUNocm9taXVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdHlwZSkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bShvd25lciwg
Y29udGV4dCwgZGF0YSwgdHlwZSkpOworfQorCitEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OkRh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3Ry
aW5nJiB0eXBlKQorICAgIDogbV9vd25lcihvd25lcikKKyAgICAsIG1fY29udGV4dChjb250ZXh0
KQorICAgICwgbV9raW5kKGtpbmRTdHJpbmcpCisgICAgLCBtX3R5cGUodHlwZSkKKyAgICAgICwg
bV9kYXRhKGRhdGEpCit7Cit9CisKK0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6fkRhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bSgpCit7Cit9CisKK1N0cmluZyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW06OmtpbmQoKSBjb25zdAoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9h
cmROdW1iKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIG1fa2luZDsKK30K
KworU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6dHlwZSgpIGNvbnN0Cit7CisgICAg
aWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICByZXR1cm4gbV90eXBlOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1D
aHJvbWl1bTo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJhY2sp
Cit7CisgICAgaWYgKChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBt
X293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKKyAgICAgICAgfHwgbV9raW5k
ICE9IGtpbmRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKyAgICBjYWxsYmFjay0+c2NoZWR1bGVD
YWxsYmFjayhtX2NvbnRleHQsIG1fZGF0YSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGYxOGJmNmI2MzI4NDY3YjliOGMwNGM4
YmUyZDE2NjcwNDdlODE2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oCkBAIC0wLDAgKzEsNzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bV9oCisjZGVmaW5lIERhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bV9oCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2luY2x1
ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
Q2xpcGJvYXJkOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtIDogcHVibGljIERhdGFUcmFuc2Zlckl0ZW0geworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gY3JlYXRlKFBh
c3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKworICAgIHZpcnR1YWwgfkRhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bSgpOworCisgICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0
OworICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBn
ZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPik7CisKK3ByaXZhdGU6CisgICAg
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0
eXBlKTsKKworICAgIGNvbnN0IFJlZlB0cjxDbGlwYm9hcmQ+IG1fb3duZXI7CisgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogbV9jb250ZXh0OworICAgIGNvbnN0IFN0cmluZyBtX2tpbmQ7Cisg
ICAgY29uc3QgU3RyaW5nIG1fdHlwZTsKKyAgICBjb25zdCBTdHJpbmcgbV9kYXRhOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJf
SVRFTVMpCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVtX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJv
bWl1bS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM4NTY3NWFlNDM1YWY0M2M1ZmFjNDc2OWI1YTc2OTc1NjZi
MmFiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3BwCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
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
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaCIKKworI2lu
Y2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5o
IgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0+IERhdGFUcmFuc2Zlckl0ZW1zQ2hy
b21pdW06OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNm
ZXJJdGVtc0Nocm9taXVtKG93bmVyLCBjb250ZXh0KSk7Cit9CisKK0RhdGFUcmFuc2Zlckl0ZW1z
Q2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+
IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogbV9vd25lcihv
d25lcikKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQoreworfQorCitEYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtOjp+RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bSgpCit7Cit9CisKK3Vuc2lnbmVk
IGxvbmcgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICBp
ZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgcmV0dXJuIG1faXRlbXMuc2l6ZSgpOworfQorCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zl
ckl0ZW0+IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06Oml0ZW0odW5zaWduZWQgbG9uZyBpbmRl
eCkgY29uc3QKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYiB8
fCBpbmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1faXRl
bXNbaW5kZXhdOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmRlbGV0ZUl0
ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1f
b3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaW5kZXgg
Pj0gbGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXRlbXMucmVtb3ZlKGluZGV4
KTsKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjbGVhcigpCit7CisgICAg
aWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2l0ZW1zLmNsZWFyKCk7Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbXND
aHJvbWl1bTo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJk
V3JpdGFibGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkgb25lICdzdHJpbmcnIGl0
ZW0gd2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4KKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYg
KG1faXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9PSBEYXRh
VHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7CisgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9p
dGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGUobV9vd25lciwgbV9j
b250ZXh0LCBkYXRhLCB0eXBlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1z
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1zQ2hyb21pdW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjIzNDI4NjQ0MmJjYzk0OGYxZmEwOTA0MGU2
MjkwMThhNDg5Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oCkBAIC0wLDAgKzEsNzUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW1faAorI2RlZmluZSBEYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtX2gKKworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisjaW5jbHVk
ZSAiRGF0YVRyYW5zZmVySXRlbXMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENsaXBib2Fy
ZDsKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CisKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2NsYXNzIERhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW0gOiBwdWJsaWMgRGF0YVRyYW5zZmVySXRlbXMgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0+IGNyZWF0ZShQ
YXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIHZp
cnR1YWwgfkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0oKTsKKworICAgIHZpcnR1YWwgdW5zaWdu
ZWQgbG9uZyBsZW5ndGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5z
ZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CisgICAg
dmlydHVhbCB2b2lkIGNsZWFyKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0cmlu
ZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6
CisgICAgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIFJlZlB0cjxDbGlwYm9hcmQ+IG1fb3duZXI7
CisgICAgLy8gSW5kaXJlY3RseSBvd25lZCBieSBvdXIgcGFyZW50LgorICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBWZWN0b3I8UmVmUHRyPERhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bT4gPiBtX2l0ZW1zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2ZmFi
NmJhZTg0YTU1OTJmNWYxOWU0NjdlOThiYjg3MWJlMjA0ZmYxLi5kOGZjODNhZGViN2MyNjhmNWVj
YTkzN2NkZTNhYmU4ZmM1Yzk0M2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDExLTAzLTA3ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBEYXRhVHJhbnNmZXJJdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxMTUKKworICAgICAgICBBZGQgbmV3IHJ1bnRpbWUgZW5h
YmxlZCBmbGFnIGZvciBkYXRhIHRyYW5zZmVyIGl0ZW1zIGZlYXR1cmUuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmg6CisgICAgICAgICogc3JjL1dlYlJ1bnRpbWVGZWF0
dXJlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlRGF0
YVRyYW5zZmVySXRlbXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6Omlz
RGF0YVRyYW5zZmVySXRlbXNFbmFibGVkKToKKwogMjAxMS0wMy0wNyAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJl
cy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgK
aW5kZXggYzllMzJmNTZkZDFjNWViMWZhYWI5OGQxNWVjNDQwYWJjYjAxMGRiMi4uNmI5YTBkMGZj
YTE5OTE0NDc0ZDdkMmIwM2E1Mjg5NWIyMzgzZjhmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKQEAgLTYzLDYgKzYzLDkgQEAg
cHVibGljOgogCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVBcHBsaWNhdGlvbkNh
Y2hlKGJvb2wpOwogICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaXNBcHBsaWNhdGlvbkNhY2hl
RW5hYmxlZCgpOworICAgIAorICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlRGF0YVRy
YW5zZmVySXRlbXMoYm9vbCk7CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc0RhdGFUcmFu
c2Zlckl0ZW1zRW5hYmxlZCgpOwogCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVH
ZW9sb2NhdGlvbihib29sKTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlzR2VvbG9jYXRp
b25FbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJS
dW50aW1lRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGlt
ZUZlYXR1cmVzLmNwcAppbmRleCBlM2VjZTZlYjNmZmRiNjI1ODY0YzQzMTZiODgzZmVjMGNmMzIx
NzVmLi5hNTNhYWY5YjcwNzU5ODZlMDMxNTBiMzQ1MjVlZmQ1OTY1N2E4NDJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAKQEAgLTE1
Miw2ICsxNTIsMjIgQEAgYm9vbCBXZWJSdW50aW1lRmVhdHVyZXM6OmlzQXBwbGljYXRpb25DYWNo
ZUVuYWJsZWQoKQogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVE
YXRhVHJhbnNmZXJJdGVtcyhib29sIGVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZF
Ul9JVEVNUykKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXREYXRhVHJhbnNmZXJJdGVt
c0VuYWJsZWQoZW5hYmxlKTsKKyNlbmRpZgorfQorCitib29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6
aXNEYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQoKQoreworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVS
X0lURU1TKQorICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkYXRhVHJhbnNmZXJJ
dGVtc0VuYWJsZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIHZv
aWQgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVHZW9sb2NhdGlvbihib29sIGVuYWJsZSkKIHsK
ICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYjlmZmQ3YmZiMzY4M2MyNzNmYTQ3YjE2Nzc4MWVlYTJkMzIw
Y2E5Zi4uYmI1ZDNlN2M4NDBlYzIzZjA2OTM2ZmE3ZDRkYTM2Y2ZmZDE2Yzk1NyAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDExLTAzLTA3ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBEYXRhVHJhbnNmZXJJdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTUxMTUKKworICAgICAgICBFbmFibGUgZGF0YSB0cmFuc2ZlciBpdGVtcyBp
biBEUlQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3Bw
OgorICAgICAgICAoVGVzdFNoZWxsOjpUZXN0U2hlbGwpOgorCiAyMDExLTAzLTA3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxz
c29uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxs
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKaW5kZXgg
MjU3NGFiY2Y5MzY1YzdmODc3MTNlYzQ3NmY0ODBmMWU0MjA1OWI2Yy4uZTFhODZlZmRhYjY0Yjcy
Zjg2YjE2OGRkNWYwZjQ4YWU1YjYwMDA1YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwCkBAIC05MCw2ICs5MCw3IEBAIFRlc3RTaGVsbDo6VGVzdFNoZWxs
KGJvb2wgdGVzdFNoZWxsTW9kZSkKICAgICAsIG1fc3RyZXNzRGVvcHQoZmFsc2UpCiAgICAgLCBt
X2R1bXBXaGVuRmluaXNoZWQodHJ1ZSkKIHsKKyAgICBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJs
ZURhdGFUcmFuc2Zlckl0ZW1zKHRydWUpOwogICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxl
R2VvbG9jYXRpb24odHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVJbmRleGVk
RGF0YWJhc2UodHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVGaWxlU3lzdGVt
KHRydWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85010</attachid>
            <date>2011-03-07 19:06:04 -0800</date>
            <delta_ts>2011-03-07 21:23:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55115-20110307190603.patch</filename>
            <type>text/plain</type>
            <size>77873</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA0ODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZTM1OWIwZTA1ZDBhY2U2YmI1NjJj
ZDkyYmY5YWU5YmZmOTk3MTJlLi43NWJmMjVkYTUyZjk1OGRhNGQyNzMwZmU3NzZkZWRmYjZmMmJk
NzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMtMDcgIERhbmllbCBDaGVuZyAgPGRj
aGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERhdGFUcmFuc2Zlckl0ZW1zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTExNQorCisgICAgICAgIExh
eW91dCB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBiYXNpYyBwcm9wZXJ0aWVzIG9mIGRhdGFUcmFu
c2Zlci5pdGVtcyBmdW5jdGlvbiBhcyBleHBlY3RlZC4KKworICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vU2tpcHBlZDoKKwogMjAxMS0wMy0wNyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0
ZW1zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTI3ZDUxNjIxMGFhOTFlM2RkMGM3MzY3ZWFk
Mzk4NGJhMTVmYmJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogUG9wdWxhdGluZyBEYXRhVHJhbnNmZXJJdGVtcy4u
LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI3OiBDYXVnaHQgZXhjZXB0aW9uICJFcnJvcjogSU5W
QUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEiIGFzIGV4cGVjdGVkLgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDMxOiBWZXJpZnlpbmcgY29udGVudHMgb2YgRGF0YVRyYW5zZmVySXRlbXMu
Li4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMjogaXRlbXMubGVuZ3RoOiAyCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzM6IGl0ZW1zWzBdLmtpbmQ6IHN0cmluZworQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDM0OiBpdGVtc1swXS50eXBlOiB0ZXh0L3BsYWluCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MzU6IGl0ZW1zWzFdLmtpbmQ6IHN0cmluZworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBpdGVt
c1sxXS50eXBlOiB0ZXh0L2h0bWwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0MDogQ2hlY2tpbmcg
aWYgaXRlbXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBjb2xsZWN0aW9uIGNhbiBiZSBpbmRleGVkOgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDQxOiBpdGVtc1syXTogdW5kZWZpbmVkCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNTE6IENoZWNraW5nIHRoYXQgYSByZWFkLW9ubHkgRGF0YVRyYW5zZmVySXRl
bXMgY2Fubm90IGJlIG11dGF0ZWQuLi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NDogaXRlbXMu
bGVuZ3RoOiAwCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTU6IGl0ZW1zWzBdOiB1bmRlZmluZWQK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA2ODogVGVzdGluZyBpZiBEYXRhVHJhbnNmZXJJdGVtcyBj
YW4gYmUgYWNjZXNzZWQgb3V0c2lkZSBhbiBldmVudCBoYW5kbGVyLi4uCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTM6IGl0ZW1zWzBdIHZhbHVlOiBIZWxsbyBXb3JsZCEKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxMzogaXRlbXNbMV0gdmFsdWU6IDxiPkhlbGxvIFdvcmxkIQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDk5OiBQQVNTRUQKK1RoaXMgZmlsZSB0ZXN0cyB0aGUgYmFzaWMgZnVuY3Rpb25h
bGl0eSBhbmQgcHJvcGVydGllcyBvZiBEYXRhVHJhbnNmZXJJdGVtcy4gVGhpcyB0ZXN0IHJlcXVp
cmVzIERSVC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kYXRh
LXRyYW5zZmVyLWl0ZW1zLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZGF0
YS10cmFuc2Zlci1pdGVtcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NDhlODVkOTA2NmI4ZTMzN2JkMTg2
NDU1NGY4NjNlMDgwNDVjZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25jb3B5PSJjb3B5KGV2ZW50KSIgb25wYXN0
ZT0icGFzdGUoZXZlbnQpIj4KKzxkaXY+VGhpcyBmaWxlIHRlc3RzIHRoZSBiYXNpYyBmdW5jdGlv
bmFsaXR5IGFuZCBwcm9wZXJ0aWVzIG9mIERhdGFUcmFuc2Zlckl0ZW1zLiBUaGlzIHRlc3QgcmVx
dWlyZXMgRFJULjwvZGl2PgorCis8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgordmFyIHNhdmVkRGF0YVRyYW5zZmVySXRlbXMgPSBudWxsOwordmFyIHNhdmVk
RGF0YVRyYW5zZmVySXRlbSA9IG51bGw7CisKK2Z1bmN0aW9uIGhhbmRsZUV2ZW50KGRhdGEpCit7
CisgICAgY29uc29sZS5sb2coZGF0YSk7Cit9CisKK2Z1bmN0aW9uIGNvcHkoZXYpCit7CisgICAg
dmFyIGl0ZW1zID0gZXZlbnQuY2xpcGJvYXJkRGF0YS5pdGVtczsKKyAgICBjb25zb2xlLmxvZygn
UG9wdWxhdGluZyBEYXRhVHJhbnNmZXJJdGVtcy4uLicpOworICAgIGl0ZW1zLmFkZCgnSGVsbG8g
V29ybGQhJywgJ3RleHQvcGxhaW4nKTsKKyAgICBpdGVtcy5hZGQoJzxiPkhlbGxvIFdvcmxkIScs
ICd0ZXh0L2h0bWwnKTsKKworICAgIC8vIENoZWNrIHRoYXQgYW4gZXhjZXB0aW9uIGlzIHByb3Bl
cmx5IHJhaXNlZCB3aGVuIGF0dGVtcHRpbmcgdG8gYWRkIGEgZHVwbGljYXRlIHN0cmluZyB0eXBl
LgorICAgIHRyeSB7CisgICAgICAgIGl0ZW1zLmFkZCgnTW9vJywgJ3RleHQvcGxhaW4nKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGNvbnNvbGUubG9nKCdDYXVnaHQgZXhjZXB0aW9uICIn
ICsgZSArICciIGFzIGV4cGVjdGVkLicpOworICAgIH0KKworICAgIC8vIENoZWNrIHRoYXQgdGhl
IGNvbnRhaW5lciBkaWRuJ3QgY2hhbmdlLgorICAgIGNvbnNvbGUubG9nKCdWZXJpZnlpbmcgY29u
dGVudHMgb2YgRGF0YVRyYW5zZmVySXRlbXMuLi4nKTsKKyAgICBjb25zb2xlLmxvZygnaXRlbXMu
bGVuZ3RoOiAnICsgaXRlbXMubGVuZ3RoKTsKKyAgICBjb25zb2xlLmxvZygnaXRlbXNbMF0ua2lu
ZDogJyArIGl0ZW1zWzBdLmtpbmQpOworICAgIGNvbnNvbGUubG9nKCdpdGVtc1swXS50eXBlOiAn
ICsgaXRlbXNbMF0udHlwZSk7CisgICAgY29uc29sZS5sb2coJ2l0ZW1zWzFdLmtpbmQ6ICcgKyBp
dGVtc1sxXS5raW5kKTsKKyAgICBjb25zb2xlLmxvZygnaXRlbXNbMV0udHlwZTogJyArIGl0ZW1z
WzFdLnR5cGUpOworICAgIGl0ZW1zWzBdLmdldEFzU3RyaW5nKGZ1bmN0aW9uIChkYXRhKSB7IGhh
bmRsZUV2ZW50KCdpdGVtc1swXSB2YWx1ZTogJyArIGRhdGEpOyB9KTsKKyAgICBpdGVtc1sxXS5n
ZXRBc1N0cmluZyhmdW5jdGlvbiAoZGF0YSkgeyBoYW5kbGVFdmVudCgnaXRlbXNbMV0gdmFsdWU6
ICcgKyBkYXRhKTsgfSk7CisKKyAgICBjb25zb2xlLmxvZygnQ2hlY2tpbmcgaWYgaXRlbXMgcGFz
dCB0aGUgZW5kIG9mIHRoZSBjb2xsZWN0aW9uIGNhbiBiZSBpbmRleGVkOicpOworICAgIGNvbnNv
bGUubG9nKCdpdGVtc1syXTogJyArIGl0ZW1zWzJdKTsKKworICAgIHNhdmVkRGF0YVRyYW5zZmVy
SXRlbXMgPSBpdGVtczsKKyAgICBzYXZlZERhdGFUcmFuc2Zlckl0ZW0gPSBpdGVtc1swXTsKK30K
KworZnVuY3Rpb24gcGFzdGUoZXYpCit7CisgICAgdmFyIGl0ZW1zID0gZXZlbnQuY2xpcGJvYXJk
RGF0YS5pdGVtczsKKyAgICB2YXIgb3JpZ2luYWxMZW5ndGggPSBpdGVtcy5sZW5ndGg7CisgICAg
Y29uc29sZS5sb2coJ0NoZWNraW5nIHRoYXQgYSByZWFkLW9ubHkgRGF0YVRyYW5zZmVySXRlbXMg
Y2Fubm90IGJlIG11dGF0ZWQuLi4nKTsKKyAgICAvLyBTaG91bGQgYmUgaW1tdXRhYmxlLgorICAg
IGl0ZW1zLmFkZCgnSGVsbG8gV29ybGQhJywgJ3RleHQvcGxhaW4nKTsKKyAgICBjb25zb2xlLmxv
ZygnaXRlbXMubGVuZ3RoOiAnICsgaXRlbXMubGVuZ3RoKTsKKyAgICBjb25zb2xlLmxvZygnaXRl
bXNbMF06ICcgKyBpdGVtc1swXSk7IC8vIFNob3VsZG4ndCBleGlzdC4KK30KKworZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgcmV0dXJuOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBjb3B5Q29tbWFuZCgp
OworICAgIHBhc3RlQ29tbWFuZCgpOworCisgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAgIGNv
bnNvbGUubG9nKCdUZXN0aW5nIGlmIERhdGFUcmFuc2Zlckl0ZW1zIGNhbiBiZSBhY2Nlc3NlZCBv
dXRzaWRlIGFuIGV2ZW50IGhhbmRsZXIuLi4nKTsKKyAgICBpZiAoc2F2ZWREYXRhVHJhbnNmZXJJ
dGVtcy5sZW5ndGggIT0gMCkgeworICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICBjb25z
b2xlLmxvZygnRGF0YVRyYW5zZmVySXRlbXMubGVuZ3RoIG5vbi16ZXJvIG91dHNpZGUgZXZlbnQg
aGFuZGxlciEnKTsKKyAgICB9CisgICAgc2F2ZWREYXRhVHJhbnNmZXJJdGVtcy5hZGQoJ1NlY3Vy
aXR5PycsICd0ZXh0L2ZvbycpOworICAgIGlmIChzYXZlZERhdGFUcmFuc2Zlckl0ZW1zLmxlbmd0
aCAhPSAwKSB7CisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgIGNvbnNvbGUubG9nKCdE
YXRhVHJhbnNmZXJJdGVtcyBtdXRhdGVkIG91dHNpZGUgZXZlbnQgaGFuZGxlciEnKTsKKyAgICB9
CisgICAgaWYgKHNhdmVkRGF0YVRyYW5zZmVySXRlbXNbMF0pIHsKKyAgICAgICAgZmFpbGVkID0g
dHJ1ZTsKKyAgICAgICAgY29uc29sZS5sb2coJ0RhdGFUcmFuc2Zlckl0ZW0gYWNjZXNzZWQgb3V0
c2lkZSBldmVudCBoYW5kbGVyIScpOworICAgIH0KKyAgICBpZiAoc2F2ZWREYXRhVHJhbnNmZXJJ
dGVtLmtpbmQgIT0gJycpIHsKKyAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgY29uc29s
ZS5sb2coJ0RhdGFUcmFuc2Zlckl0ZW0ua2luZCBhY2Nlc3NpYmxlIG91dHNpZGUgZXZlbnQgaGFu
ZGxlciEnKTsKKyAgICB9CisgICAgaWYgKHNhdmVkRGF0YVRyYW5zZmVySXRlbS50eXBlICE9ICcn
KSB7CisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgICAgIGNvbnNvbGUubG9nKCdEYXRhVHJh
bnNmZXJJdGVtLnR5cGUgYWNjZXNzaWJsZSBvdXRzaWRlIGV2ZW50IGhhbmRsZXIhJyk7CisgICAg
fQorICAgIHNhdmVkRGF0YVRyYW5zZmVySXRlbS5nZXRBc1N0cmluZyhmdW5jdGlvbiAoZGF0YSkg
eworICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICBjb25zb2xlLmxvZygnZ2V0QXNTdHJp
bmcgY2FsbGVkIGJhY2sgb3V0c2lkZSBldmVudCBoYW5kbGVyIScpOworICAgIH0pOworCisgICAg
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAoZmFpbGVkKQorICAg
ICAgICAgICAgY29uc29sZS5sb2coJ0ZBSUxFRCcpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBjb25zb2xlLmxvZygnUEFTU0VEJyk7CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgfSwgMCk7Cit9CisKK3J1blRlc3QoKTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGIzYzFj
NGYzYWUzMzkzMGMxMzA1ZjQ3ZGEzZjg4NjcwMTA2MWJiYjguLjkyNmJjNjI4NjUyOWQ1M2Y1MWMx
NjNiZTlmNmMyZWExMjg4N2Y3NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMzE1
LDMgKzEzMTUsNiBAQCBmYXN0L2NhbnZhcy9yZ2JhLXBhcnNpbmcuaHRtbAogIyBNaXNzaW5nIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFZhbHVlRm9yVXNlcgogIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU4NjIKIGZhc3QvZm9ybXMvb25jaGFuZ2Utc2V0dmFsdWVm
b3J1c2VyLmh0bWwKKworIyBEYXRhVHJhbnNmZXJJdGVtcyBpcyBub3QgeWV0IGltcGxlbWVudGVk
LgorZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZAppbmRleCAxNzYxYzBjNDcxZmJiZThmNWVjODgzZDg5NDIzYTU2NDI0NGM0
Y2E1Li5jNjA4ZTE3MTBjNzYyNzFmOGY5YjFhNTE0YTU5MzA3Njc1YmIwZDkyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZApAQCAtMzAxLDMgKzMwMSw2IEBAIG1lZGlhL3ZpZGVvLWNvbnRyb2xz
LWluLW1lZGlhLWRvY3VtZW50Lmh0bWwKICMgTm9uLXByZW11bHRpcGxpZWQtYWxwaGEgY3VycmVu
dGx5IGJyb2tlbiBvbiBtYWMuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NTUwOQogY29tcG9zaXRpbmcvd2ViZ2wvd2ViZ2wtbm9ucHJlbXVsdGlwbGllZC1ibGVu
ZC5odG1sCisKKyMgRGF0YVRyYW5zZmVySXRlbXMgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KK2Vk
aXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCmluZGV4IDg3NjQxYzYzNGNkNTdiYWRiYWM4MzQ2OTA2Mzg2ZjQ1M2U5NDlmZGMuLmFh
NTYxNTY1YTE4NTkxZTcyOGE3M2ZmMDNmZDliYjYwNmVkZWRiMmIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZApAQCAtMTA4LDYgKzEwOCw5IEBAIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQu
aHRtbAogIyBUaGlzIHBvcnQgZG9lc24ndCBzdXBwb3J0IHY4IGkxOG4gZXh0ZW5zaW9uLgogZmFz
dC9qcy9pMThuLWJpbmRpbmdzLWxvY2FsZS5odG1sCiAKKyMgRGF0YVRyYW5zZmVySXRlbXMgaXMg
bm90IHlldCBpbXBsZW1lbnRlZC4KK2VkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0
ZW1zLmh0bWwKKwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyAgICAgICBEcmFnIGFuZCBEcm9w
IFN1cHBvcnQgaW4gRFJULiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAx
OWQ2OTVhOTRlZjE1ZTZmZTcxNDc1MjZjMjQyNzU0NjdlOGI3MWI1Li45MzI2NzdhNzBlZTRjY2Nj
YzhiY2ZiNjFhMDA1MDNhM2QzOGYzZGU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAt
MTE2NCwzICsxMTY0LDYgQEAgaW5zcGVjdG9yL2RlYnVnZ2VyCiAKICMgRm9yIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxOQogZmFzdC94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1yZXNwb25zZXR5cGUtYXJyYXlidWZmZXIuaHRtbAorCisjIERhdGFUcmFu
c2Zlckl0ZW1zIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0
YS10cmFuc2Zlci1pdGVtcy5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lk
Lm1rIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCBkOWNkOTJlZDUyMmZkNzNkMzBj
NjI5ZmJhODQ4YjMyMTg5ZTljZTg4Li45ODU5OGZlYjkwYWRhODlkMTk3ZmY2NGVjZjdkNDJmYzg3
M2I1MTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTExNCw2ICsxMTQsNyBAQCBMT0NBTF9TUkNfRklMRVMg
Oj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlkb20vQ29udGFpbmVyTm9kZS5jcHAgXAogCWRvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAgXAogCWRvbS9ET01TdHJpbmdMaXN0LmNwcCBcCisJZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uY3BwIFwKIAlkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAg
XAogCWRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCiAJZG9tL0RldmljZU1vdGlvbkRh
dGEuY3BwIFwKQEAgLTE3Niw2ICsxNzcsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9T
UkNfRklMRVMpIFwKIAlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogCWRvbS9TdGF0aWNIYXNo
U2V0Tm9kZUxpc3QuY3BwIFwKIAlkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKKwlkb20vU3RyaW5n
Q2FsbGJhY2suY3BwIFwKIAlkb20vU3R5bGVFbGVtZW50LmNwcCBcCiAJZG9tL1N0eWxlZEVsZW1l
bnQuY3BwIFwKIAlkb20vVGFnTm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
ZWQ5NTA2NDYyNTI0OTI1NTRhZmM2NTFjMDUwNWM3NzE2ZmY1NDgwNC4uZjZkZmUzOGRiZTlkMzNm
NjYyYTEyY2MzMmRhZDJjYzdjY2NjYmIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1NzMs
NiArMTU3MywxOCBAQCBJRiAoRU5BQkxFX0RBVEFCQVNFKQogICAgICkKIEVORElGICgpCiAKK0lG
IChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lE
TF9GSUxFUworICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKKyAgICAgICAgZG9tL0Rh
dGFUcmFuc2Zlckl0ZW1zLmlkbAorICAgICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaWRsCisgICAg
KQorICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBkb20vRGF0YVRyYW5z
ZmVySXRlbS5jcHAKKyAgICAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmNwcAorICAgICkKK0VORElG
ICgpCisKIElGIChFTkFCTEVfTUFUSE1MKQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgICAgICBtYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MTYxZDA1
ZGJlMDEzZWRlYmZlNzk0MGQ5ZmRmM2Y4YmIzMjcxOTM2Li5kYzZkYzAxMmVjZGI4OWIyODVkZWZm
MTk5Y2E2OGQzOGJkZTllNWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTEtMDMt
MDcgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERhdGFUcmFu
c2Zlckl0ZW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NTExNQorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdHVicyBmb3IgRGF0YVRyYW5zZmVy
SXRlbXMvRGF0YVRyYW5zZmVySXRlbSBhcyB3ZWxsIGFzIGltcGxlbWVudGluZyB0aGUKKyAgICAg
ICAgYmFzaWMgZnVuY3Rpb25hbGl0eSBvbiB0aGUgQ2hyb21pdW0gcG9ydC4gV2l0aCB0aGUgZXhj
ZXB0aW9uIG9mIERhdGFUcmFuc2Zlckl0ZW06OmdldEFzRmlsZSwKKyAgICAgICAgYWxsIGZ1bmN0
aW9uYWxpdHkgb24gdGhlIERhdGFUcmFuc2Zlckl0ZW1zIGNvbGxlY3Rpb24gaGFzIGJlZW4gaW1w
bGVtZW50ZWQuCisgICAgICAgIFRoaXMgY2hhbmdlIGRvZXMgbm90IGFjdHVhbGx5IGhvb2sgdXAg
RGF0YVRyYW5zZmVySXRlbXMgdG8gcmVmbGVjdCB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIGEKKyAg
ICAgICAgZHJvcC9wYXN0ZSBvcGVyYXRpb24gb3IgdG8gYWxsb3cgbXV0YXRpb24gb2YgZGF0YSBp
biBhIGNvcHkvZHJhZyBzdGFydCB5ZXQuIFRoYXQgd2lsbCBiZQorICAgICAgICBlbmFibGVkIHZp
YSBzZXZlcmFsIGZvbGxvd3VwIHBhdGNoZXMuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9wYXN0
ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5tazoK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb2RlR2VuZXJhdG9ycy5wcmk6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0RGF0YVRyYW5zZmVySXRl
bXNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRh
dGFUcmFuc2Zlckl0ZW1zRW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG06IERvIG5vdCBlbWl0IGFuICNpbmNsdWRlIGxpbmUgZm9yIERPTVN0cmlu
Zywgc2luY2UgaXQncyBidWlsdC1pbi4KKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnBvbGljeSk6CisgICAgICAgICogZG9tL0NsaXBib2Fy
ZC5pZGw6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbS5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGF0YVRy
YW5zZmVySXRlbS5pZGw6IEFkZGVkLgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5o
OiBBZGRlZC4KKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBkb20vU3RyaW5nQ2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlN0cmluZ0NhbGxiYWNrOjpzY2hlZHVsZUNhbGxiYWNrKToKKyAgICAgICAgKiBkb20vU3RyaW5n
Q2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHJpbmdDYWxsYmFjazo6flN0
cmluZ0NhbGxiYWNrKToKKyAgICAgICAgKiBkb20vU3RyaW5nQ2FsbGJhY2suaWRsOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6aXRlbXMpOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06On5EYXRhVHJhbnNmZXJJ
dGVtQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNocm9taXVt
OjpraW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6dHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzU3Ry
aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW0uaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1z
Q2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6fkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0pOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6bGVuZ3RoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06Oml0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6ZGVsZXRlSXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjbGVhcik6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjphZGQpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaDogQWRkZWQuCisKIDIw
MTEtMDMtMDcgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkIGJ1aWxkZml4IGFmdGVyIHI4MDQ3OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3Jz
LnByaQppbmRleCBkMjBmNjYxN2Y5OWU3ODhjNzc5MzkyZWM2YjFmNGUyOGMxYTQ1NzZhLi4zZTQ1
OWE2OTM4YzRkN2VjNGUzZjlmOTg0NDJjOWYzNmU5OWUyMzdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVy
YXRvcnMucHJpCkBAIC0xMDksNiArMTA5LDggQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20v
Q29tbWVudC5pZGwgXAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL0N1
c3RvbUV2ZW50LmlkbCBcCisgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIFwKKyAgICBkb20v
RGF0YVRyYW5zZmVySXRlbXMuaWRsIFwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIFwK
ICAgICBkb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgXAogICAgIGRvbS9Eb2N1bWVudEZy
YWdtZW50LmlkbCBcCkBAIC0xNDYsNiArMTQ4LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBk
b20vUHJvZ3Jlc3NFdmVudC5pZGwgXAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAogICAg
IGRvbS9SYW5nZS5pZGwgXAorICAgIGRvbS9TdHJpbmdDYWxsYmFjay5pZGwgXAogICAgIGRvbS9U
ZXh0LmlkbCBcCiAgICAgZG9tL1RleHRFdmVudC5pZGwgXAogICAgIGRvbS9Ub3VjaC5pZGwgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDcyZjFiMmQ2ZTE2ZTVkY2Q2ZjE3MjUxNDNm
ZDE5NGU4OGJkMDFhM2MuLjlhYjM3ZWMzYjEzY2E4MmIxZTYwNDY0N2UyYzJlNGQzMmYyMjYyNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTcyLDYgKzcyLDggQEAKICNpbmNsdWRl
ICJKU0RhdGFiYXNlU3luYy5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhR3JpZENvbHVtbi5jcHAiCiAj
aW5jbHVkZSAiSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwIgorI2luY2x1ZGUgIkpTRGF0YVRyYW5z
ZmVySXRlbS5jcHAiCisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtcy5jcHAiCiAjaW5jbHVk
ZSAiSlNEYXRhVmlldy5jcHAiCiAjaW5jbHVkZSAiSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNw
cCIKICNpbmNsdWRlICJKU0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIgpAQCAtMjgxLDYgKzI4
Myw3IEBACiAjaW5jbHVkZSAiSlNTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5jcHAiCiAjaW5j
bHVkZSAiSlNTdG9yYWdlLmNwcCIKICNpbmNsdWRlICJKU1N0b3JhZ2VFdmVudC5jcHAiCisjaW5j
bHVkZSAiSlNTdHJpbmdDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNTdHlsZU1lZGlhLmNwcCIK
ICNpbmNsdWRlICJKU1N0eWxlU2hlZXQuY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVTaGVldExpc3Qu
Y3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjkyOThmZmFkNmU3N2FhNjFi
NWJkZTExMmQ5NjZjNGQ2NTc3YTliNS4uOWI4ODdmMTZjMzA2YjhmYTQyY2U2NjQyNjI3YjI3OTY1
ZDJiODM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTAsNiArMTUwLDgg
QEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgRE9NVG9rZW5MaXN0IFwKICAgICBET01VUkwgXAogICAg
IERPTVdpbmRvdyBcCisgICAgRGF0YVRyYW5zZmVySXRlbSBcCisgICAgRGF0YVRyYW5zZmVySXRl
bXMgXAogICAgIERhdGFiYXNlIFwKICAgICBEYXRhYmFzZUNhbGxiYWNrIFwKICAgICBEYXRhYmFz
ZVN5bmMgXApAQCAtMzQ3LDYgKzM0OSw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFNRTFRyYW5z
YWN0aW9uU3luY0NhbGxiYWNrIFwKICAgICBTdG9yYWdlIFwKICAgICBTdG9yYWdlRXZlbnQgXAor
ICAgIFN0cmluZ0NhbGxiYWNrIFwKICAgICBTVkdBRWxlbWVudCBcCiAgICAgU1ZHQWx0R2x5cGhF
bGVtZW50IFwKICAgICBTVkdBbmdsZSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDQ5OTNiYmJi
ZjdlMTFiOTc4OWQ4ZTNhN2FiZmYwNTA5M2M5YjFlNWIuLjk1ZGUzYmJlYTJmMzIyMDg0M2JiZWZl
MzdlZWZjYjk5Y2E4ZWRmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00MDE2LDEwICs0MDE2
LDIzIEBAIGVuZGlmICMgRU5EIEVOQUJMRV9EQVRBTElTVAogCiAjIC0tLS0KICMgSFRNTDUgZGF0
YSB0cmFuc2ZlciBpdGVtcyBzdXBwb3J0Ci0jLS0tLS0KKyMgLS0tLQogaWYgRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVMKIEZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVM9
MQord2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0RhdGFUcmFuc2Zlckl0ZW0uY3BwIFwKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0RhdGFUcmFuc2Zlckl0ZW0uaCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNEYXRhVHJhbnNmZXJJdGVtcy5jcHAgXAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTRGF0YVRyYW5zZmVySXRlbXMuaCBcCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTdHJpbmdDYWxsYmFjay5jcHAgXAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU3RyaW5nQ2FsbGJhY2suaAord2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJh
bnNmZXJJdGVtLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vU3RyaW5nQ2FsbGJhY2suaAogZW5kaWYgIyBFTkQgRU5BQkxFX0RBVEFfVFJBTlNGRVJf
SVRFTVMKIAogIyAtLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWUzNzg5NzU3YzdiMGY3MWM3YzY1
NTc4ZjVkYzkxNDY5NDQ2YTU5ZC4uYmY5OWU1OGU4MzRiYmU0NjQxYzU0M2U4YzcxZTljMjlkNjFk
NmI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTAsNiArNTAsOCBAQAogICAgICAgICAgICAgJ2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2RvbS9ET01TdHJpbmdMaXN0
LmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ01hcC5pZGwnLAorICAgICAgICAgICAg
J2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbCcsCisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1zLmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RldmljZU1vdGlvbkV2ZW50LmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAg
ICdkb20vRG9jdW1lbnQuaWRsJywKQEAgLTg0LDYgKzg2LDcgQEAKICAgICAgICAgICAgICdkb20v
UmFuZ2UuaWRsJywKICAgICAgICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uaWRsJywKICAgICAg
ICAgICAgICdkb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsJywKKyAgICAgICAg
ICAgICdkb20vU3RyaW5nQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdkb20vVGV4dC5pZGwn
LAogICAgICAgICAgICAgJ2RvbS9UZXh0RXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vVG91
Y2guaWRsJywKQEAgLTEyMjgsNiArMTIzMSw5IEBACiAgICAgICAgICAgICAnZG9tL0RPTVN0cmlu
Z01hcC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9ET01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAg
ICAnZG9tL0RPTVRpbWVTdGFtcC5oJywKKyAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRl
bS5jcHAnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgnLAorICAgICAgICAg
ICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oJywKICAgICAgICAgICAgICdkb20vRGF0YXNldERP
TVN0cmluZ01hcC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgn
LAogICAgICAgICAgICAgJ2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCcsCkBAIC0x
MzgwLDYgKzEzODYsOCBAQAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNOb2RlTGlzdC5oJywKICAg
ICAgICAgICAgICdkb20vU3RhdGljU3RyaW5nTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9T
dGF0aWNTdHJpbmdMaXN0LmgnLAorICAgICAgICAgICAgJ2RvbS9TdHJpbmdDYWxsYmFjay5jcHAn
LAorICAgICAgICAgICAgJ2RvbS9TdHJpbmdDYWxsYmFjay5oJywKICAgICAgICAgICAgICdkb20v
U3R5bGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0eWxlRWxlbWVudC5oJywKICAg
ICAgICAgICAgICdkb20vU3R5bGVkRWxlbWVudC5jcHAnLApAQCAtMjUyMiw2ICsyNTMwLDEwIEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRNZW51SXRlbUNocm9taXVt
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ3Vyc29yQ2hyb21pdW0uY3Bw
JywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW0uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVt
Q2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVy
SXRlbXNDaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RhdGFU
cmFuc2Zlckl0ZW1zQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0RhdGFDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0Ry
YWdEYXRhUmVmLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJbWFnZUNo
cm9taXVtTWFjLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDU4M2RmMTRjOTk0NTRjYWRmMjA2ZDg2
NTlkNjU4NTRhNDliYmFlNmYuLjA4ZjA2MzYxZDU1MTRkYTFlYTk1MWY4NjViZDUzNGIxZjlmNTU0
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yNjkyLDYgKzI2OTIsMTYgQEAgY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX0lOREVYRURfREFUQUJBU0U9MSkgewogICAgICAgICBzdG9yYWdlL0lEQlRyYW5z
YWN0aW9uLmNwcAogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUz0xKSB7CisgICAgSEVBREVSUyArPSBcCisgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVt
LmggXAorICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbXMuaCBcCisgICAgICAgIGRvbS9TdHJp
bmdDYWxsYmFjay5oCisgICAgU09VUkNFUyArPSBcCisgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJ
dGVtLmNwcCBcCisgICAgICAgIGRvbS9TdHJpbmdDYWxsYmFjay5jcHAKK30KKwogY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX0RPTV9TVE9SQUdFPTEpIHsKICAgICBIRUFERVJTICs9IFwKICAgICAg
ICAgc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA4NDdjMDRmMTUyYzRlZTlhZDA1ZGIzYzcwNTBi
YWRmOTYyYmY4ZGYwLi5kOWJjNzcxNjBjOGEwZDQ0ZjVjODlhMGZkY2ZlY2U1NWFmZWJhYjM1IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjgx
OCw2ICsyODE4LDExOCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbS5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0ZW0u
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Rh
dGFUcmFuc2Zlckl0ZW1zLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbXMuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTRGVkaWNhdGVkV29ya2VyQ29udGV4
dC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMjExMjYsNiArMjEyMzgs
NjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U1N0cmluZ0NhbGxiYWNrLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTU3RyaW5nQ2FsbGJhY2suaCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1RleHQuY3BwIgogCQkJCT4K
IAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTQyNTAyLDYgKzQyNjcwLDY2IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhVHJhbnNm
ZXJJdGVtLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJl
bGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbS5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbXMu
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XERhdGFzZXRET01TdHJpbmdNYXAuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
QEAgLTQ2MTk0LDYgKzQ2NDIyLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTdHJpbmdDYWxsYmFjay5jcHAiCisJCQkJPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFN0cmlu
Z0NhbGxiYWNrLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxTdHlsZWRFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNDAzYTYxOGNlMWZlMjE2NjRkY2IzNzU4YTgwZTgzMWU3MTUxYTkyMC4uZDljZTJl
YTAxNzBjNGFhMGZiNDM5YzI2ZThkNGYzNTczN2RlMjY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY2MSw5ICsxNjYxLDE0
IEBACiAJCTdFRTY4NDcwMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1RDEyRDI2
RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDcxMTJEMjZFMzgwMEU3OTQxNSAvKiBS
ZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9u
c2VDRk5ldC5jcHAgKi87IH07CiAJCTdFRTY4NDc1MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJj
ZUxvYWRlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdFRTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNw
cCAqLzsgfTsKKwkJODEwMkM1ODgxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxMDJDNTg3
MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgKi87IH07CisJCTgxNUU2MTY3
MTMyNTg3QUEwMEI2MjJCMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxNUU2MTY2MTMyNTg3QUEwMEI2MjJCMCAv
KiBEYXRhVHJhbnNmZXJJdGVtLmNwcCAqLzsgfTsKIAkJODFBNzMyNUUxMjEwMTg5QjAwRkMwRDlF
IC8qIElEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODFBNzMyNUQxMjEwMTg5QjAwRkMwRDlFIC8qIElEQkN1cnNvci5oICovOyB9OwogCQk4
MUE3MzI2MDEyMTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjVGMTIxMDE4QTQwMEZDMEQ5RSAv
KiBJREJDdXJzb3IuY3BwICovOyB9OwogCQk4MUE3MzI3ODEyMTAxOUUxMDBGQzBEOUUgLyogSURC
Q3Vyc29yQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1w
bC5oICovOyB9OworCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRl
bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5
OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsgfTsKKwkJODFBQzU5
OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAg
LyogRGF0YVRyYW5zZmVySXRlbXMuaCAqLzsgfTsKKwkJODFBQzZDMzYxMzFDNTdEMzAwMDlBN0Uw
IC8qIFN0cmluZ0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MUFDNkMzNTEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaCAq
LzsgfTsKIAkJODFCRTIwOTgxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBs
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUy
MDkzMTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgKi87IH07CiAJ
CTgxQkUyMDk5MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5NDEx
RjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovOyB9OwogCQk4
MUJFMjBEMjExRjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwQTcxMUY0QjY2RjAwOTE1REZB
IC8qIEpTSURCQ3Vyc29yLmNwcCAqLzsgfTsKQEAgLTgxNTUsOSArODE2MCwxNyBAQAogCQk3RUU2
ODQ1RDEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdFRTY4NDVFMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNl
Q0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VS
ZXNwb25zZUNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NzQx
MkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHA7IHBhdGggPSBj
Zi9SZXNvdXJjZUxvYWRlckNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODEwMkM1ODcxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODE1RTYxNjYxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFUcmFu
c2Zlckl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0YVRy
YW5zZmVySXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTczMjVEMTIx
MDE4OUIwMEZDMEQ5RSAvKiBJREJDdXJzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSURCQ3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQTczMjVG
MTIxMDE4QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODFBNzMyNzcxMjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBE
YXRhVHJhbnNmZXJJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFU
cmFuc2Zlckl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFBQzU5OTgxMzE2
MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgxQUM1QUU4MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODFBQzVBRTkxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zl
ckl0ZW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtcy5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM2QzM0MTMxQzU3QzIwMDA5QTdFMCAv
KiBTdHJpbmdDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3RyaW5nQ2FsbGJh
Y2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUFDNkMzNTEzMUM1N0QzMDAw
OUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RyaW5nQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFCRTIw
OTMxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFCRTIwOTQxMUY0QUI4RDAwOTE1REZBIC8qIElE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MUJFMjA5QzExRjRBQkJEMDA5MTVERkEgLyogSURCQ3Vyc29yLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBJREJDdXJzb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTkwMjEsNiArMTkwMzQsMTEgQEAKIAkJCQk2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyog
Q3VzdG9tRXZlbnQuY3BwICovLAogCQkJCTYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0
b21FdmVudC5oICovLAogCQkJCTYyQ0QzMjU4MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVu
dC5pZGwgKi8sCisJCQkJODE1RTYxNjYxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFUcmFuc2Zlckl0
ZW0uY3BwICovLAorCQkJCTgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJ
dGVtLmggKi8sCisJCQkJODFBQzU5OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0
ZW1zLmggKi8sCisJCQkJODFBQzVBRTgxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0
ZW0uaWRsICovLAorCQkJCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJ
dGVtcy5pZGwgKi8sCiAJCQkJQkM2NDY0MUIxMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01T
dHJpbmdNYXAuY3BwICovLAogCQkJCUJDNjQ2NDFBMTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0
RE9NU3RyaW5nTWFwLmggKi8sCiAJCQkJQThDMjI4QTAxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29k
ZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwICovLApAQCAtMTkyMTUsNiArMTkyMzMsOSBAQAogCQkJ
CUNFQTM5NDlCMTFENDVDREEwMDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuaCAqLywK
IAkJCQlCQzdGQTYyQzBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwICovLAog
CQkJCUJDN0ZBNjJCMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5oICovLAorCQkJ
CTgxMDJDNTg3MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgKi8sCisJCQkJ
ODFBQzZDMzUxMzFDNTdEMzAwMDlBN0UwIC8qIFN0cmluZ0NhbGxiYWNrLmggKi8sCisJCQkJODFB
QzZDMzQxMzFDNTdDMjAwMDlBN0UwIC8qIFN0cmluZ0NhbGxiYWNrLmlkbCAqLywKIAkJCQlBOEM0
QTdFQzA5RDU2MzI3MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVudC5jcHAgKi8sCiAJCQkJQThDNEE3
RUIwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1lbnQuaCAqLywKIAkJCQlBQTRDM0E3NDBC
MkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmNwcCAqLywKQEAgLTE5NzkzLDYgKzE5ODE0
LDggQEAKIAkJCQlCQzIyNzJBRDBFODJFOEYzMDBFN0Y5NzUgLyogQ3Vyc29yTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjJDRDMyNUExMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOENCNDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5
LmggaW4gSGVhZGVycyAqLywKKwkJCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRy
YW5zZmVySXRlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0Uw
IC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwQjBBMTk4
OUNBMDA3RkI4QzUgLyogRGFzaGJvYXJkUmVnaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTk2
MTE2QjBDQUM1NjU3MDAxMEE4MEMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
QTQ1QjU2MENBRDdGRDcwMDBEMkJFOSAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjIwNzUsNiArMjIwOTgsNyBAQAogCQkJCTkzQjJEODE2MEY5OTIwRDIwMDZBRTZC
MiAvKiBTdWRkZW5UZXJtaW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdDMDc4NTAxMTY1
RDVCRTAwM0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyQzEyMTdE
MTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk4MUFDNkMzNjEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3OTc0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjU2NTNGMkUwRDk3MjdEMjAwQ0E5NzIzIC8qIFNWR0FsdEdseXBoRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NzcwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R0FuZ2xlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTk2LDYgKzI1MjIwLDggQEAKIAkJCQk1OTNE
M0VBRDEzMjUzMjg0MDA1N0U3RUUgLyogSmF2YU1ldGhvZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1OThENzdERDEzMjU0MUVFMDA3NjFCMjIgLyogSmF2YUFycmF5SlNDLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTU5OEQ3N0UxMTMyNTQyMDQwMDc2MUIyMiAvKiBKYXZhRmllbGRKU0MuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJODE1RTYxNjcxMzI1ODdBQTAwQjYyMkIwIC8qIERhdGFUcmFuc2Zl
ckl0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODEwMkM1ODgxMzI1QkIxMTAwRERFNjdBIC8q
IFN0cmluZ0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKaW5k
ZXggMTRlNGFjOGI1YTU1NDhiOGM2OTdmNmY2ZDlhMWY1MmZmOWE0NGEyMi4uYmVlNmEyN2FhZGY2
ZTVjMGJhMDQ3YTM4NjUwYWI2OGRkNjE2NzNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCkBAIC00
Niw2ICs0Niw3IEBAIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNMb2NhbFN0b3JhZ2VF
bmFibGVkID0gdHJ1ZTsKIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNTZXNzaW9uU3Rv
cmFnZUVuYWJsZWQgPSB0cnVlOwogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1dlYmtp
dE5vdGlmaWNhdGlvbnNFbmFibGVkID0gZmFsc2U7CiBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OmlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQgPSB0cnVlOworYm9vbCBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjppc0RhdGFUcmFuc2Zlckl0ZW1zRW5hYmxlZCA9IHRydWU7CiBib29sIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OmlzR2VvbG9jYXRpb25FbmFibGVkID0gdHJ1ZTsKIGJvb2wgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6aXNJbmRleGVkREJFbmFibGVkID0gZmFsc2U7CiBib29sIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzV2ViQXVkaW9FbmFibGVkID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oCmluZGV4IDdlMjEyMTQ1OTA5OGQ3MGU1NjE0OTJlYTA3M2Q1MTkyNTM1M2VkODYuLjA5
ZTQwMDQ4YTU4Mzk1YTU4NjEwMjAwYzNlYTlmZDQ5M2ViZTAwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
CkBAIC01MSw2ICs1MSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRBcHBsaWNhdGlv
bkNhY2hlRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVk
ID0gaXNFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgYXBwbGljYXRpb25DYWNoZUVuYWJsZWQo
KSB7IHJldHVybiBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOyB9CiAKKyAgICBzdGF0aWMgdm9p
ZCBzZXREYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgaXNEYXRhVHJh
bnNmZXJJdGVtc0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBkYXRhVHJh
bnNmZXJJdGVtc0VuYWJsZWQoKSB7IHJldHVybiBpc0RhdGFUcmFuc2Zlckl0ZW1zRW5hYmxlZDsg
fQorCiAgICAgc3RhdGljIHZvaWQgc2V0R2VvbG9jYXRpb25FbmFibGVkKGJvb2wgaXNFbmFibGVk
KSB7IGlzR2VvbG9jYXRpb25FbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wg
Z2VvbG9jYXRpb25FbmFibGVkKCkgeyByZXR1cm4gaXNHZW9sb2NhdGlvbkVuYWJsZWQ7IH0KIApA
QCAtMTcwLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNTZXNzaW9uU3Rv
cmFnZUVuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgaXNXZWJraXROb3RpZmljYXRpb25zRW5hYmxl
ZDsKICAgICBzdGF0aWMgYm9vbCBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOworICAgIHN0YXRp
YyBib29sIGlzRGF0YVRyYW5zZmVySXRlbXNFbmFibGVkOwogICAgIHN0YXRpYyBib29sIGlzR2Vv
bG9jYXRpb25FbmFibGVkOwogICAgIHN0YXRpYyBib29sIGlzSW5kZXhlZERCRW5hYmxlZDsKICAg
ICBzdGF0aWMgYm9vbCBpc1dlYkF1ZGlvRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZGYxYzA0YWY3YTRmMTE0
MTdlNTI3MzkxMWRkNThiZTRlNjY1MjQ0ZC4uZTJmZTI3N2YwNTA0NjY5YjFiMWFiYzgyYmJkN2Mw
YzYzOGIxMDdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0KQEAgLTEyOCw3ICsxMjgsNyBAQCBzdWIgQWRkSW5jbHVkZXNGb3JU
eXBlCiAKICAgICAjIFdoZW4gd2UncmUgZmluaXNoZWQgd2l0aCB0aGUgb25lLWZpbGUtcGVyLWNs
YXNzCiAgICAgIyByZW9yZ2FuaXphdGlvbiwgd2Ugd29uJ3QgbmVlZCB0aGVzZSBzcGVjaWFsIGNh
c2VzLgotICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSkgYW5k
ICEkY29kZUdlbmVyYXRvci0+QXZvaWRJbmNsdXNpb25PZlR5cGUoJHR5cGUpIGFuZCAkdHlwZSBu
ZSAiRGF0ZSIpIHsKKyAgICBpZiAoISRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5
cGUpIGFuZCAhJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSkgYW5kICEkY29kZUdl
bmVyYXRvci0+QXZvaWRJbmNsdXNpb25PZlR5cGUoJHR5cGUpIGFuZCAkdHlwZSBuZSAiRGF0ZSIp
IHsKICAgICAgICAgIyBkZWZhdWx0LCBpbmNsdWRlIHRoZSBzYW1lIG5hbWVkIGZpbGUKICAgICAg
ICAgJGltcGxJbmNsdWRlc3tHZXRWOEhlYWRlck5hbWUoJHt0eXBlfSl9ID0gMTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NsaXBib2FyZC5oCmluZGV4IGI4ZWFkZmI2ZDA2NzQ4NWI0MThiODc5YjFhOWNkZmZjNmZjY2Uw
MWYuLjQwMTQxYWYxMWI5N2RiNmU3YTYzMGJkNjFjMjZhZTE0MDY3NzkzY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2xpcGJvYXJkLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisg
ICAgY2xhc3MgRGF0YVRyYW5zZmVySXRlbXM7CiAgICAgY2xhc3MgRHJhZ0RhdGE7CiAgICAgY2xh
c3MgRmlsZUxpc3Q7CiAgICAgY2xhc3MgRnJhbWU7CkBAIC04NCw2ICs4NSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGhhc0RhdGEoKSA9IDA7CiAgICAgICAg
IAogICAgICAgICB2b2lkIHNldEFjY2Vzc1BvbGljeShDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOwor
ICAgICAgICBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9w
b2xpY3k7IH0KIAogICAgICAgICBEcmFnT3BlcmF0aW9uIHNvdXJjZU9wZXJhdGlvbigpIGNvbnN0
OwogICAgICAgICBEcmFnT3BlcmF0aW9uIGRlc3RpbmF0aW9uT3BlcmF0aW9uKCkgY29uc3Q7CkBA
IC05MSwxMSArOTMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldERl
c3RpbmF0aW9uT3BlcmF0aW9uKERyYWdPcGVyYXRpb24pOwogICAgICAgICAKICAgICAgICAgdm9p
ZCBzZXREcmFnSGFzU3RhcnRlZCgpIHsgbV9kcmFnU3RhcnRlZCA9IHRydWU7IH0KKworI2lmIEVO
QUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0
YVRyYW5zZmVySXRlbXM+IGl0ZW1zKCkgPSAwOworI2VuZGlmCiAgICAgICAgIAogICAgIHByb3Rl
Y3RlZDoKICAgICAgICAgQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSwgQ2xpcGJvYXJk
VHlwZSk7CiAKLSAgICAgICAgQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSgpIGNvbnN0IHsg
cmV0dXJuIG1fcG9saWN5OyB9CiAgICAgICAgIGJvb2wgZHJhZ1N0YXJ0ZWQoKSBjb25zdCB7IHJl
dHVybiBtX2RyYWdTdGFydGVkOyB9CiAgICAgICAgIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaWRsCmluZGV4IDEwMjRhMzZkMTZhM2M0OTAzYWYwZGU2ZDVkM2RmOTZlZDg4NzRk
YTQuLmQ1YmIzMzExN2Q0NDk2MmM4NWQ4ZTJjYTZlM2E3NjJiY2U3OGMzYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DbGlwYm9hcmQuaWRsCkBAIC00Miw2ICs0Miw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
W1JlcXVpcmVzQWxsQXJndW1lbnRzXSBib29sZWFuIHNldERhdGEoaW4gRE9NU3RyaW5nIHR5cGUs
IGluIERPTVN0cmluZyBkYXRhKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXREcmFnSW1hZ2Uo
aW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwgaW4gbG9uZyB4LCBpbiBsb25nIHkpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsIEVuYWJsZWRBdFJ1bnRpbWU9RGF0YVRy
YW5zZmVySXRlbXNdIERhdGFUcmFuc2Zlckl0ZW1zIGl0ZW1zOwogICAgIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWVjODY5MmFmMWZi
ZGJkNTJiOThlNGE2ZDViOTcyODNkMTY1MjRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgorCisjaWYgRU5BQkxFKERB
VEFfVFJBTlNGRVJfSVRFTVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgY2hhciBE
YXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nW10gPSAic3RyaW5nIjsKK2NvbnN0IGNoYXIgRGF0
YVRyYW5zZmVySXRlbTo6a2luZEZpbGVbXSA9ICJmaWxlIjsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTY3NWFhYzdlNGFjM2ExNmI4MmQ3
OTZmZGMxZTg1Nzg0MTAyODM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJhbnNmZXJJ
dGVtX2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbV9oCisKKyNpZiBFTkFCTEUoREFUQV9UUkFO
U0ZFUl9JVEVNUykKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdHJpbmdDYWxsYmFj
azsKKworY2xhc3MgRGF0YVRyYW5zZmVySXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFUcmFu
c2Zlckl0ZW0+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgY2hhciBraW5kU3RyaW5nW107
CisgICAgc3RhdGljIGNvbnN0IGNoYXIga2luZEZpbGVbXTsKKworICAgIHZpcnR1YWwgU3RyaW5n
IGtpbmQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0ID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNr
PikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVtX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmM5OTQyNjQ2
NmI0MjY2YTRiZWE2MzIwNDE1MmYyNWZjZjg4ZGU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
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
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUg
Y29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1EQVRBX1RSQU5T
RkVSX0lURU1TCisgICAgXSBEYXRhVHJhbnNmZXJJdGVtIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBraW5kOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHR5cGU7CisKKyAgICAgICAgdm9pZCBnZXRBc1N0cmluZyhpbiBbQ2FsbGJhY2tdIFN0cmlu
Z0NhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJh
bnNmZXJJdGVtcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiY2E5ODNjODY0YzIxZjJkYjMyM2E1YjFmMmQxZWU3
ZWVjZTI1ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVySXRlbXMuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJhbnNmZXJJdGVtc19oCisj
ZGVmaW5lIERhdGFUcmFuc2Zlckl0ZW1zX2gKKworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lU
RU1TKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW07CisK
K3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW1zIDog
cHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVySXRlbXM+IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNl
cHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpID0gMDsKKworICAgIHZp
cnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4
Y2VwdGlvbkNvZGUmKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2VuZGlmIC8vIERhdGFUcmFuc2Zl
ckl0ZW1zX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWNiMzZiODgzYjQ3OWU4OGQwNzllZjMyNGVlZDdkNzFlODBjNTM3ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwKQEAgLTAs
MCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRp
dGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsCisgICAgICAgIEhhc0luZGV4R2V0dGVyLAorICAg
ICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwKKyAgICBdIERhdGFUcmFuc2Zlckl0ZW1zIHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGVuZ3RoOworICAgICAgICBEYXRhVHJhbnNm
ZXJJdGVtIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgZ2V0dGVyOworCisgICAgICAgIHZv
aWQgY2xlYXIoKTsKKyAgICAgICAgdm9pZCBhZGQoaW4gRE9NU3RyaW5nIGRhdGEsIGluIERPTVN0
cmluZyB0eXBlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1N0cmluZ0NhbGxiYWNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTRkODg5ODMwNWNlOGZjMzY1NjNk
ZTI0YTUyNWI4YjRiYzA1NDlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1N0cmluZ0NhbGxiYWNrLmNwcApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgiCisKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgRGlzcGF0Y2hDYWxsYmFja1Rhc2sgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CitwdWJsaWM6CisgICAgc3RhdGlj
IERpc3BhdGNoQ2FsbGJhY2tUYXNrKiBjcmVhdGUoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4g
Y2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgZGF0YSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcg
RGlzcGF0Y2hDYWxsYmFja1Rhc2soY2FsbGJhY2ssIGRhdGEpOworICAgIH0KKworICAgIHZpcnR1
YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKKyAgICB7CisgICAg
ICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KG1fZGF0YSk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIERpc3BhdGNoQ2FsbGJhY2tUYXNrKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNhbGxi
YWNrLCBjb25zdCBTdHJpbmcmIGRhdGEpCisgICAgICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykK
KyAgICAgICAgLCBtX2RhdGEoZGF0YSkKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRyPFN0cmlu
Z0NhbGxiYWNrPiBtX2NhbGxiYWNrOworICAgIGNvbnN0IFN0cmluZyBtX2RhdGE7Cit9OworCit9
IC8vIG5hbWVzcGFjZQorCit2b2lkIFN0cmluZ0NhbGxiYWNrOjpzY2hlZHVsZUNhbGxiYWNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YSkKK3sKKyAg
ICBjb250ZXh0LT5wb3N0VGFzayhEaXNwYXRjaENhbGxiYWNrVGFzazo6Y3JlYXRlKHRoaXMsIGRh
dGEpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2Fs
bGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MmU4M2UyMTk2MDkzYjAwYTQyYWU5ZmRlODliMjYxMjgyMWQy
ZDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNr
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3RyaW5nQ2FsbGJhY2tfaAorI2RlZmluZSBTdHJp
bmdDYWxsYmFja19oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKKworY2xhc3MgU3RyaW5nQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxT
dHJpbmdDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflN0cmluZ0NhbGxiYWNrKCkg
eyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KGNvbnN0IFN0cmluZyYgZGF0YSkgPSAw
OworCisgICAgLy8gSGVscGVyIHRvIHBvc3QgY2FsbGJhY2sgdGFzay4KKyAgICB2b2lkIHNjaGVk
dWxlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YSk7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTdHJpbmdDYWxsYmFj
a19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTE4ZDgz
ZmUwYWY0YzJhNWQ0MzJhODUwYTBiZDA4ZTNjMzJlZDJmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbApAQCAtMCwwICsxLDM3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxl
IGNvcmUgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENhbGxiYWNrCisgICAgXSBTdHJpbmdD
YWxsYmFjayB7CisgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gRE9NU3RyaW5nIGRhdGEp
OworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKaW5kZXggZmIzZTA1YjI5ZGZmZmM4OWE3MjA1ZjM1Y2E3
Y2JjMDNmOTRiZDZhZS4uYTlmNjVhMWVkOTYwMDU3YzA5MDYwMmI1MzAyZGE5NTE4OGZiOWY5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2Fy
ZENocm9taXVtLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNocm9taXVtRGF0YU9i
amVjdC5oIgogI2luY2x1ZGUgIkNsaXBib2FyZE1pbWVUeXBlcy5oIgogI2luY2x1ZGUgIkNsaXBi
b2FyZFV0aWxpdGllc0Nocm9taXVtLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbXNDaHJv
bWl1bS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCkBAIC0zMzksNCArMzQwLDkgQEAgYm9vbCBDbGlwYm9hcmRDaHJv
bWl1bTo6aGFzRGF0YSgpCiAgICAgcmV0dXJuIG1fZGF0YU9iamVjdC0+aGFzRGF0YSgpOwogfQog
CitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zPiBDbGlwYm9hcmRDaHJvbWl1bTo6aXRlbXMo
KQoreworICAgIHJldHVybiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjcmVhdGUodGhpcywg
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKaW5kZXggZDMwYTFjNGExM2E1YTJhNWI1MTExM2Y0
Yzc3YjQwZjJlM2VkMTJlMS4uMDU3YWRhZWQwYjU0NWNlMDllMWNmMzU1NjM0MDYwMjQ2YTI4OWQw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJk
Q2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5oCkBAIC04MCw2ICs4MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaGFzRGF0YSgpOwogCisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxEYXRhVHJhbnNmZXJJdGVtcz4gaXRlbXMoKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIENs
aXBib2FyZENocm9taXVtKENsaXBib2FyZFR5cGUsIFBhc3NSZWZQdHI8Q2hyb21pdW1EYXRhT2Jq
ZWN0PiwgQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBGcmFtZSopOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9t
aXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMGU1ODNhZTBkNjM0YWI1OTEyNjEyMzFmMDFjOThiZWZkMjcx
MTIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oIgorCisjaW5jbHVk
ZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiU3RyaW5nQ2FsbGJhY2suaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdHlwZSkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bShvd25l
ciwgY29udGV4dCwgZGF0YSwgdHlwZSkpOworfQorCitEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06
OkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3Qg
U3RyaW5nJiB0eXBlKQorICAgIDogbV9vd25lcihvd25lcikKKyAgICAsIG1fY29udGV4dChjb250
ZXh0KQorICAgICwgbV9raW5kKGtpbmRTdHJpbmcpCisgICAgLCBtX3R5cGUodHlwZSkKKyAgICAg
ICwgbV9kYXRhKGRhdGEpCit7Cit9CisKK0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6fkRhdGFU
cmFuc2Zlckl0ZW1DaHJvbWl1bSgpCit7Cit9CisKK1N0cmluZyBEYXRhVHJhbnNmZXJJdGVtQ2hy
b21pdW06OmtpbmQoKSBjb25zdAoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlw
Ym9hcmROdW1iKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIG1fa2luZDsK
K30KKworU3RyaW5nIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTo6dHlwZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2FyZE51bWIpCisgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICByZXR1cm4gbV90eXBlOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bTo6Z2V0QXNTdHJpbmcoUGFzc1JlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJh
Y2spCit7CisgICAgaWYgKChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAm
JiBtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKKyAgICAgICAgfHwgbV9r
aW5kICE9IGtpbmRTdHJpbmcpCisgICAgICAgIHJldHVybjsKKyAgICBjYWxsYmFjay0+c2NoZWR1
bGVDYWxsYmFjayhtX2NvbnRleHQsIG1fZGF0YSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFu
c2Zlckl0ZW1DaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0
YVRyYW5zZmVySXRlbUNocm9taXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGYxOGJmNmI2MzI4NDY3YjliOGMw
NGM4YmUyZDE2NjcwNDdlODE2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5oCkBAIC0wLDAgKzEsNzAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bV9oCisjZGVmaW5lIERhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bV9oCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2lu
Y2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQ2xpcGJvYXJkOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRGF0
YVRyYW5zZmVySXRlbUNocm9taXVtIDogcHVibGljIERhdGFUcmFuc2Zlckl0ZW0geworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bT4gY3JlYXRl
KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKTsKKworICAgIHZpcnR1YWwgfkRh
dGFUcmFuc2Zlckl0ZW1DaHJvbWl1bSgpOworCisgICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNv
bnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9p
ZCBnZXRBc1N0cmluZyhQYXNzUmVmUHRyPFN0cmluZ0NhbGxiYWNrPik7CisKK3ByaXZhdGU6Cisg
ICAgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5n
JiB0eXBlKTsKKworICAgIGNvbnN0IFJlZlB0cjxDbGlwYm9hcmQ+IG1fb3duZXI7CisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogbV9jb250ZXh0OworICAgIGNvbnN0IFN0cmluZyBtX2tpbmQ7
CisgICAgY29uc3QgU3RyaW5nIG1fdHlwZTsKKyAgICBjb25zdCBTdHJpbmcgbV9kYXRhOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNG
RVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVtX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXND
aHJvbWl1bS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM4NTY3NWFlNDM1YWY0M2M1ZmFjNDc2OWI1YTc2OTc1
NjZiMmFiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3BwCkBAIC0wLDAgKzEsMTA2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaCIKKwor
I2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1
bS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0+IERhdGFUcmFuc2Zlckl0ZW1z
Q2hyb21pdW06OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtKG93bmVyLCBjb250ZXh0KSk7Cit9CisKK0RhdGFUcmFuc2Zlckl0
ZW1zQ2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9h
cmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogbV9vd25l
cihvd25lcikKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQoreworfQorCitEYXRhVHJhbnNmZXJJ
dGVtc0Nocm9taXVtOjp+RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bSgpCit7Cit9CisKK3Vuc2ln
bmVkIGxvbmcgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bTo6bGVuZ3RoKCkgY29uc3QKK3sKKyAg
ICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVtYikKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIG1faXRlbXMuc2l6ZSgpOworfQorCitQYXNzUmVmUHRyPERhdGFUcmFu
c2Zlckl0ZW0+IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06Oml0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCkgY29uc3QKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVt
YiB8fCBpbmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1f
aXRlbXNbaW5kZXhdOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmRlbGV0
ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYg
KG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKSB7CisgICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaW5k
ZXggPj0gbGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXRlbXMucmVtb3ZlKGlu
ZGV4KTsKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjbGVhcigpCit7Cisg
ICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2l0ZW1zLmNsZWFyKCk7Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bTo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJv
YXJkV3JpdGFibGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkgb25lICdzdHJpbmcn
IGl0ZW0gd2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4KKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
aWYgKG1faXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9PSBE
YXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7CisgICAgICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAg
bV9pdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGUobV9vd25lciwg
bV9jb250ZXh0LCBkYXRhLCB0eXBlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0
ZW1zQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjIzNDI4NjQ0MmJjYzk0OGYxZmEwOTA0
MGU2MjkwMThhNDg5Yzc1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW1faAorI2RlZmluZSBEYXRhVHJhbnNmZXJJ
dGVtc0Nocm9taXVtX2gKKworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisjaW5j
bHVkZSAiRGF0YVRyYW5zZmVySXRlbXMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENsaXBi
b2FyZDsKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bTsKK2NsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CisKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2NsYXNzIERhdGFU
cmFuc2Zlckl0ZW1zQ2hyb21pdW0gOiBwdWJsaWMgRGF0YVRyYW5zZmVySXRlbXMgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0+IGNyZWF0
ZShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAg
IHZpcnR1YWwgfkRhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0oKTsKKworICAgIHZpcnR1YWwgdW5z
aWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdmlydHVhbCB2b2lkIGNsZWFyKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IFN0
cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZh
dGU6CisgICAgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIFJlZlB0cjxDbGlwYm9hcmQ+IG1fb3du
ZXI7CisgICAgLy8gSW5kaXJlY3RseSBvd25lZCBieSBvdXIgcGFyZW50LgorICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBWZWN0b3I8UmVmUHRyPERhdGFUcmFuc2Zl
ckl0ZW1DaHJvbWl1bT4gPiBtX2l0ZW1zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRh
VHJhbnNmZXJJdGVtc0Nocm9taXVtX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2
ZmFiNmJhZTg0YTU1OTJmNWYxOWU0NjdlOThiYjg3MWJlMjA0ZmYxLi5kOGZjODNhZGViN2MyNjhm
NWVjYTkzN2NkZTNhYmU4ZmM1Yzk0M2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDExLTAzLTA3ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBEYXRhVHJhbnNmZXJJdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxMTUKKworICAgICAgICBBZGQgbmV3IHJ1bnRpbWUg
ZW5hYmxlZCBmbGFnIGZvciBkYXRhIHRyYW5zZmVyIGl0ZW1zIGZlYXR1cmUuCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmg6CisgICAgICAgICogc3JjL1dlYlJ1bnRpbWVG
ZWF0dXJlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxl
RGF0YVRyYW5zZmVySXRlbXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6
OmlzRGF0YVRyYW5zZmVySXRlbXNFbmFibGVkKToKKwogMjAxMS0wMy0wNyAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0
dXJlcy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVz
LmgKaW5kZXggYzllMzJmNTZkZDFjNWViMWZhYWI5OGQxNWVjNDQwYWJjYjAxMGRiMi4uNmI5YTBk
MGZjYTE5OTE0NDc0ZDdkMmIwM2E1Mjg5NWIyMzgzZjhmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKQEAgLTYzLDYgKzYzLDkg
QEAgcHVibGljOgogCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVBcHBsaWNhdGlv
bkNhY2hlKGJvb2wpOwogICAgIFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaXNBcHBsaWNhdGlvbkNh
Y2hlRW5hYmxlZCgpOworICAgIAorICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlRGF0
YVRyYW5zZmVySXRlbXMoYm9vbCk7CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc0RhdGFU
cmFuc2Zlckl0ZW1zRW5hYmxlZCgpOwogCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFi
bGVHZW9sb2NhdGlvbihib29sKTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlzR2VvbG9j
YXRpb25FbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJSdW50aW1lRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVu
dGltZUZlYXR1cmVzLmNwcAppbmRleCBlM2VjZTZlYjNmZmRiNjI1ODY0YzQzMTZiODgzZmVjMGNm
MzIxNzVmLi5hNTNhYWY5YjcwNzU5ODZlMDMxNTBiMzQ1MjVlZmQ1OTY1N2E4NDJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAKQEAg
LTE1Miw2ICsxNTIsMjIgQEAgYm9vbCBXZWJSdW50aW1lRmVhdHVyZXM6OmlzQXBwbGljYXRpb25D
YWNoZUVuYWJsZWQoKQogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViUnVudGltZUZlYXR1cmVzOjplbmFi
bGVEYXRhVHJhbnNmZXJJdGVtcyhib29sIGVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoREFUQV9UUkFO
U0ZFUl9JVEVNUykKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXREYXRhVHJhbnNmZXJJ
dGVtc0VuYWJsZWQoZW5hYmxlKTsKKyNlbmRpZgorfQorCitib29sIFdlYlJ1bnRpbWVGZWF0dXJl
czo6aXNEYXRhVHJhbnNmZXJJdGVtc0VuYWJsZWQoKQoreworI2lmIEVOQUJMRShEQVRBX1RSQU5T
RkVSX0lURU1TKQorICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkYXRhVHJhbnNm
ZXJJdGVtc0VuYWJsZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisK
IHZvaWQgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVHZW9sb2NhdGlvbihib29sIGVuYWJsZSkK
IHsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjlmZmQ3YmZiMzY4M2MyNzNmYTQ3YjE2Nzc4MWVlYTJk
MzIwY2E5Zi4uYmI1ZDNlN2M4NDBlYzIzZjA2OTM2ZmE3ZDRkYTM2Y2ZmZDE2Yzk1NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDExLTAzLTA3ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBEYXRhVHJhbnNmZXJJdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTUxMTUKKworICAgICAgICBFbmFibGUgZGF0YSB0cmFuc2ZlciBpdGVt
cyBpbiBEUlQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
Y3BwOgorICAgICAgICAoVGVzdFNoZWxsOjpUZXN0U2hlbGwpOgorCiAyMDExLTAzLTA3ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENh
cmxzc29uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKaW5k
ZXggMjU3NGFiY2Y5MzY1YzdmODc3MTNlYzQ3NmY0ODBmMWU0MjA1OWI2Yy4uZTFhODZlZmRhYjY0
YjcyZjg2YjE2OGRkNWYwZjQ4YWU1YjYwMDA1YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC05MCw2ICs5MCw3IEBAIFRlc3RTaGVsbDo6VGVzdFNo
ZWxsKGJvb2wgdGVzdFNoZWxsTW9kZSkKICAgICAsIG1fc3RyZXNzRGVvcHQoZmFsc2UpCiAgICAg
LCBtX2R1bXBXaGVuRmluaXNoZWQodHJ1ZSkKIHsKKyAgICBXZWJSdW50aW1lRmVhdHVyZXM6OmVu
YWJsZURhdGFUcmFuc2Zlckl0ZW1zKHRydWUpOwogICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5h
YmxlR2VvbG9jYXRpb24odHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVJbmRl
eGVkRGF0YWJhc2UodHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVGaWxlU3lz
dGVtKHRydWUpOwo=
</data>
<flag name="review"
          id="77073"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="77084"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>